[OPENMEETINGS-1297] svn tree is restructured
diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..1b46193
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+ -->
+<classpath>
+	<classpathentry kind="src" path="src/axis/java"/>
+	<classpathentry kind="src" path="src/db/java"/>
+	<classpathentry kind="src" path="src/doc/java"/>
+	<classpathentry kind="src" path="src/install/java"/>
+	<classpathentry kind="src" path="src/main/java"/>
+	<classpathentry kind="src" path="src/test/java"/>
+	<classpathentry kind="src" path="src/main/webapp/WEB-INF/classes"/>
+	<classpathentry kind="src" path="src/screenshare/java"/>
+	<classpathentry kind="src" path="src/util/java"/>
+	<classpathentry kind="src" path="src/web/java"/>
+	<classpathentry exported="true" kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4">
+		<attributes>
+			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
+		</attributes>
+	</classpathentry>
+	<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=Openmeetings+3.0.x&amp;ivyXmlPath=ivy.xml&amp;confs=*&amp;ivySettingsPath=%24%7Bworkspace_loc%3AOpenmeetings+3.0.x%2Fivysettings.xml%7D&amp;loadSettingsOnDemand=false&amp;propertyFiles="/>
+	<classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=Openmeetings+3.0.x&amp;ivyXmlPath=build%2Fred5%2Fserver%2Fivy.xml&amp;confs=default%2Cjava6&amp;ivySettingsPath=%24%7Bworkspace_loc%3AOpenmeetings+3.0.x%7D%2Fbuild%2Fred5%2Fserver%2Fivysettings.xml&amp;loadSettingsOnDemand=false&amp;propertyFiles="/>
+	<classpathentry kind="lib" path="build/red5/server/dist/red5.jar" sourcepath="build/red5/server/src"/>
+	<classpathentry kind="lib" path="build/red5/client/dist/red5-client.jar" sourcepath="build/red5/client/src"/>
+	<classpathentry kind="lib" path="build/lib/java_16_tools.jar"/>
+	<classpathentry kind="output" path="build/classes/eclipse"/>
+</classpath>
diff --git a/.project b/.project
new file mode 100644
index 0000000..0b02fe0
--- /dev/null
+++ b/.project
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<projectDescription>
+	<name>Openmeetings 3.0.x</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.springframework.ide.eclipse.core.springbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.zeroturnaround.eclipse.remoting.remotingBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.zeroturnaround.eclipse.rebelXmlBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.springframework.ide.eclipse.core.springnature</nature>
+		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
+		<nature>org.apache.ivyde.eclipse.ivynature</nature>
+		<nature>org.zeroturnaround.eclipse.remoting.remotingNature</nature>
+		<nature>org.zeroturnaround.eclipse.jrebelNature</nature>
+	</natures>
+	<filteredResources>
+		<filter>
+			<id>1387965572383</id>
+			<name></name>
+			<type>26</type>
+			<matcher>
+				<id>org.eclipse.ui.ide.multiFilter</id>
+				<arguments>1.0-name-matches-false-false-.svn</arguments>
+			</matcher>
+		</filter>
+		<filter>
+			<id>1387965572384</id>
+			<name></name>
+			<type>10</type>
+			<matcher>
+				<id>org.eclipse.ui.ide.multiFilter</id>
+				<arguments>1.0-projectRelativePath-matches-false-false-dist</arguments>
+			</matcher>
+		</filter>
+		<filter>
+			<id>1387965572388</id>
+			<name></name>
+			<type>26</type>
+			<matcher>
+				<id>org.eclipse.ui.ide.multiFilter</id>
+				<arguments>1.0-projectRelativePath-matches-false-false-build/classes/openmeetings</arguments>
+			</matcher>
+		</filter>
+		<filter>
+			<id>1387965572390</id>
+			<name></name>
+			<type>26</type>
+			<matcher>
+				<id>org.eclipse.ui.ide.multiFilter</id>
+				<arguments>1.0-projectRelativePath-matches-false-false-build/openlaszlo*</arguments>
+			</matcher>
+		</filter>
+		<filter>
+			<id>1387965572391</id>
+			<name></name>
+			<type>6</type>
+			<matcher>
+				<id>org.eclipse.ui.ide.multiFilter</id>
+				<arguments>1.0-name-matches-false-false-.ant-targets-build.xml</arguments>
+			</matcher>
+		</filter>
+		<filter>
+			<id>1387965572392</id>
+			<name></name>
+			<type>30</type>
+			<matcher>
+				<id>org.eclipse.ui.ide.multiFilter</id>
+				<arguments>1.0-projectRelativePath-matches-false-false-build/red5/server/target</arguments>
+			</matcher>
+		</filter>
+		<filter>
+			<id>1387965572392</id>
+			<name></name>
+			<type>30</type>
+			<matcher>
+				<id>org.eclipse.ui.ide.multiFilter</id>
+				<arguments>1.0-projectRelativePath-matches-false-false-build/red5/client/target</arguments>
+			</matcher>
+		</filter>
+		<filter>
+			<id>1387965572393</id>
+			<name></name>
+			<type>30</type>
+			<matcher>
+				<id>org.eclipse.ui.ide.multiFilter</id>
+				<arguments>1.0-projectRelativePath-matches-false-false-build/api</arguments>
+			</matcher>
+		</filter>
+		<filter>
+			<id>1387965572393</id>
+			<name></name>
+			<type>30</type>
+			<matcher>
+				<id>org.eclipse.ui.ide.multiFilter</id>
+				<arguments>1.0-projectRelativePath-matches-false-false-build/red5/server/dist/webapps</arguments>
+			</matcher>
+		</filter>
+		<filter>
+			<id>1387965572394</id>
+			<name></name>
+			<type>30</type>
+			<matcher>
+				<id>org.eclipse.ui.ide.multiFilter</id>
+				<arguments>1.0-projectRelativePath-matches-false-false-build/red5/server/src/main/server</arguments>
+			</matcher>
+		</filter>
+		<filter>
+			<id>1387965572395</id>
+			<name></name>
+			<type>30</type>
+			<matcher>
+				<id>org.eclipse.ui.ide.multiFilter</id>
+				<arguments>1.0-projectRelativePath-matches-false-false-build/red5/server/webapps</arguments>
+			</matcher>
+		</filter>
+	</filteredResources>
+</projectDescription>
diff --git a/.settings/.jsdtscope b/.settings/.jsdtscope
new file mode 100644
index 0000000..f40dd98
--- /dev/null
+++ b/.settings/.jsdtscope
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<classpath>

+	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>

+	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">

+		<attributes>

+			<attribute name="hide" value="true"/>

+		</attributes>

+	</classpathentry>

+	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>

+	<classpathentry kind="output" path=""/>

+</classpath>

diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..93a19d3
--- /dev/null
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,14 @@
+#   Licensed under the Apache License, Version 2.0 (the "License");

+#   you may not use this file except in compliance with the License.

+#   You may obtain a copy of the License at

+#

+#       http://www.apache.org/licenses/LICENSE-2.0

+#

+#   Unless required by applicable law or agreed to in writing, software

+#   distributed under the License is distributed on an "AS IS" BASIS,

+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+#   See the License for the specific language governing permissions and

+#   limitations under the License.

+eclipse.preferences.version=1

+encoding//src/main/webapp/WEB-INF/classes/rebel-remote.xml=UTF-8

+encoding//src/main/webapp/WEB-INF/classes/rebel.xml=UTF-8

diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..f3a2fb8
--- /dev/null
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,12 @@
+#Sun Nov 06 12:11:27 CET 2011

+eclipse.preferences.version=1

+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5

+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve

+org.eclipse.jdt.core.compiler.compliance=1.5

+org.eclipse.jdt.core.compiler.debug.lineNumber=generate

+org.eclipse.jdt.core.compiler.debug.localVariable=generate

+org.eclipse.jdt.core.compiler.debug.sourceFile=generate

+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error

+org.eclipse.jdt.core.compiler.source=1.5

diff --git a/.settings/org.eclipse.jdt.ui.prefs b/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..b78a010
--- /dev/null
+++ b/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,54 @@
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=false
+sp_cleanup.format_source_code_changes_only=true
+sp_cleanup.make_local_variable_final=false
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=true
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=false
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_trailing_whitespaces=false
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=false
+sp_cleanup.remove_unused_imports=false
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/.settings/org.eclipse.jst.common.project.facet.core.prefs b/.settings/org.eclipse.jst.common.project.facet.core.prefs
new file mode 100644
index 0000000..6c8ad1d
--- /dev/null
+++ b/.settings/org.eclipse.jst.common.project.facet.core.prefs
@@ -0,0 +1,3 @@
+#Wed Oct 14 19:22:29 CEST 2009

+classpath.helper/org.eclipse.jdt.launching.JRE_CONTAINER\:\:org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType\:\:jre6/owners=jst.java\:5.0

+eclipse.preferences.version=1

diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component
new file mode 100644
index 0000000..bcc91bc
--- /dev/null
+++ b/.settings/org.eclipse.wst.common.component
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId"/>
diff --git a/.settings/org.eclipse.wst.common.project.facet.core.xml b/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 0000000..d24a733
--- /dev/null
+++ b/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <fixed facet="jst.web"/>
+  <fixed facet="jst.java"/>
+  <installed facet="jst.java" version="5.0"/>
+  <installed facet="jst.web" version="2.5"/>
+</faceted-project>
diff --git a/.settings/org.eclipse.wst.jsdt.ui.superType.container b/.settings/org.eclipse.wst.jsdt.ui.superType.container
new file mode 100644
index 0000000..3bd5d0a
--- /dev/null
+++ b/.settings/org.eclipse.wst.jsdt.ui.superType.container
@@ -0,0 +1 @@
+org.eclipse.wst.jsdt.launching.baseBrowserLibrary
\ No newline at end of file
diff --git a/.settings/org.eclipse.wst.jsdt.ui.superType.name b/.settings/org.eclipse.wst.jsdt.ui.superType.name
new file mode 100644
index 0000000..05bd71b
--- /dev/null
+++ b/.settings/org.eclipse.wst.jsdt.ui.superType.name
@@ -0,0 +1 @@
+Window
\ No newline at end of file
diff --git a/.settings/org.eclipse.wst.validation.prefs b/.settings/org.eclipse.wst.validation.prefs
new file mode 100644
index 0000000..26adfa2
--- /dev/null
+++ b/.settings/org.eclipse.wst.validation.prefs
@@ -0,0 +1,12 @@
+DELEGATES_PREFERENCE=delegateValidatorList
+USER_BUILD_PREFERENCE=enabledBuildValidatorList
+USER_MANUAL_PREFERENCE=enabledManualValidatorList
+USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.303.v201202090300
+eclipse.preferences.version=1
+override=true
+suspend=false
+vals/org.eclipse.wst.dtd.core.dtdDTDValidator/groups=0107include04111contentType134org.eclipse.wst.dtd.core.dtdsourceT07fileext03dtdF07fileext03entF07fileext03modF0107exclude0207fileext04.lzxF04file05buildF02
+vals/org.eclipse.wst.html.ui.HTMLValidator/groups=0107include06111contentType136org.eclipse.wst.html.core.htmlsourceT07fileext04htmlF07fileext05xhtmlF07fileext03htmF07fileext04htplF07fileext03wmlF0107exclude0104file05buildF02
+vals/org.eclipse.wst.xml.core.xml/groups=0107include05111contentType128org.eclipse.core.runtime.xmlT111contentType134org.eclipse.wst.xml.core.xmlsourceT111contentType134org.eclipse.wst.xml.core.xslsourceT111contentType134org.eclipse.jst.jsp.core.tldsourceT07fileext03xmlF0107exclude111113projectNature134org.eclipse.jst.j2ee.ejb.EJBNature113projectNature130org.eclipse.jst.j2ee.EARNature04file08.projectT0104file110.classpathT0104file110.settings/T0207fileext04.lzxF04file05buildF0204file114WebContent/srcF0204file116WebContent/swf10F0207fileext04.wmlF04file04testF02
+vals/org.eclipse.wst.xsd.core.xsd/groups=0107include0107fileext03xsdF0107exclude0107fileext04.lzxF
+vf.version=3
diff --git a/.settings/org.springframework.ide.eclipse.beans.core.prefs b/.settings/org.springframework.ide.eclipse.beans.core.prefs
new file mode 100644
index 0000000..3af8ce5
--- /dev/null
+++ b/.settings/org.springframework.ide.eclipse.beans.core.prefs
@@ -0,0 +1,3 @@
+#Sun Aug 28 18:17:40 CEST 2011

+eclipse.preferences.version=1

+org.springframework.ide.eclipse.beans.core.ignoreMissingNamespaceHandler=false

diff --git a/.settings/org.springframework.ide.eclipse.core.prefs b/.settings/org.springframework.ide.eclipse.core.prefs
new file mode 100644
index 0000000..68f57e2
--- /dev/null
+++ b/.settings/org.springframework.ide.eclipse.core.prefs
@@ -0,0 +1,63 @@
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+eclipse.preferences.version=1
+org.springframework.ide.eclipse.core.builders.enable.aopreferencemodelbuilder=true
+org.springframework.ide.eclipse.core.builders.enable.beanmetadatabuilder=true
+org.springframework.ide.eclipse.core.enable.project.preferences=false
+org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.bestpractices.beansvalidator=false
+org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.core.springvalidator=false
+org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.data.core.datavalidator=true
+org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.autowire.autowire-org.springframework.ide.eclipse.beans.core.beansvalidator=false
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanAlias-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanClass-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanConstructorArgument-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanDefinition-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanDefinitionHolder-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanFactory-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanInitDestroyMethod-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanProperty-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanReference-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.methodOverride-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.parsingProblems-org.springframework.ide.eclipse.beans.core.beansvalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.requiredProperty-org.springframework.ide.eclipse.beans.core.beansvalidator=false
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.toolAnnotation-org.springframework.ide.eclipse.beans.core.beansvalidator=false
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.bestpractices.com.springsource.sts.bestpractices.AvoidDriverManagerDataSource-org.springframework.ide.eclipse.bestpractices.beansvalidator=false
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.bestpractices.com.springsource.sts.bestpractices.ImportElementsAtTopRulee-org.springframework.ide.eclipse.bestpractices.beansvalidator=false
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.bestpractices.com.springsource.sts.bestpractices.ParentBeanSpecifiesAbstractClassRule-org.springframework.ide.eclipse.bestpractices.beansvalidator=false
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.bestpractices.com.springsource.sts.bestpractices.RefElementRule-org.springframework.ide.eclipse.bestpractices.beansvalidator=false
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.bestpractices.com.springsource.sts.bestpractices.TooManyBeansInFileRule-org.springframework.ide.eclipse.bestpractices.beansvalidator=false
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.bestpractices.com.springsource.sts.bestpractices.UnnecessaryValueElementRule-org.springframework.ide.eclipse.bestpractices.beansvalidator=false
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.bestpractices.com.springsource.sts.bestpractices.UseBeanInheritance-org.springframework.ide.eclipse.bestpractices.beansvalidator=false
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.bestpractices.legacyxmlusage.jndiobjectfactory-org.springframework.ide.eclipse.bestpractices.beansvalidator=false
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.core.springClasspath-org.springframework.ide.eclipse.core.springvalidator=false
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.data.core.invalidDerivedQuery-org.springframework.ide.eclipse.data.core.datavalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.data.core.invalidParameterType-org.springframework.ide.eclipse.data.core.datavalidator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.action-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.actionstate-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.attribute-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.attributemapper-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.beanaction-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.evaluationaction-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.evaluationresult-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.exceptionhandler-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.import-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.inputattribute-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.mapping-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.outputattribute-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.set-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.state-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.subflowstate-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.transition-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.variable-org.springframework.ide.eclipse.webflow.core.validator=true
+org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.webflowstate-org.springframework.ide.eclipse.webflow.core.validator=true
diff --git a/.springBeans b/.springBeans
new file mode 100644
index 0000000..c54141b
--- /dev/null
+++ b/.springBeans
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beansProjectDescription>
+	<version>1</version>
+	<pluginVersion><![CDATA[3.3.0.201307091516-RELEASE]]></pluginVersion>
+	<configSuffixes>
+		<configSuffix><![CDATA[xml]]></configSuffix>
+	</configSuffixes>
+	<enableImports><![CDATA[false]]></enableImports>
+	<configs>
+		<config>src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml</config>
+	</configs>
+	<configSets>
+	</configSets>
+</beansProjectDescription>
diff --git a/CHANGELOG b/CHANGELOG
new file mode 100644
index 0000000..5b42edf
--- /dev/null
+++ b/CHANGELOG
@@ -0,0 +1,851 @@
+Apache OpenMeetings Change Log
+
+See http://issues.apache.org/jira/browse/OPENMEETINGS-* (where * is the number of the issue below)
+
+Release Notes - Openmeetings - Version 3.0.2
+================================================================================================================
+
+** Bug
+    * [OPENMEETINGS-604] - Pop up message remain same after quitting the room created by Book conference room option in the email
+    * [OPENMEETINGS-916] - Selected recording is not highlighted and should not be moved to other folder
+    * [OPENMEETINGS-976] - Cannot restore an erased key in administration\configuration\key
+    * [OPENMEETINGS-978] - It is impossible to start OM in offline mode
+    * [OPENMEETINGS-983] - Verification URL is not generated correctly for self register users
+    * [OPENMEETINGS-985] - Send Invitation functionality is broken
+    * [OPENMEETINGS-990] - error while playing recording
+    * [OPENMEETINGS-993] - Deleted rooms are now excluded from backup
+    * [OPENMEETINGS-994] - AllowRecording option lock normal user interaction in conference Room.
+    * [OPENMEETINGS-996] - send invitation - generate URL
+    * [OPENMEETINGS-997] - error installing with mssql 
+    * [OPENMEETINGS-1002] - OM theming should be consistent
+    * [OPENMEETINGS-1004] - Internal error is thrown when you search a user on the Search Users Tab
+
+** Improvement
+    * [OPENMEETINGS-982] - ApplicationContext recreation should be avoided
+
+
+Release Notes - Openmeetings - Version 3.0.1
+================================================================================================================
+
+** Sub-task
+    * [OPENMEETINGS-937] - Screen sharing application should create recordings with size multiple by 16
+
+** Bug
+    * [OPENMEETINGS-913] - Booking is not working via private message
+    * [OPENMEETINGS-917] - Contacts should not be added as default moderator
+    * [OPENMEETINGS-920] - where are the controls to playback a recorded video?
+    * [OPENMEETINGS-934] - screenrecording without sound
+    * [OPENMEETINGS-935] - Names are mixed in contact request email
+    * [OPENMEETINGS-936] - First frame of the recording has size differs from all other frames
+    * [OPENMEETINGS-943] - OM3.0: login with LDAP user not working
+    * [OPENMEETINGS-949] - Add Whiteboard: untranslated string - hardcoded
+    * [OPENMEETINGS-951] - Command line installer fails if path contains spaces
+    * [OPENMEETINGS-952] - Build should be compatible with latest ant
+    * [OPENMEETINGS-956] - Recording frame is not scrolled
+    * [OPENMEETINGS-957] - Screensharing is broken
+    * [OPENMEETINGS-958] - Calendar event start and end date are not displayed correctly in the month vew for IST time zone
+    * [OPENMEETINGS-959] - "Choose Device" Dialog doesn't show (all) devices from flash-settings
+    * [OPENMEETINGS-960] - Long time without changing progressbar when enter OM
+    * [OPENMEETINGS-961] - Calendar event can be canceled by guest
+    * [OPENMEETINGS-965] - Dashboard is malfunctioning when the user language is set to french
+    * [OPENMEETINGS-966] - Invitation links are not working
+    * [OPENMEETINGS-967] - dashboard.show.myrooms and dashboard.show.rssfeed options are not working
+    * [OPENMEETINGS-972] - Default user database
+    * [OPENMEETINGS-975] - Reminder is not sent for calendar event
+    * [OPENMEETINGS-977] - Import of Appointments and UserContacts was broken
+
+** Improvement
+    * [OPENMEETINGS-938] - Recording length field should be filled by converters
+    * [OPENMEETINGS-939] - Not ready recordings should have special icon
+
+
+Release Notes - Openmeetings - Version 3.0.0
+================================================================================================================
+
+** Sub-task
+    * [OPENMEETINGS-746] - Replace OmTimeZone in User Entity with String tz and fix all dependencies
+    * [OPENMEETINGS-747] - Replace OmTimeZone in Invitations Entity with String tz and fix all dependencies
+    * [OPENMEETINGS-748] - Replace OmTimeZone in MeetingMembers Entity with String tz and fix all dependencies
+    * [OPENMEETINGS-749] - Fix Installer with new timezone handling, default to server timezone in UI
+    * [OPENMEETINGS-750] - Fix Backup importer to be able to import old backups (2.x) to new database schema (3.x) (User, Invitations, MeetingMembers have no OmTimeZone anymore)
+    * [OPENMEETINGS-751] - Remove OmTimeZone Entity and import mechanism for timezones.xml and some cleanup
+    * [OPENMEETINGS-752] - Create Branch and Jenkins Job for Timezone refactoring
+    * [OPENMEETINGS-754] - Fix user admin UI to have timezone as string
+    * [OPENMEETINGS-755] - Fix invitation popup in Flash to not use the OmTimeZones for creating the Invitation
+    * [OPENMEETINGS-758] - Remove OpenLaszlo Admin UI and all related API calls (only if they are not needed somewhere else)
+    * [OPENMEETINGS-759] - Remove Flash UI user settings and related API calls 
+    * [OPENMEETINGS-762] - Callers of TimezoneUtil.getTimezoneByInternalJName should be checked to work as expected
+
+** Bug
+    * [OPENMEETINGS-69] - Conference Room - Chat RTL dosn't function 
+    * [OPENMEETINGS-243] - "Updated" field in Administration -> LDAP panel contains "null" for string for empty value.
+    * [OPENMEETINGS-274] - It is impossible to display "test setup recording" once hidden
+    * [OPENMEETINGS-321] - Recording under OSX throws exception in RecordingConverter
+    * [OPENMEETINGS-337] - interview room - audio does not work when "audio only" is selected
+    * [OPENMEETINGS-348] - zoom synchonization
+    * [OPENMEETINGS-377] - Double clicking in the calendar area create two “Event details” dialog windows not just one window
+    * [OPENMEETINGS-405] - microphoneRateNormal & microphoneRateBest - not change rate
+    * [OPENMEETINGS-410] - whiteboard first color
+    * [OPENMEETINGS-416] - "Hide actions menu" does not work via SOAP in "restricted" room
+    * [OPENMEETINGS-421] - Reminder to conference issue
+    * [OPENMEETINGS-426] - Html Errors/Problems
+    * [OPENMEETINGS-428] - Refactor User administration to Wicket
+    * [OPENMEETINGS-432] - video only room is coming with white board also
+    * [OPENMEETINGS-435] - Help Help Help openmeetings service is not work at the next day
+    * [OPENMEETINGS-437] - Link "...Edit your profile" form de user home page send the control to a user profile view, not to a edit profile view
+    * [OPENMEETINGS-439] - An LDAP user can't change their own profile picture.
+    * [OPENMEETINGS-444] - Create HTML/Wicket admin backup section
+    * [OPENMEETINGS-445] - Backup Export does not work at all
+    * [OPENMEETINGS-451] - Search in user groups Wicket UI does not work
+    * [OPENMEETINGS-473] - Recorded video Display blank at demo.openmeetings.com
+    * [OPENMEETINGS-481] - When I reserve a room by sending an email, users who connected to this link from an email have the same email address as me
+    * [OPENMEETINGS-486] - Sometimes OM stops responding to clicks
+    * [OPENMEETINGS-494] - Recording gives frame rate of 2 fps
+    * [OPENMEETINGS-503] - Openmeetings does not logout on the Recording panel
+    * [OPENMEETINGS-507] - Error message is shown when user save the Profile settings 
+    * [OPENMEETINGS-513] - Participant of poll can vote more than once in the "My conference room"
+    * [OPENMEETINGS-514] - Some extra links are displayed on the "Choose Usergroup" dialog
+    * [OPENMEETINGS-537] - Pop menu  in conference for files shows "Delete folder"
+    * [OPENMEETINGS-544] - some bug with SIP
+    * [OPENMEETINGS-560] - It’s possible to add several records with the same key value in configuration.
+    * [OPENMEETINGS-564] - Types of rooms are not localized
+    * [OPENMEETINGS-566] - No default timezone selection in registration/sign up when user is in timezone +12
+    * [OPENMEETINGS-572] - Empty fields are replaced with string "null" after export&import
+    * [OPENMEETINGS-575] - Name of the restricted and interview rooms is not displayed when user enter to this room
+    * [OPENMEETINGS-579] - In any room not close the video and audio settings windows. Video is not broadcasting.
+    * [OPENMEETINGS-580] - Smslib 3.5.3 should be used.
+    * [OPENMEETINGS-582] - 2.0 RoomPoll and Configs restore failed
+    * [OPENMEETINGS-584] - Main window is scrolled when select value from dropdown box
+    * [OPENMEETINGS-586] - FileItem owner_id is not replaced with new id while system import
+    * [OPENMEETINGS-587] - Exclusive audio by hotkey is broken
+    * [OPENMEETINGS-590] - Useless "SIP Settings" section in the user screen.
+    * [OPENMEETINGS-591] - Whiteboard presentacion from PPT page controll event randomly broken
+    * [OPENMEETINGS-596] - ffmpeg is not work in current version
+    * [OPENMEETINGS-600] - RSS Feed
+    * [OPENMEETINGS-601] - User Profile picture
+    * [OPENMEETINGS-603] - Conference Room Types List doesn't display textual content - Book Conference Room Option Selected while Sending an Email 
+    * [OPENMEETINGS-609] - The end time shown under the Book Conference Room option in New Message is Incorrect
+    * [OPENMEETINGS-617] - Impossible to refresh video using button "(Re) Start audio/video or change device settings"
+    * [OPENMEETINGS-618] - Incorrect translation
+    * [OPENMEETINGS-619] -  Problems with a microphone 
+    * [OPENMEETINGS-620] - Self-Register, Forgot password and login by LDAP should be implemented
+    * [OPENMEETINGS-625] - Profile Pictures not working on LDAP Accounts
+    * [OPENMEETINGS-627] - Private rooms disappear after use
+    * [OPENMEETINGS-628] - Exception is thrown when search user on the Profile->Search users tab
+    * [OPENMEETINGS-629] - Event is not deleted from Calendar
+    * [OPENMEETINGS-630] - Event is not resized in calendar
+    * [OPENMEETINGS-632] - Some links are mistaked in html version of OM
+    * [OPENMEETINGS-633] - Event is not created if title is empty.
+    * [OPENMEETINGS-634] - No menu accessable after file upload, in a special condition
+    * [OPENMEETINGS-635] - Administration / Configuration : default_lang_id documentation
+    * [OPENMEETINGS-640] - Room is not resized in IE
+    * [OPENMEETINGS-642] - The "Import" and "Export" buttons are missed on the Administrator->Language editor tab
+    * [OPENMEETINGS-643] - User details is not updated in the HTML version
+    * [OPENMEETINGS-645] - Can't create installation wizard
+    * [OPENMEETINGS-647] - Drag&Drop Issue Openmeetings 1.8.8 r4555
+    * [OPENMEETINGS-650] - Can't create conference room
+    * [OPENMEETINGS-651] - User can not login
+    * [OPENMEETINGS-654] - Interview room is broken
+    * [OPENMEETINGS-655] - Calendar is not localized
+    * [OPENMEETINGS-657] - can not convert file
+    * [OPENMEETINGS-658] - Event creates in the Calendar with wrong start and end time
+    * [OPENMEETINGS-660] - Types of reminder are not localized
+    * [OPENMEETINGS-661] - Invitation is not implemented in the HTML Calendar
+    * [OPENMEETINGS-663] - OM Installer is not localized
+    * [OPENMEETINGS-664] - OM is not installed in IE 10 browser.
+    * [OPENMEETINGS-665] - File upload in the room is broken
+    * [OPENMEETINGS-666] - Main menu displays incorrectly in the IE browser.
+    * [OPENMEETINGS-667] - Recordings are not viewable on iPad
+    * [OPENMEETINGS-669] - Recording is broken
+    * [OPENMEETINGS-672] - in recordings page ,people cant logout
+    * [OPENMEETINGS-673] - Rooms form is not shown correctly in the HTML version
+    * [OPENMEETINGS-674] - Image is not uploaded on the "Profile" tab in the HTML version of OM
+    * [OPENMEETINGS-676] - User can not login
+    * [OPENMEETINGS-679] - Share/record screen
+    * [OPENMEETINGS-682] - Admin password length is not checked while installing
+    * [OPENMEETINGS-687] - Microphone is unmuted when user refresh video frame
+    * [OPENMEETINGS-688] - Library versions should be bumped
+    * [OPENMEETINGS-689] - Russian installation encoding is broken in Ubuntu.
+    * [OPENMEETINGS-691] - screen sharing / recording couldn't starting
+    * [OPENMEETINGS-693] - Tomcat 7 patch should be removed from OM build
+    * [OPENMEETINGS-695] - Rooms page is not completly in the HTML version
+    * [OPENMEETINGS-696] - Choose device dialog is not availble in the restricted room
+    * [OPENMEETINGS-702] - when uploading file in a room, after click start upload,  return a window with HTTP-ERROR: 500  
+    * [OPENMEETINGS-703] - Invitation is not implemented to the HTML Calendar
+    * [OPENMEETINGS-704] - Calendar UI - Unify button list (Cancel always on right side)
+    * [OPENMEETINGS-705] - Not possible to enter any conference room
+    * [OPENMEETINGS-707] - Calendar UI Creation Popup - clean up UI elements
+    * [OPENMEETINGS-708] - Calender UI Popup shows empty input values when Calendar UI is loaded second time
+    * [OPENMEETINGS-709] - Calendar UI Popup - no need for delete button if you create a new event
+    * [OPENMEETINGS-711] - Calendar UI add external attendee's
+    * [OPENMEETINGS-714] - Calendar does not send any invitations to the attendees
+    * [OPENMEETINGS-715] - Calendar does not send any update email if you change a calendar event to the attendees
+    * [OPENMEETINGS-716] - Calendar does not send any delete email if you delete a calendar event to the attendees
+    * [OPENMEETINGS-718] - Newly created users are unable to login
+    * [OPENMEETINGS-719] - Calendar UI delete button has no confirmation
+    * [OPENMEETINGS-720] - Calendar throws server error if any calendar event is saved (only tested with new events so far)
+    * [OPENMEETINGS-726] - Internal users do not show calendar events of events that you have been added to
+    * [OPENMEETINGS-729] - Empty / null values in email_username/password throws Exception when processing emails
+    * [OPENMEETINGS-730] - Cannot save empty value for configuration key in HTML5 UI (for instance username / pas for email configuration)
+    * [OPENMEETINGS-736] - Calendar UI - Month view does not resize to browser window by default
+    * [OPENMEETINGS-738] - Wrong successful registration message behavior
+    * [OPENMEETINGS-741] - Failed to change password
+    * [OPENMEETINGS-742] - Calendar UI - week and day view pretty useless when you can't select any day
+    * [OPENMEETINGS-743] - HTML Version Forgotten  your password email link does not work 
+    * [OPENMEETINGS-744] - Private message does not send in the HTML version
+    * [OPENMEETINGS-756] - Remove OpenLaszlo/Flash Calendar UI and Server side components API Calls/DTOs
+    * [OPENMEETINGS-757] - Several issues with external and internal meeting members
+    * [OPENMEETINGS-763] - Command line admin: --drop option is broken
+    * [OPENMEETINGS-764] - Plugins should work with OM 3.0.0
+    * [OPENMEETINGS-765] - Wicket should be used for email generation
+    * [OPENMEETINGS-768] - User is not enter to the room when rtmp port is not set correctly
+    * [OPENMEETINGS-769] - Calendar UI - Event details with link to room
+    * [OPENMEETINGS-770] - when i click button  share/recording screen , i get do download [ public 7.jnlp], not working properly
+    * [OPENMEETINGS-771] - Dashboard is not shown correctly when user exit from the room.
+    * [OPENMEETINGS-773] - Deleted users are shown in the Usergroups
+    * [OPENMEETINGS-776] - Contacts should be visible for owner and admin only
+    * [OPENMEETINGS-777] - SOAP/REST API should be fixed to create appointments as HTML5 web client
+    * [OPENMEETINGS-780] - Upload pictures and other documents on the white board, has been in the transition state.
+    * [OPENMEETINGS-784] - SOAP API service "modifyRoomParameter" converts "paramValue" into String
+    * [OPENMEETINGS-785] - Messsage " You have successfully signed up. An email with a verification code will be sent to your mailbox." comes up even if it is not supposed to
+    * [OPENMEETINGS-786] - Loading symbol in Wicket and Flash should look the same
+    * [OPENMEETINGS-787] - top navigation gone
+    * [OPENMEETINGS-788] - As soon as you hit the "start conference" button the video freezes and just nothing happens
+    * [OPENMEETINGS-789] - Interview room recording in 2.1.1
+    * [OPENMEETINGS-796] - Install Wizard displays wrong value for red5SipEnable
+    * [OPENMEETINGS-799] - SOAP methods RoomService.{getRooms,getRoomsWithCurrentUsers} and UserService.getUsersByOrganisation are broken
+    * [OPENMEETINGS-803] - Image files are not visible for attendees on whiteboard
+    * [OPENMEETINGS-804] - updateRoomWithModerationQuestionsAudioTypeAndHideOptions sets isAudioOnly always to true
+    * [OPENMEETINGS-806] - addNewUser SOAP method doe not return valid error code
+    * [OPENMEETINGS-808] - Installation using Derby default database configuration seems to have performance issues
+    * [OPENMEETINGS-810] - Entering interview room doesnt have option to select camera size - it inhetits the last used size
+    * [OPENMEETINGS-815] - Exception in sign up
+    * [OPENMEETINGS-818] - Room login via secureHash is broken
+    * [OPENMEETINGS-819] - Zoom is not synchronyzed on whiteboard
+    * [OPENMEETINGS-821] - Can't upload file
+    * [OPENMEETINGS-822] - Closed room was created by addRoom and addRoomWithModeration REST/SOAP methods
+    * [OPENMEETINGS-830] - Recording is broken without screen sharing
+    * [OPENMEETINGS-832] - SOAP doesn't work
+    * [OPENMEETINGS-835] - no proper db-type option for postgresql db (Command Line Admin)
+    * [OPENMEETINGS-836] - OM layout error  - item from vicket is hide the room chat elements
+    * [OPENMEETINGS-841] - Only the first user in a room is displayed and can be heard by others
+    * [OPENMEETINGS-842] - External users should not be redirected to dashboard
+    * [OPENMEETINGS-844] - Invitations are broken after last refactoring
+    * [OPENMEETINGS-848] - RoomService.getRoomCounters REST/SOAP method is not working
+    * [OPENMEETINGS-849] - some remains after the purge of deleted recordings and a system cleanup via admin.sh
+    * [OPENMEETINGS-851] - There is no way to use uploaded files in an interview room
+    * [OPENMEETINGS-852] - Whiteboard Objects not clickable
+    * [OPENMEETINGS-855] - NPE using ./admin.sh -v -f --cleanup
+    * [OPENMEETINGS-856] - Invitation link is broken
+    * [OPENMEETINGS-859] - Audio and Video in recordings is no more in sync
+    * [OPENMEETINGS-860] - Invite window is opened with long delay
+    * [OPENMEETINGS-864] - Exception is thrown when update event in the calendar
+    * [OPENMEETINGS-865] - Upload buttons has artifacts
+    * [OPENMEETINGS-866] - NPE if frontend register is not allowed
+    * [OPENMEETINGS-868] - User creation via SOAP availability should be controlled by separate option
+    * [OPENMEETINGS-869] - Email subject is not displayed correctly for UTF-8 charset
+    * [OPENMEETINGS-870] - Plugins should work in version 3.0
+    * [OPENMEETINGS-871] - Internal error is thrown when search user on the Search users tab
+    * [OPENMEETINGS-872] - The "to" field is not filed in the "Write new message dialog"
+    * [OPENMEETINGS-873] - Ajax error is thrown when click on the "Show user profile" icon
+    * [OPENMEETINGS-875] - Widgets title are not translated when user change language
+    * [OPENMEETINGS-876] - The "Click here to enter room" link is attached to cancel email notification.
+    * [OPENMEETINGS-877] - New line "<br/>" tag does not applied for invitation message
+    * [OPENMEETINGS-880] - 3.0 regression: "Forgotten your password?" does not work on the login screen.
+    * [OPENMEETINGS-882] - OpenMeetings calendar allows create events with the end date/time earlier than the start date/time
+    * [OPENMEETINGS-883] - Strange behaviour during the external guest entering
+    * [OPENMEETINGS-884] - Regression in 3.0: Drop-down lists in the user registration screen work incorrectly in Google Chrome
+    * [OPENMEETINGS-885] - Record is not played under Chrome browser
+    * [OPENMEETINGS-886] - Impossible to save editable fields in My Profile.
+    * [OPENMEETINGS-890] - The "Login" field is not displayed on the connection panel.
+    * [OPENMEETINGS-891] - Wrong birthday date is displayed on the profile->edit settings panel
+    * [OPENMEETINGS-892] - "Add user" button is disabled when add new group
+    * [OPENMEETINGS-893] - Removed user is not added to usergroup again
+    * [OPENMEETINGS-898] - Time zone is not defined correctly on sign in page
+    * [OPENMEETINGS-899] - Calendar event start and end time are not displayed correctly
+    * [OPENMEETINGS-900] - Deleted contact is selected when user invite external guest to calendar invitation
+    * [OPENMEETINGS-901] - Password is not requested when password protected invitation send to external guest.
+    * [OPENMEETINGS-902] - Records are not created correctly
+    * [OPENMEETINGS-904] - Default landing zone
+    * [OPENMEETINGS-906] - Cannot create new group with users
+    * [OPENMEETINGS-907] - "password is required" message is displayed when "Password protected" checkbox is not  checked
+    * [OPENMEETINGS-908] - Calendar event start and end date are not displayed correctly in the month vew
+    * [OPENMEETINGS-909] - Event owners is not receive email notification
+    * [OPENMEETINGS-910] - Contacts are availble to search on the Search user page
+    * [OPENMEETINGS-912] - Email disappears when move emial to the new folder
+    * [OPENMEETINGS-914] - "Mark unread" action does not work on Contacts and message page
+    * [OPENMEETINGS-919] - Access logs will not be generated
+    * [OPENMEETINGS-922] - Add folder button does not add a folder.
+    * [OPENMEETINGS-923] - Drag and drop of files in the recordings section does not work
+    * [OPENMEETINGS-924] - deleting recordings?
+    * [OPENMEETINGS-925] - Recording details previously showed the room name not the id
+    * [OPENMEETINGS-927] - Memory leak in OM wicket application
+    * [OPENMEETINGS-930] - getInvitationHash method allow creation of invalid users (login too small)
+    * [OPENMEETINGS-932] - SIP dialer menu item is not availble in the OM 3.x
+
+** Improvement
+    * [OPENMEETINGS-167] - Main menu of OM
+    * [OPENMEETINGS-168] - Adding system date on dashboard
+    * [OPENMEETINGS-183] - Replacing "Timezone" column in "Users search" interface with a most important information = "statue" (connected /  absent).
+    * [OPENMEETINGS-273] - calendar time is not updating dynamically
+    * [OPENMEETINGS-280] - Update ATutor Module for OM
+    * [OPENMEETINGS-358] - Remove or hide the "Domian" selection from the "Login" dialog when there is only one "Domain"
+    * [OPENMEETINGS-368] - Allow users to zoom their view of the Whiteboard by default and not being controlled by "Draw on the Whiteboard" permissions
+    * [OPENMEETINGS-375] - Allow an administrative option to control whether to display the "Mute microphone globally" dialog box or not
+    * [OPENMEETINGS-429] - [Wicket] Language admin should be implemented
+    * [OPENMEETINGS-484] - Poor quality of bitmapped pictures in pdf files on the whiteboard.
+    * [OPENMEETINGS-548] - Open meetings in a new window or tab
+    * [OPENMEETINGS-556] - GSOC: Faster screen sharing
+    * [OPENMEETINGS-558] - GSOC: Need wysiwyg editor Wicket component
+    * [OPENMEETINGS-574] - wicket-jquery-ui should be used instead of adding jquery-ui manually to every page
+    * [OPENMEETINGS-578] - Latest Red5 server should be used in OM
+    * [OPENMEETINGS-583] - Ability to disable enhanced microphone should be added
+    * [OPENMEETINGS-589] - Configurable hot key for Mute/Unmute should be added
+    * [OPENMEETINGS-594] - Add translated word in thai language
+    * [OPENMEETINGS-610] - push2talk button
+    * [OPENMEETINGS-612] - Dashboard need to be implemented
+    * [OPENMEETINGS-615] - User Profile panel need to be implemented
+    * [OPENMEETINGS-626] - Recordings panel need to be added
+    * [OPENMEETINGS-631] - Updated French translation
+    * [OPENMEETINGS-637] - Admin: Connections panel need to be implemented
+    * [OPENMEETINGS-638] - Room enter/exit should be implemented
+    * [OPENMEETINGS-639] - Installer should be implemented on Wicket
+    * [OPENMEETINGS-646] - Emotions should be added to the chat
+    * [OPENMEETINGS-685] - Japanese translation update for v2.1.1 / v3.1
+    * [OPENMEETINGS-692] - HTML admin should be improved to highlight record which changes 
+    * [OPENMEETINGS-701] - Wicket HTML templates should be stored unarchived
+    * [OPENMEETINGS-727] - no warning for too short login names
+    * [OPENMEETINGS-772] - Project tree structure should be updated
+    * [OPENMEETINGS-778] - Cannot install simplified Chinese
+    * [OPENMEETINGS-798] - MSSQL support should be added to OM
+    * [OPENMEETINGS-820] - No function to match user groups with rooms via SOAP
+    * [OPENMEETINGS-854] - SOAP/REST call getFlvRecordingByExternalUserId should take into account both external id and type
+
+** New Feature
+    * [OPENMEETINGS-152] - Background image
+    * [OPENMEETINGS-491] - LDAP authentication filter
+    * [OPENMEETINGS-576] - Suggestion about the tunnelling implementation.
+    * [OPENMEETINGS-656] - Callback URL when client drop/log out from room
+    * [OPENMEETINGS-802] - Integration with Chamilo LMS
+    * [OPENMEETINGS-857] - sound/voice warning when disconnected
+
+** Task
+    * [OPENMEETINGS-81] - Unify Upload Components
+    * [OPENMEETINGS-721] - is it possible to add new user from soap method?
+    * [OPENMEETINGS-740] - Login via OAuth2
+    * [OPENMEETINGS-760] - Removing all OpenLaszlo /Flash UI that is no more maintained all all connected server side API calls.
+    * [OPENMEETINGS-767] - Redundant fields should be removed from MeetingMember object
+
+** Wish
+    * [OPENMEETINGS-38] - Default language
+    * [OPENMEETINGS-534] - How to set When the user is registered, need administrator audit to register?
+    * [OPENMEETINGS-607] - Refine the UI
+    * [OPENMEETINGS-622] - Removing the menu items and customizing dashboard
+
+
+Release Notes - Openmeetings - Version 2.2.0 Apache Release
+================================================================================================================
+
+** Bug
+    * [OPENMEETINGS-671] - Calendar is shown incompletely when book conference room
+    * [OPENMEETINGS-763] - Command line admin: --drop option is broken
+    * [OPENMEETINGS-789] - Interview room recording in 2.1.1
+    * [OPENMEETINGS-791] - Backup import is broken
+    * [OPENMEETINGS-799] - SOAP methods RoomService.{getRooms,getRoomsWithCurrentUsers} and UserService.getUsersByOrganisation are broken
+    * [OPENMEETINGS-803] - Image files are not visible for attendees on whiteboard
+    * [OPENMEETINGS-804] - updateRoomWithModerationQuestionsAudioTypeAndHideOptions sets isAudioOnly always to true
+    * [OPENMEETINGS-806] - addNewUser SOAP method doe not return valid error code
+    * [OPENMEETINGS-810] - Entering interview room doesnt have option to select camera size - it inhetits the last used size
+    * [OPENMEETINGS-811] - Recordings does not downloaded via Google Chrome browser
+    * [OPENMEETINGS-819] - Zoom is not synchronyzed on whiteboard
+    * [OPENMEETINGS-832] - SOAP doesn't work
+    * [OPENMEETINGS-835] - no proper db-type option for postgresql db (Command Line Admin)
+    * [OPENMEETINGS-837] - "Choose Device" Dialog stops working after a few Changes
+    * [OPENMEETINGS-842] - External users should not be redirected to dashboard
+    * [OPENMEETINGS-848] - RoomService.getRoomCounters REST/SOAP method is not working
+
+** Improvement
+    * [OPENMEETINGS-368] - Allow users to zoom their view of the Whiteboard by default and not being controlled by "Draw on the Whiteboard" permissions
+    * [OPENMEETINGS-556] - GSOC: Faster screen sharing
+    * [OPENMEETINGS-798] - MSSQL support should be added to OM
+    * [OPENMEETINGS-820] - No function to match user groups with rooms via SOAP
+
+** New Feature
+    * [OPENMEETINGS-491] - LDAP authentication filter
+
+** Task
+    * [OPENMEETINGS-790] - Red5 version in 2.x branch should be bumped
+
+
+Release Notes - Openmeetings - Version 2.1.1 Apache Release
+================================================================================================================
+
+** Bug
+    * [OPENMEETINGS-432] - video only room is coming with white board also
+    * [OPENMEETINGS-439] - An LDAP user can't change their own profile picture.
+    * [OPENMEETINGS-481] - When I reserve a room by sending an email, users who connected to this link from an email have the same email address as me
+    * [OPENMEETINGS-503] - Openmeetings does not logout on the Recording panel
+    * [OPENMEETINGS-507] - Error message is shown when user save the Profile settings 
+    * [OPENMEETINGS-537] - Pop menu  in conference for files shows "Delete folder"
+    * [OPENMEETINGS-586] - FileItem owner_id is not replaced with new id while system import
+    * [OPENMEETINGS-587] - Exclusive audio by hotkey is broken
+    * [OPENMEETINGS-598] - dont build trunk on JDK 1.7 x64
+    * [OPENMEETINGS-608] - Office file are uploaded but not displayed
+    * [OPENMEETINGS-609] - The end time shown under the Book Conference Room option in New Message is Incorrect
+    * [OPENMEETINGS-618] - Incorrect translation
+    * [OPENMEETINGS-625] - Profile Pictures not working on LDAP Accounts
+    * [OPENMEETINGS-634] - No menu accessable after file upload, in a special condition
+    * [OPENMEETINGS-635] - Administration / Configuration : default_lang_id documentation
+    * [OPENMEETINGS-654] - Interview room is broken
+    * [OPENMEETINGS-670] - The webinar is already closed, you wil be rediredcted to some interesting offerings in X sek
+    * [OPENMEETINGS-687] - Microphone is unmuted when user refresh video frame
+
+** Improvement
+    * [OPENMEETINGS-589] - Configurable hot key for Mute/Unmute should be added
+
+----------------------------------------------------------------------------------------------------------------
+----------------------------------------------------------------------------------------------------------------
+----------------------------------------------------------------------------------------------------------------
+
+
+
+Release Notes - Openmeetings - Version 2.1 Apache Release
+================================================================================================================
+
+** Sub-task
+    * [OPENMEETINGS-448] - Test and fix latest trunk to be able to import all old download zip's
+
+
+
+** Bug
+    * [OPENMEETINGS-34] - missing entries in XML language files
+    * [OPENMEETINGS-49] - Synchronisation between Calendar and Dashboard
+    * [OPENMEETINGS-92] - The documents are not deleted from the server after removing them from the system
+    * [OPENMEETINGS-94] - References to the code.google.com need to be updated
+    * [OPENMEETINGS-157] - Registration bug
+    * [OPENMEETINGS-166] - Meeting is created with incorrect start time in the calendar.
+    * [OPENMEETINGS-180] - bug sending invitation
+    * [OPENMEETINGS-196] - Calendar Ical / Simple Mail - double invitation mail
+    * [OPENMEETINGS-212] - Activities and actions: "Deny and remove message " button is not worked
+    * [OPENMEETINGS-243] - "Updated" field in Administration -> LDAP panel contains "null" for string for empty value.
+    * [OPENMEETINGS-251] - Minors layout problems when translating
+    * [OPENMEETINGS-267] - missing translation
+    * [OPENMEETINGS-291] - light does not indicate when the user is speaking
+    * [OPENMEETINGS-310] - Moodle plugin version
+    * [OPENMEETINGS-311] - Language problem after Openmeetings update (accessing from Moodle only)
+    * [OPENMEETINGS-312] - File was null or did not exist: TEST_SETUP_1338945244240.flv
+    * [OPENMEETINGS-314] - Webcam Title of user is username of default OM user
+    * [OPENMEETINGS-316] - ICS attachments for emails not working with Exchange 2003/2007 and Outlook 2003/2007
+    * [OPENMEETINGS-320] - Exception and layout for screensharing/recording client
+    * [OPENMEETINGS-322] - Several Exception in Log
+    * [OPENMEETINGS-327] - Add Restart Save Mail-Queue
+    * [OPENMEETINGS-328] - screen sharing is not closing automatically
+    * [OPENMEETINGS-331] - tooltip for cmd_applyforWhiteBoard room action is not set
+    * [OPENMEETINGS-343] - OM crashes if Inviteв guest with screen sharing rights tries to start screen sharing
+    * [OPENMEETINGS-346] - Screen Sharing does not end with end of meeting
+    * [OPENMEETINGS-362] - Download of profile images broken
+    * [OPENMEETINGS-363] - Some minor bugs in private chat
+    * [OPENMEETINGS-364] - User is not removed from user list when he leaves the room
+    * [OPENMEETINGS-366] - File upload does not show images as options when doing file upload
+    * [OPENMEETINGS-376] - “Notification type” text overflows the drop down data selection area and is partly covered
+    * [OPENMEETINGS-378] - Update Calendar email notification rules to send notification only when data relevant to the users has been changed
+    * [OPENMEETINGS-379] - The Calendar ics format email notification is incorrectly formed
+    * [OPENMEETINGS-380] - Calendar "Add attendee" option has a second option of itself to "Add external" but adding an external attendee does not close this dialog
+    * [OPENMEETINGS-381] - ivy jar in our repository
+    * [OPENMEETINGS-382] - LICENSE file mentions both CDDL and GPL
+    * [OPENMEETINGS-385] - contextmenu  contextmenuitem
+    * [OPENMEETINGS-389] - Create Drupal plugin for OpenMeetings
+    * [OPENMEETINGS-391] - Private and public folder does not appear
+    * [OPENMEETINGS-392] - privateChatTabBottom
+    * [OPENMEETINGS-393] - NumberFormatException while creating user or room
+    * [OPENMEETINGS-394] - save and load whiteboard does not work
+    * [OPENMEETINGS-396] - ICS attachments not recognised in Outlook 2003
+    * [OPENMEETINGS-402] - I cannot open Interview recorded
+    * [OPENMEETINGS-403] - Missing rooms
+    * [OPENMEETINGS-408] - Interview Room (1)
+    * [OPENMEETINGS-415] - NetStream NetStatus event does not work when attached to client object
+    * [OPENMEETINGS-418] - ScreenShare russian charset
+    * [OPENMEETINGS-420] - small problems in the current version
+    * [OPENMEETINGS-422] - Java error: TEST_SETUP_xxx.flv does not exist; javax error : ClientBroadCast Stream; published name=null
+    * [OPENMEETINGS-423] - Installation OM2.0
+    * [OPENMEETINGS-424] - Adjust Stream Volume
+    * [OPENMEETINGS-428] - Refactor User administration to Wicket
+    * [OPENMEETINGS-431] - OpenMeetings behind a proxy doesn't work for screen sharing
+    * [OPENMEETINGS-433] - Add Wicket enabled room administration
+    * [OPENMEETINGS-434] - Create admin area for groups, configurations, ldaps, servers
+    * [OPENMEETINGS-438] - Some bugs
+    * [OPENMEETINGS-440] - Problem in installation process
+    * [OPENMEETINGS-441] - Can't backup
+    * [OPENMEETINGS-445] - Backup Export does not work at all
+    * [OPENMEETINGS-449] - Cannot import backup file
+    * [OPENMEETINGS-450] - Wicket UI locked after accepting download of backup
+    * [OPENMEETINGS-451] - Search in user groups Wicket UI does not work
+    * [OPENMEETINGS-453] - Recordings associated with wrong user after import if already a user was in the database
+    * [OPENMEETINGS-454] - Scrennsharing initiated by invited user ends up in exception report
+    * [OPENMEETINGS-455] - Create RTMPClient to do a load test
+    * [OPENMEETINGS-458] - Missing language string "pluginname"
+    * [OPENMEETINGS-459] - Remove RoomClient from database
+    * [OPENMEETINGS-466] - Screen Sharing window, Chinese Simplified (lang_id=11) text display "?????"
+    * [OPENMEETINGS-467] - No internal user can be selected when planning a meeting
+    * [OPENMEETINGS-469] - Deleted meeting data remains in SIP db tables
+    * [OPENMEETINGS-472] - red5sip rev68 will not run
+    * [OPENMEETINGS-474] - Links to rooms sent via email do not work
+    * [OPENMEETINGS-482] - Network check script hangs after the second "Port" button click 
+    * [OPENMEETINGS-489] - Start recording test hangs if no webcamera connected
+    * [OPENMEETINGS-490] - Wrong directory for test file in "Choose device" window
+    * [OPENMEETINGS-492] - Restoration of backup failed
+    * [OPENMEETINGS-493] - Uploading Libreoffice-format files only results in "Deleted"
+    * [OPENMEETINGS-496] - It's unable to send localized SMS message.
+    * [OPENMEETINGS-498] - Backup fails with Exception
+    * [OPENMEETINGS-502] - Some labels are hardcoded on the System backup tab 
+    * [OPENMEETINGS-504] - Some labels are not translated to russian language
+    * [OPENMEETINGS-505] - Values of the "Unerole User" and "Server Address" fields are mixed on the Administrator -> Connections tab.
+    * [OPENMEETINGS-506] - Localized (russian) file name is not uploaded on the Profile tab
+    * [OPENMEETINGS-509] - Comment is shown incorrectly in the Choose device dialog
+    * [OPENMEETINGS-512] - Files are not uploaded in the rooms
+    * [OPENMEETINGS-515] - Video recording artifacts at the begin of the file
+    * [OPENMEETINGS-516] - After graduation tasks
+    * [OPENMEETINGS-517] - sensSMS flag is not imported/exported by admin.
+    * [OPENMEETINGS-519] - Need to update Configuration page on Openmeetings site.
+    * [OPENMEETINGS-520] - Missing areas on the recorded video
+    * [OPENMEETINGS-521] - The "Show/Copy chat log" and "Delete server chat log" buttons are not available for the Ptivate Chat
+    * [OPENMEETINGS-523] - download manual ghostcript download link is dead
+    * [OPENMEETINGS-524] - Unenroled user is not thrown from the conference room 
+    * [OPENMEETINGS-525] - Font styles icon is enabled for Ptivate Chat if the "Allow font styles" is not enabled for conference room
+    * [OPENMEETINGS-526] - Not enough checking in the screensharing/recording
+    * [OPENMEETINGS-530] - Network testing tool on login page does not work when having OM configured for HTTPS and RTMPS
+    * [OPENMEETINGS-531] - Error Missing[XXXX]
+    * [OPENMEETINGS-536] - In upload dialog "Select file" does not work
+    * [OPENMEETINGS-540] - Uploading of .odt files
+    * [OPENMEETINGS-552] - Release blocking UI issues
+    * [OPENMEETINGS-561] - Video is not removed on Whiteboard closing
+    * [OPENMEETINGS-563] - "Black box" is displayed on test audio/video setup dialog
+    * [OPENMEETINGS-565] - Stackoverflow Exception when you goto your user profile and try to save it.
+    * [OPENMEETINGS-566] - No default timezone selection in registration/sign up when user is in timezone +12
+    * [OPENMEETINGS-567] - If you hit the "start upload" button twice, while the conversion is running, Openmeetings will run into an error
+    * [OPENMEETINGS-568] - OpenMeetings requests access to Cam even if there is none
+    * [OPENMEETINGS-569] - Faulty highperf settings in bat script
+    * [OPENMEETINGS-572] - Empty fields are replaced with string "null" after export&import
+    * [OPENMEETINGS-580] - Smslib 3.5.3 should be used.
+    * [OPENMEETINGS-582] - 2.0 RoomPoll and Configs restore failed
+
+
+
+
+** Improvement
+    * [OPENMEETINGS-93] - Create Openmeetings plug-in
+    * [OPENMEETINGS-119] - New users french manual
+    * [OPENMEETINGS-299] - Language import should be improved to take less time
+    * [OPENMEETINGS-339] - File location detection should be centralized
+    * [OPENMEETINGS-349] - OM should be scalable 
+    * [OPENMEETINGS-356] - Modify Rooms menu to have three options for each of the room types
+    * [OPENMEETINGS-357] - Users should first log into "Private rooms", have as a Admin selectable option for where users first log into
+    * [OPENMEETINGS-361] - It should be available to set logo in OM
+    * [OPENMEETINGS-384] - Mention that the file parameter is optional for the admin setup script
+    * [OPENMEETINGS-386] - Import/Export should be automatic based on Annotations
+    * [OPENMEETINGS-387] - It should be possible to create Appointment and use existent room
+    * [OPENMEETINGS-390] - Openmeetings Plugin for Bitrix need to be implemented
+    * [OPENMEETINGS-395] - Ability to add multiple external attendees should be added to the calendar
+    * [OPENMEETINGS-397] - Private chat with chat disabled
+    * [OPENMEETINGS-398] - Updated french translation for OM 2.1
+    * [OPENMEETINGS-399] - jitsi openmeetings plugin
+    * [OPENMEETINGS-400] - Improve volume slider
+    * [OPENMEETINGS-436] - Ability to moderate room chat should be added
+    * [OPENMEETINGS-470] - SIP meeting extensions
+    * [OPENMEETINGS-477] - Possibility to copy invitation link to the clipboard should be added
+    * [OPENMEETINGS-478] - It should be possible to enable auto videopod selection
+    * [OPENMEETINGS-480] - It would be better to remove confirmation dialog when user turns micro on/off.
+    * [OPENMEETINGS-497] - Confirmation diolog for the turning micro on/off is inconvenient.
+    * [OPENMEETINGS-501] - fresh build fails with class org/jdom/JDOMException not found in anakia build section
+    * [OPENMEETINGS-518] - Sms text sent as a meeting reminder is too long sometime.
+    * [OPENMEETINGS-527] - Confirm an exclusive audio
+    * [OPENMEETINGS-529] - AEC should be utilized in OM
+    * [OPENMEETINGS-535] - an update of the german language file
+    * [OPENMEETINGS-541] - Updated version of French language file
+    * [OPENMEETINGS-562] - To import ppt presentation delete page
+    * [OPENMEETINGS-583] - Ability to disable enhanced microphone should be added
+
+** New Feature
+    * [OPENMEETINGS-111] - Command line admin need to be created
+    * [OPENMEETINGS-342] - Private Chat should be available in the room
+    * [OPENMEETINGS-350] - Hot key should be added to be able to "rearrange" video windows in the room
+    * [OPENMEETINGS-351] - Add a possibility to send sms as an appointment reminder
+    * [OPENMEETINGS-354] - Volume slider
+    * [OPENMEETINGS-383] - Plugin for Joomla should be added to Openmeetings
+
+
+
+
+
+
+** Task
+    * [OPENMEETINGS-41] - OM without private storage area
+    * [OPENMEETINGS-107] - Unify database schema
+    * [OPENMEETINGS-248] - Remove LGPL Icons from Symbol/Cliparts and Emoticons
+    * [OPENMEETINGS-306] - Initial network quality test
+    * [OPENMEETINGS-341] - Update to portugues brasil Language
+    * [OPENMEETINGS-414] - Delete SIP Applet from stack
+    * [OPENMEETINGS-417] - How to add/register SIP extension in OpenMeeting ?
+    * [OPENMEETINGS-446] - Create a Master backup File for last versions (including all generated data)
+    * [OPENMEETINGS-522] - add Redmine Plugin Link to HomePage
+    * [OPENMEETINGS-585] - Clustering documentation
+
+
+
+** Test
+    * [OPENMEETINGS-50] - content of whiteboards
+
+
+----------------------------------------------------------------------------------------------------------------
+----------------------------------------------------------------------------------------------------------------
+----------------------------------------------------------------------------------------------------------------
+
+
+Release Notes - OpenMeetings - Version 2.0-INCUBATING
+================================================================================================================
+Sub-task
+
+    [OPENMEETINGS-8] - Generate CalendarAPI for SOAP/REST WebServices
+    [OPENMEETINGS-9] - Design MockUp for new Calendar UI
+    [OPENMEETINGS-40] - Merge Audio/Video components to trunk
+    [OPENMEETINGS-44] - remove all old audio/video components
+    [OPENMEETINGS-47] - fix ScopeApplicationAdapter / sync and message broadcasting mechanism to not send messages to SWF10 client
+    [OPENMEETINGS-51] - fix url params (invitationHash / secureHash / language_id / roomScopeId / et cetera ) to be forwarded to inner SWF components
+    [OPENMEETINGS-52] - fix icon status in new video components
+    [OPENMEETINGS-53] - Add security mechanism to LocalConnection subscribers
+    [OPENMEETINGS-54] - fix recorder to use new audio/video components and fix recording itself to reference correct streams
+    [OPENMEETINGS-55] - fix testing application (5 second video recording on room enter) to use new a/v components
+    [OPENMEETINGS-61] - fix screensharing player to use the new audio/video components
+    [OPENMEETINGS-62] - Clean up 5-second recordings using a scheduler
+    [OPENMEETINGS-65] - fix whiteboard video player to use the new audio/video components
+    [OPENMEETINGS-71] - fix interview room type to use new audio/video components
+    [OPENMEETINGS-73] - fix mute functionality in new video components
+    [OPENMEETINGS-77] - changeDevice.lzx must be transformed to SWF10
+    [OPENMEETINGS-79] - SharedObject in SWF10 does not store settings
+    [OPENMEETINGS-80] - Some notification windows need to be moved to SWF10
+    [OPENMEETINGS-89] - Fix new option "hideWhiteboard" with layout of video pods
+    [OPENMEETINGS-97] - RTPMSClient for ScreenSharing should be created/tested
+    [OPENMEETINGS-98] - "Borrowed" code should be removed from ScreenSharing client
+    [OPENMEETINGS-105] - Add the license header to all SWF10 files
+    [OPENMEETINGS-170] - When you republish your stream while recording or suddenly leave the meeting, the recording has no audio
+
+Bug
+
+    [OPENMEETINGS-5] - Invitation default language
+    [OPENMEETINGS-15] - Usability problem with login at http://demo.openmeetings.de/openmeetings/
+    [OPENMEETINGS-18] - File upload no work
+    [OPENMEETINGS-26] - Whiteboard error "arrow tool" dragging from right to left in any angle.
+    [OPENMEETINGS-28] - LDAP wrong default mapping for firstname
+    [OPENMEETINGS-31] - Upload files will not convert to SWF.
+    [OPENMEETINGS-48] - Log are either not written or in the wrong logfile
+    [OPENMEETINGS-56] - LDAP authentication is not correct
+    [OPENMEETINGS-64] - whiteboard id
+    [OPENMEETINGS-87] - All DB related JUnit tests are failed
+    [OPENMEETINGS-91] - Fix field type's of comment/description fields to use datatype Text (instead of VARCHAR(255))
+    [OPENMEETINGS-114] - With trunk svn 1307221: LDAP authentication fails because user can't be imported into local DB
+    [OPENMEETINGS-116] - Menu bar shortcuts do not work
+    [OPENMEETINGS-118] - Activity UI: Fix duplicated calls, removal of items does not work
+    [OPENMEETINGS-122] - Fix JUnit tests
+    [OPENMEETINGS-123] - Wildcard on creating WebService docs doesn't work
+    [OPENMEETINGS-127] - Backup\Import Asterisk related tables
+    [OPENMEETINGS-133] - Sources produced by nightly build should be buildable with ant
+    [OPENMEETINGS-135] - Video window can't be maximized
+    [OPENMEETINGS-137] - Loading of stored whiteboards doesn't work (error in loading path)
+    [OPENMEETINGS-138] - Errors and quality of Recording with screensharing application
+    [OPENMEETINGS-139] - Unable to Add User into Usergroups
+    [OPENMEETINGS-140] - Login options/features been reduced in current update
+    [OPENMEETINGS-141] - onMetaData Event not thrown in AS3 Non-Debug version
+    [OPENMEETINGS-142] - 1-2-3-4 buttons on dashboard don't do anything
+    [OPENMEETINGS-144] - When using openLDAP authentication, the source code uses the hardcoded 'uid' attribute to map logins and user DNs instead of the field_user_principal parameter
+    [OPENMEETINGS-145] - Unmuting/exclusive audio doesn't work and icons show wrong status in video pod after entering a room
+    [OPENMEETINGS-149] - Error while installing on MySQL DB openmeetings-2.0.0.r1311115-08-04-2012_2307
+    [OPENMEETINGS-150] - Error restoring password
+    [OPENMEETINGS-156] - UI BUGS?
+    [OPENMEETINGS-158] - Degradation of the sound quality in recordings in the recent release
+    [OPENMEETINGS-161] - UI Bugs in private messages
+    [OPENMEETINGS-162] - Exception in Screensharing
+    [OPENMEETINGS-163] - Recording does no more work if you start to share audio/video AFTER starting the recording
+    [OPENMEETINGS-164] - java.lang.ArrayIndexOutOfBoundsException: 5 in Recording Conversion
+    [OPENMEETINGS-165] - Video freezes as soon as two people have audio/video turned on and you start to record the meeting => Convert FLV writers to act async
+    [OPENMEETINGS-171] - Screensharing notification not showing when already running
+    [OPENMEETINGS-172] - Home drive in recorder UI, minimize the home drive makes the list of files empty, drag and rop file from home drive to public drive
+    [OPENMEETINGS-174] - CLI import of backup does not work
+    [OPENMEETINGS-175] - CLI installer does not create install.xml
+    [OPENMEETINGS-176] - Import of Backup from version 1.9.x fails to import conference rooms
+    [OPENMEETINGS-177] - Meeting Room Invitation Link Not working
+    [OPENMEETINGS-178] - Invited user has access to adminstration panel
+    [OPENMEETINGS-179] - User Not Removed from chat participants window after logout..
+    [OPENMEETINGS-181] - Video Window, Conference room
+    [OPENMEETINGS-182] - OM need to be restarted after fresh installation to get menu list
+    [OPENMEETINGS-187] - Moderator and his room
+    [OPENMEETINGS-188] - Inserting room, horizontal bar does not appear
+    [OPENMEETINGS-190] - Problem with language when invoking OM from Moodle module
+    [OPENMEETINGS-191] - When I enable HTTPS and RTMPS the screen sharing resultant JNLP file has the wrong address = http://servername:443/.... instead of https://servername/..... if I edit the JNLP file by hand on the client level and change the address it works
+    [OPENMEETINGS-193] - Fix timezones that are missing
+    [OPENMEETINGS-195] - Send private message / Show user profile buttons
+    [OPENMEETINGS-196] - Calendar Ical / Simple Mail - double invitation mail
+    [OPENMEETINGS-197] - Calendar Ical / Simple Mail - room language
+    [OPENMEETINGS-198] - Password and dashboard calendar event list
+    [OPENMEETINGS-199] - Screensharing and recording does not work under OSX with Java 64Bit
+    [OPENMEETINGS-200] - Invitation link does not arrive
+    [OPENMEETINGS-203] - two languages are shown
+    [OPENMEETINGS-205] - ReplyTo Field leads to exception when sending emails to external users
+    [OPENMEETINGS-206] - wrong meeting times
+    [OPENMEETINGS-208] - Incorrectly filled "Last name" field on the User details form when created user with "Sign in" form
+    [OPENMEETINGS-209] - Encoding at install OpenMeetings
+    [OPENMEETINGS-210] - Calendar event
+    [OPENMEETINGS-211] - NullPointerException in FLVRecorderService.stopRecordingShow
+    [OPENMEETINGS-214] - When calendar event invitation is sent, invitation_text_from value displays with the name of the person for whom the invitation is being sent to but should be showing the sender's name
+    [OPENMEETINGS-215] - Created date is duplicated where restoring base from backup
+    [OPENMEETINGS-216] - UI problem
+    [OPENMEETINGS-219] - �Delete� button is not visible
+    [OPENMEETINGS-225] - If object on whiteboard of type "freedraw" ("paint") is dragged/moved, the object is gone when you re-enter the room
+    [OPENMEETINGS-229] - "Exit"button is not shown for inviting users from room
+    [OPENMEETINGS-230] - Error in the field name on the form "Add external"
+    [OPENMEETINGS-232] - Rooms are imported with invalid room types
+    [OPENMEETINGS-233] - Font styles in propertyPanel are getting disabled.
+    [OPENMEETINGS-234] - Video and Screen sharing not working with HTTPS and RTMPS - Java Application starts but doesnt connect - java trace logs shows "[WARN] [NioProcessor-2] org.red5.server.net.rtmps.RTMPSMinaIoHandler - Exception caught Keystore or password are null"
+    [OPENMEETINGS-237] - Calender reminder email invitation link fails due to link missing "&language=x" in URL
+    [OPENMEETINGS-238] - Calendar shows incorrect day of week for the actual date when timezone is GMT+10
+    [OPENMEETINGS-239] - Calendar Event details Comment/Description field text can overflow the boundary of the Description field of the Meeting Room's Event details dialog box
+    [OPENMEETINGS-241] - Cannot send emailed Invitations from a Meeting room
+    [OPENMEETINGS-242] - Moodle Plugin
+    [OPENMEETINGS-244] - Calendar doesn't show Day / Week / Month
+    [OPENMEETINGS-246] - Remote Cursor is no more visible
+    [OPENMEETINGS-249] - Using LDAP with latest build fails to login, - after login screen im prompted with "You account is assigned to multiple usergroups... " The drop down list is empty - I have checked the MYSQL DB table "oraganisations" and there are two entries there
+    [OPENMEETINGS-250] - Moderator loses Moderation
+    [OPENMEETINGS-252] - Fix ImportInitValues.java default.timezone not taken from install config and add (optional) mapping "ldap_user_attr_timezone" in the ldap config
+    [OPENMEETINGS-257] - Exception in CLI Installer when installing in a new database
+    [OPENMEETINGS-263] - Missing invitation from calendar
+    [OPENMEETINGS-264] - Spinners in ScreenSharing applet works improperly
+    [OPENMEETINGS-269] - Image Download Issue from the Whiteboard - Naming problem and Deletion.jpg file - Reported by George Kirkham
+    [OPENMEETINGS-270] - MemoryLeak / Dead-Lock in FlvRecorderConverter
+    [OPENMEETINGS-271] - Whiteboad Undo tool does not remove all objects from the Whiteboard
+    [OPENMEETINGS-272] - When entering a room, the "Choose devices" window is behind any attendee video windows.
+    [OPENMEETINGS-275] - "User Speaks" icon in Users list does not indicate when the person is speaking
+    [OPENMEETINGS-277] - Latest build fails to start using RTMPS
+    [OPENMEETINGS-278] - When I enter a room and choose a lower resolution the "Choose Devices" window shrinks but the text at the top doesn't wrap to re-size
+    [OPENMEETINGS-279] - Minimize Video button works improperly
+    [OPENMEETINGS-281] - Enhance Language Editor with search fields
+    [OPENMEETINGS-282] - Video window "Exclusive Audio" causes tool tips message boxes to be left on the screen
+    [OPENMEETINGS-283] - Choose devices - Start test recording - no longer plays back the recorded clip
+    [OPENMEETINGS-284] - Audio is not working
+    [OPENMEETINGS-286] - video/audio broadcast problem with language of japanese
+    [OPENMEETINGS-287] - Unable to connect from moodle. Builde 2.0.0.r1341675-22-05-2012_2319
+    [OPENMEETINGS-288] - Unable to connect from moodle. Builde 2.0.0.r1341675-22-05-2012_2319
+    [OPENMEETINGS-289] - Unable to connect from moodle. Builde 2.0.0.r1341675-22-05-2012_2319
+    [OPENMEETINGS-294] - Cannot install Openmeetings with mysql
+    [OPENMEETINGS-295] - OpenMeetings with rtmp over HTTP Tunneling does not work anymore with Red5 r4374
+    [OPENMEETINGS-296] - Language export works only in english
+    [OPENMEETINGS-297] - Users are imported with invalid country
+    [OPENMEETINGS-298] - Problems with shortcut-key 'Ctrl + Shift + m', Camera/Mic settings-screen pops-up when typing 'M' (Shift+m)
+    [OPENMEETINGS-300] - $APP_NAME placeholder is not correctly handled in some email templates
+    [OPENMEETINGS-302] - Delete massges in Trash
+    [OPENMEETINGS-304] - Can not delete mail in Trash
+    [OPENMEETINGS-307] - Language does not load at login
+    [OPENMEETINGS-312] - File was null or did not exist: TEST_SETUP_1338945244240.flv
+    [OPENMEETINGS-314] - Webcam Title of user is username of default OM user
+    [OPENMEETINGS-316] - ICS attachments for emails not working with Exchange 2003/2007 and Outlook 2003/2007
+    [OPENMEETINGS-317] - Multiple appointments generated when clicking save more than once
+    [OPENMEETINGS-319] - Recordings at demo.openmeetings.com are not downloadble
+    [OPENMEETINGS-320] - Exception and layout for screensharing/recording client
+    [OPENMEETINGS-323] - Update Red5 to latest version (r4380) in both server and client library to test RTMPT and file not found exceptions
+    [OPENMEETINGS-324] - Limit login
+
+Improvement
+
+    [OPENMEETINGS-2] - Modify ANT Build script to create correct Build Artefacts / Integrate into https://builds.apache.org/
+    [OPENMEETINGS-4] - Microphone rooms
+    [OPENMEETINGS-10] - openmeetings_1_9_1_r4707 Default Language Error
+    [OPENMEETINGS-45] - New Audio/Video Components
+    [OPENMEETINGS-46] - Updated German lang file
+    [OPENMEETINGS-59] - Japanese translation update
+    [OPENMEETINGS-63] - Update Sharing RTMPClient with latest Red5 version and test if it works now
+    [OPENMEETINGS-66] - Whiteboard Player should aspect ratio when importing a video to the whiteboard
+    [OPENMEETINGS-83] - multipart.jar should be replaced with implementation compatible with ASF licence
+    [OPENMEETINGS-86] - SVN directory structure need to be optimized
+    [OPENMEETINGS-101] - Linking OpenMeetings tutorials and manuals
+    [OPENMEETINGS-113] - Define a default Login-Domain (ie an Ldap domain) to be automatically selected in the frontend login window
+    [OPENMEETINGS-125] - Text does not fit in the button.
+    [OPENMEETINGS-146] - Add mechanism to debug LocalConnection better
+    [OPENMEETINGS-184] - When we make a mistake or we use the same ID in users add administration menu => all fields become empty !
+    [OPENMEETINGS-185] - There is no sense to have two users / moderator / administrator with the same email
+    [OPENMEETINGS-194] - Command line admin: added parameter "--drop", to drop database before install
+    [OPENMEETINGS-202] - Calendar event
+    [OPENMEETINGS-226] - It should be possible to configure OpenOffice location via OM config
+    [OPENMEETINGS-245] - configuration table is not backup/restored
+    [OPENMEETINGS-247] - Make document conversion quality an administrator changeable option
+    [OPENMEETINGS-253] - Made some changes to the german language deutsch.xml
+    [OPENMEETINGS-259] - English Language Text improvements
+    [OPENMEETINGS-268] - Improvements for english text for 506, "registering_mail_text_head", 507, "registering_mail_text_head2", 512, "register_mail_subject"
+    [OPENMEETINGS-276] - Need a way to select "Exclusive Audio" for attenees who have selected "Audo Only"
+    [OPENMEETINGS-285] - Update for Chinese Language text
+    [OPENMEETINGS-309] - Complete French translation
+    [OPENMEETINGS-313] - Errors with it's types and descriptions should be listed on the site
+
+New Feature
+
+    [OPENMEETINGS-129] - Load Icons dynamically at runtime and replace LGPL licensed icons
+    [OPENMEETINGS-130] - Add mechanism for advanced runtime theming
+    [OPENMEETINGS-134] - Themes: Add Color definitions to default-theme.xml file and enhance with more color definitions
+    [OPENMEETINGS-186] - ReplyTo email address should be set to user email address.
+    [OPENMEETINGS-266] - ScreenSharing need to be enhanced to enable screen publishing
+
+Task
+
+    [OPENMEETINGS-7] - Replace lzCalendar with non CPL implementation
+    [OPENMEETINGS-32] - Replace JOD Library with own implementation
+    [OPENMEETINGS-60] - OpenMeetings Plugin for Atlassian JIRA
+    [OPENMEETINGS-70] - There should be a scheduler the does a check for test-recordings older then 1 hour and delete them.
+    [OPENMEETINGS-74] - Integrate Apache Ivy for dependency management of Libraries
+    [OPENMEETINGS-75] - Remove roomtype audience
+    [OPENMEETINGS-76] - Remove Event Recording
+    [OPENMEETINGS-82] - Atlassian Confluence Integration Plugin
+    [OPENMEETINGS-85] - Fix and improve Chat Layout
+    [OPENMEETINGS-88] - Fix client side modules structure (delete "Plugins" directory)
+    [OPENMEETINGS-99] - Project restructuring (sources, beans, eclipse)
+    [OPENMEETINGS-100] - JabberService should be added to Axis2 services
+    [OPENMEETINGS-106] - JabberService is missing in the API Doclet task that generates the SOAP/REST API Documentation
+    [OPENMEETINGS-109] - Show Number of Unread private messages in the dashboard and upgrade layout
+    [OPENMEETINGS-110] - Refactor menubar layout and tabbuttons in dashboard/rooms/settings section + remove "navisub" table + Fix to use "NamedQuery" for main navigation to enable/disable entries in the mainnavi
+    [OPENMEETINGS-117] - Refactor Conference Coloring and Layout
+    [OPENMEETINGS-124] - Clean Up Splash Screen and unused resources in init
+    [OPENMEETINGS-128] - Remove "doc" folder with partly documentated japanese documention and fix icon resources that are not needed
+    [OPENMEETINGS-147] - The green dot that indicates somebody else is speaking produces too many events and is badly performing
+    [OPENMEETINGS-160] - Enable sending messages to external users from the private messages including invitations to conference rooms and events
+    [OPENMEETINGS-169] - Clean up WhiteBoardService to use proper sync methods
+    [OPENMEETINGS-173] - CLI needs a check on those params that are "must haves" for installation
+    [OPENMEETINGS-222] - Enable Keyboard actions to whiteboard (Arrow Down|Left|Right|Up [+Shift] and Delete) when object is selected
+    [OPENMEETINGS-223] - Hardly anybody knows that you can double click to re-edit the text
+    [OPENMEETINGS-231] - Update website with new screenshots
+    [OPENMEETINGS-236] - Where to put portuguese Brasil.xml.
+
+Test
+
+    [OPENMEETINGS-104] - Error in cyrillic filenames
+    [OPENMEETINGS-115] - Installation error
+    [OPENMEETINGS-120] - Blank screen on Backup
+    [OPENMEETINGS-121] - Share/record screen doesn't work
+    [OPENMEETINGS-136] - Duplicate message in Activity section
+    [OPENMEETINGS-148] - when I click to button of page, that haven't anything content
+    [OPENMEETINGS-155] - record not playing
+    [OPENMEETINGS-220] - main.lzx changes (background)
+    [OPENMEETINGS-221] - problem: recordings with 1 frame/sec
+    [OPENMEETINGS-240] - jod converter error
+    [OPENMEETINGS-303] - Can not Export new language
+
+Wish
+
+    [OPENMEETINGS-11] - Openmeeting use LDAP as default domain
+    [OPENMEETINGS-20] - Add hideWhiteboard attributes in Room Object and make it possible to configure / editable via Administration > Rooms
+    [OPENMEETINGS-21] - Add hideChat attributes in Room Object and make it possible to configure / editable via Administration > Rooms
+    [OPENMEETINGS-22] - Add hideActivitiesAndActions attributes in Room Object and make it possible to configure / editable via Administration > Rooms
+    [OPENMEETINGS-23] - Add hideFilesExplorer attributes in Room Object and make it possible to configure / editable via Administration > Rooms
+    [OPENMEETINGS-24] - Add hideScreenSharing attributes in Room Object and make it possible to configure / editable via Administration > Rooms
+    [OPENMEETINGS-25] - Add SOAP/REST Call
+    [OPENMEETINGS-78] - datatype of externalUserId
+    [OPENMEETINGS-254] - German System Backup garbled text
+    [OPENMEETINGS-255] - Possibility to disable Show Sip Dialer in Meeting Room
+    [OPENMEETINGS-258] - Combine device settings and audio/video test in single UI
+    [OPENMEETINGS-262] - Document conversion Windows / Linux different
+
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..ce96e81
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,1791 @@
+
+Apache OpenMeetings License:
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+   
+======================================================================================================================
+
+Following components are direct work from the Apache OpenMeetings project:
+
+======================================================================================================================
+
+admin.bat
+admin.sh
+network_test.sh
+webapps/openmeetings/conf/om_ldap.cfg
+webapps/openmeetings/conf/sample_openldap_om_ldap.cfg
+webapps/openmeetings/css/admin.css
+webapps/openmeetings/css/calendar.css
+webapps/openmeetings/css/forms.css
+webapps/openmeetings/css/history.css
+webapps/openmeetings/css/theme.css
+
+webapps/openmeetings/docs/*
+webapps/openmeetings/js/openmeetings_functions.js
+webapps/openmeetings/languages/*
+webapps/openmeetings/public/favicon.ico
+webapps/openmeetings/public/config.*
+webapps/openmeetings/public/main.as3.swf11.swf
+webapps/openmeetings/public/main.swf8.swf
+webapps/openmeetings/public/maindebug.as3.swf11.swf
+webapps/openmeetings/public/maindebug.swf8.swf
+webapps/openmeetings/public/networktesting.swf10.swf
+webapps/openmeetings/public/networktestingdebug.swf10.swf 
+webapps/openmeetings/public/theme.*
+webapps/openmeetings/screensharing
+webapps/openmeetings/streams/*
+webapps/openmeetings/upload/*
+
+webapps/openmeetings/WEB-INF/openmeetings-applicationContext.xml
+webapps/openmeetings/WEB-INF/red5-web.properties
+webapps/openmeetings/WEB-INF/red5-web.xml
+webapps/openmeetings/WEB-INF/spring-mvc-servlet.xml
+webapps/openmeetings/WEB-INF/velocity.properties
+webapps/openmeetings/WEB-INF/web.xml
+webapps/openmeetings/WEB-INF/classes/logback.xsd
+webapps/openmeetings/WEB-INF/classes/logback-config.xml
+webapps/openmeetings/WEB-INF/classes/META-INF/db2_persistence.xml
+webapps/openmeetings/WEB-INF/classes/META-INF/derby_persistence.xml
+webapps/openmeetings/WEB-INF/classes/META-INF/mssql_persistence.xml
+webapps/openmeetings/WEB-INF/classes/META-INF/mysql_persistence.xml
+webapps/openmeetings/WEB-INF/classes/META-INF/oracle_persistence.xml
+webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml
+webapps/openmeetings/WEB-INF/classes/META-INF/postgres_persistence.xml
+webapps/openmeetings/WEB-INF/conf/axis2.xml
+webapps/openmeetings/WEB-INF/conf/axis2.xsd
+webapps/openmeetings/WEB-INF/services/openmeetings-3.0.0-SNAPSHOT.aar
+webapps/openmeetings/WEB-INF/services/services.list
+webapps/openmeetings/WEB-INF/services/version.aar
+
+webapps/openmeetings/WEB-INF/lib/openmeetings-axis-3.0.0-SNAPSHOT.jar
+webapps/openmeetings/WEB-INF/lib/openmeetings-cli-3.0.0-SNAPSHOT.jar
+webapps/openmeetings/WEB-INF/lib/openmeetings-core-3.0.0-SNAPSHOT.jar
+webapps/openmeetings/WEB-INF/lib/openmeetings-db-3.0.0-SNAPSHOT.jar
+webapps/openmeetings/WEB-INF/lib/openmeetings-util-3.0.0-SNAPSHOT.jar
+webapps/openmeetings/WEB-INF/lib/openmeetings-web-3.0.0-SNAPSHOT.jar
+
+webapps/openmeetings/screensharing/icon.jpg
+webapps/openmeetings/screensharing/splashicon.jpg
+webapps/openmeetings/screensharing/openmeetings-screenshare-3.0.0-SNAPSHOT.jar
+
+======================================================================================================================
+
+Further those components are either itself or derivate work from 
+projects licensed under the Apache License 2.0:
+
+======================================================================================================================
+
+red5.jar
+webapps/openmeetings/screensharing/red5-client.jar
+webapps/openmeetings/screensharing/red5.jar
+boot.jar
+commons-cli-jar-1.2.jar
+red5.bat
+red5.sh
+red5-highperf.sh
+red5-highperf.bat
+red5-debug.sh
+red5-debug.bat
+red5-shutdown.sh
+red5-shutdown.bat
+conf/access.properties
+conf/build_standalone.properties
+conf/catalina.policy
+conf/context.xml
+conf/ehcache.xml
+conf/jee-container-ssl.xml
+conf/jee-container.xml
+conf/keystore
+conf/keystore.jmx
+conf/logback.xml
+conf/no-jee-container.xml
+conf/password.properties
+conf/quartz.properties
+conf/realm.properties
+conf/red5-common.xml
+conf/red5-core.xml
+conf/red5.globals
+conf/red5.policy
+conf/red5.properties
+conf/red5.xml
+conf/tomcat-users.xml
+conf/truststore.jmx
+conf/web.xml
+webapps/red5-default.xml
+webapps/root/biglogo.png
+webapps/root/crossdomain.xml
+webapps/root/favicon.ico
+webapps/root/favicon.png
+webapps/root/flvdemo.html
+webapps/root/gc.jsp
+webapps/root/index.html
+webapps/root/logo.png
+webapps/root/WEB-INF/red5-web.properties
+webapps/root/WEB-INF/red5-web.xml
+webapps/root/WEB-INF/web.xml
+
+
+webapps/openmeetings/WEB-INF/lib/apache-mime4j-core-jar-0.8-SNAPSHOT.jar
+webapps/openmeetings/WEB-INF/lib/asterisk-java-jar-1.0.0.CI-20130102.214528-1134.jar
+webapps/openmeetings/WEB-INF/lib/axiom-api-bundle-1.2.15-SNAPSHOT.jar
+webapps/openmeetings/WEB-INF/lib/axiom-dom-bundle-1.2.15-SNAPSHOT.jar
+webapps/openmeetings/WEB-INF/lib/axiom-impl-bundle-1.2.15-SNAPSHOT.jar
+webapps/openmeetings/WEB-INF/lib/axis2-jar-1.7.0-SNAPSHOT.jar
+webapps/openmeetings/WEB-INF/lib/axis2-jaxws-jar-1.7.0-SNAPSHOT.jar
+webapps/openmeetings/WEB-INF/lib/axis2-kernel-jar-1.7.0-SNAPSHOT.jar
+webapps/openmeetings/WEB-INF/lib/axis2-metadata-jar-1.7.0-SNAPSHOT.jar
+webapps/openmeetings/WEB-INF/lib/axis2-saaj-jar-1.7.0-SNAPSHOT.jar
+webapps/openmeetings/WEB-INF/lib/axis2-transport-http-bundle-1.7.0-SNAPSHOT.jar
+webapps/openmeetings/WEB-INF/lib/axis2-transport-local-bundle-1.7.0-SNAPSHOT.jar
+webapps/openmeetings/WEB-INF/lib/batik-anim-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/batik-awt-util-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/batik-bridge-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/batik-codec-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/batik-css-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/batik-dom-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/batik-ext-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/batik-extension-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/batik-gui-util-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/batik-gvt-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/batik-parser-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/batik-rasterizer-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/batik-script-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/batik-slideshow-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/batik-squiggle-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/batik-svg-dom-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/batik-svggen-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/batik-svgpp-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/batik-swing-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/batik-transcoder-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/batik-ttf2svg-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/batik-util-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/batik-xml-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/commons-dbcp-jar-1.4.jar
+webapps/openmeetings/WEB-INF/lib/commons-digester-jar-2.1.jar
+webapps/openmeetings/WEB-INF/lib/commons-httpclient-jar-3.1.jar
+webapps/openmeetings/WEB-INF/lib/commons-lang-jar-2.6.jar
+webapps/openmeetings/WEB-INF/lib/commons-net-jar-3.1.jar
+webapps/openmeetings/WEB-INF/lib/commons-transaction-jar-1.2.jar
+webapps/openmeetings/WEB-INF/lib/derby-jar-10.10.1.1.jar
+webapps/openmeetings/WEB-INF/lib/derbyclient-jar-10.10.1.1.jar
+webapps/openmeetings/WEB-INF/lib/derbynet-jar-10.10.1.1.jar
+webapps/openmeetings/WEB-INF/lib/fop-jar-1.0.jar
+webapps/openmeetings/WEB-INF/lib/geronimo-activation_1.1_spec-bundle-1.1.jar
+webapps/openmeetings/WEB-INF/lib/geronimo-annotation_1.0_spec-jar-1.1.jar
+webapps/openmeetings/WEB-INF/lib/geronimo-javamail_1.4_spec-bundle-1.7.1.jar
+webapps/openmeetings/WEB-INF/lib/geronimo-jaxws_2.2_spec-bundle-1.0.jar
+webapps/openmeetings/WEB-INF/lib/geronimo-jta_1.1_spec-jar-1.1.jar
+webapps/openmeetings/WEB-INF/lib/geronimo-saaj_1.3_spec-jar-1.0.1.jar
+webapps/openmeetings/WEB-INF/lib/geronimo-stax-api_1.0_spec-bundle-1.0.1.jar
+webapps/openmeetings/WEB-INF/lib/geronimo-ws-metadata_2.0_spec-jar-1.1.2.jar
+webapps/openmeetings/WEB-INF/lib/jsmpp-jar-2.1.0.jar
+webapps/openmeetings/WEB-INF/lib/neethi-bundle-3.0.3-SNAPSHOT.jar
+webapps/openmeetings/WEB-INF/lib/openjpa-bundle-2.2.2.jar
+webapps/openmeetings/WEB-INF/lib/simple-xml-jar-2.7.jar
+webapps/openmeetings/WEB-INF/lib/smslib-jar-3.5.3.jar
+webapps/openmeetings/WEB-INF/lib/stax-api-jar-1.0-2.jar
+webapps/openmeetings/WEB-INF/lib/stax2-api-jar-3.1.1.jar
+webapps/openmeetings/WEB-INF/lib/velocity-jar-1.7.jar
+webapps/openmeetings/WEB-INF/lib/velocity-tools-jar-2.0.jar
+webapps/openmeetings/WEB-INF/lib/wicket-auth-roles-jar-6.14.0.jar
+webapps/openmeetings/WEB-INF/lib/wicket-core-jar-6.14.0.jar
+webapps/openmeetings/WEB-INF/lib/wicket-dashboard-core-jar-0.9.jar
+webapps/openmeetings/WEB-INF/lib/wicket-datetime-jar-6.14.0.jar
+webapps/openmeetings/WEB-INF/lib/wicket-devutils-jar-6.14.0.jar
+webapps/openmeetings/WEB-INF/lib/wicket-extensions-jar-6.14.0.jar
+webapps/openmeetings/WEB-INF/lib/wicket-ioc-jar-6.14.0.jar
+webapps/openmeetings/WEB-INF/lib/wicket-jquery-ui-calendar-jar-6.14.0.jar
+webapps/openmeetings/WEB-INF/lib/wicket-jquery-ui-core-jar-6.14.0.jar
+webapps/openmeetings/WEB-INF/lib/wicket-jquery-ui-jar-6.14.0.jar
+webapps/openmeetings/WEB-INF/lib/wicket-jquery-ui-plugins-jar-6.14.0.jar
+webapps/openmeetings/WEB-INF/lib/wicket-native-websocket-core-jar-6.14.0.jar
+webapps/openmeetings/WEB-INF/lib/wicket-native-websocket-tomcat-jar-6.14.0.jar
+webapps/openmeetings/WEB-INF/lib/wicket-request-jar-6.14.0.jar
+webapps/openmeetings/WEB-INF/lib/wicket-select2-jar-2.2.2.jar
+webapps/openmeetings/WEB-INF/lib/wicketstuff-html5-jar-6.14.0.jar
+webapps/openmeetings/WEB-INF/lib/wicketstuff-urlfragment-jar-6.14.0.jar
+webapps/openmeetings/WEB-INF/lib/wicket-util-jar-6.13.0.jar
+webapps/openmeetings/WEB-INF/lib/wicket-webjars-jar-0.2.0.jar
+webapps/openmeetings/WEB-INF/lib/woden-core-bundle-1.0-SNAPSHOT.jar
+webapps/openmeetings/WEB-INF/lib/woodstox-core-asl-jar-4.1.4.jar
+webapps/openmeetings/WEB-INF/lib/ws-commons-util-jar-1.0.2.jar
+webapps/openmeetings/WEB-INF/lib/wsdl4j-jar-1.6.2.jar
+webapps/openmeetings/WEB-INF/lib/xalan-jar-2.7.0.jar
+webapps/openmeetings/WEB-INF/lib/xml-apis-ext-jar-1.3.04.jar
+webapps/openmeetings/WEB-INF/lib/xml-resolver-jar-1.2.jar
+webapps/openmeetings/WEB-INF/lib/xmlgraphics-commons-jar-1.4.jar
+webapps/openmeetings/WEB-INF/lib/xmlrpc-client-jar-3.1.3.jar
+webapps/openmeetings/WEB-INF/lib/xmlrpc-common-jar-3.1.3.jar
+webapps/openmeetings/WEB-INF/lib/XmlSchema-bundle-1.4.8-SNAPSHOT.jar
+
+webapps/openmeetings/screensharing/commons-beanutils-1.8.3.jar
+webapps/openmeetings/screensharing/commons-codec-1.6.jar
+webapps/openmeetings/screensharing/commons-collections-3.2.1.jar
+webapps/openmeetings/screensharing/ehcache-core-2.5.0.jar
+webapps/openmeetings/screensharing/httpclient-4.2.jar
+webapps/openmeetings/screensharing/httpcore-4.2.1.jar
+webapps/openmeetings/screensharing/mina-core-2.0.4.jar
+webapps/openmeetings/screensharing/spring-beans-3.1.1.RELEASE.jar
+webapps/openmeetings/screensharing/spring-context-3.1.1.RELEASE.jar
+webapps/openmeetings/screensharing/spring-core-3.1.1.RELEASE.jar
+
+lib/cglib-jar-2.2.2.jar
+lib/com.springsource.javax.xml.stream-1.0.1.jar
+lib/com.springsource.net.sf.cglib-2.2.0.jar
+lib/com.springsource.org.antlr-3.1.3.jar
+lib/com.springsource.org.aopalliance-1.0.0.jar
+lib/com.springsource.org.apache.xerces-2.9.1.jar
+lib/com.springsource.org.codehaus.groovy-1.7.0.jar
+lib/com.springsource.org.mozilla.javascript-1.7.0.R2.jar
+lib/com.springsource.org.objectweb.asm-3.2.0.jar
+lib/com.springsource.org.objectweb.asm.commons-3.2.0.jar
+lib/commons-beanutils-1.8.3.jar
+lib/commons-codec-1.6.jar
+lib/commons-collections-3.2.1.jar
+lib/commons-fileupload-jar-1.2.2.jar
+lib/commons-io-jar-2.1.jar
+lib/commons-lang3-3.1.jar
+lib/commons-modeler-2.0.1.jar
+lib/commons-pool-1.5.6.jar
+lib/ehcache-core-2.5.0.jar
+lib/geronimo-jpa_2.0_spec-bundle-1.1.jar
+lib/httpclient-4.2.jar
+lib/httpcore-4.2.1.jar
+lib/mina-core-2.0.4.jar
+lib/mina-integration-beans-2.0.4.jar
+lib/mina-integration-jmx-2.0.4.jar
+lib/org.springframework.aspects-jar-3.1.1.RELEASE.jar
+lib/org.springframework.jdbc-jar-3.1.1.RELEASE.jar
+lib/org.springframework.orm-jar-3.1.1.RELEASE.jar
+lib/org.springframework.transaction-jar-3.1.1.RELEASE.jar
+lib/org.springframework.web.servlet-jar-3.1.1.RELEASE.jar
+lib/quartz-1.8.5.jar
+lib/red5-client.jar
+lib/spring-aop-3.1.1.RELEASE.jar
+lib/spring-asm-3.1.1.RELEASE.jar
+lib/spring-beans-3.1.1.RELEASE.jar
+lib/spring-context-3.1.1.RELEASE.jar
+lib/spring-context-support-3.1.1.RELEASE.jar
+lib/spring-core-3.1.1.RELEASE.jar
+lib/spring-expression-3.1.1.RELEASE.jar
+lib/spring-web-3.1.1.RELEASE.jar
+lib/xmlrpc-2.0.1.jar
+
+plugins/tomcat-embed-core-jar-7.0.42.jar
+plugins/tomcat-embed-jasper-jar-7.0.42.jar
+plugins/tomcat-embed-logging-juli-jar-7.0.42.jar
+plugins/tomcat-embed-logging-log4j-jar-7.0.42.jar
+plugins/tomcatplugin-jar-1.4.jar
+
+======================================================================================================================
+
+   
+APACHE OPENMEETINGS SUBCOMPONENTS:
+
+Apache OpenMeetings includes a number of subcomponents with separate copyright notices
+and license terms. Your use of these subcomponents is subject to the terms and
+conditions of the following licenses.   
+   
+======================================================================================================================
+
+For GlassFish components
+
+activation-jar-1.1.jar
+jsr311-api-jar-1.1.1.jar
+
+COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+
+1. Definitions.
+
+1.1. Contributor means each individual or entity that creates or contributes to the creation of Modifications.
+
+1.2. Contributor Version means the combination of the Original Software, prior Modifications used by a Contributor (if any), and the Modifications made by that particular Contributor.
+
+1.3. Covered Software means (a) the Original Software, or (b) Modifications, or (c) the combination of files containing Original Software with files containing Modifications, in each case including portions thereof.
+
+1.4. Executable means the Covered Software in any form other than Source Code.
+
+1.5. Initial Developer means the individual or entity that first makes Original Software available under this License.
+
+1.6. Larger Work means a work which combines Covered Software or portions thereof with code not governed by the terms of this License.
+
+1.7. License means this document.
+
+1.8. Licensable means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein.
+
+1.9. Modifications means the Source Code and Executable form of any of the following:
+
+A. Any file that results from an addition to, deletion from or modification of the contents of a file containing Original Software or previous Modifications;
+
+B. Any new file that contains any part of the Original Software or previous Modification; or
+
+C. Any new file that is contributed or otherwise made available under the terms of this License.
+
+1.10. Original Software means the Source Code and Executable form of computer software code that is originally released under this License.
+
+1.11. Patent Claims means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor.
+
+1.12. Source Code means (a) the common form of computer software code in which modifications are made and (b) associated documentation included in or with such code.
+
+1.13. You (or Your) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, You includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, control means (a)�the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b)�ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.
+
+2. License Grants.
+
+2.1. The Initial Developer Grant.
+Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, the Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license:
+(a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer, to use, reproduce, modify, display, perform, sublicense and distribute the Original Software (or portions thereof), with or without Modifications, and/or as part of a Larger Work; and
+(b) under Patent Claims infringed by the making, using or selling of Original Software, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Software (or portions thereof).
+(c) The licenses granted in Sections�2.1(a) and (b) are effective on the date Initial Developer first distributes or otherwise makes the Original Software available to a third party under the terms of this License.
+(d) Notwithstanding Section�2.1(b) above, no patent license is granted: (1)�for code that You delete from the Original Software, or (2)�for infringements caused by: (i)�the modification of the Original Software, or (ii)�the combination of the Original Software with other software or devices.
+
+2.2. Contributor Grant.
+Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license:
+(a) under intellectual property rights (other than patent or trademark) Licensable by Contributor to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof), either on an unmodified basis, with other Modifications, as Covered Software and/or as part of a Larger Work; and
+(b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: (1)�Modifications made by that Contributor (or portions thereof); and (2)�the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination).
+(c) The licenses granted in Sections�2.2(a) and 2.2(b) are effective on the date Contributor first distributes or otherwise makes the Modifications available to a third party.
+(d) Notwithstanding Section�2.2(b) above, no patent license is granted: (1)�for any code that Contributor has deleted from the Contributor Version; (2)�for infringements caused by: (i)�third party modifications of Contributor Version, or (ii)�the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or (3)�under Patent Claims infringed by Covered Software in the absence of Modifications made by that Contributor.
+
+3. Distribution Obligations.
+
+3.1. Availability of Source Code.
+
+Any Covered Software that You distribute or otherwise make available in Executable form must also be made available in Source Code form and that Source Code form must be distributed only under the terms of this License. You must include a copy of this License with every copy of the Source Code form of the Covered Software You distribute or otherwise make available. You must inform recipients of any such Covered Software in Executable form as to how they can obtain such Covered Software in Source Code form in a reasonable manner on or through a medium customarily used for software exchange.
+
+3.2. Modifications.
+
+The Modifications that You create or to which You contribute are governed by the terms of this License. You represent that You believe Your Modifications are Your original creation(s) and/or You have sufficient rights to grant the rights conveyed by this License.
+
+3.3. Required Notices.
+You must include a notice in each of Your Modifications that identifies You as the Contributor of the Modification. You may not remove or alter any copyright, patent or trademark notices contained within the Covered Software, or any notices of licensing or any descriptive text giving attribution to any Contributor or the Initial Developer.
+
+3.4. Application of Additional Terms.
+You may not offer or impose any terms on any Covered Software in Source Code form that alters or restricts the applicable version of this License or the recipients rights hereunder. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, you may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear that any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer.
+
+3.5. Distribution of Executable Versions.
+You may distribute the Executable form of the Covered Software under the terms of this License or under the terms of a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable form does not attempt to limit or alter the recipients rights in the Source Code form from the rights set forth in this License. If You distribute the Covered Software in Executable form under a different license, You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer.
+
+3.6. Larger Works.
+You may create a Larger Work by combining Covered Software with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Software.
+
+4. Versions of the License.
+
+4.1. New Versions.
+Sun Microsystems, Inc. is the initial license steward and may publish revised and/or new versions of this License from time to time. Each version will be given a distinguishing version number. Except as provided in Section 4.3, no one other than the license steward has the right to modify this License.
+
+4.2. Effect of New Versions.
+
+You may always continue to use, distribute or otherwise make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. If the Initial Developer includes a notice in the Original Software prohibiting it from being distributed or otherwise made available under any subsequent version of the License, You must distribute and make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. Otherwise, You may also choose to use, distribute or otherwise make the Covered Software available under the terms of any subsequent version of the License published by the license steward.
+4.3. Modified Versions.
+
+When You are an Initial Developer and You want to create a new license for Your Original Software, You may create and use a modified version of this License if You: (a)�rename the license and remove any references to the name of the license steward (except to note that the license differs from this License); and (b)�otherwise make it clear that the license contains terms which differ from this License.
+
+5. DISCLAIMER OF WARRANTY.
+
+COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN AS IS BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+6. TERMINATION.
+
+6.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive.
+
+6.2. If You assert a patent infringement claim (excluding declaratory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You assert such claim is referred to as Participant) alleging that the Participant Software (meaning the Contributor Version where the Participant is a Contributor or the Original Software where the Participant is the Initial Developer) directly or indirectly infringes any patent, then any and all rights granted directly or indirectly to You by such Participant, the Initial Developer (if the Initial Developer is not the Participant) and all Contributors under Sections�2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively and automatically at the expiration of such 60 day notice period, unless if within such 60 day period You withdraw Your claim with respect to the Participant Software against such Participant either unilaterally or pursuant to a written agreement with Participant.
+
+6.3. In the event of termination under Sections�6.1 or 6.2 above, all end user licenses that have been validly granted by You or any distributor hereunder prior to termination (excluding licenses granted to You by any distributor) shall survive termination.
+
+7. LIMITATION OF LIABILITY.
+
+UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTYS NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+8. U.S. GOVERNMENT END USERS.
+
+The Covered Software is a commercial item, as that term is defined in 48�C.F.R.�2.101 (Oct. 1995), consisting of commercial computer software (as that term is defined at 48 C.F.R. �252.227-7014(a)(1)) and commercial computer software documentation as such terms are used in 48�C.F.R.�12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Software with only those rights set forth herein. This U.S. Government Rights clause is in lieu of, and supersedes, any other FAR, DFAR, or other clause or provision that addresses Government rights in computer software under this License.
+
+9. MISCELLANEOUS.
+
+This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by the law of the jurisdiction specified in a notice contained within the Original Software (except to the extent applicable law, if any, provides otherwise), excluding such jurisdictions conflict-of-law provisions. Any litigation relating to this License shall be subject to the jurisdiction of the courts located in the jurisdiction and venue specified in a notice contained within the Original Software, with the losing party responsible for costs, including, without limitation, court costs and reasonable attorneys fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. You agree that You alone are responsible for compliance with the United States export administration regulations (and the export control laws and regulation of any other countries) when You use, distribute or otherwise make available any Covered Software.
+
+10. RESPONSIBILITY FOR CLAIMS.
+
+As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability.
+
+NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL)
+The GlassFish code released under the CDDL shall be governed by the laws of the State of California (excluding conflict-of-law provisions). Any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California and the state courts of the State of California, with venue lying in Santa Clara County, California. 
+   
+======================================================================================================================
+
+For SLF4J:
+
+webapps/openmeetings/screensharing/jcl-over-slf4j-1.6.4.jar
+webapps/openmeetings/screensharing/slf4j-api-1.6.4.jar
+lib/jcl-over-slf4j-1.6.4.jar
+lib/jul-to-slf4j-1.6.4.jar
+lib/log4j-over-slf4j-1.6.4.jar
+lib/slf4j-api-1.6.4.jar
+lib/sysout-over-slf4j-1.0.2.jar
+
+Copyright (c) 2004-2008 QOS.ch
+ All rights reserved.
+
+ Permission is hereby granted, free  of charge, to any person obtaining
+ a  copy  of this  software  and  associated  documentation files  (the
+ "Software"), to  deal in  the Software without  restriction, including
+ without limitation  the rights to  use, copy, modify,  merge, publish,
+ distribute,  sublicense, and/or sell  copies of  the Software,  and to
+ permit persons to whom the Software  is furnished to do so, subject to
+ the following conditions:
+
+ The  above  copyright  notice  and  this permission  notice  shall  be
+ included in all copies or substantial portions of the Software.
+
+ THE  SOFTWARE IS  PROVIDED  "AS  IS", WITHOUT  WARRANTY  OF ANY  KIND,
+ EXPRESS OR  IMPLIED, INCLUDING  BUT NOT LIMITED  TO THE  WARRANTIES OF
+ MERCHANTABILITY,    FITNESS    FOR    A   PARTICULAR    PURPOSE    AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ OF CONTRACT, TORT OR OTHERWISE,  ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ 
+ ======================================================================================================================
+ 
+ For backport-util-concurrent-jar-3.1.jar
+ 
+ This software is released to the public domain, in the spirit of the original code written by Doug Lea. 
+ The code can be used for any purpose, modified, and redistributed without acknowledgment. 
+ No warranty is provided, either express or implied. 
+  
+ ======================================================================================================================
+ 
+ For JAXB:
+ 
+jaxb-api-jar-2.2.4.jar
+jaxb-impl-jar-2.2.4.jar
+jaxb-xjc-jar-2.2.4.jar
+jaxws-tools-jar-2.2.5.jar
+ 
+ COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL)Version 1.1
+
+1. Definitions.
+
+     1.1. "Contributor" means each individual or entity that creates or contributes to the creation of Modifications.
+
+     1.2. "Contributor Version" means the combination of the Original Software, prior Modifications used by a Contributor (if any), and the Modifications made by that particular Contributor.
+
+     1.3. "Covered Software" means (a) the Original Software, or (b) Modifications, or (c) the combination of files containing Original Software with files containing Modifications, in each case including portions thereof.
+
+     1.4. "Executable" means the Covered Software in any form other than Source Code.
+
+     1.5. "Initial Developer" means the individual or entity that first makes Original Software available under this License.
+
+     1.6. "Larger Work" means a work which combines Covered Software or portions thereof with code not governed by the terms of this License.
+
+     1.7. "License" means this document.
+
+     1.8. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein.
+
+     1.9. "Modifications" means the Source Code and Executable form of any of the following:
+
+     A. Any file that results from an addition to, deletion from or modification of the contents of a file containing Original Software or previous Modifications;
+
+     B. Any new file that contains any part of the Original Software or previous Modification; or
+
+     C. Any new file that is contributed or otherwise made available under the terms of this License.
+
+     1.10. "Original Software" means the Source Code and Executable form of computer software code that is originally released under this License.
+
+     1.11. "Patent Claims" means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor.
+
+     1.12. "Source Code" means (a) the common form of computer software code in which modifications are made and (b) associated documentation included in or with such code.
+
+     1.13. "You" (or "Your") means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.
+
+2. License Grants.
+
+     2.1. The Initial Developer Grant.
+
+     Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, the Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license:
+
+     (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer, to use, reproduce, modify, display, perform, sublicense and distribute the Original Software (or portions thereof), with or without Modifications, and/or as part of a Larger Work; and
+
+     (b) under Patent Claims infringed by the making, using or selling of Original Software, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Software (or portions thereof).
+
+     (c) The licenses granted in Sections 2.1(a) and (b) are effective on the date Initial Developer first distributes or otherwise makes the Original Software available to a third party under the terms of this License.
+
+     (d) Notwithstanding Section 2.1(b) above, no patent license is granted: (1) for code that You delete from the Original Software, or (2) for infringements caused by: (i) the modification of the Original Software, or (ii) the combination of the Original Software with other software or devices.
+
+     2.2. Contributor Grant.
+
+     Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license:
+
+     (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof), either on an unmodified basis, with other Modifications, as Covered Software and/or as part of a Larger Work; and
+
+     (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: (1) Modifications made by that Contributor (or portions thereof); and (2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination).
+
+     (c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first distributes or otherwise makes the Modifications available to a third party.
+
+     (d) Notwithstanding Section 2.2(b) above, no patent license is granted: (1) for any code that Contributor has deleted from the Contributor Version; (2) for infringements caused by: (i) third party modifications of Contributor Version, or (ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or (3) under Patent Claims infringed by Covered Software in the absence of Modifications made by that Contributor.
+
+3. Distribution Obligations.
+
+     3.1. Availability of Source Code.
+
+     Any Covered Software that You distribute or otherwise make available in Executable form must also be made available in Source Code form and that Source Code form must be distributed only under the terms of this License. You must include a copy of this License with every copy of the Source Code form of the Covered Software You distribute or otherwise make available. You must inform recipients of any such Covered Software in Executable form as to how they can obtain such Covered Software in Source Code form in a reasonable manner on or through a medium customarily used for software exchange.
+
+     3.2. Modifications.
+
+     The Modifications that You create or to which You contribute are governed by the terms of this License. You represent that You believe Your Modifications are Your original creation(s) and/or You have sufficient rights to grant the rights conveyed by this License.
+
+     3.3. Required Notices.
+
+     You must include a notice in each of Your Modifications that identifies You as the Contributor of the Modification. You may not remove or alter any copyright, patent or trademark notices contained within the Covered Software, or any notices of licensing or any descriptive text giving attribution to any Contributor or the Initial Developer.
+
+     3.4. Application of Additional Terms.
+
+     You may not offer or impose any terms on any Covered Software in Source Code form that alters or restricts the applicable version of this License or the recipients' rights hereunder. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, you may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear that any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer.
+
+     3.5. Distribution of Executable Versions.
+
+     You may distribute the Executable form of the Covered Software under the terms of this License or under the terms of a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable form does not attempt to limit or alter the recipient's rights in the Source Code form from the rights set forth in this License. If You distribute the Covered Software in Executable form under a different license, You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer.
+
+     3.6. Larger Works.
+
+     You may create a Larger Work by combining Covered Software with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Software.
+
+4. Versions of the License.
+
+     4.1. New Versions.
+
+     Oracle is the initial license steward and may publish revised and/or new versions of this License from time to time. Each version will be given a distinguishing version number. Except as provided in Section 4.3, no one other than the license steward has the right to modify this License.
+
+     4.2. Effect of New Versions.
+
+     You may always continue to use, distribute or otherwise make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. If the Initial Developer includes a notice in the Original Software prohibiting it from being distributed or otherwise made available under any subsequent version of the License, You must distribute and make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. Otherwise, You may also choose to use, distribute or otherwise make the Covered Software available under the terms of any subsequent version of the License published by the license steward.
+
+     4.3. Modified Versions.
+
+     When You are an Initial Developer and You want to create a new license for Your Original Software, You may create and use a modified version of this License if You: (a) rename the license and remove any references to the name of the license steward (except to note that the license differs from this License); and (b) otherwise make it clear that the license contains terms which differ from this License.
+
+5. DISCLAIMER OF WARRANTY.
+
+     COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+6. TERMINATION.
+
+     6.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive.
+
+     6.2. If You assert a patent infringement claim (excluding declaratory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You assert such claim is referred to as "Participant") alleging that the Participant Software (meaning the Contributor Version where the Participant is a Contributor or the Original Software where the Participant is the Initial Developer) directly or indirectly infringes any patent, then any and all rights granted directly or indirectly to You by such Participant, the Initial Developer (if the Initial Developer is not the Participant) and all Contributors under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively and automatically at the expiration of such 60 day notice period, unless if within such 60 day period You withdraw Your claim with respect to the Participant Software against such Participant either unilaterally or pursuant to a written agreement with Participant.
+
+     6.3. If You assert a patent infringement claim against Participant alleging that the Participant Software directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license.
+
+     6.4. In the event of termination under Sections 6.1 or 6.2 above, all end user licenses that have been validly granted by You or any distributor hereunder prior to termination (excluding licenses granted to You by any distributor) shall survive termination.
+
+7. LIMITATION OF LIABILITY.
+
+     UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+8. U.S. GOVERNMENT END USERS.
+
+     The Covered Software is a "commercial item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" (as that term is defined at 48 C.F.R. ? 252.227-7014(a)(1)) and "commercial computer software documentation" as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Software with only those rights set forth herein. This U.S. Government Rights clause is in lieu of, and supersedes, any other FAR, DFAR, or other clause or provision that addresses Government rights in computer software under this License.
+
+9. MISCELLANEOUS.
+
+     This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by the law of the jurisdiction specified in a notice contained within the Original Software (except to the extent applicable law, if any, provides otherwise), excluding such jurisdiction's conflict-of-law provisions. Any litigation relating to this License shall be subject to the jurisdiction of the courts located in the jurisdiction and venue specified in a notice contained within the Original Software, with the losing party responsible for costs, including, without limitation, court costs and reasonable attorneys' fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. You agree that You alone are responsible for compliance with the United States export administration regulations (and the export control laws and regulation of any other countries) when You use, distribute or otherwise make available any Covered Software.
+
+10. RESPONSIBILITY FOR CLAIMS.
+
+     As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability.
+
+----------
+NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL)
+The code released under the CDDL shall be governed by the laws of the State of California (excluding conflict-of-law provisions). Any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California and the state courts of the State of California, with venue lying in Santa Clara County, California.
+
+
+
+
+The GNU General Public License (GPL) Version 2, June 1991
+
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
+
+Preamble
+
+The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.
+
+Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification follow.
+
+
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
+
+   a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
+
+   b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
+
+   c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
+
+   a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
+
+   b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
+
+   c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
+
+If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
+
+This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
+
+NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+END OF TERMS AND CONDITIONS
+
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
+
+   One line to give the program's name and a brief idea of what it does.
+
+   Copyright (C)
+
+   This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this when it starts in an interactive mode:
+
+   Gnomovision version 69, Copyright (C) year name of author
+   Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:
+
+   Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+   signature of Ty Coon, 1 April 1989
+   Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.
+
+
+"CLASSPATH" EXCEPTION TO THE GPL VERSION 2
+
+Certain source files distributed by Oracle are subject to the following clarification and special exception to the GPL Version 2, but only where Oracle has expressly included in the particular source file's header the words "Oracle designates this particular file as subject to the "Classpath" exception as provided by Oracle in the License file that accompanied this code."
+
+Linking this library statically or dynamically with other modules is making a combined work based on this library.  Thus, the terms and conditions of the GNU General Public License Version 2 cover the whole combination.
+
+As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module.  An independent module is a module which is not derived from or based on this library.  If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so.  If you do not wish to do so, delete this exception statement from your version.
+ 
+======================================================================================================================
+
+For 
+webapps/openmeetings/WEB-INF/lib/jaxen-jar-1.1.4.jar
+
+ $Id: LICENSE.txt,v 1.5 2006/02/05 21:49:04 elharo Exp $
+
+ Copyright 2003-2006 The Werken Company. All Rights Reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+  * Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+  * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+  * Neither the name of the Jaxen Project nor the names of its
+    contributors may be used to endorse or promote products derived 
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+======================================================================================================================
+
+For mail-jar-1.4.7.jar
+
+COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+
+1. Definitions.
+
+   1.1. Contributor. means each individual or entity that creates or contributes to the creation of Modifications.
+
+   1.2. Contributor Version. means the combination of the Original Software, prior Modifications used by a Contributor (if any), and the Modifications made by that particular Contributor.
+
+   1.3. Covered Software. means (a) the Original Software, or (b) Modifications, or (c) the combination of files containing Original Software with files containing Modifications, in each case including portions thereof.
+
+   1.4. Executable. means the Covered Software in any form other than Source Code.
+
+   1.5. Initial Developer. means the individual or entity that first makes Original Software available under this License.
+
+   1.6. Larger Work. means a work which combines Covered Software or portions thereof with code not governed by the terms of this License.
+
+   1.7. License. means this document.
+
+   1.8. Licensable. means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein.
+
+   1.9. Modifications. means the Source Code and Executable form of any of the following:
+
+        A. Any file that results from an addition to, deletion from or modification of the contents of a file containing Original Software or previous Modifications;
+
+        B. Any new file that contains any part of the Original Software or previous Modification; or
+
+        C. Any new file that is contributed or otherwise made available under the terms of this License.
+
+   1.10. Original Software. means the Source Code and Executable form of computer software code that is originally released under this License.
+
+   1.11. Patent Claims. means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor.
+
+   1.12. Source Code. means (a) the common form of computer software code in which modifications are made and (b) associated documentation included in or with such code.
+
+   1.13. You. (or .Your.) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, .You. includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, .control. means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.
+
+2. License Grants.
+
+      2.1. The Initial Developer Grant.
+
+      Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, the Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license:
+
+         (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer, to use, reproduce, modify, display, perform, sublicense and distribute the Original Software (or portions thereof), with or without Modifications, and/or as part of a Larger Work; and
+
+         (b) under Patent Claims infringed by the making, using or selling of Original Software, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Software (or portions thereof).
+
+        (c) The licenses granted in Sections 2.1(a) and (b) are effective on the date Initial Developer first distributes or otherwise makes the Original Software available to a third party under the terms of this License.
+
+        (d) Notwithstanding Section 2.1(b) above, no patent license is granted: (1) for code that You delete from the Original Software, or (2) for infringements caused by: (i) the modification of the Original Software, or (ii) the combination of the Original Software with other software or devices.
+
+    2.2. Contributor Grant.
+
+    Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license:
+
+        (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof), either on an unmodified basis, with other Modifications, as Covered Software and/or as part of a Larger Work; and
+
+        (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: (1) Modifications made by that Contributor (or portions thereof); and (2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination).
+
+        (c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first distributes or otherwise makes the Modifications available to a third party.
+
+        (d) Notwithstanding Section 2.2(b) above, no patent license is granted: (1) for any code that Contributor has deleted from the Contributor Version; (2) for infringements caused by: (i) third party modifications of Contributor Version, or (ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or (3) under Patent Claims infringed by Covered Software in the absence of Modifications made by that Contributor.
+
+3. Distribution Obligations.
+
+      3.1. Availability of Source Code.
+      Any Covered Software that You distribute or otherwise make available in Executable form must also be made available in Source Code form and that Source Code form must be distributed only under the terms of this License. You must include a copy of this License with every copy of the Source Code form of the Covered Software You distribute or otherwise make available. You must inform recipients of any such Covered Software in Executable form as to how they can obtain such Covered Software in Source Code form in a reasonable manner on or through a medium customarily used for software exchange.
+
+      3.2. Modifications.
+      The Modifications that You create or to which You contribute are governed by the terms of this License. You represent that You believe Your Modifications are Your original creation(s) and/or You have sufficient rights to grant the rights conveyed by this License.
+
+      3.3. Required Notices.
+      You must include a notice in each of Your Modifications that identifies You as the Contributor of the Modification. You may not remove or alter any copyright, patent or trademark notices contained within the Covered Software, or any notices of licensing or any descriptive text giving attribution to any Contributor or the Initial Developer.
+
+      3.4. Application of Additional Terms.
+      You may not offer or impose any terms on any Covered Software in Source Code form that alters or restricts the applicable version of this License or the recipients. rights hereunder. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, you may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear that any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer.
+
+      3.5. Distribution of Executable Versions.
+      You may distribute the Executable form of the Covered Software under the terms of this License or under the terms of a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable form does not attempt to limit or alter the recipient.s rights in the Source Code form from the rights set forth in this License. If You distribute the Covered Software in Executable form under a different license, You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer.
+
+      3.6. Larger Works.
+      You may create a Larger Work by combining Covered Software with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Software.
+
+4. Versions of the License.
+
+      4.1. New Versions.
+      Sun Microsystems, Inc. is the initial license steward and may publish revised and/or new versions of this License from time to time. Each version will be given a distinguishing version number. Except as provided in Section 4.3, no one other than the license steward has the right to modify this License.
+
+      4.2. Effect of New Versions.
+      You may always continue to use, distribute or otherwise make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. If the Initial Developer includes a notice in the Original Software prohibiting it from being distributed or otherwise made available under any subsequent version of the License, You must distribute and make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. Otherwise, You may also choose to use, distribute or otherwise make the Covered Software available under the terms of any subsequent version of the License published by the license steward.
+
+      4.3. Modified Versions.
+      When You are an Initial Developer and You want to create a new license for Your Original Software, You may create and use a modified version of this License if You: (a) rename the license and remove any references to the name of the license steward (except to note that the license differs from this License); and (b) otherwise make it clear that the license contains terms which differ from this License.
+
+5. DISCLAIMER OF WARRANTY.
+
+   COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN .AS IS. BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+6. TERMINATION.
+
+      6.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive.
+
+      6.2. If You assert a patent infringement claim (excluding declaratory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You assert such claim is referred to as .Participant.) alleging that the Participant Software (meaning the Contributor Version where the Participant is a Contributor or the Original Software where the Participant is the Initial Developer) directly or indirectly infringes any patent, then any and all rights granted directly or indirectly to You by such Participant, the Initial Developer (if the Initial Developer is not the Participant) and all Contributors under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively and automatically at the expiration of such 60 day notice period, unless if within such 60 day period You withdraw Your claim with respect to the Participant Software against such Participant either unilaterally or pursuant to a written agreement with Participant.
+
+      6.3. In the event of termination under Sections 6.1 or 6.2 above, all end user licenses that have been validly granted by You or any distributor hereunder prior to termination (excluding licenses granted to You by any distributor) shall survive termination.
+
+7. LIMITATION OF LIABILITY.
+
+   UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY.S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+8. U.S. GOVERNMENT END USERS.
+
+   The Covered Software is a .commercial item,. as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of .commercial computer software. (as that term is defined at 48 C.F.R. � 252.227-7014(a)(1)) and .commercial computer software documentation. as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Software with only those rights set forth herein. This U.S. Government Rights clause is in lieu of, and supersedes, any other FAR, DFAR, or other clause or provision that addresses Government rights in computer software under this License.
+
+9. MISCELLANEOUS.
+
+   This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by the law of the jurisdiction specified in a notice contained within the Original Software (except to the extent applicable law, if any, provides otherwise), excluding such jurisdiction.s conflict-of-law provisions. Any litigation relating to this License shall be subject to the jurisdiction of the courts located in the jurisdiction and venue specified in a notice contained within the Original Software, with the losing party responsible for costs, including, without limitation, court costs and reasonable attorneys. fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. You agree that You alone are responsible for compliance with the United States export administration regulations (and the export control laws and regulation of any other countries) when You use, distribute or otherwise make available any Covered Software.
+
+10. RESPONSIBILITY FOR CLAIMS.
+
+   As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability.
+
+   NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL)
+
+   The code released under the CDDL shall be governed by the laws of the State of California (excluding conflict-of-law provisions). Any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California and the state courts of the State of California, with venue lying in Santa Clara County, California.
+   
+======================================================================================================================
+
+For wsdl4j-jar-1.6.2.jar
+
+Common Public License - v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+    a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+    b) in the case of each subsequent Contributor:
+
+    i) changes to the Program, and
+
+    ii) additions to the Program;
+
+    where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program. 
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+    a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
+
+    b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder. 
+
+    c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+    d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement. 
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+    a) it complies with the terms and conditions of this Agreement; and
+
+    b) its license agreement:
+
+    i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose; 
+
+    ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; 
+
+    iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and
+
+    iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange. 
+
+When the Program is made available in source code form:
+
+    a) it must be made available under this Agreement; and 
+
+    b) a copy of this Agreement must be included with each copy of the Program. 
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed. In addition, if Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward. IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.
+ 
+======================================================================================================================
+
+For lib/jython-standalone-2.5.2.jar
+
+The Jython License
+A. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING JYTHON
+PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
+
+1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using this software ("Jython") in source or binary form and its associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Jython alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2007 Python Software Foundation; All Rights Reserved" are retained in Jython alone or in any derivative version prepared by Licensee.
+
+3. In the event Licensee prepares a derivative work that is based on or incorporates Jython or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Jython.
+
+4. PSF is making Jython available to Licensee on an "AS IS" basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF JYTHON WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF JYTHON FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING JYTHON, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material breach of its terms and conditions.
+
+7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party.
+
+8. By copying, installing or otherwise using Jython, Licensee agrees to be bound by the terms and conditions of this License Agreement.
+Jython 2.0, 2.1 License
+
+Copyright (c) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Jython Developers All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+        Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+        Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+        Neither the name of the Jython Developers nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+======================================================================================================================
+
+ For Bouncy Castle:
+ 
+ lib/bcprov-jdk16-1.45.jar
+ webapps/openmeetings/screensharing/bcprov-jdk16-1.45.jar
+
+ Copyright (c) 2000 - 2011 The Legion Of The Bouncy Castle (http://www.bouncycastle.org)
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
+ documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit
+ persons to whom the Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
+ Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ 
+======================================================================================================================
+
+For XPP3: xpp3-jar-1.1.4c.jar
+
+Indiana University Extreme! Lab Software License
+
+Version 1.1.1
+
+Copyright (c) 2002 Extreme! Lab, Indiana University. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in
+   the documentation and/or other materials provided with the distribution.
+
+3. The end-user documentation included with the redistribution, if any,
+   must include the following acknowledgment:
+
+  "This product includes software developed by the Indiana University
+  Extreme! Lab (http://www.extreme.indiana.edu/)."
+
+Alternately, this acknowledgment may appear in the software itself,
+if and wherever such third-party acknowledgments normally appear.
+
+4. The names "Indiana Univeristy" and "Indiana Univeristy Extreme! Lab"
+must not be used to endorse or promote products derived from this
+software without prior written permission. For written permission,
+please contact http://www.extreme.indiana.edu/.
+
+5. Products derived from this software may not use "Indiana Univeristy"
+name nor may "Indiana Univeristy" appear in their name, without prior
+written permission of the Indiana University.
+
+THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHORS, COPYRIGHT HOLDERS OR ITS CONTRIBUTORS
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+======================================================================================================================
+
+For XStream Components: xstream-jar-1.4.2.jar
+
+Copyright (c) 2003-2006, Joe Walnes
+Copyright (c) 2006-2007, XStream Committers
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+Redistributions of source code must retain the above copyright notice, this list of
+conditions and the following disclaimer. Redistributions in binary form must reproduce
+the above copyright notice, this list of conditions and the following disclaimer in
+the documentation and/or other materials provided with the distribution.
+
+Neither the name of XStream nor the names of its contributors may be used to endorse
+or promote products derived from this software without specific prior written
+permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
+SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
+WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+ 
+======================================================================================================================
+
+For ICAL4J components: ical4j-bundle-1.0.3.jar
+
+Copyright (c) 2012, Ben Fortuna
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+	o Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+
+	o Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+
+	o Neither the name of Ben Fortuna nor the names of any other contributors
+may be used to endorse or promote products derived from this software
+without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+======================================================================================================================
+
+For Red5 Components:
+
+ RED5 Open Source Flash Server - http://code.google.com/p/red5/
+ 
+Copyright 2006-2012 by respective authors (see below). All rights reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ 
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+ 
+The Red5 Project (red5@osflash.org)
+Luke Hubbard (luke@codegent.com)
+Dominick Accattato (daccattato@gmail.com)
+Chris Allen (mrchrisallen@gmail.com)
+Joachim Bauch (jojo@struktur.de)
+Mick Herres (mickherres@hotmail.com)
+John Grden (johng@acmewebworks.com)
+Grant Davies (grant@bluetube.com)
+Steven Elliott (steven.s.elliott@gmail.com)
+Jokul Tian (tianxuefeng@gmail.com)
+Steven Gong (steven.gong@gmail.com)
+Paul Gregoire (mondain@gmail.com)
+Michael Klishin (michael.s.klishin@gmail.com)
+Thijs Triemstra (info@collab.nl)
+Dan Rossi (electroteque@gmail.com)
+Anton Lebedevich (mabrek@gmail.com)
+Art Clarke (aclarke@xuggle.com)
+
+
+======================================================================================================================
+
+For JDOM
+ Copyright (C) 2000-2004 Jason Hunter & Brett McLaughlin.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ 1. Redistributions of source code must retain the above copyright
+    notice, this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions, and the disclaimer that follows
+    these conditions in the documentation and/or other materials
+    provided with the distribution.
+
+ 3. The name "JDOM" must not be used to endorse or promote products
+    derived from this software without prior written permission.  For
+    written permission, please contact <request_AT_jdom_DOT_org>.
+
+ 4. Products derived from this software may not be called "JDOM", nor
+    may "JDOM" appear in their name, without prior written permission
+    from the JDOM Project Management <request_AT_jdom_DOT_org>.
+
+ In addition, we request (but do not require) that you include in the
+ end-user documentation provided with the redistribution and/or in the
+ software itself an acknowledgement equivalent to the following:
+     "This product includes software developed by the
+      JDOM Project (http://www.jdom.org/)."
+ Alternatively, the acknowledgment may be graphical using the logos
+ available at http://www.jdom.org/images/logos.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED.  IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many
+ individuals on behalf of the JDOM Project and was originally
+ created by Jason Hunter <jhunter_AT_jdom_DOT_org> and
+ Brett McLaughlin <brett_AT_jdom_DOT_org>.  For more information
+ on the JDOM Project, please see <http://www.jdom.org/>.
+ 
+======================================================================================================================
+The following components are BSD Licensed 
+======================================================================================================================
+
+For: dom4j-jar-1.6.1.jar
+
+    Containing Project URL: http://sourceforge.net/projects/dom4j/
+    
+Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved.
+
+Redistribution and use of this software and associated documentation
+("Software"), with or without modification, are permitted provided
+that the following conditions are met:
+
+1. Redistributions of source code must retain copyright
+   statements and notices.  Redistributions must also contain a
+   copy of this document.
+ 
+2. Redistributions in binary form must reproduce the
+   above copyright notice, this list of conditions and the
+   following disclaimer in the documentation and/or other
+   materials provided with the distribution.
+ 
+3. The name "DOM4J" must not be used to endorse or promote
+   products derived from this Software without prior written
+   permission of MetaStuff, Ltd.  For written permission,
+   please contact dom4j-info@metastuff.com.
+ 
+4. Products derived from this Software may not be called "DOM4J"
+   nor may "DOM4J" appear in their names without prior written
+   permission of MetaStuff, Ltd. DOM4J is a registered
+   trademark of MetaStuff, Ltd.
+ 
+5. Due credit should be given to the DOM4J Project - 
+   http://www.dom4j.org
+ 
+THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS
+``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
+NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
+METASTUFF, LTD. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+postgresql-jar-9.3-1101-jdbc4.jar
+	Containing Project URL: http://jdbc.postgresql.org
+	
+	The PostgreSQL JDBC driver is distributed under the BSD license, same as the server. The simplest explanation of the licensing terms is that you can do whatever you want with the product and source code as long as you don't claim you wrote it or sue us. You should give it a read though, it's only half a page.
+
+Copyright (c) 1997-2010, PostgreSQL Global Development Group
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+3. Neither the name of the PostgreSQL Global Development Group nor the names
+   of its contributors may be used to endorse or promote products derived
+   from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+======================================================================================================================
+
+SERP License
+
+File: serp-jar-1.13.1.jar
+
+Copyright (c) 2002-2007, A. Abram White
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without 
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this 
+  list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, 
+  this list of conditions and the following disclaimer in the documentation 
+  and/or other materials provided with the distribution.
+* Neither the name of 'serp' nor the names of its contributors may
+  be used to endorse or promote products derived from this software without 
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+======================================================================================================================
+ iCal4j - License
+ 
+webapps/openmeetings/WEB-INF/lib/ical4j-jar-1.0.5.jar
+ 
+======================================================================================================================
+
+Copyright (c) 2012, Ben Fortuna
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+	o Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+
+	o Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+
+	o Neither the name of Ben Fortuna nor the names of any other contributors
+may be used to endorse or promote products derived from this software
+without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+======================================================================================================================
+
+
+For the components:
+
+webapps/openmeetings/screensharing/logback-classic-1.0.3.jar
+webapps/openmeetings/screensharing/logback-core-1.0.3.jar
+lib/logback-classic-1.0.3.jar
+lib/logback-core-1.0.3.jar
+lib/jruby-1.6.7.2.jar
+
+Eclipse Public License - v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents" mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and
+
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.
+
+
+======================================================================================================================
+
+For component:
+
+lib/jython-standalone-2.5.2.jar
+
+Jython 2.0, 2.1 License
+
+Copyright (c) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Jython Developers All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+        Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+        Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+        Neither the name of the Jython Developers nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+======================================================================================================================
+
+For components:
+
+coin-slider-styles.css
+colorbox.css
+jquery.ui.menubar.js
+jquery.ui.menubar.css
+
+coin-slider.min.js	
+jquery.colorbox.js
+jquery-1.11.0.min.js	
+jquery-ui-1.10.4.custom.min.js
+jquery-ui-1.10.4.custom.css
+
+border.png
+controls.png
+loading.gif
+loading_background.png
+overlay.png
+animated-overlay.gif
+ui-bg_flat_0_000088_40x100.png
+ui-bg_flat_0_e6b900_40x100.png
+ui-bg_flat_100_eeeeee_40x100.png
+ui-bg_flat_20_000088_40x100.png
+ui-bg_flat_22_1484e6_40x100.png
+ui-bg_flat_25_c5ddfc_40x100.png
+ui-bg_flat_26_2293f7_40x100.png
+ui-bg_highlight-soft_100_f9f9f9_1x100.png
+ui-icons_0a82eb_256x240.png
+ui-icons_0b54d5_256x240.png
+ui-icons_5fa5e3_256x240.png
+ui-icons_ffffff_256x240.png
+
+JQuery: http://jquery.com/
+JQuery UI: http://code.google.com/p/jquery-ui/
+Colorbox Plugin: http://www.jacklmoore.com/colorbox
+Coinslider Plugin: https://code.google.com/p/coin-slider/
+
+https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt
+
+Copyright (c) 2012 jQuery Foundation and other contributors,
+http://jquery.com/
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000..5f2e271
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,11 @@
+Apache OpenMeetings

+Copyright 2011-2014 The Apache Software Foundation

+

+This product includes software developed at

+The Apache Software Foundation (http://www.apache.org/).

+

+This product includes icons from FamFamFam Icon Set Silk.

+http://www.famfamfam.com/lab/icons/silk/

+

+This product includes icons from Yusuke Kamiyamane.

+http://p.yusukekamiyamane.com/

diff --git a/README b/README
new file mode 100644
index 0000000..6fb0dc0
--- /dev/null
+++ b/README
@@ -0,0 +1,172 @@
+Apache OpenMeetings - README

+Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0

+--------------------------------------------------------------------------------

+

+About

+=====

+Apache Openmeetings provides video conferencing, instant messaging, white board,

+collaborative document editing and other groupware tools using API functions of 

+the Red5 Streaming Server for Remoting and Streaming. 

+

+Release Notes 3.0.2

+=============

+see CHANGELOG file for detailed log

+

+Service release 2 for 3.0.0, no new features were added

+

+

+Release Notes 3.0.1

+=============

+see CHANGELOG file for detailed log

+

+Service release 1 for 3.0.0, no new features were added

+

+

+Release Notes 3.0

+=============

+see CHANGELOG file for detailed log

+

+Refactoring main interface (admin, dashboard, etc.) to use HTML5 instead of Flash. 

+All the screens but the room are on HTML5. The room is still on Flash.

+

+The release also includes some bug fixes, timezone refactoring and a lot of 

+localization improvements.

+

+_Known Issues And Limitations_

+* RTMPS seems to be very unstable (will try to fix it in 3.1)

+* Recent version of Adobe Flash still causes crash (please downgrade to 11.5 version)

+https://bugzilla.mozilla.org/show_bug.cgi?id=885188

+* Multi-tabbing (no other flash application should be running in

+different browsers or tabs)

+* Chat clean up and log copying is not implemented

+* Moving recordings between folders does not work

+

+Please not that this is a first HTML5 release, so some minor UI issues are possible

+

+

+Release Notes 2.2.0

+=============

+see CHANGELOG file for detailed log

+

+Bug fix release for 2.1.1

+This release includes lots of UI and command line fixes, as well as some improvements:

+MSSQL DB support, Faster screen sharing, improved SOAP/REST call and LDAP support.

+

+_Known Issues_

+RTMPS seems to be very unstable (will try to fix it in 3.0)

+

+

+Release Notes 2.1.1

+=============

+see CHANGELOG file for detailed log

+

+Bug fix release for 2.1.0.

+This release includes some improvements in user interface, fixes for the 

+interview and video only rooms, and localization issues. 

+Configurable hot key for Mute/Unmute have been added.

+

+_Known Issues_

+Video/audio SIP integration is not a part of this Apache release.

+Check free red5sip product for this integration.

+

+Release passed reliability testing (great job, Vasily Degtyarev!)

+For 1 hour long conferences the following does not work with this release:

+* Recordigs (expected to work in 3.0)

+https://issues.apache.org/jira/browse/OPENMEETINGS-669

+* Recent version with Adobe Flash (please downgrade to 11.5 version)

+https://bugzilla.mozilla.org/show_bug.cgi?id=885188

+* Multi-tabbing (no other flash application should be running in

+different browsers or tabs)

+

+Release Notes 2.1

+=============

+see CHANGELOG file for detailed log

+

+_Integration with Asterisk_

+SIP/VOIP integration with Asterisk was refactored. 

+Confbridge application is now used instead of Meetme for the conferences.

+Sound quality and SIP transport stability was significantly improved.

+Basic support for video is added (is unstable and in beta version stage now).

+See also: http://openmeetings.apache.org/red5sip-integration_2.1.html

+

+_Improving the sound and video quality_

+All the audio/video related components now use SWF11 for broadcasting and 

+receiving audio and video signals. 

+Echo cancellation can be enabled in the config. 

+H264 video codec is now used instead of H263 to enable SIP video support.

+

+_Private and moderated chat_

+Ability to send private chat messages in the room is added as well as the chat 

+moderation funmctionality.

+

+_SMS sending module_

+Possibility to send SMS message as a meeting reminder is added.

+See also: https://cwiki.apache.org/confluence/display/OPENMEETINGS/SMS+Sending+Module

+

+_Network testing tool/script_

+Network testing tool is implemented and its link is added to the login page.

+See also: https://cwiki.apache.org/confluence/display/OPENMEETINGS/Connection+testing+tool

+

+_Improvements in the mail sending process_

+Now e-mails are re-send again in case of unsuccessfull result at the first 

+attempt or OpenMeetings re-start before the sending. 

+SMTP setting updates now takes effect just after they saving whereas previously 

+they started to work after the OpenMeetings re-start only.

+

+_Calendar_

+Messages about the meeting updates are sent only when substantial changes were made. 

+Multiple external attendees can be added as one operation, it's now possible to 

+specify user name for external guests (user will appear with this name in the user 

+list in the room). 

+

+_Room Interface_

+Possibility to get invitation link without sending an e-mail was added. 

+Confirmation dialog for exclusive audio no longer appears.

+Hot key is added to be able to "rearrange" video windows in the room. 

+Volume slider on the video pod toolbar was added.

+

+_Recordings and screen sharing improvements_

+Some improvements for the screen sharing and recordings quality and stability 

+were made.

+

+_Cluster capabilities_

+In the beta stage: OpenMeetings  can be configured in the cluster environment and 

+is ready for the testing, but development has not been fnished yet. 

+See also: http://openmeetings.apache.org/Clustering.html,

+https://cwiki.apache.org/confluence/display/OPENMEETINGS/Cluster+Master-Slave+overview

+

+_Admin/Calendar HTML5 UI_

+Additional HTML5 Wicket based UI (fully customizable with CSS) is added for 

+static screens as a proof of the concept.

+

+Getting Started

+===============

+Please visit the project website for the latest information:

+    http://openmeetings.apache.org/

+    

+Documentation for Installation and Upgrade:

+    http://openmeetings.apache.org/installation.html

+    http://openmeetings.apache.org/Upgrade.html

+

+Along with the developer mailing list archive:

+    http://openmeetings.apache.org/mail-lists.html

+    

+    

+System Requirements

+===================

+You need a platform that supports Sun Java SE 6.

+

+

+Building and running

+====================

+To build from source code:

+

+  - Requirements:

+    Sources compilation require Sun Java SE 6.

+    The project is built with Apache ANT 1.8.6 or later.

+  

+  - To build the OpenMeetings project run ant in the root directory:

+     ant

+    

+For a detailed documentation on how to build from source and options see:

+    http://openmeetings.apache.org/BuildInstructions.html

diff --git a/WebContent/crossdomain.xml b/WebContent/crossdomain.xml
new file mode 100644
index 0000000..f844f20
--- /dev/null
+++ b/WebContent/crossdomain.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<cross-domain-policy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+    xsi:noNamespaceSchemaLocation="crossdomain.xsd">
+	<site-control permitted-cross-domain-policies="all"/>
+	<allow-access-from domain="localhost" to-ports="20-65535"/>
+	<allow-access-from domain="*.local" to-ports="20-65535"/>
+</cross-domain-policy>
diff --git a/WebContent/crossdomain.xsd b/WebContent/crossdomain.xsd
new file mode 100644
index 0000000..7d7351d
--- /dev/null
+++ b/WebContent/crossdomain.xsd
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

+  <xs:element name="cross-domain-policy">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element ref="site-control"/>

+        <xs:element maxOccurs="unbounded" ref="allow-access-from"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="site-control">

+    <xs:complexType>

+      <xs:attribute name="permitted-cross-domain-policies" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="allow-access-from">

+    <xs:complexType>

+      <xs:attribute name="domain" use="required"/>

+      <xs:attribute name="to-ports" use="required" type="xs:NMTOKEN"/>

+    </xs:complexType>

+  </xs:element>

+</xs:schema>

diff --git a/WebContent/jrebel/red5-debug.bat b/WebContent/jrebel/red5-debug.bat
new file mode 100644
index 0000000..9087e9e
--- /dev/null
+++ b/WebContent/jrebel/red5-debug.bat
@@ -0,0 +1,19 @@
+REM #############################################

+REM Licensed under the Apache License, Version 2.0 (the "License");

+REM you may not use this file except in compliance with the License.

+REM You may obtain a copy of the License at

+REM

+REM     http://www.apache.org/licenses/LICENSE-2.0

+REM

+REM Unless required by applicable law or agreed to in writing, software

+REM distributed under the License is distributed on an "AS IS" BASIS,

+REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+REM See the License for the specific language governing permissions and

+REM limitations under the License.

+REM #############################################

+@echo off

+

+if NOT DEFINED RED5_HOME set RED5_HOME=%~dp0

+

+set JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n -javaagent:@jrebel.home@\jrebel.jar -Drebel.remoting_plugin=true -Dproject.root=@project.home@

+%RED5_HOME%\red5.bat

diff --git a/WebContent/jrebel/red5-debug.sh b/WebContent/jrebel/red5-debug.sh
new file mode 100644
index 0000000..b4065b4
--- /dev/null
+++ b/WebContent/jrebel/red5-debug.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+# #############################################
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# #############################################
+
+if [ -z "$RED5_HOME" ]; then export RED5_HOME=.; fi
+
+# Debug options
+export JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n $JAVA_OPTS -javaagent:@jrebel.home@/jrebel.jar -Drebel.remoting_plugin=true -Dproject.root=@project.home@"
+
+# Start Red5
+exec $RED5_HOME/red5.sh
diff --git a/WebContent/lzx.xsd b/WebContent/lzx.xsd
new file mode 100644
index 0000000..3146f4f
--- /dev/null
+++ b/WebContent/lzx.xsd
@@ -0,0 +1,14742 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" 
+  targetNamespace="http://localhost/openlaszlo/lzx" 
+  xmlns:lzx="http://localhost/openlaszlo/lzx">
+  <xs:simpleType name="booleanLiteral">
+    <xs:restriction base="xs:boolean"/>
+  </xs:simpleType>
+  <xs:simpleType name="colorLiteral">
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
+  <xs:simpleType name="numberLiteral">
+    <xs:restriction base="xs:double"/>
+  </xs:simpleType>
+  <xs:simpleType name="sizeLiteral">
+    <xs:restriction base="xs:double">
+      <xs:minInclusive value="0"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="inheritableBooleanLiteral">
+    <xs:union memberTypes="lzx:booleanLiteral">
+      <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="inherit"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+  <xs:simpleType name="constraint">
+    <xs:restriction base="xs:string">
+      <xs:pattern value="$(style|path|immediately|once|always)?\{.*\}"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="boolean">
+    <xs:union memberTypes="lzx:booleanLiteral lzx:constraint">
+    <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="null"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+  <xs:simpleType name="booleanOrNull">
+    <xs:union memberTypes="lzx:boolean">
+      <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="null"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+  <xs:simpleType name="color">
+    <xs:union memberTypes="lzx:colorLiteral lzx:constraint"/>
+  </xs:simpleType>
+  <xs:simpleType name="expression">
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
+  <xs:simpleType name="reference">
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
+  <xs:simpleType name="number">
+    <xs:union memberTypes="lzx:numberLiteral lzx:constraint xs:string"/>
+  </xs:simpleType>
+  <xs:simpleType name="token">
+    <xs:union memberTypes="xs:token"/>
+  </xs:simpleType>
+  <xs:simpleType name="size">
+    <xs:union memberTypes="lzx:sizeLiteral lzx:constraint"/>
+  </xs:simpleType>
+  <xs:simpleType name="numberExpression">
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
+  <xs:simpleType name="sizeExpression">
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
+  <xs:simpleType name="css">
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
+  <xs:simpleType name="opacity">
+    <xs:union memberTypes="lzx:constraint">
+      <xs:simpleType>
+        <xs:restriction base="xs:double">
+          <xs:minInclusive value="0.0"/>
+          <xs:maxInclusive value="1.0"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+  <xs:simpleType name="percentage">
+    <xs:restriction base="xs:string">
+      <xs:pattern value="(\d+(.\d?)|.\d+)%"/>
+    </xs:restriction>
+  </xs:simpleType>
+<xs:element name="passthrough" type="lzx:passthrough" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Provides a way to import SWF10 declarations. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="passthrough" mixed="true">
+  <xs:group ref="lzx:topLevelElements" />
+      <xs:attribute name="when" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Provides a way to import SWF10 declarations. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:complexType>
+<xs:element name="styledtext" type="lzx:styledtext" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A text subclass which allows use of text styles
+        @START_CODE
+            &lt;styledtext text="hello" style="mytextstyle" /&gt;
+        @END_CODE
+    </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="styledtext" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:text">
+      <xs:attribute name="style" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ should be an object of type "textstyle" </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="menubutton" type="lzx:menubutton" >
+</xs:element>
+  <xs:complexType name="menubutton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:button">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="lzeditcombobox" type="lzx:lzeditcombobox" >
+</xs:element>
+  <xs:complexType name="lzeditcombobox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:lzcombobox">
+      <xs:attribute name="y_offset" type="xs:string" default="2" >
+</xs:attribute>
+      <xs:attribute name="x_offset" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="width_offset" type="xs:string" default="-9" >
+</xs:attribute>
+      <xs:attribute name="height_offset" type="xs:string" default="-3" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="vsliderthumb" type="lzx:vsliderthumb" >
+</xs:element>
+  <xs:complexType name="vsliderthumb" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:button">
+      <xs:attribute name="showvalue" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="drag_min" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="drag_max" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="closebox" type="lzx:closebox" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the closebox class has its own resource </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="closebox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basebutton">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="myday" type="lzx:myday" >
+</xs:element>
+  <xs:complexType name="myday" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basedatepickerday">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="radiogroup" type="lzx:radiogroup" >
+</xs:element>
+  <xs:complexType name="radiogroup" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baselist">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="Test" type="lzx:Test" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+  Test is the abstract interface class for all LZUnit tests.
+
+  It accumulates the results of the test and defines the various
+  assert methods that can be used to implement each test.
+
+  &lt;xref linkend="lz.TestCase"/&gt; and &lt;xref linkend="lz.TestResult"/&gt; extend this class to provide
+  functionality.
+</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="Test" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:DebugObject">
+      <xs:attribute name="formatter" type="xs:string" default="new lz.text()" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseradiogroup" type="lzx:baseradiogroup" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Class baseradiogroup: a class representing the selected radiobutton,
+          that can have many radiobuttons associated with it </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="baseradiogroup" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baseformitem">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="event" type="lzx:event" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The sender in Laszlo's point-to-point event system.
+Events underly most of the functionality in OpenLaszlo applications. Unlike events in similar systems, OpenLaszlo's events are point-to-point, meaning that there is no general broadcast mechanism for events, and events do not trickle up or down the instance hierarchy. Instead, objects called &lt;handler&gt;s use LzDelegate.register() to register to receive events.
+
+An event is implicitly declared for every attribute of a class or instance and sent when that attribute is changed. So, for instance, if a class has an attribute foo, you can receive events when foo changes by registering for the onfoo event.
+
+Events are sent with a single argument, which usually conveys information about the property that changed. The default behavior of the LzEventable.setAttribute() method is to set the named property and send the event called "on" + property. This is general mechanism that updates constraints in a OpenLaszlo programs. For instance, when a view changes its x position, it sends the event onx with the new value for its x property.
+
+Example:
+&lt;handler name="onavalue" reference="eventSender" args="v"&gt;
+  this.setAttribute('x' , v);
+&lt;/handler&gt; 
+ </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="event" mixed="true">
+  <xs:group ref="lzx:topLevelElements" />
+      <xs:attribute name="name" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The name of the event </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:complexType>
+<xs:element name="inittimer" type="lzx:inittimer" >
+</xs:element>
+  <xs:complexType name="inittimer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="tabscontent" type="lzx:tabscontent" >
+</xs:element>
+  <xs:complexType name="tabscontent" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basetabscontent">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseformitem" type="lzx:baseformitem" >
+</xs:element>
+  <xs:complexType name="baseformitem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basevaluecomponent">
+      <xs:attribute name="submitname" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The name used when submitting the data of the form item.
+              If no submitname is given before oninit, the 'name' attribute is used.
+              Unlike the name attribute, submitname may be changed at runtime. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="submit" type="lzx:boolean" default="${enabled}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If submit is true, then the value of this element will be submitted
+              with the form.  By default, submit is true when enabled.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="rollbackvalue" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Rollback value for the baseformitem. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onvalue" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Event sent whenever checkbox value changes. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onchanged" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Event sent when baseformitem is changed. Only sent once when true
+              or once when false. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ignoreform" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, the component will not inform its parent form
+             that it has changed. Useful in conjunction with submit=false </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="changed" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Boolean to determine whether the baseformitem was changed. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="emailvalidator" type="lzx:emailvalidator" >
+</xs:element>
+  <xs:complexType name="emailvalidator" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basevalidator">
+      <xs:attribute name="toomanyatmarkErrorstring" type="xs:string" default="Too many @ characters in your email address." >
+</xs:attribute>
+      <xs:attribute name="missingperiodErrorstring" type="xs:string" default="The domain in your email address is missing a period." >
+</xs:attribute>
+      <xs:attribute name="missingatmarkErrorstring" type="xs:string" default="Missing the @ character in your email address." >
+</xs:attribute>
+      <xs:attribute name="incorrectlydomainErrorstring" type="xs:string" default="The domain in your email address is incorrectly formatted." >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="datapoints" type="lzx:datapoints" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keywords private
+          datapoints for the chart </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="datapoints" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="valuepoints" type="lzx:valuepoints" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+       Represents a value point in the chart
+       @access public
+       </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="valuepoints" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="tip" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the tooltip value will be display when the mouse over the line </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="label" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the label will be display next to the line </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="datay" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the y point will be draw </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="datax" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the x point will be draw </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="stylishbutton" type="lzx:stylishbutton" >
+</xs:element>
+  <xs:complexType name="stylishbutton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basebutton">
+      <xs:attribute name="tint" type="lzx:color" default="0xD9DCF5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Control the look of the button. These attributes can and should
+              be controlled with css. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="texty" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ y position of text, for fine tuning </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showrightedge" type="xs:string" default="true" >
+</xs:attribute>
+      <xs:attribute name="showrightborder" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ whether to show highlight on left side of button </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showleftedge" type="xs:string" default="true" >
+</xs:attribute>
+      <xs:attribute name="showleftborder" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ whether to show shadow on right side of button </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="rightresource" type="xs:string" default="stylishbutton_right_rsc" >
+</xs:attribute>
+      <xs:attribute name="middleresource" type="xs:string" default="stylishbutton_middle_rsc" >
+</xs:attribute>
+      <xs:attribute name="leftresource" type="xs:string" default="stylishbutton_left_rsc" >
+</xs:attribute>
+      <xs:attribute name="icony" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ y position of icon, for fine tuning.
+            if not specified, center the icon vertically. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="iconname" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ icon resource name prefix </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fontcolor" type="lzx:color" default="0x373B56" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="fisheye" type="lzx:fisheye" >
+</xs:element>
+  <xs:complexType name="fisheye" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="start_size" type="xs:string" default="24" >
+</xs:attribute>
+      <xs:attribute name="halo_size" type="xs:string" default="20" >
+</xs:attribute>
+      <xs:attribute name="expanded_size" type="xs:string" default="100" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="_scrubstate" type="lzx:_scrubstate" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+   enclosing view must have the following attributes:
+   stream  the stream to control, assume it is paused
+   min     min 'x' value
+   max     max 'x' value
+
+   @keywords private </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="_scrubstate" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:state">
+      <xs:attribute name="x" type="xs:string" default="this.__scrubstate_getnewpos(                 this.immediateparent.getMouse( 'x' ) + this.__scrubstate_xdoffset)" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="microphone" type="lzx:microphone" >
+</xs:element>
+  <xs:complexType name="microphone" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:mediadevice">
+      <xs:attribute name="stream" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Mediastream to associate with the microphone, for audio recording. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="silencetimeout" type="lzx:number" default="-1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Silence timeout in ms, the amount of silent time signifying that 
+              silence has actually begun.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="silencelevel" type="lzx:number" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Silence level, 0-100, the amount of sound required to activate 
+              the microphone.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="rate" type="lzx:number" default="8" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Rate in khz the microphone is using to capture sound, either 5, 8, 11, 22, or 44.
+              @keywords final  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="level" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Audio level, 0-100, the amount of sound detected by this microphone.
+              Reset to 0 when there is no audio (no activity or not allowed).
+              @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="gain" type="lzx:number" default="50" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The amount the microphone boosts the signal.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="framesperpacket" type="lzx:number" default="6" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Number of Speex speech frames transmitted in a packet.
+              @keywords final  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="encodequality" type="lzx:number" default="6" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The quality of encoded speech quality when using the Speex codec.
+              Possible values are from 0 to 10.
+              @keywords final  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="echosuppression" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, the microphone will attempt to use echo suppression.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="codec" type="xs:string" default="NellyMoser" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The codec to use, either 'NellyMoser' or 'Speex'.
+              @keywords final  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="image" type="lzx:image" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ image represents an image that can be loaded at runtime, either by specifying a URL directly or by binding to data</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="image" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="src" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The URL to load the image from.  May be set directly on this attribute or indirectly by specifying a datapath for this tag. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="prefix" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ an optional prefix URL to load from. If specified, the url will be appended to this prefix.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onsrc" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="lastloaded" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The last URL loaded by this image tag.  Used to prevent the same URL from loading twice.  
+              @keywords readonly</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="forcereload" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, the same URL will be reloaded.  If false, the same URL will not load multiple times.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="tooltipManager" type="lzx:tooltipManager" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+      @topic Incubator
+      @subtopic Tooltip Manager
+  </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="tooltipManager" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="tooltip_obj" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onMouseOverDelegateArray" type="xs:string" default="[]" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onMouseOutDelegateArray" type="xs:string" default="[]" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="messages" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+      @topic Incubator
+      @subtopic Tooltip Manager
+  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="messageMap" type="xs:string" default="[]" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="delay" type="lzx:number" default="1000" >
+</xs:attribute>
+      <xs:attribute name="component_identifier" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="databar" type="lzx:databar" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private
+    Render a bar or column of data in the chart</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="databar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="totalsets" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Total number of bar sets. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="tooltip" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, will display additional information about data
+            in a popup when the cursor is placed over a bar.
+            (Tooltip to be developed in a future version.) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="siblingbars" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The number of sibling bars. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="drawaxis" type="xs:string" default="x" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The chart's direction.  (Set here as well for easier reference.) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dataresource" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The image to be loaded over the bar, if any. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bvalue" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Numerical value of bar. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="barspace" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The space between bars. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="barset" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This bar's group's set number. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="barnumber" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This bar's number in its series. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="animationinit" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Animation style for when bars appear. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basevalidator" type="lzx:basevalidator" >
+</xs:element>
+  <xs:complexType name="basevalidator" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="trim" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="requiredErrorstring" type="xs:string" default="this field is required." >
+</xs:attribute>
+      <xs:attribute name="required" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isformvalidator" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="iserror" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="innercompornent" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="errorstring" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="autocompletecombobox" type="lzx:autocompletecombobox" >
+</xs:element>
+  <xs:complexType name="autocompletecombobox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="defaulttext" type="xs:string" default="Type Here" >
+</xs:attribute>
+      <xs:attribute name="contentpath" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="actuallyTyped" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="labeledinputtext" type="lzx:labeledinputtext" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+        A horizontal container for a right-aligned label and text field.
+        usage:
+            @START_CODE
+                &lt;labeledinputtext label="Title" datapath="details/@title" fieldwidth="50"/&gt;
+            @END_CODE
+
+        datapath should be set to resolve to a text value
+    </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="labeledinputtext" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="textcolor" type="xs:string" default="0x000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ color of text </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="multiline" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ set to true for multiline </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maxlength" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Maximum length for the editable text field. Default is null
+              (no limit) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labelwidth" type="lzx:number" default="68" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ column for right-aligned label </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labelsize" type="xs:string" default="${detailslabel_style.fontsize}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ label font size </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labelfont" type="xs:string" default="${detailslabel_style.font}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ label font </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labelcolor" type="lzx:number" default="${detailslabel_style.textcolor}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ color of label </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="label" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the right-aligned label </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fontname" type="xs:string" default="Verdana, Arial, sans" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ font face </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fieldwidth" type="lzx:number" default="128" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ width of editable text field </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fieldheight" type="lzx:number" default="18" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ set this to larger if multiline is true </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="dragstate" type="lzx:dragstate" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ this state provides standard 'drag' functionality to its immediateparent when applied </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="dragstate" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:state">
+      <xs:attribute name="drag_min_y" type="lzx:number" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the minimum value for the y attribute. Default : null, no minimum </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="drag_min_x" type="lzx:number" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the minimum value for the x attribute. Default : null, no minimum </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="drag_max_y" type="lzx:number" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the maximum value for the y attribute. Default : null, no maximum </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="drag_max_x" type="lzx:number" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the maximum value for the x attribute. Default : null, no maximum </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="drag_axis" type="xs:string" default="both" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 'x', 'y' or 'both' </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basetab" type="lzx:basetab" >
+</xs:element>
+  <xs:complexType name="basetab" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baselistitem">
+      <xs:attribute name="tabpane" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The tabpane associated with this tab.
+              @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="_internalinputtext" type="lzx:_internalinputtext" >
+</xs:element>
+  <xs:complexType name="_internalinputtext" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:inputtext">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videolibraryicon" type="lzx:videolibraryicon" >
+</xs:element>
+  <xs:complexType name="videolibraryicon" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="selected" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="over" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="maxHeight" type="xs:string" default="48" >
+</xs:attribute>
+      <xs:attribute name="icon" type="xs:string" default="video_no_icon_rsc" >
+</xs:attribute>
+      <xs:attribute name="aspectRatio" type="xs:string" default="1" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="TextTestCase" type="lzx:TextTestCase" >
+</xs:element>
+  <xs:complexType name="TextTestCase" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:TestCase">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="regionstyle" type="lzx:regionstyle" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ style for a region
+      @access public
+      </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="regionstyle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basestyle">
+      <xs:attribute name="image" type="xs:string" default="${null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ image path </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="gradient" type="xs:string" default="none" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 'none', 'linear', 'radial' </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="color" type="lzx:color" default="0xFF0000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ RGB color on the axis line </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="view" type="lzx:view" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The &lt;view&gt; is the most basic viewable element in an OpenLaszlo application. Anything that is displayed on the canvas is a view or extends the view class. A view is a rectangle, which can be visible or invisible, and which can contain other views or display "resources" such as images, .swf files, or other supported media. One view controls one displayable resource. The view system is strictly hierarchical; that is, each view has a single parent but can have multiple children.  </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="view" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="yscale" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Specifies this vertical scale for this and all child views. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="yoffset" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Specifies a translation point for drawing of this view. If the yoffset is set, then rotation and y position will be calculated by first adding the yoffset.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="y" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The vertical offset of this view's upper left corner from the upper left corner of its container  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="xscale" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Specifies this horizontal scale for this and all child views. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="xoffset" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Specifies a translation point for drawing of this view. If the xoffset is set, then rotation and x position will be calculated by first adding the xoffset.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="x" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The horizontal offset of this view's upper left corner from the upper left corner of its container.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="with" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="width" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+The width of the view. Can be set to either a number, or null, to indicate that the view should be sized to hold its content. If the view is set to stretch its resource, the resource will be resized to the new value. When read, reflects the actual size of the view.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="visible" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	A value of true means that this view is shown. A value of false means that this view is hidden. Note that an otherwise clickable view that is not visible will have no click region and will not be clickable.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="visibility" type="xs:string" default="collapse" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	A value of "visible" means that this view is shown. A value of "hidden" means that this view is hidden. Setting this attribute to "collapse" means that the runtime will hide this view when: its opacity is zero, it has a datapath that does not match a node, or it is loading its media. In this case, the the value of the 'visible' attribute of the view will reflect the view's current visible state. 
+	One of: hidden|visible|collapse </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="valign" type="xs:string" default="top" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Sets the vertical alignment for the view to the given value. The alignment is based on the height of this view as compared to the height of the view's immediateparent. 
+	One of: 	"top" | "middle" | "bottom" | constraint </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="usegetbounds" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	True if this view requires a call to getBounds() for accurate width and height measurement. This may be necessary when an offset or rotation are applied.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="unstretchedwidth" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	If stretches is not set to none, the width that this view would be if it weren't stretched. This attribute can be used to scale a view by a percentage of its original size, or to determine the aspect ratio for a view.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="unstretchedheight" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	If stretches is not set to none, the height that this view would be if it weren't stretched. This attribute can be used to scale a view by a percentage of its original size, or to determine the aspect ratio for a view.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="totalframes" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The total number of frames for this view's resource. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="tintcolor" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Sets the color offset, based on a hexadecimal color string, e.g. '#ff00ff'. See setColorTransform() for details. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="subviews" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	An array of the subviews that are children of this view. This is initialized to an empty array for views that have no subviews.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="stretches" type="xs:string" default="none" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Setting stretches causes a view to change its coordinate space so that everything it contains (resources and other views) fit exactly into the view's width and/or height. The default for this property is "none". This is used to resize a view's contents by setting its width and/or height. 
+	One of: 	"width" | "height" | "both" | "none" </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="source" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The URL from which to load the resource for this view. If this attribute is set, the media for the view is loaded at runtime.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showhandcursor" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Show or hide the hand cursor for this view, if clickable </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="shadowdistance" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The distance for the drop shadow, in pixels </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="shadowcolor" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+The color for the drop shadow </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="shadowblurradius" type="lzx:number" default="4" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+The blur radius for the drop shadow, in pixels. A negative value will cause the shadow to be inset. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="shadowangle" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The angle for the drop shadow, in degrees </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="rotation" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The rotation value for the view (in degrees). Value may be less than zero or greater than 360.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="resourcewidth" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+The width of the resource that this view attached </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="resourceheight" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The height of the resource that this view attached </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="resource" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+A resource that is presented in the background of this view. The value can be either the name of a resource defined with the resource tag, a URL, or a pathname. If the value is a URL, the resource is requested when the view is displayed. If it's a pathname, the file named by the pathname is compiled into the application, and attached to this view.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ratio" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This element is only available in the splash SWF specific </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="proxyurl" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The url of the proxy server, if the app is running in proxied mode. proxyurl can be null, a URL string, or a function.
+
+    If the value is a string, treat it as a URL to the proxy server.
+    If the value is a function, it should return the URL of the proxy server.
+
+The default proxy policy references the proxyurl of the canvas.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="playing" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	If true, this view is currently playing. Setting to true causes the view to play, false causes playback to stop. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="pixellock" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 	The view system supports sub-pixel positioning to enable smooth animation. This may be turned off to make the view snap to a pixel boundary by setting pixellock to true.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="opacity" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The opacity of the view's contents. 1.0 is opaque; 0.0 is totally transparent (invisible).  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ony" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+event for changes to view's y property </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onx" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+event for changes to view's x property </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onwidth" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+event for changes to view's width property </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onvisible" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Sent when the view changes visibility (true/false) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ontouch" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+The ontouch event is sent when a touch device receives a multitouch event. The value sent with the event is an array of objects with with two properties: clientX and clientY. Currently supported only in iOS on DHTML. Note that Android Webkit doesn't send multitouch events - see http://www.quirksmode.org/mobile/tableTouch.html </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ontimeout" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Sent when the request to load media for the view times out </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onstop" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Sent when a view's resource that is capable of playing is stopped. This is only called if stop is called directly; when a resource hits its last frame, the lz.view event onlastframe is called. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onshadowdistance" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Sent when shadowdistance changes </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onshadowcolor" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Sent when shadowcolor changes </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onshadowblurradius" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Sent when shadowblurradius changes </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onshadowangle" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Sent when shadowangle changes </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onremovesubview" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Event called when this view removes a subview </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onplaying" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Sent when a view begins playing its resource </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onplay" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Sent when a view begins playing its resource </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onopacity" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Sent when a view changes its opacity </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onmouseupoutside" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+The onmouseup event is sent when the pointing device button is released outside the element it went down on. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onmouseup" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+The onmouseup event is sent when the pointing device button is released over an element. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onmousetrackup" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Sent when the mouse button is released over a view that is registered to an active track group. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onmousetrackover" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Sent when the mouse is over a view that is registered to an active track group. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onmousetrackout" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Sent when the mouse leaves the visible area of a view that previously sent an 'ontrackover' event. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onmouseover" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+The onmouseover event is sent when the pointing device is moved onto an element. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onmouseout" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+The onmouseout event is sent when the pointing device is moved so that is is no longer over an element. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onmousedragout" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+The onmousedragout event is sent when the pointing device is moved off the element while the button is down. down. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onmousedragin" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+The onmousedragin event is sent when the pointing device button has moved off the element and back on again while the button is down. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onmousedown" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+The onmousedown event is sent when the pointing device button is pressed over an element. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onloadratio" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Sends a percentage (0-1) reflecting the amount of a media file that's been downloaded. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onload" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Send when the view finishes loading media. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onlastframe" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Sent when the view sets its frame (resource number) to the last frame. This can be used to find out when a streaming media clip is done playing. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onkeyup" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The onkeyup event is sent when this view has the focus and a key is released. This event is sent with the keycode for the key that went up. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onkeydown" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The onkeydown event is sent when this view has the focus and a key is pressed down. Multiple key down events are sent for a key that is held down. If you want the script executed only once, use onkeyup. This event is sent with the keycode for the key that is down.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onheight" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Event for changes to view's height property</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ongesture" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+The ongesture event is sent when a touch device receives a gesture event. The value sent with the event is an object with two properties: scale and rotation. Currently supported only in iOS on DHTML. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onframesloadratio" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Sends a percentage (0-1) reflecting the number of frames downloaded.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onframe" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Sent onidle while view is playing its resource</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onfocus" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The onfocus event is sent when an element receives focus either by the pointing device or by tabbing navigation.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onerror" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Sent when there is an error loading the view's resource. The argument sent with the event is an error string.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ondblclick" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The ondblclick event is sent when the pointing device button is double clicked over an element.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="oncornerradius" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Sent when cornerradius changes</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="oncontext" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Sent when the drawing context is ready to use, which can take some time in IE DHTML.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onclip" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The onclip event is sent when the clip attribute of a view is changed</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onclickable" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Event for changes to view's clickable property</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onclick" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+   The onclick event is sent when the pointing device button is clicked over an element.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onblur" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  The onblur event is sent when an element loses focus either by the pointing device or by tabbing navigation.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onbackgroundrepeat" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ event for changes to view's backgroundrepeat property </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onaddsubview" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Event called when this view adds a subview </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="mask" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Reference to closest masked view in the hierarchy at or above this one  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="loadratio" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	For views whose resource is loaded at runtime, ratio of the loaded bytes to the total bytes. This is a number between zero and 1.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="layout" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	A CSS declaration of property: value pairs of layout attributes, which are used to create a layout that is attached to this view. If there is a class property, it names the class of the layout to be created, otherwise &lt;simplelayout&gt; is used. To remove the previously set layout, use {'class': 'none'} Examples: layout="axis: x", layout="class: constantlayout", layout="axis: y", layout="axis: x; spacing: 5".  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="height" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The height of the view. Can be set to either a number, or null, to indicate that the view should be sized to hold its content. If the view is set to stretch its resource, the resource will be resized to the new value. When read, reflects the actual size of the view.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="hassetwidth" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	If true, then this view has an assigned or constrained width, and the view will not be sized to its contents.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="hassetheight" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	If true, then this view has an assigned or constrained height, and the view will not be sized to its contents.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="hasdirectionallayout" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+If true, sprite will use TLF text framework class that supports bidirectional text layout. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="framesloadratio" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	For views whose resource is loaded at runtime, the ratio of the loaded frames to the total frames. This is a number between zero and 1.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="frame" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	If this view has a multi-frame resource, this allows setting which resource frame is displayed. Defaults to the first frame (1). See also the resource attribute. Setting this attribute will change the frame that is being displayed by the resource associated with this view. The first frame of the resource is frame 1. Setting a view's 'donttrackplay' option to true will allow the view's resource to play without updating the value of the view's frame property. This can save CPU usage in cases where the application doesn't need to know what frame the resource is showing while it is playing.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fontstyle" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The style to use to render text fields that appear inside of this view. One of "plain", "bold" , "italic" or "bolditalic".  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fontsize" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Pixel size to use to render text which appears inside this view. The default is 8.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="font" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The font to use for any &lt;text&gt; or &lt;inputtext&gt; elements that appear inside this view. Like all the font properties (fontstyle and fontsize too) these properties cascade down the view hierarchy until a new value is specified.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="focustrap" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	If true, this view "traps" the focus, for example in a window or dialog. See focus manager (lz.Focus) for more details.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="focusable" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	If true, this view will receive focus events. See focus manager (lz.Focus) for more details.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fgcolor" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+The foreground color of any &lt;text&gt; or &lt;inputtext&gt; elements that appear inside this view. To apply a color transform, see tintcolor. May be set to any valid CSS color specification. When read, will be read as the equivalent numeric value. To retrieve a CSS color specification, use this.presentAttribute('fgcolor', 'color'). Default is 0 (black).  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="cursor" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The cursor to display when the mouse is over this view. Any resource ID can be used as a cursor, or '' for the default cursor. This attribute can be set for any view with clickable=true.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="cornerradius" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The corner radius for the background, e.g. '4' or a list of up to 8 numbers '4 0 0 4 / 2 0 0 2'. Per http://www.w3.org/TR/css3-background/#the-border-radius the 8 values for each radii are given in the order top-left, top-right, bottom-right, bottom-left. If you use the '/' notation, the values before the slash are the horizontal radii, and the values after the slash are the vertical radii.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="contextmenu" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+The context menu installed on this view </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="context" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 	Contains a reference to the raw drawing context. The oncontext event is sent when the context is ready to use, which can take some time in IE DHTML.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="colortransform" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	color transforms everything contained in the view (except the background) by the transformation dictionary given in o. The dictionary has the following possible keys: o.redMultiplier: multiplier for red component (0 to 1) defaults to 1 o.redOffset: offset for red component (-255 to 255) defaults to 0 o.greenMultiplier: multiplier for green component (0 to 1) defaults to 1 o.greenOffset: offset for green component (-255 to 255) defaults to 0 o.blueMultiplier: multiplier for blue component (0 to 1) defaults to 1 o.blueOffset: offset for blue component (-255 to 255) defaults to 0 o.alphaMultiplier: multiplier for alpha component (0 to 1) defaults to 1 o.alphaOffset: offset for alpha component (-255 to 255) defaults to 0  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="clip" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 	Clip the view's contents to its size. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="clickregion" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Setting to a vector-based resource changes the clickable hotspot for the mouse. Check capabilities.clickregion before using to avoid debugger warnings.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="clickable" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	If true, this view intercepts click events; otherwise they are passed to its container. This defaults to true if the view defines a mouse event handler or a cursor. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="center" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This element is only available in the splash SWF specific </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="capabilities" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+An object containing properties corresponding to the current runtime's capabilities. For example, capabilities.rotation is true in swf and recent versions of Safari and Firefox.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="cachebitmap" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	A value of true means that this view's bitmap will be cached, if available. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bgcolor" type="lzx:color" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The background color of the view. Setting bgcolor to null will make the view transparent. May be set to any valid CSS color specification. When read, will be read as the equivalent numeric value. To retrieve a CSS color specification, use this.presentAttribute('bgcolor', 'color'). Default is null (transparent).  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="backgroundrepeat" type="xs:string" default="norepeat" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Setting backgroundrepeat causes a view to repeat its resource to fit the view's width and/or height. Can be 'repeat', 'repeat-x', 'repeat-y' or 'norepeat' per the CSS1 background-repeat style. 
+	One of: 	"repeat" | "repeat-x" | "repeat-y" | "norepeat" </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="align" type="xs:string" default="left" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Sets the alignment for the view to the given value. The alignment is based on the size of this view as compared to the size of the view's immediate parent. 
+	One of: 	"left" | "center" | "right" | constraint </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="aatabindex" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Set accessibility tab order </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="aasilent" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 	Set accessibility silencing/unsilencing </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="aaname" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 	Set accessibility description </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="aadescription" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="aaactive" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 	Activate/inactivate children for accessibility </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="soap" type="lzx:soap" >
+</xs:element>
+  <xs:complexType name="soap" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:rpc">
+      <xs:attribute name="wsdl" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Required attribute that specifies WSDL to read for the SOAP
+              object. The value for wsdl should be an href. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="service" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The SOAP service to fetch. If not specified, the first service
+              encountered in the WSDL is used. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="responseheaders" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If set, the SOAP response header returned by the last
+              call. The value for this must be a dataset. Default is null. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="requestheaders" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The SOAP header to pass with each request. This can be either a
+              string or a dataset. Default is null. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="proto" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The prototypes that can be used to create objects. 
+              @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="port" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The SOAP port to use. If not specified, the first SOAP port
+              encountered in the WSDL is used. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseform" type="lzx:baseform" >
+</xs:element>
+  <xs:complexType name="baseform" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="onchanged" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Event sent when baseformitem is changed. Only sent once when true
+              or once when false. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="formdata" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Holds a reference to each datacomponent contained within the
+              form. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="changed" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Boolean to determine whether the baseformitem was changed. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="rangeslider" type="lzx:rangeslider" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="rangeslider" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:custombaseslider">
+      <xs:attribute name="minx" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="minvalue" type="xs:string" default="this.minlimit + this.leftknob.x * this.valueratio" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maxx" type="xs:string" default="${parent.rightknob.x}" >
+</xs:attribute>
+      <xs:attribute name="maxvalue" type="xs:string" default="this.minlimit + this.rightknob.x * this.valueratio" >
+</xs:attribute>
+      <xs:attribute name="isMouseDown" type="xs:string" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="mediadevice" type="lzx:mediadevice" >
+</xs:element>
+  <xs:complexType name="mediadevice" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="devicename" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Name of the device. 
+              @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="deviceindex" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Zero-based index of the device, or null for user's default device. 
+              Default is null, which selects the default device. 
+              When the default device is initialized, deviceindex is updated to
+              its actual index. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="debug" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ set to true for verbose debugging messages </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="capturing" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Boolean flag that controls if the media device
+              is currently capturing input. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="allowed" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Tracks whether the user has allowed device access. 
+              True after user has accepted security dialog,
+              false if the user denies access with security dialog.
+              @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="active" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Flag that tracks if there's device activity (audio sound, video motion). 
+              @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="legenditem" type="lzx:legenditem" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private
+    individual legend item </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="legenditem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="textsize" type="lzx:number" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The font size of the label text for this item in the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="textcolor" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The color of the label text for this item in the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="linevisible" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="itemvalue" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The value for this item in the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="itemlabel" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The text label for this item. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="identifier" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private
+    individual legend item </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="iconshape" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The shape of the icon drawn. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="iconcolor" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The color for the icon. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="hlcolor" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The highlight color to be used when this item has been
+            moused over. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="face" type="lzx:face" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Defines a font face or style within the font family that the outer element defines.
+ </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="face" mixed="true">
+  <xs:group ref="lzx:topLevelElements" />
+      <xs:attribute name="style" type="xs:string" default="bold|italic|bold italic|italic bold|plain" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Corresponds to the fontstyle attribute of a view.
+    One of: 	bold | italic | bold italic | italic bold | plain  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="src" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The path of a file that contains the source for this object. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:complexType>
+<xs:element name="vslidertrack" type="lzx:vslidertrack" >
+</xs:element>
+  <xs:complexType name="vslidertrack" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="simplelayout" type="lzx:simplelayout" >
+</xs:element>
+  <xs:complexType name="simplelayout" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:layout">
+      <xs:attribute name="spacing" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A pixel amount to use between each view in the layout </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A pixel amount to inset the first view controlled by the layout</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="axis" type="xs:string" default="y" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The axis in which this layout operates. One of 'x' or 'y'. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="newvscrollbar" type="lzx:newvscrollbar" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The vertical scrollbar manipulates the y position of a target view that is
+      clipped by its parent, creating a scrolling effect when the user
+      clicks up/down arrows, clicks on the scroll track or drags the thumb. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="newvscrollbar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basescrollbar">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="silverstyle" type="lzx:silverstyle" >
+</xs:element>
+  <xs:complexType name="silverstyle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:style">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="viewspool" type="lzx:viewspool" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private
+     Represents a pool of view </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="viewspool" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="viewclass" type="xs:string" default="$once{null}" >
+</xs:attribute>
+      <xs:attribute name="used" type="xs:string" default="$once{[]}" >
+</xs:attribute>
+      <xs:attribute name="unused" type="xs:string" default="$once{[]}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private
+     Represents a pool of view </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="parentview" type="xs:string" default="$once{null}" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="param" type="lzx:param" >
+</xs:element>
+  <xs:complexType name="param" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="value" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Value to use for parameter. A &lt;code&gt;getValue()&lt;/code&gt; method can be declared
+              inside param to use its return as the parameter value. If both
+              &lt;code&gt;value&lt;/code&gt; attribute and &lt;code&gt;getValue()&lt;/code&gt; method are declared, param will use
+              &lt;code&gt;getValue()&lt;/code&gt;. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="datepickerday" type="lzx:datepickerday" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This is the implementation of the datepickerday for 
+          the datepicker </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="datepickerday" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basedatepickerday">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="columnchartplotarea" type="lzx:columnchartplotarea" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keywords private
+     plotarea of column chart </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="columnchartplotarea" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:virtualdrawview">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="multiplefileupload" type="lzx:multiplefileupload" >
+</xs:element>
+  <xs:complexType name="multiplefileupload" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="numfields" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ numbers of fileuploadlist   </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="erroroccured" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Error occured</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="newhscrollbar" type="lzx:newhscrollbar" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A scrollbar manipulates the x or y position of a target view that is
+      clipped by its parent, creating a scrolling effect when the user clicks
+      up/down arrows, clicks on the scroll track or drags the thumb. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="newhscrollbar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basescrollbar">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="numbervalidator" type="lzx:numbervalidator" >
+</xs:element>
+  <xs:complexType name="numbervalidator" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basevalidator">
+      <xs:attribute name="toosmallErrorstring" type="xs:string" default="This number is too small." >
+</xs:attribute>
+      <xs:attribute name="toobigErrorstring" type="xs:string" default="This number is too large." >
+</xs:attribute>
+      <xs:attribute name="notnumberErrorstring" type="xs:string" default="This field contains invalid characters." >
+</xs:attribute>
+      <xs:attribute name="notintErrorstring" type="xs:string" default="Enter integer value." >
+</xs:attribute>
+      <xs:attribute name="minvalue" type="lzx:number" default="null" >
+</xs:attribute>
+      <xs:attribute name="maxvalue" type="lzx:number" default="null" >
+</xs:attribute>
+      <xs:attribute name="domain" type="xs:string" default="real" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basetabelement" type="lzx:basetabelement" >
+</xs:element>
+  <xs:complexType name="basetabelement" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baselistitem">
+      <xs:attribute name="onopenstop" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Sent at the end of the open animation. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onopenstart" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Sent at the start of the open animation. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onclosestop" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Sent at the end of the close animation. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onclosestart" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Sent at the start of the close animation. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="minheight" type="lzx:number" default="22" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The height the tab will close to. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="itemclassname" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ When creating tabelements via additem, this is the class that gets
+              created. The default value is the class of the first tabelement or
+              its descendant. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="hideonclose" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Content is automatically hidden when tabelement is closed. To
+              override, set this attribute to false. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="headerheight" type="lzx:number" default="$once{minheight}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The height of the header. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="contentvisible" type="xs:string" default="$once{! hideonclose}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This is set to true when a basetabelement begins to open and is
+              set to false when it finishes its close. Default is the inverse of
+              hideonclose. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basetree" type="lzx:basetree" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ An abstract base class to build tree controls. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="basetree" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecomponent">
+      <xs:attribute name="yindent" type="lzx:number" default="20" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Spacing to indent trees on the y-axis. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="xindent" type="lzx:number" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Spacing to indent trees on the x-axis. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="toggleselected" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Meaningful only in root. Flag to toggle selected nodes.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showroot" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Meaningful only in root tree. If false, the root item is invisible
+              and its children are displayed.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="selected" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Check to see if this tree is selected. Default is false, except
+              for the root of a tree, which its selected attribute is set to
+              true. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="recurse" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Meaningful only with data replication. If true, it will
+              recursively follow the datapath's children.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="open" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Check to see if this tree is open. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onselected" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This event gets triggered whenever this tree is selected. The
+              value of the selection (true or false) is sent with this
+              event.
+              Note the args of this has changed from the previous release. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onselect" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This event gets triggered whenever this tree is selected. This
+              tree is sent with the event. The tree root also receives this
+              event. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onopen" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This event gets triggered whenever this tree is open. The open
+              value of this tree is also sent. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onfocused" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This event gets triggered whenever this tree is focused. The value
+              of the focus (true or false) is sent with this event. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="multiselect" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Meaningful only in root. Whether to multiselect items.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="isleaf" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, this basetree is a leaf node. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="focusselect" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Meaningful only in root. Flag to select a tree on focus.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="focusoverlay" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Meaningful only in root. If focusselect is false and focusoverlay
+              is true, then focus has a visual bracket overlay over the focused
+              tree. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="focused" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, this tree is focused.
+              @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="closesiblings" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Flag to close other siblings when this tree is open. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="closechildren" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Close all immediate children when this tree is closed. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="autoscroll" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Auto scroll if tree is clipped. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="debug" type="lzx:debug" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+     @lzxname debug
+     @keywords private_constructor
+     @access public
+     @topic LZX
+     @subtopic Debugging
+     @devnote NOTE [2008-11-25 ptw] Dummy class to hold documentation for debug tag
+     @devnote TODO [2008-11-26 ptw] Make this the real class!
+  </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="debug" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="datacolumn" type="lzx:datacolumn" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ datacolumn contain a list of values of a series. List of values typically are data for x series,
+        y series, tooltip series and datalabel series.
+        @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="datacolumn" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="values" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ array of data representing the series values </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labeldatapath" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the name of the label in the datapath for the series </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="datatype" type="xs:string" default="string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ type of data: string or number </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="datadone" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ true when data had been loaded at least once </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="columndatapath" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the name of the column in the datapath for the series </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="hsplitpane" type="lzx:hsplitpane" >
+</xs:element>
+  <xs:complexType name="hsplitpane" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="sizer_width" type="xs:string" default="5" >
+</xs:attribute>
+      <xs:attribute name="rhs_placed" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="lhs_width_start" type="xs:string" default="180" >
+</xs:attribute>
+      <xs:attribute name="lhs_placed" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="lhs_min_width" type="xs:string" default="10" >
+</xs:attribute>
+      <xs:attribute name="lhs_max_width" type="xs:string" default="${this.width-20}" >
+</xs:attribute>
+      <xs:attribute name="bordersize" type="xs:string" default="1" >
+</xs:attribute>
+      <xs:attribute name="bordercolor" type="lzx:color" default="0x000000" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="mediastream" type="lzx:mediastream" >
+</xs:element>
+  <xs:complexType name="mediastream" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="url" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The url of the mediastream, maybe be relative URL, 
+          for example: http://localhost/myvideo.flv, or simply myvideo.flv
+          when type="rtmp" the url is always relative to the rtmpconnection.
+          @type String
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="type" type="xs:string" default="http" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Protocol "rtmp" or "http".
+          @type String
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="totaltime" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Total length (in seconds) of mediastream currently playing.
+          @type Number
+          @access public
+          @keywords readonly
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="time" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Current time of mediastream currently playing or recording (in seconds)
+          @type Number
+          @access public
+          @keywords readonly
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="streamname" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The rtmp streamname (without .flv suffix).
+          @type String
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="rtmp" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The rtmp connection to use (defaults to the first one created).
+          @type lz.rtmpconnection
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="recording" type="xs:string" default="${this.mode == 'recording'}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ True if recording right now.
+          @type Boolean 
+          @access public
+          @keywords readonly
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="progress" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Progress of mediastream currently downloading.
+          (from 0 for none to 1 for all).
+          @type Number
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="playing" type="xs:string" default="${(this.mode == 'playing') &amp;&amp; (!this.paused)}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ True if playing right now.
+          @type Boolean   
+          @access public
+          @keywords readonly
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="paused" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ True to pause playback. Named this way to pun with paused for animators.
+          @type Boolean
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onstop" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Event sent when playing or recording stops.
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onstart" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Event sent when playing or recording starts.
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onmetadata" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Event sent when metadata is received, whose parameter is a 
+    dictionary of metadata.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="oninsufficientbandwidth" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Event sent when insufficient bandwidth.
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="oncuepoint" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Event sent when a cue point occurs,
+          whose parameter is a dictionary of metadata.
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="mutevideo" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ True iff video is muted.
+          @type Boolean 
+          @access public
+          @keywords readonly
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="muteaudio" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ True iff audio is muted.
+          @type Boolean 
+          @access public
+          @keywords readonly
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="mode" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Mode: "" if doing nothing, "playing" if playing,
+          "broadcasting" if can be received, "recording" if recording.
+          Recording also implies can be received, i.e., broadcasting. 
+          Pausing does not affect the mode, unlike stopping.
+          @type String
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="mic" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A reference to the microphone. This must be set if broadcasting.
+          This is set automatically if the stream is a child of a videoview.
+          @type lz.microphone
+          @access public
+          @keywords readonly
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fps" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The current frames per second for playing video.
+          @type Number
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="debug" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ When true, print extra info to the debugger.
+          @type Boolean
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="cam" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A reference to the camera. This must be set if broadcasting.
+          This is set automatically if the stream is a child of a videoview.
+          @type lz.camera
+          @access public
+          @keywords readonly
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="buffertime" type="lzx:number" default="0.1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Amount of time (in seconds) to buffer before starting to display the 
+          stream.  For a publishing stream, bufferTime specifies how long the 
+          outgoing buffer can grow before the application starts dropping 
+          frames.
+          @type Number
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="broadcasting" type="xs:string" default="${(this.mode == 'broadcasting') || (this.mode == 'recording')}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ True if broadcasting right now.
+          @type Boolean 
+          @access public
+          @keywords readonly
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="autorewind" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, video will automatically rewind to the beginning
+          (and remain in a paused state) when playback ends.
+          @type Boolean
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="autoplayStart" type="xs:string" default="'either'" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Autoplay start argument passed to mediastream.play().
+          See the mediastream.play documentation for its values. 
+          @type String
+          @accesss public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="autoplayReset" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Autoplay reset argument passed to mediastream.play(). 
+          See the mediastream.play documentation for its values. 
+          @type Boolean
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="autoplayPause" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Autoplay pause argument passed to mediastream.play().
+          See the mediastream.play documentation for its values. 
+          @type Boolean
+          @access public
+     </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="autoplayLength" type="xs:string" default="'end'" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Autoplay length argument passed to mediastream.play(). 
+          See the mediastream.play documentation for its values. 
+          @type String
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="autoplay" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, video will start playing as soon as url is set.
+          @type Boolean
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="_plainfloatshadow" type="lzx:_plainfloatshadow" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The shadows width and height are set to the width and height of the view
+          it is trying to apply a shadow to.
+          @keywords private </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="_plainfloatshadow" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="shadowsize" type="xs:string" default="1.5" >
+</xs:attribute>
+      <xs:attribute name="offsety" type="xs:string" default="10" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="scrollbar" type="lzx:scrollbar" >
+</xs:element>
+  <xs:complexType name="scrollbar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basescrollbar">
+      <xs:attribute name="disabledbgcolor" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If this is defined, it will be used as the scrollbar's background
+          color when it is disabled. If not provided, the scrollbar will use
+          the bgcolor of its closest parent that has a bgcolor defined.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="setter" type="lzx:setter" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A tag to declare or override attribute setter methods. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="setter" mixed="true">
+  <xs:group ref="lzx:topLevelElements" />
+      <xs:attribute name="name" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A tag to declare or override attribute setter methods. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="args" type="xs:string" >
+</xs:attribute>
+  </xs:complexType>
+<xs:element name="basedatepicker" type="lzx:basedatepicker" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Abstract class for the datepicker.  The basedatepicker class
+          shows the days of the week in a typical month based layout.  Extend
+          this class to create a full featured UI of a datepicker, or just use
+          the datepicker component.
+    </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="basedatepicker" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecomponent">
+      <xs:attribute name="yinset" type="lzx:number" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The number if pixels from this.y to show the datepicker days 
+              @keywords public 
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="xinset" type="lzx:number" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The number if pixels from this.x to show the datepicker days 
+              @keywords public 
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="weekclass" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The weekclass to use for this basedatepicker 
+              @keywords public 
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showingyear" type="lzx:number" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The year that is currently showing in the datepicker.
+              @keywords public
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showingmonth" type="lzx:number" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The month that is currently showing in the datepicker.
+              @keywords public
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showingdate" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A Date object which represents the month to be shown. 
+              @keywords public 
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="selecteddatepickerday" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The datepickerday which has been selected. 
+              @keywords public  
+           </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="selecteddate" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The Date that is currently selected.
+              @keywords public </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="latestdate" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The latest date that is selectable. 
+              @keywords public </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="hasfocus" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="earliestdate" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The earliest date that is selectable. 
+              @keywords public </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dayclass" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The dayclass to use for this basedatepicker 
+              @keywords public 
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="colorbox" type="lzx:colorbox" >
+</xs:element>
+  <xs:complexType name="colorbox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="obj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="color" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chartbgstyle" type="lzx:chartbgstyle" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ style for chart background
+      @access public
+      </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="chartbgstyle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basestyle">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="myslider" type="lzx:myslider" >
+</xs:element>
+  <xs:complexType name="myslider" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:slider">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chartlegend" type="lzx:chartlegend" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A legend for charts and graphs. It is imperative
+        that this is declared at the very end of a chart.
+        (Of beta quality.) Due to a couple bugs in drawview,
+        performance is spotty in DHTML. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="chartlegend" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:drawview">
+      <xs:attribute name="titletextsize" type="lzx:number" default="12" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Size of the legend title's text. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="titleposition" type="xs:string" default="left" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The position of the title: left, right, center. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="titlecolor" type="lzx:color" default="#000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Color of the legend title's text. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="textsize" type="lzx:number" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Size of the text in legend items. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="textcolor" type="lzx:color" default="#000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Color of the text in legend items. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="resizetodata" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to resize the legend to the data.  If not, this will
+            use the specified width and height for the legend, and fit
+            legend items into this size to the best of its ability.  If so,
+            this will use a rough guess at legend item dimensions, and
+            resize the legend.  Accepted values: "tall", "wide", "$once{null}".
+            "tall" will make a taller legend, "wide" will make a wider legend,
+            "$once{null}" will not resize. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="posit" type="xs:string" default="right" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The position of the legend: left, right, top, bottom, manualleft,
+            manualright, manualtop, manualbottom.
+            If left or right, the legend will behave as though
+            resizetodata="tall" is in effect.  If top or bottom,
+            the legend will behave as though resizetodata="wide" is
+            in effect.  If manual, additional values must be set to
+            place and size legend, and the legend will fit the
+            legenditems within the legend to the best of its ability. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="pieradius" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Radius of the pie.  This helps determine placement. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="piepieces" type="xs:string" default="$once{[]}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Pie pieces associated with this legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="piececolors" type="xs:string" default="$once{[]}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Respective piece colors. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ltitle" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The legend title, if any. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendy" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If posit is 'manual', this sets the y coordinate of the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendx" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If posit is 'manual', this sets the x coordinate of the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendwidth" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If posit is 'manual', this sets the width of the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendvalues" type="xs:string" default="$once{[]}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The values to use in the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendheight" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If posit is 'manual', this sets the height of the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="itemnums" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Number of items in the legend. (a.k.a. Number of pie pieces.) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="hlcolor" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The highlight color of individual legend items. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="charttype" type="xs:string" default="$once{typeof linechart != 'undefined' ?                 (parent instanceof lz.linechart ? 'line' : null) : null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The type of chart associated with this legend.
+            Currently, only needs to be specified if this
+            is used on a piechart. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="centery" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Center x coordinate of the pie.  This helps determine
+            placement. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="centerx" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Center x coordinate of the pie.  This helps determine
+            placement. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="borderwidth" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The width of the border around the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="border" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The color of the border around the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="backcolor" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The background color of the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basetabpane" type="lzx:basetabpane" >
+</xs:element>
+  <xs:complexType name="basetabpane" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecomponent">
+      <xs:attribute name="tabclass" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The tabclass to use to instantiate its associated tab. This
+              overrides the basetabs tabclass. Leave undefined here so that
+              basetabs can have it.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="tab" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The tab associated with this basetabpane.
+              @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="selected" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If a basetabpane is selected, then it will be shown.
+              Its associated tab will be also be selected. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_top" type="lzx:number" default="${parent.inset_top}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Top inset for basetabpane in tabs content. Default is basetabs's
+              inset_top. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_right" type="lzx:number" default="${parent.inset_right}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Right inset for basetabpane in tabs content. Default is basetabs's
+              inset_right. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_left" type="lzx:number" default="${parent.inset_left}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Left inset for basetabpane in tabs content. Default is basetabs's
+              inset_left. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_bottom" type="lzx:number" default="${parent.inset_bottom}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Bottom inset for basetabpane in tabs content. Default is basetabs's
+              inset_bottom. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="_dbg_lzvdrag" type="lzx:_dbg_lzvdrag" >
+</xs:element>
+  <xs:complexType name="_dbg_lzvdrag" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:state">
+      <xs:attribute name="ydoffset" type="xs:string" default="this.getMouse( 'y' )" >
+</xs:attribute>
+      <xs:attribute name="y" type="xs:string" default="${this.immediateparent.getMouse( 'y' ) - this.ydoffset}" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="b" type="lzx:b" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ HTML specific </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="b" mixed="true">
+  <xs:group ref="lzx:topLevelElements" />
+  </xs:complexType>
+<xs:element name="scrolledittext" type="lzx:scrolledittext" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Implements visual baseedittext with scrollbar. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="scrolledittext" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baseedittext">
+      <xs:attribute name="vscrollbarclassname" type="xs:string" default="vscrollbar" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Name of class to instantiate for vertical scroll bar.
+              @keywords public </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="pos" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="maxtextheight" type="xs:string" default="${this.lineheight * this.maxscroll}" >
+</xs:attribute>
+      <xs:attribute name="maxheight" type="xs:string" default="${this.height + this.maxtextheight}" >
+</xs:attribute>
+      <xs:attribute name="border" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Implements visual baseedittext with scrollbar. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="a" type="lzx:a" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ HTML specific </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="a" mixed="true">
+  <xs:group ref="lzx:topLevelElements" />
+      <xs:attribute name="target" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The value of this attribute determines where the link target will be displayed. The interpretation is the same as in HTML, where the "current frame" is the frame containing the LZX application. The value must be a name beginning with an alphabetic character, or one of the following:
+
+_blank
+    The user agent should load the designated document in a new, unnamed window. 
+_parent
+    The user agent should load the document into the full, original window (thus canceling all other frames). This value is equivalent to _self if the current frame has no parent. 
+_self
+    The user agent should load the document in the same frame as the element that refers to this target. 
+_top
+    The user agent should load the document into the immediate FRAMESET parent of the current frame. This value is equivalent to _self if the current frame has no parent. 
+
+	 </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="href" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 	The link target </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:complexType>
+<xs:element name="linechart" type="lzx:linechart" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A chart class that renders as lines.
+      Inherits from the chart class.
+      (Warning: Of beta quality.)
+      @access public
+      </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="linechart" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basechart">
+      <xs:attribute name="onminimum" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whenever minimum, maximum, altminimum and altmaximum are changed, the
+            chart needs to be redrawn entirely.  (Normally, tick and data labels aren't
+            redrawn, because it would be far too huge a resource drag to continually
+            break down and rebuild them whenever a person zoomed in.  Instead, they're
+            constrained to scale to the appropriate distances from each other.)  When
+            the mins and maxes are changed, however, the scaling gets thrown off for
+            existing objects.  These handlers ensures that when these values are changed,
+            the labels are broken down and redrawn. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onmaximum" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onaltminimum" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onaltmaximum" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="drawready" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Line drawview.  This draws all the lines of the chart. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="sessionrpc" type="lzx:sessionrpc" >
+</xs:element>
+  <xs:complexType name="sessionrpc" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:rpc">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="styleparser" type="lzx:styleparser" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private
+This class complete the chart style class in case the developer has not defined the chart styles </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="styleparser" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="style" type="xs:string" default="${null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The user's defined style. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="isleaf" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Test if the current style's node has no more children </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="haschildren" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Test if the current style's node has children </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="defaultstyle" type="xs:string" default="${null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The dafault defined style. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="tickstyle" type="lzx:tickstyle" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ tickstyle is used by the axis style to render major and minor ticks on a chart.
+     NOTE: tickstyle extends linestyle
+     @access public
+     </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="tickstyle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:linestyle">
+      <xs:attribute name="position" type="xs:string" default="inside" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ inside | outside | centered | none  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="length" type="lzx:number" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ length of tick in pixels perpendicualr to the axis </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="constantboundslayout" type="lzx:constantboundslayout" >
+</xs:element>
+  <xs:complexType name="constantboundslayout" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:layout">
+      <xs:attribute name="value" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The constant value that is applied to the attribute
+              ( defined in 'axis' as 'x' or 'y' ) of each subview in the layout. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="axis" type="xs:string" default="y" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The axis in which this layout operates either 'x' or 'y'.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="printer" type="lzx:printer" >
+</xs:element>
+  <xs:complexType name="printer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="i" type="lzx:i" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ HTML specific </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="i" mixed="true">
+  <xs:group ref="lzx:topLevelElements" />
+  </xs:complexType>
+<xs:element name="valuepointstyle" type="lzx:valuepointstyle" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ valuepointstyle is used to set style to the 
+     NOTE: valuelinestyle extends basestyle
+     @access public
+     </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="valuepointstyle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basestyle">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="u" type="lzx:u" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ HTML specific </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="u" mixed="true">
+  <xs:group ref="lzx:topLevelElements" />
+  </xs:complexType>
+<xs:element name="hscrollbar" type="lzx:hscrollbar" >
+</xs:element>
+  <xs:complexType name="hscrollbar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basescrollbar">
+      <xs:attribute name="disabledbgcolor" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If this is defined, it will be used as the scrollbar's background
+          color when it is disabled. If not provided, the scrollbar will use
+          the bgcolor of its closest parent that has a bgcolor defined.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="legend" type="lzx:legend" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+     simple legend class
+     @access public
+      </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="legend" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:drawview">
+      <xs:attribute name="verticalgap" type="lzx:number" default="4" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="topmargin" type="lzx:number" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="styleBorder" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates the style will be applied tho the border legend box </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="rightmargin" type="lzx:number" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="position" type="xs:string" default="right" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates where the legend box will be positioned, default: right </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onitemmouseup" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ event that allows custom action for mouse up event
+            @param Number item: The identifier legend item
+         </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onitemmouseover" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ event that allows custom action for mouse over event
+            @param Number item: The identifier legend item
+         </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onitemmouseout" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ event that allows custom action for mouse out event
+            @param Number item: The identifier legend item
+         </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onitemmousedown" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ event that allows custom action for mouse down event
+            @param Number item: The identifier legend item
+         </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onitemmouseclick" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ event that allows custom action for mouse click event
+            @param Number item: The identifier legend item
+         </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendborder" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates if legend box will have a border, default: true </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendFontsize" type="lzx:size" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates the Font size wiil be used in the legend item text, default: 10px </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendFontcolor" type="lzx:color" default="0x000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates the Font color wiil be used in the legend item text, default: black </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendFont" type="xs:string" default="serif" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates the Font will be used in the legend item text </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="leftmargin" type="lzx:number" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fillColor" type="lzx:color" default="0xFFFFFF" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Allow to set the fill color from the legend tag </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="direction" type="xs:string" default="vertical" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates how the legend items will be displayed, default: vertical </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="chartClassName" type="xs:string" default="${null}" >
+</xs:attribute>
+      <xs:attribute name="chart" type="xs:string" default="${null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Takes the relationship with the chart </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bottommargin" type="lzx:number" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="borderWidth" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Allow to set the line width from the legend tag </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="borderColor" type="lzx:color" default="0x000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Allow to set the color line from the legend tag </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="p" type="lzx:p" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ HTML specific </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="p" mixed="true">
+  <xs:group ref="lzx:topLevelElements" />
+  </xs:complexType>
+<xs:element name="library" type="lzx:library" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The &lt;library&gt; tag defines the root element of a library file. An application can use the &lt;include&gt; tag to include the code in a library file.
+
+See the Guide for a complete discussion. Also see the &lt;include&gt; tag. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="library" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="validate" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If false, disables validation against the schema during compilation. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="proxied" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The &lt;library&gt; tag defines the root element of a library file. An application can use the &lt;include&gt; tag to include the code in a library file.
+
+See the Guide for a complete discussion. Also see the &lt;include&gt; tag. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="javarpc" type="lzx:javarpc" >
+</xs:element>
+  <xs:complexType name="javarpc" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:rpc">
+      <xs:attribute name="scope" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ One of 'session', 'webapp', or 'none' to set the scope of the
+              remote object. This attribute must be set before creating or
+              loading the object. If scope is 'session' or 'webapp', name or
+              attributename must be set. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="remoteclassname" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The remote class name associated with the remote object. This must
+              be set if creating the remote object. If loading the object, the
+              classname will be set during onload. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="objectreturntype" type="xs:string" default="pojo" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Used to determine what server-side object member values are
+              returned to the client. One of 'pojo' (returns public member
+              values) or 'javabean' (returns members that have associated
+              getters). Default is 'pojo' (plain old java object). </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="loadoption" type="xs:string" default="loadcreate" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ One of 'loadcreate', 'loadonly', or 'create'. 'Loadcreate' tries
+              to load javarpc object if it exists in the server, else it creates
+              it before loading. 'Loadonly' will only load object if it exists,
+              else an error is returned. 'Create' will always create the object
+              in the server. Default is 'loadcreate'. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="createargs" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Used if loadoption='loadcreate' or loadoption='create'. Arguments
+              to construct remote object with. The value passed in must be an
+              array, e.g., [1, 'mystring', 1.45]. Default is null. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="attributename" type="xs:string" default="$once{this.name}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Attribute name of server remote object. Name or attributename must
+              be set when scope is 'session' and 'webapp'. Default is the name
+              of this object. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chart" type="lzx:chart" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+        chart is the base class representing a chart. In general,
+        this class is not instantiated directly. A chart contains 
+            at least one dataseries element 
+            at least one axis element 
+        The chart needs to look at its dataseries children and pass 
+        the relevant dataseries to each axis. Relevent dataseries 
+        for the chart must have columns for each of the axes 
+        that the chart cares about.  
+        @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="chart" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecomponent">
+      <xs:attribute name="zoomEnabled" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ enable zoom</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="verticalGap" type="lzx:number" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The vertical blank space between components. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="valueregionsenabled" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ enable value region </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="valuepointsenabled" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ enable value points </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="valuelinesenabled" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ enable value lines </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="topMargin" type="lzx:number" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The blank space bordering the top of the chart area. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="rightMargin" type="lzx:number" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The blank space bordering the right side of the chart area. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="plotarea" type="xs:string" default="${null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="leftMargin" type="lzx:number" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The blank space bordering the left side of the chart area. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="initdone" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ subview have  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="horizontalGap" type="lzx:number" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The horizontal blank space between components. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="defaultstyle" type="xs:string" default="${defaultchartstyle}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The default style to be applied to the chart. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="defaultRightMargin" type="lzx:number" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The default blank space bordering the right side of the chart area. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="datatipEnabled" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ enable tooltip for data </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="datatipColumn" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ data column name of the tooltip </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="datalabelEnabled" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ enable data label </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="datalabelColumn" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ data column name of the data label </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="databorderEnabled" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="dataPointsEnabled" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ enable data point(data marker) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bottomMargin" type="lzx:number" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The blank space bordering the bottom of the chart area. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="resizestate" type="lzx:resizestate" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ resizes its immediateparent in response to mouse events, when applied </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="resizestate" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:state">
+      <xs:attribute name="width" type="xs:string" default="${this.immediateparent.getMouse( 'x' )- this.__resize_xroffset}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="height" type="xs:string" default="${this.immediateparent.getMouse( 'y' )- this.__resize_yroffset}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="lzcombobox" type="lzx:lzcombobox" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Subclass of basedatacombobox with laszlo mail look. See basedatacombobox for
+          details. Usage:
+          &lt;code&gt;
+          &lt;dataset name="dsHours"&gt;
+              &lt;item value="1"&gt;1&lt;/item&gt;
+              &lt;item value="2"&gt;2&lt;/item&gt;
+              &lt;item value="3"&gt;3&lt;/item&gt;
+              &lt;item value="4"&gt;4&lt;/item&gt;
+              &lt;item value="5"&gt;5&lt;/item&gt;
+              &lt;item value="6"&gt;6&lt;/item&gt;
+              &lt;item value="7"&gt;7&lt;/item&gt;
+              &lt;item value="8"&gt;8&lt;/item&gt;
+              &lt;item value="9"&gt;9&lt;/item&gt;
+              &lt;item value="10"&gt;10&lt;/item&gt;
+              &lt;item value="11"&gt;11&lt;/item&gt;
+              &lt;item value="12"&gt;12&lt;/item&gt;
+          &lt;/dataset&gt;
+
+          &lt;lzcombobox width="50" shownitems="3" itemdatapath="dsHours:/item"&gt;
+              &lt;handler name="onselect" args="dptr"&gt;
+                  Debug.write('value:', this.value);
+                  Debug.write('datapointer:', dptr);
+              &lt;/handler&gt;
+          &lt;/lzcombobox&gt;
+          &lt;/code&gt;
+    </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="lzcombobox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basedatacombobox">
+      <xs:attribute name="tooltip" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ tooltip text, if any </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="texty" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="textx" type="xs:string" default="8" >
+</xs:attribute>
+      <xs:attribute name="frnum" type="xs:string" default="1" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="splash" type="lzx:splash" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Controls the presentation while the application is loading.  </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="splash" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="y" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="x" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="resource" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="ratio" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="persistent" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Controls the presentation while the application is loading.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="center" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="ticks" type="lzx:ticks" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="ticks" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:drawview">
+      <xs:attribute name="numticks" type="xs:string" default="2" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="opttree" type="lzx:opttree" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A keyboard navigable (with arrow keys) tree control that supports 
+         selection and dynamic data loading. This tree must be backed by an
+         XML DOM datastructure and presented within a clipping region. 
+         
+         The datapath for an opttree must resolve to a single LzDataElement
+         which is the undisplayed root of the tree. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="opttree" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="openattrpath" type="xs:string" default="@__OPTTREE_META_open" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ (Protected) An xpath that selects the openattr attribute from
+              a node. This should match openattr but prepend the '@' symbol.
+              This cannot be when=always or when=once because it is used as
+              a reference in a $path expression in baseopttreenode </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="openattr" type="xs:string" default="__OPTTREE_META_open" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ (Protected) The attribute name to use in the data to mark a
+              a node as open.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="nodepath" type="xs:string" default="*" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The xpath expression to use to retrieve nodes out of the 
+              datapath. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="nodelist" type="xs:string" default="nodecollection" >
+</xs:attribute>
+      <xs:attribute name="nodecollection" type="xs:string" default="${ opttreecontroller.nodelist }" >
+</xs:attribute>
+      <xs:attribute name="nodeclass" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The name of the class to use to represent nodes in the tree.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="movedel" type="xs:string" default="$once{ new lz.Delegate( this, '_updatePos' ) }" >
+</xs:attribute>
+      <xs:attribute name="highlighted" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The keyboard nav highlighted baseopttreenode or null. This
+              attribute is read-only. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dragged" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="dragee" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="depthattrpath" type="xs:string" default="@__OPTTREE_META_depth" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ (Protected) An xpath that selects the depthattr attribute from
+              a node. This should match depthattr but prepend the '@' symbol.
+              This cannot be when=always or when=once because it is used as
+              a reference in a $path expression n baseopttreenode </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="depthattr" type="xs:string" default="__OPTTREE_META_depth" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ (Protected) The attribute name to use in the data to mark a
+              a node's depth in the tree hierarchy </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="lzedittext" type="lzx:lzedittext" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Implements the laszlo look of baseedittext. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="lzedittext" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baseedittext">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="piepiece" type="lzx:piepiece" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private 
+   Represents a single pie slice in the chart </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="piepiece" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:drawview">
+      <xs:attribute name="yRadius" type="lzx:number" default="${null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The y radius of the slice. default = null </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="tooltip" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private 
+   Represents a single pie slice in the chart </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="radius" type="lzx:number" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The length of the radius in pixels </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="piecevalue" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The numeric value of the piece. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="pieceradius" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The radius of the whole pie. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="pieceopacity" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The opacity of the piece.  Determined by attributes on dataseries. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="piececolor" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The color of the piece.  Determined by attributes on dataseries. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onexploded" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The events that handle explosion of pieces. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="label" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The data label of this pie slice </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="exploded" type="lzx:boolean" default="${parent.wedgeover == this}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether this piece is moused over or not. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="explode" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to actually move the piece outward when the mouse is over it. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="centery" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The y coordinate of the center of the pie. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="centerx" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The x coordinate of the center of the pie. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="borderwidth" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The width of the border of the piece.  Determined by attributes
+            on dataseries. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bordercolor" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The color of the border of the piece.  Determined by attributes
+            on dataseries. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="arcvalue" type="lzx:number" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The segment of the circle that defines the current pie slice </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="angle" type="lzx:number" default="25" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="datevalidator" type="lzx:datevalidator" >
+</xs:element>
+  <xs:complexType name="datevalidator" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basevalidator">
+      <xs:attribute name="invalidyearErrorstring" type="xs:string" default="Please enter a year between 0 and 9999." >
+</xs:attribute>
+      <xs:attribute name="invalidmonthErrorstring" type="xs:string" default="Please enter a month between 1 and 12." >
+</xs:attribute>
+      <xs:attribute name="invalidformatErrorstring" type="xs:string" default="Please input the date in a valid format." >
+</xs:attribute>
+      <xs:attribute name="invaliddateErrorstring" type="xs:string" default="Please enter a valid date." >
+</xs:attribute>
+      <xs:attribute name="format" type="xs:string" default="mm/dd/yyyy" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="br" type="lzx:br" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ HTML specific </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="br" mixed="true">
+  <xs:group ref="lzx:topLevelElements" />
+  </xs:complexType>
+<xs:element name="basescrolltrack" type="lzx:basescrolltrack" >
+</xs:element>
+  <xs:complexType name="basescrolltrack" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basebuttonrepeater">
+      <xs:attribute name="direction" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The direction in which the scroll should move. Set to -1 for back,
+             1 for forward. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="vbox" type="lzx:vbox" >
+</xs:element>
+  <xs:complexType name="vbox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="spacing" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="inset" type="xs:string" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="remotecall" type="lzx:remotecall" >
+</xs:element>
+  <xs:complexType name="remotecall" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="remotecontext" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If set, this is the remote object context in which funcname is run
+              from. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onerror" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This event is triggered when an error occurs. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inforeturnvalue" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, a remote response returns an object. The object of a
+             successful response will contain the return value (data), an object
+             containing specific information about the request (info), and the
+             associated unique sequence request number (seqnum), e.g., { data:
+             ..., info: ..., seqnu: ...}. A failure response returns an object
+             that contains the error message (message), the error type (error),
+             an object containing specific information about the request (info),
+             and the associated unique sequence request number (seqnum), e.g., {
+             message: ..., error: ..., info: ..., seqnum: ...}. If false, an
+             error just returns the error message and a successful response
+             returns a value. Default is false. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="funcname" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Name of remote function this remotecall refers. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dataobject" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If an LzDataset or an LzDataElement is set, return values will
+              be mapped into the dataobject. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basescrollarrow" type="lzx:basescrollarrow" >
+</xs:element>
+  <xs:complexType name="basescrollarrow" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basebuttonrepeater">
+      <xs:attribute name="direction" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The direction in which the scroll should move. Use -1 to go
+                  back. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="zoomarea" type="lzx:zoomarea" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ chart zoom area </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="zoomarea" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basezoomarea">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="simpleslider" type="lzx:simpleslider" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="simpleslider" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:custombaseslider">
+      <xs:attribute name="value" type="xs:string" default="this.minlimit + this.knob.x * this.valueratio" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="minx" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="maxx" type="xs:string" default="$once{parent.width}" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="hbox" type="lzx:hbox" >
+</xs:element>
+  <xs:complexType name="hbox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="spacing" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="inset" type="xs:string" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="timetext" type="lzx:timetext" >
+</xs:element>
+  <xs:complexType name="timetext" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:text">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="plotstyle" type="lzx:plotstyle" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ style for plot area
+      @access public
+      </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="plotstyle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basestyle">
+      <xs:attribute name="linesize" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ size of border of the plot area </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="linecolor" type="lzx:color" default="${null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ color of the border for the plot area </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fillcolor" type="lzx:color" default="0xFFFFFF" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ bgcolor for the plot area </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="wholepie" type="lzx:wholepie" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This is the class that assembles and contains all the elements
+        of an individual pie.  Nearly all of the attributes are set when the
+        object is instantiated by piechart.  There should be one of these
+        for each dataseries.  (Of beta quality.) </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="wholepie" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="wedgeover" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Wedge the mouse is currently over </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showlegendminimized" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to show the legend when the chart is minimized, when
+            there are multiple charts. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="radiusvalues" type="xs:string" default="$once{[]}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ An array of the radius alterations for pie
+            pieces, if any. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="piecevalues" type="xs:string" default="$once{[]}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ An array of the values of individual pieces. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="opacvalues" type="xs:string" default="$once{[]}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ An array of piece opacity values. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ltitle" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Title of the legend, if any. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="lhlcolor" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Highlight color of an individual legend element, when
+            moused over. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendy" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If legend is 'manual', this sets the y coordinate of the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendx" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If legend is 'manual', this sets the x coordinate of the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendwidth" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If legend is 'manual', this sets the width of the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendvalues" type="xs:string" default="$once{[]}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ An array of the values to use in the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendtitleposition" type="xs:string" default="left" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The position of the title: left, right, center. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendheight" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If legend is 'manual', this sets the height of the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legend" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to include a legend, and if so, where to place it. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="lborderwidth" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Border width of the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="lborder" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Border color for the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="lbgcolor" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Background color of the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labelvalues" type="xs:string" default="$once{[]}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ An array of the label values for pie pieces. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labeltsize" type="xs:string" default="$once{[]}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ An array of label text sizes for pie pieces. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labeltcolor" type="xs:string" default="$once{[]}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ An array of label text colors for pie pieces. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labelcolors" type="xs:string" default="$once{[]}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ An array of label colors for pie pieces. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labelbwidth" type="xs:string" default="$once{[]}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ An array of label border widths for pie pieces. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labelborders" type="xs:string" default="$once{[]}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ An array of label borders for pie pieces. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="explode" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether or not to explode the pie pieces onmouseover. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="expanded" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If there are multiple charts, this indicates whether this chart
+            is currently expanded. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="drawbgborder" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to draw the background border around the circle
+            behind the pie pieces, and if so, what color. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="drawbg" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to draw the background circle behind the pie pieces,
+            and if so, what color. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="colorvalues" type="xs:string" default="$once{[]}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ An array of the colors of individual pieces. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="borderwidths" type="xs:string" default="$once{[]}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ An array of border widths of individual pieces. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bordercolors" type="xs:string" default="$once{[]}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ An array of border colors of individual pieces. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bgborderwidth" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The width of the background border around the circle
+            behind the pie pieces. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="statictext" type="lzx:statictext" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A simple text class that provide default font attributes for
+          Laszlo components. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="statictext" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:text">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="purplestyle" type="lzx:purplestyle" >
+</xs:element>
+  <xs:complexType name="purplestyle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:style">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="custombaseslider" type="lzx:custombaseslider" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="custombaseslider" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="valueratio" type="xs:string" default="(this.maxlimit  - this.minlimit) / this.width" >
+</xs:attribute>
+      <xs:attribute name="startlabel" type="xs:string" default="this.minlimit" >
+</xs:attribute>
+      <xs:attribute name="minordivision" type="xs:string" default="5" >
+</xs:attribute>
+      <xs:attribute name="minlimit" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="maxlimit" type="xs:string" default="100" >
+</xs:attribute>
+      <xs:attribute name="majordivision" type="xs:string" default="2" >
+</xs:attribute>
+      <xs:attribute name="endlabel" type="xs:string" default="this.maxlimit" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basebutton" type="lzx:basebutton" >
+</xs:element>
+  <xs:complexType name="basebutton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecomponent">
+      <xs:attribute name="respondtomouseout" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If this button does not respond to onmouseout or onmousedragout
+              events, set this flag to false. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="resourceviewcount" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The first 'n' subviews that will respond to mouseevents by
+              changing the frame number of their resource. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="reference" type="xs:string" default="this" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Where to send mouse events (the view that will be "clickable").
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="overResourceNumber" type="lzx:number" default="2" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The resource for the mouse over state. 
+              Use 0 if the resource has at least 2 frames, but there is no over
+              state.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onresourceviewcount" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This event is sent when the resourceviewcount changes. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="normalResourceNumber" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The resource for the mouse up state, and initial state of the
+              button.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maxframes" type="lzx:number" default="$once{this.totalframes}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The maximum number of frames to use, defaults to the number of
+              frames for the resource associated with this view. This is useful
+              for a subclass that has no resource for this view.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="downResourceNumber" type="lzx:number" default="3" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The resource for the mouse down state.
+              Use 0 if the resources has at least 3 frames, but there is no down
+              state.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="disabledResourceNumber" type="lzx:number" default="4" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The resource for the disabled state.
+              Use 0 if the resource has at least 4 frames, but there
+              is no disabled state.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="PopupPolygon" type="lzx:PopupPolygon" >
+</xs:element>
+  <xs:complexType name="PopupPolygon" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:polygonhotspot">
+      <xs:attribute name="text" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="parentView" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="text" type="lzx:text" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+The basic text display element. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="text" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="yscroll" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  The y scroll offset of the content in pixels (a negative number specifying how many pixels the content should be scrolled vertically). Default 0. NOTE: A constraint or handler on onyscroll will automatically enable updating the attribute. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="xscroll" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  The x scroll offset of the content in pixels (a negative number specifying how many pixels the content should be scrolled horizontally). Default 0. NOTE: A constraint or handler on onxscroll will automatically enable updating the attribute. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="thickness" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  The thickness for this text, between -200 and 200, Flash only</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="textindent" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  textindent accepts any number which is interpreted as a px value</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="textdecoration" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  text-decoration for this text, either 'none' or 'underline'.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="textalign" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  textalign accepts one of [left, right, center, justify]</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="text" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  The text to display in this text field. If set to a value that is not a string, the value will first be converted to a string as if by String(value). To display nothing, set the value to the empty string "". </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="sharpness" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  The sharpness for this text, between -400 and 400, Flash only</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="selectable" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  If true, the text is selectable </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="scrollwidth" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  The total width of the content in pixels. this.setAttribute('width', this.scrollwidth) is equivalent to this.setAttribute('width', null) (for the current content: the former will not follow content changes as the latter does). If this.scrollwidth &gt; this.width, this.setAttribute('yscroll', this.width - this.scrollwidth) will cause the end of content to be visible at the edge of the view. (The rightmost content will appear at the right edge of the view for left-to-right scripts.) NOTE: A constraint or handler on onscrollwidth will automatically enable updating the attribute. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="scrollheight" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  The total height of the content in pixels. this.setAttribute('height', this.scrollheight) is equivalent to this.setAttribute('height', null) (for the current content: the former will not follow content changes as the latter does). If this.scrollheight &gt; this.height, this.setAttribute('yscroll', this.height - this.scrollheight) will scroll the content so that the bottom of the content appears in the bottom of the view. NOTE: A constraint or handler on onscrollheight will automatically enable updating the attribute. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="scrollevents" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  Use setAttribute('scrollevents', true) to cause scroll events to be sent. NOTE: A constraint or handler on onyscroll, onscroll, onxscroll, onhscroll, onscrollheight, onmaxscroll, onscrollwidth or onmaxhscroll will automatically enable scrollevents. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="scroll" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  The vertical scroll position (in lines, 1-based). Default 1.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="resize" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  If true, the width of the text field will be recomputed each time text is changed, so that the text view is exactly as wide as the width of the widest line. Defaults to true. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="pattern" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  regexp describing set of characters allowed in this field Restrict the characters that can be entered to a pattern specified by a regular expression. Currently only the expression [ ]* enclosing a set of characters or character ranges, preceded by an optional "^", is supported. examples: [0-9]* , [a-zA-Z0-9]*, [^0-9]* </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onyscroll" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onxscroll" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="ontextlink" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onselectable" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onscrollwidth" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onscrollheight" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onscrollevents" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onscroll" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onpattern" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onmaxscroll" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onmaxlength" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onmaxhscroll" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onlineheight" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onhscroll" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="ondirection" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="multiline" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  If true, the lines of text are wrapped to fit within the text width. (The name multiline is a misnomer. Unwrapped text can be multiple lines if it contains a &lt;br /&gt; or &lt;p&gt; element, or a line break within a &lt;pre&gt; element. This attribute defaults to true if width and height are explicitly specified. If you set multiline=true, you probably want to explicitly a width for the text also; if multiline=true and you do not specify a width, the system will pick an arbitrary width (100 pixels at the moment). When multiline=true, the text is automatially re-wrapped whenever the content is modified by calls to setText, or whenever the width of the text view is modified. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maxscroll" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  The maximum vertical scroll position (in lines, 1-based). this.setAttribute('scroll', this.maxscroll) will cause the last line of the content to be visible at the bottom of the view (hence this is the line number of the line that will appear at the top of the view when scrolled all the way to the bottom). NOTE: A constraint or handler on onmaxscroll will automatically enable updating the attribute.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maxlength" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  Maximum number of characters allowed in this field </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maxhscroll" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  The maximum horizontal scroll position in pixels. this.setAttribute('hscroll', this.maxhscroll) will cause the end of content to be visible at the edge of the view. (The rightmost content will appear at the right edge of the view for left-to-right scripts, hence this is the pixel position of the leftmost pixel that will appear in the view when scrolled all the way to the right.) NOTE: A constraint or handler on onmaxhscroll will automatically enable updating the attribute. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="lineheight" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The height of a line of text in the current style </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="letterspacing" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  letterspacing accepts any number which is interpreted as a px value </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="hscroll" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  The horizontal scroll position in pixels. Default 0. NOTE: A constraint or handler on onhscroll will automatically enable updating the attribute. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="gridFit" type="xs:string" default="none|pixel|subpixel" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  Grid fit for this text, Flash only One of:  "none" | "pixel" | "subpixel" </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="direction" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  Text direction, either "ltr" (default) or "rtl", Flash only </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="cdata" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  An alias for the text attribute, but with the type cdata, allowing it to be bound to a value that should not be interpreted as markup (when data binding, CSS style binding, or ??? or ???). </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="antiAliasType" type="xs:string" default="normal|subpixel|advanced" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Antialias type for this text, Flash only One of:  "normal" | "subpixel" | "advanced" </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="submit" type="lzx:submit" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Associates a form with a dataset. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="submit" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="status" type="xs:string" default="ok" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Read-only status of data request. Possible values are 'ok',
+              'requesting', and 'error'. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="error" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Error from most recent response or empty string; cleared to empty
+              string each time a request on the dataset is made. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dataset" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The dataset that specifies the request url, which will also hold
+              the result of the query. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basetabscontent" type="lzx:basetabscontent" >
+</xs:element>
+  <xs:complexType name="basetabscontent" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecomponent">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chartactionhelper" type="lzx:chartactionhelper" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private 
+        class that help with the zoom animation and undo ability
+    </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="chartactionhelper" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="chart" type="xs:string" default="${null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private 
+        class that help with the zoom animation and undo ability
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="animateProgress" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="actionlist" type="xs:string" default="[]" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="TestResult" type="lzx:TestResult" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+  A TestResult accumulates the results of a test run: the total number
+  of tests run, the number of failures, and the number of errors.  A
+  TestResult is automatically created by a TestSuite and included as
+  its first child view so the results of the test suite will be
+  displayed.
+
+  See the documentation for &lt;xref linkend="lz.TestSuite"/&gt;
+  for an example of this tag.
+</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="TestResult" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:DebugObject">
+      <xs:attribute name="messages" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="lzcombobox_item" type="lzx:lzcombobox_item" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Class used as the default item class in lzcombobox. See lzcombobox's
+          itemclassname attribute. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="lzcombobox_item" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basedatacombobox_item">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basesliderthumb" type="lzx:basesliderthumb" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Basesliderthumb expects to be within a baseslidertrack (or its
+          subclass). In other words, its "classroot" should be a slidertrack. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="basesliderthumb" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:button">
+      <xs:attribute name="showvalue" type="xs:string" default="${this.parent.parent.showvalue}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Toggles the floating value text when dragging thumb. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="canvas" type="lzx:canvas" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 
+The canvas is the container for all views within an application.
+
+The lz.canvas class represents the viewable area of the application. There is one instance of lz.canvas, named canvas. The canvas contains all views within an application.
+
+The &lt;canvas&gt; tag is the document root of an LZX application file. It contains class, resource, and font definitions, library includes, and view and other instances.
+
+See the Guide for a complete discussion of the &lt;canvas&gt; tag. 
+ </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="canvas" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="title" type="xs:string" default="string" >
+</xs:attribute>
+      <xs:attribute name="scriptlimits" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+   A CSS declaration of property: value pairs used to advise the underlying runtime of desired recursion and timeout limits. Not all runtimes respect this advice. The default value is runtime dependent, but typically recursion is at least 100 and timeout at least 10 (seconds). Example: scriptlimits="recursion: 256, timeout: 15"</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="screenorientation" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+   Used to tell what the screen orientation is, 'portrait' or 'landscape' </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="runtime" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+   A String describing the target runtime. "dhtml" | "swf8" | "swf9" | "swf10" are currently supported. Others are in development.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="proxied" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, requests for data and media are proxied through LPS server. if false, requests are made directly to target URLs. if inherit, inherit from lzproxied query arg. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="percentcreated" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+   A number from 0-1 that represents the percentage of the app that has been instantiated.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="medialoadtimeout" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+   If present, specifies the default timeout in milliseconds for media load requests </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="mediaerrortimeout" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+   If present, specifies the default timeout in milliseconds for media errors. An error occurs when no bytes have been received. This is used in Flash to detect media loads that have failed due to the security policy. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="lpsversion" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ version number of the LPS that generated this application (for .lzo files, this is the version number of the server that generated the optimized file, not the one that served it). </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="lpsrelease" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+   release of the LPS that generated this application (for .lzo files, this is the release of the server that generated the optimized file, not the one that served it). </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="lpsbuilddate" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+   A String specifying the date and time of the LPS build. "2007-03-05T15:33:42-0800" </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="lpsbuild" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+   A String specifying the LPS build revision and the build directory: e.g. "4075 /Users/maxcarlson/openlaszlo/legals" </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="httpdataprovider" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+   
+httpdataprovider is bound to the system default HTTP DataProvider.
+This will be an instance of LzHTTPDataProvider, which implements HTTP request transport. The default value of the canvas.defaultdataprovider is initially set to point to this same object. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fullscreen" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+   Used to switch into fullscreen display mode or back to normal display. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="framerate" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The framerate that should be used for this application </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="defaultdataprovider" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 
+defaultdataprovider is bound to the system default DataProvider.
+By default, this will be an instance of LzHTTPDataProvider, which will also be pointed to by the canvas.httpdataprovider. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="debug" type="xs:string" default="boolean" >
+</xs:attribute>
+      <xs:attribute name="datasets" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+   Dictionary of all named datasets. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dataloadtimeout" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+   If present, specifies the default timeout in milliseconds for data load requests </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="appbuilddate" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  A String specifying the date and time of the application build. "2008-09-12T14:15:12Z" </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="allowfullscreen" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether fullscreen display state is supported for the SWFx runtimes. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="label" type="lzx:label" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+      An abstract class that applies all features label.
+      @access public
+      </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="label" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:drawview">
+      <xs:attribute name="style" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the style will be applied
+            @keyword private</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="rvaly" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The original y value for this label. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="rvalx" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The original x value for this label. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ltextsize" type="lzx:number" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The text size of this label. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ltext" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The text of this label. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ltcolor" type="lzx:color" default="#000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The color of the text of this label. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="lbwidth" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The width of the border of this label. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="lborder" type="lzx:color" default="#000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The color of the border of this label. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fadein" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to initially fade this label in. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="enableCache" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="rte" type="lzx:rte" >
+</xs:element>
+  <xs:complexType name="rte" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:html">
+      <xs:attribute name="wrapperfile" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Location of the html wrapper file used by the editor.
+          An empty string (default) loads the system wrapper file.
+          If a custom wrapper file is used, the path is relative to where
+          the application runs from.
+          @initarg String
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="toolbar_order" type="xs:string" default="undo,redo,|,cut,copy,paste,|,bold,italic,underline,strikethrough,|,insertOrderedList,insertUnorderedList,indent,outdent,|,justifyLeft,justifyRight,justifyCenter,justifyFull,|,foreColor,hiliteColor,|,createLink,unlink,insertImage,|,print,smiley,||,fontName,fontSize" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ dijit.Editor toolbar order. The list of items to show in the editor
+          toolbar. The default is to show all toolbar features.
+          A '|' inserts a separator between blocks of toolbars. 
+          A '||' will force a linebreak in the toolbar.
+          @initarg String
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="text" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The initial value of the text to edit. The text is updated while
+          the rte is running.
+          @type html
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ontext" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The ontext event is generated whenever the rte text content changes. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="oneditorready" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The oneditor event is generated whenever the rte editor is completely loaded. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="on_text" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="on_rte_loaded" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="on_editorready" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="extra_plugins" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Comma-separated list of additional dijit.Editor plugins to load.
+          An empty string (default) will load only the plugins used by default.
+          @initarg String
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="editorready" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, the rte editor is ready to receive commands
+          @type Boolean
+          @access public
+          @keywords readonly
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dojo_theme" type="xs:string" default="tundra" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ dojo theme to use. Default value is 'tundra'
+          Other values in dojo 1.5 are soria, nihilo, claro
+          @initarg String
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dojo_root" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ root url where Dojo library is loaded. An empty string (default)
+          will load the library from Google. This path must end with a '/'.
+          For example, if you have a local version located at /trunk, 
+          you would specify something like '/trunk/dojo-release-1.5.0/'.
+          @initarg String
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dojo_locale" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ dojo locale to use. Default value is '' which will use the
+          locale from the browser.
+          @initarg String
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dojo_js" type="xs:string" default="dojo/dojo.js" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Dojo library to load (relative to dojo_root). This value is
+          ignored if dojo_root is empty. Default value is 'dojo/dojo.js'.
+          If you want to load an uncompressed version of dojo, specify
+          'dojo/dojo.js.uncompressed.js'
+          @initarg String
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dojo_css" type="xs:string" default="dijit/themes/" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Dojo stylesheet root (relative to dojo_root). This value is
+          ignored if dojo_root is empty. Default value is 'dijit/themes/'
+          @initarg String
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="script" type="lzx:script" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Client executed script </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="script" mixed="true">
+  <xs:group ref="lzx:topLevelElements" />
+      <xs:attribute name="src" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Client executed script </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:complexType>
+<xs:element name="datapointer" type="lzx:datapointer" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+The binder between data and nodes.
+Datapaths are used to merge data hierarchies with the hierarchy of an OpenLaszlo application. This is done using the the XPath syntax supported by lz.datapointer. When a node is given a datapath attribute, a datapath with the given value as its XPath is created. If the datapath retrieves a node (i.e. it doesn't terminate in an attribute getter or a () operator) then the node is mapped to that data context and all child nodes will implicitly share the datacontext, but no further action is taken. If the datapath retrieves data, rather than just a node, a few extra things happen. First, the node's data property is set and the node's ondata event is sent. Second, the node's applyData method is called with the data as the argument. In cases where a datapath matches more than one data node, the view with the matching datapath is replicated once for each data node that matches, and a lz.ReplicationManager takes over the view's spot in its parent.
+
+When a node is replicated, an LzReplicationManager takes it's place, and an onclones will be sent when the node's clones are updated.
+
+A node can only have one datapath, and datapaths always have the name datapath. Additional options available on datapath such as pooling and replication are specified by writing the &lt;datapath&gt; tag as a separate node. 
+ </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="datapointer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="xpath" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="rerunxpath" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	This determines the behavior of the datapointer in response to notification that the dataset the datapointer is mapped to has changed. If rerunxpath is true, the datapointer will always rerun its remembered XPath (set with the xpath property). If it is false, the datapointer will only verify that the node it is pointing to is still in the dataset. If it isn't, the datapointer will rerun its remembered xpath (if it has one) or will print a debug message if any further attempt is made to use its current node as the basis for a relative XPath query.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="p" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The LzDataNodeMixin that the datapointer is pointing to. Calling setAttribute on p calls LzDatapointer.setPointer.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="context" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The reference to a clonemanager from a clone. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="contextmenu" type="lzx:contextmenu" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+A contextual menu </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="contextmenu" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="delegate" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+		Sets the delegate which will be called when a menu item is selected. An onselect event is also sent.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basefocusview" type="lzx:basefocusview" >
+</xs:element>
+  <xs:complexType name="basefocusview" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="target" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ a reference to the view that is currently focused </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="duration" type="xs:string" default="400" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the duration of the animation from one focused view to the next </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="active" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ true during keyboard navigation, when this view is visible 
+              @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="node" type="lzx:node" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+The base class for all Laszlo classes.
+JavaScript: lz.node
+The lz.node class provides the basic interface for OpenLaszlo objects: parent/child hierarchy, setters, interaction with the instantiator, and reference resolution. New nodes (and subclasses thereof) can be created by new-ing the class, like this: var mynode= new LzNode( parent , args ); where parent is the parent for the new node, and args is an Object whose name/value pairs are attributes to be set on the new node.  </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="node" mixed="true">
+  <xs:group ref="lzx:topLevelElements" />
+      <xs:attribute name="transition" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Allows node attributes to be automatically animated when set. A string of transitions, according to the css3 transition spec http://dev.w3.org/csswg/css3-transitions/#the-transition-shorthand-property- e.g. 'x 2s'. Note that transition-delay is not currently supported. [transition-property || transition-duration || transition-timing-function || transition-delay [, [transition-property || transition-duration || transition-timing-function || transition-delay]]*  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="subnodes" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	An array of all of the LzNodes which consider this LzNode their parent. This list is similar to the subviews list, but it contains all the children of this node, not just the view children.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="styleclass" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	
+A space-separated list of CSS classes that can be used in a stylesheet to select this node.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="placement" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Instructions to this element's container about where it should go within its container's internal hierarchy. See the LzNode.determinePlacement method. Defaults to the container itself.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="parent" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Reference to the node that was passed as this node's ancestor in the constructor. If this node was created by declaring it in a tag, the parent will be its lexical parent. Its lexical parent is the tag that encloses it. Allow a null parent so that nodes can be garbage collected when they are no longer needed. See also, immediateparent.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="options" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	A CSS declaration of property: value pairs that modify the interaction of this node with controllers such as replicators and layouts. For example, setting options="ignorelayout: true" on a view will cause the view to not be controlled by any layout.
+[Note] 	Note
+The options that affect particular controllers and replicators are documented with each controller and replicator.
+[Note] 	Note
+options should not be accessed directly. You must use getOption and setOption to get or set the value of an option.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="oninit" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+This event is sent after the node's init method has been called. Simple actions that need to occur after the node's children have been initialized can be assigned to this event. For more complex initialization, see the init method. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ondata" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+The ondata script is executed when the data selected by a view's datapath changes. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onconstruct" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+This is the first event a node sends, right at the end of the instantiation process, but before any subnodes have been created or references resolved </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="nodeLevel" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The depth of this node in the overall node hierarchy </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="name" type="lzx:token" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The name for this subnode. If given, then this node's parent and immediate parent will store a pointer to this node as the given name value.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="initstage" type="xs:string" default="normal" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The execution of a node's init method and sending of the oninit event is under the control of its initstage attribute, as follows:
+
+immediate
+    The init method is called immediately as the last stage of instantiation. 
+early
+    The init method is called immediately after the view and its children have been instantiated. 
+normal
+    The init method is called when the parent is initialized. 
+late
+    The init method is called during idle time. To check whether init has been called, check the inited property. Force calling init using the completeInstantiation method. 
+defer
+    The init method will not be called unless explicitly requested by the completeInstantiation method. 
+
+	 </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inited" type="lzx:boolean" >
+</xs:attribute>
+      <xs:attribute name="immediateparent" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Reference to this nodes's parent in the node hierarchy. This will be different from "parent" when a class uses placement or defaultplacement to assign a subnode a specific place. For example, always use immediateparent to get a mouse position in your views coordinate system.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ignoreplacement" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Overrides placement attribute (and defaultplacement in lexical parent). See the LzNode.determinePlacement method. Defaults to false.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="id" type="lzx:token" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	A unique identifier for this element. Can be used as a global variable name in JavaScript code.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="defaultplacement" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	An attribute used in container classes. If set to a non-null value, this forces this node to run its determinePlacement method for any node whose parent is this node. If the subnode has its own placement attribute, determinePlacement will be called with that value, otherwise it will be called with this value. Note that a class's defaultplacement attribute only applies to children in subclasses or in instances, not to the children of the class itself. This means that if a class and its subclass both define a defaultplacement attribute, the attribute will be set to one value before the subclass children are created and to a different one after they are created. See the determinePlacement method.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="datapath" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	A shorthand version of &lt;datapath&gt;, specifies the data source for this node and its children. You write a string to datapath; reading datapath will yield a lz.datapath. If the value begins with an identifier followed by a colon, the identifier names a dataset, and the portion of the string after the colon is an XPath description of a portion of the data. Otherwise the entire attribute value is an XPath description of the data, relative to the data source of this node's parent element. Examples: "mydata:", "mydata:/a/b", "/a/b".  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="data" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The data context for the node </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="cloneManager" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	If this node is replicated due to data replication, the LzReplicationManager which controls this node.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="classroot" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	A reference to the node that is an instance of the &lt;class&gt; where this node is defined. Members of state subclasses do not define classroot. This is convenient to use when you want to access an attribute of the class in a method or event handler that is nested deep in the node hierarchy. For example, to set the bgcolor of the class object, instead of parent.parent.parent.setAttribute(bgcolor, 0xFFFFFF) you can simply use classroot.setAttribute(bgcolor, 0xFFFFFF).  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:complexType>
+<xs:element name="frame" type="lzx:frame" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+A frame of a multi-frame resource.
+
+The &lt;frame&gt; tag is used to define a single frame of a multi-frame &lt;resource&gt;. A multi-frame resource contains several images which can be toggled among by script commands.
+
+Multiple frame tags can be declared consecutively to produce a single resource constructed of an unlimited number of frames. Such composed resources are often used to conveniently implement mouse rollovers, button states, or other UI elements where alternate views of a resource are required. Once a multi-frame resource has been defined and presented within a &lt;view&gt;, the developer can designate which frame is actively visible through the use of the view's setResourceNumber method.
+
+Multi-frame resources can be used in conjunction with components such as &lt;basebutton&gt;, which pre-define complex button behavior using frames designated by the user. 
+
+ </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="frame" mixed="true">
+  <xs:group ref="lzx:topLevelElements" />
+      <xs:attribute name="src" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The path of a file that contains the source for this object. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="name" type="lzx:token" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The name of a variable that will be set to this object when the application is started. If this element is directly within a &lt;canvas&gt; or &lt;library&gt; element, the global variable and the canvas property with this name will be set to this object. If this element is within another object, that object's property with this name will be set to this object.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:complexType>
+<xs:element name="webapprpc" type="lzx:webapprpc" >
+</xs:element>
+  <xs:complexType name="webapprpc" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:rpc">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseslider" type="lzx:baseslider" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The base class for implementing sliders representing a range of
+              values. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="baseslider" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basevaluecomponent">
+      <xs:attribute name="trackheight" type="lzx:number" default="8" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The height of the track. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="track" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The base class for implementing sliders representing a range of
+              values. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="thumbwidth" type="lzx:number" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The width of the thumb. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="thumbheight" type="lzx:number" default="18" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The height of the thumb. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showvalue" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Turns on / off the floating value text when the user
+              drags. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showrange" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Turns on / off the bounding range text. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showfill" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Turns on / off the slider's filled area. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="precision" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ significant digits of precision </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onminvalue" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onmaxvalue" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="minvalue" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The minimum value. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maxvalue" type="lzx:number" default="100" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The maximum value. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="keystep" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ How far to move value when key navigating. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bordersize" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The border width. This can be set with a style. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chartzoomer" type="lzx:chartzoomer" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Allows users to zoom in on specific areas of the chart.
+        Click or drag right-to-left to zoom back out.  (Of beta quality.)
+        Due to a bug with drawview, this doesn't currently work in DHTML. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="chartzoomer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="zoomcolor" type="lzx:color" default="${parent.zoomcolor}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The color tint of the zoomer. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="stableborderlayout" type="lzx:stableborderlayout" >
+</xs:element>
+  <xs:complexType name="stableborderlayout" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:layout">
+      <xs:attribute name="axis" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The axis in which this layout operates. One of 'x' or 'y'. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="windowpanel" type="lzx:windowpanel" >
+</xs:element>
+  <xs:complexType name="windowpanel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basewindow">
+      <xs:attribute name="titlearea_inset_top" type="xs:string" default="6" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The top inset for the window title area. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="title" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the title of a window : this string appears at the top
+              of the window. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_top" type="xs:string" default="22" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The top inset for the window content area. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_right" type="xs:string" default="11" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The right inset for the window content area. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_left" type="xs:string" default="6" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The left inset for the window content area. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_bottom" type="xs:string" default="20" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The bottom inset for the window content area. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="closeable" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, the window will have a close control. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="iconradioitem" type="lzx:iconradioitem" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the iconradioitem class is a radio button with only an icon
+        @START_CODE
+        &lt;iconradioitem iconname="target" /&gt;
+        @END_CODE
+    </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="iconradioitem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baselistitem">
+      <xs:attribute name="rightrsc" type="xs:string" default="iconradiobutton_small_right_rsc" >
+</xs:attribute>
+      <xs:attribute name="middlersc" type="xs:string" default="iconradiobutton_small_middle_rsc" >
+</xs:attribute>
+      <xs:attribute name="leftrsc" type="xs:string" default="iconradiobutton_small_left_rsc" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ background resources </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="iconname" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ icon filename </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="icon_y" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ icon y position. calculated if not specified explicitly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="icon_x" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ icon x position. calculated if not specified explicitly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawview" type="lzx:drawview" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+
+    @copyright Copyright 2001-2010 Laszlo Systems, Inc.  All Rights Reserved.
+               Use is subject to license terms.
+
+    @access public
+    @affects lzdrawview
+    @topic LFC
+    @subtopic Views
+  </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="drawview" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="strokeStyle" type="xs:string" default="#000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Represents the colour to use for the lines around shapes.  Specified as a hexadecimal number (0xffffff) or a CSS string ('#ff00ff' or '#f0f').
+        @type String
+        @lzxtype string
+        @lzxdefault "#000000"
+        @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="miterLimit" type="lzx:number" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Gives the default miterLimit value for lines.
+          @type Number
+          @lzxtype number
+          @lzxdefault 10
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="measuresize" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, the size of the drawview will be set dynamically based on its contents, where possible. (swf-only)
+      @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="lineWidth" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Gives the default width of lines, in coordinate space units.
+          Negative values are ignored.  0 draws hairlines in swf - lines that
+          are always 1 pixel wide even when scaled.
+          @type Number
+          @lzxtype number
+          @lzxdefault 1
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="lineJoin" type="xs:string" default="miter" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Gives the default lineJoin value for lines. Round for consistency between swf and dhtml.
+          @type String
+          @lzxtype "round" | "bevel" | "miter"
+          @lzxdefault "miter"
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="lineCap" type="xs:string" default="butt" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Gives the default lineCap value for lines. Round for consistency between swf and dhtml.
+          @type String
+          @lzxtype "butt" | "round" | "square"
+          @lzxdefault "butt"
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="globalAlpha" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Gives an alpha value that is applied to shapes and images
+          before they are composited onto the canvas. The valid range of
+          values is from 0.0 (fully transparent) to 1.0 (no additional
+          transparency). If the attribute is set to values outside this range,
+          it is ignored. When the context is created, the globalAlpha
+          attribute initially has the value 1.0.
+          @type Number
+          @lzxtype number
+          @lzxdefault 1.0
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fillStyle" type="xs:string" default="#000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Represents the colour or style to use for the fill inside the shapes. Can be either a hexadecimal number (0xffffff), a CSS string ('#ff00ff' or '#f0f'), or a CanvasGradient/LzCanvasGradient.
+        @type String
+        @lzxtype string
+        @lzxdefault "#000000"
+        @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="aliaslines" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, lines will be offset by lineWidth / 2 to appear aliased (dhtml-only)
+      @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="slider" type="lzx:slider" >
+</xs:element>
+  <xs:complexType name="slider" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baseslider">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="resizestatemin" type="lzx:resizestatemin" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Resizes its immediateparent with a minimum size in response to mouse events, when applied. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="resizestatemin" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:resizestate">
+      <xs:attribute name="resize_min_width" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The minimum width to resize to </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="resize_min_height" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The minimum height to resize to </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="propedit" type="lzx:propedit" >
+</xs:element>
+  <xs:complexType name="propedit" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:toggletext">
+      <xs:attribute name="prop" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="obj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="isnumber" type="xs:string" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="icontogglebutton" type="lzx:icontogglebutton" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the icontogglebutton class is a icon button with two states, no text. the resource passed in should
+          have two frames, one for each state.
+        @START_CODE
+        &lt;icontogglebutton iconresource="resourcename"/&gt;
+        @END_CODE
+    </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="icontogglebutton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basebutton">
+      <xs:attribute name="statenum" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ button state (either 0 or 1)  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="icony" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ fine-tune the vertical position of icon </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="iconresource" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ icon resource name </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="menuseparator" type="lzx:menuseparator" >
+</xs:element>
+  <xs:complexType name="menuseparator" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecomponent">
+      <xs:attribute name="xinset" type="lzx:number" default="3" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the number of pixels to inset the menuseparartor from the sides of the menu </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basetabsbar" type="lzx:basetabsbar" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This class is a container for basetab items. It must be a child of
+          basetabs. The default layout for its subviews is "class: simplelayout;
+          axis: x; spacing: 0". You can pass the name of this class in the
+          'barclass' attribute of tabpane, basetabpane, basetabs, and
+          tabs. Basetabs uses this class as its default 'barclass'. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="basetabsbar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baselist">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="viewlistmanager" type="lzx:viewlistmanager" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private  
+        Manage a hash table of viewslist 
+     </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="viewlistmanager" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="pools" type="xs:string" default="${new Object()}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private  
+        Manage a hash table of viewslist 
+     </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="swatchview" type="lzx:swatchview" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ swatchview is a simple view that is filled with a single color.
+    Either 'fgcolor' and 'bgcolor' may be used to set the color of the view.
+    By default it fills the space of the parent with white </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="swatchview" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="color" type="xs:string" default="0xffffff" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ this is the color that was set (by setting 'bgcolor' or 'fgcolor' ),
+        bgcolor may be different if setColorTransform has been called
+        @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="dataselectionmanager" type="lzx:dataselectionmanager" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+   
+    @copyright Copyright 2001-2010 Laszlo Systems, Inc.  All Rights Reserved.
+               Use is subject to license terms.
+   
+    @affects lzdataselectionmanager
+    @access public
+    @topic LFC
+    @subtopic Helpers
+    @devnote TODO: [20080930 anba] (LPP-6080) uncomment typing in method signatures
+  </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="dataselectionmanager" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:selectionmanager">
+      <xs:attribute name="manager" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="horizontalaxis" type="lzx:horizontalaxis" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+     Represents the X-axis on the rectangular chart extends from Axis class
+     @access public
+     </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="horizontalaxis" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:axis">
+      <xs:attribute name="labelLenght" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="datacolumn" type="xs:string" default="x" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="constantlayout" type="lzx:constantlayout" >
+</xs:element>
+  <xs:complexType name="constantlayout" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:layout">
+      <xs:attribute name="value" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The constant value that is applied to the attribute
+          ( defined in 'axis' as 'x' or 'y' ) of each subview in the layout. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="axis" type="xs:string" default="y" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The axis in which this layout operates either 'x' or 'y'.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="streamprogress" type="lzx:streamprogress" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ An instance of this class will set its width relative to the
+      progress of the given stream and its maxwidth attribute. It is
+      green by default; however, to make it appear with a resource, you may
+      set the bgcolor to null and provde a resource (and don't forget to set
+      stretches attribute).
+</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="streamprogress" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="totaltime" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ read-only </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="time" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ read-only </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="stream" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ stream for which to show the progress </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="progress" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ a value between 0 and 1 indicating how much of the stream has played
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maxwidth" type="lzx:number" default="${parent.width}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ max width that this will grow to (defaults to parent's width </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="multistatebutton" type="lzx:multistatebutton" >
+</xs:element>
+  <xs:complexType name="multistatebutton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basebutton">
+      <xs:attribute name="statenum" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the current state </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="statelength" type="lzx:number" default="3" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the number of frames in a state </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maxstate" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the largest number allowed for the value of statenum </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="tabsbar" type="lzx:tabsbar" >
+</xs:element>
+  <xs:complexType name="tabsbar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basetabsbar">
+      <xs:attribute name="spacing" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Spacing between tab items. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videovolumebutton" type="lzx:videovolumebutton" >
+</xs:element>
+  <xs:complexType name="videovolumebutton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="volumeInternal" type="xs:string" default="1.0" >
+</xs:attribute>
+      <xs:attribute name="volume" type="xs:string" default="${this.mute ? 0.0 : this.volumeInternal}" >
+</xs:attribute>
+      <xs:attribute name="trackingDelegate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="tracking" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="over" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="mute" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="adjusting" type="xs:string" default="${             this.button.over ||              this.button.tracking ||              this.adjuster.over  ||              this.adjuster.tracking}" >
+</xs:attribute>
+      <xs:attribute name="adjusterHeight" type="xs:string" default="100" >
+</xs:attribute>
+      <xs:attribute name="adjusterBorder" type="xs:string" default="2" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basescrollthumb" type="lzx:basescrollthumb" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Basescrollthumb expects to be within a basescrollbar (or a subclass).
+          In other words, its "classroot" must be a scrollbar. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="basescrollthumb" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecomponent">
+      <xs:attribute name="doffset" type="xs:string" default="this.getMouse( 'y' )" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="tabslider" type="lzx:tabslider" >
+</xs:element>
+  <xs:complexType name="tabslider" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basetabslider">
+      <xs:attribute name="bordersize" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The size of the border. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bordercolor" type="lzx:color" default="${this.style != null ? this.style.bordercolor : null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The border color. Default is constrained to the 
+              &lt;tagname&gt;style&lt;/tagname&gt;'s &lt;attribute&gt;bordercolor&lt;/attribute&gt; 
+              value. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="style" type="lzx:style" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ contains style attributes which are applied to components to modify their look </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="style" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="textselectedcolor" type="lzx:color" default="black" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ used as the text color with 'selectedcolor' to color the
+        selected item </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="texthilitecolor" type="lzx:color" default="iceblue1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ used as the text color with 'hilitecolor' to highlight an item,
+        such as when mouse is over a menu item </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="textfieldcolor" type="lzx:color" default="white" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ background color for text areas </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="textdisabledcolor" type="lzx:color" default="gray60" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ used as the text color when a component is disabled </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="textcolor" type="lzx:color" default="gray10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ color for text </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="selectedcolor" type="lzx:color" default="iceblue3" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ used when an item is selected, such as in a list </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="menuitembgcolor" type="lzx:color" default="textfieldcolor" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ background color for menu items, defaults to the 'textfieldcolor' </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="isstyle" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ this is a style object
+          @access private
+          @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="isdefault" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ if true, this style is the default style for components  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="hilitecolor" type="lzx:color" default="iceblue4" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ used when the background color changes to highlight an item,
+        such as when mouse is over a menu item </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="disabledcolor" type="lzx:color" default="gray30" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ used when an item is disabled </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="canvascolor" type="lzx:color" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ canvas color, default: null (will use whatever is specified
+        as the canvas bgcolor, default: white) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bordersize" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the line width used in those components that have a visual border </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bordercolor" type="lzx:color" default="gray40" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ used to color the frame of a component for those that have a visual
+        border </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bgcolor" type="lzx:color" default="white" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ used for colorizing the backgrounds of content areas, such
+          as the background in tabslider's content, and window's content </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="basecolor" type="lzx:color" default="offwhite" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ used for colorizing a component, components will typically use
+        varying shades of this color </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basescrollbar" type="lzx:basescrollbar" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Contains non-visual aspects of a scrollbar. Subclasses are expected to
+          define this.thumb and this.scrolltrack to reference the views that
+          perform those functions. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="basescrollbar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecomponent">
+      <xs:attribute name="usemousewheel" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, this scrollbar listens for mousewheel events </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="stepsize" type="xs:string" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The amount that the scrolltarget is moved when the user clicks on
+              the scrolltrack or when the step method is called. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="scrolltarget" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The view that is controlled by the scrollbar.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="scrollmax" type="lzx:number" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The maximum distance to scroll, default: the height or width
+              of the scrolltarget. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="scrollattr" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The attribute of the scrolltarget that is modified by the scrollbar,
+              default: value of axis attribute.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="scrollable" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ True if the scrolltarget is bigger than the containing view
+              therefore the scrollbar is active. The scrollbar appears disabled
+              when scrollable is false. You can make the scrollbar invisible
+              when there is nothing to scroll by setting visible="${scrollable}"
+              @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="pagesize" type="lzx:number" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The maximum distance to scroll, default: the height or width
+              of the scrollbar.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onscrollmax" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keywords public </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="mousewheelevent_on" type="xs:string" default="onfocus" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The event that activates the mousewhen when sent from the focusview </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="mousewheelevent_off" type="xs:string" default="onblur" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The event that deactivates the mousewhen when sent from the focusview </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="mousewheelactive" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, the mousewheel is active for the focusview.
+              @keywords read-only </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="focusview" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The view to which the scrollbar should listen for focus 
+            events. If not set, it will be set to the scrolltarget
+            or the immediateparent of the scrollbar,
+            whichever is focusable </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="axis" type="xs:string" default="y" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Axis may be "x" or "y", controls the orientation and default
+              scrollattr
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="validatingForm" type="lzx:validatingForm" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+      @topic Incubator
+      @subtopic Validators
+  </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="validatingForm" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:form">
+      <xs:attribute name="validators" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+      @topic Incubator
+      @subtopic Validators
+  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="errorcount" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="PopupCircle" type="lzx:PopupCircle" >
+</xs:element>
+  <xs:complexType name="PopupCircle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:circlehotspot">
+      <xs:attribute name="text" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="parentView" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baselistitem" type="lzx:baselistitem" >
+</xs:element>
+  <xs:complexType name="baselistitem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basevaluecomponent">
+      <xs:attribute name="selected" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether this item is selected. Our containing list will adopt the value
+              of this component when it is selected. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onselected" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Event sent when this item is selected. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onselect" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Event sent when the user makes a selection. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="piechartplotarea" type="lzx:piechartplotarea" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+         A pie chart plot area where the pie slices are rendered
+         @access public
+         </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="piechartplotarea" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:drawview">
+      <xs:attribute name="style" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Defines the pie slice's style </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="formlayout" type="lzx:formlayout" >
+</xs:element>
+  <xs:complexType name="formlayout" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:layout">
+      <xs:attribute name="spacing" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A pixel amount to use between each view in the layout </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maxwidth" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="inset" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A pixel amount to inset the first view controlled by the layout</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="counter" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="axis" type="xs:string" default="y" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The axis in which this layout operates. One of 'x' or 'y'. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="align" type="xs:string" default="left" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="mred" type="lzx:mred" >
+</xs:element>
+  <xs:complexType name="mred" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="urls" type="xs:string" default="[ 'http://www.openlaszlo.org/images/edsurf.gif',                      'http://www.openlaszlo.org/images/ednpals2.gif',                      'http://www.openlaszlo.org/images/edchess1.jpg',                      'http://www.openlaszlo.org/images/edandalaninbarn.jpg'                    ]" >
+</xs:attribute>
+      <xs:attribute name="urlnum" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="timedel" type="xs:string" default="${new LzDelegate ( this , 'advance' )}" >
+</xs:attribute>
+      <xs:attribute name="running" type="xs:string" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="bluestyle" type="lzx:bluestyle" >
+</xs:element>
+  <xs:complexType name="bluestyle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:style">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="axis" type="lzx:axis" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A abstract class that represents one of the axes of a rectangular chart. In general, axis isn't instantiated directly     
+    @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="axis" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:drawview">
+      <xs:attribute name="type" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates the axis type can be 'linear' or 'categorical' </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="titleY" type="lzx:number" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates the placement in Y position of the Axis title </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="titleX" type="lzx:number" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates the placement in X position of the Axis title </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="titleLocation" type="xs:string" default="default" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates the placement of the Axis title possible values: 'low','high','default'</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="titleGap" type="lzx:number" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="title" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Axis title label</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="tickmarkLabelMaxDecimals" type="lzx:number" default="2" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ticklabelcolumn" type="xs:string" default="$once{''}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Data Column that is used to override the values of Tic Marks labels   </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="tickMarksLabelsEnabled" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ enable the rendering of tic Marks labels </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="tickMarkPositions" type="xs:string" default="[]" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Exposes distances where tickmarks are drawn 
+        @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="scale" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ratioPixel" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="offset" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="minorTickEnabled" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ enable minor Tics Marks </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="minimumRender" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="minimum" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Numerical value that indicates the Minimum value in the axis can be positive or negative value </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maximumRender" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maximum" type="xs:string" default="100" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Numerical value that indicates the Maximum value in the axis can be positive or negative value </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="majorTickEnabled" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ enable Major Tics Marks </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="majorInterval" type="lzx:number" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Allows to customize the interval of the Major Tics Marks</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labelrotation" type="xs:string" default="horizontal" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates the axis title rotation can be 'horizontal' or 'vertical' </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labelTextArray" type="xs:string" default="[]" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Exposes distances where tickmarks are drawn 
+        @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labelReposEnabled" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Attribute that controls if the labels are vertically repositioned to avoid overlaping </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labelArray" type="xs:string" default="[]" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="interval" type="xs:string" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates the interval of values between the tic marks of the axis </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fixedRange" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Fix the range of the axis to the maximum &amp;amp; minimum   </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dataSeries" type="xs:string" default="[]" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="columnName" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates the column name associated to the axis </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="categoricalArray" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="axisEnabled" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ enable or disable the axis </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="adjustmin" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="colormenuitem" type="lzx:colormenuitem" >
+</xs:element>
+  <xs:complexType name="colormenuitem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="mycolor" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="sliderknob" type="lzx:sliderknob" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="sliderknob" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="minx" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maxy" type="xs:string" default="100" >
+</xs:attribute>
+      <xs:attribute name="isMouseDown" type="xs:string" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="custombutton" type="lzx:custombutton" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The custombutton class can include text and/or an icon, with our app-specific background graphic
+        &lt;example&gt;
+          &amp;lt;canvas&amp;gt;
+            &amp;lt;include href="incubator/custombutton.lzx"/&amp;gt;
+            &amp;lt;custombutton iconname="target" text="Hit Me"/&amp;gt;
+          &amp;lt;/canvas&amp;gt;
+        &lt;/example&gt;
+
+        the icon should be a resource with a name ending in "_icon_rsc";
+        the iconname should be that resource name, without the "_icon_rsc"
+    </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="custombutton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basebutton">
+      <xs:attribute name="texty" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ use to fine-tune text y position </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="rightrsc" type="xs:string" default="custombutton_small_right_rsc" >
+</xs:attribute>
+      <xs:attribute name="middlersc" type="xs:string" default="custombutton_small_middle_rsc" >
+</xs:attribute>
+      <xs:attribute name="leftrsc" type="xs:string" default="custombutton_small_left_rsc" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ background resources </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="icony" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ fine-tune the vertical position of icon </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="iconstretches" type="xs:string" default="none" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ controls whether the icon stretches (none|both) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="iconspace" type="xs:string" default="2" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ fine-tune the horizontal spacing of icon to text </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="iconname" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ icon resource name prefix </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="expandedWidth" type="xs:string" default="$once{this.width}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ max width of button </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="collapsedWidth" type="xs:string" default="30" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ min width of button </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="barchartplotarea" type="lzx:barchartplotarea" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keywords private
+     plotarea of barchart </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="barchartplotarea" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:virtualdrawview">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="xdragstate" type="lzx:xdragstate" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="xdragstate" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:state">
+      <xs:attribute name="xdoffset" type="xs:string" default="this.getMouse( 'x' )" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="x" type="xs:string" default="${limit(minx, maxx,                     this.immediateparent.getMouse( 'x' ) - this.xdoffset)}" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basecombobox" type="lzx:basecombobox" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A dropdown list of selectable items. Can either be editable or
+          not. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="basecombobox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baseformitem">
+      <xs:attribute name="text_y" type="lzx:number" default="2" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the y position of the text. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="text_x" type="lzx:number" default="2" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the x position of the text. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="text_width" type="lzx:number" default="${this.width - 19}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the width the text. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="spacing" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The spacing size ( in pixels ) between items in the pop-up list.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="shownitems" type="xs:string" default="-1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Sets the height of the combobox to show 'n' items. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="selected" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The initial selected item. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onselect" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This event is triggered whenever the user makes a selection. It
+              may be used as a script in the combobox tag or as an event method.
+              </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ondefaultselection" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This event is sent when the default selection is set.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="min_width" type="lzx:number" default="50" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The minimum width this component is allowed to be.
+              @keywords defaultsetter </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="itemclassname" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The class that is used to create an item in the list. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="isopen" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates whether or not the popup list is showing.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="editable" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Make the text field of this combobox editable. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="defaulttext" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The text that appears in the text field when no item is selected. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="defaultselection" type="lzx:number" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The number of the item that is initially selected. This overrides
+              the value defined in the defaulttext attribute </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dataoption" type="xs:string" default="none" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ One of "lazy", "resize", "pooling", "none". </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="datacontrolsvisibility" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="bordersize" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The border size ( in pixels ) of the popup list.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="autoscrollbar" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether a scrollbar should automatically show up when there are more
+              items than shownitems. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="attachoffset" type="lzx:number" default="-1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The vertical offset of the floatinglist attached to this
+              combobox. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="audio" type="lzx:audio" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Imports an audio file.
+[Warning]This tag is obsolete. Its functionality has been replaced by the &lt;resource&gt; tag. 
+ </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="audio" mixed="true">
+  <xs:group ref="lzx:topLevelElements" />
+      <xs:attribute name="src" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Imports an audio file.
+[Warning]This tag is obsolete. Its functionality has been replaced by the &lt;resource&gt; tag. 
+ </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:complexType>
+<xs:element name="basefloatinglist" type="lzx:basefloatinglist" >
+</xs:element>
+  <xs:complexType name="basefloatinglist" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:list">
+      <xs:attribute name="attachtarget" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The view to which this floatinglist will attach. By default, this
+              will be the lexical parent.  The style of the attachtarget will be
+              inherited. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="attachoffset" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The distance from the attachtarget. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="attach" type="xs:string" default="bottom" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Where this floatinglist should attach to its owner. Possible
+              values: bottom, top, left, right.  In the event of a canvas
+              out-of-bounds, the floating list will attach in a visible
+              location. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basecomponent" type="lzx:basecomponent" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ an abstract class which all components subclass </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="basecomponent" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="text" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the label or title of the component: instead of using this 
+              attribute text may instead be placed withing the tag, for
+              example: &amp;lt;button&amp;gt;OK&amp;lt;/button&amp;gt; </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="styleable" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ whether style should be applied to this component </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="style" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  if null, the style is set to the inherited style from the parent
+               component, if no parent component the style will be the canvas
+               'defaultstyle' attribute </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onstyle" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onisdefault" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ event: when isdefault changes
+              @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onfocusable" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="on_enabled" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="isdefault" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If set to true, this component will be the default (and will
+              therefore receive the enter key) if it is nearest to the focussed
+              view, and if that focussed view does not have doesenter set to
+              true. "Nearness" is defined to mean the closest common parent
+              with the focussed view that is not excluded from the mode, and
+              which is visible onscreen.
+              </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="hasdefault" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ set to true when this component will receive enter key events </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="enabled" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ when false the component should appear as its disabled state and
+              not respond to user events. The component is
+              automatically set to clickable when enabled, and not clickable
+              when disabled.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="doesenter" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ if set to true, the component manager will call this component
+              with doEnterDown and doEnterUp when the enter key goes up or down
+              if it is focussed. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="camera" type="lzx:camera" >
+</xs:element>
+  <xs:complexType name="camera" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:mediadevice">
+      <xs:attribute name="width" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The width (resolution) that will be captured by the camera. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="show" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, show camera on immediateparent videoview.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="picturequality" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Camera picture quality: a value between 0 and 1, where 1
+              represents the highest quality (no compression). When
+              0 is passed, this indicates to use highest quality that
+              fits into the available bandwidth </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="height" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The height (resolution) that will be captured by the camera. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fps" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The number of frames per second that will be captured 
+              by the camera. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="favorsize" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Often several capture modes are available per camera device.
+              These modes will allow capturing at a specific size (width/height)
+              and framerate.  If you specify both fps and width and height for
+              this camera, this attribute will control which capturing mode
+              for the camera device will be used. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bandwidth" type="xs:string" default="16384" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Camera bandwidth (in bytes per second). </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="toggletext" type="lzx:toggletext" >
+</xs:element>
+  <xs:complexType name="toggletext" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="text" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="editing" type="xs:string" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="tickmarklabel" type="lzx:tickmarklabel" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private Represents the tickmark text which appears on a computerized note </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="tickmarklabel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:label">
+      <xs:attribute name="styleSet" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Attribute to handle style set optimization
+        @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="photo" type="lzx:photo" >
+</xs:element>
+  <xs:complexType name="photo" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="datamarker" type="lzx:datamarker" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+      datamarker for the chart
+      @access public
+      </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="datamarker" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:drawview">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="colorpicker" type="lzx:colorpicker" >
+</xs:element>
+  <xs:complexType name="colorpicker" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:window">
+      <xs:attribute name="selectedColor" type="lzx:number" default="0x000000" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseslidertrack" type="lzx:baseslidertrack" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Baseslidertrack expects to be within a baseslider (or its
+          subclass). In other words, its "classroot" should be a slider. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="baseslidertrack" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="colorpot" type="lzx:colorpot" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+      @topic Incubator
+      @subtopic Components
+  </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="colorpot" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="mycolor" type="lzx:color" default="#000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+      @topic Incubator
+      @subtopic Components
+  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="listener" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="pre" type="lzx:pre" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ HTML specific </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="pre" mixed="true">
+  <xs:group ref="lzx:topLevelElements" />
+  </xs:complexType>
+<xs:element name="wrappinglayout" type="lzx:wrappinglayout" >
+</xs:element>
+  <xs:complexType name="wrappinglayout" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:layout">
+      <xs:attribute name="yspacing" type="xs:string" default="${this.spacing}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A pixel amount to use between the views controlled by the layout in
+          the y axis. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="yinset" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A pixel amount to offset the first view controlled by the layout in y
+          axis </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="xspacing" type="xs:string" default="${this.spacing}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A pixel amount to use between the views controlled by the layout in
+          the x axis. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="xinset" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A pixel amount to offset the first view controlled by the layout in x
+          axis </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="spacing" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A pixel amount to use between the views controlled by the layout in
+          both axes. By default, both xspacing and yspacing are set to this
+          value. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="duration" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If given, a number of miliseconds to use to animate the views in to
+          place.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="axis" type="xs:string" default="x" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The primary axis for wrapping. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="checkbox" type="lzx:checkbox" >
+</xs:element>
+  <xs:complexType name="checkbox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baseformitem">
+      <xs:attribute name="text_y" type="lzx:number" default="${this.cb.height/2 - this._title.height/2+1}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the y position of the text label. default: centered </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="resizeview_x" type="lzx:resizeview_x" >
+</xs:element>
+  <xs:complexType name="resizeview_x" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="right" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="middle" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="left" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="html" type="lzx:html" >
+</xs:element>
+  <xs:complexType name="html" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="target" type="xs:string" default="$once{this.parent}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Sets the view to listen to for x/y/width/height change events.  Defaults to this.parent.
+          @type LzView
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="src" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Sets the URL the html tag should load
+          @type String
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="shownativecontextmenu" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, show native context menus in the iframe.  Otherwise, show OpenLaszlo context menus.  Note that this only works in DHTML because it's not possible to programatically display a context menu in Flash.
+          @type Boolean
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="scrollbars" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, the html tag will have scrollbars.
+          @type Boolean
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="rpcmethods" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Contains a list of method names available to call with callRPC().
+          @type Array
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ready" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, the html tag is ready to receive commands
+          @type Boolean
+          @access public
+          @keywords readonly
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ontarget" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onsrc" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onready" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="mouseevents" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, attempt to listen for mouse events on the iframe.  Cross-domain security restrictions apply, so if the content loaded in the iframe is from a different domain, mouse events won't be sent.
+          @type Boolean
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="minimumwidth" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The minimum width of the iframe: embedded swfs won't load with a size less than 1
+          @type Number
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="minimumheight" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The minimum height of the iframe: embedded swfs won't load with a size less than 1
+          @type Number
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="loading" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, the html tag is currently loading
+          @type Boolean
+          @access public
+          @keywords readonly
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="iframeid" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="html" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The HTML that the iframe starts out containing.
+          @type String
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="history" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, the html tag will set browser history.
+          @type Boolean
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="framename" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Sets the name/target of the html iframe.
+          @type String
+          @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="frametimer" type="lzx:frametimer" >
+</xs:element>
+  <xs:complexType name="frametimer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="fps" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="delta" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="resizeview_y" type="lzx:resizeview_y" >
+</xs:element>
+  <xs:complexType name="resizeview_y" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="top" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="middle" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="bottom" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baselist" type="lzx:baselist" >
+</xs:element>
+  <xs:complexType name="baselist" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baseformitem">
+      <xs:attribute name="toggleselected" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ When true, the first click on a list item selects it and the
+              second click deselects it. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onselect" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This event is triggered whenever the user makes a selection it may
+              used as a script in the tag or as an event method. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onitemclassname" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This event is triggered whenever the itemclassname attribute 
+              changes. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="multiselect" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If multiselect is true, multiple items may be selected. When the
+              shift key is down, a range of items is selected. When the control
+              key is down, any item may be added to the selection. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="itemclassname" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The name of the class for new items that will be created with
+              addItem(). </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="defaultselection" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The index of the default selected item, if none is provided via
+              the selected="true" attribute on an item. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dataoption" type="xs:string" default="none" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ One of "lazy", "resize", "pooling", "none". </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="selectionmanager" type="lzx:selectionmanager" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+   
+    @copyright Copyright 2001-2010 Laszlo Systems, Inc.  All Rights Reserved.
+               Use is subject to license terms.
+   
+    @affects lzselectionmanager
+    @access public
+    @topic LFC
+    @subtopic Helpers
+    @lzxname selectionmanager
+    @devnote TODO: [20080930 anba] (LPP-6080) uncomment typing in method signatures
+  </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="selectionmanager" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="toggle" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+        @type Boolean
+        @lzxtype boolean
+      </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="selectedHash" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+        @access private
+        @type Object
+      </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="selected" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+        @access private
+        @type Array
+      </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="sel" type="xs:string" default="setSelected" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The name of the method to call on an object when an object's
+        selectedness changes. The method is called with a single Boolean
+        argument. The default value for this field is &lt;code&gt;setSelected&lt;/code&gt;.
+        (This feature is not available for &lt;tagname&gt;dataselectionmanager&lt;/tagname&gt;.)
+        @type String
+        @lzxtype string
+      </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="lastRangeStart" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+        @type *
+        @access private
+      </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="datalabel" type="lzx:datalabel" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+      Represents the data text which appears on a computerized note
+      @access public
+      </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="datalabel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:label">
+      <xs:attribute name="labelOut" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labelEnabled" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="handler" type="lzx:handler" >
+</xs:element>
+  <xs:complexType name="handler" mixed="true">
+  <xs:group ref="lzx:topLevelElements" />
+      <xs:attribute name="reference" type="xs:string" default="this" >
+</xs:attribute>
+      <xs:attribute name="name" type="xs:string" use="required" >
+</xs:attribute>
+      <xs:attribute name="method" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="args" type="xs:string" default="" >
+</xs:attribute>
+  </xs:complexType>
+<xs:element name="tooltip" type="lzx:tooltip" >
+</xs:element>
+  <xs:complexType name="tooltip" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="yoffset" type="xs:string" default="25" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+        The vertical offset of tooltip from the mouse position.
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="tipvalign" type="xs:string" default="default" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+        Whether the tooltip shows up above or below the mouse
+        position. Default will position heuristically to keep
+        the tooltip visible on the canvas.
+
+        @lzxtype above | below | default
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="tipalign" type="xs:string" default="left" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+        Whether the tooltip is horizontally aligned by it's left edge
+        (default) or right edge relative to the mouse position.
+
+        @lzxtype right | left
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="text" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+        The text that will be displayed by the tooltip.  If the text
+        is &lt;code&gt;null&lt;/code&gt; or empty, no tooltip will be displayed.
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="viewslist" type="lzx:viewslist" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A pool of ordered view  
+         - @keyword private
+        </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="viewslist" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="vlist" type="xs:string" default="$once{[]}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A pool of ordered view  
+         - @keyword private
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="viewclass" type="xs:string" default="$once{null}" >
+</xs:attribute>
+      <xs:attribute name="parentview" type="xs:string" default="${parent}" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="combobox" type="lzx:combobox" >
+</xs:element>
+  <xs:complexType name="combobox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecombobox">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="datepickerlistitem" type="lzx:datepickerlistitem" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @access private </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="datepickerlistitem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:textlistitem">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="rtmpconnection" type="lzx:rtmpconnection" >
+</xs:element>
+  <xs:complexType name="rtmpconnection" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="status" type="xs:string" default="disconnected" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ String to indicate connection status.
+            @type string
+            @access public
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="stage" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Number to indicate what stage of connection we're in:
+            0: disconnected, 1: connecting, 2: connected.
+            @type Number
+            @access public
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="src" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Application url, for example
+            "rtmp:/appname" or "rtmp://myserver.com/myapp/".
+            @type String
+            @access private
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onconnect" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Event sent when connection established. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="objectencoding" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The AMF object encoding to use for this connection, either 0 or 3.
+            @type Number
+            @keywords final  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="debug" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Turn on for verbose debugger output.
+            @type Boolean
+            @access public
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="connectiontimeout" type="lzx:number" default="3000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Number of milliseconds to wait for connection at src before 
+                using altsrc URL </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="connections" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A shared hash of connections
+            @type Object
+            @access private
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="connectionparams" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Connection parameters that will be sent to the server when NetConnection.connect() is called
+            @type Expression
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="autoconnect" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Connect automatically during init. If false, you need to explicitly
+            call connect().
+            @type Boolean
+            @access public
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="altsrc" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Alternate application url, used if the connection for src 
+                fails for example : "rtmp:/appname" or 
+                "rtmp://myserver.com/myapp/". </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="resizelayout" type="lzx:resizelayout" >
+</xs:element>
+  <xs:complexType name="resizelayout" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:layout">
+      <xs:attribute name="spacing" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A pixel amount to use between each view in the layout </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="axis" type="xs:string" default="y" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The axis in which this layout operates either 'x' or 'y'.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basedatacombobox_item" type="lzx:basedatacombobox_item" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Class used to create an item in a basedatacombobox's list.
+          @keywords private </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="basedatacombobox_item" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:textlistitem">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="greenstyle" type="lzx:greenstyle" >
+</xs:element>
+  <xs:complexType name="greenstyle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:style">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="tab" type="lzx:tab" >
+</xs:element>
+  <xs:complexType name="tab" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basetab">
+      <xs:attribute name="padding" type="xs:string" default="20" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Text padding. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basechart" type="lzx:basechart" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The base class for non-pie charts.  Contains most of the
+        shared attributes and elements.  (Of beta quality.) </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="basechart" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="zoomcolor" type="lzx:color" default="#DDDDDD" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The color of the zoom selector. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="zoomable" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether bars are zoomable or not. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="zerowidth" type="lzx:number" default="2" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Width of the line drawn at zero. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="vtickwidth" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Width of drawn vertical tick marks. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="vticklength" type="lzx:number" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Length of drawn vertical tick marks. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="vticklabelsize" type="lzx:number" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Text size of vertical tick labels. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="vticklabel" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Color of vertical tick labels.  If not specified, no
+            labels are drawn. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="vtick" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to draw vertical tick marks, and if so,
+            what color.  If no color is specified, ticks are not drawn.
+            These are the tick marks that are drawn vertically, along the
+            bottom axis.  Note: In barchart, setting drawaxis to y changes
+            overall chart orientation, with the "bottom" on the left. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="vgridwidth" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Vertical grid line thickness. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="vgridspacing" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Vertical grid line spacing.  (Units, not pixels.  In
+            barchart, the space between one bar and the next is
+            considered one unit.) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="vgridlines" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Color of the vertical grid lines.  Note: In barchart,
+            vertical axis is considered the axis that runs parallel to the
+            orientation of the chart. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="vgridbands" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Vertical grid bands. Note: In barchart, vertical axis is
+            considered the axis that runs parallel to the orientation of
+            the chart. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="vbopacity" type="lzx:number" default=".5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Vertical grid band opacity.  Note: In barchart, vertical
+            axis is considered the axis that runs parallel to the
+            orientation of the chart. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="vaxiswidth" type="lzx:number" default="3" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Width of drawn vertical axis. Note: In barchart, vertical
+            axis is considered the axis that runs parallel to the
+            bars in the chart. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="vaxis" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to draw a line along the vertical axis, and if so,
+            what color.  (If no color is specified, axis is not drawn.)
+            Note: In barchart, vertical axis is considered the axis
+            that runs parallel to the bars in the chart. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ploty" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Plot area's y position, relative to chart as a whole. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="plotx" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Plot area's x position, relative to chart as a whole. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="plotwidth" type="lzx:number" default="${this.width - 1}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Width of plotting area. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="plotheight" type="lzx:number" default="${this.height - 1}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Height of plotting area. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="paneslider" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The position of the view in which the data is drawn in
+            relation to its parent clipping frame.  Allows data to be
+            dragged or slid around. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="minimum" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Grid's minimum displayed value. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maximum" type="lzx:number" default="100" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Grid's maximum displayed value. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="htickwidth" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Width of drawn horizontal tick marks. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="hticklength" type="lzx:number" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Length of drawn horizontal tick marks. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="hticklabelsize" type="lzx:number" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Text size of horizontal tick labels. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="hticklabel" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Color of horizontal tick labels.  If not specified, no
+            labels are drawn. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="htick" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to draw horizontal tick marks, and if so,
+            what color.  If no color is specified, ticks are not
+            drawn.  These are the tick marks that are drawn horizontally,
+            along the side axis.  Note: In barchart, setting drawaxis to y
+            changes overall chart orientation, with the "bottom" on the
+            left. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="hgridwidth" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Horizontal grid line thickness. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="hgridspacing" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Horizontal grid line spacing.  (Units, not pixels.) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="hgridlines" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Color of the horizontal grid lines. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="hgridbands" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Horizontal grid bands. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="hbopacity" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Horizontal grid band opacity. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="haxiswidth" type="lzx:number" default="3" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Width of drawn horizontal axis. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="haxis" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to draw the horizontal axis, and what color.
+            (If no color is specified, axis is not drawn.) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="drawzero" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to draw a line at zero, and what color.  If
+            no color is specified, line is not drawn. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="drawaxis" type="xs:string" default="x" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The direction in which the data will be drawn.
+            Accepts values x and y.  (x - vertical bars drawn
+            from left to right.  y - horizontal bars drawn
+            top to bottom.)  Only applicable to barchart, but
+            necessary for certain shared elements. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="draggable" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether bars are able to be dragged or not. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="borderwidth" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Width of the plot area's border. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="border" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether there's a border around the plot area, and if so,
+            what color. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bgresource" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If desired, a resource can be used in the background.
+            If specified, this view will appear behind the chart,
+            with everything drawn on top of it. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="belowzeroopacity" type="lzx:number" default=".2" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Opacity for area below zero.  Defaults to a low number
+            for a hazy, translucent effect. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="belowzero" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to fill the area below zero, and what color.
+            (Will not be drawn if no color specified.) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="baselabels" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to label the individual bar ticks, and if so,
+            what color. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="barticks" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to have ticks for individual bars, and if so,
+            what color. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="altslider" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The slider for the alternate direction to paneslider. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="altminimum" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Grid's maximum for width.  (If lines are drawn
+            vertically, this controls horizontal visible area.  If lines are drawn
+            horizontally, this controls vertical visible area.  Changing these
+            will allow the user to zoom in and out on a particular area, and
+            will scale data accordingly.)  Note: Not settable in barchart. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="altmaximum" type="lzx:number" default="100" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Grid's minimum for width.  (If lines are drawn
+            vertically, this controls horizontal visible area.  If lines are drawn
+            horizontally, this controls vertical visible area.  Changing these
+            will allow the user to zoom in and out on a particular area, and
+            will scale data accordingly.)  Note: Not settable in barchart. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="adjusttodata" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to adjust the graph to data. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="memorymonitor_model" type="lzx:memorymonitor_model" >
+</xs:element>
+  <xs:complexType name="memorymonitor_model" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="scale" type="lzx:number" default="1 / 1024" >
+</xs:attribute>
+      <xs:attribute name="max" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="current" type="lzx:number" default="-1" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="roundrectbutton" type="lzx:roundrectbutton" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 
+A class for making nice-looking, styleable buttons with gradients, without any art assets.
+
+See test/test-roundrectbutton.lzx for several examples of how to use this component. 
+
+The component attributes are only used for initialization. They are not live constraints.
+Currently the best way to change them at runtime is to apply a &amp;lt;style&amp;gt;. 
+</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="roundrectbutton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecomponent">
+      <xs:attribute name="upStopColor" type="lzx:color" default="0x999999" >
+</xs:attribute>
+      <xs:attribute name="upStartColor" type="lzx:color" default="0xcccccc" >
+</xs:attribute>
+      <xs:attribute name="overStopColor" type="lzx:color" default="0x777777" >
+</xs:attribute>
+      <xs:attribute name="overStartColor" type="lzx:color" default="0x999999" >
+</xs:attribute>
+      <xs:attribute name="downStopColor" type="lzx:color" default="0xCCCCCC" >
+</xs:attribute>
+      <xs:attribute name="downStartColor" type="lzx:color" default="0xFFFFFF" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 
+A class for making nice-looking, styleable buttons with gradients, without any art assets.
+
+See test/test-roundrectbutton.lzx for several examples of how to use this component. 
+
+The component attributes are only used for initialization. They are not live constraints.
+Currently the best way to change them at runtime is to apply a &amp;lt;style&amp;gt;. 
+</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="boxShadowY" type="xs:string" default="2" >
+</xs:attribute>
+      <xs:attribute name="boxShadowX" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="boxShadowColor" type="xs:string" default="0xb3b3b3" >
+</xs:attribute>
+      <xs:attribute name="borderWidth" type="xs:string" default="1" >
+</xs:attribute>
+      <xs:attribute name="borderRadius" type="xs:string" default="15" >
+</xs:attribute>
+      <xs:attribute name="borderColor" type="lzx:color" default="0x999999" >
+</xs:attribute>
+      <xs:attribute name="backgroundStopColor" type="lzx:color" default="$once{parent.upStopColor}" >
+</xs:attribute>
+      <xs:attribute name="backgroundStartColor" type="lzx:color" default="$once{parent.upStartColor}" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="LzTextFormat" type="lzx:LzTextFormat" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+    LzTextFormat is deprecated.  Use 'textformat' instead.
+    @keyword deprecated
+</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="LzTextFormat" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:textformat">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="myweek" type="lzx:myweek" >
+</xs:element>
+  <xs:complexType name="myweek" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basedatepickerweek">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="rpc" type="lzx:rpc" >
+</xs:element>
+  <xs:complexType name="rpc" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="secureport" type="lzx:number" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The port to use for the secure socket between the client and the
+              LPS. If secure is false, this value is ignored.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="secure" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Make connection secure between client and the LPS secure
+             (HTTPS). Default is false. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="proxyinfo" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="proxy" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The remote proxy object. Proxy is set after the rpc object
+              loads. Proxy contains client-side function stubs to remote
+              methods. Each method takes an array of arguments and a delegate
+              like:
+
+                myrpc.proxy.remoteFunc( [ p1, p2, ..., pN ], delegate );
+
+              Remote methods with no arguments are passed in an empty array
+              like:
+
+                myrpc.proxy.otherRemoteFunc( [], delegate );
+
+              The delegate is used to handle the return value since RPC calls
+              are asynchronous.
+
+              @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onunload" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This event is triggered when the remote object is unloaded.
+              @access public
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onload" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This event is triggered when the remote object is loaded.
+              @access public </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onerror" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This event is triggered when an error or timeout occurs associated
+              with getting this object or calling one of its remote methods. 
+              @access public </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="autoload" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Load remote object during init. If false, create remote object by
+              calling load(). Default is true. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="datacombobox" type="lzx:datacombobox" >
+</xs:element>
+  <xs:complexType name="datacombobox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basedatacombobox">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basezoomarea" type="lzx:basezoomarea" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ An abstract class that provide basic zooming ability. 
+        Allow subclasses to modify the look and feel
+        and action to be taken
+        @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="basezoomarea" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="starty" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="startx" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="selectionDel" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="selecting" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ user is selecting or not </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="plotarea" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="endy" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="endx" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="enabled" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ enable zoom area </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="duration" type="lzx:number" default="500" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ zoom animation duration </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="chart" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the chart instance </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="_componentmanager" type="lzx:_componentmanager" >
+</xs:element>
+  <xs:complexType name="_componentmanager" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="tree" type="lzx:tree" >
+</xs:element>
+  <xs:complexType name="tree" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basetree">
+      <xs:attribute name="onactivate" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Double-clicking on the icon or text triggers this event. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="icon" type="xs:string" default="lztree_folder_rsc" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The resource for the item icon:
+              frame 1 (closed), frame 2 (opened), frame 3 (leaf) 
+              Default is lztree_folder_rsc defined in lz/tree.lzx.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="expander" type="xs:string" default="lztree_arrow_rsc" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The resource for the expanding icon:
+              frame 1 (closed), frame 2 (opened), frame 3 (leaf).
+              Default is lztree_arrow_rsc defined in lz/tree.lzx.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chartdata" type="lzx:chartdata" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A container class for dataseries instances.  Helps organize and
+        locate the data. All dataseries tags in a chart must be children
+        of this class. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="chartdata" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="button" type="lzx:button" >
+</xs:element>
+  <xs:complexType name="button" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basebutton">
+      <xs:attribute name="text_y" type="lzx:number" default="${this.height/2 - this._title.height/2}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the y position of the button text. default: centered </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="text_x" type="lzx:number" default="${this.width/2 - this._title.width/2}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the x position of the button text. default: centered </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="text_padding_y" type="lzx:number" default="4" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the amount of space to add vertically  when sizing button to its
+        text. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="text_padding_x" type="lzx:number" default="11" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the amount of space to add horizontally when sizing button to its
+        text. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="slidertrack" type="lzx:slidertrack" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the inner track on which the sliderthumb rides </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="slidertrack" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baseslidertrack">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="listselector" type="lzx:listselector" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ a helper class that wraps the selectionmanager in some
+        higher level APIs, used by baselist </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="listselector" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:selectionmanager">
+      <xs:attribute name="multiselect" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If multiselect is true, multiple selection is enabled.
+        When the shift key is down, a range of items is selected.
+        When the control key is down, any item may be added to the
+        selection.
+             Default: false </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="piechart" type="lzx:piechart" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+          A pie chart represents a chart that is displayed in the 2D
+          polar plane. This class inherits immediately from chart class
+          and can be instantiated directly. (Warning: Of beta quality.)
+          @access public
+          </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="piechart" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="selectedpie" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Which pie is selected, if there are multiple pies. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ploty" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Plot area y coordinate, relative to chart as a whole. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="plotx" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Plot area x coordinate, relative to chart as a whole. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="plotwidth" type="lzx:number" default="${this.width - 1}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Width of plotting area. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="plotheight" type="lzx:number" default="${this.height - 1}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Height of plotting area. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="plotbgcolor" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Background color of the plot area. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="piespacing" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The space between the pies, if there are multiple pies. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="borderwidth" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Width of the plot area's border. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="border" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Border around the plot area, if anything. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bgresource" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If desired, a resource can be used in the background.
+            If specified, this view will appear behind the chart,
+            with everything drawn on top of it. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="menuarrow" type="lzx:menuarrow" >
+</xs:element>
+  <xs:complexType name="menuarrow" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="import" type="lzx:import" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The &lt;import&gt; tag is used to import, at run time, source code contained in another (library) file. See the Guide for a complete discussion. Also see the &lt;library&gt; tag. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="import" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="stage" type="xs:string" default="late|defer" >
+</xs:attribute>
+      <xs:attribute name="proxied" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="href" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  A reference to a target file whose content is treated as a loadable module </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="textlistitem" type="lzx:textlistitem" >
+</xs:element>
+  <xs:complexType name="textlistitem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:listitem">
+      <xs:attribute name="text_y" type="xs:string" default="${this.height/2 - this._title.height/2}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the y position of the text label. default: centered </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="text_x" type="xs:string" default="4" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The x position of the displayed text. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="rtmpstatus" type="lzx:rtmpstatus" >
+</xs:element>
+  <xs:complexType name="rtmpstatus" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="rtmpc" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ rtmpconnection to monitor </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="valueline" type="lzx:valueline" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+       Represents a line in the chart
+       @access public
+       </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="valueline" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:drawview">
+      <xs:attribute name="tipEnable" type="lzx:boolean" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ enable tooltip for data </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="tip" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the tooltip value will be display when the mouse over the line </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="label" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the label will be display next to the line </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="axis" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the axis value could be "x" or "y" </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="labelstyle" type="lzx:labelstyle" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ style object used for anything that contains a label within the chart.
+      @access public
+      </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="labelstyle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basestyle">
+      <xs:attribute name="linesize" type="lzx:number" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ size of border of label background  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="linecolor" type="lzx:color" default="${null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ color of bounding box border </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset" type="lzx:number" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the number of pixels the font is inset from the border </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fontcolor" type="lzx:color" default="0x000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ color of the font </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fontangle" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ angle of rotation of the font </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fillcolor" type="lzx:color" default="${null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ color of bounding box fill </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basevaluecomponent" type="lzx:basevaluecomponent" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ an abstract class for components that represent a value for data </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="basevaluecomponent" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecomponent">
+      <xs:attribute name="value" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the value that this item represents. When selected,
+        the parent selection group's value will be set to this value.
+        Most subclasses require you to call getValue() to get the
+        value of the attribute.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="type" type="xs:string" default="expression" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The type of value of the item. Default is 'expression',
+             which will attempt to heuristicate the type from the
+             value. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basetooltip" type="lzx:basetooltip" >
+</xs:element>
+  <xs:complexType name="basetooltip" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="text" type="xs:string" default="Default Value" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="form" type="lzx:form" >
+</xs:element>
+  <xs:complexType name="form" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baseform">
+      <xs:attribute name="spacing" type="xs:string" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Vertical space between content and button area. If forms height is
+              specified, the button area will be flush against the form's bottom
+              right corner (adjusted by any layout that the form has). </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_top" type="xs:string" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The top inset for content appearing within form. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_right" type="xs:string" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The right inset for content appearing within form. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_left" type="xs:string" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The left inset for content appearing within form. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_bottom" type="xs:string" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The bottom inset for content appearing within form. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basestyle" type="lzx:basestyle" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ base style for all chart styles
+      @access public
+  </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="basestyle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="valueregionstyle" type="lzx:valueregionstyle" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ valueregionstyle is used for drawing the appearance of a value region
+      @access public
+  </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="valueregionstyle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basestyle">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chartstyle" type="lzx:chartstyle" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ style for chart, contain nested level of style extend from basestyle
+      @access public
+  </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="chartstyle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basestyle">
+      <xs:attribute name="version" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="onversion" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="datastyleindex" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="radiobutton" type="lzx:radiobutton" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Implements a "radio" button, allows a one-of-many selection when
+          several of these are in a radiogroup. Radiobutton expects its parent
+          to be radiogroup. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="radiobutton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baselistitem">
+      <xs:attribute name="text_y" type="lzx:number" default="${this.rb.height/2 - this._title.height/2}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the y position of the text label. default: centered </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="alert" type="lzx:alert" >
+</xs:element>
+  <xs:complexType name="alert" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:modaldialog">
+      <xs:attribute name="text_y" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The y position of the button text. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="text_x" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The x position of the button text. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="result" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ After the alert is closed, this is set to true if button1 ("OK")
+              is pressed or false if button2 is pressed. You can check for the
+              result value using the onresult event. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onresult" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This event is sent when a button is pressed. Use this to check the
+              result value. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maxtextwidth" type="xs:string" default="${Math.round(parent.width/3) - inset_left - inset_right                     - content_inset_left - content_inset_right}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The max length of a line of text before it wraps. Default: 1/3 of
+              the parent's width - width of window dressing and margin. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="button2" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If a string is set for this attribute, a second button will be
+              shown to the left of the first with this text. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="button1" type="xs:string" default="OK" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Alert shows only this button, if button2 isn't set.
+              You may specify a different string to change the text of the
+              button. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basegridcolumn" type="lzx:basegridcolumn" >
+</xs:element>
+  <xs:complexType name="basegridcolumn" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecomponent">
+      <xs:attribute name="sortpath" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ An xpath expression to use to determine the sort key for this
+              column. By default, this is the column's datapath's xpath. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="minwidth" type="lzx:number" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The minimum width for this column. This is relevant if the column
+              can be resized. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="hasSort" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Set by &lt;code&gt;doSort()&lt;/code&gt; method. If true, then this is the current
+              sort column.
+              @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="descendComparator" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ An optional method. If defined, this method will be used when 
+              the column is sorted when ascendsort is set to false. This method
+              should have the comparator signature. It should accept to string
+              argument and return 1, 0 , or -1, indicating that the two
+              arguments are in order, equivalent, or out of order,
+              respectively. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="datatype" type="xs:string" default="string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Either "number" or "string". If "string", then dictionary sort
+              is used. If "number", then types are coerced to a number before
+              sorting. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="colwidth" type="xs:string" default="${this.width}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The current width of the column. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ascendsort" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, the next sort will be ascending, otherwise it will
+              be descending.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ascendComparator" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ An optional method. If defined, this method will be used when 
+              the column is sorted when ascendsort is set to true. This method
+              should have the comparator signature. It should accept to string
+              argument and return 1, 0 , or -1, indicating that the two
+              arguments are in order, equivalent, or out of order,
+              respectively. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="strokestyle" type="lzx:strokestyle" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private 
+Implementes the Stroke rendering lines </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="strokestyle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:drawview">
+      <xs:attribute name="strokeWidth" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ -    Numerical value that indicate the thickness of the Stroke line in pixels. Default value ="1"</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="strokeType" type="xs:string" default="solid" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ String value that indicates the type of the Stroke, possible values : "solid", "dashed" or "dotted". Default value "solid"</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="strokeColor" type="lzx:color" default="0x000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Color of the Stroke in  hexadecimal value, default value "0x000000"</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="spaceLength" type="lzx:number" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Number of pixels of spacing between each small line that compose the stylish line. Default value ="5"</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dottedLength" type="lzx:number" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Number of pixel of each small line that compose the stylish line. Default value ="10"</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="menu" type="lzx:menu" >
+</xs:element>
+  <xs:complexType name="menu" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecomponent">
+      <xs:attribute name="opened" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ a boolean indicating whether or not the menu is in opened </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="attach" type="xs:string" default="bottom" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ a string to indicate how the floating part of the menu attaches to 
+              the menubutton or menuitem. Possible values are: 'top', 'bottom', 'left', and 'right' </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chartbacking" type="lzx:chartbacking" >
+</xs:element>
+  <xs:complexType name="chartbacking" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basechartbacking">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="vslider" type="lzx:vslider" >
+</xs:element>
+  <xs:complexType name="vslider" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="switchaxis" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ switchaxis true means minimum-value is 
+                t op maximum is bottom false turns around </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showvalue" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ showvalue should the slider show the numbers of min/max </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showrange" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Showrange should the slidertrack be with color while 'sliding' </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="minvalue" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Minimum Value </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maxvalue" type="lzx:number" default="100" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Maximum Value </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="initvalue" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basedatacombobox" type="lzx:basedatacombobox" >
+</xs:element>
+  <xs:complexType name="basedatacombobox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baseformitem">
+      <xs:attribute name="valuedatapath" type="xs:string" default="@value" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Datapath to value for items in list. See caveat.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="textdatapath" type="xs:string" default="text()" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Datapath to text to display for items in list. 
+              See caveat.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="statictext" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If set, this will always be displayed instead of selected item
+              text. Behaves like a menu button. Also see defaulttext. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="shownitems" type="xs:string" default="4" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Sets the height to the number of items to show in combobox
+              popup list. Must be greater than 0. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="selectfirst" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ When true, the 1st item is selected oninit. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="selected" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Datapointer to selected item. 
+              @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onselected" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Event sent when an item is selected. Sends selected item. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onselect" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Event sent when an item is selected. Sends selected item. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onisopen" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Called when combobox opens or closes </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="oncombofocus" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The equivalent for onfocus for combobox. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="oncomboblur" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The equivalent for onblur for combobox. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="menuclassname" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="listwidth" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Width of popup list, defaults to width of combobox view. During
+              setup, the width of the floating list view might not yet be set,
+              so this returns the expected width. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="listattach" type="xs:string" default="bottom" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Where the floatinglist should attach to its owner. Possible
+              values: bottom, top, left, right.  In the event of a canvas
+              out-of-bounds, the floating list will attach in a visible
+              location. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="itemdatapath" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Datapath to items in list. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="itemclassname" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The name of the class for items in the floating list. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="isopen" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates whether or not the popup list is showing.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ismenu" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, the combobox will behave like a menu. "value" is
+              ignored, and items will not remain selected. Selecting an
+              item generates an onselect event </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="defaulttext" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Default text to display before a selection is made. No default
+              item is selected if defaulttext is set. Defaulttext is replaced
+              with selected item's text. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="columnchart" type="lzx:columnchart" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+       A chart class that renders vertical bars.
+       Inherits from the chart class.  (Warning: Of beta quality.)
+       @access public
+      </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="columnchart" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:rectangularchart">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="row" type="lzx:row" >
+</xs:element>
+  <xs:complexType name="row" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="label" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="include" type="lzx:include" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The &lt;include&gt; tag is used to include source code contained in another file. See the Guide for a complete discussion. Also see the &lt;library&gt; tag. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="include" mixed="true">
+  <xs:group ref="lzx:topLevelElements" />
+      <xs:attribute name="type" type="xs:string" default="text|xml" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  If this attribute has the value text , the content of the target file is included as text. Otherwise, it is read as XML.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="href" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  A reference to a target file whose content is included in the application that contains this include element. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:complexType>
+<xs:element name="menutrackgroup" type="lzx:menutrackgroup" >
+</xs:element>
+  <xs:complexType name="menutrackgroup" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basetrackgroup">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="roundrect" type="lzx:roundrect" >
+</xs:element>
+  <xs:complexType name="roundrect" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:drawview">
+      <xs:attribute name="oninsettop" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="oninsetright" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="oninsetleft" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="oninsetbottom" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="oninset" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="insettop" type="lzx:size" default="${null}" >
+</xs:attribute>
+      <xs:attribute name="insetright" type="lzx:size" default="${null}" >
+</xs:attribute>
+      <xs:attribute name="insetleft" type="lzx:size" default="${null}" >
+</xs:attribute>
+      <xs:attribute name="insetbottom" type="lzx:size" default="${null}" >
+</xs:attribute>
+      <xs:attribute name="inset" type="lzx:size" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The margin between the outside view and the content view </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="boxShadowY" type="xs:string" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The x offset of the box shadow.  The box shadow is not drawn by default.
+            Specify a boxShadowColor in order to draw it. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="boxShadowX" type="xs:string" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The x offset of the box shadow.  The box shadow is not drawn by default.
+            Specify a boxShadowColor in order to draw it. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="boxShadowOpacity" type="xs:string" default="0.5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The box shadow opacity. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="boxShadowColor" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The box shadow color.  If this is specified, a box shadow is drawn.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="borderWidth" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The width of the border.  If this is zero, no frame is drawn. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="borderRadius" type="xs:string" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The rounding radius of the border corners.  Because the default
+            join type is a round join, even a radius of zero will product some
+            rounding. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="borderOpacity" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The border opacity </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="borderColor" type="lzx:color" default="black" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The border color </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="backgroundStopOpacity" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The background stop opacity.  This defaults to one (opaque) unless the
+            stop color is not specified and the start color is, in which case it
+            defaults to zero (fully transparent). </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="backgroundStopColor" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The background stop color.  This is the color that is drawn at the
+            bottom or right of the view, depending on the value of
+            backgroundGradientOrientation.  See the documentation for
+            backgroundStartColor for additional documentation. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="backgroundStartOpacity" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The background start opacity.  This defaults to one (opaque) unless the
+            start color is not specified and the stop color is, in which case it
+            defaults to zero (fully transparent). </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="backgroundStartColor" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The background start color.  This is the color that is drawn at
+            the top or left of the view, depending on the value of
+            backgroundGradientOrientation.  If this and the backround stop color
+            are specified, a gradient background is drawn in the direction specified
+            by backgroundGradientOrientation.  If only one of the background start
+            and stop color are specified, a gradient of the same color that fades to
+            transparent at the unspecified end is drawn.  If a box shadow is drawn,
+            the background defaults to white.  Specify a start and stop opacity to
+            suppress this behavior. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="backgroundGradientOrientation" type="xs:string" default="vertical" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The background gradient orientation.  One of 'vertical' (the default)
+            and 'horizontal'. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="versioninfo" type="lzx:versioninfo" >
+</xs:element>
+  <xs:complexType name="versioninfo" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:text">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="_newinternalinputtext" type="lzx:_newinternalinputtext" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A private inputtext class used by baseedittext that basically passes
+          its events (onfocus, onblur, onkeyup, onkeydown, ontext) up. Instances
+          of _internalinputtext should only exist in a baseedittext class. Note
+          that _internalinputtext assumes that its parent is a baseedittext.
+
+          Baseedittext controls _internalinputtexts y position and multiline
+          setting. Subclasses and instances should not override these
+          attributes.
+
+          @keywords private </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="_newinternalinputtext" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:inputtext">
+      <xs:attribute name="ignorecallup" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ True means that doSetValue called internal inputtext and inputtext
+              should not call doSetValue back. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="pointstyle" type="lzx:pointstyle" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ style for point and datamarker
+      @access public
+      </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="pointstyle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basestyle">
+      <xs:attribute name="strokeStyle" type="lzx:color" default="0x000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Color of the stroke </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="shape" type="xs:string" default="square" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 'circle','square','triangle', [name of resource] </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="lineWidth" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Width of the stroke line </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="image" type="xs:string" default="${null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ image path </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="gradient" type="xs:string" default="none" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 'none', 'linear', 'radial' </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="color" type="lzx:color" default="black" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ RGB color </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="checkdragstate" type="lzx:checkdragstate" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  This should be declared as a child of the thing for which you want to
+        enable dragging.  You will need to define a view (an instance of a
+        subclass of &lt;xref linkend="lz.basedragimage"/&gt;)
+        to define the visual look of the thing while its being dragged.
+        &lt;example executable="false"&gt;
+        &amp;lt;class name="dragger" &amp;gt;
+            ...
+            &amp;lt;handler name="onmousedown"&amp;gt;
+                checkdrag.setAttribute('applied', true);
+            &amp;lt;/handler&gt;
+            &amp;lt;handler name="onmouseup"&amp;gt;
+                canvas.dragimage.stopdrag(this);
+                checkdrag.setAttribute('applied', false);
+            &amp;lt;/handler&amp;gt;
+
+            &amp;lt;checkdragstate name="checkdrag" draggername="dragimage"/&amp;gt;
+        &amp;lt;/class&amp;gt;
+        &lt;/example&gt;
+
+        The object that you want to accept a drop action, needs to register with
+        lz.Track using the same group as is declared in the dragimage.
+
+        &lt;example executable="false"&gt;
+        &amp;lt;class name="droptarget"&amp;gt;
+            ...
+            &amp;lt;method name="init"&amp;gt;
+                super.init();
+                lz.Track.register(this, 'target');
+            &amp;lt;/method&amp;gt;
+
+            &amp;lt;handler name="onmousetrackover"&amp;gt;
+               setAttribute('bgcolor', 0xffff00); // hilite
+            &amp;lt;/handler&amp;gt;
+            &amp;lt;handler name="onmousetrackout"&amp;gt;
+               setAttribute('bgcolor', null); // normal
+            &amp;lt;/handler&amp;gt;
+            &amp;lt;handler name="onmousetrackup"&amp;gt;
+               setAttribute('bgcolor', null); // normal
+               canvas.dragimage.dropcomplete(this);
+               Debug.write('dropped: '+dragimage.source.text);
+            &amp;lt;/handler&amp;gt;
+        &amp;lt;/class&gt;
+        &lt;/example&gt;
+        
+        @access public
+  </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="checkdragstate" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:state">
+      <xs:attribute name="draggername" type="xs:string" default="dragimage" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ an instance subclass of basedragimage that defines the
+         visual representation of the item while it is being dragged
+         </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="ticklabel" type="lzx:ticklabel" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Labels along the tick axes. Either incremental, or, in a barchart,
+        determined by specified data. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="ticklabel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="ltextsize" type="lzx:number" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The size of the text for this label. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ltext" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The text of this label. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ltcolor" type="lzx:color" default="#000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The color of this label's text. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labelangle" type="lzx:number" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ XX To be implemented: The rotation of this particular label. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="radioitem" type="lzx:radioitem" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  A selectable list item which works like a Radio Button
+            though uses an icon instead of radio button graphics.
+    </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="radioitem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baselistitem">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basegridrow" type="lzx:basegridrow" >
+</xs:element>
+  <xs:complexType name="basegridrow" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecomponent">
+      <xs:attribute name="styleRegularColor" type="lzx:color" default="black" >
+</xs:attribute>
+      <xs:attribute name="selectedColor" type="lzx:color" default="black" >
+</xs:attribute>
+      <xs:attribute name="selected" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="selectable" type="lzx:boolean" >
+</xs:attribute>
+      <xs:attribute name="regularColor" type="lzx:color" default="black" >
+</xs:attribute>
+      <xs:attribute name="ownerGrid" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="onselected" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="lineColor" type="lzx:color" default="black" >
+</xs:attribute>
+      <xs:attribute name="highlighted" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="highlightColor" type="lzx:color" default="black" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basedatepickerday" type="lzx:basedatepickerday" >
+</xs:element>
+  <xs:complexType name="basedatepickerday" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="selected" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates if this day is currently selected 
+              @keywords public
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="selectable" type="lzx:boolean" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates if this day is selectable.  The day is selectable if 
+              it is within the range of possible selected dates 
+              @keywords public 
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="disabled" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates if this day should be enabled or disabled.  The day 
+              would be disbled if it should not show its daynum.
+              @keywords public 
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="daynum" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The day of the month to be displayed 
+              @keywords public </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="viewspoolmanager" type="lzx:viewspoolmanager" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private 
+    Manage a hash table of viewspool 
+    </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="viewspoolmanager" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="pools" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private 
+    Manage a hash table of viewspool 
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="datapath" type="lzx:datapath" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+A cursor in a dataset.
+A datapointer is an object that represents a pointer to a node in a lz.dataset. The datapointer can be repositioned using either cursor movements calls such as LzDatapointer.selectNext(), or by running an XPath request via LzDatapointer.setXPath().
+
+Datapointers support a subset of the XPath specification, which uses a notation similar to the UNIX file-system to refer to nodes within a dataset. Once a datapointer is bound to a node in a dataset it will keep pointing to that node until it is moved. If the dataset is edited, the behavior of the datapointer will be controlled by its rerunxpath attribute. If this attribute is true, it will continue pointing to its current node as long as it is valid. 
+ </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="datapath" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:datapointer">
+      <xs:attribute name="spacing" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The spacing (in pixels) between replicated views.
+[Note] 	Note
+This attribute is only available if replication is set to either "lazy" or "resize".  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="sortpath" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+An XPath to use to obtain the sort key for sorting if replication occurs. To change this attribute, use .setAttribute('sortpath', ...),  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="sortorder" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The order to use to sort the dataset if replication occurs. One of "ascending" or "descending" to use built in dictionary sort, or a function which compares two strings and returns 1 if the strings are in order, 0 if they are the same, and -1 if they are out of order. To change this attribute, use setAttribute('sortorder', ...).  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="replication" type="xs:string" default="normal" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Determines whether to use normal or lazy replication, if the datapath matches more than one node. See the section on Replication in the Guide for information about the use of this attribute.
+[Note] 	Note
+The choice of replication style implies a choice of replication manager. Each replication manager may have additional attributes which are specified as attributes of the datapath. For example, lz.LazyReplicationManager takes axis and spacing attributes. See the documentaion for the corresponding replication manager for detailed information on these additional attributes.
+
+One of: 	'normal' | 'lazy' | 'resize'  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="pooling" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+		This attribute applies to datapaths which match multiple nodes and force replication. If pooling is true, views that are data-bound to this datapath are recycled if the dataset changes. Otherwise, views are deleted when the data nodes they are bound to disappear, and created when new data nodes match the datapath. See the section on Pooling in the Guide for information about the use of this attribute. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="axis" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The direction in which the replicated elements will be layed out.
+		Note
+This attribute is only available if replication is set to either "lazy" or "resize".  
+	One of: "x" | "y"  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="icontab" type="lzx:icontab" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A tab item for use in sidebar.lzx - switches between listpanel views </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="icontab" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baselistitem">
+      <xs:attribute name="label_y" type="xs:string" default="-1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the y offset for the label </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_x" type="xs:string" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the icon and text are contained in one view, and inset_x sets the x for its position </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="iconname" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ optional icon for tab </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="icon_y" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the y postion of the icon </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="linestyle" type="lzx:linestyle" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ style for point or border
+      @access public
+      </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="linestyle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basestyle">
+      <xs:attribute name="type" type="xs:string" default="solid" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 'solid', 'dotted' </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="size" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ pixel size for the stroke of the line </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="color" type="lzx:color" default="0x000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ RGB color on the axis line </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="sliderthumb" type="lzx:sliderthumb" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the visual thumb the user drags to select a value </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="sliderthumb" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basesliderthumb">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="datepicker" type="lzx:datepicker" >
+</xs:element>
+  <xs:complexType name="datepicker" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basedatepicker">
+      <xs:attribute name="startAsIcon" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Set to true to initially show the datepicker as an
+              icon, otherwise set to false.
+              @keywords public </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="oldvalue" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="allowdrag" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keywords public </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="linechartplotarea" type="lzx:linechartplotarea" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keywords private
+     plotarea of linechart </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="linechartplotarea" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:virtualdrawview">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="TestSuite" type="lzx:TestSuite" >
+</xs:element>
+  <xs:complexType name="TestSuite" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:Test">
+      <xs:attribute name="onteststart" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="ontestfinish" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="ontestfail" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onsuitestart" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onsuitefinish" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="controlPanel" type="xs:string" default="${canvas.lzunitControlPanel}" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="_datepicker_dirButton" type="lzx:_datepicker_dirButton" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @access private </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="_datepicker_dirButton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basebutton">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="colorslider" type="lzx:colorslider" >
+</xs:element>
+  <xs:complexType name="colorslider" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="inputtext" type="lzx:inputtext" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+The basic input-text element.
+JavaScript: lz.inputtext
+
+This tag creates an area of the canvas that the user can use to edit text. It is equivalent to the HTML &lt;input type="text"&gt;, &lt;input type="password"&gt;, and textarea tags.
+
+See the documentation for the &lt;text&gt; tag for a description of the width and height attributes, and of scrolling. 
+ </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="inputtext" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:text">
+      <xs:attribute name="password" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	If true, the inputtext contents will be obscured </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onenabled" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Sent whenever the text field is enabled. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="enabled" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	If true, the inputtext will be editable </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="lazyreplicator" type="lzx:lazyreplicator" >
+</xs:element>
+  <xs:complexType name="lazyreplicator" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:replicator">
+      <xs:attribute name="clonesoffset" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="clonedel" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videoscreen" type="lzx:videoscreen" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ used by videoplayer component
+          @access private </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="videoscreen" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="volume" type="xs:string" default="1.0" >
+</xs:attribute>
+      <xs:attribute name="videoWidth" type="xs:string" default="${             Math.min(this.innerWidth,                      this.innerHeight * this.aspectRatio)}" >
+</xs:attribute>
+      <xs:attribute name="videoHeight" type="xs:string" default="${             Math.min(this.innerHeight,                      this.innerWidth / this.aspectRatio)}" >
+</xs:attribute>
+      <xs:attribute name="url" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="type" type="xs:string" default="http" >
+</xs:attribute>
+      <xs:attribute name="starttime" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="innerWidth" type="xs:string" default="${             this.width - (this.borderLeft + this.borderRight)}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the actual width of the videoview 
+            @access private
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="innerHeight" type="xs:string" default="${             this.height - (this.borderTop + this.borderBottom)}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the actual height of the videoview 
+            @access private
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="debug" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ true for verbose debug logging </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="capturing" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="borderTop" type="xs:string" default="5" >
+</xs:attribute>
+      <xs:attribute name="borderRight" type="xs:string" default="5" >
+</xs:attribute>
+      <xs:attribute name="borderLeft" type="xs:string" default="5" >
+</xs:attribute>
+      <xs:attribute name="borderBottom" type="xs:string" default="5" >
+</xs:attribute>
+      <xs:attribute name="autoplay" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="aspectRatio" type="xs:string" default="$once{             4 / 3}" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="lzradiobutton" type="lzx:lzradiobutton" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Subclass of radiobutton with customizable look.  apps should either
+        include lzradio_resources.lzx (to get default look) or define
+        a "lzradio_rsrc" resource with the same format. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="lzradiobutton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baseradiobutton">
+      <xs:attribute name="text_y" type="lzx:number" default="$once{this._rb.height/2 - this._title.height/2}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The y position of the text label. Default: centered. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="text_x" type="lzx:number" default="$once{this._rb.width + 2}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The x position of the text label. Default: 2 pixels past
+              radiobutton resource. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="XMLHttpRequest" type="lzx:XMLHttpRequest" >
+</xs:element>
+  <xs:complexType name="XMLHttpRequest" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="timeout" type="xs:string" default="60000" >
+</xs:attribute>
+      <xs:attribute name="statusText" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ String message accompanying the status code </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="status" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Numeric code returned by server, such as 404 for "Not Found" or 200 for "OK" </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="responseXML" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ DOM-compatible document object of data returned from server process </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="responseText" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ String version of data returned from server process </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="readyState" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  Object status integer: 0 Uninitialised The initial value. 1 Open The open() method has been successfully called. 
+              2 Sent The send() method has been successfully called, but no data has yet been received. 3 Receiving Data is being received, 
+              but the data transfer is not yet complete. 4 Loaded The data transfer has been completed. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="proxied" type="xs:string" default="$once{canvas.proxied}" >
+</xs:attribute>
+      <xs:attribute name="parsexml" type="xs:string" default="true" >
+</xs:attribute>
+      <xs:attribute name="onreadystatechange" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="headers" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="valuelinestyle" type="lzx:valuelinestyle" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ valuelinestyle is used to set style to the 
+     NOTE: valuelinestyle extends basestyle
+     @access public
+     </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="valuelinestyle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basestyle">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="fileupload" type="lzx:fileupload" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+    @topic Incubator
+    @subtopic Components
+</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="fileupload" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="uploadenable" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Enable upload. True to enable uploading, false to disable uploading. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="msg" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ message of feedback to user </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maxsize" type="xs:string" default="10000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Max file size in bytes </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fileref" type="xs:string" default="$once{new flash.net.FileReference()}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ file reference, for internal use 
+            @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="command" type="lzx:command" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+   
+    @copyright Copyright 2001-2010 Laszlo Systems, Inc.  All Rights Reserved.
+               Use is subject to license terms.
+   
+    @affects lzcommand
+    @access public
+    @topic LFC
+    @subtopic Views
+    @devnote A command is an object that sends an event in response to keyboard input.
+  </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="command" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="onselect" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+    If the command is active, this event is sent
+    when the keys array are pressed simultaneously.
+    @lzxtype event
+  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="keys" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ array of keys (strings) that, when pressed together,
+    cause the onselect event of the command to be sent. For example:
+    setAttribute('key', ['a', 'shift'])
+    @type [String]
+  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="key" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+  WTF?  See LPP-4982, LPP-7814
+  Necessary to add "key" to the schema
+  @access private
+</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="active" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+    true if the command is currently active.
+    The default is &lt;i&gt;true&lt;/i&gt;.
+    @type Boolean
+  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="DisplayKeys" type="xs:string" default="{control:'Ctrl', shift:'Shift', alt:'Alt'}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+ * Mapping from key names to display strings used by keysToString
+ * @type Dictionary
+ * @keywords read-only
+ </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="colormenu" type="lzx:colormenu" >
+</xs:element>
+  <xs:complexType name="colormenu" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basetrackgroup">
+      <xs:attribute name="owner" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="datastyle" type="lzx:datastyle" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ dataseriesstyle is used for drawing the appearance of a dataseries
+      @access public
+  </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="datastyle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basestyle">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="hotspot" type="lzx:hotspot" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+This class is a contract interface for hotspots that can be used
+by the imagemap class. A generic hotspot does three things:
+1. Tells us if it contains a point
+2. Performs some action on entry
+3. Performs some action on leaving
+</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="hotspot" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="circlehotspot" type="lzx:circlehotspot" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+A general hotspot for points inside a circle.
+</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="circlehotspot" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:hotspot">
+      <xs:attribute name="y" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The Y coordinate of the center </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="x" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The X coordinate of the center </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="radius" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The radius of the circle </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basedatepickerweek" type="lzx:basedatepickerweek" >
+</xs:element>
+  <xs:complexType name="basedatepickerweek" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="dayclass" type="xs:string" default="$once{classroot.dayclass}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Name of the day class instance to use.  
+              @keywords public </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videolibrarypopup" type="lzx:videolibrarypopup" >
+</xs:element>
+  <xs:complexType name="videolibrarypopup" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="yourY" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="yourX" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="yourWidth" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="yourHeight" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="url" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="type" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="title" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="popupWidth" type="xs:string" default="300" >
+</xs:attribute>
+      <xs:attribute name="popupHeight" type="xs:string" default="${this.f.height + 2}" >
+</xs:attribute>
+      <xs:attribute name="pinYourYPos" type="xs:string" default="0.0" >
+</xs:attribute>
+      <xs:attribute name="pinYourXPos" type="xs:string" default="0.5" >
+</xs:attribute>
+      <xs:attribute name="pinY" type="xs:string" default="${             this.yourY +             (this.pinYourYPos * this.yourHeight) -             (this.pinMyYPos * this.height)}" >
+</xs:attribute>
+      <xs:attribute name="pinX" type="xs:string" default="${             this.yourX +             (this.pinYourXPos * this.yourWidth) -             (this.pinMyXPos * this.width)}" >
+</xs:attribute>
+      <xs:attribute name="pinMyYPos" type="xs:string" default="1.0" >
+</xs:attribute>
+      <xs:attribute name="pinMyXPos" type="xs:string" default="0.5" >
+</xs:attribute>
+      <xs:attribute name="description" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="atts" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="tabpane" type="lzx:tabpane" >
+</xs:element>
+  <xs:complexType name="tabpane" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basetabpane">
+      <xs:attribute name="tabwidth" type="lzx:number" default="-1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Width of the tab associated with this tabpane. If not set, the tab
+              will resize itself to fit. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basetabpanecontent" type="lzx:basetabpanecontent" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This is the content of a basetabpane.
+          @keywords private </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="basetabpanecontent" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="borderinput" type="lzx:borderinput" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+      @topic Incubator
+      @subtopic Components
+  </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="borderinput" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="text" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="labelwidth" type="lzx:number" default="80" >
+</xs:attribute>
+      <xs:attribute name="labelstyle" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ should be an object of type "textstyle" </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="label" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="changed" type="xs:string" default="${this.txt.changed}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+      @topic Incubator
+      @subtopic Components
+  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="stepper" type="lzx:stepper" >
+</xs:element>
+  <xs:complexType name="stepper" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baseformitem">
+      <xs:attribute name="step" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="numberAlign" type="xs:string" default="left" >
+</xs:attribute>
+      <xs:attribute name="minimum" type="lzx:number" >
+</xs:attribute>
+      <xs:attribute name="maximum" type="lzx:number" >
+</xs:attribute>
+      <xs:attribute name="initialNumber" type="lzx:number" default="1" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="rectangularchart" type="lzx:rectangularchart" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+       class that provides all common features for the rectangular charts like line, bar and column
+       @access public
+       </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="rectangularchart" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:chart">
+      <xs:attribute name="verticalGridLines" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Determines if the vertical grid lines are going to be used </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onRenderStop" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onRenderStart" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="miny" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The minimum virtual value to be rendered in the 'y' axis </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="minx" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The minimum virtual value to be rendered in the 'x' axis </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maxy" type="lzx:number" default="100" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The maximum virtual value to be rendered in the 'y' axis </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maxx" type="lzx:number" default="100" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The maximum virtual value to be rendered in the 'x' axis </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="horizontalGridLines" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="horizontalGridBands" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Determines if the horizontal grid lines are going to be used </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="gridlinecolor" type="lzx:color" default="0x000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="defaultminy" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="defaultminx" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="defaultmaxy" type="lzx:number" default="100" >
+</xs:attribute>
+      <xs:attribute name="defaultmaxx" type="lzx:number" default="100" >
+</xs:attribute>
+      <xs:attribute name="dataSeriesLeaf" type="xs:string" default="${null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="modaldialog" type="lzx:modaldialog" >
+</xs:element>
+  <xs:complexType name="modaldialog" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:windowpanel">
+      <xs:attribute name="content_inset_top" type="xs:string" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The top inset for the dialog contents from the edge of the window
+              inner frame. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="content_inset_right" type="xs:string" default="14" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The right inset for the dialog contents from the edge of the
+              window inner frame </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="content_inset_left" type="xs:string" default="14" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The left inset for the dialog contents from the edge of the
+              window inner frame. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="content_inset_bottom" type="xs:string" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The bottom inset for the dialog contents from the edge of the
+              window inner frame. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="menufloatinglist" type="lzx:menufloatinglist" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @access private </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="menufloatinglist" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:floatinglist">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="ZoomView" type="lzx:ZoomView" >
+</xs:element>
+  <xs:complexType name="ZoomView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="text" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="opened" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="closed" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basecheckbox" type="lzx:basecheckbox" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A checkbox component representing a boolean. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="basecheckbox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baseformitem">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="gridcolumn" type="lzx:gridcolumn" >
+</xs:element>
+  <xs:complexType name="gridcolumn" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basegridcolumn">
+      <xs:attribute name="sortable" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, the column header is clickable and will initiate a 
+              sort </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showheader" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If set to false, then no header will be shown for this column.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="resizemargin" type="lzx:number" default="3" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The width of the resizer between columns.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="resizable" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If set to false, the column cannot be resized. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="item" type="lzx:item" >
+</xs:element>
+  <xs:complexType name="item" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="showcomponenthelpers" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="root" type="xs:string" default="this" >
+</xs:attribute>
+      <xs:attribute name="reference" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="opendefaultplacement" type="xs:string" default="true" >
+</xs:attribute>
+      <xs:attribute name="open" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="isview" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="method" type="lzx:method" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Attaches a function or event handler to an object or class. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="method" mixed="true">
+  <xs:group ref="lzx:topLevelElements" />
+      <xs:attribute name="name" type="xs:string" use="required" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  The name of a variable that will be set to this object when the application is started. If this element is directly within a canvas or library element, the global variable and the canvas property with this name will be set to this object. If this element is within another object, that object's property with this name will be set to this object. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="args" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The parameter names of this method. The value of this attribute is a comma-separated list of JavaScript identifiers. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="allocation" type="xs:string" default="instance|class" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ One of:
+class
+    The attribute will be an attribute of the class; to refer to it, you say lz.classname.attributename . 
+instance
+    Each instance will have an attribute with the specified properties ( name , type , value , etc.). 
+
+You can set allocation to class to get static attributes. Static properties are attached to the class itself, for example lz.classname . </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:complexType>
+<xs:element name="baseopttreenode" type="lzx:baseopttreenode" >
+</xs:element>
+  <xs:complexType name="baseopttreenode" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="startdragdelay" type="xs:string" default="800" >
+</xs:attribute>
+      <xs:attribute name="startdragdel" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="open" type="xs:string" default="${ dopen }" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A boolean value representing whether or not this node
+              is open. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="indent" type="xs:string" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The amount, in pixels, to indent each element of the tree.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="highlight" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, this element is selected </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dragging" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="depth" type="xs:string" default="${ ddepth }" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A 0-based depth number that indicates the depth of this
+              element in the tree. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="datalistselector" type="lzx:datalistselector" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ a helper class that wraps the dataselectionmanager in some
+        higher level APIs, used by baselist </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="datalistselector" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:dataselectionmanager">
+      <xs:attribute name="multiselect" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If multiselect is true, multiple selection is enabled.
+        When the shift key is down, a range of items is selected.
+        When the control key is down, any item may be added to the
+        selection.
+             Default: false </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="gradientview" type="lzx:gradientview" >
+</xs:element>
+  <xs:complexType name="gradientview" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:drawview">
+      <xs:attribute name="stretchWidth" type="lzx:number" >
+</xs:attribute>
+      <xs:attribute name="stretchHeight" type="lzx:number" >
+</xs:attribute>
+      <xs:attribute name="gradientType" type="xs:string" default="linear" >
+</xs:attribute>
+      <xs:attribute name="gradientOrientation" type="xs:string" default="vertical" >
+</xs:attribute>
+      <xs:attribute name="colorTo" type="lzx:color" >
+</xs:attribute>
+      <xs:attribute name="colorFrom" type="lzx:color" >
+</xs:attribute>
+      <xs:attribute name="borderSizeTop" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="borderSizeRight" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="borderSizeLeft" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="borderSizeBottom" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="borderSize" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="borderColorTop" type="lzx:color" >
+</xs:attribute>
+      <xs:attribute name="borderColorRight" type="lzx:color" >
+</xs:attribute>
+      <xs:attribute name="borderColorLeft" type="lzx:color" >
+</xs:attribute>
+      <xs:attribute name="borderColorBottom" type="lzx:color" >
+</xs:attribute>
+      <xs:attribute name="borderColor" type="lzx:color" default="0x000000" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="dragger" type="lzx:dragger" >
+</xs:element>
+  <xs:complexType name="dragger" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="text" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="tabs" type="lzx:tabs" >
+</xs:element>
+  <xs:complexType name="tabs" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basetabs">
+      <xs:attribute name="tabspacing" type="lzx:number" default="-15" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Spacing between the tabs. Defaults to -15 so tabs overlap. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="tabalign" type="xs:string" default="left" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Align the set of tabs within the dimensions of the "tabs"
+             container ("left", "center", "right"). </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="simpledefaultlist" type="lzx:simpledefaultlist" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A list class that handles a default value. 
+          Input and output for the list is defined to be in this format:
+          &lt;code&gt;
+          &lt;list name="fubar"&gt;
+            &lt;item text="foo" value="bar" default="true"/&gt;
+            &lt;item text="goo" value="mar"/&gt;
+          &lt;/list&gt;
+          &lt;/code&gt;
+         
+          Currently only works with dataoption="lazy" or "pooling"
+    </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="simpledefaultlist" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:list">
+      <xs:attribute name="defaultitem" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ LzDataElement of the default node 
+              null means the list has no default </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="autoselectdefault" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Set to true if the default item should be selected whenever
+            data is received </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="vscrollbar" type="lzx:vscrollbar" >
+</xs:element>
+  <xs:complexType name="vscrollbar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basescrollbar">
+      <xs:attribute name="disabledbgcolor" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If this is defined, it will be used as the scrollbar's background
+          color when it is disabled. If not provided, the scrollbar will use
+          the bgcolor of its closest parent that has a bgcolor defined.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="polygonhotspot" type="lzx:polygonhotspot" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+A general hotspot for an N-sided polygon.
+This will create a polygon whose sides are described
+by moving in order to the points added by calling addPoint,
+returning back to the first point added to close the polygon.
+</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="polygonhotspot" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:hotspot">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="debugger_shadow_right" type="lzx:debugger_shadow_right" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 
+    Drop shadow for the right side of the debugger window 
+
+    @keywords private
+</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="debugger_shadow_right" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="colorspot" type="lzx:colorspot" >
+</xs:element>
+  <xs:complexType name="colorspot" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:colormenuitem">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="datepickerweek" type="lzx:datepickerweek" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This is the implementation of the datepickerweek for 
+          the datepicker </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="datepickerweek" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basedatepickerweek">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseradiobutton" type="lzx:baseradiobutton" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Class baseradiobutton: represents a single radio button. If groupname
+           is defined, it will reference an baseradiogroup that's named
+           groupname. If both groupname and group are not defined, this
+           radiobutton will attempt to use a baseradiogroup ancestor in its view
+           hierarchy. If it can't find one, it will use a default baseradiogroup
+           with groupname 'lzdefaultgroup'. If this radiobutton is inside a
+           form, an implicit baseradiogroup is created as a child the form.
+
+           The first radiobutton is special for implicitly created
+           baseradiogroups. A baseradiogroup will inherit the groupdatapath,
+           used as the baseradiogroup's datapath, and submit attributes from the
+           first radiobutton, which are used during its instantiation. Those
+           same attributes are ignored for subsequent radiobuttons belonging in
+           the same group. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="baseradiobutton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecomponent">
+      <xs:attribute name="value" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Value of this radiobutton. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="submitname" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The submit name for a baseradiogroup. This must be set by the first
+              radiobutton in a baseradiogroup to take effect. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="submit" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether a baseradiogroup will send its data when a form is
+              submitted. This must be set by the first radiobutton in a
+              baseradiogroup to take effect. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="selected" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ True if radio's group value is the same as group's. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onselected" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Event sent when selected attribute selected or unselected. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="groupname" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Name of baseradiogroup. If not defined, it will use group reference as
+              its group. If both groupname and group are not defined, this
+              radiobutton will attempt to use a baseradiogroup ancestor in its view
+              hierarchy. If it can't find one, it will use a default baseradiogroup
+              with groupname 'lzdefaultgroup'. If this radiobutton is inside a
+              form, an implicit baseradiogroup is created as a child of the
+              form. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="groupdatapath" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The value datapath for a baseradiogroup. This must be set by the first
+              radiobutton in a baseradiogroup to take effect. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="group" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Reference to baseradiogroup. If groupname is defined, it will
+              reference an baseradiogroup that's named groupname. If both groupname
+              and group are not defined, this radiobutton will attempt to use a
+              baseradiogroup ancestor in its view hierarchy. If it can't find one,
+              it will use a default baseradiogroup with groupname
+              'lzdefaultgroup'. If this radiobutton is inside a form, an
+              implicit baseradiogroup is created as a child of the form. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="_floatshadow" type="lzx:_floatshadow" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The shadows width and height are set to the width and height of the view
+          it is trying to apply a shadow to.
+          @keywords private </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="_floatshadow" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="shadowsize" type="xs:string" default="5" >
+</xs:attribute>
+      <xs:attribute name="oncornerresourcenumber" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onbottomvisible" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="offsety" type="xs:string" default="10" >
+</xs:attribute>
+      <xs:attribute name="cornerresourcenumber" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="bottomvisible" type="xs:string" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="edittext" type="lzx:edittext" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This component provides the look and feel for user editable text, data
+          binding, and focus events. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="edittext" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baseformitem">
+      <xs:attribute name="text_y" type="lzx:number" default="${multiline ? 2 : Math.round(((this.height - this.field.getTextHeight())/2))} " >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the y position of the text. default: centered, unless it is mutltiline </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="resizable" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Set to true if you plan to change the width or height of the
+              component at run-time.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="pattern" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A regular expression describing set of characters allowed in
+              this field. Restrict the characters that can be entered to a
+              pattern specified by a regular expression. Currently only the
+              expression [ ]* enclosing a set of characters or character
+              ranges, preceded by an optional "^", is supported. 
+              examples: [0-9]* , [a-zA-Z0-9]*, [^0-9]* </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="password" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Set to true for a password field. Text will appear as ****.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="multiline" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Set to true for multiple lines.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maxlength" type="lzx:number" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The maximum number of chars that can be entered. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="debugger_shadow_bottom" type="lzx:debugger_shadow_bottom" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 
+    Drop shadow for the bottom of the debugger window
+
+    @keywords private
+</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="debugger_shadow_bottom" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="img" type="lzx:img" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ HTML specific </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="img" mixed="true">
+  <xs:group ref="lzx:topLevelElements" />
+      <xs:attribute name="width" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="vspace" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="src" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="hspace" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="height" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="align" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ HTML specific </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:complexType>
+<xs:element name="basebuttonrepeater" type="lzx:basebuttonrepeater" >
+</xs:element>
+  <xs:complexType name="basebuttonrepeater" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basebutton">
+      <xs:attribute name="onmousestilldown" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keywords public </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="simpleboundslayout" type="lzx:simpleboundslayout" >
+</xs:element>
+  <xs:complexType name="simpleboundslayout" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:layout">
+      <xs:attribute name="spacing" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A pixel amount to use between each view in the layout. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="axis" type="xs:string" default="y" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The axis in which this layout operates, 'x' or 'y'. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="newcheckbox" type="lzx:newcheckbox" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The basecheckbox implementation representing a boolean, i.e., checked
+          if true, else false. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="newcheckbox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecheckbox">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="menubar" type="lzx:menubar" >
+</xs:element>
+  <xs:complexType name="menubar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecomponent">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="imagemap" type="lzx:imagemap" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+A class which will activate hotspots as the mouse passes over them in a parent view, or deactivate
+them as they leave. This class operates by havign a number of objects subclassed from hotspot added.
+Each of these is then queried as the mouse passes about the view to alter its activation state.
+This class will operate either exclusively, only one active hotspot at a time, or may allow
+multiple active hotspots at once if exclusive is true (it is false by default). The class
+also provides suspend and resume methods to pause the classes handling of the hotspots and
+resume respectively. Note that the priority of choosing an active spot is random. That is
+in exclusive mode (or switching from non-exclusive to exclusive mode) if two spot a and b
+both contain x and y, no guarantee is made as to which of a and b will be chosen to be
+the active exclusive view. Additionally this will only activate and deactivate hotspots
+within the parent view. Even if a hotspot added to this map defines an active region outside
+the parent view it will not be honored. Therefore it is strongly recommended that no hotspots
+define an area outside of the view in which the are active. In order for this class
+to work the view in which it is defined must be clickable.
+</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="imagemap" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="exclusive" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="reverselayout" type="lzx:reverselayout" >
+</xs:element>
+  <xs:complexType name="reverselayout" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:layout">
+      <xs:attribute name="spacing" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A pixel amount to use between each view in the layout </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A pixel amount to inset the last view controlled by the layout</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="end" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ When true (the default), then the layout will push the subviews 
+              to the right (or bottom) of the containing view </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="axis" type="xs:string" default="y" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The axis in which this layout operates. One of 'x' or 'y'. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="textstyle" type="lzx:textstyle" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Simple class that adds font attributes to style class
+        &lt;example executable="false"&gt;
+        &amp;lt;textstyle font="futura" fontsize="12" fontstyle="bold" /&amp;gt;
+        &lt;/example&gt;
+    </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="textstyle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:style">
+      <xs:attribute name="fontstyle" type="xs:string" default="plain" >
+</xs:attribute>
+      <xs:attribute name="fontsize" type="xs:string" default="11" >
+</xs:attribute>
+      <xs:attribute name="font" type="xs:string" default="arial" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Simple class that adds font attributes to style class
+        &lt;example executable="false"&gt;
+        &amp;lt;textstyle font="futura" fontsize="12" fontstyle="bold" /&amp;gt;
+        &lt;/example&gt;
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basetrackgroup" type="lzx:basetrackgroup" >
+</xs:element>
+  <xs:complexType name="basetrackgroup" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="trackingrate" type="xs:string" default="150" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The periodic rate in milliseconds to track the mouse</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="tracking" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates if this trackgroup is currently tracking or not.
+              It can bet set to turn tracking on or off, or use the methods
+              activatetrackgroup and deactivatetrackgroup </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="deactivateevents" type="xs:string" default="['onmouseup']" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ an array of events which will deactivate tracking. 
+           To override, you must declare as once. For example:
+           &lt;programlisting&gt;&amp;lt;attribute name="deactivateevents" value="['onmouseover']" when="once"/&amp;gt;&lt;/programlisting&gt;
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="boundsref" type="xs:string" default="${this}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The view that will be used to define the bounding rect for tracking
+              the mouse </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="activateevents" type="xs:string" default="['onmousedown']" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ an array of events which will activate tracking. 
+           To override, you must declare as once. For example:
+           &lt;programlisting&gt;&amp;lt;attribute name="activateevents" value="['onmouseover']" when="once"/&amp;gt;&lt;/programlisting&gt;
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="shadowbox" type="lzx:shadowbox" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A basic container view with an inner dropshadow effect.
+        &lt;example executable="false"&gt;
+            &amp;lt;shadowbox width="200" height="200"&amp;gt;
+                &amp;lt;view bgcolor="red" width="200" height="200"/&amp;gt;
+            &amp;lt;/shadowbox&amp;gt;
+        &lt;/example&gt;
+    </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="shadowbox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="shadowleft" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ display shadow along left side </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="edgecolor_tl" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ bgcolor of one pixel wide border on right and bottom sides only </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="edgecolor" type="xs:string" default="0xD9D9D9" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ bgcolor of one pixel wide border on right and bottom sides only </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="textformat" type="lzx:textformat" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+    An object to specify the format of a text object.  Used only in 
+    Javascript by richinputtext.setTextFormat.
+    @shortdesc Formats rich text
+</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="textformat" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="url" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="underline" type="lzx:boolean" >
+</xs:attribute>
+      <xs:attribute name="target" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="size" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="rightmargin" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="leftmargin" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="leading" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="italic" type="lzx:boolean" >
+</xs:attribute>
+      <xs:attribute name="indent" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="font" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+    An object to specify the format of a text object.  Used only in 
+    Javascript by richinputtext.setTextFormat.
+    @shortdesc Formats rich text
+</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="color" type="lzx:color" >
+</xs:attribute>
+      <xs:attribute name="bold" type="lzx:boolean" >
+</xs:attribute>
+      <xs:attribute name="align" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="boxview" type="lzx:boxview" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+                implements the CSS box model in a view that allows for margins, padding, and a border.
+                Allows for an italized title.
+                By default functions the same as a view, but has a 1 pixel black border.
+                v1.0 - Original
+                v1.1 - Bugfix added " - parent.parent.vTitle.height" to vPadding height on !_contentheight state
+                @author Brad Erickson
+         </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="boxview" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="title" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Italized title of the view, appears in upper left </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="paddingsize" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Size of the padding </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="marginsize" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Size of the margin </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="contentbgcolor" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Background color of the element, default is transparent</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bordersize" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Size of the border </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bordercolor" type="xs:string" default="0x000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Color of the border, default is black </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="virtualdrawview" type="lzx:virtualdrawview" >
+</xs:element>
+  <xs:complexType name="virtualdrawview" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:drawview">
+      <xs:attribute name="miny" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="minx" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maxy" type="lzx:number" default="100" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maxx" type="lzx:number" default="100" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="markers" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="tabelement" type="lzx:tabelement" >
+</xs:element>
+  <xs:complexType name="tabelement" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basetabelement">
+      <xs:attribute name="text_y" type="xs:string" default="${this.top.header.height/2 - this.top.header.txt.height/2}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The y position of the text field in the header area. Default is centered. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="text_x" type="xs:string" default="4" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The x position of the text field in the header area. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="shadowvisible" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Boolean to set the shadow of this tabelement. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="shadowheight" type="xs:string" default="4" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The height of the shadow. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_top" type="xs:string" default="${parent.inset_top}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The top inset for content appearing within a tabelement. Default
+              is the containing tabslider's inset_top value. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_right" type="xs:string" default="${parent.inset_right}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The right inset for content appearing within a tabelement. Default
+              is the containing tabslider's inset_right value. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_left" type="xs:string" default="${parent.inset_left}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The left inset for content appearing within a tabelement. Default
+              is the containing tabslider's inset_left value. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_bottom" type="xs:string" default="${parent.inset_bottom}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The bottom inset for content appearing within a tabelement. Default
+              is the containing tabslider's inset_bottom value. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="headerpadding" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Insets the header art on the x-axis. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="colorrow" type="lzx:colorrow" >
+</xs:element>
+  <xs:complexType name="colorrow" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="axisstyle" type="lzx:axisstyle" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ style for axis
+      @access public
+  </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="axisstyle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basestyle">
+      <xs:attribute name="direction" type="xs:string" default="y | x" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ direction of the axis: x or y </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videoplayer" type="lzx:videoplayer" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ provides standard UI controls for video playback
+    </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="videoplayer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="url" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ url of the stream to play
+              see mediastream for details </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="type" type="xs:string" default="http" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ type of stream: 'http' or 'rtmp', 
+              see mediastream for details </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="stream" type="xs:string" default="${vscreen.ms}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ a reference to the stream to enable direct control,
+              such as vp.steam.play or vp.stream.seek(20) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="starttime" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Show the frame from this time (in seconds) whenever the url 
+            is set for video playback.
+            Use -1 to show no frame (which will leave the image as it
+            was when switching videos) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="sliderTop" type="xs:string" default="${             this.height - (this.borderBottom + this.sliderHeight)}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ internal: derived from public attributes 
+              @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="sliderHeightVal" type="xs:string" default="16" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ see note above 
+          @access private
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="sliderHeight" type="xs:string" default="${             this.showslider ? this.sliderHeightVal : 0}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the controls stretch to this height, but I don't see a test
+              for this and I can't imagine it looks good so I'm marking
+              this private
+          @access private
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="sliderGap" type="xs:string" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the vertical space between the video image and the controls </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showslider" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ why would you want this? no test case, marking private 
+              @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showscreen" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ why would you want this? no test case, marking private 
+              @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showVolumeControl" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ if true, display a volume control </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showTimeDisplay" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ if true, display the current and total time </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="screenWidth" type="xs:string" default="${             this.width - (this.borderLeft + this.borderRight)}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ internal: derived from public attributes 
+              @access private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="progressColor" type="xs:string" default="0x00ff00" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ color of the progress bar </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="debug" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ true for verbose debug logging </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="borderTop" type="xs:string" default="${this.border}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the top border on the video image.  Default: this.border </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="borderRight" type="xs:string" default="${this.border}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the right border on the video image.  Default: this.border </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="borderLeft" type="xs:string" default="${this.border}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the left border on the video image.  Default: this.border </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="borderBottom" type="xs:string" default="${this.border}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the bottom border on the video image.  Default: this.border </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="border" type="xs:string" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the border around the video image.  Default: 5 </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="autoplay" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ when true, playback will start automatically
+              without user action </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="aspectRatio" type="xs:string" default="$once{4/3}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ if non-zero, then this will be used to maintain the
+              aspect ratio based on the width of the videoscreen.
+              Default: 4/3
+        </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="datastylelist" type="lzx:datastylelist" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ list of datastyle
+      @access public
+  </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="datastylelist" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basestyle">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basegrid" type="lzx:basegrid" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ An abstract container for data rows, relying on lazy replication
+          to make it possible to display large datasets.</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="basegrid" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecomponent">
+      <xs:attribute name="spacing" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Spacing between the rows. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="sizetoheader" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A boolean. If true, the grid will keep its width set to the size
+              of the header. This is automatically set to true for grids that
+              do not have a set width.  This is initially set to 0, which means
+              that it is not true, but if it is explicitly set to false, the
+              automatic behavior will be disabled for grids with no set
+              width.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showvlines" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, lines will be drawn (in component's style's bordercolor)
+              horizontally at each at each row division. This attribute cannot
+              be set after instantiation.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="shownitems" type="xs:string" default="-1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Sets the height of the grid to show a maximum of 'n' items. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showhlines" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, lines will be drawn (in component's style's bordercolor)
+              vertically at each at each column division. This attribute can be
+              set after instantiation.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="selectable" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If false, the rows are not clickable and the grid does not support selection. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="rowheight" type="lzx:number" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Optional height for the rows contained by the grid. If no
+              value is given for this attribute, it will be set to the
+              calculated height of rows. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onselect" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Event sent when the grid selection changes.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="multiselect" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, the list will allow for multiple selection, and the 
+              getSelection method will always return a list. If false, only
+              single selection is allowed.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="hilite" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The view which is currently hilited.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="contentdatapath" type="xs:string" default="*" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The datapath to use for the contents of the grid. By
+              default, this is set to "*", meaning all of the nodes underneath
+              the datacontext of the grid. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="columns" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ An array holding the basegridcolumns used by this grid </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bgcolor1" type="lzx:color" default="$immediately{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If given, sets the bgcolor for odd numbered rows. If not given,
+              the bgcolor for these rows is taken from the style's bgcolor.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bgcolor0" type="lzx:color" default="$immediately{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If given, sets the bgcolor for even numbered rows. If not given,
+              the bgcolor for these rows is taken from the style's bgcolor.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="verticalaxis" type="lzx:verticalaxis" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Represents the Y axis on the rectangular chart, extends from Axis class
+     @access public
+        </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="verticalaxis" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:axis">
+      <xs:attribute name="datacolumn" type="xs:string" default="y" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="DebugObject" type="lzx:DebugObject" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+  DebugObject is a base class for all the other classes in LZUnit that
+  supports the debugging of LZUnit itself.
+
+  @keywords public
+
+  @param Boolean debugWrite: Whether or not to emit debugging statements.
+</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="DebugObject" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="debugWrite" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ whether or not to emit debugging statements </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videoslider" type="lzx:videoslider" >
+</xs:element>
+  <xs:complexType name="videoslider" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="waspaused" type="xs:string" default="true" >
+</xs:attribute>
+      <xs:attribute name="volume" type="xs:string" default="${this.controls.volumebutton.volume}" >
+</xs:attribute>
+      <xs:attribute name="value" type="xs:string" default="${this.tracking ? this.trackvalue : this.sourcevalue}" >
+</xs:attribute>
+      <xs:attribute name="trackvalue" type="xs:string" default="0.0" >
+</xs:attribute>
+      <xs:attribute name="tracktime" type="xs:string" default="${this.trackvalue * this.totaltime}" >
+</xs:attribute>
+      <xs:attribute name="trackingDelegate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="tracking" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="totaltime" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="timedisplay" type="xs:string" default="${this.tracking ? this.tracktime : this.time}" >
+</xs:attribute>
+      <xs:attribute name="time" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="sourcevalue" type="xs:string" default="${this.time / (this.totaltime || 1.0)}" >
+</xs:attribute>
+      <xs:attribute name="showVolumeControl" type="xs:string" default="true" >
+</xs:attribute>
+      <xs:attribute name="showTimeDisplay" type="xs:string" default="true" >
+</xs:attribute>
+      <xs:attribute name="ms" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="color" type="xs:string" default="0x00ff00" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="barchart" type="lzx:barchart" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A chart class that renders horizontal bars.
+      Inherits from the chart class.  (Warning: Of beta quality.)
+      @access public
+      </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="barchart" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basechart">
+      <xs:attribute name="staggerticks" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to alternate lengths of tick lines. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ondrawaxis" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Refreshes drawn chart when direction changes. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="barspace" type="lzx:number" default="2" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The space between bars. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="anicomplete" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Dataclip is a view at a fixed size (plotwidth and plotheight, with location
+            set by plotx and ploty) that contains an internal view with all the points,
+            lines and labels.  As the internal view datapane is scalable and able to be
+            dragged around once scaled, it needs to be clipped. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="font" type="lzx:font" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Tag for including fonts.
+The &lt;font&gt; tag is used to import fonts into an LZX application. Each font in an LZX application has a source file (in TrueType format), a name, and a style (plain, bold, italic, or bold italic).
+
+A font element within a &lt;canvas&gt; or &lt;library&gt; defines a font, which can be referenced by the font attribute of a view, or by the face attribute of the &lt;font&gt; tag within HTML markup. A font element can define a single font face or style, by using the src attribute to refer to a TrueType font that is included in the application. 
+ </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="font" mixed="true">
+  <xs:group ref="lzx:topLevelElements" />
+      <xs:attribute name="src" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="size" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="name" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Tag for including fonts.
+The &lt;font&gt; tag is used to import fonts into an LZX application. Each font in an LZX application has a source file (in TrueType format), a name, and a style (plain, bold, italic, or bold italic).
+
+A font element within a &lt;canvas&gt; or &lt;library&gt; defines a font, which can be referenced by the font attribute of a view, or by the face attribute of the &lt;font&gt; tag within HTML markup. A font element can define a single font face or style, by using the src attribute to refer to a TrueType font that is included in the application. 
+ </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="face" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="color" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ HTML specific </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:complexType>
+<xs:element name="gridtext" type="lzx:gridtext" >
+</xs:element>
+  <xs:complexType name="gridtext" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:gridcolumn">
+      <xs:attribute name="textalign" type="xs:string" default="left" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Type of content's alignment.
+              Possible values are: left, center, right </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="selectable" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether one is able to select the text.  (Only applies
+            if the grid isn't editable, because when it's editable,
+            the text is automatically selectable.) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="editing" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="editbox" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="editable" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If set to false, the field will not be editable. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="fileuploadlist" type="lzx:fileuploadlist" >
+</xs:element>
+  <xs:complexType name="fileuploadlist" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="selected" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ select file or not</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onselect" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Events</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="oncomplete" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="maxsize" type="xs:string" default="15000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Max file size  unit: bytes </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="erroroccured" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Error occured </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="class" type="lzx:class" >
+</xs:element>
+  <xs:complexType name="class" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="isRoot" type="lzx:boolean" >
+</xs:attribute>
+      <xs:attribute name="implements" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="extends" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="listitem" type="lzx:listitem" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A simple listitem that is usually declared inside of a list. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="listitem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baselistitem">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="focusoverlay" type="lzx:focusoverlay" >
+</xs:element>
+  <xs:complexType name="focusoverlay" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basefocusview">
+      <xs:attribute name="offset" type="xs:string" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the offset is used by the brackets to 'offset' themselves from the
+              bounding rect of the focusoverlay. The bounce effect is achieved
+              by animating this parameter </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="contextmenuitem" type="lzx:contextmenuitem" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+A menu item within a context menu </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="contextmenuitem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="visible" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Sets the visibility of the menu item. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="separatorbefore" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Draw a horizontal separator line before this item in the menu. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="enabled" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 	Sets the enabled status of the menu item. If false, the menu item is grayed out and will not respond to clicks  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="delegate" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 	Sets the delegate which will be called when the menu item is selected. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="caption" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+		Sets the text which is displayed for the menu item</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="menuitem" type="lzx:menuitem" >
+</xs:element>
+  <xs:complexType name="menuitem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:textlistitem">
+      <xs:attribute name="command" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the command object assigned to be executed when this menuitem is selected </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basedragimage" type="lzx:basedragimage" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the visual representation of an object being dragged.
+        See &lt;xref linkend="lz.checkdragstate"/&gt; for usage details 
+        @access public
+  </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="basedragimage" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="dropgroup" type="xs:string" default="droptarget" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the group that drop targets will register with </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basetabslider" type="lzx:basetabslider" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This class is a non-visual container that animates and coordinates the
+          sliding of basetabelements. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="basetabslider" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baselist">
+      <xs:attribute name="spacing" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The spacing of the tabs. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="slideduration" type="xs:string" default="300" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The duration of the tabs openning and closing. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="mintabheight" type="xs:string" default="22" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The default height of every tab when closed. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_top" type="xs:string" default="8" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The top inset for content appearing within a tabelement. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_right" type="xs:string" default="8" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The right inset for content appearing within a tabelement. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_left" type="xs:string" default="8" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The left inset for content appearing within a tabelement. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_bottom" type="xs:string" default="8" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The bottom inset for content appearing within a tabelement. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="ZoomPolygon" type="lzx:ZoomPolygon" >
+</xs:element>
+  <xs:complexType name="ZoomPolygon" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:polygonhotspot">
+      <xs:attribute name="text" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="parentView" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="map" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="whitestyle" type="lzx:whitestyle" >
+</xs:element>
+  <xs:complexType name="whitestyle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:style">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="bigcheckbox" type="lzx:bigcheckbox" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The basecheckbox implementation representing a boolean, i.e., checked
+          if true, else false. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="bigcheckbox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecheckbox">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="backcircle" type="lzx:backcircle" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The background circle of the pie.  Has properties set by attributes on the
+        respective dataseries. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="backcircle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:drawview">
+      <xs:attribute name="pieradius" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The radius of the pie. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="drawbgborder" type="lzx:color" default="0x000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The border color of the circle. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="drawbg" type="lzx:color" default="0xCCCCCC" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The background color of the circle. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ctry" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The center y coordinate of the pie. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ctrx" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The center x coordinate of the pie. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bgborderwidth" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The width of the circle's border. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="window" type="lzx:window" >
+</xs:element>
+  <xs:complexType name="window" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:windowpanel">
+      <xs:attribute name="resizable" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, a resize control will appear in the lower-right corner,
+              allowing the user to resize the window. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseedittext" type="lzx:baseedittext" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This component provides the look and feel for user editable text, data
+          binding, and focus events. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="baseedittext" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baseformitem">
+      <xs:attribute name="pattern" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ An expression to restrict the set of characters that are allowed
+              to be entered. For example, [0-9]*, [012]*, [a-zA-Z]*,
+              [0-9A-Z]*. You can restrict the number of characters using
+              maxlength. Default is any character. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="password" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Set to true for a password field. Text will appear as ****. 
+              This attribute cannot be changed at runtime.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onpattern" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="multiline" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Set to true for multiple lines. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maxlength" type="lzx:number" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The maximum number of chars that can be entered. Default is
+              unlimited. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="TestCase" type="lzx:TestCase" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+  TestCase implements an individual test case.
+
+  See the documentation for &lt;xref linkend="lz.TestSuite"/&gt;
+  for an example of this tag.
+
+  @param testName: the name of the test
+</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="TestCase" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:Test">
+      <xs:attribute name="testnames" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="datepickercombobox" type="lzx:datepickercombobox" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @access private </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="datepickercombobox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecombobox">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="marker" type="lzx:marker" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private
+         data marker class </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="marker" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="droptarget" type="lzx:droptarget" >
+</xs:element>
+  <xs:complexType name="droptarget" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="text" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="replicator" type="lzx:replicator" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This is a declared replicator for visual elements. Unlike
+        OpenLaszlo''s data-replication feature, a replicator can take an
+        arbitrary node set that may be passed in as an array.
+        Non-replicating elements may be used inside a replicator; only
+        the last child inside the replicator is replicated.
+
+        The data attribute of the replicated (cloned) view is set by the
+        setData method with data from the nodes array when the clone is
+        bound. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="replicator" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="xpath" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Compute nodes from this xpath query against the specified dataset </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="spacing" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A pixel amount to use between each replicated view </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="replicatedsize" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The size (width or height) in the replication axis of the view
+            being replicated.  Assumes all subviews have same replicated size. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="pool" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, then instances of the replicated instance are reused
+            when possible </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onnodes" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="nodes" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The list of nodes over which this replictor acts </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="mask" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The view that will clip the replicated nodes.  Defaults to the immediateparent of the container </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dataset" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Compute nodes from this dataset </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="container" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The view that will contain the replicated nodes.  Defaults to the immediateparent of the replicator. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="clones" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The list of elements controlled by this repliator </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="axis" type="xs:string" default="y" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The axis in which to replicate</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="_dbg_lzhdrag" type="lzx:_dbg_lzhdrag" >
+</xs:element>
+  <xs:complexType name="_dbg_lzhdrag" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:state">
+      <xs:attribute name="xdoffset" type="xs:string" default="this.getMouse( 'x' )" >
+</xs:attribute>
+      <xs:attribute name="x" type="xs:string" default="${this.immediateparent.getMouse( 'x' ) - this.xdoffset}" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="legendtitle" type="lzx:legendtitle" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The title for the legend.  This is its own small class because it
+        makes constraints easier for adjustments. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="legendtitle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="ttsize" type="xs:string" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The title text's font size. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="tposit" type="xs:string" default="left" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The title text's alignment.  (left, right, center) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="tcolor" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The title text's color. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ltitle" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The title text for the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="defaultlistitem" type="lzx:defaultlistitem" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Text list item that displays a default </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="defaultlistitem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:textlistitem">
+      <xs:attribute name="default_y" type="xs:string" default="$once{this.height/2 - this.defaultlabel._default.height/2}" >
+</xs:attribute>
+      <xs:attribute name="default_x" type="xs:string" default="40" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ x position of default label </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="SyncTester" type="lzx:SyncTester" >
+</xs:element>
+  <xs:complexType name="SyncTester" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:TestCase">
+      <xs:attribute name="tested_object" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+     Refers to object to be tested; this is dependent on specific test run
+     @keywords required
+     </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="del" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="current_method" type="xs:string" default="${cur_meth.xpathQuery('@name')}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+     Helps keep track of currently executed method
+     @keywords readonly
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="dataseries" type="lzx:dataseries" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+          
+        A dataseries in a container for dataseries and datacolumn.
+        dataseries can be nested.
+        @access public
+    </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="dataseries" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="ydatapath" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The data to be linked to the y axis. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="xdatapath" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The data to be linked to the x axis.  (Also used for piechart data.) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="tooltip" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ (To be developed:) Whether a tooltip is available onmouseover. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showlegendminimized" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to show the legend when the chart is minimized, when
+            there are multiple charts. (It is strongly recommended this
+            be set to false for multiple pies.) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="radiusadjust" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether certain pieces should have radii different from the
+            overall pie, and if so, how much shorter or longer, percentage-wise.
+            (e.g. A value of 10 would mean 10% greater a radius.) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="pointsvisible" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to draw points, and if so, which color. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="pointshape" type="xs:string" default="square" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ What shape to make the point. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="pointopacity" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The opacity of the points. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="pointdiameter" type="xs:string" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The size of the points. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="pointborderwidth" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The border around the points. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="pointborder" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to draw borders around points, and if so, which color. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="piebgcolor" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether the area behind the pie is colored, and if so,
+            what color. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="linethickness" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The thickness of the line from the last point to the current point.
+            If using data for this attribute, this will determine the thickness
+            of the line from the last point to the current point. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="linesvisible" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to draw a line between points, and if so, which color.
+            If using data for this attribute, this will determine whether
+            to draw a line from the last point to the current point. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendy" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If legend is 'manual', this sets the y coordinate of the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendx" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If legend is 'manual', this sets the x coordinate of the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendwidth" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If legend is 'manual', this sets the width of the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendtitleposition" type="xs:string" default="left" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The position of the title: left, right, center. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendtitle" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The title of the legend.  If not null, appears at the top of
+            the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendhl" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The onmouseover highlight for legend elements. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendheight" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If legend is 'manual', this sets the height of the legend. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legenddatapath" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The location of the data to be used in the legend.  If unspecified,
+            the numerical values of the piechart will be used. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendborderwidth" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The width of the legend border. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendborder" type="lzx:color" default="#000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The color of the legend border, if any. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendbg" type="lzx:color" default="#CCCCCC" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Background color of the legend, if any. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legend" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether or not there's a legend associated with this data.
+            Values: top, bottom, left, right,
+            manualtop, manualbottom, manualleft, manualright. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labeltextsize" type="xs:string" default="10" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Size of a label's text. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labeltextcolor" type="lzx:color" default="#000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Color of a label's text. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labelcolor" type="lzx:color" default="#EEEEEE" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Color of the label. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labelborderwidth" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Width of a label's border.  (Set 0 for none.)</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labelborder" type="xs:string" default="#000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Color of a label's border. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="label" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ label of the dataseries </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fillbelow" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to fill beneath the line, and if so, which color. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fbopacity" type="xs:string" default=".2" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The opacity of the filled area below the line. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="explode" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether the pieces should move away from the center on mouseover. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="enabled" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ enable the dataseries </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="drawbgborder" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to draw an outline around the background circle's
+            circumference, and if so, what color. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="drawbg" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to draw the background circle, and if so, what color. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dataseriesleafs" type="xs:string" default="$once{[]}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private
+            cache a leaf nodes of the dataseries </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dataresource" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Bar resource, if any. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dataopacity" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Opacity of the bar, line or pie piece. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dataenabled" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Is this series of data enabled? </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="datacolumnsmap" type="xs:string" default="$once{new Object()}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private
+            cache the a hashtable of datacolumn </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="datacolor" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Color of the line, bar or pie piece. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="borderwidth" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The width of each piece's border. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bordercolor" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The color of each piece's border. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bgborderwidth" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Thickness of the background circle's circumference outline. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="baselabels" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether to draw labels at the bases of bars, and
+            what data to use.  No labels are drawn if not specified. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="baselabelangle" type="lzx:number" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Angle of baselabels.  (Determines rotation of tick labels
+            at the bases of bars.  Not compatible with DHTML.) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="animationinit" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether a bar has animation.  Currently only works
+            for bars, but may eventually be worked into other
+            chart types. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="inspector" type="lzx:inspector" >
+</xs:element>
+  <xs:complexType name="inspector" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:window">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basewindow" type="lzx:basewindow" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The basewindow class defines methods, attributes that are used by window
+      subclasses.</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="basewindow" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecomponent">
+      <xs:attribute name="ydoffset" type="xs:string" default="this.getMouse( 'y' )" >
+</xs:attribute>
+      <xs:attribute name="xdoffset" type="xs:string" default="this.getMouse( 'x' )" >
+</xs:attribute>
+      <xs:attribute name="state" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The state of the window: 1=selected (frontmost) window,
+              2=not-selected window, 3=dragging, 4=disabled, 5=resizing.
+              @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="starty" type="xs:string" default="$once{this.y}" >
+</xs:attribute>
+      <xs:attribute name="startx" type="xs:string" default="$once{this.x}" >
+</xs:attribute>
+      <xs:attribute name="minwidth" type="xs:string" default="60" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Minimum width for the window.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="minheight" type="xs:string" default="50" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Minimum height for the window.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="haswindowfocus" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ True if the window is frontmost. Set this
+              attribute to bring the window to the fore of its sibling
+              windows, and bring window focus.
+              @keywords defaultsetter </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="allowdrag" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Attribute handles whether window can be dragged or not </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videothumbnail" type="lzx:videothumbnail" >
+</xs:element>
+  <xs:complexType name="videothumbnail" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="url" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="type" type="xs:string" default="http" >
+</xs:attribute>
+      <xs:attribute name="thumbnailtime" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="border" type="xs:string" default="1" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="simpleinputtext" type="lzx:simpleinputtext" >
+</xs:element>
+  <xs:complexType name="simpleinputtext" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="textOpacity" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The text opacity. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="text" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The text for input. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="focusborderOpacity" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The opacity for the border on focus. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="blurborderOpacity" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The opacity for the border on blur. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bgOpacity" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The opacity for the input background. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="ulink" type="lzx:ulink" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A class for URL links.
+    
+    This differs from the use of the XHTML &amp;lt;a&amp;gt; attribute, e.g in '&amp;lt;text&amp;gt;&amp;lt;a href="http://openlaszlo.org"&amp;gt;OpenLaszlo.org&amp;lt;/a&amp;gt;lt;/text&amp;gt;', in these ways:
+    - There is a hover effect.  (This defaults to underline.)
+    - There is a hover color.  (This defaults to blue.)
+    - The link content and target can be databound. 
+    
+    &lt;example executable="false"&gt;
+      &amp;lt;ulink href="http://openlaszlo.org"&amp;gt;OpenLaszlo.org&amp;lt;/ulink&amp;gt;
+    &lt;/example&gt;
+    
+    See ulink-test.lzx for additional examples. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="ulink" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="text" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The text of the link. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="target" type="xs:string" default="_new" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Where the target opens.  See lz.Browser.loadURL for
+    a list of values. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="href" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The URL target. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="hoverTags" type="xs:string" default="u" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A list of tags that are applied to the link when
+    it is hovered.  This is either a list of tag names, e.g. "u"
+    or "u b", or the HTML itself, e.g. "&amp;lt;u&amp;gt;". </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="hoverColor" type="lzx:color" default="blue" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The color when the link is hovered. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="color" type="lzx:color" default="blue" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The color when the link is &lt;em&gt;not&lt;/em&gt; being hovered. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="state" type="lzx:state" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  A description of an instance hierarchy that can be applied and removed at runtime.
+JavaScript: lz.state 
+
+A state is an object that holds its children and attributes for creation or application at a later time when the state's apply method is called. In addition to representing visual state by adding and removing children from a view, states are often used to control constraints which are applied and removed at different times during the run of an application.
+
+For the most part, the declarative style used in OpenLaszlo applications represents an initial state for the application. All modification to application state can be made using the script API's, but it is often convenient to declaratively describe a bit of application state which may be selectively applied or removed at runtime. The &lt;state&gt; tag is provided for this purpose.
+
+Everything within a &lt;state&gt; tag acts as if it were written inside the parent when the state is applied. States can contain attributes, methods, and other nodes.
+
+When a state is removed, any children or constraints created when the state was applied are then removed, but attributes that were set by the application of the state are not restored. 
+
+ </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="state" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="pooling" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+        If true, the state will merely hide any views it has created when it is removed (not applied), instead of destroying them. 
+         </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="applied" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 
+        Whether or not the state is applied. setAttribute('applied', true) will apply the state. setAttribute('applied', false) will remove the state.
+         </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="attribute" type="lzx:attribute" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Sets an attribute of the object that contains it. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="attribute" mixed="true">
+  <xs:group ref="lzx:topLevelElements" />
+      <xs:attribute name="value" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+  The initial value of the attribute. The type of this value is specified by the value of the type attribute; if that attribute is not present, it's the type of this attribute in this element's tag. The attribute is given this value when the element is created. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="type" type="xs:string" default="string" >
+</xs:attribute>
+      <xs:attribute name="style" type="xs:string" default="string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The CSS property name that can be used to set the value of this attribute under the control of a &lt;stylesheet&gt; (See Chapter 19. Cascading Style Sheets ). style can be any valid CSS property name, and need not be the same as the attribute name; for example you could use the standard CSS property name background-color as the style of the bgcolor attribute. When an attribute has a style property, the value property acts as the default value for the attribute: in the absence of any applicable CSS rule specifying the corresponding property, the attribute will be given the default value. In the case of dynamic CSS, the attribute will revert to the default value if CSS was applied and is removed. (See Dynamic CSS .) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="setter" type="xs:string" default="string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Delegate the event to a method on changes through setAttribute('...',$value) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="required" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ True if this is a required attribute. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="name" type="lzx:token" use="required" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The name of the attribute. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="allocation" type="xs:string" default="instance|class" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ One of:
+class
+    The attribute will be an attribute of the class; to refer to it, you say lz.classname.attributename . 
+instance
+    Each instance will have an attribute with the specified properties ( name , type , value , etc.). 
+
+You can set allocation to class to get static attributes. Static properties are attached to the class itself, for example lz.classname . </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:complexType>
+<xs:element name="streamscrubber" type="lzx:streamscrubber" >
+</xs:element>
+  <xs:complexType name="streamscrubber" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="totaltime" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ read only </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="time" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ read only </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="stream" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the stream to control </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="scrubbing" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ true when user has the mouse down and is scrubbing the stream </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="progress" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ read only </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="min" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ min 'x' value, defaults to zero (typically the left side of parent) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="max" type="lzx:number" default="$once{parent.width-this.width}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ max 'x' value, defaults to the right side of the parent </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="stringvalidator" type="lzx:stringvalidator" >
+</xs:element>
+  <xs:complexType name="stringvalidator" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basevalidator">
+      <xs:attribute name="minLength" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="minErrorstring" type="xs:string" default="this string is shorter than the minimum allowed length." >
+</xs:attribute>
+      <xs:attribute name="maxLength" type="lzx:number" default="255" >
+</xs:attribute>
+      <xs:attribute name="maxErrorstring" type="xs:string" default="this string is longer than the maximum allowed length." >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="LzDebugWindow" type="lzx:LzDebugWindow" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 
+    The Laszlo debugger window. An instance will be automatically
+    instantiated when the application is compiled in debug mode
+    (requested by either using the
+    &lt;code&gt;canvas&lt;/code&gt; &lt;code&gt;debug&lt;/code&gt; attribute or by loading the
+    application using the &lt;code&gt;?debug=true&lt;/code&gt; option).  
+
+    @keywords private_constructor
+</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="LzDebugWindow" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="title" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="smallInputAreaHeight" type="xs:string" default="29" >
+</xs:attribute>
+      <xs:attribute name="savedYPos" type="xs:string" default="10" >
+</xs:attribute>
+      <xs:attribute name="savedXPos" type="xs:string" default="10" >
+</xs:attribute>
+      <xs:attribute name="savedWidth" type="xs:string" default="340" >
+</xs:attribute>
+      <xs:attribute name="savedInputAreaHeight" type="xs:string" default="53" >
+</xs:attribute>
+      <xs:attribute name="savedHeight" type="xs:string" default="125" >
+</xs:attribute>
+      <xs:attribute name="resizable" type="xs:string" default="true" >
+</xs:attribute>
+      <xs:attribute name="persist" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="minimized" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="lineheight" type="xs:string" default="13" >
+</xs:attribute>
+      <xs:attribute name="lastpart" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="lastobj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="keep_width_on_canvas" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="keep_height_on_canvas" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="isLoaded" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="evalloader" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="default_width" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="default_height" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="debuggerBorderWidth" type="xs:string" default="5" >
+</xs:attribute>
+      <xs:attribute name="consoleRemote" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="commandhistory_ptr" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="commandhistory" type="xs:string" default="[]" >
+</xs:attribute>
+      <xs:attribute name="closeable" type="xs:string" default="true" >
+</xs:attribute>
+      <xs:attribute name="clientBridge" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="autoscroll" type="xs:string" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="layout" type="lzx:layout" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+    layout.lzx
+   
+    @copyright Copyright 2001-2010 Laszlo Systems, Inc.  All Rights Reserved.
+               Use is subject to license terms.
+   
+    @topic LFC
+    @subtopic Controllers
+    @affects lzlayout
+    @access public
+  </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="layout" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="vip" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @access private
+ * Just used to effect a type cast of immediateparent to LzView 
+ * TODO [max 2010-07] add LzView type back when possible
+ </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="updateDelegate" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A delegate used to update the layout.
+      @type LzDelegate
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="subviews" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+     Array of the views this layout controls. Used by subclasses of
+     &lt;code&gt;layout&lt;/code&gt; to implement their arrangement algorithm by
+     adjusting the appropriate attribute of each view.
+    
+     @type [LzView]
+     @access public
+   </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="locked" type="xs:string" default="2" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+     Set to true if layout is locked from updates.
+    
+     @devnote locked is set to 2 in the prototype of the layout. This
+     is a special signal that the layout is locked temporarily until
+     it resolves its references
+    
+     @type Boolean
+   </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="valueregion" type="lzx:valueregion" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+        Represents a region of values in the chart
+        @access public
+        </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="valueregion" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:drawview">
+      <xs:attribute name="tipEnabled" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ enable the value region's tooltip </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="tip" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Tip label that appear when the mouse is over the value region</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="regionEnabled" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ enable the rendering of the value region in the chart </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="label" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ label of the value region, it is shown next to the region </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="data2" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Maximum value for the Value region</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="data1" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Minimum value for the Value region</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="axis" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the associated axis to the Region can be"x" or "y" </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="grid" type="lzx:grid" >
+</xs:element>
+  <xs:complexType name="grid" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basegrid">
+      <xs:attribute name="showvscroll" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If false, the grid will never show a vertical scrollbar,
+            even if the rows are wider than the grid.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showhscroll" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If false, the grid will never show a horizontal scrollbar,
+              even if the rows are wider than the grid.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="goldstyle" type="lzx:goldstyle" >
+</xs:element>
+  <xs:complexType name="goldstyle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:style">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="treeselector" type="lzx:treeselector" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Selection manager used by tree. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="treeselector" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:selectionmanager">
+      <xs:attribute name="multiselect" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If multiselect is true, multiple selection is enabled.  When the
+              shift key is down, a range of items is selected.  When the control
+              key is down, any item may be added to the selection. Default is
+              false. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="_dbg_lztextscroller" type="lzx:_dbg_lztextscroller" >
+</xs:element>
+  <xs:complexType name="_dbg_lztextscroller" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="visiblelines" type="xs:string" default="4" >
+</xs:attribute>
+      <xs:attribute name="thumbheight" type="xs:string" default="24" >
+</xs:attribute>
+      <xs:attribute name="textlines" type="xs:string" default="[]" >
+</xs:attribute>
+      <xs:attribute name="lineptr" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="autoscroll" type="xs:string" default="true" >
+</xs:attribute>
+      <xs:attribute name="arrowbuttonheight" type="xs:string" default="12" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basetabs" type="lzx:basetabs" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The base tabs object. This is the outermost containing component
+          within which there are a basetabsbar and the basetabscontent. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="basetabs" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecomponent">
+      <xs:attribute name="tabclass" type="xs:string" default="basetab" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Class to instantiate tab items for basetabsbar. Can be
+              overridden by basetabpane.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_top" type="lzx:number" default="8" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The top inset for content appearing within a basetabpane. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_right" type="lzx:number" default="8" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The right inset for content appearing within a basetabpane. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_left" type="lzx:number" default="8" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The left inset for content appearing within a basetabpane. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="inset_bottom" type="lzx:number" default="8" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The bottom inset for content appearing within a basetabpane. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="contentclass" type="xs:string" default="basetabscontent" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Class to instantiate to contain basetabpanes.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="content" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This is a reference to basetab's content area. This is where all
+              basetabpanes in tabs are placed.
+              @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bordersize" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The size of the border surrounding a basetabpane. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="barclass" type="xs:string" default="basetabsbar" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Class to instantiate to contain tab items.
+              @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bar" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This is a reference to its basetabsbar. 
+              @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="resource" type="lzx:resource" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+A tag that defines a media object that can be associated with a view. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="resource" mixed="true">
+  <xs:group ref="lzx:topLevelElements" />
+      <xs:attribute name="src" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The path of a file that contains the source for this object. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="offsety" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The y offset of a bitmap resource used for a custom cursor. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="offsetx" type="lzx:number" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The x offset of a bitmap resource used for a custom cursor. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="name" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The name of a variable that will be set to this object when the application is started. If this element is directly within a canvas or library element, the global variable and the canvas property with this name will be set to this object. If this element is within another object, that object's property with this name will be set to this object.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:complexType>
+<xs:element name="datatip" type="lzx:datatip" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+     tooltip is a tool tip to be use be the chart elements such as the plot area
+     @access public
+      </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="datatip" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:label">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="list" type="lzx:list" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A list containing listitems and providing selection capabilities. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="list" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baselist">
+      <xs:attribute name="tracking" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Toggles the mousedown tracking. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="spacing" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The number of pixels that items should be spaced from one another. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="shownitems" type="xs:string" default="-1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The number of items that are displayed. This value will ignored if
+              this view attempts to draw past the canvas boundary. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="scrollbarclassname" type="xs:string" default="vscrollbar" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The name of the class to instantiate as our scrollbar.
+              @keywords public </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="scrollable" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onmousetrackoutright" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ event not used - declared to remove debugger warnings </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onmousetrackoutleft" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ event not used - declared to remove debugger warnings </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="minheight" type="lzx:number" default="24" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ minumum height of the list </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bordersize" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The size in pixels for this list. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="border_top" type="xs:string" default="${this.bordersize}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The size of the top border. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="border_right" type="xs:string" default="${this.bordersize}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The size of the right border. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="border_left" type="xs:string" default="${this.bordersize}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The size of the left border. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="border_bottom" type="xs:string" default="${this.bordersize}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The size of the bottom border. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="autoscrollbar" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, a scrollbar will show up automatically when there are
+              more items than shownitems. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videoview" type="lzx:videoview" >
+</xs:element>
+  <xs:complexType name="videoview" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="url" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The url of the video, may be a relative URL, 
+            for example: "http://localhost/myvideo.flv", 
+            or simply "myvideo.flv".
+
+            When type="rtmp", the url is always relative the rtmpconnection.
+            (Use only when you are not explicitly declaring the mediastream.)
+    </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="type" type="xs:string" default="http" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Protocol "rtmp" or "http". </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="stream" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The mediastream object.  A mediastream will be automatically generated if one is not specified at init time. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="starttime" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Show the frame from this time (in seconds) whenever the url 
+          is set for video playback.
+          Use -1 to show no frame (which will leave the image as it
+          was when switching videos) </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="playvolume" type="xs:string" default="1.0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The volume for video playback, a float from 0 to 1. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="mic" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The microphone object. 
+            @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="debug" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, Debug.write extra stuff (this may go away). </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="cam" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The camera object. 
+            @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="buffertime" type="xs:string" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, video will start playing as soon as url is set. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="autoplay" type="xs:string" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true, video will start playing as soon as url is set. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="timevalidator" type="lzx:timevalidator" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ timevalidator class </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="timevalidator" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basevalidator">
+      <xs:attribute name="separator" type="xs:string" default=":" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Separator must be the same as specified in "format" attribute
+              it's needed to prevent input with different separator </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="invalidformatErrorstring" type="xs:string" default="Please input the time in a valid format" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The five attributes above are five different message errors </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="invalidSeparatorErrorstring" type="xs:string" default="Please enter a valid separator" >
+</xs:attribute>
+      <xs:attribute name="invalidSecondsErrorstring" type="xs:string" default="Please enter seconds between 0 and 59" >
+</xs:attribute>
+      <xs:attribute name="invalidMinutesErrorstring" type="xs:string" default="Please enter minutes between 0 and 59" >
+</xs:attribute>
+      <xs:attribute name="invalidHourErrorstring" type="xs:string" default="Please enter hour between 0 and 23" >
+</xs:attribute>
+      <xs:attribute name="incongruentSeparatorErrorstring" type="xs:string" default="Warning! Two different separators are defined in format and separator attribute" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Warning message when the two attribute "format" and "separator" have different separator's char </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="format" type="xs:string" default="hh:mi:ss" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The time format attribute. Default: hh:mi:ss
+              hh = hour
+              mi = minutes
+              ss = seconds 
+              The separator must be the same ss specified in "separator" attribute </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="floatinglist" type="lzx:floatinglist" >
+</xs:element>
+  <xs:complexType name="floatinglist" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basefloatinglist">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="_dbg_horiz_scrollbar" type="lzx:_dbg_horiz_scrollbar" >
+</xs:element>
+  <xs:complexType name="_dbg_horiz_scrollbar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="thumbwidth" type="xs:string" default="24" >
+</xs:attribute>
+      <xs:attribute name="autoscroll" type="xs:string" default="true" >
+</xs:attribute>
+      <xs:attribute name="arrowbuttonwidth" type="xs:string" default="12" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="xmlrpc" type="lzx:xmlrpc" >
+</xs:element>
+  <xs:complexType name="xmlrpc" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:rpc">
+      <xs:attribute name="service" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ (Required) XML-RPC service URL. The URL must be http. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="treenode" type="lzx:treenode" >
+</xs:element>
+  <xs:complexType name="treenode" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baseopttreenode">
+      <xs:attribute name="mousein" type="xs:string" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="fisheye_item" type="lzx:fisheye_item" >
+</xs:element>
+  <xs:complexType name="fisheye_item" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="tooltip" type="xs:string" default="${this.text}" >
+</xs:attribute>
+      <xs:attribute name="text" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="start_size" type="xs:string" default="${parent.start_size}" >
+</xs:attribute>
+      <xs:attribute name="old_y" type="xs:string" default="$once{canvas.getMouse('y')}" >
+</xs:attribute>
+      <xs:attribute name="old_x" type="xs:string" default="$once{canvas.getMouse('x')}" >
+</xs:attribute>
+      <xs:attribute name="myTooltipManager" type="xs:string" default="$once{parent.tooltipmanager}" >
+</xs:attribute>
+      <xs:attribute name="icon" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="halo_size" type="xs:string" default="${parent.halo_size}" >
+</xs:attribute>
+      <xs:attribute name="expanded_size" type="xs:string" default="${parent.expanded_size}" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videotogglebutton" type="lzx:videotogglebutton" >
+</xs:element>
+  <xs:complexType name="videotogglebutton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="tracking" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="over" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="icon" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="frameTable" type="xs:string" default="$once{             [1, 2, 1, 2, 3, 3, 3, 3]}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This look-up table maps a state value to a frame index. 
+              Currently 2^3=8 states: 
+              over (2^0=1), tracking (2^1=2) and engaged (2^2=4). </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="engaged" type="xs:string" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="dataset" type="lzx:dataset" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+An in-memory xml-style data hierarchy. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="dataset" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="type" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	When set to "http" or "soap", the dataset interprets it's src attribute as a URL to be loaded at runtime. If the "src" attribute is set to a URL (e.g., starts with "http:") then the type attribute implicitly becomes "http".  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="trimwhitespace" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	When true, the server will trim whitespace in the XML data (defaults to false).  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="timeout" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The numer of milliseconds to wait before the request times out, and an ontimeout event is sent. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="src" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The source for requests made by this dataset. The value can be a pathname or an absolute or relative URL. If the value is a URL (starts with "http:"), the dataset will be configured to load its data at runtime. Otherwise, the data is included inline into the application at compile time.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="sel" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Selection state of this node, used by dataselectionmanager </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="secureport" type="lzx:number" default="443" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	TCP port number to use for secure (HTTPS) requests </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="request" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	If true, the datset will make a request upon initialization </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="rawdata" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Holds raw data response string from data source </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="querytype" type="xs:string" default="GET" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+HTTP request method. Value must be one of "GET" or "POST". </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="querystring" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	A string to be appended to the request that the dataset makes.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="proxyurl" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The URL of the proxy server, for proxied requests </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="proxied" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+Sets whether or not the dataset makes its request directly to the target server or via the server proxy. Inherits value from canvas.proxied flag.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="postbody" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Used to send a string as the entire body of a POST request. For a POST request, setting postbody to a non-null string value will send that string as the complete body of the POST request. In this case any other query parameters that have been set via setQueryParam dataset will be ignored. The behavior of a GET request with a non-null postbody is not defined. Note, the swf8 runtime is forced to XML-quote the postbody, due to limitations in the Flash 8 player API. This restriction is not present in later swf runtimes, or in the DHTML runtime.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="parentNode" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 	The parent of this node </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="params" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	An lz.Param object which holds query key-value pairs. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ownerDocument" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	The owner document for this node. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="nsprefix" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	When true, the server will preserve namespace prefixes on data node names and attribute names  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="nodeType" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 	The type of this node one of lz.DataElement.DOCUMENT_NODE, lz.DataElement.ELEMENT_NODE or lz.DataElement.TEXT_NODE </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="nodeName" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 	The name of this node. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="multirequest" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	Create a new data request object for each request. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="getresponseheaders" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	When true, the proxy server (if making a proxied request) will encode and send the HTTP response headers along with the data (defaults to false). Due to a lack of a native API to get this information, SOLO SWF applications will always return an empty set. When making a proxied request, getresponseheaders must be true in order for the response headers to be retrieved via the getResponseHeader or getAllResponseHeaders methods.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dataprovider" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 	Holds a pointer to the DataProvider which handles data load requests for this dataset. Default value is canvas.defaultdataprovider  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="credentialled" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+When true, the withCredentials property on the XHR object will be set to true, allowing credentialled cross-origin resource sharing (CORS) requests. If withCredentials is not set for a CORS request using credentials, the browser will not set any cookies sent by the server. See http://www.w3.org/TR/cors/#access-control-allow-credentials-respons and http://dev.w3.org/2006/webapi/XMLHttpRequest-2/#the-withcredentials-attribute for more information.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="clientcacheable" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 	When true, data responses can be cached by the client (browser). When false, a unique valued argument will be added to the request string in the format '__lzbc__=1204685840777' to defeat the browser's cache.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="childNodes" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	An array of children of this node </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="cacheable" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	When true, the server will attempt to cache response (defaults to false). There are security concerns when this field is true. When this field is true, you will usually want the getresponseheaders field to be false. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="autorequest" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	If true, changes to src or querystring attributes cause doRequest() to be called automatically. If false, doRequest() must be called manually when src or querystring attributes change.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="attributes" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The dictionary of attributes for this node. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="acceptencodings" type="lzx:boolean" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+	When true, the server will accept encoded responses for this request. Encoded responses require more work for the LPS (encoding the response) and client (decoding the response) in trade for lower network bandwidth usage.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="minibutton" type="lzx:minibutton" >
+</xs:element>
+  <xs:complexType name="minibutton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:stylishbutton">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="plainfloatinglist" type="lzx:plainfloatinglist" >
+</xs:element>
+  <xs:complexType name="plainfloatinglist" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basefloatinglist">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basechartbacking" type="lzx:basechartbacking" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The base chart background class for rectangular charts.
+        (That is, not used in piechart.)  (Of beta quality.) </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="basechartbacking" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="drawready" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The drawview responsible for drawing horizontal ticks. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="lwzendatepicker" type="lzx:lwzendatepicker" >
+</xs:element>
+  <xs:complexType name="lwzendatepicker" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basedatepicker">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:group name="topLevelElements">
+<xs:sequence>
+<xs:choice minOccurs="0" maxOccurs="unbounded">
+<xs:any />
+</xs:choice>
+</xs:sequence>
+</xs:group>
+</xs:schema>
diff --git a/WebContent/project.xsd b/WebContent/project.xsd
new file mode 100644
index 0000000..cb4bc03
--- /dev/null
+++ b/WebContent/project.xsd
@@ -0,0 +1,8472 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" 
+  targetNamespace="http://localhost/openlaszlo/project" 
+  xmlns:lzx="http://localhost/openlaszlo/lzx" 
+  xmlns:project="http://localhost/openlaszlo/project">
+<xs:import namespace="http://localhost/openlaszlo/lzx" schemaLocation="lzx.xsd"/><xs:element name="resultPollWin" type="project:resultPollWin" >
+</xs:element>
+  <xs:complexType name="resultPollWin" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="roomPoll" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="resultpollvotes" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="displayedPoll" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="archPolls" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="innerListPagingContent" type="project:innerListPagingContent" >
+</xs:element>
+  <xs:complexType name="innerListPagingContent" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseDateSelector" type="project:baseDateSelector" >
+</xs:element>
+  <xs:complexType name="baseDateSelector" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseDateSelectorComponent">
+      <xs:attribute name="year" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="selecteddate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="selected" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="onyearSel" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onselect" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onmonthSel" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="ondoubleselect" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="monthnames" type="xs:string" default="['Januar','Februar','Maerz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember']" >
+</xs:attribute>
+      <xs:attribute name="firstdayinweek" type="lzx:number" default="$once{ canvas.firstdayinweek }" >
+</xs:attribute>
+      <xs:attribute name="dayNamesLabelIds" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="dayLabelNamesLabelIds" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="editRecordStream" type="project:editRecordStream" >
+</xs:element>
+  <xs:complexType name="editRecordStream" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="remoteMessage" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="myvideocontainer" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="isSyncUpdate" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isInterview" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="doDefaultAnimation" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="currentClient" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="chosenSetting" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="chosenMic" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="chosenCam" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="horizontalMenuIconBarPointer" type="project:horizontalMenuIconBarPointer" >
+</xs:element>
+  <xs:complexType name="horizontalMenuIconBarPointer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="errorPopup" type="project:errorPopup" >
+</xs:element>
+  <xs:complexType name="errorPopup" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="makeModal" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="error" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="imageForScreenViewer" type="project:imageForScreenViewer" >
+</xs:element>
+  <xs:complexType name="imageForScreenViewer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:image">
+      <xs:attribute name="username" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="room" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="parentPath" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="moduleName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="fileName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="downloadurl" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="domain" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="baseurl" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="alterModus" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="terminareaForWeekView" type="project:terminareaForWeekView" >
+</xs:element>
+  <xs:complexType name="terminareaForWeekView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="terminObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="description" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="countX" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="calenderObjRef" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="previousNextButton" type="project:previousNextButton" >
+</xs:element>
+  <xs:complexType name="previousNextButton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="organisation_id" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="dateSelectorDay" type="project:dateSelectorDay" >
+</xs:element>
+  <xs:complexType name="dateSelectorDay" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseDateSelectorComponent">
+      <xs:attribute name="daydate" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="confmenucommand" type="project:confmenucommand" >
+</xs:element>
+  <xs:complexType name="confmenucommand" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:command">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseMenuSeperator" type="project:baseMenuSeperator" >
+</xs:element>
+  <xs:complexType name="baseMenuSeperator" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="interviewModerationMiniIcons" type="project:interviewModerationMiniIcons" >
+</xs:element>
+  <xs:complexType name="interviewModerationMiniIcons" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="isSuperModerator" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isMod" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="changeWidthLetterSlider" type="project:changeWidthLetterSlider" >
+</xs:element>
+  <xs:complexType name="changeWidthLetterSlider" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:basePropertySelector">
+      <xs:attribute name="tempValue" type="lzx:number" default="$once{ parent.initialNumber }" >
+</xs:attribute>
+      <xs:attribute name="step" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="onplus" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onminus" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="numberAlign" type="xs:string" default="right" >
+</xs:attribute>
+      <xs:attribute name="minimum" type="lzx:number" default="4" >
+</xs:attribute>
+      <xs:attribute name="maximum" type="lzx:number" default="100" >
+</xs:attribute>
+      <xs:attribute name="initialNumberInit" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="initialNumber" type="lzx:number" default="12" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawChooseModirPlain" type="project:drawChooseModirPlain" >
+</xs:element>
+  <xs:complexType name="drawChooseModirPlain" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseChooseIcon">
+      <xs:attribute name="modi" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isSelectablemodi" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="toolTipCustomPic" type="project:toolTipCustomPic" >
+</xs:element>
+  <xs:complexType name="toolTipCustomPic" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:text">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="simpleLabelButtonTooltip" type="project:simpleLabelButtonTooltip" >
+</xs:element>
+  <xs:complexType name="simpleLabelButtonTooltip" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:button">
+      <xs:attribute name="tooltipId" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="mainToolsLeftPanel" type="project:mainToolsLeftPanel" >
+</xs:element>
+  <xs:complexType name="mainToolsLeftPanel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseLeftPanel">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="moderationMiniIconsEventUserList" type="project:moderationMiniIconsEventUserList" >
+</xs:element>
+  <xs:complexType name="moderationMiniIconsEventUserList" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="showAvIcons" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="isActive" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="eventUserListTable" type="project:eventUserListTable" >
+</xs:element>
+  <xs:complexType name="eventUserListTable" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="userStatus" type="project:userStatus" >
+</xs:element>
+  <xs:complexType name="userStatus" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="statusText" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="statusColor" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="tableListItem" type="project:tableListItem" >
+</xs:element>
+  <xs:complexType name="tableListItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="isdatarecord" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="isaltered" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="changeholder" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basePagingListItem" type="project:basePagingListItem" >
+</xs:element>
+  <xs:complexType name="basePagingListItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseContentListItem">
+      <xs:attribute name="itemId" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="customEdittext" type="project:customEdittext" >
+</xs:element>
+  <xs:complexType name="customEdittext" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:edittext">
+      <xs:attribute name="regexpType" type="xs:string" default="none" >
+</xs:attribute>
+      <xs:attribute name="regexpLabelid" type="lzx:number" >
+</xs:attribute>
+      <xs:attribute name="preText" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="onafterCheck" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+      <xs:attribute name="isvalidInput" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="termindetails" type="project:termindetails" >
+</xs:element>
+  <xs:complexType name="termindetails" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="terminObjRef" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="roomtype" type="xs:string" default="1" >
+</xs:attribute>
+      <xs:attribute name="contact" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="baseUrl" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="arrayMeetingMember" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="appointmentId" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="changeWidthSlider" type="project:changeWidthSlider" >
+</xs:element>
+  <xs:complexType name="changeWidthSlider" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:basePropertySelector">
+      <xs:attribute name="tempValue" type="lzx:number" default="$once{ parent.initialNumber }" >
+</xs:attribute>
+      <xs:attribute name="step" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="onplus" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onminus" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="numberAlign" type="xs:string" default="right" >
+</xs:attribute>
+      <xs:attribute name="minimum" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="maximum" type="lzx:number" default="100" >
+</xs:attribute>
+      <xs:attribute name="labelid" type="lzx:number" default="429" >
+</xs:attribute>
+      <xs:attribute name="initialNumberInit" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="initialNumber" type="lzx:number" default="3" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="conferenceBrowser" type="project:conferenceBrowser" >
+</xs:element>
+  <xs:complexType name="conferenceBrowser" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="objMessage" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="initedByUser" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="initURL" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="ignoreNextEvent" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="callBackJSDelegate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="browserhistoryPre" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="browserhistoryPost" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="activityListRestrictedRoomRemote" type="project:activityListRestrictedRoomRemote" >
+</xs:element>
+  <xs:complexType name="activityListRestrictedRoomRemote" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseItemActivityList">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="searchContact" type="project:searchContact" >
+</xs:element>
+  <xs:complexType name="searchContact" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="vorname" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="userId" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="nachname" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="email" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="testingApplication" type="project:testingApplication" >
+</xs:element>
+  <xs:complexType name="testingApplication" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="timerIsRunning" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="recordingsCounter" type="lzx:number" default="5" >
+</xs:attribute>
+      <xs:attribute name="lastRecorded" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isRunning" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="counterDelegate" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="roomListInviteUserItem" type="project:roomListInviteUserItem" >
+</xs:element>
+  <xs:complexType name="roomListInviteUserItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="user_id" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="starttime" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="roomname" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="roomid" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="roomType" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="roomClassName" type="xs:string" default="conferenceView" >
+</xs:attribute>
+      <xs:attribute name="publicSID" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="obj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="maxUsers" type="lzx:number" default="4" >
+</xs:attribute>
+      <xs:attribute name="ispublic" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isaudience" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="currentusers" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="checkForMaxUsers" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="fileExplorer" type="project:fileExplorer" >
+</xs:element>
+  <xs:complexType name="fileExplorer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="parentFolderId" type="lzx:number" default="-2" >
+</xs:attribute>
+      <xs:attribute name="onClose" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="isTrashCan" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="currentTrackGroupName" type="xs:string" default="fileExplorer" >
+</xs:attribute>
+      <xs:attribute name="currentDragItem" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="editWhiteboardDefault" type="project:editWhiteboardDefault" >
+</xs:element>
+  <xs:complexType name="editWhiteboardDefault" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="ibutton" type="project:ibutton" >
+</xs:element>
+  <xs:complexType name="ibutton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="overRsrcNumber" type="lzx:number" default="2" >
+</xs:attribute>
+      <xs:attribute name="normalRsrcNumber" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="mouseisdown" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="label" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="downRsrcNumber" type="lzx:number" default="3" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseConferenceRoom" type="project:baseConferenceRoom" >
+</xs:element>
+  <xs:complexType name="baseConferenceRoom" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseContentView">
+      <xs:attribute name="roomobj" type="xs:string" default="null" >
+	  </xs:attribute>
+      <xs:attribute name="meetingTimer" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="eventUserListInner" type="project:eventUserListInner" >
+</xs:element>
+  <xs:complexType name="eventUserListInner" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseRoomInnerList">
+      <xs:attribute name="sortType" type="xs:string" default="alphabetical" >
+</xs:attribute>
+      <xs:attribute name="selectedItem" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="listType" type="xs:string" default="eventUserListTable" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="turnoverlistheaderitemResize" type="project:turnoverlistheaderitemResize" >
+</xs:element>
+  <xs:complexType name="turnoverlistheaderitemResize" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:basicturnoverlistheaderitem">
+      <xs:attribute name="subviewsid" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="minwidth" type="lzx:number" default="2" >
+</xs:attribute>
+      <xs:attribute name="minheight" type="lzx:number" default="10" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="monthView" type="project:monthView" >
+</xs:element>
+  <xs:complexType name="monthView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="year" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="weekdaynames" type="xs:string" default="['So.','Mo.','Di.','Mi.','Do.','Fr.','Sa.']" >
+</xs:attribute>
+      <xs:attribute name="showingdate" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="selecteddate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="monthnames" type="xs:string" default="['Januar','Februar','Maerz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember']" >
+</xs:attribute>
+      <xs:attribute name="firstdayinweek" type="lzx:number" default="$once{ canvas.firstdayinweek }" >
+</xs:attribute>
+      <xs:attribute name="dayNamesLabelIds" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="dayLabelNamesLabelIds" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="monitorListItemView" type="project:monitorListItemView" >
+</xs:element>
+  <xs:complexType name="monitorListItemView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="conferenceMenubar" type="project:conferenceMenubar" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Menu for public/private conference and audience room. This class shows 
+		exit, moderator, file, setteings and poll menu. Those menu items are connected 
+		to each command that has been declared in base/mainMethods.lzx. May 24 2008 
+		commented by onokeiji@gmail.com </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="conferenceMenubar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:menubar">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videoBoard" type="project:videoBoard" >
+</xs:element>
+  <xs:complexType name="videoBoard" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:conferenceBox">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="sponsorsPopUp" type="project:sponsorsPopUp" >
+</xs:element>
+  <xs:complexType name="sponsorsPopUp" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chatTab" type="project:chatTab" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+Chat tabpane class. It contains chatOutput-class and catTabBottom-class.
+This is used in the conference.
+</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="chatTab" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:simpleBaseTabpane">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="editUserProfile" type="project:editUserProfile" >
+</xs:element>
+  <xs:complexType name="editUserProfile" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseContentSaveView">
+      <xs:attribute name="user_id" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="userObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="sendObject" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="turnOverListHeaderItem" type="project:turnOverListHeaderItem" >
+</xs:element>
+  <xs:complexType name="turnOverListHeaderItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:simpleLabelButton">
+      <xs:attribute name="subviewsid" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basePropertySelector" type="project:basePropertySelector" >
+</xs:element>
+  <xs:complexType name="basePropertySelector" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="isEnabled" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="enabledView" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="boxPosition" type="xs:string" default="down" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ position of the SliderWin or ColorPicker </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="answerPoll" type="project:answerPoll" >
+</xs:element>
+  <xs:complexType name="answerPoll" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="roomScopeName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="roomPollId" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="roomPollAnswerList" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="pollvalue" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="pollTypesId" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="pollTypeId" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="pollQuestion" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="pollDate" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="createdBy" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="documentsLoaderIcon" type="project:documentsLoaderIcon" >
+</xs:element>
+  <xs:complexType name="documentsLoaderIcon" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="resourceN" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="labeltext" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isselected" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="remoteWhiteboard" type="project:remoteWhiteboard" >
+</xs:element>
+  <xs:complexType name="remoteWhiteboard" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseDrawSave">
+      <xs:attribute name="uniqueObjectSyncName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="loadingObjectListId" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="loadingObjectList" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="loadObjectDelegate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="isStarting" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="fileExplorerItemId" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawPaintTools" type="project:drawPaintTools" >
+</xs:element>
+  <xs:complexType name="drawPaintTools" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="sharedObject" type="project:sharedObject" >
+</xs:element>
+  <xs:complexType name="sharedObject" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="so" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="onStatus" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="monitorList" type="project:monitorList" >
+</xs:element>
+  <xs:complexType name="monitorList" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="selected" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="onselect" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="doubleclickEvent" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="listPresentationFilePDF" type="project:listPresentationFilePDF" >
+</xs:element>
+  <xs:complexType name="listPresentationFilePDF" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseListPresentationItem">
+      <xs:attribute name="swfName" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="pdfname" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseVideoStreamDevice" type="project:baseVideoStreamDevice" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+	extends the baseVideoStream with functions to catch Device Events
+	this Class uses Events from the Base Class baseVideoStream
+	onmicro and oncamera, which are thrown, once a device was set
+ </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="baseVideoStreamDevice" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseVideoStream">
+      <xs:attribute name="sendMicroStatus" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="sendCameraStatus" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="objMessage" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 
+	Message to send to Clients
+	 </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="micactive" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Shows if there is Activity on the Microphone </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="level" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Audio level, 0-100, the amount of sound detected by this microphone.
+          Reset to 0 when there is no audio (no activity or not allowed).
+          @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="isgreater" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 
+		indicates if the message should be send, you can change the notification 
+		level by changing the loudnessAcitviation in the public/config.xml
+	 </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="doSendNotification" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="camactive" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Shows if there is Activity on the Camera </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="closableViewLetter" type="project:closableViewLetter" >
+</xs:element>
+  <xs:complexType name="closableViewLetter" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="userListItem" type="project:userListItem" >
+</xs:element>
+  <xs:complexType name="userListItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="login" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="lastname" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="firstname" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="dragItemFileExplorer" type="project:dragItemFileExplorer" >
+</xs:element>
+  <xs:complexType name="dragItemFileExplorer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="overItem" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="newParentFileExplorerItemId" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="moveToHome" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isOwner" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="fileExplorerItemId" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="dragItemResource" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="alreadySent" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="labelTooltip" type="project:labelTooltip" >
+</xs:element>
+  <xs:complexType name="labelTooltip" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="text" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="setContent" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="multiline" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+      <xs:attribute name="ismenubuttonlabel" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="inittwice" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="initByDataPathparent" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="holder" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="browserButton" type="project:browserButton" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ TODO:
+		inprement of history feature
+		add resize feature to labelExplorerBox component
+	</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="browserButton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="enabled" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ TODO:
+		inprement of history feature
+		add resize feature to labelExplorerBox component
+	</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="sharingSession" type="project:sharingSession" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+    View for recorded contents list.
+    When you select 'Recordings' on the top menu, this class shows the list.
+</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="sharingSession" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="sharingSessionObject" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+    View for recorded contents list.
+    When you select 'Recordings' on the top menu, this class shows the list.
+</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="sharerPublicSID" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="registerToViewers" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="httpSessionStarted" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="currentCursorObject" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="closeByRemote" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="devmediadevice" type="project:devmediadevice" >
+</xs:element>
+  <xs:complexType name="devmediadevice" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="itemKkk" type="project:itemKkk" >
+</xs:element>
+  <xs:complexType name="itemKkk" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="netparam" type="project:netparam" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+        Net parameter.
+        Element to use inside netremotecall.
+        @todo Document netparam class.
+    </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="netparam" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="value" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The value of the netparam. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="_recorderClickMask" type="project:_recorderClickMask" >
+</xs:element>
+  <xs:complexType name="_recorderClickMask" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawDoAndUndo" type="project:drawDoAndUndo" >
+</xs:element>
+  <xs:complexType name="drawDoAndUndo" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseChooseIcon">
+      <xs:attribute name="doredo" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chatTabItemEmoticons" type="project:chatTabItemEmoticons" >
+</xs:element>
+  <xs:complexType name="chatTabItemEmoticons" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="usertime" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="username" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="usercolor" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="user_id" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="publicSID" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="picture_uri" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="messageObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="message" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="leading" type="lzx:number" default="5" >
+</xs:attribute>
+      <xs:attribute name="isDirectLink" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basePropertyPanel" type="project:basePropertyPanel" >
+</xs:element>
+  <xs:complexType name="basePropertyPanel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="title" type="xs:string" default="basePanel" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Title of this window </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+      <xs:attribute name="closable" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ if this Box should be closeable </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="miniIconSmybolExtraIcons" type="project:miniIconSmybolExtraIcons" >
+</xs:element>
+  <xs:complexType name="miniIconSmybolExtraIcons" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="modi" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="innerlistViewParticipentsTable" type="project:innerlistViewParticipentsTable" >
+</xs:element>
+  <xs:complexType name="innerlistViewParticipentsTable" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="lineOnlyColorChoose" type="project:lineOnlyColorChoose" >
+</xs:element>
+  <xs:complexType name="lineOnlyColorChoose" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:basePropertySelector">
+      <xs:attribute name="selectedColorTransformedString" type="xs:string" default="0xFF6600" >
+</xs:attribute>
+      <xs:attribute name="selectedColor" type="lzx:number" default="0xFF6600" >
+</xs:attribute>
+      <xs:attribute name="isopen" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="colorPickRef" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="colorIsEnabled" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="screenSharingDialog" type="project:screenSharingDialog" >
+</xs:element>
+  <xs:complexType name="screenSharingDialog" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:guiPresenter">
+      <xs:attribute name="tObject" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="lastMouseY" type="lzx:number" default="-1" >
+</xs:attribute>
+      <xs:attribute name="lastMouseX" type="lzx:number" default="-1" >
+</xs:attribute>
+      <xs:attribute name="isWindows" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isStarted" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isMouseOverActive" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isMac" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isLinux" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="initObject" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="idleDelegate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="doSendEvents" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="currentCursorObject" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="checkboxIsinited" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="filesPanel" type="project:filesPanel" >
+</xs:element>
+  <xs:complexType name="filesPanel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:guiPresenter">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="invitationQuickLoader" type="project:invitationQuickLoader" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+	</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="invitationQuickLoader" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="userlang" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+	</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chatOutputRoomsList" type="project:chatOutputRoomsList" >
+</xs:element>
+  <xs:complexType name="chatOutputRoomsList" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="wmlFileExplorerItem" type="project:wmlFileExplorerItem" >
+</xs:element>
+  <xs:complexType name="wmlFileExplorerItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseFileExplorerItem">
+      <xs:attribute name="isWmlFile" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="simplebaseItemActivityList" type="project:simplebaseItemActivityList" >
+</xs:element>
+  <xs:complexType name="simplebaseItemActivityList" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="tStamp" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="rcl" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="message" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseDrawClipArt" type="project:baseDrawClipArt" >
+</xs:element>
+  <xs:complexType name="baseDrawClipArt" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseDrawArrow">
+      <xs:attribute name="minClipArty" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="minClipArtx" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="maxClipArty" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="maxClipArtx" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="deltaClipArty" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="deltaClipArtx" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="currentClipArtRessourceName" type="xs:string" default="icons.png" >
+</xs:attribute>
+      <xs:attribute name="clipArtEndy" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="clipArtEndx" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="interviewConferenceMenubar" type="project:interviewConferenceMenubar" >
+</xs:element>
+  <xs:complexType name="interviewConferenceMenubar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:menubar">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="listFolderDrag" type="project:listFolderDrag" >
+</xs:element>
+  <xs:complexType name="listFolderDrag" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:text">
+      <xs:attribute name="uploadmodul" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isPpt" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="foldername" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="singletonErrorPopup" type="project:singletonErrorPopup" >
+</xs:element>
+  <xs:complexType name="singletonErrorPopup" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:errorPopup">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="iframeView" type="project:iframeView" >
+</xs:element>
+  <xs:complexType name="iframeView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="isrc" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="iname" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="iid" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="iFrameJsStack" type="xs:string" default="javascript:" >
+</xs:attribute>
+      <xs:attribute name="createIFrame_callbackMax" type="lzx:number" default="1000" >
+</xs:attribute>
+      <xs:attribute name="createIFrame_callbackCounter" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="createIFrameDone_attr" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="callbackTimerDelay" type="lzx:number" default="100" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="labelerrorPopup" type="project:labelerrorPopup" >
+</xs:element>
+  <xs:complexType name="labelerrorPopup" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:errorPopup">
+      <xs:attribute name="errorlabelid" type="lzx:number" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawViewInner" type="project:drawViewInner" >
+</xs:element>
+  <xs:complexType name="drawViewInner" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:drawview">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="dateSelectorDayHeader" type="project:dateSelectorDayHeader" >
+</xs:element>
+  <xs:complexType name="dateSelectorDayHeader" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseDateSelectorComponent">
+      <xs:attribute name="daynumber" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="labelPanel" type="project:labelPanel" >
+</xs:element>
+  <xs:complexType name="labelPanel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:basePanel">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="weekbkgnd" type="project:weekbkgnd" >
+</xs:element>
+  <xs:complexType name="weekbkgnd" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="innerlistView" type="project:innerlistView" >
+</xs:element>
+  <xs:complexType name="innerlistView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="applyForModeration" type="project:applyForModeration" >
+</xs:element>
+  <xs:complexType name="applyForModeration" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="applymessage" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="guiPresenter" type="project:guiPresenter" >
+</xs:element>
+  <xs:complexType name="guiPresenter" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="title" type="xs:string" default="defaulttitle" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The Title of this Box </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="resizeable" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ if this Box should be resizeable  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onresized" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ this Event will be triggered after resizing </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onclose" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the Event will be thrown if you close the Box </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onactivate" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the Event will be thrown if you do click on it and drag </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="minimized" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="minimizable" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="maximizable" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="maxi_y" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="maxi_x" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="maxi_width" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="maxi_height" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+      <xs:attribute name="isresizeing" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="ismaximized" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ if this Box should be resizeable  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="initialHeight" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="hasshadow" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="dockingbarrier" type="lzx:number" default="15" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Hard to explain but its clear if you play around 
+		with that. Its the number of minimum pixels before 
+		the "docking" effect will be there </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="docking" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Can this Box be docked to others and 
+			the width/height of parent compoent barrier </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="customMinimizeMethod" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="closable" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ if this Box should be closeable </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="parentResultPollBalk" type="project:parentResultPollBalk" >
+</xs:element>
+  <xs:complexType name="parentResultPollBalk" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="textA" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="newX" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="newPercent" type="xs:string" default="0%" >
+</xs:attribute>
+      <xs:attribute name="answer" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="activityListRestrictedRoomScreen" type="project:activityListRestrictedRoomScreen" >
+</xs:element>
+  <xs:complexType name="activityListRestrictedRoomScreen" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseItemActivityList">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="questionCheckbox" type="project:questionCheckbox" >
+</xs:element>
+  <xs:complexType name="questionCheckbox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="valBool" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="labelid" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="calendar" type="project:calendar" >
+</xs:element>
+  <xs:complexType name="calendar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseContentView">
+      <xs:attribute name="terminareaObjRef" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="terminObjRef" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="terminObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="selecteddate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="detailsInited" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="currentSelection" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="contact" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="appointmentId" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basePanel" type="project:basePanel" >
+</xs:element>
+  <xs:complexType name="basePanel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseBoundingBorderView">
+      <xs:attribute name="title" type="xs:string" default="basePanel" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Title of this window </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+      <xs:attribute name="closable" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ if this Box should be closeable </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="rootFileExplorerItem" type="project:rootFileExplorerItem" >
+</xs:element>
+  <xs:complexType name="rootFileExplorerItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseFileExplorerItem">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basepanel" type="project:basepanel" >
+</xs:element>
+  <xs:complexType name="basepanel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="simpleTurnOverList" type="project:simpleTurnOverList" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ common simpleTurnOverList view class. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="simpleTurnOverList" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="ondblclickedItem" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="mainBgColor" type="xs:string" default="0xEEF0EB" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="dateSelectorMonth" type="project:dateSelectorMonth" >
+</xs:element>
+  <xs:complexType name="dateSelectorMonth" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseDateSelectorComponent">
+      <xs:attribute name="month" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="firstweekNumber" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="currentMonthName" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="colorPot" type="project:colorPot" >
+</xs:element>
+  <xs:complexType name="colorPot" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="mycolorString" type="xs:string" default="0x000000" >
+</xs:attribute>
+      <xs:attribute name="mycolor" type="lzx:color" default="0x000000" >
+</xs:attribute>
+      <xs:attribute name="listener" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="participentListItem" type="project:participentListItem" >
+</xs:element>
+  <xs:complexType name="participentListItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="userroom" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="username" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="user_id" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="streamid" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="publicSID" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="lastname" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isSuperModerator" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isMod" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="formatedDate" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="firstname" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="connectedSince" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="canRemote" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="turnoverlistheaderitem" type="project:turnoverlistheaderitem" >
+</xs:element>
+  <xs:complexType name="turnoverlistheaderitem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:basicturnoverlistheaderitem">
+      <xs:attribute name="subviewsid" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chooseDrawAreaObjectWindow" type="project:chooseDrawAreaObjectWindow" >
+</xs:element>
+  <xs:complexType name="chooseDrawAreaObjectWindow" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:explorerBox">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="listV" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="restrictedUserList" type="project:restrictedUserList" >
+</xs:element>
+  <xs:complexType name="restrictedUserList" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="organisation_id" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="colorArray" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ colors for each user </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="broadCastViewRef" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ holds a references to the videoview which is broadcasting </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="applyDefaultModeration" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="allowUserQuestions" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="monitorSubListItem" type="project:monitorSubListItem" >
+</xs:element>
+  <xs:complexType name="monitorSubListItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="textitem" type="xs:string" default="def" >
+</xs:attribute>
+      <xs:attribute name="lableid" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="itemid" type="xs:string" default="def" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="turnOverListHeaderItemSimple" type="project:turnOverListHeaderItemSimple" >
+</xs:element>
+  <xs:complexType name="turnOverListHeaderItemSimple" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:simpleLabelButton">
+      <xs:attribute name="pathOrder" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="asc" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="labelBlueButton" type="project:labelBlueButton" >
+</xs:element>
+  <xs:complexType name="labelBlueButton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:blueButton">
+      <xs:attribute name="labelid" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="turnoverlistheaderitemResizeWizzardRefresh" type="project:turnoverlistheaderitemResizeWizzardRefresh" >
+</xs:element>
+  <xs:complexType name="turnoverlistheaderitemResizeWizzardRefresh" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:basicturnoverlistheaderitem">
+      <xs:attribute name="subviewsid" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="minwidth" type="lzx:number" default="2" >
+</xs:attribute>
+      <xs:attribute name="minheight" type="lzx:number" default="10" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="openmeetingsTabButtonBackground" type="project:openmeetingsTabButtonBackground" >
+</xs:element>
+  <xs:complexType name="openmeetingsTabButtonBackground" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:roundRectGradient">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="sharingScreenImage" type="project:sharingScreenImage" >
+</xs:element>
+  <xs:complexType name="sharingScreenImage" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:image">
+      <xs:attribute name="imageCompleted" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="subMenuIconToolsToUpload" type="project:subMenuIconToolsToUpload" >
+</xs:element>
+  <xs:complexType name="subMenuIconToolsToUpload" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:guiPresenter">
+      <xs:attribute name="refToolbar" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="currentSelected" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="currentContainer" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="labelExplorerBox" type="project:labelExplorerBox" >
+</xs:element>
+  <xs:complexType name="labelExplorerBox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:explorerBox">
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="documentsTabBar" type="project:documentsTabBar" >
+</xs:element>
+  <xs:complexType name="documentsTabBar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="currentItem" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="paintMenu" type="project:paintMenu" >
+</xs:element>
+  <xs:complexType name="paintMenu" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseToolbarMenu">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseErrorDialog" type="project:baseErrorDialog" >
+</xs:element>
+  <xs:complexType name="baseErrorDialog" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="errortext" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="errorid" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="addInfo" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseListPresentationItemExplorer" type="project:baseListPresentationItemExplorer" >
+</xs:element>
+  <xs:complexType name="baseListPresentationItemExplorer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="uploadmoduleimgfolder" type="xs:string" default="$once{ canvas.uploadmoduleimgfolder }" >
+</xs:attribute>
+      <xs:attribute name="uploadmodul" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="selectable" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="isselected" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isoriginal" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="interviewListInner" type="project:interviewListInner" >
+</xs:element>
+  <xs:complexType name="interviewListInner" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseRoomInnerList">
+      <xs:attribute name="sortType" type="xs:string" default="alphabetical" >
+</xs:attribute>
+      <xs:attribute name="selectedItem" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseToolbarMenu" type="project:baseToolbarMenu" >
+</xs:element>
+  <xs:complexType name="baseToolbarMenu" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="selectedButton" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videoBoardAudience" type="project:videoBoardAudience" >
+</xs:element>
+  <xs:complexType name="videoBoardAudience" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:conferenceBox">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="rpcErrorDialog" type="project:rpcErrorDialog" >
+</xs:element>
+  <xs:complexType name="rpcErrorDialog" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:errorDialog">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="listPresentationFileOrigExplorer" type="project:listPresentationFileOrigExplorer" >
+</xs:element>
+  <xs:complexType name="listPresentationFileOrigExplorer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:listPresentationFilePDFExplorer">
+      <xs:attribute name="originalName" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="autoLoader" type="project:autoLoader" >
+</xs:element>
+  <xs:complexType name="autoLoader" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="maxwidth" type="lzx:number" default="100" >
+</xs:attribute>
+      <xs:attribute name="maxsteps" type="lzx:number" default="19" >
+</xs:attribute>
+      <xs:attribute name="currentsteps" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="logoutConfirm" type="project:logoutConfirm" >
+</xs:element>
+  <xs:complexType name="logoutConfirm" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="objectsToClean" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="boxInitEffect" type="project:boxInitEffect" >
+</xs:element>
+  <xs:complexType name="boxInitEffect" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="ziely" type="lzx:number" default="200" >
+</xs:attribute>
+      <xs:attribute name="zielx" type="lzx:number" default="200" >
+</xs:attribute>
+      <xs:attribute name="zielwidth" type="lzx:number" default="100" >
+</xs:attribute>
+      <xs:attribute name="zielheight" type="lzx:number" default="100" >
+</xs:attribute>
+      <xs:attribute name="objRef" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="appointmentNotificationPopUp" type="project:appointmentNotificationPopUp" >
+</xs:element>
+  <xs:complexType name="appointmentNotificationPopUp" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:guiPresenter">
+      <xs:attribute name="roomobj" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="eventRoomSidebar" type="project:eventRoomSidebar" >
+</xs:element>
+  <xs:complexType name="eventRoomSidebar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="selected" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="restricted" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="listType" type="xs:string" default="eventUserListTable" >
+</xs:attribute>
+      <xs:attribute name="isOpen" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="borderedInputtext" type="project:borderedInputtext" >
+</xs:element>
+  <xs:complexType name="borderedInputtext" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="tvalue" type="xs:string" default="default" >
+</xs:attribute>
+      <xs:attribute name="text" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="sendchange" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="preText" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="multiline" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="maxlength" type="lzx:number" default="null" >
+</xs:attribute>
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+      <xs:attribute name="editable" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="checkIsNumber" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="checkIsDouble" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="monthViewAlt" type="project:monthViewAlt" >
+</xs:element>
+  <xs:complexType name="monthViewAlt" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="calendarTabs" type="project:calendarTabs" >
+</xs:element>
+  <xs:complexType name="calendarTabs" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:tabslider">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basePropertyPanelWhiteboard" type="project:basePropertyPanelWhiteboard" >
+</xs:element>
+  <xs:complexType name="basePropertyPanelWhiteboard" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="title" type="xs:string" default="basePanel" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Title of this window </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="usersTable" type="project:usersTable" >
+</xs:element>
+  <xs:complexType name="usersTable" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="selectedDayLook" type="project:selectedDayLook" >
+</xs:element>
+  <xs:complexType name="selectedDayLook" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="open" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="dayview" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="borderedMultiInputtext" type="project:borderedMultiInputtext" >
+</xs:element>
+  <xs:complexType name="borderedMultiInputtext" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="tvalue" type="xs:string" default="default" >
+</xs:attribute>
+      <xs:attribute name="text" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="sendchange" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="multiline" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="maxlength" type="lzx:number" default="null" >
+</xs:attribute>
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+      <xs:attribute name="editable" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="checkIsNumber" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="checkIsDouble" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="cursorObject" type="project:cursorObject" >
+</xs:element>
+  <xs:complexType name="cursorObject" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videoObjectPlayScreenShare" type="project:videoObjectPlayScreenShare" >
+</xs:element>
+  <xs:complexType name="videoObjectPlayScreenShare" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="currentY" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="currentX" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="fixedFileExplorerWhiteboardPanel" type="project:fixedFileExplorerWhiteboardPanel" >
+</xs:element>
+  <xs:complexType name="fixedFileExplorerWhiteboardPanel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:basePropertyPanelWhiteboard">
+      <xs:attribute name="whiteboardId" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="_labelMenu" type="project:_labelMenu" >
+</xs:element>
+  <xs:complexType name="_labelMenu" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:menu">
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="userTagView" type="project:userTagView" >
+</xs:element>
+  <xs:complexType name="userTagView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:text">
+      <xs:attribute name="userroom" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="username" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="user_id" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="streamid" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="lastname" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isMod" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="formatedDate" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="firstname" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="connectedSince" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="customInputtext" type="project:customInputtext" >
+</xs:element>
+  <xs:complexType name="customInputtext" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:inputtext">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="singletonErrorPopupHolder" type="project:singletonErrorPopupHolder" >
+</xs:element>
+  <xs:complexType name="singletonErrorPopupHolder" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="error" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="dialogPresent" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="dialogObject" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="panelBoundBox" type="project:panelBoundBox" >
+</xs:element>
+  <xs:complexType name="panelBoundBox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:drawview">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="turnOverTextItem" type="project:turnOverTextItem" >
+</xs:element>
+  <xs:complexType name="turnOverTextItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:text">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="simpleLabelRoundButtonIcon" type="project:simpleLabelRoundButtonIcon" >
+</xs:element>
+  <xs:complexType name="simpleLabelRoundButtonIcon" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:simpleLabelRoundButton">
+      <xs:attribute name="tlabelid" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="ressourceIcon" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="incomingScreenSharing" type="project:incomingScreenSharing" >
+</xs:element>
+  <xs:complexType name="incomingScreenSharing" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="messageObj" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chatParticipantsInviteConference" type="project:chatParticipantsInviteConference" >
+</xs:element>
+  <xs:complexType name="chatParticipantsInviteConference" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:guiPresenter">
+      <xs:attribute name="user_id" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="publicSID" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="rtmpConnection" type="project:rtmpConnection" >
+</xs:element>
+  <xs:complexType name="rtmpConnection" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="src" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="onerror" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onconnect" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="lastCalled" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="debug" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="resultPollBalk" type="project:resultPollBalk" >
+</xs:element>
+  <xs:complexType name="resultPollBalk" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="conferenceRoomSidebarTabButton" type="project:conferenceRoomSidebarTabButton" >
+</xs:element>
+  <xs:complexType name="conferenceRoomSidebarTabButton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="selected" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="labelid" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="currentIconRsc" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawAreaObjectCombobox" type="project:drawAreaObjectCombobox" >
+</xs:element>
+  <xs:complexType name="drawAreaObjectCombobox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecombobox">
+      <xs:attribute name="preselectedName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="modus" type="xs:string" default="${ this.parent.canvas._drawarea.drawmodus }" >
+</xs:attribute>
+      <xs:attribute name="ObjectByName" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawAreaObjectValueBox" type="project:drawAreaObjectValueBox" >
+</xs:element>
+  <xs:complexType name="drawAreaObjectValueBox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:borderedInputtext">
+      <xs:attribute name="posName" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videoObjectTestBroadcast" type="project:videoObjectTestBroadcast" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+	contains microphone and camera for broadcasting,
+	this class is used only in Meetings-Modus
+ </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="videoObjectTestBroadcast" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="sendMicroStatus" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="sendCameraStatus" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+	contains microphone and camera for broadcasting,
+	this class is used only in Meetings-Modus
+ </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videoContainerStream" type="project:videoContainerStream" >
+</xs:element>
+  <xs:complexType name="videoContainerStream" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawChooseSizeRadio" type="project:drawChooseSizeRadio" >
+</xs:element>
+  <xs:complexType name="drawChooseSizeRadio" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:radiogroup">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="converterPopup" type="project:converterPopup" >
+</xs:element>
+  <xs:complexType name="converterPopup" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="error" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="activityListRestrictedRoomA" type="project:activityListRestrictedRoomA" >
+</xs:element>
+  <xs:complexType name="activityListRestrictedRoomA" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseItemActivityList">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videoFileExplorerItem" type="project:videoFileExplorerItem" >
+</xs:element>
+  <xs:complexType name="videoFileExplorerItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseFileExplorerItem">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="turnOverList" type="project:turnOverList" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ common TurnOverList view class. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="turnOverList" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="step" type="lzx:number" default="100" >
+</xs:attribute>
+      <xs:attribute name="start" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ common TurnOverList view class. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="sendEventToReload" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="records" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="orderby" type="xs:string" default="firstname" >
+</xs:attribute>
+      <xs:attribute name="ondblclickedItem" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="oncallpre" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="oncallnext" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onUpdateOrder" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="mainBgColor" type="xs:string" default="0xEEF0EB" >
+</xs:attribute>
+      <xs:attribute name="currentSelectedOrder" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="asc" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="languagesEditor" type="project:languagesEditor" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Language editor module. You can edit the label for your language. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="languagesEditor" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseContentView">
+      <xs:attribute name="tempValue" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="language_id" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="xmlCrmTooltipMulti" type="project:xmlCrmTooltipMulti" >
+</xs:element>
+  <xs:complexType name="xmlCrmTooltipMulti" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="text" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="holder" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawDrawarrowTools" type="project:drawDrawarrowTools" >
+</xs:element>
+  <xs:complexType name="drawDrawarrowTools" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="hibRtmpConnection" type="project:hibRtmpConnection" >
+</xs:element>
+  <xs:complexType name="hibRtmpConnection" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:rtmpConnection">
+      <xs:attribute name="userobject" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="userlang" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="userScope" type="xs:string" default="hibernate" >
+</xs:attribute>
+      <xs:attribute name="testAppLoading" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="step" type="lzx:number" default="100" >
+</xs:attribute>
+      <xs:attribute name="start" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="sipLoader" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="showKickMessage" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="showFullMessage" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="roomtype" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="room_id" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="refreshDelegate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="reconnectionAction" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="reconnectedRoomInstance" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="reconnectObjRef" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="reconnectAfterRoomleft" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="publicSIDOfNewModerator" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="publicSID" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="protocollPort" type="xs:string" default="$once{ canvas.rtmpport }" >
+</xs:attribute>
+      <xs:attribute name="protocollName" type="xs:string" default="rtmp" >
+</xs:attribute>
+      <xs:attribute name="mute" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="modus" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="messageObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="max" type="lzx:number" default="1300" >
+</xs:attribute>
+      <xs:attribute name="loaderVar" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="isClosed" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="isAllowedToBroadCastAV" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="interviewPodId" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="initlanguageLoaded" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="currentroomid" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="currentdomainObj" type="xs:string" default="domain1" >
+</xs:attribute>
+      <xs:attribute name="currentdomain" type="xs:string" default="domain1" >
+</xs:attribute>
+      <xs:attribute name="currentInvitation" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the current Invitation-Object </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="currentHashSession" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="counterror" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="conferencedomain" type="xs:string" default="public" >
+</xs:attribute>
+      <xs:attribute name="canShare" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="canRemote" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="canDraw" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="avsettings" type="xs:string" default="av" >
+</xs:attribute>
+      <xs:attribute name="UserID" type="lzx:number" default="1" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseDrawRect" type="project:baseDrawRect" >
+</xs:element>
+  <xs:complexType name="baseDrawRect" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseDrawSelect">
+      <xs:attribute name="currentrectanglestrokeFillDis" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="currentrectanglestrokeFill" type="xs:string" default="0xFFFF33" >
+</xs:attribute>
+      <xs:attribute name="currentrectanglestrokeDis" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="currentrectanglestroke" type="xs:string" default="0xFF6600" >
+</xs:attribute>
+      <xs:attribute name="currentrectangleineWidth" type="lzx:number" default="4" >
+</xs:attribute>
+      <xs:attribute name="currentrectangleOpacity" type="lzx:number" default="1" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="paintToolsPalette" type="project:paintToolsPalette" >
+</xs:element>
+  <xs:complexType name="paintToolsPalette" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="testSetup" type="project:testSetup" >
+</xs:element>
+  <xs:complexType name="testSetup" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="roomObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="roomClassName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isDirectLink" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="forceTest" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="dragItemFLVExplorer" type="project:dragItemFLVExplorer" >
+</xs:element>
+  <xs:complexType name="dragItemFLVExplorer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="overItem" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="newParentFileExplorerItemId" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="isOwner" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="fileExplorerItemId" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="dragItemResource" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="alreadySent" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="appointmentMonth" type="project:appointmentMonth" >
+</xs:element>
+  <xs:complexType name="appointmentMonth" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="terminObj" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="textbox" type="project:textbox" >
+</xs:element>
+  <xs:complexType name="textbox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="bordercolor" type="xs:string" default="0x000000" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chatInnerSmily" type="project:chatInnerSmily" >
+</xs:element>
+  <xs:complexType name="chatInnerSmily" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="iconlabel" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="listPresentationThumb" type="project:listPresentationThumb" >
+</xs:element>
+  <xs:complexType name="listPresentationThumb" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseListPresentationItem">
+      <xs:attribute name="thumbname" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="no" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="aquaButton" type="project:aquaButton" >
+</xs:element>
+  <xs:complexType name="aquaButton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="labelTextWidthTooltip" type="project:labelTextWidthTooltip" >
+</xs:element>
+  <xs:complexType name="labelTextWidthTooltip" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:text">
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+      <xs:attribute name="labelLabelid" type="lzx:number" default="-1" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="participents" type="project:participents" >
+</xs:element>
+  <xs:complexType name="participents" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="userNewVideoContainer" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="organisation_id" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="colorArray" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ colors for each user </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="broadCastViewRef" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ holds a references to the videoview which is broadcasting </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="applyDefaultModeration" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="activityListRestrictedRoomV" type="project:activityListRestrictedRoomV" >
+</xs:element>
+  <xs:complexType name="activityListRestrictedRoomV" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseItemActivityList">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="miniIcons" type="project:miniIcons" >
+</xs:element>
+  <xs:complexType name="miniIcons" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="eventSelectorbar" type="project:eventSelectorbar" >
+</xs:element>
+  <xs:complexType name="eventSelectorbar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="yoff" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="xoff" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="startDragDel" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="startDate2" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="startDate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="snapEdge" type="xs:string" default="30" >
+</xs:attribute>
+      <xs:attribute name="origx" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="obarx" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="mdel" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="hidedel" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="freedragging" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="endDate2" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="endDate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="dragging" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="clipping" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="clipdel" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="baseUrl" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="appointementId" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="newPrivateMessage" type="project:newPrivateMessage" >
+</xs:element>
+  <xs:complexType name="newPrivateMessage" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:guiPresenter">
+      <xs:attribute name="user_id" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="userObject" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="sendUpdateText" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="sendUpdateAttr" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="sendSingleUpdateText" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="receipents" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="parentMessageId" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="labeltabelement" type="project:labeltabelement" >
+</xs:element>
+  <xs:complexType name="labeltabelement" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:tabelement">
+      <xs:attribute name="labelid" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseturnOverListPaged" type="project:baseturnOverListPaged" >
+</xs:element>
+  <xs:complexType name="baseturnOverListPaged" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="step" type="lzx:number" default="100" >
+</xs:attribute>
+      <xs:attribute name="start" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="showTopBar" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="showHScrollbar" type="xs:string" default="visible" >
+</xs:attribute>
+      <xs:attribute name="selected" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="rerender" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="renderList" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="records" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="orderby" type="xs:string" default="firstname" >
+</xs:attribute>
+      <xs:attribute name="oncallpre" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="oncallnext" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onScrollItem" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onNextScrollItem" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onMoveList" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="multiselect" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="menuBarXIndent" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="listLabelId" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="listItemName" type="xs:string" default="basePagingListItem" >
+</xs:attribute>
+      <xs:attribute name="itemHeight" type="lzx:number" default="20" >
+</xs:attribute>
+      <xs:attribute name="headerHeight" type="lzx:number" default="20" >
+</xs:attribute>
+      <xs:attribute name="asc" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawViewNew" type="project:drawViewNew" >
+</xs:element>
+  <xs:complexType name="drawViewNew" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:drawview">
+      <xs:attribute name="typeOfObject" type="xs:string" default="paint" >
+</xs:attribute>
+      <xs:attribute name="initwidth" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="initheight" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="mainToolsHPanelSeperator" type="project:mainToolsHPanelSeperator" >
+</xs:element>
+  <xs:complexType name="mainToolsHPanelSeperator" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="turnOverListOrderedPaged" type="project:turnOverListOrderedPaged" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ common TurnOverList view class. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="turnOverListOrderedPaged" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:turnOverListPaged">
+      <xs:attribute name="onUpdateOrder" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="currentSelectedOrder" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ common TurnOverList view class. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseRoomInnerList" type="project:baseRoomInnerList" >
+</xs:element>
+  <xs:complexType name="baseRoomInnerList" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="colorArray" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="roundRectGradient" type="project:roundRectGradient" >
+</xs:element>
+  <xs:complexType name="roundRectGradient" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:drawview">
+      <xs:attribute name="oninsettop" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="oninsetright" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="oninsetleft" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="oninsetbottom" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="oninset" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="oncomplete" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="insettop" type="lzx:size" default="${null}" >
+</xs:attribute>
+      <xs:attribute name="insetright" type="lzx:size" default="${null}" >
+</xs:attribute>
+      <xs:attribute name="insetleft" type="lzx:size" default="${null}" >
+</xs:attribute>
+      <xs:attribute name="insetbottom" type="lzx:size" default="${null}" >
+</xs:attribute>
+      <xs:attribute name="inset" type="lzx:size" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The margin between the outside view and the content view </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="boxShadowY" type="xs:string" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The x offset of the box shadow.  The box shadow is not drawn by default.
+            Specify a boxShadowColor in order to draw it. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="boxShadowX" type="xs:string" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The x offset of the box shadow.  The box shadow is not drawn by default.
+            Specify a boxShadowColor in order to draw it. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="boxShadowOpacity" type="xs:string" default="0.5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The box shadow opacity. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="boxShadowColor" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The box shadow color.  If this is specified, a box shadow is drawn.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="borderWidth" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The width of the border.  If this is zero, no frame is drawn. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="borderRadius" type="xs:string" default="5" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The rounding radius of the border corners.  Because the default
+            join type is a round join, even a radius of zero will product some
+            rounding. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="borderOpacity" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The border opacity </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="borderColor" type="lzx:color" default="black" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The border color </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="backgroundStopOpacity" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The background stop opacity.  This defaults to one (opaque) unless the
+            stop color is not specified and the start color is, in which case it
+            defaults to zero (fully transparent). </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="backgroundStopColor" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The background stop color.  This is the color that is drawn at the
+            bottom or right of the view, depending on the value of
+            backgroundGradientOrientation.  See the documentation for
+            backgroundStartColor for additional documentation. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="backgroundStartOpacity" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The background start opacity.  This defaults to one (opaque) unless the
+            start color is not specified and the stop color is, in which case it
+            defaults to zero (fully transparent). </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="backgroundStartColor" type="lzx:color" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The background start color.  This is the color that is drawn at
+            the top or left of the view, depending on the value of
+            backgroundGradientOrientation.  If this and the backround stop color
+            are specified, a gradient background is drawn in the direction specified
+            by backgroundGradientOrientation.  If only one of the background start
+            and stop color are specified, a gradient of the same color that fades to
+            transparent at the unspecified end is drawn.  If a box shadow is drawn,
+            the background defaults to white.  Specify a start and stop opacity to
+            suppress this behavior. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="backgroundGradientOrientation" type="xs:string" default="vertical" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The background gradient orientation.  One of 'vertical' (the default)
+            and 'horizontal'. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="errorPopupUserInfo" type="project:errorPopupUserInfo" >
+</xs:element>
+  <xs:complexType name="errorPopupUserInfo" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="user" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="error" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawEllipseTools" type="project:drawEllipseTools" >
+</xs:element>
+  <xs:complexType name="drawEllipseTools" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseDrawSelect" type="project:baseDrawSelect" >
+</xs:element>
+  <xs:complexType name="baseDrawSelect" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseDrawTriangle">
+      <xs:attribute name="currentSelectanglestrokeFillDis" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="currentSelectanglestrokeFill" type="xs:string" default="0x8e8986" >
+</xs:attribute>
+      <xs:attribute name="currentSelectanglestrokeDis" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="currentSelectanglestroke" type="xs:string" default="0x8e8986" >
+</xs:attribute>
+      <xs:attribute name="currentSelectangleineWidth" type="lzx:number" default="4" >
+</xs:attribute>
+      <xs:attribute name="currentSelectangleOpacity" type="lzx:number" default="0.2" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawColorPicker" type="project:drawColorPicker" >
+</xs:element>
+  <xs:complexType name="drawColorPicker" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="onnewcolor" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="defaultno" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawChooseSeperator" type="project:drawChooseSeperator" >
+</xs:element>
+  <xs:complexType name="drawChooseSeperator" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseMenuSeperator">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="fixedFileExplorerWhiteBoard" type="project:fixedFileExplorerWhiteBoard" >
+</xs:element>
+  <xs:complexType name="fixedFileExplorerWhiteBoard" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="timeisInited" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="sendUpdate" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="sendObjectToClientID" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="sendObjectDel" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="sendObject" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="room" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="restricted" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="parentPath" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="onsharedMessage" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="objectRef" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="moduleName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isloadingImage" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="isloadedImage" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="initW" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="initH" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="imagey" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="ignoreUpdates" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="iamgex" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="fileName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="downloadurl" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="domain" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="documentmenuIsInited" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="confirmdialog" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="baseurl" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="propertyPanelLetterButton" type="project:propertyPanelLetterButton" >
+</xs:element>
+  <xs:complexType name="propertyPanelLetterButton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="labelid" type="lzx:number" default="87" >
+</xs:attribute>
+      <xs:attribute name="itemResourceName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="enabled" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="currentVal" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="recordValueList" type="project:recordValueList" >
+</xs:element>
+  <xs:complexType name="recordValueList" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:turnOverList">
+      <xs:attribute name="itemToDelete" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="deleteItem" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="loadWhiteboardWindow" type="project:loadWhiteboardWindow" >
+</xs:element>
+  <xs:complexType name="loadWhiteboardWindow" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelText">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseTopPanel" type="project:baseTopPanel" >
+</xs:element>
+  <xs:complexType name="baseTopPanel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseBoundingBorderView">
+      <xs:attribute name="title" type="xs:string" default="basePanel" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Title of this window </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+      <xs:attribute name="closable" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ if this Box should be closeable </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="calendarWeekView" type="project:calendarWeekView" >
+</xs:element>
+  <xs:complexType name="calendarWeekView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="vsliderThumb" type="project:vsliderThumb" >
+</xs:element>
+  <xs:complexType name="vsliderThumb" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:button">
+      <xs:attribute name="showvalue" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="drag_min" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="drag_max" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="tableCombobox" type="project:tableCombobox" >
+</xs:element>
+  <xs:complexType name="tableCombobox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:combobox">
+      <xs:attribute name="tvalue" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="sendchange" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="initvalue" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="imageListInnerTable" type="project:imageListInnerTable" >
+</xs:element>
+  <xs:complexType name="imageListInnerTable" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseDrawImage" type="project:baseDrawImage" >
+</xs:element>
+  <xs:complexType name="baseDrawImage" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseDrawLetter">
+      <xs:attribute name="syncImageRefObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="syncImageCheckTime" type="lzx:number" default="1000" >
+</xs:attribute>
+      <xs:attribute name="setNewScreenUserName" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="screenImageRefNumber" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="screenImageRef2" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="screenImageRef1" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="loadingUsersImageListIndex" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="loadimageDataWinRef" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="loadImageObjectTimer" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="isWmlLoaderImage" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isScreenImageLoading" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="imageSyncMessageText" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="imageSyncMessageId" type="lzx:number" default="209" >
+</xs:attribute>
+      <xs:attribute name="imageLoadingCompleteMessage" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="imageLoadMessageId" type="lzx:number" default="208" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="dynamicFLVName" type="project:dynamicFLVName" >
+</xs:element>
+  <xs:complexType name="dynamicFLVName" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:customInputtext">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="parentFileExplorerItemId" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="isOwner" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isNew" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="fileExplorerItemId" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="whiteboardBarMenu" type="project:whiteboardBarMenu" >
+</xs:element>
+  <xs:complexType name="whiteboardBarMenu" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="staticwidth" type="lzx:number" default="120" >
+</xs:attribute>
+      <xs:attribute name="currentBtn" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="_recordPlayerBG" type="project:_recordPlayerBG" >
+</xs:element>
+  <xs:complexType name="_recordPlayerBG" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="_videoBoardStream" type="project:_videoBoardStream" >
+</xs:element>
+  <xs:complexType name="_videoBoardStream" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:guiPresenter">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="whiteboardVideoPlayer" type="project:whiteboardVideoPlayer" >
+</xs:element>
+  <xs:complexType name="whiteboardVideoPlayer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:guiPresenter">
+      <xs:attribute name="timerDelegateStarted" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="timerDelegate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="sendInit" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="recordingName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isLoaded" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="fileExplorerItemId" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="deltaInSeconds" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="interviewWhiteboard" type="project:interviewWhiteboard" >
+</xs:element>
+  <xs:complexType name="interviewWhiteboard" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="turnoverlistheaderitemIcon" type="project:turnoverlistheaderitemIcon" >
+</xs:element>
+  <xs:complexType name="turnoverlistheaderitemIcon" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:basicturnoverlistheaderitem">
+      <xs:attribute name="toolTipLabelId" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="subviewsid" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="iconResource" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="moderationMiniIconsInterviewUserList" type="project:moderationMiniIconsInterviewUserList" >
+</xs:element>
+  <xs:complexType name="moderationMiniIconsInterviewUserList" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="colorRectChoose" type="project:colorRectChoose" >
+</xs:element>
+  <xs:complexType name="colorRectChoose" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:colorRectChoosebase">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="verticalMenuIconBar" type="project:verticalMenuIconBar" >
+</xs:element>
+  <xs:complexType name="verticalMenuIconBar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="modi" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="omlegend" type="project:omlegend" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+     simple legend class
+     @access public
+      </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="omlegend" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:drawview">
+      <xs:attribute name="verticalgap" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="topmargin" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="styleBorder" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates the style will be applied tho the border legend box </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="rightmargin" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="position" type="xs:string" default="right" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates where the legend box will be positioned, default: right </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onitemmouseup" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ event that allows custom action for mouse up event
+            @param Number item: The identifier legend item
+         </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onitemmouseover" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ event that allows custom action for mouse over event
+            @param Number item: The identifier legend item
+         </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onitemmouseout" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ event that allows custom action for mouse out event
+            @param Number item: The identifier legend item
+         </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onitemmousedown" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ event that allows custom action for mouse down event
+            @param Number item: The identifier legend item
+         </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onitemmouseclick" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ event that allows custom action for mouse click event
+            @param Number item: The identifier legend item
+         </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendborder" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates if legend box will have a border, default: true </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendFontsize" type="lzx:size" default="6" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates the Font size wiil be used in the legend item text, default: 10px </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendFontcolor" type="lzx:color" default="0x000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates the Font color wiil be used in the legend item text, default: black </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="legendFont" type="xs:string" default="serif" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates the Font will be used in the legend item text </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="leftmargin" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fillColor" type="lzx:color" default="0xFFFFFF" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Allow to set the fill color from the legend tag </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="direction" type="xs:string" default="vertical" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Indicates how the legend items will be displayed, default: vertical </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="chartClassName" type="xs:string" default="${null}" >
+</xs:attribute>
+      <xs:attribute name="chart" type="xs:string" default="${null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Takes the relationship with the chart </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bottommargin" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="borderWidth" type="lzx:number" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Allow to set the line width from the legend tag </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="borderColor" type="lzx:color" default="0x000000" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Allow to set the color line from the legend tag </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videoInfoStuff" type="project:videoInfoStuff" >
+</xs:element>
+  <xs:complexType name="videoInfoStuff" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="documentIconLeftPanel" type="project:documentIconLeftPanel" >
+</xs:element>
+  <xs:complexType name="documentIconLeftPanel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseLeftPanel">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="closableView" type="project:closableView" >
+</xs:element>
+  <xs:complexType name="closableView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="colorRectChooseSmall" type="project:colorRectChooseSmall" >
+</xs:element>
+  <xs:complexType name="colorRectChooseSmall" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:colorRectChoosebase">
+      <xs:attribute name="defaultno" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseDraw" type="project:baseDraw" >
+</xs:element>
+  <xs:complexType name="baseDraw" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="starty" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="startx" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="showGrid" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="selectedObjects" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="restricted" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="redolayers" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="prevy" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="prevx" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="onupdateScale" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onopenWhiteBoard" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="my" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="mx" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="mousetracker_del" type="xs:string" default="$once{ new LzDelegate(this, 'trackmouse' )}" >
+</xs:attribute>
+      <xs:attribute name="layers" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="last_y" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="last_x" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="isSnapToGrid" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isRemoteOID" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ If true it will try to load the ObjectIdentifier Extension from the Server </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="isDragging" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="hasprevious" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="hasenext" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="gridWidth" type="lzx:number" default="24" >
+</xs:attribute>
+      <xs:attribute name="endy" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="endx" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="drawmodus" type="xs:string" default="hand" >
+</xs:attribute>
+      <xs:attribute name="doClearSlide" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="doClearAll" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="currentlayer" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="counter" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="copyObject" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="boundingref" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="boundingIsActive" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="basetempactionobjectList" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="baseredoactionobjectList" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="baseactionobjectList" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="basdrawredoView" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="ObjectByName" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="interviewConferenceRoom" type="project:interviewConferenceRoom" >
+</xs:element>
+  <xs:complexType name="interviewConferenceRoom" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseConferenceRoom">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="multiWhiteboardPanel" type="project:multiWhiteboardPanel" >
+</xs:element>
+  <xs:complexType name="multiWhiteboardPanel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:fixedFileExplorerWhiteBoard">
+      <xs:attribute name="whiteboardId" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="objWhiteboard" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="objMessage" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="listPresentationThumbExplorer" type="project:listPresentationThumbExplorer" >
+</xs:element>
+  <xs:complexType name="listPresentationThumbExplorer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseListPresentationItemExplorer">
+      <xs:attribute name="thumbname" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="no" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseFileExplorerItem" type="project:baseFileExplorerItem" >
+</xs:element>
+  <xs:complexType name="baseFileExplorerItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="singleClickStarted" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="singleClickDelegate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="selected" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="refObjListRoot" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="open" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="mouseDownClickUsed" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="mouseDownClickDelegate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="isVideo" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isTrashCan" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isRoot" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isPresentation" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isOwner" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isMouseDownDragAction" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isImage" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isFolder" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="fileName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="fileIcon" type="xs:string" default="string" >
+</xs:attribute>
+      <xs:attribute name="fileHash" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="fileExplorerItemId" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chooseNickName" type="project:chooseNickName" >
+</xs:element>
+  <xs:complexType name="chooseNickName" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="swfResourceView" type="project:swfResourceView" >
+</xs:element>
+  <xs:complexType name="swfResourceView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="zoomlevel" type="lzx:number" default="20" >
+</xs:attribute>
+      <xs:attribute name="uniqueObjectSyncName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="typeOfObject" type="xs:string" default="swf" >
+</xs:attribute>
+      <xs:attribute name="standardFileName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="slideNumber" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="room" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="recorderModus" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="parentPath" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="moduleName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="innery" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="innerx" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="innerwidth" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="innerheight" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="initwidth" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="initheight" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="fullFit" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="fileName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="domain" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="doSendChangeValue" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="currentzoomFactor" type="lzx:number" default="100" >
+</xs:attribute>
+      <xs:attribute name="currentzoom" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="baseurl" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="alterModus" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="userRoomTabItem" type="project:userRoomTabItem" >
+</xs:element>
+  <xs:complexType name="userRoomTabItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="usertime" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="username" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="user_id" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="cbtext" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="colorRow" type="project:colorRow" >
+</xs:element>
+  <xs:complexType name="colorRow" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="roomClientListItem" type="project:roomClientListItem" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ list of conference/audience rooms </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="roomClientListItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseContentListItem">
+      <xs:attribute name="streamid" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ list of conference/audience rooms </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="scope" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="login" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="dateConnected" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="moderationMiniIcons" type="project:moderationMiniIcons" >
+</xs:element>
+  <xs:complexType name="moderationMiniIcons" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="publicSID" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isSuperModerator" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isMod" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isActive" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="redirectBox" type="project:redirectBox" >
+</xs:element>
+  <xs:complexType name="redirectBox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="timerDel" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="redirectURL" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="maxTime" type="lzx:number" default="5000" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="rememberMessage" type="project:rememberMessage" >
+</xs:element>
+  <xs:complexType name="rememberMessage" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="showCheckBox" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="labeliderror" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="inputtextbox" type="project:inputtextbox" >
+</xs:element>
+  <xs:complexType name="inputtextbox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:inputtext">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="participentsTable" type="project:participentsTable" >
+</xs:element>
+  <xs:complexType name="participentsTable" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseDrawSave" type="project:baseDrawSave" >
+</xs:element>
+  <xs:complexType name="baseDrawSave" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseDrawImage">
+      <xs:attribute name="wmlspreadNews" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="wmlroom" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="wmlfileName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="wmldomain" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="wmlLoadingCompleteMessage" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="w" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="syncmessageId" type="lzx:number" default="207" >
+</xs:attribute>
+      <xs:attribute name="synccheckTime" type="lzx:number" default="1000" >
+</xs:attribute>
+      <xs:attribute name="snap" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="sendpictureName" type="xs:string" default="snapchot.jpg" >
+</xs:attribute>
+      <xs:attribute name="sendURL" type="xs:string" default="http://www.webbase-design.de/dokeos/videoconference/createimagefrombitmap.php" >
+</xs:attribute>
+      <xs:attribute name="sendPartURL" type="xs:string" default="http://www.webbase-design.de/dokeos/videoconference/createimagefrombitmap.php" >
+</xs:attribute>
+      <xs:attribute name="savefileName" type="xs:string" default="savefileName1" >
+</xs:attribute>
+      <xs:attribute name="savefileDataWinRef" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="pixel_del" type="xs:string" default="$once{ new LzDelegate(this, 'buildPixelArray' )}" >
+</xs:attribute>
+      <xs:attribute name="pixelArray" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="onwmlloadStop" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onwmlloadStart" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onprogress" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="loadmessageId" type="lzx:number" default="206" >
+</xs:attribute>
+      <xs:attribute name="loadfileDataWinRef" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="loadfileDataIndex" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="loadfileData" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="loadObjectTimer" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="isinitRecordingLoad" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isSendPartArray" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="isRecordingLoad" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isInitLoader" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="h" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="fileData" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="exportType" type="xs:string" default="svg" >
+</xs:attribute>
+      <xs:attribute name="bpData" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="a" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="MatrixValue" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="MCRef" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="simpleLabelButton" type="project:simpleLabelButton" >
+</xs:element>
+  <xs:complexType name="simpleLabelButton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:button">
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chatTabItem" type="project:chatTabItem" >
+</xs:element>
+  <xs:complexType name="chatTabItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="usertime" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="username" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="usercolor" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="user_id" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="cbtext" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="boundingBoxAll" type="project:boundingBoxAll" >
+</xs:element>
+  <xs:complexType name="boundingBoxAll" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="whiteboardRef" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="startdragY" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="startdragX" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="startdragWidth" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="startdragHeight" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="objRef" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="minwidth" type="xs:string" default="2" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Minimum width for the windowy, default: 60.
+          @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="minheight" type="xs:string" default="2" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Minimum height for the window, default: 50.
+          @keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="innerInsetScrollbars" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="ey" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="ex" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="ewidth" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="eheight" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="doHandlerUpdates" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="canBeResized" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="canBeDragged" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="boundingDoUpdateOnInit" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="saveAsWmlWindow" type="project:saveAsWmlWindow" >
+</xs:element>
+  <xs:complexType name="saveAsWmlWindow" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="fileExplorerWindow" type="project:fileExplorerWindow" >
+</xs:element>
+  <xs:complexType name="fileExplorerWindow" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="contactSearchHead" type="project:contactSearchHead" >
+</xs:element>
+  <xs:complexType name="contactSearchHead" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="uploadWindowExplorer" type="project:uploadWindowExplorer" >
+</xs:element>
+  <xs:complexType name="uploadWindowExplorer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="winobj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="usersid" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="uploadmodule" type="xs:string" default="videoconf1" >
+</xs:attribute>
+      <xs:attribute name="singleslidesmodule_id" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="sessionid" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="servletName" type="xs:string" default="UploadHandler" >
+</xs:attribute>
+      <xs:attribute name="returnObj" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="parentFolderId" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="isdefaultreturn" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="isStarted" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isOwner" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="isOnlyXml" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isOnlyProfile" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isOnlyPpt" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isOnlyImage" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="fileExplorerRef" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="moderationPanel" type="project:moderationPanel" >
+</xs:element>
+  <xs:complexType name="moderationPanel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="roomName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="recordingsName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="recordingUser" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="initial" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="allowUserQuestions" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="presentationFilesList" type="project:presentationFilesList" >
+</xs:element>
+  <xs:complexType name="presentationFilesList" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="uploadmodul" type="xs:string" default="$once{ canvas.uploadmoduleimg }" >
+</xs:attribute>
+      <xs:attribute name="onclose" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="conferencecontainertab" type="project:conferencecontainertab" >
+</xs:element>
+  <xs:complexType name="conferencecontainertab" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="whiteboardMiniButton" type="project:whiteboardMiniButton" >
+</xs:element>
+  <xs:complexType name="whiteboardMiniButton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="zielx" type="lzx:number" default="200" >
+</xs:attribute>
+      <xs:attribute name="zielwidth" type="lzx:number" default="100" >
+</xs:attribute>
+      <xs:attribute name="objRef" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="isactive" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="isHidden" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="btnName" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="labelCheckbox" type="project:labelCheckbox" >
+</xs:element>
+  <xs:complexType name="labelCheckbox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:checkbox">
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseChooseIcon" type="project:baseChooseIcon" >
+</xs:element>
+  <xs:complexType name="baseChooseIcon" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="resourceN" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="labelid" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="isselected" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="initY" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="initX" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawLineTools" type="project:drawLineTools" >
+</xs:element>
+  <xs:complexType name="drawLineTools" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseContentListItem" type="project:baseContentListItem" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ base class for the item list views</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="baseContentListItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="obj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="isselected" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ base class for the item list views</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="imagesListdraw" type="project:imagesListdraw" >
+</xs:element>
+  <xs:complexType name="imagesListdraw" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="uploadmodul" type="xs:string" default="$once{ canvas.uploadmoduleimg }" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="meetingTimer" type="project:meetingTimer" >
+</xs:element>
+  <xs:complexType name="meetingTimer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="roomobj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="demoTime" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chatOutput" type="project:chatOutput" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ chat output specialized for video-conference </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="chatOutput" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="isAlreadyLoaded" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ chat output specialized for video-conference </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="debugPinCode" type="project:debugPinCode" >
+</xs:element>
+  <xs:complexType name="debugPinCode" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="activityListRestrictedRoomApplyForMuteOff" type="project:activityListRestrictedRoomApplyForMuteOff" >
+</xs:element>
+  <xs:complexType name="activityListRestrictedRoomApplyForMuteOff" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseItemActivityList">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="textBoxSubBlank" type="project:textBoxSubBlank" >
+</xs:element>
+  <xs:complexType name="textBoxSubBlank" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:text">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="netremotecall" type="project:netremotecall" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+        Net remote call. 
+        @todo Document netremotecall class.
+    </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="netremotecall" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:node">
+      <xs:attribute name="remotecontext" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="onerror" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Error handling event. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="funcname" type="xs:string" default="$once{null}" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Name of the remote function. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dataobject" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="flexibleConferenceRoom" type="project:flexibleConferenceRoom" >
+</xs:element>
+  <xs:complexType name="flexibleConferenceRoom" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseConferenceRoom">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="menubarButton" type="project:menubarButton" >
+</xs:element>
+  <xs:complexType name="menubarButton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:simpleLabelButton">
+      <xs:attribute name="isselected" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="clientobjectArea" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="clientmaskname" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="_whiteBoardPanelRecord" type="project:_whiteBoardPanelRecord" >
+</xs:element>
+  <xs:complexType name="_whiteBoardPanelRecord" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:guiPresenter">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="validText" type="project:validText" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ A editfieldText with the possibility of a dropdown menu </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="validText" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:edittext">
+      <xs:attribute name="validate_method" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The method to be called for validating </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="typetime" type="lzx:number" default="500" >
+</xs:attribute>
+      <xs:attribute name="timerIsInited" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="timerDelegate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="spacing" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="shownitems" type="lzx:number" default="7" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ items to be shown in the floatinglist </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="resultName" type="xs:string" default="name" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the name-attribute of the resultset </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="resultId" type="xs:string" default="id" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the id-attribute of the resultset </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onselect" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onisopen" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="isopen" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="initSelect" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="currentValue" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="bordersize" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The border size ( in pixels ) of the popup list.  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="autoscrollbar" type="xs:string" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Whether a scrollbar should automatically show up when there are more
+              items than shownitems. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="attachoffset" type="lzx:number" default="-1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The vertical offset of the floatinglist attached to this
+              combobox. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawAreaAlterPosition" type="project:drawAreaAlterPosition" >
+</xs:element>
+  <xs:complexType name="drawAreaAlterPosition" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="objName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="obj" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="calendarDayView" type="project:calendarDayView" >
+</xs:element>
+  <xs:complexType name="calendarDayView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="clickBox" type="project:clickBox" >
+</xs:element>
+  <xs:complexType name="clickBox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecomponent">
+      <xs:attribute name="onvalue" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="isupdateCheck" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="initval" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="colorSlider" type="project:colorSlider" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+      changed by swagner
+  </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="colorSlider" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:slider">
+      <xs:attribute name="doSendValueEvent" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+      changed by swagner
+  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="newWhiteBoard" type="project:newWhiteBoard" >
+</xs:element>
+  <xs:complexType name="newWhiteBoard" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="sendObjectToClientID" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="sendObject" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="room" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="parentPath" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="onsharedMessage" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="objectRef" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="moduleName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isloadingImage" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="isloadedImage" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="initW" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="initH" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="imagey" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="iamgex" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="fileName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="downloadurl" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="domain" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="documentmenuIsInited" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="confirmdialog" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="baseurl" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="vsliderTrack" type="project:vsliderTrack" >
+</xs:element>
+  <xs:complexType name="vsliderTrack" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="netRemoteCallHib" type="project:netRemoteCallHib" >
+</xs:element>
+  <xs:complexType name="netRemoteCallHib" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:netremotecall">
+      <xs:attribute name="showLoading" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ show Error Messages with normal Box </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="sendCallBack" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="returnObj" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ this should be the contentSaveWindow </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="registerObject" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ if true this object will register at the update-observer </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="isCallBackHandler" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ show Error Messages with Callback Box </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="activeErrorHandler" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ show Error Messages with normal Box </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="omlegenditem" type="project:omlegenditem" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private
+    individual legend item </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="omlegenditem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="tBox" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="linevisible" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="identifier" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ @keyword private
+    individual legend item </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawArrowWhiteBoard" type="project:drawArrowWhiteBoard" >
+</xs:element>
+  <xs:complexType name="drawArrowWhiteBoard" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="customScrollEdittext" type="project:customScrollEdittext" >
+</xs:element>
+  <xs:complexType name="customScrollEdittext" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="text" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="ontextChange" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="styleableInput" type="project:styleableInput" >
+</xs:element>
+  <xs:complexType name="styleableInput" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:customInputtext">
+      <xs:attribute name="startAdjustHight" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="setFocusOnInit" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="interviewRoomSidebar" type="project:interviewRoomSidebar" >
+</xs:element>
+  <xs:complexType name="interviewRoomSidebar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="selected" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="restricted" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="listType" type="xs:string" default="eventUserListTable" >
+</xs:attribute>
+      <xs:attribute name="isOpen" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseDrawPointer" type="project:baseDrawPointer" >
+</xs:element>
+  <xs:complexType name="baseDrawPointer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseDrawEllipse">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chartFileExplorerItem" type="project:chartFileExplorerItem" >
+</xs:element>
+  <xs:complexType name="chartFileExplorerItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseFileExplorerItem">
+      <xs:attribute name="isChartFile" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="gridsliderlayout" type="project:gridsliderlayout" >
+</xs:element>
+  <xs:complexType name="gridsliderlayout" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:layout">
+      <xs:attribute name="spacing" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="rows" type="xs:string" default="6" >
+</xs:attribute>
+      <xs:attribute name="positiondel" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="openview" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="openrow_only" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="openrow" type="xs:string" default="-1" >
+</xs:attribute>
+      <xs:attribute name="opencol_only" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="opencol" type="xs:string" default="-1" >
+</xs:attribute>
+      <xs:attribute name="onupdatestop" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onupdatestart" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onopenstart" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onclosestart" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="lastsel" type="xs:string" default="${null}" >
+</xs:attribute>
+      <xs:attribute name="duration" type="xs:string" default="300" >
+</xs:attribute>
+      <xs:attribute name="doanimation" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="displayrow" type="xs:string" default="-1" >
+</xs:attribute>
+      <xs:attribute name="displaymode" type="xs:string" default="grid" >
+</xs:attribute>
+      <xs:attribute name="displaycol" type="xs:string" default="-1" >
+</xs:attribute>
+      <xs:attribute name="cw" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="cols" type="xs:string" default="6" >
+</xs:attribute>
+      <xs:attribute name="ch" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="cellwidth" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="cellheight" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="addedOpenWidth" type="xs:string" default="150" >
+</xs:attribute>
+      <xs:attribute name="addedOpenHeight" type="xs:string" default="170" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseChooseIconView" type="project:baseChooseIconView" >
+</xs:element>
+  <xs:complexType name="baseChooseIconView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="resourceN" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="labelid" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="isselected" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="miniIconSmybolExtraIconsImageMap" type="project:miniIconSmybolExtraIconsImageMap" >
+</xs:element>
+  <xs:complexType name="miniIconSmybolExtraIconsImageMap" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="miniIconsPresenter" type="project:miniIconsPresenter" >
+</xs:element>
+  <xs:complexType name="miniIconsPresenter" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="iconRessourceName" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="calButton" type="project:calButton" >
+</xs:element>
+  <xs:complexType name="calButton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="yadjust" type="lzx:number" default="2" >
+</xs:attribute>
+      <xs:attribute name="rightinset" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="rightcap" type="xs:string" default="oval" >
+</xs:attribute>
+      <xs:attribute name="overRsrcNumber" type="lzx:number" default="2" >
+</xs:attribute>
+      <xs:attribute name="onsafeclick" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="normalRsrcNumber" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="mouseisdown" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="leftinset" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="leftcap" type="xs:string" default="oval" >
+</xs:attribute>
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+      <xs:attribute name="label" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="keepinitialwidth" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="icon" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="enabled" type="xs:string" default="true" >
+</xs:attribute>
+      <xs:attribute name="downRsrcNumber" type="lzx:number" default="3" >
+</xs:attribute>
+      <xs:attribute name="divider" type="lzx:number" default="3" >
+</xs:attribute>
+      <xs:attribute name="deselectRsrcNumber" type="lzx:number" default="4" >
+</xs:attribute>
+      <xs:attribute name="applied" type="xs:string" default="classroot.leftcap == 'rect'" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawChooseSizeRadioT" type="project:drawChooseSizeRadioT" >
+</xs:element>
+  <xs:complexType name="drawChooseSizeRadioT" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:radiogroup">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="confirmCancelPopup" type="project:confirmCancelPopup" >
+</xs:element>
+  <xs:complexType name="confirmCancelPopup" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="makeModal" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="errorlabelid" type="lzx:number" >
+</xs:attribute>
+      <xs:attribute name="error" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="boundingBoxAllRotationMarger" type="project:boundingBoxAllRotationMarger" >
+</xs:element>
+  <xs:complexType name="boundingBoxAllRotationMarger" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="dragStarted" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseTabbarButton" type="project:baseTabbarButton" >
+</xs:element>
+  <xs:complexType name="baseTabbarButton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="labelid" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="restrictedRoomSidebar" type="project:restrictedRoomSidebar" >
+</xs:element>
+  <xs:complexType name="restrictedRoomSidebar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="selected" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="restricted" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="listType" type="xs:string" default="eventUserListTable" >
+</xs:attribute>
+      <xs:attribute name="isOpen" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="presentationPreview" type="project:presentationPreview" >
+</xs:element>
+  <xs:complexType name="presentationPreview" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="refObjList" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="miniButton" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="documentObj" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawClipArtWhiteBoard" type="project:drawClipArtWhiteBoard" >
+</xs:element>
+  <xs:complexType name="drawClipArtWhiteBoard" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="clipArtEndy" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="clipArtEndx" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="allmeetings" type="project:allmeetings" >
+</xs:element>
+  <xs:complexType name="allmeetings" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseContentView">
+      <xs:attribute name="refObjItem" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="finishedTabsQuantity" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="clickedButton" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="dayname" type="project:dayname" >
+</xs:element>
+  <xs:complexType name="dayname" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="modPanel" type="project:modPanel" >
+</xs:element>
+  <xs:complexType name="modPanel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:guiPresenter">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="fillColorChoose" type="project:fillColorChoose" >
+</xs:element>
+  <xs:complexType name="fillColorChoose" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:basePropertySelector">
+      <xs:attribute name="selectedColorTransformedString" type="xs:string" default="0xFFFF33" >
+</xs:attribute>
+      <xs:attribute name="selectedColorDis" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="selectedColor" type="lzx:number" default="0xFFFF33" >
+</xs:attribute>
+      <xs:attribute name="isopen" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="inInitColorSelection" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="colorPickRef" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="colorIsEnabled" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="regexptip" type="project:regexptip" >
+</xs:element>
+  <xs:complexType name="regexptip" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="regexptext" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="fadeDelegate" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="simpleListItem" type="project:simpleListItem" >
+</xs:element>
+  <xs:complexType name="simpleListItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="value" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="text" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="selected" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="xmlCrmTooltip" type="project:xmlCrmTooltip" >
+</xs:element>
+  <xs:complexType name="xmlCrmTooltip" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="text" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="holder" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="documentFileExplorerItem" type="project:documentFileExplorerItem" >
+</xs:element>
+  <xs:complexType name="documentFileExplorerItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseFileExplorerItem">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="verticalMenuIconBarPointer" type="project:verticalMenuIconBarPointer" >
+</xs:element>
+  <xs:complexType name="verticalMenuIconBarPointer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="mainToolsPanelItem" type="project:mainToolsPanelItem" >
+</xs:element>
+  <xs:complexType name="mainToolsPanelItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:blueButton">
+      <xs:attribute name="setSelectionToItem" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="modi" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="labelid" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="conferenceContainerTab" type="project:conferenceContainerTab" >
+</xs:element>
+  <xs:complexType name="conferenceContainerTab" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="uploadTapIsInited" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="membersTapIsInited" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="fadeDelegate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="doBlink" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videoContainerAudience" type="project:videoContainerAudience" >
+</xs:element>
+  <xs:complexType name="videoContainerAudience" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="streams" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="modLoaded" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="allUsers" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawDocumentItem" type="project:drawDocumentItem" >
+</xs:element>
+  <xs:complexType name="drawDocumentItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseChooseIcon">
+      <xs:attribute name="modi" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="simpletimelayout" type="project:simpletimelayout" >
+</xs:element>
+  <xs:complexType name="simpletimelayout" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:layout">
+      <xs:attribute name="viewheight" type="xs:string" default="22" >
+</xs:attribute>
+      <xs:attribute name="enabled" type="xs:string" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chatInnerTextBox" type="project:chatInnerTextBox" >
+</xs:element>
+  <xs:complexType name="chatInnerTextBox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:text">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="_chatInnerSmilyIcon" type="project:_chatInnerSmilyIcon" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ private class of emotIconsSelector.class. resource view of chat smily icons. it shows icons and label tooltips.</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="_chatInnerSmilyIcon" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="iconvalue" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="iconlabel" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ private class of emotIconsSelector.class. resource view of chat smily icons. it shows icons and label tooltips.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="colorRectChoosebase" type="project:colorRectChoosebase" >
+</xs:element>
+  <xs:complexType name="colorRectChoosebase" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="colorchoose" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="loginScreen" type="project:loginScreen" >
+</xs:element>
+  <xs:complexType name="loginScreen" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videoObjectAudience" type="project:videoObjectAudience" >
+</xs:element>
+  <xs:complexType name="videoObjectAudience" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseVideoObject">
+      <xs:attribute name="isAssigned" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="hidePropertyView" type="project:hidePropertyView" >
+</xs:element>
+  <xs:complexType name="hidePropertyView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="activityList" type="project:activityList" >
+</xs:element>
+  <xs:complexType name="activityList" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:basePropertyPanelWhiteboard">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="simpleLabelRoundButton" type="project:simpleLabelRoundButton" >
+</xs:element>
+  <xs:complexType name="simpleLabelRoundButton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:roundrectbutton">
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="blueButton" type="project:blueButton" >
+</xs:element>
+  <xs:complexType name="blueButton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecomponent">
+      <xs:attribute name="y_insetResource" type="lzx:number" default="4" >
+</xs:attribute>
+      <xs:attribute name="x_insetResource" type="lzx:number" default="4" >
+</xs:attribute>
+      <xs:attribute name="width_insetResource" type="lzx:number" default="18" >
+</xs:attribute>
+      <xs:attribute name="resourceItem" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="height_insetResource" type="lzx:number" default="18" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="info_Panel" type="project:info_Panel" >
+</xs:element>
+  <xs:complexType name="info_Panel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:basepanel">
+      <xs:attribute name="startDate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="roomtype" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="rooms_id" type="lzx:number" default="$path{ 'rooms_id/@value'}" >
+</xs:attribute>
+      <xs:attribute name="opened" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="isConnectedEvent" type="lzx:boolean" default="$path{ 'isConnectedEvent/@value' }" >
+</xs:attribute>
+      <xs:attribute name="endDate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="dataapply" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="baseUrl" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="arrayMeetingMember" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="appointementId" type="lzx:number" default="$path{ 'appointementId/@value' }" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="documentToolsPalette" type="project:documentToolsPalette" >
+</xs:element>
+  <xs:complexType name="documentToolsPalette" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="activityListMessageRequest" type="project:activityListMessageRequest" >
+</xs:element>
+  <xs:complexType name="activityListMessageRequest" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:simplebaseItemActivityList">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="interviewVideoBox" type="project:interviewVideoBox" >
+</xs:element>
+  <xs:complexType name="interviewVideoBox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="publicSID" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="messageObject" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="interviewPodId" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="imageListInnerTableExplorer" type="project:imageListInnerTableExplorer" >
+</xs:element>
+  <xs:complexType name="imageListInnerTableExplorer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="dateSelectorWeekNumber" type="project:dateSelectorWeekNumber" >
+</xs:element>
+  <xs:complexType name="dateSelectorWeekNumber" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="weeknumber" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="recordingSaveWin" type="project:recordingSaveWin" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+		Dialog box for recording data.
+		Similar with recordingStartWIn.lzx, but any other class dose not invoke this class.
+		Maybe this class could be deleted.
+	</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="recordingSaveWin" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="recordingsName" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+		Dialog box for recording data.
+		Similar with recordingStartWIn.lzx, but any other class dose not invoke this class.
+		Maybe this class could be deleted.
+	</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chatParticipantsInviteMessage" type="project:chatParticipantsInviteMessage" >
+</xs:element>
+  <xs:complexType name="chatParticipantsInviteMessage" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:guiPresenter">
+      <xs:attribute name="user_id" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="roomId" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="publicSID" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="messageObject" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="conferenceRoomName" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="activityListRestrictedRoomAV" type="project:activityListRestrictedRoomAV" >
+</xs:element>
+  <xs:complexType name="activityListRestrictedRoomAV" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseItemActivityList">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="labeldTextListItem" type="project:labeldTextListItem" >
+</xs:element>
+  <xs:complexType name="labeldTextListItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:textlistitem">
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="interviewUserList" type="project:interviewUserList" >
+</xs:element>
+  <xs:complexType name="interviewUserList" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="organisation_id" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="colorArray" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ colors for each user </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="broadCastViewRef" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ holds a references to the videoview which is broadcasting </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="applyDefaultModeration" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="terminareaWeekView" type="project:terminareaWeekView" >
+</xs:element>
+  <xs:complexType name="terminareaWeekView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="terminObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="description" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="calenderObjRef" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="innerlistViewEventUserListTableWithNames" type="project:innerlistViewEventUserListTableWithNames" >
+</xs:element>
+  <xs:complexType name="innerlistViewEventUserListTableWithNames" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="screenShareCursorObject" type="project:screenShareCursorObject" >
+</xs:element>
+  <xs:complexType name="screenShareCursorObject" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="participantsPanel" type="project:participantsPanel" >
+</xs:element>
+  <xs:complexType name="participantsPanel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:simpleBaseTabpane">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="redoUndoToolsPanelItem" type="project:redoUndoToolsPanelItem" >
+</xs:element>
+  <xs:complexType name="redoUndoToolsPanelItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:mainToolsPanelItem">
+      <xs:attribute name="doredo" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="tempTextBox" type="project:tempTextBox" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+	Contains no microphone or camera Object, this view can only 
+	subscribe to a video or live-stream
+
+ </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="tempTextBox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="isStopped" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+	Contains no microphone or camera Object, this view can only 
+	subscribe to a video or live-stream
+
+ </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="responseForModeration" type="project:responseForModeration" >
+</xs:element>
+  <xs:complexType name="responseForModeration" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="userobject" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="userautoTimerDelegate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="userautoTimerCounter" type="lzx:number" default="31" >
+</xs:attribute>
+      <xs:attribute name="clientId" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="applymessage" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="dragView" type="project:dragView" >
+</xs:element>
+  <xs:complexType name="dragView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="uploadmodul" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="startY" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="startX" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="room" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="parentPath" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="moduleName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="filesid" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="filename" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="fileName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="domain" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="baseurl" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="roomModeratorsRoomClientListItem" type="project:roomModeratorsRoomClientListItem" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ list of ddefault moderators rooms </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="roomModeratorsRoomClientListItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseContentListItem">
+      <xs:attribute name="userId" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="uName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="roomModeratorsId" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ list of ddefault moderators rooms </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="modRoomId" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="isSuperModerator" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="email" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chatParticipants" type="project:chatParticipants" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ it shows chat participants. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="chatParticipants" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="username" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="user_id" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ it shows chat participants. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="publicSID" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="picture_uri" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="connectedSince" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawRectangleTools" type="project:drawRectangleTools" >
+</xs:element>
+  <xs:complexType name="drawRectangleTools" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="verticalDocumentIconBar" type="project:verticalDocumentIconBar" >
+</xs:element>
+  <xs:complexType name="verticalDocumentIconBar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="recordingsViewer" type="project:recordingsViewer" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+	This class shows a play-viewer panel for recording data.
+	When you select and click a recording data from the recording list that is invoked with recordContent.lzx,
+	you can see a big start button on this panel. Then you click it, regording data starts with video/audio panel, 
+	whiteboard panel and files panel.
+</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="recordingsViewer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseContentView">
+      <xs:attribute name="timerDel" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+	This class shows a play-viewer panel for recording data.
+	When you select and click a recording data from the recording list that is invoked with recordContent.lzx,
+	you can see a big start button on this panel. Then you click it, regording data starts with video/audio panel, 
+	whiteboard panel and files panel.
+</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="timeStepSyncing" type="lzx:number" default="500" >
+</xs:attribute>
+      <xs:attribute name="roomobj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="recordingValue" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="initObjectCount" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="downloadUrlWhiteboard" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="currentTime" type="lzx:number" default="-500" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="calenderlistitem" type="project:calenderlistitem" >
+</xs:element>
+  <xs:complexType name="calenderlistitem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="textAttr" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="terminObjRef" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="fixedWhiteboardPanel" type="project:fixedWhiteboardPanel" >
+</xs:element>
+  <xs:complexType name="fixedWhiteboardPanel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:conferenceBox">
+      <xs:attribute name="restricted" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseVideoStream" type="project:baseVideoStream" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+	extends the Video-View with Streaming functions
+ </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="baseVideoStream" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseVideoView">
+      <xs:attribute name="streamName" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="soundRefMC" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Reference To the Sound MovieClip
+		@keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="soundRef" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Reference To the Sound Object
+		@keywords final </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onPlayStatus" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onMetaData" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="mode" type="xs:string" default="play" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This value does indicate if this stream play or broadcasts
+              @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="micro" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This is a reference to the current microphone, only set if broadcasting
+              @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="delay" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="camera" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This is a reference to the current camara, only set if broadcasting
+              @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="bufferTime" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This is the current buffer used, in Live Streaming this MUST be 0
+              @keywords readonly </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="infoTab" type="project:infoTab" >
+</xs:element>
+  <xs:complexType name="infoTab" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basetabelement">
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+      <xs:attribute name="label" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseTabChatPanel" type="project:baseTabChatPanel" >
+</xs:element>
+  <xs:complexType name="baseTabChatPanel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:basePropertyPanel">
+      <xs:attribute name="fadeDelegate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="doBlink" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="copiedTextPopup" type="project:copiedTextPopup" >
+</xs:element>
+  <xs:complexType name="copiedTextPopup" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="error" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="restrictedConferenceRoom" type="project:restrictedConferenceRoom" >
+</xs:element>
+  <xs:complexType name="restrictedConferenceRoom" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseConferenceRoom">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="dateSelectorWeekNumberHeader" type="project:dateSelectorWeekNumberHeader" >
+</xs:element>
+  <xs:complexType name="dateSelectorWeekNumberHeader" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="labelWeekHeader" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="fieldValueForm" type="project:fieldValueForm" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ right block of the LanguageEditor. you can edit the label.</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="fieldValueForm" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseContentSaveView">
+      <xs:attribute name="sendObject" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="fieldvalues_id" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="fieldlanguagesvalues_id" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="lzRecordNavigation" type="project:lzRecordNavigation" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+	View for recorded contents list.
+	When you select 'Recordings' on the top menu, this class shows the list.
+</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="lzRecordNavigation" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="recordingName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="playSelected" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="parentFolderId" type="lzx:number" default="-2" >
+</xs:attribute>
+      <xs:attribute name="isTrashCan" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="isOpen" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+	View for recorded contents list.
+	When you select 'Recordings' on the top menu, this class shows the list.
+</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="currentTrackGroupName" type="xs:string" default="fileExplorer" >
+</xs:attribute>
+      <xs:attribute name="currentRecording" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="currentDragItem" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="alternateName" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="ordnerInhaltHead" type="project:ordnerInhaltHead" >
+</xs:element>
+  <xs:complexType name="ordnerInhaltHead" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="showChatLog" type="project:showChatLog" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+Chat tabpane class. It contains chatOutput-class and catTabBottom-class.
+This is used in the conference.
+</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="showChatLog" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="error" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+Chat tabpane class. It contains chatOutput-class and catTabBottom-class.
+This is used in the conference.
+</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="rssBox" type="project:rssBox" >
+</xs:element>
+  <xs:complexType name="rssBox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="filesPanelStrict" type="project:filesPanelStrict" >
+</xs:element>
+  <xs:complexType name="filesPanelStrict" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:conferenceBox">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="recordingStartWin" type="project:recordingStartWin" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+		Dialog box for recording data.
+		When you click the Recording button on your conference menu, this class shows a dialog box for saving it.
+	</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="recordingStartWin" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="recordingsName" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+		Dialog box for recording data.
+		When you click the Recording button on your conference menu, this class shows a dialog box for saving it.
+	</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="screenSharingDialogContainer" type="project:screenSharingDialogContainer" >
+</xs:element>
+  <xs:complexType name="screenSharingDialogContainer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="toolbarTabList" type="project:toolbarTabList" >
+</xs:element>
+  <xs:complexType name="toolbarTabList" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="selected" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawUlineTools" type="project:drawUlineTools" >
+</xs:element>
+  <xs:complexType name="drawUlineTools" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseDrawPaint" type="project:baseDrawPaint" >
+</xs:element>
+  <xs:complexType name="baseDrawPaint" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseDraw">
+      <xs:attribute name="painttrans" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="currentlayerstroke" type="xs:string" default="0xFF6600" >
+</xs:attribute>
+      <xs:attribute name="currentlayerlineWidth" type="lzx:number" default="2" >
+</xs:attribute>
+      <xs:attribute name="currentlayerOpacity" type="lzx:number" default="1" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="searchResultsAddContact" type="project:searchResultsAddContact" >
+</xs:element>
+  <xs:complexType name="searchResultsAddContact" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="dtmfButton" type="project:dtmfButton" >
+</xs:element>
+  <xs:complexType name="dtmfButton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:button">
+      <xs:attribute name="dtmf" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="confirmationBox" type="project:confirmationBox" >
+</xs:element>
+  <xs:complexType name="confirmationBox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="labeliderror" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="doAskAgain" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="callbackRpcErrorDialog" type="project:callbackRpcErrorDialog" >
+</xs:element>
+  <xs:complexType name="callbackRpcErrorDialog" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:errorDialog">
+      <xs:attribute name="callBackObject" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="emotIconsSelector" type="project:emotIconsSelector" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ view to select emoticons. size is 160x140 </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="emotIconsSelector" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:closableView">
+      <xs:attribute name="btnRef" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ view to select emoticons. size is 160x140 </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="colorpicker" type="project:colorpicker" >
+</xs:element>
+  <xs:complexType name="colorpicker" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:guiPresenter">
+      <xs:attribute name="selectedColor" type="lzx:number" default="0x00aeef" >
+</xs:attribute>
+      <xs:attribute name="btnRef" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="dateField" type="project:dateField" >
+</xs:element>
+  <xs:complexType name="dateField" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="text" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="setDefaultToday" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="enabled" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="additionalDay" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="labelRadioButton" type="project:labelRadioButton" >
+</xs:element>
+  <xs:complexType name="labelRadioButton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:radiobutton">
+      <xs:attribute name="labelid" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="imageFileExplorerItem" type="project:imageFileExplorerItem" >
+</xs:element>
+  <xs:complexType name="imageFileExplorerItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseFileExplorerItem">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="whiteBoard" type="project:whiteBoard" >
+</xs:element>
+  <xs:complexType name="whiteBoard" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="sendObjectToClientID" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="sendObject" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="room" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="parentPath" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="onsharedMessage" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="moduleName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isloadingImage" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="isloadedImage" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="initW" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="initH" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="imagey" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="iamgex" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="fileName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="downloadurl" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="domain" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="documentmenuIsInited" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="confirmdialog" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="baseurl" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="confirmationSingle" type="project:confirmationSingle" >
+</xs:element>
+  <xs:complexType name="confirmationSingle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="showCheckBox" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="refReturnMethod" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="labeliderror" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="changeWidthSliderWin" type="project:changeWidthSliderWin" >
+</xs:element>
+  <xs:complexType name="changeWidthSliderWin" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:closableView">
+      <xs:attribute name="maxvalue" type="lzx:number" default="100" >
+</xs:attribute>
+      <xs:attribute name="initialNumber" type="lzx:number" default="3" >
+</xs:attribute>
+      <xs:attribute name="btnRef" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="mainToolsLeftPanelPointer" type="project:mainToolsLeftPanelPointer" >
+</xs:element>
+  <xs:complexType name="mainToolsLeftPanelPointer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseLeftPanel">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseDrawWords" type="project:baseDrawWords" >
+</xs:element>
+  <xs:complexType name="baseDrawWords" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="inittext" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="initTextName" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="winni" type="project:winni" >
+</xs:element>
+  <xs:complexType name="winni" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:window">
+      <xs:attribute name="roomobj" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="activityListRestrictedRoomApplyForMuteOn" type="project:activityListRestrictedRoomApplyForMuteOn" >
+</xs:element>
+  <xs:complexType name="activityListRestrictedRoomApplyForMuteOn" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseItemActivityList">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videoObjectPlayTestBroadcast" type="project:videoObjectPlayTestBroadcast" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+	contains microphone and camera for broadcasting,
+	this class is used only in Meetings-Modus
+ </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="videoObjectPlayTestBroadcast" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawLetterTools" type="project:drawLetterTools" >
+</xs:element>
+  <xs:complexType name="drawLetterTools" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="innerList" type="project:innerList" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ private class for turnOverList only. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="innerList" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="changeDevice" type="project:changeDevice" >
+</xs:element>
+  <xs:complexType name="changeDevice" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="myalert" type="project:myalert" >
+</xs:element>
+  <xs:complexType name="myalert" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:alert">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videoUserProfilePic" type="project:videoUserProfilePic" >
+</xs:element>
+  <xs:complexType name="videoUserProfilePic" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="value" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="fieldValuesListItem" type="project:fieldValuesListItem" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This class shows label-ID,label name, value.</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="fieldValuesListItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseContentListItem">
+      <xs:attribute name="fieldvalues_id" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ This class shows label-ID,label name, value.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="fieldvalue" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="fieldname" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="createPollWin" type="project:createPollWin" >
+</xs:element>
+  <xs:complexType name="createPollWin" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="polltypesid" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="pollquestion" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="pollname" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="borderedPasswordText" type="project:borderedPasswordText" >
+</xs:element>
+  <xs:complexType name="borderedPasswordText" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="tvalue" type="xs:string" default="default" >
+</xs:attribute>
+      <xs:attribute name="sendchange" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="multiline" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="maxlength" type="lzx:number" default="null" >
+</xs:attribute>
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+      <xs:attribute name="editable" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="checkIsNumber" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="checkIsDouble" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="errorModeratorPopup" type="project:errorModeratorPopup" >
+</xs:element>
+  <xs:complexType name="errorModeratorPopup" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="error" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="openmeetingsTabButton" type="project:openmeetingsTabButton" >
+</xs:element>
+  <xs:complexType name="openmeetingsTabButton" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:roundRectGradient">
+      <xs:attribute name="labelid" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="iconresourcename" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="fixedWhiteBoard" type="project:fixedWhiteBoard" >
+</xs:element>
+  <xs:complexType name="fixedWhiteBoard" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="timeisInited" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="sendUpdate" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="sendObjectToClientID" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="sendObjectDel" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="sendObject" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="room" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="restricted" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="parentPath" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="onsharedMessage" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="objectRef" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="moduleName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isloadingImage" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="isloadedImage" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="initW" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="initH" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="imagey" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="ignoreUpdates" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="iamgex" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="fileName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="downloadurl" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="domain" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="documentmenuIsInited" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="confirmdialog" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="baseurl" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="basicturnoverlistheaderitem" type="project:basicturnoverlistheaderitem" >
+</xs:element>
+  <xs:complexType name="basicturnoverlistheaderitem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:simpleLabelButton">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseListPresentationItem" type="project:baseListPresentationItem" >
+</xs:element>
+  <xs:complexType name="baseListPresentationItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="uploadmoduleimgfolder" type="xs:string" default="$once{ canvas.uploadmoduleimgfolder }" >
+</xs:attribute>
+      <xs:attribute name="uploadmodul" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="selectable" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="isselected" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isoriginal" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="viewUserProfile" type="project:viewUserProfile" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ User Profile Setting Panel </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="viewUserProfile" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="userObject" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ User Profile Setting Panel </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="listOfUsers" type="project:listOfUsers" >
+</xs:element>
+  <xs:complexType name="listOfUsers" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="subitemsListItem" type="project:subitemsListItem" >
+</xs:element>
+  <xs:complexType name="subitemsListItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="textvalue" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="selected" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="list" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="isopen" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isleaf" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="action" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="eventUserListTableWithNames" type="project:eventUserListTableWithNames" >
+</xs:element>
+  <xs:complexType name="eventUserListTableWithNames" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="horizontalDocumentIconBar" type="project:horizontalDocumentIconBar" >
+</xs:element>
+  <xs:complexType name="horizontalDocumentIconBar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="sendSelection" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="multiWhiteBoard" type="project:multiWhiteBoard" >
+</xs:element>
+  <xs:complexType name="multiWhiteBoard" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="sendObjectToClientID" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="sendObject" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="room" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="parentPath" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="onsharedMessage" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="objectRef" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="moduleName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isloadingImage" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="isloadedImage" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="initW" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="initH" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="imagey" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="iamgex" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="fileName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="downloadurl" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="domain" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="documentmenuIsInited" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="confirmdialog" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="baseurl" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="headerMenu" type="project:headerMenu" >
+</xs:element>
+  <xs:complexType name="headerMenu" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="sharingFrame" type="project:sharingFrame" >
+</xs:element>
+  <xs:complexType name="sharingFrame" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="sharingStarted" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="initSrc" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="bufferIndex" type="lzx:number" default="1" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawChooseModir" type="project:drawChooseModir" >
+</xs:element>
+  <xs:complexType name="drawChooseModir" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseChooseIcon">
+      <xs:attribute name="modi" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isSelectablemodi" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="listPpt" type="project:listPpt" >
+</xs:element>
+  <xs:complexType name="listPpt" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:text">
+      <xs:attribute name="uploadmodul" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isPpt" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="filenamePure" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="filename" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="ext" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chooseDrawAreaObjectCombobox" type="project:chooseDrawAreaObjectCombobox" >
+</xs:element>
+  <xs:complexType name="chooseDrawAreaObjectCombobox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:basecombobox">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="listV" type="xs:string" default="${ this.parent.listV }" >
+</xs:attribute>
+      <xs:attribute name="ObjectByName" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="whiteBoardPointer" type="project:whiteBoardPointer" >
+</xs:element>
+  <xs:complexType name="whiteBoardPointer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="userName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="fadeDelegate" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="dateSelector" type="project:dateSelector" >
+</xs:element>
+  <xs:complexType name="dateSelector" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseDateSelector">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="documentMenu" type="project:documentMenu" >
+</xs:element>
+  <xs:complexType name="documentMenu" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseToolbarMenu">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="myView" type="project:myView" >
+</xs:element>
+  <xs:complexType name="myView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:drawview">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseDrawLetter" type="project:baseDrawLetter" >
+</xs:element>
+  <xs:complexType name="baseDrawLetter" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseDrawObject">
+      <xs:attribute name="letterObjectIsActive" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="italic" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="edittextLetterObject" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="edittextLetter" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="currentletterObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="currentlayerstyle" type="xs:string" default="plain" >
+</xs:attribute>
+      <xs:attribute name="currentlayersize" type="lzx:number" default="12" >
+</xs:attribute>
+      <xs:attribute name="currentlayerletter" type="xs:string" default="0x000000" >
+</xs:attribute>
+      <xs:attribute name="bold" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="_labelMenuItem" type="project:_labelMenuItem" >
+</xs:element>
+  <xs:complexType name="_labelMenuItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:menuitem">
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="userItem" type="project:userItem" >
+</xs:element>
+  <xs:complexType name="userItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="username" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="streamid" type="xs:string" default="0" >
+</xs:attribute>
+      <xs:attribute name="hasAnswered" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="answer" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="vslider" type="project:vslider" >
+</xs:element>
+  <xs:complexType name="vslider" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="switchaxis" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ switchaxis true means minimum-value is 
+            t op maximum is bottom false turns around </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showvalue" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ showvalue should the slider show the numbers of min/max </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="showrange" type="lzx:boolean" default="true" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Showrange should the slidertrack be with color while 'sliding' </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="minvalue" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Minimum Value </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="maxvalue" type="lzx:number" default="100" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Maximum Value </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="initvalue" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseDrawLine" type="project:baseDrawLine" >
+</xs:element>
+  <xs:complexType name="baseDrawLine" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseDrawPaint">
+      <xs:attribute name="currentlinestroke" type="xs:string" default="0xFF6600" >
+</xs:attribute>
+      <xs:attribute name="currentlinelineWidth" type="lzx:number" default="2" >
+</xs:attribute>
+      <xs:attribute name="currentlineOpacity" type="lzx:number" default="1" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="eventUserListItem" type="project:eventUserListItem" >
+</xs:element>
+  <xs:complexType name="eventUserListItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="withNames" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="userroom" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="username" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="user_id" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="streamid" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="maxWidth" type="lzx:number" default="82" >
+</xs:attribute>
+      <xs:attribute name="maxHeight" type="lzx:number" default="72" >
+</xs:attribute>
+      <xs:attribute name="lastname" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isSuperModerator" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isSelected" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isMod" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="initWidth" type="lzx:number" default="42" >
+</xs:attribute>
+      <xs:attribute name="formatedDate" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="firstname" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="connectedSince" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="whiteBoardTextField" type="project:whiteBoardTextField" >
+</xs:element>
+  <xs:complexType name="whiteBoardTextField" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:text">
+      <xs:attribute name="typeOfObject" type="xs:string" default="text" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="mainToolsVPanelSeperator" type="project:mainToolsVPanelSeperator" >
+</xs:element>
+  <xs:complexType name="mainToolsVPanelSeperator" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="participentList" type="project:participentList" >
+</xs:element>
+  <xs:complexType name="participentList" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="sortType" type="xs:string" default="alphabetical" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="searchContactInCalendar" type="project:searchContactInCalendar" >
+</xs:element>
+  <xs:complexType name="searchContactInCalendar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="userId" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="nachname" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="meetingMemberId" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="email" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="moderationMiniIconRestricted" type="project:moderationMiniIconRestricted" >
+</xs:element>
+  <xs:complexType name="moderationMiniIconRestricted" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="publicSID" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isSuperModerator" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isMod" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isActive" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="_recorderProgressBar" type="project:_recorderProgressBar" >
+</xs:element>
+  <xs:complexType name="_recorderProgressBar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="_videoBoardStreamEvent" type="project:_videoBoardStreamEvent" >
+</xs:element>
+  <xs:complexType name="_videoBoardStreamEvent" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:guiPresenter">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="labelText" type="project:labelText" >
+</xs:element>
+  <xs:complexType name="labelText" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:text">
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="roomListDetails" type="project:roomListDetails" >
+</xs:element>
+  <xs:complexType name="roomListDetails" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="roomname" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="roomid" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="roomcomment" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="currentusers" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="errorDialog" type="project:errorDialog" >
+</xs:element>
+  <xs:complexType name="errorDialog" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseErrorDialog">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="confirmDeleteWindow" type="project:confirmDeleteWindow" >
+</xs:element>
+  <xs:complexType name="confirmDeleteWindow" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="messagelabelid" type="lzx:number" default="153" >
+</xs:attribute>
+      <xs:attribute name="confirmlabelid" type="lzx:number" default="154" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="restrictedUserListInner" type="project:restrictedUserListInner" >
+</xs:element>
+  <xs:complexType name="restrictedUserListInner" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseRoomInnerList">
+      <xs:attribute name="sortType" type="xs:string" default="alphabetical" >
+</xs:attribute>
+      <xs:attribute name="selectedItem" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="resizeDelegateStarted" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="resizeDelegate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="renderDelegateStarted" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="renderDelegate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="listType" type="xs:string" default="eventUserListTable" >
+</xs:attribute>
+      <xs:attribute name="isLoaded" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="currentSelectedIndex" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="searchResultsContact" type="project:searchResultsContact" >
+</xs:element>
+  <xs:complexType name="searchResultsContact" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="bigTextListItem" type="project:bigTextListItem" >
+</xs:element>
+  <xs:complexType name="bigTextListItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:textlistitem">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="interviewUserListItem" type="project:interviewUserListItem" >
+</xs:element>
+  <xs:complexType name="interviewUserListItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="userroom" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="username" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="user_id" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="streamid" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="lastname" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isSuperModerator" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isSelected" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isMod" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="formatedDate" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="firstname" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="connectedSince" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseVideoView" type="project:baseVideoView" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ 
+	This class provides the basic functions for the video-output
+	
+	    @START_CODE
+            &lt;baseVideoView x="20" y="20" width="320" height="240" bgcolor="black" /&gt;
+        @END_CODE	
+ </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="baseVideoView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="weekView" type="project:weekView" >
+</xs:element>
+  <xs:complexType name="weekView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="dayNamesLabelIds" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="dayLabelNamesLabelIds" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="myScheduledMeetings" type="project:myScheduledMeetings" >
+</xs:element>
+  <xs:complexType name="myScheduledMeetings" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseContentView">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chatParticipantsInviteNotification" type="project:chatParticipantsInviteNotification" >
+</xs:element>
+  <xs:complexType name="chatParticipantsInviteNotification" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:guiPresenter">
+      <xs:attribute name="usermessage" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="roomId" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="publicSID" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="messageObject" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="conferenceRoomName" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="dateSelectorWeek" type="project:dateSelectorWeek" >
+</xs:element>
+  <xs:complexType name="dateSelectorWeek" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseDateSelectorComponent">
+      <xs:attribute name="firstweekddaydate" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawSimpleClick" type="project:drawSimpleClick" >
+</xs:element>
+  <xs:complexType name="drawSimpleClick" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseChooseIcon">
+      <xs:attribute name="modi" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="advancedRoomSettings" type="project:advancedRoomSettings" >
+</xs:element>
+  <xs:complexType name="advancedRoomSettings" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="uploadTab" type="project:uploadTab" >
+</xs:element>
+  <xs:complexType name="uploadTab" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:simpleBaseTabpane">
+      <xs:attribute name="sortOrder" type="xs:string" default="file" >
+</xs:attribute>
+      <xs:attribute name="preButton" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="currentFilesValue" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="ascFile" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="ascDate" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseDateSelectorComponent" type="project:baseDateSelectorComponent" >
+</xs:element>
+  <xs:complexType name="baseDateSelectorComponent" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="weekclass" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="showingdate" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="showcalenderweek" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="showcalendermonth" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="monthclass" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="daynumbers" type="xs:string" default="[0,1,2,3,4,5,6]" >
+</xs:attribute>
+      <xs:attribute name="dayclass" type="xs:string" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="simpleValueList" type="project:simpleValueList" >
+</xs:element>
+  <xs:complexType name="simpleValueList" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="onselect" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="multiselect" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="itemclassname" type="xs:string" default="simpleListItem" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="simplebasetabpane" type="project:simplebasetabpane" >
+</xs:element>
+  <xs:complexType name="simplebasetabpane" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseLeftPanel" type="project:baseLeftPanel" >
+</xs:element>
+  <xs:complexType name="baseLeftPanel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseBoundingBorderView">
+      <xs:attribute name="title" type="xs:string" default="basePanel" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Title of this window </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+      <xs:attribute name="closable" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ if this Box should be closeable </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="imageForDrawView" type="project:imageForDrawView" >
+</xs:element>
+  <xs:complexType name="imageForDrawView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:image">
+      <xs:attribute name="uniqueObjectSyncName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="typeOfObject" type="xs:string" default="image" >
+</xs:attribute>
+      <xs:attribute name="room" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="remotewidth" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="remoteheight" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="recorderModus" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="parentPath" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="moduleName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isLocalSync" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="fileName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="downloadurl" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="domain" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="baseurl" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="alterModus" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="dynamicCombobox" type="project:dynamicCombobox" >
+</xs:element>
+  <xs:complexType name="dynamicCombobox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:baseformitem">
+      <xs:attribute name="onselect" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="isCountryCombobox" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="propertyPanel" type="project:propertyPanel" >
+</xs:element>
+  <xs:complexType name="propertyPanel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:basePropertyPanel">
+      <xs:attribute name="sendSelection" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="ignoreUpdates" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseDrawArrow" type="project:baseDrawArrow" >
+</xs:element>
+  <xs:complexType name="baseDrawArrow" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseDrawULine">
+      <xs:attribute name="currentdrawarrowlinestrokeFillDis" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="currentdrawarrowlinestrokeFill" type="xs:string" default="0xFF6600" >
+</xs:attribute>
+      <xs:attribute name="currentdrawarrowlinestrokeDis" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="currentdrawarrowlinestroke" type="xs:string" default="0x000000" >
+</xs:attribute>
+      <xs:attribute name="currentdrawarrowlinelineWidth" type="lzx:number" default="4" >
+</xs:attribute>
+      <xs:attribute name="currentdrawarrowOpacity" type="lzx:number" default="1" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseDrawObject" type="project:baseDrawObject" >
+</xs:element>
+  <xs:complexType name="baseDrawObject" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseDrawPointer">
+      <xs:attribute name="newSlideNumber" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="modernToolbar" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="fullFit" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseContentView" type="project:baseContentView" >
+</xs:element>
+  <xs:complexType name="baseContentView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="sendInit" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="ontabcontentleave" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="destroyByMethod" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="innerlistViewEventUserListTable" type="project:innerlistViewEventUserListTable" >
+</xs:element>
+  <xs:complexType name="innerlistViewEventUserListTable" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="terminarea" type="project:terminarea" >
+</xs:element>
+  <xs:complexType name="terminarea" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="terminObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="isActive" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="calenderObjRef" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="arrayMeetingMember" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="calendar_day" type="project:calendar_day" >
+</xs:element>
+  <xs:complexType name="calendar_day" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="year" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="startdate" type="xs:string" default="1" >
+</xs:attribute>
+      <xs:attribute name="pixels_per_hour" type="xs:string" default="22" >
+</xs:attribute>
+      <xs:attribute name="opened" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="newYear" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="newMonth" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="newDay" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="month" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="eventwidth" type="xs:string" default="${details.bgrect.width - ( this.opened ? 38 : 0 )}" >
+</xs:attribute>
+      <xs:attribute name="enddate" type="xs:string" default="1" >
+</xs:attribute>
+      <xs:attribute name="dayOfMonth" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="asyncNew" type="xs:string" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="inviteMainWindow" type="project:inviteMainWindow" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+		This class shows a invitation window with clicking button which is located in video and audio panel.
+	</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="inviteMainWindow" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="roomType" type="xs:string" default="conference" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+		This class shows a invitation window with clicking button which is located in video and audio panel.
+	</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="baseUrl" type="xs:string" default="http://www.denic.de" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="resultPieCharPoll" type="project:resultPieCharPoll" >
+</xs:element>
+  <xs:complexType name="resultPieCharPoll" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:ompiechart">
+      <xs:attribute name="yseries" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="xseries" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="tooltipseries" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseItemActivityList" type="project:baseItemActivityList" >
+</xs:element>
+  <xs:complexType name="baseItemActivityList" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="tStamp" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="rcl" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="message" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="labelidToolTipOkButton" type="lzx:number" default="1360" >
+</xs:attribute>
+      <xs:attribute name="labelidToolTipDenyButton" type="lzx:number" default="1361" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videoContainer" type="project:videoContainer" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+        Container view including all audio/video - views for a Meeting
+        
+        @keywords deprecated see participents.lzx
+ </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="videoContainer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="colorArray" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ colors for each user </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="broadCastViewRef" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ holds a references to the videoview which is broadcasting </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="roomListItem" type="project:roomListItem" >
+</xs:element>
+  <xs:complexType name="roomListItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="starttime" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="roomname" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="roomid" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="roomcomment" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="roomType" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="roomClassName" type="xs:string" default="conferenceView" >
+</xs:attribute>
+      <xs:attribute name="obj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="maxUsers" type="lzx:number" default="4" >
+</xs:attribute>
+      <xs:attribute name="ispublic" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isaudience" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="currentusers" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="checkForMaxUsers" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="sipLoader" type="project:sipLoader" >
+</xs:element>
+  <xs:complexType name="sipLoader" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="countryCombobox" type="project:countryCombobox" >
+</xs:element>
+  <xs:complexType name="countryCombobox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:resetCombobox">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="doUpdate" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="audienceView" type="project:audienceView" >
+</xs:element>
+  <xs:complexType name="audienceView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseContentView">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseContentSaveView" type="project:baseContentSaveView" >
+</xs:element>
+  <xs:complexType name="baseContentSaveView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseContentView">
+      <xs:attribute name="saveIsVisible" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="refreshIsVisible" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="onreload" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="onnew" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="ondelete" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="observerViews" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="deleteIsVisible" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="confirmMessageLabelId" type="lzx:number" default="661" >
+</xs:attribute>
+      <xs:attribute name="addIsVisible" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="conferenceBox" type="project:conferenceBox" >
+</xs:element>
+  <xs:complexType name="conferenceBox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="textInset" type="lzx:number" default="10" >
+</xs:attribute>
+      <xs:attribute name="labelid" type="lzx:number" >
+</xs:attribute>
+      <xs:attribute name="isopen" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="initHeight" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="headerText" type="xs:string" default="Users" >
+</xs:attribute>
+      <xs:attribute name="closedHeight" type="lzx:number" default="40" >
+</xs:attribute>
+      <xs:attribute name="closeable" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="interviewListTable" type="project:interviewListTable" >
+</xs:element>
+  <xs:complexType name="interviewListTable" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="calendarWindow" type="project:calendarWindow" >
+</xs:element>
+  <xs:complexType name="calendarWindow" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="fieldRef" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="horizontalMenuIconBar" type="project:horizontalMenuIconBar" >
+</xs:element>
+  <xs:complexType name="horizontalMenuIconBar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="modi" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="recordListItem" type="project:recordListItem" >
+</xs:element>
+  <xs:complexType name="recordListItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseContentListItem">
+      <xs:attribute name="valueName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="value" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseDrawTriangle" type="project:baseDrawTriangle" >
+</xs:element>
+  <xs:complexType name="baseDrawTriangle" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseDrawClipArt">
+      <xs:attribute name="currenttrianglestrokeFillDis" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="currenttrianglestrokeFill" type="xs:string" default="0xFFFF33" >
+</xs:attribute>
+      <xs:attribute name="currenttrianglestrokeDis" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="currenttrianglestroke" type="xs:string" default="0xFF6600" >
+</xs:attribute>
+      <xs:attribute name="currenttriangleineWidth" type="lzx:number" default="4" >
+</xs:attribute>
+      <xs:attribute name="currenttriangleOpacity" type="lzx:number" default="1" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="explorerBox" type="project:explorerBox" >
+</xs:element>
+  <xs:complexType name="explorerBox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="title" type="xs:string" default="defaulttitle" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ The Title of this Box </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="resizeable" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ if this Box should be resizeable  </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onclose" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the Event will be thrown if you close the Box </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="dockingbarrier" type="lzx:number" default="15" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Hard to explain but its clear if you play around 
+		with that. Its the number of minimum pixels before 
+		the "docking" effect will be there </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="docking" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Can this Box be docked to others and 
+			the width/height of parent compoent barrier </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="closable" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ if this Box should be closeable </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="documentPanelVPanelSeperator" type="project:documentPanelVPanelSeperator" >
+</xs:element>
+  <xs:complexType name="documentPanelVPanelSeperator" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="viewUserProfileWindow" type="project:viewUserProfileWindow" >
+</xs:element>
+  <xs:complexType name="viewUserProfileWindow" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:guiPresenter">
+      <xs:attribute name="userId" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="syncWin" type="project:syncWin" >
+</xs:element>
+  <xs:complexType name="syncWin" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelText">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="labeliderror" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="simpleBaseTabpane" type="project:simpleBaseTabpane" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Tabpane. it used by chat. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="simpleBaseTabpane" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="listPresentationFilePDFExplorer" type="project:listPresentationFilePDFExplorer" >
+</xs:element>
+  <xs:complexType name="listPresentationFilePDFExplorer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseListPresentationItemExplorer">
+      <xs:attribute name="swfName" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="pdfname" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="calendarMonthView" type="project:calendarMonthView" >
+</xs:element>
+  <xs:complexType name="calendarMonthView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="fullDate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="daydate" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="countsubwievs" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="miniIconSmybolExtraIconsSeparator" type="project:miniIconSmybolExtraIconsSeparator" >
+</xs:element>
+  <xs:complexType name="miniIconSmybolExtraIconsSeparator" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="title" type="xs:string" default="title" >
+</xs:attribute>
+      <xs:attribute name="isopen" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="restrictedConferenceMenubar" type="project:restrictedConferenceMenubar" >
+</xs:element>
+  <xs:complexType name="restrictedConferenceMenubar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:menubar">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="autoloaderBarOnly" type="project:autoloaderBarOnly" >
+</xs:element>
+  <xs:complexType name="autoloaderBarOnly" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="step" type="lzx:number" default="100" >
+</xs:attribute>
+      <xs:attribute name="start" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="maxwidth" type="lzx:number" default="100" >
+</xs:attribute>
+      <xs:attribute name="maxsteps" type="lzx:number" default="19" >
+</xs:attribute>
+      <xs:attribute name="max" type="lzx:number" default="1300" >
+</xs:attribute>
+      <xs:attribute name="currentsteps" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="documentIconTopPanel" type="project:documentIconTopPanel" >
+</xs:element>
+  <xs:complexType name="documentIconTopPanel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseTopPanel">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="commonVideoViewContent" type="project:commonVideoViewContent" >
+</xs:element>
+  <xs:complexType name="commonVideoViewContent" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="restrictedUserListItem" type="project:restrictedUserListItem" >
+</xs:element>
+  <xs:complexType name="restrictedUserListItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:basePagingListItem">
+      <xs:attribute name="userroom" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="userpicView" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="userpicURL" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="username" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="user_id" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="streamid" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="selfItem" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="micMuted" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="lastname" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isSuperModerator" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isMod" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isBroadcasting" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="formatedDate" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="firstname" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="connectedSince" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="canShare" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="canRemote" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="canDraw" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="folderFileExplorerItem" type="project:folderFileExplorerItem" >
+</xs:element>
+  <xs:complexType name="folderFileExplorerItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseFileExplorerItem">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="iconView" type="project:iconView" >
+</xs:element>
+  <xs:complexType name="iconView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="enabled" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="enterExternMember" type="project:enterExternMember" >
+</xs:element>
+  <xs:complexType name="enterExternMember" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="interviewVideoChooseUser" type="project:interviewVideoChooseUser" >
+</xs:element>
+  <xs:complexType name="interviewVideoChooseUser" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:guiPresenter">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videoEventContainerStream" type="project:videoEventContainerStream" >
+</xs:element>
+  <xs:complexType name="videoEventContainerStream" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseVideoObject" type="project:baseVideoObject" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+	Base container for a client, can be either:
+	a remote-video (subscribing/playing a video)
+	or a self-video (broadcasting a cam/mic)
+ </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="baseVideoObject" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="usercolor" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ color of this user, this is the color the user will also use for his chat-color </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="respectRatio" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="publicSID" type="xs:string" default="" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ publicSID is a hash-value to identify a user </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="minimized" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="micMuted" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ micMuted indicates if the microphone is currently turned sound or gain to 0 </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="isload" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="isShowMicMute" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isMutedByModerator" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="initW" type="lzx:number" default="40" >
+</xs:attribute>
+      <xs:attribute name="initH" type="lzx:number" default="40" >
+</xs:attribute>
+      <xs:attribute name="hidebyAudioOnly" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="custom" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="messageWin" type="project:messageWin" >
+</xs:element>
+  <xs:complexType name="messageWin" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="labeliderror" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="conferenceRoomSidebar" type="project:conferenceRoomSidebar" >
+</xs:element>
+  <xs:complexType name="conferenceRoomSidebar" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="selected" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="isOpen" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="ompiechart" type="project:ompiechart" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+          A pie chart represents a chart that is displayed in the 2D
+          polar plane. This class inherits immediately from chart class
+          and can be instantiated directly. (Warning: Of beta quality.)
+          @access public
+          </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="ompiechart" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:chart">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="eventUserList" type="project:eventUserList" >
+</xs:element>
+  <xs:complexType name="eventUserList" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="userNewVideoContainer" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="organisation_id" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="listType" type="xs:string" default="eventUserListTable" >
+</xs:attribute>
+      <xs:attribute name="colorArray" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ colors for each user </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="broadCastViewRef" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ holds a references to the videoview which is broadcasting </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="applyDefaultModeration" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="allowUserQuestions" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="comoboxListItemNoHeaders" type="project:comoboxListItemNoHeaders" >
+</xs:element>
+  <xs:complexType name="comoboxListItemNoHeaders" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:basePagingListItem">
+      <xs:attribute name="text" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="activityListRestrictedRoomModeration" type="project:activityListRestrictedRoomModeration" >
+</xs:element>
+  <xs:complexType name="activityListRestrictedRoomModeration" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseItemActivityList">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="turnOverListHeaderItemOrdered" type="project:turnOverListHeaderItemOrdered" >
+</xs:element>
+  <xs:complexType name="turnOverListHeaderItemOrdered" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:turnoverlistheaderitemResize">
+      <xs:attribute name="orderBy" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isSelected" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="asc" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="browserjavascriptcallback" type="project:browserjavascriptcallback" >
+</xs:element>
+  <xs:complexType name="browserjavascriptcallback" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="value" type="xs:string" >
+</xs:attribute>
+      <xs:attribute name="timer" type="lzx:number" default="10" >
+</xs:attribute>
+      <xs:attribute name="prevalue" type="xs:string" default="_browserjavascriptcallbackprevalue" >
+</xs:attribute>
+      <xs:attribute name="lzappId" type="xs:string" default="lzapp" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chooseOrganisationWindow" type="project:chooseOrganisationWindow" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Organization choice modal window when an organization is added to a user.</xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="chooseOrganisationWindow" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="item_id" type="lzx:number" default="0" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Organization choice modal window when an organization is added to a user.</xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="documentPanelHPanelSeperator" type="project:documentPanelHPanelSeperator" >
+</xs:element>
+  <xs:complexType name="documentPanelHPanelSeperator" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="lineColorChoose" type="project:lineColorChoose" >
+</xs:element>
+  <xs:complexType name="lineColorChoose" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:basePropertySelector">
+      <xs:attribute name="selectedColorTransformedString" type="xs:string" default="0xFF6600" >
+</xs:attribute>
+      <xs:attribute name="selectedColorDis" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="selectedColor" type="lzx:number" default="0xFF6600" >
+</xs:attribute>
+      <xs:attribute name="isopen" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="inInitColorSelection" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="colorPickRef" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="colorIsEnabled" type="lzx:boolean" default="true" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="resetCombobox" type="project:resetCombobox" >
+</xs:element>
+  <xs:complexType name="resetCombobox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:combobox">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="recordListitem" type="project:recordListitem" >
+</xs:element>
+  <xs:complexType name="recordListitem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="fileUpload" type="project:fileUpload" >
+</xs:element>
+  <xs:complexType name="fileUpload" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="isOnlyZip" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isOnlyXml" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isOnlyProfile" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isOnlyPpt" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isOnlyImage" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="fr" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseBoundingBorderView" type="project:baseBoundingBorderView" >
+</xs:element>
+  <xs:complexType name="baseBoundingBorderView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="verticalClassActive" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="vWidth" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="vHeight" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="topClassPanel" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="rightClassPanel" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="preclose" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ extra Event for this kind of view
+		will be thrown before the view inits new </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="onclose" type="xs:string" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ the Event will be thrown if you close the Box </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="mousetracker_del" type="xs:string" default="$once{ new LzDelegate(this, 'checkStaticBorders' )}" >
+</xs:attribute>
+      <xs:attribute name="leftClassPanel" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="hasshadow" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="hWidth" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="hHeight" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="dockingbarrier" type="lzx:number" default="15" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Hard to explain but its clear if you play around 
+		with that. Its the number of minimum pixels before 
+		the "docking" effect will be there </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="docking" type="lzx:boolean" default="false" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Can this Box be docked to others and 
+			the width/height of parent compoent barrier </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="currentBoundingBox" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="boundingbarrier" type="lzx:number" default="2" >
+</xs:attribute>
+      <xs:attribute name="bottomClassPanel" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="activationVClassBounding" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="activationClassBounding" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="listImageDrag" type="project:listImageDrag" >
+</xs:element>
+  <xs:complexType name="listImageDrag" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="uploadmodul" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isPpt" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="filenamePure" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="filename" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="ext" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="modernWhiteBoardPanel" type="project:modernWhiteBoardPanel" >
+</xs:element>
+  <xs:complexType name="modernWhiteBoardPanel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:conferenceBox">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="miniIconSmybolExtraIconsContainer" type="project:miniIconSmybolExtraIconsContainer" >
+</xs:element>
+  <xs:complexType name="miniIconSmybolExtraIconsContainer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:text">
+      <xs:attribute name="toolTipReference" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isopen" type="lzx:boolean" default="true" >
+</xs:attribute>
+      <xs:attribute name="iconList" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="folderName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="fName" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="calcItem" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="contentSaveWindow" type="project:contentSaveWindow" >
+</xs:element>
+  <xs:complexType name="contentSaveWindow" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseErrorDialog">
+      <xs:attribute name="saveObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="processNextIndex" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="listPresentationFileOrig" type="project:listPresentationFileOrig" >
+</xs:element>
+  <xs:complexType name="listPresentationFileOrig" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:listPresentationFilePDF">
+      <xs:attribute name="originalName" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="turnOverListPaged" type="project:turnOverListPaged" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ common TurnOverList view class. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="turnOverListPaged" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseturnOverListPaged">
+      <xs:attribute name="sendEventToReload" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="drawDocumentPanelItem" type="project:drawDocumentPanelItem" >
+</xs:element>
+  <xs:complexType name="drawDocumentPanelItem" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:blueButton">
+      <xs:attribute name="modi" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="labelid" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="remoteUserDetails" type="project:remoteUserDetails" >
+</xs:element>
+  <xs:complexType name="remoteUserDetails" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="mainToolsTopPanel" type="project:mainToolsTopPanel" >
+</xs:element>
+  <xs:complexType name="mainToolsTopPanel" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseTopPanel">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="flexibleEventRoom" type="project:flexibleEventRoom" >
+</xs:element>
+  <xs:complexType name="flexibleEventRoom" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseConferenceRoom">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="appointmentMembers" type="project:appointmentMembers" >
+</xs:element>
+  <xs:complexType name="appointmentMembers" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="terminObjRef" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="numberOfStart" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="numberOfRecords" type="lzx:number" default="20" >
+</xs:attribute>
+      <xs:attribute name="numberOfMessage" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="conferenceView" type="project:conferenceView" >
+</xs:element>
+  <xs:complexType name="conferenceView" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseContentView">
+      <xs:attribute name="roomobj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="meetingTimer" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="listPagedContent" type="project:listPagedContent" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ common TurnOverList view class. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="listPagedContent" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="totalItemsInList" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="showHScrollbar" type="xs:string" default="visible" >
+</xs:attribute>
+      <xs:attribute name="itemsToShow" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="itemHeight" type="lzx:number" default="20" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ common TurnOverList view class. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="currentLastItemInList" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="screenSharingContainer" type="project:screenSharingContainer" >
+</xs:element>
+  <xs:complexType name="screenSharingContainer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseDrawULine" type="project:baseDrawULine" >
+</xs:element>
+  <xs:complexType name="baseDrawULine" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseDrawLine">
+      <xs:attribute name="currentulinestroke" type="xs:string" default="0xFF6600" >
+</xs:attribute>
+      <xs:attribute name="currentulinelineWidth" type="lzx:number" default="20" >
+</xs:attribute>
+      <xs:attribute name="currentulineOpacity" type="lzx:number" default="0.5" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="liste" type="project:liste" >
+</xs:element>
+  <xs:complexType name="liste" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="dynamicFileName" type="project:dynamicFileName" >
+</xs:element>
+  <xs:complexType name="dynamicFileName" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:customInputtext">
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="parentFileExplorerItemId" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="isOwner" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="isNew" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="fileExplorerItemId" type="lzx:number" default="0" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="calendar_event" type="project:calendar_event" >
+</xs:element>
+  <xs:complexType name="calendar_event" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="startTime" type="xs:string" default="${this.startHour * 60 + Number( this.startMin )}" >
+</xs:attribute>
+      <xs:attribute name="startMin" type="xs:string" default="$path{'start[1]/@minute'}" >
+</xs:attribute>
+      <xs:attribute name="startHour" type="xs:string" default="$path{'start[1]/@hour'}" >
+</xs:attribute>
+      <xs:attribute name="selected" type="xs:string" default="$path{'@selected'}" >
+</xs:attribute>
+      <xs:attribute name="pixelPerMin" type="lzx:number" default="22/60" >
+</xs:attribute>
+      <xs:attribute name="normalColor" type="lzx:color" default="${this.getEventColor( this.category )}" >
+</xs:attribute>
+      <xs:attribute name="mouseIsDown" type="xs:string" default="false" >
+</xs:attribute>
+      <xs:attribute name="hiColor" type="lzx:color" default="0xDDDDDD" >
+</xs:attribute>
+      <xs:attribute name="endTime" type="xs:string" default="${this.endHour * 60 + Number( this.endMin )}" >
+</xs:attribute>
+      <xs:attribute name="endMin" type="xs:string" default="$path{'end[1]/@minute'}" >
+</xs:attribute>
+      <xs:attribute name="endHour" type="xs:string" default="$path{'end[1]/@hour'}" >
+</xs:attribute>
+      <xs:attribute name="defaultTimes" type="xs:string" default="{startHour: 0, startMin: 0, endHour: 0, endMin: 0}" >
+</xs:attribute>
+      <xs:attribute name="category" type="xs:string" default="$path{'category[1]/@value'}" >
+</xs:attribute>
+      <xs:attribute name="bkgndColor" type="lzx:color" default="0x5D84CB" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="addLanguage" type="project:addLanguage" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Popup view to input a new language name to be added. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="addLanguage" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:labelExplorerBox">
+      <xs:attribute name="tempValue" type="lzx:number" default="0" >
+</xs:attribute>
+      <xs:attribute name="refObj" type="xs:string" default="null" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ Popup view to input a new language name to be added. </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="activityListRestrictedRoomWhiteboard" type="project:activityListRestrictedRoomWhiteboard" >
+</xs:element>
+  <xs:complexType name="activityListRestrictedRoomWhiteboard" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseItemActivityList">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="subitemsListContainter" type="project:subitemsListContainter" >
+</xs:element>
+  <xs:complexType name="subitemsListContainter" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="updatecheckbox" type="project:updatecheckbox" >
+</xs:element>
+  <xs:complexType name="updatecheckbox" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:checkbox">
+      <xs:attribute name="tvalue" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="sendchange" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="changeWidthLetterSliderWin" type="project:changeWidthLetterSliderWin" >
+</xs:element>
+  <xs:complexType name="changeWidthLetterSliderWin" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:closableViewLetter">
+      <xs:attribute name="initialNumber" type="lzx:number" default="12" >
+</xs:attribute>
+      <xs:attribute name="btnRef" type="xs:string" default="null" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="chatTabBottom" type="project:chatTabBottom" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+ View of the buttom area of chat. It contains buttons of message,emoticons,clear. </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="chatTabBottom" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:view">
+      <xs:attribute name="objMessage" type="xs:string" default="null" >
+</xs:attribute>
+      <xs:attribute name="doUpdate" type="lzx:boolean" default="false" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="videoObjectPlayBroadcast" type="project:videoObjectPlayBroadcast" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+	Contains no microphone or camera Object, this view can only 
+	subscribe to a video or live-stream
+
+ </xs:documentation>
+</xs:annotation>
+</xs:element>
+  <xs:complexType name="videoObjectPlayBroadcast" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseVideoObject">
+      <xs:attribute name="ratioW" type="xs:string" default="1" >
+<xs:annotation>
+<xs:documentation xml:lang="en">
+
+	Contains no microphone or camera Object, this view can only 
+	subscribe to a video or live-stream
+
+ </xs:documentation>
+</xs:annotation>
+</xs:attribute>
+      <xs:attribute name="ratioH" type="xs:string" default="1" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="listWml" type="project:listWml" >
+</xs:element>
+  <xs:complexType name="listWml" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="lzx:text">
+      <xs:attribute name="uploadmodul" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="isPpt" type="lzx:boolean" default="false" >
+</xs:attribute>
+      <xs:attribute name="filenamePure" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="filename" type="xs:string" default="" >
+</xs:attribute>
+      <xs:attribute name="ext" type="xs:string" default="" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="mainToolsTopPanelPointer" type="project:mainToolsTopPanelPointer" >
+</xs:element>
+  <xs:complexType name="mainToolsTopPanelPointer" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseTopPanel">
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:element name="baseDrawEllipse" type="project:baseDrawEllipse" >
+</xs:element>
+  <xs:complexType name="baseDrawEllipse" mixed="true">
+  <xs:complexContent>
+  <xs:extension base="project:baseDrawRect">
+      <xs:attribute name="currentellipsestrokeFillDis" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="currentellipsestrokeFill" type="xs:string" default="0xFFFF33" >
+</xs:attribute>
+      <xs:attribute name="currentellipsestrokeDis" type="lzx:number" default="1" >
+</xs:attribute>
+      <xs:attribute name="currentellipsestroke" type="xs:string" default="0xFF6600" >
+</xs:attribute>
+      <xs:attribute name="currentellipselineWidth" type="xs:string" default="4" >
+</xs:attribute>
+      <xs:attribute name="currentellipseOpacity" type="lzx:number" default="1" >
+</xs:attribute>
+  </xs:extension>
+  </xs:complexContent>
+  </xs:complexType>
+<xs:group name="topLevelElements">
+<xs:sequence>
+<xs:choice minOccurs="0" maxOccurs="unbounded">
+<xs:any />
+</xs:choice>
+</xs:sequence>
+</xs:group>
+</xs:schema>
diff --git a/WebContent/red5/admin.bat b/WebContent/red5/admin.bat
new file mode 100644
index 0000000..8ae8ec2
--- /dev/null
+++ b/WebContent/red5/admin.bat
@@ -0,0 +1,21 @@
+REM #############################################

+REM Licensed under the Apache License, Version 2.0 (the "License");

+REM you may not use this file except in compliance with the License.

+REM You may obtain a copy of the License at

+REM

+REM     http://www.apache.org/licenses/LICENSE-2.0

+REM

+REM Unless required by applicable law or agreed to in writing, software

+REM distributed under the License is distributed on an "AS IS" BASIS,

+REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+REM See the License for the specific language governing permissions and

+REM limitations under the License.

+REM #############################################

+@echo off

+set RED5_HOME=%~dp0

+set OM_CONTEXT=openmeetings

+

+set CLASSPATH=%RED5_HOME%\*;%RED5_HOME%\conf;%RED5_HOME%\plugins\*;%RED5_HOME%\lib\*;%RED5_HOME%\webapps\%OM_CONTEXT%\WEB-INF\lib\*;%RED5_HOME%\webapps\%OM_CONTEXT%\WEB-INF;%RED5_HOME%\webapps\%OM_CONTEXT%\WEB-INF\classes

+

+java -cp "%CLASSPATH%" -Dcontext=%OM_CONTEXT% -Dlogback.ContextSelector=org.red5.logging.LoggingContextSelector org.apache.openmeetings.cli.Admin %*

+

diff --git a/WebContent/red5/admin.sh b/WebContent/red5/admin.sh
new file mode 100644
index 0000000..a31a5ad
--- /dev/null
+++ b/WebContent/red5/admin.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+# #############################################
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# #############################################
+export RED5_HOME=$(cd $(dirname "$0"); pwd) 
+export OM_CONTEXT=openmeetings
+
+export CLASSPATH=$RED5_HOME/*:$RED5_HOME/conf:$RED5_HOME/plugins/*:$RED5_HOME/lib/*:$RED5_HOME/webapps/${OM_CONTEXT}/WEB-INF/lib/*:$RED5_HOME/webapps/${OM_CONTEXT}/WEB-INF:$RED5_HOME/webapps/${OM_CONTEXT}/WEB-INF/classes
+
+java -cp "$CLASSPATH" -Dcontext=${OM_CONTEXT} -Dlogback.ContextSelector=org.red5.logging.LoggingContextSelector org.apache.openmeetings.cli.Admin $*
+
diff --git a/WebContent/red5/index.html b/WebContent/red5/index.html
new file mode 100644
index 0000000..612a618
--- /dev/null
+++ b/WebContent/red5/index.html
@@ -0,0 +1,23 @@
+<!--
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+ -->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Your Page Title</title>
+<meta http-equiv="REFRESH" content="0;url=openmeetings/"></HEAD>
+<BODY>
+Redirect to openmeetings/
+</BODY>
+</HTML>
+
diff --git a/WebContent/red5/jee-container.xml b/WebContent/red5/jee-container.xml
new file mode 100644
index 0000000..a2786c9
--- /dev/null
+++ b/WebContent/red5/jee-container.xml
@@ -0,0 +1,292 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+ -->
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:lang="http://www.springframework.org/schema/lang" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd                            http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-3.0.xsd">
+
+    <!-- 
+    The tomcat connectors may be blocking or non-blocking. Select between either option via the constructor-arg.
+        Blocking I/O:
+            <constructor-arg type="java.lang.String" value="org.apache.coyote.http11.Http11Protocol" />
+        Non-blocking I/O:
+            <constructor-arg type="java.lang.String" value="org.apache.coyote.http11.Http11NioProtocol" />  
+     -->                           
+				   			   						
+	<!-- Tomcat without SSL enabled -->			  	
+	<bean id="tomcat.server" class="org.red5.server.tomcat.TomcatLoader" init-method="init" destroy-method="shutdown" depends-on="context.loader">
+
+		<property name="webappFolder" value="${red5.root}/webapps"/>
+			      
+	    <property name="connector">
+			<bean class="org.apache.catalina.connector.Connector">
+				<constructor-arg type="java.lang.String" value="org.apache.coyote.http11.Http11NioProtocol"/>
+                <property name="port" value="${http.port}"/>  
+		        <property name="redirectPort" value="${https.port}"/>  
+                <property name="enableLookups" value="false"/>  
+                <property name="useIPVHosts" value="true"/>  
+                <property name="URIEncoding" value="${http.URIEncoding}"/>
+			</bean>
+	    </property>
+	    	
+        <property name="address">
+            <bean class="java.net.InetSocketAddress">
+                <constructor-arg index="0" type="java.lang.String" value="${http.host}"/>  
+                <constructor-arg index="1" type="int" value="${http.port}"/>  
+            </bean>	
+        </property>
+	    	
+        <property name="baseHost">
+	       <bean class="org.apache.catalina.core.StandardHost">
+	           <property name="name" value="${http.host}"/>
+	           <property name="unpackWARs" value="true"/>
+	           <property name="autoDeploy" value="true"/>
+	       </bean>	   
+	    </property>		
+
+		<property name="valves">
+      		<list>
+                <bean id="valve.access" class="org.apache.catalina.valves.AccessLogValve">
+                    <property name="directory" value="log" />
+                    <property name="prefix" value="${http.host}_access." />
+                    <property name="suffix" value=".log" />
+                    <property name="pattern" value="common" />
+                    <property name="resolveHosts" value="false" />
+                    <property name="rotatable" value="true" />
+                </bean>
+        	</list>
+        </property>
+	    
+	</bean>
+ 
+	<!-- Tomcat with SSL enabled -->
+<!-- 	
+    <bean id="tomcat.server" class="org.red5.server.tomcat.TomcatLoader" init-method="init" destroy-method="shutdown" depends-on="context.loader">
+
+        <property name="webappFolder" value="${red5.root}/webapps" />
+                  
+        <property name="connector">
+            <bean class="org.apache.catalina.connector.Connector">
+                <constructor-arg type="java.lang.String" value="org.apache.coyote.http11.Http11Protocol" />
+                <property name="port"><value>${https.port}</value></property>
+                <property name="redirectPort"><value>${http.port}</value></property>
+                <property name="enableLookups"><value>false</value></property>
+                <property name="useIPVHosts"><value>true</value></property>
+                <property name="URIEncoding" value="${http.URIEncoding}" />
+            </bean>
+        </property>
+            
+        <property name="address">
+            <bean class="java.net.InetSocketAddress">
+                <constructor-arg index="0" type="java.lang.String" value="${http.host}" />  
+                <constructor-arg index="1" type="int" value="${https.port}" />  
+            </bean> 
+        </property>
+            
+        <property name="baseHost">
+           <bean class="org.apache.catalina.core.StandardHost">
+               <property name="name" value="${http.host}" />
+               <property name="unpackWARs" value="true" />
+               <property name="autoDeploy" value="true" />
+           </bean>     
+        </property>     
+
+        <property name="connectionProperties">
+            <map>
+                <entry>
+                    <key><value>port</value></key>
+                    <value>${https.port}</value>
+                </entry>
+                <entry>
+                    <key><value>redirectPort</value></key>
+                    <value>${http.port}</value>
+                </entry>
+                <entry>
+                    <key><value>SSLEnabled</value></key>
+                    <value>true</value>
+                </entry>
+                <entry>
+                    <key><value>sslProtocol</value></key>
+                    <value>TLS</value>
+                </entry>
+                <entry>
+                    <key><value>clientAuth</value></key>
+                    <value>false</value>
+                </entry>
+                <entry>
+                    <key><value>keystoreFile</value></key>
+                    <value>conf/keystore</value>
+                </entry>
+                <entry>
+                    <key><value>keystorePass</value></key>
+                    <value>${rtmps.keystorepass}</value>
+                </entry>
+                <entry>
+                    <key><value>keystoreType</value></key>
+                    <value>JKS</value>
+                </entry>
+                <entry key="maxKeepAliveRequests" value="${http.max_keep_alive_requests}"/>
+                <entry key="useExecutor" value="true"/>
+                <entry key="maxThreads" value="${http.max_threads}"/>
+                <entry key="acceptorThreadCount" value="${http.acceptor_thread_count}"/>
+                <entry key="processorCache" value="${http.processor_cache}"/>
+            </map>
+        </property> 
+
+        <property name="valves">
+            <list>
+                <bean id="valve.access" class="org.apache.catalina.valves.AccessLogValve">
+                    <property name="directory" value="log" />
+                    <property name="prefix" value="${http.host}_access." />
+                    <property name="suffix" value=".log" />
+                    <property name="pattern" value="common" />
+                    <property name="resolveHosts" value="false" />
+                    <property name="rotatable" value="true" />
+                </bean>
+            </list>
+        </property>
+        
+    </bean>	
+ -->
+	
+	<!-- RTMPT (dedicated server) -->
+<!--
+	<bean id="rtmpt.server" class="org.red5.server.tomcat.rtmpt.RTMPTLoader" init-method="init" lazy-init="true">
+	
+		<property name="webappFolder" value="${red5.root}/webapps" />
+		
+		<property name="connector">
+			<bean class="org.apache.catalina.connector.Connector">
+				<constructor-arg type="java.lang.String" value="org.apache.coyote.http11.Http11NioProtocol" />	
+				<property name="port"><value>${rtmpt.port}</value></property>
+				<property name="enableLookups"><value>false</value></property>
+                <property name="URIEncoding" value="${http.URIEncoding}" />
+			</bean>
+		</property>
+
+        <property name="address">
+            <bean class="java.net.InetSocketAddress">
+                <constructor-arg index="0" type="java.lang.String" value="${rtmpt.host}" />  
+                <constructor-arg index="1" type="int" value="${rtmpt.port}" />  
+            </bean>
+        </property>
+				
+		<property name="host">
+			<bean class="org.apache.catalina.core.StandardHost">
+				<property name="name" value="${rtmpt.host}" />
+				<property name="unpackWARs" value="false" />
+				<property name="autoDeploy" value="false" />
+			</bean>	   
+		</property>		
+
+        <property name="connectionProperties">
+            <map>
+                <entry key="maxKeepAliveRequests" value="${rtmpt.max_keep_alive_requests}"/>
+                <entry key="useExecutor" value="true"/>
+                <entry key="maxThreads" value="${rtmpt.max_threads}"/>
+                <entry key="acceptorThreadCount" value="${rtmpt.acceptor_thread_count}"/>
+                <entry key="processorCache" value="${rtmpt.processor_cache}"/>
+            </map>
+        </property>
+
+	</bean>
+-->
+	
+	<!-- RTMPS (dedicated server) -->	
+<!--
+	<bean id="rtmps.server" class="org.red5.server.tomcat.rtmps.RTMPSLoader" init-method="init" lazy-init="true">
+	
+		<property name="webappFolder" value="${red5.root}/webapps" />
+		
+		<property name="connector">
+			<bean class="org.apache.catalina.connector.Connector">
+				<constructor-arg type="java.lang.String" value="org.apache.coyote.http11.Http11NioProtocol" />	
+				<property name="port" value="${rtmps.port}" />
+				<property name="redirectPort" value="${rtmp.port}" />
+				<property name="URIEncoding" value="${http.URIEncoding}" />
+			</bean>			
+		</property>	
+		
+        <property name="address">
+            <bean class="java.net.InetSocketAddress">
+                <constructor-arg index="0" type="java.lang.String" value="${rtmps.host}" />  
+                <constructor-arg index="1" type="int" value="${rtmps.port}" />  
+            </bean>
+        </property>
+		
+		<property name="host">
+			<bean class="org.apache.catalina.core.StandardHost">
+				<property name="name" value="${rtmps.host}" />
+				<property name="unpackWARs" value="false" />
+				<property name="autoDeploy" value="false" />
+			</bean>	   
+		</property>		
+	
+		<property name="connectionProperties">
+			<map>
+				<entry>
+					<key><value>port</value></key>
+					<value>${rtmps.port}</value>
+				</entry>
+				<entry>
+					<key><value>redirectPort</value></key>
+					<value>${rtmp.port}</value>
+				</entry>
+				<entry>
+					<key><value>SSLEnabled</value></key>
+					<value>true</value>
+				</entry>
+				<entry>
+					<key><value>sslProtocol</value></key>
+					<value>TLS</value>
+				</entry>
+				<entry>
+					<key><value>clientAuth</value></key>
+					<value>false</value>
+				</entry>
+				<entry>
+					<key><value>keystoreFile</value></key>
+					<value>conf/keystore</value>
+				</entry>
+				<entry>
+					<key><value>keystorePass</value></key>
+					<value>${rtmps.keystorepass}</value>
+				</entry>
+				<entry>
+					<key><value>keystoreType</value></key>
+					<value>JKS</value>
+				</entry>
+				<entry key="maxKeepAliveRequests" value="${rtmps.max_keep_alive_requests}"/>
+				<entry key="useExecutor" value="true"/>
+				<entry key="maxThreads" value="${rtmps.max_threads}"/>
+				<entry key="acceptorThreadCount" value="${rtmps.acceptor_thread_count}"/>
+				<entry key="processorCache" value="${rtmps.processor_cache}"/>
+			</map>
+		</property>	
+
+		<property name="valves">
+      		<list>
+                <bean id="valve.access" class="org.apache.catalina.valves.AccessLogValve">
+                    <property name="directory" value="log" />
+                    <property name="prefix" value="${http.host}_access." />
+                    <property name="suffix" value=".log" />
+                    <property name="pattern" value="common" />
+                    <property name="resolveHosts" value="false" />
+                    <property name="rotatable" value="true" />
+                </bean>
+        	</list>
+        </property>			
+	
+	</bean>		
+-->
+	
+</beans>
diff --git a/WebContent/red5/network_test.sh b/WebContent/red5/network_test.sh
new file mode 100755
index 0000000..64cb8e9
--- /dev/null
+++ b/WebContent/red5/network_test.sh
@@ -0,0 +1,157 @@
+#!/bin/bash
+# #############################################
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# #############################################
+
+LOCAL_HOST=$1
+SSH_LOGIN=$2
+TESTING_HOST=$3
+
+if [ -z "$3" ];then
+  echo "Usage: $0 LOCAL_HOST_IP REMOTE_SSH_LOGIN REMOTE_HOST_IP"
+  echo "Script requare installed 'iperf' on both local and remote hosts."
+  echo "Also need setting up ssh login without requiring a password. Use for this purpose ssl certificates."
+  exit 0;
+fi
+
+TEST_LOCAL_IPERF=`iperf 2>&1 | grep "Usage: iperf" |wc -l`
+if [ "1" != "$TEST_LOCAL_IPERF" ];then
+  echo "Script requare installed 'iperf' on local host."
+  exit 0;
+fi
+
+TEST_REMOTE_IPERF=`ssh $SSH_LOGIN@$TESTING_HOST "iperf 2>&1 | grep \"Usage: iperf\" |wc -l"`
+if [ "1" != "$TEST_REMOTE_IPERF" ];then
+  echo "Script requare installed 'iperf' on remote host."
+  exit 0;
+fi
+
+test_jitter_with_ping (){
+## $1 - size of packets in bites
+## $2 - count of send packets
+
+COUNT_PACKETS=1000
+if [ -z "$1" ]; then 
+  ping -c 1000 -f -s $1 $TESTING_HOST 2>&1 >${1}b.out.txt
+else
+  ping -c $2 -f -s $1 $TESTING_HOST 2>&1 >${1}b.out.txt
+  COUNT_PACKETS=$2
+fi
+
+MIN=`grep "rtt min" ./${1}b.out.txt | cut -d " " -f4 | cut -d "/" -f1 | cut -d "." -f1`
+AVG=`grep "rtt min" ./${1}b.out.txt | cut -d " " -f4 | cut -d "/" -f2 | cut -d "." -f1`
+MAX=`grep "rtt min" ./${1}b.out.txt | cut -d " " -f4 | cut -d "/" -f3 | cut -d "." -f1`
+
+let "JITTER=($MAX-$AVG)-($AVG-$MIN)"
+if [ "$JITTER" -lt "0" ];then
+    let "JITTER=-$JITTER"
+fi
+echo "Jitter = $JITTER for $COUNT_PACKETS packets with size $1 bites (ping)"
+echo "Max latency is $MAX"
+if [ "$AVG" != "0"  ]; then 
+  let "JITTERPS=$JITTER*100/$AVG"
+  echo "Jitter = $JITTERPS % from $AVG ms"
+fi
+
+}
+
+test_opened_ports_with_iperf (){
+## Test opened ports
+echo "Start testing opened ports"
+echo "========================================"
+PORTS=$1 #"5080 1935 8088"
+AVAIL_PORTS=""
+rm server_port_log.txt
+for i in $PORTS; do
+  #echo "ssh $SSH_LOGIN@$TESTING_HOST \"iperf -s -p $i\""
+  ssh $SSH_LOGIN@$TESTING_HOST "iperf -s -p $i" >>server_port_log.txt 2>&1 &
+  sleep 2
+  #echo "telnet -e q $TESTING_HOST $i <telnet_commands.txt"
+  TELNET_OUT=`echo -e "q\nquit"|telnet -e q $TESTING_HOST $i`
+  #echo "ssh $SSH_LOGIN@$TESTING_HOST \"ps -C iperf|cut -d \" \" -f1 | xargs kill -9\""
+  ssh $SSH_LOGIN@$TESTING_HOST "ps -C iperf|cut -d \" \" -f1 | xargs kill -9" >>server_port_log.txt 2>&1 &
+  PORT_IS_AVAILABLE=`echo "$TELNET_OUT" | grep "Connected to"`
+  if [ "$PORT_IS_AVAILABLE" != "" ];then
+    echo "Port $i available"
+    AVAIL_PORTS="$AVAIL_PORTS $i"
+  else
+    echo "Port $i not available"
+  fi
+  sleep 2
+done
+
+}
+
+
+test_bandwidth_with_iperf (){
+## Test bandwidth of server
+echo "Start testing bandwidth of server"
+echo "========================================"
+  PORT=$1
+  TIME_TO_TEST=30
+  NUM_THREADS=10
+  REPORT_INTERVAL=5
+  #Download test
+  echo "Start outbound test"
+  #setup server
+  #echo "Starting server..."
+  ssh $SSH_LOGIN@$TESTING_HOST "iperf -s -p $PORT" >server_log.txt 2>&1 &
+  #wait when server started
+  sleep 2
+  #start test
+  #echo "Start test"
+  iperf -c $TESTING_HOST -p $PORT -i $REPORT_INTERVAL -P $NUM_THREADS -t $TIME_TO_TEST | tee client_log.txt | grep "SUM"
+  #stop server
+  echo "Stop server"
+  ssh $SSH_LOGIN@$TESTING_HOST "ps -C iperf|cut -d \" \" -f1 | xargs kill -9" >>server_log.txt 2>&1 &
+  echo "End outbound test"
+  sleep 2
+  echo 
+  #Upload test 
+  #Comment: This we can use any port for testing, I use 12100
+  PORT=12100
+  echo "Start inbound test"
+  #setup server
+  #echo "Starting server..."
+  iperf -s -p $PORT >local_server_log.txt 2>&1 &
+  #wait when server started
+  sleep 2
+  #start test
+  #echo "Start test"
+  ssh $SSH_LOGIN@$TESTING_HOST "iperf -c $LOCAL_HOST -p $PORT -i $REPORT_INTERVAL -P $NUM_THREADS -t $TIME_TO_TEST" | tee remote_client_log.txt | grep "SUM"
+  #stop server
+  echo "Stop server"
+  ps -C iperf | cut -d " " -f1 | xargs kill -9 >local_server_log.txt 2>&1 &
+  echo "End inbound test"
+}
+
+echo "Start testing latency and jitter"
+echo "========================================"
+test_jitter_with_ping 1000 100
+test_jitter_with_ping 1000 1000
+test_jitter_with_ping 10000 1000
+#Hard test
+#test_jitter_with_ping 1024 100000
+echo
+
+test_opened_ports_with_iperf "5080 1935 8088"
+#echo "$AVAIL_PORTS"
+echo
+
+test_bandwidth_with_iperf 1935
+
+## generate file with random content and size 1Mb
+#dd if=/dev/urandom of=test.log bs=1k count=1024
+
+
+
diff --git a/WebContent/red5/red5-highperf.bat b/WebContent/red5/red5-highperf.bat
new file mode 100644
index 0000000..f08f507
--- /dev/null
+++ b/WebContent/red5/red5-highperf.bat
@@ -0,0 +1,21 @@
+REM #############################################

+REM Licensed under the Apache License, Version 2.0 (the "License");

+REM you may not use this file except in compliance with the License.

+REM You may obtain a copy of the License at

+REM

+REM     http://www.apache.org/licenses/LICENSE-2.0

+REM

+REM Unless required by applicable law or agreed to in writing, software

+REM distributed under the License is distributed on an "AS IS" BASIS,

+REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+REM See the License for the specific language governing permissions and

+REM limitations under the License.

+REM #############################################

+@echo off

+

+if NOT DEFINED RED5_HOME set RED5_HOME=%~dp0

+

+set JAVA_OPTS= -Xmx768m -Xms512m -Xmn512m -Xss512k -XX:+AggressiveOpts -XX:+DisableExplicitGC -XX:ParallelGCThreads=4 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:SurvivorRatio=16 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=31 -Djava.net.preferIPv4Stack=true

+

+echo Running High Performance Red5

+start cmd /c "%RED5_HOME%\red5.bat" >> "%RED5_HOME%\log\jvm.stdout"

diff --git a/WebContent/red5/red5-highperf.sh b/WebContent/red5/red5-highperf.sh
new file mode 100755
index 0000000..798e6fd
--- /dev/null
+++ b/WebContent/red5/red5-highperf.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+# #############################################
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# #############################################
+
+if [ -z "$RED5_HOME" ]; then export RED5_HOME=.; fi
+
+# Previous option set
+export JAVA_OPTS="-Xrs -Xms512M -Xmx1024M -Xss512K -XX:NewSize=256m -XX:SurvivorRatio=16 -XX:MinHeapFreeRatio=20 -XX:+ExplicitGCInvokesConcurrent -XX:+UseConcMarkSweepGC -Djava.net.preferIPv4Stack=true -Xverify:none"
+
+# start Red5
+echo "Setting Hi Performance Options"
+exec $RED5_HOME/red5.sh >> $RED5_HOME/log/jvm.stdout 2>&1 &
diff --git a/WebContent/red5/red5.bat b/WebContent/red5/red5.bat
new file mode 100644
index 0000000..c50ebda
--- /dev/null
+++ b/WebContent/red5/red5.bat
@@ -0,0 +1,54 @@
+REM #############################################

+REM Licensed under the Apache License, Version 2.0 (the "License");

+REM you may not use this file except in compliance with the License.

+REM You may obtain a copy of the License at

+REM

+REM     http://www.apache.org/licenses/LICENSE-2.0

+REM

+REM Unless required by applicable law or agreed to in writing, software

+REM distributed under the License is distributed on an "AS IS" BASIS,

+REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+REM See the License for the specific language governing permissions and

+REM limitations under the License.

+REM #############################################

+@echo off

+

+SETLOCAL

+

+if NOT DEFINED RED5_HOME set RED5_HOME=%~dp0

+

+if NOT DEFINED RED5_MAINCLASS set RED5_MAINCLASS=org.red5.server.Bootstrap

+

+if NOT DEFINED JAVA_HOME goto err

+

+REM JAVA options

+REM You can set JAVA_OPTS to add additional options if you want

+REM Set up logging options

+set LOGGING_OPTS=-Dlogback.ContextSelector=org.red5.logging.LoggingContextSelector -Dcatalina.useNaming=true

+REM Set up security options

+REM set SECURITY_OPTS= -Djava.security.debug=failure -Djava.security.manager -Djava.security.policy="%RED5_HOME%/conf/red5.policy"

+set SECURITY_OPTS=-Djava.security.debug=failure

+IF ["a%JAVA_OPTS%"] == ["a"] (

+	set JAVA_OPTS=-XX:PermSize=192m -XX:MaxPermSize=512m -XX:+CMSClassUnloadingEnabled

+)

+set JAVA_OPTS=%LOGGING_OPTS% %SECURITY_OPTS% %JAVA_OPTS%

+

+set JYTHON_OPTS=-Dpython.home=lib

+

+set RED5_CLASSPATH=%RED5_HOME%\boot.jar;%RED5_HOME%\conf;%CLASSPATH%

+

+if NOT DEFINED RED5_OPTS set RED5_OPTS= 

+

+goto launchRed5

+

+:launchRed5

+echo Starting Red5

+"%JAVA_HOME%\bin\java" %JYTHON_OPTS% %JAVA_OPTS% -cp "%RED5_CLASSPATH%" %RED5_MAINCLASS% %RED5_OPTS%

+goto finally

+

+:err

+echo JAVA_HOME environment variable not set! Take a look at the readme.

+pause

+

+:finally

+ENDLOCAL

diff --git a/WebContent/red5/red5.sh b/WebContent/red5/red5.sh
new file mode 100755
index 0000000..64f3ff7
--- /dev/null
+++ b/WebContent/red5/red5.sh
@@ -0,0 +1,72 @@
+#!/bin/bash
+# #############################################
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# #############################################
+
+if [ -z "$RED5_HOME" ]; then 
+  export RED5_HOME=`pwd`; 
+fi
+
+P=":" # The default classpath separator
+OS=`uname`
+case "$OS" in
+  CYGWIN*|MINGW*) # Windows Cygwin or Windows MinGW
+  P=";" # Since these are actually Windows, let Java know
+  ;;
+  Darwin*)
+
+  ;;
+  *)
+  # Do nothing
+  ;;
+esac
+
+echo "Running on " $OS
+
+# JAVA options
+# You can set JAVA_OPTS to add additional options if you want
+# Set up logging options
+LOGGING_OPTS="-Dlogback.ContextSelector=org.red5.logging.LoggingContextSelector -Dcatalina.useNaming=true"
+# Set up security options
+SECURITY_OPTS="-Djava.security.debug=failure"
+if [ -z "$JAVA_OPTS" ]; then
+	export JAVA_OPTS="-XX:PermSize=192m -XX:MaxPermSize=512m -XX:+CMSClassUnloadingEnabled"
+fi
+export JAVA_OPTS="$LOGGING_OPTS $SECURITY_OPTS $JAVA_OPTS"
+
+if [ -z "$RED5_MAINCLASS" ]; then
+  export RED5_MAINCLASS=org.red5.server.Bootstrap
+fi
+
+# Jython options
+JYTHON="-Dpython.home=lib"
+
+for JAVA in "${JAVA_HOME}/bin/java" "${JAVA_HOME}/Home/bin/java" "/usr/bin/java" "/usr/local/bin/java"
+do
+  if [ -x "$JAVA" ]
+  then
+    break
+  fi
+done
+
+if [ ! -x "$JAVA" ]
+then
+  echo "Unable to locate Java. Please set JAVA_HOME environment variable."
+  exit
+fi
+
+export RED5_CLASSPATH="${RED5_HOME}/boot.jar${P}${RED5_HOME}/conf${P}${CLASSPATH}"
+
+# start Red5
+echo "Starting Red5"
+exec "$JAVA" "$JYTHON" -Dred5.root="${RED5_HOME}" $JAVA_OPTS -cp "${RED5_CLASSPATH}" "$RED5_MAINCLASS" $RED5_OPTS
diff --git a/WebContent/src/base/components/button/baseChooseIcon.lzx b/WebContent/src/base/components/button/baseChooseIcon.lzx
new file mode 100644
index 0000000..86007c3
--- /dev/null
+++ b/WebContent/src/base/components/button/baseChooseIcon.lzx
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<resource name="background_drawchoose_rsc">
+    <frame src="resources/menudraw_up.png" />
+    <frame src="resources/menudraw_over.png" />
+    <frame src="resources/menudraw_down.png" />
+</resource>
+
+<class name="baseChooseIcon" extends="view" width="24" height="24" 
+	   bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }" >
+    <attribute name="resourceN" value="" type="string" />
+    
+    <view name="_bg" x="1" y="1" height="$once{ parent.height - 2 }"
+    	  width="$once{ parent.width - 2 }" bgcolor="$once{ canvas.getThemeColor('baseMousecolorizer') }" />
+    
+    <image name="_icon" src="$once{ canvas.getThemeImage(parent.resourceN) }" 
+    	  x="$once{ (parent.width-this.width) / 2 }"
+    	  y="$once{ (parent.height-this.height) / 2 }" 
+    	  width="18" height="18" stretches="both"/>
+    <attribute name="initX" value="0" type="number"/>
+    <attribute name="initY" value="0" type="number"/>
+    <attribute name="isselected" value="false" type="boolean" />
+	<!--
+    <attribute name="enabled" value="true" type="boolean" />
+	 -->
+    <attribute name="labelid" value="0" type="number" />
+    <handler name="onmouseover">
+    	this.isOut = false;
+    	this._bg.setAttribute("bgcolor",canvas.getThemeColor('baseMouseOvercolorizer'));
+    	this._icon.setAttribute("x",this._icon.x-1);
+    	this._icon.setAttribute("y",this._icon.y-1);
+    	this._icon.setAttribute("width",this._icon.width+2);
+    	this._icon.setAttribute("height",this._icon.height+2);
+    </handler>
+    <handler name="onmouseout">
+    	this._bg.setAttribute("bgcolor",canvas.getThemeColor('baseMousecolorizer'));
+    	if (this.initX == this._icon.x) {
+    		return;
+    	}
+    	this.isOut = true;
+    	this._icon.setAttribute("x",this.initX);
+    	this._icon.setAttribute("y",this.initY);
+    	this._icon.setAttribute("width",this._icon.width-2);
+    	this._icon.setAttribute("height",this._icon.height-2);
+    </handler>
+    <handler name="onclick">
+    	this.onmouseout.sendEvent(null);
+    </handler>
+    <handler name="oninit">
+    	this.initX = this._icon.x;
+    	this.initY = this._icon.y;
+        if (this.isselected){
+            this.onclick.sendEvent();
+            this.setAttribute('frame',3);
+        }
+    </handler>          
+    <labelTooltip labelid="$once{ parent.labelid }" inittwice="true" />
+</class>
+
+
+</library>
diff --git a/WebContent/src/base/components/button/blueButton.lzx b/WebContent/src/base/components/button/blueButton.lzx
new file mode 100644
index 0000000..c30474e
--- /dev/null
+++ b/WebContent/src/base/components/button/blueButton.lzx
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<class name="blueButton" extends="basecomponent" width="200" height="18" 
+	       bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }" focusable="true">
+	    
+	    <attribute name="resourceItem" value="" type="string" />
+	    
+	    <attribute name="x_insetResource" value="4" type="number" />
+	    <attribute name="y_insetResource" value="4" type="number" />
+	    
+	    <attribute name="width_insetResource" value="18" type="number" />
+	    <attribute name="height_insetResource" value="18" type="number" />
+	    
+		<method name="setText" args="txt">
+			this.setAttribute('text',txt);
+		</method>
+		<view name="_bg" x="1" y="1" bgcolor="$once{ canvas.getThemeColor('mainBackgroundColor') }"
+				width="${ parent.width-2 }" height="${ parent.height-2 }" />
+		<view name="_bgOver" x="1" y="1" bgcolor="0xFFFFFF" opacity="0.5" visibility="hidden"
+				width="${ parent.width-2 }" height="${ parent.height-2 }" />
+		<view name="_bgDown" x="1" y="1" bgcolor="0x000000" opacity="0.5" visibility="hidden"
+				width="${ parent.width-2 }" height="${ parent.height-2 }" />
+		
+		<view name="disAbledView" visibility="${ ( parent.enabled ) ? 'hidden' : 'visible' }"
+	          bgcolor="white" opacity="1" x="1" y="1"
+	          width="$once{ parent.width-2 }" height="$once{ parent.height-2 }" />
+		
+	    <image name="_rscIcon" stretches="both" 
+	    	  opacity="${ ( parent.enabled ) ? 1 : 0.4 }"
+		  	  x="$once{ parent.x_insetResource }" 
+	    	  y="$once{ parent.y_insetResource }" 
+	          width="$once{ parent.width_insetResource }" 
+	          height="$once{ parent.height_insetResource }" 
+	          src="$once{ canvas.getThemeImage(parent.resourceItem) }" />
+	          
+	    
+	     
+		<handler name="onmouseover">
+			this._rscIcon.setAttribute("x",this._rscIcon.x-1);
+			this._rscIcon.setAttribute("y",this._rscIcon.y-1);
+			this._rscIcon.setAttribute("width",this._rscIcon.width+2);
+			this._rscIcon.setAttribute("height",this._rscIcon.height+2);
+			this._bgOver.setAttribute('visibility','visible');
+		</handler>
+		<handler name="onmouseout">
+			this._rscIcon.setAttribute("x",this._rscIcon.x+1);
+			this._rscIcon.setAttribute("y",this._rscIcon.y+1);
+			this._rscIcon.setAttribute("width",this._rscIcon.width-2);
+			this._rscIcon.setAttribute("height",this._rscIcon.height-2);
+		</handler>
+		<handler name="onmousedown">
+			if (!this.enabled) {
+				return;
+			}
+			this._bgOver.setAttribute('visibility','hidden');
+			this._bgDown.setAttribute('visibility','visible');
+		</handler>
+		<handler name="onmouseup">
+			this._bgDown.setAttribute('visibility','hidden');
+		</handler>	
+			
+	</class>
+
+</library>
diff --git a/WebContent/src/base/components/button/labelBlueButton.lzx b/WebContent/src/base/components/button/labelBlueButton.lzx
new file mode 100644
index 0000000..318ddfa
--- /dev/null
+++ b/WebContent/src/base/components/button/labelBlueButton.lzx
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="labelBlueButton" extends="blueButton" >
+
+	<attribute name="labelid" value="0" type="number" setter="setLabelId(labelid)" />
+	<method name="setLabelId" args="_labelid" >
+		this.labelid = _labelid;
+		//Debug.write(this.labelid);
+		this.setAttribute('text',canvas.getLabelName(this.labelid));
+	</method>
+	
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/button/library.lzx b/WebContent/src/base/components/button/library.lzx
new file mode 100644
index 0000000..fa5dc19
--- /dev/null
+++ b/WebContent/src/base/components/button/library.lzx
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+    <include href="incubator/roundrectbutton.lzx" />
+    
+	<include href="blueButton.lzx" />
+	<include href="labelBlueButton.lzx" />
+	<include href="simpleLabelButton.lzx" />
+    <include href="baseChooseIcon.lzx" />
+
+</library>
diff --git a/WebContent/src/base/components/button/resources/menudraw_down.png b/WebContent/src/base/components/button/resources/menudraw_down.png
new file mode 100644
index 0000000..8ba606b
--- /dev/null
+++ b/WebContent/src/base/components/button/resources/menudraw_down.png
Binary files differ
diff --git a/WebContent/src/base/components/button/resources/menudraw_over.png b/WebContent/src/base/components/button/resources/menudraw_over.png
new file mode 100644
index 0000000..d7e9f26
--- /dev/null
+++ b/WebContent/src/base/components/button/resources/menudraw_over.png
Binary files differ
diff --git a/WebContent/src/base/components/button/resources/menudraw_up.png b/WebContent/src/base/components/button/resources/menudraw_up.png
new file mode 100644
index 0000000..cebc7c5
--- /dev/null
+++ b/WebContent/src/base/components/button/resources/menudraw_up.png
Binary files differ
diff --git a/WebContent/src/base/components/button/simpleLabelButton.lzx b/WebContent/src/base/components/button/simpleLabelButton.lzx
new file mode 100644
index 0000000..5f63fad
--- /dev/null
+++ b/WebContent/src/base/components/button/simpleLabelButton.lzx
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="simpleLabelButton" extends="button" fontstyle="bold"
+	   fontsize="11" height="20" style="componentStyle">
+
+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+	<method name="setLabelId" args="_labelid" >
+		this.labelid = _labelid;
+		this.setAttribute('text',canvas.getLabelName(this.labelid));
+	</method>
+	
+</class>
+
+<class name="simpleLabelRoundButton" extends="roundrectbutton" 
+	   fontsize="11" height="20" style="componentStyle" fontstyle="bold">
+
+    <attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+    <method name="setLabelId" args="_labelid" >
+        this.labelid = _labelid;
+        this.setAttribute('text',canvas.getLabelName(this.labelid));
+    </method>
+    
+</class>
+
+<class name="simpleLabelButtonTooltip" extends="button" fontstyle="bold"
+	   fontsize="11" height="20" style="componentStyle">
+	
+	<attribute name="tooltipId" type="number" value="0" />
+
+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+	<method name="setLabelId" args="_labelid" >
+		this.labelid = _labelid;
+		this.setAttribute('text',canvas.getLabelName(this.labelid));
+	</method>
+	<labelTooltip labelid="$once{ parent.tooltipId }" />
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/calendar/calendarWindow.lzx b/WebContent/src/base/components/calendar/calendarWindow.lzx
new file mode 100644
index 0000000..1118862
--- /dev/null
+++ b/WebContent/src/base/components/calendar/calendarWindow.lzx
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="calendarWindow" extends="view" clickable="true" 
+	   bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }">	
+
+	<attribute name="fieldRef" value="null" />
+	
+	<handler name="oninit">
+		lz.ModeManager.makeModal(this);
+	</handler>
+	<method name="close">
+		lz.ModeManager.release(this);
+		this.destroy();
+	</method>	
+	
+    <!--- @keywords private -->
+    <method name="passModeEvent" args="eventStr,view" > 
+        <![CDATA[
+            if ( eventStr == "onmousedown"  ){
+                if ( view != null ) {
+                   if ( !view.childOf(this) ) {
+                        this.close();
+                   }
+                } else {
+                    this.close();
+                }
+            }
+            if (view && view.childOf(this)) {
+                if (view[ eventStr ]) {
+                    view[ eventStr ].sendEvent( view );
+                }
+                return false;
+            }
+            return true;
+        ]]> 
+    </method> 	
+	
+	<labelText fgcolor="0xFFFFFF" fontstyle="bold" labelid="481" x="1" y="1" />
+	
+    <view name="_close" x="${ this.parent.width-19 }" y="1" 
+        resource="btn_presenter_close"
+        onmouseover="this.setAttribute('frame',2)"
+        onmouseout="this.setAttribute('frame',1)"
+        onmousedown="this.setAttribute('frame',3)"
+        onmouseup="this.setAttribute('frame',1)" >
+        <handler name="onclick">
+            this.setAttribute('frame',2);
+            this.parent.close();
+        </handler>
+        <labelTooltip labelid="430" />
+    </view>  	
+
+	<dateSelector y="20" name="_dateselector">
+		<handler name="oninit">
+			<![CDATA[
+			//Debug.write("dateselector oninit. ",this);
+			var t = parent.fieldRef.getText();
+			var newDate = parseStringToDate(t);
+			this.showingdate = newDate;
+			//Debug.write("n1:",this.showingdate);
+			this.init();
+			]]>
+		</handler>
+		<handler name="ondoubleselect" args="d">
+			parent.fieldRef.setAttribute('text',parseDateToString(d));
+			this.parent.close();
+		</handler>
+	</dateSelector>	
+
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/calendar/dateField.lzx b/WebContent/src/base/components/calendar/dateField.lzx
new file mode 100644
index 0000000..fd83911
--- /dev/null
+++ b/WebContent/src/base/components/calendar/dateField.lzx
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="dateField" extends="view" width="104">
+	
+	<attribute name="enabled" value="true" type="boolean" />
+	<attribute name="setDefaultToday" value="false" type="boolean" />
+	<attribute name="additionalDay" value="0" type="number" />
+	
+	<handler name="oninit">
+		if (this.setDefaultToday){
+			if (this.additionalDay==0){
+				this._text.setAttribute('text',parseDateToString(new Date()));
+			} else {
+				var date = new Date();
+				date.setTime(date.getTime()+86400000);
+				this._text.setAttribute('text',parseDateToString(date));
+			}
+		}
+	</handler>
+ 
+	<method name="setText" args="txt">
+		this.setAttribute('text',txt);
+	</method>
+	<method name="getText" >
+		return this._text.getText();
+	</method>	
+    
+    <method name="setDate" args="d">
+        
+    </method>
+    <method name="getDate">
+        var tString = this._text.getText();
+        var y = tString.substring(6,10);
+        var m = Number(tString.substring(3,5))-1;
+        var d = tString.substring(0,2);     
+        var date = new Date(y,m,d);
+        if ($debug) Debug.write(date); 
+        return date;
+    </method>
+    
+	<attribute name="text" value="" type="string" />
+
+	<customEdittext name="_text" width="$once{ parent.width-22 }" regexpType="date" 
+					align="left" text="${ parent.text }" enabled="${ parent.enabled }" />
+
+	<blueButton resourceItem="date_icon_rsc" align="right"
+		  opacity="${ ((parent.enabled) ? 1 : 0.4) }"
+		  x_insetResource="2" y_insetResource="2" width="20" height="20"
+		  width_insetResource="16" height_insetResource="16">
+		<handler name="onclick">
+			if (parent.enabled) {
+				new lz.calendarWindow(this.parent.parent,{fieldRef:this.parent._text,x:this.parent.x+(this.parent.width-200),y:this.parent.y});
+			}
+		</handler>
+		<labelTooltip labelid="162" />
+	</blueButton>
+
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/calendar/dateSelector.lzx b/WebContent/src/base/components/calendar/dateSelector.lzx
new file mode 100644
index 0000000..4ac78a3
--- /dev/null
+++ b/WebContent/src/base/components/calendar/dateSelector.lzx
@@ -0,0 +1,502 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="baseDateSelectorComponent" extends="view">
+
+	<attribute name="daynumbers" value="[0,1,2,3,4,5,6]" />
+
+	<attribute name="showingdate" type="string" value="" />
+	
+	<attribute name="dayclass" when="once" />
+
+	<attribute name="weekclass" when="once" />
+	<attribute name="showcalenderweek" value="true" type="boolean" />
+	
+	<attribute name="monthclass" when="once" />
+	<attribute name="showcalendermonth" value="true" type="boolean" />	
+	
+</class>
+
+<class name="dateSelectorDay" extends="baseDateSelectorComponent" width="24" bgcolor="0xFFFFFF">
+
+	<attribute name="dayIndexNumber" value="-1" type="number" />
+	<attribute name="weekIndexNumber" value="-1" type="number" />
+
+	<handler name="onclick">
+		this.parent.parent.parent.parent.parent.parent.selectDate(this.daydate,this.dayIndexNumber,this.weekIndexNumber);
+	</handler>
+	
+	<handler name="ondblclick">
+		this.parent.parent.parent.parent.parent.parent.selectDoubleDate(this.daydate);
+	</handler>
+	
+	<attribute name="daydate" value="null" />
+	
+	<method name="init">
+		<![CDATA[
+        super.init();
+        if (parent.parent.parent.parent.month!=daydate.getMonth())
+        	this._date.setAttribute('text','<FONT COLOR="#CCCCCC">'+daydate.getDate()+'</FONT>');
+        else 
+        	this._date.setAttribute('text',daydate.getDate());
+        ]]>
+	</method>
+	
+	<text name="_date" fontsize="10" align="center" resize="true" />
+
+</class>
+
+<class name="dateSelectorDayHeader" extends="baseDateSelectorComponent" width="24" bgcolor="0xF9F9F9" >
+
+	<attribute name="daynumber" value="0" type="number" />
+	
+	<method name="init">
+		<![CDATA[
+	        super.init();
+	        var dateRoot = parent.parent.parent.parent;
+	        //if ($debug) Debug.write("daynumber",this,dateRoot);
+	        this._date.setAttribute('text',canvas.getLabelName(dateRoot.dayNamesLabelIds[( (daynumber>6) ? (daynumber-7) : daynumber )]));
+	        this._date._tip.setAttribute('labelid',dateRoot.dayLabelNamesLabelIds[( (daynumber>6) ? (daynumber-7) : daynumber )]); 
+        ]]>
+	</method>
+	
+	<text fgcolor="0x000000" name="_date" fontsize="10" align="center" resize="true"
+		  onmouseover="" onmouseout="">
+		<labelTooltip name="_tip" />
+	</text>
+
+</class>
+
+<class name="dateSelectorWeekNumber" extends="view" width="24" bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }">
+
+	<attribute name="weeknumber" value="0" type="number" />	
+	<text name="_date" fgcolor="white" fontsize="10" text="$once{ parent.weeknumber }" 
+		  align="center" resize="true" />
+
+</class>
+
+<class name="dateSelectorWeekNumberHeader" extends="view" width="24" bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }">
+
+	<attribute name="labelWeekHeader" value="" type="string" />	
+	<text name="_date" fgcolor="white" fontsize="10" text="$once{ parent.labelWeekHeader }" 
+		  align="center" resize="true" 
+		  onmouseover="" onmouseout="">
+		<labelTooltip name="_tip" labelid="468" />
+	</text>
+
+</class>
+
+<class name="dateSelectorWeek" extends="baseDateSelectorComponent" 
+		bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }">
+
+	<attribute name="weekIndexNumber" value="-1" type="number" />
+
+	<attribute name="firstweekddaydate" value="null" />
+	
+	<method name="init">
+        <![CDATA[ 
+        super.init();
+        for( var i = 0 ; i < 7 ; i++ )  {
+        	new dayclass(this.content,{
+        						daydate:new Date(firstweekddaydate.getTime()+(86400000*i)),
+        						weekIndexNumber:this.weekIndexNumber,
+        						dayIndexNumber:i
+        					});
+       	}  
+		]]>
+	</method>
+	
+	<view name="content" layout="axis:x;spacing:1" />
+	
+</class>
+
+
+<class name="dateSelectorMonth" extends="baseDateSelectorComponent" 
+		bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }" height="137" width="176">
+            
+	<attribute name="month" value="0" type="number" />
+	<attribute name="firstweekNumber" value="0" type="number" />
+	<attribute name="currentMonthName" value="" type="string" />
+
+	<method name="init">
+        <![CDATA[ 
+        super.init();
+        var dateRoot = parent.parent;
+        //if ($debug) Debug.write("dateRoot: ",dateRoot);
+        this.setAttribute('currentMonthName',dateRoot.monthnames[month]); 
+        for( var i = 0 ; i < 6 ; i++ ) new lz.dateSelectorWeek(this.content,{firstweekddaydate:new Date(this.showingdate.getTime()+(604800000*i)),dayclass:dayclass,month:month,weekIndexNumber:i});  
+        for( var i = 0 ; i < 7 ; i++ ) new lz.dateSelectorDayHeader(this.weekheader,{daynumber:(this.showingdate.getDay()+i)});  
+		]]>
+	</method> 
+	<view name="header" layout="axis:x" height="18" bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }">
+		<text width="20" fgcolor="0x000000" height="18" 
+			onmouseover="this.setAttribute('bgcolor',0xFFFFFF)" onmouseout="this.setAttribute('bgcolor',canvas.getThemeColor('secondBorderColor'))">
+			<handler name="oninit"><![CDATA[
+				this.setAttribute('text','&#60;');]]>
+			</handler>
+			<handler name="onclick">
+				this.parent.parent.parent.parent.showPreviewsMonth();
+			</handler>
+		</text>
+		<text width="22" fgcolor="0x000000" height="18"
+			onmouseover="this.setAttribute('bgcolor',0xFFFFFF)" onmouseout="this.setAttribute('bgcolor',canvas.getThemeColor('secondBorderColor'))">
+			<handler name="oninit"><![CDATA[
+				this.setAttribute('text','&#60;&#60;');]]>
+			</handler>			
+			<handler name="onclick">
+				this.parent.parent.parent.parent.showPreviewsYear();
+			</handler>
+		</text>	
+		<view width="91" height="$once{ parent.height }" >
+			<text fontsize="10" fgcolor="0x000000" align="center" text="${ parent.parent.parent.currentMonthName+' '+parent.parent.parent.parent.parent.year }" resize="true" />
+		</view>
+		<text width="22" fgcolor="0x000000" text=">>" height="18"
+			onmouseover="this.setAttribute('bgcolor',0xFFFFFF)" onmouseout="this.setAttribute('bgcolor',canvas.getThemeColor('secondBorderColor'))">
+			<handler name="onclick">
+				this.parent.parent.parent.parent.showNextYear();
+			</handler>
+		</text>
+		<text width="20" fgcolor="0x000000" text="  >" height="18"
+			onmouseover="this.setAttribute('bgcolor',0xFFFFFF)" onmouseout="this.setAttribute('bgcolor',canvas.getThemeColor('secondBorderColor'))">
+			<handler name="onclick">
+				this.parent.parent.parent.parent.showNextMonth();
+			</handler>
+		</text>	
+	</view>
+	<view name="weekheader" layout="axis:x;spacing:1" x="1" y="18" bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }"/>
+	<!-- 
+	<view name="weekNumber" layout="axis:y;spacing:1" x="1" y="35" />
+	 -->
+	<view name="content" layout="axis:y;spacing:1" x="1" y="35" />
+</class>
+
+<class name="baseDateSelector" extends="baseDateSelectorComponent" >
+	
+	<attribute name="dayNamesLabelIds" value="null" />
+	<attribute name="dayLabelNamesLabelIds" value="null" />
+	<attribute name="monthnames" value="['Januar','Februar','Maerz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember']"/> 
+
+
+	<attribute name="firstdayinweek" value="$once{ canvas.firstdayinweek }" type="number" />
+	<attribute name="year" value="" type="string" />
+	<attribute name="selecteddate" value="null" />
+	<attribute name="selected" value="null" />
+	
+	<event name="onselect" />
+	<event name="ondoubleselect" />
+	
+	<event name="onmonthSel" />
+	<event name="onyearSel" />
+	
+	<attribute name="dayIndexNumber" value="-1" type="number" />
+	<attribute name="weekIndexNumber" value="-1" type="number" />
+	
+	<handler name="oninit">
+		<![CDATA[
+			this.dayNamesLabelIds = [459,453,454,455,456,457,458];
+			this.dayLabelNamesLabelIds = [466,460,461,462,463,464,465];
+			this.monthnames = [canvas.getLabelName(469),canvas.getLabelName(470),
+								canvas.getLabelName(471),canvas.getLabelName(472),
+								canvas.getLabelName(473),canvas.getLabelName(474),
+								canvas.getLabelName(475),canvas.getLabelName(476),
+								canvas.getLabelName(477),canvas.getLabelName(478),
+								canvas.getLabelName(479),canvas.getLabelName(480)]
+			
+			this.init();
+		]]>
+	</handler>	
+	
+	<method name="loadDate" args="datObj">
+		this.showingdate = datObj;
+		this.init();
+		this.showDate(this.selecteddate);
+		//this.onselect.sendEvent(this.selecteddate);
+	</method>
+	
+	<method name="init">
+        <![CDATA[ 
+	        super.init();
+	        
+	        var tIsInit = false;
+	        if (this.showingdate==""){
+	        	tIsInit = true;
+	        	this.showingdate = new Date();
+	        }
+	        this.setAttribute('year',this.showingdate.getFullYear());
+	        this.selecteddate = this.showingdate;
+	        var firstdayDate = this.getDateFirstDayInMonth();
+	        this.content.content.destroy();
+	        new lz.dateSelectorMonth(this.content,{name:'content',
+		        	firstweekNumber:this.getWeekNumber(firstdayDate.getTime()),
+		        	month:this.selecteddate.getMonth(),
+		        	showingdate:firstdayDate,
+		        	dayclass:dayclass,
+		        	weekclass:weekclass,
+		        	showcalenderweek:showcalenderweek,
+		        	showcalendermonth:showcalendermonth
+	        	});
+	        this.hiliteDate(this.showingdate);
+	        //this.onselect.sendEvent(this.selecteddate);
+	        var ref = this.checkToday();
+	        
+	        if ($debug) Debug.write("INIT ",ref,ref.daydate);
+	        
+	        if (ref != null && tIsInit) {
+		        this.selectDate(ref.daydate, ref.dayIndexNumber, ref.weekIndexNumber);
+	        }
+		]]>
+	</method>
+	
+	<method name="checkToday">
+		<![CDATA[
+		var tDate = new Date();
+        if (this.showingdate.getMonth()== tDate.getMonth() && this.showingdate.getFullYear() == tDate.getFullYear()){
+        	//Debug.write("+++++++ Found Today");
+        	var ref = this.getDateRefByDateNumber(tDate.getDate(),tDate.getMonth());
+        	if (ref == null) {
+        		if ($debug) Debug.warn("Could not find date ref",tDate);
+        	}
+        	ref.setAttribute('bgcolor',0xCECECE);
+        	return ref;
+        }
+        
+        return this.getDateRefByDateNumber(this.showingdate.getDate(),this.showingdate.getMonth())
+		]]>
+	</method>
+	
+	<method name="showDate" args="dateObj">
+		<![CDATA[
+		if(this.selected!=null) this.selected.setAttribute('bgcolor',"white");
+		var i=0;
+		while (i<this.content.content.content.subviews.length){
+			var k=0;
+			while (k<this.content.content.content.subviews[i].content.subviews.length){
+				var t = this.content.content.content.subviews[i].content.subviews[k].daydate;
+				if (t.getDate()==dateObj.getDate() && t.getMonth()==dateObj.getMonth()){
+					this.content.content.content.subviews[i].content.subviews[k].onclick.sendEvent(null);
+					return;
+				}
+				k++;
+			}
+			i++;
+		}
+		]]>
+	</method>
+	
+	<method name="selectDate" args="dateObj,dayIndex,weekIndex">
+		dayIndexNumber = dayIndex;
+		weekIndexNumber = weekIndex;
+		this.showingdate = dateObj;
+		this.selecteddate = dateObj;
+		this.hiliteDate(this.showingdate);
+		this.checkToday();
+		this.onselect.sendEvent(this.selecteddate);
+	</method>
+	
+	<method name="selectDoubleDate" args="dateObj">
+		this.showingdate = dateObj;
+		this.selecteddate = dateObj;
+		this.hiliteDate(this.showingdate);
+		this.checkToday();
+		this.ondoubleselect.sendEvent(this.selecteddate);
+	</method>
+	
+	<method name="hiliteDate" args="dateObj">
+		<![CDATA[
+		if(this.selected!=null) this.selected.setAttribute('bgcolor',"white");
+		var i=0;
+		while (i<this.content.content.content.subviews.length){
+			var k=0;
+			while (k<this.content.content.content.subviews[i].content.subviews.length){
+				var t = this.content.content.content.subviews[i].content.subviews[k].daydate;
+				if (t.getDate()==dateObj.getDate() && t.getMonth()==dateObj.getMonth()){
+					this.selected = this.content.content.content.subviews[i].content.subviews[k];
+					this.selected.setAttribute('bgcolor',0xCCD7E1);
+					return;
+				}
+				k++;
+			}
+			i++;
+		}
+		]]>
+	</method>
+	
+	<!-- 
+		Here the Date has to be changed sothat the firstday in week is the first day in month
+	 -->
+	<method name="getDateFirstDayInMonth">
+		<![CDATA[
+		//First calc the date by the given first day in week
+		var newDateTemp = new Date(this.showingdate.getFullYear(), this.showingdate.getMonth(), 1, 12); //set hours to 12 to prevent timezone issues
+		////Debug.write(newDateTemp);
+		var factor = 0;
+		if (newDateTemp.getDay()>this.firstdayinweek)	
+			factor = -((newDateTemp.getDay()-this.firstdayinweek));
+		else if (newDateTemp.getDay()<this.firstdayinweek)
+			factor = (this.firstdayinweek-newDateTemp.getDay());
+		////Debug.write("factor: ",factor);
+		
+		//calc first day
+		var newDate = new Date( (newDateTemp.getTime()+(86400000*factor)) );
+
+		//if the first day is after the first day of the selected month then we have to add 7 Days
+		if (newDate.getDate()>1 && newDate.getMonth()==newDateTemp.getMonth()){
+			newDate = new Date( (newDate.getTime()-(86400000*7)) );
+		}
+		if ($debug) Debug.write("getDateFirstDayInMonth ",newDate);
+		return newDate;
+		]]>
+	</method>
+	
+	<method name="isoWeekDays" args="yday,wday" >
+		<![CDATA[
+		return yday - ((yday - wday + 382) % 7) + 3;
+		]]>
+	</method>
+	
+	<method name="isLeapYear" args="year" >
+		<![CDATA[
+		if (((year % 4) == 0 && (year % 100)!=0) || (year % 400)==0)
+			return 1;
+		else
+			return 0;
+		]]>
+	</method>
+	
+	<method name="getDaysInMonth" args="iYear,iMonth" >
+		<![CDATA[
+			return 32 - new Date(iYear, iMonth, 32).getDate();
+		]]>
+	</method>
+	
+	<method name="getWeekNumber" args="DateInMilliseconds" >
+		<![CDATA[
+		var d = new Date(DateInMilliseconds);
+		if ($debug) Debug.write("getWeekNumber: ",d);
+		var NumerOfDaysIn = d.getDate();
+		
+		for (var i=0;i<d.getMonth();i++) {
+			var monthDays = this.getDaysInMonth(d.getFullYear(),d.getMonth());
+			NumerOfDaysIn+=monthDays;
+		}
+		if ($debug) Debug.write("NumerOfDaysIn,month: ",NumerOfDaysIn,d.getMonth());
+		
+		var days = this.isoWeekDays(NumerOfDaysIn,d.getDay());
+		if ($debug) Debug.write("days: ",days);
+		
+		if (days < 0) {
+			NumerOfDaysIn += 365 + isLeapYear(--NumerOfDaysIn);
+			days = this.isoWeekDays(NumerOfDaysIn, d.getDay());
+		} else {
+			NumerOfDaysIn -= 365 + isLeapYear(NumerOfDaysIn);
+			var d2 = this.isoWeekDays(NumerOfDaysIn,d.getDay());
+			if (0 <= d2) {
+				days = d2;
+			}
+		}
+
+		if ($debug) Debug.write("days: ",days);
+		
+		return (Math.floor((days / 7)));
+		]]>
+	</method>
+	
+	<method name="clearContent">
+		this.content.destroy();
+		new LzView(this,{name:'content'});
+	</method>
+	
+	<method name="showPreviewsMonth">
+		<![CDATA[
+		this.clearContent();
+		var preyear = this.showingdate.getFullYear();
+		var previewsMonth = this.showingdate.getMonth()-1;
+		if (previewsMonth<0) {
+			previewsMonth=11;
+			preyear--;
+		}
+		this.showingdate = new Date(preyear, previewsMonth, this.showingdate.getDate());
+		this.onmonthSel.sendEvent(previewsMonth);
+		this.init();
+		]]>
+	</method>
+	
+	<method name="showNextMonth">
+		<![CDATA[
+		this.clearContent();
+		var nextyear = this.showingdate.getFullYear();
+		var nextMonth = this.showingdate.getMonth()+1;
+		if (nextMonth>11) {
+			nextMonth=0;
+			nextyear++;
+		}		
+		this.showingdate = new Date(nextyear, nextMonth, this.showingdate.getDate());
+		this.onmonthSel.sendEvent(nextMonth);
+		this.init();
+		]]>
+	</method>
+	
+	<method name="showPreviewsYear">
+		this.clearContent();
+		this.showingdate = new Date(this.showingdate.getFullYear()-1, this.showingdate.getMonth(), this.showingdate.getDate());
+		this.onyearSel.sendEvent(this.showingdate.getFullYear());
+		this.init();
+	</method>
+	
+	<method name="showNextYear">
+		this.clearContent();
+		this.showingdate = new Date(this.showingdate.getFullYear()+1, this.showingdate.getMonth(), this.showingdate.getDate());
+		this.onyearSel.sendEvent(this.showingdate.getFullYear());
+		this.init();
+	</method>
+	
+	<method name="getDateRefByDateNumber" args="dayNumber,month">
+		<![CDATA[
+		////Debug.write(this.content.content.content);
+		for (var i=0;i<this.content.content.content.subviews.length;i++){
+			////Debug.write("this.content.content.content.subviews: ",i,this.content.content.content.subviews[i]);
+			for (var k=0;k<this.content.content.content.subviews[i].content.subviews.length;k++){
+				////Debug.write("this.content.content.content.subviews[i].content.subviews[k].daydate.getDate(): ",this.content.content.content.subviews[i].content.subviews[k].daydate.getDate(),dayNumber);
+				////Debug.write("this.content.content.content.subviews[i].content.subviews[k].daydate.getMonth(): ",this.content.content.content.subviews[i].content.subviews[k].daydate.getMonth(),month);
+				if(this.content.content.content.subviews[i].content.subviews[k].daydate.getDate()==dayNumber && this.content.content.content.subviews[i].content.subviews[k].daydate.getMonth()==month){
+					return this.content.content.content.subviews[i].content.subviews[k];
+				}
+				////Debug.write("k: ",k,this.content.content.content.subviews[i].content.subviews[k]);
+				////Debug.write(this.content.content.content.subviews[i].content.subviews[k].daydate);
+			}
+		}
+		return null;
+		]]>
+	</method>
+	
+	<view name="content">
+		<view name="content" />
+	</view>
+
+</class>
+
+<class name="dateSelector" extends="baseDateSelector"
+	weekclass="lz.dateSelectorWeek" dayclass="lz.dateSelectorDay" monthclass="lz.dateSelectorMonth" >
+
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/calendar/library.lzx b/WebContent/src/base/components/calendar/library.lzx
new file mode 100644
index 0000000..31e0d0e
--- /dev/null
+++ b/WebContent/src/base/components/calendar/library.lzx
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<include href="dateSelector.lzx" />
+	<include href="dateField.lzx" />
+	<include href="calendarWindow.lzx" />
+
+</library>
diff --git a/WebContent/src/base/components/conferencebox/conferenceBox.lzx b/WebContent/src/base/components/conferencebox/conferenceBox.lzx
new file mode 100644
index 0000000..8b0ec40
--- /dev/null
+++ b/WebContent/src/base/components/conferencebox/conferenceBox.lzx
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>     
+
+<class name="conferenceBox" extends="view" width="250" height="400" >
+    
+    <attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+    <method name="setLabelId" args="_labelid" >
+        this.labelid = _labelid;
+        this.setAttribute('headerText',canvas.getLabelName(this.labelid));
+    </method>
+    
+    <attribute name="headerText" value="Users" type="string" />
+    
+    <attribute name="closeable" value="false" type="boolean" />
+    <attribute name="isopen" value="true" type="boolean" />
+    
+    <attribute name="textInset" value="10" type="number" />
+    
+    <attribute name="initHeight" value="0" type="number"/>
+    
+    <attribute name="closedHeight" value="40" type="number"/>
+    
+    <handler name="oninit">
+        if (this.initHeight == 0) {
+            this.initHeight = this.height;
+        }
+    </handler>
+    
+    <method name="doOpen">
+        if (!this.isopen) {
+            this.toggleopen();
+        }
+    </method>
+    
+    <method name="toggleopen">
+        if (this.isopen) {
+            this.setAttribute("isopen",false);
+            this.setAttribute("height",this.closedHeight);
+            this.content.setAttribute("visibility","hidden");
+        } else {
+            this.setAttribute("isopen",true);
+            this.setAttribute("height",this.initHeight);
+            //if ($debug) Debug.write("toggleopen TRUE ",this.initHeight)
+            this.content.setAttribute("visibility","visible");
+        }
+    </method>
+    
+    <view name="_head" x="0" y="0" width="${ parent.width }" height="24" 
+    	  clickable="$once{ this.parent.closeable }" >
+        
+        <handler name="onclick">
+        	if (this.parent.closeable) {
+        		this.parent.toggleopen();
+        	}
+        </handler>
+        
+        <view x="8" y="4" visible="${ this.parent.parent.closeable }">
+            
+	        <view visible="${ !this.parent.parent.parent.isopen }" x="2" y="3" resource="conferenceBox_button_min_rsc">
+	            <handler name="onmouseup">
+	                this.parent.parent.parent.toggleopen();
+	            </handler>                                  
+	        </view>
+	        <view visible="${ this.parent.parent.parent.isopen }" x="2" y="3" resource="conferenceBox_button_max_rsc">
+	            <handler name="onmouseup">
+	                this.parent.parent.parent.toggleopen();
+	            </handler>                                  
+	        </view>
+            
+        </view>
+
+        <text x="$once{ parent.parent.textInset }" fontstyle="bold" fontsize="14" fgcolor="0xFFFFFF" 
+              text="${ parent.parent.headerText }" valign="middle"></text>
+        
+    </view>  
+
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/conferencebox/library.lzx b/WebContent/src/base/components/conferencebox/library.lzx
new file mode 100644
index 0000000..c00e280
--- /dev/null
+++ b/WebContent/src/base/components/conferencebox/library.lzx
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+    <resource name="conferenceBox_button_min_rsc" src="resources/box_closed.png" />
+    
+    <resource name="conferenceBox_button_max_rsc" src="resources/box_open.png" />
+    
+    <resource name="kaleidoscope_textbox_milk" 
+          src="resources/milk.swf" />
+
+    <include href="conferenceBox.lzx" />
+
+</library>
diff --git a/WebContent/src/base/components/conferencebox/resources/box_closed.fla b/WebContent/src/base/components/conferencebox/resources/box_closed.fla
new file mode 100644
index 0000000..66e7459
--- /dev/null
+++ b/WebContent/src/base/components/conferencebox/resources/box_closed.fla
Binary files differ
diff --git a/WebContent/src/base/components/conferencebox/resources/box_closed.png b/WebContent/src/base/components/conferencebox/resources/box_closed.png
new file mode 100644
index 0000000..49f20a3
--- /dev/null
+++ b/WebContent/src/base/components/conferencebox/resources/box_closed.png
Binary files differ
diff --git a/WebContent/src/base/components/conferencebox/resources/box_open.fla b/WebContent/src/base/components/conferencebox/resources/box_open.fla
new file mode 100644
index 0000000..9ea85a7
--- /dev/null
+++ b/WebContent/src/base/components/conferencebox/resources/box_open.fla
Binary files differ
diff --git a/WebContent/src/base/components/conferencebox/resources/box_open.png b/WebContent/src/base/components/conferencebox/resources/box_open.png
new file mode 100644
index 0000000..b5873a8
--- /dev/null
+++ b/WebContent/src/base/components/conferencebox/resources/box_open.png
Binary files differ
diff --git a/WebContent/src/base/components/conferencebox/resources/milk.swf b/WebContent/src/base/components/conferencebox/resources/milk.swf
new file mode 100644
index 0000000..e52a1f8
--- /dev/null
+++ b/WebContent/src/base/components/conferencebox/resources/milk.swf
Binary files differ
diff --git a/WebContent/src/base/components/explorer/explorerBox.lzx b/WebContent/src/base/components/explorer/explorerBox.lzx
new file mode 100644
index 0000000..3d2e8d4
--- /dev/null
+++ b/WebContent/src/base/components/explorer/explorerBox.lzx
@@ -0,0 +1,406 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="explorerBox" extends="view" width="250" y="100" visibility="hidden"
+    height="400" bgcolor="$once{ canvas.getThemeColor('styleMenuBarBaseColor') }" 
+	onmousedown="this._startDragState(this)" onmouseup="this._removeDragState(this)" >
+
+	<attribute name="showWindowEffect" value="false" type="boolean" />
+	
+	<attribute name="annimationStartStyle" value="center" type="string" />
+	
+	<attribute name="annimationColor" value="$once{ canvas.getThemeColor('basebgcolorizer') }" type="string" />
+
+	<event name="animationInited" />
+
+    <handler name="oninit">
+    	<![CDATA[
+	    	//if($debug) Debug.write("explorerBox/oninit showWindowEffect? ",canvas.showWindowEffect);
+	    	if (canvas.showWindowEffect=="y" || this.showWindowEffect){
+	    		//if($debug) Debug.write("explorerBox/showWindowEffect == YES");
+	    		if (this.annimationStartStyle == "center") {
+	    			new lz.boxInitEffect(parent,{
+		    					x:this.x+(this.width/2)-50,
+		    					y:this.y+(this.height/2)-10,
+		    					zielx:this.x,
+		    					ziely:this.y,
+		    					bgcolor:annimationColor,
+		    					zielwidth:this.width,
+		    					zielheight:this.height,
+		    					objRef:this
+	    					});
+	    		} else if (this.annimationStartStyle == "mouse"){
+	    			new lz.boxInitEffect(parent,{
+		    					x:parent.getMouse("x"),
+		    					y:parent.getMouse("y"),
+		    					width:2,
+		    					height:2,
+		    					zielx:this.x,
+		    					ziely:this.y,
+		    					bgcolor:annimationColor,
+		    					zielwidth:this.width,
+		    					zielheight:this.height,
+		    					objRef:this
+	    					});
+				} else {
+					if ($debug) Debug.warn("Unkown annimationStartStyle");
+				}
+	    	} else {
+	    		this.sendAnniComplete();
+	    	}
+    	]]>
+    </handler>
+    
+    <method name="sendAnniComplete">
+    	//if($debug) Debug.write("sendAnniComplete");
+    	this.setAttribute('visibility','visible');
+    	this.animationInited.sendEvent(null);
+    	this.setShadow(); 	
+    </method>
+
+    <method name="setShadow" args="bool">
+        this.hasshadow = bool;
+        <![CDATA[
+        if (this.isinited){
+            this.normalMC = this.getDisplayObject();
+            //Debug.write(this.normalMC);
+            ////Debug.write("this.normalMC: ",this.normalMC);
+            ////Debug.write("this: ",this);
+           	this.displacementMap = new flash.filters.DropShadowFilter();
+            this.normalMC.filters = [this.displacementMap];
+        }
+        ]]>              
+    </method>	
+          
+	<!--- The Title of this Box -->
+	<attribute name="title" value="defaulttitle" type="string" />
+	
+	<!--- if this Box should be closeable -->
+	<attribute name="closable" value="false" type="boolean" />
+    
+    <!--- if this Box should be resizeable  -->
+    <attribute name="resizeable" value="false" type="boolean" />
+	
+	<!--- Can this Box be docked to others and 
+			the width/height of parent compoent barrier -->
+	<attribute name="docking" value="false" type="boolean" />
+	
+	<!--- Hard to explain but its clear if you play around 
+		with that. Its the number of minimum pixels before 
+		the "docking" effect will be there -->
+	<attribute name="dockingbarrier" value="15" type="number" />
+	
+	<!--- the Event will be thrown if you close the Box -->
+	<event name="onclose" />
+	
+	<!---@keywords private the list of connected views -->
+	<attribute name="dockinglist" value="null" />
+	
+	<!--- @keywords private temp-older of x-distance to docked-Box  -->
+	<attribute name="tempXdistance" value="0" type="number" />
+
+	<!--- @keywords private temp-older of y-distance to docked-Box  -->
+	<attribute name="tempYdistance" value="0" type="number" />
+	
+	<!--- @keywords private is the Box minimized  -->
+	<attribute name="isopen" value="true" type="boolean" />
+	
+	<!--- @keywords private is the Box minimized  -->
+	<attribute name="open" value="true" type="boolean" />	
+	
+	<!--- @keywords private  -->
+	<attribute name="initheight" value="0" type="number" />
+	
+	<!-- do not allow draging of window -->
+	<attribute name="allowDragging" value="true" type="boolean" />
+	
+	<!--- @keywords private store initial height so toggleopen can reset height  -->
+	<handler name="oninit">
+		this.initheight=this.height;
+		////Debug.write("this.isopen: ",this.isopen);
+		if (!this.open) toggleopen();
+	</handler>
+	
+	<method name="close">
+		if (this.onclose) this.onclose.sendEvent();
+		this.doDestroy();
+	</method>
+	
+	<method name="toggleopen">
+		////Debug.write("this.isopen",this.isopen);
+		this.setAttribute('isopen',!this.isopen);
+		if (this.isopen){
+			_calcdockingList();
+			for (var eg in this.dockinglist){
+				if(this.dockinglist[eg].docking){
+					////Debug.write("this.dockinglist[eg]: ",this.dockinglist[eg].title);
+					////Debug.write("open new y",this.y+this.initheight);
+					this.dockinglist[eg].toggleOpenByParent(this.initheight-22);
+					this.dockinglist[eg].setAttribute('y',this.y+this.initheight);
+					
+				}
+			}			
+			this.setAttribute('height',this.initheight);
+		} else {
+			_calcdockingList();
+			for (var eg in this.dockinglist){
+				if(this.dockinglist[eg].docking){
+					////Debug.write("this.dockinglist[eg]: ",this.dockinglist[eg].title);
+					this.dockinglist[eg].toggleOpenByParent(-(this.initheight-22));
+					this.dockinglist[eg].setAttribute('y',this.y+22);
+				}
+			}	
+			this.setAttribute('height',22);		
+		}
+	</method>
+	
+	<method name="toggleOpenByParent" args="changeY">
+		////Debug.write("+++++ toggleOpenByParent +++++ changeY: ",this.title,changeY);
+		var tempList=new Array();
+		<![CDATA[
+		//check for dockable stuff which is connected to this Box
+		for (var eg in this.parent.subviews){
+			//check that you do not calc with yourself
+			if (this.parent.subviews[eg]!=this && this.parent.subviews[eg].docking){
+				// there are 4 cases which have to be proofed to check every possible situation
+				var proof=false;
+				////Debug.write("found some: ",this.parent.subviews[eg].title);
+				//top box-border
+				if  ( ( ((this.y+this.height)-this.parent.subviews[eg].y) < 1 ) && ( ((this.y+this.height)-this.parent.subviews[eg].y) > -1 ) && ( (this.x+this.width) > this.parent.subviews[eg].x )  && ( this.x < (this.parent.subviews[eg].x+this.parent.subviews[eg].width) ) ){
+					proof=true;
+				}
+					
+				if (proof) tempList.push(this.parent.subviews[eg]);
+			}
+		}
+		]]>
+		////Debug.write("tempList.length: ",tempList.length);
+		if (tempList.length!=0){
+			for (var eg in tempList){
+				if(tempList[eg].docking){
+					////Debug.write("toggleOpenByParent 1 [eg],changeY: ",tempList[eg].title,changeY);
+					tempList[eg].toggleOpenByParent(changeY);
+					tempList[eg].setAttribute('y',tempList[eg].y+changeY);
+				}
+			}	
+		}
+		
+	</method>
+	
+	<!--- @keywords private  -->
+	<method name="_removeDragState" args="obj">
+	    if (!this.allowDragging) {
+	       return;
+	    }
+		//It's important to remove the dragger and do docking stuff before you check for connected Boxes
+		dragger.remove();
+		if (obj==this){
+			if (docking) arrangePosition();
+		} else {
+			if (docking) _lookforParentOnly(obj);
+		}
+			
+		//check for connected Boxes
+		for (var eg in this.dockinglist){
+			if(this.dockinglist[eg].docking){
+				this.dockinglist[eg]._removeDragState(this);
+			}
+		}
+
+	</method>
+
+	
+	<!--- @keywords private
+		the arg obj is needed because the dragging can be called by the Box itself
+		or by a Box which is connected to this Box!  -->
+	<method name="_startDragState" args="obj">
+		this.bringToFront();
+		if (!this.allowDragging) {
+           return;
+        }
+		_calcdockingList();
+		for (var eg in this.dockinglist){
+			if(this.dockinglist[eg].docking){
+				this.dockinglist[eg]._startDragState(this);
+			}
+		}
+		//store position cause it wasn't dragged by itself
+		if (obj!=this){
+			storeAdjustmentToParent(obj.x,obj.y);
+		}
+		dragger.apply();
+	</method>
+	
+	<!--- Calc the List of Boxes which will be dragged and setposition if this Box
+		will be dragged,docked or minimized/maximized  -->
+	<method name="_calcdockingList">
+		//Clear list of conencted Boxes
+		this.dockinglist=new Array();
+		<![CDATA[
+		//check for dockable stuff which is connected to this Box
+		for (var eg in this.parent.subviews){
+			//check that you do not calc with yourself
+			if (this.parent.subviews[eg]!=this && this.parent.subviews[eg]["docking"] && this.parent.subviews[eg].docking){
+				// there are 4 cases which have to be proofed to check every possible situation
+				var proof=false;
+
+				//top box-border
+				if  ( ( ((this.y+this.height)-this.parent.subviews[eg].y) < 1 ) && ( ((this.y+this.height)-this.parent.subviews[eg].y) > -1 ) && ( (this.x+this.width) > this.parent.subviews[eg].x )  && ( this.x < (this.parent.subviews[eg].x+this.parent.subviews[eg].width) ) ){
+					proof=true;
+				}
+
+				if (proof) this.dockinglist.push(this.parent.subviews[eg]);
+			}
+		}
+		]]>
+		////Debug.write("this.dockinglist.length:",this.dockinglist.length);
+	</method>
+	
+	<!--- @keywords private  -->
+	<method name="arrangePosition">
+		//do the magic
+		//the idea is: look for all on the view container one level above this one
+		//and look for the width/height and 0/0 and look for "dockable" stuff there
+		var newx=this.x;
+		var newy=this.y;
+	  
+		<![CDATA[
+				
+		for (var eg in this.parent.subviews){
+			//check that you do not calc with yourself
+			if (this.parent.subviews[eg]!=this && this.parent.subviews[eg]["docking"] && this.parent.subviews[eg].docking){
+				// there are 4 cases which have to be proofed to check every possible situation
+				//left box-border
+				if ( ( ((this.x+this.width)-this.parent.subviews[eg].x) < this.dockingbarrier ) && ( ((this.x+this.width)-this.parent.subviews[eg].x) > -this.dockingbarrier ) &&  ( (this.y+this.height) > this.parent.subviews[eg].y ) &&  ( this.y < (this.parent.subviews[eg].y+this.parent.subviews[eg].height) ) ){
+					newx= ( this.parent.subviews[eg].x - this.width );
+				}
+				//right box-border
+				if ( ( ((this.parent.subviews[eg].x+this.parent.subviews[eg].width)-this.x)<this.dockingbarrier ) && ( ((this.parent.subviews[eg].x+this.parent.subviews[eg].width)-this.x)>-this.dockingbarrier ) &&  ( (this.y+this.height) > this.parent.subviews[eg].y ) &&  ( this.y < (this.parent.subviews[eg].y+this.parent.subviews[eg].height) ) ){
+					newx= ( this.parent.subviews[eg].x + this.parent.subviews[eg].width );
+				}
+				//top box-border
+				if  ( ( ((this.y+this.height)-this.parent.subviews[eg].y) < this.dockingbarrier ) && ( ((this.y+this.height)-this.parent.subviews[eg].y) > -this.dockingbarrier ) && ( (this.x+this.width) > this.parent.subviews[eg].x )  && ( this.x < (this.parent.subviews[eg].x+this.parent.subviews[eg].width) ) ){
+					newy = this.parent.subviews[eg].y-this.height;
+				}
+				//bottom box-border
+				if ( ( ((this.parent.subviews[eg].y+this.parent.subviews[eg].height)-this.y) < this.dockingbarrier ) && ( ((this.parent.subviews[eg].y+this.parent.subviews[eg].height)-this.y) > -this.dockingbarrier ) && ( (this.x+this.width) > this.parent.subviews[eg].x )  && ( this.x < (this.parent.subviews[eg].x+this.parent.subviews[eg].width) ) ){
+					newy = this.parent.subviews[eg].y+this.parent.subviews[eg].height;
+				}
+			}
+		}
+		
+		//Check for Borders
+		//should be done _after_ checking for other dockable stuff so it gets 
+		//priority to dock against the border of parent view
+		if (this.x<this.dockingbarrier){
+			newx=0;
+		}
+		if (this.y<this.dockingbarrier){
+			newy=0;
+		}
+		if ( (this.parent.width-(this.x+this.width))<this.dockingbarrier){
+			newx=this.parent.width-this.width;
+		}
+		if ( (this.parent.height-(this.y+this.height))<this.dockingbarrier){
+			newy=this.parent.height-this.height;
+		}
+		
+		//set position
+		this.setAttribute('x',newx);
+		this.setAttribute('y',newy);
+		]]>
+	</method>
+	
+	<method name="storeAdjustmentToParent" args="objX,objY">
+		this.tempXdistance=objX-this.x;
+		this.tempYdistance=objY-this.y;
+	</method>
+	
+	<!--- @keywords private 
+		this method is needed because if the dragging end and
+		it was not dragged _itself_ it was draged just because a connected
+		dockable Box was dragged than it could be that the connected
+		Box was forced to dock against something different onmouseup
+		so you have to rearrange the old "adjustment"	-->
+	<method name="_lookforParentOnly" args="obj">
+		<![CDATA[		
+		var newx=obj.x-tempXdistance;
+		var newy=obj.y-tempYdistance;
+		
+		this.setAttribute('x',newx);
+		this.setAttribute('y',newy);
+		]]>
+	</method>
+	
+	<dragstate name="dragger" />
+    
+    <animator attribute="y" to="20" duration="1000" started="false" />
+        
+    <animator name="doOut" attribute="y" to="-500" duration="1000" started="false" onstop="parent.doDestroy()" />    
+    
+    <method name="doDestroy">
+        this.destroy();
+    </method>
+	
+	<view width="${ this.parent.width-2 }" height="${ this.parent.height-2 }" 
+		  x="1" y="1" bgcolor="$once{ canvas.getThemeColor('mainBackgroundColor') }" />
+	<view x="1" y="1" width="${ this.parent.width-2 }" height="20" >
+	
+		<gradientview x="0" width="${ this.parent.width }" height="20"
+				colorFrom="$once{ canvas.getThemeColor('baseMousecolorizer') }"
+				colorTo="$once{ canvas.getThemeColor('styleMenuBarBaseColor') }" >
+		</gradientview>
+		
+        <text fontsize="10" height="17" x="6" y="1" text="${ this.parent.parent.title }" 
+			fgcolor="0xFFFFFF" resize="true" fontstyle="bold" />
+			
+		<view visible="${ this.parent.parent.closable }" x="${ this.parent.parent.width-20 }" 
+			y="2" resource="btn_presenter_close"
+                onmouseover="this.setAttribute('frame',2)"
+                onmouseout="this.setAttribute('frame',1)"
+                onmousedown="this.setAttribute('frame',3)"
+                onmouseup="this.setAttribute('frame',1)" >
+			<handler name="onclick">
+				this.parent.parent.close();
+			</handler>									
+		</view>
+	</view>
+    <handler name="onaddsubview" args="v">
+		////Debug.write("onaddsubview",v);
+		if (v.parent.subviews.length>2) this._resizeview.bringToFront();
+    </handler>
+    <view visible="${ this.parent.resizeable }" name="_resizeview" 
+    	  x="${ this.parent.width - 17 }" y="${ this.parent.height - 17 }" 
+        resource="explorer_resize_rsc" cursor="explorer_resizemouse_rsc" 
+        onmousedown="this.parent.rs.apply()"
+        onmouseup="this.parent.rs.remove()" >
+    	<handler name="oninit">
+    		//if ($debug) Debug.write("setTint");
+    		//TODO: Fix this, does not work at the moment
+    		//http://code.google.com/p/openmeetings/issues/detail?id=470
+    		this.setColor(canvas.getThemeColor('baseMousecolorizer'));
+    	</handler>  	
+    </view>
+    <resizestate name="rs"/>
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/explorer/labelexplorerBox.lzx b/WebContent/src/base/components/explorer/labelexplorerBox.lzx
new file mode 100644
index 0000000..66a170c
--- /dev/null
+++ b/WebContent/src/base/components/explorer/labelexplorerBox.lzx
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="labelExplorerBox" extends="explorerBox" >
+
+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+	<method name="setLabelId" args="_labelid" >
+		this.labelid = _labelid;
+		this.title=canvas.getLabelName(this.labelid);
+	</method>
+	
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/explorer/library.lzx b/WebContent/src/base/components/explorer/library.lzx
new file mode 100644
index 0000000..d53d994
--- /dev/null
+++ b/WebContent/src/base/components/explorer/library.lzx
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<include href="incubator/gradientview.lzx" /> 
+
+	<include href="resources/" />
+	
+	<include href="explorerBox.lzx" />
+	<include href="labelexplorerBox.lzx" />
+
+    
+</library>
diff --git a/WebContent/src/base/components/explorer/resources/explorbar_maximize_dn.png b/WebContent/src/base/components/explorer/resources/explorbar_maximize_dn.png
new file mode 100644
index 0000000..e5ae343
--- /dev/null
+++ b/WebContent/src/base/components/explorer/resources/explorbar_maximize_dn.png
Binary files differ
diff --git a/WebContent/src/base/components/explorer/resources/explorbar_maximize_mo.png b/WebContent/src/base/components/explorer/resources/explorbar_maximize_mo.png
new file mode 100644
index 0000000..093a0b0
--- /dev/null
+++ b/WebContent/src/base/components/explorer/resources/explorbar_maximize_mo.png
Binary files differ
diff --git a/WebContent/src/base/components/explorer/resources/explorbar_maximize_no.png b/WebContent/src/base/components/explorer/resources/explorbar_maximize_no.png
new file mode 100644
index 0000000..fca6ec8
--- /dev/null
+++ b/WebContent/src/base/components/explorer/resources/explorbar_maximize_no.png
Binary files differ
diff --git a/WebContent/src/base/components/explorer/resources/explorbar_minimize_dn.png b/WebContent/src/base/components/explorer/resources/explorbar_minimize_dn.png
new file mode 100644
index 0000000..e05de83
--- /dev/null
+++ b/WebContent/src/base/components/explorer/resources/explorbar_minimize_dn.png
Binary files differ
diff --git a/WebContent/src/base/components/explorer/resources/explorbar_minimize_mo.png b/WebContent/src/base/components/explorer/resources/explorbar_minimize_mo.png
new file mode 100644
index 0000000..faba70d
--- /dev/null
+++ b/WebContent/src/base/components/explorer/resources/explorbar_minimize_mo.png
Binary files differ
diff --git a/WebContent/src/base/components/explorer/resources/explorbar_minimize_no.png b/WebContent/src/base/components/explorer/resources/explorbar_minimize_no.png
new file mode 100644
index 0000000..b4dafa3
--- /dev/null
+++ b/WebContent/src/base/components/explorer/resources/explorbar_minimize_no.png
Binary files differ
diff --git a/WebContent/src/base/components/explorer/resources/explorerbar.png b/WebContent/src/base/components/explorer/resources/explorerbar.png
new file mode 100644
index 0000000..4cb2d59
--- /dev/null
+++ b/WebContent/src/base/components/explorer/resources/explorerbar.png
Binary files differ
diff --git a/WebContent/src/base/components/explorer/resources/feather-1.png b/WebContent/src/base/components/explorer/resources/feather-1.png
new file mode 100644
index 0000000..d8f5175
--- /dev/null
+++ b/WebContent/src/base/components/explorer/resources/feather-1.png
Binary files differ
diff --git a/WebContent/src/base/components/explorer/resources/feather-16x16.png b/WebContent/src/base/components/explorer/resources/feather-16x16.png
new file mode 100644
index 0000000..0db0d36
--- /dev/null
+++ b/WebContent/src/base/components/explorer/resources/feather-16x16.png
Binary files differ
diff --git a/WebContent/src/base/components/explorer/resources/library.lzx b/WebContent/src/base/components/explorer/resources/library.lzx
new file mode 100644
index 0000000..8d3051d
--- /dev/null
+++ b/WebContent/src/base/components/explorer/resources/library.lzx
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<resource src="explorerbar.png" name="explorer_thumb_rsc" />
+
+<resource name="explorer_thumb_rsc" src="feather-16x16.png"/>
+
+
+<resource name="explorer_button_min_rsc" >
+	<frame src="explorbar_minimize_no.png" />
+	<frame src="explorbar_minimize_mo.png" />
+	<frame src="explorbar_minimize_dn.png" />
+</resource>
+
+<resource name="explorer_button_max_rsc" >
+	<frame src="explorbar_maximize_no.png" />
+	<frame src="explorbar_maximize_mo.png" />
+	<frame src="explorbar_maximize_dn.png" />
+</resource>
+
+<resource name="explorer_resize_rsc" src="resizer.swf" />
+
+<resource name="explorer_resizemouse_rsc" src="resizemouse.png" />
+
+
+
+</library>
diff --git a/WebContent/src/base/components/explorer/resources/resizemouse.png b/WebContent/src/base/components/explorer/resources/resizemouse.png
new file mode 100644
index 0000000..be3164f
--- /dev/null
+++ b/WebContent/src/base/components/explorer/resources/resizemouse.png
Binary files differ
diff --git a/WebContent/src/base/components/explorer/resources/resizer.fla b/WebContent/src/base/components/explorer/resources/resizer.fla
new file mode 100644
index 0000000..07de957
--- /dev/null
+++ b/WebContent/src/base/components/explorer/resources/resizer.fla
Binary files differ
diff --git a/WebContent/src/base/components/explorer/resources/resizer.png b/WebContent/src/base/components/explorer/resources/resizer.png
new file mode 100644
index 0000000..2c951fe
--- /dev/null
+++ b/WebContent/src/base/components/explorer/resources/resizer.png
Binary files differ
diff --git a/WebContent/src/base/components/explorer/resources/resizer.swf b/WebContent/src/base/components/explorer/resources/resizer.swf
new file mode 100644
index 0000000..2e5d0da
--- /dev/null
+++ b/WebContent/src/base/components/explorer/resources/resizer.swf
Binary files differ
diff --git a/WebContent/src/base/components/iconView.lzx b/WebContent/src/base/components/iconView.lzx
new file mode 100644
index 0000000..494c5f8
--- /dev/null
+++ b/WebContent/src/base/components/iconView.lzx
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="iconView" extends="view">
+    <attribute name="enabled" value="true" type="boolean" />
+    <handler name="onenabled" args="ena">
+        //Debug.write("onenabled: ",ena);
+        ( this.enabled ) ? this.setAttribute('frame',1) : this.setAttribute('frame',4);
+    </handler>
+    <handler name="onmouseover">
+        if (this.enabled) this.setAttribute('frame',2);
+    </handler>
+    <handler name="onmouseout">
+        if (this.enabled) this.setAttribute('frame',1);
+    </handler>
+    <handler name="onmousedown">
+        if (this.enabled) this.setAttribute('frame',3);
+    </handler>
+    <handler name="onmouseup">
+        if (this.enabled) this.setAttribute('frame',1);
+    </handler>            
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/labelRadioButton.lzx b/WebContent/src/base/components/labelRadioButton.lzx
new file mode 100644
index 0000000..e11d718
--- /dev/null
+++ b/WebContent/src/base/components/labelRadioButton.lzx
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="labelRadioButton" extends="radiobutton" style="componentStyle">
+
+	<attribute name="labelid" value="0" type="number" setter="setLabelId(labelid)" />
+	<method name="setLabelId" args="_labelid" >
+		this.labelid = _labelid;
+		this.setAttribute('text',canvas.getLabelName(this.labelid));
+	</method>
+	
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/labeltabelement.lzx b/WebContent/src/base/components/labeltabelement.lzx
new file mode 100644
index 0000000..bab29ad
--- /dev/null
+++ b/WebContent/src/base/components/labeltabelement.lzx
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="labeltabelement" extends="tabelement" style="componentStyle">
+
+	<attribute name="labelid" value="0" type="number" setter="setLabelId(labelid)" />
+	<method name="setLabelId" args="_labelid" >
+		this.labelid = _labelid;
+		this.setAttribute('text',canvas.getLabelName(this.labelid));
+	</method>
+	
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/library.lzx b/WebContent/src/base/components/library.lzx
new file mode 100644
index 0000000..a4d80cf
--- /dev/null
+++ b/WebContent/src/base/components/library.lzx
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	
+	<include href="miniIcons.lzx" />
+    <include href="iconView.lzx" />
+    <include href="miniIconsNew.lzx" />
+    <include href="resetCombobox.lzx" />
+    <include href="updatecheckbox.lzx" />
+    <include href="tableCombobox.lzx" />
+    <include href="tableListItem.lzx" />
+    <include href="labelRadioButton.lzx" />
+    <include href="labeltabelement.lzx" />
+    
+    <include href="scrollbars/" />
+    <include href="text/" />
+    <include href="omcharts/" />
+    <include href="button/" />
+    <include href="explorer/" />    
+    <include href="panel/" />  
+    <include href="turnoverlist/" />
+    <include href="turnoverlistpaged/" />
+    <include href="calendar/" />
+    <include href="simplevaluelist/" />
+    <include href="upload/" /> 
+    <include href="validbox/" />
+    <include href="presenter/" />
+    <include href="lps/" />
+    <include href="conferencebox/" />
+
+</library>
diff --git a/WebContent/src/base/components/lps/basePropertySelector.lzx b/WebContent/src/base/components/lps/basePropertySelector.lzx
new file mode 100644
index 0000000..2d9a099
--- /dev/null
+++ b/WebContent/src/base/components/lps/basePropertySelector.lzx
@@ -0,0 +1,48 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<class name="hidePropertyView" extends="view"
+	   width="$once{ parent.width }" height="$once{ parent.height }"
+	   opacity="0.7" bgcolor="0xFFFFFF" />
+
+<class name="basePropertySelector" extends="view">
+	
+	<!--- position of the SliderWin or ColorPicker -->
+	<attribute name="boxPosition" value="down" type="string" />
+	
+	<attribute name="isEnabled" value="true" type="boolean" />
+	<attribute name="enabledView" value="null" />
+	
+	<method name="setEnabled" args="b">
+		this.setAttribute('isEnabled',b);
+		if (this.enabledView != null) {
+			this.enabledView.destroy();
+			this.enabledView = null;
+		}
+		if (!b) {
+			this.enabledView = new lz.hidePropertyView(this);
+		} 
+	</method>
+    
+    
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/lps/changeWidthLetterSlider.lzx b/WebContent/src/base/components/lps/changeWidthLetterSlider.lzx
new file mode 100644
index 0000000..646de89
--- /dev/null
+++ b/WebContent/src/base/components/lps/changeWidthLetterSlider.lzx
@@ -0,0 +1,146 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>  
+
+<class name="changeWidthLetterSlider" extends="basePropertySelector" bgcolor="white" width="60" height="24">
+
+    <attribute name="numberAlign" value="right" type="string"/>
+    <attribute name="minimum" type="number" value="4" />
+    <attribute name="maximum" type="number" value="100" />
+    <attribute name="step" value="1" type="number"/>
+    <attribute name="initialNumberInit" value="1" type="number"/>
+    <attribute name="initialNumber" value="12" type="number"/>
+    
+    <event name="onplus" />
+    <event name="onminus" />
+    
+    <handler name="oninit">
+        this.initialNumberInit=initialNumber;
+    </handler>
+    
+    <method name="setSliderValue" args="v">
+    	this.initialNumber = v;
+    	this.numericValue.setAttribute('text',this.initialNumber);
+    	this.setEnabled(true);
+    </method>
+    
+    <method name="getValue">
+        return this.initialNumber;
+    </method>
+
+
+    <edittext name="numericValue" width="34" height="24" text="$once{ parent.initialNumber }" >
+        <attribute name="tempValue" value="$once{ parent.initialNumber }" type="number" />
+        <handler name="onfocus">
+            this.tempValue = Number(this.getText());
+        </handler>            
+        <handler name="onblur">
+            <![CDATA[
+                var t = parseInt(this.getText());
+                if (isNaN(t) || t > this.parent.maximum || t < this.parent.minimum){
+                    t = this.tempValue;
+                    this.setAttribute('text',t);
+                    lz.Focus.setFocus(this);
+                } else {
+                    this.tempValue = t;
+                    parent.setAttribute('initialNumber',t);
+                }
+            ]]>
+        </handler>
+    </edittext>
+
+
+    <button name="arrowView" x="36" width="24" y="1" height="23" >
+        <view name="arrow_down_slider" resource="arrow_down_slider_rsc" 
+            x="4" y="3" />
+            <handler name="onclick">
+                var pick = new lz.changeWidthLetterSliderWin(canvas,{initialNumber:parent.numericValue.tempValue,btnRef:this.parent,x:(parent.getAttributeRelative('x',canvas)),y:(parent.getAttributeRelative('y',canvas))});
+                lz.ModeManager.makeModal( pick );
+            </handler>
+        <labelTooltip labelid="431" />
+    </button>
+    
+</class>
+    
+<class name="closableViewLetter" extends="view">
+    <method name="close">
+        lz.ModeManager.release(this);
+        this.destroy();
+    </method>
+</class>    
+    
+<class name="changeWidthLetterSliderWin" extends="closableViewLetter" bgcolor="white" 
+    clickable="true" width="58" height="140" >
+    
+    <attribute name="btnRef" value="null" />
+    <attribute name="initialNumber" value="12" type="number"/>
+    
+    <!--- @keywords private -->
+    <method name="passModeEvent" args="eventStr,view" > 
+        <![CDATA[
+            if ( eventStr == "onmousedown"  ){
+                if ( view != null ) {
+                   if ( !view.childOf(this) ) {
+                        this.close();
+                   }
+                } else {
+                    this.close();
+                }
+            }
+            if (view && view.childOf(this)) {
+                if (view[ eventStr ]) {
+                    view[ eventStr ].sendEvent( view );
+                }
+                return false;
+            }
+            return true;
+        ]]> 
+    </method>
+
+    <view bgcolor="$once{ canvas.getThemeColor('baseMousecolorizer') }" width="58" height="138" x="1" y="1" />
+    
+    <vslider name="_slider" height="120" y="10" x="10" minvalue="4" maxvalue="100"
+        initvalue="$once{ parent.initialNumber }" showrange="false" >
+        <handler name="onvalue" args="v">
+            parent.btnRef.numericValue.tempValue = Number(v);
+            parent.btnRef.numericValue.setAttribute('text',v);
+            parent.btnRef.setAttribute('initialNumber',v);
+        </handler>
+        <handler name="onvalueChosenFinal">
+            parent.close();
+        </handler>
+    </vslider>
+    
+    <view name="_close" x="$once{ parent.width-this.width-2 }" y="2"
+        resource="btn_presenter_close"
+        onmouseover="this.setAttribute('frame',2)"
+        onmouseout="this.setAttribute('frame',1)"
+        onmousedown="this.setAttribute('frame',3)"
+        onmouseup="this.setAttribute('frame',1)" >
+        <handler name="onclick">
+            this.setAttribute('frame',2);
+            this.parent.close();
+        </handler>
+        <labelTooltip labelid="430" />
+    </view>     
+        
+</class>    
+
+</library>
diff --git a/WebContent/src/base/components/lps/changeWidthSlider.lzx b/WebContent/src/base/components/lps/changeWidthSlider.lzx
new file mode 100644
index 0000000..dfa746a
--- /dev/null
+++ b/WebContent/src/base/components/lps/changeWidthSlider.lzx
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>  
+
+<class name="changeWidthSlider" extends="basePropertySelector" bgcolor="0xFFFFFF" width="60" height="24">
+
+    <attribute name="numberAlign" value="right" type="string"/>
+    <attribute name="minimum" type="number" value="1" />
+    <attribute name="maximum" type="number" value="100" />
+    <attribute name="step" value="1" type="number"/>
+    <attribute name="initialNumberInit" value="1" type="number"/>
+    <attribute name="initialNumber" value="3" type="number"/>
+    
+    <attribute name="boxPosition" value="down" type="string"/>
+    
+    <attribute name="labelid" value="429" type="number"/>
+    
+    <event name="onplus" />
+    <event name="onminus" />
+    
+    <handler name="oninit">
+        this.initialNumberInit=initialNumber;
+    </handler>
+    
+    <method name="getValue">
+        return this.initialNumber;
+    </method>
+    
+    <method name="setSliderValue" args="v">
+    	this.initialNumber = v;
+    	this.numericValue.setAttribute('tempValue',this.initialNumber);
+    	this.numericValue.setAttribute('text',this.initialNumber);
+    	if ($debug) Debug.write("setSliderValue ",v);
+    	this.setEnabled(true);
+    </method>
+
+    <edittext name="numericValue" width="34" height="24" text="$once{ parent.initialNumber }" >
+        <attribute name="tempValue" value="$once{ parent.initialNumber }" type="number" />
+        <handler name="onfocus">
+            this.tempValue = Number(this.getText());
+        </handler>            
+        <handler name="onblur">
+            <![CDATA[
+                var t = parseInt(this.getText());
+                if (isNaN(t) || t > this.parent.maximum || t < this.parent.minimum){
+                    t = this.tempValue;
+                    this.setAttribute('text',t);
+                    lz.Focus.setFocus(this);
+                } else {
+                    this.tempValue = t;
+                    parent.setAttribute('initialNumber',t);
+                }
+            ]]>
+        </handler>
+    </edittext>
+
+
+    <button name="arrowView" x="36" width="24" y="1" height="23" >
+        <view name="arrow_down_slider" resource="arrow_down_slider_rsc" 
+            x="4" y="3" />
+            <handler name="onclick">
+            	if (this.parent.boxPosition=="up"){
+            		var pick = new lz.changeWidthSliderWin(canvas,{
+					            			initialNumber:parent.numericValue.tempValue,
+					            			btnRef:this.parent,x:(parent.getAttributeRelative('x',canvas)),
+					            			maxvalue:parent.maximum,
+					            			y:(parent.getAttributeRelative('y',canvas)-140+parent.height)
+				            			});
+            	} else {
+            		var pick = new lz.changeWidthSliderWin(canvas,{
+					            			initialNumber:parent.numericValue.tempValue,
+					            			btnRef:this.parent,x:(parent.getAttributeRelative('x',canvas)),
+					            			maxvalue:parent.maximum,
+					            			y:(parent.getAttributeRelative('y',canvas))
+				            			});
+            	}
+                lz.ModeManager.makeModal( pick );
+            </handler>
+        <labelTooltip labelid="$once{ parent.parent.labelid }" />
+    </button>
+    
+</class>
+    
+<class name="closableView" extends="view">
+    <method name="close">
+        lz.ModeManager.release(this);
+        this.destroy();
+    </method>
+</class>    
+    
+<class name="changeWidthSliderWin" extends="closableView" bgcolor="white" 
+    clickable="true" width="58" height="140" >
+    
+    <attribute name="btnRef" value="null" />
+    <attribute name="initialNumber" value="3" type="number"/>
+    <attribute name="maxvalue" value="100" type="number" />
+    
+    <!--- @keywords private -->
+    <method name="passModeEvent" args="eventStr,view" > 
+        <![CDATA[
+            if ( eventStr == "onmousedown"  ){
+                if ( view != null ) {
+                   if ( !view.childOf(this) ) {
+                        this.close();
+                   }
+                } else {
+                    this.close();
+                }
+            }
+            if (view && view.childOf(this)) {
+                if (view[ eventStr ]) {
+                    view[ eventStr ].sendEvent( view );
+                }
+                return false;
+            }
+            return true;
+        ]]> 
+    </method>
+
+    <view bgcolor="$once{ canvas.getThemeColor('baseMousecolorizer') }" width="58" height="138" x="1" y="1" />
+    
+    <vslider name="_slider" height="120" y="10" x="10" minvalue="1" maxvalue="$once{ parent.maxvalue }" 
+        initvalue="$once{ parent.initialNumber }" showrange="false" showvalue="true">
+        <handler name="onvalue" args="v">
+            //if ($debug) Debug.write("onvalue",v);
+            parent.btnRef.numericValue.tempValue = Number(v);
+            parent.btnRef.numericValue.setAttribute('text',v);
+            parent.btnRef.setAttribute('initialNumber',v);
+        </handler>
+        <handler name="onvalueChosenFinal">
+            parent.close();
+        </handler>        
+    </vslider>
+    
+    <view name="_close" x="$once{ parent.width-this.width-2 }" y="2"
+        resource="btn_presenter_close"
+        onmouseover="this.setAttribute('frame',2)"
+        onmouseout="this.setAttribute('frame',1)"
+        onmousedown="this.setAttribute('frame',3)"
+        onmouseup="this.setAttribute('frame',1)" >
+        <handler name="onclick">
+            this.setAttribute('frame',2);
+            this.parent.close();
+        </handler>
+        <labelTooltip labelid="430" />
+    </view>     
+        
+</class>    
+
+</library>
diff --git a/WebContent/src/base/components/lps/colorpicker.lzx b/WebContent/src/base/components/lps/colorpicker.lzx
new file mode 100644
index 0000000..dbd62d5
--- /dev/null
+++ b/WebContent/src/base/components/lps/colorpicker.lzx
@@ -0,0 +1,353 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!---
+      changed by swagner
+  -->
+<library>
+    
+    
+<class name="colorSlider" extends="slider" x="4"
+    minvalue="1" maxvalue="240" 
+    trackheight="4" thumbheight="12"
+    showrange="false" showvalue="true">
+    <attribute name="doSendValueEvent" value="false" type="boolean" />
+    <handler name="onvalue">
+        if (this.doSendValueEvent) { 
+            classroot.updateColor();
+        } else {
+            this.doSendValueEvent=true;
+        }
+    </handler>
+</class>    
+
+<class name="colorPot" width="13" height="13" 
+    onmouseout="">
+    <handler name="onmouseover">
+        var t = _root.createEmptyMovieClip('hans2',20);
+        var myColorTZ = new Color(t);
+        myColorTZ.setRGB(this.mycolor);        
+        this.setAttribute('mycolorString',this.parent.parent.parent.numberToRGB(myColorTZ));
+    </handler>
+    <attribute name="mycolor" type="color" value="0x000000"/>
+    <attribute name="mycolorString" type="string" value="0x000000"/>
+    <attribute name="listener" type="expression"/>
+    <handler name="onclick">
+        listener.changeColor(this.mycolor);
+        listener.close();
+    </handler>
+    <handler name="ondblclick">
+        listener.changeColor(this.mycolor);
+        listener.close();
+    </handler>    
+    <labelTooltip text="${ parent.mycolorString }" />
+    <view bgcolor="#444444" width="13" height="13" >
+        <view bgcolor="${classroot.mycolor}"  x="1" y="1" width="11" height="11"/>
+    </view>
+</class>
+  
+<class name="colorRow" layout="axis:x;spacing:-1" />
+    
+<class name="colorpicker" extends="guiPresenter" labelid="425" isdragable="false" 
+    minimizable="false" maximizable="false" fullToolBar="true" 
+    resizeable="false" width="250" height="154" >
+    
+    <attribute name="btnRef" value="null" />
+      
+    <attribute name="selectedColor" type="number" value="0x00aeef"/>
+    
+    <handler name="onclose">
+    	lz.ModeManager.release(this);
+        this.btnRef.closedColorPicker();
+        this.btnRef.setAttribute('selectedColor', this.selectedColor);
+        this.btnRef.setTransformedStringColor();        
+    </handler>
+    
+    <!--- @keywords private -->
+    <method name="passModeEvent" args="eventStr,view" > 
+        <![CDATA[
+           if ( eventStr == "onmousedown"  ){
+               if ( view != null ) {
+                  if ( !view.childOf(this) ) {
+                       this.close();
+                  }
+               } else {
+                   this.close();
+               }
+           }
+           if (view && view.childOf(this)) {
+               if (view[ eventStr ]) {
+                   view[ eventStr ].sendEvent( view );
+               }
+               return false;
+           }
+          return true;
+       ]]> 
+    </method>  
+    
+    <method name="doDefaultColor" args="thisC">
+        <![CDATA[            
+            var c = thisC.getRGB();
+            var r = (c >> 16) & 0xff;
+            var g = (c >> 8) &  0xff;
+            var b = c & 0xff;
+            ////Debug.write("r g b: ",r,g,b);
+            var hsl = RGBtoHLS(r,g,b);
+            ////Debug.write("doDefaultColor ",hsl);
+            this.updateSlidersByValue(hsl);
+            var rgb = HLStoRGB(s_hue.value, s_bri.value, s_sat.value);
+            var c = rgb.r << 16 | rgb.g << 8 | rgb.b
+            this.setAttribute('selectedColor', c);
+        ]]>    
+    </method>  
+    
+    <method name="updateColor" >
+        <![CDATA[
+            ////Debug.write("updateColor ");
+            var rgb = HLStoRGB(s_hue.value, s_bri.value, s_sat.value);
+            var c = rgb.r << 16 | rgb.g << 8 | rgb.b
+            this.setAttribute('selectedColor', c);
+
+        ]]>
+    </method>
+    
+    <method name="changeColor" args="c">
+        <![CDATA[
+            ////Debug.write("changeColor ");
+            this.setAttribute('selectedColor', c);
+            var r = (c >> 16) & 0xff;
+            var g = (c >> 8) &  0xff;
+            var b = c & 0xff;
+            var hsl = RGBtoHLS(r,g,b);
+            this.updateSlidersByValue(hsl);
+        ]]>
+    </method>
+    
+    <method name="updateSlidersByValue" args="hsl">
+        s_hue.doSendValueEvent=false;
+        s_hue.setValue(hsl.h);
+        s_bri.doSendValueEvent=false;
+        s_bri.setValue(hsl.l);
+        s_sat.doSendValueEvent=false;
+        s_sat.setValue(hsl.s);        
+    </method>
+    
+    <method name="numberToRGB" args="thisC">
+        <![CDATA[            
+            var c = thisC.getRGB();
+            var r = (c >> 16) & 0xff;
+            var g = (c >> 8) &  0xff;
+            var b = c & 0xff;
+            ////Debug.write("r g b: ",r,g,b);
+            
+            HEX_R = r.toString(16).toUpperCase();
+            HEX_G = g.toString(16).toUpperCase();
+            HEX_B = b.toString(16).toUpperCase();
+            
+            if (HEX_R.length < 2) {
+                HEX_R = "0"+HEX_R;
+            }
+            if (HEX_G.length < 2) {
+                HEX_G = "0"+HEX_G;
+            }
+            if (HEX_B.length < 2) {
+                HEX_B = "0"+HEX_B;
+            }
+            var hex = "0x"+HEX_R + HEX_G + HEX_B;
+
+            return hex;
+        ]]>
+    </method>
+    
+    <method name="RGBtoHLS" args="r,g,b">
+        <![CDATA[
+            var h,l,s;
+            var max = (Math.max(Math.max(r, g), b))/255;
+            var min = (Math.min(Math.min(r, g), b))/255;
+            var delta = max-min;
+            l = (max+min)/2;
+            s = (max == min) ? 0 : ((l <= 0.5) ? delta/l/2 : delta/(2-l*2));
+            if(r/255 == max) h = (g-b)/delta/255;
+            else if(g/255 == max) h = 2+(b-r)/delta/255;
+            else if(b/255 == max) h = 4+(r-g)/delta/255;
+            h *= 40;
+            if(h < 0) h += 240;
+            h = Math.round(h);
+            return {h:((isNaN(h)) ? 0 : h), l:Math.round(l*240), s:Math.round(s*240)};
+        ]]>
+    </method>
+    
+    <method name="HLStoRGB" args="h,l,s">
+        <![CDATA[
+            var r,g,b;
+            if(s == 0) {
+                r = g = b = Math.round(l/240*255);
+            } else {
+                h /= 240; l /= 240; s /= 240;
+                var temp4,temp3;
+                var temp2 = (l < 0.5) ? l*(s+1) : l+s-l*s;
+                var temp1 = l*2 - temp2;
+                for(var i=0; i<3; i++) {
+                    switch(i) {
+                        case 0: temp3 = h+1/3; break;
+                        case 1: temp3 = h; break;
+                        case 2: temp3 = h-1/3; break;
+                    }
+                    if(temp3 < 0) temp3++;
+                    else if(temp3 > 1) temp3--;
+                    if(temp3*6 < 1) temp4 = temp1+(temp2-temp1)*6*temp3;
+                    else if(temp3*2 < 1) temp4 = temp2;
+                    else if(temp3*3 < 2) temp4 = temp1+(temp2-temp1)*((2/3)-temp3)*6;
+                    else temp4 = temp1;
+                    switch(i) {
+                        case 0: r = Math.round(temp4*255); break;
+                        case 1: g = Math.round(temp4*255); break;
+                        case 2: b = Math.round(temp4*255); break;
+                    }
+                }
+            }
+            return {r:r, g:g, b:b};
+        ]]>
+    </method>
+    
+    
+    <text fontsize="8" x="$once{classroot.s_hue.width + classroot.s_hue.x}"
+          y="$once{classroot.s_hue.y - 4}" text="HUE" width="26"/>
+      
+    <colorSlider name="s_hue" y="102" />
+    
+    <text fontsize="8" x="$once{classroot.s_bri.width + classroot.s_bri.x}"
+          y="$once{classroot.s_bri.y - 4}" text="BRI" />
+      
+    <colorSlider name="s_bri" y="120" />
+    
+    <text fontsize="8" x="$once{classroot.s_sat.width + classroot.s_sat.x}"
+          y="$once{classroot.s_sat.y - 4}" text="SAT" />
+    
+    <colorSlider name="s_sat" y="138" />  
+    
+    
+    <!-- current color -->
+    <view name="c2" bgcolor="black" width="30" height="66" y="24" x="206">
+        <view name="current" x="1" y="1" bgcolor="${classroot.selectedColor}" 
+            width="$once{parent.width -2}" height="$once{parent.height -2}" />
+    </view>
+
+    <!-- default colors -->
+    <view x="4" y="26" layout="axis:y;spacing:-1" >
+
+        <colorRow>
+            <colorPot listener="$once{classroot}" mycolor="#ff0000" mycolorString="0xFF0000" />
+            <colorPot listener="$once{classroot}" mycolor="#ffff00" mycolorString="0xFFFF00" />
+            <colorPot listener="$once{classroot}" mycolor="#00ff00" mycolorString="0x00FF00" />
+            <colorPot listener="$once{classroot}" mycolor="#00ffff" mycolorString="0x00FFFF" />
+            <colorPot listener="$once{classroot}" mycolor="#0000ff" mycolorString="0x0000FF" />
+            <colorPot listener="$once{classroot}" mycolor="#ff00ff" mycolorString="0xFF00Ff" />
+            <colorPot listener="$once{classroot}" mycolor="#ffffff" mycolorString="0xFFFFFF" />
+            <colorPot listener="$once{classroot}" mycolor="#ebebeb" mycolorString="0xEBEBEB" />
+            <colorPot listener="$once{classroot}" mycolor="#e1e1e1" mycolorString="0xE1E1E1" />
+            <colorPot listener="$once{classroot}" mycolor="#d7d7d7" mycolorString="0xD7D7D7" />
+            <colorPot listener="$once{classroot}" mycolor="#cccccc" mycolorString="0xCCCCCC" />
+            <colorPot listener="$once{classroot}" mycolor="#c2c2c2" mycolorString="0xC2C2C2" />
+            <colorPot listener="$once{classroot}" mycolor="#b7b7b7" mycolorString="0xB7B7B7" />
+            <colorPot listener="$once{classroot}" mycolor="#acacac" mycolorString="0xACACAC" />
+            <colorPot listener="$once{classroot}" mycolor="#a0a0a0" mycolorString="0xA0A0A0" />
+            <colorPot listener="$once{classroot}" mycolor="#959595" mycolorString="0x959595" />
+        </colorRow>
+        <colorRow>
+            <colorPot listener="$once{classroot}" mycolor="#ee1d24" mycolorString="0xEE1D24" />
+            <colorPot listener="$once{classroot}" mycolor="#fff100" mycolorString="0xFFF100" />
+            <colorPot listener="$once{classroot}" mycolor="#00a650" mycolorString="0x00A650" />
+            <colorPot listener="$once{classroot}" mycolor="#00aeef" mycolorString="0x00AEEF" />
+            <colorPot listener="$once{classroot}" mycolor="#2f3192" mycolorString="0x2F3192" />
+            <colorPot listener="$once{classroot}" mycolor="#ed008c" mycolorString="0xED008C" />
+            <colorPot listener="$once{classroot}" mycolor="#898989" mycolorString="0x898989" />
+            <colorPot listener="$once{classroot}" mycolor="#7d7d7d" mycolorString="0x7D7D7D" />
+            <colorPot listener="$once{classroot}" mycolor="#707070" mycolorString="0x707070" />
+            <colorPot listener="$once{classroot}" mycolor="#626262" mycolorString="0x626262" />
+            <colorPot listener="$once{classroot}" mycolor="#555555" mycolorString="0x555555" />
+            <colorPot listener="$once{classroot}" mycolor="#464646" mycolorString="0x464646" />
+            <colorPot listener="$once{classroot}" mycolor="#363636" mycolorString="0x363636" />
+            <colorPot listener="$once{classroot}" mycolor="#262626" mycolorString="0x262626" />
+            <colorPot listener="$once{classroot}" mycolor="#111111" mycolorString="0x111111" />
+            <colorPot listener="$once{classroot}" mycolor="#000000" mycolorString="0x000000" />
+        </colorRow>
+          
+        <colorRow>
+            <colorPot listener="$once{classroot}" mycolor="#f7977a" mycolorString="0xF7977A" />
+            <colorPot listener="$once{classroot}" mycolor="#fbad82" mycolorString="0xFBAD82" />
+            <colorPot listener="$once{classroot}" mycolor="#fdc68c" mycolorString="0xFDC68C" />
+            <colorPot listener="$once{classroot}" mycolor="#fff799" mycolorString="0xFFF799" />
+            <colorPot listener="$once{classroot}" mycolor="#c6df9c" mycolorString="0xC6DF9C" />
+            <colorPot listener="$once{classroot}" mycolor="#a4d49d" mycolorString="0xA4D49D" />
+            <colorPot listener="$once{classroot}" mycolor="#81ca9d" mycolorString="0x81CA9D" />
+            <colorPot listener="$once{classroot}" mycolor="#7bcdc9" mycolorString="0x7bcdc9" />
+            <colorPot listener="$once{classroot}" mycolor="#6ccff7" mycolorString="0x6CCFF7" />
+            <colorPot listener="$once{classroot}" mycolor="#7ca6d8" mycolorString="0x7CA6D8" />
+            <colorPot listener="$once{classroot}" mycolor="#8293ca" mycolorString="0x8293CA" />
+            <colorPot listener="$once{classroot}" mycolor="#8881be" mycolorString="0x8881BE" />
+            <colorPot listener="$once{classroot}" mycolor="#a286bd" mycolorString="0xA286BD" />
+            <colorPot listener="$once{classroot}" mycolor="#bc8cbf" mycolorString="0xBC8CBf" />
+            <colorPot listener="$once{classroot}" mycolor="#f49bc1" mycolorString="0xF49BC1" />
+            <colorPot listener="$once{classroot}" mycolor="#f5999d" mycolorString="0xf5999d" />
+        </colorRow>
+          
+        <colorRow>
+            <colorPot listener="$once{classroot}" mycolor="#f16c4d" mycolorString="0xF16C4D" />
+            <colorPot listener="$once{classroot}" mycolor="#f68e54" mycolorString="0xF68E54" />
+            <colorPot listener="$once{classroot}" mycolor="#fbaf5a" mycolorString="0xFBAF5A" />
+            <colorPot listener="$once{classroot}" mycolor="#fff467" mycolorString="0xFFF467" />
+            <colorPot listener="$once{classroot}" mycolor="#acd372" mycolorString="0xACD372" />
+            <colorPot listener="$once{classroot}" mycolor="#7dc473" mycolorString="0x7DC473" />
+            <colorPot listener="$once{classroot}" mycolor="#39b778" mycolorString="0x39B778" />
+            <colorPot listener="$once{classroot}" mycolor="#16bcb4" mycolorString="0x16BCB4" />
+            <colorPot listener="$once{classroot}" mycolor="#00bff3" mycolorString="0x00BFF3" />
+            <colorPot listener="$once{classroot}" mycolor="#438ccb" mycolorString="0x438CCB" />
+            <colorPot listener="$once{classroot}" mycolor="#5573b7" mycolorString="0x5573B7" />
+            <colorPot listener="$once{classroot}" mycolor="#5e5ca7" mycolorString="0x5E5CA7" />
+            <colorPot listener="$once{classroot}" mycolor="#855FA8" mycolorString="0x855FA8" />
+            <colorPot listener="$once{classroot}" mycolor="#a763a9" mycolorString="0xA763A9" />
+            <colorPot listener="$once{classroot}" mycolor="#ef6ea8" mycolorString="0xEf6EA8" />
+            <colorPot listener="$once{classroot}" mycolor="#f16d7e" mycolorString="0xF16D7E" />
+        </colorRow>
+          
+          
+        <colorRow>
+            <colorPot listener="$once{classroot}" mycolor="#9a8575" mycolorString="0x9A8575" />
+            <colorPot listener="$once{classroot}" mycolor="#726357" mycolorString="0x726357" />
+            <colorPot listener="$once{classroot}" mycolor="#524842" mycolorString="0x524842" />
+            <colorPot listener="$once{classroot}" mycolor="#362f2c" mycolorString="0x362F2C" />
+            <colorPot listener="$once{classroot}" mycolor="#c69c6d" mycolorString="0xC69C6D" />
+            <colorPot listener="$once{classroot}" mycolor="#a77c50" mycolorString="0xA77C50" />
+            <colorPot listener="$once{classroot}" mycolor="#8c623a" mycolorString="0x8C623A" />
+            <colorPot listener="$once{classroot}" mycolor="#744b24" mycolorString="0x744B24" />
+            <colorPot listener="$once{classroot}" mycolor="#613813" mycolorString="0x613813" />
+        </colorRow>
+      
+    </view>
+    
+</class>
+
+</library>
+<!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
+* Copyright 2005-2007 Laszlo Systems, Inc. All Rights Reserved.               *
+* Use is subject to license terms.                                            *
+* X_LZ_COPYRIGHT_END ****************************************************** -->
+<!-- @LZX_VERSION@                                                         -->
diff --git a/WebContent/src/base/components/lps/fillColorChoose.lzx b/WebContent/src/base/components/lps/fillColorChoose.lzx
new file mode 100644
index 0000000..d2e316e
--- /dev/null
+++ b/WebContent/src/base/components/lps/fillColorChoose.lzx
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+
+<class name="fillColorChoose" extends="basePropertySelector"
+    bgcolor="white" width="80" height="24">
+    
+    <attribute name="isopen" value="false" type="boolean" />
+    
+    <attribute name="colorPickRef" value="null"/>
+    
+    <attribute name="selectedColor" type="number" value="0xFFFF33" />
+    <attribute name="selectedColorDis" type="number" value="1" />
+    <attribute name="selectedColorTransformedString" type="string" value="0xFFFF33"/>
+    <attribute name="colorIsEnabled" value="true" type="boolean" /> 
+    <attribute name="inInitColorSelection" value="true" type="boolean" />
+    
+    <handler name="oninit">
+    	if (this.selectedColorDis==-1){
+    		Debug.write("FillColor Disabled");
+    		this._currentcolor.setAttribute('clickable',false);
+    		this._currentcolor.setAttribute('opacity',0.3);
+    		this.rgt.setAttribute('opacity',0.3);
+    		this.rgt.setAttribute('enabled',false);
+    		this.colorIsEnabled = false;
+    	}
+    </handler>
+    
+    <method name="setSelectedColor" args="c">
+    	this.setEnabled(true);
+		this.setAttribute('selectedColor',c);
+		this.setTransformedStringColor();
+    </method>
+    
+    <method name="setSelectedColorWithDis" args="c,d">
+    	this.setEnabled(true);
+		this.setAttribute('selectedColor',c);
+		this.setTransformedStringColor();
+		this.selectedColorDis = d;
+		if (this.selectedColorDis==-1){
+    		if ($debug) Debug.write("FillColor Disabled");
+    		this._currentcolor.setAttribute('clickable',false);
+    		this._currentcolor.setAttribute('opacity',0.3);
+    		this.rgt.setAttribute('opacity',0.3);
+    		this.rgt.setAttribute('enabled',false);
+    		this.colorIsEnabled = false;
+    		this.rgt_b._lock.setAttribute("visibility","visible");
+	    	this.rgt_b._lock_open.setAttribute("visibility","hidden");
+    	} else {
+			this._currentcolor.setAttribute('clickable',true);
+    		this._currentcolor.setAttribute('opacity',1);
+    		this.rgt.setAttribute('opacity',1);
+    		this.rgt.setAttribute('enabled',true);
+    		this.onselectedColor.sendEvent(this.selectedColor);
+    		this.colorIsEnabled = true;
+    		this.rgt_b._lock.setAttribute("visibility","hidden");
+	    	this.rgt_b._lock_open.setAttribute("visibility","visible");
+    	}
+    </method>
+        
+    <method name="getValue">
+        return this.selectedColor;
+    </method>    
+    
+    <method name="toggle">
+        var t = _root.createEmptyMovieClip('hans',10);
+        var myColor = new Color(t);
+        myColor.setRGB(selectedColor);
+        if (this.boxPosition=="up"){
+	        this.colorPickRef = new lz.colorpicker(canvas,{btnRef:this,
+	        	x:(this.getAttributeRelative('x',canvas)-(250-this.width)),
+	        	y:(this.getAttributeRelative('y',canvas)-154+this.height)});
+        } else {
+	        this.colorPickRef = new lz.colorpicker(canvas,{btnRef:this,
+	        	x:(this.getAttributeRelative('x',canvas)-(250-this.width)),
+	        	y:(this.getAttributeRelative('y',canvas))});
+        }
+        this.colorPickRef.doDefaultColor(myColor);
+        lz.ModeManager.makeModal( this.colorPickRef );
+    </method>
+    
+    <method name="setTransformedStringColor">
+        ////Debug.write("setTransformedStringColor: ",this,this.selectedColor);
+        var t = _root.createEmptyMovieClip('hans2',20);
+        var myColor = new Color(t);
+        myColor.setRGB(this.selectedColor);
+        //var a = myColor.getTransform();
+        ////Debug.write("a: ",a);
+        var col = this.numberToRGB(myColor);
+        ////Debug.write("col: ",col);
+        this.setAttribute('selectedColorTransformedString',col);
+    </method>
+    
+    <method name="numberToRGB" args="thisC">
+        <![CDATA[            
+            var c = thisC.getRGB();
+            var r = (c >> 16) & 0xff;
+            var g = (c >> 8) &  0xff;
+            var b = c & 0xff;
+            ////Debug.write("r g b: ",r,g,b);
+            
+            HEX_R = r.toString(16).toUpperCase();
+            HEX_G = g.toString(16).toUpperCase();
+            HEX_B = b.toString(16).toUpperCase();
+            
+            if (HEX_R.length < 2) {
+                HEX_R = "0"+HEX_R;
+            }
+            if (HEX_G.length < 2) {
+                HEX_G = "0"+HEX_G;
+            }
+            if (HEX_B.length < 2) {
+                HEX_B = "0"+HEX_B;
+            }
+            var hex = "0x"+HEX_R + HEX_G + HEX_B;
+
+            return hex;
+        ]]>
+    </method>    
+    
+    <method name="closedColorPicker">
+        lz.ModeManager.release( this.colorPickRef );
+    </method>
+    
+    <view name="_currentcolor" x="1" y="1" onclick="parent.toggle()" 
+        onmouseover="" onmouseout="" width="30" 
+        height="22" bgcolor="${ parent.selectedColor }" >
+        <labelTooltip text="${ parent.parent.selectedColorTransformedString }" />
+    </view>
+    
+    <button name="rgt" x="32" y="1" onclick="parent.toggle()" width="24" height="23" >
+    	<image x="4" y="3" src="$once{ canvas.getThemeImage('colorfillchoose_rsc') }"
+    			width="16" height="16" stretches="both" />
+        <labelTooltip labelid="427" />
+    </button>
+        
+    <button name="rgt_b" x="56" y="1" width="24" height="23" >
+    	<handler name="onclick">
+    		if (parent.colorIsEnabled){
+	    		parent._currentcolor.setAttribute('clickable',false);
+	    		parent._currentcolor.setAttribute('opacity',0.3);
+	    		parent.rgt.setAttribute('opacity',0.3);
+	    		parent.rgt.setAttribute('enabled',false);
+	    		parent.selectedColorDis = -1;
+	    		parent.onselectedColor.sendEvent(-1);
+	    		parent.colorIsEnabled = false;
+	    		this._lock.setAttribute("visibility","hidden");
+	    		this._lock_open.setAttribute("visibility","visible");
+    		} else {
+	    		parent._currentcolor.setAttribute('clickable',true);
+	    		parent._currentcolor.setAttribute('opacity',1);
+	    		parent.rgt.setAttribute('opacity',1);
+	    		parent.rgt.setAttribute('enabled',true);
+	    		parent.selectedColorDis = 1;
+	    		parent.onselectedColor.sendEvent(parent.selectedColor);
+	    		parent.colorIsEnabled = true;
+	    		this._lock.setAttribute("visibility","visible");
+	    		this._lock_open.setAttribute("visibility","hidden");
+    		}
+    	</handler>
+    	<image x="4" y="3" name="_lock" src="$once{ canvas.getThemeImage('color_lock_rsc') }"
+    			width="16" height="16" stretches="both" />
+ 	    <image x="4" y="3" name="_lock_open" src="$once{ canvas.getThemeImage('color_lock_open_rsc') }"
+    			width="16" height="16" stretches="both" visibility="hidden" />
+        <labelTooltip labelid="428" />
+    </button>
+    
+</class>  
+
+    
+</library>
diff --git a/WebContent/src/base/components/lps/library.lzx b/WebContent/src/base/components/lps/library.lzx
new file mode 100644
index 0000000..9826b0e
--- /dev/null
+++ b/WebContent/src/base/components/lps/library.lzx
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+	<!-- APL Author sebawagner -->
+    <resource name="arrow_down_slider_rsc" src="resources/arrow_down_slider.png" /> 
+
+	<include href="vslider.lzx" /> 
+	<include href="basePropertySelector.lzx" />
+	<include href="colorpicker.lzx" />
+    <include href="lineColorChoose.lzx" />
+    <include href="lineOnlyColorChoose.lzx" />
+    <include href="lineColorChoose.lzx" />
+    <include href="fillColorChoose.lzx" />
+    <include href="changeWidthSlider.lzx" />
+    <include href="changeWidthLetterSlider.lzx" />
+    <include href="regexptip.lzx" />
+    
+</library>
diff --git a/WebContent/src/base/components/lps/lineColorChoose.lzx b/WebContent/src/base/components/lps/lineColorChoose.lzx
new file mode 100644
index 0000000..58a84a4
--- /dev/null
+++ b/WebContent/src/base/components/lps/lineColorChoose.lzx
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="lineColorChoose" extends="basePropertySelector"
+    bgcolor="white" width="80" height="24">
+    
+    <attribute name="isopen" value="false" type="boolean" />
+    
+    <attribute name="colorPickRef" value="null"/>
+    
+    <attribute name="selectedColor" type="number" value="0xFF6600" />
+    <attribute name="selectedColorDis" type="number" value="1" />
+    <attribute name="selectedColorTransformedString" type="string" value="0xFF6600"/>
+    <attribute name="colorIsEnabled" value="true" type="boolean" />
+    <attribute name="inInitColorSelection" value="true" type="boolean" />
+    
+    <handler name="oninit">
+    	if (this.selectedColorDis==-1){
+    		this._currentcolor.setAttribute('clickable',false);
+    		this._currentcolor.setAttribute('opacity',0.3);
+    		this.rgt.setAttribute('opacity',0.3);
+    		this.rgt.setAttribute('enabled',false);
+    		this.colorIsEnabled = false;
+    	}
+    </handler>
+        
+    <handler name="oninit">
+    	this.setTransformedStringColor();
+    </handler>
+    
+    <method name="setSelectedColor" args="c">
+    	this.setEnabled(true);
+		this.setAttribute('selectedColor',c);
+		this.setTransformedStringColor();
+    </method>
+    
+    <method name="setSelectedColorWithDis" args="c,d">
+    	this.setEnabled(true);
+		this.setAttribute('selectedColor',c);
+		this.setTransformedStringColor();
+		this.selectedColorDis = d;
+		if (this.selectedColorDis==-1){
+    		if ($debug) Debug.write("FillColor Disabled");
+    		this._currentcolor.setAttribute('clickable',false);
+    		this._currentcolor.setAttribute('opacity',0.3);
+    		this.rgt.setAttribute('opacity',0.3);
+    		this.rgt.setAttribute('enabled',false);
+    		this.colorIsEnabled = false;
+    		this.rgt_b._lock.setAttribute("visibility","visible");
+	    	this.rgt_b._lock_open.setAttribute("visibility","hidden");
+    	} else {
+			this._currentcolor.setAttribute('clickable',true);
+    		this._currentcolor.setAttribute('opacity',1);
+    		this.rgt.setAttribute('opacity',1);
+    		this.rgt.setAttribute('enabled',true);
+    		this.onselectedColor.sendEvent(this.selectedColor);
+    		this.colorIsEnabled = true;
+    		this.rgt_b._lock.setAttribute("visibility","hidden");
+	    	this.rgt_b._lock_open.setAttribute("visibility","visible");
+    	}
+    </method>
+    
+    <method name="getValue">
+        return this.selectedColor;
+    </method>    
+    
+    <method name="toggle">
+        var t = _root.createEmptyMovieClip('hans',10);
+        var myColor = new Color(t);
+        myColor.setRGB(selectedColor);
+        if (this.boxPosition=="up"){
+	        this.colorPickRef = new lz.colorpicker(canvas,{btnRef:this,
+	        	x:(this.getAttributeRelative('x',canvas)-(250-this.width)),
+	        	y:(this.getAttributeRelative('y',canvas)-154+this.height)});
+        } else {
+	        this.colorPickRef = new lz.colorpicker(canvas,{btnRef:this,
+	        	x:(this.getAttributeRelative('x',canvas)-(250-this.width)),
+	        	y:(this.getAttributeRelative('y',canvas))});
+        }
+
+        this.colorPickRef.doDefaultColor(myColor);
+        lz.ModeManager.makeModal( this.colorPickRef );
+    </method>
+    
+    <method name="setTransformedStringColor">
+        ////Debug.write("setTransformedStringColor: ",this,this.selectedColor);
+        var t = _root.createEmptyMovieClip('hans2',20);
+        var myColor = new Color(t);
+        myColor.setRGB(this.selectedColor);
+        //var a = myColor.getTransform();
+        ////Debug.write("a: ",a);
+        var col = this.numberToRGB(myColor);
+        ////Debug.write("col: ",col);
+        this.setAttribute('selectedColorTransformedString',col);
+    </method>
+    
+    <method name="numberToRGB" args="thisC">
+        <![CDATA[            
+            var c = thisC.getRGB();
+            var r = (c >> 16) & 0xff;
+            var g = (c >> 8) &  0xff;
+            var b = c & 0xff;
+            ////Debug.write("r g b: ",r,g,b);
+            
+            HEX_R = r.toString(16).toUpperCase();
+            HEX_G = g.toString(16).toUpperCase();
+            HEX_B = b.toString(16).toUpperCase();
+            
+            if (HEX_R.length < 2) {
+                HEX_R = "0"+HEX_R;
+            }
+            if (HEX_G.length < 2) {
+                HEX_G = "0"+HEX_G;
+            }
+            if (HEX_B.length < 2) {
+                HEX_B = "0"+HEX_B;
+            }
+            var hex = "0x"+HEX_R + HEX_G + HEX_B;
+
+            return hex;
+        ]]>
+    </method>    
+    
+    <method name="closedColorPicker">
+        lz.ModeManager.release( this.colorPickRef );
+    </method>
+    
+    <view name="_currentcolor" x="1" y="1" onclick="parent.toggle()" 
+        onmouseover="" onmouseout="" width="30" 
+        height="22" bgcolor="${ parent.selectedColor }" >
+        <labelTooltip text="${ parent.parent.selectedColorTransformedString }" />
+    </view>
+    
+    <button name="rgt" x="32" y="1" onclick="parent.toggle()" width="24" height="23" >
+    	<image x="4" y="3" src="$once{ canvas.getThemeImage('colorlinechoose_rsc') }"
+    			width="16" height="16" stretches="both" />
+        <labelTooltip labelid="424" />
+    </button>
+        
+    <button name="rgt_b" x="56" y="1" width="24" height="23" >
+    	<handler name="onclick">
+    		if (parent.colorIsEnabled){
+	    		parent._currentcolor.setAttribute('clickable',false);
+	    		parent._currentcolor.setAttribute('opacity',0.3);
+	    		parent.rgt.setAttribute('opacity',0.3);
+	    		parent.rgt.setAttribute('enabled',false);
+	    		parent.selectedColorDis = -1;
+	    		parent.onselectedColor.sendEvent(-1);
+	    		parent.colorIsEnabled = false;
+	    		this._lock.setAttribute("visibility","hidden");
+	    		this._lock_open.setAttribute("visibility","visible");
+    		} else {
+	    		parent._currentcolor.setAttribute('clickable',true);
+	    		parent._currentcolor.setAttribute('opacity',1);
+	    		parent.rgt.setAttribute('opacity',1);
+	    		parent.rgt.setAttribute('enabled',true);
+	    		parent.selectedColorDis = 1;
+	    		parent.onselectedColor.sendEvent(parent.selectedColor);
+	    		parent.colorIsEnabled = true;
+	    		this._lock.setAttribute("visibility","visible");
+	    		this._lock_open.setAttribute("visibility","hidden");
+    		}
+    	</handler>
+    	<image x="4" y="3" name="_lock" src="$once{ canvas.getThemeImage('color_lock_rsc') }"
+    			width="16" height="16" stretches="both" />
+ 	    <image x="4" y="3" name="_lock_open" src="$once{ canvas.getThemeImage('color_lock_open_rsc') }"
+    			width="16" height="16" stretches="both" visibility="hidden" />
+        <labelTooltip labelid="426" />
+    </button>
+    
+</class>  
+
+    
+</library>
diff --git a/WebContent/src/base/components/lps/lineOnlyColorChoose.lzx b/WebContent/src/base/components/lps/lineOnlyColorChoose.lzx
new file mode 100644
index 0000000..95c7640
--- /dev/null
+++ b/WebContent/src/base/components/lps/lineOnlyColorChoose.lzx
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="lineOnlyColorChoose" extends="basePropertySelector"
+    bgcolor="white" width="56" height="24">
+    
+    <attribute name="isopen" value="false" type="boolean" />
+    
+    <attribute name="colorPickRef" value="null"/>
+    
+    <attribute name="selectedColor" type="number" value="0xFF6600" />
+    <attribute name="selectedColorTransformedString" type="string" value="0xFF6600"/>
+    <attribute name="colorIsEnabled" value="true" type="boolean" />
+    
+    <handler name="oninit">
+    	this.setTransformedStringColor();
+    </handler>
+    
+    <method name="getValue">
+        return this.selectedColor;
+    </method>    
+    
+    <method name="toggle">
+        var t = _root.createEmptyMovieClip('hans',10);
+        var myColor = new Color(t);
+        myColor.setRGB(selectedColor);
+        this.colorPickRef = new lz.colorpicker(canvas,{btnRef:this,x:(this.getAttributeRelative('x',canvas)-(250-this.width)),y:(this.getAttributeRelative('y',canvas))});
+        this.colorPickRef.doDefaultColor(myColor);
+        lz.ModeManager.makeModal( this.colorPickRef );
+    </method>
+    
+    <method name="setTransformedStringColor">
+        ////Debug.write("setTransformedStringColor: ",this,this.selectedColor);
+        var t = _root.createEmptyMovieClip('hans2',20);
+        var myColor = new Color(t);
+        myColor.setRGB(this.selectedColor);
+        //var a = myColor.getTransform();
+        ////Debug.write("a: ",a);
+        var col = this.numberToRGB(myColor);
+        ////Debug.write("col: ",col);
+        this.setAttribute('selectedColorTransformedString',col);
+    </method>
+    
+    <method name="numberToRGB" args="thisC">
+        <![CDATA[            
+            var c = thisC.getRGB();
+            var r = (c >> 16) & 0xff;
+            var g = (c >> 8) &  0xff;
+            var b = c & 0xff;
+            ////Debug.write("r g b: ",r,g,b);
+            
+            HEX_R = r.toString(16).toUpperCase();
+            HEX_G = g.toString(16).toUpperCase();
+            HEX_B = b.toString(16).toUpperCase();
+            
+            if (HEX_R.length < 2) {
+                HEX_R = "0"+HEX_R;
+            }
+            if (HEX_G.length < 2) {
+                HEX_G = "0"+HEX_G;
+            }
+            if (HEX_B.length < 2) {
+                HEX_B = "0"+HEX_B;
+            }
+            var hex = "0x"+HEX_R + HEX_G + HEX_B;
+
+            return hex;
+        ]]>
+    </method>    
+    
+    <method name="closedColorPicker">
+        lz.ModeManager.release( this.colorPickRef );
+    </method>
+    
+    <view name="_currentcolor" x="1" y="1" onclick="parent.toggle()" 
+        onmouseover="" onmouseout="" width="30" 
+        height="22" bgcolor="${parent.selectedColor}" >
+        <labelTooltip text="${ parent.parent.selectedColorTransformedString }" />
+    </view>
+    
+    <button name="rgt" x="32" y="1" onclick="parent.toggle()" width="24" height="23" >
+    	<image x="4" y="3" src="$once{ canvas.getThemeImage('colorlinechoose_rsc') }"
+    			width="16" height="16" stretches="both" />
+        <labelTooltip labelid="424" />
+    </button>
+    
+</class>  
+
+    
+</library>
diff --git a/WebContent/src/base/components/lps/regexptip.lzx b/WebContent/src/base/components/lps/regexptip.lzx
new file mode 100644
index 0000000..a66bc6d
--- /dev/null
+++ b/WebContent/src/base/components/lps/regexptip.lzx
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<!-- APL Author sebawagner -->
+<resource name="regexptip_rsc_r" src="resources/regexp/regexp_bg_r.swf" />
+<!-- APL Author sebawagner -->
+<resource name="regexptip_rsc_m" src="resources/regexp/regexp_bg_m.swf" />
+<!-- APL Author sebawagner -->
+<resource name="regexptip_rsc_l" src="resources/regexp/regexp_bg_l.swf" />
+<!-- APL Author sebawagner -->
+<resource name="regexptip_rsc_point" src="resources/regexp/regexp_point.swf" />
+
+<class name="regexptip" extends="view">
+    <attribute name="regexptext" value="" type="string" />
+    <attribute name="fadeDelegate" value="null" />
+    <handler name="oninit">
+        this.fadeDelegate = new LzDelegate( this, "fadeText" );
+        lz.Timer.addTimer( this.fadeDelegate, 5000 );
+    </handler>
+    <method name="fadeText" args="itemRef">
+        this.destroy();
+    </method>
+    <view width="${parent.width}" layout="axis:x">
+        <view name="regexptip_rsc_r" resource="regexptip_rsc_r" width="5" />
+        <view name="regexptip_rsc_m" resource="regexptip_rsc_m" stretches="width" width="${ parent.width-10 }"/>
+        <view name="regexptip_rsc_l" resource="regexptip_rsc_l" width="5" />
+    </view>
+    
+    <view resource="regexptip_rsc_point" y="-7" x="12" />
+
+    <text fontsize="11" text="${ parent.regexptext}" resize="true" multiline="false" />
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/lps/resources/arrow_down_slider.png b/WebContent/src/base/components/lps/resources/arrow_down_slider.png
new file mode 100644
index 0000000..f5107d7
--- /dev/null
+++ b/WebContent/src/base/components/lps/resources/arrow_down_slider.png
Binary files differ
diff --git a/WebContent/src/base/components/lps/resources/color_fill.png b/WebContent/src/base/components/lps/resources/color_fill.png
new file mode 100644
index 0000000..13631ec
--- /dev/null
+++ b/WebContent/src/base/components/lps/resources/color_fill.png
Binary files differ
diff --git a/WebContent/src/base/components/lps/resources/regexp/regexp_bg_l.swf b/WebContent/src/base/components/lps/resources/regexp/regexp_bg_l.swf
new file mode 100644
index 0000000..c2ae7a8
--- /dev/null
+++ b/WebContent/src/base/components/lps/resources/regexp/regexp_bg_l.swf
Binary files differ
diff --git a/WebContent/src/base/components/lps/resources/regexp/regexp_bg_m.swf b/WebContent/src/base/components/lps/resources/regexp/regexp_bg_m.swf
new file mode 100644
index 0000000..119a8ac
--- /dev/null
+++ b/WebContent/src/base/components/lps/resources/regexp/regexp_bg_m.swf
Binary files differ
diff --git a/WebContent/src/base/components/lps/resources/regexp/regexp_bg_r.swf b/WebContent/src/base/components/lps/resources/regexp/regexp_bg_r.swf
new file mode 100644
index 0000000..34383d4
--- /dev/null
+++ b/WebContent/src/base/components/lps/resources/regexp/regexp_bg_r.swf
Binary files differ
diff --git a/WebContent/src/base/components/lps/resources/regexp/regexp_point.swf b/WebContent/src/base/components/lps/resources/regexp/regexp_point.swf
new file mode 100644
index 0000000..22adb7e
--- /dev/null
+++ b/WebContent/src/base/components/lps/resources/regexp/regexp_point.swf
Binary files differ
diff --git a/WebContent/src/base/components/lps/vslider.lzx b/WebContent/src/base/components/lps/vslider.lzx
new file mode 100644
index 0000000..51648a7
--- /dev/null
+++ b/WebContent/src/base/components/lps/vslider.lzx
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!-- X_LZ_COPYRIGHT_BEGIN ************************************************
+* Copyright 2006 Laszlo Systems, Inc.  All Rights Reserved.              *
+* Use is subject to license terms.                                       *
+* X_LZ_COPYRIGHT_END ************************************************** -->
+<!--
+    vertical slider contributed by Sebastian Wagner
+-->
+<library>
+  
+  <class name="vsliderTrack" extends="view" bgcolor="0x000000">
+        <view width="${ parent.width-2}" height="${ parent.height-2 }" 
+          x="1" y="1" bgcolor="0xFFFFFF"/>
+        <view width="${ parent.width-2}" bgcolor="0xCCCCCC"
+          x="1" y="${ (this.parent.parent.switchaxis) ? 
+                parent.parent._sliderthumb.y : 1 }" 
+          visible="${ parent.parent.showrange }" 
+          height="${ (this.parent.parent.switchaxis) ? 
+        (parent.parent._vslidertrack.height - parent.parent._sliderthumb.y-1) : 
+        parent.parent._sliderthumb.y }" />
+      <handler name="onclick">
+        var newy = parent.getMouse("y");
+        parent._sliderthumb.setNewYFromTrack(newy);
+      </handler>
+  </class>
+	  
+	<class name="vsliderThumb" extends="button" bgcolor="0x999999" height="10" width="20" 
+		onmousedown="dragger.apply()" onmouseup="dragger.remove()">
+  	
+        <attribute name="drag_min" value="0" type="number" />
+        <attribute name="showvalue" type="boolean" value="true" />
+        <attribute name="drag_max" value="0" type="number" />
+        
+        <method name="setNewYFromTrack" args="y">
+            <![CDATA[
+                if (y > drag_max) {
+                    this.setAttribute("y",this.drag_max);
+                    return;
+                }
+                if (y < drag_min) {
+                    this.setAttribute("y",this.drag_min);
+                    return;
+                }
+                this.setAttribute("y",y);
+            ]]>
+        </method>
+        
+        <handler name="oninit">
+            //Setting the initVal
+            this.setY(getPosFromValue(this.parent.initvalue));
+        </handler>
+        
+        <method name="getValueFromPos">
+            var delta1 = this.parent.maxvalue-this.parent.minvalue;
+            var perc = (this.parent.switchaxis) ? 1-(y / (this.parent.height-this.height)) : (y / (this.parent.height-this.height));
+            //Debug.write(delta1,perc);
+            return (Math.round(perc*delta1))+this.parent.minvalue;
+        </method>
+        
+        <method name="getPosFromValue" args="val">
+            var perc = (val-this.parent.minvalue) / (this.parent.maxvalue-this.parent.minvalue);
+            //Debug.write(perc);
+            valY = (this.parent.switchaxis) ? ( (1-perc) * (this.parent.height-this.height)) : (perc * (this.parent.height-this.height));
+            //Debug.write("valY: ",Math.round(valY));
+            return Math.round(valY);
+        </method>
+        
+        <handler name="ony" args="v">
+            //super.setY(v);
+            //if ($debug) Debug.write("setY: ",v);
+		    var thumbVal = getValueFromPos();
+		    if (thumbVal != parent.value) {
+		        this.parent.setValue(thumbVal);
+		    }               
+        </handler>
+        
+        <handler name="onclick">
+        	parent.onvalueChosenFinal.sendEvent();
+        </handler>
+        
+		<dragstate name="dragger" drag_axis="y"
+		    drag_min_y="${ this.drag_min }"  
+		    drag_max_y="${ this.drag_max }">
+			<text name="t1" x="-26" text="${ this.parent.parent.value }" bgcolor="0xFFFFFF"
+				  y="-4" resize="true" />
+		</dragstate>
+	</class>
+
+<class name="vslider" extends="view" >
+    <!--- Minimum Value -->
+    <attribute name="minvalue" type="number" value="0"/>
+    
+    <!--- Maximum Value -->
+    <attribute name="maxvalue" type="number" value="100"/>
+    
+    <!--- Showrange should the slidertrack be with color while 'sliding' -->
+    <attribute name="showrange" type="boolean" value="true"/>
+    
+    <!--- showvalue should the slider show the numbers of min/max -->
+    <attribute name="showvalue" type="boolean" value="true"/>
+    
+    <!--- switchaxis true means minimum-value is 
+            t op maximum is bottom false turns around -->
+    <attribute name="switchaxis" type="boolean" value="false"/>
+    
+    <!-- Initial Value -->
+    <attribute name="initvalue" value="0" type="number" />          
+        
+    <!--- @keywords private -->
+    <event name="onvalue"/>
+    
+    <!--- @keywords private -->
+    <event name="onvalueChosenFinal"/>
+        
+    <!--- @keywords private -->
+    <attribute name="value" value="0" setter="setValue(value)"/>
+    <method name="setValue" args="v">
+        if (!isinited) {
+          this.value = v;
+          return;
+        }
+        if (this.value == v) return;
+        this.value = v;
+        if (onvalue) onvalue.sendEvent(v);
+    </method>
+       
+	<vsliderTrack name="_vslidertrack" x="5" 
+	    width="10" height="${ parent.height }" />
+	    
+	<vsliderThumb name="_sliderthumb" 
+	    drag_max="${ parent.height-this.height }" 
+	    showvalue="${ parent.showvalue }" />
+	    
+	<text text="${ ( (this.parent.switchaxis) ? 
+	            this.parent.maxvalue : this.parent.minvalue ) }" 
+	    visible="${ parent.showvalue }" 
+	    y="-8" x="${ this.parent._vslidertrack.width+10 }" />
+	    
+	<text text="${ ( (this.parent.switchaxis) ? 
+	            this.parent.minvalue : this.parent.maxvalue ) }" 
+	      visible="${ parent.showvalue }" 
+	      y="${ this.parent.height-10 }" 
+	      x="${ this.parent._vslidertrack.width+10 }" />
+          
+</class>
+  
+  
+
+</library>
diff --git a/WebContent/src/base/components/miniIcons.lzx b/WebContent/src/base/components/miniIcons.lzx
new file mode 100644
index 0000000..301d381
--- /dev/null
+++ b/WebContent/src/base/components/miniIcons.lzx
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<class name="miniIcons" extends="view" stretches="both">

+	<attribute name="showhandcursor" value="true" type="boolean" />

+    <handler name="onmouseover">

+    	if (this.showhandcursor) {

+        	this.setAttribute("x",this.x-1);

+        	this.setAttribute("y",this.y-1);

+        	this.setAttribute("height",this.height+2);

+        	this.setAttribute("width",this.width+2);

+    	}

+        parent.parent.onmouseover.sendEvent();

+    </handler>

+    <handler name="onmouseout">

+    	if (this.showhandcursor) {

+        	this.setAttribute("x",this.x+1);

+            this.setAttribute("y",this.y+1);

+            this.setAttribute("height",this.height-2);

+            this.setAttribute("width",this.width-2);

+    	}

+        parent.parent.onmouseout.sendEvent();

+    </handler>

+</class>

+

+<class name="miniIconsImage" extends="image" stretches="both">

+	<attribute name="showhandcursor" value="true" type="boolean" />

+    <handler name="onmouseover">

+    	if (this.showhandcursor) {

+        	this.setAttribute("x",this.x-1);

+        	this.setAttribute("y",this.y-1);

+        	this.setAttribute("height",this.height+2);

+        	this.setAttribute("width",this.width+2);

+    	}

+        parent.parent.onmouseover.sendEvent();

+    </handler>

+    <handler name="onmouseout">

+    	if (this.showhandcursor) {

+        	this.setAttribute("x",this.x+1);

+            this.setAttribute("y",this.y+1);

+            this.setAttribute("height",this.height-2);

+            this.setAttribute("width",this.width-2);

+    	}

+        parent.parent.onmouseout.sendEvent();

+    </handler>

+</class>

+

+</library>
\ No newline at end of file
diff --git a/WebContent/src/base/components/miniIconsNew.lzx b/WebContent/src/base/components/miniIconsNew.lzx
new file mode 100644
index 0000000..2e4a1a2
--- /dev/null
+++ b/WebContent/src/base/components/miniIconsNew.lzx
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+	<class name="miniIconsNew" extends="view" >

+		<attribute name="innerResource" value="" type="string" />

+		<handler name="onmouseover">

+	    	if (this.showhandcursor) {

+	        	this.innnerView.setAttribute("x",this.innnerView.x-1);

+	        	this.innnerView.setAttribute("y",this.innnerView.y-1);

+	        	this.innnerView.setAttribute("height",this.innnerView.height+2);

+	        	this.innnerView.setAttribute("width",this.innnerView.width+2);

+	    	}

+	    </handler>

+	    <handler name="onmouseout">

+	    	if (this.showhandcursor) {

+	        	this.innnerView.setAttribute("x",this.innnerView.x+1);

+	            this.innnerView.setAttribute("y",this.innnerView.y+1);

+	            this.innnerView.setAttribute("height",this.innnerView.height-2);

+	            this.innnerView.setAttribute("width",this.innnerView.width-2);

+	    	}

+	    </handler>

+		<view name="innnerView" resource="$once{ parent.innerResource }" stretches="both"

+				width="$once{ parent.width }" height="$once{ parent.height }">

+		    

+		</view>

+	</class>

+	

+</library>
\ No newline at end of file
diff --git a/WebContent/src/base/components/omcharts/library.lzx b/WebContent/src/base/components/omcharts/library.lzx
new file mode 100644
index 0000000..7d16571
--- /dev/null
+++ b/WebContent/src/base/components/omcharts/library.lzx
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+    <include href="charts/styles/chartstyle.lzx"/>
+    <include href="charts/common/dataseries.lzx"/>
+    <include href="charts/common/viewspoolmanager.lzx"/>
+    <include href="charts/common/virtualdrawview.lzx"/>
+    <include href="charts/common/datalabel.lzx"/>
+    <include href="charts/common/chart.lzx"/>
+    <include href="charts/common/legend.lzx"/>
+    <include href="charts/piechart/piepiece.lzx"/>
+    <include href="charts/piechart/piechartplotarea.lzx"/>
+    
+    <include href="charts/styles/strokestyle.lzx"/>
+    <include href="charts/piechart/piepiece.lzx"/>
+    <include href="utils/layouts/simplelayout.lzx"/>
+    <include href="extensions/drawview.lzx"/>
+    
+    <include href="omchartstyle.lzx" />
+    <include href="omlegend.lzx" />
+    <include href="ompiechart.lzx" />
+
+
+</library>
diff --git a/WebContent/src/base/components/omcharts/omchartstyle.lzx b/WebContent/src/base/components/omcharts/omchartstyle.lzx
new file mode 100644
index 0000000..c5386dc
--- /dev/null
+++ b/WebContent/src/base/components/omcharts/omchartstyle.lzx
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!---
+    @access public
+    @topic Components
+    @subtopic Charts
+  -->
+<library>
+    
+<chartstyle name="omchartstyle">
+    <plotstyle name="plot" linesize="1" linecolor="0xCCCCCC" fillcolor="0xffffff" opacity="0.5"/>
+    <chartbgstyle name="chartbgstyle">
+        <linestyle name="line" size="0"/>
+        <regionstyle name="region" color="0xFFFFFF" opacity="0.5"/>
+    </chartbgstyle>
+    <valueregionstyle name="valueregionstyle">
+        <linestyle name="line" color="0x000000" size="1" opacity="1"/>
+        <regionstyle name="region" color="0xB71CB3" opacity="0.8" gradient="linear"/>
+        <labelstyle name="label" font="serif" fontsize="12" fontcolor="0x000000"/>
+        <labelstyle name="tip" font="serif" fontsize="12" fontcolor="0x000000"/>
+    </valueregionstyle>
+    <axisstyle name="haxisstyle">
+        <labelstyle name="label" font="Helmet" fontsize="16" fontcolor="0x000000" fontangle="0"/>
+        <tickstyle name="tickmajor" color="0x000000" position="outside" length="3" size="1">
+            <labelstyle name="label" font="serif" fontstyle="bold" fontsize="12" fontcolor="0x606060"/>
+        </tickstyle>
+        <tickstyle name="tickminor" color="0xD3D3D3" position="outside" length="3" size="1"/>
+        <linestyle name="axisline" color="0x000000" size="1"/>
+        <linestyle name="gridline" color="0xD3D3D3" size="1"/>
+    </axisstyle>
+    <axisstyle name="vaxisstyle">
+        <labelstyle name="label" font="Helmet" fontsize="16" fontcolor="0x000000" fontangle="-90"/>
+        <tickstyle name="tickmajor" color="0x000000" position="outside" length="3" size="1">
+            <labelstyle name="label" font="serif" fontsize="12" fontcolor="0x606060"/>
+        </tickstyle>
+        <tickstyle name="tickminor" color="0x000000" position="outside" length="3" size="1"/>
+        <linestyle name="axisline" color="0x000000" size="1"/>
+        <linestyle name="gridline" color="0xD3D3D3" size="1"/>
+        <regionstyle name="band1" color="0xE8EBEE" opacity="1" gradient="linear"/>
+        <regionstyle name="band2" color="0xE3E5E7" opacity="1" gradient="linear"/>
+    </axisstyle>
+    <valuelinestyle name="valuelinestyle">
+        <linestyle name="line" color="0xFF9999" size="2" opacity="1"/>
+        <labelstyle name="label" font="serif" fontsize="10" fontcolor="0x000000"
+           linecolor="0x000000" fillcolor="0xFFFFC1" linesize="2"/>
+        <labelstyle name="tip" font="serif" fontsize="10" fontcolor="0x000000"
+           linecolor="0x000000" fillcolor="0xFFFFC1" linesize="2"/>
+    </valuelinestyle>
+    <valuepointstyle name="valuepointstyle">
+        <pointstyle name="point" width="15" height="15" color="0x00ff00" opacity=".5" shape="triangle" image="../../test/images/master.gif"/>
+        <labelstyle name="label" font="serif" fontsize="10" fontcolor="0x000000"
+           linecolor="0x000000" fillcolor="0xFFFFC1" linesize="2"/>
+        <labelstyle name="tip" font="serif" fontsize="10" fontcolor="0x000000"
+           linecolor="0x000000" fillcolor="0xFFFFC1" linesize="2"/>
+    </valuepointstyle>
+    <datastylelist name="datastyles">
+        <datastyle name="yline">
+            <pointstyle name="point" width="10" height="10" color="0xF9F932" opacity="1" shape="diamond" strokeStyle="0xA3A304" lineWidth="1"/>
+            <linestyle name="line" color="0xCCCCCC" size="1" opacity="1" type="solid"/>
+            <regionstyle name="region" color="0xA6CEE3" opacity="1" gradient="none"/>
+            <labelstyle name="label" font="serif" fontsize="9" fontcolor="0x000000" linecolor="0x000000" fillcolor="0xFFFFC1" linesize="12" fontangle="90"/>
+            <labelstyle name="tip" font="serif" fontsize="8" fontcolor="0x000000"
+               linecolor="0xF9F932" fillcolor="0xFFFFC1" linesize="4"/>
+        </datastyle>
+        <datastyle name="bline">
+            <pointstyle name="point" width="10" height="10" color="0x32ADFB" opacity="1" shape="fourpoint" strokeStyle="0x03609C" lineWidth="1"/>
+            <linestyle name="line" color="0xCCCCCC" size="1" opacity="1" type="solid"/>
+            <regionstyle name="region" color="0x1F78B4" opacity="1" gradient="none"/>
+            <labelstyle name="label" font="serif" fontsize="9" fontcolor="0x000000" linecolor="0x000000" fillcolor="0xFFFFC1" linesize="12" fontangle="90"/>
+            <labelstyle name="tip" font="serif" fontsize="8" fontcolor="0x000000"
+               linecolor="0x000000" fillcolor="0xFFFFC1" linesize="2"/>
+        </datastyle>
+        <datastyle name="rline">
+            <pointstyle name="point" width="10" height="10" color="0xFA8159" opacity="1" shape="circle" strokeStyle="0xB24C2C" lineWidth="1"/>
+            <linestyle name="line" color="0xCCCCCC" size="1" opacity="1" type="solid"/>
+            <regionstyle name="region" color="0xB2DF8A" opacity="1" gradient="none"/>
+            <labelstyle name="label" font="serif" fontsize="9" fontcolor="0x000000" linecolor="0x000000" fillcolor="0xFFFFC1" linesize="12" fontangle="90"/>
+            <labelstyle name="tip" font="serif" fontsize="8" fontcolor="0x000000"
+               linecolor="0x000000" fillcolor="0xFFFFC1" linesize="2"/>
+        </datastyle>
+        <datastyle name="gline">
+            <pointstyle name="point" width="10" height="10" color="0x58FB59" opacity="1" shape="square" strokeStyle="0x1D991D" lineWidth="1"/>
+            <linestyle name="line" color="0xCCCCCC" size="1" opacity="1" type="solid"/>
+            <regionstyle name="region" color="0x33A02C" opacity="1" gradient="none"/>
+            <labelstyle name="label" font="serif" fontsize="9" fontcolor="0x000000" linecolor="0x000000" fillcolor="0xFFFFC1" linesize="12" fontangle="90"/>
+            <labelstyle name="tip" font="serif" fontsize="8" fontcolor="0x000000"
+               linecolor="0x000000" fillcolor="0xFFFFC1" linesize="2"/>
+        </datastyle>
+        <datastyle name="hline">
+            <pointstyle name="point" width="10" height="10" color="0x58FB59" opacity="1" shape="square" strokeStyle="0x1D991D" lineWidth="1"/>
+            <linestyle name="line" color="0xCCCCCC" size="1" opacity="1" type="solid"/>
+            <regionstyle name="region" color="0xFB9A99" opacity="1" gradient="none"/>
+            <labelstyle name="label" font="serif" fontsize="9" fontcolor="0x000000" linecolor="0x000000" fillcolor="0xFFFFC1" linesize="12" fontangle="90"/>
+            <labelstyle name="tip" font="serif" fontsize="8" fontcolor="0x000000"
+               linecolor="0x000000" fillcolor="0xFFFFC1" linesize="2"/>
+        </datastyle>
+        <datastyle name="iline">
+            <pointstyle name="point" width="10" height="10" color="0x58FB59" opacity="1" shape="square" strokeStyle="0x1D991D" lineWidth="1"/>
+            <linestyle name="line" color="0xCCCCCC" size="1" opacity="1" type="solid"/>
+            <regionstyle name="region" color="0xE31A1C" opacity="1" gradient="none"/>
+            <labelstyle name="label" font="serif" fontsize="9" fontcolor="0x000000" linecolor="0x000000" fillcolor="0xFFFFC1" linesize="12" fontangle="90"/>
+            <labelstyle name="tip" font="serif" fontsize="8" fontcolor="0x000000"
+               linecolor="0x000000" fillcolor="0xFFFFC1" linesize="2"/>
+        </datastyle>
+        <datastyle name="jline">
+            <pointstyle name="point" width="10" height="10" color="0x58FB59" opacity="1" shape="square" strokeStyle="0x1D991D" lineWidth="1"/>
+            <linestyle name="line" color="0xCCCCCC" size="1" opacity="1" type="solid"/>
+            <regionstyle name="region" color="0xFDBF6F" opacity="1" gradient="none"/>
+            <labelstyle name="label" font="serif" fontsize="9" fontcolor="0x000000" linecolor="0x000000" fillcolor="0xFFFFC1" linesize="12" fontangle="90"/>
+            <labelstyle name="tip" font="serif" fontsize="8" fontcolor="0x000000"
+               linecolor="0x000000" fillcolor="0xFFFFC1" linesize="2"/>
+        </datastyle>
+        <datastyle name="kline">
+            <pointstyle name="point" width="10" height="10" color="0x58FB59" opacity="1" shape="square" strokeStyle="0x1D991D" lineWidth="1"/>
+            <linestyle name="line" color="0xCCCCCC" size="1" opacity="1" type="solid"/>
+            <regionstyle name="region" color="0xFF7F00" opacity="1" gradient="none"/>
+            <labelstyle name="label" font="serif" fontsize="9" fontcolor="0x000000" linecolor="0x000000" fillcolor="0xFFFFC1" linesize="12" fontangle="90"/>
+            <labelstyle name="tip" font="serif" fontsize="8" fontcolor="0x000000"
+               linecolor="0x000000" fillcolor="0xFFFFC1" linesize="2"/>
+        </datastyle>
+        <datastyle name="lline">
+            <pointstyle name="point" width="10" height="10" color="0x58FB59" opacity="1" shape="square" strokeStyle="0x1D991D" lineWidth="1"/>
+            <linestyle name="line" color="0xCCCCCC" size="1" opacity="1" type="solid"/>
+            <regionstyle name="region" color="0xCAB2D6" opacity="1" gradient="none"/>
+            <labelstyle name="label" font="serif" fontsize="9" fontcolor="0x000000" linecolor="0x000000" fillcolor="0xFFFFC1" linesize="12" fontangle="90"/>
+            <labelstyle name="tip" font="serif" fontsize="8" fontcolor="0x000000"
+               linecolor="0x000000" fillcolor="0xFFFFC1" linesize="2"/>
+        </datastyle>
+        <datastyle name="mline">
+            <pointstyle name="point" width="10" height="10" color="0x58FB59" opacity="1" shape="square" strokeStyle="0x1D991D" lineWidth="1"/>
+            <linestyle name="line" color="0xCCCCCC" size="1" opacity="1" type="solid"/>
+            <regionstyle name="region" color="0x6A3D9A" opacity="1" gradient="none"/>
+            <labelstyle name="label" font="serif" fontsize="9" fontcolor="0x000000" linecolor="0x000000" fillcolor="0xFFFFC1" linesize="12" fontangle="90"/>
+            <labelstyle name="tip" font="serif" fontsize="8" fontcolor="0x000000"
+               linecolor="0x000000" fillcolor="0xFFFFC1" linesize="2"/>
+        </datastyle>
+    </datastylelist>
+</chartstyle>    
+    
+</library> 
diff --git a/WebContent/src/base/components/omcharts/omlegend.lzx b/WebContent/src/base/components/omcharts/omlegend.lzx
new file mode 100644
index 0000000..8d365b3
--- /dev/null
+++ b/WebContent/src/base/components/omcharts/omlegend.lzx
@@ -0,0 +1,282 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!---
+    @access public
+    @topic Components
+    @subtopic Charts
+  -->
+<library>
+
+    <!---
+     simple legend class
+     @access public
+      -->
+    <class name="omlegend" extends="drawview" >
+        <!--- @keyword private -->
+        <attribute name="topmargin" type="number" value="0"/>
+        <!--- @keyword private -->
+        <attribute name="bottommargin" type="number" value="0"/>
+        <!--- @keyword private -->
+        <attribute name="leftmargin" type="number" value="0"/>
+        <!--- @keyword private -->
+        <attribute name="rightmargin" type="number" value="0"/>
+        <!--- @keyword private -->
+        <attribute name="verticalgap" type="number" value="1"/>
+        <!--- Indicates if legend box will have a border, default: true -->
+        <attribute name="legendborder" type="boolean" value="true"/>
+        <!--- Allow to set the line width from the legend tag -->
+        <attribute name="borderWidth" type="number" value="1"/>
+        <!--- Allow to set the color line from the legend tag -->
+        <attribute name="borderColor" type="color" value="0x000000"/>
+        <!--- Allow to set the fill color from the legend tag -->
+        <attribute name="fillColor" type="color" value="0xFFFFFF"/>
+        <!--- Indicates how the legend items will be displayed, default: vertical -->
+        <attribute name="direction" type="string" value="vertical"/>     
+        <!--- Indicates the style will be applied tho the border legend box -->
+        <attribute name="styleBorder" type="string" value="null"/>
+        <!--- Indicates the Font will be used in the legend item text -->
+        <attribute name="legendFont" type="string" value="serif"/>
+        <!--- Indicates the Font size wiil be used in the legend item text, default: 10px -->
+        <attribute name="legendFontsize" type="size" value="6"/>
+        <!--- Indicates the Font color wiil be used in the legend item text, default: black -->
+        <attribute name="legendFontcolor" type="color" value="0x000000"/>
+        <!--- Indicates where the legend box will be positioned, default: right -->
+        <attribute name="position" type="string" value="right"/>
+
+        <!--- Takes the relationship with the chart -->
+        <attribute name="chart" type="expression" value="${null}"/>
+        <attribute name="chartClassName" type="string" value="${null}"/>
+
+        <simplelayout axis="y"/>
+        
+                
+       <!--- @keywords private
+        <handler name="oninitdone" reference="this.chart">
+            if(chart.initdone)
+            {
+                var lChart = this.getChartInstance();
+                if( lChart != null ) {
+                    this.chartClassName = lChart.constructor.tagname;
+                    this.datapath.setFromPointer(lChart.getDataSeries().getLegend());
+                }   
+            }
+        </handler>
+         -->
+         
+        <handler name="oninit">
+        	<![CDATA[
+        	    var tObject = parent.getOMDataSeries();
+        	    this.chart = parent;
+        	    
+        	    for (var i=0;i<tObject.tooltipseries.length;i++) {
+        	    	
+        	    	new lz.omlegenditem(this.viewlegendbox,{tBox:tObject.tooltipseries[i]});
+        	    	
+        	    }
+        	    
+        	    //this.bringToFront();
+        	    this.border();
+        	]]>
+        </handler> 
+        
+        <!-- Top Margin -->
+        <view height="${parent.topmargin}" />
+        <!-- Legend box -->
+        <view name="viewlegendbox">    
+            <simplelayout spacing="${parent.parent.verticalgap}"/>       
+            <method name="init">
+                <![CDATA[
+    
+                    super.init();
+                    if ( parent.direction == 'horizontal'){
+                        this.layouts[0].setAttribute('axis', 'x');
+                    } else {
+                        this.layouts[0].setAttribute('axis', 'y');
+                    }
+                   
+                ]]>
+            </method>    
+                  
+        </view>
+        <!-- Bottom Margin -->
+        <view height="${parent.bottommargin}"/>        
+
+
+        <!--- @keywords private -->
+        <method name="border">
+            var lStartX = Math.ceil(this.lineWidth/2);
+            var lStartY = Math.ceil(this.lineWidth/2);
+            var lOrgWidth = this.width;
+            var lOrgHeight = this.height;
+
+            this.lineWidth = this.borderWidth;
+            this.strokeStyle = this.borderColor;
+            this.fillStyle = this.fillColor;
+
+            this.beginPath();
+            this.moveTo(lStartX, lStartY);
+            this.lineTo(this.width, lStartY);
+            this.lineTo(this.width, this.height);
+            this.lineTo(lStartY, this.height);
+            this.lineTo(lStartX, lStartY);
+            this.closePath();
+            this.stroke();
+            this.fill();
+
+            // Restores the original dimensions of the legend, due to the changes
+            // that the lineTo()'s calls perform over the legendbox dimensions.
+            this.setAttribute( "width", lOrgWidth );
+            this.setAttribute( "height", lOrgHeight );
+        </method>
+
+        <!--- @keywords private -->
+        <method name="getChartInstance">
+        <![CDATA[
+            return this.chart;
+        ]]>
+        </method>
+
+        <!--- event that allows custom action for mouse over event
+            @param Number item: The identifier legend item
+         -->
+        <event name="onitemmouseover" />
+        <!--- event that allows custom action for mouse out event
+            @param Number item: The identifier legend item
+         -->
+        <event name="onitemmouseout" />
+        <!--- event that allows custom action for mouse down event
+            @param Number item: The identifier legend item
+         -->
+        <event name="onitemmousedown" />
+        <!--- event that allows custom action for mouse up event
+            @param Number item: The identifier legend item
+         -->
+        <event name="onitemmouseup" />
+        <!--- event that allows custom action for mouse click event
+            @param Number item: The identifier legend item
+         -->
+        <event name="onitemmouseclick" />
+        
+    </class>
+    
+    <!--- @keyword private
+    individual legend item -->
+    <class name="omlegenditem" >
+        <attribute name="identifier" type="number" value="0"/>
+        <attribute name="tBox" type="string" value=""/>
+        <attribute name="linevisible" type="boolean" value="false"/>
+        <simplelayout axis="x" spacing="$once{parent.parent.parent.verticalgap}"/>
+        <view name="leftmarginview" width="$once{parent.parent.parent.leftmargin}" />
+        <marker name="legendmarker"></marker>    
+        <text name="legendtext" resize="true" text="$once{ parent.tBox }" 
+        	  fontsize="$once{parent.parent.parent.legendFontsize}"
+              fgcolor="$once{parent.parent.parent.legendFontcolor}"
+              height="$once{parent.parent.parent.legendFontsize+6}">
+        </text>
+        <view name="rightmarginview" width="${parent.parent.parent.rightmargin}"/>
+        <method name="init">
+            <![CDATA[
+                super.init();
+
+                var colors = new Array(0);
+                var imagesPath = new Array(0);
+                var legenditems = parent.subviews;
+                var legendmarkeritem;
+
+                if( parent.parent.chartClassName == "piechart" ) {
+                    var arrPieces = parent.parent.getChartInstance().plotarea.arrPiePieces;
+                    var piePiece;
+
+                    for(var i = 0; i < arrPieces.length; i++){ 
+                        piePiece = arrPieces[i];  
+                        colors[i] = piePiece.style.region.color;
+                        
+                        if ( legenditems[i] != null ){                
+                            legendmarkeritem = legenditems[i].legendmarker;
+                            legendmarkeritem.setAttribute('width', piePiece.style.point.width);
+                            legendmarkeritem.setAttribute('height', piePiece.style.point.height);
+                        }
+                    }
+                } else {
+                    var topseries = parent.parent.getChartInstance().getDataSeries();
+                    var numSeries = topseries.getNumDataSeries();
+                    for(var i = 0; i < numSeries; i++){ 
+                        var ldatastyle = parent.parent.getChartInstance().style.getDataStyle(i);
+                        if ( parent.parent.chartClassName == "linechart" )
+                            colors[i] = ldatastyle.line.color;
+                        else
+                            if ( ldatastyle.region.image != null ){
+                                imagesPath[i] = ldatastyle.region.image;
+                            } else {
+                                colors[i] = ldatastyle.region.color;
+                            }
+                        if ( legenditems[i] != null ){                
+                            legendmarkeritem = legenditems[i].legendmarker;
+                            legendmarkeritem.setAttribute('width', ldatastyle.point.width);
+                            legendmarkeritem.setAttribute('height', ldatastyle.point.height);
+                        }
+                    }
+                }
+
+                for(var i = 0; i < legenditems.length; i++){
+                    var legenditem = legenditems[i];
+                    legendmarkeritem = legenditem.legendmarker;
+                    if ( imagesPath[i] != null ){
+                        legendmarkeritem.setSource(imagesPath[i]);
+                        legendmarkeritem.setAttribute('opacity', ldatastyle.region.opacity);
+                        legendmarkeritem.setAttribute( "visible", true );
+                    }
+                    else
+                        legendmarkeritem.setAttribute('bgcolor', colors[i]);
+                    this.setAttribute('identifier', i);
+                }
+            ]]>
+        </method>
+        <!--- calls the method that implements the acton
+            @keyword private-->
+        <handler name="onmouseover">
+        	this.legendtext.setAttribute("fontstyle","bold");
+            parent.classroot.onitemmouseover.sendEvent(this);
+        </handler>
+        <!--- calls the method that implements the acton
+            @keyword private-->
+        <handler name="onmouseout">
+        	this.legendtext.setAttribute("fontstyle","plain");
+            parent.classroot.onitemmouseout.sendEvent(this);
+        </handler>
+        <!--- calls the method that implements the acton
+            @keyword private-->
+        <handler name="onmousedown">
+            parent.classroot.onitemmousedown.sendEvent(this);
+        </handler>
+        <!--- calls the method that implements the acton
+            @keyword private-->
+        <handler name="onmouseup">
+            parent.classroot.onitemmouseup.sendEvent(this);
+        </handler>
+        <!--- calls the method that implements the acton
+            @keyword private-->
+        <handler name="onclick">
+            parent.classroot.onitemmouseclick.sendEvent(this);
+        </handler>
+    </class>
+
+</library>
diff --git a/WebContent/src/base/components/omcharts/ompiechart.lzx b/WebContent/src/base/components/omcharts/ompiechart.lzx
new file mode 100644
index 0000000..e248133
--- /dev/null
+++ b/WebContent/src/base/components/omcharts/ompiechart.lzx
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!---
+    @access public
+    @topic Components
+    @subtopic Charts
+  -->
+<library>
+    
+    <!---
+          A pie chart represents a chart that is displayed in the 2D
+          polar plane. This class inherits immediately from chart class
+          and can be instantiated directly. (Warning: Of beta quality.)
+          @access public
+          -->
+    <class name="ompiechart" extends="chart">
+
+        <!--- @keywords private -->
+        <method name="init">
+            plotarea = this.getNodeOfClass("piechartplotarea");
+            _datalabelpool = this.createLabelViewspool();
+            super.init();            
+        </method>  
+        
+        <!--- Renders the plot area which is an instance of the piechartplotarea 
+              class. The plot area requires to read a group of two data series, one
+              for the groups that are represented by the pie slices and the second
+              for their values. -->
+        <method name="renderPlotArea">
+        <![CDATA[
+            super.renderPlotArea();
+            plotarea.clear();
+
+            var topseries = this.getOMDataSeries();
+            
+            //var numSeries = topseries.getNumDataSeries();
+            var numSeries = 1;
+            
+            var xseries = topseries.xseries;
+            var yseries = topseries.yseries;
+            var tooltipseries = topseries.tooltipseries;
+                                
+            for(var i = 0; i < numSeries; i++)
+            {
+                plotarea.renderSeries(xseries, yseries, tooltipseries);          
+            }
+            if ( this.datalabelEnabled ){
+                this.renderDataLabels();
+            }
+
+        ]]>
+        </method>
+        
+        <!--- Renders the labels that display the values of the data series. -->
+        <method name="renderDataLabels">
+        
+            <![CDATA[
+                _datalabelpool.reclaimAll();
+            
+                var arrPiePieces = this.plotarea.arrPiePieces;
+                var topseries = this.getOMDataSeries();
+                
+                var xseries = topseries.xseries;
+                var yseries = topseries.yseries;
+                var tooltipseries = topseries.tooltipseries;
+                
+                if ($debug) Debug.write("arrPiePieces.length ",arrPiePieces.length);
+
+                for(var i = 0; i < arrPiePieces.length; i++){ 
+                    piePiece = arrPiePieces[i];  
+                    
+                    var lbl = _datalabelpool.getView();
+                    var ldatastyle = piePiece.style;
+                    lbl.setAttribute('style', ldatastyle.label);
+                    lbl.render(yseries[i]);
+                    piePiece.renderLabel(lbl);
+                }
+            ]]>
+                
+        </method>
+        
+        <!--- The plot area where the pie slices are rendered -->
+        <piechartplotarea name="plotarea" x="50" y="20" width="500" height="300">
+        	
+        </piechartplotarea>
+
+    </class>
+    
+</library> 
diff --git a/WebContent/src/base/components/panel/baseBoundingBorderView.lzx b/WebContent/src/base/components/panel/baseBoundingBorderView.lzx
new file mode 100644
index 0000000..d3e0cdb
--- /dev/null
+++ b/WebContent/src/base/components/panel/baseBoundingBorderView.lzx
@@ -0,0 +1,498 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="baseBoundingBorderView" extends="view" width="250" y="100" height="400"
+	onmousedown="this._startDragState(this)" onmouseup="this._removeDragState(this)" >
+	
+	<!--- Can this Box be docked to others and 
+			the width/height of parent compoent barrier -->
+	<attribute name="docking" value="false" type="boolean" />
+	
+	<!--- Hard to explain but its clear if you play around 
+		with that. Its the number of minimum pixels before 
+		the "docking" effect will be there -->
+	<attribute name="dockingbarrier" value="15" type="number" />
+	
+	<attribute name="boundingbarrier" value="2" type="number" />
+	
+	<!--- the Event will be thrown if you close the Box -->
+	<event name="onclose" />
+	
+	<!--- extra Event for this kind of view
+		will be thrown before the view inits new -->
+	<event name="preclose" />
+	
+	<!---@keywords private the list of connected views -->
+	<attribute name="dockinglist" value="null" />
+	
+	<!--- @keywords private temp-older of x-distance to docked-Box  -->
+	<attribute name="tempXdistance" value="0" type="number" />
+
+	<!--- @keywords private temp-older of y-distance to docked-Box  -->
+	<attribute name="tempYdistance" value="0" type="number" />
+	
+	<!--- @keywords private is the Box minimized  -->
+	<attribute name="isopen" value="true" type="boolean" />
+	
+	<!--- @keywords private is the Box minimized  -->
+	<attribute name="open" value="true" type="boolean" />	
+	
+	<attribute name="currentBoundingBox" value="null" />
+	
+	<attribute name="verticalClassActive" value="false" type="boolean" />
+	<attribute name="activationClassBounding" value="" type="string" />
+	<attribute name="activationVClassBounding" value="" type="string" />
+	
+	<attribute name="topClassPanel" value="" type="string" />
+	<attribute name="bottomClassPanel" value="" type="string" />
+	<attribute name="rightClassPanel" value="" type="string" />
+	<attribute name="leftClassPanel" value="" type="string" />
+	
+	<!-- this is the Width and Height of the vertical and horizontal class
+		it can have different values -->
+	<attribute name="hWidth" value="0" type="number" />
+	<attribute name="hHeight" value="0" type="number" />
+	<attribute name="vWidth" value="0" type="number" />
+	<attribute name="vHeight" value="0" type="number" />
+	
+	<!--- @keywords private  -->
+	<attribute name="initheight" value="0" type="number" />
+	
+	<attribute name="hasshadow" value="true" type="boolean" />
+	
+	<attribute name="mousetracker_del" value="$once{ new LzDelegate(this, 'checkStaticBorders' )}" />
+	
+	<!--- @keywords private store initial height so toggleopen can reset height  -->
+    <handler name="oninit">
+    	this.initheight=this.height;
+		////Debug.write("this.isopen: ",this.isopen);
+		if (!this.open) toggleopen();
+    	if (this.hasshadow) this.setShadow(); 
+    </handler>
+    
+    <method name="setShadow" args="bool">
+        this.hasshadow = bool;
+        <![CDATA[
+        if (this.isinited){
+            this.normalMC = this.getDisplayObject();
+            //Debug.write(this.normalMC);
+            ////Debug.write("this.normalMC: ",this.normalMC);
+            ////Debug.write("this: ",this);
+           	this.displacementMap = new flash.filters.DropShadowFilter();
+            this.normalMC.filters = [this.displacementMap];
+        }
+        ]]>              
+    </method>		
+	
+	<method name="close">
+		if (this.onclose) this.onclose.sendEvent();
+		this.doDestroy();
+	</method>
+	
+	<method name="toggleopen">
+		////Debug.write("this.isopen",this.isopen);
+		this.setAttribute('isopen',!this.isopen);
+		if (this.isopen){
+			_calcdockingList();
+			for (var eg in this.dockinglist){
+				if(this.dockinglist[eg].docking){
+					////Debug.write("this.dockinglist[eg]: ",this.dockinglist[eg].title);
+					////Debug.write("open new y",this.y+this.initheight);
+					this.dockinglist[eg].toggleOpenByParent(this.initheight-22);
+					this.dockinglist[eg].setAttribute('y',this.y+this.initheight);
+					
+				}
+			}			
+			this.setAttribute('height',this.initheight);
+		} else {
+			_calcdockingList();
+			for (var eg in this.dockinglist){
+				if(this.dockinglist[eg].docking){
+					////Debug.write("this.dockinglist[eg]: ",this.dockinglist[eg].title);
+					this.dockinglist[eg].toggleOpenByParent(-(this.initheight-22));
+					this.dockinglist[eg].setAttribute('y',this.y+22);
+				}
+			}	
+			this.setAttribute('height',22);		
+		}
+	</method>
+	
+	<method name="toggleOpenByParent" args="changeY">
+		////Debug.write("+++++ toggleOpenByParent +++++ changeY: ",this.title,changeY);
+		var tempList=new Array();
+		<![CDATA[
+		//check for dockable stuff which is connected to this Box
+		for (var eg in this.parent.subviews){
+			//check that you do not calc with yourself
+			if (this.parent.subviews[eg]!=this && this.parent.subviews[eg].docking){
+				// there are 4 cases which have to be proofed to check every possible situation
+				var proof=false;
+				////Debug.write("found some: ",this.parent.subviews[eg].title);
+				//top box-border
+				if  ( ( ((this.y+this.height)-this.parent.subviews[eg].y) < 1 ) && ( ((this.y+this.height)-this.parent.subviews[eg].y) > -1 ) && ( (this.x+this.width) > this.parent.subviews[eg].x )  && ( this.x < (this.parent.subviews[eg].x+this.parent.subviews[eg].width) ) ){
+					proof=true;
+				}
+					
+				if (proof) tempList.push(this.parent.subviews[eg]);
+			}
+		}
+		]]>
+		////Debug.write("tempList.length: ",tempList.length);
+		if (tempList.length!=0){
+			for (var eg in tempList){
+				if(tempList[eg].docking){
+					////Debug.write("toggleOpenByParent 1 [eg],changeY: ",tempList[eg].title,changeY);
+					tempList[eg].toggleOpenByParent(changeY);
+					tempList[eg].setAttribute('y',tempList[eg].y+changeY);
+				}
+			}	
+		}
+		
+	</method>
+	
+	<!--- @keywords private  -->
+	<method name="_removeDragState" args="obj">
+		//It's important to remove the dragger and do docking stuff before you check for connencted Boxes
+		dragger.remove();
+		if (obj==this){
+			if (docking) arrangePosition();
+		} else {
+			if (docking) _lookforParentOnly(obj);
+		}
+			
+		//check for connected Boxes
+		for (var eg in this.dockinglist){
+			if(this.dockinglist[eg].docking){
+				this.dockinglist[eg]._removeDragState(this);
+			}
+		}
+		mousetracker_del.unregisterAll();
+		this.preclose.sendEvent();
+		if (this.currentBoundingBox!=null) {
+			
+			if(this.currentBoundingBox.width>this.currentBoundingBox.height){
+				if (this.currentBoundingBox.y==0){
+					if ($debug) Debug.write("TOP");
+					if (this.topClassPanel!=""){
+						new lz[this.topClassPanel](parent,{
+							x:this.currentBoundingBox.x,y:this.currentBoundingBox.y
+						});
+					} else {
+						if ($debug) Debug.warn("No Top Panel Definied");
+						new lz[this.activationVClassBounding](parent,{
+							x:this.currentBoundingBox.x,y:this.currentBoundingBox.y
+						});
+					}
+				} else if (this.currentBoundingBox.y==(parent.height-this.currentBoundingBox.height)){
+					if ($debug) Debug.write("BOTTOM");
+					if (this.bottomClassPanel!=""){
+						new lz[this.bottomClassPanel](parent,{
+							x:this.currentBoundingBox.x,y:this.currentBoundingBox.y
+						});
+					} else {
+						new lz[this.activationVClassBounding](parent,{
+							x:this.currentBoundingBox.x,y:this.currentBoundingBox.y
+						});
+					}
+				} else {
+					new lz[this.activationVClassBounding](parent,{
+						x:this.currentBoundingBox.x,y:this.currentBoundingBox.y
+					});
+				}
+			} else {
+				if (this.currentBoundingBox.x==0){
+					if ($debug) Debug.write("RIGHT");
+					if (this.rightClassPanel!=""){
+						new lz[this.rightClassPanel](parent,{
+							x:this.currentBoundingBox.x,y:this.currentBoundingBox.y
+						});
+					} else {
+						new lz[this.activationClassBounding](parent,{
+							x:this.currentBoundingBox.x,y:this.currentBoundingBox.y
+						});
+					}
+				} else if (this.currentBoundingBox.x==(parent.width-this.currentBoundingBox.width)){
+					if ($debug) Debug.write("LEFT");
+					if (this.leftClassPanel!=""){
+						new lz[this.leftClassPanel](parent,{
+							x:this.currentBoundingBox.x,y:this.currentBoundingBox.y
+						});
+					} else {
+						new lz[this.activationClassBounding](parent,{
+							x:this.currentBoundingBox.x,y:this.currentBoundingBox.y
+						});
+					}
+				} else {
+					new lz[this.activationClassBounding](parent,{
+						x:this.currentBoundingBox.x,y:this.currentBoundingBox.y
+					});
+				}
+			}
+			this.currentBoundingBox.destroy();
+			this.close();
+		} else {
+			if(this.width>this.height){
+				new lz[this.activationVClassBounding](parent,{x:this.x,y:this.y});
+			} else {
+				new lz[this.activationClassBounding](parent,{x:this.x,y:this.y});
+			}
+			this.close();
+		}
+	</method>
+
+	
+	<!--- @keywords private
+		the arg obj is needed because the dragging can be called by the Box itself
+		or by a Box which is connected to this Box!  -->
+	<method name="_startDragState" args="obj">
+		this.bringToFront();
+		_calcdockingList();
+		for (var eg in this.dockinglist){
+			if(this.dockinglist[eg].docking){
+				this.dockinglist[eg]._startDragState(this);
+			}
+		}
+		//store position cause it wasn't dragged by itself
+		if (obj!=this){
+			storeAdjustmentToParent(obj.x,obj.y);
+		}
+		dragger.apply();
+		mousetracker_del.register(lz.Idle,'onidle');
+	</method>
+	
+	<!--- arranges the Box to be build into any border -->
+	<method name="checkStaticBorders" args="item">
+		<![CDATA[
+			if (!this.verticalClassActive){
+				//if ($debug) Debug.write("checkStaticBorders");
+				if (this.x<this.boundingbarrier){
+					this.setAttribute('visibility','hidden');
+					if (this.y<this.boundingbarrier){
+						//if ($debug) Debug.write("a1");
+						this.drawCurrentBoundingBox(0,0,this.vWidth,this.vHeight);
+					} else if ( (this.parent.height-(this.y+this.height))<this.boundingbarrier){
+						//if ($debug) Debug.write("a2");
+						this.drawCurrentBoundingBox(0,parent.height-this.vHeight,this.vWidth,this.vHeight);
+					} else {
+						//if ($debug) Debug.write("a3");
+						this.drawCurrentBoundingBox(0,this.y,this.width,this.height);
+					}
+				} else if (this.y<this.boundingbarrier){
+					this.setAttribute('visibility','hidden');
+					if ( (this.parent.width-(this.x+this.height))<this.boundingbarrier){
+						//if ($debug) Debug.write("b1");
+						this.drawCurrentBoundingBox((this.parent.width-this.vWidth),0,this.vWidth,this.vHeight);
+					} else {
+						//if ($debug) Debug.write("b2");
+						this.drawCurrentBoundingBox(this.x,0,this.vWidth,this.vHeight);
+					}
+				} else if ( (this.parent.width-(this.x+this.width))<this.boundingbarrier){
+					this.setAttribute('visibility','hidden');
+					//if ($debug) Debug.write("c");
+					if ( (this.parent.height-(this.y+this.height))<this.boundingbarrier){
+						this.drawCurrentBoundingBox(parent.width-this.vWidth,parent.height-this.vHeight,this.vWidth,this.vHeight);
+					} else {
+						this.drawCurrentBoundingBox(parent.width-this.width,this.y,this.width,this.height);
+					}
+				} else if ( (this.parent.height-(this.y+this.height))<this.boundingbarrier){
+					
+					this.setAttribute('visibility','hidden');
+					if ( (this.parent.width-(this.x+this.height))<this.boundingbarrier){
+						//if ($debug) Debug.write("d1");
+						this.drawCurrentBoundingBox(parent.width-this.vWidth,parent.height-this.vHeight,this.vWidth,this.vHeight);
+					} else {
+						//if ($debug) Debug.write("d2");
+						this.drawCurrentBoundingBox(this.x,parent.height-this.vHeight,this.vWidth,this.vHeight);
+					}
+				} else {
+					//if ($debug) Debug.write("d");
+					this.setAttribute('visibility','visible');
+					if (this.currentBoundingBox!=null) {
+						this.currentBoundingBox.destroy();
+						this.currentBoundingBox = null;
+					}
+				}
+			} else {
+				if (this.x<this.boundingbarrier){
+					//if ($debug) Debug.write("a",(this.parent.height-(this.y+this.width)));
+					this.setAttribute('visibility','hidden');
+					if (this.y<this.boundingbarrier){
+						//if ($debug) Debug.write("a1");
+						this.drawCurrentBoundingBox(0,0,this.width,this.height);
+					} else if ( (this.parent.height-(this.y+this.width))<this.boundingbarrier){
+						//if ($debug) Debug.write("a2");
+						this.drawCurrentBoundingBox(0,parent.height-this.height,this.width,this.height);
+					} else {
+						//if ($debug) Debug.write("a3");
+						this.drawCurrentBoundingBox(0,this.y,this.hWidth,this.hHeight);
+					}
+				} else if (this.y<this.boundingbarrier){
+					//if ($debug) Debug.write("b");
+					this.setAttribute('visibility','hidden');
+					if ( (this.parent.width-(this.x+this.width))<this.boundingbarrier){
+						this.drawCurrentBoundingBox(this.parent.width-this.width,0,this.width,this.height);
+					} else {
+						this.drawCurrentBoundingBox(this.x,0,this.width,this.height);
+					}
+				} else if ( (this.parent.width-(this.x+this.width))<this.boundingbarrier){
+					this.setAttribute('visibility','hidden');
+					if ( (this.parent.height-(this.y+this.width))<this.boundingbarrier){
+						this.drawCurrentBoundingBox(this.parent.width-this.width,parent.height-this.height,this.width,this.height);
+					} else {
+						this.drawCurrentBoundingBox(parent.width-this.hWidth,this.y,this.hWidth,this.hHeight);
+					}
+				} else if ( (this.parent.height-(this.y+this.height))<this.boundingbarrier){
+					this.setAttribute('visibility','hidden');
+					this.drawCurrentBoundingBox(this.x,parent.height-this.height,this.width,this.height);
+				} else {
+					//if ($debug) Debug.write("d");
+					this.setAttribute('visibility','visible');
+					if (this.currentBoundingBox!=null) {
+						this.currentBoundingBox.destroy();
+						this.currentBoundingBox = null;
+					}
+				}
+			}			
+		]]>
+	</method>
+	
+	<method name="drawCurrentBoundingBox" args="x,y,width,height">
+		if (this.currentBoundingBox!=null) this.currentBoundingBox.destroy();
+		this.currentBoundingBox = new lz.panelBoundBox(parent,{x:x,y:y,
+			width:width,height:height});
+	</method>
+	
+	<!--- Calc the List of Boxes which will be dragged and setposition if this Box
+		will be dragged,docked or minimized/maximized  -->
+	<method name="_calcdockingList">
+		//Clear list of conencted Boxes
+		this.dockinglist=new Array();
+		<![CDATA[
+		//check for dockable stuff which is connected to this Box
+		for (var eg in this.parent.subviews){
+			//check that you do not calc with yourself
+			if (this.parent.subviews[eg]!=this && this.parent.subviews[eg].docking){
+				// there are 4 cases which have to be proofed to check every possible situation
+				var proof=false;
+
+				//top box-border
+				if  ( ( ((this.y+this.height)-this.parent.subviews[eg].y) < 1 ) && ( ((this.y+this.height)-this.parent.subviews[eg].y) > -1 ) && ( (this.x+this.width) > this.parent.subviews[eg].x )  && ( this.x < (this.parent.subviews[eg].x+this.parent.subviews[eg].width) ) ){
+					proof=true;
+				}
+
+				if (proof) this.dockinglist.push(this.parent.subviews[eg]);
+			}
+		}
+		]]>
+		////Debug.write("this.dockinglist.length:",this.dockinglist.length);
+	</method>
+	
+	<!--- @keywords private  -->
+	<method name="arrangePosition">
+		//do the magic
+		//the idea is: look for all on the view container one level above this one
+		//and look for the width/height and 0/0 and look for "dockable" stuff there
+		var newx=this.x;
+		var newy=this.y;
+	  
+		<![CDATA[
+				
+		for (var eg in this.parent.subviews){
+			//check that you do not calc with yourself
+			if (this.parent.subviews[eg]!=this && this.parent.subviews[eg].docking){
+				// there are 4 cases which have to be proofed to check every possible situation
+				//left box-border
+				if ( ( ((this.x+this.width)-this.parent.subviews[eg].x) < this.dockingbarrier ) && ( ((this.x+this.width)-this.parent.subviews[eg].x) > -this.dockingbarrier ) &&  ( (this.y+this.height) > this.parent.subviews[eg].y ) &&  ( this.y < (this.parent.subviews[eg].y+this.parent.subviews[eg].height) ) ){
+					newx= ( this.parent.subviews[eg].x - this.width );
+				}
+				//right box-border
+				if ( ( ((this.parent.subviews[eg].x+this.parent.subviews[eg].width)-this.x)<this.dockingbarrier ) && ( ((this.parent.subviews[eg].x+this.parent.subviews[eg].width)-this.x)>-this.dockingbarrier ) &&  ( (this.y+this.height) > this.parent.subviews[eg].y ) &&  ( this.y < (this.parent.subviews[eg].y+this.parent.subviews[eg].height) ) ){
+					newx= ( this.parent.subviews[eg].x + this.parent.subviews[eg].width );
+				}
+				//top box-border
+				if  ( ( ((this.y+this.height)-this.parent.subviews[eg].y) < this.dockingbarrier ) && ( ((this.y+this.height)-this.parent.subviews[eg].y) > -this.dockingbarrier ) && ( (this.x+this.width) > this.parent.subviews[eg].x )  && ( this.x < (this.parent.subviews[eg].x+this.parent.subviews[eg].width) ) ){
+					newy = this.parent.subviews[eg].y-this.height;
+				}
+				//bottom box-border
+				if ( ( ((this.parent.subviews[eg].y+this.parent.subviews[eg].height)-this.y) < this.dockingbarrier ) && ( ((this.parent.subviews[eg].y+this.parent.subviews[eg].height)-this.y) > -this.dockingbarrier ) && ( (this.x+this.width) > this.parent.subviews[eg].x )  && ( this.x < (this.parent.subviews[eg].x+this.parent.subviews[eg].width) ) ){
+					newy = this.parent.subviews[eg].y+this.parent.subviews[eg].height;
+				}
+			}
+		}
+		
+		//Check for Borders
+		//should be done _after_ checking for other dockable stuff so it gets 
+		//priority to dock against the border of parent view
+		if (this.x<this.dockingbarrier){
+			newx=0;
+		}
+		if (this.y<this.dockingbarrier){
+			newy=0;
+		}
+		if ( (this.parent.width-(this.x+this.width))<this.dockingbarrier){
+			newx=this.parent.width-this.width;
+		}
+		if ( (this.parent.height-(this.y+this.height))<this.dockingbarrier){
+			newy=this.parent.height-this.height;
+		}
+		
+		//set position
+		this.setAttribute('x',newx);
+		this.setAttribute('y',newy);
+		if ($debug) Debug.write("Position: ",newx,newy);
+		]]>
+	</method>
+	
+	<method name="storeAdjustmentToParent" args="objX,objY">
+		this.tempXdistance=objX-this.x;
+		this.tempYdistance=objY-this.y;
+	</method>
+	
+	<!--- @keywords private 
+		this method is needed because if the dragging end and
+		it was not dragged _itself_ it was draged just because a connected
+		dockable Box was dragged than it could be that the connected
+		Box was forced to dock against something different onmouseup
+		so you have to rearrange the old "adjustment"	-->
+	<method name="_lookforParentOnly" args="obj">
+		<![CDATA[		
+		var newx=obj.x-tempXdistance;
+		var newy=obj.y-tempYdistance;
+		
+		this.setAttribute('x',newx);
+		this.setAttribute('y',newy);
+		]]>
+	</method>
+	
+	<dragstate name="dragger" />
+    
+    <animator attribute="y" to="20" duration="1000" started="false" />
+        
+    <animator name="doOut" attribute="y" to="-500" duration="1000" started="false" onstop="parent.doDestroy()" />    
+    
+    <method name="doDestroy">
+        this.destroy();
+    </method>
+
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/panel/baseLeftPanel.lzx b/WebContent/src/base/components/panel/baseLeftPanel.lzx
new file mode 100644
index 0000000..b0b686c
--- /dev/null
+++ b/WebContent/src/base/components/panel/baseLeftPanel.lzx
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="baseLeftPanel" extends="baseBoundingBorderView" 
+	   bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }" hasshadow="false">
+	
+	<!--- if this Box should be closeable -->
+	<attribute name="closable" value="false" type="boolean" />
+	
+	<!--- Title of this window -->
+	<attribute name="title" type="string" value="basePanel" />
+	
+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+	<method name="setLabelId" args="_labelid" >
+		this.labelid = _labelid;
+		this.title=canvas.getLabelName(this.labelid);
+	</method>
+	
+	<!-- basebgcolorizer -->
+	
+	<view name="_bgItem" x="1" y="1" bgcolor="$once{ canvas.getThemeColor('mainBackgroundColor') }" 
+			width="$once{ this.parent.width-2 }" height="$once{ this.parent.height-2 }" />
+	
+	<view x="1" y="1" width="$once{ this.parent.width-2 }" height="17" 
+		  bgcolor="$once{ canvas.getThemeColor('baseMousecolorizer') }">
+        <handler name="onmousedown">
+        	parent.onmousedown.sendEvent(parent);
+        </handler>
+        <handler name="onmouseup">
+        	lz.Cursor.unlock();
+        	parent.onmouseup.sendEvent(parent);
+        </handler>
+        <handler name="onmouseover">
+        	//cursor="arrow_draw_panel_cursor" 
+        	lz.Cursor.setCursorGlobal("arrow_draw_panel_cursor");
+        </handler>
+        <handler name="onmouseout">
+        	lz.Cursor.unlock();
+        </handler>
+		<view resource="draw_box_horizontal_rsc" />
+	</view>
+	
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/panel/basePanel.lzx b/WebContent/src/base/components/panel/basePanel.lzx
new file mode 100644
index 0000000..75d0d32
--- /dev/null
+++ b/WebContent/src/base/components/panel/basePanel.lzx
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="basePanel" extends="baseBoundingBorderView" 
+	   bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }" >
+	
+	<!--- if this Box should be closeable -->
+	<attribute name="closable" value="false" type="boolean" />
+	
+	<!--- Title of this window -->
+	<attribute name="title" type="string" value="basePanel" />
+	
+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+	<method name="setLabelId" args="_labelid" >
+		this.labelid = _labelid;
+		this.title=canvas.getLabelName(this.labelid);
+	</method>
+	
+	<view width="${ this.parent.width-2 }" height="${ this.parent.height-2 }" x="1" y="1" bgcolor="0xFFFFFF" />
+	<view x="1" y="1" width="${ this.parent.width-2 }" height="20" >
+				<view width="${ this.parent.parent.width-2 }" y="0" stretches="width"
+            resource="presenter_thumb_rsc" >
+            <handler name="oninit">
+            	<![CDATA[
+            		this.setColor(canvas.getThemeColor('basebgcolorizer'));
+            	]]>
+            </handler>
+			<method name="setTintRGB" args="color, brightness">
+			    <![CDATA[
+			    if (color != "" && color != null){
+			    	
+			        if (brightness == null) { brightness = 0; }
+			        var rgb = color;
+			        var red=(rgb >> 16) & 0xFF;
+			        var green=(rgb >> 8) & 0xFF;
+			        var blue=rgb & 0xFF;
+		
+			        this.setColorTransform( { ra : red, ga : green, ba : blue,
+			                            		rb : 0, gb : 0, bb : 0 } );
+			                            		
+			        if($debug) Debug.write("explorerBox/setTintRGB",this);
+			        if($debug) Debug.write("explorerBox/setTintRGB", { ra : red, ga : green, ba : blue, rb : 0, gb : 0, bb : 0 } );
+			    }
+			    ]]>
+			</method>            
+        </view>
+        <text fontsize="11" height="17" x="16" y="1" text="${ this.parent.parent.title }" 
+			fgcolor="0xFFFFFF" resize="true" fontstyle="bold" />
+		<button visible="${ this.parent.parent.closable }" x="${ this.parent.parent.width-23 }" 
+			y="1" text="X" height="18" width="20" >
+			<handler name="onmouseup">
+				this.parent.parent.close();
+			</handler>									
+		</button>
+		<view visible="${ !this.parent.parent.isopen }" x="2" y="3" resource="explorer_button_min_rsc">
+			<handler name="onmouseover">
+				this.setAttribute('frame',2);
+			</handler>
+			<handler name="onmouseout">
+				this.setAttribute('frame',1);
+			</handler>
+			<handler name="onmousedown">
+				this.setAttribute('frame',3);
+			</handler>	
+			<handler name="onmouseup">
+				this.setAttribute('frame',1);
+				this.parent.parent.toggleopen();
+			</handler>									
+		</view>
+		<view visible="${ this.parent.parent.isopen }" x="2" y="3" resource="explorer_button_max_rsc">
+			<handler name="onmouseover">
+				this.setAttribute('frame',2);
+			</handler>
+			<handler name="onmouseout">
+				this.setAttribute('frame',1);
+			</handler>
+			<handler name="onmousedown">
+				this.setAttribute('frame',3);
+			</handler>	
+			<handler name="onmouseup">
+				this.setAttribute('frame',1);
+				this.parent.parent.toggleopen();
+			</handler>									
+		</view>
+	</view>
+	
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/panel/basePropertyPanel.lzx b/WebContent/src/base/components/panel/basePropertyPanel.lzx
new file mode 100644
index 0000000..48e4906
--- /dev/null
+++ b/WebContent/src/base/components/panel/basePropertyPanel.lzx
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="basePropertyPanel" extends="view" >
+	
+	<!--- @keywords private is the Box minimized  -->
+	<attribute name="isopen" value="true" type="boolean" />
+	
+	<!--- @keywords private is the Box minimized  -->
+	<attribute name="open" value="true" type="boolean" />		
+	
+	<!--- if this Box should be closeable -->
+	<attribute name="closable" value="false" type="boolean" />
+	
+	<!--- Title of this window -->
+	<attribute name="title" type="string" value="basePanel" />
+	
+	<!--- @keywords private  -->
+	<attribute name="initheight" value="0" type="number" />
+	
+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+		
+	<method name="setLabelId" args="_labelid" >
+		this.labelid = _labelid;
+		this.title=canvas.getLabelName(this.labelid);
+	</method>
+	
+	<method name="toggleopen">
+		//if ($debug) Debug.write("toggleopen:: this.isopen", this.isopen);
+		this.setAttribute('isopen',!this.isopen);
+		if (this.isopen){		
+			this.setAttribute('height',this.initheight);
+			this.setAttribute('height',this.initheight);
+		} else {	
+			this.setAttribute('height',22);		
+		}
+	</method>
+	
+    <handler name="oninit">
+    	this.initheight=this.height;
+    </handler>
+	
+	<view width="${ this.parent.width }" height="${ this.parent.height-2 }" 
+		  x="0" y="1"  />
+	
+    <view x="0" y="1" width="${ this.parent.width }" height="20" bgcolor="0xE0E1EB" />
+    
+    <view x="0" y="0" width="${ this.parent.width }" height="1" bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }" />
+    
+    <view x="0" y="19" width="${ this.parent.width }" height="1" bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }" />
+	
+		  
+    <view x="0" y="1" width="${ this.parent.width }" height="20" >
+		
+		<handler name="onclick">
+            this.parent.toggleopen();
+        </handler>
+		
+        <text fontsize="11" height="17" x="16" y="1" text="${ this.parent.parent.title }" 
+			fgcolor="$once{ canvas.getThemeColor('menuTextColor') }" resize="true" fontstyle="bold" />
+			
+		<button visible="${ this.parent.parent.closable }" x="${ this.parent.parent.width-23 }" 
+			y="1" text="X" height="18" width="20" >
+			<handler name="onmouseup">
+				this.parent.parent.close();
+			</handler>									
+		</button>
+		
+		<view visible="${ !this.parent.parent.isopen }" x="2" y="2" resource="conferenceBox_button_min_small_rsc">
+			<handler name="onmouseup">
+				this.parent.parent.toggleopen();
+			</handler>	
+			<labelTooltip name="_labelTooltip" labelid="857" />								
+		</view>
+		
+		<view visible="${ this.parent.parent.isopen }" x="2" y="2" resource="conferenceBox_button_max_small_rsc">
+			<handler name="onmouseup">
+				this.parent.parent.toggleopen();
+			</handler>
+			<labelTooltip name="_labelTooltip" labelid="856" />									
+		</view>
+		
+	</view>
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/panel/baseTopPanel.lzx b/WebContent/src/base/components/panel/baseTopPanel.lzx
new file mode 100644
index 0000000..933fc58
--- /dev/null
+++ b/WebContent/src/base/components/panel/baseTopPanel.lzx
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="baseTopPanel" extends="baseBoundingBorderView" 
+	   bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }" hasshadow="false">
+	
+	<!--- if this Box should be closeable -->
+	<attribute name="closable" value="false" type="boolean" />
+	
+	<!--- Title of this window -->
+	<attribute name="title" type="string" value="basePanel" />
+	
+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+	<method name="setLabelId" args="_labelid" >
+		this.labelid = _labelid;
+		this.title=canvas.getLabelName(this.labelid);
+	</method>
+	
+	<view name="_bgItem" x="1" y="1" bgcolor="$once{ canvas.getThemeColor('mainBackgroundColor') }" 
+			width="$once{ this.parent.width-2 }" height="$once{ this.parent.height-2 }" />
+			
+	<view x="1" y="1" height="$once{ this.parent.height-2 }" width="17" 
+		  bgcolor="$once{ canvas.getThemeColor('baseMousecolorizer') }">
+        <handler name="onmousedown">
+        	parent.onmousedown.sendEvent(parent);
+        </handler>
+        <handler name="onmouseup">
+        	lz.Cursor.unlock();
+        	parent.onmouseup.sendEvent(parent);
+        </handler>
+        <handler name="onmouseover">
+        	//cursor="arrow_draw_panel_cursor" 
+        	lz.Cursor.setCursorGlobal("arrow_draw_panel_cursor");
+        </handler>
+        <handler name="onmouseout">
+        	lz.Cursor.unlock();
+        </handler>
+		<view resource="draw_box_vertical_rsc" />
+	</view>
+	
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/panel/labelPanel.lzx b/WebContent/src/base/components/panel/labelPanel.lzx
new file mode 100644
index 0000000..34aac21
--- /dev/null
+++ b/WebContent/src/base/components/panel/labelPanel.lzx
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="labelPanel" extends="basePanel" >
+	
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/panel/library.lzx b/WebContent/src/base/components/panel/library.lzx
new file mode 100644
index 0000000..96746f9
--- /dev/null
+++ b/WebContent/src/base/components/panel/library.lzx
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<include href="resources/" />
+	
+	<include href="baseBoundingBorderView.lzx" />
+	<include href="basePanel.lzx" />
+	<include href="baseTopPanel.lzx" />
+	<include href="baseLeftPanel.lzx" />
+	<include href="panelBoundBox.lzx" />
+	<include href="basePropertyPanel.lzx" />
+
+    
+</library>
diff --git a/WebContent/src/base/components/panel/panelBoundBox.lzx b/WebContent/src/base/components/panel/panelBoundBox.lzx
new file mode 100644
index 0000000..fb637a6
--- /dev/null
+++ b/WebContent/src/base/components/panel/panelBoundBox.lzx
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<!--
+
+<class name="drawViewNew" extends="drawview" cachebitmap="false" x="-1" y="-1" >
+ -->
+<class name="panelBoundBox" extends="drawview" cachebitmap="false" >
+	
+	<handler name="oncontext">
+		var numberColor = this.stringRgbToInteger(canvas.getThemeColor('basebgcolorizer'));
+		var fillColor = this.stringRgbToInteger(canvas.getThemeColor('baseMousecolorizer'));
+		this.drawBody(this,0,0,this.width,this.height,fillColor,2);
+		this.drawDottedLine(this,0,0,this.width,0,numberColor,2);
+		this.drawDottedLine(this,this.width,0,this.width,this.height,numberColor,2);
+		this.drawDottedLine(this,this.width,this.height,0,this.height,numberColor,2);
+		this.drawDottedLine(this,0,this.height,0,0,numberColor,2);
+	</handler>
+	
+	<method name="stringRgbToInteger" args="rgb">
+	    <![CDATA[
+	        var red=(rgb >> 16) & 0xFF;
+	        var green=(rgb >> 8) & 0xFF;
+	        var blue=rgb & 0xFF;
+	        return (red * 65536 + green * 256 + blue);
+	    ]]>
+	</method>
+	
+  	<method name="drawBody" args="targetObj,x1,y1,x2,y2,fill,lineWidth">
+   		<![CDATA[
+    		
+            //if ($debug) Debug.write("drawBody: ",targetObj,lineWidth);
+        
+    		targetObj.lineWidth = lineWidth;
+    		targetObj.beginPath();
+    		targetObj.moveTo(x1,y1);
+    		targetObj.lineTo(x1,y2);
+    		targetObj.lineTo(x2,y2);
+    		targetObj.lineTo(x2,y1);
+    		targetObj.lineTo (x1,y1);
+    		targetObj.closePath();
+
+    		targetObj.fillStyle = fill;
+    		targetObj.fill();
+    		
+    	]]>   
+  	</method> 	
+
+	<method name="drawDottedLine" args="targetObj,startx,starty,endx,endy,stroke,lineWidth">
+    	<![CDATA[
+    		//var drawObj = new lz.drawview(targetObj,{width:this.width,height:this.height});	    
+    		//if ($debug) Debug.write("drawDottedLine: ",targetObj,startx,starty,endx,endy,stroke,lineWidth);
+	    	Math.linearTween = function (t, b, c, d) {
+			    return c*t/d + b;
+			};
+
+    		//if($debug)  Debug.write("drawDashLine: ",tObject);
+    		var tx = endx;
+    		var ty = endy;
+    		var sx = startx;
+    		var sy = starty;
+    		var distance = Math.sqrt(Math.pow(tx-sx,2)+Math.pow(ty-sy,2)); 
+    		var steps = Math.floor(distance  / 5 ); 
+    		//if($debug)  Debug.write("steps: ",steps);
+    		var gap = false;
+    		//if($debug)  Debug.write("gap1: ",gap);
+	        for (var i = 1; i<=steps; ++i) {
+	            var ctx = Math.linearTween(i, sx, tx-sx,steps);    //equations by R.Penner!
+	            var cty = Math.linearTween(i, sy, ty-sy,steps);
+	            //if($debug)  Debug.write("gap2: ",gap);
+	            gap = !gap;    //abwechselnd luecke/nichtluecke
+	            if(!gap) {
+	            	//if($debug)  Debug.write(csx,csy,"|",ctx,cty);
+    				targetObj.strokeStyle = stroke;
+    				targetObj.lineWidth = lineWidth;
+    				targetObj.beginPath();    			            	
+	               	targetObj.moveTo(csx,csy);
+	                targetObj.lineTo(ctx,cty);
+	                targetObj.stroke();
+	            }
+	            csx =ctx;
+	            csy = cty;
+	        }       		  		
+    	]]>
+	</method>	
+	
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/panel/resources/arrow_cursor.fla b/WebContent/src/base/components/panel/resources/arrow_cursor.fla
new file mode 100644
index 0000000..7937bab
--- /dev/null
+++ b/WebContent/src/base/components/panel/resources/arrow_cursor.fla
Binary files differ
diff --git a/WebContent/src/base/components/panel/resources/arrow_cursor.swf b/WebContent/src/base/components/panel/resources/arrow_cursor.swf
new file mode 100644
index 0000000..c41d8dc
--- /dev/null
+++ b/WebContent/src/base/components/panel/resources/arrow_cursor.swf
Binary files differ
diff --git a/WebContent/src/base/components/panel/resources/arrow_cursor_resize_tool.fla b/WebContent/src/base/components/panel/resources/arrow_cursor_resize_tool.fla
new file mode 100644
index 0000000..47f6ba9
--- /dev/null
+++ b/WebContent/src/base/components/panel/resources/arrow_cursor_resize_tool.fla
Binary files differ
diff --git a/WebContent/src/base/components/panel/resources/arrow_cursor_resize_tool.swf b/WebContent/src/base/components/panel/resources/arrow_cursor_resize_tool.swf
new file mode 100644
index 0000000..05a2e97
--- /dev/null
+++ b/WebContent/src/base/components/panel/resources/arrow_cursor_resize_tool.swf
Binary files differ
diff --git a/WebContent/src/base/components/panel/resources/arrow_cursor_rotate_tool.fla b/WebContent/src/base/components/panel/resources/arrow_cursor_rotate_tool.fla
new file mode 100644
index 0000000..823ce08
--- /dev/null
+++ b/WebContent/src/base/components/panel/resources/arrow_cursor_rotate_tool.fla
Binary files differ
diff --git a/WebContent/src/base/components/panel/resources/arrow_cursor_rotate_tool.swf b/WebContent/src/base/components/panel/resources/arrow_cursor_rotate_tool.swf
new file mode 100644
index 0000000..1bbb90c
--- /dev/null
+++ b/WebContent/src/base/components/panel/resources/arrow_cursor_rotate_tool.swf
Binary files differ
diff --git a/WebContent/src/base/components/panel/resources/arrow_cursor_tool.fla b/WebContent/src/base/components/panel/resources/arrow_cursor_tool.fla
new file mode 100644
index 0000000..dda794a
--- /dev/null
+++ b/WebContent/src/base/components/panel/resources/arrow_cursor_tool.fla
Binary files differ
diff --git a/WebContent/src/base/components/panel/resources/arrow_cursor_tool.png b/WebContent/src/base/components/panel/resources/arrow_cursor_tool.png
new file mode 100644
index 0000000..a9f3169
--- /dev/null
+++ b/WebContent/src/base/components/panel/resources/arrow_cursor_tool.png
Binary files differ
diff --git a/WebContent/src/base/components/panel/resources/box_closed_small.fla b/WebContent/src/base/components/panel/resources/box_closed_small.fla
new file mode 100644
index 0000000..8b0d901
--- /dev/null
+++ b/WebContent/src/base/components/panel/resources/box_closed_small.fla
Binary files differ
diff --git a/WebContent/src/base/components/panel/resources/box_closed_small.png b/WebContent/src/base/components/panel/resources/box_closed_small.png
new file mode 100644
index 0000000..ca34510
--- /dev/null
+++ b/WebContent/src/base/components/panel/resources/box_closed_small.png
Binary files differ
diff --git a/WebContent/src/base/components/panel/resources/box_open_small.fla b/WebContent/src/base/components/panel/resources/box_open_small.fla
new file mode 100644
index 0000000..1c04bc2
--- /dev/null
+++ b/WebContent/src/base/components/panel/resources/box_open_small.fla
Binary files differ
diff --git a/WebContent/src/base/components/panel/resources/box_open_small.png b/WebContent/src/base/components/panel/resources/box_open_small.png
new file mode 100644
index 0000000..87597a3
--- /dev/null
+++ b/WebContent/src/base/components/panel/resources/box_open_small.png
Binary files differ
diff --git a/WebContent/src/base/components/panel/resources/draw_box_horizontal.fla b/WebContent/src/base/components/panel/resources/draw_box_horizontal.fla
new file mode 100644
index 0000000..223156d
--- /dev/null
+++ b/WebContent/src/base/components/panel/resources/draw_box_horizontal.fla
Binary files differ
diff --git a/WebContent/src/base/components/panel/resources/draw_box_horizontal.swf b/WebContent/src/base/components/panel/resources/draw_box_horizontal.swf
new file mode 100644
index 0000000..c6748e5
--- /dev/null
+++ b/WebContent/src/base/components/panel/resources/draw_box_horizontal.swf
Binary files differ
diff --git a/WebContent/src/base/components/panel/resources/draw_box_vertical.fla b/WebContent/src/base/components/panel/resources/draw_box_vertical.fla
new file mode 100644
index 0000000..7ddd9a4
--- /dev/null
+++ b/WebContent/src/base/components/panel/resources/draw_box_vertical.fla
Binary files differ
diff --git a/WebContent/src/base/components/panel/resources/draw_box_vertical.swf b/WebContent/src/base/components/panel/resources/draw_box_vertical.swf
new file mode 100644
index 0000000..37ffa2c
--- /dev/null
+++ b/WebContent/src/base/components/panel/resources/draw_box_vertical.swf
Binary files differ
diff --git a/WebContent/src/base/components/panel/resources/library.lzx b/WebContent/src/base/components/panel/resources/library.lzx
new file mode 100644
index 0000000..9cfcfd4
--- /dev/null
+++ b/WebContent/src/base/components/panel/resources/library.lzx
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+	<!-- APL Author sebawagner -->
+	<resource name="conferenceBox_button_min_small_rsc" src="box_closed_small.png" />
+    <!-- APL Author sebawagner -->
+    <resource name="conferenceBox_button_max_small_rsc" src="box_open_small.png" />
+    <!-- APL Author sebawagner -->
+	<resource name="arrow_draw_panel_cursor" src="arrow_cursor.swf" />
+	<!-- APL Author sebawagner -->
+	<resource name="arrow_resize_panel_cursor" src="arrow_cursor_resize_tool.swf" />
+	<!-- APL Author sebawagner -->
+	<resource name="arrow_rotate_panel_cursor" src="arrow_cursor_rotate_tool.swf" />
+	<!-- APL Author sebawagner -->
+	<resource name="draw_box_vertical_rsc" src="draw_box_vertical.swf" />
+	<!-- APL Author sebawagner -->
+	<resource name="draw_box_horizontal_rsc" src="draw_box_horizontal.swf" />
+    
+</library>
diff --git a/WebContent/src/base/components/presenter/boxInitEffect.lzx b/WebContent/src/base/components/presenter/boxInitEffect.lzx
new file mode 100644
index 0000000..4391c93
--- /dev/null
+++ b/WebContent/src/base/components/presenter/boxInitEffect.lzx
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="boxInitEffect" extends="view" width="100" height="20" 
+    opacity="0.3" bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }" >
+    
+    <attribute name="zielx" value="200" type="number" />
+    <attribute name="ziely" value="200" type="number" />
+    <attribute name="zielwidth" value="100" type="number" />
+    <attribute name="zielheight" value="100" type="number" />
+    
+    <attribute name="objRef" value="null" />
+    
+    <handler name="oninit">
+    	//It seems like you need additionally to start it oninit, the start = true works
+    	//only for the first initialization, sebawagner 19.03.2012
+    	//the following call seems to be redundant after using non-deprecated attribute name -- solomax 2012.07.20 
+    	this.anm.setAttribute('started', true);
+    </handler>
+    
+    <method name="sendStop">
+        this.objRef.sendAnniComplete();
+        this.destroy();
+    </method>
+
+    <animatorgroup name="anm" started="true" process="simultaneous" 
+        		duration="500" onstop="this.parent.sendStop()" >
+        <animator attribute="x" to="$once{ parent.parent.zielx }" />
+        <animator attribute="y" to="$once{ parent.parent.ziely }" />
+        <animator attribute="width" to="$once{ parent.parent.zielwidth }" />
+        <animator attribute="height" to="$once{ parent.parent.zielheight }" />
+    </animatorgroup>
+    
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/presenter/guiPresenter.lzx b/WebContent/src/base/components/presenter/guiPresenter.lzx
new file mode 100644
index 0000000..5b1ed9e
--- /dev/null
+++ b/WebContent/src/base/components/presenter/guiPresenter.lzx
@@ -0,0 +1,546 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>     
+
+<class name="guiPresenter" extends="view" width="250" height="400" 
+    clickable="$once{ this.isdragable }"
+	onmousedown="this._startDragState(this)" onmouseup="this._removeDragState(this)" >
+    
+    <handler name="oninit">
+        this.setShadow();
+    </handler>
+    
+    <method name="setShadow">
+        <![CDATA[
+        if (this.isinited && this.hasshadow){
+            this.normalMC = this.getDisplayObject();
+            this.displacementMap = new flash.filters.DropShadowFilter();
+            this.normalMC.filters = [this.displacementMap];
+        }
+        ]]>              
+    </method>	    
+
+    <attribute name="hasshadow" value="true" type="boolean" />
+          
+	<!--- The Title of this Box -->
+	<attribute name="title" value="defaulttitle" type="string" />
+	
+	<!--- if this Box should be closeable -->
+	<attribute name="closable" value="true" type="boolean" />
+    
+    <!--- if this Box should be resizeable  -->
+    <attribute name="resizeable" value="true" type="boolean" />
+	
+	<!--- Can this Box be docked to others and 
+			the width/height of parent compoent barrier -->
+	<attribute name="docking" value="true" type="boolean" />
+	
+	<!--- Hard to explain but its clear if you play around 
+		with that. Its the number of minimum pixels before 
+		the "docking" effect will be there -->
+	<attribute name="dockingbarrier" value="15" type="number" />
+
+	<!---@keywords private the list of connected views -->
+	<attribute name="dockinglist" value="null" />
+	
+	<!--- @keywords private temp-older of x-distance to docked-Box  -->
+	<attribute name="tempXdistance" value="0" type="number" />
+
+	<!--- @keywords private temp-older of y-distance to docked-Box  -->
+	<attribute name="tempYdistance" value="0" type="number" />
+	
+	<!--- @keywords private is the Box minimized  -->
+	<attribute name="isopen" value="true" type="boolean" />
+	
+	<!--- @keywords private is the Box minimized  -->
+	<attribute name="open" value="true" type="boolean" />	
+	
+	<!--- @keywords private  -->
+	<attribute name="initheight" value="0" type="number" />
+    
+    <!--- @keywords private show minimize, maximize, close buttons -->
+    <attribute name="fullToolBar" value="true" type="boolean" />
+    
+    <attribute name="maximizable" value="true" type="boolean" />
+    
+    <attribute name="minimizable" value="true" type="boolean" />
+    
+    <attribute name="minimized" value="false" type="boolean" />
+    
+    <attribute name="customMinimizeMethod" value="false" type="boolean" />
+    
+    <attribute name="initialHeight" value="0" type="number"/>
+    
+    <!--- @keywords private if this window is dragable -->
+    <attribute name="isdragable" value="true" type="boolean" />
+    
+    <attribute name="_barmenuButtonRef" value="null" />
+    
+    <!--- if this Box should be resizeable  -->
+    <attribute name="ismaximized" value="false" type="boolean" />    
+    <attribute name="maxi_x" value="0" type="number" />
+    <attribute name="maxi_y" value="0" type="number" />
+    <attribute name="maxi_height" value="0" type="number" />
+    <attribute name="maxi_width" value="0" type="number" />
+    
+    <attribute name="isresizeing" value="false" type="boolean" />
+    
+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+	<method name="setLabelId" args="id">
+		this.labelid=id;
+		this.setAttribute('title',canvas.getLabelName(this.labelid));
+	</method>    
+	
+	<!--- the Event will be thrown if you close the Box -->
+	<event name="onclose" />    
+    
+	<!--- the Event will be thrown if you do click on it and drag -->
+	<event name="onactivate" />   
+    
+    <!--- this Event will be triggered after resizing -->
+    <event name="onresized" />
+    
+	<!--- @keywords private store initial height so toggleopen can reset height  -->
+	<handler name="oninit">
+		this.initheight=this.height;
+		//Debug.write("this.isopen: ",this.isopen);
+		if (!this.open) toggleopen();
+	</handler>
+    
+    <handler name="onwidth" args="w">
+        <![CDATA[
+            if (this.isresizeing){
+            	if (w<40){
+            		this.setAttribute('width',41); 
+            		this._resizeview.onmouseup.sendEvent();
+            	}
+                if (w<_titlebar._title.width+70) {
+                    this.setAttribute('width',_titlebar._title.width+71); 
+                    this._resizeview.onmouseup.sendEvent();
+                }
+            }
+        ]]>
+    </handler>
+    
+    <handler name="onheight" args="h">
+        <![CDATA[
+            if (this.isresizeing){
+                if (h<40) {
+                    this.setAttribute('height',41); 
+                    this._resizeview.onmouseup.sendEvent();
+                }
+            }
+        ]]>
+    </handler>
+    
+	<method name="close">
+		if (this.onclose) this.onclose.sendEvent();
+        if (this._barmenuButtonRef!=null){
+            this._barmenuButtonRef.destroy();
+            this._barmenuButtonRef.parent.onwidth.sendEvent();
+        }
+		this.destroy();
+	</method>
+    
+    <method name="minimize">
+        <![CDATA[
+	        this.setAttribute("minimized",true);
+	        
+	        this._titlebar._toolbar._minimize.setAttribute("visibility","hidden");
+	        this._titlebar._toolbar._maximize2.setAttribute("visibility","visible");
+	        
+	        if (this.customMinimizeMethod) {
+	            return;
+	        }
+	        
+	        for (var eg in this.subviews) {
+	            if (this.subviews[eg].name != "_titlebar" 
+	                    && this.subviews[eg].name != "_bg") {
+	                 this.subviews[eg].setAttribute("visibility","hidden");   
+	            }
+	        }
+            
+	        this.initialHeight = this.height;
+	        //this.setAttribute("height",20);
+            this._minimizeZoom.setAttribute("to",20);
+            this._minimizeZoom.setAttribute('started', true);
+        ]]>
+    </method>
+    
+    <method name="reminimize">
+        <![CDATA[
+	        this.setAttribute("minimized",false);
+	        
+	        this._titlebar._toolbar._minimize.setAttribute("visibility","visible");
+	        this._titlebar._toolbar._maximize2.setAttribute("visibility","hidden");
+	        
+	        if (this.customMinimizeMethod) {
+	            return;
+	        }
+	        
+	        //this.setAttribute("height",this.initialHeight); 
+            this._minimizeZoom.setAttribute("to",this.initialHeight);
+            this._minimizeZoom.setAttribute('started', true);
+        ]]>
+    </method>
+    
+    <method name="reminimizeComplete">
+        <![CDATA[
+	        if (!this.minimized) {
+	            
+	            for (var eg in this.subviews) {
+	                if (this.subviews[eg].name != "_titlebar" 
+	                        && this.subviews[eg].name != "_bg") {
+	                     this.subviews[eg].setAttribute("visibility","visible");   
+	                }
+	            }
+	            
+	            if (!this.resizeable) {
+	                this._resizeview.setAttribute("visibility","hidden");   
+	            }
+	        
+	        }
+        ]]>
+    </method>
+	
+	<method name="toggleopen">
+		//////Debug.write("this.isopen",this.isopen);
+		this.setAttribute('isopen',!this.isopen);
+		if (this.isopen){
+			_calcdockingList();
+			for (var eg in this.dockinglist){
+				if(this.dockinglist[eg].docking){
+					//////Debug.write("this.dockinglist[eg]: ",this.dockinglist[eg].title);
+					//////Debug.write("open new y",this.y+this.initheight);
+					this.dockinglist[eg].toggleOpenByParent(this.initheight-22);
+					this.dockinglist[eg].setAttribute('y',this.y+this.initheight);
+					
+				}
+			}			
+			this.setAttribute('height',this.initheight);
+		} else {
+			_calcdockingList();
+			for (var eg in this.dockinglist){
+				if(this.dockinglist[eg].docking){
+					//////Debug.write("this.dockinglist[eg]: ",this.dockinglist[eg].title);
+					this.dockinglist[eg].toggleOpenByParent(-(this.initheight-22));
+					this.dockinglist[eg].setAttribute('y',this.y+22);
+				}
+			}	
+			this.setAttribute('height',22);		
+		}
+	</method>
+	
+	<method name="toggleOpenByParent" args="changeY">
+		//////Debug.write("+++++ toggleOpenByParent +++++ changeY: ",this.title,changeY);
+		var tempList=new Array();
+		<![CDATA[
+		//check for dockable stuff which is connected to this Box
+		for (var eg in this.parent.subviews){
+			//check that you do not calc with yourself
+			if (this.parent.subviews[eg]!=this && this.parent.subviews[eg].docking){
+				// there are 4 cases which have to be proofed to check every possible situation
+				var proof=false;
+				//////Debug.write("found some: ",this.parent.subviews[eg].title);
+				//top box-border
+				if  ( ( ((this.y+this.height)-this.parent.subviews[eg].y) < 1 ) && ( ((this.y+this.height)-this.parent.subviews[eg].y) > -1 ) && ( (this.x+this.width) > this.parent.subviews[eg].x )  && ( this.x < (this.parent.subviews[eg].x+this.parent.subviews[eg].width) ) ){
+					proof=true;
+				}
+					
+				if (proof) tempList.push(this.parent.subviews[eg]);
+			}
+		}
+		]]>
+		//////Debug.write("tempList.length: ",tempList.length);
+		if (tempList.length!=0){
+			for (var eg in tempList){
+				if(tempList[eg].docking){
+					//////Debug.write("toggleOpenByParent 1 [eg],changeY: ",tempList[eg].title,changeY);
+					tempList[eg].toggleOpenByParent(changeY);
+					tempList[eg].setAttribute('y',tempList[eg].y+changeY);
+				}
+			}	
+		}
+		
+	</method>
+    
+    <method name="activate">
+        this.onactivate.sendEvent();
+        this.bringToFront();
+        if (this._barmenuButtonRef!=null) this._barmenuButtonRef.sendActiveWindow(this);
+    </method>
+    
+    <method name="rsapply">
+        this.isresizeing=true;
+        this.rs.apply();
+    </method>
+    
+    <method name="rsremove">
+        this.rs.remove();
+        this.isresizeing=false;
+        //Debug.write("rsremove",this,this.isinited);
+        this.onresized.sendEvent();
+    </method>    
+    	
+	<!--- @keywords private  -->
+	<method name="_removeDragState" args="obj">
+        if (!this.ismaximized){
+            //It's important to remove the dragger and do docking stuff before you check for conencted Boxes
+            dragger.remove();
+            if (obj==this){
+                if (docking) arrangePosition();
+            } else {
+                if (docking) _lookforParentOnly(obj);
+            }
+                
+            //check for connected Boxes
+            for (var eg in this.dockinglist){
+                if(this.dockinglist[eg].docking){
+                    this.dockinglist[eg]._removeDragState(this);
+                }
+            }
+        }
+	</method>
+
+
+	
+	<!--- @keywords private
+		the arg obj is needed because the dragging can be called by the Box itself
+		or by a Box which is connected to this Box!  -->
+	<method name="_startDragState" args="obj">
+        this.activate();
+        if (!this.ismaximized){
+            _calcdockingList();
+            for (var eg in this.dockinglist){
+                if(this.dockinglist[eg].docking){
+                    this.dockinglist[eg]._startDragState(this);
+                }
+            }
+            //store position cause it wasn't dragged by itself
+            if (obj!=this){
+                storeAdjustmentToParent(obj.x,obj.y);
+            }
+            dragger.apply();
+        }
+	</method>
+	
+	<!--- Calc the List of Boxes which will be dragged and setposition if this Box
+		will be dragged,docked or minimized/maximized  -->
+	<method name="_calcdockingList">
+		//Clear list of conencted Boxes
+		this.dockinglist=new Array();
+		<![CDATA[
+		//check for dockable stuff which is connected to this Box
+		for (var eg in this.parent.subviews){
+			//check that you do not calc with yourself
+			if (this.parent.subviews[eg]!=this && this.parent.subviews[eg].docking){
+				// there are 4 cases which have to be proofed to check every possible situation
+				var proof=false;
+
+				//top box-border
+				if  ( ( ((this.y+this.height)-this.parent.subviews[eg].y) < 1 ) && ( ((this.y+this.height)-this.parent.subviews[eg].y) > -1 ) && ( (this.x+this.width) > this.parent.subviews[eg].x )  && ( this.x < (this.parent.subviews[eg].x+this.parent.subviews[eg].width) ) ){
+					proof=true;
+				}
+
+				if (proof) this.dockinglist.push(this.parent.subviews[eg]);
+			}
+		}
+		]]>
+		//////Debug.write("this.dockinglist.length:",this.dockinglist.length);
+	</method>
+	
+	<!--- @keywords private  -->
+	<method name="arrangePosition">
+		//do the magic
+		//the idea is: look for all on the view container one level above this one
+		//and look for the width/height and 0/0 and look for "dockable" stuff there
+		var newx=this.x;
+		var newy=this.y;
+	  
+		<![CDATA[
+				
+		for (var eg in this.parent.subviews){
+			//check that you do not calc with yourself
+			if (this.parent.subviews[eg]!=this && this.parent.subviews[eg].docking){
+				// there are 4 cases which have to be proofed to check every possible situation
+				//left box-border
+				if ( ( ((this.x+this.width)-this.parent.subviews[eg].x) < this.dockingbarrier ) && ( ((this.x+this.width)-this.parent.subviews[eg].x) > -this.dockingbarrier ) &&  ( (this.y+this.height) > this.parent.subviews[eg].y ) &&  ( this.y < (this.parent.subviews[eg].y+this.parent.subviews[eg].height) ) ){
+					newx= ( this.parent.subviews[eg].x - this.width );
+				}
+				//right box-border
+				if ( ( ((this.parent.subviews[eg].x+this.parent.subviews[eg].width)-this.x)<this.dockingbarrier ) && ( ((this.parent.subviews[eg].x+this.parent.subviews[eg].width)-this.x)>-this.dockingbarrier ) &&  ( (this.y+this.height) > this.parent.subviews[eg].y ) &&  ( this.y < (this.parent.subviews[eg].y+this.parent.subviews[eg].height) ) ){
+					newx= ( this.parent.subviews[eg].x + this.parent.subviews[eg].width );
+				}
+				//top box-border
+				if  ( ( ((this.y+this.height)-this.parent.subviews[eg].y) < this.dockingbarrier ) && ( ((this.y+this.height)-this.parent.subviews[eg].y) > -this.dockingbarrier ) && ( (this.x+this.width) > this.parent.subviews[eg].x )  && ( this.x < (this.parent.subviews[eg].x+this.parent.subviews[eg].width) ) ){
+					newy = this.parent.subviews[eg].y-this.height;
+				}
+				//bottom box-border
+				if ( ( ((this.parent.subviews[eg].y+this.parent.subviews[eg].height)-this.y) < this.dockingbarrier ) && ( ((this.parent.subviews[eg].y+this.parent.subviews[eg].height)-this.y) > -this.dockingbarrier ) && ( (this.x+this.width) > this.parent.subviews[eg].x )  && ( this.x < (this.parent.subviews[eg].x+this.parent.subviews[eg].width) ) ){
+					newy = this.parent.subviews[eg].y+this.parent.subviews[eg].height;
+				}
+			}
+		}
+		
+		//Check for Borders
+		//should be done _after_ checking for other dockable stuff so it gets 
+		//priority to dock against the border of parent view
+		if (this.x<this.dockingbarrier){
+			newx=0;
+		}
+		if (this.y<this.dockingbarrier){
+			newy=0;
+		}
+		if ( (this.parent.width-(this.x+this.width))<this.dockingbarrier){
+			newx=this.parent.width-this.width;
+		}
+		if ( (this.parent.height-(this.y+this.height))<this.dockingbarrier){
+			newy=this.parent.height-this.height;
+		}
+
+		//set position
+		this.setAttribute('x',newx);
+		this.setAttribute('y',newy);
+		]]>
+	</method>
+	
+	<method name="storeAdjustmentToParent" args="objX,objY">
+		this.tempXdistance=objX-this.x;
+		this.tempYdistance=objY-this.y;
+	</method>
+	
+	<!--- @keywords private 
+		this method is needed because if the dragging end and
+		it was not dragged _itself_ it was draged just because a connected
+		dockable Box was dragged than it could be that the connected
+		Box was forced to dock against something different onmouseup
+		so you have to rearrange the old "adjustment"	-->
+	<method name="_lookforParentOnly" args="obj">
+		<![CDATA[		
+		var newx=obj.x-tempXdistance;
+		var newy=obj.y-tempYdistance;
+		
+		this.setAttribute('x',newx);
+		this.setAttribute('y',newy);
+		]]>
+	</method>
+	
+	<dragstate name="dragger" />
+    
+	<view name="_bg" width="${ this.parent.width }" height="${ this.parent.height }" 
+        bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }" > 
+        <view width="${ this.parent.width-2 }" height="${ this.parent.height-2 }"
+             x="1" y="1" bgcolor="$once{ canvas.getThemeColor('mainBackgroundColor') }" />
+    </view>        
+    
+	<view x="1" y="1" width="${ this.parent.width-1 }" height="20" name="_titlebar" >
+		<!-- stretches="width" -->
+		<gradientview x="0" width="${ this.parent.width }" height="20"
+				colorFrom="$once{ canvas.getThemeColor('baseMousecolorizer') }"
+				colorTo="$once{ canvas.getThemeColor('styleMenuBarBaseColor') }" >
+		</gradientview>
+		
+        <text name="_title" fontsize="10" height="17" x="6" y="1" text="${ this.parent.parent.title }" 
+			fgcolor="0xFFFFFF" resize="true" fontstyle="bold" />
+			
+	    <view name="_toolbar" visibility="$once{ ((parent.parent.fullToolBar) ? 'visible' : 'hidden' ) }" 
+	        x="${ parent.width-this.width-2 }" layout="axis:x;spacing:0" y="2">     
+            
+            <miniIconsPresenter name="_minimize"
+                visibility="$once{ ((parent.parent.parent.minimizable) ? 'visible' : 'hidden' ) }" 
+                iconRessourceName="btn_presenter_minimize">
+                <handler name="onclick">
+                    this.parent.parent.parent.minimize();
+                </handler>
+                <labelTooltip labelid="856" />
+            </miniIconsPresenter>
+            
+            <miniIconsPresenter name="_maximize2" visibility="hidden"
+                iconRessourceName="btn_presenter_maximize">
+                <handler name="onclick">
+                    this.parent.parent.parent.reminimize();
+                </handler>
+                <labelTooltip labelid="857" />
+            </miniIconsPresenter>
+            
+	        <miniIconsPresenter name="_close"
+	            visibility="$once{ ((parent.parent.parent.closable) ? 'visible' : 'hidden' ) }"
+	            iconRessourceName="btn_presenter_close2">
+	            <handler name="onclick">
+	                this.parent.parent.parent.close();
+	            </handler>
+	            <labelTooltip labelid="430" />
+	        </miniIconsPresenter>  
+            
+	    </view>  			
+	</view>
+    <handler name="onaddsubview" args="v">
+		//Debug.write("onaddsubview",v);
+		if (v.parent.subviews.length>2) this._resizeview.bringToFront();
+    </handler>
+    <view visibility="$once{ ((this.parent.resizeable) ? 'visible' : 'hidden' ) }"
+        name="_resizeview" x="${ this.parent.width - 16 }" 
+        y="${ this.parent.height - 16 }" resource="explorer_resize_rsc" 
+        cursor="explorer_resizemouse_rsc" onmousedown="this.parent.rsapply()"
+        onmouseup="this.parent.rsremove()" >
+        <labelTooltip text="resize" />
+    </view>    
+    <resizestate name="rs"/>
+    
+    <animator name="_minimizeZoom" attribute="height" 
+              duration="750" to="20" started="false">
+        <handler name="onstop" args="s">
+            parent.reminimizeComplete();
+        </handler>
+    </animator>
+    
+</class>
+
+<class name="miniIconsPresenter" extends="view">
+    
+    <attribute name="iconRessourceName" value="" type="string"/>
+    
+    <handler name="onmouseover">
+        this._bg.setAttribute("bgcolor",0xFFFFFF);
+        this._bg.setAttribute("visibility","visible");
+    </handler>
+    
+    <handler name="onmouseout">
+        this._bg.setAttribute("visibility","hidden");
+    </handler>
+    
+    <handler name="onmousedown">
+        this._bg.setAttribute("bgcolor",canvas.getThemeColor('basebgcolorizer'));
+        this._bg.setAttribute("visibility","visible");
+    </handler>
+    
+    <handler name="onmouseup">
+        this._bg.setAttribute("visibility","hidden");
+    </handler>
+    
+    <view name="_bg" visibility="hidden" opacity="0.7"
+          width="14" height="14" x="1" y="1" bgcolor="0xFFFFFF" />
+          
+    <view name="_itemRsc" resource="$once{ parent.iconRessourceName }" />
+    
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/presenter/library.lzx b/WebContent/src/base/components/presenter/library.lzx
new file mode 100644
index 0000000..9472fa8
--- /dev/null
+++ b/WebContent/src/base/components/presenter/library.lzx
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<include href="resources/" />
+	<include href="boxInitEffect.lzx" />
+	<include href="guiPresenter.lzx" />
+
+    
+</library>
diff --git a/WebContent/src/base/components/presenter/resources/close_mo.png b/WebContent/src/base/components/presenter/resources/close_mo.png
new file mode 100644
index 0000000..b9d0f94
--- /dev/null
+++ b/WebContent/src/base/components/presenter/resources/close_mo.png
Binary files differ
diff --git a/WebContent/src/base/components/presenter/resources/close_up.png b/WebContent/src/base/components/presenter/resources/close_up.png
new file mode 100644
index 0000000..79d3b72
--- /dev/null
+++ b/WebContent/src/base/components/presenter/resources/close_up.png
Binary files differ
diff --git a/WebContent/src/base/components/presenter/resources/library.lzx b/WebContent/src/base/components/presenter/resources/library.lzx
new file mode 100644
index 0000000..994ca29
--- /dev/null
+++ b/WebContent/src/base/components/presenter/resources/library.lzx
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<!-- APL Author sebawagner -->
+	<resource src="presenter_thumb.swf" name="presenter_thumb_rsc" />
+    <!-- APL Author sebawagner -->
+    <resource name="btn_presenter_minimize" src="minimize_up.png" />
+    <!-- APL Author sebawagner -->
+    <resource name="btn_presenter_maximize" src="maximize_up.png" />
+    <!-- APL Author sebawagner -->
+    <resource name="btn_presenter_maximize2" src="maximize2_up.png" />
+    
+    <!-- APL Author sebawagner -->
+    <resource name="btn_presenter_close2" src="close_up.png" />
+    
+    <!-- APL Author sebawagner -->
+	<resource name="btn_presenter_close">
+        <frame src="close_up.png" />
+        <frame src="close_mo.png" />
+        <frame src="close_up.png" />
+    </resource> 
+    
+</library>
diff --git a/WebContent/src/base/components/presenter/resources/maximize2_up.png b/WebContent/src/base/components/presenter/resources/maximize2_up.png
new file mode 100644
index 0000000..1edd23b
--- /dev/null
+++ b/WebContent/src/base/components/presenter/resources/maximize2_up.png
Binary files differ
diff --git a/WebContent/src/base/components/presenter/resources/maximize_up.png b/WebContent/src/base/components/presenter/resources/maximize_up.png
new file mode 100644
index 0000000..778c05c
--- /dev/null
+++ b/WebContent/src/base/components/presenter/resources/maximize_up.png
Binary files differ
diff --git a/WebContent/src/base/components/presenter/resources/minimize_up.png b/WebContent/src/base/components/presenter/resources/minimize_up.png
new file mode 100644
index 0000000..1637298
--- /dev/null
+++ b/WebContent/src/base/components/presenter/resources/minimize_up.png
Binary files differ
diff --git a/WebContent/src/base/components/presenter/resources/presenter_thumb.swf b/WebContent/src/base/components/presenter/resources/presenter_thumb.swf
new file mode 100644
index 0000000..84f8b96
--- /dev/null
+++ b/WebContent/src/base/components/presenter/resources/presenter_thumb.swf
Binary files differ
diff --git a/WebContent/src/base/components/resetCombobox.lzx b/WebContent/src/base/components/resetCombobox.lzx
new file mode 100644
index 0000000..ae0a855
--- /dev/null
+++ b/WebContent/src/base/components/resetCombobox.lzx
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+    <class name="resetCombobox" extends="combobox" editable="false" shownitems="12"
+    	   style="componentStyle" itemclassname="labeldTextListItem">
+    
+    	<method name="getNumItems">
+    		return this.cblist.getNumItems();
+    	</method>
+    
+        <method name="reset" >
+            <![CDATA[
+                var currentCount = this.cblist.getNumItems();
+                for (var i = 0; i < currentCount; i++)
+                    this.removeItemAt(0);
+                this.clearSelection();
+            ]]>
+        </method>
+    
+    </class>
+        
+</library>
diff --git a/WebContent/src/base/components/scrollbars/library.lzx b/WebContent/src/base/components/scrollbars/library.lzx
new file mode 100644
index 0000000..9ee00e1
--- /dev/null
+++ b/WebContent/src/base/components/scrollbars/library.lzx
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+	<!-- APL Author sebawagner -->

+	<resource name="omscrolltrack_y_rsc" src="resources/y_scrolltrack.swf" />

+	

+	<!-- APL Author sebawagner -->

+    <resource name="omscrollbar_ythumbmiddle_rsc" src="resources/scrollthumb_y_mid.swf" />

+    <!-- APL Author sebawagner -->

+    <resource name="omscrollbar_ythumbtop_rsc" src="resources/scrollthumb_y_top.swf" />

+    <!-- APL Author sebawagner -->

+    <resource name="omscrollbar_ythumbbottom_rsc" src="resources/scrollthumb_y_bottom.swf" />

+    <!-- APL Author sebawagner -->

+   	<resource name="omscrolltrack_x_rsc" src="resources/x_scrolltrack.swf" />

+	<!-- APL Author sebawagner -->

+    <resource name="omscrollbar_xthumbmiddle_rsc" src="resources/scrollthumb_x_mid.swf" />

+    <!-- APL Author sebawagner -->

+    <resource name="omscrollbar_xthumbleft_rsc" src="resources/scrollthumb_x_left.swf" />

+    <!-- APL Author sebawagner -->

+    <resource name="omscrollbar_xthumbright_rsc" src="resources/scrollthumb_x_right.swf" />

+

+	<include href="om_vscrollbar.lzx"/>

+	<include href="om_hscrollbar.lzx"/>

+

+</library>

diff --git a/WebContent/src/base/components/scrollbars/om_hscrollbar.lzx b/WebContent/src/base/components/scrollbars/om_hscrollbar.lzx
new file mode 100644
index 0000000..036fed6
--- /dev/null
+++ b/WebContent/src/base/components/scrollbars/om_hscrollbar.lzx
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="om_hscrollbar" extends="basescrollbar" styleable="false"
+    axis="x">
+
+    <!--- @keywords private -->
+    <attribute name="height" value="10"/>
+    
+    <!--- @keywords private -->
+    <method name="_showEnabled">
+        <![CDATA[
+        if (!_enabled) {
+        	//this.scrolltrack.thumb.setAttribute('height', 0);
+            this.scrolltrack.thumb.setAttribute('visibility', 'hidden');
+        } else {
+            this.scrolltrack.thumb.setAttribute('visibility', 'visible');
+        }
+        super._showEnabled();
+    ]]>
+    </method>
+
+	<view name="rightarrow" width="0" />
+    <view name="scrolltrack">
+    	 <basescrolltrack name="left"
+           resource="omscrolltrack_x_rsc" stretches="width">
+         	<attribute name="height" value="${parent.height}"/>
+            <attribute name="width" value="${parent.width}"/>  
+         </basescrolltrack>
+         <basescrollthumb name="thumb" x="1">
+             <view resource="omscrollbar_xthumbleft_rsc"/>
+             <view resource="omscrollbar_xthumbmiddle_rsc" stretches="both"/>
+             <view resource="omscrollbar_xthumbright_rsc"/>
+             <stableborderlayout axis="x"/>
+        </basescrollthumb>
+    </view>
+
+	<view height="0" name="leftarrow" />
+    <stableborderlayout axis="x"/>
+
+</class>
+</library>
diff --git a/WebContent/src/base/components/scrollbars/om_vscrollbar.lzx b/WebContent/src/base/components/scrollbars/om_vscrollbar.lzx
new file mode 100644
index 0000000..98623ed
--- /dev/null
+++ b/WebContent/src/base/components/scrollbars/om_vscrollbar.lzx
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="om_vscrollbar" extends="basescrollbar" styleable="false"
+    axis="y">
+
+    <!--- @keywords private -->
+    <attribute name="width" value="10"/>
+    
+    <!--- @keywords private -->
+    <method name="_showEnabled">
+        <![CDATA[
+        if (!_enabled) {
+        	//this.scrolltrack.thumb.setAttribute('height', 0);
+            this.scrolltrack.thumb.setAttribute('visibility', 'hidden');
+        } else {
+            this.scrolltrack.thumb.setAttribute('visibility', 'visible');
+        }
+        super._showEnabled();
+    ]]>
+    </method>
+
+	<view name="toparrow" height="0" />
+    <view name="scrolltrack">
+    	 <basescrolltrack name="top"
+           resource="omscrolltrack_y_rsc" stretches="height">
+         	<attribute name="height" value="${parent.height}"/>
+            <attribute name="width" value="${parent.width}"/>  
+         </basescrolltrack>
+         <basescrollthumb name="thumb" x="1">
+             <view resource="omscrollbar_ythumbtop_rsc"/>
+             <view resource="omscrollbar_ythumbmiddle_rsc" stretches="both"/>
+             <view resource="omscrollbar_ythumbbottom_rsc"/>
+             <stableborderlayout axis="y"/>
+        </basescrollthumb>
+    </view>
+
+	<view height="0" name="bottomarrow" />
+    <stableborderlayout axis="y"/>
+
+</class>
+</library>
diff --git a/WebContent/src/base/components/scrollbars/resources/scrollthumb_x_left.swf b/WebContent/src/base/components/scrollbars/resources/scrollthumb_x_left.swf
new file mode 100644
index 0000000..fd9411b
--- /dev/null
+++ b/WebContent/src/base/components/scrollbars/resources/scrollthumb_x_left.swf
Binary files differ
diff --git a/WebContent/src/base/components/scrollbars/resources/scrollthumb_x_mid.swf b/WebContent/src/base/components/scrollbars/resources/scrollthumb_x_mid.swf
new file mode 100644
index 0000000..fff3744
--- /dev/null
+++ b/WebContent/src/base/components/scrollbars/resources/scrollthumb_x_mid.swf
Binary files differ
diff --git a/WebContent/src/base/components/scrollbars/resources/scrollthumb_x_right.swf b/WebContent/src/base/components/scrollbars/resources/scrollthumb_x_right.swf
new file mode 100644
index 0000000..74ea64a
--- /dev/null
+++ b/WebContent/src/base/components/scrollbars/resources/scrollthumb_x_right.swf
Binary files differ
diff --git a/WebContent/src/base/components/scrollbars/resources/scrollthumb_y_bottom.swf b/WebContent/src/base/components/scrollbars/resources/scrollthumb_y_bottom.swf
new file mode 100644
index 0000000..09a370b
--- /dev/null
+++ b/WebContent/src/base/components/scrollbars/resources/scrollthumb_y_bottom.swf
Binary files differ
diff --git a/WebContent/src/base/components/scrollbars/resources/scrollthumb_y_mid.swf b/WebContent/src/base/components/scrollbars/resources/scrollthumb_y_mid.swf
new file mode 100644
index 0000000..af9015f
--- /dev/null
+++ b/WebContent/src/base/components/scrollbars/resources/scrollthumb_y_mid.swf
Binary files differ
diff --git a/WebContent/src/base/components/scrollbars/resources/scrollthumb_y_top.swf b/WebContent/src/base/components/scrollbars/resources/scrollthumb_y_top.swf
new file mode 100644
index 0000000..c701740
--- /dev/null
+++ b/WebContent/src/base/components/scrollbars/resources/scrollthumb_y_top.swf
Binary files differ
diff --git a/WebContent/src/base/components/scrollbars/resources/x_scrolltrack.swf b/WebContent/src/base/components/scrollbars/resources/x_scrolltrack.swf
new file mode 100644
index 0000000..937dd8d
--- /dev/null
+++ b/WebContent/src/base/components/scrollbars/resources/x_scrolltrack.swf
Binary files differ
diff --git a/WebContent/src/base/components/scrollbars/resources/y_scrolltrack.swf b/WebContent/src/base/components/scrollbars/resources/y_scrolltrack.swf
new file mode 100644
index 0000000..b05b88a
--- /dev/null
+++ b/WebContent/src/base/components/scrollbars/resources/y_scrolltrack.swf
Binary files differ
diff --git a/WebContent/src/base/components/scrollbars/scrollbar_yresources.lzx b/WebContent/src/base/components/scrollbars/scrollbar_yresources.lzx
new file mode 100644
index 0000000..bc08ffe
--- /dev/null
+++ b/WebContent/src/base/components/scrollbars/scrollbar_yresources.lzx
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+

+    

+</library>
\ No newline at end of file
diff --git a/WebContent/src/base/components/simplevaluelist/library.lzx b/WebContent/src/base/components/simplevaluelist/library.lzx
new file mode 100644
index 0000000..b9ca8fe
--- /dev/null
+++ b/WebContent/src/base/components/simplevaluelist/library.lzx
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<include href="simpleValueList.lzx" />
+    <include href="recordValueList.lzx" />
+
+</library>
diff --git a/WebContent/src/base/components/simplevaluelist/recordValueList.lzx b/WebContent/src/base/components/simplevaluelist/recordValueList.lzx
new file mode 100644
index 0000000..95cacae
--- /dev/null
+++ b/WebContent/src/base/components/simplevaluelist/recordValueList.lzx
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="recordListItem" extends="baseContentListItem" height="24">
+    
+    <attribute name="valueName" type="string" value="" />
+    <attribute name="value" type="number" value="0" />
+    
+	<turnOverTextItem text="$once{ parent.valueName }" width="226" />    
+    
+	<view width="60" height="24"
+		onclick="new lz.confirmDeleteWindow(canvas.main_content._content.inner,{refObj:this});" >		
+		<method name="confirmDelete">
+            this.parent.parent.parent.parent.parent.itemToDelete=this;
+			this.parent.parent.parent.parent.parent.deleteItem.sendEvent(parent);
+		</method>
+		<image stretches="both" width="16" height="16" 
+			 src="$once{ canvas.getThemeImage('button_cancel_rsc') }"
+			 align="center" y="4" />
+		<labelTooltip labelid="274" />
+	</view>	
+</class>
+	
+	
+<class name="recordValueList" extends="turnOverList" >
+    
+    <attribute name="itemToDelete" value="null" />
+    
+    <event name="deleteItem" />
+    
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/simplevaluelist/simpleValueList.lzx b/WebContent/src/base/components/simplevaluelist/simpleValueList.lzx
new file mode 100644
index 0000000..2807c56
--- /dev/null
+++ b/WebContent/src/base/components/simplevaluelist/simpleValueList.lzx
@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="simpleListItem" extends="view"
+	bgcolor="0xFFFFFF" onmouseup="this.parent.parent.parent.parent.toggleSelected(this)" >
+	<handler name="onmouseover">
+		<![CDATA[
+			if (this.selected) this.setAttribute('bgcolor',canvas.getThemeColor('baseMouseOvercolorizer'))
+			else this.setAttribute('bgcolor',canvas.getThemeColor('baseMouseOvercolorizer'));
+		]]>
+	</handler>
+	<handler name="onmouseout">
+		<![CDATA[
+			if (this.selected)  this.setAttribute('bgcolor',canvas.getThemeColor('baseMouseOvercolorizer'))
+			else this.setAttribute('bgcolor',0xFFFFFF);
+		]]>
+	</handler>
+	<attribute name="selected" value="false" type="boolean"/>
+	<attribute name="value" value="null" />
+	<attribute name="text" value="" type="string" />
+	<text text="$once{ parent.text }" resize="true" fontsize="11" />
+</class>
+	
+	
+<class name="simpleValueList" extends="view" bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }" >
+	
+	<attribute name="_selected" value="null" />
+	
+	<attribute name="multiselect" value="false" type="boolean" />
+    
+    <attribute name="itemclassname" type="string" value="simpleListItem" />
+	
+	<event name="onselect" />
+	
+	<method name="toggleSelected" args="obj">
+		<![CDATA[
+			var downkeys = lz.Keys.downKeysArray;
+			
+			//Select the Obj
+			
+			
+			if(downkeys.length==1 && downkeys[0]==17 && this.multiselect){
+				if (this._selected == null) this._selected = new Array();
+				if (this._checkForAlreadySelected(obj)) {
+					obj.setAttribute('selected',false);
+					obj.setAttribute('bgcolor',0xFFFFFF);
+				} else {
+					obj.setAttribute('selected',true);
+					this._selected.push(obj);
+				}				
+			} else if (downkeys.length==0 && this.multiselect){
+				if (this._selected == null) this._selected = new Array();
+				this._deslectAll();
+				obj.setAttribute('selected',true);
+				this._selected.push(obj);	
+			} else if (!this.multiselect) {
+				if(this._selected!=null) {
+					this._selected.setAttribute('selected',false);
+					this._selected.setAttribute('bgcolor',0xFFFFFF);
+				}
+				this._selected = obj;
+			    this._selected.setAttribute('selected',true);
+			} else {
+				Debug.warning("not handled",this);
+			}
+			
+		]]>
+	</method>
+	
+	<method name="_checkForAlreadySelected" args="obj">
+		<![CDATA[
+			for (var i=0;i<this._selected.length;i++){
+				if (this._selected[i]==obj) {
+					this._selected.splice(i,1);
+					return true;
+				}
+			}
+			return false;
+		]]>
+	</method>
+	
+	<method name="_deslectAll">
+		<![CDATA[
+			for (var i=0;i<this._selected.length;i++){
+				this._selected[i].setAttribute('selected',false);
+				this._selected[i].setAttribute('bgcolor',0xFFFFFF);
+			}
+			this._selected=new Array();
+		]]>
+	</method>
+	
+    <method name="addItem" args="txt,value">
+    	new lz[this.itemclassname](this.content.content.inn,{text:txt,value:value,width:this.width});
+    </method>
+	
+    <method name="removeItem" args="value">
+		<![CDATA[
+			if (this._selected!=null){
+				if (this.multiselect){
+					for (var i=0;i<this._selected.length;i++){
+						if (this._selected[i].value==value){
+							this._selected.splice(i,1);
+						}
+					}
+				} else {
+					if (this._selected.value==value) this._selected==null;
+				}
+			}
+			for (var i=0;i<this.content.content.inn.subviews.length;i++){
+				if(this.content.content.inn.subviews[i].value==value){
+					this.content.content.inn.subviews[i].destroy();
+				}
+			}
+		]]>
+    </method>
+	<method name="checkValue" args="value">
+		<![CDATA[
+			var t = this.getAllObjects();
+			if (t!=null){
+				for (var i=0;i<t.length;i++){
+					if (t[i].value==value) return true;
+				}
+			}
+			return false;
+		]]>
+	</method>		
+		
+    <method name="getAllItems">
+    	<![CDATA[
+    	var a = new Array();
+    	for (var i=0;i<this.content.content.inn.subviews.length;i++){
+    		//Debug.write("t: ",this.content.content.inn.subviews[i].value);
+    		a.push(Number(this.content.content.inn.subviews[i].value));
+    	}
+    	return a;
+    	]]>
+    </method>
+	<method name="getAllObjects">
+    	<![CDATA[
+    	var a = new Array();
+    	for (var i=0;i<this.content.content.inn.subviews.length;i++){
+    		a.push(this.content.content.inn.subviews[i]);
+    	}
+    	return a;
+    	]]>
+	</method>
+    <method name="clearList">
+    	for (var eg in this.content.content.inn.subviews){
+    		this.content.content.inn.subviews[eg].destroy();
+    	}
+    </method>
+    <view name="content" width="$once{ parent.width-2 }" height="$once{ parent.height-2 }"
+    	x="1" y="1" clip="true" bgcolor="0xFFFFFF">
+    	<view name="content" >
+    		<view name="inn" layout="axis:y;spacing:2" />
+    	</view>
+    	<om_vscrollbar />
+    </view>
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/tableCombobox.lzx b/WebContent/src/base/components/tableCombobox.lzx
new file mode 100644
index 0000000..d8d8fb6
--- /dev/null
+++ b/WebContent/src/base/components/tableCombobox.lzx
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="tableCombobox" extends="combobox" editable="false" fontsize="10" style="componentStyle">
+    <attribute name="initvalue" type="string" />
+    <attribute name="tvalue" type="string" />
+    <attribute name="sendchange" value="false" type="boolean" />
+    <handler name="oninit">
+        this.parent.parent.parent.parent.loadModsCombo(this);
+        this.selectItem(this.initvalue);
+    </handler>
+    <handler name="onblur">
+        if (this.sendchange) this.parent.sendchange(this,tvalue,this.getValue());
+    </handler>
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/tableListItem.lzx b/WebContent/src/base/components/tableListItem.lzx
new file mode 100644
index 0000000..fffa1ad
--- /dev/null
+++ b/WebContent/src/base/components/tableListItem.lzx
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="tableListItem" extends="view"
+    bgcolor="${ ( this.isaltered ) ? red : white }" height="22">
+    
+    <handler name="oninit">
+        this.changeholder = new Array();
+    </handler>
+
+    <attribute name="isdatarecord" value="true" type="boolean" />
+    
+    <attribute name="changeholder" value="null" />
+    <attribute name="isaltered" value="false" type="boolean" />
+
+    <method name="sendchange" args="obj,oldv,newv">
+        ////Debug.write("check Update");
+        var t = false;
+        for (var eg in this.changeholder){
+            if (this.changeholder[eg][0]==obj){
+                t = true;
+                this.changeholder[eg][1]=oldv;
+                this.changeholder[eg][2]=newv;
+                break;
+            }
+        }
+        if (!t) this.changeholder.push(new Array(obj,oldv,newv));
+        
+        t = false;
+        for (var eg in this.changeholder){
+            if (this.changeholder[eg][1]!=this.changeholder[eg][2]){
+                t = true;
+                break;
+            }
+        }
+        
+        this.setAttribute('isaltered',t);
+        this._doupdate.setValue(t);
+        this.parent.parent.parent.sendchange(this);
+        
+    </method>
+    <simplelayout axis="x" spacing="3" inset="2" />
+
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/text/borderedInputtext.lzx b/WebContent/src/base/components/text/borderedInputtext.lzx
new file mode 100644
index 0000000..4e74e26
--- /dev/null
+++ b/WebContent/src/base/components/text/borderedInputtext.lzx
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="borderedInputtext" extends="view" bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }" >
+    <!---@keywords private -->
+	<attribute name="width" value="200" type="size" />
+	<!---@keywords private -->
+	<attribute name="height" value="18" type="size" />
+    <attribute name="tvalue" type="string" value="default"/>
+    <attribute name="sendchange" value="false" type="boolean" />
+    <attribute name="multiline" value="false"/>
+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+	<method name="setLabelId" args="_labelid" >
+		this.labelid = _labelid;
+		this.setAttribute('text',canvas.getLabelName(this.labelid));
+	</method>
+    <attribute name="checkIsNumber" value="false" type="boolean" />
+    <attribute name="checkIsDouble" value="false" type="boolean" />
+    <attribute name="editable" value="true" setter="setEditable(editable)" type="boolean" />
+    <method name="setEditable" args="value">
+        this.editable=value;
+    	this.field.setEnabled(value);
+    </method>
+    <!---@keywords private -->
+    <event name="onblur" />
+    <method name="setItemEnabled" args="value">
+    	this.field.setEnabled(value);
+    </method>    
+    <attribute name="maxlength" value="null" type="number"/>         	
+	<attribute name="text" type="string" value="" />
+		<!-- -->
+  <inputtext name="field" fontsize="10" text="${ this.parent.text }" x="1" y="1" bgcolor="0xFFFFFF" 
+  	multiline="$once{parent.multiline}" width="${ this.parent.width-2 }" height="${ this.parent.height-2 }" >
+  		<attribute name="preText" value="" type="string" />
+  		<handler name="onfocus">
+  			this.preText = this.getText();
+  		</handler>
+      	<handler name="onblur">
+      		var t = this.getText();
+      		if (this.parent.checkIsNumber){
+      			if ( isNaN( Number(t) ) ){
+      				if (this.parent.checkIsDouble){
+      					t="0.00";
+      				} else {
+      					t=this.preText;
+      				}
+      				this.setAttribute('text',t);
+      			}
+      		}
+            if (this.parent.sendchange) this.parent.parent.sendchange(this.parent,this.parent.tvalue,this.getText());
+            if (this.parent.onblur) this.parent.onblur.sendEvent();
+      	</handler>
+        <handler name="oninit">
+            this.setEnabled(this.parent.editable);
+        </handler>       	           
+	</inputtext>	   
+	 
+	<method name="getText">
+		return this.field.getText();
+	</method>
+	<method name="setText" args="txt">
+		this.setAttribute('text',txt);
+	</method> 		
+</class>
+
+<class name="borderedMultiInputtext" extends="view">
+    <!---@keywords private -->
+	<attribute name="width" value="200" type="size" />
+    <!---@keywords private -->	
+	<attribute name="height" value="18" type="size" />
+    <attribute name="tvalue" type="string" value="default"/>
+    <attribute name="sendchange" value="false" type="boolean" />
+    <attribute name="multiline" value="false"/>
+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+	<method name="setLabelId" args="_labelid" >
+		this.labelid = _labelid;
+		this.setAttribute('text',canvas.getLabelName(this.labelid));
+	</method>
+    <attribute name="checkIsNumber" value="false" type="boolean" />
+    <attribute name="checkIsDouble" value="false" type="boolean" />
+    <attribute name="editable" value="true" setter="setEditable(editable)" type="boolean" />
+    <method name="setEditable" args="value">
+        this.editable=value;
+    	this.field.setEnabled(value);
+    </method>
+    <method name="setItemEnabled" args="value">
+    	this.field.setEnabled(value);
+    </method>    
+    <attribute name="maxlength" value="null" type="number"/>       
+    <!---@keywords private -->  	
+	<attribute name="bgcolor" value="0xA3B2CC" type="color" />
+	<attribute name="text" type="string" value="" />
+		<!-- -->
+  <inputtext name="field" fontsize="10" text="${ this.parent.text }" x="1" y="1" bgcolor="0xFFFFFF" 
+  	multiline="true" width="${ this.parent.width-2 }" height="${ this.parent.height-2 }" >
+      	<handler name="onblur">
+      		var t = this.getText();
+      		if (this.parent.checkIsNumber){
+      			if ( isNaN( Number(t) ) ){
+      				if (this.parent.checkIsDouble){
+      					t="0.00";
+      				} else {
+      					t="0";
+      				}
+      				this.setAttribute('text',t);
+      			}
+      		}
+            if (this.parent.sendchange) this.parent.parent.sendchange(this.parent,this.parent.tvalue,this.getText());
+      	</handler>   
+        <handler name="oninit">
+            this.setEnabled(this.parent.editable);
+            if(this.multiline) this.init();
+        </handler>       	           
+        <method name="init">
+            super.init();        
+        </method>
+	</inputtext>	   
+	 
+	<method name="getText">
+		return this.field.getText();
+	</method>
+	<method name="setText" args="txt">
+		this.setAttribute('text',txt);
+	</method> 		
+</class>
+
+<class name="borderedPasswordText" extends="view">
+    <!---@keywords private -->
+	<attribute name="width" value="200" type="size" />
+	<!---@keywords private -->
+	<attribute name="height" value="18" type="size" />
+    <attribute name="tvalue" type="string" value="default"/>
+    <attribute name="sendchange" value="false" type="boolean" />
+    <attribute name="multiline" value="false"/>
+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+	<method name="setLabelId" args="_labelid" >
+		this.labelid = _labelid;
+		this.setAttribute('text',canvas.getLabelName(this.labelid));
+	</method>
+    <attribute name="checkIsNumber" value="false" type="boolean" />
+    <attribute name="checkIsDouble" value="false" type="boolean" />
+    <attribute name="editable" value="true" setter="setEditable(editable)" type="boolean" />
+    <method name="setEditable" args="value">
+        this.editable=value;
+    	this.field.setEnabled(value);
+    </method>
+    <method name="setItemEnabled" args="value">
+    	this.field.setEnabled(value);
+    </method>    
+    <attribute name="maxlength" value="null" type="number"/>  
+    <!---@keywords private -->       	
+	<attribute name="bgcolor" value="0xA3B2CC" type="color" />
+	<!---@keywords private -->
+	<attribute name="text" type="string" value="" />
+		<!-- -->
+  <inputtext name="field" fontsize="10" text="${ this.parent.text }" x="1" y="1" bgcolor="0xFFFFFF" 
+  	multiline="$once{parent.multiline}" password="true" width="${ this.parent.width-2 }" height="${ this.parent.height-2 }" >
+      	<handler name="onblur">
+      		var t = this.getText();
+      		if (this.parent.checkIsNumber){
+      			if ( isNaN( Number(t) ) ){
+      				if (this.parent.checkIsDouble){
+      					t="0.00";
+      				} else {
+      					t="0";
+      				}
+      				this.setAttribute('text',t);
+      			}
+      		}
+            if (this.parent.sendchange) this.parent.parent.sendchange(this.parent,this.parent.tvalue,this.getText());
+      	</handler>   
+        <handler name="oninit">
+            this.setEnabled(this.parent.editable);
+        </handler>       	           
+	</inputtext>	   
+	 
+	<method name="getText">
+		return this.field.getText();
+	</method>
+	<method name="setText" args="txt">
+		this.setAttribute('text',txt);
+	</method> 		
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/text/customEdittext.lzx b/WebContent/src/base/components/text/customEdittext.lzx
new file mode 100644
index 0000000..b8e1ce6
--- /dev/null
+++ b/WebContent/src/base/components/text/customEdittext.lzx
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="customEdittext" extends="inputtext" bgcolor="0xFFFFFF" fontsize="11" height="20" >
+	
+	<view name="v_border" height="1"       bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }" width="$once{parent.width}" />
+    <view name="h_border" width="1"  y="1" bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }" height="$once{parent.height -1}" />
+	
+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+	
+	<attribute name="isvalidInput" value="true" type="boolean" />
+	<attribute name="regexpType" value="none" type="string" />
+	<attribute name="regexpLabelid" type="number" />
+	<attribute name="preText" value="" type="string" />
+    <attribute name="emailRegEx" type="string" value=""/>
+	
+	<event name="onafterCheck" />
+
+	<handler name="onfocus" args="f">
+    	this.preText = this.getText();
+    </handler>
+    
+    <handler name="oninit">
+    <![CDATA[
+    	emailRegEx = "^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{1,3})$";
+    	//this.field.setAttribute("bgcolor",0xFFFFFF);
+    ]]>
+    </handler>
+    
+    <handler name="ontext" args="txt">
+    	<![CDATA[
+            
+    	    //
+    	   
+    	    if (System.capabilities.os.indexOf('Linux')==-1) { 
+                return; 
+	        }
+	        
+	        //if ($debug) Debug.write("System.capabilities.os -- START ",System.capabilities.os,txt);
+	        
+	        if (txt == null || txt.length == 0) {
+	        	return;
+	        }
+	        
+	        
+	        //UTF8 character remappings
+            var cp1252 = new Object();
+            cp1252[0x20ac]=0x80;
+            cp1252[0x201a]=0x82;
+            cp1252[0x0192]=0x83;
+            cp1252[0x201e]=0x84;
+            cp1252[0x2026]=0x85;
+            cp1252[0x2020]=0x86;
+            cp1252[0x2021]=0x87;
+            cp1252[0x02c6]=0x88;
+            cp1252[0x2030]=0x89;
+            cp1252[0x0160]=0x8a;
+            cp1252[0x2039]=0x8b;
+            cp1252[0x0152]=0x8c;
+            cp1252[0x017d]=0x8e;
+            cp1252[0x2018]=0x91;
+            cp1252[0x2019]=0x92;
+            cp1252[0x201c]=0x93;
+            cp1252[0x201d]=0x94;
+            cp1252[0x2022]=0x95;
+            cp1252[0x2013]=0x96;
+            cp1252[0x2014]=0x97;
+            cp1252[0x02dc]=0x98;
+            cp1252[0x2122]=0x99;
+            cp1252[0x0161]=0x9a;
+            cp1252[0x203a]=0x9b;
+            cp1252[0x0153]=0x9c;
+            cp1252[0x017e]=0x9e;
+            cp1252[0x0178]=0x9f;
+    	
+            
+            var s=eval(Selection.getFocus()); 
+            var t=txt;
+                    
+            var i=Selection.getCaretIndex()-1; 
+            
+            //if ($debug) Debug.write("i",i,Selection.getCaretIndex());
+            
+            var d=i;
+            
+            //if ($debug) Debug.write("DO WHILE -1- ",t.charCodeAt(i),cp1252[t.charCodeAt(i)],i,0x80,0xBF);
+            
+            while (((t.charCodeAt(i)>=0x80 && t.charCodeAt(i)<=0xBF) || (cp1252[t.charCodeAt(i)])) && i>0) {
+            	
+            	//if ($debug) Debug.write("DO WHILE -2- ",t.charCodeAt(i),cp1252[t.charCodeAt(i)],i);
+            	
+                if (cp1252[t.charCodeAt(i)]) {
+                    t=t.substr(0,i)+String.fromCharCode(cp1252[t.charCodeAt(i)])+t.substr(i+1);
+                }
+                i--;
+            }
+            if (i==d) { 
+            	//if ($debug) Debug.write("i == d NOTHING TO REPLACE!");
+                return; 
+            }
+        
+            var u=0;
+            
+            if (t.charCodeAt(i)>=0xC2 && t.charCodeAt(i)<=0xDF && d-i==1) {
+                 // two-byte sequence
+                u= (t.charCodeAt(i+1) & 0x3F)       +
+                  ((t.charCodeAt(i  ) & 3   ) << 6) +
+                  ((t.charCodeAt(i  ) & 0x1C) << 6);
+            } else if (t.charCodeAt(i)>=0xE0 && t.charCodeAt(i)<=0xEF && d-i==2) {
+                // three-byte sequence
+                // (Flash Player doesn't cope with any more obscure Unicode)
+                u= (t.charCodeAt(i+2) & 0x3F)        +
+                  ((t.charCodeAt(i+1) & 3   ) << 6 ) +
+                  ((t.charCodeAt(i+1) & 0x3C) << 6 ) +
+                  ((t.charCodeAt(i  ) & 0x0F) << 12);
+            }
+        
+            if (u!=0) {
+            	//if ($debug) Debug.write("Replace String -1- ",txt,u,"Replace With ",String.fromCharCode(u));
+            	
+                this.setAttribute("text",t.slice(0,i)+String.fromCharCode(u)+t.slice(d+1));
+                
+                //if ($debug) Debug.write("Replace String -2- ",txt,u);
+                
+                this.setAttribute("text",this.text.split(String.fromCharCode(0x03)).join(''));
+            }
+            
+            //if ($debug) Debug.write("-- END ",this.text);
+            
+    	]]>
+    </handler>
+    
+    <attribute name="callDelegate" value="null" />
+    <attribute name="regExpCheckId" value="-1" />
+	
+	<handler name="onblur">
+		<![CDATA[
+			if (this.regexpType!="none"){
+			
+				//if ($debug) Debug.write("onblur");
+				//if ($debug) Debug.write("onblur check ",this.regexpType);		
+				var fieldValue = this.getText();
+				if (this.regexpType=="email") {
+					//var regExpV = ".+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)";
+					var regExpV = this.emailRegEx;
+					//var regExpV = "^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
+					this.regexpLabelid = 519;
+				} else if (this.regexpType=="date"){
+					var regExpV = "(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\\d\\d";
+					this.regexpLabelid = 518;
+				} else if (this.regexpType=="float"){
+					var regExpV = "[0-9]*\\.[0-9]*";
+					this.regexpLabelid = 520;
+				} else if (this.regexpType=="phone"){
+					var regExpV = "\\+[0-9]+ [0-9]+ [0-9\\-]+";
+					this.regexpLabelid = 522;
+				} else if (this.regexpType=="number"){
+					var regExpV = "[0-9]*";
+					this.regexpLabelid = 521;
+				} else if (this.regexpType=="time"){
+					var regExpV = "([01][0-9]|2[0-3]):[0-5][0-9]";
+					this.regexpLabelid = 523;
+				} else {
+					if ($debug) Debug.warn("Unkown Regexp Type: ",this.regexpType);
+				}
+				//if ($debug) Debug.write("regExpV: ",regExpV);
+		  	    var fieldValue = this.getText();
+		  	    
+		  	    this.regExpCheckId = canvas.doRegExpCheck(this.getText(),regExpV);
+		  	    
+		  	    if(this.callDelegate == null) {
+		  	    	this.callDelegate = new LzDelegate( this, "checkRegExpResult" );
+		  	    }
+		
+				lz.Timer.resetTimer( this.callDelegate, 50 );
+			}
+		]]>
+	</handler>
+	
+	<method name="checkRegExpResult" args="item">
+		var tResult = canvas.checkRegExpResult(this.regExpCheckId);
+     	if ($debug) Debug.write("callback",tResult);
+     
+		if(tResult == undefined || tResult == null) {
+			lz.Timer.resetTimer( this.callDelegate, 50 );
+		} else {
+			if(!tResult){
+                if ($debug) Debug.warn("FALSE: regexperror");
+              	disablesTooltips(new lz.regexptip(canvas,{x:this.getAttributeRelative('x',canvas)+12,
+              					y:this.getAttributeRelative('y',canvas)+26,
+              					regexptext:canvas.getLabelName(this.regexpLabelid)}));
+              	this.usePreContent();
+              	this.setAttribute('isvalidInput',false);
+            } else {
+              	if(!this.isvalidInput){
+                	disablesTooltips(null);
+              	}
+              	this.setAttribute('isvalidInput',true);
+            }
+            if ($debug) Debug.write("-- Complete --");
+            this.onafterCheck.sendEvent();
+		}
+     </method>
+	
+    
+    <method name="setLabelId" args="_labelid" >
+        this.labelid = _labelid;
+        this.setAttribute('text',canvas.getLabelName(this.labelid));
+    </method>
+    
+  	<method name="usePreContent">
+  		this.setAttribute('text',this.preText);
+  	</method>    
+    
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/text/customInputtext.lzx b/WebContent/src/base/components/text/customInputtext.lzx
new file mode 100644
index 0000000..4301a29
--- /dev/null
+++ b/WebContent/src/base/components/text/customInputtext.lzx
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="customInputtext" extends="inputtext">
+	  
+	 <!-- lost selection workaroud -->
+	 <attribute name="selPosition" type="integer"/>
+	 <attribute name="selSize" type="integer"/>
+	 <!-- this method should be called before the component lost focus -->
+	 <method name="saveselection">
+	 	this.selPosition=getSelectionPosition();
+	 	this.selSize=getSelectionSize();
+	 </method>
+	  
+	 <handler name="onfocus">
+	 
+	 	if ($debug) Debug.write("customInputtext onFocus : ", canvas.isrtl);
+	 		
+	 
+		 if(canvas.isrtl == 'true'){
+	 		if ($debug) Debug.write("customInputtext onFocus : RTL is set");
+	 		this.setAttribute('textalign', 'right');
+        }
+        else{
+        	if ($debug) Debug.write("customInputtext onFocus : RTL is NOT set");
+      		this.setAttribute('textalign', 'left');
+        
+        }
+	 </handler>	  
+	  
+	 <handler name="ontext" args="txt">
+        <![CDATA[
+            
+            //
+           
+            if (System.capabilities.os.indexOf('Linux')==-1) { 
+                return; 
+            }
+            
+            //if ($debug) Debug.write("System.capabilities.os -- START ",System.capabilities.os,txt);
+            
+            if (txt == null || txt.length == 0) {
+                return;
+            }
+            
+            
+            //UTF8 character remappings
+            var cp1252 = new Object();
+            cp1252[0x20ac]=0x80;
+            cp1252[0x201a]=0x82;
+            cp1252[0x0192]=0x83;
+            cp1252[0x201e]=0x84;
+            cp1252[0x2026]=0x85;
+            cp1252[0x2020]=0x86;
+            cp1252[0x2021]=0x87;
+            cp1252[0x02c6]=0x88;
+            cp1252[0x2030]=0x89;
+            cp1252[0x0160]=0x8a;
+            cp1252[0x2039]=0x8b;
+            cp1252[0x0152]=0x8c;
+            cp1252[0x017d]=0x8e;
+            cp1252[0x2018]=0x91;
+            cp1252[0x2019]=0x92;
+            cp1252[0x201c]=0x93;
+            cp1252[0x201d]=0x94;
+            cp1252[0x2022]=0x95;
+            cp1252[0x2013]=0x96;
+            cp1252[0x2014]=0x97;
+            cp1252[0x02dc]=0x98;
+            cp1252[0x2122]=0x99;
+            cp1252[0x0161]=0x9a;
+            cp1252[0x203a]=0x9b;
+            cp1252[0x0153]=0x9c;
+            cp1252[0x017e]=0x9e;
+            cp1252[0x0178]=0x9f;
+        
+            
+            var s=eval(Selection.getFocus()); 
+            var t=txt;
+                    
+            var i=Selection.getCaretIndex()-1; 
+            
+            //if ($debug) Debug.write("i",i,Selection.getCaretIndex());
+            
+            var d=i;
+            
+            //if ($debug) Debug.write("DO WHILE -1- ",t.charCodeAt(i),cp1252[t.charCodeAt(i)],i,0x80,0xBF);
+            
+            while (((t.charCodeAt(i)>=0x80 && t.charCodeAt(i)<=0xBF) || (cp1252[t.charCodeAt(i)])) && i>0) {
+                
+                //if ($debug) Debug.write("DO WHILE -2- ",t.charCodeAt(i),cp1252[t.charCodeAt(i)],i);
+                
+                if (cp1252[t.charCodeAt(i)]) {
+                    t=t.substr(0,i)+String.fromCharCode(cp1252[t.charCodeAt(i)])+t.substr(i+1);
+                }
+                i--;
+            }
+            if (i==d) { 
+                //if ($debug) Debug.write("i == d NOTHING TO REPLACE!");
+                return; 
+            }
+        
+            var u=0;
+            
+            if (t.charCodeAt(i)>=0xC2 && t.charCodeAt(i)<=0xDF && d-i==1) {
+                 // two-byte sequence
+                u= (t.charCodeAt(i+1) & 0x3F)       +
+                  ((t.charCodeAt(i  ) & 3   ) << 6) +
+                  ((t.charCodeAt(i  ) & 0x1C) << 6);
+            } else if (t.charCodeAt(i)>=0xE0 && t.charCodeAt(i)<=0xEF && d-i==2) {
+                // three-byte sequence
+                // (Flash Player doesn't cope with any more obscure Unicode)
+                u= (t.charCodeAt(i+2) & 0x3F)        +
+                  ((t.charCodeAt(i+1) & 3   ) << 6 ) +
+                  ((t.charCodeAt(i+1) & 0x3C) << 6 ) +
+                  ((t.charCodeAt(i  ) & 0x0F) << 12);
+            }
+        
+            if (u!=0) {
+                //if ($debug) Debug.write("Replace String -1- ",txt,u,"Replace With ",String.fromCharCode(u));
+                
+                this.setAttribute("text",t.slice(0,i)+String.fromCharCode(u)+t.slice(d+1));
+                
+                //if ($debug) Debug.write("Replace String -2- ",txt,u);
+                
+                this.setAttribute("text",this.text.split(String.fromCharCode(0x03)).join(''));
+            }
+            
+            //if ($debug) Debug.write("-- END ",this.text);
+            
+        ]]>
+    </handler>
+  	
+    
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/text/customscrollEdittext.lzx b/WebContent/src/base/components/text/customscrollEdittext.lzx
new file mode 100644
index 0000000..626e9ad
--- /dev/null
+++ b/WebContent/src/base/components/text/customscrollEdittext.lzx
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+   
+<include href="incubator/scrolledittext.lzx" />
+
+<class name="customScrollEdittext" extends="view" >
+	
+	<attribute name="text" value="" type="string" />
+	
+	<event name="ontextChange" />
+
+    <attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+    <method name="setLabelId" args="_labelid" >
+        this.labelid = _labelid;
+        this.setAttribtue('text',canvas.getLabelName(this.labelid));
+    </method>
+    
+    <method name="getText">
+    	return this._cbtext.getText();
+    </method>
+    
+    <view name="_face" bgcolor="0xFFFFFFF" 
+          width="$once{parent.width}" 
+          height="$once{parent.height}" />
+          
+    <view name="v_border" height="1" bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }" width="$once{parent.width}" />
+    <view name="h_border" width="1"  y="1" bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }" height="$once{parent.height -1}" />
+          
+    <scrolledittext name="_cbtext" width="$once{ parent.width-1 }" x="1" y="1" bgcolor="0xFFFFFF"  styleable="false"
+		height="$once{ parent.height-1 }" text="${ parent.text }" vscrollbarclassname="om_vscrollbar"
+		multiline="true" fontsize="11" />
+    
+     
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/text/labelText.lzx b/WebContent/src/base/components/text/labelText.lzx
new file mode 100644
index 0000000..6387078
--- /dev/null
+++ b/WebContent/src/base/components/text/labelText.lzx
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="labelText" extends="text" resize="true" fontsize="11" >
+
+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+	<method name="setLabelId" args="_labelid" >
+		this.labelid = _labelid;
+		this.setAttribute('text',canvas.getLabelName(this.labelid));
+	</method>
+	
+</class>
+
+
+<class name="labelTextWidthTooltip" extends="text" resize="true" 
+	   onmouseover="" onmouseout=""
+	   fontsize="11" >
+	
+	<attribute name="labelLabelid" type="number" value="-1" />
+
+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+	<method name="setLabelId" args="_labelid" >
+		this.labelid = _labelid;
+		this.setAttribute('text',canvas.getLabelName(this.labelid));
+	</method>
+	
+	<labelTooltip name="_labelTooltip" labelid="$once{ parent.labelLabelid }" />
+	
+</class>
+
+<class name="labeldTextListItem" extends="textlistitem">
+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+    <method name="setLabelId" args="_labelid" >
+        this.labelid = _labelid;
+        this.setAttribute('text',canvas.getLabelName(this.labelid));
+    </method>
+    <labelTooltip initByDataPathparent="true" />
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/text/labelTooltip.lzx b/WebContent/src/base/components/text/labelTooltip.lzx
new file mode 100644
index 0000000..b143407
--- /dev/null
+++ b/WebContent/src/base/components/text/labelTooltip.lzx
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="labelTooltip" extends="view" visible="false" >
+
+	<attribute name="inittwice" value="false" type="boolean" />
+    <attribute name="multiline" value="false" type="boolean" />
+    <attribute name="ismenubuttonlabel" value="false" type="boolean" />
+    <attribute name="initByDataPathparent" value="false" type="boolean" />
+    
+    <attribute name="holder" value="null" />
+    
+    <event name="setContent" />
+        
+    <handler name="onmouseover" reference="this.parent">
+    	<![CDATA[
+            this.setContent.sendEvent();
+	    	if (this.ismenubuttonlabel){
+	    		this.parent.setLabel();
+	    	}
+	    	if (this.inittwice){
+	    		this.setAttribute('text',canvas.getLabelName(this.labelid));
+	    	}
+	    	if (this.initByDataPathparent){
+                this.setAttribute('text',parent.text);
+            }
+	        var xVal = canvas.getMouse('x');
+	        var yVal = canvas.getMouse('y');
+			////Debug.write("mytext: ",this.mytext);
+			if (this.multiline && this.text.length!=0){
+				this.holder = new lz.xmlCrmTooltipMulti(canvas,{text:this.text,holder:this});
+			} else if (this.text.length!=0){
+				this.holder = new lz.xmlCrmTooltip(canvas,{text:this.text,holder:this});
+			}
+	        if (xVal<canvas.width/2){
+	            xVal += 0;
+	        } else {
+	            xVal -= this.holder.width-14;
+	        }
+	        if (yVal<canvas.height/2){
+	            yVal += 24;
+	        } else {
+	            yVal -= 24;
+	        }
+	        if (this.holder!=null)  {
+	           this.holder.setAttribute('x',xVal);
+	           this.holder.setAttribute('y',yVal);
+            }
+            canvas.registerToolTip(this);
+        ]]>        
+    </handler>
+    <handler name="onmouseout" reference="this.parent">
+        this.cleanHolder();
+    </handler>
+    <handler name="onmouseup" reference="this.parent">
+        this.cleanHolder();
+    </handler>
+    <handler name="onclick" reference="this.parent">
+        this.cleanHolder();
+    </handler>   
+    <method name="cleanHolder">
+        if (this.holder!=null) {
+            this.holder.destroy();
+            this.holder = null; 
+            canvas.clearToolTip();
+        }
+    </method> 
+    <attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+    <method name="setLabelId" args="_labelid" >
+        this.labelid = _labelid;
+        this.setAttribute('text',canvas.getLabelName(this.labelid));
+    </method>
+    <attribute name="text" value="" type="string" />
+</class>
+
+<class name="xmlCrmTooltip" extends="view" bgcolor="0x000000" 
+    width="${ this._text.width+2 }" height="${ this._text.height+2 }" >
+    <attribute name="text" value="" type="string" />
+    <attribute name="holder" value="null" />
+    <text x="1" y="1" text="${ parent.text }" resize="true" 
+        fontsize="10" name="_text" bgcolor="0xFFFFFF" />
+    <handler name="onmouseout">
+        this.destroy();
+    </handler>
+    <handler name="oninit">
+        this.setShadow();
+    </handler>
+    <method name="setShadow" >
+        <![CDATA[
+        if (this.isinited){
+            this.normalMC = this.getDisplayObject();
+           	this.displacementMap = new flash.filters.DropShadowFilter();
+            this.normalMC.filters = [this.displacementMap];
+        }
+        ]]>              
+    </method> 
+</class>
+
+<class name="xmlCrmTooltipMulti" extends="view" bgcolor="0x000000" 
+    width="${ this._text.width+2 }" height="${ this._text.height+2 }" >
+    <attribute name="text" value="" type="string" />
+    <attribute name="holder" value="null" />
+    <text x="1" y="1" text="${ parent.text }" resize="true" 
+        fontsize="10" name="_text" bgcolor="0xFFFFFF" multiline="true" />
+    <handler name="oninit">
+        this.setShadow();
+    </handler>
+    <method name="setShadow" >
+        <![CDATA[
+        if (this.isinited){
+            this.normalMC = this.getDisplayObject();
+           	this.displacementMap = new flash.filters.DropShadowFilter();
+            this.normalMC.filters = [this.displacementMap];
+        }
+        ]]>              
+    </method>	    
+    <handler name="onmouseout">
+        this.destroy();
+    </handler>
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/text/library.lzx b/WebContent/src/base/components/text/library.lzx
new file mode 100644
index 0000000..facbdab
--- /dev/null
+++ b/WebContent/src/base/components/text/library.lzx
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+	<include href="borderedInputtext.lzx" />
+	<include href="labelText.lzx" />
+	<include href="labelTooltip.lzx" />
+    <include href="customEdittext.lzx" />
+    <include href="customscrollEdittext.lzx" />
+    <include href="customInputtext.lzx" />
+
+</library>
diff --git a/WebContent/src/base/components/turnoverlist/baseContentListItem.lzx b/WebContent/src/base/components/turnoverlist/baseContentListItem.lzx
new file mode 100644
index 0000000..799bed3
--- /dev/null
+++ b/WebContent/src/base/components/turnoverlist/baseContentListItem.lzx
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<!--- base class for the item list views-->
+<class name="baseContentListItem" extends="view" 
+	   layout="axis:x;spacing:0" bgcolor="0xFFFFFF" >
+	
+	<attribute name="isselected" value="false" type="boolean"/>
+	
+	<method name="select">
+		this.isselected = true;
+		this.setAttribute('bgcolor',canvas.getThemeColor('baseMouseOvercolorizer'));
+	</method>
+	
+	<method name="deselect">
+		this.isselected = false;
+		this.setAttribute('bgcolor',0xFFFFFF);
+	</method>
+	
+	<method name="doDeselect">
+		this.deselect();
+	</method>
+	
+	<handler name="onmouseover">
+		if (!this.isselected) {
+			this.setAttribute('bgcolor',canvas.getThemeColor('baseMouseOvercolorizer'));
+		}
+	</handler>
+	
+	<handler name="onmouseout">
+		if (!this.isselected) {
+			this.setAttribute('bgcolor',0xFFFFFF);
+		} else {
+			this.setAttribute('bgcolor',canvas.getThemeColor('baseMouseOvercolorizer'));
+		}
+	</handler>
+	
+	<handler name="onclick">
+		if ($debug) Debug.write("baseContentListItem -- onclick");
+		this.parent.parent.parent.parent.onclickedItem.sendEvent(this);
+	</handler>
+    
+    <handler name="ondblclick">
+		this.parent.parent.parent.parent.ondblclickedItem.sendEvent(this);
+	</handler>
+	
+    <attribute name="obj" value="null" />
+
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/turnoverlist/library.lzx b/WebContent/src/base/components/turnoverlist/library.lzx
new file mode 100644
index 0000000..32abb86
--- /dev/null
+++ b/WebContent/src/base/components/turnoverlist/library.lzx
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+    <!-- APL Author sebawagner -->
+    <resource name="width_gripper_rsc" src="resources/width_change_cursor.swf" />
+
+	<!-- APL Author sebawagner -->
+	<resource name="sort_asc_turnover_rsc" src="resources/sort_asc.png" />
+	
+	<!-- APL Author sebawagner -->
+	<resource name="sort_desc_turnover_rsc" src="resources/sort_desc.png" />
+	    
+	<include href="turnOverList.lzx" />
+    <include href="simpleTurnOverList.lzx" />
+	<include href="turnOverListHeaderItem.lzx" />
+	<include href="turnOverTextItem.lzx" />
+    <include href="baseContentListItem.lzx" />
+
+</library>
diff --git a/WebContent/src/base/components/turnoverlist/resources/sort_asc.png b/WebContent/src/base/components/turnoverlist/resources/sort_asc.png
new file mode 100644
index 0000000..a5c9c8b
--- /dev/null
+++ b/WebContent/src/base/components/turnoverlist/resources/sort_asc.png
Binary files differ
diff --git a/WebContent/src/base/components/turnoverlist/resources/sort_desc.png b/WebContent/src/base/components/turnoverlist/resources/sort_desc.png
new file mode 100644
index 0000000..acdb200
--- /dev/null
+++ b/WebContent/src/base/components/turnoverlist/resources/sort_desc.png
Binary files differ
diff --git a/WebContent/src/base/components/turnoverlist/resources/width_change_cursor.fla b/WebContent/src/base/components/turnoverlist/resources/width_change_cursor.fla
new file mode 100644
index 0000000..7205efb
--- /dev/null
+++ b/WebContent/src/base/components/turnoverlist/resources/width_change_cursor.fla
Binary files differ
diff --git a/WebContent/src/base/components/turnoverlist/resources/width_change_cursor.swf b/WebContent/src/base/components/turnoverlist/resources/width_change_cursor.swf
new file mode 100644
index 0000000..39e0f00
--- /dev/null
+++ b/WebContent/src/base/components/turnoverlist/resources/width_change_cursor.swf
Binary files differ
diff --git a/WebContent/src/base/components/turnoverlist/simpleTurnOverList.lzx b/WebContent/src/base/components/turnoverlist/simpleTurnOverList.lzx
new file mode 100644
index 0000000..fd021fe
--- /dev/null
+++ b/WebContent/src/base/components/turnoverlist/simpleTurnOverList.lzx
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<!--- common simpleTurnOverList view class. -->
+<class name="simpleTurnOverList" extends="view">
+    
+    <attribute name="_selected" value="null"/>
+    
+    <event name="ondblclickedItem" />
+
+    <handler name="onclickedItem" args="itemObj">
+        if (this._selected != null) {
+            this._selected.deselect();
+        }
+        this._selected = itemObj;
+        this._selected.select();
+    </handler>
+	
+	<attribute name="mainBgColor" value="0xEEF0EB" />
+    
+	<method name="addHeaderItem" args="labelid,width" >
+		new lz.turnOverListHeaderItem(this._innerlisthead._inn,{labelid:labelid,width:width,subviewsid:this._innerlisthead._inn.subviews.length});
+	</method>
+    
+    <method name="sendInitialWidthUpdate">
+        for (var eg in this._innerlisthead._inn.subviews) {
+            this._innerlisthead._inn.subviews[eg].onwidth.sendEvent(this._innerlisthead._inn.subviews[eg].width);
+        }
+    </method> 
+	
+	<method name="sendWidthUpdate" args="w,subviewsid" >
+		<![CDATA[
+		////Debug.write(w,subviewsid,this._innerlist._inn);
+		for (var i=0;i<this._innerlist._inn._inn.subviews.length;i++){
+			this._innerlist._inn._inn.subviews[i].subviews[subviewsid].setAttribute('width',w);
+		}
+		]]>
+	</method>
+    
+    <method name="initValues" args="numberOfRecords">
+        <![CDATA[
+            this._records.setAttribute('text',numberOfRecords + ' ' + canvas.getLabelName(272) );
+        ]]>
+    </method>
+	
+	<method name="clearList">
+        this._selected = null;
+		this._innerlist._inn._inn.destroy();
+		new lz.innerList(this._innerlist._inn,{name:'_inn'});
+	</method>
+    
+    <!-- =========  BgArea area  =========-->
+    <view width="$once{ parent.width }" bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }"
+          height="$once{ parent.height-20 }" x="0" y="20">
+        <view width="$once{ parent.width-2 }" bgcolor="$once{ parent.parent.mainBgColor }"
+          height="$once{ parent.height-2 }" x="1" y="1"></view>
+    </view>
+    
+	<!-- =========  Control area  =========-->
+
+    <labelText name="_records" x="2" resize="true" />
+    
+    
+	<!-- =========  List Header area  =========-->
+
+	<view name="_innerlisthead" height="20" x="1" width="$once{ parent.width-2 }"
+         y="22" clip="true">
+        <view name="_inn" x="${ parent.parent._innerlist._inn.x }" layout="axis:x;spacing:0" />
+    </view> 
+	
+	<!-- =========  List Contents area  =========-->
+	<view name="_innerlist" height="$once{ parent.height-43 }" x="1" width="$once{ parent.width-2 }"
+		y="42" clip="true" bgcolor="$once{ parent.mainBgColor }">
+		<view name="_inn" >
+			<innerList name="_inn" />
+		</view>
+		<om_vscrollbar />
+		<om_hscrollbar />
+	</view>
+
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/turnoverlist/turnOverList.lzx b/WebContent/src/base/components/turnoverlist/turnOverList.lzx
new file mode 100644
index 0000000..821b20f
--- /dev/null
+++ b/WebContent/src/base/components/turnoverlist/turnOverList.lzx
@@ -0,0 +1,283 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<!--- private class for turnOverList only. -->
+<class name="innerList" layout="axis:y;spacing:1" />
+	
+<!--- common TurnOverList view class. -->
+<class name="turnOverList" extends="view" >
+
+	<attribute name="start" value="0" type="number" />
+	<attribute name="step" value="100" type="number" />
+	<attribute name="orderby" value="firstname" type="string" />
+	<attribute name="asc" value="true" type="boolean" />
+	<attribute name="records" value="0" type="number" />
+	
+	<attribute name="_selected" value="null"/>
+    <attribute name="currentSelectedOrder" value="null" />
+    <attribute name="mainBgColor" value="0xEEF0EB" />
+	
+	<event name="oncallnext" />
+	<event name="oncallpre" />
+	<event name="ondblclickedItem" />
+    <event name="onUpdateOrder" />
+	
+	<method name="callfirst">
+		this.start = 0;
+		this.oncallnext.sendEvent();
+	</method>
+    
+    <method name="clearSelection">
+        if (this._selected != null) {
+            this._selected.deselect();
+        }
+    </method>
+	
+	<handler name="onclickedItem" args="itemObj">
+		if (this._selected != null) {
+			this._selected.deselect();
+		}
+		this._selected = itemObj;
+		this._selected.select();
+	</handler>
+	
+	<method name="calllast">
+		var newMaxPages = Math.floor(this.records/this.step);
+        if ($debug) Debug.write("calllast 1 ",newMaxPages);
+        this.start = newMaxPages*this.step;
+        if ($debug) Debug.write("calllast 2 ",this.start);
+        if (this.start == this.records) {
+            this.start = this.records-this.step;
+        }
+        if ($debug) Debug.write("calllast 3 ",this.start);
+        if ($debug) Debug.write("calllast 4 ",this.records);
+        this.oncallnext.sendEvent();
+        this.onload.sendEvent();
+        
+		//this.start = this.records-this.step;
+		//this.oncallnext.sendEvent();
+	</method>
+	
+	<method name="callnext">
+		this._next1.setAttribute('enabled',false);
+		this._pre2.setAttribute('enabled',false);
+		if (this.records>(this.start+this.step)){
+			this.start+=this.step;
+		}
+		this.oncallnext.sendEvent();
+	</method>
+	
+	<method name="callpre">
+		this._next1.setAttribute('enabled',false);
+		this._pre2.setAttribute('enabled',false);
+		if (this.start>0){
+			this.start-=this.step;
+		}
+		this.oncallpre.sendEvent();
+	</method>
+	
+	<method name="initValues" args="rec">
+		<![CDATA[
+            this.records = rec;
+            if (this.records>(this.start+this.step)){
+                this._next1.setAttribute('enabled',true);
+            } else {
+                this._next1.setAttribute('enabled',false);
+            }
+            if (this.start>0){
+                this._pre2.setAttribute('enabled',true);
+            } else {
+                this._pre2.setAttribute('enabled',false);
+            }
+            this._records.setAttribute('text',this.start + ' - ' +(this.start+this.step) + ' ' + canvas.getLabelName(272) + ' ' + this.records);
+		]]>
+	</method>
+	
+	<method name="addHeaderItem" args="labelid,width" >
+		new lz.turnOverListHeaderItem(this._innerlisthead._inn,{labelid:labelid,width:width,subviewsid:this._innerlisthead._inn.subviews.length});
+	</method>
+	
+	<method name="addHeaderItemOrdered" args="labelid,width,orderBy,asc,isSelected" >
+        new lz.turnOverListHeaderItemOrdered(this._innerlisthead._inn,{
+                labelid:labelid,width:width,
+                orderBy:orderBy,asc:asc,isSelected:isSelected,
+                subviewsid:this._innerlisthead._inn.subviews.length
+            });
+    </method> 
+    
+    <method name="updateOrder" args="itemRef">
+        <![CDATA[
+            //only do that if the previous orderBy != new orderby
+            //if (this.currentSelectedOrder == null || 
+            //        this.currentSelectedOrder.orderBy != itemRef.orderBy){
+            if (itemRef.isSelected) {
+                itemRef.asc = !itemRef.asc;
+            } else {
+                itemRef.isSelected = true;
+            }
+            if (itemRef.asc) {
+                itemRef._sortUp.setAttribute('visibility','hidden');
+                itemRef._sortDown.setAttribute('visibility','visible');
+            } else {
+                itemRef._sortUp.setAttribute('visibility','visible');
+                itemRef._sortDown.setAttribute('visibility','hidden'); 
+            }
+            
+            //do not perform search on initial Selection
+            var isInitSelect = false;
+            if (this.currentSelectedOrder != null) {
+                if (this.currentSelectedOrder.orderBy != itemRef.orderBy) {
+                    this.currentSelectedOrder.isSelected = false;
+                    this.currentSelectedOrder._sortUp.setAttribute('visibility','hidden');
+                    this.currentSelectedOrder._sortDown.setAttribute('visibility','hidden'); 
+                }
+            } else {
+                isInitSelect = true;
+            }
+            this.currentSelectedOrder = itemRef;
+            
+            if ($debug) Debug.write("updateOrder: ",itemRef,itemRef.orderBy,itemRef.asc,isInitSelect);
+            this.setAttribute('orderby',itemRef.orderBy);
+            this.setAttribute('asc',itemRef.asc);
+            
+            if (!isInitSelect){
+                this.onUpdateOrder.sendEvent(itemRef);
+            }
+            //}
+        ]]>
+    </method>
+    
+    <method name="sendInitialWidthUpdate">
+        for (var eg in this._innerlisthead._inn.subviews) {
+            this._innerlisthead._inn.subviews[eg].onwidth.sendEvent(this._innerlisthead._inn.subviews[eg].width);
+        }
+    </method> 
+	
+	<method name="sendWidthUpdate" args="w,subviewsid" >
+		<![CDATA[
+		////Debug.write(w,subviewsid,this._innerlist._inn);
+		for (var i=0;i<this._innerlist._inn._inn.subviews.length;i++){
+			this._innerlist._inn._inn.subviews[i].subviews[subviewsid].setAttribute('width',w);
+		}
+		]]>
+	</method>
+	
+	<method name="clearList">
+		this._selected = null;
+		this._innerlist._inn._inn.destroy();
+		new lz.innerList(this._innerlist._inn,{name:'_inn'});
+	</method>
+    
+
+
+	<!-- =========  Control area  =========-->
+
+    <labelText name="_records" x="2" resize="true" />
+    
+    <!-- 368:goto first -->
+    <blueButton name="_pre1" y="0" x="$once{ parent.width-188 }" resourceItem="step_back_two_arrow" 
+					x_insetResource="2" y_insetResource="2" width="20" height="20"
+					width_insetResource="16" height_insetResource="16" >
+        <handler name="onclick">
+            parent.callfirst();
+        </handler>
+        <labelTooltip labelid="368" />
+    </blueButton>
+
+    <!-- 369:goto previous -->
+    <blueButton name="_pre2" y="0" x="$once{ parent.width-166 }" resourceItem="step_back_arrow" 
+					x_insetResource="2" y_insetResource="2" width="20" height="20"
+					width_insetResource="16" height_insetResource="16">
+        <handler name="onclick">
+            parent.callpre();
+        </handler>
+        <labelTooltip labelid="369" />
+    </blueButton>
+
+    <!-- combobox to decide the step number -->
+    <resetCombobox name="languages" width="96" x="$once{ parent.width-144 }" 
+			  editable="false" height="20" >
+		<attribute name="sendEventToReload" value="false" type="boolean" />
+        <textlistitem value="10" text="10" />
+        <textlistitem value="25" text="25" />
+        <textlistitem value="50" text="50" />
+        <textlistitem value="75" text="75" />
+        <textlistitem value="100" text="100" />
+        <textlistitem value="200" text="200" />
+        <handler name="onselect">
+        	if (this.sendEventToReload){ 
+        		parent.setAttribute('step',Number(this.getValue()));
+        	}
+        </handler>
+        <handler name="oninit">
+        	this.selectItem(String(parent.step));
+        	this.sendEventToReload = true;
+        </handler>
+	</resetCombobox>
+	
+	<!-- 370:goto next -->
+	<blueButton name="_next1" y="0" x="$once{ parent.width-44 }" resourceItem="step_fwd_arrow" 
+                x_insetResource="2" y_insetResource="2" width="20" height="20"
+				width_insetResource="16" height_insetResource="16">
+        <handler name="onclick">
+            parent.callnext();
+        </handler>
+        <labelTooltip labelid="370" />
+    </blueButton>
+
+    <!-- 371:goto last -->
+    <blueButton name="_next2" y="0" x="$once{ parent.width-21 }" resourceItem="step_fwd_two_arrow" 
+				x_insetResource="2" y_insetResource="2" width="20" height="20"
+				width_insetResource="16" height_insetResource="16">
+        <handler name="onclick">
+            parent.calllast();
+        </handler>
+        <labelTooltip labelid="371" />
+    </blueButton>
+	
+    <!-- =========  BgArea area  =========-->
+    <view width="$once{ parent.width }" bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }"
+          height="${ parent.height-20 }" x="0" y="20">
+        <view width="$once{ parent.width-2 }" bgcolor="$once{ parent.parent.mainBgColor }"
+          height="${ parent.height-2 }" x="1" y="1"></view>
+    </view>
+          
+	<!-- =========  List Header area  =========-->
+
+	<view name="_innerlisthead" height="20" x="1" width="$once{ parent.width-2 }" 
+		 y="22" clip="true">
+		<view name="_inn" x="${ parent.parent._innerlist._inn.x }" layout="axis:x;spacing:0" />
+	</view>	
+	
+	<!-- =========  List Contents area  =========-->
+	<view name="_innerlist" height="${ parent.height-43 }" x="1" width="$once{ parent.width-2 }"
+		y="42" clip="true" bgcolor="$once{ parent.mainBgColor }">
+		<view name="_inn" >
+			<innerList name="_inn" />
+		</view>
+		<om_vscrollbar />
+		<om_hscrollbar />
+	</view>
+
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/turnoverlist/turnOverListHeaderItem.lzx b/WebContent/src/base/components/turnoverlist/turnOverListHeaderItem.lzx
new file mode 100644
index 0000000..a349f4e
--- /dev/null
+++ b/WebContent/src/base/components/turnoverlist/turnOverListHeaderItem.lzx
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="turnOverListHeaderItem" extends="simpleLabelButton" clip="true" fontstyle="plain">
+
+	<attribute name="subviewsid" value="0" type="number" />
+
+	<view height="$once{ parent.height-2 }" width="5" align="right"
+		cursor="width_gripper_rsc" 
+		onmousedown="parent.rs.apply()" onmouseup="parent.rs.remove()" />
+		
+	<handler name="onwidth" args="w">
+		this.parent.parent.parent.sendWidthUpdate(w,this.subviewsid);
+	</handler>
+	<resizestate name="rs" height="20" />
+</class>
+
+<class name="turnOverListHeaderItemSimple" extends="simpleLabelButton" fontstyle="plain">
+	<attribute name="asc" value="false" type="boolean" />
+	<attribute name="pathOrder" value="" type="string" />
+	<handler name="onclick">
+		if (parent.preButton!=null){
+			parent.preButton._asc.setAttribute('visibility','hidden');
+			parent.preButton._desc.setAttribute('visibility','hidden');
+		}
+		if (!this.asc){
+			this._asc.setAttribute('visibility','hidden');
+			this._desc.setAttribute('visibility','visible');
+		} else {
+			this._asc.setAttribute('visibility','visible');
+			this._desc.setAttribute('visibility','hidden');		
+		}
+		parent.preButton = this;
+		parent.setNewSortOrder(this.pathOrder,this);
+	</handler>
+	<view name="_asc" x="$once{ parent.width-20 }" 
+		  visibility="hidden" resource="sort_asc_turnover_rsc" />
+	<view name="_desc" x="$once{ parent.width-20 }" 
+		  visibility="hidden" resource="sort_desc_turnover_rsc" />
+</class>
+
+<class name="basicturnoverlistheaderitem" fontsize="9"
+       extends="simpleLabelButton" clip="true">
+	
+</class>
+
+<class name="turnoverlistheaderitem" extends="basicturnoverlistheaderitem" >
+
+	<attribute name="subviewsid" value="0" type="number" />
+
+	<handler name="onwidth" args="w">
+		this.parent.parent.parent.sendWidthUpdate(w,this.subviewsid);
+	</handler>
+
+</class>
+
+<class name="turnoverlistheaderitemIcon" extends="basicturnoverlistheaderitem" >
+
+    <attribute name="subviewsid" value="0" type="number" />
+    <attribute name="toolTipLabelId" value="0" type="number" />
+    <attribute name="iconResource" value="" type="string" />
+
+    <handler name="onwidth" args="w">
+        this.parent.parent.parent.sendWidthUpdate(w,this.subviewsid);
+    </handler>
+    
+    <handler name="onclick" >
+        this.parent.parent.parent.sendHeaderClick.sendEvent(this);
+    </handler>
+    
+    <view align="center" valign="middle" 
+          resource="$once{ parent.iconResource }" />
+    
+    <labelTooltip labelid="$once{ parent.toolTipLabelId }" />
+    
+</class>
+
+<class name="turnoverlistheaderitemResize" extends="basicturnoverlistheaderitem" >
+
+	<attribute name="subviewsid" value="0" type="number" />
+
+    <attribute name="minwidth" value="2" type="number" />
+    <attribute name="minheight" value="10" type="number" />
+    
+	<view height="$once{ parent.height }" width="4" align="right" bgcolor="black"
+		cursor="width_gripper_rsc" opacity="0.01"
+		onmousedown="parent.rs.apply()" onmouseup="parent.rs.remove()" />
+
+	<handler name="onwidth" args="w">
+        //////if ($debug) //Debug.write("onwidth: ",w);
+		this.parent.parent.parent.sendWidthUpdate(w-1,this.subviewsid);
+	</handler>
+
+	<resizestatemin name="rs" height="20" />
+
+</class>
+
+<class name="turnoverlistheaderitemResizeWizzardRefresh" extends="basicturnoverlistheaderitem" >
+
+    <attribute name="subviewsid" value="0" type="number" />
+
+    <attribute name="minwidth" value="2" type="number" />
+    <attribute name="minheight" value="10" type="number" />
+    
+    <view height="$once{ parent.height }" width="4" align="right" bgcolor="black"
+        cursor="width_gripper_rsc" opacity="0.01"
+        onmousedown="parent.rs.apply()" onmouseup="parent.rs.remove()" />
+
+    <handler name="onwidth" args="w">
+        //////if ($debug) //Debug.write("onwidth: ",w);
+        this.parent.parent.parent.sendWidthUpdate(w-1,this.subviewsid);
+    </handler>
+    
+    <view name="refresh_geomComp" resource="refresh_geomComp" y="1" x="${ parent.width - 19 }"
+        onmouseover="" onmouseout="">
+        <handler name="onclick">
+           this.parent.parent.parent.parent.parent.updateGeomByValue();
+        </handler>
+        <labelTooltip labelid="62" />
+    </view>   
+
+    <resizestatemin name="rs" height="20" />
+
+</class>
+
+
+
+<class name="turnOverListHeaderItemOrdered" extends="turnoverlistheaderitemResize">
+
+    <attribute name="orderBy" value="" type="string" />
+    <attribute name="asc" value="true" type="boolean" />
+    <attribute name="isSelected" value="false" type="boolean" />
+    
+    <handler name="oninit">
+        if (this.isSelected) {
+            parent.parent.parent.updateOrder(this);
+        }
+    </handler>
+    
+    <handler name="onclick">
+        parent.parent.parent.updateOrder(this);
+    </handler>
+    
+    <image name="_sortUp" visibility="hidden" stretches="both" width="8" height="8" y="6"
+        x="${parent.width - 13 }" src="$once{ canvas.getThemeImage('sort_up_rsc') }" />
+    <image name="_sortDown" visibility="hidden" stretches="both" width="8" height="8" y="6"
+        x="${parent.width - 13 }" src="$once{ canvas.getThemeImage('sort_down_rsc') }" />
+
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/turnoverlist/turnOverTextItem.lzx b/WebContent/src/base/components/turnoverlist/turnOverTextItem.lzx
new file mode 100644
index 0000000..c758163
--- /dev/null
+++ b/WebContent/src/base/components/turnoverlist/turnOverTextItem.lzx
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="turnOverTextItem" extends="text" fontsize="11" resize="false">
+	<view height="$once{ parent.parent.height }" width="1" 
+        align="right" bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }" />
+</class>
+        
+</library>
diff --git a/WebContent/src/base/components/turnoverlistpaged/basePagingListItem.lzx b/WebContent/src/base/components/turnoverlistpaged/basePagingListItem.lzx
new file mode 100644
index 0000000..2d8b24b
--- /dev/null
+++ b/WebContent/src/base/components/turnoverlistpaged/basePagingListItem.lzx
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="basePagingListItem" extends="baseContentListItem" height="20"> 
+
+	<attribute name="itemId" value="0" type="number" />
+    
+</class>
+
+
+<class name="comoboxListItemNoHeaders" extends="basePagingListItem" >
+    
+    <attribute name="text" value="" type="string" />
+    
+    <text width="100" height="20" resize="false" fontsize="10"
+          text="${ parent.text }" />
+          
+    <labelTooltip text="${ parent.text }" />
+    
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/turnoverlistpaged/library.lzx b/WebContent/src/base/components/turnoverlistpaged/library.lzx
new file mode 100644
index 0000000..90f5920
--- /dev/null
+++ b/WebContent/src/base/components/turnoverlistpaged/library.lzx
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+    <include href="basePagingListItem.lzx" />
+    <include href="listPagedContent.lzx" />
+	<include href="turnOverListPaged.lzx" />
+    <include href="turnOverListOrderedPaged.lzx" />
+
+</library>
diff --git a/WebContent/src/base/components/turnoverlistpaged/listPagedContent.lzx b/WebContent/src/base/components/turnoverlistpaged/listPagedContent.lzx
new file mode 100644
index 0000000..dbafcb4
--- /dev/null
+++ b/WebContent/src/base/components/turnoverlistpaged/listPagedContent.lzx
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<!--- common TurnOverList view class. -->
+<class name="listPagedContent" extends="view" clip="true" >
+	
+	<attribute name="itemHeight" value="20" type="number"/>
+    
+    <attribute name="showHScrollbar" value="visible" type="string"/>
+    
+    <method name="initItemsBySubItemNo" args="itemName,noSubItems,subItemClassName"> 
+        this._inn.initItemsBySubItemNo(itemName,noSubItems,subItemClassName);
+    </method>    
+	
+    <view name="_inn" >
+        
+        <!-- calculates the additional items -->
+        <attribute name="itemsToShow" value="0" type="number" />
+        <attribute name="totalItemsInList" value="0" type="number" />
+        
+        <attribute name="currentLastItemInList" value="0" type="number" />
+        
+        <attribute name="itemHeight" value="$once{ parent.itemHeight }" type="number"/>
+        
+		<method name="initItems" args="itemName">
+	        <![CDATA[
+	            this.totalItemsInList = Math.round(parent.height/this.itemHeight);
+	            for (var i=0;i<this.totalItemsInList;i++){
+	                this.currentLastItemInList = i;
+	                new lz[itemName](this._inn,{y:i*this.itemHeight,itemId:i,clickable:false});
+	            }
+                
+                if ($debug) Debug.write("initItems -1- ",i,itemName,lz[itemName]);
+                if ($debug) Debug.write("initItems -2- ",this._inn.subviews.length);
+                if ($debug) Debug.write("initItems -3- ",totalItemsInList);
+                if ($debug) Debug.write("initItems -4- ",parent.height);
+                if ($debug) Debug.write("initItems -5- ",this.itemHeight);
+                
+                //canvas.currentDebugPageList = this;
+                
+	        ]]>
+	    </method>	
+	    
+	    <handler name="ony" args="y">
+	    	parent.parent.onMoveList.sendEvent(y);
+	    </handler> 
+        
+        <method name="initItemsBySubItemNo" args="itemName,noSubItems,subItemClassName">
+           <![CDATA[
+                this.totalItemsInList = Math.round(parent.height/this.itemHeight);
+                for (var i=0;i<this.totalItemsInList;i++){
+                    this.currentLastItemInList = i;
+                    var baseItem = new lz[itemName](this._inn,{y:i*this.itemHeight,itemId:i,clickable:false});
+                    
+                    for (var k=0;k<noSubItems;k++) {
+                        new lz[subItemClassName](baseItem);
+                    }
+                    
+                }
+            ]]>
+        </method>      
+        
+        <method name="resetItems">
+            <![CDATA[
+                for (var i=0;i<this._inn.subviews.length;i++) {
+                    this._inn.subviews[i].itemId = i;
+                    this.currentLastItemInList = i;
+                    this._inn.subviews[i].setAttribute("y",i*this.itemHeight);
+                }
+            ]]>
+        </method>
+        
+        <handler name="ony" args="y">
+            <![CDATA[
+                //if ($debug) Debug.write("ony ",y);
+                var items = Math.round(y/this.itemHeight);
+                //if ($debug) Debug.write("items ",items);
+                if (this.itemsToShow != items) {
+                    var deltaItem = itemsToShow - items;
+                    
+                    //if ($debug) Debug.write("deltaItem ",deltaItem);
+                    
+                    if (deltaItem > 0) {
+                        //Add new Items to the end
+                        for (var i=0;i<deltaItem;i++) {
+                            var item = this._inn.getUpmostItemInList();
+                            this.shiftToLast(item);
+                        }
+                    } else {
+                        //Add new Items to the beginning
+                        for (var i=0;i>deltaItem;i--) {
+                            var item = this._inn.getLastItemInList();
+                            this.shiftToFirst(item);
+                        }
+                    }
+                    
+                    this.itemsToShow = items;
+                }
+            ]]>
+        </handler>
+        
+        <method name="shiftToLast" args="item">
+            <![CDATA[
+                parent.parent.onNextScrollItem.sendEvent(item);
+                //if ($debug) Debug.write("shiftToLast ",item,item.itemId);
+                this.currentLastItemInList++;
+                item.setAttribute("y",this.currentLastItemInList*this.itemHeight);
+                //if ($debug) Debug.write("shiftToLast -1- ",item.y,this.currentLastItemInList);
+                //if ($debug) Debug.write("++ shiftToLast 4 ",item.y,this.currentLastItemInList);
+                item.itemId = this.currentLastItemInList;
+                parent.parent.onScrollItem.sendEvent(item);
+            ]]>
+        </method>
+        
+        <method name="shiftToFirst" args="item">
+            <![CDATA[
+                parent.parent.onNextScrollItem.sendEvent(item);
+                //if ($debug) Debug.write("shiftToFirst 1 ",item.itemId);
+                //if ($debug) Debug.write("shiftToFirst 2 ",item.y);
+                var newItem = this.currentLastItemInList-this.totalItemsInList;
+                //if ($debug) Debug.write("shiftToFirst 3 ",newItem);
+                item.setAttribute("y",newItem*this.itemHeight);
+                //if ($debug) Debug.write("-- shiftToFirst 4 ",item.y,newItem,this.currentLastItemInList);
+                item.itemId = newItem;
+                //if ($debug) Debug.write("shiftToFirst 5 ",item.itemId);
+                this.currentLastItemInList--;
+                parent.parent.onScrollItem.sendEvent(item);
+            ]]>
+        </method>
+            
+        <innerListPagingContent name="_inn" />
+        
+    </view>
+    <om_vscrollbar name="_scrollbar" stepsize="$once{ parent.itemHeight }" />
+    
+    
+    <om_hscrollbar visibility="$once{ parent.showHScrollbar }" />
+
+</class>
+
+<class name="innerListPagingContent" extends="view">
+    
+    <method name="getItemByPosition" args="yPos">
+        <![CDATA[
+            for (var i=0;i<this.subviews.length;i++) {
+                if (this.subviews[i].y == yPos){
+                    return this.subviews[i];
+                }
+            }
+        ]]>
+    </method>
+    
+    <method name="getUpmostItemInList">
+        <![CDATA[
+            var item = this.subviews[0];
+            
+            //if ($debug) Debug.write("getUpmostItemInList ",this.subviews.length);
+            
+            for (var i=0;i<this.subviews.length;i++) {
+                if (this.subviews[i].itemId < item.itemId){
+                    item = this.subviews[i];
+                    //break;
+                }
+            }
+            
+            //if ($debug) Debug.write("getUpmostItemInList ",item);
+            
+            return item;
+        ]]>
+    </method>
+    
+    <method name="getLastItemInList">
+        <![CDATA[
+            var item = this.subviews[0];
+            for (var i=0;i<this.subviews.length;i++) {
+                if (this.subviews[i].itemId > item.itemId){
+                    item = this.subviews[i];
+                    //break;
+                }
+            }
+            return item;
+        ]]>
+    </method>
+    
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/turnoverlistpaged/turnOverListOrderedPaged.lzx b/WebContent/src/base/components/turnoverlistpaged/turnOverListOrderedPaged.lzx
new file mode 100644
index 0000000..d4db2a6
--- /dev/null
+++ b/WebContent/src/base/components/turnoverlistpaged/turnOverListOrderedPaged.lzx
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+
+
+<!--- common TurnOverList view class. -->
+<class name="turnOverListOrderedPaged" extends="turnOverListPaged">
+    
+    <attribute name="currentSelectedOrder" value="null" />
+    
+    <event name="onUpdateOrder" />
+    
+    <method name="updateOrder" args="itemRef">
+        <![CDATA[
+	        //only do that if the previous orderBy != new orderby
+	        //if (this.currentSelectedOrder == null || 
+            //        this.currentSelectedOrder.orderBy != itemRef.orderBy){
+	        if (itemRef.isSelected) {
+	            itemRef.asc = !itemRef.asc;
+	        } else {
+	            itemRef.isSelected = true;
+	        }
+	        if (itemRef.asc) {
+	            itemRef._sortUp.setAttribute('visibility','hidden');
+	            itemRef._sortDown.setAttribute('visibility','visible');
+	        } else {
+	            itemRef._sortUp.setAttribute('visibility','visible');
+	            itemRef._sortDown.setAttribute('visibility','hidden'); 
+	        }
+	        
+	        //do not perform search on initial Selection
+	        var isInitSelect = false;
+	        if (this.currentSelectedOrder != null) {
+                if (this.currentSelectedOrder.orderBy != itemRef.orderBy) {
+		            this.currentSelectedOrder.isSelected = false;
+		            this.currentSelectedOrder._sortUp.setAttribute('visibility','hidden');
+		            this.currentSelectedOrder._sortDown.setAttribute('visibility','hidden'); 
+                }
+	        } else {
+	            isInitSelect = true;
+	        }
+	        this.currentSelectedOrder = itemRef;
+	        
+	        if ($debug) Debug.write("updateOrder: ",itemRef,itemRef.orderBy,itemRef.asc,isInitSelect);
+	        this.setAttribute('orderby',itemRef.orderBy);
+	        this.setAttribute('asc',itemRef.asc);
+	        
+	        if (!isInitSelect){
+            	this.onUpdateOrder.sendEvent(itemRef);
+            }
+	        //}
+        ]]>
+    </method>
+
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/turnoverlistpaged/turnOverListPaged.lzx b/WebContent/src/base/components/turnoverlistpaged/turnOverListPaged.lzx
new file mode 100644
index 0000000..b10550d
--- /dev/null
+++ b/WebContent/src/base/components/turnoverlistpaged/turnOverListPaged.lzx
@@ -0,0 +1,540 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+<class name="baseturnOverListPaged" extends="view">
+	
+	<attribute name="start" value="0" type="number" />
+    <attribute name="step" value="100" type="number" />
+    <attribute name="orderby" value="firstname" type="string" />
+    <attribute name="asc" value="true" type="boolean" />
+    <attribute name="records" value="0" type="number" />
+    
+    <attribute name="renderList" value="null"/>
+    
+    <attribute name="_selected" value="null" />
+    
+    <attribute name="_selectedRefObj" value="null" />
+    
+    <attribute name="multiselect" value="true" type="boolean" />
+    <attribute name="selected" value="null" />
+    
+    <attribute name="showTopBar" value="true" type="boolean" />
+    
+    <event name="oncallnext" />
+    <event name="oncallpre" />
+    
+    <!--- @keywords private -->
+    <event name="onload" />
+    
+    <event name="rerender" />
+    
+    <event name="onMoveList" />
+    
+    <event name="onScrollItem" />
+    <event name="onNextScrollItem" />
+    
+    <attribute name="listItemName" value="basePagingListItem" type="string" />
+    
+    <attribute name="itemHeight" value="20" type="number"/>
+    
+    <attribute name="menuBarXIndent" value="0" type="number"/>
+    
+    <attribute name="headerHeight" value="20" type="number" />
+    
+    <attribute name="listLabelId" value="0" type="number" />
+    
+    <attribute name="showHScrollbar" value="visible" type="string"/>
+     
+    <handler name="oninit">
+    	<![CDATA[
+            //this inits the items
+            this._innerlist._inn.initItems(this.listItemName);
+            
+            if (this["_menu"] && this["_menu"]["_pre1"]) {
+                this._menu._pre1.setAttribute('isEnabled',false);
+                this._menu._next2.setAttribute('isEnabled',false);
+                this._menu._next1.setAttribute('isEnabled',false);
+                this._menu._pre2.setAttribute('isEnabled',false);
+            }
+        ]]>
+    </handler>  
+    
+    <handler name="onclickedItem" args="obj" >
+        <![CDATA[
+            this.addToSelection(obj,false); 
+        ]]>
+    </handler>
+    
+    <method name="selectAll">
+        <![CDATA[
+        
+            if (!this.multiselect){
+                if ($debug) Debug.warn("Cannot selectAll when multiselect is FALSE");
+                return;
+            }
+            
+            this._selectedRefObj = new Array();
+            this._selected = new Array();
+            
+            for (var i=0;i<this.renderList.length;i++) {
+            	this.renderList[i].itemSelected = true;
+                this.renderList[i].isselected = true;
+                this._selectedRefObj.push(i);
+            }
+            
+            if ($debug) Debug.write("this._selectedRefObj LENGTH ",this._selectedRefObj.length);
+        
+            for (var i=0;i<this._innerlist._inn._inn.subviews.length;i++){
+            	if (this._innerlist._inn._inn.subviews[i].clickable) {
+	            	this._innerlist._inn._inn.subviews[i].setAttribute("itemSelected",true);
+		            this._innerlist._inn._inn.subviews[i].isselected = true;
+	                this._innerlist._inn._inn.subviews[i].onmouseout.sendEvent();
+	                this._selected.push(this._innerlist._inn._inn.subviews[i]);
+            	}
+	        }
+        
+        ]]>
+    </method>
+    
+    <method name="deleteSelected">
+        <![CDATA[
+        
+	        function sortTablePoints(a,b){
+	            var a1 = a;
+	            var b1 = b;
+	            //_root.//Debug.write("natcompare: ",a1,b1,natcompare(a1,b1));
+	            if(a1==b1){
+	                return 0;
+	            } else if(a1>b1){
+	                return 1;
+	            } else {
+	                return -1;
+	            }
+	        }
+            
+            this._selectedRefObj.sort(sortTablePoints);
+            
+            if ($debug) Debug.write("deleteSelected",this._selectedRefObj);
+            
+            if ($debug) Debug.write("-1- this.renderList ",this.renderList.length);
+        
+            for (var i=0;i<this._selectedRefObj.length;i++) {
+                this.renderList.splice(this._selectedRefObj[i],1);
+            }
+            
+            if ($debug) Debug.write("-2- this.renderList ",this.renderList.length);
+            
+            this.deselectAll();
+            
+            this.rerender.sendEvent(this);
+        ]]>
+    </method>
+    
+    <method name="deselectAll">
+        <![CDATA[
+        
+            if (!this.multiselect){
+                if ($debug) Debug.warn("Cannot deselectAll when multiselect is FALSE");
+                return;
+            }
+        
+            this._selectedRefObj = new Array();
+            this._selected = new Array();
+            
+            for (var i=0;i<this.renderList.length;i++) {
+            	this.renderList[i].itemSelected = false;
+                this.renderList[i].isselected = false;
+            }
+            
+            for (var i=0;i<this._innerlist._inn._inn.subviews.length;i++){
+            	this._innerlist._inn._inn.subviews[i].setAttribute("itemSelected",false);
+                this._innerlist._inn._inn.subviews[i].isselected = false;
+                this._innerlist._inn._inn.subviews[i].onmouseout.sendEvent();
+            }
+        
+        ]]>
+    </method>    
+    
+    <method name="addToSelection" args="obj,forceMultiAdd">
+        <![CDATA[
+        
+            if (this._selected!=null ||this._selectedRefObj!=null){
+                if (this.multiselect){
+                    if (lz.Keys.downKeysArray.length==0 || 
+                        (lz.Keys.downKeysArray[0]!=17 && lz.Keys.downKeysArray[0]!=16)){
+                        if (!forceMultiAdd) {
+
+                            if ($debug) Debug.write("onclickedItem Deselect ALL -1- ",this._selected.length);    
+                            if ($debug) Debug.write("onclickedItem Deselect ALL -2- ",this._selectedRefObj.length);    
+                            
+                            for (var i=0;i<this._selected.length;i++){
+                            	this._selected[i].setAttribute("itemSelected",false);
+                                this._selected[i].isselected = false;
+                                this._selected[i].doDeselect();
+                            }
+                            
+                            for (var i=0;i<this._selectedRefObj.length;i++){
+                                if ($debug) Debug.write("DESELECT ITEM ID ",this._selectedRefObj[i]);
+                                this.renderList[this._selectedRefObj[i]].itemSelected = false;
+                                this.renderList[this._selectedRefObj[i]].isselected = false;
+                            }
+                            
+                        }
+                    } else {
+                        //////if ($debug) //Debug.write("onclickedItem Key Hold IT");
+                        for (var i=0;i<this._selected.length;i++){
+                            if (this._selected[i] == obj) {
+                                //////if ($debug) //Debug.write("Found Object: ",obj);
+                                obj.isselected = false;
+                                if ($debug) Debug.write("DESELECT ITEM ID 2 ",this._selectedRefObj[i]);
+                                this.renderList[this._selectedRefObj[i]].isselected = false;
+                                ////if ($debug) //Debug.write("send onmouseout TO: ",obj);
+                                obj.doDeselect();
+                                this._selected.splice(i,1);
+                                this._selectedRefObj.splice(i,1);
+                                return;
+                            }
+                        }
+                    }
+                } else {
+                    this.renderList[this._selected.itemId].isselected = false;
+                    this._selected.isselected = false;
+                    this._selected.doDeselect();
+                }
+            }
+
+            //////if ($debug) //Debug.write("onclickedItem Set IT");
+            if ($debug) Debug.write("SELECT ITEM ID ",obj.itemId);
+            this.renderList[obj.itemId].isselected = true;
+            obj.isselected = true;
+            obj.onmouseout.sendEvent();
+            if (this.multiselect){
+                if (this._selected==null){
+                    this._selected = new Array();
+                    this._selectedRefObj = new Array();
+                }
+                if ((lz.Keys.downKeysArray.length==1 && 
+                    (lz.Keys.downKeysArray[0]==17 || lz.Keys.downKeysArray[0]==16))
+                    || forceMultiAdd){
+                    this._selected.push(obj);
+                    this._selectedRefObj.push(obj.itemId);
+                } else {
+                    this._selected = new Array();
+                    this._selectedRefObj = new Array();
+                    this._selected.push(obj);
+                    this._selectedRefObj.push(obj.itemId);
+                }
+            } else {
+                this._selected = obj;
+            }
+            
+        ]]>
+    </method>    
+    
+    <!--
+    <handler name="onclickedItem" args="obj" >
+        if (this.selected != null) {
+            this.selected.deselect();
+        }
+        this.selected = obj;
+        this.selected.select();
+    </handler>
+     -->
+    
+    <method name="callfirst">
+        this.start = 0;
+        this.oncallnext.sendEvent();
+        this.onload.sendEvent();
+    </method>
+    
+    <method name="reload">
+    	this.oncallnext.sendEvent();
+        this.onload.sendEvent();
+    </method>
+    
+    <method name="calllast">
+    	var newMaxPages = Math.floor(this.records/this.step);
+    	if ($debug) Debug.write("calllast 1 ",newMaxPages);
+        this.start = newMaxPages*this.step;
+        if ($debug) Debug.write("calllast 2 ",this.start);
+        if (this.start == this.records) {
+        	this.start = this.records-this.step;
+        }
+        if ($debug) Debug.write("calllast 3 ",this.start);
+        if ($debug) Debug.write("calllast 4 ",this.records);
+        this.oncallnext.sendEvent();
+        this.onload.sendEvent();
+        
+        //this.start = this.records-this.step;
+        //this.oncallnext.sendEvent();
+        //this.onload.sendEvent();
+    </method>
+    
+    <method name="callnext">
+        if (this.records>(this.start+this.step)){
+            this.start+=this.step;
+        }
+        this.oncallnext.sendEvent();
+        this.onload.sendEvent();
+    </method>
+    
+    <method name="callpre">
+        if (this.start>0){
+            this.start-=this.step;
+        }
+        this.oncallpre.sendEvent();
+        this.onload.sendEvent();
+    </method>
+    
+    <method name="initValues" args="rec">
+        <![CDATA[
+            this.records = rec;
+            
+            if (this.start == 0) {
+                this._menu._pre1.setAttribute('isEnabled',false);
+            } else {
+                this._menu._pre1.setAttribute('isEnabled',true);
+            }
+            
+            if ((this.start+this.step) >= this.records) {
+                this._menu._next2.setAttribute('isEnabled',false);
+            } else {
+                this._menu._next2.setAttribute('isEnabled',true);
+            }
+            
+            if (this.records>(this.start+this.step)){
+                if (this["_menu"]) this._menu._next1.setAttribute('isEnabled',true);
+            } else {
+                if (this["_menu"]) this._menu._next1.setAttribute('isEnabled',false);
+            }
+            if (this.start>0){
+                if (this["_menu"]) this._menu._pre2.setAttribute('isEnabled',true);
+            } else {
+                if (this["_menu"]) this._menu._pre2.setAttribute('isEnabled',false);
+            }
+            
+            if (this.showTopBar) {
+                
+                var maxRecord = this.start+this.step;
+                if ((this.start+this.step) > this.records) {
+                    maxRecord = this.records;
+                }
+                
+                this._records.setAttribute("text",(this.start+1) + ' - ' + maxRecord + ' von ' + this.records);
+                
+            } else {
+                
+                this._records.setAttribute("text",rec);
+            }
+        ]]>
+    </method>
+    
+    <method name="addHeaderItem" args="labelid,width" >
+        new lz.turnoverlistheaderitemResize(this._innerlisthead._inn,{
+                labelid:labelid,width:width,
+                subviewsid:this._innerlisthead._inn.subviews.length
+            });
+    </method>
+    
+    <method name="clearHead">
+        for (var eg in this._innerlisthead._inn.subviews) {
+            this._innerlisthead._inn.subviews[eg].destroy();
+        }
+    </method>
+    
+    <method name="addHeaderItemByText" args="zText,width" >
+        new lz.turnoverlistheaderitemResize(this._innerlisthead._inn,{
+                text:zText,width:width,
+                subviewsid:this._innerlisthead._inn.subviews.length
+            });
+    </method>
+    
+    <method name="addHeaderItemOrdered" args="labelid,width,orderBy,asc,isSelected" >
+    	if ($debug) Debug.write("turnOverListHeaderItemOrdered ",labelid,width,orderBy,asc,isSelected);
+        new lz.turnOverListHeaderItemOrdered(this._innerlisthead._inn,{
+                labelid:labelid,width:width,
+                orderBy:orderBy,asc:asc,isSelected:isSelected,
+                subviewsid:this._innerlisthead._inn.subviews.length
+            });
+    </method> 
+    
+    <method name="setSelectionOrder" args="orderBy,asc">
+    	<![CDATA[
+    		
+    		for (var i=0;i<this._innerlisthead._inn.subviews.length;i++) {
+    			
+    			if (this._innerlisthead._inn.subviews[i]["orderBy"] && 
+    					this._innerlisthead._inn.subviews[i].orderBy == orderBy) {
+    				
+    				if (this.currentSelectedOrder != null) {
+    					this.currentSelectedOrder.isSelected = false;
+    				}
+    				
+					this._innerlisthead._inn.subviews[i].isSelected = true;
+    				this._innerlisthead._inn.subviews[i].asc = !asc;
+    				
+    				this._innerlisthead._inn.subviews[i].onclick.sendEvent();
+    				
+    				return;
+    				
+    			}
+    			
+    		}
+    	
+    	]]>
+    </method>
+    
+    <method name="sendInitialWidthUpdate">
+        for (var eg in this._innerlisthead._inn.subviews) {
+            this._innerlisthead._inn.subviews[eg].onwidth.sendEvent(this._innerlisthead._inn.subviews[eg].width);
+        }
+    </method> 
+    
+    <method name="sendWidthUpdate" args="w,subviewsid" >
+        <![CDATA[
+        ////Debug.write(w,subviewsid,this._innerlist._inn);
+        for (var i=0;i<this._innerlist._inn._inn.subviews.length;i++){
+            this._innerlist._inn._inn.subviews[i].subviews[subviewsid].setAttribute('width',w+1);
+        }
+        ]]>
+    </method>
+    
+    <method name="getListItemNumber">
+        return this._innerlist._inn._inn.subviews.length;
+    </method>
+    
+    <method name="getItemByNumber" args="itemNo">
+        <![CDATA[
+	        if ($debug) Debug.write("getItemByNumber",itemNo);
+	        for (var i=0;i<this._innerlist._inn._inn.subviews.length;i++){
+                if ($debug) Debug.write("getItemByNumber :: ",this._innerlist._inn._inn.subviews[i].itemId);
+	            if (this._innerlist._inn._inn.subviews[i].itemId == itemNo) {
+                    return this._innerlist._inn._inn.subviews[i];
+                }
+	        }
+        ]]>
+        return this._innerlist._inn._inn.subviews[itemNo];
+    </method>
+    
+    <method name="clearList">
+        this._innerlist._inn._inn.destroy();
+        new lz.innerListPagingContent(this._innerlist._inn,{name:'_inn'});
+    </method>
+    
+    <method name="initItemsBySubItemNo" args="itemName,noSubItems,subItemClassName">
+        this._innerlist.initItemsBySubItemNo(itemName,noSubItems,subItemClassName);
+    </method>
+
+    <labelText labelid="${ parent.listLabelId }" visibility="$once{ (parent.showTopBar) ? 'visible' : 'hidden' }"
+                       y="4" fontsize="10" x="2" />
+                       
+    <text fontsize="10" y="4" x="$once{ (!parent.showTopBar) ? 64+parent.menuBarXIndent : 2+parent.menuBarXIndent }"
+          name="_records" resize="true" visibility="$once{ (parent.showTopBar) ? 'visible' : 'hidden' }" />
+    
+    <!-- =========  List Header area  =========-->
+    <view name="_innerlisthead" height="${ parent.headerHeight }" width="${ parent.width }" y="$once{ parent.headerHeight + 2 }" clip="true">
+        <view name="_inn" x="${ parent.parent._innerlist._inn.x }" layout="axis:x;spacing:0" />
+    </view> 
+    
+    <!-- =========  List Contents area  =========-->   
+    <listPagedContent name="_innerlist" height="${ parent.height-22-parent.headerHeight }" bgcolor="0xFFFFFF"
+          width="${ parent.width }" y="$once{ parent.headerHeight + 22 }" showHScrollbar="$once{ parent.showHScrollbar }"
+          itemHeight="$once{ parent.itemHeight }" />
+</class>
+	
+<!--- common TurnOverList view class. -->
+<class name="turnOverListPaged" extends="baseturnOverListPaged">
+
+    <!-- =========  Control area  =========-->
+    <view name="_menu" align="right" y="2" width="180"
+          visibility="$once{ (parent.showTopBar) ? 'visible' : 'hidden' }">
+    	
+	    <!-- 368:goto first -->
+	    <blueButton name="_pre1" y="0" x="0" resourceItem="step_back_two_arrow" 
+					x_insetResource="2" y_insetResource="2" width="20" height="20"
+				width_insetResource="16" height_insetResource="16">
+			<handler name="onclick">
+				parent.parent.callfirst();
+	        </handler>
+	        <labelTooltip labelid="368" />
+	    </blueButton>
+	
+	    <!-- 369:goto previous -->
+	    <blueButton name="_pre2" y="0" x="20" resourceItem="step_back_arrow" 
+					x_insetResource="2" y_insetResource="2" width="20" height="20"
+				width_insetResource="16" height_insetResource="16">
+			<handler name="onclick">
+				parent.parent.callpre();
+	        </handler>
+	        <labelTooltip labelid="369" />
+	    </blueButton>
+    	<resetCombobox name="_step" width="100" x="40" editable="false" fontsize="10" height="20" >
+            <attribute name="sendEventToReload" value="false" type="boolean" />
+            <textlistitem value="10" text="10" />
+            <textlistitem value="25" text="25" />
+            <textlistitem value="50" text="50" />
+            <textlistitem value="75" text="75" />
+            <textlistitem value="100" text="100" />
+            <textlistitem value="200" text="200" />
+            <textlistitem value="500" text="500" />
+            <textlistitem value="1000" text="1000" />
+            <textlistitem value="2500" text="2500" />
+            <textlistitem value="5000" text="5000" />
+            <handler name="onselect">
+                if (this.sendEventToReload){ 
+                	parent.parent.start = 0;
+                    parent.parent.setAttribute('step',Number(this.getValue()));
+                    parent.parent.onload.sendEvent();
+                }
+            </handler>
+            <handler name="oninit">
+                this.selectItem(String(parent.parent.step));
+                this.sendEventToReload = true;
+            </handler>
+        </resetCombobox>
+        
+        <!-- 370:goto next -->
+        <blueButton name="_next1" y="0" x="140" resourceItem="step_fwd_arrow" 
+					x_insetResource="2" y_insetResource="2" width="20" height="20"
+				width_insetResource="16" height_insetResource="16">
+			<handler name="onclick">
+				parent.parent.callnext();
+	        </handler>
+	        <labelTooltip labelid="370" />
+	    </blueButton>
+		
+	    <!-- 371:goto last -->
+	    <blueButton name="_next2" y="0" x="160" resourceItem="step_fwd_two_arrow" 
+					x_insetResource="2" y_insetResource="2" width="20" height="20"
+				width_insetResource="16" height_insetResource="16">
+			<handler name="onclick">
+				parent.parent.calllast();
+	        </handler>
+	        <labelTooltip labelid="371" />
+	    </blueButton>
+		
+		<view width="2" />
+    </view>
+    
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/updatecheckbox.lzx b/WebContent/src/base/components/updatecheckbox.lzx
new file mode 100644
index 0000000..1259161
--- /dev/null
+++ b/WebContent/src/base/components/updatecheckbox.lzx
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="updatecheckbox" extends="checkbox" style="componentStyle">
+    <attribute name="tvalue" type="boolean" value="false"/>
+    <attribute name="sendchange" value="false" type="boolean" />       
+    <handler name="onblur">
+        if (this.parent.sendchange) this.parent.sendchange(this,tvalue,this.getValue()); 
+    </handler>  
+</class>
+
+<class name="labelCheckbox" extends="checkbox" style="componentStyle" fontsize="11" >
+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+	<method name="setLabelId" args="_labelid" >
+		this.labelid = _labelid;
+		this.setAttribute('text',canvas.getLabelName(this.labelid));
+	</method>
+</class>
+
+</library>
diff --git a/WebContent/src/base/components/upload/fileUpload.lzx b/WebContent/src/base/components/upload/fileUpload.lzx
new file mode 100644
index 0000000..a43c464
--- /dev/null
+++ b/WebContent/src/base/components/upload/fileUpload.lzx
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+ 
+ 	<class name="fileUpload">
+ 	
+ 		<!--  Show all Documents in FileBrowser -->
+ 		<attribute name="isOnlyImage" value="false" type="boolean" />
+ 		
+ 		<!-- Show only PowerPoint Presentations in FileBrowser -->
+ 		<attribute name="isOnlyPpt" value="false" type="boolean" />
+ 		
+ 		<!-- Show only XML Files in FileBrowser -->
+ 		<attribute name="isOnlyXml" value="false" type="boolean" />
+ 		
+ 		<!-- Show only ZIP Files in FileBrowser -->
+ 		<attribute name="isOnlyZip" value="false" type="boolean" />
+ 		
+ 		<!-- Show only Images Files in FileBrowser -->
+ 		<attribute name="isOnlyProfile" value="false" type="boolean" />
+        
+        <attribute name="fr" value="null" />
+ 		 		
+		<handler name="oninit" args="invoker">
+		<![CDATA[
+			this.fr = new flash.net.FileReference();	
+    		this.fr.onHTTPError = function(fr, httpError){
+                var t = _root;
+            	if ($debug) t.Debug.write('onHTTPError function: ' + httpError);
+            	new lz.errorPopup(canvas,{error:'Err2: '+httpError});
+			}
+			this.fr.onIOError = function(fr){
+				var t = _root;
+                if ($debug) t.Debug.write.write('onIOError function');
+				new lz.errorPopup(canvas,{error:'onIOError invoked '});
+			}
+			function callbackFunction ( e ) {
+				var t = _root;
+                if ($debug) t.Debug.write( e.data );
+			}		
+			this.fr.onSecurityError = function(fr, errorString){
+				var t = _root;
+                if ($debug) t.Debug.write('onSecurityError function: ' + errorString);
+            	new lz.errorPopup(canvas,{error:'Err2: '+errorString});
+			}
+			this.fr.addListener(invoker, callbackFunction);
+		]]>
+		</handler>
+
+		<method name="browse">
+		<![CDATA[	
+			var zipExt = "*.zip"
+				, profileExt = "*.psd;*.tiff;*.bmp;*.svg;*.dpx;*.exr;*.jpg;*.jpeg;*.gif;*.png"
+				, pptExt = "*.ppt;*.odp;"
+				, docExt = pptExt + ";*.txt;*.pptx;*.odt;*.wpd;*.doc;*.docx;*.rtf;*.ods;*.sxc;*.xls;*.xlsx;*.sxi;*.pdf"
+				, vidExt = "*.avi;*.mov;*.flv;*.mp4"
+				, imgExt = profileExt + ";*.tga;*.xcf;*.wpg;*.ico;*.ttf;*.pcd;*.pcds;*.ps"
+				, allExt = docExt + ";" + vidExt + ";" + imgExt;
+
+			if (this.isOnlyZip) {
+				
+				var allTypes = new Array();
+				var imageTypes = new Object();
+				imageTypes.description = "ZIP (*.zip)";
+				imageTypes.extension = zipExt;
+				allTypes.push(imageTypes); 				
+				fr.browse(allTypes);
+				
+			} else if(this.isOnlyProfile){	
+				var allTypes = new Array();
+				var imageTypes = new Object();
+				imageTypes.description = "Allowed Files (" + profileExt + ")";
+				imageTypes.extension = profileExt;
+				allTypes.push(imageTypes); 				
+				fr.browse(allTypes);
+			} else if (this.isOnlyImage){
+				fr.browse([
+					{description: "Allowed Files", extension: allExt}
+					, {description: "Documents", extension: docExt}
+					, {description: "Videos", extension: vidExt}
+					, {description: "Pictures", extension: imgExt}
+				]);
+			} else if(this.isOnlyPpt){	
+				var allTypes = new Array();
+				var imageTypes = new Object();
+				imageTypes.description = "Powerpoint (" + pptExt + ")";
+				imageTypes.extension = pptExt;
+				allTypes.push(imageTypes); 				
+				fr.browse(allTypes);
+			} else if(this.isOnlyXml){	
+				var allTypes = new Array();
+				var imageTypes = new Object();
+				imageTypes.description = "XML (*.xml)";
+				imageTypes.extension = "*.xml;";
+				allTypes.push(imageTypes); 				
+				fr.browse(allTypes);
+			} else {	
+				fr.browse();
+			}
+		]]>
+		</method>
+
+		<method name="getName"><![CDATA[
+			return this.fr.name;
+		]]>
+		</method>
+
+		<method name="upload" args="url"><![CDATA[
+			if ($debug) Debug.write("url: ",url,this.fr);
+			this.fr.upload(url);
+		]]>
+		</method>
+		
+    <method name="onCancel" args="fr">
+        <![CDATA[
+            if ($debug) Debug.write('onCancel invoked');
+        ]]>
+    </method>
+    
+    <method name="onComplete" args="fr">
+        <![CDATA[
+            if ($debug) Debug.write('onComplete invoked');
+            canvas.filedialogRef.progressBar.setValue(100);
+            //canvas.filedialogRef.upload.setAttribute('enabled', false);
+            if (canvas.filedialogRef.sendCompleted)canvas.filedialogRef.sendCompleted.sendEvent();
+        ]]>
+    </method>
+    
+    <method name="onHTTPError" args="fr, httpError">
+        <![CDATA[
+            if ($debug) Debug.write('onHTTPError invoked: ' + httpError);
+        ]]>
+    </method>
+    
+    <method name="onIOError" args="fr">
+        <![CDATA[
+            if ($debug) Debug.write('onIOError invoked',fr);
+        ]]>
+    </method>
+    
+    <method name="onOpen" args="fr">
+        <![CDATA[
+            if ($debug) Debug.write('onOpen invoked',fr);
+        ]]>
+    </method>
+    
+    <method name="onSecurityError" args="fr, errorString">
+        <![CDATA[
+            if ($debug) Debug.write('onSecurityError invoked: ' + errorString);
+        ]]>
+    </method>
+		
+ 	</class>
+ 	
+ </library>
diff --git a/WebContent/src/base/components/upload/library.lzx b/WebContent/src/base/components/upload/library.lzx
new file mode 100644
index 0000000..3a3f1e8
--- /dev/null
+++ b/WebContent/src/base/components/upload/library.lzx
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<include href="fileUpload.lzx" />
+	<include href="uploadWindowExplorer.lzx" />
+	
+</library>
diff --git a/WebContent/src/base/components/upload/uploadWindowExplorer.lzx b/WebContent/src/base/components/upload/uploadWindowExplorer.lzx
new file mode 100644
index 0000000..f5e2f39
--- /dev/null
+++ b/WebContent/src/base/components/upload/uploadWindowExplorer.lzx
@@ -0,0 +1,288 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+ 
+ <class name="uploadWindowExplorer" extends="labelExplorerBox" labelid="304"
+    docking="true" closable="true" width="264" x="200" height="230">
+    
+    <handler name="oninit">
+    	lz.ModeManager.makeModal(this);
+        canvas.currentUploadWindow = this;
+        if (this.servletName != "file.upload") {
+        	this._loadToWhiteboard.destroy();
+        }
+    </handler>
+    
+    <handler name="onclose">
+    	lz.ModeManager.release(this);
+    </handler>
+    
+    <attribute name="winobj" value="null" />
+	<attribute name="sessionid" value="" type="string" />
+	<attribute name="isOwner" value="0" type="string" />
+	<attribute name="usersid" value="" type="string" />
+	<attribute name="singleslidesmodule_id" type="string" value="" />
+	<attribute name="fileExplorerRef" value="null" />
+	<attribute name="secondid" value="0" type="string" />
+	
+	<attribute name="servletName" value="upload.upload" type="string" />
+	<attribute name="parentFolderId" value="0" type="number" />
+    
+    <attribute name="uploadmodule" value="videoconf1" type="string" />
+    
+    <attribute name="isOnlyImage" value="false" type="boolean" />
+    <attribute name="isOnlyPpt" value="false" type="boolean" />
+    <attribute name="isOnlyProfile" value="false" type="boolean" />
+    <attribute name="isOnlyXml" value="false" type="boolean" />
+    <attribute name="isOnlyZip" value="false" type="boolean" />
+    
+    <attribute name="isdefaultreturn" value="true" type="boolean" />
+    <attribute name="returnObj" value="true" type="boolean" />
+    
+ 	<fileUpload name="myFileUpload" isOnlyImage="${ this.parent.isOnlyImage }" 
+ 		 isOnlyPpt="${ this.parent.isOnlyPpt }" isOnlyProfile="${ this.parent.isOnlyProfile }" 
+ 		 isOnlyXml="${ this.parent.isOnlyXml }" isOnlyZip="${ this.parent.isOnlyZip }">
+		<method name="onComplete" args="fr">
+            if ($debug) Debug.write("oncomplete ",fr);
+        </method>
+        <method name="formatURL" args="fileHash">
+            <![CDATA[
+                var uploadmoduleimgfolderVar = '/' + fileHash;
+                var downloadurl = canvas.getUrl()+'DownloadHandler?' +
+                    'fileName=' + encodeURIComponent(fileHash + ".swf") +
+                    '&moduleName=' + 'videoconf1' + 
+                    '&parentPath=' + encodeURIComponent(uploadmoduleimgfolderVar + '/' )+
+                    '&room_id=files'+ 
+                    '&sid='+canvas.sessionId;
+                ////if ($debug) Debug.write("downloadurl: ",downloadurl);
+                return downloadurl;
+            ]]>
+        </method> 
+        
+        <method name="generateFileLink" args="fileHash">
+            <![CDATA[
+                return canvas.getUrl()+'DownloadHandler?' +
+                        'fileName='+ fileHash + 
+                        '&moduleName='+ "videoconf1" +
+                        '&parentPath='+ '/' +
+                        '&room_id=files' +
+                        '&sid='+canvas.sessionId;
+            ]]>
+        </method>
+    
+        <method name="onCompleteByRemote" args="tArrayValueObj">
+            
+            if ($debug) Debug.write("onCompleteByRemote ",tArrayValueObj);
+            this.parent.progressBar.setValue(100);
+            this.parent.upload.setAttribute('enabled', false);
+            this.parent.upload.setAttribute("visible",false);
+            this.parent.browse.setAttribute("visible",false);
+            this.parent.txtFile.setAttribute("visible",false);
+            
+            if (this.isOnlyZip) {
+            	this.parent.close();
+            	return;
+            }
+            
+            if (this.isOnlyXml) {
+            	parent.returnObj.sendRefresh();
+            	this.parent.close();
+            	return;
+            }
+            
+            if (this.isOnlyProfile) {
+            	parent.returnObj.sendRefresh();
+            	this.parent.close();
+            	return;
+            }
+            
+            if (parent._loadToWhiteboard.getValue()) {
+            	
+            	if ($debug) Debug.write(tArrayValueObj);
+            	if (tArrayValueObj.isPresentation) {
+            		var url = this.formatURL(tArrayValueObj.fileHash);
+            		
+            		var uploadmoduleimgfolderVar = '/' + tArrayValueObj.fileHash;
+            		
+            		if ($debug) Debug.write(url);
+            		
+                	canvas._drawarea.loadSWFPresentationSynced(url,tArrayValueObj.fileHash + ".swf",
+                              "videoconf1",uploadmoduleimgfolderVar,"files",hib.conferencedomain,1,
+                              tArrayValueObj.fileSystemName);
+            	} else if (tArrayValueObj.isImage) {
+            		canvas._drawarea.parent.parent.clearAreaAndAddImage(this.generateFileLink(tArrayValueObj.fileHash),0,0,
+                      canvas.getUrl() +'DownloadHandler',
+                      tArrayValueObj.fileHash,"videoconf1","/","files",hib.conferencedomain);
+            	}
+            }
+            
+            if (parent.isdefaultreturn) {
+            	
+                var tempSendArray = new Array ();
+                tempSendArray[0] = 'fileslist';
+                var nowTime = new Date();
+                var datumsString = nowTime.getHours()+':'+nowTime.getMinutes();
+                tempSendArray[1] = datumsString;
+                //if ($debug) Debug.write("Setting Message");
+                tempSendArray[2] = 'newfile';
+                tempSendArray[3] = canvas.currentusename;
+                //if ($debug) Debug.write("send: ",tempSendArray);
+                canvas.objMessage = tempSendArray;
+                canvas.thishib.sendMessageAll.doCall();
+
+            } else {
+                parent.returnObj.sendRefresh();
+            }
+            
+            if (parent.fileExplorerRef != null) {
+            	parent.fileExplorerRef.onClose.sendEvent();
+            }
+            
+            parent.close();
+        </method>
+
+		<method name="onProgress" args="fr, bytesLoaded, bytesTotal">
+			<![CDATA[
+    			this.parent.progressBar.setValue(bytesLoaded * 100 / bytesTotal);
+    			if (Math.round(bytesLoaded * 100 / bytesTotal)==100){
+    				this.parent.progressBar.setAttribute('visibility','hidden');
+    				this.parent.progress2.startShowing();
+    			}
+    		]]>
+		</method>
+    
+	    <method name="onHTTPError" args="fr, httpError">
+	        <![CDATA[
+	            if ($debug) Debug.write('onHTTPError invoked: ' + httpError);
+	            new lz.errorPopup(canvas,{error:'HTTP-ERROR: '+httpError});
+	            this.parent.close();
+		  		var tempSendArray = new Array ();
+		  		tempSendArray[0] = 'fileslist';
+		  		var nowTime = new Date();
+		  		var datumsString = nowTime.getHours()+':'+nowTime.getMinutes();
+		  		tempSendArray[1] = datumsString;
+	  			//if ($debug) Debug.write("Setting Message");
+	  			tempSendArray[2] = 'newfile';
+	  			tempSendArray[3] = canvas.currentusename;
+		  		//if ($debug) Debug.write("send: ",tempSendArray);
+		  		canvas.objMessage = tempSendArray;
+		  		hib.sendMessage.doCall();	            
+	        ]]>
+	    </method>
+    
+		<method name="onSelect" args="fr">
+			//if ($debug) Debug.write("onSelect: ",getName());
+			this.parent.txtFile.setAttribute('text',getName());
+			this.parent.upload.setAttribute('enabled', true);
+		</method>
+	</fileUpload>
+    
+    <labelText x="10" width="250" y="24" multiline="true" name="txtFileDescr" labelid="594" />
+	
+	<labelText x="10" fontsize="11" y="60" width="250" name="txtFile" multiline="true" 
+			   resize="false" fgcolor="$once{ canvas.getThemeColor('menuTextColor') }" />
+
+	<simpleLabelButton fontsize="11" name="browse" x="10" y="100" labelid="596" width="250" height="20">
+		<handler name="onclick">
+			parent.myFileUpload.browse();
+		</handler>
+	</simpleLabelButton>
+
+    <!-- moduleName=videoconf1'; -->
+	<simpleLabelButton name="upload" x="10" y="120" labelid="593" width="250" enabled="false" height="20">
+		<handler name="onclick">
+			<![CDATA[
+			var uploadurl = canvas.getUrl() + parent.servletName +'?' +
+					'moduleName='+this.parent.uploadmodule +
+                    '&publicSID='+canvas.publicSID +
+                    '&filename='+encodeURIComponent(parent.txtFile.text) +
+                    '&parentFolderId='+parent.parentFolderId +
+					'&room_id='+hib.currentroomid +
+					'&secondid='+parent.secondid +
+					'&isOwner='+parent.isOwner + 
+					'&sid='+canvas.sessionId;
+            if ($debug) Debug.write("uploadurl: ",uploadurl);
+			parent.myFileUpload.upload(uploadurl);
+			this.setAttribute("enabled", false);
+			]]>
+		</handler>
+	</simpleLabelButton>
+    
+    <view name="progress2" x="10" y="158" width="250" visibility="hidden" height="10" bgcolor="#C6CEDF">
+        <attribute name="isStarted" value="false" type="boolean" />
+        <method name="startShowing">
+        	if (!this.isStarted) {
+        		this.isStarted = true;
+        		this.status._hide.setAttribute('started', true);
+        		this.setAttribute("visibility","visible");
+        	} else {
+        		return;
+        	}
+        </method>
+        <view x="1" y="1" width="248" height="8" bgcolor="#FFFFFF"/>
+        <view name="status" x="1" y="1" height="8" width="248" bgcolor="#D6DEEF">
+        	
+        	<animator name="_hide" attribute="opacity" to="0" from="1" duration="1000" started="false">
+        		<handler name="onstop">
+        			if (parent["_show"]) {
+        				parent._show.setAttribute('started', true);
+        			}
+        		</handler>
+        	</animator>
+        	<animator name="_show" attribute="opacity" to="1" from="0" duration="1000" started="false">
+                <handler name="onstop">
+                	if (parent["_show"]) {
+                    	parent._show.setAttribute('started', true);
+                    }
+                </handler>
+            </animator>
+        </view>
+        <labelText name="percent" align="center" resize="true" y="-18" fontstyle="bold" 
+            fontsize="10" fgcolor="#555555" labelid="592"/>
+    </view>
+    		   
+	<view name="progressBar" x="10" y="158" width="250" visibility="hidden" height="10" bgcolor="#C6CEDF">
+		<view x="1" y="1" width="248" height="8" bgcolor="#FFFFFF"/>
+		<view name="status" x="1" y="1" height="8" bgcolor="#D6DEEF"/>
+		<method name="setValue" args="value">
+			<![CDATA[
+                this.setAttribute("visible",true);
+                status.setAttribute('width', value * 248 / 100);
+                percent.setAttribute('text',Math.round(value) + '%');
+			]]>
+		</method>
+		<text name="percent" align="center" resize="true" y="-18" fontstyle="bold" 
+			fontsize="10" fgcolor="#555555" />
+	</view>
+	
+	<labelCheckbox name="_loadToWhiteboard" x="4" y="184" fontsize="11" 
+		labelid="1312" value="${ canvas.whiteboardCount &gt; 0 }" enabled="${ canvas.whiteboardCount &gt; 0 }" />
+	
+	<simpleLabelButton name="_close" x="100" y="204" labelid="595" width="160" height="20">
+		<handler name="onclick">
+			if ($debug) Debug.write("this.parent: ",this.parent);
+			this.parent.close();
+		</handler>
+	</simpleLabelButton>
+</class>
+	
+</library>
+ 
diff --git a/WebContent/src/base/components/validbox/library.lzx b/WebContent/src/base/components/validbox/library.lzx
new file mode 100644
index 0000000..63a46b7
--- /dev/null
+++ b/WebContent/src/base/components/validbox/library.lzx
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<include href="validText.lzx" />
+
+</library>
diff --git a/WebContent/src/base/components/validbox/validText.lzx b/WebContent/src/base/components/validbox/validText.lzx
new file mode 100644
index 0000000..0f5ffc2
--- /dev/null
+++ b/WebContent/src/base/components/validbox/validText.lzx
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+    <!--- A editfieldText with the possibility of a dropdown menu -->
+
+    <class name="validText" extends="edittext">
+        
+        <!--- The method to be called for validating -->
+        <attribute name="validate_method" value="null" />
+        
+        <!--- the id-attribute of the resultset -->
+        <attribute name="resultId" value="id" type="string" />
+        <!--- the name-attribute of the resultset -->
+        <attribute name="resultName" value="name" type="string" />        
+					
+        <attribute name="initSelect" value="false" type="boolean" />
+					
+        <attribute name="timerDelegate" value="null"/>
+        <attribute name="typetime" type="number" value="500"/>
+        <attribute name="timerIsInited" value="false" type="boolean"/>
+        
+        <!--- items to be shown in the floatinglist -->
+        <attribute name="shownitems" value="7" type="number" />          
+        <attribute name="spacing" value="1" type="number" />  
+        <!--- The vertical offset of the floatinglist attached to this
+              combobox. -->
+        <attribute name="attachoffset" value="-1" type="number"/>
+        <!--- Whether a scrollbar should automatically show up when there are more
+              items than shownitems. -->
+        <attribute name="autoscrollbar" value="true"/>   
+
+        <!--- The border size ( in pixels ) of the popup list.  -->
+        <attribute name="bordersize"   value="1" />      
+        
+        <attribute name="currentValue" type="string" value="" />
+        
+        <!--- refernce to the current selected item -->
+        <attribute name="_selected" value="null" />    
+        
+        <method name="addAndSelectItem" args="txt,id">
+            this.cblist.addItem(txt,id);
+            this.currentValue = id;
+            this.setAttribute('text',txt);
+        </method>    
+        
+        <method name="setSelection" args="obj">
+            this._selected = obj;
+            this.currentValue = obj.value;
+            this.setAttribute('text',obj.text);
+            this.setOpen(false,true);
+            this.onselect.sendEvent();
+        </method>    
+        
+        <event name="onselect" />
+        
+        <method name="getValue">
+            return this.currentValue;
+        </method>
+
+                    <!-- arrow down and up both popup floatinglist, and pass the key event to it -->
+        <handler name="onkeydown" args="key">
+            <![CDATA[
+                //Debug.write("onkeydown: ",key);
+                // 38 is up-arrow
+                // 40 is down-arrow
+                // 32 is space
+                // 13 is return
+                if ((key==38) || (key==40)) {
+                    if (!this.isopen) {
+                        this.setOpen(true, true); // open, withKey
+                    } else {
+                        lz.Focus.setFocus(this.cblist, true);
+                    }
+                    // pass the key event on to the floatinglist
+                    this.cblist.onkeydown.sendEvent(key);
+                } else if (key==27){
+                    if (!this.isopen) {
+                        this.setOpen(true, true); // open, withKey
+                    } else {
+                        lz.Focus.setFocus(this.cblist, true);
+                    }
+                    this.cblist.onkeydown.sendEvent(key);
+                } else if (key!=13 && key!=9){
+                    //Don't handle Enter and Tab Events cause it will open the listItems
+                    ////Debug.write("onkeydown txt: ",this.getText());
+                    if (!this.initSelect){
+                        ////Debug.write("onvalue: ",txt,this);
+                        if (!this.timerIsInited){
+                            this.timerIsInited = true;
+                            this.timerDelegate = new LzDelegate( this, "validatedText" );
+                            ////Debug.write("+++++++++++++++++ addTimer");
+                            //Debug.write("+++++++++++++++++ removeTimer ",lz.Timer.countTimers());
+                            lz.Timer.addTimer( this.timerDelegate, this.typetime );
+                        } else {
+                            ////Debug.write("############### resetTimer NO ADDING ");
+                            //Debug.write("############### resetTimer ",lz.Timer.countTimers());
+                            lz.Timer.resetTimer( this.timerDelegate, this.typetime );
+                        }
+                    } else {
+                        this.initSelect = false;
+                    }
+                }
+            ]]>
+        </handler>
+        
+        <method name="validatedText">
+            <![CDATA[
+                ////Debug.write("validatedText: ",this.getText());
+                //this.reset();
+                if (!this.initSelect){
+                    var t = this.validate_method(this.getText());
+                    ////Debug.write('t: ',t.length);
+                    //this.parent._cblist.setAttribute('visible',true);
+                    this.cblist.removeAllItems();
+                    for (var i=0;i<t.length;i++){
+                        ////Debug.write(t[i][this.resultName],t[i][this.resultId]);
+                        this.cblist.addItem(t[i][this.resultName],t[i][this.resultId]);
+                    }                
+
+                    ////Debug.write("validateText: ",this.getText());
+                    if (!this.isopen) {
+                        this.setOpen(true, true); // open, withKey
+                    }
+                    this.timerIsInited = false;
+                } else {
+                    this.initSelect=false;
+                    this.timerIsInited = false;
+                }
+            ]]>
+        </method>	
+        
+        <attribute name="isopen" value="false" type="boolean" setter="this.setOpen(isopen)" />
+        
+        <event name="onisopen" />
+        
+        <method name="setOpen" args="open, withkey" >
+            if (!this.isinited) {
+                this.isopen = open;
+                return;
+            }
+            if (open) { // open combox
+                if (this.isopen) return; // tends to get called more than once, esp when
+                //lz.ModeManager.makeModal( this );
+
+                this.cblist.bringToFront();
+                this.cblist.setVisible(true);
+                //lz.Focus.setFocus(this.cblist, withkey);
+
+                this.isopen = true;
+                if (this['onisopen']) this.onisopen.sendEvent(true);
+            } else { // close combox
+                if (!this['isopen']) return;
+                this.isopen = false;
+
+                //lz.ModeManager.release( this );
+                this.cblist.setVisible(false);
+                if (this['onisopen']) this.onisopen.sendEvent(false);
+                if ( lz.Focus.getFocus() == this.cblist ) {
+                    lz.Focus.setFocus(this, withkey);
+                }
+            }
+        </method>           
+
+        <floatinglist name="cblist"
+                      width="${owner.width - 1}"
+                      bordersize="${this.owner.bordersize}"
+                      spacing="${this.owner.spacing}"
+                      visible="false"
+                      shownitems="${this.owner.shownitems}"
+                      attach="bottom"
+                      attachoffset="${this.owner.attachoffset}"
+                      multiselect="false"
+                      autoscrollbar="${owner.autoscrollbar}" >
+
+            <handler name="onkeyup" args="kc">
+                //name="_dokeyup" 
+                if (kc == 27) {  // escape needs to close floating list
+                    this.owner.setOpen(false);
+                }
+            </handler>
+            <method name="removeAllItems" args="index"> 
+                for (var eg in _contentview.subviews){
+                    _removeitem(_contentview.subviews[eg]); 
+                } 
+            </method>	
+            <handler name="onselect" args="obj">
+                ////Debug.write("obj: ",obj);
+                this.owner.setSelection(obj);
+            </handler>		
+        </floatinglist>
+
+    </class>
+	
+    
+</library>
diff --git a/WebContent/src/base/contentviews/baseContentSaveView.lzx b/WebContent/src/base/contentviews/baseContentSaveView.lzx
new file mode 100644
index 0000000..915c0a6
--- /dev/null
+++ b/WebContent/src/base/contentviews/baseContentSaveView.lzx
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+<class name="baseContentSaveView" extends="baseContentView">
+
+    <attribute name="observerViews" value="null" />
+	
+	<attribute name="saveIsVisible" value="true" type="boolean" />
+	<attribute name="addIsVisible" value="true" type="boolean" />
+	<attribute name="refreshIsVisible" value="true" type="boolean" />
+	<attribute name="deleteIsVisible" value="true" type="boolean" />
+	
+	<attribute name="confirmMessageLabelId" value="661" type="number" />
+    
+	<event name="onnew" />
+    <event name="ondelete" />
+    <handler name="onsavecompleted" >
+		this.hideNewRecordText();
+	</handler>
+    
+    <method name="hideNewRecordText">
+        this._newRecord.setAttribute('visibility','hidden');
+    </method>
+    
+	<event name="onreload" />
+
+    <view name="_savecontentbar" layout="axis:x;spacing:2;inset:2" x="2" height="28" width="$once{ parent.width }"
+        bgcolor="$once{ canvas.getThemeColor('baseMousecolorizer') }">
+        
+        <state applied="$once{ parent.parent.saveIsVisible }">
+	        <baseChooseIcon resourceN="filesave_rsc" labelid="144" y="2" 
+	        	onclick="this.parent.parent.doSaveEvent()" />
+        </state>	
+        <state applied="$once{ parent.parent.addIsVisible }">
+        	<baseChooseIcon resourceN="edit_add_rsc" labelid="155" y="2" 
+        		onclick="this.parent.parent.doAddEvent()" />  
+        </state>
+        <state applied="$once{ parent.parent.refreshIsVisible }">
+	        <baseChooseIcon resourceN="reload_rsc" labelid="156" y="2" 
+	        	onclick="this.parent.parent.doReloadEvent()" />
+        </state> 
+        <state applied="$once{ parent.parent.deleteIsVisible }">    
+	        <baseChooseIcon resourceN="button_cancel_rsc" labelid="157" y="2" 
+	        	onclick="this.parent.parent.doDeleteEvent()"  />
+        </state>
+        
+		  
+		 	 	      	
+    </view>
+    
+    <labelText name="_newRecord" x="120"
+   						visibility="hidden" labelid="344" fgcolor="green" width="150" />     
+    
+    <method name="addViewToObserver" args="obj">
+    	if (this.observerViews==null) this.observerViews = new Array();
+        this.observerViews.push(obj);
+    </method>
+	
+	<method name="doAddEvent">
+		this._newRecord.setAttribute('visibility','visible');
+		this.onnew.sendEvent();
+	</method>
+    
+    <method name="doSaveEvent">
+    	if (this.observerViews.length!=0){
+        	new lz.contentSaveWindow(canvas.main_content._content.inner,{refObj:this,saveObj:this.observerViews});
+        }
+    </method>
+	
+	<method name="doReloadEvent">
+		this.onreload.sendEvent();
+	</method>
+    
+    <method name="doDeleteEvent">
+    	new lz.confirmDeleteWindow(canvas.main_content._content.inner,{
+    	                   refObj:this,
+    	                   messagelabelid:confirmMessageLabelId
+    	               });
+    </method> 
+    
+    <method name="confirmDelete">
+    	this.ondelete.sendEvent();
+    </method>
+
+    <event name="ontabcontentleave" />
+    
+    <method name="close">
+        this.ontabcontentleave.sendEvent();
+        this.destroy();
+    </method>
+
+</class>
+
+</library>
diff --git a/WebContent/src/base/contentviews/baseContentView.lzx b/WebContent/src/base/contentviews/baseContentView.lzx
new file mode 100644
index 0000000..167b5bb
--- /dev/null
+++ b/WebContent/src/base/contentviews/baseContentView.lzx
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+<class name="baseContentView" extends="view">
+
+    <!---
+        If destroyByMethod is true, the clear content call will not destroy the views, but the method 
+        ontabcontentleave is still invoked, this can be handy if some connections must be closed before 
+        destroying / leaving the module, you could probably also use it to confirm leaving the module 
+     -->
+    <attribute name="destroyByMethod" value="false" type="boolean" />
+    
+    <event name="ontabcontentleave" />
+    
+    <handler name="oninit">
+    	canvas.currentContentView = this;
+    </handler>
+    
+    <!--
+        This Event is for sending additional Init Events, for example after the reconnect
+        the File-List has to be refreshed for the File-Browser Plugin 
+     -->
+    <event name="sendInit" />
+    
+    <method name="close">
+        if ($debug) Debug.write("close: ",this,this.destroyByMethod);
+        //Make sure any cursor status is reset
+		lz.Cursor.restoreCursor();
+		lz.Cursor.showHandCursor(true);
+		//Make sure any tooltip is cleared
+		canvas.clearToolTip();
+        this.ontabcontentleave.sendEvent();
+        if (!this.destroyByMethod) this.destroy();
+        return this.destroyByMethod;
+    </method>
+
+</class>
+
+</library>
diff --git a/WebContent/src/base/contentviews/confirmDeleteWindow.lzx b/WebContent/src/base/contentviews/confirmDeleteWindow.lzx
new file mode 100644
index 0000000..bb090da
--- /dev/null
+++ b/WebContent/src/base/contentviews/confirmDeleteWindow.lzx
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="confirmDeleteWindow" extends="labelExplorerBox" labelid="152"
+    docking="true" width="264" x="450" y="20" height="200">
+    
+    <attribute name="refObj" value="null" />
+    <attribute name="messagelabelid" value="153" type="number" />
+    <attribute name="confirmlabelid" value="154" type="number" />
+    
+    <handler name="oninit">
+        lz.ModeManager.makeModal(this);
+    </handler>
+    
+    <handler name="onclose">
+        lz.ModeManager.release(this);
+    </handler>
+    
+    <labelText labelid="$once{ parent.messagelabelid }" y="22" x="4"
+    		   width="$once{ parent.width - 8 }" multiline="true"/>
+    
+    <simpleLabelButton labelid="$once{ parent.confirmlabelid }" width="100" x="40" y="170">
+        <handler name="onclick">
+            //Debug.write("confirm");
+            this.parent.refObj.confirmDelete();
+            this.parent.close();
+        </handler>
+    </simpleLabelButton>
+    
+    <simpleLabelButton labelid="153" width="100" x="150" y="170">
+        <handler name="onclick">
+            //Debug.write("cancel");
+            this.parent.close();
+        </handler>
+    </simpleLabelButton>
+    
+</class>
+
+</library>
diff --git a/WebContent/src/base/contentviews/library.lzx b/WebContent/src/base/contentviews/library.lzx
new file mode 100644
index 0000000..4e6c9a1
--- /dev/null
+++ b/WebContent/src/base/contentviews/library.lzx
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+    <include href="baseContentView.lzx" />
+    <include href="baseContentSaveView.lzx" />
+    <include href="confirmDeleteWindow.lzx" />
+
+</library>
diff --git a/WebContent/src/base/externalJavaScript.lzx b/WebContent/src/base/externalJavaScript.lzx
new file mode 100644
index 0000000..c19e3c5
--- /dev/null
+++ b/WebContent/src/base/externalJavaScript.lzx
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<script>
+<![CDATA[
+
+
+	flash.external.ExternalInterface.addCallback("redirectToUrlCallback", null, redirectToUrlCallback);
+	flash.external.ExternalInterface.addCallback("getTimeZoneOffsetCallback", null, getTimeZoneOffsetCallback);
+    flash.external.ExternalInterface.addCallback("getBrowserInfoCallback", null, getBrowserInfoCallback);
+    flash.external.ExternalInterface.addCallback("getBrowserLangCallback", null, getBrowserLangCallback);
+
+	
+	var redirectToUrlReturnObject = null;
+	var timeZoneOffsetReturnObject = null;
+	var browserInfoReturnObject = null;
+	var browserLangReturnObject = null;
+	
+	
+	function redirectToUrl(url, returnObject) {
+		
+		redirectToUrlReturnObject = returnObject;
+		
+		flash.external.ExternalInterface.call("redirectToUrl", url);
+		
+		//lz.Browser.callJS("redirectToUrl",callback,this.redirectURL);
+	}
+	
+	function redirectToUrlCallback(returnValue) {
+		if ($debug) Debug.write("redirectToUrlCallback ",returnValue);
+		if (redirectToUrlReturnObject != null) {
+			redirectToUrlReturnObject.callback(returnValue);
+		}
+	}
+
+	
+	function getTimeZoneOffset(returnObject) {
+		
+		timeZoneOffsetReturnObject = returnObject;
+		
+		flash.external.ExternalInterface.call("getTimeZoneOffset");
+		
+		//lz.Browser.callJS("getTimeZoneOffset",getTimeZoneOffsetCallback);
+	}
+	
+	function getTimeZoneOffsetCallback(returnValue) {
+		if ($debug) Debug.write("getTimeZoneOffsetCallback ",returnValue);
+		if (timeZoneOffsetReturnObject != null) {
+			timeZoneOffsetReturnObject.callback(returnValue);
+		}
+	}
+	
+	
+	function getBrowserInfo(returnObject) {
+        
+        browserInfoReturnObject = returnObject;
+        
+        flash.external.ExternalInterface.call("getBrowserInfo");
+        
+        //lz.Browser.callJS("getBrowserInfo",callback);
+    }
+    
+    function getBrowserInfoCallback(returnValue) {
+        if ($debug) Debug.write("getBrowserInfoCallback ",returnValue);
+        if (browserInfoReturnObject != null) {
+            browserInfoReturnObject.callback(returnValue);
+        }
+    }
+    
+    
+    function getBrowserLang(returnObject) {
+        
+        browserLangReturnObject = returnObject;
+        
+        flash.external.ExternalInterface.call("getBrowserLang");
+        
+        //lz.Browser.callJS("getBrowserLang",callback);
+    }
+    
+    function getBrowserLangCallback(returnValue) {
+        if ($debug) Debug.write("getBrowserLangCallback ",returnValue);
+        if (browserLangReturnObject != null) {
+            browserLangReturnObject.callback(returnValue);
+        }
+    }
+	
+
+]]>
+</script>
+
+</library>
diff --git a/WebContent/src/base/functions.lzx b/WebContent/src/base/functions.lzx
new file mode 100644
index 0000000..27611d5
--- /dev/null
+++ b/WebContent/src/base/functions.lzx
@@ -0,0 +1,409 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<script>
+<![CDATA[
+
+var labelObj;
+    
+var tempActionForNavi = null;
+
+// Load Labels from List
+var labels = new Object();
+
+String.prototype.startsWith = function(prefix) {
+    return (this.indexOf(prefix) === 0);
+};	
+
+var _labelObject = new Array();
+
+var RegExpTooltiplist = null;
+
+function disablesTooltips(obj){
+  if(RegExpTooltiplist!=null){
+    RegExpTooltiplist.destroy();
+    RegExpTooltiplist=null;
+  }
+  RegExpTooltiplist = obj;
+}
+
+function setLabelObject(lableObj){
+	_labelObject = lableObj;
+}
+
+function getLabelObjectById(labelid){
+	for (var i=0;i<_labelObject.length;i++){
+		if (Number(_labelObject[i]['labelid'])==labelid){
+			return _labelObject[i];
+		}
+	}
+}
+
+function getLabelNameGlob(labelid){
+	for (var i=0;i<_labelObject.length;i++){
+		if (Number(_labelObject[i]['labelid'])==labelid){
+			return _labelObject[i]['labelvalue'];
+		}
+	}
+}
+    
+var currentMouseWheelObject = null;
+    
+function setCurrentMouseWheelObject(obj) {
+    currentMouseWheelObject=obj;
+}    
+function getCurrentMouseWheelObject(obj) {
+    return currentMouseWheelObject;
+}  
+function disableCurrentMouseWheelObject() {
+    currentMouseWheelObject=null;
+}  
+
+function setLabelObjectByHundred(no,obj){
+    canvas.sendViaLocalConnection(canvas.rtmp_lc_name, "hibAdapter_setLabelObjectByHundred", [no, obj]); 
+   	for (var i = 0; i < obj.length; ++i) {
+	    labels["id" + obj[i].id] = obj[i].value;
+   	}
+}
+
+function getLabelTag(labelid){
+	var l = labels["id" + labelid];
+	if (l != undefined) {
+		if ($debug) l += " [" + labelid + "]";
+	} else {
+		l = "Error Missing [" + labelid + "]";
+	}
+    return l;
+}
+
+function quicklinkAct(action) {
+    // if($debug) Debug.write("FUNC/quicklinkAct",action);
+    loadContent({action: action, params: null},null,null);
+}            
+
+function loadContent(obj,parentobj,preparentobj){
+    if($debug) Debug.write("FUNC/loadContent: ", obj);
+    
+	if (obj.action!="logout") {
+	    tempActionForNavi = {action: obj.action, params: obj.params};
+		if (!clearStageContent()) {
+			loadContentByTempActionForNavi();
+		}
+	} else {
+		new lz.logoutConfirm(canvas,{objectsToClean: obj});
+	}
+    
+}
+    
+function loadContentByTempActionForNavi(){
+    // if($debug) Debug.write("FUNC/loadContentByTempActionForNavi");
+    
+	if (canvas.roomJumpId != 0) {
+		canvas.initroomid = canvas.roomJumpId;
+        canvas.thishib.getRoomById.doCall();
+		canvas.roomJumpId = 0;
+	} else {
+        if($debug) Debug.write("FUNC/loadContentByString -1- ",tempActionForNavi);
+        if($debug) Debug.write("FUNC/loadContentByString -2- ",canvas[tempActionForNavi.action]);
+        if($debug) Debug.write("FUNC/loadContentByString -3- ",lz[canvas[tempActionForNavi.action]]);
+        
+        new lz[canvas[tempActionForNavi.action]](canvas.main_content._content.inner, {params: tempActionForNavi.params});
+	}
+}    
+
+function clearStageContent(){
+    return canvas.main_content._content.clearAll();
+}
+
+function setLabelObject(labelObjRef){
+    // if($debug) Debug.write("FUNC/setLabelObject",labelObjRef);
+    labelObj = labelObjRef;
+}
+
+function getLabelNameXMLCRM(labelid){
+    // if($debug) Debug.write("FUNC/getLabelNameXMLCRM",labelid);
+    for (var i=0;i<labelObj.length;i++){
+        if (labelid==labelObj[i].fieldvalues_id){
+            return labelObj[i].value;
+        }
+    }
+    
+}
+
+function getStringTime(){
+    var dateObj = new Date();
+    var hours = dateObj.getHours();
+    if (hours<10) hours="0"+hours;
+    var minutes = dateObj.getMinutes();
+    if (minutes<10) minutes="0"+minutes;
+    return ''+hours+':'+minutes;
+}   
+
+function getStringTimeWithSeconds(){
+    var dateObj = new Date();
+    var hours = dateObj.getHours();
+    if (hours<10) hours="0"+hours;
+    var minutes = dateObj.getMinutes();
+    if (minutes<10) minutes="0"+minutes;
+    var seconds = dateObj.getSeconds();
+    if (seconds<10) seconds="0"+seconds;
+    return ''+hours+':'+minutes+':'+seconds;
+}   
+
+function parseDateToString(dateObj){
+    // if($debug) Debug.write("FUNC/parseDateToString",dateObj);
+    if (dateObj==null) return "";
+    var d = dateObj.getDate();
+    if (d<10) d = "0"+d;
+    var m = dateObj.getMonth()+1;
+    if (m<10) m = "0"+m;
+    var y = dateObj.getFullYear();
+    if (y<10) y = "0"+y;
+    return d+'.'+m+'.'+y;
+}
+
+function parseDateToStringTimeOnly(dateObj){
+    // if($debug) Debug.write("FUNC/parseDateToStringTime",dateObj);
+    if (dateObj==null) return "";
+    var d = dateObj.getDate();
+    if (d<10) d = "0"+d;
+    var mo = dateObj.getMonth()+1;
+    if (mo<10) mo = "0"+mo;
+    var y = dateObj.getFullYear();
+    if (y<10) y = "0"+y;
+    var h = dateObj.getHours();
+    if (h<10) h = "0"+h;    
+    var m = dateObj.getMinutes();
+    if (m<10) m = "0"+m;        
+    return h+':'+m;
+}
+
+function parseTimeStringToDate(t){
+    // if($debug) Debug.write("FUNC/parseStringToTime",t);
+    if (t.length==5){
+        var d = 1;
+        var m = 1;
+        var y = 1970;
+        var std = Number(t.substring(0, 2));
+        var min = Number(t.substring(3, 5));
+        if (!isNaN(d) && !isNaN(m) && !isNaN(y)){
+            if ($debug) Debug.write("parseTimeStringToDate: ",new Date(y, m-1, d, std, min))
+            return new Date(y, m-1, d, std, min);
+        } else {
+            return new Date();
+        }
+    } else {
+        return new Date();
+    }
+}
+
+function parseDateToStringTime(dateObj){
+    // if($debug) Debug.write("FUNC/parseDateToStringTime",dateObj);
+    if (dateObj==null) return "";
+    var d = dateObj.getDate();
+    if (d<10) d = "0"+d;
+    var mo = dateObj.getMonth()+1;
+    if (mo<10) mo = "0"+mo;
+    var y = dateObj.getFullYear();
+    if (y<10) y = "0"+y;
+    var h = dateObj.getHours();
+    if (h<10) h = "0"+h;    
+    var m = dateObj.getMinutes();
+    if (m<10) m = "0"+m;        
+    return d+'.'+mo+'.'+y+' '+h+':'+m;
+}
+
+function parseDateToStringTimeSeconds(dateObj){
+    // if($debug) Debug.write("FUNC/parseDateToStringTime",dateObj);
+    if (dateObj==null) return "";
+    var d = dateObj.getDate();
+    if (d<10) d = "0"+d;
+    var mo = dateObj.getMonth()+1;
+    if (mo<10) mo = "0"+mo;
+    var y = dateObj.getFullYear();
+    if (y<10) y = "0"+y;
+    var h = dateObj.getHours();
+    if (h<10) h = "0"+h;    
+    var m = dateObj.getMinutes();
+    if (m<10) m = "0"+m; 
+    var s = dateObj.getSeconds();
+    if (s<10) s = "0"+s; 
+    return d+'.'+mo+'.'+y+' '+h+':'+m+':'+s;
+}
+
+function parseStringToDate(t){
+    // if($debug) Debug.write("FUNC/parseStringToDate",t);
+    if (t.length==10){
+        var d = Number(t.substring(0, 2));
+        var m = Number(t.substring(3, 5));
+        var y = Number(t.substring(6, 10));
+        if (!isNaN(d) && !isNaN(m) && !isNaN(y)){
+            return new Date(y, m-1, d);
+        } else {
+            return new Date();
+        }
+    } else {
+        return new Date();
+    }
+}
+
+function parseStringToDateTime(t){
+    // if($debug) Debug.write("FUNC/parseStringToDate",t);
+    if (t.length==15){
+        var d = Number(t.substring(0, 2));
+        var m = Number(t.substring(3, 5));
+        var y = Number(t.substring(6, 10));
+        var h = Number(t.substring(10, 12));
+        var min = Number(t.substring(13, 15));
+        if (!isNaN(d) && !isNaN(m) && !isNaN(y)){
+            if ($debug) Debug.write("parseStringToDateTime+: ",new Date(y, m-1, d, h, min))
+            return new Date(y, m-1, d, h, min);
+        } else {
+            return new Date();
+        }
+    } else {
+        return new Date();
+    }
+}
+
+function getStringDateFileSave(){
+    // if($debug) Debug.write("FUNC/getStringDateFileSave");
+    var dateObj = new Date();
+    var hours = dateObj.getHours();
+    if (hours<10) hours="0"+hours;
+    var minutes = dateObj.getMinutes();
+    if (minutes<10) minutes="0"+minutes;
+    var date = dateObj.getDate();
+    if (date<10) date="0"+date;
+    var month = dateObj.getMonth()+1;
+    if (month<10) month="0"+month;
+    return date+'_'+month+'_'+dateObj.getFullYear()+'_at_'+hours+'_'+minutes;
+} 
+
+function getStringTimeByTimeStamp(tStamp){
+    if ($debug) Debug.write("getStringTimeByTimeStamp "+tStamp);
+    var dateObj = new Date(tStamp);
+    var hours = dateObj.getHours();
+    if (hours<10) hours="0"+hours;
+    var minutes = dateObj.getMinutes();
+    if (minutes<10) minutes="0"+minutes;
+    var seconds = dateObj.getSeconds();
+    if (seconds<10) seconds="0"+seconds;
+    return ''+hours+':'+minutes+':'+seconds;
+}  
+
+
+function strtrim(str)
+{
+    for(var i = 0; str.charCodeAt(i) < 33; i++);
+    for(var j = str.length-1; str.charCodeAt(j) < 33; j--);
+    return str.substring(i, j+1);
+}
+
+function parseDateTimeStringFromXmlString(str) { 
+	//0123456789012345678901234567890
+	//2012-03-08T06:30:00.000+01:00
+	//2012-03-11T15:00:00.713Z
+	var tYear = str.substr(0,4);
+	var tMonth = str.substr(5,2);
+	var tDay = str.substr(8,2);
+	var tHour = str.substr(11,2);
+	var tMin = str.substr(14,2);
+	return ""+tDay+"."+tMonth+"."+tYear+" "+tHour+":"+tMin;
+}
+
+function parseDateStringFromXmlString(str) { 
+	//0123456789012345678901234567890
+	//2012-03-08T06:30:00.000+01:00
+	//2012-03-11T15:00:00.713Z
+	var tYear = str.substr(0,4);
+	var tMonth = str.substr(5,2);
+	var tDay = str.substr(8,2);
+	return ""+tDay+"."+tMonth+"."+tYear;
+}
+
+function parseTimeStringFromXmlString(str) { 
+	//0123456789012345678901234567890
+	//2012-03-08T06:30:00.000+01:00
+	//2012-03-11T15:00:00.713Z
+	var tHour = str.substr(11,2);
+	var tMin = str.substr(14,2);
+	
+	return ""+tHour+":"+tMin;
+}
+
+/*
+ * parse date from string
+ * sample strings:
+ * 2012-03-05
+ */
+function parseDateOnlyFromXmlString(str) { 
+	var tYear = str.substr(0,4);
+	var tMonth = str.substr(5,2);
+	var tDay = str.substr(8,2);
+	return new Date(tYear,Number(tMonth)-1,tDay);
+}
+
+
+/*
+ * parse date from string
+ * sample strings:
+ * 0123456789012345678901234567890
+ * 2012-03-08T06:30:00.000+01:00
+ * 2012-03-11T15:00:00.713Z
+ */
+function parseDateTimeFromXmlString(str) { 
+	var tYear = str.substr(0,4);
+	var tMonth = str.substr(5,2);
+	var tDay = str.substr(8,2);
+	var tHour = str.substr(11,2);
+	var tMin = str.substr(14,2);
+	return new Date(tYear,Number(tMonth)-1,tDay,tHour,tMin,0);
+}
+
+/**
+ * Correct REST format for java.util.Calendar is: yyyy-mm-ddTHH:MM:SS
+ *
+ *
+ */
+function parseDateToRestDateCalendar(dateObj){
+    if($debug) Debug.write("FUNC/parseDateToStringTime 1",dateObj);
+    if (dateObj==null) return "";
+    var d = dateObj.getDate();
+    if (d<10) d = "0"+d;
+    var mo = dateObj.getMonth()+1;
+    if (mo<10) mo = "0"+mo;
+    var y = dateObj.getFullYear();
+    var h = dateObj.getHours();
+    if (h<10) h = "0"+h;    
+    var m = dateObj.getMinutes();
+    if (m<10) m = "0"+m; 
+    var s = dateObj.getSeconds();
+    if (s<10) s = "0"+s; 
+    if($debug) Debug.write("FUNC/parseDateToStringTime 2",""+y+"-"+mo+"-"+d+"T"+h+":"+m+":"+s);
+    return ""+y+"-"+mo+"-"+d+"T"+h+":"+m+":"+s;
+}
+
+]]>
+</script>
+		
+</library>
diff --git a/WebContent/src/base/hibernate/hibRtmpConnection.lzx b/WebContent/src/base/hibernate/hibRtmpConnection.lzx
new file mode 100644
index 0000000..cbf8fc6
--- /dev/null
+++ b/WebContent/src/base/hibernate/hibRtmpConnection.lzx
@@ -0,0 +1,1895 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+<dataset name="myresultnavi" />
+
+<dataset name="languagesSet" />        
+
+<class name="userStatus" extends="view" width="250" height="30">
+    <attribute name="statusText" type="string" />
+    <attribute name="statusColor" type="number" value="0" />
+
+    <text name="status" width="240" height="20" x="5" y="5" fontstyle="bold" fgcolor="0" text="defaulttext" fontsize="10"/>
+
+    <handler name="oninit">
+        this.status.setAttribute("text", this.statusText);
+        this.status.setAttribute("fgcolor", this.statusColor);
+        this.setAttribute("visibility", "visible");
+        lz.Timer.addTimer( new LzDelegate( this, "selfDestroy" ), 3000 );
+    </handler>
+
+    <method name="selfDestroy" args="ignore=null">
+        this.destroy();
+    </method>
+</class>
+
+<class name="hibRtmpConnection" extends="rtmpConnection" debug="false"
+    src="$once{ this.getUrl() }" >
+
+    <attribute name="counterror" type="number" value="0" />
+    
+    <attribute name="loaderVar" value="null" />
+    
+    <attribute name="userScope" value="hibernate" type="string" />
+    
+    <!-- refreshing the session regulary -->
+    <attribute name="refreshDelegate" value="null" />
+    
+    <!-- UserId-->
+    <attribute name="UserID" value="1" type="number" />
+    <!-- reconnect after each conferenceView -->
+    <attribute name="reconnectAfterRoomleft" type="boolean" value="false" />
+    <attribute name="reconnectedRoomInstance" value="null" />
+    
+    <attribute name="reconnectionAction" value="false" type="boolean" />
+    <attribute name="reconnectObjRef" value="null" />
+         
+     <attribute name="userobject" value="null" />
+     
+     <!-- default will be loaded on startup -->
+     <attribute name="userlang" value="1" type="number" />
+     
+     <!-- The default Language will be loaded on init  -->
+     <attribute name="initlanguageLoaded" value="false" type="boolean" />
+     
+     <!-- This domain is the orgdomain used in the video-conference -->
+     <attribute name="conferencedomain" value="public" type="string" />
+     
+     <!-- if this connection is used for testing the app
+     see test-setup.lzx -->
+     <attribute name="testAppLoading" value="false" type="boolean" />
+     
+     <!-- 
+        the real ROOM_ID
+     -->
+     <attribute name="currentroomid" value="0" type="number" />
+     
+     <!-- This is the current domain the user has logged-in -->
+     <attribute name="currentdomain" value="domain1" type="string" />
+     <attribute name="currentdomainObj" value="domain1" type="string" />
+     
+     <!--- the current Invitation-Object -->
+     <attribute name="currentInvitation" value="null" />
+    
+    <!-- shows what kind of conferenceView it is at the moment
+        wether its conferenceView or audienceView -->
+    <attribute name="modus" value="" type="string" />
+    
+    <!-- shows what kind of room the use is public or private -->
+    <attribute name="roomtype" value="" type="string" />
+        
+    <attribute name="showKickMessage" value="false" type="boolean"/>
+    <attribute name="showFullMessage" value="false" type="boolean"/>
+         
+    <attribute name="useRTMPT" value="false" type="boolean" />
+    
+    <method name="getProtocol">
+    	if (canvas.useSSL) {
+    		return "rtmps";
+    	}
+    	if (this.useRTMPT) {
+    		return "rtmpt";
+    	}
+    	return "rtmp";
+    </method>
+    
+    <method name="getPort">
+    	if (canvas.useSSL) {
+    		if (canvas.isSlaveHosted) {
+    			return canvas.slaveRtmpsslport;
+    		}
+            return canvas.rtmpsslport;
+        }
+    	if (this.useRTMPT) {
+    		if (canvas.isSlaveHosted) {
+    			return canvas.red5httpport; //TODO probably slave equivalent need to be added (or maybe this is not used)
+    		}
+    		return canvas.red5httpport;
+    	}
+    	if (canvas.isSlaveHosted) {
+    		return canvas.slaveRtmpport;
+    	}
+    	return canvas.rtmpport;
+    </method>
+    
+    <method name="getHost">
+    	if (canvas.isSlaveHosted) {
+    		return canvas.slaveRtmphostlocal;
+    	}
+    	return canvas.rtmphostlocal;
+    </method>
+    
+    <method name="getWebappRootKey">
+    	if (canvas.isSlaveHosted) {
+    		return canvas.slaveWebAppRootKey;
+    	}
+    	return canvas.webAppRootKey;
+    </method>
+         
+    <!-- 
+    	canvas.getUrl() can not be reused since it has different protocol and port 
+    	and potentially in cluster another host, the only thing that stays the same
+    	no matter if hosted on slave or on master, is the scope, so
+    	userScope always stays the same
+     -->
+    <method name="getUrl">
+        return this.getProtocol() + '://' + this.getHost() + ':' + this.getPort() 
+        			+ '/' + this.getWebappRootKey() + '/' + this.userScope;
+    </method>
+             
+     <!--
+        The onconnect Method is triggered several times:
+             - When you enter a room the NetConnection will close and reconnect to the Scope of the Room
+             - When you leave the room again it will be re-connected to the default scope again
+      -->
+     <handler name="onconnect">
+        if($debug) Debug.write("hibRtmpConnection/onconnect");
+        if (this.reconnectionAction){
+        	if (canvas.wicketsid == null) {
+            	this.overwritePublicSID.doCall();
+	            this.setUsernameReconnect.doCall();
+            } else {
+	            canvas.sessionId = canvas.wicketsid;
+				canvas.sendViaLocalConnection(canvas.vid_lc_name, "setSessionId", [canvas.sessionId]);
+	            this.getPublicSID.doCall();
+            }
+        } else if (this.reconnectAfterRoomleft) {
+            //Return to content after reconnect
+            canvas.thishib.reconnectedRoomInstance.destroy();
+            this.overwritePublicSID.doCall();
+            this.setUsernameReconnect.doCall();
+        } else if (canvas.wicketsid != null) {
+            canvas.sessionId = canvas.wicketsid;
+			canvas.sendViaLocalConnection(canvas.vid_lc_name, "setSessionId", [canvas.sessionId]);
+			if (canvas.thishib.loaderVar != null) {
+            	canvas.thishib.loaderVar.setProgress();
+            }
+            this.getPublicSID.doCall();
+        } else {
+            this.refreshDelegate = new LzDelegate( this, "refreshSessionMeth" );
+            //lz.Timer.addTimer( this.refreshDelegate, 60000 );
+            lz.Timer.addTimer( this.refreshDelegate, canvas.refreshSession );
+            if (canvas.thishib.loaderVar != null) {
+            	canvas.thishib.loaderVar.setProgress();
+            }
+            
+            //Load Session Data
+            this.getsessiondata.callRPC();    
+        }
+    </handler>
+    
+    <handler name="ondisconnect">
+        canvas.sendViaLocalConnection(canvas.rtmp_lc_name, "disconnect", [canvas.thishib.src]);
+    </handler>
+    
+    <method name="reconnectComplete">
+         if (this.reconnectionAction){
+            this.reconnectionAction = false;
+            this.reconnectObjRef.reconnectSuccess();
+        } else if (this.reconnectAfterRoomleft) {
+            loadContentByTempActionForNavi();
+        }
+        canvas.currentContentView.sendInit.sendEvent(this);
+    </method>
+    
+	<handler name="onerror" >
+	<![CDATA[
+		canvas.remoteLogWrite("error status='" + this.status + "'; src='" + this.src + "'; lastCalled='" + this.lastCalled
+			+ "'; showKickMessage='" + this.showKickMessage + "'; showFullMessage='" + this.showFullMessage
+			+ "'; reconnectionAction='" + this.reconnectionAction + "'; reconnectAfterRoomleft='" + this.reconnectAfterRoomleft + "'");
+		if (this.showFullMessage) {
+			new lz.labelerrorPopup(canvas,{errorlabelid:99});
+			this.showFullMessage = false;
+			return;
+		} else if (this.showKickMessage) {
+			new lz.labelerrorPopup(canvas,{errorlabelid:606});
+			canvas._loadingAll.hideContentOnly();
+			return;
+		} else if (this.reconnectionAction){
+			this.connect();
+		} else if (this.reconnectAfterRoomleft) {
+			if ($debug) Debug.write("this.reconnectAfterRoomleft: ",this.reconnectAfterRoomleft);
+			this.counterror=0;
+			this.connect();
+		} else {
+			if (canvas.isRemoteUser() && (this.status == 'NetConnection.Connect.Closed' 
+					|| this.status == 'NetConnection.Connect.NetworkChange'))
+			{
+				if (null != canvas.REDIRECT_URL_FOR_EXTERNAL_USERS) {
+					new lz.redirectBox(canvas, {
+							redirectURL:canvas.REDIRECT_URL_FOR_EXTERNAL_USERS
+							, maxTime: 0
+						});
+				}
+				this.counterror = 6; //NO more reconnects
+			}
+			this.useRTMPT = true
+			var src = getUrl();
+			this.setAttribute('src',src);
+			//Debug.write("new src ",this.src);
+			if (this.counterror<3){
+				this.counterror++;
+				//Debug.write("try ",this.counterror,"one");
+				if (canvas.thishib.loaderVar != null) {
+					canvas.thishib.loaderVar.error.setAttribute('text',"try "+this.counterror);
+				}
+				this.connect();
+			} else {
+				//Debug.write("connection failed");
+				if (canvas.thishib.loaderVar != null) {
+					canvas.thishib.loaderVar.error.setAttribute('text',this.status);
+				}
+				canvas.setAttribute('loadingmessage','connection failed');
+				new lz.labelerrorPopup(canvas,{errorlabelid:556});
+			}
+			if (canvas.thishib.loaderVar != null) {
+				canvas.thishib.loaderVar._src.setAttribute('text',src);
+			}
+		}
+	]]>
+	</handler>    
+    
+    <method name="refreshSessionMeth" args="calleeObj">
+        this.refreshSession.doCall();
+    </method>
+    
+    <!-- This Function is just for refreshing the Session -->
+    <netRemoteCallHib name="refreshSession" funcname="userservice.refreshSession" showLoading="false" >    
+        <netparam><method name="getValue">return canvas.sessionId;</method></netparam>   
+        <handler name="ondata" args="value">
+            //if ($debug) Debug.write("hibRtmpConnection/refreshSession [",value,"]");
+            lz.Timer.addTimer( parent.refreshDelegate, canvas.refreshSession );
+        </handler>
+    </netRemoteCallHib>
+      
+    <netRemoteCallHib name="getsessiondata" funcname="xmlcrm.getsessiondata" >      
+        <handler name="ondata" args="value">
+            //The onResult-Handler will be called be the rtmpconnection
+            if ($debug) Debug.write("hibRtmpConnection/getsessiondata [",value,"]");
+            canvas.sessionObject = value;
+            canvas.sessionId = value.session_id;
+			canvas.sendViaLocalConnection(canvas.vid_lc_name, "setSessionId", [canvas.sessionId]);
+			if (canvas.thishib.loaderVar != null) {
+            	canvas.thishib.loaderVar.setProgress();
+            }
+            parent.getPublicSID.doCall();
+        </handler>  
+    </netRemoteCallHib>
+     
+    <netRemoteCallHib name="getPublicSID" funcname="getPublicSID" >      
+        <handler name="ondata" args="value">
+            //The onResult-Handler will be called be the rtmpconnection
+            if ($debug) Debug.write("hibRtmpConnection/getPublicSID [",value,"]");
+            canvas.publicSID = value;     
+			if (canvas.thishib.loaderVar != null) {
+            	canvas.thishib.loaderVar.setProgress();
+            }
+			parent.getLanguages.doCall();
+        </handler>  
+    </netRemoteCallHib>
+    
+    <netRemoteCallHib name="overwritePublicSID" funcname="overwritePublicSID" >     
+        <netparam><method name="getValue"> return canvas.publicSID;</method></netparam>
+        <handler name="ondata" args="value">
+            //The onResult-Handler will be called be the rtmpconnection
+            if ($debug) Debug.write("overwritePublicSID: ",value);
+        </handler>  
+    </netRemoteCallHib>    
+    
+    <netRemoteCallHib name="getLanguages" funcname="languageservice.getLanguages" 
+                      dataobject="languagesSet" >      
+        <handler name="ondata" args="value">
+            //The onResult-Handler will be called be the rtmpconnection
+            //Debug.write("getLanguages: ",value);
+			if (canvas.thishib.loaderVar != null) {
+            	canvas.thishib.loaderVar.setProgress();
+            }
+            parent.getDefaultLanguage.doCall();
+        </handler>  
+    </netRemoteCallHib>    
+    
+    <method name="setDefaultUserLanguage">
+	    <![CDATA[
+	        if (userlang == -1 && canvas.language_id != 0) {
+	            userlang = canvas.language_id;
+	        } else if (userlang == -1) {
+	            var lang_id = canvas.default_lang_id;
+	            
+	            var browserLang = flash.external.ExternalInterface.call("function(){return window.navigator.systemLanguage || window.navigator.userLanguage || window.navigator.language;}");
+	            if (browserLang == null) {
+	                browserLang = "" + System.capabilities.language;
+	            }
+	            if (browserLang != null && browserLang.length > 1) {
+	                var lngCode = browserLang.substring(0, 2);
+	                
+	                //openlaszlo XPath is able to search nothing, so will iterate
+	                var xpath = "languagesSet:/item";
+	                var list = languagesSet.getPointer().xpathQuery(xpath);
+	                
+	                var partMatch = -1, fullMatch = -1; 
+	                for (var i = 1; list != null && i <= list.length; ++i) {
+	                    xpath = "languagesSet:/item[" + i + "]/code/text()";
+	                    var val = languagesSet.getPointer().xpathQuery(xpath);
+	                    if (val != null && val.length > 1) {
+	                        var partCode = ("" + val).substring(0, 2);
+	                        
+	                        if (browserLang == val) {
+	                            fullMatch = i;
+	                        } else if (lngCode == val) {
+	                            partMatch = i;
+	                        } else if (partCode == lngCode) {
+	                            partMatch = i;
+	                        }
+	                    }
+	                }
+	                if (partMatch != -1 || fullMatch != -1) {
+	                    i = (fullMatch != -1) ? fullMatch : partMatch;
+	                    xpath = "languagesSet:/item[" + i + "]/language_id/text()";
+	                    lang_id = languagesSet.getPointer().xpathQuery(xpath);
+	                }
+	            }
+	            
+	            if (canvas.language_id == 0) {
+	                userlang = lang_id;
+	            } else {
+	                userlang = canvas.language_id;
+	            }
+	        }
+	    ]]>
+    </method>
+    
+    <netRemoteCallHib name="logoutUser" funcname="xmlcrm.logoutUser"
+        remotecontext="$once{ canvas.thishib }" activeErrorHandler="true" 
+        isCallBackHandler="true">
+        <netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+        <handler name="sendCallBack">
+        <![CDATA[
+            //The onResult-Handler will be called be the rtmpconnection
+            if ($debug) Debug.write("sendCallBack logoutUser: ");    
+            parent.initlanguageLoaded = false;
+            
+            var g = canvas.getUserData();
+            g["username"] = '';
+            g["userpass"] = '';
+            g["userquality"] = null;
+            g["usercolor"] = null;
+            g["userlang"] = null;
+            g["saveuserdata"]=false;
+            g["storedSession"] = "";
+            canvas.setUserData(g);
+            canvas.setColorStyle(canvas.baseColorScheme);
+            
+            parent.userlang = -1;
+            parent.setDefaultUserLanguage();
+
+            parent.getLanguageByIdAndMax.start = 0;
+            parent.getLanguageByIdAndMax.doCall();
+        ]]>
+        </handler>          
+    </netRemoteCallHib>     
+    
+    <netRemoteCallHib name="setUsernameReconnect" funcname="setUsernameReconnect" remotecontext="$once{ canvas.thishib }" >   
+        <netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+        <netparam><method name="getValue">return canvas.user_id;</method></netparam>
+        <netparam><method name="getValue">return canvas.currentuser;</method></netparam>
+        <netparam><method name="getValue">return canvas.firstName;</method></netparam>
+        <netparam><method name="getValue">return canvas.lastName;</method></netparam>   
+        <netparam><method name="getValue">return canvas.picture_uri;</method></netparam>   
+        <handler name="ondata" args="value">
+            //The onResult-Handler will be called be the rtmpconnection
+            if ($debug) Debug.write("setUsernameReconnect: ",canvas.user_id,value);   
+            parent.reconnectComplete();
+        </handler>  
+    </netRemoteCallHib>    
+        
+    <netRemoteCallHib name="getDefaultLanguage" funcname="languageservice.getDefaultLanguage" >      
+        <handler name="ondata" args="value">
+            //The onResult-Handler will be called be the rtmpconnection
+            canvas.default_lang_id = value;
+            if ($debug) Debug.write("getDefaultLanguage: ",value,"; canvas.lang = ", canvas.language_id);
+            if (canvas.language_id==0){
+                parent.userlang = canvas.default_lang_id;
+            } else {
+                parent.userlang = canvas.language_id;
+            }
+            parent.getLanguageByIdAndMax.doCall();
+        </handler>  
+    </netRemoteCallHib>      
+    
+	<netRemoteCallHib name="getInvitationByHash" activeErrorHandler="true" funcname="invitationservice.getInvitationByHash">
+		<netparam name="invitationHash"><method name="getValue">return canvas.invitationHash;</method></netparam>
+		<handler name="ondata" args="value">
+		<![CDATA[
+			if (canvas.thishib.loaderVar != null) {
+				canvas.thishib.loaderVar.close();
+			}
+			//The onResult-Handler will be called be the rtmpconnection
+			if ($debug) Debug.write("getInvitationByHash: ",value);
+			if (value<0){
+			} else {
+				if (value.allowEntry) {
+					parent.currentInvitation = value;
+					new lz.invitationQuickLoader(canvas.main_content._content.inner);
+				} else {
+					var addInfo = "" + value.validFrom +"<br/> - <br/>"+ value.validTo;
+					var dlg = new lz.rpcErrorDialog(canvas,{errorid:-50,addInfo:addInfo});
+				}
+			}
+		]]>
+		</handler>
+	</netRemoteCallHib> 
+    
+	<netRemoteCallHib name="secureLoginByRemote" activeErrorHandler="true" funcname="xmlcrm.secureLoginByRemote" >
+		<netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+		<netparam name="remoteSessionId"><method name="getValue">return canvas.secureHash;</method></netparam>
+		<handler name="ondata" args="value">
+		<![CDATA[
+			if (canvas.thishib.loaderVar != null) {
+				canvas.thishib.loaderVar.close();
+			}
+			//The onResult-Handler will be called be the rtmpconnection
+			if ($debug) Debug.write("secureLoginByRemote: ",value);
+			if (value < 0) {
+			} else {
+				if (value == null) {
+					new lz.errorPopup(canvas,{error:'Invalid Hash'});
+					return;
+				}
+				
+				canvas.showNickNameDialog = value.showNickNameDialog;
+				if ($debug) Debug.write("markSessionAsLogedIn9 ",canvas.showNickNameDialog);
+				
+				canvas.initroomid = value.room_id;
+				canvas.becomemoderator = value.becomemoderator;
+				canvas.showAudioVideoTest = value.showAudioVideoTest;
+				canvas.landingZone = value.landingZone;
+				
+				canvas.roomRecordingId = value.roomRecordingId;
+				
+				if (canvas.roomRecordingId == null) {
+					canvas.roomRecordingId = 0;
+				}
+				
+				if (canvas.showNickNameDialog) {
+					new lz.chooseNickName(canvas);
+				} else {
+					parent.getCurrentRoomClient.doCall();
+				}
+			}
+		]]>
+		</handler>
+	</netRemoteCallHib>  
+    
+    <netRemoteCallHib name="loginUserByRemote" activeErrorHandler="true" 
+        funcname="xmlcrm.loginUserByRemote" >          
+        <netparam name="remoteSessionId"><method name="getValue">return canvas.remoteUserSid;</method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+                
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("loginUserByRemote -1-: ",value);
+                if ($debug) Debug.write("loginUserByRemote -2-: ",canvas.remoteUserSid);
+                if (value<0){
+                    
+                } else {
+                    parent.getCurrentRoomClient.doCall();
+                }
+            ]]>
+        </handler>   
+    </netRemoteCallHib>  
+    
+    <netRemoteCallHib name="getCurrentRoomClient" funcname="xmlcrm.getCurrentRoomClient" >          
+        <netparam name="sessionId"><method name="getValue">return canvas.sessionId;</method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("getCurrentRoomClient: ",value);
+                if (value!=null){
+                    
+                    canvas.setAttribute('currentuser',value.firstname+" "+value.lastname);
+                    
+                    //Somehow this leads to a bug in the implementation of the secure User Login
+                    canvas.setAttribute('user_id',value.user_id);
+                    
+                    canvas.setAttribute('allowRecording',value.allowRecording);
+                    
+                    canvas.setAttribute('firstName',value.firstname);
+                    canvas.setAttribute('lastName',value.lastname);
+                    
+                    hib.userobject.firstname = value.firstname;
+                    hib.userobject.lastname = value.lastname;
+                    
+                    canvas.setAttribute('mail','');
+                    canvas.setAttribute('lastLogin','');
+                    canvas.setAttribute('official_code','');
+                    canvas.setAttribute('picture_uri',value.picture_uri);
+                    canvas.setAttribute('language','');
+                    
+                    if ($debug) Debug.write("canvas.landingZone :: ",canvas.landingZone);
+                    
+                    if (canvas.landingZone == "dashboard") {
+                        canvas.destroyExitButton = false;
+                        parent.getRoomTypes.doCall();
+                    } else if (canvas.roomRecordingId > 0) {
+                    	if (canvas.thishib.loaderVar != null) {
+                        	canvas.thishib.loaderVar.close();
+                        }
+                        //parent.getRoomById.doCall();
+                        var obj = new Array();
+                        obj["action"] = "recordModule";
+                        loadContent(obj,null,null);
+                    } else if (canvas.wicketroomid > 0) {
+                    	canvas.initroomid = canvas.wicketroomid;
+                        parent.getRoomById.doCall();
+                    } else {
+                    	if (canvas.thishib.loaderVar != null) {
+	                        canvas.thishib.loaderVar.close();
+                        }
+                        parent.getRoomById.doCall();
+                    }
+                }
+            ]]>
+        </handler>   
+    </netRemoteCallHib>
+    
+	<netRemoteCallHib name="getRoomById" funcname="conferenceservice.getRoomById" >          
+		<netparam name="sessionId"><method name="getValue">return canvas.sessionId;</method></netparam>
+		<netparam name="roomId"><method name="getValue">return canvas.initroomid;</method></netparam>
+		<handler name="ondata" args="value">
+		<![CDATA[
+			//The onResult-Handler will be called be the rtmpconnection
+			if ($debug) Debug.write("getRoomById: ",value);
+			if (value!=null){
+				if (canvas.wicketsid != null) {
+					canvas.thishib.loaderVar.close();
+				}
+				if (canvas.directUserLogin) {
+					canvas.directRoomObj = value;
+					canvas.thishib.loaderVar.close();
+				} else {
+					canvas.setRoomValues(value.roomtype.roomtypes_id,value.rooms_id,value);
+					canvas.sendViaLocalConnection(canvas.rtmp_lc_name,"setRoomValues",[value.roomtype.roomtypes_id,value.rooms_id,value]);
+				}
+			} else {
+				new lz.labelerrorPopup(canvas,{errorlabelid:1286});
+			}
+		]]>
+		</handler>
+	</netRemoteCallHib>
+        
+    <netRemoteCallHib name="getLanguageByIdAndMax" funcname="languageservice.getLanguageByIdAndMax" >
+        <attribute name="start" value="0" type="number" />
+        <attribute name="step" value="100" type="number" />
+        <attribute name="max" value="1600" type="number" />
+        <netparam><method name="getValue">return parent.parent.userlang;</method></netparam> 
+        <netparam><method name="getValue">return parent.start;</method></netparam> 
+        <netparam><method name="getValue">return parent.step;</method></netparam> 
+        <handler name="ondata" args="value">
+            <![CDATA[
+            if($debug) Debug.write("hibRtmpConnection/userlang:[",parent.userlang,"]");
+                //if($debug) Debug.write("hibRtmpConnection/getLanguageByIdAndMax:[",value,"]");
+                setLabelObjectByHundred(this.start,value);
+                //The onResult-Handler will be called be the rtmpconnection
+                if (this.start <= max){
+                    this.start += this.step;
+                    if (canvas.thishib.loaderVar != null) {
+                       canvas.thishib.loaderVar.setProgress();
+                    }
+                    this.doCall();
+                } else {
+                	if($debug) Debug.write("loading lang complete");
+                    if (parent.initlanguageLoaded){
+                        if (canvas.thishib.loaderVar != null) {
+                            canvas.thishib.loaderVar.setProgress();
+                        }
+                        if($debug) Debug.write("getRoomTypes");
+                        parent.getRoomTypes.doCall();
+                    } else {
+						parent.initlanguageLoaded = true;
+						if($debug) Debug.write("getGeneralOptions");
+						parent.getGeneralOptions.doCall();
+						if($debug) Debug.write("getTimeZones");
+						parent.getTimeZones.doCall(); // this is very long call let it be async
+                    }
+                }
+            ]]>
+        </handler>  
+    </netRemoteCallHib>
+        
+	<netRemoteCallHib name="getTimeZones" funcname="xmlcrm.getTimeZones">
+		<attribute name="start" value="0" type="number" />
+		<attribute name="step" value="100" type="number" />
+		<netparam><method name="getValue">return parent.start;</method></netparam>
+		<netparam><method name="getValue">return parent.step;</method></netparam>
+		<handler name="ondata" args="value">
+		<![CDATA[
+			//The onResult-Handler will be called be the rtmpconnection
+			if ($debug) Debug.write("getTimeZones count: ", value.length);
+			if (canvas.thishib.loaderVar != null) {
+				canvas.thishib.loaderVar.setProgress();
+			}
+			if (start == 0) {
+				canvas.timeZones = new Array();
+			}
+			for (var i = 0; i < value.length; ++i) {
+				canvas.timeZones.push(value[i]);
+			}
+			if (value.length < step) {
+				//if($debug) Debug.write("canvas.timeZones == ", canvas.timeZones);
+				canvas.inviteMainWindow = new lz.inviteMainWindow(canvas);
+				if($debug) Debug.write("create invitationWindow: ",canvas.inviteMainWindow);
+			} else {
+				start += step;
+				doCall();
+			}
+		]]>
+		</handler>
+	</netRemoteCallHib>
+
+    <!--
+        There must be a temporary SIP-Account created at this moment
+     -->  
+    <netRemoteCallHib name="markSessionAsLogedIn" funcname="xmlcrm.markSessionAsLogedIn" >
+        <netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+        <handler name="ondata" args="value">
+            //The onResult-Handler will be called be the rtmpconnection
+                        
+            if (value == null) {
+                new lz.errorPopup(canvas,{error:"Missing User Object, set the Configuration value of the key 'default.rpc.userid' to a valid user Id that has at least one Organization assigned in the OpenMeetings Administrion Configuration Panel "});
+            }
+            
+            if ($debug) Debug.write("markSessionAsLogedIn1 ",value);
+             
+            hib.userobject = value;
+             
+            canvas.user_id = hib.userobject.user_id;
+            
+            if (value.organisation_users.length > 0){
+                hib.currentdomain = value.organisation_users[0].organisation.name;
+                hib.currentdomainObj = value.organisation_users[0].organisation;
+            } else {
+                new lz.errorPopup(canvas,{error:"Missing Organization in User Object, set the Configuration value of the key 'default.rpc.userid' to a valid user Id that has at least one Organization assigned in the OpenMeetings Administrion Configuration Panel "});
+            }
+            
+            if ($debug) Debug.write("markSessionAsLogedIn2 ",canvas.sessionId);
+            if ($debug) Debug.write("markSessionAsLogedIn3 ",canvas.initroomid);
+            if ($debug) Debug.write("markSessionAsLogedIn4 ",canvas.isinitRoomDirect);
+            if ($debug) Debug.write("markSessionAsLogedIn5 ",canvas.remoteUserLogin);
+            if ($debug) Debug.write("markSessionAsLogedIn6 ",canvas.directUserLogin);
+            if ($debug) Debug.write("markSessionAsLogedIn7 ",canvas.directRoomId);
+            if ($debug) Debug.write("markSessionAsLogedIn8 ",canvas.secureRemoteUserLogin);
+            
+            if (canvas.secureRemoteUserLogin) {
+                
+                if ($debug) Debug.write("markSessionAsLogedIn == CALL ",canvas.secureHash);
+             
+                parent.secureLoginByRemote.doCall();
+                
+            } else if (canvas.isinitRoomDirect){
+                parent.getInvitationByHash.doCall();   
+            } else if (canvas.remoteUserLogin) {
+                parent.loginUserByRemote.doCall();   
+            } else if (canvas.directUserLogin) {
+                //show Nick Name or Password Protection Dialog
+                canvas.initroomid = Number(canvas.directRoomId);
+                parent.getRoomById.doCall();
+            }
+        </handler>  
+    </netRemoteCallHib> 
+    
+	<netRemoteCallHib name="getGeneralOptions" funcname="xmlcrm.getGeneralOptions">
+		<handler name="ondata" args="value">
+		<![CDATA[
+			if (canvas.thishib.loaderVar != null) {
+				canvas.thishib.loaderVar.setProgress();
+			}
+			if ($debug) Debug.write("getGeneralOptions: ", value.length, value);
+			if (value != null) {
+				if (value.length > 0 && value[0] != null) {
+					//if ($debug) Debug.write("Give exclusive audio keycode is: ", value[0].conf_value);
+					canvas.setAttribute('GIVE_EXCLUSIVE_AUDIO_KEY', value[0].conf_value);
+				}
+				if (value.length > 1 && value[1] != null) {
+					if ($debug) Debug.write("red5sip.enable is: ", value[1].conf_value);
+					canvas.setAttribute('RED5_SIP_ENABLE', value[1].conf_value);
+				}
+				if (value.length > 2 && value[2] != null) {
+					if ($debug) Debug.write("max_upload_size is: ", value[2].conf_value);
+					canvas.setAttribute('MAX_UPLOAD_SIZE', value[2].conf_value);
+				}
+				if (value.length > 3 && value[3] != null) {
+					if ($debug) Debug.write("Mute/unmute keycode is: ", value[3].conf_value);
+					canvas.setAttribute('MUTE_AUDIO_KEY', value[3].conf_value);
+				}
+				if (value.length > 4 && value[4] != null) {
+					if ($debug) Debug.write("redirect.url.for.external.users is: ", value[4].conf_value);
+					canvas.setAttribute('REDIRECT_URL_FOR_EXTERNAL_USERS', value[4].conf_value);
+				}
+			} else {
+				if ($debug) Debug.warn("xmlcrm.getGeneralOptions empty!");
+			}
+			parent.getUserSalutations.doCall();
+		]]>
+		</handler>
+	</netRemoteCallHib>
+    
+    <netRemoteCallHib name="setCurrentUserOrganization" funcname="xmlcrm.setCurrentUserOrganization">
+        <netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+        <netparam><method name="getValue">return hib.currentdomainObj.organisation_id;</method></netparam>  
+        <handler name="ondata" args="value">
+            //Sessionmanagement.getInstance() 
+            //The onResult-Handler will be called be the rtmpconnection
+            if ($debug) Debug.write("setCurrentUserOrganization: ",value);
+        </handler>  
+    </netRemoteCallHib> 
+     
+    
+    <netRemoteCallHib name="getUserSalutations" funcname="userservice.getUserSalutations" >
+        <netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+        <netparam><method name="getValue">return parent.parent.userlang; </method></netparam> 
+        <handler name="ondata" args="value">
+            //The onResult-Handler will be called be the rtmpconnection
+            //Debug.write("getUserSalutations ",value);
+            canvas.salutationsInitValues = value;
+            //check for password reset
+            if (canvas.wicketsid != null) {
+            	parent.loginWicket.doCall();
+            } else { 
+                if (canvas.thishib.loaderVar != null) {
+                   canvas.thishib.loaderVar.close();
+                }
+                //do not show loggin-PopUp for the test-Application
+                if (parent.testAppLoading){ 
+                    canvas.loadNextStepTestApp();
+                } else {
+                    if (canvas.isRemoteUser()){
+                        if (canvas.thishib.loaderVar != null) {
+                          canvas.thishib.loaderVar.setProgress();
+                        }
+                        if($debug) Debug.write("isinitRoomDirect or remoteUserLogin is true");
+                        parent.markSessionAsLogedIn.doCall();
+                    }
+                }
+            }
+        </handler>  
+    </netRemoteCallHib>
+    
+	<netRemoteCallHib name="loginWicket" funcname="xmlcrm.loginWicket" >
+		<netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+		<netparam><method name="getValue">return canvas.wicketsid;</method></netparam>
+		<netparam><method name="getValue">return canvas.wicketroomid;</method></netparam>
+		<handler name="ondata" args="value">
+		<![CDATA[
+			if ($debug) Debug.write("!!!!!!!!!!! loginWicket", value);
+			if (value != null) {
+				canvas.setAttribute('user_id',value.user_id);
+				canvas.setAttribute('firstName',value.firstname);
+				canvas.setAttribute('lastName',value.lastname);
+				canvas.setAttribute('mail','');
+				canvas.setAttribute('lastLogin','');
+				canvas.setAttribute('official_code','');
+				canvas.setAttribute('picture_uri','');
+				canvas.setAttribute('language','');
+				canvas.setAttribute('currentuser',value.login);
+				if (value.timeZoneId != null) {
+					canvas.timeZoneId = value.timeZoneId;
+				}
+ 				canvas.becomemoderator = value.level_id >= 2;
+				if (value.sessionData == null) {
+					if ($debug) Debug.write("No Language Found to assign");
+					return;
+				}
+				hib.userobject = value;
+				var found = false;
+				for (var i = 0; i < value.organisation_users.length; ++i) {
+					if (value.organisation_users[i].organisation.organisation_id == value.sessionData.organization_id) {
+						found = true;
+						hib.currentdomain = value.organisation_users[i].organisation.name;
+						hib.currentdomainObj = value.organisation_users[i].organisation;
+						break;
+					}
+				}
+				if (!found && value.organisation_users.length > 0) {
+					hib.currentdomain = value.organisation_users[0].organisation.name;
+					hib.currentdomainObj = value.organisation_users[0].organisation;
+				}
+				parent.getCurrentRoomClient.doCall();
+			}
+		]]>
+		</handler>
+	</netRemoteCallHib>
+	
+    <netRemoteCallHib name="getRoomTypes" funcname="conferenceservice.getRoomTypes" >
+        <netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+        <handler name="ondata" args="value">
+            //The onResult-Handler will be called be the rtmpconnection
+            //Debug.write("getRoomTypes ",value);
+            canvas.roomTypesInitValues = value;
+            canvas.sendViaLocalConnection(canvas.rtmp_lc_name, "getRoomTypes", [value]);
+			if (canvas.thishib.loaderVar != null) {
+            	canvas.thishib.loaderVar.setProgress();
+            }
+            parent.setUsernameAndSession.doCall();
+        </handler>  
+    </netRemoteCallHib>      
+    
+        <netRemoteCallHib name="setId" funcname="setId">
+            <handler name="ondata" args="value">
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("################ setId: ",value);
+                canvas.setAttribute('streamid',value);   
+            </handler>  
+        </netRemoteCallHib> 
+        
+        <netRemoteCallHib name="setUsernameAndSession" funcname="setUsernameAndSession" remotecontext="$once{ canvas.thishib }" >   
+            <netparam><method name="getValue"> return canvas.sessionId; </method></netparam> 
+            <netparam><method name="getValue">return canvas.user_id;</method></netparam>
+            <netparam><method name="getValue">return canvas.currentuser;</method></netparam>
+            <netparam><method name="getValue">return canvas.firstName;</method></netparam>
+            <netparam><method name="getValue">return canvas.lastName;</method></netparam>      
+            <handler name="ondata" args="value">
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("setUsernameAndSession: ",canvas.user_id,value);
+                if (canvas.thishib.loaderVar != null) {
+	                canvas.thishib.loaderVar.close();
+                }
+            </handler>  
+        </netRemoteCallHib>        
+        
+        <netRemoteCallHib name="testMethod" funcname="testMethod">
+            <handler name="ondata" args="value">
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("testMethod ",value);                   
+            </handler>  
+        </netRemoteCallHib>
+
+        <!--- Notification of new User --> 
+		<netRemoteCallHib name="addNewUser" funcname="addNewUser">
+			<handler name="ondata" args="value">
+				//The onResult-Handler will be called be the rtmpconnection
+				if ($debug) Debug.write("addNewUser: ",value);
+				if(value.sipTransport) {
+					canvas._videocontainer.addItem(value.connectedSince,value.isMod,value.streamid,value.room_id,'',value.formatedDate,value.userpos,value.usercolor,value);
+				} else {
+					canvas._videocontainer.addClientItem(value.connectedSince,value.isMod,value.streamid,value.room_id,'',value.formatedDate,value.userpos,value.usercolor,value);
+				}
+				canvas.setAttribute('numberofpartners',canvas.numberofpartners+1);
+			</handler>
+		</netRemoteCallHib>    
+        
+        <netRemoteCallHib name="getCurrentModeratorList" funcname="getCurrentModeratorList">
+            <handler name="ondata" args="value">
+                <![CDATA[
+                    if ($debug) Debug.write("############ getCurrentModeratorList: ",value);
+                    
+                    canvas.analyzeModerationList(value);
+                    
+                    canvas.currentModeratorList = value;
+                    //Update Moderation Flag
+                    canvas.updateModerationFlag();
+                    
+                    var messageAlreadyThrown = false;
+                    
+                    //if ($debug) Debug.write("throw event to drawarea: ",canvas.moderatorStreamID,canvas.ismoderator);
+                    
+					if (this.parent.modus == "conference") {
+						if ($debug) Debug.write("############## showDevicePopUp");
+						canvas._videocontainer._videoviewcontent.showDevicePopUp(false);
+					}
+                    canvas._drawarea.onopenWhiteBoard.sendEvent();
+                    
+                    if ($debug) Debug.write("roomType_id ",canvas.currentRoomObject);
+                    if ($debug) Debug.write("roomType_id ",canvas.currentRoomObject.roomtype.roomtypes_id);
+                    
+                    if (canvas.currentRoomObject.roomtype.roomtypes_id!=3) {
+                        //We do not show this warning when the roomtype is 3 (restricted)
+                        if (canvas.currentRoomObj.isModeratedRoom) {
+                            if (value.length == 0 && !messageAlreadyThrown){
+                                new lz.labelerrorPopup(canvas,{errorlabelid:641});
+                            }
+                        } else {
+                            if (value.length == 0 && !messageAlreadyThrown){
+                                new lz.errorModeratorPopup(canvas,{error:canvas.getLabelName(498)});
+                            }
+                        }
+                    }
+                ]]>
+            </handler>
+        </netRemoteCallHib>
+        
+        <netRemoteCallHib name="newStream" funcname="newStream">
+            <handler name="ondata" args="value">
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("newStream: ",value);
+                if (value == null || value.isScreenClient) {
+                    return;
+                }
+                canvas._videocontainer.startStream(value.publicSID,value.broadCastID,value.firstname,value.lastname,value.interviewPodId,value.VWidth,value.VHeight); 
+            </handler>   
+        </netRemoteCallHib> 
+           
+        <netRemoteCallHib name="closeStream" funcname="closeStream">
+            <handler name="ondata" args="value">
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("**** closeStream: ",value);
+                if (value == null) {
+                	return;
+                }
+                if (value.isScreenClient) {
+                    if ($debug) Debug.write(" ondata closeStream: ",value.streamPublishName); 
+                    canvas.currentBaseConferenceRoom._screenSharingAdapter.closeScreenSharing(value);
+                } else {
+                    //free the VideoContainer
+                    //canvas._videocontainer.closeStreamClient(value.publicSID);
+                    canvas.sendViaLocalConnection(canvas.vid_lc_name, "closeStreamClient", [value.publicSID]);
+                    canvas.setAttribute('numberofpartners',canvas.numberofpartners-1);
+                }
+                //TODO:check first current tab
+            </handler>   
+        </netRemoteCallHib>  
+        
+        <!---
+            Event is invoked if a red5 stream sharing is closed
+         -->
+        <netRemoteCallHib name="stopScreenSharingMessage" funcname="stopScreenSharingMessage">
+            <handler name="ondata" args="value">
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("**** closeStream: ",value);
+                if ($debug) Debug.write(" onResult stopScreenSharingMessage : ",value.streamPublishName); 
+                canvas.currentBaseConferenceRoom._screenSharingAdapter.closeScreenSharing(value);
+            </handler>   
+        </netRemoteCallHib> 
+             
+        <netRemoteCallHib name="clientregisterRoom" funcname="clientregisterRoom">
+            <handler name="ondata" args="value">
+                if ($debug) Debug.write("**** clientregisterRoom::ondata ", value);
+            </handler>   
+        </netRemoteCallHib>   
+
+		<method name="roomDisconnectUser" args="value,id">
+			if (canvas._videocontainer!=null){
+				canvas._videocontainer.disconnectclient(id);
+				if (canvas.currentModApply!=null) canvas.currentModApply.rejectUser(value);
+				if (value.isRecording) {
+					canvas._mymod.recordingUser = null;
+				}
+				if (value.streamPublishStarted) {
+					canvas._mymod.publishingObj = null;
+				}
+				canvas._mymod.setMessage();
+			}
+		</method>
+		
+        <netRemoteCallHib name="roomDisconnect" funcname="roomDisconnect">
+            <handler name="ondata" args="value">
+            <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("roomDisconnect: ",value);
+                if (value == null || value.isScreenClient) {
+                    return;
+                }
+                if (canvas.currentBaseConferenceRoom != null && canvas.currentBaseConferenceRoom._chatPanelStrict != null) {
+	                if ($debug) Debug.write("canvas.currentBaseConferenceRoom._chatPanelStrict: ", canvas.currentBaseConferenceRoom._chatPanelStrict);
+                	canvas.currentBaseConferenceRoom._chatPanelStrict.closeprivatechat(["close", value.publicSID]);
+                }
+                if (canvas.currentActivityList != null) {
+                    canvas.currentActivityList.addMessageRequest(value, canvas.getLabelName(1367), new Date().getTime());
+                }
+                parent.roomDisconnectUser(value, value.publicSID);
+            ]]>
+            </handler>   
+        </netRemoteCallHib>
+        
+        <netRemoteCallHib name="stopRecordingMessage" funcname="stopRecordingMessage">
+            <handler name="ondata" args="value">
+                //The onResult-Handler will be called be the rtmpconnection
+                canvas._mymod.recordingUser = null;
+                canvas._mymod.setMessage();                 
+            </handler>   
+        </netRemoteCallHib>
+        
+        <netRemoteCallHib name="stopPublishingMessage" funcname="stopPublishingMessage">
+            <handler name="ondata" args="value">
+                //The onResult-Handler will be called be the rtmpconnection
+				canvas._mymod.publishingObj = null;
+                canvas._mymod.setMessage();                 
+            </handler>   
+        </netRemoteCallHib>
+        
+        <netRemoteCallHib name="setSyncFlag" funcname="setSyncFlag" >      
+            <handler name="ondata" args="value">
+                if ($debug) Debug.write("setSyncFlag: ",value);
+            </handler>
+        </netRemoteCallHib>   
+             
+        <netRemoteCallHib name="logicalRoomLeaveDis" funcname="logicalRoomLeaveDis" >      
+            <handler name="ondata" args="value">
+                if ($debug) Debug.write("logicalRoomLeaveDis: ",value);
+                parent.roomDisconnectUser(value, value.broadCastID);
+            </handler>
+        </netRemoteCallHib>             
+  
+        <method name="setUserStatus" args="ctx,user,o">
+            <![CDATA[
+				if (!o || !user) return;
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) {
+                    Debug.write("setUserStatus: ", user);
+                    Debug.write("setUserStatus: ", o.param);
+                }
+                var aObj = o.param[3];
+                var usPoint = null;
+                if ($debug) Debug.write("drawObj: ", aObj[0]);
+                switch(aObj[0]) {
+                    case 'line':
+                    case 'uline':
+                        usPoint = {x: aObj[aObj.length - 5] + aObj[6], y: aObj[aObj.length - 4] + aObj[7]};
+                        break;
+                    case 'letter':
+                    case 'rectangle':
+                    case 'ellipse':
+                    case 'clipart':
+                        usPoint = {x: aObj[aObj.length - 3] + aObj[aObj.length - 5], y: aObj[aObj.length - 2] + aObj[aObj.length - 4]};
+                        break;
+                    case 'paint':
+                        var points = aObj[1];
+                        //points are empty on 'paint' move
+                        usPoint = {
+                            x: aObj[aObj.length - 5] + (points.length ? points[points.length - 1][3] : aObj[aObj.length - 3])
+                            , y: aObj[aObj.length - 4] + (points.length ? points[points.length - 1][4] : aObj[aObj.length - 2])};
+                        break;
+                    case 'drawarrow':
+                        usPoint = {x: aObj[aObj.length - 5] + aObj[9], y: aObj[aObj.length - 4] + aObj[10]};
+                        break;
+                    case 'clipart':
+                        break;
+                }
+                if (usPoint) {
+                    var us = new lz.userStatus(ctx, {
+                        width:100
+                        , x: usPoint.x
+                        , y: usPoint.y - 25 //little above
+                        , queueable: false
+                        , statusText: user.firstname + " " + user.lastname
+                        });
+                    if ($debug) Debug.write("us: ", us, "; usPoint: ", usPoint);
+                }
+            ]]>
+        </method>
+
+        <netRemoteCallHib name="sendVarsToWhiteboard" funcname="sendVarsToWhiteboard">
+            <handler name="ondata" args="value">
+                <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                    if ($debug) Debug.write("sendVarsToWhiteboard : ",value);
+            parent.setUserStatus(canvas._drawarea, value[0], value[1]);
+            canvas._drawarea.sendWatchObject(canvas._drawarea,value[1][2],value[1][3],false);
+                ]]>
+            </handler>   
+        </netRemoteCallHib>  
+        
+         <netRemoteCallHib name="sendVarsToWhiteboardById" funcname="sendVarsToWhiteboardById">
+            <handler name="ondata" args="value">
+                <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+            if ($debug) Debug.write("sendVarsToWhiteboardById : ",value);
+            parent.setUserStatus(canvas._drawarea, value[0], value[1]);
+            canvas._drawarea.parent.parent.parent.sendWatchObjectByWhiteboard(value[1]);
+                ]]>
+            </handler>   
+        </netRemoteCallHib> 
+        
+        <netRemoteCallHib name="loadWmlToWhiteboardById" funcname="loadWmlToWhiteboardById">
+            <handler name="ondata" args="value">
+                <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                    if ($debug) Debug.write("sendVarsToWhiteboardById : ",value);
+                    canvas._drawarea.parent.parent.parent.loadWmlToWhiteboardById(value);
+                ]]>
+            </handler>   
+        </netRemoteCallHib>
+        
+        <!--
+            Adds this User to the List of current Moderators
+         -->
+        <netRemoteCallHib name="addModerator" funcname="addModerator">
+            <attribute name="publicSIDOfNewModerator" value="0" type="string" />
+            <netparam name="vars"><method name="getValue">return parent.publicSIDOfNewModerator;</method></netparam>
+            <handler name="ondata" args="value">
+                <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write(" addModerator : ",value);                   
+                ]]>
+            </handler>   
+        </netRemoteCallHib>
+        
+        <netRemoteCallHib name="removeModerator" funcname="removeModerator">
+            <attribute name="publicSIDOfNewModerator" value="0" type="string" />
+            <netparam name="vars"><method name="getValue">return parent.publicSIDOfNewModerator;</method></netparam>
+            <handler name="ondata" args="value">
+                <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                //Debug.write(" onResult setModerator : ",value);                   
+                ]]>
+            </handler>   
+        </netRemoteCallHib>
+        
+        <!--
+        public synchronized Long setBroadCastingFlag(String publicSID, boolean value) 
+         -->
+        <netRemoteCallHib name="setBroadCastingFlag" funcname="setBroadCastingFlag">
+            <attribute name="publicSIDOfNewModerator" value="0" type="string" />
+            <attribute name="isAllowedToBroadCastAV" value="false" type="boolean" />
+            <attribute name="avsettings" value="av" type="string" />
+            <attribute name="interviewPodId" value="0" type="number" />
+            <netparam><method name="getValue">return parent.publicSIDOfNewModerator;</method></netparam>
+            <netparam><method name="getValue">return parent.isAllowedToBroadCastAV;</method></netparam>
+            <netparam><method name="getValue">return parent.interviewPodId;</method></netparam>
+            <handler name="ondata" args="value">
+                <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                //Debug.write(" onResult setModerator : ",value);                   
+                ]]>
+            </handler>   
+        </netRemoteCallHib>
+        
+        <netRemoteCallHib name="setNewBroadCastingFlag" funcname="setNewBroadCastingFlag">
+            <netparam><method name="getValue">return null;</method></netparam>
+            <handler name="ondata" args="value">
+                <![CDATA[
+                    //The onResult-Handler will be called be the rtmpconnection
+                    //if ($debug) Debug.write(" onResult setNewBroadCastingFlag : ",value);   
+                    if (canvas.publicSID == value.publicSID) {
+                        if ($debug) Debug.write("Its about You ",value);
+                        if (value.isBroadcasting) {
+                            
+                            if (canvas.thishib.modus == "interview") {
+                               canvas._drawarea.newInterviewStarting(value);
+                            } else {
+                            	canvas._videocontainer._videoviewcontent.showDevicePopUp(false);
+                            }
+                            
+                            canvas.setAttribute("isBroadCasting",true);
+                        } else {
+                            canvas.setAttribute("isBroadCasting",false);
+                        }
+                    } 
+                    canvas.setAttribute("lastBroadCastingUser",value);
+                ]]>
+            </handler>   
+        </netRemoteCallHib>
+
+        <netRemoteCallHib name="giveExclusiveAudio" funcname="giveExclusiveAudio">
+            <attribute name="publicSID" value="0" type="string" />
+            <netparam><method name="getValue">return parent.publicSID;</method></netparam>
+            <method name="setExclusiveAudio" args="tPublicSID">
+                this.publicSID = tPublicSID;
+                this.doCall();
+            </method>
+        </netRemoteCallHib>
+
+        <netRemoteCallHib name="receiveExclusiveAudioFlag" funcname="receiveExclusiveAudioFlag">
+            <netparam><method name="getValue">return null;</method></netparam>
+            <handler name="ondata" args="value">
+                <![CDATA[
+                    //The onResult-Handler will be called be the rtmpconnection
+                    canvas._videocontainer.receiveExclusiveAudioFlag(value.publicSID)
+                ]]>
+            </handler>
+        </netRemoteCallHib>
+
+        <netRemoteCallHib name="switchMicMuted" funcname="switchMicMuted">
+            <attribute name="publicSID" value="" type="string" />
+            <attribute name="mute" value="false" type="boolean" />
+            <event name="onMute" />
+            <method name="setMute" args="tPublicSID,tMute">
+                this.publicSID = tPublicSID;
+                this.mute = tMute;
+                var obj = new Array();
+                obj["mute"] = tMute;
+                obj["publicSID"] = tPublicSID;
+                this.onMute.sendEvent(obj);
+                this.doCall();
+            </method>
+            <netparam><method name="getValue">return parent.publicSID;</method></netparam>
+            <netparam><method name="getValue">return parent.mute;</method></netparam>
+        </netRemoteCallHib>
+
+        <netRemoteCallHib name="newRed5ScreenCursor" funcname="newRed5ScreenCursor">
+            <netparam><method name="getValue">return null;</method></netparam>
+			<handler name="ondata" args="value">
+			<![CDATA[
+				//The onResult-Handler will be called be the rtmpconnection
+				//if ($debug) Debug.write(" onResult newRed5ScreenCursor : ",value);
+				if (canvas.currentBaseConferenceRoom._screenSharingAdapter != null) {
+					canvas.currentBaseConferenceRoom._screenSharingAdapter.updateCursorScreenSharing(value);
+				}
+			]]>
+			</handler>   
+        </netRemoteCallHib>
+        
+        
+        <!--
+            Red5 Screen Sharing
+         -->
+        <netRemoteCallHib name="newScreenSharing" funcname="newScreenSharing">
+            <netparam><method name="getValue">return null;</method></netparam>
+            <handler name="ondata" args="value">
+                <![CDATA[
+                
+                    //The onResult-Handler will be called be the rtmpconnection
+                    //if ($debug) Debug.write(" onResult newScreenSharing 1 : ",value);  
+                    //if ($debug) Debug.write(" onResult newScreenSharing 2 : ",value.streamid); 
+                    //if ($debug) Debug.write(" onResult newScreenSharing 3 : ",canvas.streamid); 
+                    if ($debug) Debug.write(" onResult newScreenSharing 4 : ",value.streamPublishName); 
+                    if ($debug) Debug.write(" onResult newcreenSharing 5 : ",canvas.publicSID); 
+                    
+                    canvas.currentBaseConferenceRoom._screenSharingAdapter.newScreenSharing(value);
+                ]]>
+            </handler>   
+        </netRemoteCallHib>
+        
+        <netRemoteCallHib name="checkScreenSharing" funcname="checkScreenSharing">
+            <handler name="ondata" args="value">
+                <![CDATA[
+                    //The onResult-Handler will be called be the rtmpconnection
+                    if ($debug) Debug.write(" onResult checkScreenSharing : ",value);  
+                    if (value != null) {
+                    	canvas.currentBaseConferenceRoom._screenSharingAdapter.newScreenSharings(value);
+                    } else {
+                        if ($debug) Debug.warn("Self Screen Sharing");
+                    }
+                ]]>
+            </handler>   
+        </netRemoteCallHib>
+        
+        
+        <!--
+        public synchronized Long applyForModeration(String publicSID)
+         -->
+        <netRemoteCallHib name="applyForModeration" funcname="applyForModeration"
+                       remotecontext="$once{ canvas.thishib }">
+            <netparam><method name="getValue">return canvas.publicSID;</method></netparam>
+            <handler name="ondata" args="value">
+                <![CDATA[
+                    //The onResult-Handler will be called be the rtmpconnection
+                    if ($debug) Debug.write("applyForModeration : ",value);
+                    if (value == 1) {
+                        //Do add direct
+                        parent.addModerator.publicSIDOfNewModerator = canvas.publicSID;
+                        parent.addModerator.doCall();
+                    } else if (value == 2) {
+                        //Ask the Moderator
+                        var tDate = new Date();
+                        parent.sendMessageWithClient.sendMessage("applyForModeration",tDate.getTime());
+                    } else if (value == 3) {
+                        new lz.labelerrorPopup(canvas,{errorlabelid:696});
+                    }
+                ]]>
+            </handler>
+        </netRemoteCallHib>
+        
+        <netRemoteCallHib name="setCanDraw" funcname="whiteboardservice.setCanDraw"
+                       remotecontext="$once{ canvas.thishib }">
+            <attribute name="publicSID" value="" type="string" />
+            <attribute name="canDraw" value="true" type="boolean" />
+            <netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+            <netparam><method name="getValue">return parent.publicSID;</method></netparam>
+            <netparam><method name="getValue">return parent.canDraw;</method></netparam>
+            <handler name="ondata" args="value">
+                <![CDATA[
+                    //The onResult-Handler will be called be the rtmpconnection
+                    if ($debug) Debug.write("setCanDraw : ",value);
+                ]]>
+            </handler>   
+        </netRemoteCallHib>
+        
+        <netRemoteCallHib name="setCanShare" funcname="whiteboardservice.setCanShare"
+                       remotecontext="$once{ canvas.thishib }">
+            <attribute name="publicSID" value="" type="string" />
+            <attribute name="canShare" value="true" type="boolean" />
+            <netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+            <netparam><method name="getValue">return parent.publicSID;</method></netparam>
+            <netparam><method name="getValue">return parent.canShare;</method></netparam>
+            <handler name="ondata" args="value">
+                <![CDATA[
+                    //The onResult-Handler will be called be the rtmpconnection
+                    if ($debug) Debug.write("setCanShare : ",value);
+                ]]>
+            </handler>   
+        </netRemoteCallHib>
+        
+        <netRemoteCallHib name="setCanRemote" funcname="whiteboardservice.setCanRemote"
+                       remotecontext="$once{ canvas.thishib }">
+            <attribute name="publicSID" value="" type="string" />
+            <attribute name="canRemote" value="true" type="boolean" />
+            <netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+            <netparam><method name="getValue">return parent.publicSID;</method></netparam>
+            <netparam><method name="getValue">return parent.canRemote;</method></netparam>
+            <handler name="ondata" args="value">
+                <![CDATA[
+                    //The onResult-Handler will be called be the rtmpconnection
+                    if ($debug) Debug.write("setCanRemote : ",value);
+                ]]>
+            </handler>   
+        </netRemoteCallHib>
+        
+        <netRemoteCallHib name="setNewModeratorByList" funcname="setNewModeratorByList">
+            <handler name="ondata" args="value">
+                <![CDATA[
+                    if ($debug) Debug.write("setNewModeratorByList ",value);
+                    
+                    canvas.analyzeModerationList(value);
+                    
+                    //The onResult-Handler will be called be the rtmpconnection
+                    canvas.currentModeratorList = value;
+                    //Update Moderation Flag
+                    canvas.updateModerationFlag();
+                ]]>
+            </handler>   
+        </netRemoteCallHib> 
+        
+        <netRemoteCallHib name="sendMessage" funcname="sendMessage">
+            <netparam name="vars"><method name="getValue">return canvas.objMessage;</method></netparam>
+            <handler name="ondata" args="value">
+                <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                //Debug.write("getValue : ",value);
+                
+                ]]>
+            </handler>   
+        </netRemoteCallHib> 
+        
+        <netRemoteCallHib name="sendMessageAll" funcname="sendMessageAll">
+            <netparam name="vars"><method name="getValue">return canvas.objMessage;</method></netparam>
+            <handler name="ondata" args="value">
+                <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                //Debug.write("getValue : ",value);
+                ]]>
+            </handler>   
+        </netRemoteCallHib> 
+        
+        <netRemoteCallHib name="sendVarsToMessage" funcname="sendVarsToMessage">
+            <handler name="ondata" args="value">
+                <![CDATA[
+                    //The onResult-Handler will be called be the rtmpconnection
+                    //Debug.write("sendVarsToMessage : ",value);
+                    if (value[0]=='audioActivity'){
+                        //canvas.currentModApply
+                        //if ($debug) Debug.write("audioActivity Client ",value[1],value[2]);
+                        canvas._videocontainer.setSpeakingByPos(value[2],value[1]);
+                    } else if (value[0]=='chat'){
+                        // Not Used
+                        //Debug.warn("Not Used");
+                        canvas.addChatHistory(value);
+                    } else if (value[0]=='activateWhiteboard'){
+                        // Not Used
+                        //Debug.warn("Not Used");
+                        canvas._drawarea.parent.parent.parent.activateWhiteboard(value);
+                    } else if (value[0]=='newWhiteboard'){
+                        // Not Used
+                        //Debug.warn("Not Used");
+                        canvas._drawarea.parent.parent.parent.newWhiteboard(value);
+                    } else if (value[0]=='removeWindow'){
+                        // Not Used
+                        //Debug.warn("Not Used");
+                        canvas._drawarea.parent.parent.parent.removeWindow(value);
+                    } else if(value[0]=='fileslist'){
+                        canvas.currentImagesListdraw.parent.onvisible.sendEvent(true);
+                    } else if(value[0]=='initBrowser'){
+                        canvas.startBrowser(value);
+                    } else if(value[0]=='newBrowserURL'){
+                        canvas.startBrowser(value);
+                    } else if(value[0]=='closeBrowserURL'){
+                        canvas.closeBrowser(value);
+                    }
+                    
+                ]]>
+            </handler>   
+        </netRemoteCallHib>   
+        <netRemoteCallHib name="sendVarsModeratorGeneral" funcname="sendVarsModeratorGeneral">
+            <netparam name="vars"><method name="getValue">return canvas.VarsModeratorGeneral;</method></netparam>
+            <handler name="ondata" args="value">
+                <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                //Debug.write("sendVarsModeratorGeneral : ",value);
+                
+                ]]>
+            </handler>   
+        </netRemoteCallHib>  
+
+		<netRemoteCallHib name="sendChatMessageWithClient"
+			funcname="chatservice.sendMessageWithClient" remotecontext="$once{ canvas.thishib }">
+            <attribute name="messageObj" value="null" />
+			<netparam><method name="getValue">return parent.messageObj;</method></netparam>
+
+            <method name="sendMessage" args="messageObject">
+                this.messageObj = messageObject;
+                this.doCall();
+            </method>
+			<handler name="ondata" args="value">
+                <![CDATA[
+                    //The onResult-Handler will be called be the rtmpconnection
+                    if ($debug) Debug.write("chatservice.sendMessageWithClient getValue : ",value);
+                ]]>
+			</handler>
+		</netRemoteCallHib>
+		
+        <netRemoteCallHib name="sendMessageWithClient" funcname="sendMessageWithClient" 
+                          remotecontext="$once{ canvas.thishib }" >  
+            
+            <attribute name="messageObj" value="null" />
+            <method name="sendMessage" args="typeName,messageObject">
+                this.messageObj = new Object();
+                this.messageObj[0] = typeName;
+                this.messageObj[1] = messageObject;
+                this.doCall();
+            </method>
+            
+            <method name="sendAdvMessage" args="typeName,messageObject,tStamp">
+                this.messageObj = new Object();
+                this.messageObj[0] = typeName;
+                this.messageObj[1] = messageObject;
+                this.messageObj[2] = tStamp;
+                this.doCall();
+            </method>
+            
+            <netparam name="vars"><method name="getValue">return parent.messageObj;</method></netparam>
+            <handler name="ondata" args="value">
+                //The onResult-Handler will be called be the rtmpconnection
+                //Debug.write("sendMessageWithClient : ",value);
+            </handler>
+        </netRemoteCallHib>
+          
+        <netRemoteCallHib name="sendVarsToMessageWithClient" funcname="sendVarsToMessageWithClient" 
+                          remotecontext="$once{ canvas.thishib }" >  
+            <netparam name="vars"><method name="getValue">return parent.parent.applymessage;</method></netparam>
+            <handler name="ondata" args="value">
+                <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("sendVarsToMessageWithClient : ",value,value.message,value.message[0]);
+                if (value[0]=='kick' || value.message[0]=='kick'){
+                    //canvas.currentModApply
+                    if ($debug) Debug.write("!!!!!! THIS USER GOING TO BE KICKED");
+                    parent.showKickMessage = true;
+                    parent.disconnect();
+                    canvas.sendViaLocalConnection(canvas.vid_lc_name, "immediateExitRoom", [true,null]);
+                } else if (value.message[0]=='copiedText'){
+                    //canvas.currentModApply
+                    
+                    if ($debug) Debug.info("copiedText :: ",value.message[1]);
+                    //System.setClipboard(value.message[1]);
+                    //lz.Browser.setClipboard(value.message[1]);
+                    //LzBrowserKernel.setClipboard (value.message[1]);
+                    
+                    //import flash.System;
+                    //flash.System.setClipboard(value.message[1]);
+                    
+                    new lz.copiedTextPopup(canvas,{
+                                       error:value.message[1]
+                                    });
+                    
+                } else if (value.message[0]=='applyforMod'){
+                    //canvas.currentModApply
+                    if (canvas.streamid!=value.client.streamid) {
+                        new lz.responseForModeration(canvas.main_content._content.inner,{
+                                                                userobject:value.client,
+                                                                clientId:value.client.streamid
+                                                            });
+                    }
+                } else if (value.message[0]=='applyModAnswer'){
+                    canvas.currentModApply.setUserAnswer(value);
+                } else if (value.message[0]=='privatechat'){
+                    if ($debug) Debug.write("privatechat",value.message,value.client);
+                    canvas._currentChatPanel.privatechat(value.message,value.client);
+                } else if (value.message[0]=='chat'){
+                    if (canvas._chatcontent) canvas._chatcontent.addChatHistory(value.message,value.client);
+                } else if (value.message[0]=='avsettings'){
+                    canvas._videocontainer.setAVSettingsToClient(value.client);
+                } else if (value.message[0]=='whiteboard'){
+                    //if (value.message[1]=='wmlloadcomplete'){
+                    //    canvas._drawarea.sendCompleteWmlLoadedRClient(value.client);
+                    //} else if (value.message[1]=='wmlsynccomplete'){
+                    //    canvas._drawarea.sendCompleteWmlSync(value.client);
+                    //} else 
+                    
+                    if (value.message[1]=='imageloadcomplete'){
+                        canvas._drawarea.sendCompleteImageLoadedRClient(value.client);
+                    } else if (value.message[1]=='imagesynccomplete'){
+                        canvas._drawarea.sendCompleteImageSync(value.client);
+                    } else if (value.message[1]=='imageloaderror'){
+                        canvas._drawarea.sendCompleteImageLoadedRClient(value.client);
+                    } else if (value.message[1]=='imageloadtimeout'){
+                        canvas._drawarea.sendCompleteImageLoadedRClient(value.client);
+                    } else if (value.message[1]=='swfloadcomplete'){
+                        canvas._drawarea.sendCompleteSWFLoadedRClient(value.client);
+                    } else if (value.message[1]=='swfsynccomplete'){
+                        canvas._drawarea.sendCompleteSWFSync(value.client);
+                    } else if (value.message[1]=='swfloaderror'){
+                        canvas._drawarea.sendCompleteSWFLoadedRClient(value.client);
+                    } else if (value.message[1]=='swfloadtimeout'){
+                        canvas._drawarea.sendCompleteSWFLoadedRClient(value.client);
+                    } else if (value.message[1]=='inituser'){
+                        
+                        //this message is deprecated and can be removed!
+                        //swagner 12.06.2008
+                        //canvas._drawarea.sendCompleteImageSync(value.client);
+                        if ($debug) Debug.write("inituser loadwmlObjectToStage: ",value.message[2]);
+                        if (!canvas.ismoderator) canvas._drawarea.loadwmlObjectToStage(value.message[2],"","","",true,true);
+                    } else if (value.message[1]=='initgetVars'){
+                        //canvas._drawarea.sendCompleteImageSync(value.client);
+                        //Debug.write("initgetVars sendVarsToMessageWithClient: ",value.message[2]);
+                        canvas._drawarea.sendWatchObject(value.message[1],value.message[2],false);
+                    } else if (value.message[1]=='syncinitLoader'){
+                        //canvas._drawarea.sendCompleteImageSync(value.client);
+                        //Debug.write("syncinitLoader sendVarsToMessageWithClient: ",value.message[2]);
+                        if (value.client.streamid!=canvas.streamid) canvas._drawarea.remoteSyncLoader();
+                    } else if (value.message[1][0]=='isSnapToGrid'){
+                        canvas._drawarea.setAttribute('isSnapToGrid', value.message[1][1]);
+                        //Debug.write("syncinitLoader sendVarsToMessageWithClient: ",value.message[2]);
+                        //if (value.client.streamid!=canvas.streamid) canvas._drawarea.remoteSyncLoader();
+                    }
+                } else if (value.message[0]=='updateMuteStatus'){
+                    canvas.setMuteStatus(value.message[1]);
+                } else if (value.message[0]=='updateDrawStatus'){
+                    canvas.setDrawAllowStatus(value.message[1]);
+                    //Notify all Listeners for change of the item
+                    canvas.setAttribute("drawAllowStatus",value.message[1]);
+                } else if (value.message[0]=='updateGiveAudioStatus') {
+                    canvas.setExclusiveAudioAllowStatus(value.message[1]);
+                    canvas.setAttribute("exclusiveAudioAllowStatus",value.message[1]);                    
+                } else if (value.message[0]=='applyForModeration'){
+                    if ($debug) Debug.write("Somebody wants the Moderation ",value.client);
+                    canvas.currentActivityList.addModerationRequest(value.client,value.message[1]);
+                } else if (value.message[0]=='applyForScreen'){
+                   if ($debug) Debug.write("Somebody wants to share/record Screen ",value.client);
+                    canvas.currentActivityList.addScreenRequest(value.client,value.message[1]);
+                } else if (value.message[0]=='applyForRemote'){
+                    if ($debug) Debug.write("Somebody wants to remote control screen ",value.client);
+                    canvas.currentActivityList.addRemoteRequest(value.client,value.message[1]);
+                } else if (value.message[0]=='applyForWhiteboard'){
+                    if ($debug) Debug.write("Somebody wants to draw on Whiteboard ",value.client);
+                    canvas.currentActivityList.addWhiteboardRequest(value.client,value.message[1]);
+                } else if (value.message[0]=='applyForA'){
+                    if ($debug) Debug.write("Somebody wants to share A ",value.client);
+                    canvas.currentActivityList.addAudioRequest(value.client,value.message[1]);
+                } else if (value.message[0]=='applyForAV'){
+                    if ($debug) Debug.write("Somebody wants to share AV ",value.client);
+                    canvas.currentActivityList.addAudioAndVideoRequest(value.client,value.message[1]);
+                } else if (value.message[0]=='hideActivityObj'){
+                    if ($debug) Debug.write("Somebody wants to hideActivityObj ",value.client);
+                    canvas.currentActivityList.hideActivityObj(value);
+                } else if (value.message[0]=='applyForMuteOn'){
+                    canvas.currentActivityList.applyForMuteOn(value.client,value.message[1]);
+                } else if (value.message[0]=='applyForMuteOff'){
+                    canvas.currentActivityList.applyForMuteOff(value.client,value.message[1]);
+                } else if (value.message[0]=='applyForGiveExclusiveAudioOn'){
+                    canvas.currentActivityList.applyForGiveExclusiveAudioOn(value.client,value.message[1]);
+                } else if (value.message[0] == 'personal') {
+                	var pSID = value.client.publicSID;
+                    var vo = canvas._videocontainer._participants.getUserListItemByPublicSID(pSID);
+                    if (vo != null) {
+                    	vo.setAttribute('lastname', value.message[2]);
+                    	vo.refObj.lastname = value.message[2];
+                    }
+					canvas.sendViaLocalConnection(canvas.vid_lc_name, "updateFirstLastName", [pSID, value.message[1], value.message[2]]);
+                } else {
+                    if ($debug) Debug.warn("sendVarsToMessageWithClient unkown message ",value);
+                }
+                ]]>
+            </handler>   
+        </netRemoteCallHib>     
+    
+        <netRemoteCallHib name="newMessageByRoomAndDomain" funcname="newMessageByRoomAndDomain">
+            <handler name="ondata" args="value">
+                //The onResult-Handler will be called be the rtmpconnection
+                //if ($debug) Debug.write("newMessageByRoomAndDomain: ",value);    
+                <![CDATA[
+                    if (value[0]=='closeprivatechat'){
+                        if ($debug) Debug.write("closeprivatechat",value);
+                        canvas._currentChatPanel.closeprivatechat(value);
+                    } else if (value[0]=='newprivatechat'){
+	                    if ($debug) Debug.write("newprivatechat",value);
+	                    canvas._currentChatPanel.newprivatechat(value);
+	                } else if (value.message=='desktop'){
+                        canvas._drawarea.incomingScreenSharing(value);
+                    } else if (value.message=='library'){
+                        
+                        if (value.action == 'import') {
+                            canvas.currentUploadWindow.myFileUpload.onCompleteByRemote(value);
+                            return;
+                        }
+                        
+                        var error = false;
+                        for (var eg in value.error){
+                            if (value.error[eg].exitValue!=0){
+	                            if ($debug) Debug.write("eg ",eg," value ",value.error[eg]);
+	                            if ($debug) Debug.write("eg ",eg," value ",value.error[eg].exitValue);
+                                error = true;
+                            }
+                        }
+                        canvas.currentUploadWindow.myFileUpload.onCompleteByRemote(value);
+                        if (value.hasError) {
+                            new lz.converterPopup(canvas.main_content._content.inner,{error:value.error});
+                        }
+                    } else if (value.message=='startStreaming'){
+                        canvas._drawarea.startStreaming(value);
+                    } else if (value.message=='stopStreaming'){
+                        canvas._drawarea.stopStreaming(value);
+                    } else if (value.message=='roomClosed'){
+                        canvas.roomClosed();
+                    } else if (value.message=='inviteToRoom'){
+                        if ($debug) Debug.write("Incoming Room Invitation ",value);
+                        new lz.chatParticipantsInviteNotification(canvas,{
+                                    publicSID:value.publicSID,
+                                    usermessage:value.usermessage,
+                                    roomId:value.roomId
+                                });
+                    } else if (value.message=='inviteToRoomAnswer'){
+                        if ($debug) Debug.write("Incoming Room inviteToRoomAnswer ",value);
+                        new lz.errorPopup(canvas,{
+                                    error:value.usermessage
+                                });
+                    } else {
+                        if ($debug) Debug.warn("Unknown Event -newMessageByRoomAndDomain- ",value);
+                    }
+                    
+                    
+                ]]>    
+            </handler>  
+        </netRemoteCallHib>      
+               
+        
+        <netRemoteCallHib name="newPoll" funcname="newPoll">
+            <handler name="ondata" args="value">
+                <![CDATA[
+                //The onResult-Handler will be called by the rtmpconnection
+                //Debug.write("newPoll : ",value);
+                if(canvas.user_id!=value.createdBy.user_id)
+                    new lz.answerPoll(
+                        canvas.main_content._content.inner
+                        , {
+                            createdBy: value.createdBy.login
+                            , pollDate: value.created
+                            , pollQuestion: value.pollQuestion
+                            , pollTypeId: value.pollType.pollTypesId
+                            , roomPollAnswerList: value.roomPollAnswerList
+                            , roomPollId: value.roomPollId
+                            , roomScopeName: value.roomScopeName
+                        }
+                    );
+                ]]>
+            </handler>   
+        </netRemoteCallHib>                    
+                                
+        <netRemoteCallHib name="sendVarsToModeratorGeneral" funcname="sendVarsToModeratorGeneral">
+            <handler name="ondata" args="value">
+                <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                //Debug.write("sendVarsToWhiteboard : ",value);
+                if (value[0]=='sharewhiteinit'){
+                    if (!canvas.htmlframeisloaded){         
+                        canvas.ifrm.createIFrame();
+                        canvas.setAttribute('htmlframeisloaded',true);
+                    }
+                } else if (value[0]=='sharewhiteside'){
+                    if (canvas.htmlframeisloaded){      
+                        _htmlside.setAttribute('text',value[2]);
+                        canvas.ifrm.setAttribute('isrc','http://'+value[2]);
+                    }
+                }
+                ]]>
+            </handler>   
+        </netRemoteCallHib>       
+        
+   <!-- recordContentings Notifications -->
+    <netRemoteCallHib name="stopedRecording" funcname="stopedRecording" >      
+        <handler name="ondata" args="value">
+            if ($debug) Debug.write("stopedRecording: ",value);
+            canvas._mymod.recordingUser = null;
+            canvas._mymod.setMessage();
+        </handler>
+    </netRemoteCallHib>
+    
+    <netRemoteCallHib name="startedRecording" funcname="startedRecording" >      
+        <handler name="ondata" args="value">
+            if ($debug) Debug.write("startedRecording: ",value);
+            canvas._mymod.recordingUser = value;
+            canvas._mymod.setMessage();
+        </handler>
+    </netRemoteCallHib>
+    
+    <netRemoteCallHib name="checkLzRecording" funcname="flvrecorderservice.checkLzRecording" >      
+        <handler name="ondata" args="value">
+            if ($debug) Debug.write("checkLzRecording: ",value);
+            if (value != null) {
+                canvas._mymod.recordingUser = value;
+                canvas._mymod.setMessage();
+            }
+            parent.checkScreenSharing.doCall();
+        </handler>
+    </netRemoteCallHib>
+    
+    <netRemoteCallHib name="startedPublishing" funcname="startedPublishing" >      
+        <handler name="ondata" args="value">
+            if ($debug) Debug.write("startedPublishing: ", value);
+            canvas._mymod.publishingObj = {user: value[0], url: value[1]};
+            canvas._mymod.setMessage();
+        </handler>
+    </netRemoteCallHib>
+    
+    <netRemoteCallHib name="roomConnect" funcname="roomConnect" >      
+        <handler name="ondata" args="value">
+            if ($debug) Debug.write("roomConnect: ",value);
+        </handler>
+    </netRemoteCallHib>
+    
+    
+    <!-- Whiteboard sync Events -->
+    <netRemoteCallHib name="sendSyncFlag" funcname="sendSyncFlag">
+        <handler name="ondata" args="value">
+            <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("sendSyncFlag: ",value);
+                if (canvas.syncWindow == null) {
+                    canvas.syncWindow = new lz.syncWin(canvas.main_content._content.inner,{
+                            labelid:558,labeliderror:559});
+                }
+            ]]>
+        </handler>   
+    </netRemoteCallHib>     
+    
+    <netRemoteCallHib name="sendSyncCompleteFlag" funcname="sendSyncCompleteFlag">
+        <handler name="ondata" args="value">
+            <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("sendSyncCompleteFlag: ",value);
+                if (canvas.syncWindow != null) {
+                    canvas.syncWindow.close();
+                    canvas.syncWindow = null;
+                }
+            ]]>
+        </handler>   
+    </netRemoteCallHib>  
+    
+    <!-- Whiteboard Object Sync Process -->
+    <netRemoteCallHib name="sendObjectSyncFlag" funcname="sendObjectSyncFlag">
+        <handler name="ondata" args="value">
+            <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("sendObjectSyncFlag: ",value);
+                if (canvas.syncImageWindow == null) {
+                    canvas.syncImageWindow = new lz.syncWin(canvas.main_content._content.inner,{labeliderror:591});
+                }
+            ]]>
+        </handler>   
+    </netRemoteCallHib>     
+    
+    <netRemoteCallHib name="sendObjectSyncCompleteFlag" funcname="sendObjectSyncCompleteFlag">
+        <handler name="ondata" args="value">
+            <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("sendObjectSyncCompleteFlag: ",value);
+                if (canvas.syncImageWindow != null) {
+                    canvas.syncImageWindow.close();
+                    canvas.syncImageWindow = null;
+                }
+            ]]>
+        </handler>   
+    </netRemoteCallHib>  
+    
+    
+    <!-- Recording of Meetings -->
+    <netRemoteCallHib name="checkForRecording" funcname="flvrecorderservice.checkForRecording">
+        <handler name="ondata" args="value">
+            <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("checkForRecording: ",value);
+                if (value == null) {
+                    new lz.recordingStartWin(canvas.main_content._content.inner);
+                } else {
+                    new lz.errorPopupUserInfo(canvas,{error:canvas.getLabelName(418),user:value});
+                }
+            ]]>
+        </handler>   
+    </netRemoteCallHib>  
+    
+    <netRemoteCallHib name="interviewStatus" funcname="interviewStatus">
+        <handler name="ondata" args="value">
+            <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("interviewStatus: ",value);
+                canvas._drawarea.reloadStatus();
+            ]]>
+        </handler>   
+    </netRemoteCallHib>  
+    
+    <netRemoteCallHib name="closeRoom" funcname="xmlcrm.closeRoom">
+        <attribute name="room_id" value="0" type="number" />
+        <attribute name="isClosed" value="true" type="boolean" />
+        <netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+        <netparam><method name="getValue">return parent.room_id;</method></netparam>
+        <netparam><method name="getValue">return parent.isClosed;</method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("closeRoom: ",value);
+            ]]>
+        </handler>   
+    </netRemoteCallHib> 
+    
+    <netRemoteCallHib name="clearChatContent" funcname="clearChatContent">
+        <handler name="ondata" args="value">
+            <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                canvas._chatcontent.reload();
+            ]]>
+        </handler>   
+    </netRemoteCallHib> 
+    
+    <netRemoteCallHib name="setCanGiveAudio" funcname="whiteboardservice.setCanGiveAudio"
+                   remotecontext="$once{ canvas.thishib }">
+        <attribute name="publicSID" value="" type="string" />
+        <attribute name="canGiveAudio" value="true" type="boolean" />
+        <method name="sendValue" args="publicSID,giveAudio">
+        	this.publicSID = publicSID;
+        	this.canGiveAudio = giveAudio;
+        	this.doCall();
+        </method>
+        <netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+        <netparam><method name="getValue">return parent.publicSID;</method></netparam>
+        <netparam><method name="getValue">return parent.canGiveAudio;</method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("setCanGiveAudio : ",value);
+            ]]>
+        </handler>
+    </netRemoteCallHib>
+    
+    
+</class>
+
+<hibRtmpConnection name="thishib" id="hib" />
+
+</library>
diff --git a/WebContent/src/base/hibernate/library.lzx b/WebContent/src/base/hibernate/library.lzx
new file mode 100644
index 0000000..d3bfbf1
--- /dev/null
+++ b/WebContent/src/base/hibernate/library.lzx
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<include href="netRemoteCallHib.lzx" />
+	<include href="hibRtmpConnection.lzx" />
+
+</library>
diff --git a/WebContent/src/base/hibernate/netRemoteCallHib.lzx b/WebContent/src/base/hibernate/netRemoteCallHib.lzx
new file mode 100644
index 0000000..cd13da1
--- /dev/null
+++ b/WebContent/src/base/hibernate/netRemoteCallHib.lzx
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="netRemoteCallHib" extends="netremotecall">
+
+	<!--- this should be the contentSaveWindow -->
+	<attribute name="returnObj" value="null" />
+	 
+	<!--- if true this object will register at the update-observer -->
+	<attribute name="registerObject" value="false" type="boolean" />
+	
+	<!--- show Error Messages with normal Box -->
+    <attribute name="activeErrorHandler" value="false" type="boolean" />	
+    
+	<!--- show Error Messages with normal Box -->
+    <attribute name="showLoading" value="true" type="boolean" />    
+	
+	<!--- show Error Messages with Callback Box -->
+	<attribute name="isCallBackHandler" value="false" type="boolean" />	
+	
+	<handler name="oninit">
+		if (this.registerObject) this.parent.addViewToObserver(this);
+	</handler>	
+	<method name="doCall">
+        if (this.showLoading) canvas._loadingAll.showLoading();
+		//if($debug) Debug.write("netRemoteCallHib/doCall: [ " , this.funcname , " ]",this.parent);
+		this.callRPC();
+	</method>
+	
+	<event name="sendCallBack" />
+	
+	<!---
+        @keywords private
+	 -->
+	<handler name="ondata" args="value">
+		<![CDATA[
+			//Debug.write("ondata: ",this.funcname,value);
+			
+			if (this.showLoading) canvas._loadingAll.hideLoading();
+			
+			//Another Error Handler for the Form-Components
+			if (this.returnObj!=null && Number(value)>0) {
+				//Debug.write("this.returnObj.processNext");
+				this.returnObj.processNext();
+			} else if (this.returnObj!=null && Number(value)<0) {
+				this.returnObj.errorByCode(Number(value));
+			} else if (this.returnObj!=null && value==null) {
+				this.returnObj.errorByCode(-1);
+			}
+			
+            if (this.activeErrorHandler) {
+                if (Number(value)<0){
+                    Debug.warn("Received Error ID: ",value);					
+					if (this.isCallBackHandler) 
+					{
+						var dlg = new lz.callbackRpcErrorDialog(canvas,{callBackObject:this,errorid:Number(value)});						
+						lz.Focus.setFocus(dlg);
+					} else {
+						var dlg = new lz.rpcErrorDialog(canvas,{errorid:Number(value)});
+						lz.Focus.setFocus(dlg);
+					}
+                }
+            }			
+		]]>
+	</handler>	
+</class>
+
+</library>
diff --git a/WebContent/src/base/library.lzx b/WebContent/src/base/library.lzx
new file mode 100644
index 0000000..5ce5d66
--- /dev/null
+++ b/WebContent/src/base/library.lzx
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+    <include href="remote/" />
+    <include href="components/" /> 
+    <include href="hibernate/" />
+    <include href="contentviews/" />
+    <include href="navi/" />
+
+	<!-- for main.lzx -->
+	<include href="externalJavaScript.lzx" />
+    <include href="functions.lzx" />
+	<include href="mainAttributes.lzx" /> 
+	<include href="mainDatasets.lzx" /> 
+	<include href="mainMethods.lzx" /> 
+	<include href="logoutConfirm.lzx" />
+	
+	<!-- 
+	   Defines the Core Classes that gets loaded in the Main Navigation
+	 -->
+	<include href="moduleConfiguration.lzx" />
+
+
+</library>
diff --git a/WebContent/src/base/logoutConfirm.lzx b/WebContent/src/base/logoutConfirm.lzx
new file mode 100644
index 0000000..b1c18ab
--- /dev/null
+++ b/WebContent/src/base/logoutConfirm.lzx
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="logoutConfirm" extends="labelExplorerBox" labelid="633"
+    docking="true" resizeable="false" closable="false" width="270" x="${ canvas.width / 2 - 145 }" y="${ canvas.height / 2 - 120}" height="100">
+
+	<attribute name="objectsToClean" type="expression"/>
+	
+	<labelText fontstyle="bold" y="25" labelid="634" x="10" width="270" multiline="true" />
+	
+	<simpleLabelButton name="ok" x="20" y="70" labelid="54" width="120" height="20">
+		<handler name="onclick">
+			if (!clearStageContent())
+			{
+				canvas._mainbgcontentNavi.navi.destroy();
+				canvas._mainbgcontentNavi.help.destroy();
+				canvas.thishib.logoutUser.doCall();
+			}
+        
+            this.parent.close();                   
+			
+		</handler>
+	</simpleLabelButton>
+	<simpleLabelButton name="cancel" x="140" y="70" labelid="55" width="120" height="20">
+		<handler name="onclick">
+			this.parent.close();
+		</handler>
+	</simpleLabelButton>		
+</class>
+
+</library>
diff --git a/WebContent/src/base/mainAttributes.lzx b/WebContent/src/base/mainAttributes.lzx
new file mode 100644
index 0000000..61c1702
--- /dev/null
+++ b/WebContent/src/base/mainAttributes.lzx
@@ -0,0 +1,505 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+
+<!-- all attributes for main.lzx -->
+
+<library>
+<!-- 
+##########################################################
+these properties will be overwritten by public/config.xml -->  
+
+<attribute name="vid_lc_name" value="" type="string"/>
+
+<attribute name="lc_SID" value="" type="string"/>
+
+<attribute name="lc"/>
+
+<attribute name="rtmp_lc_name" value="" type="string"/>
+
+<attribute name="rtmp_lc"/>
+
+<attribute name="videoComp_lc_name" value="" type="string"/>
+
+<attribute name="videoComp_lc_callback_name" value="" type="string"/>
+
+<attribute name="videoComp_lc"/>
+
+<!--- URL/IP to use for the Server 192.168.178.28
+    inno02.fh-pforzheim.de macbook 192.168.2.103
+    192.168.2.102 bxlug.homelinux.org 213.219.160.72
+        if this value is empty it will try to connect to the 
+    domain-name it has been loading from
+    -->
+<attribute name="rtmphostlocal" value="" type="string" />
+
+<!-- 
+	URL/IP to use for the Server for HTTP and HTTPS traffic.
+    If this value is empty it will use the rtmphostlocal 
+    variable (and in that way try to connect to the 
+    domain-name the OpenMeetings-Client has been loading from)
+ -->
+<attribute name="httphostlocal" value="" type="string" />
+ 
+<!---  
+    Port to use for the Server
+    To this port the default server lookup is done
+    
+    You can find all this configuraiton in your red5-Config in: $RED5_HOME/conf/red5.properties
+ -->
+<attribute name="rtmpport" value="1935" type="string" />
+
+<!--- 
+    Port to use for the Server
+    This port is used to connect to the HTTP-Servlet
+    of the Red5-Servlet
+ -->
+<attribute name="red5httpport" value="5080" type="string" />
+
+<attribute name="useSSL" value="false" type="boolean" />
+<attribute name="rtmpsslport" value="443" type="string" />
+
+<!---
+#############################################################
+    These colors are the main colors and style the hole application
+ -->
+<attribute name="basebgcolorizer" value="" type="string" /> 
+<attribute name="baseMousecolorizer" value="" type="string" />  
+<attribute name="baseMouseOvercolorizer" value="" type="string" />      
+<attribute name="styleMenuBarBaseColor" value="0xFFFFFF" type="string" />    
+
+<attribute name="fontColorHeader" value="0x000000" type="string" />
+<attribute name="bgColorMenuItems" value="0xEAEAEA" type="string" />
+
+<attribute name="webAppRootKey" value="" type="string" />
+
+<attribute name="httpRootKey" value="/" type="string" />
+
+<attribute name="protocol" value="http" type="string" />
+<attribute name="proxyType" value="none" type="string" />
+
+<attribute name="showAudioVideoTest" value="true" type="boolean" />
+
+<!-- 
+#############################################################
+Attributes needed for clustering -->
+
+<attribute name="isSlaveHosted" value="false" type="boolean" />
+
+<!-- server object's address (not loaded from public/config.xml cause this variable is empty by default) -->
+<attribute name="slaveRtmphostlocal" value="" type="string" />
+<!-- rtmpport from slave's public/config.xml  --> 
+<attribute name="slaveRtmpport" value="5080" type="string" />
+<!-- rtmpsslport from slave's public/config.xml -->
+<attribute name="slaveRtmpsslport" value="443" type="string" />
+<!-- from slave's public/config.xml -->
+<attribute name="slaveWebAppRootKey" value="" type="string" /> 
+
+<!--
+#############################################################
+    Id of the Recording that is played when access the Recordings Player via Direct Link URL
+ -->
+<attribute name="roomRecordingId" value="0" type="number" />
+
+<!--- Name of the Application -->
+<attribute name="currentappname" value="OpenMeetings" type="string" />   
+<attribute name="currentappnameurl" value="OpenMeetings" type="string" />   
+<attribute name="currentappnamebugurl" value="OpenMeetings" type="string" /> 
+
+<!--- Video Settings -->
+<attribute name="loudnessAcitviation" value="10" type="number" />
+<attribute name="showWindowEffect" value="y" type="string" /> 
+
+<!--- Calendar Settings -->
+<attribute name="firstdayinweek" value="1" type="number" />
+
+<attribute name="showmodernWhiteBoard" value="y" type="string" />
+
+<attribute name="showRecording" value="visible" type="string" />
+
+<attribute name="defaultWhiteboardWidth" value="2400" type="number" />
+<attribute name="defaultWhiteboardHeight" value="1200" type="number" />
+
+<!-- END OF public/config.xml attributes
+##########################################################
+ -->
+
+<attribute name="userHistory" value="null" />
+<attribute name="browserTabHistory" value="null" />
+
+<!-- this attribute holds an object of type RoomClient
+ the LAST RoomClient Object that has been changed the drawstatus
+ so ondrawAllowStatus = will trigger that the draw-status of ANYBODY has changed
+ and canvas.drawAllowStatus = is the RoomClient that has changed
+ and canvas.drawAllowStatus.canDraw = is the new Status of that RoomClient
+ -->
+
+<attribute name="drawAllowStatus" value="null"/>
+
+<!-- this attribute holds an object of type RoomClient
+the LAST RoomClient Object that has been changed the giveExclusiveAudio status
+-->
+<attribute name="exclusiveAudioAllowStatus" value="null"/>
+
+<!--
+    this value indicates if this user is allowed to draw to the Whiteboard
+    If this user is currently Moderator => he ALWAYS can draw to whiteboard
+    even if this isAllowedToDraw == false
+ -->
+<attribute name="isAllowedToDraw" value="false" type="boolean" />
+
+<!-- 
+    this attribute holds an object of type RoomClient
+    the LAST RoomClient Object that has been changed the mute-status
+ -->
+<attribute name="micMutedStatusChangedItem" value="null" />
+
+<!--
+    this value indicates if this user is currently muted
+ -->
+<attribute name="micMuted" value="false" type="boolean" />
+
+<!--- URL/IP to use for the Server -->
+<attribute name="rtmphost" value="" type="string" />
+
+<!--- Username/Nickname -->
+<attribute name="currentuser" value="" type="string" />
+
+<!--- Roomname internaly Scope -->
+<attribute name="currentcourse" value="" type="string" />
+
+<!--- Roomname/Coursename -->
+<attribute name="currentcourseName" value="" type="string" />
+
+<attribute name="currentImagesListdraw" value="null" />
+
+<!--- 
+    The Reference for a Streaming Object
+    This should be removed later when the OpenLaszlo API handles
+    the broadcast better
+    -swagner
+ -->
+<attribute name="_nc" value="null" />
+    
+<!--
+<attribute name="moderatorStreamID" value="" type="string" />
+<attribute name="moderatorationObject" value="" type="string" />
+<attribute name="moderatorName" type="string" setter="this.setModeratorName(moderatorName)" />
+ -->
+<attribute name="currentModeratorList" value="null" />
+
+<attribute name="newModeratorList" value="null" />
+<attribute name="removeModeratorList" value="null" />
+
+<attribute name="ismoderator" value="false" type="boolean" />
+
+<attribute name="loadingmessage" value="" type="string" />
+<!--- 
+    The state of the Application
+    At the beginning you should choose how many users are allowed to
+    login simultaniously
+ -->
+<attribute name="islogedin" value="false" type="boolean" />
+   
+<attribute name="htmlframeisloaded" value="false" type="boolean" />
+<attribute name="createIFrameDone_attr" value="false" type="boolean" />
+
+
+<attribute name="uploadmoduleppt" value="videoconf1ppt" type="string" />
+<attribute name="uploadmoduleimg" value="videoconf1" type="string" />
+<attribute name="foldersequence" value="null" />
+<attribute name="uploadmoduleimgfolder" value="" type="string" />
+<!---
+    Can be either 2 or 4
+    But theoretically there is no limit
+ -->
+<attribute name="numberofallowedpartners" value="0" type="number" />
+
+<!--- Number of currently connected Users -->
+<attribute name="numberofpartners" value="0" type="number" />
+
+<!--- unique ID of this Stream -->
+<attribute name="streamid" value="0" type="string" />
+
+<!--- id of the current Mod in this room -->
+<attribute name="currentmodid" value="0" type="string" />
+
+<attribute name="currentlanguage" value="english" type="string" />
+
+<attribute name="objWhiteboard" value="null" />
+<attribute name="whiteboardCount" value="0" type="number" />
+<attribute name="objMessage" value="null" />
+<attribute name="VarsModeratorGeneral" value="null" />
+
+<attribute name="isConference" value="false" type="boolean" />
+
+<attribute name="statesInitValues" value="null" />
+<attribute name="salutationsInitValues" value="null" />
+<attribute name="roomTypesInitValues" value="null" />
+
+<attribute name="stdTimeOffset" value="0" type="number" />
+<attribute name="inviteMainWindow" value="null" />
+
+<!--- Audio-Video Quality Settings
+    overwritten by values from the public/config.xml 
+ -->
+<attribute name="codecType" value="h264" type="string" />
+<attribute name="framesPerSecond" value="30" type="number" />
+<attribute name="bandwidthNeededNormal" value="16384" type="number" />
+<attribute name="bandwidthNeededBest" value="32768" type="number" />
+<attribute name="camQualityNormal" value="75" type="number" />
+<attribute name="camQualityBest" value="75" type="number" />
+        
+<!--- Reference to the current active drawarea -->
+<attribute name="_drawarea" value="null" /> 
+
+<!--- Username of current user -->
+<attribute name="currentusename" value="defaultname" type="string" />
+<attribute name="user_id" value="0" type="number" />
+<attribute name="firstName" value="" type="string" />
+<attribute name="timeZoneId" value="0" type="number" />
+<attribute name="jNameTimeZone" value="" type="string" />
+<attribute name="timeZones" type="object" />
+<attribute name="lastName" value="" type="string" />
+<attribute name="mail" value="" type="string" />
+<attribute name="lastLogin" value="" type="string" />
+<attribute name="official_code" value="" type="string" />
+<attribute name="picture_uri" value="" type="string" />
+<attribute name="language" value="" type="string" />
+
+<!--- User porperties -->
+<attribute name="currentusercolor" value="0" type="number" />
+<attribute name="currentuserpos" value="0" type="number" />
+    
+<attribute name="currentModApply" value="null" />   
+
+<attribute name="sessionObject" value="null" />
+<attribute name="sessionId" value="" type="string" />
+
+<attribute name="syncWindow" value="null" />
+<attribute name="syncImageWindow" value="null" />
+<attribute name="syncSWFWindow" value="null" />
+<attribute name="publicSID" value="" type="string" />
+
+<!--- attributes for direct room access -->
+<attribute name="initroomid" value="0" type="number" />
+<attribute name="initroomStr" value="" type="string" />
+<attribute name="initroomtype" value="" type="string" />
+<attribute name="initdomainid" value="" type="string" />
+<attribute name="initlangid" value="1" type="number" />
+<attribute name="isinitRoomDirect" value="false" type="boolean" />
+<attribute name="isinitRoomObject" value="null" /> 
+
+<!-- attributes for direct room access via direct link -->
+<attribute name="directUserLogin" value="false" type="boolean" />
+<attribute name="directRoomId" value="1" type="number" />
+<attribute name="directRoomObj" value="null" />
+
+<!--- attributes for direct room access via remoteUser -->
+<attribute name="remoteUserLogin" value="false" type="boolean" />
+<attribute name="remoteUserSid" value="" type="string" />
+
+<!--- attributes for direct room access via remoteUser
+    This is using the advanced methods to prevent abuse
+ -->
+<attribute name="secureRemoteUserLogin" value="false" type="boolean" />
+<attribute name="secureHash" value="" type="string" />
+
+<!-- Attributes for wicket login (since it hard not to break anything)-->
+<attribute name="wicketsid" type="string" value="null"/>
+<attribute name="wicketroomid" type="number" value="0"/>
+
+<!--- skip loading of Language -->
+<attribute name="language_id" value="0" type="number" />
+<!--- application default language -->
+<attribute name="default_lang_id" value="1" type="number" />
+
+<attribute name="isResetUsername" value="false" type="boolean" />
+<attribute name="resetHash" value="" type="string" />
+    
+<attribute name="naviHeight" value="84" type="number" />    
+<attribute name="naviHeightDelta" value="84" type="number" />  
+
+<attribute name="currentrecorder" value="null" /> 
+<attribute name="currentrecorder_id" value="0" type="number" /> 
+
+<!--- 
+Holds a refernce to the current VideoCOntainer Object
+containing the VideoViews
+and some more references to temp-objects
+ -->
+<attribute name="_videocontainer" value="null" />
+<attribute name="_mymod" value="null" />
+
+<attribute name="isrtl" value="false" type="boolean" />    
+
+<!---
+    Attributes for browser panel size.
+    Those attributes are used to determine size of browser class (modules/conference/browser/conferenecBrowser.lzx)
+    in base/mainMethods.lzx.
+        2008 Apr 9 commented by onokeiji@gmail.com
+-->
+<attribute name="browserPanelWidth" value="600"/>
+<attribute name="browserPanelHeight" value="500"/>
+
+<attribute name="currentSlideNo" value="0" type="number" />
+<attribute name="currentSlideTotal" value="0" type="number" />
+<attribute name="currentSlideZoom" value="0" type="number" />
+
+<attribute name="currentUploadWindow" value="null" />
+
+<!--
+    ################################
+    Attributes for direct Moderator setup via Moodle
+ -->
+<attribute name="isMoodleRoom" value="false" type="boolean" /> 
+
+<attribute name="becomemoderator" value="false" type="boolean" />
+<attribute name="becomeSuperModerator" value="false" type="boolean" />
+
+<attribute name="moodleWwwRoot" value="" type="string" />
+<attribute name="moodleUserId" value="0" type="number" />
+<attribute name="moodlePicture" value="0" type="number" />
+
+
+<attribute name="currentRoomObj" value="null" />
+
+<attribute name="refreshSession" value="60000" type="number" />
+
+<attribute name="globalFontSize" value="11" type="number" />
+
+<attribute name="lastBroadCastingUser" value="null" />
+
+<attribute name="isBroadCasting" value="false" type="boolean" />
+
+<attribute name="currentContentView" value="null" />
+
+<!-- item to focus on after rpcErrorDialog has been shown-->
+<attribute name="focusOnItem" value="null"/>
+
+<attribute name="currentRoomObject" value="null"/>
+
+<attribute name="appointmentNotificationPopUp" value="null"/>
+
+<attribute name="conferenceBrowserIsinited" value="false" type="boolean" />
+
+<attribute name="isAllowedToScreenShare" value="false" type="boolean" />
+
+<attribute name="isAllowedToRemoteControl" value="false" type="boolean" />
+
+<attribute name="isAllowedToGiveExclusiveAudio" value="false" type="boolean" />
+
+<attribute name="roomJumpId" value="0" type="number" />
+
+<!--
+    Loads a User profile page directly instead of loading the Dashboard
+    cuser is a hash that can be found in the UserContacts Table
+ -->     
+<attribute name="cuser" value="" type="string"/>
+
+<!--
+    Indicates if the user does accept or deny a user contact request
+ -->    
+<attribute name="cuserStatus" value="none" type="string"/>
+
+<!--
+    Attribute to load a custom user calendar instead of the own one
+-->
+<attribute name="contactUser" value="0" type="number" />
+
+<attribute name="monthnames" value="['Januar','Februar','Maerz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember']"/> 
+
+<attribute name="dayShortNames" value="null" />
+
+<!--
+    Used in SOAP API to indicate if the user will see a pop up to enter its nickname
+ -->
+<attribute name="showNickNameDialog" value="false" type="boolean" />
+
+<!--
+    Used in SOAP API to indicate if the user logs directly into a room or into the dashboard
+ -->
+<attribute name="landingZone" value="" type="string"/>
+
+<!--
+    if the users logs in via SOAP he does not see the exit button by default
+    only if the landingZone == dashboard
+ -->
+<attribute name="destroyExitButton" value="true" type="boolean" />
+
+<attribute name="currentFileExplorer" value="null"/>
+
+<attribute name="allowRecording" value="true" type="boolean" />
+
+<!-- userdata -->
+<attribute name="sharedObject" value="null" />
+
+<attribute name="currentMicName" value="" type="string"/>
+<attribute name="currentCamName" value="" type="string"/>
+
+<attribute name="currentBaseConferenceRoom" value="null" />
+
+<attribute name="GIVE_EXCLUSIVE_AUDIO_KEY" value="123"/> <!-- F12 --> 
+<attribute name="ARRANGE_WINDOWS_KEY" value="119"/> <!-- F8 --> 
+<attribute name="MUTE_AUDIO_KEY" value="118"/> <!-- F7 --> 
+
+<!-- 
+	Indicates if the Red5 SIP Integration is enabled or not and 
+	if the SIP Dialer is shown in the conference menu
+ -->
+<attribute name="RED5_SIP_ENABLE" value="no" type="string" /> 
+
+<!-- 
+	The server side configuration of the max upload size for files
+ -->
+<attribute name="MAX_UPLOAD_SIZE" value="-1" type="string" /> 
+
+<!-- 
+	The server side configuration of the redirect.url.for.external.users
+ -->
+<attribute name="REDIRECT_URL_FOR_EXTERNAL_USERS" value="null" type="string" /> 
+
+<attribute name="currentNC" value="null" />
+
+<!-- 
+	Holds a reference to the current tooltip, if there is one
+ -->
+<attribute name="currentToolTip" value="null" />
+
+<method name="registerToolTip" args="viewInstance">
+	if (this.currentToolTip != null) {
+		this.currentToolTip.cleanHolder();
+	}
+	this.currentToolTip = viewInstance;
+</method>
+
+<method name="clearToolTip">
+	if (this.currentToolTip != null) {
+		this.currentToolTip.cleanHolder();
+		this.currentToolTip = null;
+	}
+</method>
+
+<!-- 
+	Holds a reference to the current activity list, if there is one
+ -->
+<attribute name="currentActivityList" value="null" />
+
+</library>
diff --git a/WebContent/src/base/mainDatasets.lzx b/WebContent/src/base/mainDatasets.lzx
new file mode 100644
index 0000000..af3020b
--- /dev/null
+++ b/WebContent/src/base/mainDatasets.lzx
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+
+<!-- all datasets for main.lzx -->
+
+<library>
+
+<!-- get values from public/config.xml -->
+<dataset type="http" name="myConfigSet" request="false" ondata="parent.mainTheme.loadTheme()">
+    <handler name="oninit">
+        var d = new Date();
+        this.setAttribute("src","config.xml?random="+d.getTime());
+        this.doRequest();
+    </handler>
+    <handler name="ondata">
+        if ($debug) Debug.write("ondata");
+    </handler>
+    <handler name="onerror" args="e">
+        if ($debug) Debug.write("onerror",e);
+    </handler>
+    <handler name="ontimeout" args="e">
+        if ($debug) Debug.write("ontimeout",e);
+    </handler>
+</dataset>
+
+<!-- get values from public/config.xml -->
+<dataset type="http" name="mainTheme" request="false" ondata="canvas.myinit()">
+    <method name="loadTheme">
+        var d = new Date();
+        this.setAttribute("src","theme.xml?random="+d.getTime());
+        this.doRequest();
+    </method>
+    <handler name="ondata">
+        if ($debug) Debug.write("ondata");
+    </handler>
+    <handler name="onerror" args="e">
+        if ($debug) Debug.write("onerror",e);
+    </handler>
+    <handler name="ontimeout" args="e">
+        if ($debug) Debug.write("ontimeout",e);
+    </handler>
+</dataset>
+
+</library>
diff --git a/WebContent/src/base/mainMethods.lzx b/WebContent/src/base/mainMethods.lzx
new file mode 100644
index 0000000..ffbc40e
--- /dev/null
+++ b/WebContent/src/base/mainMethods.lzx
@@ -0,0 +1,1146 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+
+<!-- methods for main.lzx -->
+
+<library>
+
+	<class name="baseconfmenucommand" extends="command" >
+    	<attribute name="enabled" value="true" type="boolean" />
+    	<attribute name="tipLabelId" value="0" type="number" />
+    </class>
+    
+    <class name="confmenucommand" extends="baseconfmenucommand" >
+    	<attribute name="actionCommand" value="" type="string" />
+    	<handler name="onselect" args="sel">
+    		if (!this.enabled) {
+    			return;
+    		}
+    		canvas.doActionmenu(this.actionCommand);
+    	</handler>
+    </class>
+        
+    <baseconfmenucommand id="cmd_shareDesktop" tipLabelId="1480" >
+    	<handler name="onselect" args="sel">
+    		if (!this.enabled) {
+    			return;
+    		}
+    		canvas._mymod.checkForApplyScreen("no");
+    	</handler>
+    </baseconfmenucommand>
+    
+    <confmenucommand id="cmd_applyforMod" tipLabelId="1481" actionCommand="applyForMod" />
+    
+    <confmenucommand id="cmd_applyforWhiteBoard" tipLabelId="1492" key="['control','shift','2']">
+    	<handler name="onselect" args="tSel">
+    		if (!this.enabled) {
+    			return;
+    		}
+    		if ($debug) Debug.write("cmd_applyforWhiteBoard onselect",tSel);
+    		//Ask for Right to Draw on Whiteboard
+			var tDate = new Date();
+			canvas.thishib.sendMessageWithClient.sendMessage("applyForWhiteboard",tDate.getTime());
+    	</handler>
+    </confmenucommand>
+    
+    <baseconfmenucommand id="cmd_applyforAV" tipLabelId="1482">
+    	<handler name="onselect" args="tSel">
+    		if (!this.enabled) {
+    			return;
+    		}
+    		if ($debug) Debug.write("cmd_applyforAV onselect",canvas.ismoderator,tSel);
+    		if (canvas.ismoderator) {
+				//Do directly send confirmation to share Audio/Video to SELF! so that all users get
+				//the notification and the broadcasting Bit is set for this User
+				canvas.thishib.setBroadCastingFlag.publicSIDOfNewModerator = canvas.publicSID;
+				canvas.thishib.setBroadCastingFlag.isAllowedToBroadCastAV = true;
+				canvas.thishib.setBroadCastingFlag.doCall();
+			} else {
+				//Apply for Right to Share Audio/Video
+				var tDate = new Date();
+				canvas.thishib.sendMessageWithClient.sendMessage("applyForAV",tDate.getTime());
+			}
+    	</handler>
+    </baseconfmenucommand>
+    
+    <confmenucommand id="cmd_createPoll" tipLabelId="1483" actionCommand="createPoll" />
+    <confmenucommand id="cmd_pollResults" tipLabelId="1484" actionCommand="pollResults" />
+    <confmenucommand id="cmd_checkPollVoted" tipLabelId="1485" actionCommand="checkPollVoted" />
+    <confmenucommand id="cmd_importFile" tipLabelId="1479" actionCommand="importFile" />
+    <confmenucommand id="cmd_editCamMicSettings" actionCommand="editCamMicSettings" tipLabelId="1486" /> 
+    <confmenucommand id="cmd_quit" actionCommand="quit" tipLabelId="1487" />
+    <confmenucommand id="cmd_showSipDialer" actionCommand="showSipDialer" tipLabelId="1488" />
+    
+    <confmenucommand id="cmd_invitation" actionCommand="invitation" tipLabelId="1489" /> 
+    <confmenucommand id="cmd_editWhiteboardDefault" actionCommand="editWhiteboardDefault" tipLabelId="1490" /> 
+    
+    <!-- 
+    <confmenucommand id="cmd_coBrowser" actionCommand="browser_open" key="['control','b']"/> 
+     -->
+   
+    <confmenucommand id="cmd_exportFilePNG" onselect="canvas.doWhiteboardActionmenu('exportFilePNG')" tipLabelId="1489" />
+    <confmenucommand id="cmd_exportFileJPG" onselect="canvas.doWhiteboardActionmenu('exportFileJPG')" tipLabelId="1489" />
+    <confmenucommand id="cmd_exportFileSVG" onselect="canvas.doWhiteboardActionmenu('exportFileSVG')" tipLabelId="1489" />
+    <!-- 
+    <confmenucommand id="cmd_exportFilePDF" onselect="canvas.doWhiteboardActionmenu('exportFilePDF')" tipLabelId="1489" />
+    <confmenucommand id="cmd_exportFileTIF" onselect="canvas.doWhiteboardActionmenu('exportFileTIF')" tipLabelId="1489" />
+     -->
+    
+    <attribute name="colorArray" value="null" />
+    
+    <method name="getColorForUser">
+    	<![CDATA[
+    	   var colorArray = [0x92E8A4,0xC2F1FF,0xFFFCAE,0xE8C792,0xFF8073,
+                            0xE8DB87,0xAFFFB8,0xBED4FF,0xE0BBE8,0xFFBBA5];
+    	   return colorArray[Math.round(Math.random()*10)];
+    	]]>
+    </method>
+    
+    <method name="remoteLogWrite" args="message">
+    	if ($debug) Debug.write(message);
+    	var remoteLog = new lz.dataset();
+    	remoteLog.setQueryType("POST");
+    	remoteLog.setAttribute("src", canvas.getUrl() + "remotelog.upload");
+    	remoteLog.setQueryParam("message", message);
+    	remoteLog.setQueryParam("sid", canvas.sessionId);
+    	remoteLog.doRequest();
+    </method>
+    
+    <method name="getHttpHost">
+   	<![CDATA[
+    	if (canvas.httphostlocal != null && canvas.httphostlocal.length > 0) {
+			return canvas.httphostlocal;
+		}
+		return canvas.rtmphostlocal;
+	]]>
+    </method>
+        
+	<method name="getUrl">
+	<![CDATA[
+		return canvas.protocol + '://' + getHttpHost()
+			+ ':' + canvas.red5httpport + canvas.httpRootKey;
+	]]>
+	</method>
+        
+	<method name="getServicesUrl">
+	<![CDATA[
+		return getUrl() + 'services/';
+	]]>
+	</method>
+
+	<method name="getTestingUrl">
+	<![CDATA[
+		return getUrl() + '?swf=networktesting' + ($debug ? 'debug' : '') + '.swf10.swf';
+	]]>
+	</method>
+
+	<method name="getAppBaseUrlWithoutSwfSuffix">
+	<![CDATA[
+		var urlObject = lz.Browser.getBaseURL();
+		//If Port is Null or undefinied use port 80
+		var port = (urlObject.port != null && urlObject.port != undefined) ? urlObject.port : 80;
+		//if($debug) Debug.write("getBaseUrl:: [urlObject, port]", urlObject, port);
+		var url = "" + urlObject.protocol + "://" + urlObject.host + (port != 80 ? ":" + port : "") + urlObject.path;
+		//if($debug) Debug.write("!!!!!!! getBaseUrl:: [urlObject, port, url]", urlObject, port, url);
+		url = url + (url.slice(-1) == '/' ? '' : '/');
+		//if($debug) Debug.write("!!!!!!! getBaseUrl:: [last, url]", url.slice(-1), url);
+		return url.substring(0, url.length - 7); // the length of "public/"
+	]]>
+	</method>
+
+	<method name="getAppBaseUrl">
+	<![CDATA[
+		return getAppBaseUrlWithoutSwfSuffix() + "swf"
+	]]>
+	</method>
+
+	<method name="getScreenSharingUrl">
+	<![CDATA[
+		var organisation_id = (hib.currentdomainObj != null && hib.currentdomainObj.organisation_id != null)
+			? hib.currentdomainObj.organisation_id : 1;
+		if ($debug) Debug.write("mainMethods::getScreenSharingUrl ", hib.userobject, hib.currentdomainObj);
+		
+		var appBase = canvas.getAppBaseUrlWithoutSwfSuffix();
+		if ($debug) Debug.write("appBase=" + appBase);
+		var downloadurl = appBase + 'screen.upload?'
+			+'rtmphostlocal=' + canvas.getHttpHost()
+			+'&baseurl=' + escape(appBase)
+			+'&domain=' + hib.conferencedomain
+			+'&organization_id=' + organisation_id
+			+'&sid=' + canvas.sessionId
+			+'&connectionType=' + canvas.thishib.getProtocol()
+			+'&port=' + canvas.thishib.getPort()
+			+'&publicSID=' + canvas.publicSID
+			+'&languageAsString=' + hib.userlang;
+		if ($debug) Debug.write("mainMethods::getScreenSharingUrl ", downloadurl); 
+		return downloadurl;
+	]]>
+	</method>
+	
+    <dataset type="http" name="languageData" request="false" 
+        src="${ canvas.currentlanguage+'.xml' }" proxied="false">
+        <handler name="ondata" args="value">
+            parent.parseLanugageObject(value);
+        </handler>
+    </dataset>
+
+    <method name="myinit">
+        <![CDATA[
+        canvas.mediaerrortimeout = 30000;
+        canvas.medialoadtimeout = 30000;
+        
+        if($debug) Debug.write("main.lzx/config.xml ondata",this);
+        
+        //Set Config-values by public/config.xml, see comments on public/config.xml
+        this.setAttribute('rtmphostlocal',canvas.myConfigSet.getPointer().xpathQuery('config/rtmphostlocal/text()'));   
+        this.setAttribute('rtmpport',Number(canvas.myConfigSet.getPointer().xpathQuery('config/rtmpport/text()')));  
+        this.setAttribute('rtmpsslport',Number(canvas.myConfigSet.getPointer().xpathQuery('config/rtmpsslport/text()'))); 
+        
+        var userSSLString = canvas.myConfigSet.getPointer().xpathQuery('config/useSSL/text()');
+        if ($debug) Debug.write("userSSLString",userSSLString)
+        if (userSSLString == "yes") {
+            this.setAttribute('useSSL',true);
+        }
+        
+        this.setAttribute('red5httpport',Number(canvas.myConfigSet.getPointer().xpathQuery('config/red5httpport/text()')));
+        
+        this.setAttribute('currentappname',canvas.myConfigSet.getPointer().xpathQuery('config/currentappname/text()'));  
+        this.setAttribute('currentappnameurl',canvas.myConfigSet.getPointer().xpathQuery('config/currentappnameurl/text()'));  
+        this.setAttribute('currentappnamebugurl',canvas.myConfigSet.getPointer().xpathQuery('config/currentappnamebugurl/text()'));
+        this.setAttribute('loudnessAcitviation',canvas.myConfigSet.getPointer().xpathQuery('config/loudnessAcitviation/text()'));
+        this.setAttribute('webAppRootKey',canvas.myConfigSet.getPointer().xpathQuery('config/webAppRootKey/text()'));
+        this.setAttribute('showWindowEffect',canvas.myConfigSet.getPointer().xpathQuery('config/showWindowEffect/text()'));
+        this.setAttribute('firstdayinweek',canvas.myConfigSet.getPointer().xpathQuery('config/firstdayinweek/text()'));
+        this.setAttribute('showRecording',canvas.myConfigSet.getPointer().xpathQuery('config/showRecording/text()'));
+        
+        //old menubar is not active anymore
+        //this.setAttribute('showmodernWhiteBoard',canvas.myConfigSet.getPointer().xpathQuery('config/showmodernWhiteBoard/text()'));
+        
+        //Audio-Video-Settings
+        this.setAttribute('codecType',canvas.myConfigSet.getPointer().xpathQuery('config/codecType/text()'));
+        this.setAttribute('framesPerSecond',Number(canvas.myConfigSet.getPointer().xpathQuery('config/framesPerSecond/text()')));  
+        this.setAttribute('bandwidthNeededNormal',Number(canvas.myConfigSet.getPointer().xpathQuery('config/bandwidthNeededNormal/text()')));  
+        this.setAttribute('bandwidthNeededBest',Number(canvas.myConfigSet.getPointer().xpathQuery('config/bandwidthNeededBest/text()')));  
+        this.setAttribute('camQualityNormal',Number(canvas.myConfigSet.getPointer().xpathQuery('config/camQualityNormal/text()')));  
+        this.setAttribute('camQualityBest',Number(canvas.myConfigSet.getPointer().xpathQuery('config/camQualityBest/text()')));  
+        
+        this.setAttribute('defaultWhiteboardWidth',Number(canvas.myConfigSet.getPointer().xpathQuery('config/defaultWhiteboardWidth/text()')));  
+        this.setAttribute('defaultWhiteboardHeight',Number(canvas.myConfigSet.getPointer().xpathQuery('config/defaultWhiteboardHeight/text()')));  
+        
+        
+        this.setAttribute('moderatorModuleUser',canvas.myConfigSet.getPointer().xpathQuery('config/moderatorModuleUser/text()'));  
+        this.setAttribute('moderatorModuleRoom',canvas.myConfigSet.getPointer().xpathQuery('config/moderatorModuleRoom/text()'));  
+        
+        this.setAttribute('dashboardModuleStartScreen',canvas.myConfigSet.getPointer().xpathQuery('config/dashboardModuleStartScreen/text()'));  
+        this.setAttribute('dashboardModuleCalendar',canvas.myConfigSet.getPointer().xpathQuery('config/dashboardModuleCalendar/text()'));  
+        this.setAttribute('conferenceModuleRoomList',canvas.myConfigSet.getPointer().xpathQuery('config/conferenceModuleRoomList/text()'));  
+        this.setAttribute('conferenceRoomModule',canvas.myConfigSet.getPointer().xpathQuery('config/conferenceRoomModule/text()'));  
+        this.setAttribute('restrictedRoomModule',canvas.myConfigSet.getPointer().xpathQuery('config/restrictedRoomModule/text()'));  
+        this.setAttribute('interviewRoomModule',canvas.myConfigSet.getPointer().xpathQuery('config/interviewRoomModule/text()'));  
+        this.setAttribute('recordModule',canvas.myConfigSet.getPointer().xpathQuery('config/recordModule/text()'));
+          
+        this.setAttribute('httpRootKey',canvas.myConfigSet.getPointer().xpathQuery('config/httpRootKey/text()'));
+        this.setAttribute('httphostlocal',canvas.myConfigSet.getPointer().xpathQuery('config/httphostlocal/text()'));
+        this.setAttribute('protocol',canvas.myConfigSet.getPointer().xpathQuery('config/protocol/text()'));  
+        this.setAttribute('proxyType',canvas.myConfigSet.getPointer().xpathQuery('config/proxyType/text()'));
+
+		//set user color
+		canvas.currentusercolor = canvas.getColorForUser();
+
+        var lc_SID = lz.Browser.getInitArg('lc_SID');
+        
+        if($debug) Debug.write("lc_SID: ", lc_SID);
+        
+        if (lc_SID == undefined) {
+        	new lz.errorPopup(canvas,{'error':'You are loading the wrong SWF, there is no lz_SID given'});
+        	return;
+        }
+        
+        
+
+        this.setAttribute('lc_SID', lc_SID);
+        this.setAttribute('vid_lc_name', this.lc_SID + "__videoLC");
+        this.setAttribute('rtmp_lc_name', this.lc_SID + "__rtmpLC");
+        this.setAttribute('videoComp_lc_name', this.lc_SID + "__streamLC");
+        this.setAttribute('videoComp_lc_callback_name', this.lc_SID + "__streamLC_cback");
+
+        var videoComp_lc = new LocalConnection();
+        videoComp_lc.connect(this.videoComp_lc_name);
+        this.setAttribute('videoComp_lc', videoComp_lc);
+        
+        var t = this;
+    	canvas.videoComp_lc.regExpResult = function(tId,tResult) {
+      		t.regExpResult(tId,tResult);
+        }
+        canvas.videoComp_lc.remoteLogWrite = function(message) {
+        	canvas.remoteLogWrite(message);
+        }
+        canvas.videoComp_lc.exitRoom = function(confirm) {
+            if ($debug) Debug.write("confirm exitRoom:", confirm);
+            if (confirm) {
+                canvas.currentBaseConferenceRoom._screenSharingAdapter.closeAllScreenSharings();
+                if (canvas.appointmentNotificationPopUp != null) {
+                    canvas.appointmentNotificationPopUp.destroy();
+                }
+                canvas.doActionmenu('quit');
+            }
+        }
+    
+        mainBaseText.setAttribute('text',canvas.currentappname);
+        var elemPrefix = "config/appdisplay/displayelement";
+        var cfgDp = canvas.myConfigSet.getPointer();
+        mainBaseText.setAttribute('x', cfgDp.xpathQuery(elemPrefix + "[@name='name']/@x"));
+        mainBaseText.setAttribute('y', cfgDp.xpathQuery(elemPrefix + "[@name='name']/@y"));
+        mainBaseText.setAttribute('visible', "true" == cfgDp.xpathQuery(elemPrefix + "[@name='name']/@display"));
+        mainBaseText.setShadow();
+        mainBaseTextLabel.setAttribute('text',canvas.currentappnameurl);  
+		mainApplogo.setAttribute('src', getThemeImage('logo_image'));
+        mainApplogo.setAttribute('x', cfgDp.xpathQuery(elemPrefix + "[@name='logo']/@x"));
+        mainApplogo.setAttribute('y', cfgDp.xpathQuery(elemPrefix + "[@name='logo']/@y"));
+        mainApplogo.setAttribute('visible', "true" == cfgDp.xpathQuery(elemPrefix + "[@name='logo']/@display"));
+        
+        var cleanUrl = _url;
+        
+        var hasParams = _url.indexOf("?");
+        if (hasParams != -1) {
+            cleanUrl = _url.substr(0, hasParams);
+        }
+        
+        if ($debug) Debug.write("_url ",_url,cleanUrl);
+        var doubleSlash = cleanUrl.indexOf("//");
+        var isNotPort80 = cleanUrl.indexOf(":", doubleSlash+2);
+        if ($debug) Debug.write("isNotPort80: ",isNotPort80,doubleSlash);
+        if (isNotPort80!=-1){
+            //Debug.write("isNotPort80: ",doubleSlash+2, _url.indexOf(":", doubleSlash+2)-doubleSlash-2);
+            var server = cleanUrl.substr(doubleSlash+2, _url.indexOf(":", doubleSlash+2)-doubleSlash-2); 
+        } else {
+            var server = cleanUrl.substr(doubleSlash+2, _url.indexOf("/", doubleSlash+2)-doubleSlash-2); 
+        }
+        
+        if ($debug) Debug.write("this zielnr: ",this,server);
+        
+        this.setAttribute('rtmphost',server);
+    
+        if (this.rtmphostlocal.length==0){
+            this.setAttribute('rtmphostlocal',server);
+        }
+        
+        //Check for Invitation
+        var invitationHash = lz.Browser.getInitArg('invitationHash');
+        
+        if ($debug) Debug.info("###################### -1 ");
+        if ($debug) Debug.info("invitationHash :: ",invitationHash);
+        
+        if (invitationHash != undefined){
+            canvas.isinitRoomDirect = true;
+            canvas.invitationHash = invitationHash;
+        }
+        
+        var secureHash = lz.Browser.getInitArg('secureHash');
+        if (secureHash != undefined){
+            canvas.secureRemoteUserLogin = true;
+            canvas.secureHash = secureHash;
+        }
+        
+        if ($debug) Debug.info("###################### -2 ");
+        
+        //sid=fe9ea55284e0b23991b1c1089b2c8f64&roomid=1
+        var sid = lz.Browser.getInitArg('sid');
+        var initroomid = lz.Browser.getInitArg('roomid');
+        if (sid != undefined && initroomid != undefined){
+            canvas.remoteUserLogin = true;
+            canvas.initroomid = initroomid;
+            canvas.remoteUserSid = sid;
+        }
+        
+        var directRoomId = lz.Browser.getInitArg('directRoomId');
+        if (directRoomId != undefined) {
+            canvas.directUserLogin = true;
+            canvas.directRoomId = directRoomId;
+        }
+        
+        var language = lz.Browser.getInitArg('language');
+        if (language != undefined) {
+            canvas.language_id = Number(language);
+        }
+    
+        //check for reset password
+        var hash = lz.Browser.getInitArg('hash');
+        if (hash!=undefined){
+            canvas.isResetUsername = true;
+            canvas.resetHash = hash;        
+        }
+        
+        var cuserItem = lz.Browser.getInitArg('cuser');
+        if (cuserItem!=undefined){
+            canvas.cuser = cuserItem;  
+            
+            //Lookup additional actions
+            var tAccept = lz.Browser.getInitArg('tAccept');
+            if (tAccept != undefined) {
+                canvas.cuserStatus = tAccept;
+            } else {
+                canvas.cuserStatus = "none";
+            }
+            
+        }
+        
+        var moodleRoom = lz.Browser.getInitArg('moodleRoom');
+        var becomemoderator = lz.Browser.getInitArg('becomemoderator');
+        
+        if (becomemoderator != undefined) {
+            if (becomemoderator == "2"){
+                canvas.becomemoderator = true;
+            } else {
+                canvas.becomemoderator = false;
+            }
+        }
+        
+        if (moodleRoom != undefined){
+            canvas.isMoodleRoom = true;
+            
+            var moodleWwwRoot = lz.Browser.getInitArg('wwwroot');
+            var moodleUserId = lz.Browser.getInitArg('user_id');
+            var moodlePicture = lz.Browser.getInitArg('picture');
+            
+            if (moodleWwwRoot != undefined) {
+                canvas.moodleWwwRoot = moodleWwwRoot;
+            }
+            if (moodleUserId != undefined) {
+                canvas.moodleUserId = Number(moodleUserId);
+            }
+            if (moodlePicture != undefined) {
+                canvas.moodlePicture = moodlePicture;
+            }
+        }
+        
+        var scopeRoomId = lz.Browser.getInitArg('scopeRoomId');
+        if (scopeRoomId != undefined){
+            hib.userScope = scopeRoomId;
+        }
+        
+       	canvas.setAttribute('wicketsid', null);
+        var wicketsid = lz.Browser.getInitArg('wicketsid');
+        var wicketroomid = lz.Browser.getInitArg('wicketroomid');
+        if (wicketsid != undefined && wicketroomid != undefined && !isNaN(wicketroomid)) {
+        	canvas.setAttribute('wicketsid', wicketsid);
+        	canvas.setAttribute('wicketroomid', Number(wicketroomid));
+        	hib.userScope = wicketroomid;
+        }
+        this.setBaseColors();
+    
+        //Debug.write("rtmphostlocal,rtmphost: ",canvas.rtmphostlocal,canvas.rtmphost); 
+        var src = hib.getUrl();
+        
+        canvas.thishib.setAttribute('src',src);
+        canvas.thishib.loaderVar = new lz.autoLoader(canvas);
+        canvas.thishib.loaderVar._src.setAttribute('text',src);
+        canvas.thishib.connect();
+        ]]>
+    </method>
+    
+    <method name="getLabelName" args="id">
+        //if($debug) Debug.write("main.lzx/getLabelName()",id);
+        return getLabelTag(id);
+    </method>
+    
+    <!--
+        exportFilePNG exportFileJPG exportFilePDF exportFileSVG exportFileTIF
+     -->
+     
+    <method name="doWhiteboardActionmenu" args="action">
+        if (action == "exportFilePNG") {
+            canvas._drawarea.confirmSaveAsImageTypeExport("image","png");
+        } else if (action == "exportFileJPG") {
+            canvas._drawarea.confirmSaveAsImageTypeExport("image","jpg");
+        } else if (action == "exportFilePDF") {
+            canvas._drawarea.confirmSaveAsImageTypeExport("image","pdf");
+        } else if (action == "exportFileSVG") {
+            canvas._drawarea.confirmSaveAsImageExport("image");
+        } else if (action == "exportFileTIF") {
+            canvas._drawarea.confirmSaveAsImageTypeExport("image","tif");
+        }
+    </method>
+
+	<!---
+		Actions connected to the shortcuts
+	 -->
+    <method name="doActionmenu" args="stringSub">
+        <![CDATA[
+            if($debug) Debug.write("doActionmenu: ",stringSub);
+            if (canvas._conferencemenu.visibility == 'visible'){
+            	 if (stringSub == "invitation") {
+				    canvas.inviteMainWindow.setAttribute('visibility', 'visible');
+			    } else if (stringSub=='editWhiteboardDefault') {
+                    new lz.editWhiteboardDefault(canvas.main_content._content.inner);
+                } else if (stringSub=='createPoll') {
+                    new lz.createPollWin(canvas.main_content._content.inner);
+                } else if (stringSub=='pollResults') {
+                    this.getVotes.doCall();
+                } else if (stringSub=='checkPollVoted') {
+                    this.checkHasVoted.doCall();
+                } else if (stringSub=='importFile') {
+                    new lz.uploadWindowExplorer(canvas.main_content._content.inner,{
+                            x:60,uploadmodule:canvas.uploadmoduleimg,
+                            parentFolderId:0,
+                            isOwner:false,
+                            fileExplorerRef:null,
+                            isOnlyImage:true,
+                            servletName:'file.upload'
+                        });
+                } else if (stringSub=='applyForMod') {
+                    if ($debug) Debug.info("Apply For Mod through doActionmenu");
+                    //new lz.applyForModeration(canvas.main_content._content.inner);
+                    canvas.thishib.applyForModeration.doCall();
+                } else if (stringSub=='editCamMicSettings') {
+                    canvas._videocontainer._videoviewcontent.changeDevice();
+                } else if (stringSub=='showSipDialer') {
+                    new lz.sipDialer(canvas.main_content._content.inner);
+                } else if (stringSub=='quit') {
+                    
+                    quicklinkAct('conferenceModuleRoomList')
+                
+                } else if( stringSub == "browser_open" ){
+                    var browserPanelWidth  = canvas.browserPanelWidth;
+                    var browserPanelHeight = canvas.browserPanelHeight;
+
+                    if ($debug) Debug.write( "is browser[open] ? ", canvas.main_content._content.inner.conferenceBrowser );
+                    if ($debug) Debug.write( "is browser[browserPanelWidth] ? ", browserPanelWidth );
+                    if ($debug) Debug.write( "is browser[browserPanelHeight] ? ", browserPanelHeight );
+
+                    if( !canvas.conferenceBrowserIsinited ){
+                        new lz.conferenceBrowser( canvas.main_content._content.inner,{
+                                                         name:'conferenceBrowser',y:30,
+                                                         width:canvas.width-220, 
+                                                         height:canvas.height-100,
+                                                         width:browserPanelWidth, 
+                                                         height:browserPanelHeight
+                                                     });
+                    } else{
+                    with( canvas.main_content._content.inner ){
+                            conferenceBrowser.htmlviewer.setVisible( true );
+                            conferenceBrowser.setVisible( true );
+                    }
+                }
+             } else if( stringSub == "browser_close" ){
+                if ($debug) Debug.write( "is browser[close] ? ", canvas.main_content._content.inner.conferenceBrowser );
+                with( canvas.main_content._content.inner ){
+                    if( conferenceBrowser  != undefined ){
+                            conferenceBrowser.htmlviewer.setVisible( false );
+                            conferenceBrowser.setVisible( false );
+                    }
+                }
+            }
+          }
+        ]]>
+    </method> 
+    
+    <method name="startBrowser" args="objMessage">
+        <![CDATA[
+            if( !canvas.conferenceBrowserIsinited ){
+                        if ($debug) Debug.write( "if this" );
+                new lz.conferenceBrowser(canvas.main_content._content.inner,{
+                                             name:'conferenceBrowser',y:30,
+                                             width:canvas.width-220, 
+                                             height:canvas.height-100,
+                                             initedByUser:false,
+                                             initURL:objMessage[1]
+                                        });
+            } else{Debug.write( "else this" );
+                with( canvas.main_content._content.inner ){
+                        conferenceBrowser.htmlviewer.setVisible( true );
+                        conferenceBrowser.setVisible( true );
+                        conferenceBrowser.newBrowserURL(objMessage[1]);
+                }
+            }
+        ]]>
+    </method>   
+    
+    <method name="closeBrowser" args="objMessage">
+        <![CDATA[
+            if( canvas.conferenceBrowserIsinited ){
+                with( canvas.main_content._content.inner ){
+                        conferenceBrowser.close();
+                }
+            }
+        ]]>
+    </method>
+    
+    <netRemoteCallHib name="getVotes" funcname="pollservice.getVotes" remotecontext="$once{ canvas.thishib }" >
+        <handler name="ondata" args="value">
+            new lz.resultPollWin(canvas.main_content._content.inner, {roomPoll: value});
+        </handler>   
+    </netRemoteCallHib>  
+        
+    <netRemoteCallHib name="checkHasVoted" funcname="pollservice.checkHasVoted" remotecontext="$once{ canvas.thishib }" >
+        <handler name="ondata" args="value">
+            <![CDATA[
+                      if (value==1){
+                        parent.getPoll.doCall();
+                      } else if (value==-1){
+                        new lz.messageWin(canvas.main_content._content.inner,{labeliderror:31});
+                      } else if (value==-2){
+                            new lz.messageWin(canvas.main_content._content.inner,{labeliderror:41});
+                }
+            ]]>
+        </handler>   
+    </netRemoteCallHib> 
+    
+    <netRemoteCallHib name="getPoll" funcname="pollservice.getPoll" remotecontext="$once{ canvas.thishib }" >
+        <handler name="ondata" args="value">
+            <![CDATA[
+                if (value!=null){
+                    if ($debug) Debug.write(":: getPoll: ", value);
+                     new lz.answerPoll(
+                        canvas.main_content._content.inner
+                        , {
+                            createdBy: value.createdBy.login
+                            , pollDate: value.created
+                            , pollQuestion: value.pollQuestion
+                            , pollTypeId: value.pollType.pollTypesId
+                            , roomPollAnswerList: value.roomPollAnswerList
+                            , roomPollId: value.roomPollId
+                            , roomScopeName: value.roomScopeName
+                        }
+                     );
+                }
+            ]]>
+        </handler>
+    </netRemoteCallHib> 
+    
+    <method name="setRoomValues" args="roomTypeId,roomId,roomObj">
+    
+        if ($debug) Debug.warn("setRoomValues ",roomTypeId,roomId,roomObj);
+        if (roomTypeId==1){
+                canvas.isConference = true;
+            } else {
+                canvas.isConference = false;
+        }
+        
+        //this is needed cause in the rpc-method *getCurrentModeratorList* we check if its roomtype_id == 3
+        //and if roomtype_id == 3 we will not show any *There is no Moderator* Warning Dialog
+        canvas.currentRoomObject = roomObj;
+
+        hib.currentroomid = roomId;
+        if (roomObj!=null){
+            if (roomTypeId==1){
+                
+                new lz.testSetup(canvas,{isDirectLink:true,roomClassName:canvas.conferenceRoomModule,roomObj:roomObj});
+                 
+            } else if (roomTypeId==2){
+                
+                new lz.testSetup(canvas,{isDirectLink:true,roomClassName:canvas.restrictedRoomModule,roomObj:roomObj});
+                new lz.labelerrorPopup(canvas,{error:'No RoomType currently available for roomTypeId 2'});
+                 
+            } else if (roomTypeId==3){
+                
+                new lz.testSetup(canvas,{isDirectLink:true,roomClassName:canvas.restrictedRoomModule,roomObj:roomObj});
+                 
+            } else if (roomTypeId==4){
+                
+                new lz.testSetup(canvas,{isDirectLink:true,roomClassName:canvas.interviewRoomModule,roomObj:roomObj});
+                 
+            } else if (roomTypeId==5){
+                
+                new lz.testSetup(canvas,{isDirectLink:true,roomClassName:canvas.customRoomModule,roomObj:roomObj});
+                 
+            } 
+        }
+    </method>
+    
+	<method name="roomClosed">
+	    <![CDATA[
+	        if ($debug) Debug.write("canvas.currentRoomObject ",canvas.currentRoomObject);
+	        new lz.redirectBox(canvas,{redirectURL:canvas.currentRoomObject.redirectURL});
+	    ]]>
+	</method>
+                 
+        
+
+	
+	<method name="parseLanugageObject" args="obj">
+	
+	    ////Debug.write('parseLanugageObject: ',obj);
+	    ////Debug.write('parseLanugageObject: ',obj.childNodes);
+	    <![CDATA[
+	    var t = new Array();
+	    for (var i=0;i<obj.childNodes.length;i++){
+	        for (var k=0;k<obj.childNodes[i].childNodes.length;k++){
+	            ////Debug.write(obj.childNodes[i].childNodes[k]);
+	            var t2 = new Array();
+	            t2[obj.childNodes[i].childNodes[k].childNodes[0].nodeName]=obj.childNodes[i].childNodes[k].childNodes[0].childNodes[0].data;
+	            t2[obj.childNodes[i].childNodes[k].childNodes[1].nodeName]=obj.childNodes[i].childNodes[k].childNodes[1].childNodes[0].data;
+	            t.push(t2);
+	        }
+	    }
+	    setLabelObject(t);
+	    canvas.initScreen();
+	    //Debug.write(t);
+	    ]]>
+	</method>
+	
+	<!-- Data Source Definition -->
+	<dataset name="getSessionVarsData" request="false" proxied="false"
+	    querytype="POST" src="${ 'http://'+canvas.rtmphost+'/webrooms/checksession.php' }" 
+	    type="http" >
+	    <handler name="ondata" args="value">
+	    
+	        //Debug.write(value);
+	        canvas.setAttribute('currentcourse',value.childNodes[0].childNodes[0].childNodes[0].childNodes[0].data);
+	        canvas.setAttribute('currentcourseName',canvas.currentcourse);
+	        canvas.setAttribute('currentcourseNameLong',value.childNodes[0].childNodes[0].childNodes[1].childNodes[0].data);
+	        canvas.setAttribute('currentlanguage',value.childNodes[0].childNodes[0].childNodes[8].childNodes[0].data);
+	
+	        canvas.setAttribute('currentusename',value.childNodes[0].childNodes[1].childNodes[2].childNodes[0].data+' '+value.childNodes[0].childNodes[1].childNodes[1].childNodes[0].data);
+	        
+	        canvas.setAttribute('user_id',value.childNodes[0].childNodes[1].childNodes[0].childNodes[0].data);
+	        canvas.setAttribute('firstName',value.childNodes[0].childNodes[1].childNodes[1].childNodes[0].data);
+	        canvas.setAttribute('lastName',value.childNodes[0].childNodes[1].childNodes[2].childNodes[0].data);
+	        canvas.setAttribute('mail',value.childNodes[0].childNodes[1].childNodes[3].childNodes[0].data);
+	        canvas.setAttribute('lastLogin','');
+	        canvas.setAttribute('official_code',value.childNodes[0].childNodes[1].childNodes[5].childNodes[0].data);
+	        canvas.setAttribute('picture_uri','');
+	        canvas.setAttribute('language',value.childNodes[0].childNodes[1].childNodes[7].childNodes[0].data);
+	
+	        //Debug.write(value.childNodes[0].childNodes[1].childNodes[0].childNodes[0].data);
+	        //Debug.write(value.childNodes[0].childNodes[1].childNodes[1].childNodes[0].data);
+	        //Debug.write(value.childNodes[0].childNodes[1].childNodes[2].childNodes[0].data);
+	        //Debug.write(value.childNodes[0].childNodes[1].childNodes[3].childNodes[0].data);
+	        //Debug.write(value.childNodes[0].childNodes[1].childNodes[4].childNodes[0].data);
+	        //Debug.write(value.childNodes[0].childNodes[1].childNodes[5].childNodes[0].data);
+	        //Debug.write(value.childNodes[0].childNodes[1].childNodes[6].childNodes[0].data);
+	        //Debug.write(value.childNodes[0].childNodes[1].childNodes[7].childNodes[0].data);
+	        
+	        switch (canvas.currentlanguage){
+	            case 'english':
+	            break;
+	            case 'german':
+	            break;
+	            case 'french':
+	            break;          
+	            default:
+	            canvas.setAttribute('currentlanguage','english');
+	            break;
+	        }
+	        
+	        var addIt='conf';
+	        if (!canvas.isConference){
+	            addIt='meet'
+	        }
+	        canvas.setAttribute('currentcourse',canvas.rtmphost+canvas.currentcourse+addIt);
+	        canvas.setAttribute('currentuser',value.childNodes[0].childNodes[1].childNodes[5].childNodes[0].data);
+	        
+	        canvas.setAttribute('loadingmessage','loading language data');
+	        canvas.languageData.doRequest();
+	    </handler>
+	</dataset>
+	
+	<method name="addBrowserTabHistory" args="value">
+	    <![CDATA[
+	    //Debug.write("addBrowserTabHistory: ",value);
+	    _browserhistory.addItem(value);
+	    this.browserTabHistory.push(value);
+	    ]]>
+	</method>
+	  
+	<!---
+	@doc The function does compare the new moderator list with the old and prepares the list 
+		the removeModeratorList is used in the performance optimized user list of the restricted 
+		room type to re-render the list items only if really something has changed in any 
+		of the user list items
+	 -->
+	<method name="analyzeModerationList" args="newList">
+	    <![CDATA[
+	    
+	       canvas.newModeratorList = new Array();
+	       canvas.removeModeratorList = new Array();
+	       
+	       if (canvas.currentModeratorList != null) {
+	           for (var i=0;i<canvas.currentModeratorList.length;i++) {
+	                canvas.currentModeratorList[i].found = false;
+	           }
+	       
+	           for (var i=0;i<canvas.currentModeratorList.length;i++) {
+	                
+	                for (var k=0;k<newList.length;k++) {
+	                    if (newList[k].publicSID == canvas.currentModeratorList[i].publicSID) {
+	                        canvas.currentModeratorList[i].found = true;
+	                    }
+	                }
+	            }
+	        }
+	        
+	        for (var k=0;k<newList.length;k++) {
+	            newList[k].found = false;
+	        }
+	       
+	        for (var k=0;k<newList.length;k++) {
+	        	if (canvas.currentModeratorList != null) {
+	                for (var i=0;i<canvas.currentModeratorList.length;i++) {
+	                    if (newList[k].publicSID == canvas.currentModeratorList[i].publicSID) {
+	                        newList[k].found = true;
+	                    }
+	                }
+	        	}
+	        }
+	        
+	        for (var k=0;k<newList.length;k++) {
+	            if (!newList[k].found) {
+	                canvas.newModeratorList.push(newList[k]);
+	            }
+	        }
+	        
+	        if (canvas.currentModeratorList != null) {
+	            for (var i=0;i<canvas.currentModeratorList.length;i++) {
+	                
+	                if (!canvas.currentModeratorList[i].found) {
+	                    canvas.removeModeratorList.push(canvas.currentModeratorList[i])
+	                }
+	            }
+	        }
+	        
+	        if ($debug) Debug.write("newModeratorList :: ",canvas.newModeratorList);
+	        if ($debug) Debug.write("removeModeratorList :: ",canvas.removeModeratorList);
+	    ]]>
+	</method>
+	
+	<!---
+		Updates the "ismoderator" flag
+		the setAttribute method will broadcast an event to all event listeners that 
+		did subscribe using the "onismoderator" handler with reference to canvas !
+		For example in the userlist's of the roomtypes
+	 -->
+	<method name="updateModerationFlag">
+	    <![CDATA[
+	        if ($debug) Debug.write("updateModerationFlag",canvas.currentModeratorList);
+	        var isCurrentModerator = false;
+	        for (var i=0;i<canvas.currentModeratorList.length;i++) {
+	            var item = canvas.currentModeratorList[i];
+	            if (canvas.publicSID == item.publicSID) {
+	                isCurrentModerator = true;
+	            }
+	        }
+	        
+	        //Only send this event if the current user moderators status changes
+	        if (isCurrentModerator != this.ismoderator) {
+		        canvas.sendViaLocalConnection(canvas.vid_lc_name, "updateModerationFlag", [isCurrentModerator]);
+	        }
+	        
+	        // do always spread this event, we need to broadcast the "onismoderator" event
+	        // so that we can update the status of other users in the user list
+	        this.setAttribute('ismoderator',isCurrentModerator);
+	    ]]>
+	</method> 
+	
+	<!---
+		Checks if a certain publicSID is a moderator
+	 -->
+	<method name="getIsModeratorByPublicSID" args="publicSID">
+	    <![CDATA[
+	        for (var i=0;i<canvas.currentModeratorList.length;i++) {
+	            var item = canvas.currentModeratorList[i];
+	            if (publicSID == item.publicSID) {
+	                return true;
+	            }
+	        }
+	        return false;
+	    ]]>
+	</method>
+	 
+	<!---
+		Sets the flags isAllowedToDraw, isAllowedToScreenShare, isAllowedToRemoteControl 
+		and broadcasts the three rights to SWF10 container
+	 -->
+	<method name="setDrawAllowStatus" args="roomClientObj">
+	    <![CDATA[
+	        if ($debug) Debug.write("drawAllowStatus changes ###### ");
+	        if (roomClientObj.publicSID==canvas.publicSID) {
+	            canvas.setAttribute("isAllowedToDraw",roomClientObj.canDraw);
+	            canvas.setAttribute("isAllowedToScreenShare",roomClientObj.canShare);
+	            canvas.setAttribute("isAllowedToRemoteControl",roomClientObj.canRemote);
+	            canvas.sendViaLocalConnection(canvas.vid_lc_name, "setDrawAllowStatus", [roomClientObj.canDraw, roomClientObj.canShare, roomClientObj.canRemote]);
+	        }
+	    ]]>
+	</method>
+	
+	<!---
+		Sets the flag for the isAllowedToGiveExclusiveAudio status and broadcasts it to the 
+		SWF10 container
+	 -->
+	<method name="setExclusiveAudioAllowStatus" args="roomClientObj">
+	    <![CDATA[
+	        if ($debug) Debug.write("giveExclusiveAudioStatus changes ###### ");
+	        if (roomClientObj.publicSID==canvas.publicSID) {
+	            canvas.setAttribute("isAllowedToGiveExclusiveAudio",roomClientObj.canGiveAudio);
+	            canvas.sendViaLocalConnection(canvas.vid_lc_name, "setExclusiveAudioAllowStatus", [roomClientObj.canGiveAudio]);
+	        }
+	    ]]>
+	</method>
+	
+	<method name="setMuteStatus" args="roomClientObj">
+	    <![CDATA[
+	        if ($debug) Debug.write("setMuteStatus changes ###### ",roomClientObj.micMuted);
+	        //Check for self status
+	        if (roomClientObj.publicSID==canvas.publicSID) {
+	            canvas.setAttribute("micMuted",roomClientObj.micMuted);
+	        }
+	        
+	        canvas._videocontainer.updateMuteStatusVideoView(roomClientObj);
+	        
+	        //Notify all Listeners for change of the item
+	        canvas.setAttribute("micMutedStatusChangedItem",roomClientObj);
+	    ]]>
+	</method>
+	
+	<method name="addFolderSequence" args="foldername">
+	    <![CDATA[
+	    this.uploadmoduleimgfolder = '/';
+	    this.uploadmoduleimgfolder += foldername;
+	    this.setAttribute('uploadmoduleimgfolder',this.uploadmoduleimgfolder);
+	    ]]>
+	</method>
+	    
+	    
+	<!-- country validation -->
+	<method name="validateCountry" args="str">
+	    ////Debug.write("validateCountry: ",str);
+	    str = str.toLowerCase();
+	    <![CDATA[
+	        if (str.length!=0){
+	            var a = new Array();
+	            for (var i=0;i<canvas.statesInitValues.length;i++){
+	                var st = canvas.statesInitValues[i].name.toLowerCase();
+	                if (st.startsWith(str))a.push(canvas.statesInitValues[i]);
+	                //this.addItem(canvas.statesInitValues[i].name,canvas.statesInitValues[i].state_id);
+	            }
+	            return a;
+	        }
+	    ]]> 
+	</method>
+	    
+	<method name="getCountryRecord" args="id">
+	    return canvas.statesInitValues[id];
+	</method>
+	    
+	<handler name="onmousewheeldelta" reference="lz.Keys" args="d">
+	    var obj = getCurrentMouseWheelObject();
+	    ////Debug.write("onmousewheeldelta 12: ",d,obj);
+	    <![CDATA[
+	        if (obj!=null) {
+	            obj.step(-d);
+	        }
+	    ]]>
+	</handler>    
+	
+	<method name="reverseWordingsBySplit" args="str">
+	    <![CDATA[
+	        var words_arr = str.split( " " ); // an array of chars
+	        for ( var i = 0, str = ""; i < words_arr.length; i++ ) // reverse their order
+	        {
+	            str += words_arr[ words_arr.length - i - 1 ];
+	            if (words_arr.length != 1) {
+	                str += " ";
+	            }
+	        }
+	        return str;
+	        
+	    ]]>
+	</method> 
+	
+	<method name="reverseAll" args="str">
+	    <![CDATA[
+	        var words_arr = str.split( "" ); // an array of chars
+	        for ( var i = 0, str = ""; i < words_arr.length; i++ ) // reverse their order
+	        {
+	            str += words_arr[ words_arr.length - i - 1 ];
+	            
+	        }
+	        return str;
+	        
+	    ]]>
+	</method> 
+	    
+	<method name="reverseWords" args="str">
+	    <![CDATA[
+	        if ( str == "" || str == null ) return ""; // undefined
+	        // first char indicates the main directive of str (rtl/ltr)
+	        if ( isLTR( str.charCodeAt( 0 ) ) ) return str; // english or number
+	        var words_arr = str.split( "" ); // an array of chars
+	        for ( var i = 0, str = ""; i < words_arr.length; i++ ) // reverse their order
+	            str += words_arr[ words_arr.length - i - 1 ];
+	        return str;
+	    ]]>
+	</method>
+	    
+	<method name="isLTR" args="c">
+	    <![CDATA[
+	        return ( c >= 48 && c <= 57 || c >= 65 && c <= 90 || c >= 97 && c <= 122 );
+	    ]]>
+	</method>
+	
+	<method name="isHEB" args="c">
+	    <![CDATA[
+	        return ( c >= 224 && c <= 250 );
+	    ]]>
+	</method>    
+	
+	<method name="setTextAlign" args="obj,type">
+	    switch ( type ) {
+	        case "left" :
+	            obj.setX( 0 );
+	        break;
+	        case "center" :
+	            obj.setX( this.parent.width / 2 - this.getTextWidth() / 2 );
+	        break;
+	        case "right" :
+	            obj.setX( this.parent.width - this.getTextWidth() );
+	        break;
+	    }
+	</method>  
+	
+	<method name="initSharedObject">
+	    if (canvas.sharedObject == null) {
+	        if($debug) Debug.write("canvas.initSharedObject sharedObject IS null");
+	        canvas.sharedObject = new lz.sharedObject();
+	        canvas.sharedObject.getLocal('userdata');
+	    }
+	</method>
+	
+	<method name="getUserData">
+	    canvas.initSharedObject();
+	    var g = canvas.sharedObject.getData('userdata');
+	    if (g==null) {
+	        if($debug) Debug.write("sharedObject.getData IS null");
+	        g = new Array();
+	    }
+	    return g;
+	</method>
+	
+	<method name="setUserData" args="g">
+	    canvas.initSharedObject();
+	    canvas.sharedObject.setData('userdata', g);
+	    canvas.sharedObject.flush();
+	</method>
+	
+	<attribute name="regExpCounter" value="0" type="number" />
+	<attribute name="regExpResultArray" value="null" />
+	
+	<method name="doRegExpCheck" args="fieldValue,regExpV">
+		this.regExpCounter = this.regExpCounter +1;
+		canvas.sendViaLocalConnection(canvas.rtmp_lc_name, "regExpTest", [fieldValue, regExpV, this.regExpCounter]);
+		return this.regExpCounter;
+	</method>
+	
+	<method name="regExpResult" args="tId,tResult">
+		if (this.regExpResultArray == null) {
+			this.regExpResultArray = new Array();
+		}
+		this.regExpResultArray[tId] = tResult;
+		if ($debug) Debug.write("regExpResult ",tId,tResult);
+	</method>
+	
+	<method name="checkRegExpResult" args="tId">
+		return this.regExpResultArray[tId];
+	</method>
+	
+	
+	<method name="getThemeImage" args="tName">
+		//if ($debug) Debug.write("load Image by Name: ",tName);
+		var tPath = canvas.mainTheme.getPointer().xpathQuery("theme/resource[@name='"+tName+"']/@src");
+		//if ($debug) Debug.write("tPath "+tPath);
+		if (tPath == null) {
+			if ($debug) Debug.warn("getThemeImage - No Image found for config: ",tName);
+		}
+		return tPath;
+	</method>
+	
+	<method name="getThemeColor" args="tColor">
+		//if ($debug) Debug.write("load Color by Name: ",tColor);
+		var tResColor = canvas.mainTheme.getPointer().xpathQuery("theme/color[@name='"+tColor+"']/@value");
+		//if ($debug) Debug.write("tColor "+tColor);
+		if (tResColor == null) {
+			if ($debug) Debug.warn("getThemeColor - No Color found for config: ",tColor);
+		}
+		return tResColor;
+	</method>
+	
+	<method name="setBaseColors">
+		defaultstyle.setAttribute("basecolor",canvas.getThemeColor('basebgcolorizer'));
+		itemStyle.setAttribute("basecolor",canvas.getThemeColor('basebgcolorizer'));
+		menuStyle.setAttribute("basecolor",canvas.getThemeColor('styleMenuBarBaseColor'));
+		_conferencemenu.setAttribute("bgcolor",canvas.getThemeColor('baseMousecolorizer'));
+		_mainbgcontentNavi.setAttribute("bgcolor",canvas.getThemeColor('mainBackgroundColor'));
+		main_content.setAttribute("bgcolor",canvas.getThemeColor('mainBackgroundColor'));
+	</method>
+
+	<method name="getPictureUrl" args="pictureuri,extraParams">
+	<![CDATA[
+		var pUri = (pictureuri == null || pictureuri.length == 0) ? "d.jpg" : pictureuri;
+		var downloadurl = pUri;
+		if (!pUri.startsWith("http://") && !pUri.startsWith("https://")) {
+			pUri = "_profile_" + pUri;
+			
+			downloadurl = canvas.getUrl() + 'DownloadHandler?fileName=' + pUri
+				+ '&parentPath=&room_id=&r=' + (new Date()).getTime()
+				+ extraParams + '&sid='+canvas.sessionId;
+		}
+		if($debug) Debug.write("getPictureUrl/downloadurl ", downloadurl);
+		return downloadurl;
+	]]>
+	</method>
+		
+	<method name="sendViaLocalConnection" args="lc_name,methodName,tArray">
+		//if ($debug) Debug.info("sendViaLocalConnection ",lc_name,methodName); //,tArray
+		if (tArray == null || tArray.length == 0) {
+			canvas.lc.send(lc_name,methodName);
+		} else if (tArray.length == 1) {
+			canvas.lc.send(lc_name,methodName,tArray[0]);
+		} else if (tArray.length == 2) {
+			canvas.lc.send(lc_name,methodName,tArray[0],tArray[1]);
+		} else if (tArray.length == 3) {
+			canvas.lc.send(lc_name,methodName,tArray[0],tArray[1],tArray[2]);
+		} else if (tArray.length == 4) {
+			canvas.lc.send(lc_name,methodName,tArray[0],tArray[1],tArray[2],tArray[3]);
+		} else if (tArray.length == 5) {
+			canvas.lc.send(lc_name,methodName,tArray[0],tArray[1],tArray[2],tArray[3],tArray[4]);
+		} else if (tArray.length == 6) {
+			canvas.lc.send(lc_name,methodName,tArray[0],tArray[1],tArray[2],tArray[3],tArray[4],tArray[5]);
+		} else if (tArray.length == 7) {
+			canvas.lc.send(lc_name,methodName,tArray[0],tArray[1],tArray[2],tArray[3],tArray[4],tArray[5],tArray[6]);
+		} else if (tArray.length == 8) {
+			canvas.lc.send(lc_name,methodName,tArray[0],tArray[1],tArray[2],tArray[3],tArray[4],tArray[5],tArray[6],tArray[7]);
+		} else if (tArray.length == 9) {
+			canvas.lc.send(lc_name,methodName,tArray[0],tArray[1],tArray[2],tArray[3],tArray[4],tArray[5],tArray[6],tArray[7],tArray[8]);
+		} else if (tArray.length == 10) {
+			canvas.lc.send(lc_name,methodName,tArray[0],tArray[1],tArray[2],tArray[3],tArray[4],tArray[5],tArray[6],tArray[7],tArray[8],tArray[9]);
+		} else {
+			if ($debug) Debug.error("tArray in sendViaLocalConnection longer then allowed")
+		}
+	</method>
+	
+	<method name="getNotNullString" args="value">
+		return value == null ? '' : value;
+	</method>
+	
+	<method name="isRemoteUser" args="">
+		return canvas.isinitRoomDirect || canvas.remoteUserLogin || canvas.directUserLogin || canvas.secureRemoteUserLogin;
+	</method>
+</library>
diff --git a/WebContent/src/base/moduleConfiguration.lzx b/WebContent/src/base/moduleConfiguration.lzx
new file mode 100644
index 0000000..2ad1640
--- /dev/null
+++ b/WebContent/src/base/moduleConfiguration.lzx
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+
+<library>
+<!-- 
+##########################################################
+these properties can be overwritten by public/config.xml -->  
+   
+   
+<!-- #############################################
+    Moderator Modules
+ -->
+
+<attribute name="moderatorModuleUser" value="userModerate" type="string" />
+
+<attribute name="moderatorModuleRoom" value="roomModerate" type="string" />
+
+
+<!-- Conference Room Modules -->
+
+<attribute name="conferenceModuleRoomList" value="allmeetings" type="string" />
+
+
+<!-- #############################################
+    Conference Room
+ -->
+
+<attribute name="conferenceRoom" value="conferenceView" type="string" />
+
+
+<!-- #############################################
+    Restricted Room
+    
+    Room Layouts: flexibleRestrictedConferenceRoom,restrictedConferenceRoom
+ -->
+<attribute name="restrictedRoomModule" value="restrictedConferenceRoom" type="string" />
+
+<!-- #############################################
+    Custom Room
+ -->
+
+<attribute name="customRoomModule" value="flexibleCustomRoom" type="string" />
+
+<!-- #############################################
+    Event Room
+    
+    Room Layouts: interviewConferenceRoom
+ -->
+<attribute name="interviewRoomModule" value="interviewConferenceRoom" type="string" />
+
+</library>
diff --git a/WebContent/src/base/navi/library.lzx b/WebContent/src/base/navi/library.lzx
new file mode 100644
index 0000000..8d54b39
--- /dev/null
+++ b/WebContent/src/base/navi/library.lzx
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+    <!-- 
+    Icon from FamFam Icon Set
+     -->
+    <resource name="bullet_arrow_down_rsc">
+    	<frame src="resources/bullet_arrow_down.png" /> 
+    	<frame src="resources/bullet_arrow_down_dark.png" /> 
+    </resource>
+    
+    <include href="mainNavi.lzx" />
+
+</library>
diff --git a/WebContent/src/base/navi/mainNavi.lzx b/WebContent/src/base/navi/mainNavi.lzx
new file mode 100644
index 0000000..48a21b3
--- /dev/null
+++ b/WebContent/src/base/navi/mainNavi.lzx
@@ -0,0 +1,231 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="textBoxSubBlank" extends="text" text="$once{ parent.text }"
+    fgcolor="0x000000" fontstyle="bold"
+        fontsize="14" y="6" x="10" />
+
+
+<class name="baseDropDownMenuListItem" extends="view" height="36">
+
+    <attribute name="action" value="" type="string" />
+    <attribute name="params" value="" type="string" />
+    <attribute name="isopen" value="false" type="boolean" />
+    <attribute name="isleaf" value="false" type="boolean" />
+    <attribute name="list" value="null" />
+    <attribute name="textvalue" value="" type="string" />
+    <attribute name="selected" value="false" type="boolean" />
+    <attribute name="textToolTip" value="" type="string" />
+    
+    <attribute name="isSpacer" value="false" type="boolean" />
+    <attribute name="text" value="" type="string" />
+    
+    <handler name="onmouseover">
+        this._bg.setAttribute("visibility","visible");
+    </handler>
+    
+    <handler name="onmouseout">
+        this._bg.setAttribute("visibility","hidden");
+    </handler>
+
+    <view name="_bg" visibility="hidden" width="${ parent.width-2 }" y="0" x="1"
+          bgcolor="0xFFFFFF" opacity="0.5" height="36" />
+    
+    <text text="$once{ parent.text }" name="_ctext" fontstyle="bold" fgcolor="$once{ canvas.getThemeColor('menuTextColor') }"
+        	fontsize="14" y="2" x="10" />
+        	
+    <text text="$once{ parent.textToolTip }" name="_ctextTooltip" fontstyle="plain" fgcolor="$once{ canvas.getThemeColor('menuTextColor') }"
+        	fontsize="10" y="20" x="10" />	
+   
+</class>
+
+<class name="dropDownMenuListItem" extends="baseDropDownMenuListItem" >
+
+    <handler name="onclick">
+        loadContent(this,null,null);
+        parent.parent.close();
+    </handler>
+    
+</class>
+
+<class name="horizontalDropDownSpacer" x="4" height="1" bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }">
+	<attribute name="isSpacer" value="true" type="boolean" />
+</class>
+
+<class name="baseDropDownMenuList" extends="view" bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }">
+		
+	<attribute name="list" value="null" />
+	
+	<attribute name="btnRef" value="null" />
+	
+	<handler name="oninit">
+		lz.ModeManager.makeModal(this);
+	</handler>
+	
+	<!--- @keywords private -->
+    <method name="passModeEvent" args="eventStr,view" > 
+        <![CDATA[
+           if ( eventStr == "onmousedown"  ){
+               if ( view != null ) {
+                  if ( !view.childOf(this) ) {
+                       this.close();
+                  }
+               } else {
+                   this.close();
+               }
+           }
+           if (view && view.childOf(this)) {
+               if (view[ eventStr ]) {
+                   view[ eventStr ].sendEvent( view );
+               }
+               return false;
+           }
+          return true;
+       ]]> 
+    </method>  
+    
+	<method name="close">
+		this.btnRef.setAttribute("selected",false);
+		lz.ModeManager.release(this);
+		this.destroy();
+	</method>
+	
+	<method name="fixWidth">
+		<![CDATA[
+            //the second round goes through the list of items, as 
+            //now the maxwidth is detected we adjust the rest to it
+            var maxWidth = 0;
+            for (var i=0;i<this._content.subviews.length;i++) {
+            	if (this._content.subviews[i].width > maxWidth) {
+            		maxWidth = this._content.subviews[i].width;
+            	}
+            }
+            //add a little bit of spacing at the end
+            maxWidth += 10;
+            
+            for (var i=0;i<this._content.subviews.length;i++) {
+            	if (this._content.subviews[i].isSpacer) {
+            		this._content.subviews[i].setAttribute("width",maxWidth-8);
+            	} else {
+            		this._content.subviews[i].setAttribute("width",maxWidth);
+            	}
+            }
+		]]>
+	</method>
+
+</class>
+
+<class name="dropDownMenuList" extends="baseDropDownMenuList"
+		height="${ this._content.height+2 }" width="${ this._content.width+2 }">
+		
+	<handler name="oninit">
+		<![CDATA[
+			if (this.list == null) {
+				return;
+			}
+			for (var i=0;i<this.list.length;i++) {
+				if (i!=0) {
+					new lz.horizontalDropDownSpacer(this._content);
+				}
+                new lz.dropDownMenuListItem(this._content,{
+                			textvalue:this.list[i].name,
+                			text:this.list[i].label.value,
+                			isopen:this.list[i].isopen,
+                			isleaf:this.list[i].isleaf,
+                			action:this.list[i].action,
+                			params:this.list[i].params,
+                			textToolTip:list[i].tooltip.value
+               			});
+            }
+            
+            this.fixWidth();
+		]]>
+	</handler>	
+	
+	<view name="_content" x="1" y="1" 
+			layout="axis:y;spacing:1" bgcolor="$once{ canvas.getThemeColor('menuBackgroundColor') }" />
+		
+</class>
+
+<class name="baseMenuMeetingsItem" extends="view" height="34"
+    width="${ this._ctext.width+36 }" >
+
+    <attribute name="action" value="" type="string" />
+	<attribute name="text" value="" type="string" />
+    <attribute name="textToolTip" value="" type="string" />
+    <attribute name="_menuRef" value="null" />
+    <attribute name="isopen" value="false" type="boolean" />
+    <attribute name="isleaf" value="false" type="boolean" />
+    <attribute name="list" value="null" />
+    <attribute name="textvalue" value="null" />
+    <attribute name="selected" value="false" type="boolean" />
+    
+    <attribute name="text_y_inset" value="6" type="number" />
+    <attribute name="text_fontsize" value="14" type="number" />
+    
+    <attribute name="down_y_inset" value="10" type="number" />
+    
+    <handler name="onmouseover">
+        if (!this.selected){
+            this.bgc.setAttribute('visibility','visible');
+        }
+    </handler>
+    <handler name="onmouseout">
+        if (!this.selected){
+            this.bgc.setAttribute('visibility','hidden');
+        }
+    </handler>
+    
+    <handler name="onselected" args="tSelect">
+    	this.selected = tSelect;
+    	if (tSelect) {
+    		this._icon_down.setAttribute("frame",2);
+    		this.bga.setAttribute("visibility","visible");
+    		this._ctext.setAttribute("fgcolor",0x000088);
+    	} else {
+    		this._icon_down.setAttribute("frame",1);
+    		this.bgc.setAttribute("visibility","hidden");
+    		this.bga.setAttribute("visibility","hidden");
+    		this._ctext.setAttribute("fgcolor",0xFFFFFF);
+    	}
+    </handler>
+    
+    <view width="${ parent.width-1 }" bgcolor="0xFFFFFF" opacity="0.4" height="$once{ parent.height - 2}" y="1"
+        visibility="hidden" name="bgc"/>
+        
+    <view width="${ parent.width-1 }" bgcolor="$once{ canvas.getThemeColor('menuBackgroundColor') }" height="$once{ parent.height }" 
+        visibility="hidden" name="bga">
+        <view width="${ parent.width }" bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }" height="1" />
+    </view>
+    
+    <view name="_icon_down" x="${ parent.width-20 }" y="$once{ parent.down_y_inset }" 
+    			resource="bullet_arrow_down_rsc" frame="1" />  
+    
+    <view width="1" height="${ parent.height }" y="0" bgcolor="0xEEEEEE" x="${ parent.width-1 }" />
+    <text text="$once{ parent.text }" name="_ctext" fontstyle="plain" fgcolor="0xFFFFFF"
+        	fontsize="$once{ parent.text_fontsize }" y="$once{ parent.text_y_inset }" x="10" />
+
+    <labelTooltip name="_textToolTip" text="$once{ parent.textToolTip }" multiline="false" />
+    
+</class>
+
+</library>
diff --git a/WebContent/src/base/navi/resources/bullet_arrow_down.png b/WebContent/src/base/navi/resources/bullet_arrow_down.png
new file mode 100644
index 0000000..9b23c06
--- /dev/null
+++ b/WebContent/src/base/navi/resources/bullet_arrow_down.png
Binary files differ
diff --git a/WebContent/src/base/navi/resources/bullet_arrow_down_dark.png b/WebContent/src/base/navi/resources/bullet_arrow_down_dark.png
new file mode 100644
index 0000000..b5504f8
--- /dev/null
+++ b/WebContent/src/base/navi/resources/bullet_arrow_down_dark.png
Binary files differ
diff --git a/WebContent/src/base/remote/datasetHelper.lzx b/WebContent/src/base/remote/datasetHelper.lzx
new file mode 100644
index 0000000..5d7cf22
--- /dev/null
+++ b/WebContent/src/base/remote/datasetHelper.lzx
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+	<class name="datasetHelper">

+		<attribute name="successHandler" type="object" />

+		

+		<dataset name="restdataset" type="http">

+			<handler name="ondata" args="d">

+			<![CDATA[

+				//Make sure any cursor status is reset

+				lz.Cursor.restoreCursor();

+				lz.Cursor.showHandCursor(true);

+				if ($debug) Debug.write("restdataset ondata", d);

+				

+				if (typeof parent.successHandler != undefined && parent.successHandler != undefined && parent.successHandler != null) {

+					parent.successHandler(parent.parent, d);

+				}

+			]]>

+			</handler>

+		</dataset>

+		

+		<method name="call">

+			if ($debug) Debug.write("this.restdataset ",this.restdataset);

+			this.restdataset.doRequest();

+		</method>

+		

+		<method name="setServiceSource" args="m,o">

+		<![CDATA[

+			var params = "?SID=" + canvas.sessionId;

+			if (o) {

+				for (var key in o) {

+					params += "&" + encodeURIComponent(key) + "=" + encodeURIComponent(o[key]);

+				}

+			}

+			this.restdataset.setAttribute("src", canvas.getServicesUrl() + m + params);

+		]]>

+		</method>

+	</class> 

+</library>
\ No newline at end of file
diff --git a/WebContent/src/base/remote/library.lzx b/WebContent/src/base/remote/library.lzx
new file mode 100644
index 0000000..e76368e
--- /dev/null
+++ b/WebContent/src/base/remote/library.lzx
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+	<include href="datasetHelper.lzx" />
+	<include href="rtmpConnection.lzx" />
+	<include href="sharedObject.lzx" />
+    
+</library>
diff --git a/WebContent/src/base/remote/rtmpConnection.lzx b/WebContent/src/base/remote/rtmpConnection.lzx
new file mode 100644
index 0000000..120c3b8
--- /dev/null
+++ b/WebContent/src/base/remote/rtmpConnection.lzx
@@ -0,0 +1,334 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+
+<class name="rtmpConnection" extends="node">
+    	
+    	<attribute name="debug" value="false" type="boolean" />
+    	
+    	<event name="onconnect"/>
+    	<event name="onerror"/>
+    	<event name="ondisconnect" />
+        
+        <!-- this attribute holds a reference to the current/last called netremoteCall,
+        in case of error you can debug that way which call did fail -->
+        <attribute name="lastCalled" value="null" />
+    	
+    	<attribute name="src" value="" type="string"/>
+    	
+		<method name="connect">
+            this._nc = new NetConnection();
+
+            // local reference to rtmpconnection
+            this._nc.t = this;     
+            
+            this._nc.proxyType = canvas.proxyType;
+            
+            var ok = this._nc.connect(src == "null" ? null : src, false); //isAVClient = false
+            if (this.debug) {
+            	if($debug) Debug.write("*** debug ***");
+            }
+            
+            //canvas.currentNC is the reference to the NetConnection that is used in the NetStream
+            canvas.currentNC = this._nc;
+            
+            this._nc.onStatus = function(info){
+                this.t._onStatus(info);
+            }
+            
+    		if($debug) Debug.write("devRtmpConnection/registerMethods()");
+			//Register Methods
+			this.registerMethods();    	            
+		</method>
+		
+        <method name="_onStatus" args="info"><![CDATA[
+            if (this.debug) {
+                Debug.write("devrtmpconnection", this, "_onStatus", info.code);
+            }
+
+            var msg = "";
+
+            switch (info.code) {
+
+                case "NetConnection.Connect.Success": {
+                    // The connection attempt succeeded.
+                    msg = info.code;
+                    s = 2;
+                    break;
+                }
+
+                default: {
+                    msg = info.code;
+                    s = 0;
+                    break;
+                }
+
+            }
+
+            this.setAttribute("status", msg);
+
+            if (s == 2) {
+                this.onconnect.sendEvent();
+            } else {
+            	this.onerror.sendEvent();
+            }
+
+          ]]>
+        </method>	
+        
+        <method name="disconnect">
+            this.ondisconnect.sendEvent();
+        	canvas.currentNC = null;
+            this._nc.close();
+        </method>
+    <!--- 
+        With this function all methods are registered to the NetConnection
+        A server can invoke this Method with a call for it from the Client
+        Only subnodes of rtmpconnections which are a instance of netRemoteCallHib
+        are registered, to add dynamically methods to the remotefunction you will
+        have to invoke this method once again
+        -swagner
+     -->
+	<method name="registerMethods">
+	<![CDATA[
+		if (this.subnodes != null) {
+			//Register all methods which are instanceof netRemoteCallHib
+			for (var i = 0; i < this.subnodes.length; ++i) {
+				//If it is of Type netRemoteCallHib then register it to the NetConnection
+				if (this.subnodes[i] instanceof lz.netRemoteCallHib) {
+					this._nc[this.subnodes[i].funcname] = function(args) {
+						return hib.remoteCallMethod(arguments.callee, arguments);
+					}
+				}
+			}
+		}
+	]]>
+	</method>
+    
+    <!-- 
+        Process the RemoteCall to the Right Funtion
+        -swagner
+     -->
+    <method name="remoteCallMethod" args="callee,args">
+        <![CDATA[
+            for (var eg in this._nc){
+                if (this._nc[eg]==callee){
+                    if (this.debug) {
+                        //_root.Debug.write.write("DEBUG invoked a function remotely: ",eg,args);
+                    }    
+                    if (args.length == 1) {
+                        return this.callFuntion(eg,args[0]);
+                    } else {
+                        return this.callFuntion(eg,args);
+                    }
+                    //return this.callFuntion(eg,args);
+                }
+            }
+        ]]>
+    </method>
+    
+    <!-- 
+        Map the Function to a netRemoteCallHib
+        -swagner
+     -->
+    <method name="callFuntion" args="funcname,args">
+        <![CDATA[
+            for (var i=0;i<this.subnodes.length;i++){
+                if (this.subnodes[i].funcname==funcname){
+                    return this.subnodes[i].onResult(args);
+                }
+            }
+        ]]>
+    </method>		
+    
+    <method name="callRPC" args="func, obj, params">
+    	if (this.debug) Debug.write("*** call: func, obj, params",func,obj, typeof (params) ,params.length);
+    	if (params.length != 0){
+	    	//does this really work?
+	    	ASSetPropFlags(_global, null, 8, 1);
+	    	//Debug.write("does it work?",arguments);
+	    	<!--
+	    	this._nc.call.apply(this._nc,arguments);
+	    	 -->
+			if (params.length==1){
+			    this._nc.call(func, obj,params[0]);
+			} else if (params.length==2){
+			    this._nc.call(func, obj,params[0],params[1]);
+			} else if (params.length==3){
+			    this._nc.call(func, obj,params[0],params[1],params[2]);
+			} else if (params.length==4){
+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3]);
+			} else if (params.length==5){
+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4]);
+			} else if (params.length==6){
+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5]);
+			} else if (params.length==7){
+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6]);
+			} else if (params.length==8){
+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7]);
+			} else if (params.length==9){
+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8]);
+			} else if (params.length==10){
+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9]);
+			} else if (params.length==11){
+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10]);
+			} else if (params.length==12){
+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11]);
+			} else if (params.length==13){
+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12]);
+			} else if (params.length==14){
+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13]);
+			} else if (params.length==15){
+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14]);
+			} else if (params.length==16){
+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14],params[15]);
+			} else if (params.length==17){
+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14],params[15],params[16]);
+			} else if (params.length==18){
+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14],params[15],params[16],params[17]);
+			} else if (params.length==19){
+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14],params[15],params[16],params[17],params[18]);
+			} else if (params.length==20){
+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14],params[15],params[16],params[17],params[18],params[19]);
+			}	    	 
+        } else {
+            this._nc.call(func, obj);
+        }
+    </method>
+    
+</class>
+
+
+    <!---
+        Net remote call. 
+        @todo Document netremotecall class.
+    -->
+    <class name="netremotecall" extends="node">
+
+
+        <!--- Name of the remote function. -->
+        <attribute name="funcname" value="$once{null}" type="string" />
+    
+        <attribute name="remotecontext" value="null" />
+    
+        <attribute name="dataobject" value="null" />
+		
+        <!--- Data handling event. args="value" 
+        @keywords private  -->
+        <event name="ondata" />
+
+        <!--- Error handling event. -->
+        <event name="onerror"/>
+
+        <!--- Call the remote method, passing the array of params. -->
+        <method name="callRPC" args="params"><![CDATA[
+            if (this.funcname == null) {
+                //Debug.write("No funcname given");
+                if (this.onerror) this.onerror.sendEvent("No funcname given");
+                return;
+            }
+
+            if (params == null) {
+                params = [];
+
+                var subnodes = this.subnodes;
+                if (subnodes != null) {
+                    var i;
+                    var n = subnodes.length;
+                    for (i = 0; i < n; i++) {
+                        // If getValue method is declared in param, call that
+                        // instead to get value.
+                        var tsi = subnodes[i];
+                        if ((tsi["getValue"] != null) && 
+                            (tsi.getValue["prototype"] != null)) {
+                            params[i] = tsi.getValue();
+                        } else {
+                            params[i] = tsi.value;
+                        }
+                    }
+                }
+
+            } else if (params.__proto__ != Array.prototype) {
+                //Debug.write(this.name, "error: first argument (params) is not an array");
+                return -1;
+            }
+
+            //if ($debug) Debug.write("call", this, this.parent, this.parent.status);
+            var rtmpObject = null;
+            if (this.parent instanceof lz.rtmpConnection){
+        	    rtmpObject = this.parent;
+            } else if(this.remotecontext  instanceof lz.rtmpConnection){
+        	    rtmpObject = this.remotecontext;
+            } else {
+        	    if ($debug) Debug.warn("ERROR: no remotecontext availible abort call", this.funcname, this);
+        	    return;
+            }
+        	//Debug.write('call', this, rtmpObject, rtmpObject.status);
+        	//Debug.write('call', this.remotecontext);
+            if (rtmpObject.debug) Debug.write('call', this, rtmpObject, rtmpObject.status);
+            rtmpObject.lastCalled = this;
+            rtmpObject.callRPC(this.funcname, this, params);
+
+          ]]>
+        </method>
+
+
+        <!--- Handle the result returned from the remote method. -->
+        <method name="onResult" args="value"><![CDATA[
+            // Can be overriden.
+            // Would be great if it can be used with dataobject,
+            // but I don't know how to convert Array/primitive to LzDataset/LzDataPointer.
+            ////Debug.write("netremotecall", this, "onResult", value);
+
+            if (this.dataobject!=null) {
+                if ( this.dataobject instanceof LzDataset ) {
+                    //Debug.write("onResult: ",this,value,dataobject);
+                    var element = LzDataElement.valueToElement(value);
+                    this.dataobject.setData(element.childNodes);
+                } else if ( this.dataobject instanceof LzDataElement ) {
+                    var element = LzDataElement.valueToElement(value);
+                    this.dataobject.appendChild( element );
+                } else {
+                    Debug.warn("dataobject is not LzDataset or LzDataElement: ",this,this.dataobject,delegate);
+                }
+            }
+            this.ondata.sendEvent(value);		
+          ]]>
+        </method>
+
+
+    </class>
+
+
+    <!---
+        Net parameter.
+        Element to use inside netremotecall.
+        @todo Document netparam class.
+    -->
+    <class name="netparam" extends="node">
+
+        <!--- The value of the netparam. -->
+        <attribute name="value" value="null"/>
+
+    </class>
+
+
+</library>
diff --git a/WebContent/src/base/remote/sharedObject.lzx b/WebContent/src/base/remote/sharedObject.lzx
new file mode 100644
index 0000000..36da568
--- /dev/null
+++ b/WebContent/src/base/remote/sharedObject.lzx
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="sharedObject" extends="node">
+
+	<attribute name="so" value="null" />
+	<attribute name="onStatus" value="null" />
+	
+
+	<method name="connect" args="so_Name,nc,persistant">
+
+		//Debug.write("connect SharedObject: ",nc.uri);
+		this.so = SharedObject.getRemote(so_Name,nc.uri,persistant); 
+		
+		var t = this;
+		this.so.onSync = function (evtObj){
+			if (t.onStatus)t.onStatus.sendEvent(evtObj);
+			//_root.Debug.write.write("Shared Object onSync",evtObj,arguments);
+		}
+		
+		this.so.connect(nc);
+		
+	</method>
+	
+    
+    <method name="getRemote" args="so_Name,nc,persistant">
+
+        //Debug.write("connect SharedObject: ",nc.uri);
+        this.so = SharedObject.getRemote(so_Name,nc.uri,persistant); 
+
+        var t = this;
+        this.so.onSync = function (evtObj){
+            if (t.onStatus)t.onStatus.sendEvent(evtObj);
+            //_root.Debug.write.write("Shared Object onSync",evtObj,arguments);
+        }
+    </method>
+    
+    <!--- create Object if not existing  -->
+    <method name="getLocal" args="name">
+
+        this.so = SharedObject.getLocal(name); 
+
+        var t = this;
+        this.so.onSync = function (evtObj){
+            if (t.onStatus)t.onStatus.sendEvent(evtObj);
+            //_root.Debug.write.write("Shared Object onSync",evtObj,arguments);
+        }
+        
+    </method>
+    
+    <!--- 
+        force write to disk
+        @return true(success) false(User has forbidden to store data local)
+      -->
+    <method name="flush">
+        return this.so.flush();
+    </method>
+
+    <method name="getData" args="key">
+        if (this.so.data["key"] == undefined){
+            return null;
+           //_root.Debug.write.write("key undefined",key);
+        } else {
+            return this.so.data["key"];
+        }
+    </method>
+	
+    <method name="setData" args="key,val">
+    	//Debug.write("this...... so: ",this.so);
+        this.so.data["key"] = val;
+    </method>
+
+		
+</class>
+
+</library>
diff --git a/WebContent/src/broadcast.lzx.lzr=swf8.swf b/WebContent/src/broadcast.lzx.lzr=swf8.swf
new file mode 100644
index 0000000..95cdc24
--- /dev/null
+++ b/WebContent/src/broadcast.lzx.lzr=swf8.swf
Binary files differ
diff --git a/WebContent/src/classintro.swf b/WebContent/src/classintro.swf
new file mode 100644
index 0000000..0d0ee92
--- /dev/null
+++ b/WebContent/src/classintro.swf
Binary files differ
diff --git a/WebContent/src/confintro.swf b/WebContent/src/confintro.swf
new file mode 100644
index 0000000..6b4505c
--- /dev/null
+++ b/WebContent/src/confintro.swf
Binary files differ
diff --git a/WebContent/src/main.lzx b/WebContent/src/main.lzx
new file mode 100644
index 0000000..affaa1c
--- /dev/null
+++ b/WebContent/src/main.lzx
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<canvas width="100%" height="100%" title="OpenMeetings">
+<switch>
+	<when property="$debug">
+		<method name="doDebugInit">
+			canvas.setAttribute('debug', true);
+		</method>
+		<debug fontsize="11" oninit="Debug.showInternalProperties = true" width="40%" y="50%" x="0" height="50%" />
+	</when>
+	<otherwise>
+		<method name="doDebugInit">
+		</method>
+	</otherwise>
+</switch>    
+     
+<include href="incubator/lzcombobox.lzx" />
+<include href="incubator/shadowbox.lzx" />
+
+<include href="resources/" /> 
+<include href="base/" /><!-- attributes,methods,datasets,are moved into /base -->
+<include href="modules/" />
+<include href="plugins/" />  
+
+<silverstyle name="defaultstyle" isdefault="true" canvascolor="white" />
+
+<silverstyle name="componentStyle" basecolor="0xFFFFFF" textcolor="0x000000" />
+
+<silverstyle name="itemStyle" textcolor="0xFFFFFF" />
+
+<whitestyle name="menuStyle" textcolor="0x000000" />
+             
+
+<!-- main colors: 264269 -->
+<handler name="oninit">
+	flash.external.ExternalInterface.call("loadingComplete");
+	doDebugInit();
+    var cmenu = new LzContextMenu();
+    canvas.setDefaultContextMenu(cmenu);
+    cmenu.hideBuiltInItems();
+    if($debug) Debug.write("main.lzx/oninit:",this);
+    canvas.lc = new LocalConnection();
+
+	getTimeZoneOffset(this);
+</handler>
+
+<handler name="onerror" args="errmsg">
+	canvas.remoteLogWrite("error " + errmsg);
+</handler>
+
+<method name="callback" args="returnValue">
+    if ($debug) Debug.write("getTimeZoneOffset callback ",returnValue);
+            
+    canvas.stdTimeOffset = Number(returnValue);
+</method>
+
+<!-- View for Contents. All Windows will be loaded on this view. -->
+<view name="main_content" y="${ canvas.naviHeightDelta }" width="${canvas.width}" 
+			    height="${ canvas.height-canvas.naviHeightDelta }"
+			    visibility="hidden" showhandcursor="false">
+    
+    <handler name="onmouseover">
+        setCurrentMouseWheelObject(this._scrollbar);
+    </handler>
+    <handler name="onmouseout">
+        disableCurrentMouseWheelObject();
+    </handler>
+    
+    <view x="0" name="_content" >
+        <view name="inner" />
+        <method name="clearAll">
+            <![CDATA[
+                canvas.sendViaLocalConnection(canvas.vid_lc_name, "clearAll", null);
+                if($debug) Debug.write("main.lzx/main_content._content.inner.clearAll(): ",this.inner,this.inner.subviews.length);
+                if (this.inner.subviews != null) {
+                	if (this.inner.subviews[0] != null) {
+		                var baseContent = this.inner.subviews[0].close();
+		                for (var eg in this.inner.subviews) {
+		                    if($debug) Debug.write("main.lzx/main_content._content.inner.clearAll()-subviews: ",this.inner.subviews[eg]);
+		                    if (eg!=0) this.inner.subviews[eg].close();               
+		                }
+	                }
+                }
+                return baseContent;
+            ]]>
+        </method>
+    </view>
+    <om_hscrollbar name="_scrollbarH" id="_mainScrollHBar" visibility="hidden" />
+    <om_vscrollbar name="_scrollbar" id="_mainScrollBar" />
+</view>  
+  
+<!-- View for Navigation-bar and App-name -->
+<view name="_mainbgcontentNavi" x="0" y="0" clip="true"
+    width="100%" height="${ canvas.naviHeight }" visibility="hidden">
+    <image id="mainApplogo" visible="false" />
+    <text id="mainBaseText" visible="false"
+        fgcolor="${ canvas.fontColorHeader }" fontsize="20" fontstyle="bold">
+        <method name="setShadow" >
+            <![CDATA[
+            if (this.isinited && false){
+                this.normalMC = this.getDisplayObject();
+                this.displacementMap = new flash.filters.DropShadowFilter();
+                this.normalMC.filters = [this.displacementMap];
+            }
+            ]]>              
+        </method> 
+        <handler name="onclick">
+            lz.Browser.loadURL(canvas.currentappnameurl,"_blank");
+        </handler>  
+        <labelTooltip id="mainBaseTextLabel" />      
+    </text>
+    <handler name="oninit">
+        var cmenu = new LzContextMenu();
+        this.setContextMenu(cmenu);
+        cmenu.hideBuiltInItems();
+    </handler>     
+</view>
+
+<!-- View for Conference menu bar at the top side. Visible on conference -->
+<view name="_conferencemenu" y="0" x="0" width="100%" height="20" visibility="hidden" > 
+    <method name="removeAll">
+        <![CDATA[
+            if($debug) Debug.write("main.lzx/_coferencemenu.removeAll(): ");
+            while (this.subviews.length > 0) {
+                this.subviews[0].destroy();
+            }
+            parent._moderatormenu.removeAll();
+        ]]>
+    </method>
+</view> 
+
+<view name="_moderatormenu" y="0" x="0" width="100%" height="20">
+    <method name="removeAll">
+        <![CDATA[
+            if($debug) Debug.write("main.lzx/_moderatormenu.removeAll(): ");
+            while (this.subviews.length > 0) {
+                this.subviews[0].destroy();
+            }
+        ]]>
+    </method>
+</view>  
+    
+<!-- View for "Loading" -->
+<view name="_loadingAll" visible="false" opacity="0.7" 
+    width="${ canvas.width }" height="${ canvas.height }" 
+    bgcolor="0xFFFFFF" clickable="true" showhandcursor="false">
+    <method name="hideContentOnly">
+    	this.showLoadingAnni.setAttribute('started', true);
+        this.setAttribute("visibility","visible");
+        this._text.setAttribute("visibility","hidden");
+    </method>
+    <method name="showLoading">
+    	this.showLoadingAnni.setAttribute('started', true);
+        this.setAttribute("visibility","visible");
+        this._text.setAttribute("visibility","visible");
+    </method>
+    <method name="hideLoading">
+        this.setAttribute("visibility","hidden");
+    </method>
+    <animator name="showLoadingAnni" attribute="opacity" 
+    		from="0" to="0.7" started="false" duration="250" />
+    <text name="_text" align="right" y="56" fontsize="14" fgcolor="red">Loading...</text>
+</view>
+
+</canvas>
\ No newline at end of file
diff --git a/WebContent/src/modules/chat/chatBarMenu.lzx b/WebContent/src/modules/chat/chatBarMenu.lzx
new file mode 100644
index 0000000..92f2f30
--- /dev/null
+++ b/WebContent/src/modules/chat/chatBarMenu.lzx
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<class name="chatBarMenu" extends="view" width="${ parent.width }" x="0" 

+    height="20" layout="axis:x;spacing:1;inset:2" bgcolor="$once{ canvas.getThemeColor('baseMousecolorizer') }">

+    

+    <attribute name="staticwidth" type="number" value="120" />

+    <attribute name="currentBtn" value="null" />

+    

+    <event name="onRemoveWindow" />

+    

+    <method name="getCurrentSize">

+        <![CDATA[

+            if ( ((this.subviews.length+1)*(this.staticwidth+1)) <= this.width) {

+                return this.staticwidth;

+            } else {

+                var newwidth = Math.round((this.width-this.subviews.length)/(this.subviews.length+1));

+                for (var i=0;i<this.subviews.length;i++) {

+                    this.subviews[i].setAttribute('width',newwidth);

+                }

+                return newwidth;

+            }   

+        ]]>

+    </method>

+    

+    <handler name="onwidth">

+        <![CDATA[

+            if ( ((this.subviews.length)*(this.staticwidth+1)) <= this.width) {

+                for (var i=0;i<this.subviews.length;i++) {

+                    this.subviews[i].setAttribute('width',this.staticwidth);

+                }

+            } else {

+                var newwidth = Math.round((this.width-this.subviews.length)/(this.subviews.length));

+                for (var i=0;i<this.subviews.length;i++) {

+                    this.subviews[i].setAttribute('width',newwidth);

+                }

+            } 

+        ]]>

+    </handler>

+    

+    <method name="removeObject" args="btn">

+    	this.removeObjectSynced(btn);

+    	if ($debug) Debug.write("removeObject :: ",btn);

+    	this.onRemoveWindow.sendEvent(btn.objRef.refObj.publicSID);

+    </method>

+    

+    <method name="removeObjectSynced" args="btn">

+    	var removeCurrent = false;

+    	if (this.currentBtn == btn){

+    		removeCurrent = true;

+    	}

+    	btn.objRef.destroy();

+        btn.destroy();

+        if (this.subviews.length != 0) {

+	        if (removeCurrent) {

+	        	this.sendActiveWindowSynced(this.subviews[this.subviews.length-1]);

+	        }

+        }

+        

+    </method>

+

+    

+    <method name="sendActiveWindow" args="btn,win">

+        if ($debug) Debug.write("sendActiveWindow: ", btn, win);

+        this.sendActiveWindowSynced(btn);

+    </method>

+    

+    <method name="sendActiveWindowSynced" args="btn">

+    	<![CDATA[

+            if (this.currentBtn != null){

+                this.currentBtn.isactive=false;

+                this.currentBtn.objRef.setAttribute("visibility", "hidden");

+                if ($debug) Debug.write("sendActiveWindow1: ",this.currentBtn);

+                this.currentBtn._minimizebtn_mo.setAttribute('visibility','hidden');

+                this.currentBtn._minimizebtn_dn.setAttribute('visibility','hidden');

+            }

+            this.currentBtn = btn;

+            this.currentBtn.objRef.setAttribute("visibility","visible");

+        	this.currentBtn.objRef.bringToFront();

+            if ($debug)  //Debug.write("sendActiveWindow2: ",this.currentBtn);

+            this.currentBtn._minimizebtn_mo.setAttribute('visibility','hidden');

+            this.currentBtn._minimizebtn_dn.setAttribute('visibility','visible');

+            this.currentBtn.isactive=true;

+	       	this.currentBtn.objRef.sendActiveWindow();

+        ]]>

+    </method>

+    

+</class>

+

+</library>

diff --git a/WebContent/src/modules/chat/chatMiniButton.lzx b/WebContent/src/modules/chat/chatMiniButton.lzx
new file mode 100644
index 0000000..10e1bee
--- /dev/null
+++ b/WebContent/src/modules/chat/chatMiniButton.lzx
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<class name="chatMiniButton" extends="view" width="250" height="18" y="2"

+    bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }">

+     

+    <attribute name="btnName" value="" type="string" />

+    <attribute name="objRef" value="null" />

+

+    <attribute name="zielx" value="200" type="number" />

+    <attribute name="zielwidth" value="100" type="number" />    

+    

+    <attribute name="isactive" value="true" type="boolean" />

+    

+    <attribute name="isHidden" value="false" type="boolean" />

+    

+    <attribute name="isClosable" value="true" type="boolean" />

+    

+    <handler name="oninit">

+        this.calcTextWidth();

+        parent.onwidth.sendEvent();

+    </handler>

+    

+    <handler name="onwidth">

+        if (this.isinited){

+            this.calcTextWidth();

+        }

+    </handler>

+    

+    <method name="disableItem">

+        //if ($debug) Debug.write("disableItem :: set visibility to hidden");

+        this.isHidden = true;

+        this.setAttribute("visibility","hidden");

+        //this.destroy();

+    </method>

+    

+    <method name="enableItem">

+        this.setAttribute("visibility","visible");

+        this.isHidden = false;

+    </method>

+    

+    <method name="calcTextWidth">

+        <![CDATA[

+            if (this.isHidden) {

+                return;

+            }

+            ////////if ($debug)  //Debug.write(this,this._text,this._text.getTextWidth());

+            if (this._text.getTextWidth()>(this.width-24)) {

+                this._long.setAttribute('visibility','visible');

+                this._text.setAttribute('width',this.width-26);

+            } else {

+                this._long.setAttribute('visibility','hidden');

+                this._text.setAttribute('width',this.width-18);

+            }

+        ]]>        

+    </method>

+        

+    <handler name="onclick">

+        if (this.isHidden) {

+            return;

+        }

+        this._minimizebtn_mo.setAttribute('visibility','visible');

+        this._minimizebtn_dn.setAttribute('visibility','hidden');

+        if ($debug) Debug.write(" :: onclick :: ");

+        this.sendActiveWindow(this.objRef);

+    </handler>

+    

+    <handler name="onmouseover">

+        if (this.isHidden) {

+            return;

+        }

+        this._minimizebtn_mo.setAttribute('visibility','visible');

+        this._minimizebtn_dn.setAttribute('visibility','hidden');

+    </handler>

+    <handler name="onmouseout">

+        if (this.isHidden) {

+            return;

+        }

+        if (this.isactive) {

+            this._minimizebtn_mo.setAttribute('visibility','hidden');

+            this._minimizebtn_dn.setAttribute('visibility','visible');

+        } else {

+            this._minimizebtn_mo.setAttribute('visibility','hidden');

+            this._minimizebtn_dn.setAttribute('visibility','hidden');

+        }        

+    </handler>

+    <handler name="onmousedown">

+        if (this.isHidden) {

+            return;

+        }        

+        this._minimizebtn_mo.setAttribute('visibility','hidden');

+        this._minimizebtn_dn.setAttribute('visibility','visible');

+    </handler>

+    <handler name="onmouseup">

+        if (this.isHidden) {

+            return;

+        }        

+        this._minimizebtn_mo.setAttribute('visibility','visible');

+        this._minimizebtn_dn.setAttribute('visibility','hidden');

+    </handler>

+    

+    <method name="sendActiveWindow" args="win">

+        this.parent.sendActiveWindow(this,win);

+    </method>    

+

+	<method name="activateSynced">

+		this.parent.sendActiveWindowSynced(this,win);

+	</method>

+    

+    <view name="_minimizebtn_mo" width="${ parent.width-2 }" height="16"

+        bgcolor="0xFFFFFF" opacity="0.3" visibility="hidden" x="1" y="1" />

+

+    <view name="_minimizebtn_dn" width="${ parent.width-2 }" height="16"

+        bgcolor="0x000000" opacity="0.3" visibility="hidden" x="1" y="1" />

+    

+

+    <text text="${ parent.btnName }" fgcolor="0xFFFFFF" resize="false" 

+        x="1" fontsize="10" name="_text" />

+    

+        <view y="1" x="${ parent.width-18 }" name="_close"

+            resource="btn_presenter_close"

+            visible="$once{ parent.isClosable }" 

+            onmouseover="this.setAttribute('frame',2)"

+            onmouseout="this.setAttribute('frame',1)"

+            onmousedown="this.setAttribute('frame',3)"

+            onmouseup="this.setAttribute('frame',1)" >

+            <handler name="onclick">

+                this.setAttribute('frame',2);

+                new lz.confirmationSingle(canvas,{

+                           refObj:this,

+                           labeliderror:1497,

+                           showCheckBox:false

+                        });

+            </handler>

+            <method name="sendConfirmation" args="bool,askAgain">

+                if (bool) {

+                    this.parent.parent.removeObject(this.parent);

+                }

+            </method>

+            <method name="sendNoConfirmation">

+            	

+            </method>

+            <labelTooltip text="close" />

+        </view>     

+ 

+    <text y="1" name="_long" text="..." 

+        x="${ parent.width-28 }" fontsize="10" />

+

+    <labelTooltip text="${ parent.btnName }" />

+</class>

+

+</library>

diff --git a/WebContent/src/modules/chat/chatParticipants.lzx b/WebContent/src/modules/chat/chatParticipants.lzx
new file mode 100644
index 0000000..08faffb
--- /dev/null
+++ b/WebContent/src/modules/chat/chatParticipants.lzx
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<!--- it shows chat participants. -->
+<class name="chatParticipants" extends="view" height="40" clickable="true"
+	   width="$once{ parent.width }" bgcolor="$once{ canvas.bgColorMenuItems }">
+	
+	<attribute name="user_id" value="0" type="number" />
+	<attribute name="username" value="" type="string" />
+	<attribute name="connectedSince" value="" type="string" />
+	<attribute name="publicSID" value="" type="string" />
+	
+	<attribute name="picture_uri" value="" type="string"/>
+	
+	<handler name="oninit">
+		<![CDATA[
+			if($debug) Debug.write("chatParticipants/picture_uri: ",this.picture_uri);
+			
+			if (this.picture_uri != null && this.picture_uri.startsWith("http")) {
+				
+				this._userpic.setAttribute('src',this.picture_uri);  
+				
+			} else {
+				
+				var downloadurl = canvas.getUrl() + 'DownloadHandler?fileName=CHAT'
+                        +'&moduleName=chat&parentPath=&room_id='
+                        +'&remoteUserid='+this.user_id
+                        +'&sid='+canvas.sessionId;
+                //Debug.write("downloadurl "+downloadurl);
+                this._userpic.setAttribute('src',downloadurl);  
+                
+			}
+	        
+	        //Debug.write("TIME: "+this.usertime);
+        ]]>
+	</handler>
+	
+	<!--
+    public Long requestUserToContactList(String SID, Long userToAdd_id, 
+                String domain, String port, String webapp)
+     -->
+    <netRemoteCallHib name="requestUserToContactList" funcname="userservice.requestUserToContactList" 
+                  remotecontext="$once{ canvas.thishib }" activeErrorHandler="true" >      
+        <netparam><method name="getValue"> return canvas.sessionId; </method></netparam>
+        <netparam><method name="getValue"> return parent.parent.user_id; </method></netparam>
+        <netparam><method name="getValue"> return canvas.rtmphostlocal; </method></netparam>
+        <netparam><method name="getValue"> return canvas.red5httpport; </method></netparam>
+        <netparam><method name="getValue"> return canvas.httpRootKey; </method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+                if ($debug) Debug.write("requestUserToContactList: ",value);
+                if (value > 0) {
+                    new lz.labelerrorPopup(canvas,{labelid:1267,errorlabelid:1266});
+                }
+            ]]>
+        </handler>
+    </netRemoteCallHib> 
+    
+    <view width="$once{ parent.width }" height="$once{ parent.height-1 }" 
+    	bgcolor="0xFFFFFF" opacity="0.2" />
+	
+	<image name="_userpic" stretches="both" x="1" y="1">
+		<handler name="onload">
+            <![CDATA[
+                if (this.height > 38) {
+                    //If bigger then containter then scale it
+                    var width = this.width/(this.height/38);
+                    this.setAttribute('height',38);
+                    this.setAttribute('width',width);
+                }
+            ]]>
+        </handler>
+	</image>
+	
+	<text text="$once{ parent.username }" x="40" resize="false"
+		  width="$once{ parent.width - 40 }" />	
+		  
+	<miniIconsImage name="add" src="$once{ canvas.getThemeImage('edit_add_rsc') }" width="16" height="16" 
+                   y="20" x="$once{ parent.width - 80 }" showhandcursor="true">
+        <handler name="onclick">
+            if ($debug) Debug.write("Start Conference");
+            if (hib.userobject.user_id == parent.user_id) {
+                new lz.labelerrorPopup(canvas,{errorlabelid:1225});
+                return;
+            }
+            parent.requestUserToContactList.doCall();
+        </handler>
+        <labelTooltip labelid="1186" />
+    </miniIconsImage>
+    
+    <miniIcons name="private_message_add" resource="private_message_add_rsc" width="16" height="16" 
+                   y="20" x="$once{ parent.width - 60 }" showhandcursor="true">
+        <handler name="onclick">
+            if ($debug) Debug.write("Start Conference");
+            new lz.newPrivateMessage(canvas,{
+                                x:200,y:120,
+                                refObj:null,
+                                minimizable:true,
+                                maximizable:true,
+                                userObject:null,
+                                isdragable:true,
+                                user_id:parent.user_id,
+                                width:canvas.width-300,
+                                height:canvas.height-130
+                            });
+        </handler>
+        <labelTooltip labelid="1253" />
+    </miniIcons>
+	
+	<miniIcons resource="user_profile_rsc" width="16" height="16" 
+               y="20" x="$once{ parent.width - 40 }" showhandcursor="true">
+        <handler name="onclick">
+            if ($debug) Debug.write("Start Conference");
+            new lz.viewUserProfileWindow(canvas,{
+                                userId:parent.user_id
+                            });
+        </handler>
+        <labelTooltip labelid="1236" />
+    </miniIcons>    
+	
+	<miniIcons resource="start_conference2_rsc" width="16" height="16" 
+			   y="20" x="$once{ parent.width - 20 }" showhandcursor="true">
+		<handler name="onclick">
+			if ($debug) Debug.write("Start Conference");
+			new lz.chatParticipantsInviteConference(canvas,{
+            			    publicSID:parent.publicSID
+            			});
+		</handler>
+		<labelTooltip labelid="1131" />
+	</miniIcons>	 
+	
+	<labelTooltip text="$once{ parent.connectedSince }" /> 
+	
+</class>
+
+</library>
diff --git a/WebContent/src/modules/chat/emotIconsSelector.lzx b/WebContent/src/modules/chat/emotIconsSelector.lzx
new file mode 100644
index 0000000..98edc70
--- /dev/null
+++ b/WebContent/src/modules/chat/emotIconsSelector.lzx
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<!--- view to select emoticons. size is 160x140 -->
+<class name="emotIconsSelector" extends="closableView" bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }" 
+    clickable="true" width="160" height="140" >
+
+    <attribute name="btnRef" value="null" />
+
+    <!--- @keywords private -->
+    <method name="passModeEvent" args="eventStr,view" > 
+        <![CDATA[
+            if ( eventStr == "onmousedown"  ){
+                if ( view != null ) {
+                   if ( !view.childOf(this) ) {
+                        this.close();
+                   }
+                } else {
+                    this.close();
+                }
+            }
+            if (view && view.childOf(this)) {
+                if (view[ eventStr ]) {
+                    view[ eventStr ].sendEvent( view );
+                }
+                return false;
+            }
+            return true;
+        ]]> 
+    </method>
+    
+    <handler name="oninit">
+    	this.getAllPublicEmoticons.doCall();
+    </handler>
+    
+        <netRemoteCallHib name="getAllPublicEmoticons" funcname="chatservice.getAllPublicEmoticons" 
+			remotecontext="$once{ canvas.thishib }" > 
+            <handler name="ondata" args="value">
+            	<![CDATA[
+                	//The onResult-Handler will be called be the rtmpconnection
+					if($debug) Debug.write("emotIconsSelector/getAllPublicEmoticons : ",value);
+					for (var i=0;i<value.length;i++){
+						var swfurl = canvas.getUrl() + 'public/emoticons/'+value[i][0];
+						iconlabel = value[i][1];
+						if (value[i].length>4){
+							iconlabel += ", "+value[i][2];							
+						}
+						
+						if ($debug) Debug.write("swfurl "+swfurl);
+						
+						var m = new lz._chatInnerSmilyIcon(parent.inn.inn,{iconvalue:value[i][1],iconlabel:iconlabel});
+						m.setSource(swfurl);						
+					}
+                ]]>
+            </handler>   
+        </netRemoteCallHib>    
+
+    <view bgcolor="0xFFFFFF" width="$once{ parent.width-2 }" opacity="0.8"
+    	  height="$once{ parent.height-2 }" x="1" y="1" />
+    	  
+    <labelText x="1" y="1" labelid="446" fontstyle="bold" /><!-- 446:Emoticons -->
+	<view name="inn" width="158" height="118" x="0" y="20" clip="true">
+		<view name="inn" width="$once{ parent.height }" >
+			<wrappinglayout axis="x" spacing="2" />
+		</view>
+		<om_vscrollbar name="myscrollbar" />
+	</view>
+    
+    <view name="_close" x="$once{ parent.width-this.width-2 }" y="2"
+        resource="btn_presenter_close"
+        onmouseover="this.setAttribute('frame',2)"
+        onmouseout="this.setAttribute('frame',1)"
+        onmousedown="this.setAttribute('frame',3)"
+        onmouseup="this.setAttribute('frame',1)" >
+        <handler name="onclick">
+            this.setAttribute('frame',2);
+            this.parent.close();
+        </handler>
+        <labelTooltip labelid="430" /><!-- 430:close -->
+    </view>    
+	
+</class>	
+
+<!--- private class of emotIconsSelector.class. resource view of chat smily icons. it shows icons and label tooltips.-->
+<class name="_chatInnerSmilyIcon" extends="view" onmouseover="" onmouseout="">
+	<attribute name="iconlabel" value="" type="string" />
+	<attribute name="iconvalue" value="" type="string" />
+	<handler name="onclick">
+		var messageBox = parent.parent.parent.btnRef.message;
+		messageBox.setText(messageBox.getText()+" "+iconvalue+"  ");
+		if ($debug) Debug.write("messageBox TEXT: ",messageBox.text,messageBox);
+		lz.Focus.setFocus(messageBox._ctext);
+		messageBox._ctext.setSelection(messageBox.getText().length-1,messageBox.getText().length);
+		parent.parent.parent.close();
+	</handler>
+	<labelTooltip text="$once{ parent.iconlabel }" />
+</class>
+
+</library>
diff --git a/WebContent/src/modules/chat/fontOptions.lzx b/WebContent/src/modules/chat/fontOptions.lzx
new file mode 100644
index 0000000..4b11c87
--- /dev/null
+++ b/WebContent/src/modules/chat/fontOptions.lzx
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="fontOptions" extends="closableView" bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }"
+	clickable="true" width="130" height="42">
+
+	<attribute name="btnRef" value="null" />
+	
+	<method name="passModeEvent" args="eventStr,view" > 
+        <![CDATA[
+            if ( eventStr == "onmousedown"  ){
+                if ( view != null ) {
+                   if ( !view.childOf(this) ) {
+                        this.close();
+                   }
+                } else {
+                    this.close();
+                }
+            }
+            if (view && view.childOf(this)) {
+                if (view[ eventStr ]) {
+                    view[ eventStr ].sendEvent( view );
+                }
+                return false;
+            }
+            return true;
+        ]]> 
+    </method>
+    
+    <method name="applyStyle" args="styleLeftPart, styleRightPart">
+    	var messageBox = btnRef.message;
+    	var beforeSelection = messageBox.getText().substring(0, messageBox._ctext.selPosition);
+    	var selection = messageBox.getText().substring(messageBox._ctext.selPosition, 
+    		messageBox._ctext.selPosition + messageBox._ctext.selSize);
+    	var afterSelection = messageBox.getText().substring(messageBox._ctext.selPosition + 
+    		messageBox._ctext.selSize, messageBox.getText().length);
+		messageBox.setText(beforeSelection + styleLeftPart + selection + styleRightPart + afterSelection);
+		close();
+		lz.Focus.setFocus(messageBox._ctext);
+    </method>
+        
+    <view bgcolor="0xFFFFFF" width="$once{ parent.width-2 }" opacity="0.8"
+    	  height="$once{ parent.height-2 }" x="1" y="1" />
+    	  
+    <labelText x="1" y="1" labelid="1530" fontstyle="bold" /><!-- 1530:Font style -->
+    
+    <view name="_close" x="$once{ parent.width-this.width-2 }" y="2"
+        resource="btn_presenter_close"
+        onmouseover="this.setAttribute('frame',2)"
+        onmouseout="this.setAttribute('frame',1)"
+        onmousedown="this.setAttribute('frame',3)"
+        onmouseup="this.setAttribute('frame',1)" >
+        <handler name="onclick">
+            this.setAttribute('frame',2);
+            this.parent.close();
+        </handler>
+        <labelTooltip labelid="430" /><!-- 430:close -->
+    </view>
+
+	<miniIconsImage y="18" x="0" src="$once{ canvas.getThemeImage('font_bold') }"
+		width="24" height="24" showhandcursor="true" stretches="none" xoffset="-4" yoffset="-4">
+		<handler name="onclick">
+			<![CDATA[
+			parent.applyStyle("<b>", "</b>");
+			]]>
+		</handler>
+		<labelTooltip labelid="87" />
+	</miniIconsImage>
+	    
+	<miniIconsImage y="18" x="24" src="$once{ canvas.getThemeImage('font_italic') }" 
+		width="24" height="24" showhandcursor="true" stretches="none" xoffset="-4" yoffset="-4">
+		<handler name="onclick">
+			<![CDATA[
+			parent.applyStyle("<i>", "</i>");
+			]]>
+		</handler>
+		<labelTooltip labelid="86" />
+	</miniIconsImage>
+	    
+	<miniIconsImage y="18" x="48" src="$once{ canvas.getThemeImage('font_underline') }"
+		width="24" height="24" showhandcursor="true" stretches="none" xoffset="-4" yoffset="-4">
+		<handler name="onclick">
+			<![CDATA[
+			parent.applyStyle("<u>", "</u>");
+			]]>
+		</handler>
+		<labelTooltip labelid="1529" />
+	</miniIconsImage>
+	
+	<miniIconsImage y="18" x="72" src="$once{ canvas.getThemeImage('font_color') }" 
+		width="24" height="24" showhandcursor="true" stretches="none" xoffset="-4" yoffset="-4">
+		<attribute name="selectedColor" type="number" value="0" />
+		<attribute name="colorBeforeOpen" type="number" />
+		<attribute name="colorPickRef" value="null"/>
+		<handler name="onclick">
+			<![CDATA[
+				this.colorPickRef = new lz.colorpicker(canvas,{btnRef:this,
+	        		x:(this.getAttributeRelative('x',canvas)-(250-this.width)),
+	        		y:(this.getAttributeRelative('y',canvas)-154+this.height)});
+	        	var myColor = new Color();
+        		myColor.setRGB(0);
+	        	this.colorPickRef.doDefaultColor(myColor);
+	        	this.colorBeforeOpen = colorPickRef.selectedColor;
+	        	lz.ModeManager.makeModal(this.colorPickRef);
+			]]>
+		</handler>
+		
+		<method name="closedColorPicker">
+			// called by colorpicker
+		</method>
+		
+		<method name="setTransformedStringColor">
+		<![CDATA[
+			if (colorBeforeOpen != this.colorPickRef.selectedColor)
+				parent.applyStyle("<font color=\'#" + 
+					parseInt(this.colorPickRef.selectedColor).toString(16) + "\'>", "</font>");
+		]]>
+		</method>
+		
+		<labelTooltip labelid="1532" />
+	</miniIconsImage>
+	
+	<miniIconsImage y="18" x="96" src="$once{ canvas.getThemeImage('hyperlink') }" 
+		width="24" height="24" showhandcursor="true" stretches="none"  xoffset="-4" yoffset="-4">
+		<handler name="onclick">
+			<![CDATA[
+			parent.applyStyle("<a href=\"\">", "</a>");
+			]]>
+		</handler>
+		<labelTooltip labelid="1533" />
+	</miniIconsImage>
+    
+</class>
+
+</library>
\ No newline at end of file
diff --git a/WebContent/src/modules/chat/globalAttributes.lzx b/WebContent/src/modules/chat/globalAttributes.lzx
new file mode 100644
index 0000000..3b5283d
--- /dev/null
+++ b/WebContent/src/modules/chat/globalAttributes.lzx
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+
+<!-- global attributes for chat module -->
+
+<library>
+
+<!--- chat modules: chat history -->
+<attribute name="chathistory" value="null" />
+
+<!--- chat modules: chat content -->
+<attribute name="_chatcontent" value="null" />
+
+<!--- chat modules: chat content -->
+<attribute name="_currentChatPanel" value="null" />
+
+</library>
diff --git a/WebContent/src/modules/chat/globalMethods.lzx b/WebContent/src/modules/chat/globalMethods.lzx
new file mode 100644
index 0000000..c42394f
--- /dev/null
+++ b/WebContent/src/modules/chat/globalMethods.lzx
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+
+<!-- global methods for chat module -->
+<library>
+
+<script>
+<![CDATA[
+
+	// global chat history array for all chat module
+	this.chathistory=new Array();
+
+var maxsize = 220;
+var textFieldtext = "";
+var startIndex = 0;
+var currentLine = 0;
+var textObject = null;
+var myTextFormat = null;
+var lineHeight = 0;
+
+function calcLineWidthByTextField(maxsizeText,textForCalcing,fontsize, fontname){
+	//check test/testLineWidth.lzx in test-directory for a detailed example calculation 
+	//Debug.write("calcLineWidthByTextField: ",textForCalcing);
+	
+	maxsize = maxsizeText;
+	startIndex = 0;
+	currentLine = 0;
+	textObject = new Array();
+	
+	textFieldtext = textForCalcing;
+	myTextFormat = new TextFormat();
+	myTextFormat.size = fontsize;
+	myTextFormat.font = fontname;
+	
+	var metrics = myTextFormat.getTextExtent(textFieldtext, 100000);
+	lineHeight = metrics.ascent+metrics.descent;
+	//Debug.write(lineHeight);
+	
+	measureLine();
+	
+	return textObject;
+}
+
+function measureLine(){
+    var remainingLength = textFieldtext.length;
+        
+    var testTxt = "";
+    var testTxt2 = "";
+    var textFieldtext2 = textFieldtext;
+    var metrics = 0;
+    var firstSpaceIndex = 0;
+    var isFirstWord = true;
+
+    //if ($debug) Debug.write("FUNC/chat Message: ", textFieldtext);
+    //if ($debug) Debug.write("FUNC/length of chat Message: ", remainingLength);
+
+    while (remainingLength > 0) {
+        testTxt = "";
+        testTxt2 = "";
+        textFieldtext2 = textFieldtext;
+        metrics = myTextFormat.getTextExtent(textFieldtext2, 100000);
+        isFirstWord = true;
+        
+        //if ($debug) Debug.write("size of the current part: ", metrics.width);
+        do {
+            firstSpaceIndex = textFieldtext2.indexOf(" ");
+            testTxt2 = testTxt;
+
+            if (firstSpaceIndex != -1) {
+                //if ($debug) Debug.write("the first space is at position: ", firstSpaceIndex);
+                if (isFirstWord) {
+                    testTxt = textFieldtext2.slice(startIndex, firstSpaceIndex);
+                    isFirstWord = false;
+                } else {
+                    testTxt = testTxt + " " + textFieldtext2.slice(startIndex, firstSpaceIndex);
+                }
+                textFieldtext2 = textFieldtext2.slice(firstSpaceIndex + 1, textFieldtext2.length);
+                metrics = myTextFormat.getTextExtent(testTxt, 100000);
+            } else {
+                // this is the last word
+                //if ($debug) Debug.write("this is the last word!");
+                testTxt = testTxt + " " + textFieldtext2;
+                metrics = myTextFormat.getTextExtent(testTxt, 100000);
+                if (isFirstWord && metrics.width < maxsize) {
+                    testTxt2 = testTxt;
+                    isFirstWord = false;
+                }
+                break;
+            }
+        } while (metrics.width < maxsize)
+        
+        if (metrics.width < maxsize) {
+            testTxt2 = testTxt;
+        }
+
+        if (testTxt2.length == 0) {
+            // the first word is already too long
+            //if ($debug) Debug.write("the first word is already too long!");
+            testTxt = "";
+            textFieldtext2 = textFieldtext;
+            metrics = myTextFormat.getTextExtent(testTxt, 100000);
+            isFirstWord = true;
+
+            while (metrics.width < maxsize) {
+                testTxt = testTxt + textFieldtext2.slice(startIndex, 1);
+                textFieldtext2 = textFieldtext2.slice(1, remainingLength);
+                metrics = myTextFormat.getTextExtent(testTxt, 100000);
+            }
+            
+            testTxt2 = testTxt;
+        }
+                
+        textObject[currentLine] = new Array();
+        textObject[currentLine]["text"] = testTxt2;
+        metrics2 = myTextFormat.getTextExtent(textObject[currentLine]["text"], 100000);
+        textObject[currentLine]["lineWidth"] = metrics2.width;
+        currentLine += 1;
+        //if ($debug) Debug.write("new line: ", textObject[currentLine]["text"]);
+               
+        textFieldtext = textFieldtext.slice(testTxt2.length, textFieldtext.length)
+        if (textFieldtext.indexOf(" ") == 0) {
+           textFieldtext = textFieldtext.slice(1, textFieldtext.length)
+        }
+        remainingLength = textFieldtext.length;
+
+        //if ($debug) Debug.write("remaining text: ", textFieldtext);
+    }
+}
+
+function getLineHeight(){
+	return lineHeight;
+}
+
+
+
+
+]]>
+</script>
+
+
+
+
+<method name="addChatHistory" args="value,client">
+  	<![CDATA[
+  	Debug.write("addChatHistory: ",value,client);
+    if (value[7]){
+          var newmessage = "<FONT COLOR='"+value[5]+"' size='11'>"+client.firstname+" "+client.lastname+"</FONT>:<FONT COLOR='0x000000' size='11'>"+value[4]+"</FONT><br />";
+    } else {
+          var newmessage = "<FONT COLOR='"+value[5]+"' size='11'>"+client.firstname+" "+client.lastname+"</FONT>:<FONT COLOR='0x000000' size='11'>"+value[4]+"</FONT><br />";
+    }
+  	//Debug.write("newmessage: ",newmessage);
+  	canvas._chatcontent.addChatItem(newmessage);  // Is "addChatItem()" used?  By what? h.kuze 2008/3/27
+  	canvas._chathistory.push(newmessage);
+  	]]>
+</method>
+
+<method name="resetFormatedChatHistory">
+  	<![CDATA[
+  	if (this.chathistory==null) return '';
+  	var completeText = '';
+  	for (var i=0;i<chathistory.length;i++){
+  		completeText+=chathistory[i];
+  	}
+  	//Debug.write("getFormatedChatHistory: ",completeText);
+  	return completeText;
+  	]]>
+</method>
+<method name="getFormatedChatHistory">
+  	<![CDATA[
+  	if (this.chathistory==null) return '';
+  	var completeText = '';
+  	for (var i=0;i<chathistory.length;i++){
+  		completeText+=chathistory[i];
+  	}
+  	//Debug.write("getFormatedChatHistory: ",completeText);
+  	return completeText;
+  	]]>
+</method>
+
+
+</library>
diff --git a/WebContent/src/modules/chat/inviteuser/chatParticipantsInviteConference.lzx b/WebContent/src/modules/chat/inviteuser/chatParticipantsInviteConference.lzx
new file mode 100644
index 0000000..cae4835
--- /dev/null
+++ b/WebContent/src/modules/chat/inviteuser/chatParticipantsInviteConference.lzx
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<class name="chatParticipantsInviteConference" extends="guiPresenter" resizeable="false"
+    width="490" height="430" y="240" x="240" closable="true" labelid="1131" >
+	
+	<attribute name="publicSID" value="" type="string" />
+	<attribute name="user_id" value="0" type="number" />
+	
+    <view resource="messagebox_info_rsc" x="10" y="24" />
+    
+    <labelText labelid="1132" x="30" y="22" fontstyle="italic"
+               multiline="true" width="$once{ parent.width - 40 }" />
+	
+	<labelText labelid="777" x="2" y="52" fontstyle="bold" />
+	
+    <view x="4" y="72" height="150">
+                    
+        <handler name="oninit">
+            this.getRoomsPublicWithoutType.doCall();
+        </handler>
+
+        <netRemoteCallHib name="getRoomsPublicWithoutType" funcname="conferenceservice.getRoomsPublicWithoutType" 
+            remotecontext="$once{ canvas.thishib }" >   
+            <netparam><method name="getValue">return canvas.sessionId;</method></netparam>  
+            <handler name="ondata" args="value">    
+                <![CDATA[
+                    if ($debug) Debug.write("getRoomsPublicWithoutType: ", value);
+                    if (value != null) {
+                        for (var eg = 0; eg < value.length; eg++) {
+                            var time = value[eg].starttime.getHours()
+                                    + ':' + value[eg].starttime.getMinutes()
+                                    + ' ' + value[eg].starttime.getDate()
+                                    + '.' + (value[eg].starttime.getMonth() + 1)
+                                    + '.' + value[eg].starttime.getFullYear();
+                                    
+                            new lz.roomListInviteUserItem(parent.inn.inn.inn,
+                                    {
+                                        roomType:value[eg].roomtype.roomtypes_id,
+                                        currentusers : value[eg].currentusers,
+                                        obj : value[eg],
+                                        ispublic : true,
+                                        roomid : value[eg].rooms_id,
+                                        starttime : time,
+                                        roomname : value[eg].name,
+                                        publicSID:parent.parent.publicSID,
+                                        user_id:parent.parent.user_id
+                                    });
+                        }
+                    }
+                ]]>                                     
+            </handler>  
+        </netRemoteCallHib>
+
+        <!-- inn.inn.inn view would be setted object by above ondata hander. -->
+        <view name="inn" width="480" height="${ parent.height }" bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }" >
+            <view name="inn" x="1" y="1" width="478" height="${ parent.height-2 }" 
+                        bgcolor="0xFFFFFF" clip="true" >
+                <view name="inn" layout="axis:y;spacing:1"/>
+                <om_vscrollbar />
+            </view>
+        </view>
+    </view>
+	
+	<labelText labelid="779" x="2" y="222" fontstyle="bold" />
+	
+    <view x="4" y="242" height="150">
+        <handler name="oninit">
+            this.getRoomsByOrganisationWithoutType.doCall();
+        </handler>    
+
+        <netRemoteCallHib name="getRoomsByOrganisationWithoutType" funcname="conferenceservice.getRoomsByOrganisationWithoutType" remotecontext="$once{ canvas.thishib }" >   
+            <netparam><method name="getValue">return canvas.sessionId;</method></netparam>  
+            <netparam><method name="getValue">return hib.currentdomainObj.organisation_id;</method></netparam>  
+            <handler name="ondata" args="value">    
+            <![CDATA[
+                if ($debug) Debug.write("getRoomsByOrganisationWithoutType ",value);
+                if (value != null) {
+                    for (var eg = 0; eg < value.length; eg++) {
+                        new lz.roomListInviteUserItem(parent.inn.inn.inn,{
+                                    roomType:value[eg].room.roomtype.roomtypes_id,
+                                    currentusers : value[eg].room.currentusers,
+                                    obj : value[eg],
+                                    ispublic : false,
+                                    roomid : value[eg].room.rooms_id,
+                                    starttime : parseDateToStringTime(value[eg].room.starttime),
+                                    roomname : value[eg].room.name,
+                                    publicSID:parent.parent.publicSID
+                                });
+                    }
+                }
+            ]]>                                     
+            </handler>  
+        </netRemoteCallHib> 
+ 
+                <!-- inn.inn.inn view would be setted object by above ondata hander. -->
+        <view name="inn" width="480" height="${ parent.height }" bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }" >
+            <view name="inn" x="1" y="1" width="478" height="${ parent.height-2 }" bgcolor="0xFFFFFF" clip="true" >
+                <view name="inn" layout="axis:y;spacing:1"/>
+                <om_vscrollbar />
+            </view>
+        </view>
+    </view>
+    
+    <simpleLabelButton labelid="55" width="100" onclick="this.parent.close();"
+		   x="$once{ parent.width-104 }" y="$once{ parent.height-26 }" />    	
+	
+</class>
+
+</library>
diff --git a/WebContent/src/modules/chat/inviteuser/chatParticipantsInviteMessage.lzx b/WebContent/src/modules/chat/inviteuser/chatParticipantsInviteMessage.lzx
new file mode 100644
index 0000000..8d5d5a9
--- /dev/null
+++ b/WebContent/src/modules/chat/inviteuser/chatParticipantsInviteMessage.lzx
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<class name="chatParticipantsInviteMessage" extends="guiPresenter" labelid="1138"
+    docking="true" resizeable="false" closable="true" y="260"
+    width="400" x="300" height="240">
+	
+	<attribute name="refObj" value="null" />
+	
+	<attribute name="publicSID" value="" type="string" />
+	<attribute name="user_id" value="0" type="number" />
+	<attribute name="conferenceRoomName" value="" type="string" />
+	<attribute name="roomId" value="0" type="number" />
+	
+	<handler name="oninit">
+		<![CDATA[
+		  
+		  var tString = canvas.firstName + ' ' + canvas.lastName + ' ' 
+		                  + canvas.getLabelName(1137) + ' ' 
+		                  + this.conferenceRoomName;
+		                  
+		  this.message.setAttribute("text",tString);
+		
+		]]>
+	</handler>
+	
+	<method name="send">
+		
+		this.sendMessageWithClientByPublicSIDOrUser.messageObject = new Object
+		this.sendMessageWithClientByPublicSIDOrUser.messageObject["message"] = "inviteToRoom";
+		this.sendMessageWithClientByPublicSIDOrUser.messageObject["action"] = "inviteToRoom";
+		this.sendMessageWithClientByPublicSIDOrUser.messageObject["roomId"] = this.roomId;
+		this.sendMessageWithClientByPublicSIDOrUser.messageObject["usermessage"] = this.message.getText();
+		this.sendMessageWithClientByPublicSIDOrUser.messageObject["publicSID"] = canvas.publicSID;
+		
+		if ($debug) Debug.write("Send to _ ",this.publicSID);
+		if ($debug) Debug.write("Send to _ ",this.user_id);
+		
+		this.sendMessageWithClientByPublicSIDOrUser.doCall();
+		
+	</method>
+	
+    <netRemoteCallHib name="sendMessageWithClientByPublicSIDOrUser" funcname="sendMessageWithClientByPublicSIDOrUser" 
+                      remotecontext="$once{ canvas.thishib }" >  
+        <attribute name="messageObject" value="null" />
+        <netparam><method name="getValue">return parent.messageObject;</method></netparam>
+        <netparam><method name="getValue">return parent.parent.publicSID;</method></netparam>
+        <netparam><method name="getValue">return parent.parent.user_id;</method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+                if ($debug) Debug.write("+sendMessageWithClientByPublicSIDOrUser : ",value);
+                
+                if (parent._switch.getValue()) {
+            
+                    parent.refObj.checkConditionsWhenButtonClicked(null);
+                    
+                } else {
+                	
+                	parent.refObj.doCloseWindow();
+                	
+                }
+                
+                parent.close();
+            ]]>
+        </handler>  
+    </netRemoteCallHib>	
+    
+    <labelText labelid="1136" x="2" y="22" fontstyle="bold" />
+    
+    <customScrollEdittext name="message" y="42" x="2" width="$once{ parent.width - 4 }" 
+            height="100" text="" />
+            
+    <labelCheckbox x="2" y="$once{ parent.height-48 }" fontsize="11"
+        name="_switch" labelid="1134" >
+    </labelCheckbox>  
+    
+    <simpleLabelButton labelid="1139" width="200" x="88" y="$once{ parent.height-22 }" 
+        onclick="this.parent.send();" />
+        
+    <simpleLabelButton labelid="25" width="100" x="290" y="$once{ parent.height-22 }" 
+        onclick="this.parent.close();" />
+
+</class>
+
+</library>
diff --git a/WebContent/src/modules/chat/inviteuser/chatParticipantsInviteNotification.lzx b/WebContent/src/modules/chat/inviteuser/chatParticipantsInviteNotification.lzx
new file mode 100644
index 0000000..4053ab6
--- /dev/null
+++ b/WebContent/src/modules/chat/inviteuser/chatParticipantsInviteNotification.lzx
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<class name="chatParticipantsInviteNotification" extends="guiPresenter" labelid="1138"
+    docking="true" resizeable="false" closable="true" y="260"
+    width="400" x="300" height="240">
+	
+	<attribute name="refObj" value="null" />
+	
+	<attribute name="publicSID" value="" type="string" />
+	<attribute name="conferenceRoomName" value="" type="string" />
+	<attribute name="usermessage" value="" type="string" />
+	<attribute name="roomId" value="0" type="number" />
+	
+	<handler name="oninit">
+		<![CDATA[
+		  
+		  this.message.message.setAttribute("text",this.usermessage);
+		
+		]]>
+	</handler>
+	
+	<method name="accept">
+		canvas.roomJumpId = this.roomId;
+        quicklinkAct("jumpToRoom");
+		
+		this.close();
+	</method>
+	
+	<method name="deny">
+		
+		this.sendMessageWithClientByPublicSID.messageObject = new Object
+		this.sendMessageWithClientByPublicSID.messageObject["message"] = "inviteToRoomAnswer";
+		this.sendMessageWithClientByPublicSID.messageObject["action"] = "inviteToRoomAnswer";
+		this.sendMessageWithClientByPublicSID.messageObject["usermessage"] = canvas.firstName + ' ' + canvas.lastName + ' ' 
+                                                                                    + canvas.getLabelName(1140);
+		this.sendMessageWithClientByPublicSID.doCall();
+		
+	</method>
+	
+    <netRemoteCallHib name="sendMessageWithClientByPublicSID" funcname="sendMessageWithClientByPublicSID" 
+                      remotecontext="$once{ canvas.thishib }" >  
+        <attribute name="messageObject" value="null" />
+        <netparam><method name="getValue">return parent.messageObject;</method></netparam>
+        <netparam><method name="getValue">return parent.parent.publicSID;</method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+                if ($debug) Debug.write("+sendMessageWithClientByPublicSID : ",value);
+                parent.close();
+            ]]>
+        </handler>  
+    </netRemoteCallHib>	
+    
+    <labelText labelid="1136" x="2" y="22" fontstyle="bold" />
+    
+    <view y="42" x="2" name="message" width="$once{ parent.width - 4 }" clip="true">
+    	<text name="message"  width="$once{ parent.width - 16 }"
+            height="100" text="" multiline="true" />
+    </view>
+    
+    <simpleLabelButton labelid="1141" width="100" x="86" y="$once{ parent.height-22 }" 
+        onclick="this.parent.accept();" />
+        
+    <simpleLabelButton labelid="1142" width="100" x="188" y="$once{ parent.height-22 }" 
+        onclick="this.parent.deny();" />
+        
+    <simpleLabelButton labelid="25" width="100" x="290" y="$once{ parent.height-22 }" 
+        onclick="this.parent.close();" />
+
+</class>
+
+</library>
diff --git a/WebContent/src/modules/chat/inviteuser/library.lzx b/WebContent/src/modules/chat/inviteuser/library.lzx
new file mode 100644
index 0000000..bffbfe1
--- /dev/null
+++ b/WebContent/src/modules/chat/inviteuser/library.lzx
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+
+	<include href="roomListInviteUserItem.lzx" />
+	<include href="chatParticipantsInviteMessage.lzx" />
+	<include href="chatParticipantsInviteNotification.lzx" />
+	<include href="chatParticipantsInviteConference.lzx" />
+	
+    
+</library>
diff --git a/WebContent/src/modules/chat/inviteuser/roomListInviteUserItem.lzx b/WebContent/src/modules/chat/inviteuser/roomListInviteUserItem.lzx
new file mode 100644
index 0000000..2de9ed7
--- /dev/null
+++ b/WebContent/src/modules/chat/inviteuser/roomListInviteUserItem.lzx
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<class name="roomListInviteUserItem" extends="view" bgcolor="$once{ canvas.bgColorMenuItems }" 
+		   height="50" onmouseover="" onmouseout="" width="478" >
+
+		<attribute name="ispublic" value="false" type="boolean" />
+		<attribute name="isaudience" value="false" type="boolean" />
+		<attribute name="obj" value="null" />
+		<attribute name="roomid" value="0" type="number" />
+		<attribute name="starttime" value="" type="string" />
+		<attribute name="roomname" value="" type="string" />
+
+		<attribute name="roomClassName" value="conferenceView" type="string" />
+		<attribute name="currentusers" value="null" />
+
+		<attribute name="maxUsers" value="4" type="number" />
+		
+		<attribute name="roomType" value="0" type="number" />
+
+		<attribute name="checkForMaxUsers" value="false" type="boolean" />
+		
+		<attribute name="publicSID" value="" type="string" />
+		<attribute name="user_id" value="0" type="number" />
+
+		<handler name="oninit">
+		<![CDATA[
+
+			//if ($debug) Debug.write("obj: ",obj);
+			if (this.ispublic) {
+				this.maxUsers = obj.numberOfPartizipants;
+			} else {
+				this.maxUsers = obj.room.numberOfPartizipants;
+			}
+			this._users.setAttribute('text', canvas.getLabelName(398) + ' '
+							+ this.currentusers.length + " / " + this.maxUsers);
+			var tString = canvas.getLabelName(401) + "<br/>";
+			for (var i = 0; i < this.currentusers.length; i++) {
+				tString += this.currentusers[i].firstname + " "
+						+ this.currentusers[i].lastname + " ("
+						+ this.currentusers[i].username + ") "
+						+ canvas.getLabelName(399)
+						+ parseDateToStringTime(this.currentusers[i].roomEnter)
+						+ " <br/>";
+			}
+			this._labeltooltip.setAttribute('text', tString);
+		]]>
+		</handler>
+
+		<handler name="onclick">
+			canvas.isConference = !this.isaudience;
+			if (this.isaudience)
+				connectedIsAudience = '_' + 'audi';
+			if (this.ispublic) {
+				hib.conferencedomain = "public";
+				hib.currentroomid = this.obj.rooms_id;
+				//Debug.write("ispublic");
+			} else {
+				hib.conferencedomain = this.obj.organisation.organisation_id;
+				hib.currentroomid = this.obj.room.rooms_id;
+				//Debug.write("non ispublic");
+			}
+			if ($debug) Debug.write("onclick", this);
+			parent.parent.parent.parent.parent._roomlistdetails.doinit(
+					this.currentusers, this.roomid, this.roomname);
+		</handler>
+
+		<method name="checkMaxUsers">
+		<![CDATA[
+			if (this.currentusers.length < this.maxUsers) {
+				this.enterRoom();
+			} else {
+				new lz.labelerrorPopup(canvas,{errorlabelid:99});
+				//new lz.rpcErrorDialog(canvas.main_content._content.inner, {
+				//			errorid : 30
+				//		});
+			}
+		]]>
+		</method>
+
+		<method name="enterRoom">
+			
+			var roomid = 0;
+			
+			if (this.ispublic) {
+				roomid = this.obj.rooms_id;
+				//Debug.write("ispublic");
+			} else {
+				roomid = this.obj.room.rooms_id;
+				//Debug.write("non ispublic");
+			}
+			
+			canvas.roomJumpId = roomid;
+			quicklinkAct("jumpToRoom");
+			
+			this.doCloseWindow();
+		</method>
+
+		<netRemoteCallHib name="getRoomClientsListByRoomId" funcname="conferenceservice.getRoomClientsListByRoomId"
+			remotecontext="$once{ canvas.thishib }" >
+			<netparam> <method name="getValue">return parent.parent.roomid;</method></netparam>
+			<handler name="ondata" args="value">
+			<![CDATA[
+				if ($debug) Debug.write("getRoomClientsListByRoomId: ", value);
+				parent.currentusers = value;
+				parent.oninit.sendEvent();
+				if (parent.checkForMaxUsers) {
+					parent.checkMaxUsers();
+				}
+			]]>
+			</handler>
+		</netRemoteCallHib>
+
+		<labelText text="$once{ parent.roomname }" />
+
+		<labelText name="_users" y="26" />
+		<image name="_r" src="$once{ canvas.getThemeImage('reload_rsc') }" x="130" y="26"
+			onclick="parent.getRoomClientsListByRoomId.doCall()" >
+			<labelTooltip labelid="402" />
+		</image>
+
+		<method name="checkConditionsWhenButtonClicked" args="_clicked">
+			checkForMaxUsers = true;
+			getRoomClientsListByRoomId.doCall();
+		</method>
+		
+		<method name="doCloseWindow">
+			if ($debug) Debug.write("doCloseWindow :: ");
+			parent.parent.parent.parent.parent.close();
+		</method>
+
+		<simpleLabelButton labelid="1135" x="380" width="80" height="24" y="20">
+			<handler name="onclick">
+				new lz.chatParticipantsInviteMessage(canvas,{
+    				    refObj:parent,
+    				    publicSID:parent.publicSID,
+    				    user_id:parent.user_id,
+    				    conferenceRoomName:parent.roomname,
+    				    roomId:parent.roomid
+    				});
+			</handler>
+		</simpleLabelButton>
+
+		<labelTooltip multiline="true" name="_labeltooltip" />
+
+	</class>
+
+</library>
diff --git a/WebContent/src/modules/chat/library.lzx b/WebContent/src/modules/chat/library.lzx
new file mode 100644
index 0000000..b70fa7b
--- /dev/null
+++ b/WebContent/src/modules/chat/library.lzx
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+
+	<include href="globalAttributes.lzx" />
+	<include href="globalMethods.lzx" />
+	
+	<include href="chatMiniButton.lzx" />
+	<include href="chatBarMenu.lzx" />
+	<include href="inviteuser/" />
+	
+	<include href="chatParticipants.lzx" />
+	<include href="fontOptions.lzx" />
+	<include href="emotIconsSelector.lzx" />
+    
+</library>
diff --git a/WebContent/src/modules/conference/browser/conferenceBrowser.lzx b/WebContent/src/modules/conference/browser/conferenceBrowser.lzx
new file mode 100644
index 0000000..441b6b3
--- /dev/null
+++ b/WebContent/src/modules/conference/browser/conferenceBrowser.lzx
@@ -0,0 +1,436 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<!--- TODO:
+		inprement of history feature
+		add resize feature to labelExplorerBox component
+	-->
+	<!--
+	<include href="extensions/html.lzx"/>
+     -->
+     
+    <class name="browserButton" extends="view" width="22" height="22">
+    	
+    	<attribute name="enabled" value="true" type="boolean" />
+    	
+    	<handler name="onenabled" args="o">
+    		this.enabled = o;
+    		if (o) {
+    			this.setAttribute("opacity",1);
+    		} else {
+    			this.setAttribute("opacity",0.5);
+    		}
+    	</handler>
+    	
+    </class> 
+     
+	<class name="conferenceBrowser" extends="labelExplorerBox" labelid="749" 
+		   x="200" closable="false" resizeable="true">
+		 
+		<!--
+		      this attribute is true if the user has opened the browser on its own
+		      if the browser is opened by a Remote-Call, the user will get the Web-Site 
+		      notifications from the Moderator(s)
+		 -->
+		<attribute name="initedByUser" value="true" type="boolean" /> 
+		
+		<attribute name="initURL" value="" type="string" /> 
+		
+		<attribute name="callBackJSDelegate" value="null" /> 
+		
+		<attribute name="browserhistoryPre" value="null" />
+		<attribute name="browserhistoryPost" value="null" /> 
+		 
+		<handler name="oninit">
+			<![CDATA[
+			
+			    this.browserhistoryPre = new Array();
+			    this.browserhistoryPost = new Array();
+			    
+			    this.updateIcons();
+			
+				canvas.conferenceBrowserIsinited = true;
+				this.callBackJSDelegate = new LzDelegate(this, "updatedURLValues");
+			
+                var os = lz.Browser.getOS();
+                
+                //We have to detect Firefox, unfortunately it does not work for
+                //Windows with Firefox see: http://jira.openlaszlo.org/jira/browse/LPP-8525
+                
+                if ($debug) Debug.write("os ::",os.indexOf('Win'),os);
+                
+                //To test this you have to run the application with the index.jsp wrapper that
+                //contains the browser-detection code
+                if (false && os.indexOf("Win") >= 0) {
+                
+                    if ($debug) Debug.write("os :: version isWindows check for Firefox Bug ",os,version);
+                    
+                    getBrowserLang(this);
+                
+                }
+                
+                if (canvas.ismoderator) {
+                	
+                    this._navigation._inner._showBar.setAttribute('started', true);
+                    
+                }
+                
+                //see attribute definition for docs
+                if (this.initedByUser) {
+                	this._navigation._inner.browser.navigation.url.setAttribute("text","http://www.google.com");
+                	this._navigation._inner.browser.navigation.readStart.setURL();
+                	
+                	this.sendBrowserMessageToMembers.objMessage = new Array();
+                	this.sendBrowserMessageToMembers.objMessage[0] = "initBrowser";
+                	this.sendBrowserMessageToMembers.objMessage[1] = this._navigation._inner.browser.navigation.url.text;
+                	this.sendBrowserMessageToMembers.doCall();
+                } else {
+                	
+                	this._navigation._inner.browser.navigation.url.setAttribute("text",this.initURL);
+                	this._navigation._inner.browser.navigation.readStart.setURL();
+                	
+                }
+                
+            ]]>
+        </handler>
+        
+        <method name="callback" args="returnValue">
+        	<![CDATA[
+        	
+        	    if ($debug) Debug.write("getBrowserInfo callback ",returnValue);
+                        
+                if (returnValue.indexOf("Firefox") >= 0) {
+                    
+                    this.setAttribute("y",160);
+                    
+                    new lz.labelerrorPopup(canvas,{y:0,errorlabelid:750});
+                }
+        	
+        	]]>
+        </method>
+        
+        <method name="newBrowserURL" args="newURL">
+        	this._navigation._inner.browser.navigation.url.setAttribute("text",newURL);
+        	this._navigation._inner.browser.navigation.readStart.setURL();
+        </method>
+        
+        <method name="updatedURLValues" args="returnValue">
+        	
+        	if ($debug) Debug.write("updatedURLValues ",returnValue);
+        	
+        </method>
+        
+        <method name="getIFrameLocation">
+        	<![CDATA[
+
+                //function callbackIFrameLocation(returnValue) {
+                    
+                //    if ($debug) Debug.write("callbackIFrameLocation ",returnValue);
+                    
+                //}
+                
+                //lz.Browser.callJS("getiFrameOMSource",callbackIFrameLocation, "__lz0");   
+                
+                this.htmlviewer.callJavascript("window.location.href",this.callBackJSDelegate);
+                
+                
+                
+        	]]>
+        </method>
+        
+        <netRemoteCallHib name="sendBrowserMessageToMembers" funcname="sendBrowserMessageToMembers" 
+        				   remotecontext="$once{ canvas.thishib }" >
+        	<attribute name="objMessage" value="null" />
+            <netparam name="vars"><method name="getValue">return parent.objMessage;</method></netparam>
+            <handler name="ondata" args="value">
+                <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                	if ($debug) Debug.write("getValue : ",value);
+                	if (this.objMessage[0] == "closeBrowserURL") {
+                		parent.close();
+                	}
+                ]]>
+            </handler>   
+        </netRemoteCallHib> 
+        
+        <handler name="onismoderator" reference="canvas" args="m">
+            if ($debug) Debug.write("###### ismoderator ",m);
+            <![CDATA[
+                //this.isMod = canvas.getIsModeratorByPublicSID(this.refObj.publicSID);
+                if (m) {
+                    this._navigation._inner._showBar.setAttribute('started', true);
+                } else {
+                	this._navigation._inner.setAttribute("y",-40);
+                }
+                //throw a onx/y event to 
+                this.setAttribute("y",this.y);
+            ]]>
+        </handler>
+        
+        <method name="addLocalHistoryPre" args="url">
+        	this.browserhistoryPre.push(url);
+        	this.updateIcons();
+        </method>
+        
+        <method name="addLocalHistoryPost" args="url">
+            this.browserhistoryPost.push(url);
+            this.updateIcons();
+        </method>
+        
+        <method name="updateIcons">
+        	<![CDATA[
+            	if (this.browserhistoryPre.length > 1) {
+            		this._navigation._inner.browser.navigation._pre.setAttribute("enabled",true);
+            	} else {
+            		this._navigation._inner.browser.navigation._pre.setAttribute("enabled",false);
+            	}
+            	
+            	if (this.browserhistoryPost.length > 0) {
+                    this._navigation._inner.browser.navigation._post.setAttribute("enabled",true);
+                } else {
+                    this._navigation._inner.browser.navigation._post.setAttribute("enabled",false);
+                }
+        	]]>
+        </method>
+        
+        <method name="doPreItem">
+        	<![CDATA[
+                if (this.browserhistoryPre.length > 1) {
+                	
+                	if ($debug) Debug.write("doPreItem 1 ",this.browserhistoryPre.length);
+                	
+                	var lastItem = this.browserhistoryPre[this.browserhistoryPre.length-2];
+                	var nextItem = this.browserhistoryPre[this.browserhistoryPre.length-1];
+                	
+                	if ($debug) Debug.write("doPreItem 2 ",lastItem);
+                	
+                	this.browserhistoryPost.push(nextItem);
+                	
+                	this.browserhistoryPre.splice(this.browserhistoryPre.length-2,1);
+                	
+                	if ($debug) Debug.write("doPreItem 3 ",this.browserhistoryPre.length);
+                	
+                	this._navigation._inner.browser.navigation.url.setAttribute("text",lastItem);
+                    this._navigation._inner.browser.navigation.readStart.setURLWithoutEvent();
+                	
+                	this.updateIcons();
+                	
+                	return lastItem;
+                }
+            ]]>
+        </method>
+        
+        <method name="doPostItem">
+            <![CDATA[
+                if (this.browserhistoryPost.length > 0) {
+                    
+                    var lastItem = this.browserhistoryPost[this.browserhistoryPost.length-1];
+                    
+                    this.browserhistoryPost.splice(this.browserhistoryPost.length-1,1);
+                    
+                    this.browserhistoryPre.push(lastItem);
+                    
+                    this._navigation._inner.browser.navigation.url.setAttribute("text",lastItem);
+                    this._navigation._inner.browser.navigation.readStart.setURLWithoutEvent();
+                    
+                    this.updateIcons();
+                    
+                    return lastItem;
+                }
+            ]]>
+        </method>
+        
+        <method name="doClose">
+            if (canvas.ismoderator) {
+            
+                this.sendBrowserMessageToMembers.objMessage = new Array();
+                this.sendBrowserMessageToMembers.objMessage[0] = "closeBrowserURL";
+                this.sendBrowserMessageToMembers.doCall();
+            
+            }
+        </method>
+        
+        <handler name="onclose">
+        	canvas.conferenceBrowserIsinited = false;
+            this.htmlviewer.setVisible(false);
+        </handler>              
+        
+        <!--
+            Broadcast Message to all user
+         -->
+        <view name="_navigation" clip="true" y="22" height="38" width="${ parent.width }" >
+    		<view name="_inner" y="-40">
+    			
+    			<animator name="_showBar" attribute="y" to="0" duration="750" started="false">
+    				<handler name="onstop">
+    					lz.Focus.setFocus(parent.browser.navigation.url,true);
+    				</handler>
+    			</animator>
+    			
+    			<!-- enabled="false" -->
+        		<view name="browser" height="28" bgcolor="0xEEEEEE" x="1" >
+        			
+        			<view name="navigation" layout="axis:x;spacing:1;inset:1">
+        				
+        				<browserButton name="_pre" resource="./resources/pre.png" y="2">
+        					<handler name="onclick">
+        						if ($debug) Debug.write("PRE");
+        						parent.parent.parent.parent.parent.doPreItem();
+        					</handler>
+        					<labelTooltip labelid="751" />
+        				</browserButton>
+        				
+        				<browserButton name="_post" resource="./resources/next.png" y="2" enabled="false">
+                            <handler name="onclick">
+                                if ($debug) Debug.write("NEXT");
+                                parent.parent.parent.parent.parent.doPostItem();
+                            </handler>
+                            <labelTooltip labelid="752" />
+                        </browserButton>
+                        
+                        <browserButton resource="./resources/refresh.png" y="2">
+                            <handler name="onclick">
+                                if ($debug) Debug.write("RELOAD");
+                                parent.readStart.sendURL();
+                            </handler>
+                            <labelTooltip labelid="753" />
+                        </browserButton>
+                        
+                        <browserButton resource="./resources/home.png" y="2">
+                            <handler name="onclick">
+                                if ($debug) Debug.write("HOME");
+                                parent.url.setAttribute("text","http://www.google.com");
+                                parent.readStart.sendURL();
+                            </handler>
+                            <labelTooltip labelid="754" />
+                        </browserButton>
+                        
+        				<edittext name="url" width="${classroot.width- (5*22) - 8}"> 
+        					<handler name="onkeyup" args="key">
+        						if ((key == 27) || (key == 13)) {
+        							this.parent.readStart.onclick.sendEvent();
+        						}
+        					</handler>
+        				</edittext>
+        				
+        				<browserButton name="readStart" resource="./resources/run.png" 
+        							    y="2">
+        					<handler name="onclick">
+            					this.sendURL();
+        					</handler>
+        					<method name="sendURL">
+        						this.setURL();
+        						
+        						parent.parent.parent.parent.parent.sendBrowserMessageToMembers.objMessage = new Array();
+			                	parent.parent.parent.parent.parent.sendBrowserMessageToMembers.objMessage[0] = "newBrowserURL";
+			                	parent.parent.parent.parent.parent.sendBrowserMessageToMembers.objMessage[1] = parent.url.text;
+			                	parent.parent.parent.parent.parent.sendBrowserMessageToMembers.doCall();
+        					</method>
+        					<method name="setURL">
+        						<![CDATA[
+            						var url = parent.url.getText();
+            						if ((url.indexOf("http://") < 0)
+            								&& (url.indexOf("https://") < 0)) {
+            							url = "http://" + url;
+            						}
+            
+            						parent.parent.parent.parent.parent.htmlviewer.ignoreNextEvent = true;
+            						parent.parent.parent.parent.parent.htmlviewer.setAttribute("src",url);
+            						parent.parent.parent.parent.parent.htmlviewer.setAttribute("visible",true);
+            						
+            						parent.parent.parent.parent.parent.addLocalHistoryPre(url);
+            						
+            						parent.url.setAttribute('text', url);
+            					]]>
+        					</method>
+        					
+        					<method name="setURLWithoutEvent">
+                                <![CDATA[
+                                    var url = parent.url.getText();
+                                    if ((url.indexOf("http://") < 0)
+                                            && (url.indexOf("https://") < 0)) {
+                                        url = "http://" + url;
+                                    }
+            
+                                    parent.parent.parent.parent.parent.htmlviewer.ignoreNextEvent = true;
+                                    parent.parent.parent.parent.parent.htmlviewer.setAttribute("src",url);
+                                    parent.parent.parent.parent.parent.htmlviewer.setAttribute("visible",true);
+                                    
+                                    parent.url.setAttribute('text', url);
+                                ]]>
+                            </method>
+        					
+        				</browserButton> 
+        				
+        			</view>
+        			
+        			<view x="0" resource="./resources/browser_sub_cit.swf" 
+        				  width="${ parent.parent.parent.parent.width-2 }" stretches="width" y="28" />
+        			
+        		</view>
+        		
+            </view>
+        </view>
+        
+		<html name="htmlviewer" x="4" y="${ (canvas.ismoderator) ? 60 : 22 }" width="${ parent.width-8 }" 
+			  height="${ (canvas.ismoderator) ? (parent.height - 90) : (parent.height-52) }" >
+			
+			<attribute name="ignoreNextEvent" value="false" type="boolean" />
+			
+			<handler name="onloading" args="loading">
+				<![CDATA[
+					this.loading = loading;
+					if ($debug) Debug.write("LOADING 1 ",loading,this.src);
+					if ($debug) Debug.write("LOADING 2 ",loading,this);
+					if (canvas.ismoderator) {
+						if (!loading && !this.ignoreNextEvent) {
+							parent.getIFrameLocation();
+							
+							//parent.sendBrowserMessageToMembers.objMessage = new Object();
+		                	//parent.sendBrowserMessageToMembers.objMessage[0] = "newBrowserURL";
+		                	//parent.sendBrowserMessageToMembers.objMessage[1] = this.src;
+		                	//parent.sendBrowserMessageToMembers.doCall();
+						}
+					}
+					
+					if (!loading) {
+						this.ignoreNextEvent = false;
+					}
+				]]>
+			</handler>
+			<handler name="onsrc" args="src">
+				this.src = src;
+				//if ($debug) Debug.write("SRC ",src);
+			</handler>
+		</html>
+		
+		<labelText labelid="1006" y="${ parent.height-22 }" x="2"
+				   visibility="${ (canvas.ismoderator) ? 'visible' : 'hidden' }" />
+		
+        <simpleLabelButton labelid="61" width="100" 
+			   visibility="${ (canvas.ismoderator) ? 'visible' : 'hidden' }" 
+			   x="${ parent.width-105 }" y="${ parent.height-24 }" 
+               onclick="this.parent.doClose();" />
+    		  
+	</class>
+ 	
+</library>
diff --git a/WebContent/src/modules/conference/browser/library.lzx b/WebContent/src/modules/conference/browser/library.lzx
new file mode 100644
index 0000000..d88ffc2
--- /dev/null
+++ b/WebContent/src/modules/conference/browser/library.lzx
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	<include href="conferenceBrowser.lzx"/>
+</library>
diff --git a/WebContent/src/modules/conference/browser/resources/browser_sub_cit.fla b/WebContent/src/modules/conference/browser/resources/browser_sub_cit.fla
new file mode 100644
index 0000000..c5e5ac6
--- /dev/null
+++ b/WebContent/src/modules/conference/browser/resources/browser_sub_cit.fla
Binary files differ
diff --git a/WebContent/src/modules/conference/browser/resources/browser_sub_cit.swf b/WebContent/src/modules/conference/browser/resources/browser_sub_cit.swf
new file mode 100644
index 0000000..784c5cc
--- /dev/null
+++ b/WebContent/src/modules/conference/browser/resources/browser_sub_cit.swf
Binary files differ
diff --git a/WebContent/src/modules/conference/browser/resources/home.fla b/WebContent/src/modules/conference/browser/resources/home.fla
new file mode 100644
index 0000000..f8d095a
--- /dev/null
+++ b/WebContent/src/modules/conference/browser/resources/home.fla
Binary files differ
diff --git a/WebContent/src/modules/conference/browser/resources/home.png b/WebContent/src/modules/conference/browser/resources/home.png
new file mode 100644
index 0000000..39d1123
--- /dev/null
+++ b/WebContent/src/modules/conference/browser/resources/home.png
Binary files differ
diff --git a/WebContent/src/modules/conference/browser/resources/next.fla b/WebContent/src/modules/conference/browser/resources/next.fla
new file mode 100644
index 0000000..13c844e
--- /dev/null
+++ b/WebContent/src/modules/conference/browser/resources/next.fla
Binary files differ
diff --git a/WebContent/src/modules/conference/browser/resources/next.png b/WebContent/src/modules/conference/browser/resources/next.png
new file mode 100644
index 0000000..7241532
--- /dev/null
+++ b/WebContent/src/modules/conference/browser/resources/next.png
Binary files differ
diff --git a/WebContent/src/modules/conference/browser/resources/pre.fla b/WebContent/src/modules/conference/browser/resources/pre.fla
new file mode 100644
index 0000000..74da78f
--- /dev/null
+++ b/WebContent/src/modules/conference/browser/resources/pre.fla
Binary files differ
diff --git a/WebContent/src/modules/conference/browser/resources/pre.png b/WebContent/src/modules/conference/browser/resources/pre.png
new file mode 100644
index 0000000..7e526f5
--- /dev/null
+++ b/WebContent/src/modules/conference/browser/resources/pre.png
Binary files differ
diff --git a/WebContent/src/modules/conference/browser/resources/read.png b/WebContent/src/modules/conference/browser/resources/read.png
new file mode 100644
index 0000000..b41fa2b
--- /dev/null
+++ b/WebContent/src/modules/conference/browser/resources/read.png
Binary files differ
diff --git a/WebContent/src/modules/conference/browser/resources/refresh.fla b/WebContent/src/modules/conference/browser/resources/refresh.fla
new file mode 100644
index 0000000..dce3961
--- /dev/null
+++ b/WebContent/src/modules/conference/browser/resources/refresh.fla
Binary files differ
diff --git a/WebContent/src/modules/conference/browser/resources/refresh.png b/WebContent/src/modules/conference/browser/resources/refresh.png
new file mode 100644
index 0000000..b912672
--- /dev/null
+++ b/WebContent/src/modules/conference/browser/resources/refresh.png
Binary files differ
diff --git a/WebContent/src/modules/conference/browser/resources/run.fla b/WebContent/src/modules/conference/browser/resources/run.fla
new file mode 100644
index 0000000..65d073e
--- /dev/null
+++ b/WebContent/src/modules/conference/browser/resources/run.fla
Binary files differ
diff --git a/WebContent/src/modules/conference/browser/resources/run.png b/WebContent/src/modules/conference/browser/resources/run.png
new file mode 100644
index 0000000..c77b8d9
--- /dev/null
+++ b/WebContent/src/modules/conference/browser/resources/run.png
Binary files differ
diff --git a/WebContent/src/modules/conference/browser/test/conferenceBrowser_test.jsp b/WebContent/src/modules/conference/browser/test/conferenceBrowser_test.jsp
new file mode 100644
index 0000000..3172abe
--- /dev/null
+++ b/WebContent/src/modules/conference/browser/test/conferenceBrowser_test.jsp
@@ -0,0 +1,33 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html>
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+   
+      <link rel="SHORTCUT ICON" href="http://www.laszlosystems.com/favicon.ico">
+      <title>OpenLaszlo Application</title>
+	<script type="text/javascript" src="<%= request.getContextPath() %>/lps/includes/embed-compressed.js"></script>
+	</head>
+   	<body>
+	    <script type="text/javascript">
+              Lz.swfEmbed({url: 'conferenceBrowser_test.lzx?lzt=swf', bgcolor: '#ffffff', width: '100%', height: '100%', id: 'lzapp', accessible: 'false', wmode: 'transparent'});
+            </script>
+   </body>
+</html>
diff --git a/WebContent/src/modules/conference/browser/test/conferenceBrowser_test.lzx b/WebContent/src/modules/conference/browser/test/conferenceBrowser_test.lzx
new file mode 100644
index 0000000..81eed0e
--- /dev/null
+++ b/WebContent/src/modules/conference/browser/test/conferenceBrowser_test.lzx
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<canvas title="Browser Test" debug="true">
+	<include href="../../../../base/"/>
+	<include href="../conferenceBrowser.lzx"/>
+	
+	<conferenceBrowser name="cb" width="400" height6="800"/>
+</canvas>
diff --git a/WebContent/src/modules/conference/commonVideoComponentAdapter.lzx b/WebContent/src/modules/conference/commonVideoComponentAdapter.lzx
new file mode 100644
index 0000000..04ff32f
--- /dev/null
+++ b/WebContent/src/modules/conference/commonVideoComponentAdapter.lzx
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<class name="commonVideoComponentAdapter" extends="node">

+	

+

+    <handler name="oninit">

+    	var t = this;

+        canvas.videoComp_lc.lc_switchMicMuted = function(publicSID, tMute) {

+            if ($debug) Debug.write("lc_switchMicMuted", publicSID, tMute);

+            canvas.thishib.switchMicMuted.setMute(publicSID, tMute);

+        };

+        canvas.videoComp_lc.lc_giveExclusiveAudio = function(publicSID) {

+            if ($debug) Debug.write("lc_giveExclusiveAudio", publicSID);

+            canvas.thishib.giveExclusiveAudio.setExclusiveAudio(publicSID);

+        };

+        canvas.videoComp_lc.as3ConnectionSuccess = function() {

+        	//FIXME: Throws a Null Pointer Exception if the parent view was already destroyed

+        	t.parent.as3ConnectionSuccess();

+        }

+		canvas.videoComp_lc.onInterviewPodCount = function(count) {

+			//if ($debug) Debug.write(":::: onInterviewPodCount", count);

+			if (canvas._drawarea["onInterviewPodCount"]) {

+				canvas._drawarea.onInterviewPodCount(count);

+			}

+		}

+    </handler>

+    

+    <!---

+        Show the popup with the possibility to choose the device settings

+        @param isSyncUpdate show the popup also if the user has clicked the "do not show again" chceckbox

+        @param interviewPodId the view id

+        @param tx x-position

+        @param ty y-position

+        @param twidth width-position

+        @param theight height-position

+     -->

+    <method name="showDevicePopUpInterview" args="isSyncUpdate,interviewPodId,tx,ty,twidth,theight">

+    	if ($debug) Debug.write("showDevicePopUpInterview ",isSyncUpdate,interviewPodId,tx,ty,twidth,theight);

+        canvas.sendViaLocalConnection(canvas.vid_lc_name, "createEditRecordStream", [isSyncUpdate, true, interviewPodId]);

+    </method>

+    

+    <!---

+        Show the popup with the possibility to choose the device settings

+        @param isSyncUpdate show the popup also if the user has clicked the "do not show again" chceckbox

+     -->

+    <method name="showDevicePopUp" args="isSyncUpdate">

+    	if ($debug) Debug.write("showDevicePopUp ",isSyncUpdate);

+        canvas.sendViaLocalConnection(canvas.vid_lc_name, "createEditRecordStream", [isSyncUpdate, false, -1]);

+    </method>

+    

+    <!---

+        Invoked after the user enters the room to connect the SWF10 app to the server via rtmp(t/s)

+     -->

+    <method name="reconnectSuccess" args="isInterview">

+    	if ($debug) Debug.write("Send reconnectSuccess to ",canvas.rtmp_lc_name);

+    	canvas.sendViaLocalConnection(canvas.rtmp_lc_name, "reconnectSuccess", [canvas.thishib.src, canvas.publicSID

+    		, hib.userobject, isInterview, canvas.getHttpHost(), canvas.red5httpport]);

+    </method>

+    

+    <handler name="onismoderator" reference="canvas" args="m">

+        canvas.sendViaLocalConnection(canvas.vid_lc_name, "ismoderatorChanged", [m]);

+    </handler>

+

+    <!---

+        Creates video object

+    -->

+    <method name="createVideo" args="publicSID,displayName,broadcastId,avsettings,interviewPodId,object">

+        canvas.sendViaLocalConnection(canvas.vid_lc_name, "createVideo", [publicSID, displayName, broadcastId, avsettings, interviewPodId, object]);

+    </method>

+

+    <method name="createVideoObject" args="publicSID,isBroadcasting,interviewPodId,object">

+        canvas.sendViaLocalConnection(canvas.vid_lc_name, "createVideoObject", [publicSID, isBroadcasting, interviewPodId,object]);

+    </method>

+

+    <!---

+        invoked whenever a User starts to Stream Video in this Room,

+        interviewPodId has only a meaning in the Room Type Interview

+     -->

+    <method name="startStream" args="publicSID,broadcastId,firstname,lastname,interviewPodId,vWidth,vHeight">

+        canvas.sendViaLocalConnection(canvas.vid_lc_name, "startStream", [publicSID,broadcastId,firstname,lastname,interviewPodId,vWidth,vHeight]);

+    </method>

+

+    <!---

+        invoked remotely by Red5-notification

+        shows a green light if somebody is speaking

+        @param string broadcastId broadcastId

+        @param boolean bool show light on/off

+    -->

+    <method name="setSpeakingByPos" args="publicSID,bool">

+        canvas.sendViaLocalConnection(canvas.vid_lc_name, "setSpeakingByPos", [publicSID, bool]);

+    </method>

+

+    <!---

+        stops the streaming but does not destroy the view

+        @param int broadcastId broadcastId

+     -->

+    <method name="closeStreamClient" args="publicSID">

+        canvas.sendViaLocalConnection(canvas.vid_lc_name, "closeStreamClient", [publicSID]);

+    </method>

+

+    <!---

+        stops the streaming but and destroys the view

+        @param int broadcastId broadcastId

+     -->

+    <method name="disconnectclient" args="publicSID">

+        canvas.sendViaLocalConnection(canvas.vid_lc_name, "disconnectclient", [publicSID]);

+    </method>

+

+    <method name="resetAllValues">

+        canvas.sendViaLocalConnection(canvas.vid_lc_name, "resetAllValues",null);

+    </method>

+

+    <!---

+     invoked if another client logs into the room

+    after choosing devices -->

+    <method name="setAVSettingsToClient" args="rcl">

+        canvas.sendViaLocalConnection(canvas.vid_lc_name, "setAVSettingsToClient", [rcl]);

+    </method>

+

+    <method name="createEditRecordStream" args="syncUpdate"><![CDATA[

+        //this.syncUpdate = syncUpdate;

+        //h.getBroadCastId.doCall();

+        canvas.sendViaLocalConnection(canvas.vid_lc_name, "createEditRecordStream", [syncUpdate]);

+    ]]></method>

+

+    <method name="removeVideoByUser" args="publicSID">

+        canvas.sendViaLocalConnection(canvas.vid_lc_name, "removeVideoByUser", [publicSID]);

+    </method>

+

+    <!--

+        Mutes/unmutes a sound of user's video

+        with the publicSID

+    -->

+    <method name="muteSound" args="publicSID, bool">

+    	if ($debug) Debug.write("muteSound :: ",publicSID,bool);

+        canvas.sendViaLocalConnection(canvas.vid_lc_name, "muteSound", [publicSID, bool]);

+    </method>

+

+    <method name="giveExclusiveAudio" args="publicSID">

+    	if ($debug) Debug.write("giveExclusiveAudio :: ",publicSID);

+        canvas.sendViaLocalConnection(canvas.vid_lc_name, "giveExclusiveAudio", [publicSID]);

+    </method>

+

+    <!---

+        Updates microphone's state of roomClient

+    -->

+    <method name="updateMuteStatusVideoView" args="roomClient">

+    	if ($debug) Debug.write("updateMuteStatusVideoView :: ",roomClient);

+        canvas.sendViaLocalConnection(canvas.vid_lc_name, "updateMuteStatusVideoView", [roomClient]);

+    </method>

+

+    <!---

+        Shows the window with device settings

+    -->

+    <method name="changeDevice">

+    	if ($debug) Debug.write("changeDevice :: ");

+        canvas.sendViaLocalConnection(canvas.vid_lc_name, "changeDevice", null);

+    </method>

+

+    <!---

+        Shows the exit dialog

+    -->

+    <method name="exitRoom">

+    	if ($debug) Debug.write("exitRoom :: ");

+        canvas.sendViaLocalConnection(canvas.vid_lc_name, "exitRoom", null);

+    </method>

+

+    <!---

+        Shows the close whiteboard dialog

+    -->

+    <method name="closeWhiteboard">

+    	if ($debug) Debug.write("closeWhiteboard :: ");

+        canvas.sendViaLocalConnection(canvas.vid_lc_name, "closeWhiteboard", null);

+    </method>

+</class>

+

+</library>

diff --git a/WebContent/src/modules/conference/commonVideoViewContent.lzx b/WebContent/src/modules/conference/commonVideoViewContent.lzx
new file mode 100644
index 0000000..6f8f018
--- /dev/null
+++ b/WebContent/src/modules/conference/commonVideoViewContent.lzx
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+
+<class name="commonVideoViewContent" extends="view">
+
+    <!--
+		This method returns a free position for a new video object
+		@param horizontal offset between two video objects
+	 -->
+    <method name="getVideoObjectFreePos" args="offsetLength,videoWidth,videoHeight">
+        <![CDATA[
+            var newx = 20;
+            var newy = 0;
+            var posFound = false;
+            while (!posFound) {
+                posFound = true;
+                for (var i=0;i<this.subviews.length;i++){
+                    var subview = this.subviews[i];
+                    var left = subview.x;
+                    var right = subview.x + subview.width;
+                    var top = subview.y;
+                    var bottom = subview.y + subview.height;
+
+                    if( !(newx > right
+                        || (newx + videoWidth) < left
+                        || newy > bottom
+                        || (newy + videoHeight) < top ))
+                    {
+                        newx = right + offsetLength;
+                        posFound = false;
+                    }
+                    if ((newx + videoWidth) >= canvas.width) {
+                        newx = 20;
+                        newy += 10;
+                        posFound = false;
+                    }
+                }
+            }
+
+            if ((newy + videoHeight) >= canvas.height) {
+                newy = 0;
+            }
+
+            var result = [newx, newy];
+            return result;
+        ]]>
+    </method>
+
+</class>
+
+<class name="commonVideoViewContentHideWhiteboard" extends="view">
+
+    <!--
+		This method returns a free position for a new video object
+		@param horizontal offset between two video objects
+	 -->
+    <method name="getVideoObjectFreePos" args="offsetLength,videoWidth,videoHeight">
+        <![CDATA[
+            var newx = 20;
+            var newy = 0;
+            var posFound = false;
+            while (!posFound) {
+                posFound = true;
+                for (var i=0;i<this.subviews.length;i++){
+                    var subview = this.subviews[i];
+                    var left = subview.x;
+                    var right = subview.x + subview.width;
+                    var top = subview.y;
+                    var bottom = subview.y + subview.height;
+
+                    if( !(newx > right
+                        || (newx + videoWidth) < left
+                        || newy > bottom
+                        || (newy + videoHeight) < top ))
+                    {
+                        newx = right + offsetLength;
+                        posFound = false;
+                    }
+                    if ((newx + videoWidth) >= this.width) {
+                        newx = 20;
+                        newy += 10;
+                        posFound = false;
+                    }
+                }
+            }
+
+            if ((newy + videoHeight) >= parent.height) {
+                newy = 0;
+            }
+
+            var result = [newx, newy];
+            return result;
+        ]]>
+    </method>
+
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/conference/conferenceMenubar.lzx b/WebContent/src/modules/conference/conference/conferenceMenubar.lzx
new file mode 100644
index 0000000..09e6398
--- /dev/null
+++ b/WebContent/src/modules/conference/conference/conferenceMenubar.lzx
@@ -0,0 +1,259 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<class name="restrictedConferenceMenubar" extends="conferenceMenubar" viewType="restricted" />
+
+	<class name="interviewConferenceMenubar" extends="conferenceMenubar" viewType="interview"/>
+	
+	<class name="conferenceMenubar" extends="view" height="28" width="${ canvas.width }" 
+						bgcolor="$once{ canvas.getThemeColor('styleMenuBarBaseColor') }" >
+						
+		<attribute name="viewType" value="conference" type="string" />
+						
+	    <attribute name="selected" value="null" />
+    
+	    <method name="sendOpenMenu" args="menuref">
+	    	if (this.selected != null) {
+	    		this.selected.setAttribute("selected",false);
+	    	}
+	    	this.selected = menuref;
+	    	this.selected.setAttribute("selected",true);
+	    </method>
+			
+		<view name="itemlist" layout="axis:x;spacing:0" >
+			
+			<conferenceExitButton name="_exitbtn" 
+				text_y_inset="4" text_fontsize="14" down_y_inset="8" height="28" />
+				
+			<baseMenuMeetingsItem text="$once{ canvas.getLabelName(245) }" 
+						text_y_inset="4" text_fontsize="14" down_y_inset="8"
+						textToolTip="" height="28"
+						visible="${ (classroot.viewType=='interview') ? false : ((canvas.ismoderator) ? true : ((canvas.isAllowedToDraw) ? true : false )) }"
+						>
+				<handler name="onclick">
+			    	new lz.conferenceMenuFiles(canvas,{
+			    				x:this.getAttributeRelative("x",canvas),
+			    				y:this.getAttributeRelative("y",canvas)+this.height,
+			    				btnRef:this,
+			    				list:this.list
+			    			});
+			        this.parent.parent.sendOpenMenu(this);
+			    </handler>
+			</baseMenuMeetingsItem>
+			
+			<baseMenuMeetingsItem text="$once{ canvas.getLabelName(635) }" 
+						text_y_inset="4" text_fontsize="14" down_y_inset="8"
+						textToolTip="" height="28"
+						visible="${ canvas.currentRoomObj.hideActionsMenu ? false : ((classroot.viewType=='conference') ? true : (canvas.ismoderator ? true : (canvas.isAllowedToDraw ? true : false ))) }"
+						>
+				<handler name="onclick">
+			    	new lz.conferenceMenuActions(canvas,{
+			    				x:this.getAttributeRelative("x",canvas),
+			    				y:this.getAttributeRelative("y",canvas)+this.height,
+			    				btnRef:this
+			    			});
+			        this.parent.parent.sendOpenMenu(this);
+			    </handler>
+			</baseMenuMeetingsItem>
+			
+		</view>
+	
+	</class> 
+	
+	<class name="conferenceExitButton" extends="view" height="34" width="${ this._ctext.width+36 }" >
+	
+	    <attribute name="text_y_inset" value="6" type="number" />
+	    <attribute name="text_fontsize" value="14" type="number" />
+	    
+	    <attribute name="down_y_inset" value="10" type="number" />
+	    
+	    <handler name="onmouseover">
+            this.bgc.setAttribute('visibility','visible');
+	    </handler>
+	    <handler name="onmouseout">
+            this.bgc.setAttribute('visibility','hidden');
+	    </handler>
+	    
+	    <handler name="oninit">
+			<![CDATA[
+				if (canvas.isRemoteUser()) {
+	            	if ($debug) Debug.write("this mbarcontent ",this);
+	            	if (canvas.destroyExitButton) {
+	                    this.destroy();
+	            	}
+	            }
+            ]]>
+		</handler>
+		<handler name="onclick">
+            canvas._videocontainer._videoviewcontent.exitRoom();
+		</handler>
+	    
+	    <view width="${ parent.width-1 }" bgcolor="0xFFFFFF" opacity="0.4" height="$once{ parent.height - 2}" y="1"
+	        visibility="hidden" name="bgc"/>
+	        
+	    <image src="$once{ canvas.getThemeImage( 'exit_btn_rsc' ) }" y="4" x="4" />
+	    
+	    <view width="1" height="${ parent.height }" y="0" bgcolor="0xEEEEEE" x="${ parent.width-1 }" />
+	    
+	    <labelText labelid="789" name="_ctext" fontstyle="plain" fgcolor="0xFFFFFF"
+	        	fontsize="$once{ parent.text_fontsize }" y="$once{ parent.text_y_inset }" x="30" />
+	
+	    <labelTooltip name="_textToolTip" labelid="309" multiline="false" />
+	    
+	</class>
+	
+	
+	
+	<class name="conferencDropDownMenuItem" extends="view" height="36">
+	
+		<attribute name="isSpacer" value="false" type="boolean" />
+	
+		<attribute name="enabled" type="boolean" setter="this.setEnabled(enabled)" />
+		
+		<method name="setEnabled" args="e">
+			this.enabled = e;
+			if (!this.isinited) {
+				return;
+			}
+			if (this.enabled) {
+				this._ctext.setAttribute("fgcolor",canvas.getThemeColor('menuTextColor'));
+				this._ctextTooltip.setAttribute("fgcolor",canvas.getThemeColor('menuTextColor'));
+			} else {
+				this._ctext.setAttribute("fgcolor",canvas.getThemeColor('menuTextDisabledColor'));
+				this._ctextTooltip.setAttribute("fgcolor",canvas.getThemeColor('menuTextDisabledColor'));
+			}
+			if (this.command) {
+				this.command.enabled = this.enabled;
+			}
+		</method>
+		
+		<attribute name="labelid" type="number"
+                   setter="this.setLabelId( labelid )"   when="once" />
+                   
+		<method name="setLabelId" args="id" >
+            this.labelid = id;
+            if ( this.labelid ) {
+                this._ctext.setAttribute('text', canvas.getLabelName(this.labelid));
+            }
+        </method>
+		
+		<attribute name="command" type="expression"
+                   setter="this.setCommand( command )"   when="once" />
+		
+		<method name="setCommand" args="cmd" >
+            this.command = cmd;
+            if ( this.command ) {
+                this._ctextTooltip.setAttribute('text',canvas.getLabelName(command.tipLabelId));
+            }
+        </method>
+        
+        <handler name="onclick">
+        	if (!this.enabled) {
+        		return;
+        	}
+        	this.command.execute(null);
+        	parent.parent.close();
+        </handler>
+        
+        <handler name="onmouseover">
+	        this._bg.setAttribute("visibility","visible");
+	    </handler>
+	    
+	    <handler name="onmouseout">
+	        this._bg.setAttribute("visibility","hidden");
+	    </handler>
+	
+	    <view name="_bg" visibility="hidden" width="${ parent.width-2 }" y="0" x="1"
+	          bgcolor="0xFFFFFF" opacity="0.5" height="36" />
+	    
+	    <text name="_ctext" fontstyle="bold" fgcolor="0x666666"
+	        	fontsize="14" y="2" x="10" />
+	        	
+	    <text name="_ctextTooltip" fontstyle="plain" fgcolor="0x666666"
+	        	fontsize="10" y="20" x="10" />	
+		
+	</class> 
+	
+	<class name="conferenceMenuFiles" extends="baseDropDownMenuList"
+			height="${ this._content.height+2 }" width="${ this._content.width+2 }">
+			
+		<view name="_content" x="1" y="1" 
+			layout="axis:y;spacing:1" bgcolor="$once{ canvas.getThemeColor('menuBackgroundColor') }" >
+			
+			<conferencDropDownMenuItem labelid="15" command="cmd_importFile"
+						enabled="${ canvas.ismoderator }" />
+			
+		</view>
+		
+	</class>
+	
+	<class name="conferenceMenuActions" extends="baseDropDownMenuList"
+			height="${ this._content.height+2 }" width="${ this._content.width+2 }">
+			
+		<handler name="oninit">
+	        this.fixWidth();
+		</handler>
+			
+		<view name="_content" x="1" y="1" 
+			layout="axis:y;spacing:1" bgcolor="$once{ canvas.getThemeColor('menuBackgroundColor') }" >
+			
+			<conferencDropDownMenuItem labelid="213" command="cmd_invitation" 
+						enabled="${ canvas.ismoderator }" />
+			<horizontalDropDownSpacer />
+			<conferencDropDownMenuItem labelid="239" command="cmd_shareDesktop" 
+						enabled="${ classroot.btnRef.classroot.viewType != 'interview' &amp;&amp; canvas.ismoderator }" />			
+			<horizontalDropDownSpacer />
+			<conferencDropDownMenuItem labelid="784" command="cmd_applyforMod"
+						enabled="${ !canvas.ismoderator }" />	
+			<horizontalDropDownSpacer />
+			<conferencDropDownMenuItem labelid="785" command="cmd_applyforWhiteBoard"
+						enabled="${ !canvas.ismoderator }" />	
+			<horizontalDropDownSpacer />
+			<conferencDropDownMenuItem labelid="786" command="cmd_applyforAV"
+						enabled="${ !canvas.ismoderator }" />				
+			<horizontalDropDownSpacer />
+			<conferencDropDownMenuItem labelid="24" command="cmd_createPoll" 
+						enabled="${ canvas.ismoderator }" />
+			<horizontalDropDownSpacer />			
+			<conferencDropDownMenuItem labelid="37" command="cmd_pollResults" 
+						enabled="true" />
+			<horizontalDropDownSpacer />
+			<conferencDropDownMenuItem labelid="42" command="cmd_checkPollVoted" 
+						 enabled="${ canvas.user_id != -1 }" />
+			<horizontalDropDownSpacer
+						 visible="$once{ canvas.RED5_SIP_ENABLE == 'yes' &amp;&amp; canvas.currentRoomObject.sipEnabled }" />
+            <conferencDropDownMenuItem labelid="1447" command="cmd_showSipDialer" 
+            			 visible="$once{ canvas.RED5_SIP_ENABLE == 'yes' &amp;&amp; canvas.currentRoomObject.sipEnabled }"
+            			 enabled="$once{ canvas.RED5_SIP_ENABLE == 'yes' &amp;&amp; canvas.currentRoomObject.sipEnabled }"/>
+            <horizontalDropDownSpacer />
+			<conferencDropDownMenuItem labelid="1126" command="cmd_editWhiteboardDefault" 
+						 enabled="true"/>
+			<!-- Save Whiteboard as Image menues are commented for now
+            <horizontalDropDownSpacer />
+			<conferencDropDownMenuItem labelid="560" command="cmd_exportFileSVG" enabled="true"/>
+			<conferencDropDownMenuItem labelid="561" command="cmd_exportFilePNG" enabled="true"/>
+			<conferencDropDownMenuItem labelid="562" command="cmd_exportFileJPG" enabled="true"/>
+			-->
+		</view>
+		
+	</class>
+</library>
diff --git a/WebContent/src/modules/conference/conference/library.lzx b/WebContent/src/modules/conference/conference/library.lzx
new file mode 100644
index 0000000..bc15f04
--- /dev/null
+++ b/WebContent/src/modules/conference/conference/library.lzx
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+	<include href="roomListItem.lzx" />
+	<include href="roomListDetails.lzx" />
+    <include href="conferenceMenubar.lzx" />
+
+</library>
diff --git a/WebContent/src/modules/conference/conference/roomListDetails.lzx b/WebContent/src/modules/conference/conference/roomListDetails.lzx
new file mode 100644
index 0000000..1db94ba
--- /dev/null
+++ b/WebContent/src/modules/conference/conference/roomListDetails.lzx
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<class name="userRoomTabItem" extends="view" 
+	   width="$once{ parent.width }" >
+
+	<attribute name="user_id" value="0" type="number" />
+	<attribute name="username" value="" type="string" />
+	<attribute name="usertime" value="" type="string" />
+	<attribute name="cbtext" value="" type="string" />
+	
+	<handler name="oninit">
+		<![CDATA[
+	        var downloadurl = canvas.getUrl() + 'DownloadHandler?fileName=CHAT'
+	        		+'&moduleName=chat&parentPath=&room_id='
+	        		+'&remoteUserid='+this.user_id
+	        		+'&sid='+canvas.sessionId;
+	        		
+	        if ($debug) Debug.write("downloadurl "+downloadurl);
+	        this._userpic.setAttribute('src',downloadurl);	
+	        
+	        if ($debug) Debug.write("TIME: "+this.usertime);
+	        
+        ]]>
+	</handler>
+	
+	<image name="_userpic" />
+
+	<text text="$once{ parent.username }" x="40"
+		  width="$once{ parent.width - 40 }"
+		  selectable="true" />
+	
+	<text text="$once{ parent.usertime }" x="40" y="20" />
+
+</class>
+
+<class name="roomListDetails" extends="view" >
+
+	<attribute name="roomid" value="0" type="number" />
+	<attribute name="roomname" value="" type="string" />
+	<attribute name="roomcomment" value="" type="string" />
+	<attribute name="currentusers" value="null" />
+	
+	
+	<method name="doinit" args="currentusers,roomid,roomname,roomcomment">
+		<![CDATA[
+			if ($debug) Debug.write("doinit",currentusers,roomid,roomname);
+			this.setAttribute('currentusers',currentusers);
+			this.setAttribute('roomid',roomid);
+			this.setAttribute('roomname',roomname);
+			this.setAttribute('roomcomment',roomcomment);
+			this._roomname.setAttribute('text',canvas.getLabelName(406)+" "+roomname);
+			this._roomcomment.setAttribute('text', roomcomment);
+			this._users.clearList();
+			if (this.currentusers != null) {
+				for (var i = 0;i<this.currentusers.length;i++){
+					var username = this.currentusers[i].firstname + " "
+							+ this.currentusers[i].lastname
+							+ " (" + this.currentusers[i].username + ") ";
+					 new lz.userRoomTabItem(this._users._users._cbtext,{user_id:this.currentusers[i].user_id,username:username,usertime:canvas.getLabelName(408)+parseDateToStringTime(this.currentusers[i].roomEnter)});
+				}
+			}
+			this.bdatum.setAttribute("visibility", "hidden");
+    		this.edatum.setAttribute("visibility", "hidden");
+    		this.l_bdatum.setAttribute("visibility", "hidden");
+    		this.l_edatum.setAttribute("visibility", "hidden");
+    		if (roomid > 0) {
+				this.getAppointmentData.doCall();
+			}
+		]]>
+	</method>
+	
+	<!-- Retrieving Appointmentdata for Meeting -->
+	<netRemoteCallHib name="getAppointmentData" remotecontext="$once{ canvas.thishib }" 
+		funcname="conferenceservice.getAppointMentDataForRoom" >   
+		<netparam><method name="getValue">return parent.parent.roomid;</method></netparam>
+		<handler name="ondata" args="value">	
+		    <![CDATA[
+		    	if ($debug) Debug.write("getAppointmentData: ",value);
+		    	
+		    	if(value!=null){
+		    		
+		    		if ($debug) Debug.write("Appointment Name : " + value.title);
+		    		parent.bdatum.setAttribute('text',""+value.start);
+		    		parent.edatum.setAttribute('text',""+value.end);
+		    		
+		    		
+		    		parent.bdatum.setAttribute("visibility","visible");
+		    		parent.edatum.setAttribute("visibility","visible");
+		    		parent.l_bdatum.setAttribute("visibility","visible");
+		    		parent.l_edatum.setAttribute("visibility","visible");
+		    		
+		    		if ($debug) Debug.write("Appointment Start : " + value.start);
+		    		if ($debug) Debug.write("Appointment End : " + value.end);
+		    		
+		    	} else{
+		    		
+		    		parent.bdatum.setAttribute('text','');
+		    		parent.edatum.setAttribute('text','');
+		    		
+		    		parent.bdatum.setAttribute("visibility", "hidden");
+		    		parent.edatum.setAttribute("visibility", "hidden");
+		    		parent.l_bdatum.setAttribute("visibility", "hidden");
+		    		parent.l_edatum.setAttribute("visibility", "hidden");
+		    		
+		    	}
+		    ]]>	        	          				
+		</handler>	
+	</netRemoteCallHib> 	
+	
+	<netRemoteCallHib name="getRoomClientsListByRoomId" funcname="conferenceservice.getRoomClientsListByRoomId" 
+		remotecontext="$once{ canvas.thishib }" >   
+		<netparam><method name="getValue">return parent.parent.roomid;</method></netparam>
+		<handler name="ondata" args="value">	
+		    <![CDATA[
+		    	if ($debug) Debug.write("getRoomClientsListByRoomId: ",value);
+		    	parent.currentusers = value;
+		    	parent.doinit();
+		    ]]>	        	          				
+		</handler>	
+	</netRemoteCallHib>   	
+	
+	<labelText labelid="404" fontstyle="italic" width="200" />
+	
+	<labelText name="_roomname" labelid="406" y="20" width="200" />
+	
+	<labelText name="l_bdatum" labelid="570" y="40" width="50" visible="false" />
+	<labelText name="bdatum" y="40" x="75" width="100" text="" visible="false" /> 	            	
+
+	<labelText name="l_edatum" labelid="571" y="60" width="50" visible="false" />
+	<labelText name="edatum" y="60" x="75" width="100" text="" visible="false" />
+
+	<labelText name="_roomcomment" x="75" y="${parent.l_edatum.y + (parent.l_edatum.visible ? 30 : 0)}" width="100" text=""/>
+	<labelText labelid="270" y="${parent._roomcomment.y}" width="50" />
+
+	<labelText name="user_label" labelid="407" y="${10 + parent._roomcomment.y + parent._roomcomment.height}" width="200" />
+	<view name="_users" width="300" y="${30 + parent._roomcomment.y + parent._roomcomment.height}"
+				height="${ parent.height - parent._users.y }" bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }">
+		<method name="clearList">
+			for (var eg in this._users._cbtext.subviews) 
+				this._users._cbtext.subviews[eg].destroy();
+		</method>
+		<view name="_users" width="299" height="${ parent.height - 1 }" bgcolor="0xFFFFFF" 
+			  x="1" y="1" clip="true" >
+			<view name="_cbtext" width="286" layout="axis:y;spacing:2" />
+			<om_vscrollbar />
+		</view>
+	</view>
+	
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/conference/roomListItem.lzx b/WebContent/src/modules/conference/conference/roomListItem.lzx
new file mode 100644
index 0000000..e9776d9
--- /dev/null
+++ b/WebContent/src/modules/conference/conference/roomListItem.lzx
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<class name="roomListItem" extends="view" bgcolor="$once{ canvas.bgColorMenuItems }" 
+		   height="50" onmouseover="" onmouseout="" width="478" >
+
+		<attribute name="ispublic" value="false" type="boolean" />
+		<attribute name="isaudience" value="false" type="boolean" />
+		<attribute name="obj" value="null" />
+		<attribute name="roomid" value="0" type="number" />
+		<attribute name="starttime" value="" type="string" />
+		<attribute name="roomname" value="" type="string" />
+		<attribute name="roomcomment" value="" type="string" />
+
+		<attribute name="roomClassName" value="conferenceView" type="string" />
+		<attribute name="currentusers" value="null" />
+
+		<attribute name="maxUsers" value="4" type="number" />
+		
+		<attribute name="roomType" value="0" type="number" />
+
+		<attribute name="checkForMaxUsers" value="false" type="boolean" />
+
+		<handler name="oninit">
+		<![CDATA[
+
+		    if (obj != null) {
+    			//if ($debug) Debug.write("obj: ",obj);
+    			if (this.ispublic) {
+    				this.maxUsers = obj.numberOfPartizipants;
+    			} else {
+    				this.maxUsers = obj.room.numberOfPartizipants;
+    			}
+    			this._users.setAttribute('text', canvas.getLabelName(398) + ' '
+    							+ this.currentusers.length + " / " + this.maxUsers);
+    			var tString = canvas.getLabelName(401) + "<br/>";
+    			for (var i = 0; i < this.currentusers.length; i++) {
+    				tString += this.currentusers[i].firstname + " "
+    						+ this.currentusers[i].lastname + " ("
+    						+ this.currentusers[i].username + ") "
+    						+ canvas.getLabelName(399)
+    						+ parseDateToStringTime(this.currentusers[i].roomEnter)
+    						+ " <br/>";
+    			}
+    			this._labeltooltip.setAttribute('text', tString);
+		    }
+		]]>
+		</handler>
+
+		<handler name="onclick">
+			if (obj != null) {
+    			canvas.isConference = !this.isaudience;
+    			if (this.isaudience)
+    				connectedIsAudience = '_' + 'audi';
+    			if (this.ispublic) {
+    				hib.conferencedomain = "public";
+    				hib.currentroomid = this.obj.rooms_id;
+    			} else {
+    				hib.conferencedomain = this.obj.organisation.organisation_id;
+    				hib.currentroomid = this.obj.room.rooms_id;
+    			}
+			}
+			parent.parent.parent.parent.parent._roomlistdetails.doinit(
+    					this.currentusers, this.roomid, this.roomname, this.roomcomment);
+		</handler>
+
+		<method name="checkMaxUsers">
+		<![CDATA[
+			if (this.currentusers == null || this.currentusers.length < this.maxUsers) {
+				this.enterRoom();
+			} else {
+				new lz.labelerrorPopup(canvas,{errorlabelid:99});
+				//new lz.rpcErrorDialog(canvas.main_content._content.inner, {
+				//			errorid : 30
+				//		});
+			}
+		]]>
+		</method>
+		
+		<method name="enterRoom">
+			if (this.obj == null) {
+				this.getRoomByOwnerAndType.doCall();
+			} else {
+				this.initRoom();
+			}
+		</method>
+		
+		<netRemoteCallHib name="getRoomByOwnerAndType" funcname="conferenceservice.getRoomByOwnerAndType"
+            remotecontext="$once{ canvas.thishib }" >
+			<netparam><method name="getValue">return canvas.sessionId;</method></netparam>  
+            <netparam> <method name="getValue">return parent.parent.roomType;</method></netparam>
+            <netparam> <method name="getValue">return parent.parent.roomname;</method></netparam>
+            <handler name="ondata" args="value">
+            <![CDATA[
+                if ($debug) Debug.write("getRoomByOwnerAndType: ", value);
+                if (value != null) {
+                    parent.obj = value;
+                    parent.enterRoom();
+                }
+            ]]>
+            </handler>
+        </netRemoteCallHib>
+
+		<method name="initRoom">
+			if ($debug) Debug.write("roomListItem::initRoom ", this);
+			
+			canvas.isConference = !this.isaudience;
+			if (this.isaudience)
+				connectedIsAudience = '_' + 'audi';
+			if (this.ispublic) {
+				var roomObj = this.obj;
+				hib.conferencedomain = "public";
+				hib.currentroomid = this.obj.rooms_id;
+				//Debug.write("ispublic");
+			} else {
+				var roomObj = this.obj.room;
+				hib.conferencedomain = this.obj.organisation.organisation_id;
+				hib.currentroomid = this.obj.room.rooms_id;
+				//Debug.write("non ispublic");
+			}
+			
+			if (this.roomType == 1) {
+				this.roomClassName = canvas.conferenceRoomModule;
+			} else if (this.roomType == 2) {
+				new lz.labelerrorPopup(canvas,{error:'No RoomType currently available for roomTypeId 2'});
+				this.roomClassName = canvas.restrictedRoomModule;
+			} else if (this.roomType == 3) {
+                this.roomClassName = canvas.restrictedRoomModule;
+            } else if (this.roomType == 4) {
+                this.roomClassName = canvas.interviewRoomModule;
+            } else if (this.roomType == 5) {
+                this.roomClassName = canvas.customRoomModule;
+            } else {
+				if ($debug) Debug.warn("Not known RoomType: ",this.roomType);
+			}
+			//the conferencedomain is no more interesting, swagner 07.10.2009
+			//if ($debug) Debug.write("hib.conferencedomain: ", hib.conferencedomain);
+
+			if ($debug) Debug.write("Test Setup ",this.roomClassName);
+            
+			new lz.testSetup(canvas,{roomClassName:this.roomClassName,roomObj:roomObj});
+			
+		</method>
+
+		<netRemoteCallHib name="getRoomClientsListByRoomId" funcname="conferenceservice.getRoomClientsListByRoomId"
+			remotecontext="$once{ canvas.thishib }" >
+			<netparam> <method name="getValue">return parent.parent.roomid;</method></netparam>
+			<handler name="ondata" args="value">
+			<![CDATA[
+				if ($debug) Debug.write("getRoomClientsListByRoomId: ", value);
+				parent.currentusers = value;
+				parent.oninit.sendEvent();
+				if (parent.checkForMaxUsers) {
+					parent.checkMaxUsers();
+				}
+			]]>
+			</handler>
+		</netRemoteCallHib>
+
+		<labelText text="$once{ parent.roomname }" />
+
+		<labelText name="_users" y="26" />
+		<image name="_r" src="$once{ canvas.getThemeImage('reload_rsc') }" x="130" y="26"
+			onclick="parent.getRoomClientsListByRoomId.doCall()" >
+			<labelTooltip labelid="402" />
+		</image>
+  
+		<method name="checkConditionsWhenButtonClicked" args="_clicked">
+		<![CDATA[
+			if (parent.parent.parent.parent.parent.parent.parent.parent.finishedTabsQuantity < 3) {
+				parent.parent.parent.parent.parent.parent.parent.parent.clickedButton = _clicked;
+			} else {
+				checkForMaxUsers = true;
+				getRoomClientsListByRoomId.doCall();
+			}
+		]]>
+		</method>
+
+		<simpleLabelButton labelid="131" x="364" width="100" height="24" y="24"
+			onclick="parent.checkConditionsWhenButtonClicked(this)">
+		</simpleLabelButton>
+		
+		<labelTooltip multiline="true" name="_labeltooltip" />
+
+	</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/activitylist/activityList.lzx b/WebContent/src/modules/conference/flexibleConferenceRoom/activitylist/activityList.lzx
new file mode 100644
index 0000000..4759d21
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/activitylist/activityList.lzx
@@ -0,0 +1,582 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<class name="simplebaseItemActivityList" extends="view" height="40" bgcolor="$once{ canvas.getThemeColor('baseMouseOvercolorizer') }">
+    
+    <attribute name="message" value="" type="string" />
+    
+    <attribute name="rcl" value="null" />
+    
+    <attribute name="tStamp" value="null" />
+    
+    <method name="removeObject">
+        this.sendClearMessage(false);
+    </method>
+    
+    <method name="closeItem">
+        this._doHide.setAttribute('started', true);
+    </method>
+    
+    <method name="destroyItem">
+        this.destroy();
+        parent.scrollToMax();
+    </method>
+    
+    <method name="sendClearMessage" args="bool">
+        canvas.thishib.sendMessageWithClient.sendAdvMessage("hideActivityObj",bool,this.tStamp);
+    </method>
+    
+    <miniIcons resource="allow_deny_icon_rsc" visible="${ canvas.ismoderator }"
+               x="$once{ parent.width - 18 }" y="0">
+        <handler name="onclick">
+            this.parent.removeObject();
+        </handler>
+        <labelTooltip labelid="154" />
+    </miniIcons>   
+    
+    <animator name="_doHide" attribute="opacity" duration="1250" to="0" started="false">
+        <handler name="onstop">
+            parent.destroyItem();
+        </handler>
+    </animator>    
+    
+</class>	
+	
+<class name="baseItemActivityList" extends="view" height="40" bgcolor="$once{ canvas.getThemeColor('baseMouseOvercolorizer') }">
+	
+	<attribute name="message" value="" type="string" />
+	
+	<attribute name="labelidToolTipOkButton" value="1360" type="number" />
+	<attribute name="labelidToolTipDenyButton" value="1361" type="number" />
+    
+    <attribute name="rcl" value="null" />
+    
+    <attribute name="tStamp" value="null" />
+    
+    <method name="removeObject">
+        this.sendClearMessage(false);
+    </method>
+    
+    <method name="closeItem">
+    	this._doHide.setAttribute('started', true);
+    </method>
+    
+    <method name="destroyItem">
+        this.destroy();
+        parent.scrollToMax();
+    </method>
+    
+    <method name="sendClearMessage" args="bool">
+		canvas.thishib.sendMessageWithClient.sendAdvMessage("hideActivityObj",bool,this.tStamp);
+    </method>
+    
+    <miniIcons resource="allow_ok_icon_rsc" visible="${ canvas.ismoderator }"
+    		   x="$once{ parent.width - 18 }" >
+        <handler name="onclick">
+            this.parent.applyObject();
+        </handler>
+        <labelTooltip labelid="$once{ parent.parent.labelidToolTipOkButton }" />
+    </miniIcons> 
+               
+    <miniIcons resource="allow_deny_icon_rsc" visible="${ canvas.ismoderator }"
+    		   x="$once{ parent.width - 18 }" y="16">
+        <handler name="onclick">
+            this.parent.removeObject();
+        </handler>
+        <labelTooltip labelid="$once{ parent.parent.labelidToolTipDenyButton }" />
+    </miniIcons>   
+    
+    <animator name="_doHide" attribute="opacity" duration="1250" to="0" started="false">
+        <handler name="onstop">
+            parent.destroyItem();
+        </handler>
+    </animator>    
+	
+</class>
+
+<class name="activityListRestrictedRoomAV" extends="baseItemActivityList">
+    
+    <method name="applyObject">
+        canvas.thishib.setBroadCastingFlag.publicSIDOfNewModerator = this.rcl.publicSID;
+        canvas.thishib.setBroadCastingFlag.isAllowedToBroadCastAV = true;
+        canvas.thishib.setBroadCastingFlag.avsettings = "av";
+        canvas.thishib.setBroadCastingFlag.doCall(); 
+        this.sendClearMessage(true);
+    </method>   
+    
+    <view resource="av_allow_rsc" x="2" y="2" />
+    
+    <labelText text="$once{ parent.message }" multiline="true" x="40"
+               width="$once{ parent.width - 60 }"/>
+               
+</class>
+	
+<class name="activityListRestrictedRoomApplyForMuteOn" extends="baseItemActivityList" 
+	   labelidToolTipOkButton="1400">
+    
+    <method name="applyObject">
+        canvas.thishib.switchMicMuted.setMute(this.rcl.publicSID,true);
+        this.sendClearMessage(true);
+    </method>   
+    
+    <view resource="mute_btn_rsc" x="2" y="2" />
+    
+    <labelText text="$once{ parent.message }" multiline="true" x="40"
+               width="$once{ parent.width - 60 }"/>
+               
+</class>
+
+<class name="activityListRestrictedRoomApplyForGiveExclusiveAudioOn" extends="baseItemActivityList"
+	   labelidToolTipOkButton="1428">
+
+    <method name="applyObject">
+        canvas.thishib.setCanGiveAudio.sendValue(this.rcl.publicSID,true);
+        this.sendClearMessage(true);
+    </method>
+
+    <view resource="participants_exclusive_audio_rsc" x="2" y="2" />
+
+    <labelText text="$once{ parent.message }" multiline="true" x="20"
+               width="$once{ parent.width - 40 }"/>
+
+</class>
+	
+<class name="activityListRestrictedRoomApplyForMuteOff" extends="baseItemActivityList" 
+	   labelidToolTipOkButton="1401">
+	
+    <method name="applyObject">
+    	canvas.thishib.switchMicMuted.setMute(this.rcl.publicSID,false);
+        this.sendClearMessage(true);
+    </method>	
+	
+	<view resource="unmute_btn_rsc" x="2" y="2" />
+	
+	<labelText text="$once{ parent.message }" multiline="true" x="20"
+			   width="$once{ parent.width - 40 }"/>
+               
+</class>	
+
+<class name="activityListRestrictedRoomA" extends="baseItemActivityList">
+    
+    <method name="applyObject">
+        canvas.thishib.setBroadCastingFlag.publicSIDOfNewModerator = this.rcl.publicSID;
+        canvas.thishib.setBroadCastingFlag.isAllowedToBroadCastAV = true;
+        canvas.thishib.setBroadCastingFlag.avsettings = "a";
+        canvas.thishib.setBroadCastingFlag.doCall(); 
+        this.sendClearMessage(true);
+    </method>   
+    
+    <view resource="allow_audio_only_rsc" x="2" y="2" />
+    
+    <labelText text="$once{ parent.message }" multiline="true" x="20"
+               width="$once{ parent.width - 40 }"/>
+               
+</class>  
+    
+<class name="activityListRestrictedRoomV" extends="baseItemActivityList">
+    
+    <method name="applyObject">
+        canvas.thishib.setBroadCastingFlag.publicSIDOfNewModerator = this.rcl.publicSID;
+        canvas.thishib.setBroadCastingFlag.isAllowedToBroadCastAV = true;
+        canvas.thishib.setBroadCastingFlag.avsettings = "v";
+        canvas.thishib.setBroadCastingFlag.doCall(); 
+        this.sendClearMessage(true);
+    </method>   
+    
+    <view resource="allow_video_only_rsc" x="2" y="2" />
+    
+    <labelText text="$once{ parent.message }" multiline="true" x="20"
+               width="$once{ parent.width - 40 }"/>
+               
+</class>   
+
+<class name="activityListRestrictedRoomWhiteboard" extends="baseItemActivityList">
+    
+    <method name="applyObject">
+        canvas.thishib.setCanDraw.publicSID = this.rcl.publicSID;
+        canvas.thishib.setCanDraw.canDraw = true;
+        canvas.thishib.setCanDraw.doCall();
+        this.sendClearMessage(true);
+    </method>   
+    
+    <view resource="participants_allow_drawing_rsc" x="2" y="2" />
+    
+    <labelText text="$once{ parent.message }" multiline="true" x="20"
+               width="$once{ parent.width - 40 }"/>
+               
+</class>  
+
+<class name="activityListRestrictedRoomScreen" extends="baseItemActivityList">
+    
+    <method name="applyObject">
+        
+        canvas.thishib.setCanShare.publicSID = this.rcl.publicSID;
+        canvas.thishib.setCanShare.canShare = true;
+        canvas.thishib.setCanShare.doCall();
+        
+        this.sendClearMessage(true);
+    </method>   
+    
+    <view resource="screen_allow_rsc" x="2" y="2" />
+    
+    <labelText text="$once{ parent.message }" multiline="true" x="20"
+               width="$once{ parent.width - 40 }"/>
+               
+</class>  
+
+<class name="activityListRestrictedRoomRemote" extends="baseItemActivityList">
+    
+    <method name="applyObject">
+        
+        canvas.thishib.setCanRemote.publicSID = this.rcl.publicSID;
+        canvas.thishib.setCanRemote.canRemote = true;
+        canvas.thishib.setCanRemote.doCall();
+
+        this.sendClearMessage(true);
+    </method>   
+    
+    <view resource="remote_allow_rsc" x="2" y="2" />
+    
+    <labelText text="$once{ parent.message }" multiline="true" x="20"
+               width="$once{ parent.width - 40 }"/>
+               
+</class> 
+
+<class name="activityListMessageRequest" extends="simplebaseItemActivityList">
+    
+    <method name="applyObject">
+        this.sendClearMessage(true);
+    </method>   
+    
+    <view resource="warning_icon_rsc" x="2" y="2" />
+    
+    <labelText text="$once{ parent.message }" multiline="true" x="20"
+               width="$once{ parent.width - 40 }"/>
+               
+</class>  
+
+<class name="activityListRestrictedRoomModeration" extends="baseItemActivityList">
+    
+    <method name="applyObject">
+        canvas.thishib.addModerator.publicSIDOfNewModerator = this.rcl.publicSID;
+        canvas.thishib.addModerator.doCall();
+        this.sendClearMessage(true);
+    </method>   
+    
+    <view resource="participants_isMod_rsc" x="2" y="2" />
+    
+    <labelText text="$once{ parent.message }" multiline="true" x="20"
+               width="$once{ parent.width - 40 }"/>
+               
+</class>  
+
+<class name="activityList" y="${ parent.height - 200 }" x="0"
+	   extends="basePropertyPanelWhiteboard" height="200" 
+         width="$once{ parent.width-10 }" labelid="1363" 
+         visibility="${((canvas.currentRoomObj.hideActivitiesAndActions == true) ? 'hidden':'visible')}">
+    
+    <handler name="oninit">
+        canvas.currentActivityList = this;
+    </handler>
+    
+    <method name="addMessageRequest" args="rcl,message,tStamp">
+        <![CDATA[
+            var txt = rcl.firstname + " " + rcl.lastname + " " +
+                                   "[" + rcl.username + "] : " +
+                                   message + " [" + getStringTimeByTimeStamp(tStamp) + "]";
+            
+            new lz.activityListMessageRequest(this._list._list,{
+                                            message:txt,
+                                            width:this._list.width-14,
+                                            rcl:rcl,
+                                            tStamp:tStamp
+                                        });
+                                        
+            this._list._list.scrollToMax();                                        
+        ]]>                        
+    </method>
+    
+    
+    <method name="addModerationRequest" args="rcl,tStamp">
+        <![CDATA[
+            if (rcl.publicSID == canvas.publicSID) {
+                var txt = "<b>"+canvas.getLabelName(1362)+"</b> " +
+                                   canvas.getLabelName(693) + " [" + getStringTimeByTimeStamp(tStamp) + "]";
+            } else {
+                var txt = rcl.firstname + " " + rcl.lastname + " " +
+                                   "[" + rcl.username + "] " +
+                                   canvas.getLabelName(693) + " [" + getStringTimeByTimeStamp(tStamp) + "]";
+            }
+            
+            new lz.activityListRestrictedRoomModeration(this._list._list,{
+                                            message:txt,
+                                            width:this._list.width-14,
+                                            rcl:rcl,
+                                            tStamp:tStamp
+                                        });
+                                        
+            this._list._list.scrollToMax();                                        
+        ]]>                        
+    </method>
+    
+    <method name="addScreenRequest" args="rcl,tStamp">
+        <![CDATA[
+            if (rcl.publicSID == canvas.publicSID) {
+                var txt = "<b>"+canvas.getLabelName(1362)+"</b> " +
+                           canvas.getLabelName(1070) + " [" + getStringTimeByTimeStamp(tStamp) + "]";
+            } else {
+                var txt = rcl.firstname + " " + rcl.lastname + " " +
+                                   "[" + rcl.username + "] " +
+                                   canvas.getLabelName(1070) + " [" + getStringTimeByTimeStamp(tStamp) + "]";
+            }
+                               
+            new lz.activityListRestrictedRoomScreen(this._list._list,{
+                                            message:txt,
+                                            width:this._list.width-14,
+                                            rcl:rcl,
+                                            tStamp:tStamp
+                                        });
+                                        
+            this._list._list.scrollToMax();                                        
+        ]]>                      
+    </method>
+    
+    <method name="addRemoteRequest" args="rcl,tStamp">
+        <![CDATA[
+            if (rcl.publicSID == canvas.publicSID) {
+                var txt = "<b>"+canvas.getLabelName(1362)+"</b> " +
+                           canvas.getLabelName(1082) + " [" + getStringTimeByTimeStamp(tStamp) + "]";
+            } else {
+                var txt = rcl.firstname + " " + rcl.lastname + " " +
+                                   "[" + rcl.username + "] " +
+                                   canvas.getLabelName(1082) + " [" + getStringTimeByTimeStamp(tStamp) + "]";
+            }
+                               
+            new lz.activityListRestrictedRoomRemote(this._list._list,{
+                                            message:txt,
+                                            width:this._list.width-14,
+                                            rcl:rcl,
+                                            tStamp:tStamp
+                                        });
+                                        
+            this._list._list.scrollToMax();                                        
+        ]]>                      
+    </method>
+    
+    <method name="applyForMuteOn" args="rcl,tStamp">
+        <![CDATA[
+            if (rcl.publicSID == canvas.publicSID) {
+                var txt = "<b>"+canvas.getLabelName(1362)+"</b> " +
+                           canvas.getLabelName(1396) + " [" + getStringTimeByTimeStamp(tStamp) + "]";
+            } else {
+                var txt = rcl.firstname + " " + rcl.lastname + " " +
+                                   "[" + rcl.username + "] " +
+                                   canvas.getLabelName(1399) + " [" + getStringTimeByTimeStamp(tStamp) + "]";
+            }
+                               
+            new lz.activityListRestrictedRoomApplyForMuteOn(this._list._list,{
+                                            message:txt,
+                                            width:this._list.width-14,
+                                            rcl:rcl,
+                                            tStamp:tStamp
+                                        });
+                                        
+            this._list._list.scrollToMax();                                        
+        ]]>                      
+    </method>
+
+    <method name="applyForGiveExclusiveAudioOn" args="rcl,tStamp">
+        <![CDATA[
+            if (rcl.publicSID == canvas.publicSID) {
+                var txt = "<b>"+canvas.getLabelName(1362)+"</b> " +
+                           canvas.getLabelName(1427) + " [" + getStringTimeByTimeStamp(tStamp) + "]";
+            } else {
+                var txt = rcl.firstname + " " + rcl.lastname + " " +
+                                   "[" + rcl.username + "] " +
+                                   canvas.getLabelName(1426) + " [" + getStringTimeByTimeStamp(tStamp) + "]";
+            }
+
+            new lz.activityListRestrictedRoomApplyForGiveExclusiveAudioOn(this._list._list,{
+                                            message:txt,
+                                            width:this._list.width-14,
+                                            rcl:rcl,
+                                            tStamp:tStamp
+                                        });
+
+            this._list._list.scrollToMax();
+        ]]>
+    </method>
+    
+    <method name="applyForMuteOff" args="rcl,tStamp">
+        <![CDATA[
+            if (rcl.publicSID == canvas.publicSID) {
+                var txt = "<b>"+canvas.getLabelName(1362)+"</b> " +
+                           canvas.getLabelName(1397) + " [" + getStringTimeByTimeStamp(tStamp) + "]";
+            } else {
+                var txt = rcl.firstname + " " + rcl.lastname + " " +
+                                   "[" + rcl.username + "] " +
+                                   canvas.getLabelName(1398) + " [" + getStringTimeByTimeStamp(tStamp) + "]";
+            }
+                               
+            new lz.activityListRestrictedRoomApplyForMuteOff(this._list._list,{
+                                            message:txt,
+                                            width:this._list.width-14,
+                                            rcl:rcl,
+                                            tStamp:tStamp
+                                        });
+                                        
+            this._list._list.scrollToMax();                                        
+        ]]>                      
+    </method>
+    
+    <method name="addWhiteboardRequest" args="rcl,tStamp">
+        <![CDATA[
+            if (rcl.publicSID == canvas.publicSID) {
+                var txt = "<b>"+canvas.getLabelName(1362)+"</b> " +
+                           canvas.getLabelName(694) + " [" + getStringTimeByTimeStamp(tStamp) + "]";
+            } else {
+                var txt = rcl.firstname + " " + rcl.lastname + " " +
+                                   "[" + rcl.username + "] " +
+                                   canvas.getLabelName(694) + " [" + getStringTimeByTimeStamp(tStamp) + "]";
+            }
+                               
+            new lz.activityListRestrictedRoomWhiteboard(this._list._list,{
+                                            message:txt,
+                                            width:this._list.width-14,
+                                            rcl:rcl,
+                                            tStamp:tStamp
+                                        });
+                                        
+            this._list._list.scrollToMax();                                        
+        ]]>                      
+    </method>
+    
+    <method name="addAudioRequest" args="rcl,tStamp">
+        <![CDATA[
+            if (rcl.publicSID == canvas.publicSID) {
+                var txt = "<b>"+canvas.getLabelName(1362)+"</b> " +
+                           canvas.getLabelName(1080) + " [" + getStringTimeByTimeStamp(tStamp) + "]";
+            } else {
+                var txt = rcl.firstname + " " + rcl.lastname + " " +
+                                   "[" + rcl.username + "] " +
+                                   canvas.getLabelName(1080) + " [" + getStringTimeByTimeStamp(tStamp) + "]";
+            }
+                           
+            new lz.activityListRestrictedRoomA(this._list._list,{
+                                        message:txt,
+                                        width:this._list.width-14,
+                                        rcl:rcl,
+                                        tStamp:tStamp
+                                    });
+                                    
+            this._list._list.scrollToMax();                                    
+       ]]>                  
+    </method>
+    
+    <method name="addVideoRequest" args="rcl,tStamp">
+        <![CDATA[
+            if (rcl.publicSID == canvas.publicSID) {
+                var txt = "<b>"+canvas.getLabelName(1362)+"</b> " +
+                           canvas.getLabelName(1081) + " [" + getStringTimeByTimeStamp(tStamp) + "]";
+            } else {                
+                var txt = rcl.firstname + " " + rcl.lastname + " " +
+                                   "[" + rcl.username + "] " +
+                                   canvas.getLabelName(1081) + " [" + getStringTimeByTimeStamp(tStamp) + "]";
+            }
+                           
+            new lz.activityListRestrictedRoomV(this._list._list,{
+                                            message:txt,
+                                            width:this._list.width-14,
+                                            rcl:rcl,
+                                            tStamp:tStamp
+                                        });
+                                        
+            this._list._list.scrollToMax();
+        ]]>
+    </method>
+    
+    <method name="addAudioAndVideoRequest" args="rcl,tStamp">
+        <![CDATA[
+            if (rcl.publicSID == canvas.publicSID) {
+                var txt = "<b>"+canvas.getLabelName(1362)+"</b> " +
+                               canvas.getLabelName(695) + " [" + getStringTimeByTimeStamp(tStamp) + "]";
+            } else {
+                var txt = rcl.firstname + " " + rcl.lastname + " " +
+                                   "[" + rcl.username + "] " +
+                                   canvas.getLabelName(695) + " [" + getStringTimeByTimeStamp(tStamp) + "]";
+            }
+            
+            new lz.activityListRestrictedRoomAV(this._list._list,{
+                                            message:txt,
+                                            width:this._list.width-14,
+                                            rcl:rcl,
+                                            tStamp:tStamp
+                                        });
+                                        
+            this._list._list.scrollToMax();
+        ]]>
+    </method>
+    
+    <method name="hideActivityObj" args="messageObj">
+    	<![CDATA[
+    	
+    	    for (var i=0;i<this._list._list.subviews.length;i++) {
+    	    	
+    	    	if ($debug) Debug.write("hideActivityObj:: ",this._list._list.subviews[i].tStamp,messageObj.message[2]);
+    	    	
+    	    	if (this._list._list.subviews[i].tStamp == messageObj.message[2]) {
+    	    		
+    	    		this._list._list.subviews[i].closeItem();
+    	    		
+    	    		return;
+    	    		
+    	    	}
+    	    	
+    	    }
+    	
+    	]]>
+    </method>
+    
+    <view name="_list" y="21" height="179" bgcolor="$once{ canvas.getThemeColor('mainBackgroundColor') }"
+    	  width="$once{ parent.width }" clip="true">
+        
+        <view name="_list">
+            
+            <method name="scrollToMax">
+                <![CDATA[
+			        if(this.height>parent.height){
+			            parent.myscrollbar.scrolltarget.setAttribute(parent.myscrollbar.scrollattr,(parent.height-this.height));
+			        }
+		        ]]>
+            </method>
+            
+            <simplelayout name="_layout" axis="y" spacing="1" />
+            
+        </view>
+        
+        <om_vscrollbar name="myscrollbar" />
+        
+    </view>
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/activitylist/library.lzx b/WebContent/src/modules/conference/flexibleConferenceRoom/activitylist/library.lzx
new file mode 100644
index 0000000..4046d92
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/activitylist/library.lzx
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+	<!-- FamFam Icon Set -->
+    <resource name="allow_ok_icon_rsc" src="resources/tick.png" />
+    <!-- FamFam Icon Set -->
+    <resource name="allow_deny_icon_rsc" src="resources/cross.png" />
+  
+    <include href="activityList.lzx" />
+	
+</library>
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/activitylist/resources/cross.png b/WebContent/src/modules/conference/flexibleConferenceRoom/activitylist/resources/cross.png
new file mode 100644
index 0000000..1514d51
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/activitylist/resources/cross.png
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/activitylist/resources/tick.png b/WebContent/src/modules/conference/flexibleConferenceRoom/activitylist/resources/tick.png
new file mode 100644
index 0000000..a9925a0
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/activitylist/resources/tick.png
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/appointmentNotificationPopUp.lzx b/WebContent/src/modules/conference/flexibleConferenceRoom/appointmentNotificationPopUp.lzx
new file mode 100644
index 0000000..1974e8d
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/appointmentNotificationPopUp.lzx
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="appointmentNotificationPopUp" extends="guiPresenter" labelid="1144" y="30"
+    isdragable="false" minimizable="false" maximizable="false" fullToolBar="true" 
+    resizeable="false" width="280" height="280" x="$once{ parent.width-this.width-10 }">
+	
+	<attribute name="roomobj" value="null" />
+	
+	<handler name="oninit" >
+		this.getAppointMentAndTimeZones.doCall();
+	</handler>
+	
+	<!-- Retrieving Appointmentdata for Meeting -->
+	<netRemoteCallHib name="getAppointMentAndTimeZones" remotecontext="$once{ canvas.thishib }" 
+		funcname="conferenceservice.getAppointMentAndTimeZones" >   
+		<netparam><method name="getValue">return parent.parent.roomobj.rooms_id;</method></netparam>
+		<handler name="ondata" args="value">	
+		    <![CDATA[
+		    	if ($debug) Debug.write("getAppointMentAndTimeZones 1: ",parent.roomobj.rooms_id);
+		    	if ($debug) Debug.write("getAppointMentAndTimeZones 2: ",value);
+		    	
+		    	if(value!=null){
+		    		
+		    		parent._appstart.setAttribute('text',value.start);
+		    		parent._append.setAttribute('text',value.end);
+		    		parent._timeZone.setAttribute('text',value.timeZone);
+		    		
+		    		parent._appName.setAttribute('text',value.appointment.title);
+		    		parent._appDescr._appDescr.setAttribute('text',value.appointment.description);
+		    	
+		    		parent._createdby.setAttribute('text',value.appointment.owner.firstname + ' ' + value.appointment.owner.lastname );
+		    	}
+		    ]]>	        	          				
+		</handler>	
+	</netRemoteCallHib> 
+	
+	<labelText name="appName" y="24" labelid="1145" width="50"/>
+	<labelText name="_appName" x="75" y="24" width="200" fontstyle="bold" /> 
+	
+	<labelText name="appDescr" y="46" labelid="1146" width="50"/>
+	<view name="_appDescr" x="75" y="46" width="200" height="100" bgcolor="0xFFFFFF" clip="true">
+		<labelText name="_appDescr" y="24" width="184" multiline="true" /> 
+		<om_vscrollbar />
+	</view>
+	
+	<labelText name="l_sdatum" labelid="1143" y="150" width="50" />
+	<labelText name="_timeZone" x="75" y="150" width="200" resize="false" bgcolor="0xFFFFFF" fgcolor="$once{ canvas.getThemeColor('menuTextColor') }"/> 
+	
+	<labelText name="appstartlabel" y="170" labelid="570" width="50"/>
+	<labelText name="_appstart" x="75" y="170" width="200" resize="false" bgcolor="0xFFFFFF" fgcolor="$once{ canvas.getThemeColor('menuTextColor') }"/> 
+	
+	<labelText name="l_edatum" labelid="571" y="190" width="50"  />
+	<labelText name="_append" y="190" x="75" width="200" text="" resize="false" bgcolor="0xFFFFFF" fgcolor="$once{ canvas.getThemeColor('menuTextColor') }"/> 	 
+	
+	<labelText name="l_createdby" labelid="1147" y="210" width="50"  />
+	<labelText name="_createdby" y="210" x="75" width="200" text="" resize="false" bgcolor="0xFFFFFF" fgcolor="$once{ canvas.getThemeColor('menuTextColor') }"/> 	   
+	
+    <simpleLabelButton labelid="1130" width="100" x="$once{ parent.width-105 }" 
+           y="$once{ parent.height-24 }" onclick="this.parent.close();" />	           	
+	
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/baseConferenceRoom.lzx b/WebContent/src/modules/conference/flexibleConferenceRoom/baseConferenceRoom.lzx
new file mode 100644
index 0000000..c835bc8
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/baseConferenceRoom.lzx
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+<class name="dtmfButton" extends="button" width="20" height="20" >
+    <attribute name="dtmf" value="" type="string"/>
+    <handler name="onclick">
+        callDTMFButton(this,this.text);
+    </handler>
+    <method name="doNextSipNumber">
+        if ($debug) Debug.write("doNextSipNumber ",this.text);
+    </method>
+</class>
+    
+<class name="debugPinCode" extends="labelExplorerBox" title="Enter PIN Code"
+    docking="true" resizeable="false" closable="true" width="100" x="14" height="120">
+    
+    
+    <view y="24">
+        
+        <dtmfButton text="1" x="20" dtmf="1"/> 
+            <dtmfButton text="2" x="40" dtmf="2"/> 
+                <dtmfButton text="3" x="60" dtmf="3"/>
+                
+        <dtmfButton text="4" x="20" y="20" dtmf="4"/> 
+            <dtmfButton text="5" x="40" y="20" dtmf="5"/> 
+                <dtmfButton text="6" x="60" y="20" dtmf="6"/>
+                
+        <dtmfButton text="7" x="20" y="40" dtmf="7"/> 
+            <dtmfButton text="8" x="40" y="40" dtmf="8"/> 
+                <dtmfButton text="9" x="60" y="40" dtmf="9"/>
+                
+        <dtmfButton text="10" x="20" y="60" dtmf="10"/>
+        
+    </view>
+    
+    
+</class>
+
+<class name="baseConferenceRoom" extends="baseContentView" destroyByMethod="true" >
+    
+    <attribute name="roomobj" value="null" />
+    
+    <attribute name="meetingTimer" value="null" />
+    
+    <handler name="oninit">
+        <![CDATA[
+            _mainScrollBar.setAttribute("visibility","hidden");
+            
+            if ($debug) Debug.write("roomobj: ",this.roomobj);
+            
+            canvas.currentRoomObject = this.roomobj;
+            canvas.sendViaLocalConnection(canvas.rtmp_lc_name,"setRoomValues", [this.roomobj.roomtype.roomtypes_id,this.roomobj.rooms_id,this.roomobj]);
+            
+            if (this.roomobj.isClosed) {
+                canvas.roomClosed();
+            }
+            
+            if (this.roomobj.waitForRecording) {
+                new lz.labelerrorPopup(canvas, {labelid: 1316, errorlabelid: 1315});
+            }
+            
+            canvas.currentRoomObject = this.roomobj;
+            canvas._mainbgcontentNavi.setAttribute('height',0);
+            canvas.setAttribute('naviHeightDelta',28);
+            
+            if(this._chatPanelStrict){
+            	var hideChat = this.roomobj.hideChat != null && this.roomobj.hideChat;
+				this._chatPanelStrict.setAttribute('visible', !hideChat);
+                if (hideChat) {            
+                    this._chatPanelStrict.setAttribute('height', 28);                  
+                }
+            }            
+        ]]>
+    </handler>
+    
+	<handler name="onkeydown" reference="lz.Keys" args="keyCode">
+	<![CDATA[
+		if ($debug) Debug.write("onkeydown:: keyCode = ", keyCode);
+		// common keys are processed firstly
+		if (canvas.ARRANGE_WINDOWS_KEY == keyCode) {
+			canvas.sendViaLocalConnection(canvas.vid_lc_name, "arrangeWindows", null);
+			return;
+		}
+		if (canvas.GIVE_EXCLUSIVE_AUDIO_KEY == keyCode) {
+			if (canvas.ismoderator || canvas.isAllowedToGiveExclusiveAudio) {
+				canvas.thishib.giveExclusiveAudio.setExclusiveAudio(canvas.publicSID);
+			} else {
+				new lz.rpcErrorDialog(canvas.main_content._content.inner,{errorid:-54});
+			}
+			return;
+		}
+		if (canvas.MUTE_AUDIO_KEY == keyCode) {
+			canvas._videocontainer._videoviewcontent.muteSound(canvas.publicSID, !canvas.micMuted);
+			return;
+		}
+	]]>
+	</handler>
+
+    <screenSharingAdapter name="_screenSharingAdapter" />
+    
+    <baseTabChatPanel name="_chatPanelStrict" labelid="616"
+       height="200" x="${ parent._sidePanel.width }"  
+       y="${ canvas.height - (this.height) - ((canvas.currentRoomObj.hideTopBar) ? 0 : 28) }" 
+       width="${ canvas.width - parent._sidePanel.width }" isopen="${ !canvas.currentRoomObj.chatOpened }" />
+       <!-- isopen need to be reverted, will be toggled -->
+       
+</class>
+
+</library>
\ No newline at end of file
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/baseRoomInnerList.lzx b/WebContent/src/modules/conference/flexibleConferenceRoom/baseRoomInnerList.lzx
new file mode 100644
index 0000000..ed6844b
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/baseRoomInnerList.lzx
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<!--
+
+    This class hold a bunch method that is shared between the 
+    User List of different Room Types
+
+ -->
+
+<class name="baseRoomInnerList" extends="view" >
+	
+    <handler name="oninit">
+        <![CDATA[
+            this.initList();
+        ]]>
+    </handler>
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/flexibleConferenceRoom.lzx b/WebContent/src/modules/conference/flexibleConferenceRoom/flexibleConferenceRoom.lzx
new file mode 100644
index 0000000..ca4e063
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/flexibleConferenceRoom.lzx
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="flexibleConferenceRoom" extends="baseConferenceRoom">
+
+    <handler name="oninit">
+    	
+    	if (this.roomobj.hideTopBar == null || !this.roomobj.hideTopBar) {
+            new lz.conferenceMenubar(canvas._conferencemenu);
+            canvas._conferencemenu.setAttribute('visibility','visible');
+    	} else {
+    		canvas._mainbgcontentNavi.setAttribute('height',0);
+            canvas.setAttribute('naviHeight',0);
+            canvas.setAttribute('naviHeightDelta',0);
+            canvas._conferencemenu.setAttribute('visibility','hidden');
+            canvas._mainbgcontentNavi.setAttribute('visibility','hidden');            
+    	}    	
+    	
+        new lz.moderationPanel(canvas._moderatormenu,{
+                    name:'_moderationPanel',align:'right',
+                    allowUserQuestions:this.roomobj.allowUserQuestions,
+                    roomName:this.roomobj.name
+                });          
+        
+        if(roomobj.appointment){
+            canvas.appointmentNotificationPopUp = 
+            	new lz.appointmentNotificationPopUp(canvas.conferenceView,{ 
+            			name:'appDetail', roomobj:this.roomobj });    
+        } else{
+            if ($debug) Debug.write("no appointed meeting");
+        }
+        
+        if (this.roomobj.isDemoRoom) {
+            if (this.roomobj.demoTime != null) {
+                if ($debug) Debug.warn("THIS IS A DEMO ROOM THAT SHOULD CLOSE AFTER SEC: ",this.roomobj.demoTime);
+                this.meetingTimer = new lz.meetingTimer(canvas,{refObj:this,roomobj:this.roomobj});
+            }
+        }
+        
+        canvas.currentBaseConferenceRoom = this;
+    </handler>
+    
+    <handler name="ontabcontentleave">
+        if ($debug) Debug.write("################# ontabcontentleave:",this);
+        
+        //close all screensharings, videos and closes the rtmp connection in the remote host
+        this._screenSharingAdapter.closeAllScreenSharings();
+        
+        //reset the right to draw on WHiteboard as the RoomClient Object will be destroyed also
+        //on server-Side the canDraw status will be false again when you relogin the same room
+        canvas.isAllowedToDraw = true;
+        
+        _mainScrollBar.setAttribute("visibility","visible");
+        
+        //reset rights
+        canvas.isAllowedToGiveExclusiveAudio = false;
+        
+        if (canvas._videocontainer!=null){
+            canvas._videocontainer.resetAllValues();
+            canvas._videocontainer = null;
+        }
+        if (canvas._chatcontent!=null){
+            canvas._chatcontent = null;
+        }
+        if (canvas._mymod!=null){
+            canvas._mymod = null;
+        }
+        
+        if (this.meetingTimer != null) {
+            this.meetingTimer.close();
+        }
+        
+        if (canvas._drawarea.letterObjectIsActive){
+            canvas._drawarea.currentletterObj.destroy();
+        }
+        
+        if (canvas.currentFileExplorer != null) {
+        	canvas.currentFileExplorer = null;
+        }
+        
+        if (canvas.currentActivityList != null) {
+        	canvas.currentActivityList = null;
+        }
+        
+        //reset if the user was connected to any slave
+        canvas.isSlaveHosted = false;
+        
+        //@deprecated we will not use old screen sharing implementation
+        //canvas._screens.clearAllSessions();
+        this.logicalRoomLeave.doCall();
+        if ($debug) Debug.write("############ this.logicalRoomLeave ",this.logicalRoomLeave);
+    </handler>
+    
+    
+
+    <netRemoteCallHib name="logicalRoomLeave" funcname="logicalRoomLeave" remotecontext="$once{ canvas.thishib }" >
+        <handler name="ondata" args="value">
+            if ($debug) Debug.write("############# logicalRoomLeave: ",value);
+            //this.parent.destroy();
+            canvas.thishib.reconnectAfterRoomleft = true;
+            canvas.thishib.reconnectedRoomInstance = this.parent;
+            canvas.currentBaseConferenceRoom = null;
+            
+            // Reconnect User to default Scope
+            canvas.thishib.userScope = "hibernate";
+            var src = hib.getUrl();
+            canvas.thishib.setAttribute('src',src);
+            canvas.thishib.disconnect();
+            canvas._mainbgcontentNavi.setAttribute('height',canvas.naviHeight);
+            canvas.setAttribute('naviHeightDelta',canvas.naviHeight);
+            canvas._conferencemenu.removeAll();
+            canvas._conferencemenu.setAttribute('visibility','hidden');
+        </handler>
+    </netRemoteCallHib>
+    
+    <conferenceRoomSidebar name="_sidePanel" />
+    
+    <view name="_videoviewcontent_hideWhiteboard" y="0" x="${ parent._sidePanel.width }"
+		  width="${canvas.width-parent._sidePanel.width}" height="${canvas.height-(parent._chatPanelStrict.height) - 
+        ((parent._chatPanelStrict.visibility == 'hidden') ? 5:28) + ((canvas.currentRoomObj.hideTopBar) ? 28:0)}" clip="true" 
+		  visibility="${((canvas.currentRoomObj.hideWhiteboard) ? 'visible':'hidden')}">
+			<view name="_inn" width="${parent.width-10}">				
+				<wrappinglayout axis="x" spacing="10"/>
+			</view>
+			<om_vscrollbar name="_attenddeescrollbar" visibility="visible"></om_vscrollbar>
+	</view>
+    
+    <fixedFileExplorerWhiteboardPanel name="_whiteboard" labelid="615"
+        y="0" x="${ parent._sidePanel.width }" 
+        width="${ canvas.width - parent._sidePanel.width }"
+        height="${ canvas.height - (parent._chatPanelStrict.height) - 
+        ((parent._chatPanelStrict.visible) ? 28 : 6) + ((canvas.currentRoomObj.hideTopBar) ? 28:0)}" />
+    
+    <!--
+        ###############################
+        This is the container for all Videos
+     -->
+    <commonVideoViewContent name="_videoviewcontent" />
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/innerlistViewEventUserListTable.lzx b/WebContent/src/modules/conference/flexibleConferenceRoom/innerlistViewEventUserListTable.lzx
new file mode 100644
index 0000000..72cb59e
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/innerlistViewEventUserListTable.lzx
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<class name="innerlistViewEventUserListTable" extends="view" width="258" >

+    <wrappinglayout name="_layout" axis="x" spacing="4"/>

+</class>

+

+</library>
\ No newline at end of file
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/interviewConferenceRoom.lzx b/WebContent/src/modules/conference/flexibleConferenceRoom/interviewConferenceRoom.lzx
new file mode 100644
index 0000000..fc482b1
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/interviewConferenceRoom.lzx
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="interviewConferenceRoom" extends="baseConferenceRoom">
+
+    <handler name="oninit">
+    	
+    	if (this.roomobj.hideTopBar == null || !this.roomobj.hideTopBar) {
+            new lz.interviewConferenceMenubar(canvas._conferencemenu);
+            canvas._conferencemenu.setAttribute('visibility','visible');
+        } else {
+            canvas._mainbgcontentNavi.setAttribute('height',0);
+            canvas.setAttribute('naviHeight',0);
+            canvas.setAttribute('naviHeightDelta',0);
+            canvas._conferencemenu.setAttribute('visibility','hidden');
+        }
+        
+        if ($debug) Debug.write("this.roomobj ",this.roomobj);
+        
+        if(this.roomobj.appointment){
+        	canvas.appointmentNotificationPopUp =
+        		new lz.appointmentNotificationPopUp(canvas.conferenceView,{ 
+						name:'appDetail', roomobj:this.roomobj });   
+        } else{
+        	if ($debug) Debug.write("no appointed meeting");
+        }
+        
+        if (this.roomobj.isDemoRoom) {
+            if (this.roomobj.demoTime != null) {
+                if ($debug) Debug.warn("THIS IS A DEMO ROOM THAT SHOULD CLOSE AFTER SEC: ",this.roomobj.demoTime);
+                this.meetingTimer = new lz.meetingTimer(canvas,{refObj:this,roomobj:this.roomobj});
+            }
+        }
+        
+        canvas.currentBaseConferenceRoom = this;
+        
+        canvas.currentRoomObj.hideScreenSharing = true;
+        new lz.moderationPanel(canvas._moderatormenu,{
+                    name:'_moderationPanel',align:'right',
+                    roomName:this.roomobj.name
+                });          
+        
+    </handler>
+    
+    <handler name="ontabcontentleave">
+        if ($debug) Debug.write("################# ontabcontentleave:",this);
+        
+        this._screenSharingAdapter.closeAllScreenSharings();
+        
+        canvas.currentBaseConferenceRoom = null;
+        
+        //reset the right to draw on WHiteboard as the RoomClient Object will be destroyed also
+        //on server-Side the canDraw status will be false again when you relogin the same room
+        canvas.isAllowedToDraw = true;
+        
+        _mainScrollBar.setAttribute("visibility","visible");
+        
+        //reset rights
+        canvas.isAllowedToGiveExclusiveAudio = false;
+        
+        if (canvas._videocontainer!=null){
+	        canvas._videocontainer.resetAllValues();
+	        canvas._videocontainer = null;
+        }
+        if (canvas._chatcontent!=null){
+        	canvas._chatcontent = null;
+        }
+        if (canvas._mymod!=null){
+        	canvas._mymod = null;
+        }
+        
+        if (this.meetingTimer != null) {
+            this.meetingTimer.close();
+        }
+        
+        if (canvas._drawarea.letterObjectIsActive){
+            canvas._drawarea.currentletterObj.destroy();
+        }
+        
+        if (canvas.currentFileExplorer != null) {
+            canvas.currentFileExplorer = null;
+        }
+        
+        if (canvas.currentActivityList != null) {
+        	canvas.currentActivityList = null;
+        }
+        
+        //reset if the user was connected to any slave
+        canvas.isSlaveHosted = false;
+        
+        //@deprecated we will not use old screen sharing implementation
+        //canvas._screens.clearAllSessions();
+        this.logicalRoomLeave.doCall();
+        if ($debug) Debug.write("############ this.logicalRoomLeave ",this.logicalRoomLeave);
+    </handler>
+
+    <netRemoteCallHib name="logicalRoomLeave" funcname="logicalRoomLeave" remotecontext="$once{ canvas.thishib }" >
+        <handler name="ondata" args="value">
+	        if ($debug) Debug.write("############# logicalRoomLeave: ",value);
+	        //this.parent.destroy();
+            canvas.thishib.reconnectAfterRoomleft = true;
+            canvas.thishib.reconnectedRoomInstance = this.parent;
+            
+            // Reconnect User to default Scope
+	        canvas.thishib.userScope = "hibernate";
+	        var src = hib.getUrl();
+	        canvas.thishib.setAttribute('src',src);
+            canvas.thishib.disconnect();
+            canvas._mainbgcontentNavi.setAttribute('height',canvas.naviHeight);
+            canvas.setAttribute('naviHeightDelta',canvas.naviHeight);
+            canvas._conferencemenu.removeAll();
+            canvas._conferencemenu.setAttribute('visibility','hidden');
+        </handler>
+    </netRemoteCallHib>
+    
+    <!--
+        User Panel and Participants List
+     -->
+    <interviewRoomSidebar name="_sidePanel" 
+                      listType="eventUserListTableWithNames" />
+    
+    <!--
+        Whiteboard in Interview Room Type those are the Video Pods
+     -->
+    <interviewWhiteboard name="_whiteboardInterview" x="${ parent._sidePanel.width }" 
+    	  width="${ canvas.width - parent._sidePanel.width }" />
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/library.lzx b/WebContent/src/modules/conference/flexibleConferenceRoom/library.lzx
new file mode 100644
index 0000000..18cf2bb
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/library.lzx
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<resource name="userstatus_multiframe_rsc">
+		<frame src="resources/bullet_ball_glass_green.png"/> <!-- user -->
+		<frame src="resources/bullet_ball_glass_yellow.png"/> <!-- mod -->
+		<frame src="resources/bullet_ball_glass_red.png"/> <!-- whiteboard allow -->
+	</resource>
+	
+	<resource name="chat_message_incoming_rsc" src="resources/ledlightgreen.png" />
+	
+	<!-- FamFam Icon Set -->
+	<resource name="screen_allow_rsc" src="resources/monitor_add.png" />
+	<!-- FamFam Icon Set -->
+    <resource name="screen_deny_rsc" src="resources/monitor_delete.png" />
+    <!-- FamFam Icon Set -->
+    <resource name="remote_allow_rsc" src="resources/mouse_add.png" />
+    <!-- FamFam Icon Set -->
+    <resource name="remote_deny_rsc" src="resources/mouse_delete.png" />
+	
+	<!-- FamFam Icon Set -->
+	<resource name="av_allow_rsc" src="resources/audio_and_video.png" />
+	<!-- FamFam Icon Set -->
+	<resource name="av_deny_rsc" src="resources/audio_and_video_no.png" />
+	<!-- FamFam Icon Set -->
+	<resource name="start_private_chat_rsc" src="resources/page_edit.png" />
+	
+	<!-- APL author sebawagner -->
+	<resource name="kick_user_rsc" src="resources/cancel_icon.png" />
+	
+	<!-- APL author sebawagner -->
+	<resource name="mute_micro_btn_rsc">
+        <frame src="resources/mute_micro.png" />
+        <frame src="resources/mute_micro_red.png" />
+    </resource>
+    
+    <!-- APL author sebawagner -->
+    <resource name="mute_btn_rsc" src="resources/mute_micro.png" />
+    <!-- APL author sebawagner -->
+    <resource name="unmute_btn_rsc" src="resources/mute_micro_red.png" />
+	
+	<!-- APL author sebawagner -->
+	<resource name="sidebar_tab_btn">
+		<frame src="resources/sidebar_close.png" />
+		<frame src="resources/sidebar_open.png" />
+	</resource>
+	
+	<include href="innerlistViewEventUserListTable.lzx" />
+	<include href="moderationMiniIconsEventUserList.lzx" />
+	<include href="activitylist/" />
+	<include href="roomSidebar/" />
+	<include href="appointmentNotificationPopUp.lzx" />
+	<include href="baseRoomInnerList.lzx" />
+    <include href="baseConferenceRoom.lzx" />
+    <include href="flexibleConferenceRoom.lzx" />
+    <include href="restrictedConferenceRoom.lzx" />
+    <include href="interviewConferenceRoom.lzx" />
+    
+    
+</library>
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/moderationMiniIconsEventUserList.lzx b/WebContent/src/modules/conference/flexibleConferenceRoom/moderationMiniIconsEventUserList.lzx
new file mode 100644
index 0000000..5d76e45
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/moderationMiniIconsEventUserList.lzx
@@ -0,0 +1,296 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="moderationMiniIconsEventUserList" extends="view">
+
+    <attribute name="showAvIcons" value="true" type="boolean" />
+	
+    <handler name="oninit">
+    	this.updateIcons();
+    </handler>	
+    
+    <method name="updateIcons">
+        if (canvas.ismoderator) {
+            this._isMod.setAttribute("visibility","visible");
+            this._isModAddbutton.setAttribute("visibility","hidden");
+        } else {
+            this._isMod.setAttribute("visibility","hidden");
+            this._isModAddbutton.setAttribute("visibility","visible");
+        }
+        
+        if (canvas.ismoderator) {
+            this._canDraw.setAttribute("visibility","visible");
+            this._canDraw.isActive = false;
+            //this._canDraw._text.setAttribute("text",canvas.getLabelName(681));
+            this._canDrawModerator.setAttribute("visibility","hidden");
+        } else {
+            if (canvas.isAllowedToDraw) {
+                this._canDraw.setAttribute("visibility","visible");
+                this._canDraw.isActive = true;
+                //this._canDraw._text.setAttribute("text",canvas.getLabelName(612));
+                this._canDrawModerator.setAttribute("visibility","hidden");
+            } else {
+                this._canDraw.setAttribute("visibility","hidden");
+                this._canDrawModerator.setAttribute("visibility","visible");
+            }
+        }
+        
+        if ($debug) Debug.write("canvas.isAllowedToScreenShare :: ",canvas.isAllowedToScreenShare);
+        
+        if (canvas.ismoderator) {
+            this._allowScreen.setAttribute("visibility","visible");
+            this._allowScreen.isActive = false;
+            
+            this._allowRemote.setAttribute("visibility","visible");
+            this._allowRemote.isActive = false;
+
+            this._allowExclusiveAudio.setAttribute("visibility","visible");
+            this._allowExclusiveAudio.isActive = false;
+            
+            //this._canDraw._text.setAttribute("text",canvas.getLabelName(681));
+            this._denyScreen.setAttribute("visibility","hidden");
+            this._denyRemote.setAttribute("visibility","hidden");
+            this._denyExclusiveAudio.setAttribute("visibility","hidden");
+        } else {
+            if (canvas.isAllowedToScreenShare) {
+                this._allowScreen.setAttribute("visibility","visible");
+                this._allowScreen.isActive = true;
+                //this._canDraw._text.setAttribute("text",canvas.getLabelName(612));
+                this._denyScreen.setAttribute("visibility","hidden");
+            } else {
+                this._allowScreen.setAttribute("visibility","hidden");
+                this._denyScreen.setAttribute("visibility","visible");
+            }
+            
+            if (canvas.isAllowedToRemoteControl) {
+            	this._allowRemote.setAttribute("visibility","visible");
+            	this._allowRemote.isActive = true;
+            	this._denyRemote.setAttribute("visibility","hidden");
+            } else {
+            	this._allowRemote.setAttribute("visibility","hidden");
+            	this._denyRemote.setAttribute("visibility","visible");
+            }
+
+            if (canvas.isAllowedToGiveExclusiveAudio) {
+                this._allowExclusiveAudio.setAttribute("visibility","visible");
+            	this._allowExclusiveAudio.isActive = true;
+            	this._denyExclusiveAudio.setAttribute("visibility","hidden");
+            } else {
+                this._allowExclusiveAudio.setAttribute("visibility","hidden");
+            	this._denyExclusiveAudio.setAttribute("visibility","visible");
+            }
+        }
+        
+        if ($debug) Debug.write("+ STATUS ICONS + ",this.showAvIcons,canvas.isBroadCasting);
+        
+        if (this.showAvIcons) {
+	        if (canvas.isBroadCasting) {
+	            this._allowDevice.setAttribute("visibility","hidden");
+	            this._denyDevice.setAttribute("visibility","visible");
+	        } else {
+	            this._allowDevice.setAttribute("visibility","visible");
+	            this._denyDevice.setAttribute("visibility","hidden");
+	        }
+        }
+        
+        
+        if (canvas.micMuted) {
+            this._muteDevice.setAttribute("visibility","hidden");
+            this._unMuteDevice.setAttribute("visibility","visible");
+        } else {
+            this._muteDevice.setAttribute("visibility","visible");
+            this._unMuteDevice.setAttribute("visibility","hidden");
+        }
+        
+        
+    </method>
+    
+    <simplelayout axis="x" spacing="2" />
+
+    <handler name="onMute" reference="canvas.thishib.switchMicMuted" args="event">
+        <![CDATA[
+            if ($debug) Debug.write("onMute ", event.publicSID, event.mute);
+            if(canvas.publicSID == event.publicSID) {
+                canvas.micMuted = event.mute;
+                this.updateIcons();
+            }
+        ]]>
+    </handler>
+	
+    <miniIconsNew name="_isMod" x="0" width="16" innerResource="participants_isMod_rsc" 
+    		   height="16" showhandcursor="false">
+        <handler name="onclick">
+            <![CDATA[
+                //Nothing happens here
+            ]]>
+        </handler>
+        <labelTooltip name="_text" labelid="688" />
+    </miniIconsNew>
+    
+    <miniIconsNew name="_isModAddbutton" opacity="0.5" x="0" width="16" innerResource="participants_isMod_rsc" height="16">
+        <handler name="onclick">
+            <![CDATA[
+                //Apply for Moderation
+                canvas.thishib.applyForModeration.doCall();
+            ]]>
+        </handler>
+        <labelTooltip name="_text" labelid="685" />
+    </miniIconsNew>
+        
+    <miniIconsNew name="_canDraw" x="20" width="16" innerResource="participants_allow_drawing_rsc" 
+               height="16" showhandcursor="false" >
+        <attribute name="isActive" value="true" type="boolean" />
+        <handler name="onclick">
+            <![CDATA[
+                //Nothing happens here
+            ]]>
+        </handler>
+        <labelTooltip name="_text" labelid="689" />
+    </miniIconsNew>
+    
+    <miniIconsNew name="_canDrawModerator" x="20" width="16" opacity="0.5"
+               innerResource="participants_allow_drawing_rsc" height="16" showhandcursor="true">
+        <handler name="onclick">
+            //Ask for Right to Draw on Whiteboard
+            var tDate = new Date();
+            canvas.thishib.sendMessageWithClient.sendMessage("applyForWhiteboard",tDate.getTime());
+        </handler>
+        <labelTooltip labelid="686" />
+    </miniIconsNew>
+    
+    <miniIconsNew name="_allowScreen" x="40" width="16" height="16" 
+               innerResource="screen_allow_rsc" showhandcursor="false">
+        <attribute name="isActive" value="true" type="boolean" />
+        <handler name="onclick">
+            <![CDATA[
+                if ($debug) Debug.write("Deny Screen: ",canvas.publicSID);
+            ]]>
+        </handler>
+        <labelTooltip name="_text" labelid="1071" />
+    </miniIconsNew>
+    
+    <miniIconsNew name="_denyScreen" x="40" width="16" height="16" opacity="0.5"
+               innerResource="screen_allow_rsc" showhandcursor="true">
+        <handler name="onclick">
+            if ($debug) Debug.write("Allow Screen: ",canvas.refObj.publicSID);
+            var tDate = new Date();
+        	canvas.thishib.sendMessageWithClient.sendMessage("applyForScreen",tDate.getTime());
+        </handler>
+        <labelTooltip labelid="1072" />
+    </miniIconsNew>    
+    
+ 	<miniIconsNew name="_allowRemote" x="60" width="16" height="16" 
+               innerResource="remote_allow_rsc" showhandcursor="false">
+    	<attribute name="isActive" value="true" type="boolean" />
+        <handler name="onclick">
+        	<![CDATA[
+                if ($debug) Debug.write("Deny Remote: ",canvas.publicSID);
+            ]]>
+        </handler>
+        <labelTooltip name="_text" labelid="1081" />
+    </miniIconsNew>
+    
+    <miniIconsNew name="_denyRemote" x="60" width="16" height="16" opacity="0.5"
+               innerResource="remote_allow_rsc" showhandcursor="true">
+        <handler name="onclick">
+            if ($debug) Debug.write("Allow Remote: ",parent.parent.parent.refObj.publicSID);
+            var tDate = new Date();
+            canvas.thishib.sendMessageWithClient.sendMessage("applyForRemote",tDate.getTime());
+        </handler>
+        <labelTooltip labelid="1080" />
+    </miniIconsNew>      
+          
+    
+    <miniIconsNew name="_allowDevice" x="80" width="40" height="16" opacity="0.5" 
+            visible="$once{ parent.showAvIcons }" innerResource="av_allow_rsc" showhandcursor="true">
+        <handler name="onclick">
+            if ($debug) Debug.write("NOTHING: ",canvas.publicSID);
+            if (canvas.ismoderator) {
+                //Do directly send confirmation to share Audio/Video to SELF! so that all users get
+                //the notification and the broadcasting Bit is set for this User
+                canvas.thishib.setBroadCastingFlag.publicSIDOfNewModerator = canvas.publicSID;
+                canvas.thishib.setBroadCastingFlag.isAllowedToBroadCastAV = true;
+                canvas.thishib.setBroadCastingFlag.doCall(); 
+            } else {
+                //Apply for Right to Share Audio/Video
+                var tDate = new Date();
+                canvas.thishib.sendMessageWithClient.sendMessage("applyForAV",tDate.getTime());
+            }
+        </handler>
+        <labelTooltip labelid="687" />
+    </miniIconsNew>
+    
+    <miniIconsNew name="_denyDevice" x="80" width="40" height="16" 
+            visible="$once{ parent.showAvIcons }" innerResource="av_allow_rsc" showhandcursor="false">
+        <handler name="onclick">
+            if ($debug) Debug.write("DENY: ",canvas.publicSID);
+            //Nothing happens here
+            canvas.thishib.setBroadCastingFlag.publicSIDOfNewModerator = canvas.publicSID;
+            canvas.thishib.setBroadCastingFlag.isAllowedToBroadCastAV = false;
+            canvas.thishib.setBroadCastingFlag.doCall(); 
+        </handler>
+        <labelTooltip name="_text" labelid="690" />
+    </miniIconsNew>
+    
+    <miniIconsNew name="_muteDevice" x="120" width="16" height="16" 
+    		   innerResource="mute_btn_rsc" showhandcursor="true">
+    	<handler name="onclick">
+            canvas._videocontainer._videoviewcontent.muteSound(canvas.publicSID, true);
+    	</handler>
+        <labelTooltip name="_tip" labelid="1403" />
+    </miniIconsNew>
+    
+    <miniIconsNew name="_unMuteDevice" x="120" width="16" height="16" innerResource="unmute_btn_rsc" 
+               showhandcursor="true" >
+    	<handler name="onclick">
+            canvas._videocontainer._videoviewcontent.muteSound(canvas.publicSID, false);
+        </handler>
+        <labelTooltip name="_tip" labelid="1404" />
+    </miniIconsNew>
+
+    <miniIconsNew name="_allowExclusiveAudio" x="60" width="16" height="16"
+               innerResource="participants_exclusive_audio_rsc" showhandcursor="false">
+    	<attribute name="isActive" value="true" type="boolean" />
+        <handler name="onclick">
+        	<![CDATA[
+                if ($debug) Debug.write("Deny Give Exclusive Audio: ",canvas.publicSID);
+                if (canvas.ismoderator || canvas.isAllowedToGiveExclusiveAudio) {
+	                canvas.thishib.giveExclusiveAudio.publicSID = canvas.publicSID;
+	                canvas.thishib.giveExclusiveAudio.doCall();
+                }
+            ]]>
+        </handler>
+        <labelTooltip name="_text" labelid="1433" />
+    </miniIconsNew>
+
+    <miniIconsNew name="_denyExclusiveAudio" x="60" width="16" height="16" opacity="0.5"
+               innerResource="participants_exclusive_audio_rsc" showhandcursor="true">
+        <handler name="onclick">
+            if ($debug) Debug.write("Allow Give Exclusive Audio: ",canvas.publicSID);
+            var tDate = new Date();
+            canvas.thishib.sendMessageWithClient.sendMessage("applyForGiveExclusiveAudioOn",tDate.getTime());
+        </handler>
+        <labelTooltip labelid="1432" />
+    </miniIconsNew>
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/resources/audio_and_video.fla b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/audio_and_video.fla
new file mode 100644
index 0000000..2e1e601
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/audio_and_video.fla
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/resources/audio_and_video.png b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/audio_and_video.png
new file mode 100644
index 0000000..f35bb10
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/audio_and_video.png
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/resources/audio_and_video_no.fla b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/audio_and_video_no.fla
new file mode 100644
index 0000000..a9962f3
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/audio_and_video_no.fla
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/resources/audio_and_video_no.png b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/audio_and_video_no.png
new file mode 100644
index 0000000..857db9c
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/audio_and_video_no.png
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/resources/bullet_ball_glass_green.png b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/bullet_ball_glass_green.png
new file mode 100644
index 0000000..bbdcb01
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/bullet_ball_glass_green.png
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/resources/bullet_ball_glass_red.png b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/bullet_ball_glass_red.png
new file mode 100644
index 0000000..886c125
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/bullet_ball_glass_red.png
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/resources/bullet_ball_glass_yellow.png b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/bullet_ball_glass_yellow.png
new file mode 100644
index 0000000..fbf19db
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/bullet_ball_glass_yellow.png
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/resources/cancel_icon.png b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/cancel_icon.png
new file mode 100644
index 0000000..2d26062
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/cancel_icon.png
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/resources/ledlightgreen.png b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/ledlightgreen.png
new file mode 100644
index 0000000..abbdd12
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/ledlightgreen.png
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/resources/monitor_add.png b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/monitor_add.png
new file mode 100644
index 0000000..a818066
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/monitor_add.png
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/resources/monitor_delete.png b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/monitor_delete.png
new file mode 100644
index 0000000..3733256
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/monitor_delete.png
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/resources/mouse_add.png b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/mouse_add.png
new file mode 100644
index 0000000..65bcab5
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/mouse_add.png
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/resources/mouse_delete.png b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/mouse_delete.png
new file mode 100644
index 0000000..7286566
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/mouse_delete.png
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/resources/mute_micro.fla b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/mute_micro.fla
new file mode 100644
index 0000000..210ddbf
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/mute_micro.fla
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/resources/mute_micro.png b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/mute_micro.png
new file mode 100644
index 0000000..71efdbe
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/mute_micro.png
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/resources/mute_micro_red.fla b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/mute_micro_red.fla
new file mode 100644
index 0000000..287c2a0
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/mute_micro_red.fla
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/resources/mute_micro_red.png b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/mute_micro_red.png
new file mode 100644
index 0000000..29e16b5
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/mute_micro_red.png
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/resources/page_edit.png b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/page_edit.png
new file mode 100644
index 0000000..046811e
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/page_edit.png
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/resources/sidebar_close.fla b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/sidebar_close.fla
new file mode 100644
index 0000000..1d5fffd
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/sidebar_close.fla
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/resources/sidebar_close.png b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/sidebar_close.png
new file mode 100644
index 0000000..08020fd
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/sidebar_close.png
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/resources/sidebar_open.fla b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/sidebar_open.fla
new file mode 100644
index 0000000..0fd7f7f
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/sidebar_open.fla
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/resources/sidebar_open.png b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/sidebar_open.png
new file mode 100644
index 0000000..e778538
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/resources/sidebar_open.png
Binary files differ
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/restrictedConferenceRoom.lzx b/WebContent/src/modules/conference/flexibleConferenceRoom/restrictedConferenceRoom.lzx
new file mode 100644
index 0000000..8543653
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/restrictedConferenceRoom.lzx
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="restrictedConferenceRoom" extends="baseConferenceRoom">
+
+    <handler name="oninit">
+        new lz.restrictedConferenceMenubar(canvas._conferencemenu);
+        
+        new lz.moderationPanel(canvas._conferencemenu,{
+                    name:'_moderationPanel',align:'right',
+                    allowUserQuestions:this.roomobj.allowUserQuestions,
+                    roomName:this.roomobj.name
+                });  
+                
+        canvas._conferencemenu.setAttribute('visibility','visible');
+        
+        if ($debug) Debug.write("this.roomobj ",this.roomobj);
+        
+        if(this.roomobj.appointment){
+            canvas.appointmentNotificationPopUp =
+                new lz.appointmentNotificationPopUp(canvas.conferenceView,{ 
+                        name:'appDetail', roomobj:this.roomobj });   
+        } else{
+            if ($debug) Debug.write("no appointed meeting");
+        }
+        
+        if (this.roomobj.isDemoRoom) {
+            if (this.roomobj.demoTime != null) {
+                if ($debug) Debug.warn("THIS IS A DEMO ROOM THAT SHOULD CLOSE AFTER SEC: ",this.roomobj.demoTime);
+                this.meetingTimer = new lz.meetingTimer(canvas,{refObj:this,roomobj:this.roomobj});
+            }
+        }
+        
+        canvas.currentBaseConferenceRoom = this;
+        canvas._videocontainer.setAttribute("allowUserQuestions",this.roomobj.allowUserQuestions);
+    </handler>
+    
+    <handler name="ontabcontentleave">
+        if ($debug) Debug.write("################# ontabcontentleave:",this);
+        
+        this._screenSharingAdapter.closeAllScreenSharings();
+        
+        canvas.currentBaseConferenceRoom = null;
+        
+        //reset the right to draw on WHiteboard as the RoomClient Object will be destroyed also
+        //on server-Side the canDraw status will be false again when you relogin the same room
+        canvas.isAllowedToDraw = true;
+        
+        _mainScrollBar.setAttribute("visibility","visible");
+        
+        //reset rights
+        canvas.isAllowedToGiveExclusiveAudio = false;
+        
+        if (canvas._videocontainer!=null){
+            canvas._videocontainer.resetAllValues();
+            canvas._videocontainer = null;
+        }
+        if (canvas._chatcontent!=null){
+            canvas._chatcontent = null;
+        }
+        if (canvas._mymod!=null){
+            canvas._mymod = null;
+        }
+        
+        if (this.meetingTimer != null) {
+            this.meetingTimer.close();
+        }
+        
+        if (canvas._drawarea.letterObjectIsActive){
+            canvas._drawarea.currentletterObj.destroy();
+        }
+        
+        if (canvas.currentFileExplorer != null) {
+            canvas.currentFileExplorer = null;
+        }
+        
+        if (canvas.currentActivityList != null) {
+            canvas.currentActivityList = null;
+        }
+        
+        //reset if the user was connected to any slave
+        canvas.isSlaveHosted = false;
+        
+        //@deprecated we will not use old screen sharing implementation
+        //canvas._screens.clearAllSessions();
+        this.logicalRoomLeave.doCall();
+        if ($debug) Debug.write("############ this.logicalRoomLeave ",this.logicalRoomLeave);
+    </handler>
+
+    <netRemoteCallHib name="logicalRoomLeave" funcname="logicalRoomLeave" remotecontext="$once{ canvas.thishib }" >
+        <handler name="ondata" args="value">
+            if ($debug) Debug.write("############# logicalRoomLeave: ",value);
+            //this.parent.destroy();
+            canvas.thishib.reconnectAfterRoomleft = true;
+            canvas.thishib.reconnectedRoomInstance = this.parent;
+            
+            // Reconnect User to default Scope
+            canvas.thishib.userScope = "hibernate";
+            var src = hib.getUrl();
+            canvas.thishib.setAttribute('src',src);
+            canvas.thishib.disconnect();
+            canvas._mainbgcontentNavi.setAttribute('height',canvas.naviHeight);
+            canvas.setAttribute('naviHeightDelta',canvas.naviHeight);
+            canvas._conferencemenu.removeAll();
+            canvas._conferencemenu.setAttribute('visibility','hidden');
+        </handler>
+    </netRemoteCallHib>
+    
+    <restrictedRoomSidebar name="_sidePanel" restricted="true" 
+                      listType="eventUserListTableWithNames" />
+    
+    <view name="_videoviewcontent_hideWhiteboard" y="0" x="${ parent._sidePanel.width }"
+		  width="${canvas.width-parent._sidePanel.width}" height="${canvas.height-(parent._chatPanelStrict.height) - 
+        ((parent._chatPanelStrict.visibility == 'hidden') ? 5:28)}" clip="true" 
+		  visibility="${((canvas.currentRoomObj.hideWhiteboard) ? 'visible':'hidden')}">
+			<view name="_inn" width="${parent.width-10}">				
+				<wrappinglayout axis="x" spacing="10"/>
+			</view>
+			<om_vscrollbar name="_attenddeescrollbar" visibility="visible"></om_vscrollbar>
+	</view>
+    
+    <fixedFileExplorerWhiteboardPanel name="_whiteboard" labelid="615"
+        y="0" x="${ parent._sidePanel.width }" 
+        width="${ canvas.width - parent._sidePanel.width }"
+        height="${ canvas.height - (parent._chatPanelStrict.height) - ((parent._chatPanelStrict.visibility == 'hidden') ? 0:28) }" />
+        
+    <!--
+        ###############################
+        This is the container for all Videos
+     -->
+    <commonVideoViewContent name="_videoviewcontent" />
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/roomSidebar/conferenceRoomSidebar.lzx b/WebContent/src/modules/conference/flexibleConferenceRoom/roomSidebar/conferenceRoomSidebar.lzx
new file mode 100644
index 0000000..50c898e
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/roomSidebar/conferenceRoomSidebar.lzx
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="conferenceRoomSidebar" extends="view" width="280" bgcolor="$once{ canvas.getThemeColor('mainBackgroundColor') }" 
+       height="${ canvas.height - ((canvas.currentRoomObj.hideTopBar) ? 0:28) }" y="0" clip="true">
+    
+    <attribute name="selected" value="null" />
+    
+    <attribute name="isOpen" value="true" type="boolean"/>
+    
+    <method name="doSelection" args="itemRef">
+        <![CDATA[
+            if (this.selected != null) {
+                this.selected.deselect();
+            }
+            
+            this.selected = itemRef;
+            this.selected.select();
+          
+            if ($debug) Debug.write("this.selected.name ",this.selected.name);
+            
+            if (this.selected.name == "userTabButton") {
+                if ($debug) Debug.write("-- userTabButton");
+                this._files.setAttribute("visibility","hidden");
+                this._videocontainer._applyAndStatusIcons.setAttribute("visibility","visible");
+                this._videocontainer._participants.setAttribute("visibility","visible");
+            } else if (this.selected.name == "filesTabButton") {
+                if ($debug) Debug.write("-- filesTabButton");
+                this._files.setAttribute("visibility","visible");
+                this._videocontainer._applyAndStatusIcons.setAttribute("visibility","hidden");
+                this._videocontainer._participants.setAttribute("visibility","hidden");
+            }
+        ]]>
+    </method>
+    
+    <method name="toggleStatus">
+        if (this.isOpen) {
+            this._doClose.setAttribute('started', true);
+            this.isOpen = false;
+            this._minimizeSidebar._icon.setAttribute("frame",2);
+            this._minimizeSidebar._icon._labelTooltip.setAttribute("labelid",857);
+        } else {
+            this._doOpen.setAttribute('started', true);
+            this.isOpen = true;
+            this._minimizeSidebar._icon.setAttribute("frame",1);
+            this._minimizeSidebar._icon._labelTooltip.setAttribute("labelid",856);
+        }
+    </method>
+    
+    <view name="borderBarTop" y="0"
+    			width="${ parent.width }" bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }" height="1" />
+   	<view name="_tabbarBg" width="${ parent.width }" height="32" y="1" bgcolor="0xFAFAFA" />
+	<view name="borderBarBottom" y="34"
+   			width="${ parent.width }" bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }" height="1" /> 
+    
+    <view name="_head" y="1" width="${ parent.width-10 }" height="32"
+    		  layout="axis:x;spacing:2;inset:2" >
+    
+    	<handler name="oninit">
+		<![CDATA[
+    		for (var eg in this.subviews) {
+            	this.subviews[eg].deselect();
+            }
+            if (!canvas.currentRoomObj.hideFilesExplorer && canvas.currentRoomObj.filesOpened) {
+				this.filesTabButton.doSelection();
+			} else {
+				this.userTabButton.doSelection();
+			}
+		]]>
+    	</handler>
+   
+        <tabButtonMain name="userTabButton" height="$once{ parent.height }" width="$once{ (parent.width-6)/2 }"
+                currentIconRsc="users_tab_btn" labelid="613" />
+        
+        <tabButtonMain name="filesTabButton" currentIconRsc="files_tab_btn" height="$once{ parent.height }" 
+                labelid="614" width="$once{ (parent.width-6)/2 }"
+                visible="${(canvas.currentRoomObj.hideFilesExplorer ? false:true)}"/>
+        
+    </view>
+    
+    <fileExplorer name="_files" y="22" width="$once{ parent.width-12 }"
+               height="${ parent.height-222 }" visibility="hidden" />
+    
+    <participants name="_videocontainer" y="36" 
+                  width="$once{ parent.width-10 }" 
+               height="${ parent.height-((canvas.currentRoomObj.hideActivitiesAndActions == true) ? 36:236) }" />
+               
+    <activityList name="_activityList" />
+    
+    <view name="_minimizeSidebar" x="${ parent.width - 10 }" width="10" y="1"
+          				bgcolor="0xE0E1EB" height="${ parent.height-1 }">
+        <handler name="onclick">
+            parent.toggleStatus();
+        </handler>
+        
+        <view width="${ parent.width }" height="$once{ parent.height }" 
+               bgcolor="0xE0E1EB" >
+        </view>
+            
+        <view name="_icon" resource="sidebar_tab_btn" y="0">
+             <handler name="onclick">
+	            parent.parent.toggleStatus();
+	         </handler>
+	         <labelTooltip name="_labelTooltip" labelid="856" />
+        </view>
+        
+    </view>
+    
+    <animator name="_doOpen" attribute="width" to="$once{ parent.width }" 
+              duration="750" started="false" />
+              
+    <animator name="_doClose" attribute="width" to="10" 
+              duration="750" started="false" />
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/roomSidebar/conferenceRoomSidebarTabButton.lzx b/WebContent/src/modules/conference/flexibleConferenceRoom/roomSidebar/conferenceRoomSidebarTabButton.lzx
new file mode 100644
index 0000000..537b473
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/roomSidebar/conferenceRoomSidebarTabButton.lzx
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="conferenceRoomSidebarTabButton" extends="view" 
+	   width="$once{ (parent.width-2)/2 }" height="36" y="0">
+	
+	<attribute name="labelid" value="0" type="number" />
+	
+	<attribute name="selected" value="false" type="boolean" />
+	
+	<attribute name="textFontSize" value="14" type="number" />
+	
+	<attribute name="currentIconRsc" value="" type="string"/>
+	
+	<handler name="oninit">
+		if (this.selected) {
+			parent.parent.doSelection(this);
+		}
+	</handler>
+	
+	<handler name="onclick">
+		parent.parent.doSelection(this);
+	</handler>
+	
+	<handler name="onmouseover">
+		if (!this.selected) {
+			this._bg1.setAttribute("visibility","visible");
+		}
+	</handler>
+	
+	<handler name="onmouseout">
+        this._bg1.setAttribute("visibility","hidden");
+    </handler>
+	
+	<method name="select">
+		this.selected = true;
+		this._icon.setAttribute("opacity",1);
+        this._text.setAttribute("opacity",1);
+        this._bg1.setAttribute("visibility","hidden");
+		this._bg2.setAttribute("visibility","visible");
+		this._text.setAttribute("fontstyle","bold");
+		this._text.setAttribute("fgcolor","0xFFFFFF");
+	</method>
+     
+    <method name="deselect">
+        this.selected = false;
+        this._icon.setAttribute("opacity",0.5);
+        this._text.setAttribute("opacity",0.5);
+        this._bg2.setAttribute("visibility","hidden");
+        this._text.setAttribute("fontstyle","bold");
+        this._text.setAttribute("fgcolor","0xFFFFFF");
+    </method>       
+    
+    
+    <view name="_bg1" bgcolor="0xFFFFFF" width="$once{ parent.width }" 
+          height="$once{ parent.height }" opacity="0.7" visibility="hidden"/> 
+          
+    <view name="_bg2" bgcolor="0xFFFFFF" width="$once{ parent.width }" 
+          height="$once{ parent.height }" opacity="0.4" visibility="hidden"/>
+    
+    <view x="4" y="6" name="_icon" resource="$once{ parent.currentIconRsc }" />
+                
+    <labelText name="_text" x="28" fontsize="$once{ parent.textFontSize }" valign="middle" 
+               fgcolor="0xFFFFFF" labelid="$once{ parent.labelid }" />
+	
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/roomSidebar/interviewRoomSidebar.lzx b/WebContent/src/modules/conference/flexibleConferenceRoom/roomSidebar/interviewRoomSidebar.lzx
new file mode 100644
index 0000000..84e9f88
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/roomSidebar/interviewRoomSidebar.lzx
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="interviewRoomSidebar" extends="view" width="280" 
+       height="${ canvas.height - ((canvas.currentRoomObj.hideTopBar) ? 0:28) }" y="0" clip="true">
+    
+    <attribute name="selected" value="null" />
+    
+    <attribute name="isOpen" value="true" type="boolean"/>
+    
+    <attribute name="restricted" value="true" type="boolean" />
+   
+    <attribute name="listType" value="eventUserListTable" type="string" />
+    
+    <method name="doSelection" args="itemRef">
+        <![CDATA[
+            if (this.selected != null) {
+                this.selected.deselect();
+            }
+            
+            this.selected = itemRef;
+            this.selected.select();
+          
+        ]]>
+    </method>
+    
+    <view name="borderBarTop" y="0"
+    			width="${ parent.width }" bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }" height="1" />
+   	<view name="_tabbarBg" width="${ parent.width }" height="32" y="1" bgcolor="0xFAFAFA" />
+	<view name="borderBarBottom" y="34"
+   			width="${ parent.width }" bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }" height="1" /> 
+    
+    <view name="_head" y="1" width="${ parent.width-10 }" height="32"
+    		  layout="axis:x;spacing:2;inset:2" >
+    
+    	<handler name="oninit">
+    		for (var eg in this.subviews) {
+            	this.subviews[eg].deselect();
+            }
+            this.userTabButton.doSelection();
+    	</handler>
+        
+        <tabButtonMain name="userTabButton" height="$once{ parent.height }" width="$once{ (parent.width-6)/2 }"
+                currentIconRsc="users_tab_btn" labelid="613" />
+        
+    </view>
+    
+    <interviewUserList name="_videocontainer" y="36"
+			   width="$once{ parent.width-10 }" 
+               height="${ parent.height-((canvas.currentRoomObj.hideActivitiesAndActions == true) ? 36:236) }" />
+               
+    <activityList name="_activityList" />
+    
+    <view name="_minimizeSidebar" x="${ parent.width - 10 }" width="10" y="1"
+    	bgcolor="0xE0E1EB" height="${ parent.height-1 }">
+        
+        <view width="${ parent.width }" height="$once{ parent.height }" 
+               bgcolor="0xE0E1EB" >
+        </view>
+    </view>
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/roomSidebar/library.lzx b/WebContent/src/modules/conference/flexibleConferenceRoom/roomSidebar/library.lzx
new file mode 100644
index 0000000..7d1201e
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/roomSidebar/library.lzx
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+    <include href="conferenceRoomSidebar.lzx" />
+    <include href="interviewRoomSidebar.lzx" />
+    <include href="restrictedRoomSidebar.lzx" />
+    <include href="conferenceRoomSidebarTabButton.lzx" />
+    
+</library>
diff --git a/WebContent/src/modules/conference/flexibleConferenceRoom/roomSidebar/restrictedRoomSidebar.lzx b/WebContent/src/modules/conference/flexibleConferenceRoom/roomSidebar/restrictedRoomSidebar.lzx
new file mode 100644
index 0000000..e740760
--- /dev/null
+++ b/WebContent/src/modules/conference/flexibleConferenceRoom/roomSidebar/restrictedRoomSidebar.lzx
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="restrictedRoomSidebar" extends="view" width="280"
+       height="${ canvas.height - 28 }" y="0" clip="true">
+    
+    <attribute name="selected" value="null" />
+    
+    <attribute name="isOpen" value="true" type="boolean"/>
+    
+    <attribute name="restricted" value="true" type="boolean" />
+   
+    <attribute name="listType" value="eventUserListTable" type="string" />
+    
+    <method name="doSelection" args="itemRef">
+        <![CDATA[
+        	if (itemRef.name == "filesTabButton") {
+            	if (this.restricted) {
+            		if (!canvas.ismoderator && !canvas.isAllowedToDraw) {
+            			//Do not allow
+            			new lz.labelerrorPopup(canvas,{errorlabelid:783});
+            			return;
+            		}
+            	}
+        	}
+            	
+            if (this.selected != null) {
+                this.selected.deselect();
+            }
+            
+            this.selected = itemRef;
+            this.selected.select();
+          
+            if ($debug) Debug.write("this.selected.name ",this.selected.name, this.inited);
+            
+            if (this.selected.name == "userTabButton") {
+                if ($debug) Debug.write("-- userTabButton");
+                this._files.setAttribute("visibility","hidden");
+                this._participants.setAttribute("visibility","visible");
+            } else if (this.selected.name == "filesTabButton") {
+                if ($debug) Debug.write("-- filesTabButton");
+                this._files.setAttribute("visibility","visible");
+                this._participants.setAttribute("visibility","hidden");
+            }
+        ]]>
+    </method>
+    
+    <method name="toggleStatus">
+        if (this.isOpen) {
+            this._doClose.setAttribute('started', true);
+            this.isOpen = false;
+            this._minimizeSidebar._icon.setAttribute("frame",2);
+            this._minimizeSidebar._icon._labelTooltip.setAttribute("labelid",857);
+        } else {
+            this._doOpen.setAttribute('started', true);
+            this.isOpen = true;
+            this._minimizeSidebar._icon.setAttribute("frame",1);
+            this._minimizeSidebar._icon._labelTooltip.setAttribute("labelid",856);
+        }
+    </method>
+    
+    <view name="borderBarTop" y="0"
+    			width="${ parent.width }" bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }" height="1" />
+   	<view name="_tabbarBg" width="${ parent.width }" height="32" y="1" bgcolor="0xFAFAFA" />
+	<view name="borderBarBottom" y="34"
+   			width="${ parent.width }" bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }" height="1" /> 
+    
+    <view name="_head" y="1" width="${ parent.width-10 }" height="32"
+    		  layout="axis:x;spacing:2;inset:2" >
+    
+    	<handler name="oninit">
+		<![CDATA[
+    		for (var eg in this.subviews) {
+            	this.subviews[eg].deselect();
+            }
+            if (!canvas.currentRoomObj.hideFilesExplorer && canvas.currentRoomObj.filesOpened) {
+				this.filesTabButton.doSelection();
+			} else {
+				this.userTabButton.doSelection();
+			}
+		]]>
+    	</handler>
+   
+        <tabButtonMain name="userTabButton" height="$once{ parent.height }" width="$once{ (parent.width-6)/2 }"
+                currentIconRsc="users_tab_btn" labelid="613" />
+        
+        <tabButtonMain name="filesTabButton" currentIconRsc="files_tab_btn" height="$once{ parent.height }" 
+                labelid="614" width="$once{ (parent.width-6)/2 }"
+                visible="${(canvas.currentRoomObj.hideFilesExplorer ? false:true)}"/>
+        
+    </view>
+    
+    <fileExplorer name="_files" y="22" width="$once{ parent.width-12 }" 
+               height="${ parent.height-222 }" visibility="hidden" />
+    
+    <restrictedUserList name="_participants" y="36" 
+			    width="$once{ parent.width-10 }" 
+			   height="${ parent.height-((canvas.currentRoomObj.hideActivitiesAndActions == true) ? 36:236) }" />
+			   
+    <activityList name="_activityList" />
+    
+    <view name="_minimizeSidebar" x="${ parent.width - 10 }" width="10" y="1"
+          				bgcolor="0xE0E1EB" height="${ parent.height-1 }">
+        <handler name="onclick">
+            parent.toggleStatus();
+        </handler>
+        
+        <view width="${ parent.width }" height="$once{ parent.height }" 
+               bgcolor="0xE0E1EB" >
+        </view>
+            
+        <view name="_icon" resource="sidebar_tab_btn" y="0">
+             <handler name="onclick">
+	            parent.parent.toggleStatus();
+	         </handler>
+	         <labelTooltip name="_labelTooltip" labelid="856" />
+        </view>
+        
+    </view>
+    
+    <animator name="_doOpen" attribute="width" to="$once{ parent.width }" 
+              duration="750" started="false" />
+              
+    <animator name="_doClose" attribute="width" to="10" 
+              duration="750" started="false" />
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/interviewuserlist/interviewListInner.lzx b/WebContent/src/modules/conference/interviewuserlist/interviewListInner.lzx
new file mode 100644
index 0000000..941e8a0
--- /dev/null
+++ b/WebContent/src/modules/conference/interviewuserlist/interviewListInner.lzx
@@ -0,0 +1,292 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+<class name="interviewListTable" extends="view" y="60" 
+       height="${ parent.height-64-parent.moderationPanel.height }"
+        bgcolor="0xFFFFFF" x="2" clip="true" width="$once{ parent.width-4 }" >
+        <innerlistViewEventUserListTable name="innerList" />
+    <om_vscrollbar />
+</class>    
+
+<class name="interviewListInner" extends="baseRoomInnerList"  
+       width="$once{ parent.width }" height="${ parent.height }" 
+       bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }" >
+    
+    <attribute name="selectedItem" value="null" />
+    
+    <attribute name="sortType" value="alphabetical" type="string" />    
+    
+    <handler name="oninit">
+        <![CDATA[
+            if ($debug) Debug.write("!!!!! interviewListTable oninit: ");
+            this.initList();
+        ]]>
+    </handler>
+    
+    <!-- clip="true" -->
+    
+    <view width="$once{ parent.width-2 }" height="${ parent.height-2 }" 
+        x="1" y="1" bgcolor="white" />
+
+    <method name="addItem" args="object">
+        <![CDATA[
+            if ($debug) Debug.write("interviewListTable addItem: ",object,object.publicSID);
+            var list = this._table.innerList;
+            for (var i = 0; i < list.subviews.length;i++) {
+                if (list.subviews[i].refObj.publicSID == object.publicSID) {
+                    //if ($debug) Debug.warn("Already on List, do not add twice");
+                    return;
+                }
+            }
+            var lastname = object.lastname;
+            if (object.isSuperModerator) {
+                lastname += " *";
+            }
+            
+            new lz.interviewUserListItem(list,{
+                    user_id:object.user_id,
+                    firstname:object.firstname,
+                    isSuperModerator:object.isSuperModerator,
+                    lastname:lastname,
+                    refObj:object,
+                    connectedSince:object.connectedSince,
+                    isMod:object.isMod,
+                    streamid:object.streamid,
+                    username:object.username,
+                    formatedDate:object.formatedDate
+                });
+            
+            this.sortUserList();
+            if (canvas.currentRoomObj.autoVideoSelect) {
+				if (object.publicSID == canvas.publicSID && !object.interviewPodId
+					&& (object.isMod || object.isSuperModerator || object.canDraw))
+				{
+		            for (var ii = 1; ii < 3; ++ii) {
+		            	var obj = getVideoObjectByInterviewPodId(ii);
+		            	if (!obj) {
+	            			var interviewBox = canvas._drawarea._videoviewcontent.searchImmediateSubnodes("name", "interviewVideoBox" + ii);
+	            			//if ($debug) Debug.write("!!!! interviewListInner:: interviewBox = ", ii, interviewBox);
+	           				interviewBox.sendConfirmation(canvas.publicSID);
+		            		break;
+		            	}
+					}
+				}
+			}
+        ]]>
+    </method>
+    
+    <method name="sortUserList">
+        <![CDATA[ 
+        
+           if (this.sortType == "alphabetical") {
+                function sortByName(a,b) {
+                   
+                    if(a.firstname.toLowerCase() < b.firstname.toLowerCase()) return -1;
+                    else if(a.firstname.toLowerCase() > b.firstname.toLowerCase()) return 1;
+                    else return 0;
+                
+                }
+            
+                this._table.innerList.subviews.sort(sortByStreamId);
+                this._table.innerList._layout.subviews.sort(sortByStreamId);
+            } else {
+                function sortByStreamId(a,b) {
+                   
+                    if(Number(a.streamid) == Number(b.streamid)) return 0;
+                    else if(Number(a.streamid) > Number(b.streamid)) return 1;
+                    else return -1;
+                
+                }
+            
+                this._table.innerList.subviews.sort(sortByStreamId);
+                this._table.innerList._layout.subviews.sort(sortByStreamId);
+            }
+            
+            this._table.innerList._layout.update(); 
+        ]]>
+    </method>
+        
+    
+    <method name="initList">
+        new lz.interviewListTable(this,{name:'_table'});
+        this.moderationPanel.bringToFront();
+    </method>
+    
+    <method name="clearList">
+        this._table.destroy();
+        this.initList();
+    </method>
+    
+	<method name="disconnectclient" args="publicSID">
+	<![CDATA[
+		var item = getUserListItemByPublicSID(publicSID);
+		if (item) {
+			item.destroy();
+		}
+	]]>
+	</method>
+    
+    <!--- get a Objects List Item
+        @param string publicSID publicSID
+     -->
+	<method name="getUserListItemByPublicSID" args="publicSID">
+	<![CDATA[
+		for (var i=0;i<this._table.innerList.subviews.length;i++){
+			//if ($debug) Debug.write("getUserListItemByPublicSID : this._table.innerList.subviews[i]",this._table.innerList.subviews[i]);
+			if (this._table.innerList.subviews[i].refObj.publicSID==publicSID){
+				return this._table.innerList.subviews[i];
+			}
+		}
+		return null;
+	]]>
+	</method>
+
+	<method name="getVideoObjectByInterviewPodId" args="interviewPodId">
+	<![CDATA[
+		var list = this._table.innerList.subviews;
+		for (var i = 0; i < list.length; ++i) {
+			//if ($debug) Debug.write("getVideoObjectByInterviewPodId : list[i]", list[i]);
+			if (list[i].refObj.interviewPodId == interviewPodId){
+				if ($debug) Debug.write("getVideoObjectByInterviewPodId : list[i].refObj.interviewPodId", interviewPodId, list[i].refObj.interviewPodId);
+				return list[i];
+			}
+		}
+		return null;
+	]]>
+	</method>
+
+    <method name="selectItem" args="itemObj">
+        <![CDATA[
+        if ($debug) Debug.write("selectItem ",itemObj);
+        
+        if (canvas.ismoderator) {
+            if (this.selectedItem != null && this.selectedItem != itemObj) {
+                this.selectedItem.deselect();
+            }
+            
+            this.selectedItem = itemObj;
+            if (this.selectedItem.isSelected) {
+                this.selectedItem.deselect();
+            } else {
+                this.selectedItem.select();
+            }
+        }
+        ]]>
+    </method>
+
+    <view name="userStatus" layout="axis:y">
+        <view>
+             <view resource="userstatus_multiframe_rsc" frame="1" />
+             <labelText x="16" labelid="677" />
+        </view>
+        <view>
+             <view resource="userstatus_multiframe_rsc" frame="2" />
+             <labelText x="16" labelid="678" />
+        </view>
+        <view>
+             <view resource="userstatus_multiframe_rsc" frame="3" />
+             <labelText x="16" labelid="679" />
+        </view>
+    </view>
+    
+    <moderationMiniIconsInterviewUserList name="_applyAndStatusIcons" 
+                          x="$once{ parent.width-this.width-4 }" y="2" />
+    
+    <!--
+    <eventUserListTable name="_table" /> 
+     -->
+    <view name="moderationPanel" height="0" clip="true" 
+          y="${ parent.height - this.height - 2 }">
+        
+        <handler name="onismoderator" reference="canvas" args="m">
+            if ($debug) Debug.write("###### ismoderator ",m);
+            <![CDATA[
+                //this.isMod = canvas.getIsModeratorByPublicSID(this.refObj.publicSID);
+                this.updateIcons();
+            ]]>
+        </handler>
+        
+        <handler name="ondrawAllowStatus" reference="canvas" args="drawObject">
+            <![CDATA[
+                //search for the user and update its drawStatusIcon
+                var vList = parent._table.innerList.subviews;
+                for (var i=0;i<vList.length;i++) {
+                    //vList[i].updateIconByMod();
+                    if (vList[i].refObj.publicSID == drawObject.publicSID) {
+                        vList[i].refObj.canDraw = drawObject.canDraw;
+                        vList[i].updateIconByMod();
+                        break;
+                    }
+                }
+            ]]>
+        </handler>
+        
+        <handler name="onlastBroadCastingUser" reference="canvas" args="userObject">
+            <![CDATA[
+                
+                if (!userObject.isBroadcasting) {
+                    //Stop Broadcasting and close Dialog
+                    //Search, stop and remove video
+                    parent.parent.removeVideoByUser(userObject);
+                }
+                
+                //search for the user and update its drawStatusIcon
+                var vList = parent._table.innerList.subviews;
+                for (var i=0;i<vList.length;i++) {
+                    //vList[i].updateIconByMod();
+                    if (vList[i].refObj.publicSID == userObject.publicSID) {
+                        vList[i].refObj.isBroadcasting = userObject.isBroadcasting;
+                        vList[i].updateIconByMod();
+                        break;
+                    }
+                }
+                
+                parent._applyAndStatusIcons.updateIcons();
+            ]]>
+        </handler>
+        
+        <method name="updateIcons">
+            <![CDATA[
+                if (canvas.ismoderator) {
+                    this.showItem.setAttribute('started', true);
+                } else {
+                    this.setAttribute("height",0);
+                }
+                var vList = parent._table.innerList.subviews;
+                
+                for (var i=0;i<vList.length;i++) {
+                    vList[i].updateIconByMod();
+                }
+                parent._applyAndStatusIcons.updateIcons();
+            ]]>
+        </method>
+        
+        <labelText labelid="912" width="270" x="0" multiline="true" y="0" />
+        
+        <animator name="showItem" attribute="height" 
+                  to="60" duration="1000" started="false" />
+    </view>
+
+</class>
+
+
+</library>
\ No newline at end of file
diff --git a/WebContent/src/modules/conference/interviewuserlist/interviewModerationMiniIcons.lzx b/WebContent/src/modules/conference/interviewuserlist/interviewModerationMiniIcons.lzx
new file mode 100644
index 0000000..52de0c2
--- /dev/null
+++ b/WebContent/src/modules/conference/interviewuserlist/interviewModerationMiniIcons.lzx
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="interviewModerationMiniIcons" extends="view" valign="bottom" height="18">
+	
+	<attribute name="isMod" value="false" type="boolean"/>
+    <attribute name="isSuperModerator" value="false" type="boolean"/>
+	
+	<handler name="oninit">
+		this.isMod = canvas.getIsModeratorByPublicSID(parent.refObj.publicSID);
+		
+		if ($debug) Debug.write("this.isMod ",this.isMod);
+		
+		if (this.isMod) {
+			this._isMod.setAttribute("visibility","visible");
+			this._isModAddbutton.setAttribute("visibility","hidden");
+		} else {
+			this._isMod.setAttribute("visibility","hidden");
+            this._isModAddbutton.setAttribute("visibility","visible");
+		}
+		
+	</handler>
+        
+    <miniIcons name="_isMod" x="0" width="16" resource="participants_isMod_rsc" height="16">
+        <handler name="onclick">
+            <![CDATA[
+            
+                if (parent.isSuperModerator) {
+                    new lz.labelerrorPopup(canvas.main_content._content.inner,{errorlabelid:838});
+                    return;
+                }
+            
+                //if the label is set and this is a Moderator then this user should
+                //allow the click event => the click event will trigger
+                //this user away from beeing able to draw on the whiteboard
+                if (canvas.ismoderator) {
+                    //Do it 
+                    if ($debug) Debug.write("Do Remove It");
+                    if (parent.parent.refObj.publicSID != canvas.publicSID) {
+                        hib.removeModerator.publicSIDOfNewModerator = parent.parent.refObj.publicSID;
+                        hib.removeModerator.doCall();
+                    } else {
+                    	new lz.labelerrorPopup(canvas,{errorlabelid:682});
+                    }
+                    //parent.parent.setCanDraw.doCall();
+                }
+            ]]>
+        </handler>
+        <labelTooltip name="_text" labelid="675" />
+    </miniIcons>
+    
+    <miniIcons name="_isModAddbutton" opacity="0.5" x="0" width="16" resource="participants_isMod_rsc" height="16">
+        <handler name="onclick">
+            <![CDATA[
+                //if the label is set and this is a Moderator then this user should
+                //allow the click event => the click event will trigger
+                //this user away from beeing able to draw on the whiteboard
+                if (canvas.ismoderator) {
+                    //Do it 
+                    if ($debug) Debug.write("Do Add It");
+                    hib.addModerator.publicSIDOfNewModerator = parent.parent.refObj.publicSID;
+                    hib.addModerator.doCall();
+                    //parent.parent.setCanDraw.doCall();
+                }
+            ]]>
+        </handler>
+        <labelTooltip name="_text" labelid="676" />
+    </miniIcons>
+        
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/interviewuserlist/interviewUserList.lzx b/WebContent/src/modules/conference/interviewuserlist/interviewUserList.lzx
new file mode 100644
index 0000000..a42e6f1
--- /dev/null
+++ b/WebContent/src/modules/conference/interviewuserlist/interviewUserList.lzx
@@ -0,0 +1,254 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+ 
+<class name="interviewUserList" extends="view" width="$once{ parent.width }" 
+       height="${ parent.height-34 }">
+
+    <!--- holds a references to the videoview which is broadcasting -->
+    <attribute name="broadCastViewRef" value="null" />
+    
+    <!--- colors for each user -->
+    <attribute name="colorArray" value="null" />
+
+    <attribute name="showsVideoInSeparateComponent" value="false" type="boolean" />
+    
+    <handler name="oninit">
+        //set modus
+        canvas.thishib.modus = "interview";
+        
+        //set reference, this reference will be cleared at *ontabcontenctleave* event
+        canvas._videocontainer=this;
+        
+        // Reconnect User to its Room Id
+        canvas.thishib.userScope = canvas.thishib.currentroomid;
+        var src = hib.getUrl();
+        
+        if( $debug ) Debug.write("videoContainer: canvas.thishib: ",canvas.thishib.src,canvas.thishib);
+        
+        if (canvas.thishib.src != src) {
+            canvas.thishib.setAttribute('src',src);
+            
+			if (canvas.wicketsid == null){            
+	            canvas.thishib.reconnectionAction = true;
+	            canvas.thishib.reconnectObjRef = this;
+	            canvas.thishib.disconnect();
+            } else {
+            	this.reconnectSuccess();
+            }
+        } else {
+            //The user is already in the correct Scope
+            this.reconnectSuccess();
+        }
+    </handler>
+                  
+    <method name="reconnectSuccess">
+        if ($debug) Debug.warn("User Reloged In ",canvas.becomemoderator);
+        //Send to SWF10 video-container to connect on the conference room url 
+        //and wait for the as3ConnectionSuccess-Event
+        this._videoviewcontent.reconnectSuccess(true);
+    </method>
+    
+    <!---
+        We need to wait till the video-container / as3 app has the connection established
+        otherwise it can happen that the video tries to start playing before the rtmp-connection
+        was established
+     -->
+    <method name="as3ConnectionSuccess">
+        if ($debug) Debug.write("as3ConnectionSuccess continue loading");
+        //set default values and get already availible streams
+        //it can happen that if you click to exit the room the views are not 
+        //not cleaned up yet and you receive this event from the LocalConnection
+        if (this["getRoomModeratorsByRoomId"]) {
+            this.getRoomModeratorsByRoomId.doCall();
+        }
+    </method>
+    
+    <netRemoteCallHib name="getRoomModeratorsByRoomId" funcname="conferenceservice.getRoomModeratorsByRoomId" 
+                      remotecontext="$once{ canvas.thishib }" >  
+        <netparam><method name="getValue">return canvas.sessionId;</method></netparam>    
+        <netparam><method name="getValue">return hib.currentroomid;</method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+                if ($debug) Debug.write("getRoomModeratorsByRoomId: ",value);
+                canvas.becomeSuperModerator = false;
+                
+                parent.setRoomValues.applyDefaultModeration = canvas.becomemoderator;
+                
+                for (var i=0;i<value.length;i++) {
+                    
+                    if (value[i].user.user_id == canvas.user_id) {
+                        parent.setRoomValues.applyDefaultModeration = true;
+                        canvas.becomeSuperModerator = value[i].isSuperModerator;
+                        if ($debug) Debug.info("Make this User to an Moderator");
+                        break;
+                    }
+                    
+                }
+                
+                if ($debug) Debug.write("canvas.becomemoderator: ",canvas.becomemoderator);
+                if ($debug) Debug.write("canvas.becomeSuperModerator: ",canvas.becomeSuperModerator);
+                
+                canvas.currentusercolor = canvas.getColorForUser();
+                
+                var organisation_id = 1;
+            
+                if ($debug) Debug.write(hib.userobject); 
+                if ($debug) Debug.write(hib.currentdomainObj); 
+                
+                if (hib.currentdomainObj != null) {
+                    organisation_id = hib.currentdomainObj.organisation_id
+                }
+                
+                this.parent.setRoomValues.organisation_id = organisation_id;
+                this.parent.setRoomValues.doCall();
+            
+            ]]>
+        </handler>
+    </netRemoteCallHib>     
+
+    <netRemoteCallHib name="setRoomValues" funcname="setRoomValues" remotecontext="$once{ canvas.thishib }" >   
+        <attribute name="applyDefaultModeration" value="false" type="boolean" />
+        <attribute name="organisation_id" value="0" type="number" />
+        <netparam><method name="getValue">return hib.currentroomid;</method></netparam>
+        <netparam><method name="getValue">return parent.applyDefaultModeration;</method></netparam>
+        <netparam><method name="getValue">return canvas.becomeSuperModerator;</method></netparam>
+        <netparam><method name="getValue">return parent.organisation_id;</method></netparam>
+        <netparam><method name="getValue">return canvas.currentusercolor;</method></netparam>
+        <handler name="ondata" args="roomStatus">
+            <![CDATA[
+            //The onResult-Handler will be called be the rtmpconnection
+            //if ($debug) Debug.write("setRoomValues1: ",value);
+            //if ($debug) Debug.write("setRoomValues2: ",hib.currentroomid);
+            
+            if (roomStatus.roomFull) {
+                canvas.thishib.showFullMessage = true;
+                canvas.thishib.disconnect();
+            }
+            
+            if (roomStatus.browserStatus.browserInited) {
+                var tObj = new Object();
+                tObj[0] = "newBrowserURL";
+                tObj[1] = roomStatus.browserStatus.currentURL;
+                canvas.startBrowser(tObj);
+            }
+            
+            var value = roomStatus.clientList;
+            
+            for (var i = 0; i < value.length; ++i){
+                if ( value[i].streamid == canvas.streamid ) {
+                    canvas.isAllowedToDraw = value[i].canDraw;
+                }
+
+                this.parent.addItem(value[i].connectedSince,value[i].isMod,value[i].streamid,value[i].username,
+                              '',value[i].formatedDate,value[i].userpos,value[i].usercolor,value[i]);
+            }
+            //this content must be inited _after_ setting the default values
+            canvas.thishib.getCurrentModeratorList.doCall(); 
+            //FIXME Issue-1076
+            canvas.thishib.checkLzRecording.doCall();
+            if (canvas._currentChatPanel.visible) {
+				canvas._currentChatPanel.toggleopen();
+			}
+            ]]>
+        </handler>  
+    </netRemoteCallHib>
+
+    <!-- invoked if another client logs into the room 
+    after choosing devices -->     
+    <method name="setAVSettingsToClient" args="rcl">
+         this._videoviewcontent.setAVSettingsToClient(rcl);
+    </method> 
+    
+    <method name="addItem" args="connectedSince,isMod,streamid,username,userroom,formatedDate,position,color,object">
+        <![CDATA[
+            if ($debug) Debug.write("initializeStreams addItem: ",connectedSince,object);
+            
+            //Do init only in case this stream is NOT the same as we are
+            if (streamid!=canvas.streamid){
+                //if ($debug) Debug.write("???????? object.isBroadcasting :: ",object.isBroadcasting);
+                this._videoviewcontent.createVideo(object.publicSID, object.firstname+' '+object.lastname, object.broadCastID, object.avsettings, object.interviewPodId, object);
+            }
+           
+            //do add self too
+            this._participants.addItem(object);
+        ]]>
+    </method>
+    
+    <method name="addClientItem" args="connectedSince,isMod,streamid,username,room_id,formatedDate,position,color,object">
+        <![CDATA[
+        if ($debug) Debug.write("### initializeStreams addClientItem: ",connectedSince,isMod,streamid,username,room_id,formatedDate);
+
+        if (canvas.publicSID != object.publicSID){
+            this._videoviewcontent.createVideoObject(object.publicSID, false, object.interviewPodId, object);
+        }
+
+        //Do Add it anyway
+        this._participants.addItem(object);
+        ]]>
+    </method>
+        
+    <!--
+        invoked whenever a User starts to Stream Video in this Room,
+        interviewPodId has only a meaning in the Room Type Interview
+     -->
+    <method name="startStream" args="publicSID,broadcastId,firstname,lastname,interviewPodId,VWidth,VHeight">
+        this._videoviewcontent.startStream(publicSID,broadcastId,firstname,lastname,interviewPodId,VWidth,VHeight);
+    </method>
+
+    <method name="updateMuteStatusVideoView" args="roomClient">
+        this._videoviewcontent.updateMuteStatusVideoView(roomClient);
+    </method>
+    
+    <method name="setSpeakingByPos" args="publicSID,bool">
+        this._videoviewcontent.setSpeakingByPos(publicSID, bool);
+    </method>  
+    
+    <!--- 
+        stops the streaming but does not destroy the view
+        @param int broadcastId broadcastId
+     -->
+    <method name="closeStreamClient" args="publicSID">
+        this._videoviewcontent.closeStreamClient(publicSID);
+    </method>
+    
+    <method name="removeVideoByUser" args="userObject">
+    	if ($debug) Debug.write("removeVideoByUser ",userObject);
+        this.closeStreamClient(userObject.publicSID);
+    </method>
+    
+    <method name="disconnectclient" args="publicSID">
+        this._videoviewcontent.disconnectclient(publicSID);
+        this._participants.disconnectclient(publicSID);
+    </method>
+    
+    <method name="resetAllValues">
+        this._videoviewcontent.resetAllValues();
+    </method>
+    
+    <interviewListInner name="_participants" />
+    
+    <commonVideoComponentAdapter name="_videoviewcontent"/>
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/interviewuserlist/interviewUserListItem.lzx b/WebContent/src/modules/conference/interviewuserlist/interviewUserListItem.lzx
new file mode 100644
index 0000000..983e5f9
--- /dev/null
+++ b/WebContent/src/modules/conference/interviewuserlist/interviewUserListItem.lzx
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="interviewUserListItem" extends="view" showhandcursor="false" 
+	   bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }" width="252" height="42">
+	
+	<attribute name="connectedSince" value="" type="string" />
+    <attribute name="isMod" value="" type="string" />
+    <attribute name="streamid" value="" type="string" />
+    <attribute name="username" value="" type="string" />
+    <attribute name="userroom" value="" type="string" />
+    <attribute name="formatedDate" value="" type="string" />
+    <attribute name="firstname" value="" type="string" />
+    <attribute name="lastname" value="" type="string" />
+    <attribute name="user_id" value="0" type="number" />
+    <attribute name="refObj" value="null" />
+    
+    <attribute name="isSuperModerator" value="false" type="boolean"/>
+    
+    <attribute name="isSelected" value="false" type="boolean" />
+    
+	<handler name="oninit">
+        <![CDATA[
+            //This is a workaround cause in LPS-4.2.x immediatelly loading does not work
+            lz.Timer.addTimer( new LzDelegate( this, "fadeText" ), 1000 );
+
+            if (this.isMod) {
+            	this.userStatus.setAttribute("frame",3);
+            }
+               
+            if (canvas.publicSID == this.refObj.publicSID) {
+                //this._userName.setAttribute("fontstyle","bold");
+                this.setAttribute("bgcolor",0x00FF00);
+            }
+            
+            this.updateIconByMod();
+        ]]>
+    </handler>
+    
+    <method name="updateIconByMod">
+    	this.isMod = canvas.getIsModeratorByPublicSID(this.refObj.publicSID);
+    	if (this.isMod) {
+            this.userStatus.setAttribute("frame",3);
+        } else if (this.refObj.canDraw) {
+        	this.userStatus.setAttribute("frame",2);
+        } else {
+        	this.userStatus.setAttribute("frame",1);
+        }
+        
+        if (this.isSelected) {
+        	this._miniIcons.oninit.sendEvent();
+        }
+    </method>
+    
+    <method name="fadeText" args="ignore=null"> 
+        <![CDATA[
+            if (this.refObj.picture_uri.startsWith("http") || this.refObj.picture_uri.startsWith("https")) {
+                var downloadurl = this.refObj.picture_uri;
+            //Do Load the Custom Moodle Profilee Picture
+            } else if (this.refObj.externalUserId >= 1 && this.refObj.externalUserType == "moodle") {
+                
+                if (this.refObj.externalUserId == 1) {
+                    //Means it is a guest
+                    var downloadurl = canvas.moodleWwwRoot+"/pix/u/f2.png";
+                } else {
+                    var downloadurl = canvas.moodleWwwRoot+"/user/pix.php/"+ this.refObj.externalUserId +"/f2.jpg";
+                }
+                
+            } else {
+        
+                var downloadurl = canvas.getUrl() + 'DownloadHandler?fileName=CHAT'
+                                    +'&moduleName=chat&parentPath=&room_id='
+                                    +'&remoteUserid='+this.user_id
+                                    +'&sid='+canvas.sessionId;
+                        
+            }
+            
+            this._userpic.setAttribute('src',downloadurl); 
+        ]]>          
+    </method>
+     
+    <handler name="onclick">
+    	parent.parent.parent.selectItem(this);
+    </handler>
+     
+    <method name="select">
+    	if (!this.isSelected) {
+	    	new lz.interviewModerationMiniIcons(this,{name:'_miniIcons',align:'right',
+                isMod:this.isMod,
+                isSuperModerator:this.isSuperModerator});
+	    	this.isSelected = true;
+	    	this._userName.text = "";
+	    	this.showItem.setAttribute('started', true);
+    	}
+    </method>
+    
+    <method name="deselect">
+    	if (this.isSelected) {
+	    	this._miniIcons.destroy();
+	    	this.isSelected = false;
+	    	this._userName.text = this.firstname+' '+this.lastname;
+	    	this.closeItem.setAttribute('started', true);
+    	}
+    </method>
+     
+    <image name="_userpic" stretches="both" x="1" y="1">
+        <handler name="onload">
+            <![CDATA[
+                if (this.height > 38) {
+                    //If bigger then containter then scale it
+                    var width = this.width/(this.height/38);
+                    this.setAttribute('height',38);
+                    this.setAttribute('width',width);
+                }
+            ]]>
+        </handler>
+    </image>
+    
+    <view name="userStatus" align="right" frame="1" 
+    	  resource="userstatus_multiframe_rsc" />
+    
+    <labelText name="_userName" x="41" y="2"
+    		   text="$once{ parent.firstname + ' ' + parent.lastname }" />
+     
+    <animatorgroup name="showItem" started="false" process="simultaneous">
+    	<animator attribute="height" to="62" duration="750" />
+    	<animator attribute="width" to="252" duration="750" />
+    </animatorgroup>
+    
+    <animatorgroup name="closeItem" started="false" process="simultaneous">
+        <animator attribute="height" to="42" duration="750" />
+        <animator attribute="width" to="252" duration="750" />
+    </animatorgroup>
+                 
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/interviewuserlist/interviewVideoBox.lzx b/WebContent/src/modules/conference/interviewuserlist/interviewVideoBox.lzx
new file mode 100644
index 0000000..3eeec34
--- /dev/null
+++ b/WebContent/src/modules/conference/interviewuserlist/interviewVideoBox.lzx
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+
+<class name="interviewVideoChooseUser" extends="guiPresenter" resizeable="false"
+    width="220" height="100" closable="true" labelid="910" y="10" minimizable="false">
+    
+    <attribute name="refObj" value="null" />
+    
+    <handler name="oninit">
+        this.getClientListScope.doCall();
+    </handler>
+    
+    <netRemoteCallHib name="getClientListScope" funcname="getClientListScope" 
+                      remotecontext="$once{ canvas.thishib }" >   
+        <handler name="ondata" args="value">
+            <![CDATA[
+                if ($debug) Debug.write("+++++++++++++++++ getClientListScope : ",value);
+                
+                for (var i = 0; i < value.length; ++i) {
+                    parent._users.addItem(value[i].firstname+','+value[i].lastname+' ['+value[i].username+']',value[i].publicSID);
+                }
+                
+                parent._users.selectItemAt(0);
+            ]]>
+        </handler>  
+    </netRemoteCallHib>
+    
+    <labelText labelid="911" x="2" y="22"/>
+    
+    <resetCombobox name="_users" x="2" y="42" width="$once{ parent.width-4 }"/>
+    
+    <simpleLabelButton labelid="61" width="100" x="$once{ parent.width - 105 }" y="$once{ parent.height - 26 }">
+        <handler name="onclick">
+            this.parent.close();
+        </handler>
+    </simpleLabelButton>    
+    
+    <simpleLabelButton labelid="60" width="100" x="$once{ parent.width - 210 }" y="$once{ parent.height - 26 }">
+        <handler name="onclick">
+            var valueCombobox = parent._users.getValue();
+            if (this.parent.refObj.sendConfirmation(valueCombobox)) {
+                this.parent.close();
+            }
+        </handler>
+    </simpleLabelButton>   
+    
+</class>
+ 
+<class name="interviewVideoBox" extends="view" width="322" height="281" bgcolor="0x000000">
+    <attribute name="interviewPodId" value="0" type="number" />
+    
+    <method name="startInterView">
+        if ($debug) Debug.write("startInterView :: ");
+        var tx = this.getAttributeRelative("x",canvas);
+        var ty = this.getAttributeRelative("y",canvas);
+        canvas._videocontainer._videoviewcontent.showDevicePopUpInterview(false,this.interviewPodId,tx,ty,this.width,this.height);
+    </method>
+
+    <method name="sendConfirmation" args="publicSID">
+        if ($debug) Debug.write("sendConfirmation :: ",publicSID);
+        
+        canvas.thishib.setBroadCastingFlag.publicSIDOfNewModerator = publicSID;
+        canvas.thishib.setBroadCastingFlag.isAllowedToBroadCastAV = true;
+        canvas.thishib.setBroadCastingFlag.interviewPodId = this.interviewPodId;
+        canvas.thishib.setBroadCastingFlag.doCall(); 
+        
+        return true;
+    </method>
+    
+    <netRemoteCallHib name="sendMessageWithClientByPublicSID" funcname="sendMessageWithClientByPublicSID" 
+                      remotecontext="$once{ canvas.thishib }" >  
+        <attribute name="messageObject" value="null" />
+        <attribute name="publicSID" value="" type="string" />
+        <netparam><method name="getValue">return parent.messageObject;</method></netparam>
+        <netparam><method name="getValue">return parent.publicSID;</method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+                if ($debug) Debug.write("+sendMessageWithClientByPublicSID : ",value);
+                
+            ]]>
+        </handler>  
+    </netRemoteCallHib>
+    
+    <simpleLabelButton labelid="910" height="30" valign="middle" align="center"
+               visible="${ ((canvas.ismoderator) ? true : ((canvas.isAllowedToDraw) ? true : false )) }">
+        <handler name="onclick" args="refObj">
+            new lz.interviewVideoChooseUser(canvas,{
+                           isInterview:true,
+                           x:this.getAttributeRelative("x",canvas)-10,
+                           y:this.getAttributeRelative("y",canvas)-20,
+                           width:this.width+20,
+                           refObj:parent
+                        });
+        </handler>
+    </simpleLabelButton>
+</class>
+
+
+</library>
diff --git a/WebContent/src/modules/conference/interviewuserlist/interviewWhiteboard.lzx b/WebContent/src/modules/conference/interviewuserlist/interviewWhiteboard.lzx
new file mode 100644
index 0000000..49137e6
--- /dev/null
+++ b/WebContent/src/modules/conference/interviewuserlist/interviewWhiteboard.lzx
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+<class name="interviewWhiteboard" extends="view" clip="true">
+	<attribute name="checkPodsDelegate" value="null"/>
+	        
+	<handler name="oninit">
+	<![CDATA[
+		canvas._drawarea = this;
+		if (checkPodsDelegate == null && !_recStarted.visible) {
+			checkPodsDelegate = new LzDelegate(this, "checkPods");
+			lz.Timer.addTimer(checkPodsDelegate, 1000);
+		}
+		this.reloadStatus();
+	]]>
+	</handler>
+    
+    <handler name="ondestroy">
+		stopPodChecks();
+    </handler>
+    
+    <handler name="onopenWhiteBoard" >
+        if ($debug) Debug.write("-- onOpenWhiteBoard --");
+    </handler>
+    
+	<method name="newInterviewStarting" args="refObj">
+	<![CDATA[
+		this._videoviewcontent["interviewVideoBox"+refObj.interviewPodId].startInterView();
+	]]>
+	</method>
+	
+	<method name="stopPodChecks">
+		if (checkPodsDelegate != null) {
+			lz.Timer.removeTimer(checkPodsDelegate);
+			checkPodsDelegate = null;
+		}
+	</method>
+
+	<method name="onInterviewPodCount" args="count">
+		_interview._start.setAttribute("enabled", count > 0);
+	</method>
+	
+	<method name="checkPods" args="ignore=null">
+		//if ($debug) Debug.write(":: Pods :: check :: ");
+		canvas.sendViaLocalConnection(canvas.vid_lc_name, "getVideoObjectCount", [null]);
+		lz.Timer.resetTimer(checkPodsDelegate, 1000);
+	</method>
+	
+    <method name="reloadStatus">
+        this.getInterviewRecordingStatus.doCall();
+    </method>
+    
+    <!--
+    getInterviewRecordingStatus()
+     -->
+    <netRemoteCallHib name="getInterviewRecordingStatus" funcname="getInterviewRecordingStatus" 
+                      remotecontext="$once{ canvas.thishib }" >  
+        <handler name="ondata" args="value">
+            <![CDATA[
+                if ($debug) Debug.write("getInterviewRecordingStatus: ",value);
+                if (value) {
+                    parent._recStarted.setAttribute("visibility","visible");
+                } else {
+                    parent._recStarted.setAttribute("visibility","hidden");
+                }
+            ]]>
+        </handler>
+    </netRemoteCallHib> 
+    
+    <simplelayout axis="y" spacing="2" />
+    
+    <commonVideoViewContent name="_videoviewcontent" x="40" >
+        <simplelayout axis="x" spacing="2" />
+        
+        <interviewVideoBox name="interviewVideoBox1" interviewPodId="1" />
+        <interviewVideoBox name="interviewVideoBox2" x="324" interviewPodId="2" />
+    </commonVideoViewContent>
+    
+    <view name="_interview" align="center" visible="${ canvas.ismoderator }">
+        <!--
+           public synchronized Boolean startInterviewRecording()
+         -->
+        <netRemoteCallHib name="startInterviewRecording" funcname="startInterviewRecording" 
+                          remotecontext="$once{ canvas.thishib }" >  
+            <handler name="ondata" args="value">
+                <![CDATA[
+                    if ($debug) Debug.write("startInterviewRecording: ",value);
+                    if (!value) {
+                        new lz.labelerrorPopup(canvas,{errorlabelid:915});
+                    }
+                ]]>
+            </handler>
+        </netRemoteCallHib>          
+        
+        <netRemoteCallHib name="stopInterviewRecording" funcname="stopInterviewRecording" 
+                          remotecontext="$once{ canvas.thishib }" >  
+            <handler name="ondata" args="value">
+                <![CDATA[
+                    if ($debug) Debug.write("stopInterviewRecording: ",value);
+                    if (!value) {
+                        new lz.labelerrorPopup(canvas,{errorlabelid:916});
+                    }
+                ]]>
+            </handler>
+        </netRemoteCallHib>  
+        
+        <simplelayout axis="x" spacing="2" />
+        
+        <simpleLabelButton name="_start" labelid="913" height="30" width="200">
+            <handler name="onclick">
+                if ($debug) Debug.write("Start Recording");
+                parent.startInterviewRecording.doCall();
+            </handler>
+            <view x="2" y="4" resource="interview_record_start" />
+        </simpleLabelButton>
+        
+        <simpleLabelButton name="_stop" labelid="914" height="30" width="200">
+            <handler name="onclick">
+                if ($debug) Debug.write("Stop Recording");
+                parent.stopInterviewRecording.doCall();
+            </handler>
+            <view x="2" y="4" resource="interview_record_stop" />
+        </simpleLabelButton>
+        
+    </view>
+    
+    <view name="_recStarted" align="center" visibility="hidden">
+        <labelText labelid="917" />
+    </view>
+        
+</class>
+
+</library>
\ No newline at end of file
diff --git a/WebContent/src/modules/conference/interviewuserlist/library.lzx b/WebContent/src/modules/conference/interviewuserlist/library.lzx
new file mode 100644
index 0000000..601b2f8
--- /dev/null
+++ b/WebContent/src/modules/conference/interviewuserlist/library.lzx
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+	<resource name="interview_record_start" src="resources/webstart_play.png" />
+	<resource name="interview_record_stop" src="resources/webstart_stop.png" />
+	
+    <include href="interviewUserList.lzx" />
+    <include href="interviewWhiteboard.lzx" />
+    <include href="interviewVideoBox.lzx" />
+    <include href="interviewModerationMiniIcons.lzx" />
+    <include href="interviewUserListItem.lzx" />
+    <include href="interviewListInner.lzx" />
+    <include href="moderationMiniIconsInterviewUserList.lzx" />
+    
+    
+</library>
diff --git a/WebContent/src/modules/conference/interviewuserlist/moderationMiniIconsInterviewUserList.lzx b/WebContent/src/modules/conference/interviewuserlist/moderationMiniIconsInterviewUserList.lzx
new file mode 100644
index 0000000..fedcea82
--- /dev/null
+++ b/WebContent/src/modules/conference/interviewuserlist/moderationMiniIconsInterviewUserList.lzx
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="moderationMiniIconsInterviewUserList" extends="view">
+	
+    <handler name="oninit">
+    	this.updateIcons();
+    </handler>	
+    
+    <method name="updateIcons">
+        if (canvas.ismoderator) {
+            this._isMod.setAttribute("visibility","visible");
+            this._isModAddbutton.setAttribute("visibility","hidden");
+        } else {
+            this._isMod.setAttribute("visibility","hidden");
+            this._isModAddbutton.setAttribute("visibility","visible");
+        }
+    </method>
+	
+    <miniIcons name="_isMod" x="0" width="16" resource="participants_isMod_rsc" 
+    		   height="16" showhandcursor="false">
+        <handler name="onclick">
+            <![CDATA[
+                //Nothing happens here
+            ]]>
+        </handler>
+        <labelTooltip name="_text" labelid="688" />
+    </miniIcons>
+    
+    <miniIcons name="_isModAddbutton" opacity="0.5" x="0" width="16" resource="participants_isMod_rsc" height="16">
+        <handler name="onclick">
+            <![CDATA[
+                //Apply for Moderation
+                canvas.thishib.applyForModeration.doCall();
+            ]]>
+        </handler>
+        <labelTooltip name="_text" labelid="685" />
+    </miniIcons>
+        
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/interviewuserlist/resources/webstart_play.png b/WebContent/src/modules/conference/interviewuserlist/resources/webstart_play.png
new file mode 100644
index 0000000..6d13683
--- /dev/null
+++ b/WebContent/src/modules/conference/interviewuserlist/resources/webstart_play.png
Binary files differ
diff --git a/WebContent/src/modules/conference/interviewuserlist/resources/webstart_stop.png b/WebContent/src/modules/conference/interviewuserlist/resources/webstart_stop.png
new file mode 100644
index 0000000..8389bf3
--- /dev/null
+++ b/WebContent/src/modules/conference/interviewuserlist/resources/webstart_stop.png
Binary files differ
diff --git a/WebContent/src/modules/conference/library.lzx b/WebContent/src/modules/conference/library.lzx
new file mode 100644
index 0000000..b517cd4
--- /dev/null
+++ b/WebContent/src/modules/conference/library.lzx
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+	<!-- FamFam Icon Set -->
+    <resource name="resyncuser_rsc" src="resources/arrow_refresh_small.png" />
+    
+    <!-- APL author sebawagner -->
+    <resource name="speaking" src="resources/speaking.png" />
+    
+    <!-- APL author sebawagner -->
+    <resource name="lz_recorder_play" src="resources/webstart_play.png" />
+	
+    <include href="commonVideoViewContent.lzx"/>
+    <include href="commonVideoComponentAdapter.lzx"/>
+    <include href="screenSharingAdapter.lzx" />
+
+	<include href="whiteboard/" /> 
+ 	
+   	<include href="tabcontent/" />
+   	<include href="popups/" />
+   	<include href="moderation/" />
+   	<include href="polls/" />
+   	
+   	<include href="conference/" />
+   	
+    <!-- throws an Exception
+	<include href="browser/"/>  
+     -->
+    <include href="participants/" /> 
+    <include href="interviewuserlist/" /> 
+    
+    <include href="restricted/" />
+    <include href="browser/" />
+    <include href="testsetup/" />
+    <include href="sip/" />
+    
+    <include href="flexibleConferenceRoom/" />
+    
+</library>
diff --git a/WebContent/src/modules/conference/moderation/applyForModeration.lzx b/WebContent/src/modules/conference/moderation/applyForModeration.lzx
new file mode 100644
index 0000000..1ad5de5
--- /dev/null
+++ b/WebContent/src/modules/conference/moderation/applyForModeration.lzx
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="userItem" extends="view" bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }" width="$once{ parent.width }" height="20">
+	<attribute name="streamid" value="0" type="string" />
+	<attribute name="username" value="" type="string" />
+	<attribute name="hasAnswered" value="false" type="boolean" />
+	<attribute name="answer" value="false" type="boolean" />
+	
+	<view name="inner" width="$once{ parent.width-2 }" height="$once{ parent.height-2 }" x="1" y="1"
+		onmouseover="this.setAttribute('bgcolor',canvas.getThemeColor('baseMousecolorizer'))"
+		onmouseout="this.setAttribute('bgcolor',0xFFFFFF)" bgcolor="0xFFFFFF">
+		<labelText text="$once{ parent.parent.streamid }" width="50" />
+		<labelText text="$once{ parent.parent.username }" x="50" width="300" />
+		<labelText name="answer" labelid="88" x="350" width="140" />
+	</view>
+</class>
+    
+<class name="applyForModeration"  extends="labelExplorerBox" labelid="81"
+	width="500" height="250" x="14" closable="true">
+	
+	<attribute name="applymessage" value="null" />
+	
+	<labelText labelid="93" y="30" x="2" />
+
+	<handler name="oninit">
+		canvas.currentModApply = this;
+		this.getClientListScope.doCall();
+		this.applymessage = new Array();
+		this.applymessage[0] = 'applyforMod';
+		this.checkRoomValues.doCall();
+	</handler>
+    
+    <!--
+        This is necessary as in some cases the user should not be allowed 
+        to apply for Moderation at all, this Function checks this
+     -->
+    
+    <netRemoteCallHib name="checkRoomValues" funcname="checkRoomValues" 
+                      remotecontext="$once{ canvas.thishib }" >   
+        <netparam><method name="getValue">return hib.currentroomid;</method></netparam>
+        <handler name="ondata" args="value">
+            if (value) {
+                parent.sendMessageWithClient.doCall();
+            } else {
+                new lz.labelerrorPopup(canvas,{errorlabelid:641});
+                parent.close();
+            }
+        </handler>
+    </netRemoteCallHib>
+	
+	<method name="setUserAnswer" args="value">
+		<![CDATA[
+		if ($debug) Debug.write("*** setUserAnswer: ",value,this.userslist);
+
+		var t = this.userslist.userslist.userslist[value.client.streamid];
+		//Debug.write(" t: ",t);
+		t.hasAnswered = true;
+		var answer = value.message[1];
+		//Debug.write("answer: ",answer);
+		if (answer=='ok'){
+			t.inner.answer.setAttribute('text',canvas.getLabelName(94));
+			t.answer = true;
+		} else {
+			t.inner.answer.setAttribute('text',canvas.getLabelName(95));
+			t.answer = false;
+		}
+		]]>
+		this.checkForUpdates();
+	</method>
+	
+	<method name="rejectUser" args="value">
+		this.userslist.userslist.userslist[value.streamid].destroy();
+		this.checkForUpdates();
+	</method>
+	
+	<method name="checkForUpdates">
+		<![CDATA[
+		var b = true;
+		for (var i=0;i<this.userslist.userslist.userslist.subviews.length;i++){
+			//Debug.write("itemID : ",this.userslist.userslist.userslist.subviews[i]);
+			if (!this.userslist.userslist.userslist.subviews[i].answer){
+				b=false;
+				break;
+			}
+		}
+		if (b) this.applyButton.setAttribute('labelid',96);
+		this.applyButton.setAttribute('enabled',b);
+		]]>
+	</method>
+	
+	<netRemoteCallHib name="getClientListScope" funcname="getClientListScope" remotecontext="$once{ canvas.thishib }" >        
+       	<handler name="ondata" args="value">
+       		<![CDATA[
+           	//The onResult-Handler will be called be the rtmpconnection
+           	//Debug.write("INSTANCE getClientListScope : ",value);
+            for (var eg = 0; eg < value.length; ++eg) {
+				//Debug.write("value: ",eg,value,parent.userslist.userslist.userslist);
+				if (canvas.streamid!=value[eg].streamid) {
+				    new lz.userItem(parent.userslist.userslist.userslist,{name:value[eg].streamid,username:value[eg].username,streamid:value[eg].streamid});
+				}
+				//Debug.write("value: ",eg,value,parent.userslist.userslist.userslist);
+			}
+		    if (parent.userslist.userslist.userslist.subviews.length==0)
+				   parent.applyButton.setAttribute('enabled',true);
+           ]]>
+		</handler>   
+    </netRemoteCallHib> 
+     
+    <netRemoteCallHib name="sendMessageWithClient" funcname="sendMessageWithClient" remotecontext="$once{ canvas.thishib }" >  
+    	<netparam name="vars"><method name="getValue">return parent.parent.applymessage;</method></netparam>
+        <handler name="ondata" args="value">
+        	<![CDATA[
+            //The onResult-Handler will be called be the rtmpconnection
+            //Debug.write("sendMessageWithClient : ",value);
+
+            ]]>
+        </handler>   
+    </netRemoteCallHib>      
+	
+	<view name="userslist" y="60" x="4" height="140" clip="true" width="492" bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }" >
+		<view name="userslist" y="1" x="1" height="138" clip="true" width="490" bgcolor="0xFFFFFF" >
+			<view name="userslist" layout="axis:y;spacing:2" width="$once{ parent.width }" />
+			<om_vscrollbar />
+		</view>
+	</view>	
+	
+    <simpleLabelButton name="applyButton" labelid="88" width="200" x="80" y="218" enabled="false">
+    	<handler name="onclick">
+    		//hib.setModerator.doCall();
+    		hib.addModerator.publicSIDOfNewModerator = canvas.publicSID;
+    		hib.addModerator.doCall();
+    		this.parent.close();
+    	</handler>
+    </simpleLabelButton>
+    
+    <simpleLabelButton labelid="83" width="200" x="290" y="218" 
+        onclick="this.parent.close();" />
+  
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/moderation/library.lzx b/WebContent/src/modules/conference/moderation/library.lzx
new file mode 100644
index 0000000..18979cb
--- /dev/null
+++ b/WebContent/src/modules/conference/moderation/library.lzx
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<resource name="applyformodicon_rsc" src="resources/user_add.png" />
+	
+	<!--  FamFam Icon Creative Commons -->
+	<resource name="start_screensharing_rsc" src="resources/monitor_go.png" />
+
+   	<include href="applyForModeration.lzx" />
+   	<include href="moderationPanel.lzx" />
+   	<include href="responseForModeration.lzx" />
+	<include href="recordingStartWin.lzx"/>
+	
+</library>
diff --git a/WebContent/src/modules/conference/moderation/moderationPanel.lzx b/WebContent/src/modules/conference/moderation/moderationPanel.lzx
new file mode 100644
index 0000000..b8762bf
--- /dev/null
+++ b/WebContent/src/modules/conference/moderation/moderationPanel.lzx
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+<class name="errorPopupUserInfo" extends="labelExplorerBox" labelid="204"
+    docking="true" resizeable="false" closable="true" 
+    width="224" x="300" height="230">
+
+    <attribute name="error" value="" type="string" />
+    <attribute name="user" value="null" />
+    
+    <handler name="oninit">
+        <![CDATA[
+            Debug.write(user);
+            var tString = this.error + "<BR/>"
+                    + user.username+"<BR/>" 
+                    + user.firstname + " " + user.lastname + "<BR/>"
+                    + parseDateToStringTime(user.roomEnter);
+            this.textInner._inner.setAttribute('text',tString);
+        ]]>
+    </handler>
+
+    <view name="textInner" y="24" width="218" height="200" x="2" clip="true">
+        <text name="_inner" fontsize="10" fontstyle="bold"
+            multiline="true" width="190" />
+        <om_vscrollbar />
+    </view>
+
+</class>
+
+<class name="moderationPanel" extends="view" layout="axis:x;spacing:2">
+    
+    <attribute name="recordingsName" value="" type="string" />
+    <attribute name="initial" value="true" type="boolean" />
+    <attribute name="recordingUser" value="null" />
+    <attribute name="publishingObj" value="null" />
+    
+    <attribute name="allowUserQuestions" value="true" type="boolean" />
+    <attribute name="roomName" value="" type="string" />
+    
+    <handler name="oninit">
+        <![CDATA[
+	        canvas._mymod = this;
+	        if (this.allowUserQuestions != null && !this.allowUserQuestions) {
+	            this.mod_btn.destroy();
+	        }
+	        this._roomName.setAttribute("text",this.roomName);
+        ]]>
+    </handler>
+    
+    <method name="setMessage">
+        <![CDATA[
+            if ($debug) Debug.write("setMessage: ",this.recordingUser);
+            var tString = "";
+            if (this.recordingUser!=null){
+                tString += canvas.getLabelName(419)
+               		+ " " + this.recordingUser.username
+               		+ " " + this.recordingUser.firstname
+               		+ " " + this.recordingUser.lastname
+               		+ " " + parseDateToStringTime(this.recordingUser.roomEnter) + ";";
+            }
+			if (this.publishingObj != null) {
+            	tString += canvas.getLabelName(1504)
+					+ " " + this.publishingObj.user.username
+					+ " " + this.publishingObj.user.firstname
+					+ " " + this.publishingObj.user.lastname
+					+ " " + this.publishingObj.url + ";";
+            }
+			this._inner.setAttribute('text', tString);
+        ]]>
+    </method>   
+    
+	<method name="checkForApplyScreen" args="record">
+		lz.Browser.loadURL(canvas.getScreenSharingUrl(), '_blank');
+	</method>  
+    
+    <labelText name="_roomName" fgcolor="0xFFFFFF" y="4" fontstyle="bold" fontsize="12" /> 
+    
+    <miniIconsNew name="mod_btn" y="6" innerResource="applyformodicon_rsc" width="16" height="16"
+               visible="${ (canvas.ismoderator) ? false : true  }" showhandcursor="true">
+        <handler name="onclick">
+            //We do only ask the Moderator(s) to change Moderation
+            //new lz.applyForModeration(canvas.main_content._content.inner);
+            canvas.thishib.applyForModeration.doCall();
+        </handler>  
+        <labelTooltip inittwice="true" labelid="906" />      
+    </miniIconsNew>
+    
+    <miniIconsNew name="_doShare" y="6" innerResource="start_screensharing_rsc" width="16" height="16" 
+    			showhandcursor="true"
+               visible="${canvas.currentRoomObj.hideScreenSharing ? false : ((canvas.becomemoderator) ? true : ((canvas.isAllowedToScreenShare) ? true : false )) }" >
+        <handler name="onclick">
+            this.parent.checkForApplyScreen("no");
+        </handler>
+        <labelTooltip labelid="239" />
+    </miniIconsNew>
+    
+    <labelText name="_inner" fgcolor="0xFF3300" y="4" />
+    
+    <view width="2" />
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/moderation/recordingStartWin.lzx b/WebContent/src/modules/conference/moderation/recordingStartWin.lzx
new file mode 100644
index 0000000..1fb881e
--- /dev/null
+++ b/WebContent/src/modules/conference/moderation/recordingStartWin.lzx
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+	<!---
+		Dialog box for recording data.
+		When you click the Recording button on your conference menu, this class shows a dialog box for saving it.
+	--> 
+    
+	<!-- label: save as -->
+	<class name="recordingStartWin" extends="labelExplorerBox" labelid="391"
+	    		docking="true" resizeable="false" closable="false" width="400" x="300" height="226">
+	 	
+		<attribute name="recordingsName" value="" type="string" />
+	 	
+	 	<handler name="oninit">
+	 		this.rName.setAttribute('text',"recording_"+getStringDateFileSave());
+	 	</handler>
+	 	
+	   	<!-- label: record name --> 
+	    	<labelText labelid="392" width="200" y="22" resize="false" x="2"/>
+	      <customEdittext name="rName" y="22" x="120" width="270" />	
+		
+		<!-- label: comment -->
+	    	<labelText labelid="393" width="200" y="52" resize="false" x="2"/>
+	      <customScrollEdittext name="rComment" y="52" x="120" width="270" height="120" />	   					
+	  
+	    	<!-- label: cancel -->	
+	    	<simpleLabelButton labelid="438" width="100" x="180" y="190" >
+	    		<handler name="onclick">
+	    			parent.close();
+	    		</handler>
+	    	</simpleLabelButton>
+	        
+	    	<!-- label: start -->
+	    	<simpleLabelButton labelid="439" width="100" x="290" y="190" 
+                               onclick="this.parent.checkForRecording.doCall();" />
+	  	
+		<netRemoteCallHib name="recordMeetingStream" funcname="flvrecorderservice.recordMeetingStream" remotecontext="$once{ canvas.thishib }" >  
+	  		<netparam><method name="getValue">return canvas.thishib.modus;</method></netparam>
+	  		<netparam><method name="getValue">return canvas._drawarea.baseactionobjectList;</method></netparam> 
+	    		<netparam><method name="getValue">return parent.parent.rName.getText();</method></netparam>
+			<netparam><method name="getValue">return parent.parent.rComment.getText();</method></netparam>    
+	    	
+	    		<handler name="ondata" args="value">
+				//The onResult-Handler will be called be the rtmpconnection
+				if( $debug ) Debug.write("recordingStartWin.recordMeetingsStream(): ",value);	
+				canvas._mymod.recordingsName = value;
+				canvas._mymod.sta_btn.setAttribute('visibility','hidden');
+				canvas._mymod.stp_btn.setAttribute('visibility','visible');	
+				parent.close();			
+			</handler>	
+	  	</netRemoteCallHib>
+	  	
+	  	<netRemoteCallHib name="checkForRecording" funcname="flvrecorderservice.checkForRecording" remotecontext="$once{ canvas.thishib }" >  
+			<handler name="ondata" args="value">
+				//The onResult-Handler will be called be the rtmpconnection
+				if( $debgug ) Debug.write("recordingStartWin.checkForRecording(): ",value);	
+				parent.recordingUser = value;
+				if (value==null) {
+					parent.recordMeetingStream.doCall();
+				} else {
+					new lz.errorPopupUserInfo(canvas,{error:canvas.getLabelName(418),user:value});
+				}
+			</handler>	
+	  	</netRemoteCallHib>  	
+         
+	</class>
+</library>
diff --git a/WebContent/src/modules/conference/moderation/resources/monitor_go.png b/WebContent/src/modules/conference/moderation/resources/monitor_go.png
new file mode 100644
index 0000000..8af3eda
--- /dev/null
+++ b/WebContent/src/modules/conference/moderation/resources/monitor_go.png
Binary files differ
diff --git a/WebContent/src/modules/conference/moderation/resources/user_add.png b/WebContent/src/modules/conference/moderation/resources/user_add.png
new file mode 100644
index 0000000..deae99b
--- /dev/null
+++ b/WebContent/src/modules/conference/moderation/resources/user_add.png
Binary files differ
diff --git a/WebContent/src/modules/conference/moderation/responseForModeration.lzx b/WebContent/src/modules/conference/moderation/responseForModeration.lzx
new file mode 100644
index 0000000..183cdf7
--- /dev/null
+++ b/WebContent/src/modules/conference/moderation/responseForModeration.lzx
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+<class name="responseForModeration"  extends="labelExplorerBox" labelid="81"
+	width="500" height="250" x="14" closable="true">
+	
+	<attribute name="applymessage" value="null" />
+    <!-- Time till automatically apply for modaration will be accepted -->
+	<attribute name="clientId" value="0" type="string" />
+	
+	<attribute name="userobject" value="null" />
+    
+    <attribute name="userautoTimerDelegate" value="null" />
+    <attribute name="userautoTimerCounter" value="31" type="number" />
+	
+	<handler name="oninit">
+		<![CDATA[
+            var dtString = '';
+            dtString += 'Name: '+userobject['username']+'<BR />';
+            dtString += 'Host: '+userobject['userip']+'<BR />';
+            dtString += 'Time: '+userobject['connectedSince']+'<BR />';
+            
+            this.userToAccept.setAttribute('text',dtString);
+            
+            this.userautoTimerDelegate = new LzDelegate( this, "autoResponse" );
+            lz.Timer.addTimer( this.userautoTimerDelegate, 1000 );            
+		]]>
+	</handler>
+
+    <method name="autoResponse" args="itemObj">
+        this.userautoTimerCounter--;
+        if (this.userautoTimerCounter!=0){
+            this._applyBtn.setAttribute('text',canvas.getLabelName(this._applyBtn.labelid)+" "+this.userautoTimerCounter);
+            lz.Timer.addTimer( this.userautoTimerDelegate, 1000 );
+        } else {
+            this._applyBtn.onclick.sendEvent();
+        }
+    </method>   
+	
+	<labelText labelid="89" y="20" x="2" />
+	
+	<labelText name="userToAccept" y="50" multiline="true" width="200" resize="false" />
+    
+    <simpleLabelButton labelid="90" width="200" x="80" y="218" name="_applyBtn" >
+    	<handler name="onclick">
+			parent.applymessage = new Array();
+			parent.applymessage[0] = 'applyModAnswer';
+			parent.applymessage[1] = 'ok';   
+			parent.sendMessageWithClientById.doCall();		
+    	</handler>
+    </simpleLabelButton>
+    
+    <simpleLabelButton labelid="91" width="200" x="290" y="218" >
+    	<handler name="onclick">
+			parent.applymessage = new Array();
+			parent.applymessage[0] = 'applyModAnswer';
+			parent.applymessage[1] = 'no'; 
+			parent.sendMessageWithClientById.doCall();	
+    	</handler>
+    </simpleLabelButton>
+     
+    <netRemoteCallHib name="sendMessageWithClientById" funcname="sendMessageWithClientById" remotecontext="$once{ canvas.thishib }" >  
+    	<netparam><method name="getValue">return parent.parent.applymessage;</method></netparam>
+        <netparam><method name="getValue">return parent.parent.clientId;</method></netparam>
+        <handler name="ondata" args="value">
+        	<![CDATA[
+	            //The onResult-Handler will be called be the rtmpconnection
+	            //Debug.write("sendMessageWithClientById : ",value);
+				this.parent.close();
+            ]]>
+        </handler>   
+    </netRemoteCallHib> 
+
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/participants/library.lzx b/WebContent/src/modules/conference/participants/library.lzx
new file mode 100644
index 0000000..5457299
--- /dev/null
+++ b/WebContent/src/modules/conference/participants/library.lzx
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+    <!--  FamFam Icon Creative Commons -->
+    <resource name="right_isactive_rsc" src="resources/accept.png" />
+    
+    <!--  FamFam Icon Creative Commons -->
+    <resource name="right_notactive_rsc" src="resources/delete.png" />
+    
+    <!--  FamFam Icon Creative Commons -->
+    <resource name="participants_isMod_rsc" src="resources/user_add.png" />
+    <!--  FamFam Icon Creative Commons -->
+    <resource name="participants_allow_drawing_rsc" src="resources/pencil_add.png" />
+    
+    <!--  FamFam Icon Creative Commons -->
+    <resource name="participants_deny_drawing_rsc" src="resources/pencil_delete.png" />
+    
+    <!--  APL author sebawagner -->
+    <resource name="participants_exclusive_audio_rsc" src="resources/micro_small.png" />
+    
+    <include href="participantList.lzx" />
+    <include href="participantListItem.lzx" />
+    <include href="participants.lzx" />
+    
+</library>
diff --git a/WebContent/src/modules/conference/participants/participantList.lzx b/WebContent/src/modules/conference/participants/participantList.lzx
new file mode 100644
index 0000000..8e1c616
--- /dev/null
+++ b/WebContent/src/modules/conference/participants/participantList.lzx
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<class name="innerlistViewparticipantsTable" extends="view" width="258" >
+    <simplelayout name="_layout" axis="y" spacing="0" />
+</class>
+    
+<class name="participantsTable" extends="view" height="${ parent.height-20 }" 
+    	bgcolor="0xFFFFFF" x="2" y="6" clip="true" width="$once{ parent.width-4 }" >
+        <innerlistViewparticipantsTable name="innerList" />
+    <om_vscrollbar />
+</class>
+
+<class name="participantList" extends="view"  width="$once{ parent.width }" height="${ parent.height-22 }" 
+       bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }" y="22">
+    <!-- clip="true" -->
+    
+    <attribute name="sortType" value="alphabetical" type="string" />    
+    
+    <view width="$once{ parent.width-2 }" height="${ parent.height-2 }" 
+        x="1" y="1" bgcolor="0xFFFFFF" />
+        
+    <handler name="oninit">
+        <![CDATA[
+            var items = this._table.innerList.subnodes;
+            canvas.videoComp_lc.lc_setSoundMuted = function(publicSID,isMuted) {
+                if ($debug) Debug.write("lc_setSoundMuted: publicSID, isMuted",publicSID, isMuted);
+
+                for (var i=1; i<items.length; i++) {
+                    var listItem = items[i];
+                    if (listItem.refObj.publicSID == publicSID) {
+                        var muteView = listItem._miniIcons._mute;
+                        if (isMuted) {
+                            muteView.setAttribute('frame', 2);
+                            muteView._tip.setAttribute('labelid', 1075);
+                        } else {
+                            muteView.setAttribute('frame', 1);
+                            muteView._tip.setAttribute('labelid', 1074);
+                        }
+                        break;
+                    }
+                }
+            };
+        ]]>
+    </handler>
+
+    <method name="addItem" args="object">
+        <![CDATA[
+            if ($debug) Debug.write("participantList addItem: ",object,object.publicSID);
+            
+            for (var i=0;i<this._table.innerList.subviews.length;i++) {
+                if (this._table.innerList.subviews[i].refObj.publicSID == object.publicSID) {
+                    //if ($debug) Debug.warn("Already on List, do not add twice");
+                    return;
+                }
+            }
+            
+            var lastname = object.lastname;
+            
+            if ($debug) Debug.write("object.isSuperModerator ",object.isSuperModerator);
+            
+            if (object.isSuperModerator) {
+                lastname += " *";
+            }
+            
+            new lz.participantListItem(this._table.innerList,{
+                    user_id:object.user_id,
+                    isSuperModerator:object.isSuperModerator,
+                    firstname:object.firstname,
+                    lastname:lastname,
+                    width:this.width-17,
+                    refObj:object,
+                    connectedSince:object.connectedSince,
+                    isMod:object.isMod,
+                    streamid:object.streamid,
+                    username:object.username,
+                    formatedDate:object.formatedDate
+                });
+            
+            this.sortUserList();
+        ]]>
+    </method>
+    
+    <method name="sortUserList">
+        <![CDATA[ 
+        
+            if (this.sortType == "alphabetical") {
+                function sortByName(a,b) {
+                   
+                    if(a.firstname.toLowerCase() < b.firstname.toLowerCase()) return -1;
+                    else if(a.firstname.toLowerCase() > b.firstname.toLowerCase()) return 1;
+                    else return 0;
+                
+                }
+            
+                this._table.innerList.subviews.sort(sortByStreamId);
+                this._table.innerList._layout.subviews.sort(sortByStreamId);
+            } else {
+                function sortByStreamId(a,b) {
+                   
+                    if(Number(a.streamid) == Number(b.streamid)) return 0;
+                    else if(Number(a.streamid) > Number(b.streamid)) return 1;
+                    else return -1;
+                
+                }
+            
+                this._table.innerList.subviews.sort(sortByStreamId);
+                this._table.innerList._layout.subviews.sort(sortByStreamId);
+            }
+            
+            this._table.innerList._layout.update();  
+        ]]>
+    </method>    
+    
+    <method name="clearList">
+        this._table.destroy();
+        new lz.participantsTable(this,{name:'_table'});
+    </method>
+    
+    <method name="disconnectclient" args="publicSID">
+        <![CDATA[
+            for (var i=0;i<this._table.innerList.subviews.length;i++){
+                if (this._table.innerList.subviews[i].refObj.publicSID==publicSID){
+                    var item = this._table.innerList.subviews[i];
+                    item.destroy();
+                    break;
+                }
+            }
+        ]]>
+    </method>
+    
+    <!--- get a Objects List Item
+        @param string publicSID publicSID
+     -->
+	<method name="getUserListItemByPublicSID" args="publicSID">
+	<![CDATA[
+		var v = null;
+		var lst = this._table.innerList;
+		for (var i = 0; i < lst.subviews.length; i++) {
+			if (lst.subviews[i].refObj.publicSID == publicSID) {
+				v = lst.subviews[i];
+				break;
+			}
+		}
+		return v;
+	]]>
+	</method>
+    
+    <participantsTable name="_table" y="20" /> 
+
+    <view name="_miniIcons" x="112" y="0" height="18">
+        
+        <view width="1" height="${ parent.parent.height }" x="0"
+            bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }" />
+        <view name="_icon_mod" x="2" y="3" resource="participants_isMod_rsc" onclick="" showhandcursor="false">
+            <labelTooltip labelid="608" />
+        </view>
+        
+        <view width="1" height="${ parent.parent.height }" x="20"
+            bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }" />
+        <view name="_icon_draw" x="22" y="3" resource="participants_allow_drawing_rsc" onclick="" showhandcursor="false">
+            <labelTooltip labelid="609" />
+        </view>
+        
+        <view width="1" height="${ parent.parent.height }" x="40"
+            bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }" />
+        <view name="_icon_share" x="42" y="3" resource="screen_allow_rsc" onclick="" showhandcursor="false">
+            <labelTooltip labelid="1073" />
+        </view>
+        
+        <view width="1" height="${ parent.parent.height }" x="60"
+            bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }" />
+        <view name="_icon_remote" x="62" y="3" resource="remote_allow_rsc" onclick="" showhandcursor="false">
+            <labelTooltip labelid="1084" />
+        </view>
+    
+        <view width="1" height="${ parent.parent.height }" x="80"
+            bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }" />
+        <view name="_icon_exclusive_audio" x="82" y="3" resource="participants_exclusive_audio_rsc" onclick="" showhandcursor="false">
+            <labelTooltip labelid="1423" />
+        </view>
+        
+        <view width="1" height="${ parent.parent.height }" x="100"
+            bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }" />
+        <view name="_icon_av_allow" x="102" y="3" resource="av_allow_rsc" onclick="" showhandcursor="false">
+            <labelTooltip labelid="610" />
+        </view>
+        
+        <view width="1" height="${ parent.parent.height }" x="142"
+            bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }" />
+    </view>
+    
+    <view name="headerDivisionLine" width="${ parent.width }" 
+          bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }" height="1" y="20" />
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/participants/participantListItem.lzx b/WebContent/src/modules/conference/participants/participantListItem.lzx
new file mode 100644
index 0000000..9994896
--- /dev/null
+++ b/WebContent/src/modules/conference/participants/participantListItem.lzx
@@ -0,0 +1,652 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+<!-- 
+    The Width of each item is set in the participantList-Class
+ -->
+<class name="participantListItem" extends="view" bgcolor="0xDADADA" height="40" 
+       showhandcursor="false">
+    
+    <attribute name="connectedSince" value="" type="string" />
+    <attribute name="isMod" value="" type="string" />
+    <attribute name="streamid" value="" type="string" />
+    <attribute name="username" value="" type="string" />
+    <attribute name="userroom" value="" type="string" />
+    <attribute name="formatedDate" value="" type="string" />
+    <attribute name="firstname" value="" type="string" />
+    <attribute name="lastname" value="" type="string" />
+    <attribute name="user_id" value="0" type="number" />
+    <attribute name="isSuperModerator" value="false" type="boolean"/>
+    <attribute name="refObj" value="null" />
+    
+    <handler name="oninit">
+        <![CDATA[
+            //this._userpic.setAttribute('src',downloadurl); 
+            //This is a workaround cause in LPS-4.2.x immediatelly loading does not work
+            lz.Timer.addTimer( new LzDelegate( this, "fadeText" ), 1000 );
+                    
+            if (canvas.publicSID == this.refObj.publicSID) {
+                this._firstName.setAttribute("fontstyle","bold");
+                this._lastName.setAttribute("fontstyle","bold");
+            }
+            
+            this.updateIcons();
+        ]]>
+    </handler>
+    
+    <method name="fadeText" args="ignore=null"> 
+        <![CDATA[
+        
+        	if ($debug) Debug.write("fadeText :1: ",this.refObj);
+        	if ($debug) Debug.write("fadeText :2: ",this.refObj.picture_uri);
+        
+        	if (this.refObj.picture_uri != null && (this.refObj.picture_uri.startsWith("http") || this.refObj.picture_uri.startsWith("https"))) {
+        		var downloadurl = this.refObj.picture_uri;
+            //Do Load the Custom Moodle Profilee Picture
+        	} else if (this.refObj.externalUserId >= 1 && this.refObj.externalUserType == "moodle") {
+                
+                if (this.refObj.externalUserId == 1) {
+                    //Means it is a guest
+                    var downloadurl = canvas.moodleWwwRoot+"/pix/u/f2.png";
+                } else {
+                    var downloadurl = canvas.moodleWwwRoot+"/user/pix.php/"+ this.refObj.externalUserId +"/f2.jpg";
+                }
+                
+            } else {
+        
+                var downloadurl = canvas.getUrl() + 'DownloadHandler?fileName=CHAT'
+                        +'&moduleName=chat&parentPath=&room_id='
+                        +'&remoteUserid='+this.user_id
+                        +'&sid='+canvas.sessionId;
+                        
+            }
+            
+            if ($debug) Debug.warn("downloadurl :3: ",downloadurl);
+            
+            this._userpic.setAttribute('src',downloadurl); 
+            
+        ]]>          
+    </method>
+    
+    <handler name="onismoderator" reference="canvas" args="m">
+        if ($debug) Debug.write("###### ismoderator ",m);
+        <![CDATA[
+            this.isMod = canvas.getIsModeratorByPublicSID(this.refObj.publicSID);
+            this.updateIcons();
+        ]]>
+    </handler>
+    
+    <handler name="ondrawAllowStatus" reference="canvas" args="drawObject">
+        <![CDATA[
+            if (this.refObj.publicSID == drawObject.publicSID) {
+                this.refObj.canDraw = drawObject.canDraw;
+                this.refObj.canShare = drawObject.canShare;
+                this.refObj.canRemote = drawObject.canRemote;
+                this.updateIcons();
+            }
+        ]]>
+    </handler>
+
+    <handler name="onexclusiveAudioAllowStatus" reference="canvas" args="rclObject">
+        <![CDATA[
+            if (this.refObj.publicSID == rclObject.publicSID) {
+                this.refObj.canGiveAudio = rclObject.canGiveAudio;
+                this.updateIcons();
+            }
+        ]]>
+    </handler>
+    
+    <handler name="onmicMutedStatusChangedItem" reference="canvas" args="roomClientObj">
+    	<![CDATA[
+    	    if ($debug) Debug.write("onmicMutedStatusChangedItem :1: ",roomClientObj.publicSID);
+            if (this.refObj.publicSID == roomClientObj.publicSID) {
+            	if ($debug) Debug.write("onmicMutedStatusChangedItem :2: ",roomClientObj.micMuted);
+                this.refObj.micMuted = roomClientObj.micMuted;
+                this.updateIcons();
+            }
+        ]]>
+    </handler>
+
+    <handler name="onMute" reference="canvas.thishib.switchMicMuted" args="event">
+        <![CDATA[
+            if ($debug) Debug.write("onMute ", event.publicSID, event.mute);
+            if(this.refObj.publicSID == event.publicSID) {
+                this.refObj.micMuted = event.mute;
+                this.updateIcons();
+            }
+        ]]>
+    </handler>
+    
+    <!--
+        Set actions to update the User-Rights and Information what he can do
+     -->
+    <method name="updateIcons">
+        <![CDATA[
+        
+            if ($debug) Debug.write("updateByMod,",this.isMod,canvas.streamid);
+        
+            //If this is one Mod he can also draw on the Whitboard
+            if (this.isMod) {
+                
+                
+                this._miniIcons._isMod.setAttribute("visibility","visible");
+                this._miniIcons._isModAddbutton.setAttribute("visibility","hidden");
+                this._miniIcons._canDraw.setAttribute("visibility","visible");
+                //the moderator can never remove the right to draw on the whiteboard for himself
+                this._miniIcons._canDraw.setAttribute("showhandcursor",false);
+                this._miniIcons._canDraw._text.setAttribute("text","");
+                this._miniIcons._canDrawModerator.setAttribute("visibility","hidden");
+                
+                this._miniIcons._allowShare.setAttribute("visibility","visible");
+                this._miniIcons._allowShare.setAttribute("showhandcursor",false);
+                this._miniIcons._allowShare._text.setAttribute("text","");
+                this._miniIcons._denyShare.setAttribute("visibility","hidden");
+                
+                this._miniIcons._allowRemote.setAttribute("visibility","visible");
+                this._miniIcons._allowRemote.setAttribute("showhandcursor",false);
+                this._miniIcons._allowRemote._text.setAttribute("text","");
+                this._miniIcons._denyRemote.setAttribute("visibility","hidden");
+
+                this._miniIcons._allowExclusiveAudio.setAttribute("visibility","visible");
+                this._miniIcons._allowExclusiveAudio.setAttribute("showhandcursor",false);
+                this._miniIcons._allowExclusiveAudio._text.setAttribute("text","");
+                this._miniIcons._denyExclusiveAudio.setAttribute("visibility","hidden");
+                
+                if (canvas.ismoderator) {
+                	this._x._kickUser.setAttribute("visibility","visible");
+                    if (canvas.ismoderator && canvas.publicSID != this.refObj.publicSID) {
+                        this._miniIcons._isMod.setAttribute("showhandcursor",true);
+                        this._miniIcons._isMod._text.setAttribute("text",canvas.getLabelName(675));
+                    } else {
+                        this._miniIcons._isMod._text.setAttribute("text","");
+                        this._miniIcons._isMod.setAttribute("showhandcursor",false);
+                    }
+                } else {
+                	this._x._kickUser.setAttribute("visibility","hidden");
+                    this._miniIcons._isMod._text.setAttribute("text","");
+                    this._miniIcons._isMod.setAttribute("showhandcursor",false);
+                }
+                
+            } else {
+                this._miniIcons._isMod.setAttribute("visibility","hidden");
+                    
+                //if this User is the Moderator he can grant access to whiteboard to anybody
+                if (canvas.ismoderator) {
+                	this._x._kickUser.setAttribute("visibility","visible");
+                    this._miniIcons._isModAddbutton.setAttribute("visibility","visible");
+                    
+                    
+                    this._miniIcons._canDraw._text.setAttribute("text",canvas.getLabelName(612));
+                    if (this.refObj.canDraw) {
+                        //Only in THIS case you can remove the Draw-to-whiteboard right 
+                        this._miniIcons._canDraw.setAttribute("visibility","visible");
+                        this._miniIcons._canDraw.setAttribute("showhandcursor",true);
+                        this._miniIcons._canDrawModerator.setAttribute("visibility","hidden");
+                    } else {
+                        this._miniIcons._canDraw.setAttribute("visibility","hidden");
+                        this._miniIcons._canDraw.setAttribute("showhandcursor",false);
+                        this._miniIcons._canDraw._text.setAttribute("text","");
+                        this._miniIcons._canDrawModerator.setAttribute("visibility","visible");
+                    }
+                    
+                  	this._miniIcons._allowShare._text.setAttribute("text",canvas.getLabelName(1068));
+                    if (this.refObj.canShare) {
+                    	this._miniIcons._allowShare.setAttribute("visibility","visible");
+                        this._miniIcons._allowShare.setAttribute("showhandcursor",true);
+                        this._miniIcons._denyShare.setAttribute("visibility","hidden");
+                    } else {
+                    	this._miniIcons._allowShare.setAttribute("visibility","hidden");
+                        this._miniIcons._allowShare.setAttribute("showhandcursor",false);
+                        this._miniIcons._denyShare.setAttribute("visibility","visible");
+                    }
+                    
+                    this._miniIcons._allowRemote._text.setAttribute("text",canvas.getLabelName(1079));
+                    if (this.refObj.canRemote) {
+                    	this._miniIcons._allowRemote.setAttribute("visibility","visible");
+                        this._miniIcons._allowRemote.setAttribute("showhandcursor",true);
+                        this._miniIcons._denyRemote.setAttribute("visibility","hidden");
+                    } else {
+                    	this._miniIcons._allowRemote.setAttribute("visibility","hidden");
+                        this._miniIcons._allowRemote.setAttribute("showhandcursor",false);
+                        this._miniIcons._denyRemote.setAttribute("visibility","visible");
+                    }
+
+					this._miniIcons._allowExclusiveAudio._text.setAttribute("text",canvas.getLabelName(1425));
+                    if (this.refObj.canGiveAudio) {
+                    	this._miniIcons._allowExclusiveAudio.setAttribute("visibility","visible");
+                        this._miniIcons._allowExclusiveAudio.setAttribute("showhandcursor",true);
+                        this._miniIcons._denyExclusiveAudio.setAttribute("visibility","hidden");
+                    } else {
+                    	this._miniIcons._allowExclusiveAudio.setAttribute("visibility","hidden");
+                        this._miniIcons._allowExclusiveAudio.setAttribute("showhandcursor",false);
+                        this._miniIcons._denyExclusiveAudio.setAttribute("visibility","visible");
+                    }
+                    
+                } else {
+                	this._x._kickUser.setAttribute("visibility","hidden");
+                    this._miniIcons._isModAddbutton.setAttribute("visibility","hidden");
+                    
+                    if (this.refObj.canDraw) {
+                        this._miniIcons._canDraw.setAttribute("visibility","visible");
+                    } else {
+                        this._miniIcons._canDraw.setAttribute("visibility","hidden");
+                    }
+                    
+                    if (this.refObj.canShare) {
+                        this._miniIcons._allowShare.setAttribute("visibility","visible");
+                    } else {
+                        this._miniIcons._allowShare.setAttribute("visibility","hidden");
+                    }
+                    
+                    if (this.refObj.canRemote) {
+                        this._miniIcons._allowRemote.setAttribute("visibility","visible");
+                    } else {
+                        this._miniIcons._allowRemote.setAttribute("visibility","hidden");
+                    }
+
+                    if (this.refObj.canGiveAudio) {
+                    	this._miniIcons._allowExclusiveAudio.setAttribute("visibility","visible");
+                    } else {
+                    	this._miniIcons._allowExclusiveAudio.setAttribute("visibility","hidden");
+                    }
+                    
+                    //No Update action available
+                    this._miniIcons._canDrawModerator.setAttribute("visibility","hidden");
+                    this._miniIcons._denyShare.setAttribute("visibility","hidden");
+                    this._miniIcons._denyRemote.setAttribute("visibility","hidden");
+                    this._miniIcons._denyExclusiveAudio.setAttribute("visibility","hidden");
+                    this._miniIcons._canDraw.setAttribute("showhandcursor",false);
+                    this._miniIcons._canDraw._text.setAttribute("text","");
+                    this._miniIcons._allowRemote._text.setAttribute("text","");
+                    this._miniIcons._allowExclusiveAudio._text.setAttribute("text","");
+                    this._miniIcons._allowShare._text.setAttribute("text","");
+                    
+                }
+                    
+            }
+            
+            if ($debug) Debug.write("onmicMutedStatusChangedItem :3: ",this.refObj.publicSID,this.refObj.micMuted);
+            
+            if (this.refObj.micMuted) {
+            	this._x._mute._text.setAttribute("labelid",1408);
+            	this._x._mute.setAttribute("frame",2);
+            } else {
+            	this._x._mute._text.setAttribute("labelid",1407);
+            	this._x._mute.setAttribute("frame",1);
+            }
+            
+            //this Icon is only available in case its the current User 
+            if (canvas.publicSID == this.refObj.publicSID) {
+                //if ($debug) Debug.write("IS SELF !!!!!!");
+                this._miniIcons._restartDevice.setAttribute("visibility","visible");
+            } else {
+                this._miniIcons._restartDevice.setAttribute("visibility","hidden");
+            }
+        ]]>
+    </method>
+    
+    <!--
+    public Boolean setCanDraw(String SID, String publicSID, boolean canDraw)
+     -->
+     
+    <netRemoteCallHib name="setCanDraw" funcname="whiteboardservice.setCanDraw"
+                       remotecontext="$once{ canvas.thishib }">
+        <netparam><method name="getValue"> return canvas.sessionId;</method></netparam>
+        <netparam><method name="getValue">return parent.parent.refObj.publicSID;</method></netparam>
+        <netparam><method name="getValue">return !parent.parent.refObj.canDraw;</method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+            //The onResult-Handler will be called be the rtmpconnection
+            //Debug.write("whiteboardservice.setCanDraw : ",value);
+            
+            ]]>
+        </handler>   
+    </netRemoteCallHib>  
+            
+    <netRemoteCallHib name="setCanShare" funcname="whiteboardservice.setCanShare"
+                       remotecontext="$once{ canvas.thishib }">
+        <netparam><method name="getValue"> return canvas.sessionId;</method></netparam>
+        <netparam><method name="getValue">return parent.parent.refObj.publicSID;</method></netparam>
+        <netparam><method name="getValue">return !parent.parent.refObj.canShare;</method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+            //The onResult-Handler will be called be the rtmpconnection
+            //Debug.write("whiteboardservice.setCanShare : ",value);
+            
+            ]]>
+        </handler>   
+    </netRemoteCallHib> 
+    
+    <netRemoteCallHib name="setCanRemote" funcname="whiteboardservice.setCanRemote"
+                   remotecontext="$once{ canvas.thishib }">
+        <attribute name="publicSID" value="" type="string" />
+        <attribute name="canRemote" value="true" type="boolean" />
+        <netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+        <netparam><method name="getValue">return parent.parent.refObj.publicSID;</method></netparam>
+        <netparam><method name="getValue">return !parent.parent.refObj.canRemote;</method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("whiteboardservice.setCanRemote : ",value);
+            ]]>
+        </handler>   
+    </netRemoteCallHib>
+
+    <netRemoteCallHib name="setCanGiveAudio" funcname="whiteboardservice.setCanGiveAudio"
+                   remotecontext="$once{ canvas.thishib }">
+        <netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+        <netparam><method name="getValue">return parent.parent.refObj.publicSID;</method></netparam>
+        <netparam><method name="getValue">return !parent.parent.refObj.canGiveAudio;</method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("setCanGiveAudio : ",value);
+            ]]>
+        </handler>
+    </netRemoteCallHib>
+            
+    <handler name="onmouseover">
+        this.setAttribute('bgcolor',canvas.getThemeColor('baseMousecolorizer'));
+    </handler>
+    
+    <handler name="onmouseout">
+        this.setAttribute('bgcolor',0xDADADA);
+    </handler>
+    
+    <image name="_userpic" stretches="both" x="1">
+        <handler name="onload">
+            <![CDATA[
+                if (this.height > 38) {
+                    //If bigger then containter then scale it
+                    var width = this.width/(this.height/38);
+                    this.setAttribute('height',38);
+                    this.setAttribute('width',width);
+                }
+                if (this.width > 38) {
+                    //If bigger then containter then scale it
+                    var height = this.height/(this.width/38);
+                    this.setAttribute('height',height);
+                    this.setAttribute('width',38);
+                }
+            ]]>
+        </handler>
+    </image>
+    
+    <labelText name="_firstName" fontsize="10" x="40" text="${ parent.firstname }" />
+    <labelText name="_lastName" fontsize="10" x="40" y="20" text="${ parent.lastname }" />
+    
+	<miniIcons name="_start_private_chat_rsc" x="114" y = "2" width="16" height="16"
+		resource="start_private_chat_rsc" showhandcursor="true"
+		visible="${ (canvas.currentRoomObj.hideChat == null || !canvas.currentRoomObj.hideChat) &amp;&amp; parent.refObj.publicSID != canvas.publicSID }">
+		
+		<handler name="onclick">
+			var refObj = parent.refObj;
+			if ($debug) Debug.write("Start Private Chat: ", refObj);
+			if (refObj.publicSID == canvas.publicSID) {
+				new lz.labelerrorPopup(canvas.main_content._content.inner
+					, {errorlabelid:1495});
+				return;
+			}
+			canvas._currentChatPanel.addChat(refObj);
+		</handler>
+		<labelTooltip labelid="1493" />
+	</miniIcons>
+    
+    <view name="_x" x="132" y="2">
+	     
+	    <miniIcons name="_mute" x="82" width="16" height="16" resource="mute_micro_btn_rsc" showhandcursor="true" >
+            <handler name="onclick">
+                <![CDATA[
+                    canvas._videocontainer._videoviewcontent.muteSound(parent.parent.refObj.publicSID, !parent.parent.refObj.micMuted);
+                ]]>
+            </handler>
+            <labelTooltip name="_text" text="" labelid="1407" />
+        </miniIcons>  
+        
+	    <miniIcons name="_kickUser" width="16" height="16" x="100"
+	               resource="kick_user_rsc" showhandcursor="true">
+	        <handler name="onclick">
+	        	
+	        	if (parent.parent.refObj.publicSID == canvas.publicSID) {
+	                new lz.labelerrorPopup(canvas.main_content._content.inner,{
+	                            errorlabelid:1214
+	                        });
+	                return;
+	            }
+	                
+	        	if (parent.isSuperModerator) {
+	                new lz.labelerrorPopup(canvas.main_content._content.inner,{errorlabelid:1217});
+	                return;
+	            }
+	        	
+	            if ($debug) Debug.write("USER Kick: ",parent.parent.refObj.publicSID);
+	            new lz.confirmationSingle(canvas.main_content._content.inner,{
+	                                           labelid:1216,labeliderror:1215,
+	                                           refObj:this,showCheckBox:false});
+	            
+	        </handler>
+	        
+	        <method name="sendConfirmation" args="yesno" >
+	            this.kickUserByPublicSID.publicSID = parent.parent.refObj.publicSID;
+	            this.kickUserByPublicSID.doCall();
+	        </method>
+	        
+	        <netRemoteCallHib name="kickUserByPublicSID" funcname="userservice.kickUserByPublicSID" 
+	                          remotecontext="$once{ canvas.thishib }" >    
+	            <attribute name="publicSID" value="" type="string" />  
+	            <netparam><method name="getValue"> return canvas.sessionId; </method></netparam>
+	            <netparam><method name="getValue"> return parent.publicSID; </method></netparam>
+	            <handler name="ondata" args="value">
+	                if ($debug) Debug.write("kickUserByPublicSID: ",value);
+	                //this.parent.destroy();
+	            </handler>
+	        </netRemoteCallHib> 
+	        
+	        <labelTooltip labelid="1213" />
+	    </miniIcons>   
+    </view>
+    
+    <view name="_miniIcons" x="113" y="22" height="18" >
+        
+        <miniIcons name="_isMod" x="0" width="16" resource="right_isactive_rsc" 
+                   height="16" showhandcursor="false">
+            <handler name="onclick">
+                <![CDATA[
+                
+                    if (parent.parent.isSuperModerator) {
+                        new lz.labelerrorPopup(canvas.main_content._content.inner,{errorlabelid:838});
+                        return;
+                    }
+                
+                    //if the label is set and this is a Moderator then this user should
+                    //allow the click event => the click event will trigger
+                    //this user away from beeing able to draw on the whiteboard
+                    if (canvas.ismoderator && this._text.text.length != 0) {
+                        //Do it 
+                        if ($debug) Debug.write("Do Remove It");
+                        hib.removeModerator.publicSIDOfNewModerator = parent.parent.refObj.publicSID;
+                        hib.removeModerator.doCall();
+                        //parent.parent.setCanDraw.doCall();
+                    }
+                ]]>
+            </handler>
+            <labelTooltip name="_text" text="" />
+        </miniIcons>
+        
+        <miniIcons name="_isModAddbutton" opacity="0.5" x="0" width="16" resource="right_notactive_rsc" 
+                   height="16" showhandcursor="true">
+            <handler name="onclick">
+                <![CDATA[
+                    //if the label is set and this is a Moderator then this user should
+                    //allow the click event => the click event will trigger
+                    //this user away from beeing able to draw on the whiteboard
+                    if (canvas.ismoderator && this._text.text.length != 0) {
+                        //Do it 
+                        if ($debug) Debug.write("Do Add It");
+                        hib.addModerator.publicSIDOfNewModerator = parent.parent.refObj.publicSID;
+                        hib.addModerator.doCall();
+                        //parent.parent.setCanDraw.doCall();
+                    }
+                ]]>
+            </handler>
+            <labelTooltip name="_text" labelid="676" />
+        </miniIcons>
+            
+        <miniIcons name="_canDraw" x="20" width="16" resource="right_isactive_rsc" 
+                   height="16" showhandcursor="false" >
+            <handler name="onclick">
+                <![CDATA[
+                    //if the label is set and this is a Moderator then this user should
+                    //allow the click event => the click event will trigger
+                    //this user away from beeing able to draw on the whiteboard
+                    if (canvas.ismoderator && this._text.text.length != 0) {
+                        //Do it 
+                        if ($debug) Debug.write("Do add draw to it");
+                        parent.parent.setCanDraw.doCall();
+                    }
+                ]]>
+            </handler>
+            <labelTooltip name="_text" text="" />
+        </miniIcons>
+        
+        <miniIcons name="_canDrawModerator" x="20" width="16" opacity="0.5"
+                   resource="right_notactive_rsc" height="16" showhandcursor="true">
+            <handler name="onclick">
+                //Do it 
+                if ($debug) Debug.write("Do it");
+                parent.parent.setCanDraw.doCall();
+            </handler>
+            <labelTooltip labelid="611" />
+        </miniIcons>
+        
+        <miniIcons name="_allowShare" x="40" width="16" resource="right_isactive_rsc" 
+                   height="16" showhandcursor="false" >
+            <handler name="onclick">
+                <![CDATA[
+                    //if the label is set and this is a Moderator then this user should
+                    //allow the click event => the click event will trigger
+                    //this user away from beeing able to draw on the whiteboard
+                    if (canvas.ismoderator && this._text.text.length != 0) {
+                        //Do it 
+                        if ($debug) Debug.write("Do add draw to it");
+                        parent.parent.setCanShare.doCall();
+                    }
+                ]]>
+            </handler>
+            <labelTooltip name="_text" text="" labelid="1068" />
+        </miniIcons>
+        
+        <miniIcons name="_denyShare" x="40" width="16" opacity="0.5"
+                   resource="right_notactive_rsc" height="16" showhandcursor="true">
+            <handler name="onclick">
+                //Do it 
+                if ($debug) Debug.write("Do it");
+                parent.parent.setCanShare.doCall();
+            </handler>
+            <labelTooltip labelid="1067" />
+        </miniIcons>
+        
+        
+        <miniIcons name="_allowRemote" x="60" width="16" resource="right_isactive_rsc" 
+                   height="16" showhandcursor="false" >
+            <handler name="onclick">
+                <![CDATA[
+                    //if the label is set and this is a Moderator then this user should
+                    //allow the click event => the click event will trigger
+                    //this user away from beeing able to draw on the whiteboard
+                    if (canvas.ismoderator && this._text.text.length != 0) {
+                        //Do it 
+                        if ($debug) Debug.write("Do add draw to it");
+                        parent.parent.setCanRemote.doCall();
+                    }
+                ]]>
+            </handler>
+            <labelTooltip name="_text" text="" labelid="1079" />
+        </miniIcons>
+        
+        <miniIcons name="_denyRemote" x="60" width="16" opacity="0.5"
+                   resource="right_notactive_rsc" height="16" showhandcursor="true">
+            <handler name="onclick">
+                //Do it 
+                if ($debug) Debug.write("Do it");
+                parent.parent.setCanRemote.doCall();
+            </handler>
+            <labelTooltip labelid="1078" />
+        </miniIcons>
+
+        <miniIcons name="_allowExclusiveAudio" x="80" width="16" resource="right_isactive_rsc"
+                   height="16" showhandcursor="false" >
+            <handler name="onclick">
+                <![CDATA[
+                    //if the label is set and this is a Moderator then this user should
+                    //allow the click event => the click event will trigger
+                    //this user away from beeing able to give exclusive audio
+                    if (canvas.ismoderator && this._text.text.length != 0) {
+                        if ($debug) Debug.write("Do it");
+                        parent.parent.setCanGiveAudio.doCall();
+                    }
+                ]]>
+            </handler>
+            <labelTooltip name="_text" text="" labelid="1425" />
+        </miniIcons>
+
+        <miniIcons name="_denyExclusiveAudio" x="80" width="16" opacity="0.5"
+                   resource="right_notactive_rsc" height="16" showhandcursor="true">
+            <handler name="onclick">
+                parent.parent.setCanGiveAudio.doCall();
+            </handler>
+            <labelTooltip labelid="1424" />
+        </miniIcons>
+        
+        
+        <miniIcons name="_restartDevice" x="100" width="16" height="16" resource="resyncuser_rsc" showhandcursor="true">
+            <handler name="onclick">
+                //TODO: local connection call
+                if ($debug) Debug.write("parent.parent.refObj.publicSID: ",parent.parent.refObj.publicSID);
+                canvas._videocontainer._videoviewcontent.showDevicePopUp(true);
+            </handler>
+            <labelTooltip labelid="610" />
+        </miniIcons>
+        
+        <view name="_loudness" x="120" >
+            <view x="0" y="0" name="loudness" resource="speaking" opacity="0.2"
+                  onmouseover="" onmouseout="" >      
+			    <handler name="onclick">
+					<![CDATA[
+				      	if (canvas.ismoderator || canvas.isAllowedToGiveExclusiveAudio) {
+				            canvas.thishib.giveExclusiveAudio.setExclusiveAudio(parent.parent.parent.refObj.publicSID);
+				        } else {
+				        	new lz.labelerrorPopup(canvas.main_content._content.inner,{errorlabelid:1478});    
+				        }
+					]]>
+				</handler> 
+                <labelTooltip inittwice="true" labelid="372" />
+            </view>
+        </view>    
+    </view>
+    
+    <view name="divisionLine" width="$once{ parent.width }" 
+          bgcolor="0xFFFFFF" height="1" y="39" />
+    
+</class>
+ 
+</library>
diff --git a/WebContent/src/modules/conference/participants/participants.lzx b/WebContent/src/modules/conference/participants/participants.lzx
new file mode 100644
index 0000000..93108d2
--- /dev/null
+++ b/WebContent/src/modules/conference/participants/participants.lzx
@@ -0,0 +1,299 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+<class name="participants" extends="baseRoomInnerList" 
+       height="$once{ parent.height-34 }">
+
+    <!--- holds a references to the videoview which is broadcasting -->
+    <attribute name="broadCastViewRef" value="null" />
+    
+    <handler name="oninit">
+        //set modus
+        canvas.thishib.modus = "conference";
+       
+        //set reference, this reference will be cleared at *ontabcontenctleave* event
+        canvas._videocontainer=this;
+        
+        // Reconnect User to its Room Id
+        canvas.thishib.userScope = canvas.thishib.currentroomid;
+        var src = hib.getUrl();
+        
+        if( $debug ) Debug.write("videoContainer: canvas.thishib: ",canvas.thishib.src,canvas.thishib);
+        
+        if (canvas.thishib.src != src) {
+            canvas.thishib.setAttribute('src',src);
+
+			if (canvas.wicketsid == null){            
+	            canvas.thishib.reconnectionAction = true;
+	            canvas.thishib.reconnectObjRef = this;
+	            canvas.thishib.disconnect();
+            } else {
+            	this.reconnectSuccess();
+            }
+        } else {
+            //The user is already in the correct Scope
+            this.reconnectSuccess();
+        }
+    </handler>
+    
+    <method name="initList">
+    	//
+    </method>
+
+    <commonVideoComponentAdapter name="_videoviewcontent" />
+
+    <method name="reconnectSuccess">
+        if ($debug) Debug.write("User Reloged In");
+        //Send to SWF10 video-container to connect on the conference room url
+        //and wait for the as3ConnectionSuccess-Event
+        this._videoviewcontent.reconnectSuccess(false);
+    </method>
+
+    <!---
+        We need to wait till the video-container / as3 app has the connection established
+        otherwise it can happen that the video tries to start playing before the rtmp-connection
+        was established
+     -->
+    <method name="as3ConnectionSuccess">
+    	if ($debug) Debug.write("as3ConnectionSuccess continue loading");
+    	//set default values and get already availible streams
+    	//it can happen that if you click to exit the room the views are not
+    	//not cleaned up yet and you receive this event from the LocalConnection
+    	if (this["getRoomModeratorsByRoomId"]) {
+            this.getRoomModeratorsByRoomId.doCall();
+    	}
+    </method>
+
+
+
+    <!---
+        Returns a list of all moderators of the current room and parses 
+        if the current user should receive the supermoderator flag or not
+     -->
+    <netRemoteCallHib name="getRoomModeratorsByRoomId" funcname="conferenceservice.getRoomModeratorsByRoomId" 
+                      remotecontext="$once{ canvas.thishib }" >  
+        <netparam><method name="getValue">return canvas.sessionId;</method></netparam>    
+        <netparam><method name="getValue">return hib.currentroomid;</method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+                if ($debug) Debug.write("getRoomModeratorsByRoomId: ",value);
+                canvas.becomeSuperModerator = false;
+                
+                parent.setRoomValues.applyDefaultModeration = canvas.becomemoderator;
+                canvas.becomeSuperModerator = canvas.becomemoderator;
+                
+                if (!canvas.becomeSuperModerator) {
+    	            for (var i=0;i<value.length;i++) {
+                        
+                        if (value[i].user.user_id == canvas.user_id) {
+                            parent.setRoomValues.applyDefaultModeration = true;
+                            canvas.becomeSuperModerator = value[i].isSuperModerator;
+                            if ($debug) Debug.info("Make this User to an Moderator");
+                            break;
+                        }
+                        
+                    }
+                }
+	            
+                if ($debug) Debug.write("canvas.becomemoderator: ",canvas.becomemoderator);
+                if ($debug) Debug.write("canvas.becomeSuperModerator: ",canvas.becomeSuperModerator);
+                
+                canvas.currentusercolor = canvas.getColorForUser();
+                
+                var organisation_id = 1;
+            
+                if ($debug) Debug.write(hib.userobject); 
+                if ($debug) Debug.write(hib.currentdomainObj); 
+                
+                if (hib.currentdomainObj != null) {
+                    organisation_id = hib.currentdomainObj.organisation_id
+                }
+                
+                this.parent.setRoomValues.organisation_id = organisation_id;
+                
+                if ($debug) Debug.write("setRoomValues CALL: ");
+                this.parent.setRoomValues.doCall();
+            
+            ]]>
+        </handler>
+    </netRemoteCallHib>     
+
+    <!---
+        Returns a list of all users currently in the conference room
+     -->
+    <netRemoteCallHib name="setRoomValues" funcname="setRoomValues" remotecontext="$once{ canvas.thishib }" >   
+        <attribute name="applyDefaultModeration" value="false" type="boolean" />
+        <attribute name="organisation_id" value="0" type="number" />
+        <netparam><method name="getValue">return hib.currentroomid;</method></netparam>
+        <netparam><method name="getValue">return parent.applyDefaultModeration;</method></netparam>
+        <netparam><method name="getValue">return canvas.becomeSuperModerator;</method></netparam>
+        <netparam><method name="getValue">return parent.organisation_id;</method></netparam>
+        <netparam><method name="getValue">return canvas.currentusercolor;</method></netparam>
+        <handler name="ondata" args="roomStatus">
+            <![CDATA[
+            //The onResult-Handler will be called be the rtmpconnection
+            if ($debug) Debug.write("+++++++++++++++++");
+            if ($debug) Debug.write("+++++++++++++++++ setRoomValues1: ",roomStatus);
+            
+            if (roomStatus.roomFull) {
+                canvas.thishib.showFullMessage = true;
+                canvas.thishib.disconnect();
+            }
+            
+            if (roomStatus.browserStatus.browserInited) {
+                var tObj = new Object();
+                tObj[0] = "newBrowserURL";
+                tObj[1] = roomStatus.browserStatus.currentURL;
+                canvas.startBrowser(tObj);
+            }
+            
+            var value = roomStatus.clientList;
+            
+            for (var i = 0; i < value.length; ++i){
+                if ( value[i].streamid == canvas.streamid ) {
+                    canvas.isAllowedToDraw = value[i].canDraw;
+                }
+                //if ($debug) Debug.write("getClientListScope value: ",value[i]);
+                this.parent.addItem(value[i].connectedSince,value[i].isMod,value[i].streamid,value[i].username,
+                              '',value[i].formatedDate,value[i].userpos,value[i].usercolor,value[i]);
+            }
+            
+            //this content must be inited _after_ setting the default values
+            canvas.thishib.getCurrentModeratorList.doCall(); 
+            
+            canvas.thishib.checkLzRecording.doCall();
+            if (canvas._currentChatPanel.visible) {
+				canvas._currentChatPanel.toggleopen();
+			}
+		]]>
+        </handler>  
+    </netRemoteCallHib>
+
+    <!---
+        invoked if another client logs into the room 
+        after choosing devices
+     -->     
+    <method name="setAVSettingsToClient" args="rcl">
+        this._videoviewcontent.setAVSettingsToClient(rcl);
+    </method>
+
+    <method name="receiveExclusiveAudioFlag" args="publicSID">
+    <![CDATA[
+    	if ($debug) Debug.write("receiveExclusiveAudioFlag: ",publicSID);
+        var obj = this._participants.getUserListItemByPublicSID(publicSID);
+
+        for (var i=0; i<obj.parent.subviews.length; i++) {
+            var item = obj.parent.subviews[i];
+            var rcl = new Object();
+
+            rcl.publicSID = item.refObj.publicSID;
+            rcl.micMuted = !(publicSID == item.refObj.publicSID);
+            canvas.setMuteStatus(rcl);
+        }
+    ]]>
+    </method>
+    
+    <method name="addItem" args="connectedSince,isMod,streamid,username,userroom,formatedDate,position,color,object">
+        <![CDATA[
+            if ($debug) Debug.write("initializeStreams addItem: ",connectedSince,object);
+            
+            //Do init only in case this stream is NOT the same as we are
+            if (streamid!=canvas.streamid){
+            	//if ($debug) Debug.write("???????? object.isBroadcasting :: ",object.isBroadcasting);
+                this._videoviewcontent.createVideo(object.publicSID, object.firstname+' '+object.lastname, object.broadCastID, object.avsettings, -1, object);
+            }
+           
+            //do add self too
+            this._participants.addItem(object);
+        ]]>
+    </method>
+
+    <method name="setSpeakingByPos" args="publicSID,bool">
+    	var tObj = this._participants.getUserListItemByPublicSID(publicSID);
+    	if (tObj != null) {
+    		tObj._miniIcons._loudness.loudness.setAttribute('opacity', bool ? 1 : 0.2);
+        }
+        this._videoviewcontent.setSpeakingByPos(publicSID, bool);
+    </method>
+
+    <method name="closeStreamClient" args="publicSID">
+        this._videoviewcontent.closeStreamClient(publicSID);
+    </method>
+
+    <method name="updateMuteStatusVideoView" args="roomClient">
+        this._videoviewcontent.updateMuteStatusVideoView(roomClient);
+    </method>
+    
+    <method name="disconnectclient" args="publicSID">
+        this._videoviewcontent.disconnectclient(publicSID);
+        this._participants.disconnectclient(publicSID);
+    </method>
+
+    <method name="resetAllValues">
+        this._videoviewcontent.resetAllValues();
+    </method>
+    
+    <!--
+        invoked whenever a User starts to Stream Video in this Room,
+        interviewPodId has only a meaning in the Room Type Interview
+     -->
+    <method name="startStream" args="publicSID,broadcastId,firstname,lastname,interviewPodId,VWidth,VHeight">
+        this._videoviewcontent.startStream(publicSID,broadcastId,firstname,lastname,interviewPodId,VWidth,VHeight);
+    </method>
+    
+	<method name="addClientItem" args="connectedSince,isMod,streamid,username,room_id,formatedDate,position,color,object">
+	<![CDATA[
+		if ($debug) Debug.write("### initializeStreams addClientItem: ",connectedSince,isMod,streamid,username,room_id,formatedDate);
+		
+		if (canvas.publicSID != object.publicSID){
+		if ($debug) Debug.write("### initializeStreams createVideoObject: ", object);
+			this._videoviewcontent.createVideoObject(object.publicSID, false, -1, object);
+		}
+		
+		//Do Add it anyway
+		this._participants.addItem(object);
+	]]>
+	</method>
+    
+    <moderationMiniIconsEventUserList name="_applyAndStatusIcons" x="2" y="2" >
+        <handler name="onismoderator" reference="canvas" args="m">
+            this.updateIcons();
+        </handler>
+        <handler name="ondrawAllowStatus" reference="canvas" args="drawObject">
+            this.updateIcons();
+        </handler>
+        <handler name="onexclusiveAudioAllowStatus" reference="canvas" args="rclObject">
+            this.updateIcons();
+        </handler>
+        <handler name="onlastBroadCastingUser" reference="canvas" args="userObject">
+            this.updateIcons();
+        </handler>
+        <handler name="onmicMutedStatusChangedItem" reference="canvas" args="userObject">
+            this.updateIcons();
+        </handler>
+    </moderationMiniIconsEventUserList>
+    
+    <participantList name="_participants" />
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/participants/resources/accept.png b/WebContent/src/modules/conference/participants/resources/accept.png
new file mode 100644
index 0000000..89c8129
--- /dev/null
+++ b/WebContent/src/modules/conference/participants/resources/accept.png
Binary files differ
diff --git a/WebContent/src/modules/conference/participants/resources/delete.png b/WebContent/src/modules/conference/participants/resources/delete.png
new file mode 100644
index 0000000..08f2493
--- /dev/null
+++ b/WebContent/src/modules/conference/participants/resources/delete.png
Binary files differ
diff --git a/WebContent/src/modules/conference/participants/resources/micro_small.png b/WebContent/src/modules/conference/participants/resources/micro_small.png
new file mode 100644
index 0000000..215c831
--- /dev/null
+++ b/WebContent/src/modules/conference/participants/resources/micro_small.png
Binary files differ
diff --git a/WebContent/src/modules/conference/participants/resources/pencil_add.png b/WebContent/src/modules/conference/participants/resources/pencil_add.png
new file mode 100644
index 0000000..902bbe6
--- /dev/null
+++ b/WebContent/src/modules/conference/participants/resources/pencil_add.png
Binary files differ
diff --git a/WebContent/src/modules/conference/participants/resources/pencil_delete.png b/WebContent/src/modules/conference/participants/resources/pencil_delete.png
new file mode 100644
index 0000000..d8944e6
--- /dev/null
+++ b/WebContent/src/modules/conference/participants/resources/pencil_delete.png
Binary files differ
diff --git a/WebContent/src/modules/conference/participants/resources/user_add.png b/WebContent/src/modules/conference/participants/resources/user_add.png
new file mode 100644
index 0000000..deae99b
--- /dev/null
+++ b/WebContent/src/modules/conference/participants/resources/user_add.png
Binary files differ
diff --git a/WebContent/src/modules/conference/polls/answerPoll.lzx b/WebContent/src/modules/conference/polls/answerPoll.lzx
new file mode 100644
index 0000000..781d2b0
--- /dev/null
+++ b/WebContent/src/modules/conference/polls/answerPoll.lzx
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="answerPoll" extends="labelExplorerBox" labelid="18"
+    docking="true" resizeable="false" closable="true" width="500" x="100" height="240">
+    
+	<attribute name="createdBy" type="string" value="" />
+	<attribute name="pollDate" type="string" value="" />
+	<attribute name="pollQuestion" type="string" value="" />
+	<attribute name="pollTypeId" type="string" value="" />
+	<attribute name="roomPollAnswerList" type="string" value="" />
+	<attribute name="roomPollId" type="string" value="" />
+	<attribute name="roomScopeName" type="string" value="" />
+	
+	<labelText y="22" name="head" />
+	<labelText text="$once{ parent.pollQuestion }" y="42" x="0" height="60" width="380" multiline="true" resize="false"/>
+	
+	<handler name="oninit">
+		if ($debug) Debug.write("[answerPoll:oninit] this: ",this);
+		if (this.pollTypeId==1){
+			//Debug.write("Yes/No Question");
+			this.pollboolean.setAttribute('visible',true);
+		} else  if(this.pollTypeId==2) {
+			//Debug.write("Numeric Question");
+			this.pollnumeric.setAttribute('visible',true);
+		}
+		this.head.setAttribute('text',this.createdBy+" "+canvas.getLabelName(36));
+	</handler>
+	
+	<labelText y="102" labelid="33" />
+	
+	<radiogroup name="pollboolean" x="100" y="102" visible="false">
+	  	<labelRadioButton value="1" labelid="34" selected="true" />
+	  	<labelRadioButton value="2" labelid="35" />
+	</radiogroup>
+
+	<resetCombobox name="pollnumeric" visible="false" width="160" x="100" y="102" editable="false" itemclassname="bigTextListItem" >
+		<handler name="oninit">
+			<![CDATA[
+			for (var i=1;i<11;i++){
+				this.addItem(i,i);
+			}
+			this.selectItem('1');
+			]]>
+		</handler>
+	</resetCombobox>
+	
+    <simpleLabelButton labelid="32" width="200" x="80" y="218">
+    	<handler name="onclick">
+    		if (parent.pollTypeId==1){
+    			this.parent.vote.pollvalue = Number(parent.pollboolean.getValue());
+    		} else if (parent.pollTypeId==2){
+    			this.parent.vote.pollvalue = Number(parent.pollnumeric.getValue());
+    		}
+    		this.parent.vote.pollTypesId = parent.pollTypeId;
+    		this.parent.vote.doCall();
+    		
+    	</handler>
+    </simpleLabelButton>
+    
+    <simpleLabelButton labelid="25" width="200" x="290" y="218" 
+        onclick="this.parent.close();" />
+    
+        <netRemoteCallHib name="vote" funcname="pollservice.vote" remotecontext="$once{ canvas.thishib }" >
+            <attribute name="pollvalue" type="number" value="0" />
+            <attribute name="pollTypesId" type="number" value="0" />
+            <netparam><method name="getValue">return parent.pollvalue;</method></netparam>
+            <netparam><method name="getValue">return parent.pollTypesId;</method></netparam>
+            <handler name="ondata" args="value">
+                <![CDATA[
+                    //The onResult-Handler will be called be the rtmpconnection
+                    //Debug.write("vote : ",value);
+                    this.parent.close();
+                ]]>
+            </handler>   
+        </netRemoteCallHib>      
+    
+    
+</class>
+
+
+</library>
diff --git a/WebContent/src/modules/conference/polls/createPollWin.lzx b/WebContent/src/modules/conference/polls/createPollWin.lzx
new file mode 100644
index 0000000..fe283c3
--- /dev/null
+++ b/WebContent/src/modules/conference/polls/createPollWin.lzx
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<class name="bigTextListItem" extends="textlistitem" fontsize="11" />
+
+	<class name="createPollWin" extends="labelExplorerBox" labelid="18"
+		docking="true" resizeable="false" closable="true" width="500" x="100"
+		height="240">
+
+		<labelText fontstyle="bold" labelid="19" y="22" />
+
+		<labelText labelid="1410" y="42" />
+		<customEdittext name="_name" multiline="false" width="390"
+			x="100" y="42" />
+
+		<labelText labelid="20" y="67" />
+		<customEdittext name="_question" multiline="true"
+			width="390" x="100" y="67" height="60" />
+
+		<netRemoteCallHib name="getPollTypeList" funcname="pollservice.getPollTypeList"
+			remotecontext="$once{ canvas.thishib }">
+			<handler name="ondata" args="value">
+			<![CDATA[
+				//The onResult-Handler will be called be the rtmpconnection
+				if ($debug) Debug.write("getPollTypeList : ",value)
+				for (var i = 0; i < value.length; ++i) {
+					this.parent._polltypes.addItem(canvas.getLabelName(value[i].label.fieldvalues_id), value[i].pollTypesId);
+				}
+				this.parent._polltypes.selectItem(value[0].pollTypesId);
+			]]>
+			</handler>
+		</netRemoteCallHib>
+
+		<labelText labelid="21" y="142" />
+		<resetCombobox name="_polltypes" width="160" x="100" y="142"
+			editable="false" itemclassname="bigTextListItem">
+			<handler name="oninit">
+				this.parent.getPollTypeList.doCall();
+			</handler>
+		</resetCombobox>
+
+		<labelText fgcolor="red" labelid="23" y="175" width="480"
+			multiline="true" resize="false" />
+
+		<netRemoteCallHib name="createPoll" funcname="pollservice.createPoll"
+			remotecontext="$once{ canvas.thishib }">
+			<attribute name="pollname" value="" type="string" />
+			<attribute name="pollquestion" value="" type="string" />
+			<attribute name="polltypesid" value="0" type="number" />
+			<netparam><method name="getValue">return parent.pollname;</method></netparam>
+			<netparam><method name="getValue">return parent.pollquestion;</method></netparam>
+			<netparam><method name="getValue">return parent.polltypesid;</method></netparam>
+			<handler name="ondata" args="value">
+				//The onResult-Handler will be called be the rtmpconnection
+				if ($debug) Debug.write("createPoll : ",value);
+				this.parent.close();
+			</handler>
+		</netRemoteCallHib>
+
+		<simpleLabelButton labelid="22" width="100" x="280"
+			y="218">
+			<handler name="onclick">
+				this.parent.createPoll.pollname =
+				this.parent._name.getText();
+				this.parent.createPoll.pollquestion =
+				this.parent._question.getText();
+				this.parent.createPoll.polltypesid =
+				this.parent._polltypes.getValue();
+				//Debug.write("this.parent.createPoll.createPoll:",this.parent.createPoll.createPoll);
+				this.parent.createPoll.doCall();
+			</handler>
+		</simpleLabelButton>
+
+		<simpleLabelButton labelid="25" width="100" x="390"
+			y="218" onclick="this.parent.close();" />
+
+	</class>
+
+
+</library>
diff --git a/WebContent/src/modules/conference/polls/library.lzx b/WebContent/src/modules/conference/polls/library.lzx
new file mode 100644
index 0000000..0b31a5b
--- /dev/null
+++ b/WebContent/src/modules/conference/polls/library.lzx
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+    <include href="createPollWin.lzx" />
+    <include href="answerPoll.lzx" />
+    <include href="resultPollWin.lzx" />
+    
+</library>
diff --git a/WebContent/src/modules/conference/polls/resultPollWin.lzx b/WebContent/src/modules/conference/polls/resultPollWin.lzx
new file mode 100644
index 0000000..b7d95bd
--- /dev/null
+++ b/WebContent/src/modules/conference/polls/resultPollWin.lzx
@@ -0,0 +1,323 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<class name="resultPollWin" extends="labelExplorerBox" labelid="37"
+		docking="true" resizeable="false" closable="true" width="454" x="100"
+		height="454">
+		 
+		<attribute name="roomPoll" value="null" />
+		<attribute name="archPolls" value="null" />
+		<attribute name="resultpollvotes" value="null" />
+ 		<attribute name="displayedPoll" value="null" />
+
+		<handler name="oninit">
+			displayResults(roomPoll);
+		</handler>
+		
+		<method name="displayResults" args="poll">
+		<![CDATA[
+			displayedPoll = poll;
+			this.content.setAttribute("visible", poll != null);
+			if (poll == null) {
+				this.head.setAttribute('text', canvas.getLabelName(41));
+				updateButtons();
+				return;
+			}
+			updateButtons();
+			this.head.setAttribute('text',
+					(canvas.user_id == poll.createdBy.user_id ? canvas
+							.getLabelName(1411) : poll.createdBy.login)
+							+ " " + canvas.getLabelName(36));
+
+			var totalVotes = poll.roomPollAnswerList.length;
+			this.content.question.text.setAttribute('text', poll.pollQuestion);
+			this.content.voteResultNum.setAttribute('text', totalVotes);
+			if (this.resultpollvotes != null) {
+				this.resultpollvotes.destroy();
+			}
+			this.resultpollvotes = new lz.view(this.content, {
+						y : 146,
+						x : 100
+					});
+
+			var isNumeric = poll.pollType.isNumericAnswer;
+			var resArray = new Array(isNumeric ? 10 : 2);
+			for (var i = 0; i < resArray.length; ++i) {
+				resArray[i] = 0;
+			}
+			for (var i = 0; i < totalVotes; ++i) {
+				var idx = isNumeric
+						? poll.roomPollAnswerList[i].pointList - 1
+						: (poll.roomPollAnswerList[i].answer ? 0 : 1);
+				resArray[idx]++;
+			}
+			if (content._chartType.getValue() == 0) {
+				new lz.simplelayout(this.resultpollvotes, {
+							axis : 'y',
+							spacing : 2
+						});
+				for (var i = 0; i < resArray.length; ++i) {
+					var pos = (totalVotes == 0) ? 0 : Math.round(100
+							* resArray[i] / totalVotes);
+					new lz.parentResultPollBalk(this.resultpollvotes, {
+								newX : pos * 2,
+								newPercent : pos + '%',
+								textA : isNumeric ? i + 1 : canvas
+										.getLabelName(i == 0 ? 34 : 35)
+							});
+				}
+			} else {
+
+				if (!isNumeric) {
+					//yes/no
+					new lz.resultPieCharPoll(this.resultpollvotes, {
+								xseries : ["yes", "no"],
+								yseries : resArray,
+								tooltipseries : ["yes ("+resArray[0]+")", "no ("+resArray[1]+")"]
+							});
+				} else {
+
+					if ($debug)
+						Debug.write("tObject 1 ", ["1", "2", "3", "4", "5",
+										"6", "7", "8", "9", "10"]);
+					if ($debug)
+						Debug.write("tObject 2 ", resArray);
+
+					var tooltipseries = new Array(resArray.length);
+					for (var i=0;i<resArray.length;i++) {
+						tooltipseries[i] = "N° "+i+" ("+ resArray[i] +")";
+					}
+						
+					//numeric [1,2,3,4,5,6,7,8,9,10]
+					new lz.resultPieCharPoll(this.resultpollvotes, {
+						xseries : ["1", "2", "3", "4", "5", "6", "7", "8", "9",
+								"10"],
+						yseries : resArray,
+						tooltipseries : tooltipseries
+					});
+				}
+
+			}
+		]]>
+		</method>
+
+		<labelText y="22" name="archPollLbl" labelid="1412" />
+		<resetCombobox name="_archPolls" width="342" x="100" y="22"
+			editable="false" itemclassname="bigTextListItem">
+			
+			<netRemoteCallHib name="getArchivedPollList"
+				funcname="pollservice.getArchivedPollList" remotecontext="$once{ canvas.thishib }">
+				<handler name="ondata" args="value">
+				<![CDATA[
+					parent.removeAll();
+					if ($debug)
+						Debug.write("getArchivedPollList ", value);
+
+					this.parent.parent.archPolls = value;
+					var noArch = (value == null || (value != null && value.length == 0));
+					parent.setAttribute("visible", !noArch);
+					parent.parent.archPollLbl.setAttribute("visible", !noArch);
+					if (noArch) {
+						return;
+					}
+					if (this.parent.parent.roomPoll != null) {
+						this.parent.addItem(
+								this.parent.parent.roomPoll.pollName + "("
+										+ canvas.getLabelName(1413) + ")", -1);
+					}
+					for (var i = 0; i < value.length; ++i) {
+						this.parent.addItem(value[i].pollName, i);
+					}
+					this.parent.selectItem(this.parent.parent.roomPoll == null
+							? 0
+							: -1);
+				]]>
+				</handler>
+			</netRemoteCallHib>
+			
+			<handler name="oninit">
+				this.getArchivedPollList.doCall();
+			</handler>
+			
+			<handler name="onselect" args="sel">
+				if ($debug)
+					Debug.write("onselect ", sel);
+				this.parent.displayResults(sel.value > -1
+						? this.parent.archPolls[sel.value]
+						: this.parent.roomPoll);
+			</handler>
+			
+			<method name="removeAll">
+			<![CDATA[
+				var currentCount = this.cblist.getNumItems();
+				if ($debug) Debug.write("currentCount = ", currentCount);
+				for (var i = 0; i < currentCount; ++i) {
+					this.removeItemAt(0);
+				}
+			]]>
+            </method>
+		</resetCombobox>
+		
+		<labelText x="2" y="42" name="head" fontstyle="bold" />
+
+		<view name="content">
+			
+			<view name="question" x="2" y="62" width="440" height="60" bgcolor="0xFFFFFF">
+				<labelText x="0" y="0" name="text" multiline="true" 
+						   resize="false" width="$once{parent.width-14}" />
+				<om_vscrollbar/>
+			</view>
+            
+			<labelText y="122" labelid="39" />
+			<labelText y="122" x="100" name="voteResultNum" />
+			<resetCombobox name="_chartType" width="302" x="140" y="122" editable="false" >
+				<labeldTextListItem labelid="1414" value="0"/>
+				<labeldTextListItem labelid="1415" value="1" selected="true" />
+				<handler name="onselect" args="sel">
+					if ($debug) Debug.write("onselect ", sel);
+					var val = parent.parent._archPolls.getValue();
+					parent.parent.displayResults(val > -1
+							? parent.parent.archPolls[val]
+							: parent.parent.roomPoll);
+				</handler>
+			</resetCombobox>
+
+			<labelText y="146" labelid="40" x="2" />
+		</view>
+		
+		<method name="updateButtons">
+		<![CDATA[
+			_deletePoll.setAttribute("visible", canvas.ismoderator && displayedPoll != null);
+			var hasArch = _archPolls.cblist.getNumItems() > 0;
+			_closePoll.setAttribute("visible", _deletePoll.visible && (!hasArch || (hasArch && _archPolls.getValue() == -1)));
+		]]>
+		</method>
+		
+		<simpleLabelButton name="_deletePoll" labelid="1420" width="100"
+			x="2" y="$once{ parent.height-22 }"
+            onclick="new lz.confirmDeleteWindow(parent, {refObj: this, labelid: 1420, messagelabelid: 1421});"
+            >
+		    <netRemoteCallHib name="deletePoll" funcname="pollservice.deletePoll" remotecontext="$once{ canvas.thishib }" >   
+		        <netparam><method name="getValue"> var poll = parent.parent.parent.displayedPoll; return poll != null ? poll.roomPollId : -1; </method></netparam> 
+		        <handler name="ondata" args="value">
+				<![CDATA[
+					var p = parent.parent;
+					var archCount = p._archPolls.cblist.getNumItems();
+		        	var hasArch = archCount > 0;
+		        	if (!hasArch || (hasArch && p._archPolls.getValue() == -1)) {
+			        	p.roomPoll = null;
+		        	}
+		        	if (archCount) {
+		        		p.displayResults(null);
+		        	}
+		        	p._archPolls.getArchivedPollList.doCall();
+				]]>
+		        </handler>
+		    </netRemoteCallHib>
+			<method name="confirmDelete">
+				deletePoll.doCall();
+			</method>
+        </simpleLabelButton>
+            
+		<simpleLabelButton name="_closePoll" labelid="1418" width="100"
+			x="104" y="$once{ parent.height-22 }"
+            onclick="new lz.confirmDeleteWindow(parent, {refObj: this, labelid: 1418, confirmlabelid: 85, messagelabelid: 1419});"
+            >
+		    <netRemoteCallHib name="closePoll" funcname="pollservice.closePoll" remotecontext="$once{ canvas.thishib }" >   
+		        <handler name="ondata" args="value">
+		        	parent.parent.roomPoll = null;
+		        	parent.parent._archPolls.getArchivedPollList.doCall();
+		        </handler>
+		    </netRemoteCallHib>
+			<method name="confirmDelete">
+				if ($debug) Debug.write("parent._archPolls.getValue(); ", parent._archPolls.getValue());
+				closePoll.doCall();
+			</method>
+        </simpleLabelButton>
+            
+		<simpleLabelButton labelid="25" width="100" x="$once{ parent.width-102 }"
+            y="$once{ parent.height-22 }" onclick="this.parent.close();" />
+		
+	</class>
+
+	<class name="parentResultPollBalk" extends="view">
+		<attribute name="newX" value="0" type="number" />
+		<attribute name="newPercent" value="0%" type="string" />
+		<attribute name="answer" value="0" type="number" />
+		<attribute name="textA" value="" type="string" />
+		<text text="$once{ parent.textA }" resize="true" />
+		<resultPollBalk x="40" />
+	</class>
+
+	<class name="resultPollBalk" extends="view" bgcolor="black"
+		height="20" width="0">
+		<view bgcolor="red" width="${ parent.width-2 }" height="${ parent.height-2 }"
+			x="1" y="1" />
+		<text text="$once{ parent.parent.newPercent }" resize="true" y="2" />
+		<animator attribute="width" to="$once{ parent.parent.newX }"
+			duration="1000" />
+	</class>
+	
+	<class name="resultPieCharPoll" extends="ompiechart" x="40" width="300" 
+		height="280" style="omchartstyle">
+    
+		<attribute name="xseries" value="null"/>
+		<attribute name="yseries" value="null"/>
+		<attribute name="tooltipseries" value="null"/>
+    
+		<handler name="oninit">
+			this.legendbox.bringToFront();
+		</handler>
+    
+		<!--- get the dataseries -->
+		<method name="getOMDataSeries">
+		<![CDATA[
+			var tObject = new Object();
+
+			tObject.xseries = this.xseries;
+			tObject.yseries = this.yseries;
+			tObject.tooltipseries = this.tooltipseries;
+
+			return tObject;
+		]]>
+		</method>  
+    
+		<strokestyle name="pieslicestyle" strokeColor="0x000000" strokeWidth="1"
+			strokeType="solid" />
+        
+		<omlegend name="legendbox" legendFontsize="14" initstage="late"
+			legendborder="true" >
+        
+			<handler name="onitemmouseover" args="item">
+				var piepiece = parent.plotarea.arrPiePieces[item.identifier];
+				piepiece.renderInnerWedge();
+			</handler>
+
+			<handler name="onitemmouseout" args="item">
+				var piepiece = parent.plotarea.arrPiePieces[item.identifier];
+				piepiece.renderWedge();
+			</handler>
+		</omlegend>
+
+	</class>    
+    
+</library>
diff --git a/WebContent/src/modules/conference/popups/autoLoader.lzx b/WebContent/src/modules/conference/popups/autoLoader.lzx
new file mode 100644
index 0000000..14af187
--- /dev/null
+++ b/WebContent/src/modules/conference/popups/autoLoader.lzx
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+<class name="autoLoader" extends="view" align="center" valign="middle" pixellock="true">
+
+	<attribute name="maxwidth" value="400" type="number" />
+	<attribute name="maxsteps" value="22" type="number" />
+	<attribute name="currentsteps" value="0" type="number" />
+	
+	<!-- 
+	<handler name="oninit">
+		this.setAttribute("y",Math.round(this.y));
+		this.setAttribute("y",Math.round(this.y));
+	</handler>
+	 -->
+	
+	<method name="close">
+		canvas.main_content.setAttribute('visibility','visible');
+		canvas._mainbgcontentNavi.setAttribute('visibility','visible');
+		canvas.thishib.loaderVar = null;
+		this.destroy();
+	</method>
+	
+	<method name="setProgress">
+		this.currentsteps += 1;
+		if($debug) Debug.write("autoLoader/setProgress ===== ",this.currentsteps);
+		var w = Math.round(((this.maxwidth)/this.maxsteps)*this.currentsteps);
+		this.loadingbar.setAttribute('visibility','visible');
+		if($debug) Debug.write("autoLoader/setResourceNumber == ",w);
+		this.loadingbar._loading.setAttribute('width',w);
+	</method>
+    
+    <text fontsize="11" name="error" y="20" fgcolor="0x666666"/>
+    <text fontsize="11" name="_src" y="50" align="center" fgcolor="0x666666" visibility="$once{ ($debug) ? 'visible' : 'hidden' }" />
+    
+    <view name="loadingbar"  height="1" pixellock="true"
+          x="-5" y="40" width="$once{ parent.maxwidth+2 }" visibility="hidden">
+          <view x="1" y="1" width="$once{ parent.width-2 }" height="1" opacity="0.3"
+          		bgcolor="$once{ canvas.getThemeColor('styleMenuBarBaseColor') }" />
+          <view name="_loading" x="1" y="1" width="0" height="1"  pixellock="true" 
+          		bgcolor="$once{ canvas.getThemeColor('styleMenuBarBaseColor') }"/>
+    </view>
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/popups/chooseNickName.lzx b/WebContent/src/modules/conference/popups/chooseNickName.lzx
new file mode 100644
index 0000000..83ccfa7
--- /dev/null
+++ b/WebContent/src/modules/conference/popups/chooseNickName.lzx
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+ 
+ <class name="chooseNickName" extends="labelExplorerBox" labelid="1287"
+    docking="true" resizeable="false" closable="false" 
+    width="324" x="$once{ parent.width/2 - this.width/2 }" y="100" height="200">
+
+    <handler name="oninit">
+    	<![CDATA[
+    	
+    	   var tFirstname = "Guest"
+    	   var tLastname = "User "+getStringTimeWithSeconds();
+    	
+    	   this.firstName.setAttribute("text",tFirstname);
+    	   this.lastName.setAttribute("text",tLastname);
+    	
+    	]]>
+    </handler>
+
+    <!--
+    public Long setUserNickName(String firstname, String lastname, String email)
+     -->
+    <netRemoteCallHib name="setUserNickName" activeErrorHandler="true" 
+                        funcname="xmlcrm.setUserNickName" remotecontext="$once{ canvas.thishib }">          
+        <netparam><method name="getValue">return parent.parent.firstName.getText();</method></netparam>
+        <netparam><method name="getValue">return parent.parent.lastName.getText();</method></netparam>
+        <netparam><method name="getValue">return parent.parent.mail.getText();</method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("setUserNickName -1-: ",value);
+                
+                if (value<0){
+                    
+                } else {
+                    canvas.thishib.getCurrentRoomClient.doCall();
+                    parent.close();
+                }
+            ]]>
+        </handler>   
+    </netRemoteCallHib> 
+
+	<labelText y="26" x="4" labelid="1288" />
+		<customEdittext name="firstName" y="24" x="120" width="200" text="" />
+		
+	<labelText y="56" x="4" labelid="1289" />
+		<customEdittext name="lastName" y="54" x="120" width="200" text="" />
+		
+	<labelText y="86" x="4" labelid="1290" />
+		<customEdittext name="mail" y="84" x="120" width="200" 
+						regexpType="email" text="" />
+
+	<simpleLabelButton name="connect" x="$once{ parent.width-this.width-10 }" 
+					   y="$once{ parent.height-30 }" labelid="1291" width="120" >
+		<handler name="onclick">
+			<![CDATA[
+    			if (parent.firstName.getText().length < 4) {
+    				new lz.labelerrorPopup(canvas,{errorlabelid:1292});
+    				return;
+    			} else if (parent.lastName.getText().length < 4) {
+                    new lz.labelerrorPopup(canvas,{errorlabelid:1292});
+                    return;
+                } else if (parent.mail.getText() == "") {
+                    new lz.labelerrorPopup(canvas,{errorlabelid:1293});
+                    return;
+                }
+            
+                this.parent.setUserNickName.doCall();
+            ]]>    
+		</handler>
+	</simpleLabelButton>
+		
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/popups/confirmationBox.lzx b/WebContent/src/modules/conference/popups/confirmationBox.lzx
new file mode 100644
index 0000000..3d3d256
--- /dev/null
+++ b/WebContent/src/modules/conference/popups/confirmationBox.lzx
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<class name="confirmationBox" extends="labelExplorerBox" labelid="18"
+    docking="true" resizeable="false" closable="true" width="400" x="100" height="240">
+    
+    <attribute name="refObj" value="null" />
+    
+    <attribute name="labeliderror" value="0" type="number" />
+    
+    <attribute name="doAskAgain" value="true" type="boolean" />
+
+	<view x="4" resource="warning_icon_rsc" y="24" />
+
+    <labelText labelid="$once{ parent.labeliderror }" y="24" 
+    		   width="$once{ parent.width - 40 }"
+    	multiline="true" resize="false" x="30" />
+    
+    <labelCheckbox name="holddatainSO" 
+    			   visibility="$once{ (parent.doAskAgain) ? 'visible' : 'hidden' }" 
+    			   labelid="64" x="10" y="220" />
+    
+    <simpleLabelButton labelid="61" width="100" x="70" y="196">
+    	<handler name="onclick">
+    		this.parent.close();
+    	</handler>
+    </simpleLabelButton>    
+    <simpleLabelButton labelid="65" width="100" x="180" y="196">
+    	<handler name="onclick">         
+    		var t = parent.holddatainSO.getValue();
+            this.parent.refObj.sendConfirmation(false,t);
+            this.parent.close();
+    	</handler>
+    </simpleLabelButton>
+    <simpleLabelButton labelid="60" width="100" x="290" y="196">
+    	<handler name="onclick">
+    		var t = parent.holddatainSO.getValue();
+            this.parent.refObj.sendConfirmation(true,t);
+            this.parent.close();
+    	</handler>
+    </simpleLabelButton>  
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/popups/confirmationSingle.lzx b/WebContent/src/modules/conference/popups/confirmationSingle.lzx
new file mode 100644
index 0000000..324ed4f
--- /dev/null
+++ b/WebContent/src/modules/conference/popups/confirmationSingle.lzx
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="confirmationSingle" extends="labelExplorerBox" labelid="832"
+    docking="true" resizeable="false" closable="true" height="140" width="300">
+    
+    <attribute name="refObj" value="null" />
+    
+    <attribute name="refReturnMethod" value="null" />
+    
+    <attribute name="showCheckBox" value="true" type="boolean" />
+    
+    <attribute name="labeliderror" value="0" type="number" />
+    
+    <attribute name="doCalcPosition" value="true" type="number" />
+    
+	<attribute name="iconResource" value="warning_popup_icon_rsc" type="string" />
+
+	<image x="4" src="$once{ canvas.getThemeImage(parent.iconResource) }" y="24" />
+
+    <labelText labelid="$once{ parent.labeliderror }" y="24" 
+    		   width="$once{ parent.width - 40 }"
+    	multiline="true" resize="false" x="30" />
+        
+    <handler name="oninit">
+        <![CDATA[
+        
+        	if (!this.doCalcPosition) {
+        		return;
+        	}
+        
+            //Set Position of Confirmation Box as Close as possible to the Mouse
+            var x = parent.getMouse("x");
+            var y = parent.getMouse("y");
+            var newx = x - (this.width/2);
+            var newy = y - (this.height/2);
+            
+            if ($debug) Debug.write("1",x,y,newx,newy);
+            
+            if (newx < 0) {
+                newx = 20;
+            }
+            if (newy < 0) {
+                newy = 20;
+            }
+            
+            //if ($debug) Debug.write("1.1",(this.width + newx + 20),parent.width,this.width);
+            
+            var relativeWidth = parent.width;
+            if (relativeWidth > canvas.width) {
+            	relativeWidth = canvas.width;
+            }
+            
+            if (this.width + newx + 20 > relativeWidth) {
+            	newx = relativeWidth-this.width-20;
+            }
+            
+            if (this.height + newy + 20 > parent.height) {
+            	newy = parent.height-this.height-20;
+            }
+            
+            if ($debug) Debug.write("2",newx,newy);
+            
+            this.setAttribute("x",newx);
+            this.setAttribute("y",newy);
+            
+        ]]>
+    </handler>
+    
+    <labelCheckbox name="holddatainSO" visibility="$once{ (parent.showCheckBox) ? 'visible' : 'hidden' }" 
+                   labelid="64" x="10" y="$once{ parent.height - 46 }" />
+    
+    <simpleLabelButton labelid="61" width="100" x="$once{ parent.width - 105 }" y="$once{ parent.height - 26 }">
+    	<handler name="onclick">
+    		var t = parent.holddatainSO.getValue();
+    		this.parent.close();
+    		if (parent.refReturnMethod == null) {
+    			if ($debug) Debug.write("refObj ",this.parent.refObj);
+    		    this.parent.refObj.sendNoConfirmation();
+    		} else {
+    			this.parent.refObj[parent.refReturnMethod](false,t);
+    		}
+    	</handler>
+    </simpleLabelButton>    
+    <simpleLabelButton labelid="60" width="100" x="$once{ parent.width - 210 }" y="$once{ parent.height - 26 }">
+    	<handler name="onclick">
+    		var t = parent.holddatainSO.getValue();
+    		this.parent.close();
+    		if (parent.refReturnMethod == null) {
+    		    this.parent.refObj.sendConfirmation(true,t);
+    		} else {
+                this.parent.refObj[parent.refReturnMethod](true,t);
+            }
+    	</handler>
+    </simpleLabelButton>    
+</class>
+
+<class name="rememberMessage" extends="labelExplorerBox" labelid="832"
+	   x="$once{ canvas.width/2 - this.width/2 }" y="100"
+	   docking="true" resizeable="false" closable="true" height="140" width="300">
+    
+    <attribute name="refObj" value="null" />
+    
+    <attribute name="showCheckBox" value="true" type="boolean" />
+    
+    <attribute name="labeliderror" value="0" type="number" />
+    
+    <view x="4" resource="warning_icon_rsc" y="24" />
+
+    <labelText labelid="$once{ parent.labeliderror }" y="24" 
+               width="$once{ parent.width - 40 }"
+        multiline="true" resize="false" x="30" />
+        
+    <labelCheckbox name="holddatainSO" visibility="$once{ (parent.showCheckBox) ? 'visible' : 'hidden' }" 
+                   labelid="64" x="10" y="$once{ parent.height - 46 }" />
+    
+    <simpleLabelButton labelid="642" width="100" x="$once{ parent.width - 105 }" y="$once{ parent.height - 26 }">
+        <handler name="onclick">
+        	var t = parent.holddatainSO.getValue();
+            this.parent.close();
+            this.parent.refObj.sendConfirmation(t);
+        </handler>
+    </simpleLabelButton>    
+     
+</class>
+	
+</library>
diff --git a/WebContent/src/modules/conference/popups/converterPopup.lzx b/WebContent/src/modules/conference/popups/converterPopup.lzx
new file mode 100644
index 0000000..76178ad
--- /dev/null
+++ b/WebContent/src/modules/conference/popups/converterPopup.lzx
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="converterPopup" extends="labelExplorerBox" labelid="204"
+	docking="true" resizeable="true" closable="true" 
+    width="324" x="200" height="230">
+
+	<attribute name="error" value="null" />
+    
+    <handler name="oninit">
+        this.errorView.errorView.setAttribute('text',this.error);
+    </handler>
+
+	<view y="24" width="${ parent.width - 4 }" height="${ parent.height - 30 }" x="2" clip="true" name="errorView">
+		<text y="30" fontsize="10" fontstyle="bold" name="errorView"
+			multiline="true" width="${ parent.width - 14 }" selectable="true" />
+		<om_vscrollbar />
+	</view>
+
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/popups/editWhiteboardDefault.lzx b/WebContent/src/modules/conference/popups/editWhiteboardDefault.lzx
new file mode 100644
index 0000000..59981ef
--- /dev/null
+++ b/WebContent/src/modules/conference/popups/editWhiteboardDefault.lzx
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="questionCheckbox" extends="view" width="$once{parent.width-4}" >
+	<attribute name="labelid" value="0" type="number" />
+	<attribute name="valBool"  value="false" type="boolean" />
+	<labelCheckbox name="holddatainSO" x="2" y="0" 
+		value="$once{parent.valBool}" text="" />
+    <labelText labelid="$once{ parent.labelid }" width="$once{parent.width-24}"
+    	x="18" multiline="true" resize="false">	
+    	<handler name="onclick">
+    		this.parent.holddatainSO.onclick.sendEvent();
+    	</handler>
+    </labelText>
+</class>
+
+<class name="editWhiteboardDefault" extends="labelExplorerBox" labelid="66"
+    docking="true" resizeable="false" closable="true" width="400" x="100" height="240">
+    
+    <attribute name="refObj" value="null" />
+    
+    <view name="_settings" width="$once{parent.width-4}" height="180" y="24" clip="true">
+		<view name="inner" width="$once{parent.width}" >
+			<simplelayout axis="y" spacing="2" />
+		</view>
+    	<om_vscrollbar />
+    </view>
+    <!-- 
+    63
+     -->
+    
+    <handler name="oninit" >
+		var g = canvas.getUserData();
+         if (g["image"]==null) {
+         	g["image"]=new Array();
+         	g["image"]["clearField"]=false;
+         	g["image"]["askagainclear"]=false;
+         	g["image"]["donotaskagainrdc"]=false;
+         }
+         var t = new lz.questionCheckbox(this._settings.inner,{name:"clearField",labelid:63,valBool:g["image"]["clearField"]});
+         //Debug.write("t: ",t);
+         t = new lz.questionCheckbox(this._settings.inner,{name:"askagainclear",labelid:67,valBool:g["image"]["askagainclear"]});
+		 //Debug.write("t: ",t);
+		
+         if (g["wmlfile"]==null) {
+         	g["wmlfile"]=new Array();
+         	g["wmlfile"]["clearField"]=false;
+         	g["wmlfile"]["askagainclear"]=false;
+         }
+         t = new lz.questionCheckbox(this._settings.inner,{name:"askagainclearwml",labelid:212,valBool:g["wmlfile"]["askagainclear"]});
+         
+         t = new lz.questionCheckbox(this._settings.inner,{name:"donotaskagainrdc",labelid:1127,valBool:g["image"]["donotaskagainrdc"]});
+		 
+         
+		 if (g["doShowUpdateProfileMessage"] == null) {
+		 	new lz.questionCheckbox(this._settings.inner,{name:"doShowUpdateProfileMessage",labelid:1299,valBool:false});
+		 } else {
+		 	new lz.questionCheckbox(this._settings.inner,{name:"doShowUpdateProfileMessage",labelid:1299,valBool:g["doShowUpdateProfileMessage"]});
+		 }
+         
+		 
+		 //Debug.write("t: ",t);
+    </handler>    
+    
+    <method name="storesettings" >
+		var g = canvas.getUserData();
+		
+         if (g["image"]==null) g["image"]=new Array();
+         g["image"]["clearField"]=this._settings.inner.clearField.holddatainSO.getValue();
+         g["image"]["askagainclear"]=this._settings.inner.askagainclear.holddatainSO.getValue();
+         g["image"]["donotaskagainrdc"]=this._settings.inner.donotaskagainrdc.holddatainSO.getValue();
+		
+         if (g["wmlfile"]==null) g["wmlfile"]=new Array();
+		//always true
+         g["wmlfile"]["clearField"]=true;
+         g["wmlfile"]["askagainclear"]=this._settings.inner.askagainclearwml.holddatainSO.getValue();
+		
+         g["doShowUpdateProfileMessage"] = this._settings.inner.doShowUpdateProfileMessage.holddatainSO.getValue();
+         
+	     canvas.setUserData(g);
+    </method>
+    
+    <simpleLabelButton labelid="61" width="100" x="290" y="216">
+    	<handler name="onclick">
+    		this.parent.close();
+    	</handler>
+    </simpleLabelButton> 
+       
+    <simpleLabelButton labelid="60" width="100" x="180" y="216">
+    	<handler name="onclick">
+    		parent.storesettings();
+    		this.parent.close();
+    	</handler>
+    </simpleLabelButton>    
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/popups/errorModeratorPopup.lzx b/WebContent/src/modules/conference/popups/errorModeratorPopup.lzx
new file mode 100644
index 0000000..f62ad33
--- /dev/null
+++ b/WebContent/src/modules/conference/popups/errorModeratorPopup.lzx
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="errorModeratorPopup" extends="labelExplorerBox" labelid="204"
+	docking="true" resizeable="false" closable="true" 
+    width="224" x="300" height="230">
+
+	<attribute name="error" value="" type="string" />
+
+	<view y="24" width="218" height="170" x="2" clip="true">
+		<text y="30" fontsize="10" fontstyle="bold" text="${ parent.parent.error }"
+			multiline="true" width="190" />
+		<om_vscrollbar />
+	</view>
+    
+    <simpleLabelButton x="20" labelid="906" y="200" width="200">
+		<handler name="onclick">
+			//new lz.applyForModeration(canvas.main_content._content.inner);
+			canvas.thishib.applyForModeration.doCall();
+            this.parent.close();
+		</handler>
+    </simpleLabelButton>
+
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/popups/errorPopup.lzx b/WebContent/src/modules/conference/popups/errorPopup.lzx
new file mode 100644
index 0000000..a0e3fafe
--- /dev/null
+++ b/WebContent/src/modules/conference/popups/errorPopup.lzx
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="errorPopup" extends="labelExplorerBox" labelid="204"
+	docking="true" resizeable="false" closable="true" y="100"
+    x="$once{ parent.width/2 - this.width/2 }" height="160" width="324">
+
+	<attribute name="error" value="" type="string" />
+	
+	<attribute name="makeModal" value="false" type="boolean" />
+	
+	<handler name="oninit">
+	   if (this.makeModal) {
+	       lz.ModeManager.makeModal(this);
+	   }
+	</handler>
+	
+	<handler name="onclose">
+       if (this.makeModal) {
+           lz.ModeManager.releaseAll();
+       }
+    </handler>
+
+	<view x="4" resource="warning_icon_rsc" y="24" />
+
+	<view y="24" width="$once{ parent.width - 40 }" height="130" x="30" clip="true">
+		<text fontsize="10" fontstyle="bold" text="${ parent.parent.error }"
+			multiline="true" width="$once{ parent.width - 16 }" selectable="true" />
+	</view>
+    
+    <simpleLabelButton labelid="642" width="100" x="$once{ parent.width-105 }" 
+           y="$once{ parent.height-24 }" 
+           onclick="this.parent.close();" />
+
+</class>
+
+<class name="labelerrorPopup" extends="errorPopup">
+
+    <attribute name="errorlabelid" type="number" setter="setErrorLabelId(errorlabelid)" />
+    <method name="setErrorLabelId" args="errorlabelid" >
+        this.errorlabelid = errorlabelid;
+        this.setAttribute("error",canvas.getLabelName(this.errorlabelid));
+        if ($debug) Debug.write("labelerrorPopup: ",canvas.getLabelName(this.errorlabelid));
+    </method>
+    
+
+</class>
+
+<class name="singletonErrorPopup" extends="errorPopup">
+	<handler name="oninit">
+		lz.singletonErrorPopupHolder.dialogPresent = 1;
+		lz.singletonErrorPopupHolder.dialogObject = this;
+	</handler>
+	
+	<handler name="ondestroy">
+		lz.singletonErrorPopupHolder.dialogPresent = 0;
+		lz.singletonErrorPopupHolder.dialogObject = null;
+	</handler>
+</class>
+
+<class name="singletonErrorPopupHolder">
+	<attribute name="error" type="string" setter="setError(error)"/>
+	<attribute name="dialogPresent" allocation="class" value="0" />
+	<attribute name="dialogObject" allocation="class" />
+	
+	<method name="setError" args="error">
+	
+		if ( lz.singletonErrorPopupHolder.dialogPresent == 0 )
+		{
+			lz.singletonErrorPopupHolder.dialogPresent = 1;
+			lz.singletonErrorPopupHolder.dialogObject = new lz.singletonErrorPopup(canvas,{error:error});
+		}
+		else
+		{
+			lz.singletonErrorPopupHolder.dialogObject.error = error;
+		}
+	</method>
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/popups/headerMenu.lzx b/WebContent/src/modules/conference/popups/headerMenu.lzx
new file mode 100644
index 0000000..c3d6932
--- /dev/null
+++ b/WebContent/src/modules/conference/popups/headerMenu.lzx
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="headerMenu" extends="view" layout="axis:x;spacing:4;inset:4" >
+	<text fontsize="11" fontstyle="bold" text="${ canvas.firstName+' '+canvas.lastName }" resize="true" />
+	
+	<labelText labelid="58" fontsize="11" fontstyle="bold" resize="true" />
+	<text fontsize="11" fontstyle="bold" text="${ canvas.currentcourseNameLong }" resize="true" />
+	
+	<labelText labelid="59" fontsize="11" fontstyle="bold" resize="true" />
+	<text fontsize="11" fontstyle="bold" text="${ canvas.currentlanguage }" resize="true" />
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/popups/incomingScreenSharing.lzx b/WebContent/src/modules/conference/popups/incomingScreenSharing.lzx
new file mode 100644
index 0000000..dae9101
--- /dev/null
+++ b/WebContent/src/modules/conference/popups/incomingScreenSharing.lzx
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="incomingScreenSharing" extends="labelExplorerBox" labelid="643"
+        docking="true" resizeable="false" closable="true" width="260"
+        x="$once{ canvas.width - this.width - 10 }" y="10" height="160">
+    
+    <attribute name="messageObj" value="null" />
+    <attribute name="refObj" value="null" />
+    
+    <handler name="oninit">
+        var tString = canvas.getLabelName(644) + " " 
+                + messageObj.rcl.firstName + " " + messageObj.rcl.lastName;
+        this._text.setAttribute("text",tString);
+    </handler>
+    
+    <labelText name="_text" text="" x="10" y="22"
+            width="$once{ parent.width - 20 }" multiline="true" resize="false"/>
+    
+    <simpleLabelButton labelid="645" width="100" 
+                       x="$once{ parent.width - 105 }" y="$once{ parent.height - 26 }">
+        <handler name="onclick">
+            lz.Browser.loadURL(parent.generateFileLink(),'_BLANK');  
+        </handler>
+    </simpleLabelButton>
+    
+    <method name="generateFileLink">
+        <![CDATA[
+            return canvas.getUrl() + 'RtpSharerServlet?publicSID='+this.messageObj.publicSID +
+                    '&room='+this.messageObj.room +
+                    '&room_id='+hib.currentroomid +
+                    '&sid='+canvas.sessionId;  
+        ]]>
+    </method>
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/popups/library.lzx b/WebContent/src/modules/conference/popups/library.lzx
new file mode 100644
index 0000000..1da3a8b
--- /dev/null
+++ b/WebContent/src/modules/conference/popups/library.lzx
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+	<!-- 
+	FamFam Icon set
+	Creative Commons 3.0
+	 -->
+	<resource name="warning_icon_rsc" src="resources/error.png" />
+    
+    <include href="rpcerrorDialog.lzx" />
+    <include href="errorPopup.lzx" />
+    <include href="messageWin.lzx" />
+    <include href="headerMenu.lzx" />
+    <include href="confirmationBox.lzx" />
+    <include href="editWhiteboardDefault.lzx" />
+	<include href="confirmationSingle.lzx" />
+    <include href="autoLoader.lzx" />
+    <include href="converterPopup.lzx" />
+    <include href="errorModeratorPopup.lzx" />
+    <include href="syncWin.lzx" />
+    <include href="meetingTimer.lzx" />
+    <include href="incomingScreenSharing.lzx" />
+    <include href="redirectBox.lzx" />
+    <include href="chooseNickName.lzx" />
+    
+</library>
diff --git a/WebContent/src/modules/conference/popups/meetingTimer.lzx b/WebContent/src/modules/conference/popups/meetingTimer.lzx
new file mode 100644
index 0000000..bcfd4a2
--- /dev/null
+++ b/WebContent/src/modules/conference/popups/meetingTimer.lzx
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="meetingTimer" extends="labelExplorerBox" labelid="638"
+        docking="true" resizeable="false" closable="false" width="260"
+        x="$once{ canvas.width - this.width - 10 }" y="10" height="160">
+    
+    <attribute name="roomobj" value="null" />
+    <attribute name="refObj" value="null" />
+    
+    <attribute name="demoTime" value="0" type="number" />
+    
+    <handler name="oninit">
+        this.dText = canvas.getLabelName(639);
+        this.demoTime = this.roomobj.demoTime;
+        this.fadeText(null);
+    </handler>
+    
+    <method name="fadeText" args="item">
+        <![CDATA[
+            if (this.demoTime > 0) {
+                var min = Math.floor(this.demoTime/60);
+                var restSeconds = this.demoTime - (min * 60);
+                if (restSeconds < 10) {
+                    restSeconds = "0"+restSeconds;
+                }
+                var tString = this.dText + min + "min " + restSeconds + "sec";
+                
+                this._text._text.setAttribute("text",tString);
+                this.demoTime--;
+                lz.Timer.addTimer( new LzDelegate( this, "fadeText" ), 1000 );
+            } else {
+                if ($debug) Debug.write("DEMO IS OVER ");
+                canvas.doActionmenu('quit');
+            }
+        ]]>
+    </method>
+    
+    <!--
+    this.roomobj.demoTime
+     -->
+    
+    <view name="_text" x="2" width="$once{ parent.width -4 }" clip="true"
+        y="24" height="$once{ parent.height-25 }">
+        <labelText name="_text" text="" 
+            width="$once{ parent.width }" multiline="true" resize="false"/>
+    </view>
+
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/popups/messageWin.lzx b/WebContent/src/modules/conference/popups/messageWin.lzx
new file mode 100644
index 0000000..3cedb37
--- /dev/null
+++ b/WebContent/src/modules/conference/popups/messageWin.lzx
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="messageWin" extends="labelExplorerBox" labelid="18"
+    docking="true" resizeable="false" closable="true" 
+    width="400" x="100" height="240">
+    
+    <attribute name="labeliderror" value="0" type="number" />
+    
+    <view x="2" width="${ parent.width -4 }" clip="true"
+        y="24" height="$once{ parent.height-48 }">
+        <labelText labelid="$once{ parent.parent.labeliderror }" width="400"
+            y="22" multiline="true" resize="false"/>
+        <om_vscrollbar />
+    </view>
+	
+    <simpleLabelButton labelid="25" width="100" x="290" y="$once{ parent.height-22 }" 
+        onclick="this.parent.close();" />
+
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/popups/redirectBox.lzx b/WebContent/src/modules/conference/popups/redirectBox.lzx
new file mode 100644
index 0000000..bb7eaf5
--- /dev/null
+++ b/WebContent/src/modules/conference/popups/redirectBox.lzx
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<class name="redirectBox" extends="labelExplorerBox" labelid="50"
+	   valign="middle" align="center"
+	   docking="true" resizeable="false" closable="false" width="260" height="140">
+    
+    <attribute name="timerDel" value="null" />
+    <attribute name="maxTime" value="5000" type="number" />
+    
+    <attribute name="redirectURL" value="" type="string" />
+    
+	<handler name="oninit">
+		lz.ModeManager.makeModal(this);
+		this.timerDel = new LzDelegate( this, "timeLineAction" );
+		this.timeLineAction();
+	</handler>
+
+	<handler name="onclose">
+		lz.ModeManager.release(this);
+	</handler>	
+		
+    <method name="timeLineAction">
+    	<![CDATA[
+    	
+    		var tString = canvas.getLabelName(1098);
+    		tString += " " + Math.round(this.maxTime/1000) + " sek";
+    		
+    	
+	    	this.messageText.setAttribute("text",tString);
+	    	
+	    	this.maxTime -= 1000;
+	    	
+	    	if (this.maxTime >= 0) {
+	    		
+	    		lz.Timer.addTimer( this.timerDel, 1000 );
+	    		
+	    	} else {
+	    		
+	            if ($debug) Debug.write("this.redirectURL ",this.redirectURL);
+	            redirectToUrl(this.redirectURL, null);
+	    	}
+    	]]>
+    </method>
+    
+    <attribute name="refObj" value="null" />
+    
+
+	<view x="4" resource="warning_icon_rsc" y="24" />
+
+    <labelText name="messageText" text="" y="24" 
+    		   width="$once{ parent.width - 40 }"
+    	multiline="true" resize="false" x="30" />
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/popups/resources/error.png b/WebContent/src/modules/conference/popups/resources/error.png
new file mode 100644
index 0000000..628cf2d
--- /dev/null
+++ b/WebContent/src/modules/conference/popups/resources/error.png
Binary files differ
diff --git a/WebContent/src/modules/conference/popups/rpcerrorDialog.lzx b/WebContent/src/modules/conference/popups/rpcerrorDialog.lzx
new file mode 100644
index 0000000..ac6c304
--- /dev/null
+++ b/WebContent/src/modules/conference/popups/rpcerrorDialog.lzx
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<class name="baseErrorDialog" extends="labelExplorerBox" labelid="204"
+    docking="true" resizeable="false" closable="true" width="300" 
+	x="$once{ canvas.width/2-this.width/2 }" height="130">
+	
+	<handler name="oninit">
+        this.bringToFront();
+        lz.Focus.setFocus(this);
+        if (errorid != 0) {
+			this.getErrorByCode.doCall();
+		}
+    </handler>
+	
+    <attribute name="errortext" value="" type="string" />
+    <attribute name="addInfo" value="" type="string" />
+	<attribute name="errorid" value="0" type="number" />
+
+	<netRemoteCallHib name="getErrorByCode" funcname="errorservice.getErrorByCode" remotecontext="$once{ canvas.thishib }" >      
+		<netparam><method name="getValue"> return canvas.sessionId; </method></netparam>
+		<netparam><method name="getValue"> return parent.parent.errorid; </method></netparam>
+        <netparam><method name="getValue"> return canvas.thishib.userlang; </method></netparam>
+		<handler name="ondata" args="value">
+			<![CDATA[
+    			if ($debug) Debug.write("getErrorByCode ",value);
+    			//this.parent.destroy();
+    			this.parent.setAttribute('errortext',value.errmessage+" <br/><br/>"+parent.addInfo);
+    			this.parent.setAttribute('title',value.errortype);
+			]]>
+		</handler>
+	</netRemoteCallHib>		
+
+	<view x="4" resource="warning_icon_rsc" y="24" />
+
+	<view y="24" width="$once{ parent.width - 40 }" height="130" x="30" clip="true">
+		<text fontsize="10" fontstyle="bold" text="${ parent.parent.errortext }"
+			multiline="true" width="$once{ parent.width - 16 }" selectable="true" />
+	</view>
+	
+</class>
+	
+<class name="errorDialog" extends="baseErrorDialog">
+
+	<handler name="oninit">
+		lz.ModeManager.makeModal(this);
+	</handler>
+    <handler name="onclose">
+        lz.ModeManager.release(this);
+    </handler>
+	
+</class>
+	
+<class name="contentSaveWindow" extends="baseErrorDialog" labelid="936">
+	
+    <attribute name="saveObj" value="null" />
+    <attribute name="refObj" value="null" />
+    <attribute name="processNextIndex" value="0" type="number" />
+	<attribute name="errorid" value="0" type="number" />
+    
+    <handler name="oninit">
+        this.setAttribute('errorid',1545);
+        this.setAttribute('errortext',canvas.getLabelName(1545));
+        lz.ModeManager.makeModal(this);
+        if ($debug) Debug.write("contentsavewindow_errorid: ",errorid);
+        if ($debug) Debug.write("contentsavewindow_errortext: ",errortext);
+        this.startSave();
+    </handler>
+    
+    <handler name="onclose">
+        lz.ModeManager.release(this);
+    </handler>
+    
+    <method name="startSave">
+    	<![CDATA[
+    	for (var i=0;i<this.saveObj.length;i++){
+    		this.saveObj[i].prepareCall();
+    	}
+    	this.processNext();
+    	]]>
+    </method>
+	
+	<method name="errorByCode" args="eCode">
+		this.errorid = eCode;
+		this.getErrorByCode.doCall();
+	</method>
+    
+    <method name="processNext">
+    	<![CDATA[
+    	//Debug.write("processNext: ",this.saveObj.length,this.processNextIndex);
+    	if (this.saveObj.length>this.processNextIndex){
+    		this.saveObj[this.processNextIndex].returnObj=this;
+    		this.saveObj[this.processNextIndex].doCall();
+    		this.processNextIndex++;
+    	} else {
+    		//Debug.write("update process complete");
+    		this.refObj.onsavecompleted.sendEvent();
+    		this.close();
+    	}
+    	]]>
+    </method>
+	
+	<method name="doCallBack">
+		this.close();
+	</method>
+	
+    <simpleLabelButton name="_btn" labelid="333" width="100" x="$once{ parent.width-104 }" 
+		y="$once{ parent.height-24 }" onclick="parent.doCallBack();" /> 
+	
+</class>
+	
+<class name="rpcErrorDialog" extends="errorDialog" height="250">
+	
+	<method name="doCallBack">
+		this.close();
+	</method>
+	
+	<handler name="onclose">
+		if ( canvas.focusOnItem != null )
+		{
+			lz.Focus.setFocus( canvas.focusOnItem, true );
+		}
+	</handler>
+	
+    <simpleLabelButton name="_btn" labelid="333" width="120" x="$once{ parent.width-124 }" 
+		y="$once{ parent.height-24 }" onclick="parent.doCallBack();" /> 
+	
+</class>
+	
+<class name="callbackRpcErrorDialog" extends="errorDialog"
+	closable="false"  height="250">
+	
+	<attribute name="callBackObject" value="null" />
+	
+	<method name="doCallBack">
+		this.callBackObject.sendCallBack.sendEvent();
+		this.close();
+	</method>
+	
+	<handler name="onclose">
+		if ( canvas.focusOnItem != null )
+		{
+			lz.Focus.setFocus( canvas.focusOnItem, true );
+		}
+	</handler>
+	
+    <simpleLabelButton name="_btn" labelid="333" width="120" x="$once{ parent.width-124 }" 
+		y="$once{ parent.height-24 }" onclick="parent.doCallBack();" /> 
+	
+</class>
+   
+
+</library>
diff --git a/WebContent/src/modules/conference/popups/syncWin.lzx b/WebContent/src/modules/conference/popups/syncWin.lzx
new file mode 100644
index 0000000..dd1b387
--- /dev/null
+++ b/WebContent/src/modules/conference/popups/syncWin.lzx
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<class name="syncWin" extends="labelText" multiline="true" resize="false" 
+       width="260" align="right" y="${ parent.height - this.height - 10 }" 
+       bgcolor="0xFFFFFF" fgcolor="0xFF3300">
+    
+    <attribute name="refObj" value="null" />
+    
+    <attribute name="labeliderror" value="0" type="number" />
+    
+    <handler name="oninit">
+        this.setAttribute('text',canvas.getLabelName(this.labeliderror));
+    </handler>    
+    
+    <method name="close">
+    	this.destroy();
+    </method>
+    
+    <handler name="onclick">
+        this.destroy();
+    </handler>
+    
+    <method name="setMessage" args="mess">
+        this.setAttribute('text',mess);
+    </method>
+    
+</class>
+	
+<!--
+<class name="syncWin" extends="labelExplorerBox" labelid="558"
+        docking="true" resizeable="false" closable="true" width="250"
+        x="$once{ canvas.width/2 - this.width/2 }" height="140">
+    
+	<handler name="oninit">
+		lz.ModeManager.makeModal(this);
+	</handler>
+    
+    <handler name="onclose">
+    	lz.ModeManager.release(this);
+    	canvas.syncWindow = null;
+    </handler>
+    
+    <attribute name="labeliderror" value="0" type="number" />
+    
+    <view x="2" width="$once{ parent.width -4 }" clip="true"
+        y="24" height="$once{ parent.height-25 }">
+        <labelText labelid="$once{ parent.parent.labeliderror }" 
+            width="$once{ parent.width }" multiline="true" resize="false"/>
+    </view>
+
+</class>
+ -->
+
+</library>
diff --git a/WebContent/src/modules/conference/resources/arrow_refresh_small.png b/WebContent/src/modules/conference/resources/arrow_refresh_small.png
new file mode 100644
index 0000000..d3087df
--- /dev/null
+++ b/WebContent/src/modules/conference/resources/arrow_refresh_small.png
Binary files differ
diff --git a/WebContent/src/modules/conference/resources/speaking.png b/WebContent/src/modules/conference/resources/speaking.png
new file mode 100644
index 0000000..2ca21a7
--- /dev/null
+++ b/WebContent/src/modules/conference/resources/speaking.png
Binary files differ
diff --git a/WebContent/src/modules/conference/resources/webstart_play.png b/WebContent/src/modules/conference/resources/webstart_play.png
new file mode 100644
index 0000000..6d13683
--- /dev/null
+++ b/WebContent/src/modules/conference/resources/webstart_play.png
Binary files differ
diff --git a/WebContent/src/modules/conference/restricted/library.lzx b/WebContent/src/modules/conference/restricted/library.lzx
new file mode 100644
index 0000000..598e945
--- /dev/null
+++ b/WebContent/src/modules/conference/restricted/library.lzx
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+    <include href="restrictedUserList.lzx" />
+    <include href="restrictedUserListItem.lzx" />
+    <include href="restrictedUserListInner.lzx" />
+    <include href="moderationMiniIconRestricted.lzx" />
+    
+</library>
diff --git a/WebContent/src/modules/conference/restricted/moderationMiniIconRestricted.lzx b/WebContent/src/modules/conference/restricted/moderationMiniIconRestricted.lzx
new file mode 100644
index 0000000..fa13aa3
--- /dev/null
+++ b/WebContent/src/modules/conference/restricted/moderationMiniIconRestricted.lzx
@@ -0,0 +1,405 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="moderationMiniIconRestricted" extends="view" y="20" x="2" height="18">
+	
+	<attribute name="isMod" value="false" type="boolean"/>
+    <attribute name="isSuperModerator" value="false" type="boolean"/>
+	
+	<handler name="oninit">
+	<![CDATA[
+		this.isMod = parent.parent.isMod;
+		this.isSuperModerator = parent.parent.isSuperModerator;
+		
+		if ($debug) Debug.write(" :: moderationMiniIconRestricted :. ",this.isMod);
+		var refObj = parent.parent.refObj;
+		
+		if (this.isMod) {
+			this._isMod.setAttribute("visibility","visible");
+			this._isModAddbutton.setAttribute("visibility","hidden");
+		} else {
+			this._isMod.setAttribute("visibility","hidden");
+            this._isModAddbutton.setAttribute("visibility","visible");
+		}
+		
+		if (this.isMod) {
+			this._canDraw.setAttribute("visibility","visible");
+            this._canDraw.isActive = false;
+            this._canDraw.setAttribute("showhandcursor",false);
+            this._canDraw._text.setAttribute("text",canvas.getLabelName(681));
+            this._canDrawModerator.setAttribute("visibility","hidden");
+		} else {
+			if (refObj != null && refObj.canDraw) {
+                this._canDraw.setAttribute("visibility","visible");
+                this._canDraw.isActive = true;
+                this._canDraw.setAttribute("showhandcursor",true);
+                this._canDraw._text.setAttribute("text",canvas.getLabelName(612));
+                this._canDrawModerator.setAttribute("visibility","hidden");
+            } else {
+                this._canDraw.setAttribute("visibility","hidden");
+                this._canDrawModerator.setAttribute("visibility","visible");
+            }
+		}
+		
+		if (this.isMod) {
+			this._allowScreen.setAttribute("visibility","visible");
+            this._allowScreen.isActive = false;
+            this._allowScreen.setAttribute("showhandcursor",false);
+            this._allowScreen._text.setAttribute("text",canvas.getLabelName(1069));
+            
+            this._allowRemote.setAttribute("visibility","visible");
+            this._allowRemote.isActive = false;
+            this._allowRemote.setAttribute("showhandcursor",false);
+            this._allowRemote._text.setAttribute("text",canvas.getLabelName(1083));
+
+            this._allowExclusiveAudio.setAttribute("visibility","visible");
+            this._allowExclusiveAudio.isActive = false;
+            this._allowExclusiveAudio.setAttribute("showhandcursor",false);
+            this._allowExclusiveAudio._text.setAttribute("text",canvas.getLabelName(1083));
+            
+            this._denyScreen.setAttribute("visibility","hidden");
+            this._denyRemote.setAttribute("visibility","hidden");
+            this._denyExclusiveAudio.setAttribute("visibility","hidden");
+		} else {
+			
+			if ($debug) Debug.write("refObj.canShare :: ", (refObj != null && refObj.canShare));
+		
+			if (refObj != null && refObj.canShare) {
+    			this._allowScreen.setAttribute("visibility","visible");
+                this._allowScreen.isActive = true;
+                this._allowScreen.setAttribute("showhandcursor",true);
+                this._allowScreen._text.setAttribute("text",canvas.getLabelName(1068));
+                this._denyScreen.setAttribute("visibility","hidden");
+			} else {
+				this._allowScreen.setAttribute("visibility","hidden");
+				this._denyScreen.setAttribute("visibility","visible");
+			}
+			
+			if (refObj != null && refObj.canRemote) {
+    			this._allowRemote.setAttribute("visibility","visible");
+                this._allowRemote.isActive = true;
+                this._allowRemote.setAttribute("showhandcursor",true);
+                this._allowRemote._text.setAttribute("text",canvas.getLabelName(1079));
+                this._denyRemote.setAttribute("visibility","hidden");
+			} else {
+				this._allowRemote.setAttribute("visibility","hidden");
+				this._denyRemote.setAttribute("visibility","visible");
+			}
+
+            if (refObj != null && refObj.canGiveAudio) {
+    			this._allowExclusiveAudio.setAttribute("visibility","visible");
+                this._allowExclusiveAudio.isActive = true;
+                this._allowExclusiveAudio.setAttribute("showhandcursor",true);
+                this._allowExclusiveAudio._text.setAttribute("text",canvas.getLabelName(1425));
+                this._denyExclusiveAudio.setAttribute("visibility","hidden");
+            } else {
+				this._allowExclusiveAudio.setAttribute("visibility","hidden");
+				this._denyExclusiveAudio.setAttribute("visibility","visible");
+            }
+		}
+		
+		if (refObj != null && refObj.isBroadcasting) {
+			this._allowDevice.setAttribute("visibility","hidden");
+			this._denyDevice.setAttribute("visibility","visible");
+		} else {
+			this._allowDevice.setAttribute("visibility","visible");
+            this._denyDevice.setAttribute("visibility","hidden");
+		}
+		
+		if ($debug) Debug.write("Set micMuted ", (refObj != null && refObj.micMuted));
+		
+		if (refObj != null && refObj.micMuted) {
+			this._muteDevice.setAttribute("visibility","hidden");
+            this._unMuteDevice.setAttribute("visibility","visible");
+		} else {
+			this._muteDevice.setAttribute("visibility","visible");
+            this._unMuteDevice.setAttribute("visibility","hidden");
+		}
+		
+		this._start_private_chat_rsc.setAttribute('visible'
+			, (canvas.currentRoomObj.hideChat == null || !canvas.currentRoomObj.hideChat)
+				&& (refObj != null && refObj.publicSID != canvas.publicSID));
+	]]>
+	</handler>
+        
+    <miniIcons name="_isMod" x="0" width="16" showhandcursor="true"
+    		   resource="participants_isMod_rsc" height="16">
+        <handler name="onclick">
+            <![CDATA[
+            
+                if (parent.isSuperModerator) {
+                    new lz.labelerrorPopup(canvas.main_content._content.inner,{errorlabelid:838});
+                    return;
+                }
+            
+                //if the label is set and this is a Moderator then this user should
+                //allow the click event => the click event will trigger
+                //this user away from beeing able to draw on the whiteboard
+                if (canvas.ismoderator) {
+                    //Do it 
+                    if ($debug) Debug.write("Do Remove It");
+                    if (parent.parent.parent.refObj.publicSID != canvas.publicSID) {
+                        hib.removeModerator.publicSIDOfNewModerator = parent.parent.parent.refObj.publicSID;
+                        hib.removeModerator.doCall();
+                    } else {
+                    	new lz.labelerrorPopup(canvas,{errorlabelid:682});
+                    }
+                }
+            ]]>
+        </handler>
+        <labelTooltip name="_text" labelid="675" />
+    </miniIcons>
+    
+    <miniIcons name="_isModAddbutton" opacity="0.5" x="0" showhandcursor="true"
+    		   width="16" resource="participants_isMod_rsc" height="16">
+        <handler name="onclick">
+            <![CDATA[
+                //if the label is set and this is a Moderator then this user should
+                //allow the click event => the click event will trigger
+                //this user away from beeing able to draw on the whiteboard
+                if (canvas.ismoderator) {
+                    //Do it 
+                    if ($debug) Debug.write("Do Add It");
+                    hib.addModerator.publicSIDOfNewModerator = parent.parent.parent.refObj.publicSID;
+                    hib.addModerator.doCall();
+                }
+            ]]>
+        </handler>
+        <labelTooltip name="_text" labelid="676" />
+    </miniIcons>
+        
+    <miniIcons name="_canDraw" x="20" width="16" resource="participants_allow_drawing_rsc"
+               height="16" showhandcursor="false" >
+    	<attribute name="isActive" value="true" type="boolean" />
+        <handler name="onclick">
+            <![CDATA[
+                //if the label is set and this is a Moderator then this user should
+                //allow the click event => the click event will trigger
+                //this user away from beeing able to draw on the whiteboard
+                if (canvas.ismoderator && this.isActive) {
+                    //Do it 
+                    if ($debug) Debug.write("Do add draw to it");
+                    canvas.thishib.setCanDraw.publicSID = parent.parent.parent.refObj.publicSID;
+                    canvas.thishib.setCanDraw.canDraw = false;
+                    canvas.thishib.setCanDraw.doCall();
+                }
+            ]]>
+        </handler>
+        <labelTooltip name="_text" labelid="612" />
+    </miniIcons>
+    
+    <miniIcons name="_canDrawModerator" x="20" width="16" opacity="0.5"
+               resource="participants_allow_drawing_rsc" height="16" showhandcursor="true">
+        <handler name="onclick">
+            //Do it 
+            if (canvas.ismoderator) {
+                if ($debug) Debug.write("Do it");
+                canvas.thishib.setCanDraw.publicSID = parent.parent.parent.refObj.publicSID;
+                canvas.thishib.setCanDraw.canDraw = true;
+                canvas.thishib.setCanDraw.doCall();
+            }
+        </handler>
+        <labelTooltip labelid="611" />
+    </miniIcons>
+    
+    <miniIcons name="_allowScreen" x="40" width="16" height="16" 
+               resource="screen_allow_rsc" showhandcursor="true">
+    	<attribute name="isActive" value="true" type="boolean" />
+        <handler name="onclick">
+        	<![CDATA[
+                if ($debug) Debug.write("Deny Screen: ",parent.parent.parent.refObj.publicSID);
+                if (canvas.ismoderator && this.isActive) {
+                	canvas.thishib.setCanShare.publicSID = parent.parent.parent.refObj.publicSID;
+                    canvas.thishib.setCanShare.canShare = false;
+                    canvas.thishib.setCanShare.doCall();
+                }
+            ]]>
+        </handler>
+        <labelTooltip name="_text" labelid="1068" />
+    </miniIcons>
+    
+    <miniIcons name="_denyScreen" x="40" width="16" height="16"  opacity="0.5"
+               resource="screen_allow_rsc" showhandcursor="true">
+        <handler name="onclick">
+            if ($debug) Debug.write("Allow Screen: ",parent.parent.parent.refObj.publicSID);
+            if (canvas.ismoderator) {
+                canvas.thishib.setCanShare.publicSID = parent.parent.parent.refObj.publicSID;
+                canvas.thishib.setCanShare.canShare = true;
+                canvas.thishib.setCanShare.doCall();
+            }
+        </handler>
+        <labelTooltip labelid="1067" />
+    </miniIcons>  
+    
+     <miniIcons name="_allowRemote" x="60" width="16" height="16" 
+               resource="remote_allow_rsc" showhandcursor="true">
+    	<attribute name="isActive" value="true" type="boolean" />
+        <handler name="onclick">
+        	<![CDATA[
+                if ($debug) Debug.write("Deny Screen: ",parent.parent.parent.refObj.publicSID);
+                if (canvas.ismoderator && this.isActive) {
+                	canvas.thishib.setCanRemote.publicSID = parent.parent.parent.refObj.publicSID;
+                    canvas.thishib.setCanRemote.canRemote = false;
+                    canvas.thishib.setCanRemote.doCall();
+                }
+            ]]>
+        </handler>
+        <labelTooltip name="_text" labelid="1079" />
+    </miniIcons>
+    
+    <miniIcons name="_denyRemote" x="60" width="16" height="16"  opacity="0.5"
+               resource="remote_allow_rsc" showhandcursor="true">
+        <handler name="onclick">
+            if ($debug) Debug.write("Allow Screen: ",parent.parent.parent.refObj.publicSID);
+            if (canvas.ismoderator) {
+                canvas.thishib.setCanRemote.publicSID = parent.parent.parent.refObj.publicSID;
+                canvas.thishib.setCanRemote.canRemote = true;
+                canvas.thishib.setCanRemote.doCall();
+            }
+        </handler>
+        <labelTooltip labelid="1078" />
+    </miniIcons>        
+    
+    <miniIcons name="_allowDevice" x="80" width="40" height="16" 
+    		   resource="av_allow_rsc" showhandcursor="true">
+        <handler name="onclick">
+            if ($debug) Debug.write("ALLOW: ",parent.parent.parent.refObj.publicSID);
+            canvas.thishib.setBroadCastingFlag.publicSIDOfNewModerator = parent.parent.parent.refObj.publicSID;
+            canvas.thishib.setBroadCastingFlag.isAllowedToBroadCastAV = true;
+            canvas.thishib.setBroadCastingFlag.doCall(); 
+        </handler>
+        <labelTooltip labelid="683" />
+    </miniIcons>
+    
+    <miniIcons name="_denyDevice" x="80" width="40" height="16" resource="av_deny_rsc" 
+   				opacity="0.5" showhandcursor="true">
+        <handler name="onclick">
+            if ($debug) Debug.write("ALLOW: ",parent.parent.parent.refObj.publicSID);
+            canvas.thishib.setBroadCastingFlag.publicSIDOfNewModerator = parent.parent.parent.refObj.publicSID;
+            canvas.thishib.setBroadCastingFlag.isAllowedToBroadCastAV = false;
+            canvas.thishib.setBroadCastingFlag.doCall(); 
+        </handler>
+        <labelTooltip labelid="684" />
+    </miniIcons>
+    
+    <miniIcons name="_muteDevice" x="120" width="16" height="16" resource="mute_btn_rsc" 
+    				opacity="0.5" showhandcursor="true">
+        <handler name="onclick">
+            if ($debug) Debug.write("mute: ",parent.parent.parent.refObj.publicSID);
+            canvas._videocontainer._videoviewcontent.muteSound(parent.parent.parent.refObj.publicSID, true);
+        </handler>
+        <labelTooltip labelid="1384" />
+    </miniIcons>
+    
+    <miniIcons name="_unMuteDevice" x="120" width="16" height="16" resource="unmute_btn_rsc" 
+    		   showhandcursor="true" visibility="hidden">
+        <handler name="onclick">
+            if ($debug) Debug.write("unmute: ",parent.parent.parent.refObj.publicSID);
+            canvas._videocontainer._videoviewcontent.muteSound(parent.parent.parent.refObj.publicSID, false);
+        </handler>
+        <labelTooltip labelid="1385" />
+    </miniIcons>
+
+    <miniIcons name="_allowExclusiveAudio" x="136" width="16" height="16"
+               resource="participants_exclusive_audio_rsc" showhandcursor="true">
+    	<attribute name="isActive" value="true" type="boolean" />
+        <handler name="onclick">
+        	<![CDATA[
+                if ($debug) Debug.write("Deny Give Exclusive Audio: ",parent.parent.parent.refObj.publicSID);
+                if (canvas.ismoderator && this.isActive) {
+                    canvas.thishib.setCanGiveAudio.sendValue(parent.parent.parent.refObj.publicSID,false);
+                }
+            ]]>
+        </handler>
+        <labelTooltip name="_text" labelid="1425" />
+    </miniIcons>
+
+    <miniIcons name="_denyExclusiveAudio" x="136" width="16" height="16" opacity="0.5"
+               resource="participants_exclusive_audio_rsc" showhandcursor="true">
+        <handler name="onclick">
+            if ($debug) Debug.write("Allow Give Exclusive Audio: ",parent.parent.parent.refObj.publicSID);
+            if (canvas.ismoderator) {
+                canvas.thishib.setCanGiveAudio.sendValue(parent.parent.parent.refObj.publicSID,true);
+            }
+        </handler>
+        <labelTooltip labelid="1424" />
+    </miniIcons>
+    
+	<miniIcons name="_kickUser" x="154" width="16" height="16"
+               resource="kick_user_rsc" showhandcursor="true">
+        <handler name="onclick">
+        	
+        	if (parent.parent.parent.refObj.publicSID == canvas.publicSID) {
+				new lz.labelerrorPopup(canvas.main_content._content.inner,{
+             				errorlabelid:1214
+        				});
+				return;
+			}
+        	
+        	if (parent.isSuperModerator) {
+                new lz.labelerrorPopup(canvas.main_content._content.inner,{errorlabelid:1217});
+                return;
+            }
+        	
+            if ($debug) Debug.write("USER Kick: ",parent.parent.parent.refObj.publicSID);
+            new lz.confirmationSingle(canvas.main_content._content.inner,{
+                                           labelid:1216,labeliderror:1215,
+                                           refObj:this,showCheckBox:false});
+            
+        </handler>
+        
+        <method name="sendConfirmation" args="yesno" >
+            this.kickUserByPublicSID.publicSID = parent.parent.parent.refObj.publicSID;
+            this.kickUserByPublicSID.doCall();
+        </method>
+        
+        <netRemoteCallHib name="kickUserByPublicSID" funcname="userservice.kickUserByPublicSID" 
+                          remotecontext="$once{ canvas.thishib }" >    
+            <attribute name="publicSID" value="" type="string" />  
+            <netparam><method name="getValue"> return canvas.sessionId; </method></netparam>
+            <netparam><method name="getValue"> return parent.publicSID; </method></netparam>
+            <handler name="ondata" args="value">
+                if ($debug) Debug.write("kickUserByPublicSID: ",value);
+            </handler>
+        </netRemoteCallHib> 
+        
+        <labelTooltip labelid="1213" />
+    </miniIcons>              
+    
+	<miniIcons name="_start_private_chat_rsc" x="172" y = "2" width="16" height="16"
+		resource="start_private_chat_rsc" showhandcursor="true">
+		
+		<handler name="onclick">
+			var refObj = parent.parent.parent.refObj;
+			if ($debug) Debug.write("Start Private Chat: ", refObj);
+			if (refObj.publicSID == canvas.publicSID) {
+				new lz.labelerrorPopup(canvas.main_content._content.inner
+					,{errorlabelid:1495});
+				return;
+			}
+			canvas._currentChatPanel.addChat(refObj);
+		</handler>
+		<labelTooltip labelid="1493" />
+	</miniIcons>
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/restricted/restrictedUserList.lzx b/WebContent/src/modules/conference/restricted/restrictedUserList.lzx
new file mode 100644
index 0000000..876e124
--- /dev/null
+++ b/WebContent/src/modules/conference/restricted/restrictedUserList.lzx
@@ -0,0 +1,327 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+ 
+<class name="restrictedUserList" extends="view" width="$once{ parent.width }" 
+       height="${ parent.height-34 }">
+
+    <!--- holds a references to the videoview which is broadcasting -->
+    <attribute name="broadCastViewRef" value="null" />
+    
+    <!--- colors for each user -->
+    <attribute name="colorArray" value="null" />
+    
+    <attribute name="allowUserQuestions" value="true" type="boolean" />
+
+    <attribute name="showsVideoInSeparateComponent" value="true" type="boolean" />
+    
+    <handler name="onallowUserQuestions" args="bool">
+        if (bool != null) {
+            if (!bool) {
+                this._participants._applyAndStatusIcons.destroy();
+            }
+        }
+    </handler>
+    
+    <handler name="oninit">
+        //set modus
+        canvas.thishib.modus = "audience";
+        
+        //set reference, this reference will be cleared at *ontabcontenctleave* event
+        canvas._videocontainer=this;
+        
+        // Reconnect User to its Room Id
+        canvas.thishib.userScope = canvas.thishib.currentroomid;
+        var src = hib.getUrl();
+        
+        if( $debug ) Debug.write("videoContainer: canvas.thishib: ",canvas.thishib.src,canvas.thishib);
+        
+        if (canvas.thishib.src != src) {
+            canvas.thishib.setAttribute('src',src);
+            
+			if (canvas.wicketsid == null){            
+	            canvas.thishib.reconnectionAction = true;
+	            canvas.thishib.reconnectObjRef = this;
+	            canvas.thishib.disconnect();
+            } else {
+            	this.reconnectSuccess();
+            }
+        } else {
+            //The user is already in the correct Scope
+            this.reconnectSuccess();
+        }
+    </handler>
+
+    <commonVideoComponentAdapter name="_videoviewcontent"/>
+
+    <method name="reconnectSuccess">
+        if ($debug) Debug.write("User Reloged In");
+        //Send to SWF10 video-container to connect on the conference room url
+        //and wait for the as3ConnectionSuccess-Event
+        this._videoviewcontent.reconnectSuccess(false);
+    </method>
+
+    <!---
+        We need to wait till the video-container / as3 app has the connection established
+        otherwise it can happen that the video tries to start playing before the rtmp-connection
+        was established
+     -->
+    <method name="as3ConnectionSuccess">
+    	if ($debug) Debug.write("as3ConnectionSuccess continue loading");
+    	//set default values and get already availible streams
+    	//it can happen that if you click to exit the room the views are not
+    	//not cleaned up yet and you receive this event from the LocalConnection
+    	if (this["getRoomModeratorsByRoomId"]) {
+            this.getRoomModeratorsByRoomId.doCall();
+    	}
+    </method>
+
+    <netRemoteCallHib name="getRoomModeratorsByRoomId" funcname="conferenceservice.getRoomModeratorsByRoomId"
+                      remotecontext="$once{ canvas.thishib }" >  
+        <netparam><method name="getValue">return canvas.sessionId;</method></netparam>    
+        <netparam><method name="getValue">return hib.currentroomid;</method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+                if ($debug) Debug.write("getRoomModeratorsByRoomId: ",value);
+                canvas.becomeSuperModerator = false;
+                
+                parent.setRoomValues.applyDefaultModeration = canvas.becomemoderator;
+                canvas.becomeSuperModerator = canvas.becomemoderator;
+                
+                if (!canvas.becomeSuperModerator) {
+                    for (var i=0;i<value.length;i++) {
+                        
+                        if (value[i].user.user_id == canvas.user_id) {
+                            parent.setRoomValues.applyDefaultModeration = true;
+                            canvas.becomeSuperModerator = value[i].isSuperModerator;
+                            if ($debug) Debug.info("Make this User to an Moderator");
+                            break;
+                        }
+                        
+                    }
+                }
+                
+                if ($debug) Debug.write("canvas.becomemoderator: ",canvas.becomemoderator);
+                if ($debug) Debug.write("canvas.becomeSuperModerator: ",canvas.becomeSuperModerator);
+                
+                canvas.currentusercolor = canvas.getColorForUser();
+                
+                var organisation_id = 1;
+            
+                if ($debug) Debug.write(hib.userobject); 
+                if ($debug) Debug.write(hib.currentdomainObj); 
+                
+                if (hib.currentdomainObj != null) {
+                    organisation_id = hib.currentdomainObj.organisation_id
+                }
+                
+                this.parent.setRoomValues.organisation_id = organisation_id;
+                this.parent.setRoomValues.doCall();
+            
+            ]]>
+        </handler>
+    </netRemoteCallHib>     
+
+    <netRemoteCallHib name="setRoomValues" funcname="setRoomValues" remotecontext="$once{ canvas.thishib }" >   
+        <attribute name="applyDefaultModeration" value="false" type="boolean" />
+        <attribute name="organisation_id" value="0" type="number" />
+        <netparam><method name="getValue">return hib.currentroomid;</method></netparam>
+        <netparam><method name="getValue">return parent.applyDefaultModeration;</method></netparam>
+        <netparam><method name="getValue">return canvas.becomeSuperModerator;</method></netparam>
+        <netparam><method name="getValue">return parent.organisation_id;</method></netparam>
+        <netparam><method name="getValue">return canvas.currentusercolor;</method></netparam>
+        <handler name="ondata" args="roomStatus">
+            <![CDATA[
+            //The onResult-Handler will be called be the rtmpconnection
+            //if ($debug) Debug.write("setRoomValues1: ",value);
+            //if ($debug) Debug.write("setRoomValues2: ",hib.currentroomid);
+            
+            //if ($debug) Debug.write("+++++++++++++++++ getClientListScope : ",value);
+            
+            if (roomStatus.roomFull) {
+                canvas.thishib.showFullMessage = true;
+                canvas.thishib.disconnect();
+            }
+            
+            if (roomStatus.browserStatus.browserInited) {
+                var tObj = new Object();
+                tObj[0] = "newBrowserURL";
+                tObj[1] = roomStatus.browserStatus.currentURL;
+                canvas.startBrowser(tObj);
+            }
+            
+            var value = roomStatus.clientList;
+            
+            for (var i = 0; i < value.length; ++i){
+                if ( value[i].streamid == canvas.streamid ) {
+                    value[i].selfItem = true;
+                    canvas.isAllowedToDraw = value[i].canDraw;
+                } else {
+                    value[i].selfItem = false;
+                }
+
+                //value[i].lastname = value[i].lastname + "T: " + t;
+                
+                //if ($debug) Debug.write("getClientListScope value: ",value[i]);
+                this.parent.addItemInitial(value[i].connectedSince,value[i].isMod,value[i].streamid,value[i].username,
+                              '',value[i].formatedDate,value[i].userpos,value[i].usercolor,value[i]);
+            }
+            
+            //this content must be inited _after_ setting the default values
+            canvas.thishib.getCurrentModeratorList.doCall(); 
+            //FIXME Issue-1076
+            canvas.thishib.checkLzRecording.doCall();
+            
+            //Render and Show User-List
+            parent._participants.sortAndRenderList();
+            
+            if (canvas._currentChatPanel.visible) {
+				canvas._currentChatPanel.toggleopen();
+			}
+		]]>
+        </handler>  
+    </netRemoteCallHib>
+
+    <!-- invoked if another client logs into the room 
+    after choosing devices -->     
+    <method name="setAVSettingsToClient" args="rcl">
+        this._videoviewcontent.setAVSettingsToClient(rcl);
+    </method> 
+
+    <method name="addItemInitial" args="connectedSince,isMod,streamid,username,userroom,formatedDate,position,color,object">
+        <![CDATA[
+            //if ($debug) Debug.write("initializeStreams addItem: ",connectedSince,isMod,streamid,username,formatedDate);
+            
+            //Do init only in case this stream is NOT the same as we are
+            if (streamid!=canvas.streamid){
+                
+                //do add others
+                this._participants.initialAddItem(object);
+                
+                //if ($debug) Debug.write("???????? object.isBroadcasting :: ",object.isBroadcasting);
+                
+                if (object.isBroadcasting) {
+                    this._videoviewcontent.createVideo(object.publicSID, object.firstname+' '+object.lastname, object.broadCastID, object.avsettings, -1, object);
+                } else {
+                    this._videoviewcontent.createVideoObject(object.publicSID, false, -1, object);
+                }
+                
+            } else {
+                //do add self too
+                this._participants.initialAddItem(object);
+            }
+           
+        ]]>
+    </method>
+
+    <method name="receiveExclusiveAudioFlag" args="publicSID">
+    <![CDATA[
+        var vList = this._participants._table.renderList;
+        for (var i=0;i<vList.length;i++) {
+            var item = vList[i];
+            var rcl = new Object();
+
+            rcl.publicSID = item.publicSID;
+            rcl.micMuted = !(publicSID == item.publicSID);
+            canvas.setMuteStatus(rcl);
+        }
+    ]]>
+    </method>
+
+
+    <method name="addItem" args="connectedSince,isMod,streamid,username,userroom,formatedDate,position,color,object">
+        <![CDATA[
+            if ($debug) Debug.write("initializeStreams addItem: ",connectedSince,isMod,streamid,username,formatedDate);
+            
+            //Do init only in case this stream is NOT the same as we are
+            if (streamid!=canvas.streamid){
+                //if ($debug) Debug.write("???????? object.isBroadcasting :: ",object.isBroadcasting);
+
+                this._videoviewcontent.createVideo(object.publicSID, object.firstname+' '+object.lastname, object.broadCastID, object.avsettings, -1, object);
+
+                //do add others
+                this._participants.addItem(object);
+
+                //return myvideocontainer;
+            } else {
+                //do add self too
+                this._participants.addItem(object);
+            }
+           
+        ]]>
+    </method>
+    
+    <method name="addClientItem" args="connectedSince,isMod,streamid,username,room_id,formatedDate,position,color,object">
+        <![CDATA[
+        if ($debug) Debug.write("### initializeStreams addClientItem: ",connectedSince,isMod,streamid,username,room_id,formatedDate);
+
+        if (canvas.publicSID != object.publicSID){
+            this._videoviewcontent.createVideoObject(object.publicSID, false, -1, object);
+        }
+
+        //Do Add it anyway
+        this._participants.addItem(object);
+        ]]>
+    </method>
+        
+    <!--
+        invoked whenever a User starts to Stream Video in this Room, 
+        interviewPodId has only a meaning in the Room Type Interview
+     -->        
+    <method name="startStream" args="publicSID,broadcastId,firstname,lastname,interviewPodId,VWidth,VHeight">
+        this._videoviewcontent.startStream(publicSID,broadcastId,firstname,lastname,interviewPodId,VWidth,VHeight);
+    </method>
+
+    <method name="setSpeakingByPos" args="publicSID,bool">
+        this._videoviewcontent.setSpeakingByPos(publicSID, bool);
+    </method>
+
+    <method name="closeStreamClient" args="publicSID">
+        this._videoviewcontent.closeStreamClient(publicSID);
+    </method>
+
+    <method name="resetAllValues">
+        this._videoviewcontent.resetAllValues();
+    </method>
+    
+    <method name="removeVideoByUser" args="userObject">
+        this._videoviewcontent.removeVideoByUser(userObject.publicSID);
+    </method>
+    
+    <!--- 
+        stops the streaming but and destroys the view
+        @param int broadcastId broadcastId
+     -->
+    <method name="disconnectclient" args="publicSID">
+        this._videoviewcontent.disconnectclient(publicSID);
+        this._participants.disconnectclient(publicSID);
+    </method>
+
+    <method name="updateMuteStatusVideoView" args="roomClient">
+        this._videoviewcontent.updateMuteStatusVideoView(roomClient);
+    </method>
+    
+    <restrictedUserListInner name="_participants" />
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/restricted/restrictedUserListInner.lzx b/WebContent/src/modules/conference/restricted/restrictedUserListInner.lzx
new file mode 100644
index 0000000..c1db069
--- /dev/null
+++ b/WebContent/src/modules/conference/restricted/restrictedUserListInner.lzx
@@ -0,0 +1,641 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="restrictedUserListInner" extends="baseRoomInnerList"  
+       width="$once{ parent.width }" height="${ parent.height }" >
+    
+    <attribute name="selectedItem" value="null" />
+    
+    <attribute name="listType" value="eventUserListTable" type="string" />
+    
+    <attribute name="sortType" value="alphabetical" type="string" />
+    
+    <handler name="oninit">
+        <![CDATA[
+            this.initList();
+        ]]>
+    </handler>
+    
+    <method name="initialAddItem" args="object">
+        <![CDATA[
+            if ($debug) Debug.write("restrictedUserListInner::initialAddItem : ",object.publicSID);
+            
+            //Check for duplicates
+            if (object.isSuperModerator) {
+                object.lastname += " *";
+            }
+            
+            //Add item to list
+            if (this._table.renderList == null) {
+                this._table.renderList = new Array();
+            }
+            
+            object.isSelected = false;
+            this._table.renderList.push(object);
+        ]]>
+    </method>
+    
+     <method name="addItem" args="object">
+        <![CDATA[
+            if ($debug) Debug.write("restrictedUserListInner::addItem: ",object.publicSID);
+            
+            //Check for duplicates
+            if (object.isSuperModerator) {
+                object.lastname += " *";
+            }
+            
+            object.selfItem = false;
+            //Add item to list
+            if (this._table.renderList == null) {
+                this._table.renderList = new Array();
+            }
+            
+            object.isSelected = false;
+            this._table.renderList.push(object);
+            this.sortUserList();
+            
+            this._table.scheduleRenderContent();
+            this.moderationPanel.updateIcons();
+        ]]>
+    </method>
+    
+    <method name="sortAndRenderList">
+        this.sortUserList();
+        this._table.renderContent();
+    </method>
+    
+    <method name="sortUserList">
+        <![CDATA[ 
+            if (this.sortType == "alphabetical") {
+                function sortByName(a,b) {
+                    if(a.firstname.toLowerCase() < b.firstname.toLowerCase()) return -1;
+                    else if(a.firstname.toLowerCase() > b.firstname.toLowerCase()) return 1;
+                    else return 0;
+                }
+                this._table.renderList.sort(sortByName);
+            } else {
+                function sortByStreamId(a,b) {
+                    if(Number(a.streamid) == Number(b.streamid)) return 0;
+                    else if(Number(a.streamid) > Number(b.streamid)) return 1;
+                    else return -1;
+                }
+                this._table.renderList.sort(sortByStreamId);
+            }
+        ]]>
+    </method>
+    
+    <method name="initList">
+        if ($debug) Debug.write("initList :: restrictedUserListInner");
+    </method>
+    
+    <method name="clearList">
+        if ($debug) Debug.write("clearList :: restrictedUserListInner");
+    </method>
+    
+    <method name="disconnectclient" args="publicSID">
+        <![CDATA[
+           for (var i=0;i<this._table.renderList.length;i++) {
+               if (this._table.renderList[i].publicSID == publicSID) {
+                   this._table.renderList.splice(i,1);
+                   break;
+               }
+           }
+           this._table.renderContent();
+           this.moderationPanel.updateIcons();
+        ]]>
+    </method>
+    
+	<method name="getUserListItemByPublicSID" args="publicSID">
+	<![CDATA[
+		var v = null;
+		var vList = this._table._innerlist._inn._inn.subviews;
+		for (var i = 0; i < vList.length; ++i) {
+			if (vList[i].refObj.publicSID == publicSID) {
+				v = vList[i];
+				break;
+			}
+		}
+		return v;
+	]]>
+    </method>
+    
+    <view name="userStatus" layout="axis:y">
+        <view>
+             <view resource="userstatus_multiframe_rsc" frame="1" />
+             <labelText x="16" labelid="677" />
+        </view>
+        <view>
+             <view resource="userstatus_multiframe_rsc" frame="2" />
+             <labelText x="16" labelid="678" />
+        </view>
+        <view>
+             <view resource="userstatus_multiframe_rsc" frame="3" />
+             <labelText x="16" labelid="679" />
+        </view>
+    </view>
+    
+    <moderationMiniIconsEventUserList name="_applyAndStatusIcons" x="$once{ parent.width-this.width-20 }" y="2" >
+        <handler name="onismoderator" reference="canvas" args="m">
+            this.updateIcons();
+        </handler>
+        <handler name="ondrawAllowStatus" reference="canvas" args="drawObject">
+            this.updateIcons();
+        </handler>
+        <handler name="onexclusiveAudioAllowStatus" reference="canvas" args="rclObject">
+            this.updateIcons();
+        </handler>
+        <handler name="onlastBroadCastingUser" reference="canvas" args="userObject">
+            this.updateIcons();
+        </handler>
+        <handler name="onmicMutedStatusChangedItem" reference="canvas" args="userObject">
+            this.updateIcons();
+        </handler>
+    </moderationMiniIconsEventUserList>
+    
+    
+    <turnOverListOrderedPaged name="_table" showTopBar="false" x="1"
+             height="${ parent.height-30-parent.moderationPanel.height }" 
+             y="30" itemHeight="40" listLabelId="1001" headerHeight="0"
+             listItemName="restrictedUserListItem" showHScrollbar="hidden"
+             multiselect="false" width="268">
+        
+        <attribute name="currentSelectedIndex" value="null" />
+        
+        <attribute name="resizeDelegate" value="null"/>
+        <attribute name="resizeDelegateStarted" value="false" type="boolean"/>
+        
+        <attribute name="isLoaded" value="false" type="boolean"/>
+        
+        <attribute name="renderDelegate" value="null"/>
+        <attribute name="renderDelegateStarted" value="false" type="boolean"/>
+        
+        <handler name="onheight" args="h">
+        	if (this.isLoaded) {
+        		if ($debug) Debug.write("isLoaded True onheight ",h);
+            	if (!this.resizeDelegateStarted) {
+            		this.resizeDelegateStarted = true;
+            		lz.Timer.addTimer( this.resizeDelegate, 1000 );
+            	} else {
+            		lz.Timer.resetTimer( this.resizeDelegate, 1000 );
+            	}
+        	}
+        </handler>
+        
+        <handler name="oninit">
+        	this.resizeDelegate = new LzDelegate( this, "renderByHeightChange" );
+        	this.renderDelegate = new LzDelegate( this, "renderByNewUser" );
+            this.addHeaderItem(1001,260);
+        </handler>
+        
+        <method name="scheduleRenderContent">
+        	if ($debug) Debug.warn("scheduleRenderContent ");
+        	if (!this.renderDelegateStarted) {
+                this.renderDelegateStarted = true;
+                lz.Timer.addTimer( this.renderDelegate, 1000 );
+            } else {
+            	if ($debug) Debug.warn("More then one user was arriving within 1 Second - Postpone the Rendering to prevent too much reloading");
+                lz.Timer.resetTimer( this.renderDelegate, 1000 );
+            }
+        </method>
+        
+        <method name="renderByNewUser" args="refObj">
+        	this.renderDelegateStarted = false;
+        	this.renderContent();
+        </method>
+        
+        <method name="renderByHeightChange" args="refObj">
+        	
+        	if ($debug) Debug.write("..:: renderByHeightChange ::..",refObj);
+        	
+        	lz.Timer.removeTimer( this.resizeDelegate );
+        	this.resizeDelegateStarted = false;
+        	
+        	this.clearList();
+        	this._innerlist._inn.initItems(this.listItemName);
+        	
+        	this.renderContent();
+        </method>
+        
+        <handler name="onclickedItem" args="refObj">
+            <![CDATA[
+                if ($debug) Debug.write("onclickedItem ",refObj);
+                
+                if (this.currentSelectedIndex != null) {
+                    this.renderList[this.currentSelectedIndex]["isselected"] = false;
+                }
+                
+                this.currentSelectedIndex = refObj.itemId;
+                this.renderList[refObj.itemId]["isselected"] = true;
+                
+                var list = this._innerlist._inn._inn;
+                for (var i=0;i<list.subviews.length;i++){
+                    list.subviews[i].deselect();
+                    list.subviews[i].hideModeratorIcons();
+                }
+                
+                refObj.select();
+                refObj.initModeratorIcons();
+            ]]>
+        </handler>
+        
+        <method name="renderContent">
+            <![CDATA[
+                this.isLoaded = true;
+                var list = this._innerlist._inn._inn;
+                
+                if (this.renderList == null) {
+                	this.renderList = new Array();
+                }
+                //this.renderList = records;
+                var records = this.renderList;
+                this._innerlist._inn.setAttribute("y",0);
+                this._innerlist._inn._inn.setAttribute("height",records.length*this.itemHeight);
+                this._innerlist._inn.resetItems();
+                
+                if ($debug) Debug.write(":: renderContent ::",this.renderList.length,list.subviews.length);
+                
+                this._records.setAttribute("text",records.length);
+                
+                for (var i=0;i<list.subviews.length;i++){
+                    if (records.length > i) {
+                        
+                        list.subviews[i].setAttribute("clickable",true);
+                        list.subviews[i].refObj = records[i];
+                        
+                        if (records[i]["isselected"] && records[i].isselected) {
+                            list.subviews[i].isselected = true;
+                            list.subviews[i].onmouseout.sendEvent();
+                            list.subviews[i].initModeratorIcons();
+                        } else {
+                            list.subviews[i].isselected = false;
+                            list.subviews[i].onmouseout.sendEvent();
+                            list.subviews[i].hideModeratorIcons();
+                        }
+                        
+                        list.subviews[i].setAttribute("user_id",records[i].user_id);
+                        list.subviews[i].setAttribute("firstname",records[i].firstname);
+                        list.subviews[i].setAttribute("isSuperModerator",records[i].isSuperModerator);
+                        list.subviews[i].setAttribute("lastname",records[i].lastname);
+                        list.subviews[i].setAttribute("connectedSince",records[i].connectedSince);
+                        list.subviews[i].setAttribute("canDraw",records[i].canDraw);
+                        list.subviews[i].setAttribute("canShare",records[i].canShare);
+                        list.subviews[i].setAttribute("canRemote",records[i].canRemote);
+                        list.subviews[i].setAttribute("canGiveAudio",records[i].canGiveAudio);
+                        list.subviews[i].setAttribute("micMuted",records[i].micMuted);
+                        list.subviews[i].setAttribute("isMod",records[i].isMod);
+                        list.subviews[i].isBroadcasting = records[i].isBroadcasting;
+                        list.subviews[i].setAttribute("selfItem",records[i].selfItem);
+                        list.subviews[i].streamid = records[i].streamid;
+                        list.subviews[i].setAttribute("username",records[i].username);
+                        list.subviews[i].setAttribute("formatedDate",records[i].formatedDate);
+                        
+                        list.subviews[i].setAttribute("itemId",i);
+                        
+                    } else {
+                        
+                        list.subviews[i].refObj = null;
+                        
+                        list.subviews[i].isselected = false;
+                        list.subviews[i].onmouseout.sendEvent();
+                        list.subviews[i].hideModeratorIcons();
+                        
+                        list.subviews[i].setAttribute("user_id","");
+                        list.subviews[i].setAttribute("firstname","");
+                        list.subviews[i].setAttribute("isSuperModerator","");
+                        list.subviews[i].setAttribute("lastname","");
+                        list.subviews[i].setAttribute("connectedSince","");
+                        list.subviews[i].setAttribute("canDraw",false);
+                        list.subviews[i].setAttribute("canShare",false);
+                        list.subviews[i].setAttribute("canRemote",false);
+                        list.subviews[i].setAttribute("canGiveAudio",false);
+                        list.subviews[i].setAttribute("micMuted",false);
+                        list.subviews[i].setAttribute("isMod",false);
+                        list.subviews[i].isBroadcasting = false;
+                        list.subviews[i].setAttribute("selfItem",false);
+                        list.subviews[i].streamid = "";
+                        list.subviews[i].setAttribute("username","");
+                        list.subviews[i].setAttribute("formatedDate","");
+                        list.subviews[i].setAttribute("itemId","");
+                        
+                        list.subviews[i].setAttribute("clickable",false);
+                    }
+                }
+            ]]>
+        </method>   
+        
+        <handler name="onScrollItem" args="item">
+            <![CDATA[
+                if (this.renderList.length > item.itemId) {
+                    item.setAttribute("clickable",true);
+                    item.refObj = this.renderList[item.itemId];
+                    
+                    if (this.renderList[item.itemId]["isselected"] && this.renderList[item.itemId].isselected) {
+                        item.isselected = true;
+                        item.onmouseout.sendEvent();
+                        item.initModeratorIcons();
+                    } else {
+                        item.isselected = false;
+                        item.onmouseout.sendEvent();
+                        item.hideModeratorIcons();
+                    }
+                    
+                    if ($debug) Debug.write(item.itemId,this.renderList[item.itemId].isMod,this.renderList[item.itemId].publicSID);
+                    
+                    item.setAttribute("user_id",this.renderList[item.itemId].user_id);
+                    item.setAttribute("firstname",this.renderList[item.itemId].firstname);
+                    item.setAttribute("isSuperModerator",this.renderList[item.itemId].isSuperModerator);
+                    item.setAttribute("lastname",this.renderList[item.itemId].lastname);
+                    item.setAttribute("connectedSince",this.renderList[item.itemId].connectedSince);
+                    item.setAttribute("canDraw",this.renderList[item.itemId].canDraw);
+                    item.setAttribute("canShare",this.renderList[item.itemId].canShare);
+                    item.setAttribute("canRemote",this.renderList[item.itemId].canRemote);
+                    item.setAttribute("canGiveAudio",this.renderList[item.itemId].canGiveAudio);
+                    item.setAttribute("micMuted",this.renderList[item.itemId].micMuted);
+                    item.isBroadcasting = this.renderList[item.itemId].isBroadcasting;
+                    item.setAttribute("isMod",this.renderList[item.itemId].isMod);
+                    item.setAttribute("selfItem",this.renderList[item.itemId].selfItem);
+                    item.streamid = this.renderList[item.itemId].streamid;
+                    item.setAttribute("username",this.renderList[item.itemId].username);
+                    item.setAttribute("formatedDate",this.renderList[item.itemId].formatedDate);
+                    
+                    item.setAttribute("itemId",item.itemId);
+                    
+                    item.updateIconByModScroll();
+                        
+                } else {
+                    item.isselected = false;
+                    item.onmouseout.sendEvent();
+                    item.hideModeratorIcons();
+                    
+                    item.refObj = null;
+                    
+                    item.setAttribute("user_id","");
+                    item.setAttribute("firstname","");
+                    item.setAttribute("isSuperModerator","");
+                    item.setAttribute("lastname","");
+                    item.setAttribute("connectedSince","");
+                    item.setAttribute("canDraw",false);
+                    item.setAttribute("canShare",false);
+                    item.setAttribute("canRemote",false);
+                    item.setAttribute("canGiveAudio",false);
+                    item.setAttribute("micMuted",false);
+                    item.setAttribute("isMod",false);
+                    item.isBroadcasting = false;
+                    item.setAttribute("selfItem",false);
+                    item.streamid = ""
+                    item.setAttribute("username","");
+                    item.setAttribute("formatedDate","");
+                    
+                    item.setAttribute("itemId","");
+                    
+                    item.setAttribute("clickable",false);
+                }
+                
+            ]]>
+        </handler>
+        
+    </turnOverListOrderedPaged> 
+       
+    <view name="moderationPanel" clip="true" 
+          height="${ (canvas.ismoderator) ? 40 : 0 }"
+          y="${ parent.height - this.height - 2 }">
+        
+        <handler name="onismoderator" reference="canvas" args="m">
+            if ($debug) Debug.write("###### ismoderator ",m);
+            <![CDATA[
+                this.updateIcons();
+            ]]>
+        </handler>
+        
+        <handler name="onmicMutedStatusChangedItem" reference="canvas" args="roomClientObj">
+        	<![CDATA[
+        	
+        	   if ($debug) Debug.write(" :: onmicMutedStatusChangedItem :: ",roomClientObj.micMuted);
+        	   
+                var vList = parent._table.renderList;
+                for (var i=0;i<vList.length;i++) {
+                    //vList[i].updateIconByMod();
+                    if (vList[i].publicSID == roomClientObj.publicSID) {
+                        parent._table.renderList[i].micMuted = roomClientObj.micMuted;
+                        break;
+                    }
+                }
+        	   
+        	   //search for the user and update its drawStatusIcon
+                var vList = parent._table._innerlist._inn._inn.subviews;
+                for (var i=0;i<vList.length;i++) {
+                    //vList[i].updateIconByMod();
+                    if (vList[i].refObj.publicSID == roomClientObj.publicSID) {
+                        vList[i].refObj.micMuted = roomClientObj.micMuted;
+                        vList[i].micMuted = roomClientObj.micMuted;
+                        vList[i].updateModeratorIcons();
+                        break;
+                    }
+                }
+        	   
+                if (parent._applyAndStatusIcons != null) {
+                	parent._applyAndStatusIcons.updateIcons();
+                }
+        	]]>
+        </handler>
+        
+        <handler name="ondrawAllowStatus" reference="canvas" args="drawObject">
+            <![CDATA[
+            
+                if ($debug) Debug.write(" :: ondrawAllowStatus :: ",drawObject.canDraw);
+            
+            	var vList = parent._table.renderList;
+                for (var i=0;i<vList.length;i++) {
+                    //vList[i].updateIconByMod();
+                    if (vList[i].publicSID == drawObject.publicSID) {
+                        parent._table.renderList[i].canDraw = drawObject.canDraw;
+                        parent._table.renderList[i].canShare = drawObject.canShare;
+                        parent._table.renderList[i].canRemote = drawObject.canRemote;
+                        break;
+                    }
+                }
+            
+                //search for the user and update its drawStatusIcon
+                var vList = parent._table._innerlist._inn._inn.subviews;
+                for (var i=0;i<vList.length;i++) {
+                    //vList[i].updateIconByMod();
+                    if (vList[i].refObj.publicSID == drawObject.publicSID) {
+                        vList[i].refObj.canDraw = drawObject.canDraw;
+                        vList[i].canDraw = drawObject.canDraw;
+                        vList[i].canShare = drawObject.canShare;
+                        vList[i].canRemote = drawObject.canRemote;
+                        vList[i].updateIconByModScroll();
+                        vList[i].updateModeratorIcons();
+                        break;
+                    }
+                }
+
+                if (parent._applyAndStatusIcons != null) {
+                	parent._applyAndStatusIcons.updateIcons();
+                }
+            ]]>
+        </handler>
+
+        <handler name="onexclusiveAudioAllowStatus" reference="canvas" args="rclObject">
+            <![CDATA[
+
+                if ($debug) Debug.write(" :: exclusiveAudioAllowStatus :: ",rclObject.canGiveAudio);
+				
+                var vList = parent._table.renderList;
+                for (var i=0;i<vList.length;i++) {
+                    if (vList[i].publicSID == rclObject.publicSID) {
+                        parent._table.renderList[i].canGiveAudio = rclObject.canGiveAudio;
+                        break;
+                    }
+                }
+				
+                //search for the user and update its exclusiveAudioStatusIcon
+                var vList = parent._table._innerlist._inn._inn.subviews;
+                for (var i=0;i<vList.length;i++) {
+                    if (vList[i].refObj.publicSID == rclObject.publicSID) {
+                        vList[i].refObj.canGiveAudio = rclObject.canGiveAudio;
+                        vList[i].canGiveAudio = rclObject.canGiveAudio;
+                        vList[i].updateIconByModScroll();
+                        vList[i].updateModeratorIcons();
+                        break;
+                    }
+                }
+
+                if (parent._applyAndStatusIcons != null) {
+                	parent._applyAndStatusIcons.updateIcons();
+                }
+            ]]>
+        </handler>
+        
+        <handler name="onlastBroadCastingUser" reference="canvas" args="userObject">
+            <![CDATA[
+            
+               if ($debug) Debug.write(" :: onlastBroadCastingUser :: ");
+                
+                if (!userObject.isBroadcasting) {
+                    //Stop Broadcasting and close Dialog
+                    //Search, stop and remove video
+                    parent.parent.removeVideoByUser(userObject);
+                }
+                
+                var vList = parent._table.renderList;
+                for (var i=0;i<vList.length;i++) {
+                    if (vList[i].publicSID == userObject.publicSID) {
+                        parent._table.renderList[i].isBroadcasting = userObject.isBroadcasting;
+                        break;
+                    }
+                }
+                
+                //search for the user and update its drawStatusIcon
+                var vList = parent._table._innerlist._inn._inn.subviews;
+                for (var i=0;i<vList.length;i++) {
+                    if (vList[i].refObj.publicSID == userObject.publicSID) {
+                        vList[i].isBroadcasting = userObject.isBroadcasting;
+                        vList[i].updateModeratorIcons();
+                        break;
+                    }
+                }
+                
+                if (parent._applyAndStatusIcons != null) {
+                	parent._applyAndStatusIcons.updateIcons();
+                }
+            ]]>
+        </handler>
+        
+        <method name="updateIcons">
+            <![CDATA[
+            
+                if ($debug) Debug.write(" :: updateIcons :: ");
+                
+                for (var i=0;i<parent._table.renderList.length;i++) {
+                
+                    for (var k=0;k<canvas.newModeratorList.length;k++) {
+                        
+                        var item = canvas.newModeratorList[k];
+                        
+                        if (parent._table.renderList[i].publicSID == item.publicSID) {
+                            
+                            if (parent._table.renderList[i].isMod == false) {
+                                if ($debug) Debug.info("updateIcons Found RR ",i,item.publicSID);
+                                parent._table.renderList[i].isMod = true;
+                                
+                                var itemView = this.getItemByPublicSID(item.publicSID);
+                                if (itemView != null) {
+                                    itemView.setAttribute("isMod",true);
+                                    itemView.updateModeratorIcons();
+                                }
+                            }
+                            
+                        }
+                        
+                    }
+                    
+                    for (var k=0;k<canvas.removeModeratorList.length;k++) {
+                        
+                        var item = canvas.removeModeratorList[k];
+                        
+                        if (parent._table.renderList[i].publicSID == item.publicSID) {
+                            
+                            if (parent._table.renderList[i].isMod == true) {
+                               if ($debug) Debug.info("RE updateIcons Found RR ",i,item.publicSID);
+                               parent._table.renderList[i].isMod = false;
+                            
+                               var itemView = this.getItemByPublicSID(item.publicSID);
+                               if (itemView != null) {
+                                   itemView.setAttribute("isMod",false);
+                                   itemView.updateModeratorIcons();
+                               }
+                            }
+                            
+                        }
+                        
+                    }
+                
+                }
+                
+                if (parent._applyAndStatusIcons != null) {
+                	parent._applyAndStatusIcons.updateIcons();
+                }
+            ]]>
+        </method>
+        
+        <method name="getItemByPublicSID" args="publicSID">
+            <![CDATA[
+                var vList = parent._table._innerlist._inn._inn.subviews;
+                
+                for (var i=0;i<vList.length;i++) {
+                    if (vList[i].refObj.publicSID == publicSID) {
+                        return vList[i];
+                    }
+                }
+                
+                return null;
+            ]]>
+        </method>
+        
+        <labelText labelid="680" width="270" x="0" multiline="true" y="0" />
+    </view>
+
+</class>
+
+
+</library>
diff --git a/WebContent/src/modules/conference/restricted/restrictedUserListItem.lzx b/WebContent/src/modules/conference/restricted/restrictedUserListItem.lzx
new file mode 100644
index 0000000..bc90663
--- /dev/null
+++ b/WebContent/src/modules/conference/restricted/restrictedUserListItem.lzx
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="restrictedUserListItem" extends="basePagingListItem" 
+	   showhandcursor="false" width="254" height="42">
+	
+	<attribute name="connectedSince" value="" type="string" />
+	
+    <attribute name="isMod" value="false" type="boolean" />
+    
+    <attribute name="streamid" value="" type="string" />
+    <attribute name="username" value="" type="string" />
+    <attribute name="userroom" value="" type="string" />
+    <attribute name="formatedDate" value="" type="string" />
+    <attribute name="firstname" value="" type="string" />
+    <attribute name="lastname" value="" type="string" />
+    <attribute name="user_id" value="0" type="number" />
+    <attribute name="refObj" value="null" />
+    
+    <attribute name="isSuperModerator" value="false" type="boolean"/>
+    
+    <attribute name="userpicURL" value="" type="string" />
+    <attribute name="userpicView" value="null" />
+    
+    <attribute name="selfItem" value="false" type="boolean"/>
+    
+    <handler name="onisMod">
+    	<![CDATA[
+        	if (this.isMod) {
+                this._content.userStatus.setAttribute("frame",3);
+            } else if (this.refObj != null && this.refObj.canDraw) {
+                this._content.userStatus.setAttribute("frame",2);
+            } else {
+                this._content.userStatus.setAttribute("frame",1);
+            }
+        ]]>
+    </handler>
+
+    <handler name="onMute" reference="canvas.thishib.switchMicMuted" args="event">
+        <![CDATA[
+            if ($debug) Debug.write("onMute ", event.publicSID, event.mute);
+            if(this.refObj.publicSID == event.publicSID) {
+                this.refObj.micMuted = event.mute;
+                this.updateModeratorIcons();
+            }
+        ]]>
+    </handler>
+
+	<method name="updateIconByMod">
+		if (this.clickable) {
+        	this.isMod = canvas.getIsModeratorByPublicSID(this.refObj.publicSID);
+        	//if ($debug) Debug.write(" :: updateIconByMod :: ",this.isMod)
+        	if (this.isMod) {
+                this._content.userStatus.setAttribute("frame",3);
+            } else if (this.refObj.canDraw) {
+            	this._content.userStatus.setAttribute("frame",2);
+            } else {
+            	this._content.userStatus.setAttribute("frame",1);
+            }
+		}
+    </method>  
+    
+    <method name="updateIconByModScroll">
+    	if (this.clickable) {
+        	if (this.isMod) {
+                this._content.userStatus.setAttribute("frame",3);
+            } else if (this.refObj.canDraw) {
+            	this._content.userStatus.setAttribute("frame",2);
+            } else {
+            	this._content.userStatus.setAttribute("frame",1);
+            }
+    	}
+    </method>  
+    
+    <method name="initModeratorIcons">
+    	//if ($debug) Debug.write(" :1: initModeratorIcons :: ");
+    	if (canvas.ismoderator) {
+    		//if ($debug) Debug.write(" :2: initModeratorIcons :: ");
+			this._content._iconsModerator.setAttribute("visibility","visible");
+			this._content._iconsModerator.oninit.sendEvent();
+    	}
+    </method>
+    
+    <method name="updateModeratorIcons">
+		if (this._content._iconsModerator.visibility == "visible") {
+            this._content._iconsModerator.oninit.sendEvent();
+		}
+    </method>
+    
+    <method name="hideModeratorIcons">
+    	if (this._content._iconsModerator.visibility == "visible") {
+            this._content._iconsModerator.setAttribute("visibility","hidden");
+    	}
+    </method>
+
+	<view name="_content" width="254">
+		
+		<view name="_contentIsCurrent" visible="${ parent.parent.selfItem }"
+                        width="254" height="40" bgcolor="0x7CFC00"/>
+          
+		<!--
+		+ ' ' + parent.parent.itemId
+		 -->
+		 
+    	<labelText name="_userName" x="2" y="2"
+    		   text="${ parent.parent.firstname+' '+parent.parent.lastname  }" />
+    		   
+	    <view name="userStatus" visible="${ parent.parent.clickable }" 
+	    	  x="238" frame="1" resource="userstatus_multiframe_rsc" />
+	    	
+	    	
+	    <moderationMiniIconRestricted name="_iconsModerator" visibility="hidden"/>
+	</view>
+	
+	
+	
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/screenSharingAdapter.lzx b/WebContent/src/modules/conference/screenSharingAdapter.lzx
new file mode 100644
index 0000000..2489d15
--- /dev/null
+++ b/WebContent/src/modules/conference/screenSharingAdapter.lzx
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<class name="screenSharingAdapter" extends="node">

+

+	<!---

+		Send via LocalConnection to SWF10 container

+		to show a new screen sharing video

+		@param rcl RoomClient Object

+	 -->

+	<method name="newScreenSharing" args="rcl">

+		//Send via LocalConnection to SWF10 container

+		canvas.sendViaLocalConnection(canvas.rtmp_lc_name, "newScreenSharing", [rcl]);

+	</method>

+	

+	<!---

+        Send via LocalConnection to SWF10 container

+        to show multiple new screen sharing video

+        @param rcl RoomClient Object Map/list

+     -->

+    <method name="newScreenSharings" args="rcls">

+        //Send via LocalConnection to SWF10 container

+        canvas.sendViaLocalConnection(canvas.rtmp_lc_name, "newScreenSharings", [rcls]);

+    </method>

+	

+	<!--- 

+		Send via LocalConnection to SWF10 container 

+		to close a single screen sharing session

+		@param rcl RoomClient Object

+	 -->

+	<method name="closeScreenSharing" args="rcl">

+		//Send via LocalConnection to SWF10 container

+		canvas.sendViaLocalConnection(canvas.rtmp_lc_name, "closeScreenSharing", [rcl]);

+	</method>

+	

+	<!--- 

+		Send via LocalConnection to SWF10 container 

+		to close all screen sharing viewer videos

+	 -->

+	<method name="closeAllScreenSharings" >

+		//Send via LocalConnection to SWF10 container

+		if ($debug) Debug.write("closeAllScreenSharings SEND");

+		canvas.sendViaLocalConnection(canvas.rtmp_lc_name, "closeAllScreenSharings", null);

+	</method>

+	

+	<!--- 

+		Send via LocalConnection to SWF10 container 

+		to update the mouse position of a certain screen sharing

+		@param cursorMap Map Object

+	 -->

+	<method name="updateCursorScreenSharing" args="cursorMap">

+		//Send via LocalConnection to SWF10 container

+		canvas.sendViaLocalConnection(canvas.rtmp_lc_name, "updateCursorScreenSharing", [cursorMap]);

+	</method>

+

+</class>

+

+</library>
\ No newline at end of file
diff --git a/WebContent/src/modules/conference/sip/library.lzx b/WebContent/src/modules/conference/sip/library.lzx
new file mode 100644
index 0000000..dc5077f
--- /dev/null
+++ b/WebContent/src/modules/conference/sip/library.lzx
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+

+      http://www.apache.org/licenses/LICENSE-2.0

+

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+

+-->

+<library>

+

+    <include href="sipDialer.lzx" />

+

+</library>

diff --git a/WebContent/src/modules/conference/sip/sipDialer.lzx b/WebContent/src/modules/conference/sip/sipDialer.lzx
new file mode 100644
index 0000000..1457347
--- /dev/null
+++ b/WebContent/src/modules/conference/sip/sipDialer.lzx
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+

+      http://www.apache.org/licenses/LICENSE-2.0

+

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+

+-->

+<library>

+

+<class name="sipDialer" extends="window" bgcolor="gray" width="200">

+    <simplelayout axis="y" spacing="5"/>

+    <labelText labelid="1003"/>

+    <view name="phoneNumber" width="100%">

+        <inputtext name="input" width="$once{parent.width-parent.del.width}" height="20" bgcolor="white"/>

+        <button name="del" x="$once{parent.input.width}" width="30" height="20" onclick="this.del();">

+            ←

+            <method name="del">

+                var t = parent.input.text;

+                if(t.length != 0) {

+                    t = t.substr(0, t.length - 1);

+                    parent.input.setAttribute('text', t);

+                }

+            </method>

+        </button>

+    </view>

+

+    <view name="dialerButtons" align="center">

+        <vbox spacing="5">

+            <hbox spacing="5">

+                <button onclick="parent.parent.parent.parent.dial('1')" width="40">1</button>

+                <button onclick="parent.parent.parent.parent.dial('2')" width="40">2</button>

+                <button onclick="parent.parent.parent.parent.dial('3')" width="40">3</button>

+            </hbox>

+            <hbox spacing="5">

+                <button onclick="parent.parent.parent.parent.dial('4')" width="40">4</button>

+                <button onclick="parent.parent.parent.parent.dial('5')" width="40">5</button>

+                <button onclick="parent.parent.parent.parent.dial('6')" width="40">6</button>

+            </hbox>

+            <hbox spacing="5">

+                <button onclick="parent.parent.parent.parent.dial('7')" width="40">7</button>

+                <button onclick="parent.parent.parent.parent.dial('8')" width="40">8</button>

+                <button onclick="parent.parent.parent.parent.dial('9')" width="40">9</button>

+            </hbox>

+            <hbox spacing="5">

+                <button onclick="parent.parent.parent.parent.dial('*')" width="40">*</button>

+                <button onclick="parent.parent.parent.parent.dial('0')" width="40">0</button>

+                <button onclick="parent.parent.parent.parent.dial('#')" width="40">#</button>

+            </hbox>

+        </vbox>

+    </view>

+    <hbox spacing="10" align="center">

+        <simpleLabelButton labelid="1448" name="callButton">

+            <handler name="onclick">

+                parent.parent.joinToConfCall.doCall();

+                var g = canvas.getUserData();

+                g["lastsipnumber"] = parent.parent.phoneNumber.input.getText();

+                canvas.setUserData(g);

+            </handler>

+        </simpleLabelButton>

+        <simpleLabelButton labelid="85" name="closeButton">

+            <handler name="onclick">

+                canvas.sipDialer = null;

+                parent.parent.destroy();

+            </handler>

+        </simpleLabelButton>

+    </hbox>

+

+	<handler name="oninit">

+		if(canvas.sipDialer != null) {

+			canvas.sipDialer.destroy();

+		}

+		canvas.setAttribute('sipDialer', this);

+		var lastNum = canvas.getUserData()["lastsipnumber"];

+		if(lastNum != undefined) {

+			this.phoneNumber.input.setAttribute('text', lastNum);

+		}

+		this.bringToFront();

+    </handler>

+

+    <method name="dial" args="digit">

+        this.phoneNumber.input.setAttribute('text', this.phoneNumber.input.text + digit);

+    </method>

+

+    <netRemoteCallHib name="joinToConfCall" funcname="joinToConfCall" remotecontext="$once{ canvas.thishib }">

+        <netparam><method name="getValue">return parent.parent.phoneNumber.input.text</method></netparam>

+        <handler name="ondata" args="value">

+            <![CDATA[

+            //The onResult-Handler will be called be the rtmpconnection

+            if($debug) Debug.write("joinToConfCall : ",value);

+            ]]>

+        </handler>

+    </netRemoteCallHib>

+</class>

+

+</library>
\ No newline at end of file
diff --git a/WebContent/src/modules/conference/tabcontent/chat/baseTabChatPanel.lzx b/WebContent/src/modules/conference/tabcontent/chat/baseTabChatPanel.lzx
new file mode 100644
index 0000000..a1a8181
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/chat/baseTabChatPanel.lzx
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<!-- 
+	#################################################
+	Provides functions to chat and extends the chat with the panel for blinking
+	when new messages arrive when the tab is closed
+	#################################################
+	 -->
+
+	<class name="baseTabChatPanel" extends="basePropertyPanel" >
+
+		<attribute name="fadeDelegate" value="null" />
+		<attribute name="doBlink" value="false" type="boolean" />
+
+		<handler name="oninit">
+			canvas._currentChatPanel = this;
+			this.fadeDelegate = new LzDelegate( this, "showText" );
+		</handler>
+
+        <method name="newprivatechat" args="refObj">
+            this.addChatSync(refObj[1],true);
+        </method>
+        
+        <method name="closeprivatechat" args="value">
+            if ($debug) Debug.write("closeprivatechat _1a_ ",value);
+            var publicSID = value[1];
+            if ($debug) Debug.write("closeprivatechat _1b_ ",publicSID);
+            
+			for (var eg in this.content.chatbar.subviews) {
+				if(typeof this.content.chatbar.subviews[eg].objRef.refObj == 'undefined') {
+					continue;
+				}
+				if ($debug) Debug.write("closeprivatechat _2A_ ",this.content.chatbar.subviews[eg].objRef);
+				if ($debug) Debug.write("closeprivatechat _2B_ ",this.content.chatbar.subviews[eg].objRef.refObj);
+				if ($debug) Debug.write("closeprivatechat _2C_ ",this.content.chatbar.subviews[eg].objRef.refObj.publicSID);
+				    
+				if (this.content.chatbar.subviews[eg].objRef.refObj.publicSID == publicSID ) {
+					this.content.chatbar.removeObjectSynced(this.content.chatbar.subviews[eg]);
+					return;
+				}
+            }
+        </method>
+        
+        <method name="privatechat" args="value,client">
+            if ($debug) Debug.write("privatechat A ",client.publicSID);
+            if ($debug) Debug.write("privatechat B ",value[6]);
+            
+            for (var eg in this.content.subviews) {
+                if (this.content.subviews[eg].refObj != null) {
+                    
+                    if ($debug) Debug.write("privatechat _1_ ",this.content.subviews[eg].refObj);
+                    if ($debug) Debug.write("privatechat _2_ ",this.content.subviews[eg].refObj.publicSID);
+                    
+                    if (this.content.subviews[eg].refObj.publicSID == client.publicSID 
+                            || this.content.subviews[eg].refObj.publicSID == value[6] ) {
+                        this.content.subviews[eg]._chatoutputborder._chatoutput.addChatHistory(value,client);
+                    }
+                }
+            }
+        </method>
+        
+        <method name="addChat" args="refObj">
+            this.addChatSync(refObj,false);
+        </method>
+        
+        <method name="addChatSync" args="refObj,remoteOpen">
+            if (this.content.visibility == "hidden") {
+                this.toggleopen();
+            }
+            
+            for (var eg in this.content.subviews) {
+                if (this.content.subviews[eg].refObj != null) {
+                    if (this.content.subviews[eg].refObj.publicSID == refObj.publicSID) {
+                        new lz.labelerrorPopup(canvas.main_content._content.inner,{
+                                    errorlabelid:1496
+                                });
+                        return;
+                    }
+                }
+            }
+            
+            if ($debug) Debug.write("addChat :: ",refObj);
+            for (var eg in this.content.chatbar.subviews) {
+                this.content.chatbar.subviews[eg].isactive = false;
+                this.content.chatbar.subviews[eg].onmouseout.sendEvent(null);
+                this.content.chatbar.subviews[eg].objRef.setAttribute("visibility","hidden");
+            }
+            
+            var chatTabPrivateRef = new lz.chatTabPrivateChat(this.content,{
+                                                refObj:refObj,
+                                                remoteOpen:remoteOpen
+                                                
+                                            });
+            var tempWidth = this.content.chatbar.getCurrentSize();
+            
+            var tWhiteboardBtn = new lz.chatMiniButton(this.content.chatbar,{
+                                       objRef:chatTabPrivateRef,
+                                       width:tempWidth,
+                                       isactive:true,
+                                       btnName:refObj.firstname+" "+refObj.lastname
+                                    });
+            
+            this.content.chatbar.currentBtn = tWhiteboardBtn;                       
+                                    
+            tWhiteboardBtn.onmouseout.sendEvent(null);
+        </method>
+        
+        <handler name="onisopen" args="o">
+			if ($debug) Debug.write("onisopen",o);
+			if (o) {
+				if ('doInitByOpen' in canvas._chatcontent) {
+					canvas._chatcontent.doInitByOpen();
+				}
+				if (canvas.currentRoomObject != null) {
+					content._content1._chattabbottom.updatefontbuttonvisible();
+				}
+				this.doBlink = false;
+				this._newMessage.setAttribute("visibility","hidden");
+				this._newMessage.setAttribute( "opacity", 0 );
+				this.content.setAttribute("visibility","visible");
+			} else {
+				this.content.setAttribute("visibility","hidden");
+			}
+		</handler>
+
+		<method name="startBlink">
+			if ($debug) Debug.write("startBlink",this.opacity);
+			if (this.isopen) return;
+			if (this.doBlink) {
+				if ($debug) Debug.write("doBlink already started !!!");
+			} else {
+				if ($debug) Debug.write("doBlink");
+				this.doBlink = true;
+				this._newMessage.setAttribute("visibility","visible");
+				lz.Timer.addTimer( this.fadeDelegate , 1000 );
+			}
+		</method>
+
+		<method name="showText" args="refObj">
+			if (this.doBlink) {
+				lz.Timer.addTimer( this.fadeDelegate , 1000 );
+				if (this._newMessage.opacity == 0) {
+					this._newMessage.animate( "opacity", 1.0, 400 );
+				} else {
+					this._newMessage.animate( "opacity", 0, 400 );
+				}
+			} else {
+				this._newMessage.setAttribute("visibility","hidden");
+			}
+		</method>
+
+        <view name="content" visibility="hidden" y="22"
+              height="${ parent.height-22 }" width="${ parent.width }">
+            <chatBarMenu name="chatbar">
+                <attribute name="refObj" value="null" />
+                <attribute name="objMessage" value="null" />
+                <attribute name="publicSID" value="" type="string" />
+                
+                <handler name="oninit">
+                    this.currentBtn = this._button1;
+                </handler>
+                
+                <handler name="onRemoveWindow" args="publicSID">
+                    <![CDATA[
+                    
+                        if ($debug) Debug.write("onRemoveWindow :: ",publicSID);
+                        
+                        this.publicSID = publicSID;
+                    
+                        this.objMessage = new Array();
+                        this.objMessage[0] = 'closeprivatechat';
+                        this.objMessage[1] = canvas.publicSID;
+                        
+                        this.sendMessageWithClientByPublicSID.doCall();
+                    ]]>
+                </handler>
+                
+                <netRemoteCallHib name="sendMessageWithClientByPublicSID" funcname="sendMessageWithClientByPublicSID" 
+                    remotecontext="$once{ canvas.thishib }" > 
+                    <netparam><method name="getValue"> return parent.parent.objMessage; </method></netparam>
+                    <netparam><method name="getValue"> return parent.parent.publicSID; </method></netparam>
+                    <handler name="ondata" args="value">
+                        <![CDATA[
+                            //The onResult-Handler will be called be the rtmpconnection
+                            if ($debug) Debug.write("sendMessageWithClientByPublicSID getValue : ",value);
+                        ]]>
+                    </handler>   
+                </netRemoteCallHib>
+                
+                <chatMiniButton name="_button1" isactive="true" isClosable="false" >
+                    <handler name="oninit">
+                        this.setAttribute("btnName", canvas.getLabelName(1494) + " 1");
+                        this.objRef = parent.parent._content1;
+                        this.onmouseout.sendEvent(this);
+                    </handler>
+                </chatMiniButton>
+                
+            </chatBarMenu>
+            
+            <chatTab name="_content1" />
+            
+        </view>
+			
+		<labelText labelid="1199" x="${ parent.width - this.width }" bgcolor="0xFFFFFF"
+        		   y="2" fontsize="10" fontstyle="bold" fgcolor="0xFF3300" />
+
+		<view name="_newMessage" y="0" x="${ parent.width-this.width }"
+			visibility="hidden">
+			<view x="1" y="2" resource="chat_message_incoming_rsc" />
+			<labelText x="22" y="2" fgcolor="0x008000" fontstyle="bold"
+				labelid="1417" />
+		</view>
+
+	</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/chat/chatOutput.lzx b/WebContent/src/modules/conference/tabcontent/chat/chatOutput.lzx
new file mode 100644
index 0000000..3cc8d14
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/chat/chatOutput.lzx
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+
+<!--- chat output specialized for video-conference -->
+<class name="chatOutput" extends="view" height="${ parent.height-1 }" 
+            clip="true" width="${ parent.width-1 }" bgcolor="0xFFFFFF">
+
+    <attribute name="isAlreadyLoaded" value="false" type="boolean"/>
+<!---
+ Invoked from VideoContainer cause domain/room must be set first
+ -->
+    <method name="doInitByOpen">
+        <![CDATA[
+            if (!this.isAlreadyLoaded) {
+            	this.isAlreadyLoaded = true;
+            	this._cbtext.clearChatOutput();
+                this.getRoomChatHistory.doCall();
+            }
+        ]]>
+    </method>
+    
+    <method name="reload">
+        <![CDATA[
+        	this._cbtext.clearChatOutput();
+            this.getRoomChatHistory.doCall();
+        ]]>
+    </method>    
+    
+    <netRemoteCallHib name="getRoomChatHistory" funcname="chatservice.getRoomChatHistory" 
+        remotecontext="$once{ canvas.thishib }" > 
+        <handler name="ondata" args="value">
+            <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                if($debug) Debug.write("chatOutput/getRoomChatHistory: ",value);
+                for (var i=0;i<value.length;i++){
+                    if($debug) Debug.write(value[i].message,value[i].client);
+                    parent.addChatHistory(value[i].message,value[i].client);
+                }
+            ]]>
+        </handler>   
+    </netRemoteCallHib>
+    
+    <method name="getLog">
+    	<![CDATA[
+    		var tString = "";
+    		
+    		for (var i=0;i<this._cbtext.subviews.length;i++) {
+    			
+    			if (i!=0) {
+    				tString += "<br/>";
+    			}
+    			
+    			tString += this._cbtext.subviews[i].username + ': '
+    					+ this._cbtext.subviews[i].message;
+    			
+    		}
+    		
+    		return tString;
+    	
+    	]]>
+    </method>     
+    
+    <method name="addChatHistory" args="value,client">
+        <![CDATA[
+            //if($debug) Debug.write("chatOutput/addChatHistory: ",value,client);
+            canvas.currentBaseConferenceRoom._chatPanelStrict.startBlink();
+            //is Right To Left ? not checked for the moment
+            if (value[7]){
+                var username = client.firstname+" "+client.lastname;
+            } else {
+                var username = client.firstname+" "+client.lastname;
+            }
+            var messageObj = value[value.length - 1];
+            //var newmessage = "<FONT COLOR='"+value[5]+"' size='11'>"+client.firstname+" "+client.lastname+"</FONT>:<FONT COLOR='0x000000' size='11'>"+value[4]+"</FONT><br />";
+            //Debug.write("newmessage: ",newmessage);
+            //this._cbtext.setAttribute('text',this._cbtext.text+newmessage);
+            var usercolor = value[5];
+            
+            var isDirectLink = null;
+            if (value[8] > 0) {
+            	isDirectLink = false;
+            } else {
+            	isDirectLink = true;
+            }
+            
+            if (canvas.isRemoteUser()) {
+                isDirectLink = true;               	
+            }
+            if ( usercolor==null || usercolor==0 || (usercolor !=null && usercolor.length==0) )usercolor=0xCCCCCC;
+            
+            
+            
+            if ($debug) Debug.write("addChatHistory userID: ",value[8],isDirectLink);
+            
+            new lz.chatTabItemEmoticons(this._cbtext,{
+            			rawMessage: value,
+		                messageObj:messageObj,
+	                    user_id:value[8],
+	                    publicSID:value[6],
+	                    message:value[4],
+	                    picture_uri:client.picture_uri,
+		                usercolor:usercolor,
+		                username:username,
+		                isDirectLink:isDirectLink,
+		                usertime:value[1]
+	                });
+            
+            this.setScrollToMax();              
+        ]]>
+    </method>           
+    
+    <method name="setScrollToMax">
+        <![CDATA[
+        if(_cbtext.height>this.height){
+            myscrollbar.scrolltarget.setAttribute(myscrollbar.scrollattr,(this.height-_cbtext.height));
+        }
+        
+        ]]>
+    </method>
+    
+    <view name="_cbtext" width="${ parent.width }" layout="axis:y;spacing:0" >
+    	<method name="clearChatOutput">
+    		<![CDATA[
+    			while (this.subviews.length>0){
+    				this.subviews[0].destroy();
+    			}
+    		]]>
+    	</method>
+    </view>
+    
+    <om_vscrollbar name="myscrollbar" />
+
+</class>
+    
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/chat/chatTab.lzx b/WebContent/src/modules/conference/tabcontent/chat/chatTab.lzx
new file mode 100644
index 0000000..beb93d3
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/chat/chatTab.lzx
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<!---
+Chat tabpane class. It contains chatOutput-class and catTabBottom-class.
+This is used in the conference.
+-->
+<class name="chatTab" extends="simpleBaseTabpane" bgcolor="$once{ canvas.getThemeColor('mainBackgroundColor') }" x="0">
+	<view name="_chatoutputborder" height="${ parent.height-48 }" width="${ parent.width-2 }" 
+				bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }">
+		
+		<chatOutput name="_chatoutput" x="1" y="1" >
+			<handler name="oninit">
+				canvas._chatcontent = this;
+			</handler>
+		</chatOutput>
+	</view>
+	
+	<chatTabBottom name="_chattabbottom" 
+				   y="${ parent.height-46 }" x="0" width="${ parent.width-2 }" />
+				   
+</class>
+
+<class name="chatTabPrivateChat" extends="simpleBaseTabpane" y="22" height="${ parent.height-22 }" 
+                 width="${ parent.width }">
+
+	<attribute name="refObj" value="null"/>
+	<attribute name="objMessage" value="null"/>
+	<attribute name="remoteOpen" value="false" type="boolean"/>
+	
+	<handler name="oninit">
+		<![CDATA[
+			if (this.remoteOpen) {
+				return;
+			}
+			this.objMessage = new Array();
+			this.objMessage[0] = 'newprivatechat';
+			var u = canvas.thishib.userobject;
+			this.objMessage[1] = {
+				publicSID: canvas.publicSID
+				, firstname: u.firstname
+				, lastname: u.lastname
+				};
+			
+			this.sendMessageWithClientByPublicSID.doCall();
+			
+			if (canvas.currentRoomObject != null) {
+				_chattabbottom.updatefontbuttonvisible();
+			}
+		]]>
+	</handler>
+	
+    <netRemoteCallHib name="sendMessageWithClientByPublicSID" funcname="sendMessageWithClientByPublicSID" 
+        remotecontext="$once{ canvas.thishib }" > 
+        <netparam><method name="getValue"> return parent.parent.objMessage; </method></netparam>
+        <netparam><method name="getValue"> return parent.parent.refObj.publicSID; </method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("sendMessageWithClientByPublicSID getValue : ",value);
+            ]]>
+        </handler>   
+    </netRemoteCallHib>
+	
+	<view name="_chatoutputborder" height="${ parent.height-48 }"
+       bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }"  width="${ parent.width-2 }">
+		
+		<chatOutput name="_chatoutput" x="1" y="1" />
+	</view>
+	
+	<chatTabBottom name="_chattabbottom" isPrivate="true" 
+				   y="${ parent.height-46 }" x="0" width="${ parent.width-2 }" />
+</class>
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/chat/chatTabBottom.lzx b/WebContent/src/modules/conference/tabcontent/chat/chatTabBottom.lzx
new file mode 100644
index 0000000..451ee05
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/chat/chatTabBottom.lzx
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<!--- View of the buttom area of chat. It contains buttons of message,emoticons,clear. -->
+	<class name="chatTabBottom" extends="view" height="42">
+		<attribute name="isPrivate" value="false" type="boolean" />
+		
+		<view x="0" y="0" height="20" width="${ parent.width-2 }" name="message"
+			bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }">
+			<method name="getText">
+				return this._ctext.getText();
+			</method>
+			<method name="setText" args="txt">
+				this._ctext.setAttribute('text',txt);
+			</method>
+			<customInputtext name="_ctext" width="${ parent.width-2 }"
+				height="$once{ parent.height-2 }" x="1" y="1" bgcolor="white">
+				<handler name="onkeyup" args="key">
+	                <![CDATA[
+	                var reverse = canvas.reverseAll(parent.getText());
+	                
+	                // parent.setText(reverse);
+	                // 13 is return
+	                if ((key==27) || (key==13)) {
+	                	this.parent._button.onclick.sendEvent();
+	                }
+	                ]]>
+				</handler>
+			</customInputtext>
+
+			<attribute name="objMessage" value="null" />
+			
+			<simpleLabelButton name="_button" labelid="220"
+				height="21" width="80" x="$once{ parent.width-80 }">
+				<handler name="onclick">
+				<![CDATA[
+					var message = this.parent.getText();
+					if (message.length != 0) {
+						parent.objMessage = new Array();
+						var om = parent.objMessage;
+						om[0] = parent.parent.isPrivate ? 'privatechat' : 'chat';
+						//The server side will put time here
+						om[1] = "";
+						//if ($debug) Debug.write("Setting Message");
+						om[2] = 'newtextmessage';
+						om[3] = hib.userobject.login;
+						//if (parent.parent._inverseWording.getValue()) message = canvas.reverseAll(message)
+						om[4] = message;
+						om[5] = canvas.currentusercolor;
+						om[6] = parent.parent.isPrivate ? parent.parent.parent.refObj.publicSID : canvas.publicSID;
+						om[7] = canvas.isrtl;
+						om[8] = hib.userobject.user_id;
+						om[9] = canvas.currentRoomObject.chatModerated && !canvas.ismoderator;
+						if ($debug) Debug.write("send: ", parent.parent.parent);
+						if (parent.parent.isPrivate) {
+							parent.sendMessageWithClientByPublicSID.doCall();
+						} else {
+							hib.sendChatMessageWithClient.sendMessage(om);
+						}
+						this.parent.setText('');
+					}
+				]]>
+				</handler>
+			</simpleLabelButton>
+
+			<netRemoteCallHib name="sendMessageWithClientByPublicSID"
+				funcname="chatservice.sendMessageWithClientByPublicSID" remotecontext="$once{ canvas.thishib }">
+				<netparam><method name="getValue">return parent.parent.objMessage;</method></netparam>
+				<netparam><method name="getValue">return parent.parent.parent.parent.refObj.publicSID;</method></netparam>
+				<handler name="ondata" args="value">
+					//The onResult-Handler will be called be the rtmpconnection
+					if ($debug) Debug.write("chatservice.sendMessageWithClientByPublicSID getValue : ",value);
+				</handler>
+			</netRemoteCallHib>
+		</view>
+
+		<labelCheckbox name="_inverseWording" x="2" y="24"
+			labelid="580">
+			<attribute name="doUpdate" value="false" type="boolean" />
+			<handler name="oninit">
+				var g = canvas.getUserData();
+				var save = g["rtlCheckbox"];
+				//if ($debug) Debug.write("oninit doUpdate",save,g);
+				if(save) {
+					this.doUpdate = false;
+					this.setValue(true);
+				}
+				this.doUpdate = true;
+			</handler>
+			<handler name="onvalue" args="v">
+				if (this.doUpdate) {
+					//if ($debug) Debug.write("onvalue doUpdate",this.getValue());
+					var g = canvas.getUserData();
+					g["rtlCheckbox"]=this.getValue();
+					//if ($debug) Debug.write("onvalue doUpdate",g["rtlCheckbox"]);
+					canvas.setUserData(g);
+				}
+			</handler>
+			<labelTooltip labelid="581" />
+		</labelCheckbox>
+
+		<method name="updatefontbuttonvisible">
+			if ($debug) Debug.write("chatTabBottom updatefontbuttonvisible allowFontStyles",
+						canvas.currentRoomObject.allowFontStyles);
+			_button.fontbutton.setVisible(canvas.currentRoomObject.allowFontStyles == true ||
+			    			   canvas.currentRoomObject.allowFontStyles == null);
+		</method>
+
+		<view name="_button" width="140" y="22" align="right">
+
+			<miniIconsImage name="fontbutton" y="2" x="62" width="16" height="16" 
+				showhandcursor="true" src="$once{ canvas.getThemeImage('font_style') }" >
+        		<handler name="onclick">
+        			var pick = new lz.fontOptions(canvas,{
+						btnRef:this.parent.parent,
+						x:(this.getAttributeRelative('x',canvas)-130),
+						y:(this.getAttributeRelative('y',canvas)-42)
+					});
+					lz.ModeManager.makeModal(pick);   
+        		</handler>
+        		<handler name="onmouseover">
+        			<!-- lost selection workaround -->
+        			parent.parent.message._ctext.saveselection();
+        		</handler>
+        		<labelTooltip labelid="1530" />
+        	</miniIconsImage>
+
+			<miniIcons y="2" x="82" resource="smile_chat_log_rsc"
+				width="16" height="16" showhandcursor="true">
+				<handler name="onclick">
+					var pick = new lz.emotIconsSelector(canvas,{
+						btnRef:this.parent.parent,
+						x:(this.getAttributeRelative('x',canvas)-140),
+						y:(this.getAttributeRelative('y',canvas)-140)
+					});
+					lz.ModeManager.makeModal( pick );
+				</handler>
+				<labelTooltip labelid="445" />
+			</miniIcons>
+
+			<miniIcons y="2" x="102" resource="copy_chat_log_rsc"
+				width="16" height="16" showhandcursor="true" visible="$once{ !parent.parent.isPrivate }">
+				<handler name="onclick">
+                <![CDATA[
+                    var tString = canvas._chatcontent.getLog();
+                    new lz.showChatLog(canvas,{
+                                    error:tString
+                                });
+                ]]>
+				</handler>
+				<labelTooltip labelid="1200" />
+			</miniIcons>
+
+			<miniIconsImage src="$once{ canvas.getThemeImage('button_cancel_rsc') }"
+				y="2" x="122" width="16" height="16" showhandcursor="true"
+				visible="$once{ !parent.parent.isPrivate }">
+				<handler name="onclick">
+					if (!canvas.ismoderator) {
+					//Do not allow
+						new lz.labelerrorPopup(canvas,{errorlabelid:783});
+						return;
+					}
+					parent.clearChat.doCall();
+				</handler>
+				<labelTooltip labelid="442" />
+			</miniIconsImage>
+
+			<view width="1" />
+
+			<netRemoteCallHib name="clearChat" funcname="chatservice.clearChat"
+				remotecontext="$once{ canvas.thishib }">
+				<handler name="ondata" args="value">
+                <![CDATA[
+                    //The onResult-Handler will be called be the rtmpconnection
+                    if ($debug) Debug.write("clearChat : ",value);
+                ]]>
+				</handler>
+			</netRemoteCallHib>
+
+		</view>
+
+	</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/chat/chatTabItem.lzx b/WebContent/src/modules/conference/tabcontent/chat/chatTabItem.lzx
new file mode 100644
index 0000000..a9d61aa
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/chat/chatTabItem.lzx
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+
+<class name="chatTabItem" extends="view" 
+	   width="240" >
+
+	<attribute name="user_id" value="0" type="number" />
+	<attribute name="username" value="" type="string" />
+	<attribute name="usertime" value="" type="string" />
+	<attribute name="usercolor" value="0" type="string" />
+	<attribute name="cbtext" value="" type="string" />
+	
+	<handler name="oninit">
+		<![CDATA[
+			if($debug) Debug.write("chatTabItem/WIDTH: "+this.width);
+			if($debug) Debug.write("chatTab Item on init");
+	        var downloadurl = canvas.getUrl() + 'DownloadHandler?fileName=CHAT'
+	        		+'&moduleName=chat&parentPath=&room_id='
+	        		+'&remoteUserid='+this.user_id
+	        		+'&sid='+canvas.sessionId;
+	        //Debug.write("downloadurl "+downloadurl);
+	        this._userpic.setAttribute('src',downloadurl);	
+	        
+	        if(canvas.isrtl == 'true'){
+	        	this.header_user.stAttribute('textalign', 'right');
+	        	this.header_time.setAttribute('align', 'left');
+	        	this.multi.setAttribute('textalign', 'right');
+	        }
+	        
+	        
+	        
+	        
+	        //Debug.write("TIME: "+this.usertime);
+        ]]>
+	</handler>
+	
+	<image name="_userpic" />
+	
+	
+	<text text="$once{ parent.username }" x="40" resize="false" fontsize="10"
+		  width="$once{ parent.width - 40 }" bgcolor="$once{ parent.usercolor }"
+		  selectable="true" name="header_user">
+		  
+	</text>
+	<text text="$once{ parent.usertime }" align="right" fontsize="10" selectable="true" name="header_time" >
+		
+	</text>
+	
+	
+	
+	<text multiline="true" x="40" y="20" fontsize="10" text="$once{ parent.cbtext }"
+		  width="220" selectable="true" name="multi">
+		 
+	</text>
+
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/chat/chatTabItemEmoticons.lzx b/WebContent/src/modules/conference/tabcontent/chat/chatTabItemEmoticons.lzx
new file mode 100644
index 0000000..625fddb
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/chat/chatTabItemEmoticons.lzx
@@ -0,0 +1,301 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+
+<class name="chatTabItemEmoticons" extends="view" width="$once{ parent.width }" bgcolor="$once{ this.usercolor }">
+
+	<attribute name="user_id" value="0" type="number" />
+	<attribute name="username" value="" type="string" />
+	<attribute name="usertime" value="" type="string" />
+	<attribute name="usercolor" value="0" type="string" />
+	<attribute name="publicSID" value="" type="string" />
+	<attribute name="messageObj" value="null" />
+	<attribute name="isDirectLink" value="false" type="boolean" />
+	<attribute name="message" value="" type="string" />
+	<attribute name="picture_uri" value="" type="string"/>
+	<attribute name="rawMessage" value="null" />
+	
+	<handler name="oninit">
+		<![CDATA[
+		
+		    if ($debug) Debug.write("this.picture_uri :: ",this.picture_uri);
+		
+		    if (this.picture_uri != null && ( this.picture_uri.startsWith("http") || this.picture_uri.startsWith("https") ) ) {
+                
+                var downloadurl = this.picture_uri;  
+                
+            } else {
+            	if($debug) Debug.write("chatTabItemEmoticons/WIDTH: "+this.width);
+                var downloadurl = canvas.getUrl() + 'DownloadHandler?fileName=CHAT'
+                        +'&moduleName=chat&parentPath=&room_id='
+                        +'&remoteUserid='+this.user_id
+                        +'&sid='+canvas.sessionId;
+            }
+			
+	        //Debug.write("downloadurl "+downloadurl);
+	        this._userpic.setAttribute('src',downloadurl);	
+	        
+	        if(canvas.isrtl == 'true'){
+	         	if($debug) Debug.write("chatTabItemEmoticons RTL is set");
+	       
+	        	this.header_user.setAttribute('textalign', 'right');
+	        	this.header_time.setAttribute('align', 'left');
+	        	this.header_time.setAttribute('x', '40');
+	        	this.multi.setAttribute('textalign', 'right');
+	        	this.multi.setAttribute('align', 'right');
+	        }
+	        
+	        //Debug.write("TIME: "+this.usertime);
+        ]]>
+	</handler>
+	
+	<view name="bg" width="179" height="$once{ parent.height-1 }" bgcolor="0xFFFFFF" 
+		opacity="0.1">
+	</view>
+	
+	<image name="_userpic" stretches="both" x="1" y="1">
+		<handler name="onload">
+            <![CDATA[
+                if (this.height > 38) {
+                    //If bigger then containter then scale it
+                    var width = this.width/(this.height/38);
+                    this.setAttribute('height',38);
+                    this.setAttribute('width',width);
+                }
+                if (this.width > 38) {
+                	var height = this.height/(this.width/38);
+                	this.setAttribute('height',height);
+                    this.setAttribute('width',38);
+                }
+            ]]>
+        </handler>
+	</image>
+	
+	<text text="$once{ parent.username }" x="40" resize="false" fontsize="11" multiline="true"
+		  width="140" height="$once{ parent.height }"
+		  name="header_user">
+	</text>
+	
+	<state applied="$once{ parent.rawMessage[9] }">
+		<miniIcons resource="allow_ok_icon_rsc" width="16" height="16"
+			y="2" x="$once{ parent.width - 140 }" showhandcursor="true" >
+			<handler name="onclick">
+				this.setAttribute('visible', false);
+				parent.setAttribute('visible', false);
+				parent.rawMessage.length = parent.rawMessage.length - 1;
+				parent.rawMessage[parent.rawMessage.length - 1] = false;
+				//if ($debug) Debug.write("!!!!!!!!!!!!! allow message ", parent, parent.rawMessage);
+				hib.sendChatMessageWithClient.sendMessage(parent.rawMessage);
+			</handler>
+			<labelTooltip labelid="1514" />
+		</miniIcons> 
+	</state>
+	
+	<state applied="$once{ !parent.isDirectLink }">
+	
+	    <miniIconsImage name="add" src="$once{ canvas.getThemeImage('edit_add_rsc') }" width="16" height="16" 
+	                   y="2" x="$once{ parent.width - 122 }" showhandcursor="true">
+	        <handler name="onclick">
+	            if ($debug) Debug.write("Start Conference");
+	            if (hib.userobject.user_id == parent.user_id) {
+	                new lz.labelerrorPopup(canvas,{errorlabelid:1225});
+	                return;
+	            }
+	            parent.requestUserToContactList.doCall();
+	        </handler>
+	        <labelTooltip labelid="1186" />
+	    </miniIconsImage>
+    
+    </state>
+    
+    <!--
+    public Long requestUserToContactList(String SID, Long userToAdd_id, 
+                String domain, String port, String webapp)
+     -->
+    <netRemoteCallHib name="requestUserToContactList" funcname="userservice.requestUserToContactList" 
+                  remotecontext="$once{ canvas.thishib }" activeErrorHandler="true" >      
+        <netparam><method name="getValue"> return canvas.sessionId; </method></netparam>
+        <netparam><method name="getValue"> return parent.parent.user_id; </method></netparam>
+        <netparam><method name="getValue"> return canvas.getHttpHost(); </method></netparam>
+        <netparam><method name="getValue"> return canvas.red5httpport; </method></netparam>
+        <netparam><method name="getValue"> return canvas.httpRootKey; </method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+                if ($debug) Debug.write("requestUserToContactList: ",value);
+                if (value > 0) {
+                    new lz.labelerrorPopup(canvas,{labelid:1267,errorlabelid:1266});
+                }
+            ]]>
+        </handler>
+    </netRemoteCallHib>
+    
+	
+	<!-- space between each line of text -->
+	<attribute name="leading" value="5" type="number" />
+	
+	<view name="bg_main" x="180" width="$once{ parent.width - 180 }" height="$once{ parent.height-1 }"  
+		opacity="0.3" bgcolor="0xFFFFFF">
+	</view>
+	
+	<text multiline="true" x="180" width="$once{ parent.width - 306 }" fontsize="11" selectable="true" name="multi" >
+		<handler name="oninit">
+			<![CDATA[
+				
+				if(canvas.isrtl!='true'){
+					this.sprite.__LZtextclip.wordWrap = false;
+					if($debug) Debug.write("New Text");
+					//Debug.write(this.sprite.getTextFormat());
+					tFormat = this.sprite.__LZtextclip.getTextFormat();
+					//Debug.write(this.sprite.__LZtextclip.getTextFormat());
+					tFormat.leading = 4;
+					this.sprite.__LZtextclip.setTextFormat(tFormat);
+					var items = parent.messageObj;
+					var t = "";
+					//items[0] = ["text","hello your are the hero lets check accomodation today i need some input"];
+					for (var i=0;i<items.length;i++) {
+						
+						//if ($debug) Debug.write("Item :0: ",items[i][0]);
+						
+						if (items[i][0]=="text"){
+							//if ($debug) Debug.write("Text :1: ",items[i][1]);
+							
+							t += items[i][1];
+						} else {
+							if (t.length!=0){
+								var tempString = calcLineWidthByTextField(this.width, t,this.fontsize,this.font);
+								var x = tempString[tempString.length-1]["lineWidth"];
+								var y = (tempString.length-1)*(getLineHeight()+parent.leading-1);
+							}else {
+								var x = 0;
+								var y = 0;
+							}
+							t += items[i][2];
+							
+							var swfurl = canvas.getUrl() + 'public/emoticons/'+items[i][1];
+							var m = new lz.chatInnerSmily(parent,{x:x+this.x,y:y+this.y,iconlabel:items[i][3]});
+							
+							//if ($debug) Debug.write("Smily :2: ",swfurl);
+							
+							m.setSource(swfurl);
+						}
+					}
+					//Debug.write("TTTT: ",t);"Verdana"
+					var tString = calcLineWidthByTextField(this.width, t,this.fontsize,this.font);
+					
+					for (var k = 0;k<tString.length;k++){
+						this.setAttribute('text',this.getText()+textObject[k]["text"]+"\r");
+						//if ($debug) Debug.write("text: ",k,textObject[k]["lineWidth"],textObject[k]["text"]);
+					}	
+					
+					//if ($debug) Debug.write("text: ",this.getText());
+					
+					//Debug.write(this.sprite.__LZtextclip.getTextFormat());
+					tFormat.leading = parent.leading;
+					this.sprite.__LZtextclip.setTextFormat(tFormat);
+					//Debug.write(this.sprite.__LZtextclip.textHeight);
+					//Debug.write(getLineHeight());
+					//Debug.write(this.sprite.__LZtextclip.textHeight+12);
+					this.setAttribute('height',this.sprite.__LZtextclip.textHeight+12);
+				}
+				else{
+					var t = "";
+					var items = parent.messageObj;
+					
+					for (var i=0;i<items.length;i++) {
+						if (items[i][0]=="text"){
+							t += items[i][1];
+						} 
+					}
+					
+					this.setAttribute('text',this.getText()+ t);
+				}
+				
+				parent.setAttribute('height',this.height);
+				parent.header_user.setAttribute('height',this.height);
+				parent.bg.setAttribute('height',this.height-1);
+				parent.bg_main.setAttribute('height',this.height-1);
+				
+			]]>
+		</handler>	
+		
+	</text>
+	
+	<state applied="$once{ !parent.isDirectLink }">
+	
+	    <miniIcons name="private_message_add" resource="private_message_add_rsc" width="16" height="16" 
+	                   y="0" x="$once{ parent.width - 104 }" showhandcursor="true">
+	        <handler name="onclick">
+	            if ($debug) Debug.write("Start Conference");
+	            new lz.newPrivateMessage(canvas,{
+	                                x:200,y:120,
+	                                refObj:null,
+	                                minimizable:true,
+	                                maximizable:true,
+	                                userObject:null,
+	                                isdragable:true,
+	                                user_id:parent.user_id,
+	                                width:canvas.width-300,
+	                                height:canvas.height-130
+	                            });
+	        </handler>
+	        <labelTooltip labelid="1253" />
+	    </miniIcons>
+	    
+	    <miniIcons resource="user_profile_rsc" width="16" height="16" 
+	               y="0" x="$once{ parent.width - 84 }" showhandcursor="true">
+	        <handler name="onclick">
+	            if ($debug) Debug.write("Start Conference");
+	            new lz.viewUserProfileWindow(canvas,{
+	                                userId:parent.user_id
+	                            });
+	        </handler>
+	        <labelTooltip labelid="1236" />
+	    </miniIcons>    		  
+			  
+	    <miniIcons y="0" x="$once{ parent.width - 64 }"
+	    		   resource="start_conference2_rsc" width="16" height="16" 
+	               showhandcursor="true">
+	        <handler name="onclick">
+	            if ($debug) Debug.write("Start Conference");
+	            new lz.chatParticipantsInviteConference(canvas,{
+	                            publicSID:parent.publicSID,
+	                            user_id:parent.user_id
+	                        });
+	        </handler>
+	        <labelTooltip labelid="1131" />
+	    </miniIcons>  
+    
+    </state>
+    		  
+	<text text="$once{ parent.usertime+'   ' }" align="right" fgcolor="0xAAAAAA"
+		  fontsize="10" name="header_time" />
+
+</class>						
+
+<class name="chatInnerTextBox" extends="text" resize="true" bgcolor="red" />
+
+<class name="chatInnerSmily" extends="view" onmouseover="" onmouseout="">
+	<attribute name="iconlabel" value="" type="string" />
+	<labelTooltip text="$once{ parent.iconlabel }" />
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/chat/library.lzx b/WebContent/src/modules/conference/tabcontent/chat/library.lzx
new file mode 100644
index 0000000..88b92ed
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/chat/library.lzx
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+	<resource name="delete_chat_log_rsc" src="resources/cancel.png" />
+	<resource name="copy_chat_log_rsc" src="resources/edit-copy.png" />
+	<resource name="smile_chat_log_rsc" src="resources/smile.swf" />
+	<resource name="start_conference2_rsc" src="resources/connect.png" />
+	
+	<include href="simpleBaseTabpane.lzx" />
+	<include href="showChatLog.lzx" />
+	<include href="baseTabChatPanel.lzx" />
+	<include href="chatTabItem.lzx" />
+	<include href="chatTabItemEmoticons.lzx" />
+	<include href="chatOutput.lzx" />
+	<include href="chatTabBottom.lzx" />
+	<include href="chatTab.lzx" />
+    
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/chat/resources/cancel.png b/WebContent/src/modules/conference/tabcontent/chat/resources/cancel.png
new file mode 100644
index 0000000..a432b49
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/chat/resources/cancel.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/chat/resources/connect.png b/WebContent/src/modules/conference/tabcontent/chat/resources/connect.png
new file mode 100644
index 0000000..024138e
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/chat/resources/connect.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/chat/resources/edit-copy.png b/WebContent/src/modules/conference/tabcontent/chat/resources/edit-copy.png
new file mode 100644
index 0000000..8dd48c4
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/chat/resources/edit-copy.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/chat/resources/font.png b/WebContent/src/modules/conference/tabcontent/chat/resources/font.png
new file mode 100644
index 0000000..fddeb4d
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/chat/resources/font.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/chat/resources/smile.swf b/WebContent/src/modules/conference/tabcontent/chat/resources/smile.swf
new file mode 100644
index 0000000..7578e2e
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/chat/resources/smile.swf
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/chat/resources/text_bold.png b/WebContent/src/modules/conference/tabcontent/chat/resources/text_bold.png
new file mode 100644
index 0000000..889ae80
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/chat/resources/text_bold.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/chat/resources/text_color.png b/WebContent/src/modules/conference/tabcontent/chat/resources/text_color.png
new file mode 100644
index 0000000..76fb17b
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/chat/resources/text_color.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/chat/resources/text_hyperlink.png b/WebContent/src/modules/conference/tabcontent/chat/resources/text_hyperlink.png
new file mode 100644
index 0000000..b8edc12
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/chat/resources/text_hyperlink.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/chat/resources/text_italic.png b/WebContent/src/modules/conference/tabcontent/chat/resources/text_italic.png
new file mode 100644
index 0000000..8482ac8
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/chat/resources/text_italic.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/chat/resources/text_underline.png b/WebContent/src/modules/conference/tabcontent/chat/resources/text_underline.png
new file mode 100644
index 0000000..a9468a0
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/chat/resources/text_underline.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/chat/showChatLog.lzx b/WebContent/src/modules/conference/tabcontent/chat/showChatLog.lzx
new file mode 100644
index 0000000..4294a4d
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/chat/showChatLog.lzx
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<!---
+Chat tabpane class. It contains chatOutput-class and catTabBottom-class.
+This is used in the conference.
+-->
+<class name="showChatLog" extends="labelExplorerBox" labelid="1201"
+	    docking="true" resizeable="true" closable="true" width="500" 
+	    x="$once{ parent.width/2 - this.width/2 }" height="240">
+    
+    <attribute name="error" value="" type="string" />
+    
+    <view x="2" width="${ parent.width - 4 }" clip="true"
+        				y="24" height="${ parent.height-50 }">
+        <labelText text="$once{ parent.parent.error }" width="${ parent.width - 18 }"
+        		   multiline="true" resize="false" selectable="true" />
+        <om_vscrollbar />
+    </view>
+	
+    <simpleLabelButton labelid="891" width="100" onclick="this.parent.close();" 
+		   x="${ parent.width-104 }" y="${ parent.height-24 }" />
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/chat/simpleBaseTabpane.lzx b/WebContent/src/modules/conference/tabcontent/chat/simpleBaseTabpane.lzx
new file mode 100644
index 0000000..3e5492a
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/chat/simpleBaseTabpane.lzx
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+	<!--- Tabpane. it used by chat. -->

+	<class name="simpleBaseTabpane" extends="view" height="$once{ parent.height-20 }" 

+		   width="$once{ parent.width }" y="24" x="2" >

+		

+	</class>  

+

+</library>
\ No newline at end of file
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/dragItemFileExplorer.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/dragItemFileExplorer.lzx
new file mode 100644
index 0000000..99d73b1
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/dragItemFileExplorer.lzx
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="dragItemFileExplorer" extends="view">
+	
+	<attribute name="refObj" value="null"/>
+	
+	<attribute name="dragItemResource" value="" type="string"/>
+	
+	<attribute name="overItem" value="null"/>
+	
+	<attribute name="alreadySent" value="false" type="boolean" />
+	
+	<attribute name="fileExplorerItemId" value="0" type="number" />
+	<attribute name="newParentFileExplorerItemId" value="0" type="number" />
+    <attribute name="isOwner" value="false" type="boolean" />
+    <attribute name="moveToHome" value="false" type="boolean" />
+	
+	<handler name="oninit">
+		lz.Track.activate(canvas.currentImagesListdraw.currentTrackGroupName);
+		canvas.currentImagesListdraw.currentDragItem = this;
+		lz.Cursor.showHandCursor(false);
+		lz.ModeManager.globalLockMouseEvents();
+		this.dragger.apply();
+	</handler>
+	
+	<method name="sendOverItem" args="itemRef">
+		<![CDATA[
+    		if (this.refObj != itemRef) {
+    			
+    			if (this.refObj.isFolder) {
+    				if (!itemRef.isTrashCan && !itemRef.isFolder) {
+    					//No Folders to the whiteboard please
+    					return;
+    				}
+    			}
+    			
+        		this.overItem = itemRef;
+        		this._dragIcon.setAttribute("frame",2);
+    		}
+		]]>
+	</method>
+	
+	<method name="sendOutItem" args="itemRef">
+        this.overItem = null;
+        this._dragIcon.setAttribute("frame",1);
+    </method>
+	
+	<handler name="onmouseup" reference="lz.GlobalMouse" args="who">
+        this.close();
+    </handler>
+    
+    <method name="close">
+    <![CDATA[
+    	//This can happen when the confirmation pops up
+    	if (this.alreadySent) {
+    		return;
+    	}
+    	this.alreadySent = true;
+    	if ($debug) Debug.write("close Drag Item");
+    	lz.Cursor.showHandCursor(true);
+    	lz.Track.deactivate(canvas.currentImagesListdraw.currentTrackGroupName);
+    	lz.ModeManager.globalUnlockMouseEvents();
+    	canvas.currentImagesListdraw.currentDragItem = null;
+    	this.dragger.remove();
+    	
+    	if (this.overItem != null) {
+    		
+    		if ($debug) Debug.write("this.overItem ",this.overItem);
+    		
+    		if (this.overItem["isTrashCan"] && this.overItem.isTrashCan) {
+    			if ($debug) Debug.write("SEND TO GARBAGE");
+    			this.fileExplorerItemId = this.refObj.fileExplorerItemId;
+    			new lz.confirmationSingle(canvas,{
+            			   refObj:this,
+            			   labelid:710,
+            			   labeliderror:713,
+            			   showCheckBox:false,
+                           refReturnMethod:"sendConfirmation"
+            			});
+    		} else if (this.overItem["isFolder"] && this.overItem.isFolder){
+    			if ($debug) Debug.write("MOVE ITEM",this.refObj.fileExplorerItemId);
+    			if ($debug) Debug.write("MOVE TO PARENT",this.overItem.fileExplorerItemId);
+    			this.fileExplorerItemId = this.refObj.fileExplorerItemId;
+    			this.newParentFileExplorerItemId = this.overItem.fileExplorerItemId;
+    			if (this.overItem.fileExplorerItemId == 0) {
+    			    this.isOwner = this.overItem.isOwner;
+    			}
+    			
+    			//check if this is a home folder or not
+    			var checkForOwer = this.overItem.checkForIsOwner();
+    			if ($debug) Debug.write("checkForOwer ::",checkForOwer);
+    			this.moveToHome = checkForOwer;
+    			
+    			//check that the file is not moved inside itself
+    			if (this.overItem.checkForIsChild(this.refObj.fileExplorerItemId)) {
+    				new lz.labelerrorPopup(canvas,{errorlabelid:922});
+    				this.destroy();
+    				return;
+    			}
+    			
+    			this.moveFile();
+    		} else {
+    			if ($debug) Debug.warn("Drag to whiteboard !!! ");
+    			if (this.refObj.isVideo) {
+    				this.refObj.playVideo();
+    			} else if (this.refObj.isPresentation) {
+    			    this.refObj.loadDocumentToWhiteboard();
+    			} else if (this.refObj.isImage) {
+    				this.refObj.loadImageToWhiteboard();
+    			} else if (this.refObj.isWmlFile) {
+    				this.refObj.loadWmlFile();
+    			} else {
+    				if ($debug) Debug.warn("Should never happen dragItemFileExplorer unhandled case");
+    			}
+    			this.destroy();
+    		}
+    	} else {
+    		this.destroy();
+    	}
+    ]]>	
+    </method>
+    
+    <method name="sendConfirmation" args="bool,askAgain">
+    	if (bool) {
+    		this.deleteFileOrFolder();
+    	} else {
+    		this.destroy();
+    	}
+    </method>
+    
+    <method name="deleteFileOrFolder">
+        <![CDATA[
+            if ($debug) Debug.write("deleteFileOrFolder HTTP 2: ");
+            //this.getFileExplorerByRoom.doCall();
+            var downloadurl = canvas.getUrl()+'services/FileService/deleteFileOrFolderSelf?'
+                            +'SID='+canvas.sessionId
+                            +'&fileExplorerItemId='+this.fileExplorerItemId;
+            
+            this.deleteFileOrFolderSelf.setAttribute("src",downloadurl);
+            if ($debug) Debug.write("deleteFileOrFolderSelf doRequest ",downloadurl);
+            this.deleteFileOrFolderSelf.doRequest();
+        ]]>
+    </method>
+    
+    <dataset name="deleteFileOrFolderSelf" type="http" >
+        <handler name="ondata" args="d">
+            <![CDATA[
+                //if ($debug) Debug.write("ondata ",d);
+                if ($debug) Debug.write("deleteFileOrFolder: ",d);
+                parent.refObj.parent.parent.doOpen();
+                parent.destroy();
+            ]]>
+        </handler>
+    </dataset>
+    
+    <!--
+    <netRemoteCallHib name="deleteFileOrFolder" funcname="fileservice.deleteFileOrFolder" 
+        remotecontext="$once{ canvas.thishib }" > 
+        <netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+        <netparam><method name="getValue">return parent.fileExplorerItemId;</method></netparam>
+        <handler name="ondata" args="value">    
+            if ($debug) Debug.write("deleteFileOrFolder: ",value);
+            parent.refObj.parent.parent.doOpen();
+            parent.destroy();
+        </handler>
+    </netRemoteCallHib> 
+     -->
+    
+    <!--
+    public Long moveFileSelf(String SID, Long fileExplorerItemId,
+            Long newParentFileExplorerItemId, Long room_id, Boolean isOwner,
+            Boolean moveToHome)
+     -->
+     
+    <method name="moveFile">
+        <![CDATA[
+            if ($debug) Debug.write("moveFile HTTP 1: ");
+            //this.getFileExplorerByRoom.doCall();
+            var downloadurl = canvas.getUrl()+'services/FileService/moveFileSelfInternal?'
+                            +'SID='+canvas.sessionId
+                            +'&fileExplorerItemId='+this.fileExplorerItemId
+                            +'&newParentFileExplorerItemId='+this.newParentFileExplorerItemId
+                            +'&roomId='+hib.currentroomid
+                            +'&isOwner='+this.isOwner
+                            +'&moveToHome='+this.moveToHome;
+            
+            this.moveFileSelf.setAttribute("src",downloadurl);
+            if ($debug) Debug.write("moveFileSelf doRequest ",downloadurl);
+            this.moveFileSelf.doRequest();
+        ]]>
+    </method>
+    
+    <dataset name="moveFileSelf" type="http" >
+        <handler name="ondata" args="d">
+            <![CDATA[
+                //if ($debug) Debug.write("ondata ",d);
+                if ($debug) Debug.write("moveFileSelf: ",d);
+                parent.overItem.doOpen();
+                parent.refObj.parent.parent.doOpen();
+                parent.destroy();
+            ]]>
+        </handler>
+    </dataset>
+    
+    <!--
+    <netRemoteCallHib name="moveFile" funcname="fileservice.moveFile" 
+        remotecontext="$once{ canvas.thishib }" > 
+        
+        <attribute name="fileExplorerItemId" value="0" type="number" />
+        
+        
+        <netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+        <netparam><method name="getValue">return parent.fileExplorerItemId;</method></netparam>
+        <netparam><method name="getValue">return parent.newParentFileExplorerItemId;</method></netparam>  
+        <netparam><method name="getValue">return hib.currentroomid;</method></netparam>         
+        <netparam><method name="getValue">return parent.isOwner;</method></netparam>
+        <netparam><method name="getValue">return parent.moveToHome;</method></netparam>
+          
+        <handler name="ondata" args="value">    
+            if ($debug) Debug.write("moveFile: ",value);
+            parent.overItem.doOpen();
+            parent.refObj.parent.parent.doOpen();
+            parent.destroy();
+        </handler>
+    </netRemoteCallHib>   
+     -->  
+   
+	<view name="_dragFileSymbol" x="10" y="10"
+		resource="$once{ parent.dragItemResource }" />
+	
+	<view name="_dragIcon" x="18" y="14" 
+		  resource="drag_n_drop_rsc" frame="1" />
+	
+	<dragstate name="dragger"/>
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/dynamicFileName.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/dynamicFileName.lzx
new file mode 100644
index 0000000..033f205
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/dynamicFileName.lzx
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="dynamicFileName" extends="customInputtext" 
+	   fontsize="10" bgcolor="0xFFFFFF">
+	
+	<attribute name="isNew" value="false" type="boolean" />
+	
+	<!-- Only used in case its an update -->
+	<attribute name="fileExplorerItemId" value="0" type="number" />
+	
+	<attribute name="parentFileExplorerItemId" value="0" type="number" />
+	<attribute name="isOwner" value="false" type="boolean" />
+	
+	<attribute name="refObj" value="null" />
+	
+	<handler name="onblur">
+		lz.ModeManager.release(this);
+		if ($debug) Debug.write("Store and Destroy ",this.parentFileExplorerItemId);
+		if (this.isNew) {
+		    this.addFolder();
+		} else {
+			this.updateFileOrFolderName();
+		}
+	</handler>
+	
+	<handler name="onkeydown" args="k">
+		<![CDATA[
+    		if (k == 13 || k == 27) {
+    			this.onblur.sendEvent();
+    		}
+		]]>
+	</handler>
+	
+	<!--
+	public Long addFolderSelf(String SID, Long parentFileExplorerItemId,
+            String fileName, Long room_id, Boolean isOwner)
+     -->
+	
+	<method name="addFolder">
+        <![CDATA[
+            if ($debug) Debug.write("moveFile HTTP 1: ");
+            //this.getFileExplorerByRoom.doCall();
+            var downloadurl = canvas.getUrl()+'services/FileService/addFolderSelfInternal?'
+                            +'SID='+canvas.sessionId
+                            +'&parentFileExplorerItemId='+this.parentFileExplorerItemId
+                            +'&fileName='+this.text
+                            +'&roomId='+hib.currentroomid
+                            +'&isOwner='+this.isOwner;
+            
+            this.addFolderSelf.setAttribute("src",downloadurl);
+            if ($debug) Debug.write("addFolderSelf doRequest ",downloadurl);
+            this.addFolderSelf.doRequest();
+        ]]>
+    </method>
+    
+    <dataset name="addFolderSelf" type="http" >
+        <handler name="ondata" args="d">
+            <![CDATA[
+                //if ($debug) Debug.write("ondata ",d);
+                if ($debug) Debug.write("addFolderSelf: ",d);
+                parent.completed();
+            ]]>
+        </handler>
+    </dataset>
+	
+	<!--
+	<netRemoteCallHib name="addFolder" funcname="fileservice.addFolder" 
+        remotecontext="$once{ canvas.thishib }" >   
+        <netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+        <netparam><method name="getValue">return parent.parent.parentFileExplorerItemId;</method></netparam> 
+        <netparam><method name="getValue">return parent.parent.text;</method></netparam>   
+        <netparam><method name="getValue">return hib.currentroomid;</method></netparam>  
+        <netparam><method name="getValue">return parent.parent.isOwner;</method></netparam>         
+        <handler name="ondata" args="value">    
+            if ($debug) Debug.write("addFolder: ",value);
+            parent.completed(value);
+        </handler>
+    </netRemoteCallHib>  
+     -->
+	
+	<!--
+    public Long updateFileOrFolderNameSelf(String SID, Long fileExplorerItemId,
+            String fileName)
+     -->
+    <method name="updateFileOrFolderName">
+        <![CDATA[
+            if ($debug) Debug.write("moveFile HTTP 1: ");
+            //this.getFileExplorerByRoom.doCall();
+            var downloadurl = canvas.getUrl()+'services/FileService/updateFileOrFolderNameSelf?'
+                            +'SID='+canvas.sessionId
+                            +'&fileExplorerItemId='+this.fileExplorerItemId
+                            +'&fileName='+this.text;
+            
+            this.updateFileOrFolderNameSelf.setAttribute("src",downloadurl);
+            if ($debug) Debug.write("updateFileOrFolderNameSelf doRequest ",downloadurl);
+            this.updateFileOrFolderNameSelf.doRequest();
+        ]]>
+    </method>
+    
+    <dataset name="updateFileOrFolderNameSelf" type="http" >
+        <handler name="ondata" args="d">
+            <![CDATA[
+                //if ($debug) Debug.write("ondata ",d);
+                if ($debug) Debug.write("updateFileOrFolderNameSelf: ",d);
+                parent.completedRename();
+            ]]>
+        </handler>
+    </dataset>
+    
+	<!--
+	<netRemoteCallHib name="updateFileOrFolderName" funcname="fileservice.updateFileOrFolderName" 
+        remotecontext="$once{ canvas.thishib }" >   
+        <netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+        <netparam><method name="getValue">return parent.parent.fileExplorerItemId;</method></netparam> 
+        <netparam><method name="getValue">return parent.parent.text;</method></netparam>   
+        <handler name="ondata" args="value">    
+            if ($debug) Debug.write("updateFileOrFolderName: ",parent.fileExplorerItemId);
+            parent.completedRename();
+        </handler>
+    </netRemoteCallHib>
+     -->
+    
+	<method name="completed">
+		//this.refObj.fileExplorerItemId = fileExplorerItemId;
+		this.refObj.setAttribute("fileName",this.getText());
+		this.refObj.parent.parent.doOpen();
+		this.destroy();
+	</method>
+	
+	<method name="completedRename">
+		this.refObj.setAttribute("fileName",this.getText());
+		this.destroy();
+	</method>
+	
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/fileExplorer.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/fileExplorer.lzx
new file mode 100644
index 0000000..07e0640
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/fileExplorer.lzx
@@ -0,0 +1,622 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+
+<!-- ###################
+    Class fileExplorer
+ -->
+<class name="fileExplorer" extends="view" >
+    
+    <attribute name="parentFolderId" value="-2" type="number" />
+    
+    <attribute name="_selected" value="null" />
+    
+    <event name="onClose"/>
+    
+    <handler name="oninit">
+    	canvas.currentFileExplorer = this;
+        lz.Track.register(this._trashBar._trashIcon, canvas.currentImagesListdraw.currentTrackGroupName);
+    </handler>
+    
+    <handler name="onvisible">
+    	if ($debug) Debug.write("fileExplorer::onvisible this._selected ",this._selected);
+        //This is thrown whenever an uploaded Document has completed
+        if (this._selected == null) {
+            this.loadFiles();
+        } else {
+        	if (this._selected.isFolder) {
+            	this._selected.refresh();
+        	} else {
+        		this.loadFiles();
+        	}
+        }
+    </handler>
+    
+    <method name="selectItem" args="itemRef">
+        if (this._selected != null) {
+            this._selected.deselectItem();
+        }
+        
+        this._selected = itemRef;
+        this._selected.selectItem();
+        
+        //Set parent folder id for next Folder or uploaded file
+        if (this._selected.fileExplorerItemId == 0) {
+            if (this._selected.isOwner) {
+                this.parentFolderId = -2;
+            } else {
+                this.parentFolderId = 0;
+            }
+        } else {
+            this.parentFolderId = this._selected.fileExplorerItemId;
+        }
+        
+    </method>
+    
+    <method name="addFile">
+    	<![CDATA[
+	    	if ($debug) Debug.write("addFile :: ",this._selected,this.parentFolderId);
+	    	
+	    	if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
+	    		new lz.labelerrorPopup(canvas,{errorlabelid:1462});
+	    		return;
+	    	}
+	    	
+	    	var isOwner = 0;
+	    	if (this.parentFolderId == -2) {
+	    		isOwner = 1;
+	    	} else {
+	    		//Check if its a subfolder of a Owners Dir
+	    		if (this._selected != null) {
+	    			var checkForOwer = this._selected.checkForIsOwner();
+	    			if ($debug) Debug.write("checkForOwer ::",checkForOwer);
+	    			if (checkForOwer) {
+	    				isOwner = 1;
+	    			}
+	    		}
+	    	}
+	    	
+	    	if ($debug) Debug.write("addFile :: ",isOwner);
+	    	
+	        new lz.uploadWindowExplorer(canvas.main_content._content.inner,{
+	                            x:60,uploadmodule:canvas.uploadmoduleimg,
+	                            parentFolderId:this.parentFolderId,
+	                            isOwner:isOwner,
+	                            fileExplorerRef:this,
+	                            isOnlyImage:true,
+	                            servletName:'file.upload'
+	                        });
+        ]]>
+    </method>
+    
+    <method name="addFolder">
+    	<![CDATA[
+    		if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
+	    		new lz.labelerrorPopup(canvas,{errorlabelid:1462});
+	    		return;
+	    	}
+    
+	        if (this._selected == null) {
+	        	if ($debug) Debug.write("addFolder ::1 ",this._selected);
+	            this._filearea._contentarea.subviews[0].addFolder();
+	        } else {
+	            if (this._selected.isFolder) {
+	            	if ($debug) Debug.write("-1 this._selected.isFolder ",this._selected);
+	                this._selected.addFolder();
+	            } else {
+	            	if ($debug) Debug.write("-2 !this._selected.isFolder ",this._selected);
+	                this._selected.parent.parent.addFolder();
+	            }
+	        }
+	    ]]>
+    </method>
+    
+    <method name="loadWmlFile" args="itemObj">
+		this.selectItem(itemObj);
+		canvas._drawarea.prepareLoadWMLFile(itemObj); 
+		//canvas._drawarea.loadObjectList(itemObj); 
+	</method>
+
+    
+    <method name="loadDocument" args="itemObj">
+        this.selectItem(itemObj);
+        this._documentsTabs.setAttribute("height",20);
+        this._documentsTabs.setAttribute("visibility","visible");
+        this._documentsTabs.hideAll();
+        var t = new lz.presentationPreview(this,{
+                        documentObj:itemObj,
+                        refObjList:this
+                    });
+        //t.sendToBack();
+        //this._bg1.sendToBack();
+        //this._bg2.sendToBack();
+        this._documentsTabs.bringToFront();
+        return t;
+    </method>
+    
+    <method name="playVideo" args="itemObj">
+    	this.selectItem(itemObj);
+    	canvas._drawarea.playVideoSynced(itemObj.fileExplorerItemId,itemObj.fileName,itemObj.flvWidth,itemObj.flvHeight);
+    </method>
+    
+    <method name="loadFiles">
+    	<![CDATA[
+    	    if (this["getFileExplorerByRoomSelf"]) {
+                //this.getFileExplorerByRoom.doCall();
+                var downloadurl = canvas.getUrl()+'services/FileService/getFileExplorerByRoomSelfInternal?'
+                                +'SID='+canvas.sessionId
+                                +'&roomId='+hib.currentroomid;
+                
+                this.getFileExplorerByRoomSelf.setAttribute("src",downloadurl);
+                if ($debug) Debug.write("getFileExplorerByRoomSelf doRequest 1 ",downloadurl);
+                this.getFileExplorerByRoomSelf.doRequest();
+    	    }
+        ]]>
+    </method>
+    
+    <dataset name="getFileExplorerByRoomSelf" type="http" >
+    	<handler name="ondata" args="d">
+    		<![CDATA[
+    			if ($debug) Debug.write("ondata 1 ",this.src);
+                if ($debug) Debug.write("ondata 2 ",d);
+                parent.parseRootItems(parent.parseRootToRoomObject(d));
+            ]]>
+    	</handler>
+    </dataset>
+    
+    <method name="parseParentToRoomObject" args="dObj">
+        <![CDATA[
+            
+            var filesObject = new Array();
+            
+            var tFiles = dObj.childNodes[0].childNodes;
+            
+            if ($debug) Debug.write("parseParentToRoomObject tFiles ",tFiles);
+            
+            for (var i=0;i<tFiles.length;i++) {
+                
+                filesObject.push(this.parseToFileObj(tFiles[i].childNodes));
+                
+            }
+        
+            return filesObject;
+        ]]>
+    </method>
+    
+    <method name="parseRootToRoomObject" args="dObj">
+        <![CDATA[
+            
+            var roomObject = new Object();
+            
+            roomObject.userHome = new Array();
+            roomObject.roomHome = new Array();
+            roomObject.userHomeSize = 0;
+            roomObject.roomHomeSize = 0;
+            
+            var tFiles = dObj.childNodes[0].childNodes[0].childNodes;
+            
+            //if ($debug) Debug.write("tFiles ",tFiles);
+            
+            for (var i=0;i<tFiles.length;i++) {
+                
+                //if ($debug) Debug.write("nodeName",tFiles[i].nodeName);
+                
+                if (tFiles[i].nodeName == "userHomeSize") {
+                    if ($debug) Debug.write("roomHomeSize",tFiles[i].childNodes[0].data);
+                    roomObject.userHomeSize = Number(tFiles[i].childNodes[0].data);
+                } else if (tFiles[i].nodeName == "roomHomeSize") {
+                    if ($debug) Debug.write("roomHomeSize",tFiles[i].childNodes[0].data);
+                    roomObject.roomHomeSize = Number(tFiles[i].childNodes[0].data);
+                } else if (tFiles[i].nodeName == "roomHome") {
+                    roomObject.roomHome.push(this.parseToFileObj(tFiles[i].childNodes));
+                } else if (tFiles[i].nodeName == "userHome") {
+                    roomObject.userHome.push(this.parseToFileObj(tFiles[i].childNodes));
+                }
+                
+            }
+        
+            return roomObject;
+        ]]>
+    </method>
+    
+    <method name="parseToFileObj" args="dObj">
+        <![CDATA[
+        
+            var tFileObj = new Object();
+        
+            var type = "string";
+            
+            for (var i=0;i<dObj.length;i++) {
+                
+                type = "string";
+            
+                switch (dObj[i].nodeName){
+                    case "externalFileId":
+                        type = "int";
+                        break;
+                    case "fileExplorerItemId":
+                        type = "int";
+                        break;
+                    case "fileSize":
+                        type = "int";
+                        break;
+                    case "flvHeight":
+                        type = "int";
+                        break;
+                    case "flvWidth":
+                        type = "int";
+                        break;
+                    case "insertedBy":
+                        type = "int";
+                        break;
+                    case "isChart":
+                        type = "boolean";
+                        break;
+                    case "isFolder":
+                        type = "boolean";
+                        break;
+                    case "isImage":
+                        type = "boolean";
+                        break;
+                    case "isPresentation":
+                        type = "boolean";
+                        break;
+                    case "isStoredWmlFile":
+                        type = "boolean";
+                        break;
+                    case "isVideo":
+                        type = "boolean";
+                        break;
+                    case "ownerId":
+                        type = "int";
+                        break;
+                    case "parentFileExplorerItemId":
+                        type = "int";
+                        break;
+                    case "room_id":
+                        type = "int";
+                        break;
+                    default:
+                        break;
+                }
+                
+                //if ($debug) Debug.write("Obj attr ",dObj[i].nodeName,type);
+                
+                if (dObj[i].childNodes.length > 0) {
+                    switch (type) {
+                        case "int":
+                            tFileObj[dObj[i].nodeName] = Number(dObj[i].childNodes[0].data);
+                            break;
+                        case "boolean":
+                            tFileObj[dObj[i].nodeName] = (dObj[i].childNodes[0].data == "true") ? true : false;
+                            break;
+                        default:
+                            tFileObj[dObj[i].nodeName] = dObj[i].childNodes[0].data;
+                            break;
+                    }
+                } else {
+                    tFileObj[dObj[i].nodeName] = null;
+                }
+                
+                //if ($debug) Debug.write("Obj attr ",dObj[i].nodeName,tFileObj[dObj[i].nodeName]);
+                
+            }
+        
+            return tFileObj;
+            
+        ]]>
+    </method>
+    
+    <!--
+        Parse Items and generate Output
+     --> 
+    <method name="parseRootItems" args="roomObject">
+        <![CDATA[
+            this.clearContent();
+            
+            var homeSizeInMBytes = Math.round( (roomObject.userHomeSize / 1024 / 1024) * 100) / 100;
+            
+            this._userSpace._userHomeSize.setAttribute("text","" + homeSizeInMBytes + " MBytes");
+            
+            var roomHomeSizeInMBytes = Math.round( (roomObject.roomHomeSize / 1024 / 1024) * 100) / 100;
+            
+            this._userSpace._roomHomeSize.setAttribute("text","" + roomHomeSizeInMBytes + " MBytes");
+            
+            var homeIcon = new lz.rootFileExplorerItem(this._filearea._contentarea,{
+                                        open:true,
+                                        fileName:canvas.getLabelName(706),
+                                        name:'_home',
+                                        isRoot:true,
+                                        fileIcon:'file_explorer_folder_home_rsc',
+                                        isOwner:true,
+                                        refObjListRoot:this
+                                    });
+                                    
+            homeIcon.content.setAttribute("visibility","visible");
+            homeIcon.icon_folder_pre.setAttribute("frame",2);
+            homeIcon._folderIcon.setAttribute("frame",2);
+            
+            //Home area
+            for (var i=0; i<roomObject.userHome.length; i++) {
+                var fileExplorerItem = roomObject.userHome[i];
+                //if ($debug) Debug.write("fileExplorerItem, ",fileExplorerItem);
+                if (fileExplorerItem.isFolder) {
+                    new lz.folderFileExplorerItem(homeIcon.content,{
+                                            fileExplorerItemId:fileExplorerItem.fileExplorerItemId,
+                                            fileName:fileExplorerItem.fileName,
+                                            fileIcon:'icon_folder_rsc',
+                                            refObjListRoot:this
+                                        });
+                } else if (fileExplorerItem.isImage) {
+                    new lz.imageFileExplorerItem(homeIcon.content,{
+                                            isFolder:false,
+                                            fileExplorerItemId:fileExplorerItem.fileExplorerItemId,
+                                            fileName:fileExplorerItem.fileName,
+                                            fileHash:fileExplorerItem.fileHash,
+                                            isFolder:false,isImage:true,
+                                            fileIcon:'file_explorer_image_rsc',
+                                            refObjListRoot:this
+                                        });
+                } else if (fileExplorerItem.isPresentation) {
+                    new lz.documentFileExplorerItem(homeIcon.content,{
+                                            isFolder:false,
+                                            fileExplorerItemId:fileExplorerItem.fileExplorerItemId,
+                                            fileName:fileExplorerItem.fileName,
+                                            fileHash:fileExplorerItem.fileHash,
+                                            isFolder:false,isPresentation:true,
+                                            fileIcon:'file_explorer_document_rsc',
+                                            refObjListRoot:this
+                                        });
+                } else if (fileExplorerItem.isVideo) {
+                    new lz.videoFileExplorerItem(homeIcon.content,{
+                                            isFolder:false,
+                                            isVideo:true,
+                                            fileExplorerItemId:fileExplorerItem.fileExplorerItemId,
+                                            fileName:fileExplorerItem.fileName,
+                                            fileHash:fileExplorerItem.fileHash,
+                                            isFolder:false,isImage:true,
+                                            fileIcon:'file_explorer_video_rsc',
+                                            flvHeight:fileExplorerItem.flvHeight,
+                                            flvWidth:fileExplorerItem.flvWidth,
+                                            refObjListRoot:this
+                                        });
+                } else if (fileExplorerItem.isStoredWmlFile) { 
+                	new lz.wmlFileExplorerItem(homeIcon.content,{
+                                            isFolder:false,
+                                            fileExplorerItemId:fileExplorerItem.fileExplorerItemId,
+                                            fileName:fileExplorerItem.fileName,
+                                            fileIcon:'file_explorer_wml_rsc',
+                                            isWmlFile: true,
+                                            refObjListRoot:this                	
+            							});
+                } else if (fileExplorerItem.isChart) { 
+                  new lz.wmlFileExplorerItem(homeIcon.content,{
+                                            isFolder:false,
+                                            fileExplorerItemId:fileExplorerItem.fileExplorerItemId,
+                                            fileName:fileExplorerItem.fileName,
+                                            fileIcon:'file_explorer_chart_rsc',
+                                            isChart:true,
+                                            refObjListRoot:this                 
+                          });
+
+            	}
+            }
+            //Public - Room Area
+            var roomHome = new lz.rootFileExplorerItem(this._filearea._contentarea,{
+                                        open:true,
+                                        fileName:canvas.getLabelName(707),
+                                        name:'_roomHome',
+                                        isRoot:true,
+                                        fileIcon:'file_explorer_folder_network_rsc',
+                                        refObjListRoot:this
+                                    });
+                                    
+            roomHome.content.setAttribute("visibility","visible");
+            roomHome.icon_folder_pre.setAttribute("frame",2);
+            roomHome._folderIcon.setAttribute("frame",2);
+            
+            //Public area
+            for (var i=0; i<roomObject.roomHome.length; i++) {
+                var fileExplorerItem = roomObject.roomHome[i];
+                //if ($debug) Debug.write("fileExplorerItem.fileExplorerItemId, ",fileExplorerItem.fileExplorerItemId);
+                //if ($debug) Debug.write("fileExplorerItem, ",fileExplorerItem);
+                if (fileExplorerItem.isFolder) {
+                    new lz.folderFileExplorerItem(roomHome.content,{
+                                            fileName:fileExplorerItem.fileName,
+                                            fileExplorerItemId:fileExplorerItem.fileExplorerItemId,
+                                            fileIcon:'icon_folder_rsc',
+                                            refObjListRoot:this
+                                        });
+                } else if (fileExplorerItem.isImage) {
+                    new lz.imageFileExplorerItem(roomHome.content,{
+                                            isFolder:false,
+                                            fileExplorerItemId:fileExplorerItem.fileExplorerItemId,
+                                            fileName:fileExplorerItem.fileName,
+                                            fileHash:fileExplorerItem.fileHash,
+                                            isFolder:false,isImage:true,
+                                            fileIcon:'file_explorer_image_rsc',
+                                            refObjListRoot:this
+                                        });
+                } else if (fileExplorerItem.isPresentation) {
+                    new lz.documentFileExplorerItem(roomHome.content,{
+                                            isFolder:false,
+                                            fileExplorerItemId:fileExplorerItem.fileExplorerItemId,
+                                            fileName:fileExplorerItem.fileName,
+                                            fileHash:fileExplorerItem.fileHash,
+                                            isFolder:false,isPresentation:true,
+                                            fileIcon:'file_explorer_document_rsc',
+                                            refObjListRoot:this
+                                        });
+                } else if (fileExplorerItem.isVideo) {
+                    new lz.videoFileExplorerItem(roomHome.content,{
+                                            isFolder:false,
+                                            isVideo:true,
+                                            fileExplorerItemId:fileExplorerItem.fileExplorerItemId,
+                                            fileName:fileExplorerItem.fileName,
+                                            fileHash:fileExplorerItem.fileHash,
+                                            isFolder:false,isImage:true,
+                                            fileIcon:'file_explorer_video_rsc',
+                                            flvHeight:fileExplorerItem.flvHeight,
+                                            flvWidth:fileExplorerItem.flvWidth,
+                                            refObjListRoot:this
+                                        });
+                } else if (fileExplorerItem.isStoredWmlFile) { 
+                	new lz.wmlFileExplorerItem(roomHome.content,{
+                                            isFolder:false,
+                                            fileExplorerItemId:fileExplorerItem.fileExplorerItemId,
+                                            fileName:fileExplorerItem.fileName,
+                                            fileIcon:'file_explorer_wml_rsc',
+                                            isWmlFile: true,
+                                            refObjListRoot:this                	
+            							});
+                } else if (fileExplorerItem.isChart) { 
+                  new lz.wmlFileExplorerItem(roomHome.content,{
+                                            isFolder:false,
+                                            fileExplorerItemId:fileExplorerItem.fileExplorerItemId,
+                                            fileName:fileExplorerItem.fileName,
+                                            fileIcon:'file_explorer_chart_rsc',
+                                            isChart:true,
+                                            refObjListRoot:this                 
+                          });
+           		}
+            }
+        ]]>
+    </method>
+    
+    <method name="clearContent">
+        <![CDATA[
+            for (var eg in this._filearea._contentarea.subviews) {
+                this._filearea._contentarea.subviews[eg].destroy();
+            }
+        ]]>
+    </method>
+    
+    <!--
+        Borders
+     -->
+               
+    <view name="_border2" x="0" y="${ 33 + parent._documentsTabs.height }" width="$once{ parent.width }" 
+          height="1" bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }" />     
+    
+    <!--
+        Documents - Tabbar
+     --> 
+    <documentsTabBar name="_documentsTabs" y="14" width="$once{ parent.width }"
+                    visibility="hidden" />
+    	
+    
+    <!--
+        File Tree Content Tabbar
+     --> 
+     
+    <view name="_fileBar" layout="axis:x" x="0" y="${ 14 + parent._documentsTabs.height }">
+        <baseChooseIconView labelid="702" height="20" width="19" bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }"
+                            resourceN="file_explorer_add_file_rsc">
+            <handler name="onclick">
+                if ($debug) Debug.write("Upload File");
+                parent.parent.addFile();
+            </handler>
+        </baseChooseIconView>
+        <baseChooseIconView labelid="703" height="20" width="19" bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }"
+                            resourceN="file_explorer_add_folder_rsc" >
+            <handler name="onclick">
+                if ($debug) Debug.write("Add Folder");
+                parent.parent.addFolder();
+            </handler>
+        </baseChooseIconView>
+        <baseChooseIconView labelid="704" height="20" width="19" bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }"
+                            resourceN="file_explorer_reload_rsc" >
+            <handler name="onclick">
+                if ($debug) Debug.write("Refresh Folder");
+                parent.parent.loadFiles();
+            </handler>
+        </baseChooseIconView>
+        <view bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }" height="20" width="1" />
+    </view>
+    
+    <!--
+        File Tree Content Trashbar
+     --> 
+     
+    <view name="_trashBar" layout="axis:x" x="$once{ parent.width - 20 }" 
+          y="${ 14 + parent._documentsTabs.height }">
+        <baseChooseIconView name="_trashIcon" labelid="705" height="20" width="19" 
+                         resourceN="file_explorer_trash_rsc" bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }">
+            <attribute name="isTrashCan" value="true" type="boolean" />
+            <handler name="onclick">
+                if ($debug) Debug.write("Delete Folder and Files");
+            </handler>
+            <handler name="onmousetrackover">
+                //if ($debug) Debug.write("onmousetrackover");
+                canvas.currentImagesListdraw.currentDragItem.sendOverItem(this);
+                this.onmouseover.sendEvent();
+            </handler>
+            <handler name="onmousetrackout">
+                //if ($debug) Debug.write("onmousetrackout");
+                canvas.currentImagesListdraw.currentDragItem.sendOutItem(this);
+                this.onmouseout.sendEvent();
+            </handler>
+            <handler name="onmousetrackup">
+                if ($debug) Debug.write("onmousetrackup");
+                this.onmouseout.sendEvent();
+            </handler> 
+        </baseChooseIconView>
+        <view bgcolor="0xE0E0E0" height="20" width="1" />
+    </view>
+    
+    <!--
+        File Tree Content
+     --> 
+    
+    <view name="_filearea" x="1" y="${ 34 + parent._documentsTabs.height }" clip="true"
+          height="${ parent.height - 35 - parent._documentsTabs.height - parent._userSpace.height }" 
+          width="$once{ parent.width }">
+        
+        <attribute name="currentTrackGroupName" value="fileExplorer" type="string" />
+        
+        <attribute name="currentDragItem" value="null" />
+        
+        <handler name="oninit">
+            canvas.currentImagesListdraw = this;
+        </handler>
+        
+        <view name="_contentarea" layout="axis:y;inset:1" />
+        
+        <om_vscrollbar name="_scrollbar" />
+        <om_hscrollbar name="_hscrollbar" />
+    </view>
+    
+    <view name="_userSpace" height="40" valign="bottom" width="$once{ parent.width }">
+    	
+    	<labelText name="_userHomeSizeLabel" labelid="923" fgcolor="$once{ canvas.getThemeColor('menuTextColor') }" />
+    	
+    	<labelText name="_userHomeSize" align="right" fgcolor="$once{ canvas.getThemeColor('menuTextColor') }" />
+    	
+    	<labelText name="_roomHomeSizeLabel" labelid="924" y="20" fgcolor="$once{ canvas.getThemeColor('menuTextColor') }" />
+    	
+    	<labelText name="_roomHomeSize" align="right" y="20" fgcolor="$once{ canvas.getThemeColor('menuTextColor') }" />
+    	
+    </view>
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/library.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/library.lzx
new file mode 100644
index 0000000..d7ec4ec
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/library.lzx
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+    <include href="presentations/" />
+    <include href="tabbar/" />
+    
+    <include href="treeitems/" />
+    <include href="dynamicFileName.lzx" />
+    <include href="dragItemFileExplorer.lzx" />
+    <include href="fileExplorer.lzx" />
+
+    <resource name="drag_n_drop_rsc">
+    	<!-- APL Author sebawagner --> 
+        <frame src="resources/icon_drag_no.png" />
+        <!-- APL Author sebawagner --> 
+        <frame src="resources/icon_drag_add.png" />
+    </resource>    
+
+    <resource name="icon_folder_pre_rsc">
+    	<!-- APL Author sebawagner --> 
+        <frame src="resources/icon_folder_pre_closed_rsc.png" />
+        <!-- APL Author sebawagner --> 
+        <frame src="resources/icon_folder_pre_open_rsc.png" />
+    </resource>
+    
+    <resource name="icon_folder_rsc">
+    	<!-- FamFam Icon Set -->
+        <frame src="resources/folder.png" />
+        <frame src="resources/folder.png" />
+    </resource>
+    
+    <!-- FamFam Icon Set --> 
+    <resource name="file_explorer_video_rsc" src="resources/film.png" />	
+    <!-- FamFam Icon Set -->
+    <resource name="file_explorer_add_file_rsc" src="resources/add.png" />
+    <!-- FamFam Icon Set --> 
+    <resource name="file_explorer_add_folder_rsc" src="resources/folder_add.png" />
+    <!-- FamFam Icon Set --> 
+    <resource name="file_explorer_reload_rsc" src="resources/arrow_refresh_small.png" />
+    <!-- 
+    WPZOOM Creative Commons Attribution-ShareAlike 3.0 Unported License.
+    http://www.wpzoom.com/wpzoom/new-freebie-wpzoom-developer-icon-set-154-free-icons/
+     -->
+    <resource name="file_explorer_trash_rsc" src="resources/trash.png" />
+    <!-- APL Author sebawagner -->
+    <resource name="file_explorer_close_rsc" src="resources/remove_item.png" />
+    <!-- FamFam Icon Set --> 
+    <resource name="file_explorer_view_tree_rsc" src="resources/folder_explore.png" />   
+    
+    <!-- FamFam Icon Set --> 
+    <resource name="file_explorer_image_rsc" src="resources/photo.png" />
+    <!-- FamFam Icon Set --> 
+    <resource name="file_explorer_document_rsc" src="resources/report.png" />
+    <!-- FamFam Icon Set --> 
+    <resource name="file_explorer_wml_rsc" src="resources/map.png" />
+    <!-- FamFam Icon Set -->
+    <resource name="file_explorer_chart_rsc" src="resources/chart_pie.png" />
+    <!-- FamFam Icon Set -->
+    <resource name="file_explorer_folder_rsc" src="resources/folder.png" />
+    <!-- FamFam Icon Set -->
+    <resource name="file_explorer_folder_network_rsc" src="resources/world_link.png" />
+    <!-- FamFam Icon Set -->
+    <resource name="file_explorer_folder_home_rsc" src="resources/house_link.png" />
+    
+    
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/items/baseListPresentationItemExplorer.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/items/baseListPresentationItemExplorer.lzx
new file mode 100644
index 0000000..3f27e29
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/items/baseListPresentationItemExplorer.lzx
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<class name="baseListPresentationItemExplorer" extends="view" height="110" width="$once{ parent.width }" 
+    bgcolor="$once{ canvas.getThemeColor('mainBackgroundColor') }" focusable="true">
+    
+    <attribute name="uploadmodul" value="" type="string"/>
+    <attribute name="selectable" value="true" type="boolean" />
+    <attribute name="isselected" value="false" type="boolean" />
+    <attribute name="isoriginal" value="false" type="boolean" />
+    
+    <attribute name="uploadmoduleimgfolder" value="$once{ canvas.uploadmoduleimgfolder }" type="string" />
+    
+    <method name="formatURL" args="filename">
+        <![CDATA[
+            var downloadurl = canvas.getUrl()+'DownloadHandler?' +
+                'fileName=' + encodeURIComponent(filename) +
+                '&moduleName=' + this.uploadmodul + 
+                '&parentPath=' + encodeURIComponent(this.uploadmoduleimgfolder + '/' )+
+                '&room_id=files'+
+                '&sid='+canvas.sessionId;
+            ////Debug.write("downloadurl: ",downloadurl);
+            return downloadurl;
+        ]]>
+    </method>    
+
+    <handler name="onmouseover">
+        setCurrentMouseWheelObject(this.parent.parent._scrollbar);
+        if (!this.isselected){
+            this.setAttribute('bgcolor',canvas.getThemeColor('baseMouseOvercolorizer'));
+        }
+    </handler> 
+    <handler name="onmouseout">
+        disableCurrentMouseWheelObject();
+        if (!this.isselected){
+            this.setAttribute('bgcolor',canvas.getThemeColor('mainBackgroundColor'));
+        }
+    </handler>  
+       
+    <handler name="onfocus">
+        this.selectItem();
+    </handler>
+    <handler name="onblur">
+        this.disselectItem();
+    </handler>
+
+    <handler name="onkeyup" args="k"> 
+        //Debug.write("key " + k + " up");
+    </handler>
+    
+    <method name="selectItem">
+        //this.parent.selectItem(this);
+    </method>
+    <method name="disselectItem">
+        //this.parent.selectItem(this);
+    </method>
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/items/imageListInnerTableExplorer.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/items/imageListInnerTableExplorer.lzx
new file mode 100644
index 0000000..43aded1
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/items/imageListInnerTableExplorer.lzx
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<class name="imageListInnerTableExplorer" extends="view" width="${ parent.width-2 }" 
+    height="${ parent.height-2 }" 
+	bgcolor="white" x="1" y="1" clip="true">
+    
+    <view name="_listcontent" bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }" width="$once{ parent.width }" >
+        <simplelayout name="_layout" axis="y" spacing="2" inset="1" />
+        
+        <!--
+	  	<netRemoteCallHib name="deleteFile" funcname="fileservice.deleteFile" remotecontext="$once{ canvas.thishib }" >   
+			<netparam><method name="getValue"> return canvas.sessionId; </method></netparam>
+	  		<netparam><method name="getValue">return parent.String1;</method></netparam>
+        	<netparam><method name="getValue">return canvas.uploadmoduleimg;</method></netparam>
+			<netparam><method name="getValue">return parent.String2;</method></netparam>
+			<netparam><method name="getValue">return hib.currentroomid;</method></netparam>        	
+	        <handler name="ondata" args="value">	
+	        	//Debug.write("  deleteFile: ",value);  
+				//Debug.write("  deleteFile: ",this.String1);    
+				//Debug.write("  deleteFile: ",this.String2);   
+		  		var tempSendArray = new Array ();
+		  		tempSendArray[0] = 'fileslist';
+		  		var nowTime = new Date();
+		  		var datumsString = nowTime.getHours()+':'+nowTime.getMinutes();
+		  		tempSendArray[1] = datumsString;
+	  			//Debug.write("Setting Message");
+	  			tempSendArray[2] = 'newfile';
+	  			tempSendArray[3] = canvas.currentusename;
+		  		//Debug.write("send: ",tempSendArray);
+		  		canvas.objMessage = tempSendArray;
+		  		hib.sendMessage.doCall();         	          				
+	        </handler>	
+	  	</netRemoteCallHib> 
+	  	 -->	
+		
+		<method name="getconfirmationscode">
+			var g = canvas.getUserData();
+			 if (g["wmlfile"]==null) {
+				 g["wmlfile"]=new Array();
+				 g["wmlfile"]["clearField"]=false;
+				 g["wmlfile"]["askagainclear"]=true;
+				 canvas.setUserData(g);
+			 }
+			 return g["wmlfile"];
+		</method>
+		
+		<method name="resetDefaultConfirmations">
+			var g = canvas.getUserData();
+			 if (g["wmlfile"]==null) g["wmlfile"]=new Array();
+			 g["wmlfile"]["clearField"]=false;
+			 g["wmlfile"]["askagainclear"]=true;
+			 canvas.setUserData(g);
+	
+		</method>	
+		
+		<method name="sendConfirmation" args="yesno,askagain" >
+			
+			//Debug.write("clear yesno,askagain: ",yesno,askagain);
+			//can only be true in this case
+		
+			 var g = canvas.getUserData();
+			 if (g["wmlfile"]==null) g["wmlfile"]=new Array();
+			 g["wmlfile"]["clearField"]=yesno;
+			 g["wmlfile"]["askagainclear"]=!askagain;
+			 canvas.setUserData(g);
+	
+			 if (yesno){
+				 //Debug.write("clear field!!");
+				canvas._drawarea.setModus('plain');
+				this.loadWmlObject.doCall();
+			 }
+		</method>				
+		
+		<method name="loadWmlObjectConfirm">
+			<![CDATA[
+			var storedImageDate = this.getconfirmationscode();
+			//Debug.write(" g[wmlfile] ",storedImageDate);
+			if (storedImageDate["clearField"] && !storedImageDate["askagainclear"]){
+				canvas._drawarea.setModus('plain');
+				this.loadWmlObject.doCall();
+			} else if (!storedImageDate["askagainclear"] && !storedImageDate["clearField"]){
+				//this case will never happen
+				this.loadWmlObject.doCall();
+			} else if (storedImageDate["askagainclear"]){
+				new lz.confirmationSingle(canvas.main_content._content.inner,{labelid:210,labeliderror:211,refObj:this});
+			} else {
+				new lz.confirmationSingle(canvas.main_content._content.inner,{labelid:210,labeliderror:211,refObj:this});
+			}
+			]]>
+		</method>
+		
+	  	<netRemoteCallHib name="loadWmlObject" funcname="fileservice.loadWmlObject" remotecontext="$once{ canvas.thishib }" >   
+			<netparam><method name="getValue"> return canvas.sessionId; </method></netparam>
+			<netparam><method name="getValue">return hib.currentroomid;</method></netparam>        	
+			  <netparam><method name="getValue">return parent.String1;</method></netparam>
+	        <handler name="ondata" args="value">	
+				<![CDATA[
+					if ($debug) Debug.write("  loadwmlObjectToStage ",value); 
+					canvas._drawarea.loadwmlObjectToStage(value,this.String1,hib.currentroomid,hib.conferencedomain,true,false);
+				]]>       	     				
+	        </handler>	
+	  	</netRemoteCallHib>
+        
+        
+        <method name="loadSWFPresentation" args="url,fileName,moduleName,parentPath,room,domain,slideNumber">
+            if ($debug) Debug.write("loadSWFPresentation");
+            canvas._drawarea.loadSWFPresentationSynced(url,fileName,moduleName,parentPath,room,domain,slideNumber,"");
+        </method>
+        
+        <method name="checkSWFPresentation" args="url,fileName,moduleName,parentPath,room,domain,slideNumber">
+            if ($debug) Debug.write("checkSWFPresentation");
+            return canvas._drawarea.checkSWFPresentation(url,fileName,moduleName,parentPath,room,domain,slideNumber);
+        </method>
+        
+        <method name="checkForOriginal" args="slideNumber">
+            <![CDATA[
+                var tWhiteBoard = false;
+                for (var i=0;i<this.subviews.length;i++){
+                    if (this.subviews[i].isoriginal){
+                        tWhiteBoard = this.subviews[i].checkSWFPresentation(slideNumber);
+                        if (!tWhiteBoard) {
+                            this.subviews[i].addSWFPresentation(slideNumber);
+                            break;
+                        }
+                    }
+                }
+                if ($debug) Debug.write("tWhiteBoard: ",tWhiteBoard);
+            ]]>
+        </method>
+		 	 
+    </view>
+
+    <om_vscrollbar name="_scrollbar" />
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/items/library.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/items/library.lzx
new file mode 100644
index 0000000..c302cc9
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/items/library.lzx
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+ 
+	<include href="imageListInnerTableExplorer.lzx" />
+    
+    <include href="baseListPresentationItemExplorer.lzx" />
+    <include href="listPresentationThumbExplorer.lzx" />
+    <include href="listPresentationFilePDFExplorer.lzx" />
+    <include href="listPresentationFileOrigExplorer.lzx" />
+    
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/items/listPresentationFileOrigExplorer.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/items/listPresentationFileOrigExplorer.lzx
new file mode 100644
index 0000000..da90cb4
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/items/listPresentationFileOrigExplorer.lzx
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<class name="listPresentationFileOrigExplorer" extends="listPresentationFilePDFExplorer">
+    
+    <attribute name="originalName" value="" type="string"/>
+    
+    <view name="_filesave_icon_original" x="120" y="6" resource="_filesave_icon_original_rsc"
+        onmouseover="" onmouseout="">
+        <handler name="onclick">
+            this.parent.loadFileByName(this.parent.originalName.filename);
+        </handler>
+        <labelTooltip labelid="247" />
+    </view>
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/items/listPresentationFilePDFExplorer.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/items/listPresentationFilePDFExplorer.lzx
new file mode 100644
index 0000000..658ecb7
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/items/listPresentationFilePDFExplorer.lzx
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="listPresentationFilePDFExplorer" extends="baseListPresentationItemExplorer" selectable="false">
+    
+    
+    <attribute name="pdfname" value="null" />
+    <attribute name="swfName" value="null" />
+    
+    <attribute name="fileExplorerItemId" value="-1" type="number" />
+    
+    <method name="loadFileByName" args="filename">
+    	<![CDATA[
+    		var lzURLToLoad = this.formatURL(filename)+"&fileExplorerItemId="+this.fileExplorerItemId;
+    		if ($debug) Debug.write("lzURLToLoad ",lzURLToLoad);
+        	lz.Browser.loadURL(lzURLToLoad,'_parent');
+        ]]>
+    </method>
+
+    <handler name="onclick">
+        this.parent.loadSWFPresentation(this.formatURL(this.swfName.filename),this.swfName.filename,this.uploadmodul,this.uploadmoduleimgfolder,'files',hib.conferencedomain,1);
+    </handler>
+    
+    <method name="checkSWFPresentation" args="slideNumber">
+        return this.parent.checkSWFPresentation(this.formatURL(this.swfName.filename),this.swfName.filename,this.uploadmodul,this.uploadmoduleimgfolder,'files',hib.conferencedomain,slideNumber);
+    </method>    
+    
+    <method name="addSWFPresentation" args="slideNumber">
+        this.parent.loadSWFPresentation(this.formatURL(this.swfName.filename),this.swfName.filename,this.uploadmodul,this.uploadmoduleimgfolder,'files',hib.conferencedomain,slideNumber);
+    </method>    
+    
+    <view name="_filesave_icon_pdf" x="150" y="6" resource="_filesave_icon_pdf_rsc">
+        <handler name="onclick">
+            //Debug.write("this.parent.pdfname: ",this.parent.pdfname.filename);
+            //Debug.write("this.parent: ",this.parent);
+            this.parent.loadFileByName(this.parent.pdfname.filename);
+        </handler>
+        <labelTooltip labelid="248" />
+    </view>
+        
+    <labelText name="_Text" y="40" labelid="249" width="240" />
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/items/listPresentationThumbExplorer.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/items/listPresentationThumbExplorer.lzx
new file mode 100644
index 0000000..2640814
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/items/listPresentationThumbExplorer.lzx
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<class name="listPresentationThumbExplorer" extends="baseListPresentationItemExplorer">
+    
+    <attribute name="thumbname" value="" type="string"/>
+    <attribute name="no" value="" type="string"/>
+    
+    <handler name="oninit">
+        this._thumb.setAttribute('src',this.formatURL(this.thumbname));
+    </handler>
+    
+    <handler name="onclick">
+        this.parent.checkForOriginal(Number(no));
+    </handler>    
+    
+    <image name="_thumb" x="10" y="1"/>
+    <text name="_thumbText" x="120" text="$once{ this.parent.no }" fontsize="10"
+        width="240" multiline="true"/>
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/library.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/library.lzx
new file mode 100644
index 0000000..9cf7dd1
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/library.lzx
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+	<include href="items/" />
+	<include href="presentationFilesList.lzx" />
+    <include href="presentationPreview.lzx" />
+    
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/presentationFilesList.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/presentationFilesList.lzx
new file mode 100644
index 0000000..bddaf0e
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/presentationFilesList.lzx
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+<!--  -->
+
+<class name="presentationFilesList" extends="view" 
+       x="0" y="40" height="${ parent.height-40 }" 
+        width="${ parent.width }" bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }">
+    
+    <event name="onclose" />
+    
+	<view width="$once{ parent.width-2 }" height="${ parent.height-2 }" 
+		  x="1" y="1" bgcolor="white" />
+
+	<attribute name="uploadmodul" value="$once{ canvas.uploadmoduleimg }" type="string" />
+
+    <method name="addPresentationThumb" args="thumbName,no">
+        new lz.listPresentationThumbExplorer(this._table._listcontent,{isExplorer:true,
+        					uploadmodul:this.uploadmodul,thumbname:thumbName,no:no});
+    </method>
+    
+    <method name="addListpresentationFileOrig" args="originalName,pdfname,swfName,fileExplorerItemId">
+    	if ($debug) Debug.write("addListpresentationFileOrig ",originalName,pdfname,swfName,fileExplorerItemId);
+        new lz.listPresentationFileOrigExplorer(this._table._listcontent,{
+	        				isExplorer:true,
+	        				isoriginal:true,
+	        				uploadmodul:this.uploadmodul,
+	        				originalName:originalName,
+	        				pdfname:pdfname,
+	        				swfName:swfName,
+	        				fileExplorerItemId:fileExplorerItemId
+        				});
+    </method>
+    
+    <method name="addListpresentationFilePDF" args="pdfname,swfName,fileExplorerItemId">
+    	if ($debug) Debug.write("addListpresentationFilePDF ",originalName,pdfname,swfName,fileExplorerItemId);
+        new lz.listPresentationFilePDFExplorer(this._table._listcontent,{
+	        				isExplorer:true,
+	        				isoriginal:true,
+	        				uploadmodul:this.uploadmodul,
+	        				pdfname:pdfname,
+	        				swfName:swfName,
+	        				fileExplorerItemId:fileExplorerItemId
+        				});
+    </method>
+	    
+    <method name="resetList">
+    	this._table.destroy();
+    	new lz.imageListInnerTableExplorer(this,{name:'_table'});
+    	this._hideForNonMods.bringToFront();
+    </method>
+    
+    <method name="highlightItem" args="obj">
+    	<![CDATA[
+    		for (var i=0;i<this._table._listcontent.subviews.length;i++){
+    			if (!this._table._listcontent.subviews[i].isPpt){
+                    //Debug.write("this._table._listcontent.subviews[i]: ",this._table._listcontent.subviews[i]);
+    				this._table._listcontent.subviews[i]._thumbText.setAttribute('text','<font>'+this._table._listcontent.subviews[i].filenamePure+'</font>');
+                }
+    		}
+    		obj._thumbText.setAttribute('text','<font><b>'+obj.filenamePure+'</b></font>');
+    	]]>
+    </method>
+    
+	<imageListInnerTableExplorer name="_table" y="20"
+						 height="${ parent.height-22 }" />
+	
+    <view name="_trashBar" layout="axis:x" x="$once{ parent.width - 20 }" y="0">
+        <baseChooseIconView name="_trashIcon" labelid="718" height="20" width="19" 
+                         resourceN="file_explorer_close_rsc">
+            <handler name="onclick">
+                parent.parent.onclose.sendEvent();
+            </handler>
+        </baseChooseIconView>
+        <view bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }" height="20" width="1" />
+    </view>
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/presentationPreview.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/presentationPreview.lzx
new file mode 100644
index 0000000..fed200f
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/presentations/presentationPreview.lzx
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="presentationPreview" extends="view" x="1" y="33" clip="true"
+        height="${ parent.height - 34 }" width="$once{ parent.width - 2 }">
+	
+	
+	<attribute name="documentObj" value="null" />
+	<attribute name="refObjList" value="null" />
+	
+	<attribute name="miniButton" value="null" />
+	
+	<handler name="oninit">
+		this.addFolderSequence();
+		if ($debug) Debug.write("presentationPreview 1 ",this.width);
+		if ($debug) Debug.write("presentationPreview 2 ",this.height);
+		this.miniButton = this.refObjList._documentsTabs.addItem(this);
+	</handler>
+	
+	<method name="addFolderSequence">
+        <![CDATA[
+        if ($debug) Debug.write("foldername 1 ",this.documentObj.fileHash);
+        if ($debug) Debug.write("foldername 2 ",this.documentObj.fileExplorerItemId);
+        canvas.uploadmoduleimgfolder = '/'+this.documentObj.fileHash;
+        this.getPresentationPreviewFileExplorer.doCall();
+        ]]>
+    </method>
+    
+    <netRemoteCallHib name="getPresentationPreviewFileExplorer" funcname="fileservice.getPresentationPreviewFileExplorer" 
+        remotecontext="$once{ canvas.thishib }" >   
+        <netparam><method name="getValue">return canvas.sessionId; </method></netparam>
+        <netparam><method name="getValue">return parent.parent.documentObj.fileHash;</method></netparam>
+        <handler name="ondata" args="value">    
+            if ($debug) Debug.write("getPresentationPreviewFileExplorer -1-: ",value);
+            if ($debug) Debug.write("getPresentationPreviewFileExplorer -3-: ",parent.documentObj.fileHash);
+            parent.renderItems(value);
+        </handler>
+    </netRemoteCallHib>     
+    
+    <method name="renderItems" args="presentationObject" >
+        if ($debug) Debug.write("this: ",this);
+        if ($debug) Debug.write("presentationObject: ",presentationObject);
+        <![CDATA[
+            
+            if ($debug) Debug.write("presentationObject: ",presentationObject);
+        
+            if (presentationObject.pdfDocument==null){
+                //Is PDF only
+                //Debug.write("Is PDF only");
+                this._imageslistdraw.addListpresentationFilePDF(presentationObject.originalDocument,presentationObject.swfDocument,this.documentObj.fileExplorerItemId);
+            } else {
+                //Is original Document + PDF-Document
+                //Debug.write("Is original Document + PDF-Document");
+                this._imageslistdraw.addListpresentationFileOrig(presentationObject.originalDocument,presentationObject.pdfDocument,presentationObject.swfDocument,this.documentObj.fileExplorerItemId);
+            }
+        
+            for (var eg=0;eg<presentationObject.thumbs.thumbs.length;eg++){
+                ////Debug.write(presentationObject.thumbs.thumbs[eg].filename);
+                this._imageslistdraw.addPresentationThumb(presentationObject.thumbs.thumbs[eg].filename,(eg+1));
+            }
+        
+        ]]>   
+    </method> 
+    
+    <presentationFilesList name="_imageslistdraw" x="0" y="0" width="$once{ parent.width }"
+    				height="${ parent.height }" >
+    	<handler name="onclose">
+    		parent.miniButton.close();
+    	</handler>
+    </presentationFilesList>
+	
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/add.png b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/add.png
new file mode 100644
index 0000000..6332fef
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/add.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/arrow_refresh_small.png b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/arrow_refresh_small.png
new file mode 100644
index 0000000..d3087df
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/arrow_refresh_small.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/chart_pie.png b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/chart_pie.png
new file mode 100644
index 0000000..fe00fa0
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/chart_pie.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/film.png b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/film.png
new file mode 100644
index 0000000..b0ce7bb
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/film.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/folder.png b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/folder.png
new file mode 100644
index 0000000..784e8fa
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/folder.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/folder_add.png b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/folder_add.png
new file mode 100644
index 0000000..529fe8f
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/folder_add.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/folder_blue_open.png b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/folder_blue_open.png
new file mode 100644
index 0000000..2c55c56
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/folder_blue_open.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/folder_explore.png b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/folder_explore.png
new file mode 100644
index 0000000..0ba9391
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/folder_explore.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/house_link.png b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/house_link.png
new file mode 100644
index 0000000..be2c271
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/house_link.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/icon_drag_add.png b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/icon_drag_add.png
new file mode 100644
index 0000000..a12ae41
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/icon_drag_add.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/icon_drag_no.png b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/icon_drag_no.png
new file mode 100644
index 0000000..784df30
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/icon_drag_no.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/icon_folder_pre_closed_rsc.png b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/icon_folder_pre_closed_rsc.png
new file mode 100644
index 0000000..a72275c
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/icon_folder_pre_closed_rsc.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/icon_folder_pre_open_rsc.png b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/icon_folder_pre_open_rsc.png
new file mode 100644
index 0000000..1e1b042
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/icon_folder_pre_open_rsc.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/map.png b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/map.png
new file mode 100644
index 0000000..f90ef25
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/map.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/photo.png b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/photo.png
new file mode 100644
index 0000000..6c2aaaa
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/photo.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/remove_item.png b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/remove_item.png
new file mode 100644
index 0000000..5031ff4
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/remove_item.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/report.png b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/report.png
new file mode 100644
index 0000000..779ad58
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/report.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/trash.png b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/trash.png
new file mode 100644
index 0000000..b92592b
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/trash.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/world_link.png b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/world_link.png
new file mode 100644
index 0000000..b8edc12
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/resources/world_link.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/tabbar/baseChooseIconView.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/tabbar/baseChooseIconView.lzx
new file mode 100644
index 0000000..5b4e828
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/tabbar/baseChooseIconView.lzx
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="baseChooseIconView" extends="view" width="24" height="24" 
+       bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }"  >
+    
+    <attribute name="resourceN" value="" type="string" />
+    <attribute name="isselected" value="false" type="boolean" />
+    <attribute name="labelid" value="0" type="number" />
+    
+    <handler name="oninit">
+        if (this.isselected){
+            this.onclick.sendEvent();
+        }
+    </handler> 
+    
+    <handler name="onmouseover">
+        this._bg.setAttribute("bgcolor",canvas.getThemeColor('baseMousecolorizer'));
+    </handler>
+    
+    <handler name="onmouseout">
+        this._bg.setAttribute("bgcolor",canvas.getThemeColor('mainBackgroundColor'));
+    </handler>
+    
+    <view name="_bg" x="1" y="1" width="$once{ parent.width-1 }" 
+          height="$once{ parent.height-2 }" bgcolor="$once{ canvas.getThemeColor('mainBackgroundColor') }" />
+    
+    <view x="2" y="2" resource="$once{ parent.resourceN }" />
+             
+    <labelTooltip labelid="$once{ parent.labelid }" inittwice="true" />
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/tabbar/documentsLoaderIcon.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/tabbar/documentsLoaderIcon.lzx
new file mode 100644
index 0000000..60c8787
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/tabbar/documentsLoaderIcon.lzx
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="documentsLoaderIcon" extends="view" height="20" width="19" 
+       bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }"  >
+    
+    <attribute name="resourceN" value="" type="string" />
+    <attribute name="isselected" value="false" type="boolean" />
+    <attribute name="labeltext" value="" type="string" />
+    
+    <attribute name="refObj" value="null" />
+    
+    <method name="hide">
+        this._bg.setAttribute("height",this.height-2);
+        parent.parent.hideSelection(this);
+    </method>
+    
+    <method name="setSelection">
+    	this._bg.setAttribute("height",this.height);
+    </method>
+    
+    <handler name="onclick">
+        parent.parent.sendSelection(this);
+    </handler>
+    
+    <handler name="oninit">
+        if (this.isselected){
+            this.onclick.sendEvent();
+        }
+    </handler> 
+    
+    <method name="close">
+    	parent.parent.close(this);
+    </method>
+    
+    <handler name="onmouseover">
+        this._bg.setAttribute("bgcolor",canvas.getThemeColor('baseMousecolorizer'));
+    </handler>
+    
+    <handler name="onmouseout">
+        this._bg.setAttribute("bgcolor",0xFFFFFF);
+    </handler>
+    
+    <view name="_bg" x="1" y="1" width="$once{ parent.width-1 }" 
+          height="$once{ parent.height-2 }" bgcolor="0xFFFFFF" />
+    
+    <view x="2" y="2" resource="$once{ parent.resourceN }" />
+             
+    <labelTooltip text="$once{ parent.labeltext }" />
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/tabbar/documentsTabBar.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/tabbar/documentsTabBar.lzx
new file mode 100644
index 0000000..3f4d6fc
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/tabbar/documentsTabBar.lzx
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="documentsTabBar" extends="view" height="0" y="14" layout="axis:x" >
+    
+    <attribute name="currentItem"/>
+    
+    <method name="sendSelection" args="itemRef">
+        this.hideAll();
+        itemRef.setSelection();
+        if (itemRef.refObj == null) {
+            parent._filearea.setAttribute("visibility","visible");
+            parent._trashBar.setAttribute("visibility","visible");
+            parent._fileBar.setAttribute("visibility","visible");
+            parent._border2.setAttribute("visibility","visible");
+        } else {
+        	//if ($debug) Debug.write(itemRef.refObj);
+            itemRef.refObj.setAttribute("visibility","visible");
+        }
+    </method>
+    
+    <method name="hideSelection" args="itemRef">
+        if (itemRef.refObj == null) {
+            parent._filearea.setAttribute("visibility","hidden");
+            parent._trashBar.setAttribute("visibility","hidden");
+            parent._fileBar.setAttribute("visibility","hidden");
+            parent._border2.setAttribute("visibility","hidden");
+        } else {
+            itemRef.refObj.setAttribute("visibility","hidden");
+        }
+    </method>
+    
+    <method name="close" args="buttonRef">
+    	buttonRef.refObj.destroy();
+    	buttonRef.destroy();
+    	this._content.subviews[this._content.subviews.length-1].onclick.sendEvent();
+    </method>
+    
+    <method name="hideAll">
+        <![CDATA[
+            for (var eg in this._content.subviews) {
+                this._content.subviews[eg].hide();
+            }
+        ]]>
+    </method>
+    
+    <method name="addItem" args="tab">
+        var t = new lz.documentsLoaderIcon(this._content,{
+                   resourceN:tab.documentObj.fileIcon,
+                   refObj:tab,
+                   labeltext:tab.documentObj.fileName
+                });
+        t.onclick.sendEvent();
+        return t;
+    </method>
+    
+    <view name="_border2" x="0" y="19" options="ignorelayout: true"
+          width="$once{ parent.width }" height="2" 
+          bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }" /> 
+           
+    <view name="_content" layout="axis:x">  
+        <documentsLoaderIcon name="_explorerTreeView" 
+            resourceN="file_explorer_view_tree_rsc" height="20" width="19" 
+            labeltext="$once{ canvas.getLabelName(717) }" />
+    </view>    
+    <view name="_border" height="20" width="1" 
+        bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }" />
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/tabbar/library.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/tabbar/library.lzx
new file mode 100644
index 0000000..7810c74
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/tabbar/library.lzx
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+    <include href="baseChooseIconView.lzx" />
+    <include href="documentsLoaderIcon.lzx" />
+    <include href="documentsTabBar.lzx" />
+    
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/baseFileExplorerItem.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/baseFileExplorerItem.lzx
new file mode 100644
index 0000000..77b48f4
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/baseFileExplorerItem.lzx
@@ -0,0 +1,541 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="baseFileExplorerItem" extends="view">
+	
+	<attribute name="refObjListRoot" value="null"/>
+	
+	<attribute name="isRoot" value="false" type="boolean" />
+	
+	<attribute name="fileIcon" type="string" value="string" />
+	
+	<attribute name="open" value="false" type="boolean" />
+	
+	<attribute name="fileExplorerItemId" value="0" type="number" />
+	<attribute name="isOwner" value="false" type="boolean" />
+	
+	<attribute name="isFolder" value="true" type="boolean" />
+	<attribute name="isImage" value="false" type="boolean" />
+	<attribute name="isPresentation" value="false" type="boolean" />
+	<attribute name="isVideo" value="false" type="boolean" />
+	
+	<attribute name="fileName" value="" type="string" />
+	<attribute name="fileHash" value="" type="string" />
+	
+	<attribute name="selected" value="false" type="boolean"/>
+	
+	<attribute name="singleClickDelegate" value="null" />
+	<attribute name="singleClickStarted" value="false" type="boolean" />
+	
+	<attribute name="isMouseDownDragAction" value="false" type="boolean"/>
+	
+	<!-- If this is true, then this item has been drag-n-droped and it makes no 
+	       sense to handle any single or double click event -->
+	<attribute name="mouseDownClickUsed" value="false" type="boolean" />
+	<attribute name="mouseDownClickDelegate" value="null" />
+	
+	<attribute name="isTrashCan" value="false" type="boolean" />
+	
+	<handler name="oninit">
+		this.singleClickDelegate = new LzDelegate( this, "doSingleClick" );
+		this.resetClickDelegate = new LzDelegate( this, "doResetSingleClick" );
+		this.mouseDownClickDelegate = new LzDelegate( this, "doMouseDownClick" );
+		if (this.isFolder) {
+		    lz.Track.register(this._fileName, canvas.currentImagesListdraw.currentTrackGroupName);
+		}
+	</handler>
+	
+	<method name="doOpen">
+		this.open = true;
+		if (this.isFolder) {
+    		this.icon_folder_pre.setAttribute("frame",2);
+    		this.content.setAttribute("visibility","visible");
+			this._folderIcon.setAttribute("frame",2);
+		    this.loadFiles();
+		}
+	</method>
+	
+	<method name="doClose">
+		this.open = false;
+		if (this.isFolder) {
+            this.icon_folder_pre.setAttribute("frame",1);
+            this.content.setAttribute("visibility","hidden");
+            this._folderIcon.setAttribute("frame",1);
+		}
+	</method>
+	
+    <method name="doMouseDownClick" args="itemObj">
+    	<![CDATA[
+			if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
+	    		new lz.labelerrorPopup(canvas,{errorlabelid:1462});
+	    		return;
+	    	}
+	    	this.mouseDownClickUsed = true;
+	    	if ($debug) Debug.write("mouseDown CLICK Start Drag And Drop");
+	    	new lz.dragItemFileExplorer(canvas,{
+	    		        dragItemResource:this.fileIcon,
+	            	    refObj:this,
+	                    x:canvas.getMouse('x'),
+	                    y:canvas.getMouse('y')
+	            	});
+        ]]>
+    </method>
+    
+    <!--
+    	Check if this is the Owner
+     -->
+    <method name="checkForIsOwner">
+    	if (this.isRoot) {
+    		return this.isOwner;
+    	} else {
+    		return parent.parent.checkForIsOwner();
+    	}
+    </method>
+    
+    <!--
+    	Check if the user tries to move a file in its own tree,
+    	see moveFile
+     -->
+    <method name="checkForIsChild" args="compareFileExplorerItemId">
+    	if (this.isRoot) {
+    		return false;
+    	} else {
+    		if (this.fileExplorerItemId == compareFileExplorerItemId) {
+    			return true;
+    		} else {
+    			return parent.parent.checkForIsChild(compareFileExplorerItemId);
+    		}
+    	}
+    </method>
+    
+    <method name="deleteFile" args="labelid">
+    	<![CDATA[
+			if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
+	    		new lz.labelerrorPopup(canvas,{errorlabelid:1462});
+	    		return;
+	    	}
+	    	new lz.confirmationSingle(canvas,{
+	                           refObj:this,
+	                           labelid:labelid,
+	                           labeliderror:713,
+	                           showCheckBox:false
+	                        });
+    	]]>
+    </method>
+    
+    <method name="sendConfirmation" args="bool,askAgain">
+        if (bool) {
+            this.deleteFileOrFolder();
+        }
+    </method>
+    
+    <method name="deleteFileOrFolder">
+        <![CDATA[
+			if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
+	    		new lz.labelerrorPopup(canvas,{errorlabelid:1462});
+	    		return;
+	    	}
+	    	
+            if ($debug) Debug.write("deleteFileOrFolder HTTP 1: ");
+            //this.getFileExplorerByRoom.doCall();
+            var downloadurl = canvas.getUrl()+'services/FileService/deleteFileOrFolderSelf?'
+                            +'SID='+canvas.sessionId
+                            +'&fileExplorerItemId='+this.fileExplorerItemId;
+            
+            this.deleteFileOrFolderSelf.setAttribute("src",downloadurl);
+            if ($debug) Debug.write("deleteFileOrFolderSelf doRequest ",downloadurl);
+            this.deleteFileOrFolderSelf.doRequest();
+        ]]>
+    </method>
+    
+    <dataset name="deleteFileOrFolderSelf" type="http" >
+        <handler name="ondata" args="d">
+            <![CDATA[
+                //if ($debug) Debug.write("ondata ",d);
+                if ($debug) Debug.write("deleteFileOrFolder: ",d);
+                parent.parent.parent.doOpen();
+                parent.refObjListRoot._selected = null;
+                parent.refObjListRoot.parentFolderId = -2;
+            ]]>
+        </handler>
+    </dataset>
+    
+	<method name="doSingleClick" args="itemObj">
+		this.singleClickStarted = false;
+		//Cannot change name for Root Icons
+		if (this.isRoot) {
+            return;
+        }
+		this.addOrUpdateFolderName(this.fileExplorerItemId,false);
+	</method>
+	
+	<method name="doResetSingleClick" args="itmeObj">
+		this.singleClickStarted = false;
+	</method>
+	
+	<method name="addFile">
+		this.refObjListRoot.selectItem(this);
+		this.refObjListRoot.addFile();
+	</method>
+	
+	<method name="addFolder">
+		<![CDATA[
+			if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
+	    		new lz.labelerrorPopup(canvas,{errorlabelid:1462});
+	    		return;
+	    	}
+	
+			if (this.isFolder) {
+				if ($debug) Debug.write("NEW this.fileExplorerItemId INTO ",this);
+				if ($debug) Debug.write("NEW this.fileExplorerItemId ",this.fileExplorerItemId);
+				if (this["icon_folder_pre"]) {
+	    			this.icon_folder_pre.setAttribute("frame",2);
+	                this.content.setAttribute("visibility","visible");
+	                this._folderIcon.setAttribute("frame",2);
+	        		var t = new lz.folderFileExplorerItem(this.content,{
+	        			            isOwner:this.isOwner,
+	        			            isFolder:true,
+	                    		    fileIcon:'icon_folder_rsc',
+	                                refObjListRoot:this.refObjListRoot,
+	                    		    fileName:canvas.getLabelName(712)
+	                    		});
+	                t.addOrUpdateFolderName(this.fileExplorerItemId,true);
+				}
+			}
+		]]>
+	</method>
+	
+	<method name="refresh">
+		this.doOpen();
+	</method>
+	
+	<method name="playVideo">
+	<![CDATA[
+		if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
+    		new lz.labelerrorPopup(canvas,{errorlabelid:1462});
+    		return;
+    	}
+		this.refObjListRoot.playVideo(this);
+	]]>
+	</method>
+	
+	<method name="editFolderName">
+	<![CDATA[
+		if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
+    		new lz.labelerrorPopup(canvas,{errorlabelid:1462});
+    		return;
+    	}
+		this.addOrUpdateFolderName(this.fileExplorerItemId,false);
+	]]>
+	</method>
+	
+	<method name="loadDocument">
+	<![CDATA[
+		if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
+    		new lz.labelerrorPopup(canvas,{errorlabelid:1462});
+    		return;
+    	}
+		this.refObjListRoot.loadDocument(this);
+	]]>
+	</method>
+	
+	<method name="loadWmlFile">
+	<![CDATA[
+		if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
+    		new lz.labelerrorPopup(canvas,{errorlabelid:1462});
+    		return;
+    	}
+		this.refObjListRoot.loadWmlFile(this);
+	]]>
+	</method>
+
+	<method name="loadChart">
+	<![CDATA[
+		if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
+    		new lz.labelerrorPopup(canvas,{errorlabelid:1462});
+    		return;
+    	}
+		this.refObjListRoot.loadChart(this);
+	]]>
+	</method>
+	
+	<method name="addOrUpdateFolderName" args="fileExplorerItemId,isNew">
+		<![CDATA[
+			if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
+	    		new lz.labelerrorPopup(canvas,{errorlabelid:1462});
+	    		return;
+	    	}
+		
+    		if ($debug) Debug.write("addOrUpdateFolderName ",fileExplorerItemId);
+    		var tWidth = this._fileName.width;
+    		if (tWidth < 160) {
+    			tWidth = 160;
+    		}
+    		
+    		var t = new lz.dynamicFileName(canvas,{
+    			        parentFileExplorerItemId:fileExplorerItemId,
+    			        fileExplorerItemId:this.fileExplorerItemId, //Only used at update Name
+    			        isOwner:this.isOwner,
+    			        text:this.fileName,
+    			        isNew:isNew, //false means its a renaming
+    			        refObj:this,width:tWidth+10,
+            		    x:this._fileName.getAttributeRelative("x",canvas),
+            		    y:this._fileName.getAttributeRelative("y",canvas)
+            		});
+            		
+            lz.Focus.setFocus(t,true);
+            lz.ModeManager.makeModal(t);
+            
+        ]]>
+	</method>
+	
+	<method name="toggleOpen" args="setSelection">
+		<![CDATA[
+			if (this.mouseDownClickUsed) {
+				if ($debug) Debug.write("mouseDownClickUsed RESET TO DEFAULT BUT DO NO ACTION Cause its a Drag and Drop Event");
+				this.mouseDownClickUsed = false;
+				return;
+			}
+			
+			if (this.singleClickStarted) {
+	            if ($debug) Debug.write("Is this selected => Double Click !!!");
+	            this.singleClickStarted = false;
+	            lz.Timer.removeTimer( this.singleClickDelegate );
+	            
+	            if (!canvas.isAllowedToDraw && !canvas.ismoderator) {
+		    		new lz.labelerrorPopup(canvas,{errorlabelid:1462});
+		    		return;
+		    	}
+	            
+	            if (this.isVideo) {
+	            	this.playVideo();
+	            } else if (this.isWmlFile){
+					this.loadWmlFile();
+				} else if (this.isFolder) {
+	                this.doSingleClick(null);
+	            } else if (this.isPresentation) {
+	                this.loadDocument();
+	            }
+	        } else {
+	        	
+	        	if (this.isFolder){
+	        		if (!this.open) {
+	        			this.doOpen();
+	        		} else {
+	        			if (setSelection) {
+	            			if (this.selected) {
+	            				if ($debug) Debug.write("Is this selected => Do Edit !!!");
+	            				this.singleClickStarted = true;
+	            			    lz.Timer.addTimer( this.singleClickDelegate, 300 );
+	            			} else {
+	            				
+	            				this.singleClickStarted = true;
+	            				lz.Timer.addTimer( this.resetClickDelegate, 300 );
+	            			}
+	        			} else {
+	        				this.doClose();
+	        			}
+	        		}
+	        	} else {
+	        		if (setSelection) {
+	                    if (this.selected) {
+	                        if ($debug) Debug.write("Is this selected => Do Edit !!!");
+	                        this.singleClickStarted = true;
+	                        lz.Timer.addTimer( this.singleClickDelegate, 300 );
+	                    } else {
+	                        this.singleClickStarted = true;
+	                        lz.Timer.addTimer( this.resetClickDelegate, 300 );
+	                    }
+	                }
+	        	}
+			}
+			
+			if (setSelection) this.refObjListRoot.selectItem(this);
+		]]>
+	</method>
+	
+	<method name="selectItem">
+		this.selected = true;
+		this._fileName.setAttribute("bgcolor",canvas.getThemeColor('baseMousecolorizer'));
+	</method>
+	
+	<method name="deselectItem">
+		this.selected = false;
+		if (this["_fileName"]) {
+            this._fileName.setAttribute("bgcolor",canvas.getThemeColor('mainBackgroundColor'));
+        } else {
+            if ($debug) Debug.warn("deselectItem:: _fileName is NULL ",this);
+        }
+    </method>
+	
+	<method name="clearContent">
+        <![CDATA[
+            for (var eg in this.content.subviews) {
+                this.content.subviews[eg].destroy();
+            }
+        ]]>
+    </method>
+    
+    <method name="loadFiles">
+    	<![CDATA[
+            //this.getFileExplorerByRoom.doCall();
+            var downloadurl = canvas.getUrl()+'services/FileService/getFileExplorerByParentSelfInternal?'
+                            +'SID='+canvas.sessionId
+                            +'&parentFileExplorerItemId='+this.fileExplorerItemId
+                            +'&roomId='+hib.currentroomid
+                            +'&isOwner='+this.isOwner;
+            
+            this.getFileExplorerByParentSelf.setAttribute("src",downloadurl);
+            if ($debug) Debug.write("getFileExplorerByParentSelf doRequest ",downloadurl);
+            this.getFileExplorerByParentSelf.doRequest();
+        ]]>
+    </method>
+    
+    <dataset name="getFileExplorerByParentSelf" type="http" >
+        <handler name="ondata" args="d">
+            <![CDATA[
+                //if ($debug) Debug.write("ondata ",d);
+                parent.renderFilesAndFolders(canvas.currentFileExplorer.parseParentToRoomObject(d));
+            ]]>
+        </handler>
+    </dataset>
+    
+    <!--
+        parent.parseRootItems(canvas.currentFileExplorer.parseToRoomObject(d));
+	 -->
+	<!--
+	   public List<FileExplorerItem> getFileExplorerByParent(String SID, Long parentFileExplorerItemId, 
+	               Long room_id, Boolean isOwner) {
+	<netRemoteCallHib name="getFileExplorerByParent" funcname="fileservice.getFileExplorerByParent" 
+        remotecontext="$once{ canvas.thishib }" >   
+        <netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+        <netparam><method name="getValue">return parent.parent.fileExplorerItemId;</method></netparam>  
+        <netparam><method name="getValue">return hib.currentroomid;</method></netparam>  
+        <netparam><method name="getValue">return parent.parent.isOwner;</method></netparam>         
+        <handler name="ondata" args="value">    
+            if ($debug) Debug.write("getFileExplorerByParent: ",value);
+            parent.renderFilesAndFolders(value);
+        </handler>
+    </netRemoteCallHib> 
+     --> 
+    
+    <method name="renderFilesAndFolders" args="roomHome">
+        <![CDATA[
+            this.clearContent();
+            
+            // Folder area
+            for (var i=0; i<roomHome.length; i++) {
+                var fileExplorerItem = roomHome[i];
+                if (fileExplorerItem.isFolder) {
+                    new lz.folderFileExplorerItem(this.content,{
+                                            fileName:fileExplorerItem.fileName,
+                                            fileExplorerItemId:fileExplorerItem.fileExplorerItemId,
+                                            fileIcon:'icon_folder_rsc',
+                                            refObjListRoot:this.refObjListRoot
+                                        });
+                } else if (fileExplorerItem.isImage) {
+                    new lz.imageFileExplorerItem(this.content,{
+                                            isFolder:false,
+                                            fileExplorerItemId:fileExplorerItem.fileExplorerItemId,
+                                            fileName:fileExplorerItem.fileName,
+                                            fileHash:fileExplorerItem.fileHash,
+                                            isFolder:false,isImage:true,
+                                            fileIcon:'file_explorer_image_rsc',
+                                            refObjListRoot:this.refObjListRoot
+                                        });
+                } else if (fileExplorerItem.isPresentation) {
+                    new lz.documentFileExplorerItem(this.content,{
+                                            isFolder:false,
+                                            fileExplorerItemId:fileExplorerItem.fileExplorerItemId,
+                                            fileName:fileExplorerItem.fileName,
+                                            fileHash:fileExplorerItem.fileHash,
+                                            isFolder:false,isPresentation:true,
+                                            fileIcon:'file_explorer_document_rsc',
+                                            refObjListRoot:this.refObjListRoot
+                                        });
+                } else if (fileExplorerItem.isVideo) {
+                    new lz.videoFileExplorerItem(this.content,{
+                                            isFolder:false,
+                                            isVideo:true,
+                                            fileExplorerItemId:fileExplorerItem.fileExplorerItemId,
+                                            fileName:fileExplorerItem.fileName,
+                                            fileHash:fileExplorerItem.fileHash,
+                                            isFolder:false,isImage:true,
+                                            fileIcon:'file_explorer_video_rsc',
+                                            flvHeight:fileExplorerItem.flvHeight,
+                                            flvWidth:fileExplorerItem.flvWidth,
+                                            refObjListRoot:this.refObjListRoot
+                                        });
+                } else if (fileExplorerItem.isStoredWmlFile) { 
+                	new lz.wmlFileExplorerItem(this.content,{
+                                            isFolder:false,
+                                            fileExplorerItemId:fileExplorerItem.fileExplorerItemId,
+                                            fileName:fileExplorerItem.fileName,
+                                            fileIcon:'file_explorer_wml_rsc',
+                                            isWmlFile: true,
+                                            refObjListRoot:this.refObjListRoot                	
+            							});
+                } else if (fileExplorerItem.isChart) { 
+                	new lz.chartFileExplorerItem(this.content,{
+                                            isFolder:false,
+                                            fileExplorerItemId:fileExplorerItem.fileExplorerItemId,
+                                            fileName:fileExplorerItem.fileName,
+                                            fileIcon:'file_explorer_chart_rsc',
+                                            refObjListRoot:this.refObjListRoot                	
+            							});
+
+            	}
+            }
+        ]]>
+    </method>
+    
+	
+	<view name="icon_folder_pre" 
+		  visibility="$once{ (parent.isFolder) ? 'visible' : 'hidden' }"
+		  resource="icon_folder_pre_rsc" frame="1" >
+		<handler name="onclick">
+			parent.toggleOpen(false);
+		</handler>
+	</view>
+	
+	<view name="_folderIcon" resource="$once{ parent.fileIcon }" x="16" y="2" >
+		<handler name="onmousedown">
+			if (parent.isRoot) {
+                return;
+            }
+            lz.Timer.addTimer( parent.mouseDownClickDelegate, 300 );
+        </handler>
+        <handler name="onmouseup">
+        	if (parent.isRoot) {
+                return;
+            }
+            lz.Timer.removeTimer( parent.mouseDownClickDelegate );
+        </handler>
+		<handler name="onclick">
+			parent.toggleOpen(false);
+		</handler>
+	</view>
+	
+</class>
+
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/chartFileExplorerItem.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/chartFileExplorerItem.lzx
new file mode 100644
index 0000000..bd2d17f
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/chartFileExplorerItem.lzx
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+  <class name="chartFileExplorerItem" extends="baseFileExplorerItem"
+    isFolder="true">
+
+    <attribute name="isChartFile" type="boolean" value="true" />
+
+    <text name="_fileName" x="36" text="${ parent.fileName }"
+      fontsize="10" resize="true" y="1">
+      <contextmenu>
+
+        <contextmenuitem caption="$once{ canvas.getLabelName(711) }"
+          onselect="parent.parent.parent.editFolderName()" />
+
+        <contextmenuitem caption="$once{ canvas.getLabelName(708) }"
+          separatorbefore="true" onselect="parent.parent.parent.addFile()" />
+
+        <contextmenuitem caption="$once{ canvas.getLabelName(709) }"
+          onselect="parent.parent.parent.addFolder()" />
+
+        <contextmenuitem caption="$once{ canvas.getLabelName(710) }"
+          onselect="parent.parent.parent.deleteFile(719)" />
+
+        <contextmenuitem caption="$once{ canvas.getLabelName(1314) }"
+          onselect="parent.parent.parent.loadChart()" />
+
+      </contextmenu>
+
+      <handler name="onmousetrackover">
+        Debug.write("onmousetrackover");
+        canvas.currentImagesListdraw.currentDragItem.sendOverItem(parent);
+        this.setAttribute("bgcolor",0x93FE92);
+      </handler>
+
+      <handler name="onmousetrackout">
+        Debug.write("onmousetrackout");
+        canvas.currentImagesListdraw.currentDragItem.sendOutItem(parent);
+        this.setAttribute("bgcolor",canvas.getThemeColor('mainBackgroundColor'));
+      </handler>
+
+      <handler name="onmousetrackup">
+        if ($debug) Debug.write("onmousetrackup");
+        this.setAttribute("bgcolor",canvas.getThemeColor('mainBackgroundColor'));
+      </handler>
+
+      <handler name="onmousedown">
+        if (parent.isRoot) {
+          return;
+        }
+        lz.Timer.addTimer(parent.mouseDownClickDelegate, 300);
+      </handler>
+      <handler name="onmouseup">
+        if (parent.isRoot) {
+          return;
+        }
+        lz.Timer.removeTimer( parent.mouseDownClickDelegate );
+      </handler>
+      <handler name="onclick">
+        parent.toggleOpen(true);
+      </handler>
+    </text>
+
+    <view name="content" x="12" y="18" layout="axis:y;inset:1"
+      visibility="hidden">
+    </view>
+  </class>
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/documentFileExplorerItem.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/documentFileExplorerItem.lzx
new file mode 100644
index 0000000..199c296
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/documentFileExplorerItem.lzx
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+ 
+<class name="documentFileExplorerItem" extends="baseFileExplorerItem" isFolder="true">
+	
+	<method name="formatURL" args="filename">
+        <![CDATA[
+            var uploadmoduleimgfolderVar = '/' + this.fileHash;
+            var downloadurl = canvas.getUrl()+'DownloadHandler?' +
+                'fileName=' + encodeURIComponent(this.fileHash + ".swf") +
+                '&moduleName=' + 'videoconf1' + 
+                '&parentPath=' + encodeURIComponent(uploadmoduleimgfolderVar + '/' )+
+                '&room_id=files'+ 
+                '&sid='+canvas.sessionId;
+            ////Debug.write("downloadurl: ",downloadurl);
+            return downloadurl;
+        ]]>
+    </method>    
+    
+	<method name="loadDocumentToWhiteboard">
+		if (canvas.ismoderator || canvas.isAllowedToDraw) {
+    		var uploadmoduleimgfolderVar = '/' + this.fileHash;
+            
+            if ($debug) Debug.write("loadDocumentToWhiteboard ",this.fileName);
+            
+    		canvas._drawarea.loadSWFPresentationSynced(this.formatURL(this.fileHash),this.fileHash + ".swf",
+    		              "videoconf1",uploadmoduleimgfolderVar,"files",hib.conferencedomain,1,
+                          this.fileName);
+		} else {
+			new lz.errorModeratorPopup(canvas,{error:canvas.getLabelName(721)});
+		}
+	</method>
+	
+	<text name="_fileName" x="36" text="${ parent.fileName }" fontsize="10" resize="true" y="1">
+		<contextmenu>
+			
+			<contextmenuitem caption="$once{ canvas.getLabelName(711) }" 
+							 onselect="parent.parent.parent.editFolderName()" />
+			
+            <!--	
+            //Load File To Whiteboard missing	
+             -->	 
+			<contextmenuitem name="_openDocument"
+				             caption="$once{ canvas.getLabelName(716) }" 
+							 separatorbefore="true"
+                             onselect="parent.parent.parent.loadDocument()" />
+            				 
+            <contextmenuitem caption="$once{ canvas.getLabelName(719) }" 
+            				 onselect="parent.parent.parent.deleteFile(719)" />
+            				 
+        </contextmenu>
+        
+        <handler name="onmousedown">
+        	if (parent.isRoot) {
+                return;
+            }
+            lz.Timer.addTimer( parent.mouseDownClickDelegate, 300 );
+        </handler>
+        <handler name="onmouseup">
+        	if (parent.isRoot) {
+                return;
+            }
+            lz.Timer.removeTimer( parent.mouseDownClickDelegate );
+        </handler>
+		<handler name="onclick">
+            parent.toggleOpen(true);
+        </handler>
+	</text>
+	
+
+</class>
+
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/folderFileExplorerItem.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/folderFileExplorerItem.lzx
new file mode 100644
index 0000000..4973ecc
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/folderFileExplorerItem.lzx
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="folderFileExplorerItem" extends="baseFileExplorerItem" isFolder="true">
+	
+	<text name="_fileName" x="36" text="${ parent.fileName }" fontsize="10" resize="true" y="1">
+		<contextmenu>
+			
+			<contextmenuitem caption="$once{ canvas.getLabelName(711) }" 
+							 onselect="parent.parent.parent.editFolderName()" />
+			
+            <contextmenuitem caption="$once{ canvas.getLabelName(708) }" 
+            				 separatorbefore="true"
+            				 onselect="parent.parent.parent.addFile()" />
+            				 
+            <contextmenuitem caption="$once{ canvas.getLabelName(709) }" 
+            				 onselect="parent.parent.parent.addFolder()" />
+            				 
+            <contextmenuitem caption="$once{ canvas.getLabelName(710) }" 
+            				 onselect="parent.parent.parent.deleteFile(719)" />
+            				 
+        </contextmenu>
+        
+        <handler name="onmousetrackover">
+            //if ($debug) Debug.write("onmousetrackover");
+            canvas.currentImagesListdraw.currentDragItem.sendOverItem(parent);
+            this.setAttribute("bgcolor",0x93FE92);
+        </handler>
+        
+        <handler name="onmousetrackout">
+            //if ($debug) Debug.write("onmousetrackout");
+            canvas.currentImagesListdraw.currentDragItem.sendOutItem(parent);
+            this.setAttribute("bgcolor",canvas.getThemeColor('mainBackgroundColor'));
+        </handler>
+        
+        <handler name="onmousetrackup">
+            if ($debug) Debug.write("onmousetrackup");
+            this.setAttribute("bgcolor",canvas.getThemeColor('mainBackgroundColor'));
+        </handler> 
+        
+        <handler name="onmousedown">
+        	if (parent.isRoot) {
+                return;
+            }
+            lz.Timer.addTimer( parent.mouseDownClickDelegate, 300 );
+        </handler>
+        <handler name="onmouseup">
+        	if (parent.isRoot) {
+                return;
+            }
+            lz.Timer.removeTimer( parent.mouseDownClickDelegate );
+        </handler>
+		<handler name="onclick">
+            parent.toggleOpen(true);
+        </handler>
+	</text>
+	
+	<view name="content" x="12" y="18" layout="axis:y;inset:1" visibility="hidden">
+		
+	</view>
+</class>
+
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/imageFileExplorerItem.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/imageFileExplorerItem.lzx
new file mode 100644
index 0000000..3533e9b
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/imageFileExplorerItem.lzx
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="imageFileExplorerItem" extends="baseFileExplorerItem" isFolder="true">
+	
+    <method name="generateFileLink">
+        <![CDATA[
+            return canvas.getUrl()+'DownloadHandler?' +
+            		'fileName='+ this.fileHash + 
+                    '&moduleName='+ "videoconf1" +
+                    '&parentPath='+ '/' +
+                    '&room_id=files' +
+                    '&sid='+canvas.sessionId;
+        ]]>
+    </method>
+    
+	<method name="loadImageToWhiteboard">
+		if (canvas.ismoderator || canvas.isAllowedToDraw) {
+    		var mouse_x = canvas._drawarea.getMouse("x");
+    		var mouse_y = canvas._drawarea.getMouse("y");
+    		canvas._drawarea.parent.parent.clearAreaAndAddImage(this.generateFileLink(),mouse_x,mouse_y,
+    		          canvas.getUrl()+'DownloadHandler',
+    		          this.fileHash,"videoconf1","/","files",hib.conferencedomain);
+		} else {
+            new lz.errorModeratorPopup(canvas,{error:canvas.getLabelName(721)});
+        }
+	</method>
+	
+	<text name="_fileName" x="36" text="${ parent.fileName }" fontsize="10" resize="true" y="1">
+		<contextmenu>
+			
+			<contextmenuitem caption="$once{ canvas.getLabelName(711) }" 
+							 onselect="parent.parent.parent.editFolderName()" />
+			
+            <contextmenuitem caption="$once{ canvas.getLabelName(719) }" 
+            				 onselect="parent.parent.parent.deleteFile(719)" />
+            				 
+        </contextmenu>
+        
+        <handler name="onmousedown">
+        	if (parent.isRoot) {
+                return;
+            }
+            lz.Timer.addTimer( parent.mouseDownClickDelegate, 300 );
+        </handler>
+        <handler name="onmouseup">
+        	if (parent.isRoot) {
+                return;
+            }
+            lz.Timer.removeTimer( parent.mouseDownClickDelegate );
+        </handler>
+		<handler name="onclick">
+            parent.toggleOpen(true);
+        </handler>
+	</text>
+	
+
+</class>
+
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/library.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/library.lzx
new file mode 100644
index 0000000..ad858e9
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/library.lzx
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+    <include href="baseFileExplorerItem.lzx" />
+    <include href="folderFileExplorerItem.lzx" />
+    <include href="imageFileExplorerItem.lzx" />
+    <include href="videoFileExplorerItem.lzx" />
+    <include href="documentFileExplorerItem.lzx" />
+    <include href="rootFileExplorerItem.lzx" />
+    <include href="wmlFileExplorerItem.lzx" />
+    
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/rootFileExplorerItem.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/rootFileExplorerItem.lzx
new file mode 100644
index 0000000..4ecb0ef
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/rootFileExplorerItem.lzx
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="rootFileExplorerItem" extends="baseFileExplorerItem" isFolder="true" isRoot="true">
+	
+	<text name="_fileName" x="36" text="${ parent.fileName }" fontsize="10" resize="true" y="1">
+		<contextmenu>
+                              				 
+            <contextmenuitem caption="$once{ canvas.getLabelName(708) }" 
+            				 separatorbefore="true"
+            				 onselect="parent.parent.parent.addFile()" />
+            				 
+            <contextmenuitem caption="$once{ canvas.getLabelName(709) }" 
+            				 onselect="parent.parent.parent.addFolder()" />
+            				 
+        </contextmenu>
+        
+        <handler name="onmousetrackover">
+            //if ($debug) Debug.write("onmousetrackover");
+            canvas.currentImagesListdraw.currentDragItem.sendOverItem(parent);
+            this.setAttribute("bgcolor",0x93FE92);
+        </handler>
+        
+        <handler name="onmousetrackout">
+            //if ($debug) Debug.write("onmousetrackout");
+            canvas.currentImagesListdraw.currentDragItem.sendOutItem(parent);
+            this.setAttribute("bgcolor",canvas.getThemeColor('mainBackgroundColor'));
+        </handler>
+        
+        <handler name="onmousetrackup">
+            if ($debug) Debug.write("onmousetrackup");
+            this.setAttribute("bgcolor",canvas.getThemeColor('mainBackgroundColor'));
+        </handler> 
+        
+		<handler name="onclick">
+            parent.toggleOpen(true);
+        </handler>
+	</text>
+	
+	<view name="content" x="12" y="18" layout="axis:y;inset:1" visibility="hidden">
+		
+	</view>
+</class>
+
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/videoFileExplorerItem.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/videoFileExplorerItem.lzx
new file mode 100644
index 0000000..72586d3
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/videoFileExplorerItem.lzx
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="videoFileExplorerItem" extends="baseFileExplorerItem" isFolder="true" isVideo="true">
+	
+    <method name="generateFileLink">
+        <![CDATA[
+            return canvas.getUrl()+'DownloadHandler?' +
+            		'fileName='+ this.fileHash + 
+                    '&moduleName='+ "videoconf1" +
+                    '&parentPath='+ '/' +
+                    '&room_id=files' +
+                    '&sid='+canvas.sessionId;
+        ]]>
+    </method>
+    
+	<method name="loadImageToWhiteboard">
+		if (canvas.ismoderator || canvas.isAllowedToDraw) {
+    		var mouse_x = canvas._drawarea.getMouse("x");
+    		var mouse_y = canvas._drawarea.getMouse("y");
+    		canvas._drawarea.parent.parent.clearAreaAndAddImage(this.generateFileLink(),mouse_x,mouse_y,
+    		          canvas.getUrl()+'DownloadHandler',
+    		          this.fileHash,"videoconf1","/","files",hib.conferencedomain);
+		} else {
+            new lz.errorModeratorPopup(canvas,{error:canvas.getLabelName(721)});
+        }
+	</method>
+	
+	<text name="_fileName" x="36" text="${ parent.fileName }" fontsize="10" resize="true" y="1">
+		<contextmenu>
+			
+			<contextmenuitem caption="$once{ canvas.getLabelName(1358) }" 
+							 onselect="parent.parent.parent.playVideo()" />
+			
+			<contextmenuitem caption="$once{ canvas.getLabelName(711) }" 
+							 onselect="parent.parent.parent.editFolderName()" />
+			
+            <contextmenuitem caption="$once{ canvas.getLabelName(719) }" 
+            				 onselect="parent.parent.parent.deleteFile(719)" />
+            				 
+        </contextmenu>
+        
+        <handler name="onmousedown">
+        	if (parent.isRoot) {
+                return;
+            }
+            lz.Timer.addTimer( parent.mouseDownClickDelegate, 300 );
+        </handler>
+        <handler name="onmouseup">
+        	if (parent.isRoot) {
+                return;
+            }
+            lz.Timer.removeTimer( parent.mouseDownClickDelegate );
+        </handler>
+		<handler name="onclick">
+            parent.toggleOpen(true);
+        </handler>
+	</text>
+	
+
+</class>
+
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/wmlFileExplorerItem.lzx b/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/wmlFileExplorerItem.lzx
new file mode 100644
index 0000000..4cf5907
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/fileexplorer/treeitems/wmlFileExplorerItem.lzx
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="wmlFileExplorerItem" extends="baseFileExplorerItem" isFolder="true">
+	
+	<attribute name="isWmlFile" type="boolean" value="true"/>
+	
+	<text name="_fileName" x="36" text="${ parent.fileName }" fontsize="10" resize="true" y="1">
+		<contextmenu>
+			
+			<contextmenuitem caption="$once{ canvas.getLabelName(711) }" 
+							 onselect="parent.parent.parent.editFolderName()" />
+			
+            <contextmenuitem caption="$once{ canvas.getLabelName(719) }" 
+            				 onselect="parent.parent.parent.deleteFile(719)" />
+            	
+            			 
+			<contextmenuitem caption="$once{ canvas.getLabelName(1314) }" 
+							 onselect="parent.parent.parent.loadWmlFile()" />
+            				 
+        </contextmenu>
+        
+        <handler name="onmousetrackover">
+            //if ($debug) Debug.write("onmousetrackover");
+            canvas.currentImagesListdraw.currentDragItem.sendOverItem(parent);
+            this.setAttribute("bgcolor",0x93FE92);
+        </handler>
+        
+        <handler name="onmousetrackout">
+            //if ($debug) Debug.write("onmousetrackout");
+            canvas.currentImagesListdraw.currentDragItem.sendOutItem(parent);
+            this.setAttribute("bgcolor",canvas.getThemeColor('mainBackgroundColor'));
+        </handler>
+        
+        <handler name="onmousetrackup">
+            if ($debug) Debug.write("onmousetrackup");
+            this.setAttribute("bgcolor",canvas.getThemeColor('mainBackgroundColor'));
+        </handler> 
+        
+        <handler name="onmousedown">
+        	if (parent.isRoot) {
+                return;
+            }
+            lz.Timer.addTimer( parent.mouseDownClickDelegate, 300 );
+        </handler>
+        <handler name="onmouseup">
+        	if (parent.isRoot) {
+                return;
+            }
+            lz.Timer.removeTimer( parent.mouseDownClickDelegate );
+        </handler>
+		<handler name="onclick">
+            parent.toggleOpen(true);
+        </handler>
+	</text>
+	
+	<view name="content" x="12" y="18" layout="axis:y;inset:1" visibility="hidden">
+		
+	</view>
+</class>
+
+
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/library.lzx b/WebContent/src/modules/conference/tabcontent/library.lzx
new file mode 100644
index 0000000..edee094
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/library.lzx
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<!-- FamFam Icon Set -->
+	<resource name="messagebox_info_rsc" src="resources/information.png" />
+	<!-- FamFam Icon Set -->
+	<resource name="_filesave_icon_pdf_rsc" src="resources/page_white_acrobat.png" />
+	<!-- APL Author sebawagner -->
+	<resource name="_filesave_icon_original_rsc" src="resources/download.png" />
+
+	<include href="fileexplorer/"/>
+	<include href="chat/" />
+    
+</library>
diff --git a/WebContent/src/modules/conference/tabcontent/resources/download.png b/WebContent/src/modules/conference/tabcontent/resources/download.png
new file mode 100644
index 0000000..0c9013e
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/resources/download.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/resources/information.png b/WebContent/src/modules/conference/tabcontent/resources/information.png
new file mode 100644
index 0000000..12cd1ae
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/resources/information.png
Binary files differ
diff --git a/WebContent/src/modules/conference/tabcontent/resources/page_white_acrobat.png b/WebContent/src/modules/conference/tabcontent/resources/page_white_acrobat.png
new file mode 100644
index 0000000..8f8095e
--- /dev/null
+++ b/WebContent/src/modules/conference/tabcontent/resources/page_white_acrobat.png
Binary files differ
diff --git a/WebContent/src/modules/conference/testsetup/library.lzx b/WebContent/src/modules/conference/testsetup/library.lzx
new file mode 100644
index 0000000..93469dd
--- /dev/null
+++ b/WebContent/src/modules/conference/testsetup/library.lzx
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+    <include href="testSetup.lzx" />
+    
+</library>
diff --git a/WebContent/src/modules/conference/testsetup/testSetup.lzx b/WebContent/src/modules/conference/testsetup/testSetup.lzx
new file mode 100644
index 0000000..4f8b109
--- /dev/null
+++ b/WebContent/src/modules/conference/testsetup/testSetup.lzx
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<!-- 
+#########################################
+
+Test the setup values before you enter a room => is moved to the SWF10 app
+
+The only thing remaining here to do, is to load the correct server 
+RTMP-host, RTMP/RTMPT-port for the session
+
+ -->
+ 
+<class name="testSetup" extends="view" 
+    x="$once{ parent.width/2 - 300 }" y="100" 
+    width="600" height="400">
+
+    <attribute name="roomClassName" type="string" value="" />
+    
+    <attribute name="roomObj" value="null"/>
+    
+    <attribute name="forceTest" value="false" type="boolean" />
+    
+    <attribute name="isDirectLink" value="false" type="boolean" />
+    
+    <!--- @keywords private if doJustClose is true the confirmation will be wait and 
+    then the window just closed -->
+    <attribute name="doJustClose" value="false" type="boolean" />
+    
+    <handler name="oninit">
+    	<![CDATA[
+            this.getServerForSession.doCall();
+    	]]>
+    </handler>
+    
+    <!-- 
+    public Server getServerForSession(String SID, long roomId)
+     -->
+   	<netRemoteCallHib name="getServerForSession" funcname="conferenceservice.getServerForSession" remotecontext="$once{ canvas.thishib }" >      
+		<netparam><method name="getValue"> return canvas.sessionId; </method></netparam>
+		<netparam><method name="getValue"> return parent.parent.roomObj.rooms_id; </method></netparam>
+		<handler name="ondata" args="value">
+			if ($debug) Debug.write("getServerForSession ",value);
+			//if return value is null, everything stays the same, session is on the current host
+			if (value != null){
+				//is not loaded from public/config.xml from slave as this is variable is empty by default!
+				canvas.slaveRtmphostlocal = value.address;
+				
+				var slaveUrl = value.protocol + "://" + value.address + ":" + value.port + "/" + value.webapp + "/";
+				
+				var d = new Date();
+		        parent.myConfigSet.setAttribute("src", slaveUrl + "public/config.xml?random="+d.getTime());
+		        parent.myConfigSet.doRequest();
+				
+			} else {
+				//Hosted on master
+				canvas.isSlaveHosted = false;
+				this.parent.startConference();
+			}
+		</handler>
+	</netRemoteCallHib>	
+	
+	<!-- get values from public/config.xml from slave -->
+	<dataset type="http" name="myConfigSet" request="false" ondata="parent.parseResultsToSlaveClusterConfig()">
+	    <handler name="ondata">
+	        if ($debug) Debug.write("ondata");
+	    </handler>
+	    <handler name="onerror" args="e">
+	        if ($debug) Debug.write("onerror",e);
+	    </handler>
+	    <handler name="ontimeout" args="e">
+	        if ($debug) Debug.write("ontimeout",e);
+	    </handler>
+	</dataset>
+	
+	<!-- 
+		Parse the results so that the RTMP traffic points to the slave
+		and the HTTP traffic points to the master
+	 -->
+	<method name="parseResultsToSlaveClusterConfig">
+		
+        canvas.slaveRtmpport = Number(this.myConfigSet.getPointer().xpathQuery('config/rtmpport/text()'));  
+        canvas.slaveRtmpsslport = Number(this.myConfigSet.getPointer().xpathQuery('config/rtmpsslport/text()')); 
+        canvas.slaveWebAppRootKey = this.myConfigSet.getPointer().xpathQuery('config/webAppRootKey/text()'); 
+		
+		if ($debug) Debug.write("parseResults: ",canvas.slaveRtmphostlocal,canvas.slaveRtmpport,canvas.slaveRtmpsslport,canvas.slaveWebAppRootKey);
+		
+		//Hosted on slave
+		canvas.isSlaveHosted = true;
+		this.startConference();
+	</method>
+    
+    <method name="startConference">
+    	<![CDATA[
+            clearStageContent();
+            if ($debug) Debug.warn("roomClassname : ", this.roomClassName);
+            if ($debug) Debug.warn("canvas.currentRoomObj will be : ", this.roomObj);
+            canvas.currentRoomObj = this.roomObj;
+            
+            new lz[this.roomClassName](canvas.main_content._content.inner, {
+                        roomobj:this.roomObj
+                    });
+    	
+            this.destroy();
+    	]]>
+    </method>
+
+</class>
+
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/baseDraw.lzx b/WebContent/src/modules/conference/whiteboard/base/baseDraw.lzx
new file mode 100644
index 0000000..f67e084
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/baseDraw.lzx
@@ -0,0 +1,1515 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="baseDraw" extends="view" >
+
+	<attribute name="currentlayer" value="null" />
+	<attribute name="layers" value="null" />
+	
+	<attribute name="redolayers" value="null" />
+
+  	<attribute name="mx" type="number" value="0"/>
+  	<attribute name="my" type="number" value="0"/>
+  	<attribute name="prevx" type="number" value="0"/>
+  	<attribute name="prevy" type="number" value="0"/>
+  	
+  	<!--- If true it will try to load the ObjectIdentifier Extension from the Server -->
+  	<attribute name="isRemoteOID" value="false" type="boolean" />
+  	
+  	<attribute name="startx" value="0" type="number" />
+  	<attribute name="starty" value="0" type="number" />
+  	<attribute name="endx" value="0" type="number" />
+  	<attribute name="endy" value="0" type="number" />
+  	
+  	<attribute name="restricted" value="false" type="boolean"/>
+  	
+  	<!-- This Counter just adds, it dosen't shows the absolute number of items
+  		(ask this.layers.length to get the number of drawings) -->
+  	<attribute name="counter" value="0" type="number" />
+  	
+  	<event name="onupdateScale" />
+  	
+  	<attribute name="showGrid" type="boolean" value="false"/>
+  	<attribute name="isSnapToGrid" type="boolean" value="false"/>
+	<attribute name="gridWidth" value="24" type="number" />
+	
+	<attribute name="copyObject" value="null"/>
+	<attribute name="selectedObjects" value="null"/>
+	
+	<attribute name="ObjectByName" value="null" />
+
+  	<method name="getCounter">
+		//Debug.write("### getCounter :",this.counter);
+		var now = new Date();
+		return "_"+now.getTime();
+  	</method>
+  	
+  	<!--
+  	 not needed anymore, Issue 507
+    <netRemoteCallHib name="getOID" funcname="getOID" showLoading="false"
+    				  remotecontext="$once{ canvas.thishib }" > 
+        <handler name="ondata" args="value">
+            <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                if($debug) Debug.write("getOID: ",value);
+                parent.counter = value;
+            ]]>
+        </handler>   
+    </netRemoteCallHib>     
+     -->
+	
+	<method name="compareAndSetCounter" args="c">
+		<![CDATA[
+			if (c>this.counter) this.counter = c;
+		]]>
+	</method>
+  	
+	<attribute name="mousetracker_del" value="$once{ new LzDelegate(this, 'trackmouse' )}" />
+	
+	<!-- 
+	This is the very basic decision what to do
+	the modus pointer is only  a temp modus which is inited while draging
+	a new selected object
+	 -->
+	<attribute name="drawmodus" value="hand" type="string" />
+	
+	<!-- This List holds all ActionObject
+		currently paintings
+				  letters -->
+	<attribute name="baseactionobjectList" value="null" />
+	<attribute name="baseredoactionobjectList" value="null" />
+	
+	<!-- This List hold a reference to all 
+		Array of Drawing Action, it is needed for coping the view and undo/redo -->
+	<attribute name="basetempactionobjectList" value="null" />
+	
+	<attribute name="basdrawredoView" value="null" />
+	
+	<attribute name="hasprevious" value="false" type="boolean" />
+	<attribute name="hasenext" value="false" type="boolean" />
+	
+	<attribute name="doClearAll" value="false" type="boolean" />
+	<attribute name="doClearSlide" value="false" type="boolean" />
+	
+	<!-- For the dragging resizeing there is a bounding box -->
+	<attribute name="boundingIsActive" value="false" type="boolean" />
+	<attribute name="boundingref" value="null" />
+	
+	<!-- For sending messages in shared modus -->
+	<method name="onsharedMessage" args="action,obj" />
+	
+	<!-- this event must be triggered AFTER
+		the nesseccary room + domain for this conferenceView is set
+		-->
+	<event name="onopenWhiteBoard" />
+	
+	<attribute name="isDragging" value="false" type="boolean"/>
+	
+	<attribute name="last_x" value="0" type="number" />
+	<attribute name="last_y" value="0" type="number" />
+	
+	<!-- ############
+		init
+	 -->
+	<handler name="oninit">
+		if (this.isRemoteOID){
+            //wrong reference, swagner 20.09.2008
+			//this.getOID.doCall();
+		}
+        //Debug.write("********** this oninit: ",this);
+		this.basdrawredoView = new LzView(canvas,{visible:false,y:440});
+		this.layers = new Array();
+		this.last_x = this.x;
+		this.last_y = this.y;
+		this.redolayers = new Array();
+		this.baseactionobjectList = new Array();
+		this.baseredoactionobjectList = new Array();
+	</handler>
+      
+    <method name="clearSlideOnly">
+    	<![CDATA[
+            
+            var itemsToDelete = this.getCurrentSlideAnnotations();
+            
+            this.onsharedMessage('clearSlide',itemsToDelete); 
+            
+            this.clearSlideRemote(itemsToDelete);
+        ]]>
+    </method>  
+            
+	<method name="clearAll">
+		<![CDATA[
+			this.onsharedMessage('clear',null);	
+			this.clearRemote();
+		]]>
+	</method>
+	
+	<method name="getCurrentSlideAnnotations">
+		<![CDATA[
+		
+		    var currentSlideNumber = -1;
+		
+            for (var i=0;i<this.baseactionobjectList.length;i++) {
+            	
+            	if (this.baseactionobjectList[i][0] == "swf") {
+            		currentSlideNumber = this.baseactionobjectList[i][8];
+            		break;
+            	}
+            	
+            }
+            
+            var itemsToDelete = new Array();
+            
+            for (var i=0;i<this.baseactionobjectList.length;i++) {
+            	
+            	if (this.baseactionobjectList[i][0] == "ellipse" 
+                        || this.baseactionobjectList[i][0] == "drawarrow"
+                        || this.baseactionobjectList[i][0] == "line"
+                        || this.baseactionobjectList[i][0] == "paint"
+                        || this.baseactionobjectList[i][0] == "rectangle"
+                        || this.baseactionobjectList[i][0] == "uline"
+                        || this.baseactionobjectList[i][0] == "image"
+                        || this.baseactionobjectList[i][0] == "clipart"
+                        || this.baseactionobjectList[i][0] == "letter") {
+                        	
+                	var swfObj = this.baseactionobjectList[i][this.baseactionobjectList[i].length-7];
+                	
+                	if (swfObj.slide == currentSlideNumber) {
+                		itemsToDelete.push(this.baseactionobjectList[i][this.baseactionobjectList[i].length-1]);
+                	}
+                	
+                }
+            	
+            }
+            
+            return itemsToDelete;
+		]]>
+	</method>
+	
+	<method name="clearSlideRemote" args="itemsToDelete">
+        <![CDATA[
+        
+            var indexOfItemsToDelete = new Array();
+        
+            for (var i=0;i<this.baseactionobjectList.length;i++) {
+                
+            	
+            	for (var k=0;k<itemsToDelete.length;k++) {
+            	
+                    if (this.baseactionobjectList[i][this.baseactionobjectList[i].length-1] == itemsToDelete[k]) {
+                                
+                        indexOfItemsToDelete.push(i);
+                        
+                    }
+                
+            	}
+                
+            }
+            
+            for (var i=indexOfItemsToDelete.length-1;i>=0;i--) {
+                
+                var itemToDelete = this.baseactionobjectList[indexOfItemsToDelete[i]];
+                
+                var refObj = this.getObjectByName(itemToDelete[itemToDelete.length-1]);
+                
+                refObj.destroy();
+                
+                this.baseactionobjectList.splice(indexOfItemsToDelete[i],1);
+                
+            }   
+        ]]>
+    </method>        
+	
+	<method name="clearRemote">
+        <![CDATA[
+        
+            if (this.boundingref!=null) this.boundingref.removeIt();
+            while (this.subviews.length > 1) {
+                this.subviews[1].prepareForDelete.sendEvent();
+                this.subviews[1].destroy();
+            }
+            while (this.basdrawredoView.subviews.length > 0) {
+                this.basdrawredoView.subviews[0].destroy();
+            }   
+            
+            this.setAttribute("x",0);
+            this.setAttribute("y",0);
+            
+            this.getDisplayObject()._xscale = 100;
+            this.getDisplayObject()._yscale = 100;
+            
+            this.onupdateScale.sendEvent(null);
+            
+            parent.parent.zoombox.setWhiteboardValues(true,100);
+            
+            this.layers = new Array();
+            this.redolayers = new Array();
+            this.baseactionobjectList = new Array();
+            this.baseredoactionobjectList = new Array();    
+            this.checkStepLayers(); 
+            this.clearDocumentsBar();
+        ]]>
+    </method>
+	
+	<method name="doAction" args="modi">
+		if (modi=='saveobj'){
+			if (this.sendObject) this.sendObject.sendEvent();
+		} else if (modi=='loadobj'){
+		
+		}
+	</method>
+	
+	<method name="setModusWithUpdate" args="modi">
+		var paintToolBar = this.getPaintToolBar();
+		paintToolBar.updateToolSelection(modi);
+		this.setModus(modi);
+	</method>
+	
+	<method name="setModus" args="modi">
+		<![CDATA[
+		  
+		    if ($debug) Debug.write("setModus AAA: ",this.baseactionobjectList);
+		
+    		//check if previous modi has been txt, which might not be saved to the board yet
+            var previousModus = this.drawmodus;
+    		if ($debug) Debug.write("setModus: ",modi);
+    		if (this.drawmodus=='letter'){
+    			if (this.letterObjectIsActive){
+    				if ($debug) Debug.write("setModus:drawtoArray",modi);
+    				this.currentletterObj.drawtoArray();
+    			}
+    		}
+    		
+    		if (modi != 'print' && modi != 'plain') {
+    		    this.setAttribute('drawmodus',modi);
+    		} else if (modi == 'print') {
+    			var my_pj = new PrintJob();
+                var myResult = my_pj.start();
+                
+                if ($debug) Debug.write("myResult ",myResult);
+                
+                if (myResult) {
+                	
+                	var mc = this.getDisplayObject();
+                	
+                	// boolean to track whether addPage succeeded, change this to a counter
+                    // if more than one call to addPage is possible
+                    var pageAdded:Boolean = false;
+                
+                    // check the user's printer orientation setting
+                    // and add appropriate print area to print job
+                    if (my_pj.orientation == "portrait") {
+                        // Here, the printArea measurements are appropriate for an 8.5" x 11"
+                        // portrait page.
+                        pageAdded = my_pj.addPage(mc._parent,{xMin:0,xMax:600,yMin:0,yMax:800});
+                    } else {
+                        // my_pj.orientation is "landscape".
+                        // Now, the printArea measurements are appropriate for an 11" x 8.5"
+                        // landscape page.
+                        pageAdded = my_pj.addPage(mc._parent,{xMin:0,xMax:750,yMin:0,yMax:600});
+                    }
+                
+                    // send pages from the spooler to the printer
+                    if (pageAdded) {
+                        my_pj.send(); 
+                    }
+
+                	
+                	//if ($debug) Debug.write("mc ",mc);
+                	//if ($debug) Debug.write("mc.name ",mc._name);
+                	
+                    //myResult = my_pj.addPage(mc, null, {printAsBitmap:true}, 1);
+                    //my_pj.send();
+                    delete my_pj;
+                }
+    		}
+    		
+    		if (modi=='plainSlide'){
+    			this.doClearSlide = true;
+                this.doClearAll = false;
+    			new lz.confirmationSingle(canvas.main_content._content.inner,{
+                                           labelid:1339,labeliderror:1359,
+                                           refObj:this,showCheckBox:false});
+    			
+    			this.setAttribute('drawmodus',previousModus);
+    		} else if (modi=='plainConfirm'){
+    			this.doClearSlide = false;
+    			this.doClearAll = true;
+                new lz.confirmationSingle(canvas.main_content._content.inner,{
+                                           labelid:1339,labeliderror:1340,
+                                           refObj:this,showCheckBox:false});
+                //this.clearAll();
+                //if ($debug) Debug.write("clearAll and RESET Modus to",previousModus);
+                this.setAttribute('drawmodus',previousModus);
+            } else if (modi=='plain'){
+                this.clearAll();
+                //if ($debug) Debug.write("clearAll and RESET Modus to",previousModus);
+                this.setAttribute('drawmodus',previousModus);
+            } else if (modi=='hand' || modi=='letter' || modi=='triangle' 
+    			|| modi=='paint' || modi=='line' || modi=='uline' || modi=='clipart' 
+    			|| modi=='rectangle' || modi=='ellipse' || modi=='drawarrow'){
+    			if (this.boundingref!=null) this.boundingref.removeIt();
+    		}
+    		if (modi=='rectangle') {
+    			//Open Up Recording
+    			
+    		}
+		]]>
+	</method>
+	
+	<method name="sendConfirmation" args="yesno" >
+		if (this.doClearSlide) {
+			this.clearSlideOnly();
+		} else if (this.doClearAll) {
+            this.clearAll();
+        }
+    </method>
+    
+    <method name="sendNoConfirmation" args="ref">
+    	//Do nothing
+    </method>
+	
+	<method name="getModusItems" args="modi">
+		<![CDATA[
+		//Debug.write("getModusItems: ",modi,this.baseactionobjectList);
+		if (modi=='pointer'){
+			return this.baseactionobjectList;
+		} else {
+			var tempList = new Array();
+			//Debug.write("this.baseactionobjectList: ",modi);
+			for (var eg=0;eg<this.baseactionobjectList.length;eg++){
+				//Debug.write("this.baseactionobjectList[eg][0]==modi",this.baseactionobjectList[eg][0],modi);
+				if (this.baseactionobjectList[eg][0]==modi) {
+					tempList.push(this.baseactionobjectList[eg]);
+				}
+			}		
+			return tempList;
+		}
+		]]>
+	</method>
+	
+	<method name="getObjectByName" args="objName">
+		if (this[objName]) {
+			return this[objName];
+		}
+		return null;
+	</method>
+	
+	<method name="getBaseObjectByName" args="bName">
+        <![CDATA[
+            //Debug.write("getModusItems: ",modi,this.baseactionobjectList);
+            //Debug.write("this.baseactionobjectList: ",modi);
+            for (var eg=0;eg<this.baseactionobjectList.length;eg++){
+                //Debug.write("this.baseactionobjectList[eg][0]==modi",this.baseactionobjectList[eg][0],modi);
+                if (this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-1]==bName) {
+                    return this.baseactionobjectList[eg];
+                }
+            }       
+            return null;
+        ]]>
+    </method>
+	
+	<method name="deleteItemByName" args="objName">
+        <![CDATA[
+            var newA = this.deleteItemByNameSync(objName);
+            if (newA[0]=='paint') newA[1] = new Array();
+            this.onsharedMessage('delete',newA);    
+        ]]>
+    </method>
+    
+	<method name="deleteItemByNameSync" args="objName">
+    	<![CDATA[
+    	    if ($debug) Debug.write("deleteItemByNameSync :: ",objName);
+    	    this[objName].prepareForDelete.sendEvent();
+    	    this[objName].destroy();
+            if (this.boundingref!=null) this.boundingref.removeIt();
+    		
+    		var pos = -1;
+    		for (var eg=0;eg<this.layers.length;eg++){
+    			if (this.layers[eg]['name']==objName) {
+    				pos = eg;
+    				//Debug.write("Found Object in Layer: ",eg);
+    				this.layers[eg].prepareForDelete.sendEvent();
+    				this.layers[eg].destroy();
+    			}
+    		}	
+    		if (pos!=-1) this.layers.splice(pos, 1);
+    		//get Item Position
+    		pos = -1;
+    		for (var eg=0;eg<this.baseactionobjectList.length;eg++){
+    			if (this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-1]==objName) {
+    				pos = eg;
+    				//Debug.write("Found Object: ",eg);
+    				break;
+    			}
+    		}
+    		
+    		if ($debug) Debug.write("deleteItemByNameSync Found Object: ",eg);
+    		
+    		var newA = this.baseactionobjectList[pos];
+    		
+    		for (var eg=0;eg<this.baseactionobjectList.length;eg++){
+    			if (this.baseactionobjectList[eg][0]!="pointerWhiteBoard") {
+		    		if (this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-8]>newA[newA.length-8]) {
+		    				this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-8]-=1;
+					}
+    			}
+    		}
+    		
+    		if (pos!=-1) this.baseactionobjectList.splice(pos, 1);
+    		
+    		//if ($debug) Debug.write("this.baseactionobjectList.length: ",this.baseactionobjectList.length);
+    		//if ($debug) Debug.write("this.layers.length: ",this.layers.length);
+    		
+    		if ($debug) Debug.warn("deleteItemByName :: ",objName);
+    		
+    		this.checkStepLayers();
+    		
+    		if (newA[0] == "swf") {
+                this.doDeleteFromDocumentsBar(objName);
+    		}
+    		
+    		return newA;
+    	]]>
+	</method>
+	
+	<method name="UpdateByObject" args="objRef">
+		<![CDATA[
+		//Debug.write("UpdateByObject : ",objRef,objRef.name);
+		var objName = objRef.name;
+		//for (var eg=0;eg<this.layers.length;eg++){
+		//	if (this.layers[eg]['name']==objName) {
+		//		//Debug.write("Found Object in Layer: ",this.layers[eg]);
+		//	}
+		//}
+		
+		var tx = objRef.x;
+        var ty = objRef.y;
+        
+        if(this.isSnapToGrid){   
+            
+            tx = Math.round(tx/this.gridWidth)*this.gridWidth;
+            ty = Math.round(ty/this.gridWidth)*this.gridWidth;
+            
+        }
+		
+		for (var eg=0;eg<this.baseactionobjectList.length;eg++){
+			if (this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-1]==objName) {
+				//Debug.write("Found Object: ",this.baseactionobjectList[eg]);
+				this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-5] = tx;
+				this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-4] = ty;
+				this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-3] = objRef.width;
+				this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-2] = objRef.height;
+				var newA = this.baseactionobjectList[eg];
+				if (newA[0]=='paint') newA[1] = new Array();				
+				this.onsharedMessage('size',newA);	
+			    break;
+			}
+		}	
+			
+		]]>
+	</method>
+	
+	<!-- ##############
+		undo/redo
+	 -->
+	
+	<method name="undoredo">
+		<![CDATA[
+		if (this.baseactionobjectList.length>0){
+			if (this.boundingref!=null) this.boundingref.removeIt();
+			var lastActionObject = this.baseactionobjectList.pop();
+			this.deleteItemByNameSync(lastActionObject[lastActionObject.length-1]);
+			this.onsharedMessage('undo',lastActionObject);
+		}
+		]]>
+	</method>
+
+	
+	<method name="checkStepLayers">
+		if (this.layers.length==0){
+			this.setAttribute('hasprevious',false);
+		} else {
+			this.setAttribute('hasprevious',true);
+		}
+		if (this.redolayers.length==0){
+			this.setAttribute('hasenext',false);
+		} else {
+			this.setAttribute('hasenext',true);
+		}	
+		//this.setAttribute('drawmodus',this.getAttribute('drawmodus'));				
+	</method>
+	
+	<method name="onmouseoverMethod">
+		
+	</method>
+	
+	<method name="onmouseoutMethod">
+        
+    </method>
+             
+	<method name="onmousedownMethod" >
+		<![CDATA[
+		if ($debug) Debug.write("onmousedownMethod this.drawmodus: ",this.drawmodus);
+		
+		
+		if(this.selectedObjects != null && this.selectedObjects.length > 0){
+			for (var eg=0;eg<this.selectedObjects.length;eg++){
+				var  objectToUpdate = this.getObjectByName(this.selectedObjects[eg][this.selectedObjects[eg].length-1]);
+	            objectToUpdate.setAttribute('opacity', 1);
+			}
+		}
+		
+		if (canvas.ismoderator || canvas.isAllowedToDraw) {
+			
+			if (this.letterObjectIsActive){
+				this.currentletterObj.drawtoArray();
+				this.setModusWithUpdate("hand");
+				//bool = true;				
+			}
+			
+			if(this.drawmodus=="drag"){
+				this.isDragging = true;
+				this.dragger.apply();
+			} else if(this.drawmodus=="hand"){
+				this.doSetHandBodus();				
+			} else if(this.drawmodus=="paint"){
+				this.startPaint();
+				mousetracker_del.register(lz.Idle,'onidle');
+			} else if(this.drawmodus=="line"){
+				this.startLine(null);
+	  	 		this.startx = currentlayer.getMouse('x');
+				this.starty = currentlayer.getMouse('y'); 			
+				mousetracker_del.register(lz.Idle,'onidle');
+			} else if(this.drawmodus=="uline"){
+				this.startUline(null);
+	  	 		this.startx = currentlayer.getMouse('x');
+				this.starty = currentlayer.getMouse('y'); 			
+				mousetracker_del.register(lz.Idle,'onidle');
+			} else if(this.drawmodus=="drawarrow"){
+				this.startDrawarrowline(null);
+	  	 		this.startx = currentlayer.getMouse('x');
+				this.starty = currentlayer.getMouse('y'); 			
+				mousetracker_del.register(lz.Idle,'onidle');
+			} else if (this.drawmodus == 'rectangle') {
+				this.startRect(null);
+	  	 		this.startx = currentlayer.getMouse('x');
+				this.starty = currentlayer.getMouse('y'); 				
+	            mousetracker_del.register(lz.Idle,'onidle');
+	        } else if (this.drawmodus == 'ellipse') {
+				this.startEllipse(null);
+	  	 		this.startx = currentlayer.getMouse('x');
+				this.starty = currentlayer.getMouse('y'); 				
+	            mousetracker_del.register(lz.Idle,'onidle');
+	        } else if (this.drawmodus == 'letter') {
+                this.startLetter();
+                this.startx = currentlayer.getMouse('x');
+                this.starty = currentlayer.getMouse('y');               
+                mousetracker_del.register(lz.Idle,'onidle');
+            } else if (this.drawmodus == 'clipart') {
+            	this.startDrawClipArt(null);
+                this.startx = currentlayer.getMouse('x');
+                this.starty = currentlayer.getMouse('y');  
+                mousetracker_del.register(lz.Idle,'onidle');
+            } else if (this.drawmodus == 'triangle') {
+				this.startTriangle(null);
+	  	 		this.startx = currentlayer.getMouse('x');
+				this.starty = currentlayer.getMouse('y'); 				
+	            mousetracker_del.register(lz.Idle,'onidle');
+	        }else if (this.drawmodus == 'paste') {
+				//this.startSelect(null);
+	  	 		var paste_x = parent.getMouse('x');
+				var paste_y = parent.getMouse('y'); 				
+	            //mousetracker_del.register(lz.Idle,'onidle');
+	            this.paste(paste_x, paste_y);
+	            
+	            //this.setModus("hand");
+				
+	            if ($debug) Debug.write("paste mouse down ",this);
+	            //if ($debug) Debug.write("onmousedownMethod Unkown Modus ",this.drawmodus);
+	        } else {
+	        	if ($debug) Debug.write("onmousedownMethod Unkown Modus ",this.drawmodus);
+	        }
+            
+            
+        }
+        ]]>
+	</method>
+
+	<method name="onmouseupMethod" >
+        if ($debug) Debug.write("onmouseupMethod this.drawmodus: ",this.drawmodus);
+		<![CDATA[	
+	        if (canvas.ismoderator || canvas.isAllowedToDraw) {
+				//var bool = false;
+				
+	        	if(this.drawmodus=="drag"){
+	        		this.isDragging = false;
+	        		this.dragger.remove();
+	        		
+	        		this.setAttribute("x",Math.round(this.x));
+	        		this.setAttribute("y",Math.round(this.y));
+	        		
+	        		if (this.last_x == this.x && this.last_x == this.x) {
+	        			if ($debug) Debug.write("No Change");
+	        			return;
+	        		}
+	        		
+	        		this.last_x = this.x;
+	        		this.last_y = this.y;
+	        		
+	        		var tArray = new Array();
+		    		tArray[0] = "moveMap";
+		    		tArray[1] = this.x;
+		    		tArray[2] = this.y;
+		    		
+		    		this.onsharedMessage('moveMap',tArray);
+	        		
+	        	} else if(this.drawmodus=="paint"){
+					this.endPaint();
+					mousetracker_del.unregisterAll();
+				} else if(this.drawmodus=="line"){
+					this.endLine();
+					mousetracker_del.unregisterAll();
+				} else if(this.drawmodus=="drawarrow"){
+					this.endDrawarrowline();
+					mousetracker_del.unregisterAll();
+				} else if(this.drawmodus=="uline"){
+					this.endUline();
+					mousetracker_del.unregisterAll();
+				} else if(this.drawmodus=="letter"){
+					//if (!this.letterObjectIsActive && !bool){
+					//	this.currentletterObj = new lz.baseDrawWords(canvas,{refObj:this,x:canvas.getMouse('x'),
+					//		y:canvas.getMouse('y')});
+					//}
+					this.endLetter();
+					mousetracker_del.unregisterAll();
+				} else if (this.drawmodus == 'rectangle') {
+					this.endRect();
+		        	mousetracker_del.unregisterAll();
+		        } else if (this.drawmodus == 'ellipse') {
+					this.endEllipse();
+		        	mousetracker_del.unregisterAll();
+		        } else if (this.drawmodus == 'pointer') {
+		        	this.setAttribute('drawmodus','hand');
+					if (this.boundingIsActive){
+						this.boundingref._innerDrag.onmouseup.sendEvent();
+					}
+		        } else if (this.drawmodus == 'pointerWhiteboard') {
+                    if ($debug) Debug.write("pointerWhiteboard set New Point ");
+                    this.endPointerWhiteBoard();
+                } else if(this.drawmodus=="clipart"){
+                    this.endDrawClipArt();
+                    mousetracker_del.unregisterAll();
+                } else if (this.drawmodus == 'triangle') {
+					this.endTriangle();
+		        	mousetracker_del.unregisterAll();
+		        } else if (this.drawmodus == 'hand') {
+					this.endSelect();
+		        	mousetracker_del.unregisterAll();
+		        }else if (this.drawmodus == 'paste') {
+					//this.setModus("hand");
+					//this.setAttribute('drawmodus','hand');
+					//if ($debug) Debug.write("onmouseupMethod paste ",this.drawmodus);
+		        } else {
+		        	if ($debug) Debug.write("onmouseupMethod Unkown Modus ",this.drawmodus);
+		        }
+	                
+		        ////Debug.write("onmouseup: ",this.letterObjectIsActive,this.currentletterObj);	        
+				this.checkStepLayers();
+	        } else {
+	        	if (!this.restricted) {
+                    this.endPointerWhiteBoard();
+	        	}
+            }
+		]]>
+	</method>  
+    
+    <!--
+    <handler name="onclick" args="obj">
+        //Debug.write("click on whiteBoard ",obj);
+    </handler>
+     -->
+
+  	<method name="trackmouse" args="item">
+    	<![CDATA[
+
+    	this.mx = currentlayer.getMouse('x');
+    	this.my = currentlayer.getMouse('y');   
+	    	    	
+    	if (this.drawmodus=="paint"){	    	
+		    if (mx != prevx || my != prevy) {
+		        if (prevx == null) {
+		            prevx = mx;
+		        }
+		        if (prevy == null) {
+		            prevy = my;
+		        }
+	            var mmx = this.mx;
+	            var mmy = this.my;
+	            var px = this.prevx;
+	            var py = this.prevy;
+
+	            this.drawline(px, py, mmx, mmy);
+	            this.drawlineRegisterPaint(px, py, mmx, mmy);
+	            
+	            this.prevx  = this.mx;
+	            this.prevy = this.my;            
+	        } 
+	    } else if (this.drawmodus=="line"){	 
+	    	var oid_name = this.currentlayer.name;
+	    	this.currentlayer.destroy();
+	    	this.startLine(oid_name);
+			this.endx = this.mx;
+			this.endy = this.my;
+            this.drawline(this.startx, this.starty, this.endx, this.endy);
+	    } else if (this.drawmodus=="uline"){
+	    	var oid_name = this.currentlayer.name;
+	    	this.currentlayer.destroy();
+	    	this.startUline(oid_name);
+			this.endx = this.mx;
+			this.endy = this.my;
+            this.drawline(this.startx, this.starty, this.endx, this.endy);
+	    } else if (this.drawmodus=="drawarrow"){	
+	    	var oid_name = this.currentlayer.name;
+	    	this.currentlayer.destroy();
+	    	this.startDrawarrowline(oid_name);
+			this.endx = this.mx;
+			this.endy = this.my;
+	    } else if (this.drawmodus == 'rectangle') {
+	    	var oid_name = this.currentlayer.name;
+	    	this.currentlayer.destroy();
+	    	this.startRect(oid_name);
+			// stretchy rect mode
+			this.endx = this.mx;
+			this.endy = this.my;
+			this.drawrectangle (this.startx, this.starty, this.mx, this.my);
+		} else if (this.drawmodus == 'triangle') {
+	    	var oid_name = this.currentlayer.name;
+	    	this.currentlayer.destroy();
+	    	this.startTriangle(oid_name);
+			// stretchy rect mode
+			this.endx = this.mx;
+			this.endy = this.my;
+			this.drawtriangle (this.startx, this.starty, this.mx, this.my);
+		} else if (this.drawmodus == 'ellipse') {
+			var oid_name = this.currentlayer.name;
+	    	this.currentlayer.destroy();
+	    	this.startEllipse(oid_name);
+			// stretchy rect mode
+			this.endx = this.mx;
+			this.endy = this.my;
+			this.drawellipse (this.startx, this.starty, this.mx, this.my);			
+		} else if (this.drawmodus == 'letter') {
+			var oid_name = this.currentlayer.name;
+	    	this.currentlayer.destroy();
+	    	this.startLetter(oid_name);
+			// stretchy rect mode
+			this.endx = this.mx;
+			this.endy = this.my;
+			this.drawletterBoundingBox (this.startx, this.starty, this.mx, this.my);			
+		} else if (this.drawmodus=="clipart"){ 
+            //var oid_name = this.currentlayer.name;
+            //this.currentlayer.destroy();
+            this.trackDrawClipArt();
+            this.endx = this.mx;
+            this.endy = this.my;
+        } else if (this.drawmodus == 'copy') {
+	    	var oid_name = this.currentlayer.name;
+	    	this.currentlayer.destroy();
+	    	this.startSelect(oid_name);
+			// stretchy rect mode
+			this.endx = this.mx;
+			this.endy = this.my;
+			this.drawrectangle (this.startx, this.starty, this.mx, this.my);
+        }else if (this.drawmodus == 'hand') {
+	    	var oid_name = this.currentlayer.name;
+	    	this.currentlayer.destroy();
+	    	this.startSelect(oid_name);
+			// stretchy rect mode
+			this.endx = this.mx;
+			this.endy = this.my;
+			this.drawrectangle (this.startx, this.starty, this.mx, this.my);
+        }
+		
+    	]]>
+    </method>
+	
+	<!-- ####################
+		Handmodus
+	 -->
+	<method name="doSetHandBodus" >
+		<![CDATA[
+		////Debug.write("doSetHandBodus: ");
+		var objList = this.getObjectInBounds(this.getMouse('x'),this.getMouse('y'));
+		if(objList.length==1){
+			this.setAttribute('drawmodus','pointer');
+			////Debug.write(objList[0][objList[0].length-1]);
+			this.doShowObjectBounds(objList[0][objList[0].length-1]);
+		} else if (objList.length>1){
+			this.setAttribute('drawmodus','pointer');
+			////Debug.write(objList[objList.length-1][objList[objList.length-1].length-1]);
+			this.doShowObjectBounds(objList[objList.length-1][objList[objList.length-1].length-1]);
+		} else {
+			this.startSelect(null);
+  	 		this.startx = currentlayer.getMouse('x');
+			this.starty = currentlayer.getMouse('y'); 				
+            mousetracker_del.register(lz.Idle,'onidle');
+            if ($debug) Debug.write("this.startSelect ",this);
+	            
+			this.setModus("hand");
+		}
+		]]>
+	</method>
+	
+    <method name="doShowObjectBounds" args="val">
+    <![CDATA[
+    	if (val !=null && val!=''){
+	    	this.ObjectByName = this.getObjectByName(val);
+	    	//FIXME: Set Corrent Value to Document Toolbar or use another var
+               
+            var boundingDoUpdateOnInit = true;
+            if (this.ObjectByName instanceof lz.swfResourceView){
+                //Debug.write("is swf Presentation");
+                boundingDoUpdateOnInit=false;
+            }
+            
+            //if ($debug) Debug.write("this.ObjectByName ",val,this.ObjectByName);
+                
+	    	var x = this.ObjectByName.x;
+	    	var y = this.ObjectByName.y;
+            //if ($debug) Debug.write("doShowObjectBounds: ",x,y);
+	    	var width = this.ObjectByName.width;
+	    	var height = this.ObjectByName.height;
+	    	if (this.boundingref!=null)this.boundingref.removeIt();
+	    	this.boundingref = new lz.boundingBoxAll(this.parent.parent._drawareaMask._drawarea,{whiteboardRef:this,
+                    objRef:this.ObjectByName,x:x-200,y:y-200,width:width+400,height:height+400,
+                    canBeDragged:boundingDoUpdateOnInit,canBeResized:boundingDoUpdateOnInit,
+                    ex:x,ey:y,ewidth:width,eheight:height,boundingDoUpdateOnInit:boundingDoUpdateOnInit});
+	    	this.setAttribute('boundingIsActive',true);
+        
+            //if (!boundingDoUpdateOnInit) {
+            //    this.boundingref._inner._inner.setAttribute('width',this.ObjectByName._swfView.width);
+            //    this.boundingref._inner._inner.setAttribute('height',this.ObjectByName._swfView.height);
+            //    if ($debug) Debug.write("NEW WIDTH AND HEIGHT OF SWF ",this.ObjectByName._swfView.width,this.ObjectByName._swfView.height);
+            //    this.boundingref._inner.setAttribute('visible',true);
+            //    parent.parent.changeMenu(2,true);
+            //    this.doUpdateDocumentToolBar();
+            //} else {
+            //    parent.parent.changeMenu(1,true);
+            //}
+             
+    	}
+    ]]>
+    </method>   
+    
+    <method name="reselectShowObjectBounds" args="val">
+    <![CDATA[
+        if (val !=null && val!=''){
+            this.ObjectByName = this.getObjectByName(val);
+            //FIXME: Set Corrent Value to Document Toolbar or use another var
+               
+            
+            //if ($debug) Debug.write("this.ObjectByName ",val,this.ObjectByName);
+                
+            var x = this.ObjectByName.x;
+            var y = this.ObjectByName.y;
+            //if ($debug) Debug.write("doShowObjectBounds: ",x,y);
+            var width = this.ObjectByName.width;
+            var height = this.ObjectByName.height;
+            if (this.boundingref!=null)this.boundingref.removeIt();
+            this.boundingref = new lz.boundingBoxAll(this.parent.parent._drawareaMask._drawarea,{
+                                whiteboardRef:this,
+                                objRef:this.ObjectByName,
+                                x:x-200,y:y-200,
+                                width:width+400,height:height+400,
+                                canBeDragged:true,canBeResized:false,
+                                ex:x,ey:y,ewidth:width,eheight:height,
+                                boundingDoUpdateOnInit:false
+                            });
+            this.setAttribute('boundingIsActive',true);
+        
+            //if (!boundingDoUpdateOnInit) {
+            //    this.boundingref._inner._inner.setAttribute('width',this.ObjectByName._swfView.width);
+            //    this.boundingref._inner._inner.setAttribute('height',this.ObjectByName._swfView.height);
+            //    if ($debug) Debug.write("NEW WIDTH AND HEIGHT OF SWF ",this.ObjectByName._swfView.width,this.ObjectByName._swfView.height);
+            //    this.boundingref._inner.setAttribute('visible',true);
+            //    parent.parent.changeMenu(2,true);
+            //    this.doUpdateDocumentToolBar();
+            //} else {
+            //    parent.parent.changeMenu(1,true);
+            //}
+             
+        }
+    ]]>
+    </method>   
+	
+	<method name="updateObjectBounds">
+		if (this.boundingref!=null) this.boundingref.resetValues();
+	</method>
+	
+	<method name="removeObjectBounds">
+		if (this.boundingref!=null) this.boundingref.removeIt();
+	</method>
+    
+	<method name="getObjectInBounds" args="x,y">
+		<![CDATA[
+		var tempList = new Array();
+		if ($debug) Debug.write("getObjectInBounds this.baseactionobjectList1: ",x,y,this.baseactionobjectList);
+		
+		for (var eg=0;eg<this.baseactionobjectList.length;eg++){
+			
+			
+			//if ($debug) Debug.write("c1 ",this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-5],"<",x);
+            //if ($debug) Debug.write("c2 ",(this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-5]+this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-3]),">",x);
+            //if ($debug) Debug.write("c3 ",this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-4],"<",y);
+            //if ($debug) Debug.write("c4 ",( this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-4]+this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-2] ),">",y);
+        
+			
+			if ( ( this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-5]<=x 
+				&& ( (this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-5]+this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-3]) >=x ) ) 
+				&& ( this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-4]<=y 
+				&& ( this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-4]+this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-2] )>=y  ) ) {
+					
+				if (this.baseactionobjectList[eg][0] != "mindMapNode"
+				        && this.baseactionobjectList[eg][0] != "mindMapCenter")	{
+    				if (this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-7] == null) {
+        				tempList.push(this.baseactionobjectList[eg]);
+    		        } else {
+    		        	var swfObject = this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-7];
+    		        	
+    		        	if ($debug) Debug.write("getObjectInBounds :: swfObject ",swfObject.isVisible);
+    		        	
+    		        	if(swfObject.isVisible) {
+    	        	        tempList.push(this.baseactionobjectList[eg]);
+    		        	}
+    		        }
+		        }
+				////Debug.write("found obj: ",this.baseactionobjectList[eg]);
+			}
+		}		
+		return tempList;
+		]]>
+	</method>
+	
+	
+	<method name="getZIndex">
+		<![CDATA[
+			if ($debug) Debug.write("getZIndex ",this.subviews.length-1);
+			return this.subviews.length-1;
+		]]>
+	</method>
+	
+	
+	
+	<!-- ##################
+		SharedModus
+		action => type of action
+		actionObject => necessary information to reproduce the event
+		isWmlLoader => true means this object is loaded through a stored wml-file
+		so do not spread any update-notifications to connected clients for each 
+		object cause the file loading will make a seperate notification
+	 -->
+	<method name="sendWatchObject" args="action,actionObject,isWmlLoader">
+		if ($debug) Debug.write("sendWatchObject: ",action,actionObject);
+		<![CDATA[
+		if (action=='draw' || action=='redo'){
+			var lastactionObject = actionObject;
+			
+			//Redraw the View on the paintarea
+			if (actionObject[0]=='paint'){
+				this.paintactionHistory(lastactionObject,this);
+			} else if (actionObject[0]=='line'){
+				this.lineactionHistory(lastactionObject,this);
+			} else if (actionObject[0]=='uline'){
+				this.ulineactionHistory(lastactionObject,this);
+			} else if (actionObject[0]=='drawarrow'){
+				this.drawarrowlineactionHistory(lastactionObject,this);
+			} else if(action,actionObject[0]=='letter'){
+				this.drawactionHistory(lastactionObject,this);
+			} else if(actionObject[0]=='image'){
+				//Image will send the onwmlLoaderSend later cause it has to be send
+				//once the image has been loaded completely
+				this.addImageToLayerHistorySynced(lastactionObject,this);
+			} else if(actionObject[0]=='swf'){
+				//Image will send the onwmlLoaderSend later cause it has to be send
+				//once the image has been loaded completely
+				this.addSWFToLayerHistorySynced(lastactionObject,this);
+			} else if(actionObject[0]=='rectangle'){
+				this.drawrectangleToHistory(lastactionObject,this);
+			} else if(actionObject[0]=='triangle'){
+				this.drawtriangleToHistory(lastactionObject,this);
+			} else if(actionObject[0]=='ellipse'){
+				this.drawellipseToHistory(lastactionObject,this);
+			} else if(actionObject[0]=='pointerWhiteBoard'){
+                this.drawPointerToHistory(lastactionObject,this);
+            } else if(actionObject[0]=='flv'){
+                this.drawFlvToHistory(lastactionObject,this);
+            } else if(actionObject[0]=='mindMapCenter'){
+                this.drawMindMapCenterToHistory(lastactionObject,this);
+            } else if(actionObject[0]=='mindMapNode'){
+                this.drawMindMapNodeToHistory(lastactionObject,this);
+            } else if(actionObject[0]=='clipart'){
+                this.drawClipArtToHistory(lastactionObject,this);
+            }
+			//set counter to maximum otherwise trouble in naming conventions
+			//the 6th array index count from the end of each object is always the counter of the
+			//object
+			this.compareAndSetCounter(lastactionObject[lastactionObject.length-6]);
+			this.baseactionobjectList.push(lastactionObject);
+			
+			//Send a notifcation for the library loader sothat it can show progress
+			//and Browser does not hangUp and images can be proceed
+			//only send if type ain#t image cause image will send its own one after 
+			// it has been loaded completely
+			if (isWmlLoader && actionObject[0]!='image' && isWmlLoader && actionObject[0]!='swf') {
+				if (this.onwmlLoaderSend) this.onwmlLoaderSend.sendEvent(actionObject[0]);
+			}
+         
+        } else if(action=='clear'){
+            
+            this.clearRemote();
+            
+        } else if(action=='clearSlide'){
+            
+            this.clearSlideRemote(actionObject);
+            
+        } else if(action=='moveMap'){
+			
+			this.setAttribute("x",actionObject[1]);
+			this.setAttribute("y",actionObject[2]);
+			
+        } else if(actionObject[0]=='whiteboardObj'){
+            this.doUpdateFullFitAndZoomRemote(actionObject);
+		} else if(action=='flv'){
+			
+			this.playFLVRemote(actionObject);
+			
+		} else if(action=='addBrainStorming'){
+            
+            this.brainStormingIdeasGathering(actionObject);
+        
+        } else if(action=='addBrainStormingIdeaPhase2'){
+            
+        	//Adding Idea in Phase 2
+            this.addIdeaToPhase2(actionObject);
+        
+        } else if(action=='deleteBrainStorming'){
+			
+			this.brainStormingClose(actionObject);
+			
+		} else if(action=='updateBrainStormingPhase'){
+            
+            this.brainStormingPhase2(actionObject);
+            
+        } else if(action=='updateBrainStormingPhase'){
+            
+            this.brainStormingPhase2(actionObject);
+            
+        } else if(action=='updatePrioBrainStormingIdea'){
+            
+            this.updatePrioBrainStormingIdea(actionObject);
+        
+        } else if(action=='updateTextBrainStormingIdeaColor'){
+            
+            this.updateTextBrainStormingIdeaColor(actionObject);
+        
+        } else if(action=='updateBrainStormingGroupName'){
+            
+            this.updateBrainStormingGroupName(actionObject);
+            
+        } else if(action=='deleteBrainStormingGroup'){
+            
+            this.deleteBrainStormingGroup(actionObject);
+			
+		} else if(action=='deleteBrainStormingIdea'){
+            
+            this.deleteBrainStormingIdea(actionObject);
+			
+		} else if(action=='addBrainStormingGroup'){
+            
+            this.addNewGroupRemote(actionObject,false);
+            
+		} else if(action=='updateGroupBrainStormingIdea'){
+            
+			if (actionObject[3] == "") {
+                this.moveIdeaToResultListRemote(actionObject);
+			} else {
+                this.moveIdeaToGroupRemote(actionObject);
+			}
+			
+		} else if(action=='delete' || action=='undo'){
+			
+			var lastactionObject = actionObject;	
+			this.deleteItemByNameSync(lastactionObject[lastactionObject.length-1]);
+			
+		} else if(action=='size'){
+			
+			var lastactionObject = actionObject;	
+			
+			if (lastactionObject[0] == "clipart") {
+				
+				var obj = this.getObjectByName(lastactionObject[lastactionObject.length-1]);
+                obj.destroy();
+                
+                this.drawClipArtToHistory(lastactionObject,this);
+                
+                for (var eg=0;eg<this.baseactionobjectList.length;eg++){
+                    if (this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-1]==lastactionObject[lastactionObject.length-1]) {
+                        
+                        //if ($debug) Debug.write("Found Object 1: ",this.baseactionobjectList[eg]);
+                        
+                        this.baseactionobjectList[eg] = lastactionObject;
+                        
+                        break;
+                    }
+                }   
+                
+                if (this.boundingIsActive) {
+                    this.reselectShowObjectBounds(lastactionObject[lastactionObject.length-1]);
+                }
+				
+			} else {
+			
+    			var obj = this.getObjectByName(lastactionObject[lastactionObject.length-1]);
+    			
+    			if ($debug) Debug.write("Set Size for Object ",obj);
+    			obj.setAttribute('x',lastactionObject[lastactionObject.length-5]);
+    			obj.setAttribute('y',lastactionObject[lastactionObject.length-4]);
+    			obj.setAttribute('width',lastactionObject[lastactionObject.length-3]);
+    			obj.setAttribute('height',lastactionObject[lastactionObject.length-2]);
+    			
+    			this.updateBaseObjectByName(lastactionObject[lastactionObject.length-1],
+    			                         lastactionObject[lastactionObject.length-5],
+    			                         lastactionObject[lastactionObject.length-4],
+    			                         lastactionObject[lastactionObject.length-3],
+    			                         lastactionObject[lastactionObject.length-2]);
+    			                         
+    			//if ($debug) Debug.write("BaseObject List ?? ",this.baseactionobjectList);
+    			
+                if (this.boundingIsActive) {
+                	this.boundingref.sendRemoteUpdate(obj)
+                }
+            
+			}
+			                         
+		} else if (action=="loadwml"){
+			//Debug.write(actionObject,actionObject["wmlfileName"],actionObject["wmlroom"],actionObject["wmldomain"]);
+			this.remoteWmlLoader(actionObject["wmlfileName"],actionObject["wmlroom"],actionObject["wmldomain"]);
+		} else if (action=="editText"){
+            this.editTextByHistory(actionObject,this);
+		}else if (action=="editTextMindMapFontColor") {
+            this.editTextMindMapFontColor(actionObject,this);
+        } else if (action=="editTextMindMapColor"){
+            this.editTextMindMapColor(actionObject,this);   
+        } else if (action=="editTextMindMapNode"){
+            this.editTextMindMapNode(actionObject,this);
+        } else if (action=="sendItemToFront"){
+            this.bringItemToFrontByName(actionObject[1]);
+        } else if (action=="initgetVars"){
+			//Debug.write("initUser isMod ",canvas.ismoderator,actionObject);
+			if (canvas.ismoderator){
+				//Debug.write("send all whiteBoard objects to new user");
+				var obj = new Array();
+			    obj[0] = 'whiteboard';
+			    obj[1] = 'inituser';
+			    obj[2] = this.baseactionobjectList;
+				this.oninitUser(actionObject,obj);
+			}
+		} else if (action=="swf"){
+			this.remoteObjectUpdate(actionObject);	
+		}
+		]]>
+	</method>
+	
+	
+	<method name="updateBaseObjectByName" args="tName,x,y,width,height">
+		<![CDATA[
+		
+		    
+		
+            for (var i=0;i<this.baseactionobjectList.length;i++) {
+            	
+            	if (this.baseactionobjectList[i][this.baseactionobjectList[i].length-1] == tName) {
+            		this.baseactionobjectList[i][this.baseactionobjectList[i].length-5] = x;
+            		this.baseactionobjectList[i][this.baseactionobjectList[i].length-4] = y;
+            		this.baseactionobjectList[i][this.baseactionobjectList[i].length-3] = width;
+            		this.baseactionobjectList[i][this.baseactionobjectList[i].length-2] = height;
+            		return;
+            	}
+            	
+            }
+		    
+            
+            if ($debug) Debug.warn("Could Not Find Item on List ",tName);
+		]]>
+	</method>
+	
+	<method name="sendRecordedObject" args="action,actionObject,isWmlLoader">
+		//Debug.write("sendWatchObject: ",action,actionObject);
+		<![CDATA[
+		if (action=='draw' || action=='redo'){
+			var lastactionObject = actionObject;
+			
+			//Redraw the View on the paintarea
+			if (actionObject[0]=='paint'){
+				this.paintactionHistory(lastactionObject,this);
+			} else if (actionObject[0]=='line'){
+				this.lineactionHistory(lastactionObject,this);
+			} else if (actionObject[0]=='uline'){
+				this.ulineactionHistory(lastactionObject,this);
+			} else if (actionObject[0]=='drawarrow'){
+				this.drawarrowlineactionHistory(lastactionObject,this);
+			} else if(action,actionObject[0]=='letter'){
+				this.drawactionHistory(lastactionObject,this);
+			} else if(actionObject[0]=='image'){
+				//Image will send the onwmlLoaderSend later cause it has to be send
+				//once the image has been loaded completely
+				this.addImageToLayerHistoryRecorded(lastactionObject,this,isWmlLoader);
+			} else if(actionObject[0]=='swf'){
+				//Image will send the onwmlLoaderSend later cause it has to be send
+				//once the image has been loaded completely
+				this.addSWFToLayerHistoryRecording(lastactionObject,this,isWmlLoader);
+			} else if(actionObject[0]=='rectangle'){
+				this.drawrectangleToHistory(lastactionObject,this);
+			} else if(actionObject[0]=='ellipse'){
+				this.drawellipseToHistory(lastactionObject,this);
+			}
+			//set counter to maximum otherwise trouble in naming conventions
+			//the 6th array index count from the end of each object is always the counter of the
+			//object
+			this.compareAndSetCounter(lastactionObject[lastactionObject.length-6]);
+			this.baseactionobjectList.push(lastactionObject);
+			
+			//Send a notifcation for the library loader sothat it can show progress
+			//and Browser does not hangUp and images can be proceed
+			//only send if type ain#t image cause image will send its own one after 
+			// it has been loaded completely
+			if (isWmlLoader && actionObject[0]!='image' && isWmlLoader && actionObject[0]!='swf') {
+				if (this.onwmlLoaderSend) this.onwmlLoaderSend.sendEvent(actionObject[0]);
+			}
+            
+		} else if(action=='clear'){
+			this.clearAll();
+		} else if(action=='delete' || action=='undo'){
+			var lastactionObject = actionObject;	
+			var obj = this.getObjectByName(lastactionObject[lastactionObject.length-1]);
+			obj.destroy();
+		} else if(action=='size'){
+			var lastactionObject = actionObject;	
+			var obj = this.getObjectByName(lastactionObject[lastactionObject.length-1]);
+			obj.setAttribute('x',lastactionObject[lastactionObject.length-5]);
+			obj.setAttribute('y',lastactionObject[lastactionObject.length-4]);
+			obj.setAttribute('width',lastactionObject[lastactionObject.length-3]);
+			obj.setAttribute('height',lastactionObject[lastactionObject.length-2]);
+		} else if (action=="loadwml"){
+			//Debug.write(actionObject,actionObject["wmlfileName"],actionObject["wmlroom"],actionObject["wmldomain"]);
+			this.remoteWmlLoaderRecording(actionObject["wmlfileName"],actionObject["wmlroom"],actionObject["wmldomain"]);
+		} else if (action=="editText"){
+			this.editTextByHistory(actionObject,this);
+		} else if (action=="initgetVars"){
+			//Debug.write("initUser isMod ",canvas.ismoderator,actionObject);
+			if (canvas.ismoderator){
+				//Debug.write("send all whiteBoard objects to new user");
+				var obj = new Array();
+			    obj[0] = 'whiteboard';
+			    obj[1] = 'inituser';
+			    obj[2] = this.baseactionobjectList;
+				this.oninitUser(actionObject,obj);
+			}
+		} else if (action=="swf"){
+			this.remoteObjectUpdate(actionObject);	
+		}
+		]]>
+	</method>
+	
+  	<method name="getSWFDocumentStatus">
+  		<![CDATA[
+  		
+  		    for (var i=0;i<this.baseactionobjectList.length;i++) {
+  		    	
+  		    	if (this.baseactionobjectList[i][0] == "swf") {
+  		    		
+  		    		var tSWF = new Object();
+  		    		
+  		    		tSWF.name = this.baseactionobjectList[i][this.baseactionobjectList[i].length-1];
+  		    		tSWF.slide = this.baseactionobjectList[i][8];
+  		    		tSWF.isVisible = true;
+  		    		
+  		    		return tSWF;
+  		    	}
+  		    	
+  		    }
+  		    
+  		    return null;
+  		]]>
+  	</method>
+
+    <method name="checkSWFDocumentStatus" args="swfObj">
+        <![CDATA[
+        
+            if (swfObj != null) {
+        
+                var swfBaseObj = this.getBaseObjectByName(swfObj.name);
+                
+                if (swfBaseObj != null) {
+            
+                    if (swfObj.slide == swfBaseObj[8]) {
+                    	return true;
+                    } else {
+                    	return false;
+                    }
+                    
+                }
+            
+            }
+            
+            return true;
+        ]]>
+    </method>
+
+    <method name="doSWFDocumentStatus" args="refObj,swfObj">
+        <![CDATA[
+        
+            if (swfObj != null) {
+        
+                if (swfObj.isVisible) {
+                	
+                	refObj.setAttribute("visibility","visible");
+                	
+                } else {
+                	
+                	refObj.setAttribute("visibility","hidden");
+                	
+                }
+            
+            } else {
+            	
+            	refObj.setAttribute("visibility","visible");
+            	
+            }
+            
+        ]]>
+    </method>
+    
+    <method name="updateObjectsToSlideNumber" args="baseObject">
+    	<![CDATA[
+    	
+            var baseObjectName = baseObject[baseObject.length-1];
+            var slidesNumber = baseObject[8];
+    	   
+            if ($debug) Debug.write("updateObjectsToSlideNumber :: ",baseObjectName,slidesNumber)
+    	
+            for (var i=0;i<this.baseactionobjectList.length;i++) {
+    	   	
+                if (this.baseactionobjectList[i][0] == "ellipse" 
+                        || this.baseactionobjectList[i][0] == "drawarrow"
+                        || this.baseactionobjectList[i][0] == "line"
+                        || this.baseactionobjectList[i][0] == "paint"
+                        || this.baseactionobjectList[i][0] == "rectangle"
+                        || this.baseactionobjectList[i][0] == "uline"
+                        || this.baseactionobjectList[i][0] == "image"
+                        || this.baseactionobjectList[i][0] == "clipart"
+                        || this.baseactionobjectList[i][0] == "letter") {
+                	
+                	var swfObj = this.baseactionobjectList[i][this.baseactionobjectList[i].length-7];
+                	if ($debug) Debug.write("swfObj :: ",swfObj);
+                	
+                	if (swfObj != null) {
+                		
+                		if (swfObj.name == baseObjectName) {
+                			
+                			if (swfObj.slide == slidesNumber) {
+                				
+                				swfObj.isVisible = true;
+                				
+                				this.baseactionobjectList[i][this.baseactionobjectList[i].length-7] = swfObj; 
+                				
+                				this[this.baseactionobjectList[i][this.baseactionobjectList[i].length-1]].setAttribute("visibility","visible");
+                				
+                			} else {
+                				
+                				swfObj.isVisible = false;
+                				
+                				this.baseactionobjectList[i][this.baseactionobjectList[i].length-7] = swfObj; 
+                				
+                				this[this.baseactionobjectList[i][this.baseactionobjectList[i].length-1]].setAttribute("visibility","hidden");
+                				
+                			}
+                			
+                		}
+                		
+                	}
+                	
+                }
+    	   	
+            }
+    	
+    	]]>
+    </method>
+    
+    <method name="updateAllObjectsToSlideNumber">
+        <![CDATA[
+        
+            if ($debug) Debug.write(" :: updateAllObjectsToSlideNumber :: ")
+        
+            for (var i=0;i<this.baseactionobjectList.length;i++) {
+            
+                if (this.baseactionobjectList[i][0] == "ellipse" 
+                        || this.baseactionobjectList[i][0] == "drawarrow"
+                        || this.baseactionobjectList[i][0] == "line"
+                        || this.baseactionobjectList[i][0] == "paint"
+                        || this.baseactionobjectList[i][0] == "rectangle"
+                        || this.baseactionobjectList[i][0] == "uline"
+                        || this.baseactionobjectList[i][0] == "image"
+                        || this.baseactionobjectList[i][0] == "letter") {
+                    
+                    var swfObj = this.baseactionobjectList[i][this.baseactionobjectList[i].length-7];
+                    if ($debug) Debug.write("swfObj :: ",swfObj);
+                    
+                    if (swfObj != null) {
+                        
+                            
+                        if (swfObj.isVisible) {
+                            
+                            this[this.baseactionobjectList[i][this.baseactionobjectList[i].length-1]].setAttribute("visibility","visible");
+                            
+                        } else {
+                            
+                            this[this.baseactionobjectList[i][this.baseactionobjectList[i].length-1]].setAttribute("visibility","hidden");
+                            
+                        }
+                            
+                        
+                    }
+                    
+                }
+            
+            }
+        
+        ]]>
+    </method>
+
+    <dragstate name="dragger"/>
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/baseDrawImage.lzx b/WebContent/src/modules/conference/whiteboard/base/baseDrawImage.lzx
new file mode 100644
index 0000000..5e883a7
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/baseDrawImage.lzx
@@ -0,0 +1,349 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="baseDrawImage" extends="baseDrawLetter">
+	
+  	<!-- attribute shows if this image is loaded as part of a wml-file-object
+		if true it will send a onwmlLoaderSend message and NO extra loading bar
+		if false it will show a loading abr for that image
+	-->
+	<attribute name="isWmlLoaderImage" value="false" type="boolean" />
+    
+    <!-- indicates if this client is still loading an old image for the screenViwer -->
+    <attribute name="isScreenImageLoading" value="false" type="boolean" />
+    <attribute name="screenImageRefNumber" value="1" type="number" />
+    <attribute name="screenImageRef1" value="null" />
+    <attribute name="screenImageRef2" value="null" />
+	
+    <event name="setNewScreenUserName" />
+  	
+  	<!-- invoked by clicking on the confirmation dialog after 
+  		clicking on an image in the Library -->
+  	<method name="addNewSyncImage" args="urlname,posx,posy,baseurl,fileName,moduleName,parentPath,room,domain">
+  		if ($debug) Debug.write("urlname: ",urlname);
+  		var now = new Date();
+  		//This invokes a Method which is in the remoteWhiteboard.lzx
+  		this.startNewObjectSyncProcess.isStarting = true;
+  		this.startNewObjectSyncProcess.uniqueObjectSyncName = fileName + now.getTime();
+  		this.startNewObjectSyncProcess.doCall();
+  		this.addNewImage(urlname,posx,posy,baseurl,fileName,
+  			moduleName,parentPath,room,domain,
+  			this.startNewObjectSyncProcess.uniqueObjectSyncName,false);
+  	</method>
+  	
+  	<!-- standard add Function -->
+  	<method name="addNewImage" args="urlname,posx,posy,baseurl,fileName,moduleName,parentPath,room,domain,uniqueObjectSyncName,isLocalSync">
+  		if ($debug) Debug.write("urlname posx: ",urlname,posx);
+  		this.addImageToLayer(this,'image'+this.getCounter(),urlname,
+  			posx,posy,0,0,
+  			true,
+  			baseurl,fileName,moduleName,parentPath,room,domain,uniqueObjectSyncName,isLocalSync);
+  	</method>
+  	
+	<!--
+		alterModus => this is added by the mod not remotely
+		
+	 -->
+  	<method name="addImageToLayer" args="obj,nameing,urlname,posx,posy,width,height,alterModus,baseurl,fileName,moduleName,parentPath,room,domain,uniqueObjectSyncName,isLocalSync">
+        <![CDATA[
+			//only show if it is not part of wml-file-object
+			//do not show at all as this is handled via the remote Object
+			//if (!this.isWmlLoaderImage) {
+			//	this.loadimageDataWinRef = new lz.loadWhiteboardWindow(canvas.main_content._content.inner,{refObj:this});
+			//	this.loadimageDataWinRef.setMessage(canvas.getLabelName(this.imageLoadMessageId));
+			//}
+			
+            if ($debug) Debug.write("addImageToLayer ",urlname);
+        	//if ($debug) Debug.write("addImageToLayer ",obj,nameing,urlname,posx,posy,width,height,alterModus,baseurl,fileName,moduleName,parentPath,room,domain);
+			//if ($debug) Debug.write("addImageToLayer posx ",posx);
+        	
+	  		if ($debug) Debug.write("addImageToLayer urlname : ", canvas.getUrl() + 'DownloadHandler');
+			var src = canvas.getUrl() + 'DownloadHandler' + '?fileName=' + encodeURIComponent(fileName) + 
+				'&moduleName=' + moduleName +
+				'&parentPath=' + encodeURIComponent(parentPath) +
+				'&room_id=' + room + 
+				'&sid=' + canvas.sessionId;
+	
+	        if ($debug) Debug.write("addImageToLayer -src- ",src);
+		      
+			if ($debug) Debug.write("alterModus: ",alterModus);
+			
+	  		this.currentlayer = new lz.imageForDrawView(obj,{
+	  			src:src,refObj:this,name:nameing,x:posx,y:posy,
+	  			remotewidth:width,remoteheight:height,
+	  			downloadurl:urlname,alterModus:alterModus,
+	  			baseurl:baseurl,fileName:fileName,moduleName:moduleName,
+	  			parentPath:parentPath,room:room,domain:domain,
+	  			uniqueObjectSyncName:uniqueObjectSyncName,
+	  			isLocalSync:isLocalSync});	
+			
+			//this.parent.parent.isloadingImage.sendEvent(this.currentlayer);
+			//this.parent._loading.setAttribute('visible',true);
+			
+			//Add Layer to global Layer  	
+		    return this.currentlayer;
+		]]>
+  	</method>
+  	
+  	<!--
+  	    @deprecated
+  	 -->
+  	<method name="addImageToLayerRecorded" args="obj,nameing,urlname,posx,posy,width,height,alterModus,baseurl,fileName,moduleName,parentPath,room,domain">
+        <![CDATA[
+			//only show if it is not part of wml-file-object
+			if (!this.isWmlLoaderImage) {
+				this.loadimageDataWinRef = new lz.loadWhiteboardWindow(canvas.main_content._content.inner,{refObj:this});
+				this.loadimageDataWinRef.setMessage(canvas.getLabelName(this.imageLoadMessageId));
+			}
+			var src = baseurl+'?fileName='+fileName+'&moduleName='+moduleName+'&parentPath='+parentPath+'&room_id='+room+'&sid='+canvas.sessionId;
+	
+			this.currentlayer = new lz.imageForDrawView(obj,{
+				src:src,refObj:this,name:nameing,x:posx,y:posy,
+				downloadurl:urlname,remotewidth:width,remoteheight:height,
+				alterModus:alterModus,baseurl:baseurl,fileName:fileName,
+				moduleName:moduleName,parentPath:parentPath,
+				room:room,domain:domain,recorderModus:true});
+
+			this.parent.parent.isloadingImage.sendEvent(this.currentlayer);
+			//this.parent._loading.setAttribute('visible',true);
+			//Add Layer to global Layer  	
+		    return this.currentlayer;
+		]]>
+  	</method>
+  	
+  	<method name="incomingScreenSharing" args="value">
+        <![CDATA[
+		//only do if last image has been loading successfully
+            if (!this.isScreenImageLoading){
+                this.isScreenImageLoading = true;
+                var downloadurl = canvas.getUrl() + 'ScreenViewHandler?'
+                    +'fileName='+encodeURIComponent(value.fileName)
+                    +'&room='+hib.currentroomid
+                    +'&domain='+hib.conferencedomain
+                    +'&sid='+canvas.sessionId;
+            
+                //Debug.write("incomingScreenSharing URL: ",downloadurl);
+                if (this.screenImageRefNumber==1){
+                    this.screenImageRef1 = new lz.imageForScreenViewer(this,{visible:false,src:downloadurl,refObj:this,name:'screen1',x:0,y:0,downloadurl:downloadurl});
+                    this.screenImageRefNumber = 2;
+                } else if (this.screenImageRefNumber==2){
+                    this.screenImageRef2 = new lz.imageForScreenViewer(this,{visible:false,src:downloadurl,refObj:this,name:'screen2',x:0,y:0,downloadurl:downloadurl});
+                    this.screenImageRefNumber = 1;
+                }
+                this.setNewScreenUserName.sendEvent('Screen of User: '+value.user.firstname+','+value.user.lastname);
+            } else {
+                //Debug.write("frame dropped!");
+                Debug.warn("frame dropped!");
+                (new lz.singletonErrorPopupHolder()).setError(canvas.getLabelName(240));
+            }
+		]]>
+  	</method>   
+    
+    <!--
+    TODO: Make new Base Class including the Screen sharing Functions
+     -->
+    <method name="toggleVisibleScreenSharing">
+        if (this.screenImageRefNumber==1){
+            if (this.screenImageRef1) this.screenImageRef1.destroy();
+            this.screenImageRef2.setAttribute('visible',true);
+        } else if (this.screenImageRefNumber==2){
+            this.screenImageRef1.setAttribute('visible',true);
+            if (this.screenImageRef2) this.screenImageRef2.destroy();
+        }
+        this.isScreenImageLoading = false;
+    </method> 
+	
+	<!--
+		actionObject => attributes neccessary for loading image
+		refObj = drawarea
+		isWmlLoader => (true)is loaded as part of wml-object
+		
+		-->
+		
+	<!-- method adds a new Image to the Layer,
+	but without making an Update-Event, 
+	Image added by remote host -->	
+  	<method name="addImageToLayerHistorySynced" args="actionObject,refObj">
+  		if ($debug) Debug.write("addImageToLayerHistory: ",actionObject,refObj);
+  		//start sync process using the remote uniqueObjectSyncName as identifier
+  		//This invokes a Method which is in the remoteWhiteboard.lzx
+  		this.startNewObjectSyncProcess.isStarting = false;
+  		this.startNewObjectSyncProcess.uniqueObjectSyncName = actionObject[8];
+  		this.startNewObjectSyncProcess.doCall();
+  		this.addImageToLayer(refObj,actionObject[actionObject.length-1],actionObject[1],
+		  		actionObject[actionObject.length-5],actionObject[actionObject.length-4],
+		  		actionObject[actionObject.length-3],actionObject[actionObject.length-2],
+		  		false,
+		  		actionObject[2],actionObject[3],actionObject[4],actionObject[5],
+		  		actionObject[6],actionObject[7],actionObject[8],false);
+		  		
+  		this.doSWFDocumentStatus(this.currentlayer,actionObject[actionObject.length-7]);
+  	</method>
+  			
+  	<!--- 
+		invoke by the initial Loading process in remoteWhiteboard.lzx, 
+		does not invoke any Update Handler
+		once this object is loaded, it will throw an Update event of kind
+		addImageToLayerHistoryToLocalLoaded		
+  	 -->
+  	<method name="addImageToLayerHistoryToLocal" args="actionObject,refObj">
+  		if ($debug) Debug.write("addImageToLayerHistoryToLocal: ",actionObject,refObj);
+  		this.addImageToLayer(refObj,actionObject[actionObject.length-1],actionObject[1],
+		  		actionObject[actionObject.length-5],actionObject[actionObject.length-4],
+		  		actionObject[actionObject.length-3],actionObject[actionObject.length-2],
+		  		false,
+		  		actionObject[2],actionObject[3],actionObject[4],actionObject[5],
+		  		actionObject[6],actionObject[7],actionObject[8],true);
+  	</method>
+  	
+  	<!-- 
+  		this handler is implemented also in remoteWhiteboard.lzx to sync a Local Object list
+  		but throws NO Update Event, cause its only needed Locally, the whole Sync Process
+  		has a different Sync-Object for Loading the complete Object List from the Sever.
+  		Each Object is loaded Locally, once all Objects are loaded the Complete-Event is broadcasted
+  		to the server, but every Item on the List is only controlled locally
+  	-->
+  	<handler name="addImageToLayerHistoryToLocalLoaded" args="objRef">
+  		if ($debug) Debug.write("addImageToLayerHistoryToLocal: ",objRef);
+		this.syncImageRefObj = objRef;
+		
+		this.registerNewImage(this.syncImageRefObj.src,
+			this.syncImageRefObj.x,this.syncImageRefObj.y,
+			this.syncImageRefObj.width,this.syncImageRefObj.height,
+			this.syncImageRefObj.baseurl,this.syncImageRefObj.fileName,
+			this.syncImageRefObj.moduleName,this.syncImageRefObj.parentPath,
+			this.syncImageRefObj.room,this.syncImageRefObj.domain,
+			false,this.syncImageRefObj.uniqueObjectSyncName,this.getSWFDocumentStatus(),
+                this.getZIndex());
+  	</handler>
+  	
+  	<!--- @keywords deprecated
+  	TODO: uniqueObjectSyncName missing
+  	 -->
+  	<method name="addImageToLayerHistoryRecorded" args="actionObject,refObj,isWmlLoader">
+		this.isWmlLoaderImage = isWmlLoader;
+  		this.addImageToLayerRecorded(refObj,
+  			actionObject[actionObject.length-1],actionObject[1],
+  			actionObject[actionObject.length-5],actionObject[actionObject.length-4],
+  			actionObject[actionObject.length-3],actionObject[actionObject.length-2],
+  			false,
+  			actionObject[2],actionObject[3],actionObject[4],actionObject[5],
+  			actionObject[6],actionObject[7]);
+  	</method>
+  	
+  	<method name="registerNewImage" args="urlname,posx,posy,width,height,baseurl,fileName,moduleName,parentPath,room,domain,doCallUpdate,uniqueObjectSyncName,swfObj,zIndex">
+		if ($debug) Debug.write("registerNewImage doCallUpdate: ",doCallUpdate);
+		if ($debug) Debug.write("registerNewImage swfObj: ",swfObj);
+		var actionObject = new Array();
+	    actionObject.push('image');
+	    actionObject.push(urlname);
+		actionObject.push(baseurl);
+		actionObject.push(fileName);
+		actionObject.push(moduleName);
+		actionObject.push(parentPath);
+		actionObject.push(room);
+		actionObject.push(domain);
+		actionObject.push(uniqueObjectSyncName);
+		actionObject.push(zIndex);//-8
+		actionObject.push(swfObj);//-7
+		actionObject.push(this.counter);//-6
+	    actionObject.push(posx);//-5
+	    actionObject.push(posy);//-4
+	    actionObject.push(width);//-3
+	    actionObject.push(height);//-2
+	    actionObject.push(this.currentlayer.name);//-1
+	    this.baseactionobjectList.push(actionObject);	
+	    this.checkStepLayers();
+	    if (doCallUpdate) this.onsharedMessage('draw',actionObject);	
+  	</method>
+	
+	<!-- 
+		adds the Image to the Layers and throws a onsharedMessage,
+		this can only happen _after_ loading the Image cause you do not know its 
+		width and height 
+	-->
+	<method name="storeTempValsAndLoadSyncList" args="objRef">
+		if ($debug) Debug.write("storeTempValsAndLoadSyncList: ",objRef);
+		this.syncImageRefObj = objRef;
+		
+		//This invokes a Method which is in the remoteWhiteboard.lzx
+		this.sendCompletedObjectSyncEvent.uniqueObjectSyncName = this.syncImageRefObj.uniqueObjectSyncName;
+		this.sendCompletedObjectSyncEvent.doCall();
+		
+		this.registerNewImage(this.syncImageRefObj.src,
+			this.syncImageRefObj.x,this.syncImageRefObj.y,
+			this.syncImageRefObj.width,this.syncImageRefObj.height,
+			this.syncImageRefObj.baseurl,this.syncImageRefObj.fileName,
+			this.syncImageRefObj.moduleName,this.syncImageRefObj.parentPath,
+			this.syncImageRefObj.room,this.syncImageRefObj.domain,
+			true,this.syncImageRefObj.uniqueObjectSyncName,this.getSWFDocumentStatus(),
+                this.getZIndex());		
+	
+	</method>
+	
+	<!--- @keywords deprecated
+  	TODO: check Recorder Modus
+  	 -->
+	<method name="storeTempValsAndLoadSyncListRecording" args="objRef">
+		if ($debug) Debug.write("########### storeTempValsAndLoadSyncListRecording: ",objRef);
+		this.syncImageRefObj = objRef;
+		this.doRegisterAfterLoadingOrRecording();
+		this.sendCompleteImageSync();
+	</method>
+	
+	<method name="sendLoadNotificationImage" args="objRef" >
+		if ($debug) Debug.write("sendLoadNotificationImage: ",objRef);
+		this.syncImageRefObj = objRef;
+		this.registerNewImage(this.syncImageRefObj.src,
+			this.syncImageRefObj.x,this.syncImageRefObj.y,
+			this.syncImageRefObj.width,this.syncImageRefObj.height,
+			this.syncImageRefObj.baseurl,this.syncImageRefObj.fileName,
+			this.syncImageRefObj.moduleName,this.syncImageRefObj.parentPath,
+			this.syncImageRefObj.room,this.syncImageRefObj.domain,
+			false,this.syncImageRefObj.uniqueObjectSyncName,this.getSWFDocumentStatus(),
+                this.getZIndex());	
+		//This invokes a Method which is in the remoteWhiteboard.lzx
+		this.sendCompletedObjectSyncEvent.uniqueObjectSyncName = this.syncImageRefObj.uniqueObjectSyncName;
+		this.sendCompletedObjectSyncEvent.doCall();
+	</method>
+    
+    <!--- @keywords deprecated
+    TODO: Check recorder Modus
+     -->
+    <method name="doRegisterAfterLoadingOrRecording">
+    	if ($debug) Debug.write("########### doRegisterAfterLoadingOrRecording");
+		this.imageSyncMessageText = canvas.getLabelName(this.imageSyncMessageId);
+		//now send notifications to connected clients
+		this.setAttribute('drawmodus','image');
+		this.registerNewImage(this.syncImageRefObj.src,
+		              this.syncImageRefObj.x,this.syncImageRefObj.y,
+		              this.syncImageRefObj.width,this.syncImageRefObj.height,
+		              this.syncImageRefObj.baseurl,this.syncImageRefObj.fileName,
+		              this.syncImageRefObj.moduleName,this.syncImageRefObj.parentPath,
+		              this.syncImageRefObj.room,this.syncImageRefObj.domain,
+		              this.getSWFDocumentStatus(),
+                      this.getZIndex());		
+    </method>
+	
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/baseDrawLetter.lzx b/WebContent/src/modules/conference/whiteboard/base/baseDrawLetter.lzx
new file mode 100644
index 0000000..489d99e
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/baseDrawLetter.lzx
@@ -0,0 +1,322 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<class name="whiteBoardTextField" extends="text" >
+	<handler name="prepareForDelete" args="tRef">
+		//Nothing
+	</handler>
+	<attribute name="typeOfObject" value="text" type="string" />
+	<method name="setTextEncoded" args="tString">
+		<![CDATA[
+		
+		    while (tString.indexOf("<") > 0) {
+		    	tString = tString.replace("<","&#60;");
+		    }
+    		
+		    while (tString.indexOf(">") > 0) {
+                tString = tString.replace(">","&#62;");
+		    }
+    		
+    		this.setAttribute("text",tString);
+		]]>
+	</method>
+</class>
+
+<class name="baseDrawLetter" extends="baseDrawObject">
+
+	<attribute name="currentletterObj" value="null" />
+	
+	<attribute name="letterObjectIsActive" value="false" type="boolean" />
+	
+	<attribute name="edittextLetterObject" value="null" />
+	
+	<attribute name="edittextLetter" value="false" type="boolean" />
+	
+	<method name="letterObjectFree" args="obj">
+		this.setAttribute('letterObjectIsActive',false);
+		if (this.edittextLetter){
+			this.edittextLetter = false;
+			this.setModus('hand');
+		}
+	</method>
+	<method name="letterObjectClose" args="obj">
+		this.setAttribute('letterObjectIsActive',true);
+	</method>
+	
+    <!-- The Color of the letter Object  -->
+  	<attribute name="currentlayerletter" value="0x000000" setter="this.setNewLayerLetter(currentlayerletter)" />
+    
+    <!-- The Size of the Letter Object -->
+  	<attribute name="currentlayersize" value="12" type="number" setter="this.setNewLayerSize(currentlayersize)" />
+  	
+  	<!-- "plain", "bold" , "italic" or "bolditalic". -->
+  	<attribute name="currentlayerstyle" value="plain" type="string" setter="this.setNewLayerStyle(currentlayerstyle)" />
+    
+    <method name="setNewLayerLetter" args="cl">
+        this.currentlayerletter=cl;
+        this.sendNewStyle.sendEvent();
+    </method>
+    
+    <method name="setNewLayerSize" args="cs">
+        this.currentlayersize=cs;
+        this.sendNewStyle.sendEvent();
+    </method>
+    
+    <method name="setNewLayerStyle" args="cs">
+        this.currentlayerstyle=cs;
+        this.sendNewStyle.sendEvent();
+    </method>
+  	
+    <!-- Send Update Events to current Letter Object -->
+    <handler name="sendNewStyle">
+        if (this.letterObjectIsActive){
+            this.currentletterObj.newStyleEvent.sendEvent()
+        }
+    </handler>
+    
+  	<attribute name="italic" value="false" type="boolean" setter="this.setitalic(italic)" />
+  	<attribute name="bold" value="false" type="boolean" setter="this.setbold(bold)" />
+  	<method name="setitalic" args="b">
+  		this.italic = b;
+  		this.doalterStyle();
+  	</method>
+  	<method name="setbold" args="b">
+  		this.bold = b;
+  		this.doalterStyle();
+  	</method>
+  	<method name="doalterStyle">
+  		<![CDATA[
+  		if (this.isinited){
+	  		if (this.bold && this.italic){
+	  			this.setAttribute('currentlayerstyle','bolditalic');
+	  		} else if(!this.bold && this.italic){
+	  			this.setAttribute('currentlayerstyle','italic');
+	  		} else if(this.bold && !this.italic){
+	  			this.setAttribute('currentlayerstyle','bold');
+	  		} else if(!this.bold && !this.italic){
+	  			this.setAttribute('currentlayerstyle','plain');
+	  		}
+	  		//Debug.write("d: ",this.getAttribute('currentlayerstyle'));
+  		}
+  		]]>
+  	</method>
+	
+	<method name="editTextByValues" args="obj,txtName,txt,x,y,width,height">
+		<![CDATA[
+			if (!this.letterObjectIsActive){
+			    //Debug.write("editTextByValues",height); 
+			    this.edittextLetterObject = obj;
+				this.currentletterObj = new lz.baseDrawWords(this,{refObj:this,x:x,y:y,
+					initTextName:txtName,inittext:txt,width:width,height:height});
+				this.edittextLetter = true;
+			}	
+		]]>
+	</method>
+  	
+		<method name="drawTextField" args="textforfield,width,height,x,y" >
+
+			//Debug.write("drawTextField: ",textforfield,width,x,y);
+			var tempO = this.newTextField(this, 'letter' + this.getCounter(),
+					textforfield, width, height, x, y, this.currentlayersize,
+					this.currentlayerletter, this.currentlayerstyle);
+			this.layers.push(tempO);
+			this.drawTextFieldregister(textforfield, width, x, y,
+					this.currentlayersize, this.currentlayerletter,
+					this.currentlayerstyle, tempO.height, this
+							.getSWFDocumentStatus(), this.getZIndex());
+		</method>
+	
+	<!-- editModus -->
+	<method name="setTextFieldByName" args="txtName,textforfield,width,x,y,height" >
+		if ($debug) Debug.write("drawTextFieldByName ",txtName,textforfield,width,x,y);
+		//this.checkForChanges(txtName,textforfield,width,x,y,height);
+		this.edittextLetterObject.setAttribute('text',textforfield);
+		this.edittextLetterObject.setTextEncoded(textforfield);
+		this.edittextLetterObject.setAttribute('width',width);
+		this.edittextLetterObject.setAttribute('height',height);
+		this.edittextLetterObject.setAttribute('visible',true);
+		this.edittextLetterObject.setAttribute('fontsize',this.currentlayersize);
+		this.edittextLetterObject.setAttribute('fgcolor',this.currentlayerletter);
+		this.edittextLetterObject.setAttribute('fontstyle',this.currentlayerstyle);
+		this.updateObjectBounds();
+		this.updateByEditLetterObject();
+		//this.setModus('hand');
+	</method>	
+	
+	<method name="startLetter" args="oid_name">
+		if (oid_name == null) {
+			oid_name = 'letterTemp'+this.getCounter();
+		}		
+    	this.currentlayer = new lz.drawViewNew(this,{name:oid_name,width:this.width+2,height:this.height+2});
+	</method>
+	
+	<method name="drawletterBoundingBox" args="x1,y1,x2,y2">
+   		<![CDATA[
+    		
+    		currentlayer.lineWidth = 1;
+    		currentlayer.beginPath();
+    		currentlayer.moveTo(x1,y1);
+    		currentlayer.lineTo(x1,y2);
+    		currentlayer.lineTo(x2,y2);
+    		currentlayer.lineTo(x2,y1);
+    		currentlayer.lineTo (x1,y1);
+    		currentlayer.closePath();
+    		
+    		currentlayer.strokeStyle = 0x000000;
+    		currentlayer.stroke();
+    		
+    	]]>   
+  	</method>    
+  	
+	<method name="endLetter">
+		<![CDATA[
+			if ($debug) Debug.write("endLetter: ", this.currentlayer);
+			this.currentlayer.destroy();
+			var xProp = 0;
+			var yProp = 0;
+			if (this.startx <= this.endx) {
+				var stx = this.startx;
+			} else {
+				var stx = this.endx;
+			}
+			if (this.starty <= this.endy) {
+				var sty = this.starty;
+			} else {
+				var sty = this.endy;
+			}
+			var width = Math.abs(this.startx - this.endx);
+			var height = Math.abs(this.starty - this.endy);
+			if (width < 20 && height < 20) {
+				width = 160;
+				height = 30;
+			}
+
+			this.currentletterObj = new lz.baseDrawWords(this, {
+						refObj : this,
+						x : xProp + stx,
+						y : yProp + sty,
+						width : width,
+						height : height
+					});
+
+			if ($debug) Debug.write("currentletterObj: ", this.currentletterObj.x, this.currentletterObj.y);
+		]]>
+	</method>
+	
+	
+	<method name="updateByEditLetterObject" >
+		<![CDATA[
+		if ($debug) Debug.write("UpdateByObject : ",this.edittextLetterObject,this.edittextLetterObject.name);
+		var objName = this.edittextLetterObject.name;
+
+		for (var eg=0;eg<this.baseactionobjectList.length;eg++){
+			if (this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-1]==objName) {
+				if ($debug) Debug.write("Found Object: ",this.baseactionobjectList[eg]);
+			    this.baseactionobjectList[eg][1] = this.edittextLetterObject.text;
+			    this.baseactionobjectList[eg][2] = this.edittextLetterObject.fgcolor;
+			    this.baseactionobjectList[eg][3] = this.edittextLetterObject.fontsize;
+			    this.baseactionobjectList[eg][4] = this.edittextLetterObject.fontstyle;			
+				this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-5] = this.edittextLetterObject.x
+				this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-4] = this.edittextLetterObject.y;
+				this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-3] = this.edittextLetterObject.width;
+				this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-2] = this.edittextLetterObject.height;
+				var newA = this.baseactionobjectList[eg];
+				if (newA[0]=='paint') newA[1] = new Array();				
+				this.onsharedMessage('editText',newA);	
+			    break;
+			}
+		}	
+			
+		]]>
+	</method>	
+	
+	<method name="editTextByHistory" args="actionObject,obj">
+		var editObj = this.getObjectByName(actionObject[actionObject.length-1]);
+		//Debug.write("editTextByHistory: ",editObj,actionObject,actionObject.length);
+		editObj.setAttribute('text',actionObject[1]);
+		editObj.setTextEncoded(actionObject[1]);
+		editObj.setAttribute('width',actionObject[actionObject.length-3]);
+		editObj.setAttribute('height',actionObject[actionObject.length-2]);
+		editObj.setAttribute('fontsize',actionObject[3]);
+		editObj.setAttribute('fgcolor',actionObject[2]);
+		editObj.setAttribute('fontstyle',actionObject[4]);
+	</method>
+	
+	<method name="checkForChanges" args="txtName,textforfield,width,x,y,height">
+		<![CDATA[
+			//Debug.write("checkForChanges: 1 ",txtName,textforfield,width,x,y,height);
+			//Debug.write("checkForChanges: 2 ",this.edittextLetterObject.name,this.edittextLetterObject.text,this.edittextLetterObject.width,this.edittextLetterObject.x,this.edittextLetterObject.y,this.edittextLetterObject.height);
+			//there is always a change
+			
+		]]>
+	</method>	
+	
+	<method name="drawactionHistory" args="actionObject,obj">
+		this.newTextField(obj,actionObject[actionObject.length-1],actionObject[1],
+		              actionObject[actionObject.length-3],actionObject[actionObject.length-2],
+		              actionObject[actionObject.length-5],actionObject[actionObject.length-4],
+		              actionObject[3],actionObject[2],actionObject[4]);
+		              
+		this.doSWFDocumentStatus(this.currentlayer,actionObject[actionObject.length-7]);
+	</method>
+	
+		<method name="newTextField" args="obj,naming,textforfield,width,height,x,y,fontsize,fgcolor,fontstyle">
+			this.currentlayer = new lz.whiteBoardTextField(obj, {
+						name : naming,
+						x : x,
+						y : y,
+						height : height,
+						multiline : true,
+						width : width,
+						text : textforfield,
+						fontsize : fontsize,
+						fgcolor : fgcolor,
+						fontstyle : fontstyle
+					});
+			this.currentlayer.setTextEncoded(textforfield);
+			//Add Layer to global Layer  	
+			return this.currentlayer;
+		</method>
+	
+	<method name="drawTextFieldregister" args="textforfield,width,x,y,fontsize,fgcolor,fontstyle,height,swfObj,zIndex">
+		var actionObject = new Array();
+	    actionObject[0] = "letter";
+	    actionObject[1] = textforfield;
+	    actionObject[2] = fgcolor;
+	    actionObject[3] = fontsize;
+	    actionObject[4] = fontstyle;
+	    actionObject[5] = zIndex;//-8
+	    actionObject[6] = swfObj;//-7
+		actionObject[7] = this.counter;//-6
+	    actionObject[8] = x;//-5
+	    actionObject[9] = y;//-4
+	    actionObject[10] = width;//-3
+	    actionObject[11] = height;//-2
+	    actionObject[12] = this.currentlayer.name;//-1	    	    
+	    this.baseactionobjectList.push(actionObject);	
+	    this.checkStepLayers();
+	    this.onsharedMessage('draw',actionObject);	
+	</method>
+	
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/baseDrawObject.lzx b/WebContent/src/modules/conference/whiteboard/base/baseDrawObject.lzx
new file mode 100644
index 0000000..4e2a238
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/baseDrawObject.lzx
@@ -0,0 +1,862 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="baseDrawObject" extends="baseDrawPointer">
+    
+    <!-- it uses some of the attribute's defined in baseDrawImage -->
+    <attribute name="newSlideNumber" value="1" type="number" />
+    
+    <attribute name="fullFit" value="true" type="boolean" />
+    
+    <attribute name="modernToolbar" value="false" type="boolean" />
+
+    <!-- 
+    	Invoked by the Library directly
+    	Loads a SWFPresenation to the whiteBoard
+     -->
+    <method name="loadSWFPresentationSynced" args="url,fileName,moduleName,parentPath,room,domain,slideNumber,standardFileName">
+  		var now = new Date();
+  		//This invokes a Method which is in the remoteWhiteboard.lzx
+  		this.startNewObjectSyncProcess.isStarting = true;
+  		this.startNewObjectSyncProcess.uniqueObjectSyncName = fileName + now.getTime();
+  		this.startNewObjectSyncProcess.doCall();
+        //if ($debug) Debug.write("loadSWFPresentationSynced",url,fileName,moduleName,parentPath,room,domain,slideNumber,standardFileName);
+        this.addPresentationToLayer(this,url,'swfpresentationobject'+this.getCounter(),
+        	0,0,0,0,
+        	true,
+        	url,fileName,moduleName,parentPath,room,domain,slideNumber,
+        	100,0,0,0,0,
+        	this.startNewObjectSyncProcess.uniqueObjectSyncName,
+            standardFileName,this.fullFit);
+            
+        
+    </method>
+    
+    <method name="setCurrentScaleByFullFit" args="scaleFactor">
+    	<![CDATA[
+    	
+    		var tScale = Math.round(scaleFactor*100);
+    		
+    		this.getDisplayObject()._xscale = tScale;
+    		this.getDisplayObject()._yscale = tScale;
+    		
+    		this.setAttribute("x",0);
+    		this.setAttribute("y",0);
+    		
+    		//Already send by x,y change
+    		//this.onupdateScale.sendEvent(null);
+    		if ($debug) Debug.write("setCurrentScaleByFullFit -1- ",tScale);
+    		
+    		parent.parent.zoombox.setCurrentScaleByFullFit(tScale);
+    	
+    	]]>
+    </method>
+    
+    <method name="doUpdateFullFit" args="fullFit,zoom">
+    	<![CDATA[
+    	
+            if (canvas.ismoderator) {
+	    		if ($debug) Debug.write("doUpdateFullFit ",fullFit,zoom);
+	    	
+	    		var actionObject = new Array();
+	    		actionObject.push("whiteboardObj");
+	    		actionObject.push(fullFit);
+	    		
+	    		this.doFullFit(fullFit);
+	    		
+	    		actionObject.push(this.getDisplayObject()._xscale);
+	    		
+	    		if ($debug) Debug.write("doUpdateFullFit ",fullFit,this.getDisplayObject()._xscale);
+	    		this.onsharedMessage('whiteboardObj',actionObject);
+    		}	
+    	
+    	]]>
+    </method>
+    
+    <method name="doUpdateZoom" args="fullFit,zoom">
+    	<![CDATA[
+    	
+    		if ($debug) Debug.write("doUpdateZoom ",this.fullFit,zoom);
+    		
+    		this.getDisplayObject()._xscale = zoom;
+    		this.getDisplayObject()._yscale = zoom;
+    		
+    		if ($debug) Debug.write("doUpdateZoom is moderator ", canvas.ismoderator);
+            if (canvas.ismoderator) {
+	    		var actionObject = new Array();
+	    		actionObject.push("whiteboardObj");
+	    		actionObject.push(fullFit);
+	    		actionObject.push(zoom);
+    		
+	    		this.onupdateScale.sendEvent(null);
+	    		this.onsharedMessage('whiteboardObj',actionObject);	
+            }
+    	
+    	]]>
+    </method>
+    
+    <method name="doUpdateFullFitAndZoomRemote" args="actionObject">
+    	<![CDATA[
+    		parent.parent.zoombox.setWhiteboardValues(actionObject[1],actionObject[2]);
+    		if ($debug) Debug.write("doUpdateFullFitAndZoomRemote ",actionObject[1],actionObject[2]);
+
+    		this.doFullFit(actionObject[1]);
+    		
+    		if (!actionObject[1]) {
+	    		this.getDisplayObject()._xscale = actionObject[2];
+	    		this.getDisplayObject()._yscale = actionObject[2];
+	    		this.onupdateScale.sendEvent(null);
+    		}
+    	
+    	]]>
+    </method>
+    
+    <method name="doFullFit" args="v">
+        <![CDATA[
+        	if ($debug) Debug.write("Do Full Fit ? doFullFit: ", v);
+        	if ($debug) Debug.write(this.ObjectByName);
+        
+        	this.fullFit = v;
+        	
+            if (this.ObjectByName && this.ObjectByName.typeOfObject=="swf") {    
+                if (v) {
+                    if ($debug) Debug.write("Do Full Fit !");
+                    this.ObjectByName._swfView.initialLoadFullFit();
+                }
+            }
+            
+        ]]>
+    </method>
+    
+    <method name="checkSWFPresentation" args="url,fileName,moduleName,parentPath,room,domain,slideNumber">
+        //this.addPresentationToLayer(this,url,'swfpresentationobject'+this.getCounter(),0,0,0,0,true,url,fileName,moduleName,parentPath,room,domain,slideNumber);
+        <![CDATA[
+            for (var i=0;i<this.baseactionobjectList.length;i++){
+                if (fileName==this.baseactionobjectList[i][3]){
+                    var whiteBoardName = this.baseactionobjectList[i][this.baseactionobjectList[i].length-1];
+                    //Debug.write("Found File: ",whiteBoardName,this.baseactionobjectList[i]);
+                    //this.baseactionobjectList[i].bringToFront();
+                    this.doShowObjectBounds(whiteBoardName);
+                    this.newSlideNumber = slideNumber;
+                    this.doDocumentAction('setSlideNumber');
+                    return true;
+                }
+            } 
+            return false;
+        ]]>
+    </method>
+    
+	<!--
+		alterModus => this is added by the mod not remotely
+		
+		adds the SWF-Object to the Layer
+	 -->
+  	<method name="addPresentationToLayer" args="obj,urlName,nameing,posx,posy,width,height,alterModus,baseurl,fileName,moduleName,parentPath,room,domain,slideNumber,currentzoom,innerwidth,innerheight,innerx,innery,uniqueObjectSyncName,standardFileName,fullFit">
+        <![CDATA[
+            if ($debug) Debug.write("addPresentationToLayer",standardFileName);
+            //only show if it is not part of wml-file-object
+            //if (!this.isWmlLoaderImage) {
+            //    this.loadimageDataWinRef = new lz.loadWhiteboardWindow(canvas.main_content._content.inner,{refObj:this});
+            //    this.loadimageDataWinRef.setMessage(canvas.getLabelName(this.imageLoadMessageId));
+            //}
+        	//if ($debug) Debug.write("addPresentationToLayer uniqueObjectSyncName:",uniqueObjectSyncName,innerwidth,innerheight);
+            
+            var downloadurl = canvas.getUrl() + 'DownloadHandler?' +
+                    'fileName=' + encodeURIComponent(fileName) +
+                    '&moduleName=' + moduleName + 
+                    '&parentPath=' + encodeURIComponent(parentPath + '/') +
+                    '&room_id='+room + 
+                    '&sid='+canvas.sessionId;
+            
+            //var width= this.width;
+            //var height = this.height-200;
+            ////Debug.write("width:height: ",width,height);
+            
+            this.currentlayer = new lz.swfResourceView(obj,{refObj:this,name:nameing,
+            	x:posx,y:posy,alterModus:alterModus,
+            	baseurl:baseurl,fileName:fileName,moduleName:moduleName,parentPath:parentPath,
+            	room:room,domain:domain,slideNumber:slideNumber,
+            	currentzoom:currentzoom,fullFit:fullFit,
+                standardFileName:standardFileName,
+            	innerwidth:innerwidth,innerheight:innerheight,
+            	innerx:innerx,innery:innery,
+            	uniqueObjectSyncName:uniqueObjectSyncName});
+
+            //this.parent.parent.isloadingImage.sendEvent(this.currentlayer);
+            ////Debug.write("downloadurl. ",downloadurl);
+            this.currentlayer._swfView.setSource(downloadurl);
+            
+            this.addItemToDocumentToolBar();
+            this.doUpdateDocumentToolBar();
+		]]>
+  	</method>
+  	
+  	<!--
+  		TODO: check Recording
+  	
+  	<method name="addPresentationToLayerRecording" args="obj,urlName,nameing,posx,posy,width,height,alterModus,baseurl,fileName,moduleName,parentPath,room,domain,slideNumber,currentzoom,innerwidth,innerheight,innerx,innery">
+        <![CDATA[
+            //Debug.write("addPresentationToLayer",obj,nameing,posx,posy,width,height,alterModus,baseurl,fileName,moduleName,parentPath,room,domain,slideNumber);
+            //only show if it is not part of wml-file-object
+            if (!this.isWmlLoaderImage) {
+                this.loadimageDataWinRef = new lz.loadWhiteboardWindow(canvas.main_content._content.inner,{refObj:this});
+                this.loadimageDataWinRef.setMessage(canvas.getLabelName(this.imageLoadMessageId));
+            }
+            var downloadurl = canvas.getUrl()+'DownloadHandler?' +
+                    'fileName=' + encodeURIComponent(fileName) +
+                    '&moduleName=' + moduleName + 
+                    '&parentPath=' + encodeURIComponent(parentPath) +
+                    '&room_id='+room + 
+                    '&sid='+canvas.sessionId;
+            var width= this.width;
+            var height = this.height;
+            
+            this.currentlayer = new lz.swfResourceView(obj,{refObj:this,name:nameing,
+            	x:posx,y:posy,
+            	alterModus:alterModus,
+            	baseurl:baseurl,fileName:fileName,moduleName:moduleName,
+            	parentPath:parentPath,room:room,domain:domain,
+            	slideNumber:slideNumber,width:width,height:height,
+            	currentzoom:currentzoom,innerwidth:innerwidth,innerheight:innerheight,
+            	innerx:innerx,innery:innery,recorderModus:true});
+
+            this.parent.parent.isloadingImage.sendEvent(this.currentlayer);
+            this.currentlayer._swfView.setSource(downloadurl);
+            
+            //Add Layer to global Layer  	
+            return this.currentlayer;
+		]]>
+  	</method>  	
+    -->
+    
+    <method name="addSWFToLayerHistory" args="actionObject,refObj,isWmlLoader">
+        this.isWmlLoaderImage = isWmlLoader;
+        this.baseactionobjectList.push(actionObject);   
+        this.addPresentationToLayer(refObj,actionObject[1],actionObject[actionObject.length-1],
+            actionObject[actionObject.length-5],actionObject[actionObject.length-4],actionObject[actionObject.length-3],
+            actionObject[actionObject.length-2],false,actionObject[2],actionObject[3],actionObject[4],actionObject[5],
+            actionObject[6],actionObject[7],
+            actionObject[8],actionObject[16],actionObject[11],actionObject[12],actionObject[9],actionObject[10],
+            actionObject[17],actionObject[18],actionObject[19]);
+    </method>
+    
+    <!-- 
+    	Invoked by the remote Host, see sendWatchObject in baseDraw.lzx
+     -->
+    <method name="addSWFToLayerHistorySynced" args="actionObject,refObj">
+        this.baseactionobjectList.push(actionObject);	
+  		this.startNewObjectSyncProcess.isStarting = false;
+  		this.startNewObjectSyncProcess.uniqueObjectSyncName = actionObject[17];
+  		this.startNewObjectSyncProcess.doCall();        
+   		this.addPresentationToLayer(refObj,actionObject[1],actionObject[actionObject.length-1],
+  			actionObject[actionObject.length-5],actionObject[actionObject.length-4],
+  			actionObject[actionObject.length-3],actionObject[actionObject.length-2],
+  			false,
+  			actionObject[2],actionObject[3],actionObject[4],actionObject[5],actionObject[6],
+  			actionObject[7],actionObject[8],actionObject[16],actionObject[11],actionObject[12],
+  			actionObject[9],actionObject[10],actionObject[17],actionObject[18],actionObject[19]);
+  	</method>
+  	
+	<!--- 
+		invoke by the initial Loading process in remoteWhiteboard.lzx, 
+		does not invoke any Update Handler
+		once this object is loaded, it will throw an Update event of kind
+		addSWFToLayerHistoryToLocalLoaded
+  	 -->
+  	<method name="addSWFToLayerHistoryToLocal" args="actionObject,refObj">
+        this.baseactionobjectList.push(actionObject);	
+  		this.addPresentationToLayer(refObj,actionObject[1],actionObject[actionObject.length-1],
+  			actionObject[actionObject.length-5],actionObject[actionObject.length-4],
+  			actionObject[actionObject.length-3],actionObject[actionObject.length-2],
+  			false,
+  			actionObject[2],actionObject[3],actionObject[4],actionObject[5],actionObject[6],
+  			actionObject[7],actionObject[8],actionObject[16],actionObject[11],actionObject[12],
+  			actionObject[9],actionObject[10],actionObject[17],actionObject[18],actionObject[19]);
+  	</method>
+  	
+  	<!--
+  		TODO: Check Recording Process
+  	 
+  	<method name="addSWFToLayerHistoryRecording" args="actionObject,refObj,isWmlLoader">
+		this.isWmlLoaderImage = isWmlLoader;
+        this.baseactionobjectList.push(actionObject);	
+  		this.addPresentationToLayerRecording(refObj,actionObject[1],actionObject[actionObject.length-1],actionObject[actionObject.length-5],actionObject[actionObject.length-4],actionObject[actionObject.length-3],actionObject[actionObject.length-2],false,actionObject[2],actionObject[3],actionObject[4],actionObject[5],actionObject[6],actionObject[7],actionObject[8],actionObject[16],actionObject[11],actionObject[12],actionObject[9],actionObject[10]);
+  	</method>
+    -->
+  	
+  	<method name="registerNewSWF" args="urlname,posx,posy,width,height,baseurl,fileName,moduleName,parentPath,room,domain,slideNumber,innerx,innery,innerwidth,innerheight,zoomlevel,currentzoom,initwidth,initheight,uniquObjectSyncName,doUpdateMessage,standardFileName,fullFit,zIndex">
+		var actionObject = new Array();
+	    actionObject.push('swf');//0
+	    actionObject.push(urlname);//1
+		actionObject.push(baseurl);//2
+		actionObject.push(fileName);//3
+		actionObject.push(moduleName);//4
+		actionObject.push(parentPath);//5
+		actionObject.push(room);//6
+		actionObject.push(domain);//7
+        actionObject.push(slideNumber);//8
+        actionObject.push(innerx);//9
+        actionObject.push(innery);//10
+        actionObject.push(innerwidth);//11
+        actionObject.push(innerheight);//12
+        actionObject.push(zoomlevel);//13
+        actionObject.push(initwidth);//14
+        actionObject.push(initheight);//15
+        actionObject.push(currentzoom);//16
+        actionObject.push(uniquObjectSyncName);//17
+        actionObject.push(standardFileName);//18
+        actionObject.push(fullFit);//19
+        actionObject.push(zIndex);//-8
+        actionObject.push(null);//-7
+		actionObject.push(this.counter);//-6
+	    actionObject.push(posx);//-5
+	    actionObject.push(posy);//-4
+	    actionObject.push(width);//-3
+	    actionObject.push(height);//-2
+	    actionObject.push(this.currentlayer.name);//-1
+	    this.baseactionobjectList.push(actionObject);
+	    this.checkStepLayers();
+	    if (doUpdateMessage) this.onsharedMessage('draw',actionObject);	
+  	</method>    
+    
+	<!--
+		Invoked by the swfResource, if the alterModus = true,
+		throws an Update-Event to all connected Clients
+	 -->
+	<method name="storeTempValsAndLoadSyncListSWF" args="objRef">
+		this.syncImageRefObj = objRef;
+		this.doRegisterNewSwf(true);
+		this.sendCompletedObjectSyncEvent.uniqueObjectSyncName = this.syncImageRefObj.uniqueObjectSyncName;
+		this.sendCompletedObjectSyncEvent.doCall();
+	</method>    
+	
+	<!--
+		Invoked by the swfResource, if the alterModus = false,
+		throws NO Update-Event to all connected Clients
+	 -->
+	<method name="sendLoadNotificationSWF" args="objRef" >
+		this.syncImageRefObj = objRef;
+		this.doRegisterNewSwf(false);
+		this.sendCompletedObjectSyncEvent.uniqueObjectSyncName = this.syncImageRefObj.uniqueObjectSyncName;
+		this.sendCompletedObjectSyncEvent.doCall();
+	</method>
+	
+	<!-- 
+		TODO: Check Recording
+	-->
+	<method name="storeTempValsAndLoadSyncListSWFRecording" args="objRef">
+		this.syncImageRefObj = objRef;
+		//this.doRegisterNewSwf();
+		//this.sendCompleteSWFSync();
+		//This invokes a Method which is in the remoteWhiteboard.lzx
+		this.sendCompletedObjectSyncEvent.uniqueObjectSyncName = this.syncImageRefObj.uniqueObjectSyncName;
+		this.sendCompletedObjectSyncEvent.doCall();
+	</method>    
+    
+	
+
+	<!-- sending messages/notifications of sync process
+		syncing is now on server side implemented, swagner 12.06.2008
+	<netRemoteCallHib name="sendMessageWithClientSWF" funcname="sendMessageWithClient" remotecontext="$once{ canvas.thishib }" >   
+		<netparam name="vars"><method name="getValue">return parent.parent.imageLoadingCompleteMessage;</method></netparam>
+		<handler name="ondata" args="value">
+			<![CDATA[
+				//The onResult-Handler will be called be the rtmpconnection
+				////Debug.write("getValue : ",value);
+			]]>
+		</handler>   
+	</netRemoteCallHib>     
+     -->
+     
+	<!-- get list of clients before loading image cause
+		we have to show the sync process
+		
+		syncing is now on server side implemented, swagner 12.06.2008
+	
+    <netRemoteCallHib name="getSWFClientListScope" funcname="getClientListScope" remotecontext="$once{ canvas.thishib }" >          
+        <handler name="ondata" args="value">
+        	<![CDATA[
+				//The onResult-Handler will be called by the rtmpconnection
+				////Debug.write("getSWFClientListScope Instance: ",value);
+				parent._loadingUsersImageList = new Array();
+				for (var eg in value){
+					if (canvas.streamid != value[eg].streamid){
+						//Debug.write("parent._loadingUsersImageList value eg ",eg,value[eg]);
+						parent._loadingUsersImageList.push(value[eg]);
+					}
+				}
+				this.parent.doRegisterNewSwf();	
+				this.parent.startSWFsyncCheck();			
+            ]]>
+        </handler>   
+    </netRemoteCallHib>
+    	-->
+    
+    <method name="doRegisterNewSwf" args="doUpdateMessage">
+		//now send notifications to connected clients
+		this.setAttribute('drawmodus','hand');
+        
+		this.registerNewSWF(this.syncImageRefObj.baseurl,this.syncImageRefObj.x,
+                this.syncImageRefObj.y,this.syncImageRefObj._swfView.width,
+                this.syncImageRefObj._swfView.height,this.syncImageRefObj.baseurl,
+                this.syncImageRefObj.fileName,this.syncImageRefObj.moduleName,
+                this.syncImageRefObj.parentPath,this.syncImageRefObj.room,
+                this.syncImageRefObj.domain,this.syncImageRefObj.slideNumber,
+                this.syncImageRefObj._swfView.x,this.syncImageRefObj._swfView.y,
+                this.syncImageRefObj._swfView.width,this.syncImageRefObj._swfView.height,
+                this.syncImageRefObj.zoomlevel,this.syncImageRefObj.currentzoomFactor,
+                this.syncImageRefObj.initwidth,this.syncImageRefObj.initheight,
+                this.syncImageRefObj.uniqueObjectSyncName,doUpdateMessage,
+                this.syncImageRefObj.standardFileName,
+                this.syncImageRefObj.fullFit,
+                this.getZIndex());
+        
+		//set modus to hand so users can directly select that image
+		this.setModus('swf');
+    </method>
+	
+	<!-- after loading the objects check if all connected clients of that conference
+		have loaded the file completely, check it every 1 seconds
+		syncing is now on server side implemented, swagner 12.06.2008
+	<method name="startSWFsyncCheck">
+		<![CDATA[
+			if (this._loadingUsersImageList.length==0){
+				this.sendSyncNotificationSWF();
+			} else {
+				var txt = this.imageSyncMessageText+' '+this._loadingUsersImageList.length;
+				this.loadimageDataWinRef.setMessage(txt);
+				this.loadImageObjectTimer = new LzDelegate( this, "startImgaesyncCheck" );
+				lz.Timer.addTimer( this.loadImageObjectTimer, this.syncImageCheckTime );
+			}
+		]]>
+	</method>	
+	 -->
+
+	<method name="sendSyncNotificationSWF">
+		this.imageLoadingCompleteMessage = new Array();
+		this.imageLoadingCompleteMessage[0] = "whiteboard";
+		this.imageLoadingCompleteMessage[1] = "swfsynccomplete";
+		this.sendMessageWithClientSWF.doCall();
+	</method>	
+
+	<!-- invoked by remote client once he has completely loaded the wml-file 
+		remote client is waiting/still shows loading window untill all clients have 
+		completely loaded the object/moderator sends "synccomplete" message
+		
+		syncing is now on server side implemented, swagner 12.06.2008
+		
+	<method name="sendCompleteSWFLoadedRClient" args="client">
+		<![CDATA[
+			//detect self messageing
+			if (client.streamid!=canvas.streamid){
+				//remove client from sync list
+				for (var i=0;i<this._loadingUsersImageList.length;i++){
+					if (this._loadingUsersImageList[i].streamid==client.streamid){
+						////Debug.write("deleteing client from list: ",this._loadingUsersImageList[i].streamid);
+						this._loadingUsersImageList.splice(i,1);
+					}
+				}
+			}
+		]]>
+	</method>
+	
+	 -->
+	
+	<!-- invoked remotely by Moderator
+		all clients have succeed in loading the image
+		loading win can be closed
+		Alert: This notification will be send from Moderator and received by ALL clients INCLUDING
+		the moderator, so the moderator needs no extra command *close* for loading bar cause he
+		gets its own *sync* complete nofification
+		
+		syncing is now on server side implemented, swagner 12.06.2008
+			
+	<method name="sendCompleteSWFSync" args="client">
+		////Debug.write("sendCompleteSWFSync ",client);
+		this.loadimageDataWinRef.close();
+	</method>  
+     -->
+    
+    <!-- Document actions
+        this.ObjectByName is set by the method doShowObjectBounds of baseDraw and holds a reference to
+        the currently selected object on the whiteboard
+     -->
+    <method name="doDocumentAction" args="action">
+        <![CDATA[
+            if ($debug) Debug.info("doDocumentAction :1: sendCurrentSWFObject ",action);
+            if (this.ObjectByName.typeOfObject=="swf") {
+                if (action=="doc_first"){
+                    this.ObjectByName._swfView.setAttribute('frame',1);
+                } else if (action=="doc_pre"){
+                    if (this.ObjectByName._swfView.frame>1){
+                        this.ObjectByName._swfView.setAttribute('frame',(this.ObjectByName._swfView.frame-1));
+                    }
+                } else if (action=="doc_next"){
+                    if (this.ObjectByName._swfView.frame<this.ObjectByName._swfView.totalframes){
+                        this.ObjectByName._swfView.setAttribute('frame',(this.ObjectByName._swfView.frame+1));
+                    }
+                } else if (action=="doc_last"){
+                    this.ObjectByName._swfView.setAttribute('frame',(this.ObjectByName._swfView.totalframes));
+                } else if (action=="doc_zoom_minus"){
+                	
+                	if ($debug) Debug.write("doc_zoom_minus ");
+                	return;
+                	
+                    this.ObjectByName.currentzoomFactor-=this.ObjectByName.zoomlevel;       
+                    var newwidth = (this.ObjectByName.initwidth/100)*this.ObjectByName.currentzoomFactor;
+                    var newheight = (this.ObjectByName.initheight/100)*this.ObjectByName.currentzoomFactor;
+                    this.ObjectByName._swfView.setAttribute('width',newwidth);
+                    this.ObjectByName._swfView.setAttribute('height',newheight);
+                    this.boundingref.doSetInnerObjectsBounds(newwidth,newheight);
+                } else if (action=="doc_zoom_plus"){
+                	
+                	if ($debug) Debug.write("doc_zoom_plus ");
+                	return;
+                	
+                    this.ObjectByName.currentzoomFactor+=this.ObjectByName.zoomlevel;       
+                    //Debug.write("doc_zoom_plus 1",this.ObjectByName.currentzoomFactor,this.ObjectByName.zoomlevel);
+                    var newwidth = (this.ObjectByName.initwidth/100)*this.ObjectByName.currentzoomFactor;
+                    var newheight = (this.ObjectByName.initheight/100)*this.ObjectByName.currentzoomFactor;
+                    //Debug.write(this.ObjectByName);
+                    //Debug.write("doc_zoom_plus 2",newwidth,newwidth);
+                    this.ObjectByName._swfView.setAttribute('width',newwidth);
+                    this.ObjectByName._swfView.setAttribute('height',newheight);
+                    this.boundingref.doSetInnerObjectsBounds(newwidth,newheight);
+                } else if (action=="setSlideNumber"){
+                    if (this.newSlideNumber>0 && this.newSlideNumber<=this.ObjectByName._swfView.totalframes){
+                    	if ($debug) Debug.warn("Slide New Number ",this.newSlideNumber);
+                        this.ObjectByName._swfView.setAttribute('frame',this.newSlideNumber);
+                    } else {
+                        if ($debug) Debug.warn("Slide Number out of range of that document TotalFrames: ",this.ObjectByName._swfView.totalframes);
+                    }
+                }
+                this.ObjectByName.slideNumber =  this.ObjectByName._swfView.frame;
+                this.doUpdateDocumentToolBar();
+                
+                if ($debug) Debug.info("doDocumentAction :2: sendCurrentSWFObject");
+                
+                this.sendCurrentSWFObject(this.ObjectByName);
+                
+            }
+        ]]>
+    </method>
+    
+    <method name="addItemToDocumentToolBar">
+    	var docToolbar = this.getDocumentToolBar();
+    	docToolbar.addCurrentObject(this.currentlayer);
+    </method>
+    
+    <method name="setCurrentDocumentByToolBar" args="itemRefName">
+        if (this.boundingIsActive){
+        	if (this.boundingref.objRef.name != itemRefName) {
+        		this.boundingref._innerDrag.onmouseup.sendEvent();
+        	}
+        }
+        this.setCurrentDocument();
+    </method>
+    
+    <method name="setCurrentDocument" args="itemRefName">
+    	var t = this.getObjectByName(itemRefName);
+    	if (t==null) {
+    		return;
+    	}
+        this.ObjectByName = t;
+        this.doUpdateDocumentToolBar();
+        
+        if ($debug) Debug.write("setCurrentDocument ",itemRefName,this.ObjectByName);
+        
+        //not needed anymore
+        //this.sendItemToFront(itemRefName);
+        //this.bringItemToFrontByName(itemRefName);
+    </method>
+    
+    <method name="sendItemToFront" args="itemRefName">
+        var actionObject = new Array();
+        actionObject[0] = 'item';
+        actionObject[1] = itemRefName;
+        this.onsharedMessage('sendItemToFront',actionObject);
+    </method>    
+    
+    <method name="bringItemToFrontByName" args="itemRefName">
+        this.ObjectByName = this.getObjectByName(itemRefName);
+        this.ObjectByName.bringToFront();
+    </method>
+    
+    <method name="doUpdateDocumentToolBarByParticipant" args="itemObjName">
+        this.ObjectByName = this.getObjectByName(itemObjName);
+        this.doUpdateDocumentToolBar();
+    </method>
+    
+    <method name="doUpdateDocumentToolBar">
+    	<![CDATA[
+        	if (this.modernToolbar) {
+                //@deprecated
+                //this code is not valdi for the latest dev anymore, only inside for 
+                //backward compatibility
+    	        //this.parent.parent._documentmenu._currentSlideNo.setAttribute('text',this.ObjectByName._swfView.frame);
+    	        //this.parent.parent._documentmenu._totalSlideNo.setAttribute('text',this.ObjectByName._swfView.totalframes);
+    	        //this.parent.parent._documentmenu._zoom.setAttribute('text',this.ObjectByName.currentzoomFactor);
+        	
+            } else {
+                
+        		var docToolbar = this.getDocumentToolBar();
+        		
+                if ($debug) Debug.write("doUpdateDocumentToolBar ",docToolbar.parent.parent.ignoreUpdates);
+                docToolbar.parent.parent.ignoreUpdates = true;
+                
+        		if (this["ObjectByName"] && this.ObjectByName != null && this.ObjectByName._swfView) {
+                    
+                    if ($debug) Debug.warn("doUpdateDocumentToolBar ",this.ObjectByName.fullFit);
+                    
+        			docToolbar._currentSlideNo.setAttribute('text',this.ObjectByName._swfView.frame);
+                    docToolbar._totalSlideNo.setAttribute('text',this.ObjectByName._swfView.totalframes);
+                    //docToolbar._zoom.setAttribute('text',this.ObjectByName.currentzoomFactor);
+                    //docToolbar.parent._fullFit.setValue(this.ObjectByName.fullFit);
+        		} else {
+        			docToolbar._currentSlideNo.setAttribute('text',"0");
+                    docToolbar._totalSlideNo.setAttribute('text',"0");
+                    //docToolbar._zoom.setAttribute('text',"100");
+                    //docToolbar.parent._fullFit.setValue(false);
+        		}
+                
+                docToolbar.parent.parent.ignoreUpdates = false;
+    	        
+        	}
+    	]]>
+    </method>
+    
+    <method name="doDeleteFromDocumentsBar" args="itemRefName">
+    	var docToolbar = this.getDocumentToolBar();
+    	docToolbar.removeDocument(itemRefName);
+    </method>
+    
+    <method name="clearDocumentsBar">
+    	var docToolbar = this.getDocumentToolBar();
+    	docToolbar.clearDocumentsBar();
+    </method>
+    
+    <method name="sendCurrentSWFObject" args="objRef">
+		<![CDATA[
+            if ($debug) Debug.write("sendCurrentSWFObject :: ",objRef,objRef.name);
+            var objName = objRef.name;
+            for (var eg=0;eg<this.baseactionobjectList.length;eg++){
+                if (this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-1]==objName) {
+                    ////Debug.write("Found Object: ",this.baseactionobjectList[eg]);
+                    var sendSlideObjectUpdate = false;
+                    if (this.baseactionobjectList[eg][8] != objRef.slideNumber) {
+                    	sendSlideObjectUpdate = true;
+                    }
+                    this.baseactionobjectList[eg][8] = objRef.slideNumber;
+                    this.baseactionobjectList[eg][9] = objRef._swfView.x;
+                    this.baseactionobjectList[eg][10] = objRef._swfView.y;
+                    this.baseactionobjectList[eg][11] = objRef._swfView.width;
+                    this.baseactionobjectList[eg][12] = objRef._swfView.height;
+                    this.baseactionobjectList[eg][13] = objRef.zoomlevel;
+                    this.baseactionobjectList[eg][16] = objRef.currentzoomFactor;
+                    this.baseactionobjectList[eg][19] = objRef.fullFit;
+                    var newA = this.baseactionobjectList[eg];
+                    if (newA[0]=='paint') newA[1] = new Array();				
+                    this.onsharedMessage('swf',newA);	
+                    if (sendSlideObjectUpdate) {
+                        this.updateObjectsToSlideNumber(this.baseactionobjectList[eg]);
+                    }
+                    break;
+                }
+            }	
+		]]>
+	</method>
+    
+    <method name="remoteObjectUpdate" args="lastactionObject">
+        <![CDATA[
+        
+            var obj = this.getObjectByName(lastactionObject[lastactionObject.length-1]);
+            
+            if ($debug) Debug.write("remoteObjectUpdate :: ",obj.fullFit);
+            obj._swfView.doSendChangeValue = false;
+            var sendSlideObjectUpdate = false;
+            if (obj.slideNumber != lastactionObject[8]) {
+            	sendSlideObjectUpdate = true;
+            }
+			obj.slideNumber = lastactionObject[8];
+			obj._swfView.setAttribute('x',lastactionObject[9]);
+			obj._swfView.setAttribute('y',lastactionObject[10]);
+			obj._swfView.setAttribute('width',lastactionObject[11]);
+            obj._swfView.setAttribute('height',lastactionObject[12]);
+            //obj.zoomlevel = lastactionObject[13];
+            //obj.currentzoomFactor = lastactionObject[16];
+            obj.fullFit = lastactionObject[19];
+            
+            if ($debug) Debug.write("DO initialLoadFullFit ?? ",obj.fullFit);
+            
+            if (obj.fullFit) {
+                if ($debug) Debug.write("DO initialLoadFullFit !! ");
+                obj._swfView.initialLoadFullFit();
+            }
+            
+            obj._swfView.setAttribute('frame',obj.slideNumber);
+            obj._swfView.doSendChangeValue = true;
+            
+            this.doUpdateDocumentToolBarByParticipant(obj.name);
+            
+            this.remoteUpdateBaseObjectList(lastactionObject);
+            
+            if (sendSlideObjectUpdate) {
+                this.updateObjectsToSlideNumber(lastactionObject);
+            }
+        ]]>
+    </method>
+    
+    <method name="remoteUpdateBaseObjectList" args="actionObject">
+		<![CDATA[
+            ////Debug.write("remoteUpdateBaseObjectList : ",actionObject);
+            for (var eg=0;eg<this.baseactionobjectList.length;eg++){
+                if (this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-1]==actionObject[actionObject.length-1]) {
+                    this.baseactionobjectList[eg] = actionObject;
+                    break;
+                }
+            }	
+		]]>
+    </method>
+    
+    
+    
+    
+    
+    <method name="playVideoSynced" args="fileExplorerItemId,fileName,flv_width,flv_height">
+        <![CDATA[
+        
+            if ($debug) Debug.write("playVideoSynced : ",fileExplorerItemId,fileName,flv_width,flv_height);
+        
+            var tName = 'flv'+this.getCounter();
+            
+            this.currentlayer = new lz.whiteboardVideoPlayer(this,{
+                                            name:tName,
+                                            fileExplorerItemId:fileExplorerItemId,
+                                            title:fileName,
+                                            sendInit:true,
+                                            flv_width:flv_width,
+                                            flv_height:flv_height
+                                        });
+                                        
+            this.layers.push(this.currentlayer);  
+        ]]>
+    </method>
+    
+    <method name="sendNewVideoRemote" args="refObj">
+        <![CDATA[
+        
+            if ($debug) Debug.write("sendNewVideoRemote : ",refObj.fileExplorerItemId,refObj.title);
+        
+            this.flvregisterFinal(refObj.name,refObj.x,refObj.y,refObj.width,refObj.height,
+                                                refObj.fileExplorerItemId,refObj.title,
+                                                false, //isPlaying
+                                                refObj.flv_width,
+                                                refObj.flv_height,
+                                                this.getZIndex());
+                        
+            
+        ]]>
+    </method>
+    
+    <method name="flvregisterFinal" args="newName,x,y,width,height,fileExplorerItemId,fileName,isPlaying,flv_width,flv_height,zIndex">
+        var actionObject = new Array();
+        actionObject[0] = 'flv';
+        actionObject[1] = fileExplorerItemId;
+        actionObject[2] = fileName;
+        actionObject[3] = isPlaying;
+        actionObject[4] = flv_width; 
+        actionObject[5] = flv_height;   
+        actionObject[6] = zIndex;//-8
+        actionObject[7] = null;//-7
+        actionObject[8] = this.counter;//-6
+        actionObject[9] = x;//-5
+        actionObject[10] = y;//-4
+        actionObject[11] = width;//-3
+        actionObject[12] = height;//-2
+        actionObject[13] = newName;//-1
+        this.baseactionobjectList.push(actionObject);       
+        this.onsharedMessage('draw',actionObject);
+    </method>     
+    
+    <method name="drawFlvToHistory" args="lastActionObject,parentView">
+        <![CDATA[
+        
+            if ($debug) Debug.write("drawFlvToHistory PLAY :: ",lastActionObject[3]);
+        
+            this.currentlayer = new lz.whiteboardVideoPlayer(this,{
+                                            name:lastActionObject[lastActionObject.length-1],
+                                            fileExplorerItemId:lastActionObject[1],
+                                            title:lastActionObject[2],
+                                            flv_width:lastActionObject[4],
+                                            flv_height:lastActionObject[5]
+                                        });
+               
+            if (lastActionObject[3]) {
+                this.currentlayer.playRemote();
+            }
+                                        
+            this.layers.push(this.currentlayer);  
+            
+        ]]>
+    </method>
+    <!-- 
+     x:lastActionObject[lastActionObject.length-5],
+     y:lastActionObject[lastActionObject.length-4],
+     width:lastActionObject[lastActionObject.length-3],
+     height:lastActionObject[lastActionObject.length-2]
+     -->
+    
+    <method name="playFLV" args="refObj,play">
+        <![CDATA[
+            
+            for (var eg=0;eg<this.baseactionobjectList.length;eg++){
+                if (this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-1]==refObj.name) {
+                    ////Debug.write("Found Object: ",this.baseactionobjectList[eg]);
+                    
+                    this.baseactionobjectList[eg][3] = play;
+                    
+                    if ($debug) Debug.write("playFLV :: ",this.baseactionobjectList[eg]);
+                    this.onsharedMessage('flv',this.baseactionobjectList[eg]);
+                    
+                    break;
+                }
+            }
+            
+        ]]>
+    </method>
+    
+    <method name="playFLVRemote" args="actionObject">
+
+        var tObj = this.getObjectByName(actionObject[actionObject.length-1]);
+        
+        if (actionObject[3]) {
+            tObj.playRemote();
+        }
+        if (!actionObject[3]) {
+            tObj.stopRemote();
+        }
+
+    </method>
+
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/baseDrawSave.lzx b/WebContent/src/modules/conference/whiteboard/base/baseDrawSave.lzx
new file mode 100644
index 0000000..39b894c
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/baseDrawSave.lzx
@@ -0,0 +1,233 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="baseDrawSave" extends="baseDrawImage" >
+	
+	<!-- saveing a file to a wml Object -->
+	<attribute name="savefileName" value="savefileName1" type="string" />
+	<attribute name="fileData" value="null" />
+	<attribute name="savefileDataWinRef" value="null" />
+	
+	<!-- loading a file from a wml Object
+	<attribute name="loadfileData" value="null" />
+	<attribute name="loadfileDataIndex" value="0" type="number" />
+	<attribute name="loadfileDataWinRef" value="null" />
+	<attribute name="loadObjectTimer" value="null" />
+	<attribute name="loadmessageId" value="206" type="number" />
+	<attribute name="syncmessageId" value="207" type="number" />
+	<attribute name="_loadmessageTxt" value="" type="string" />
+	<attribute name="_loadingUsers" value="null" />
+	<attribute name="wmlfileName" value="" type="string" />
+	<attribute name="wmlroom" value="" type="string" />
+	<attribute name="wmldomain" value="" type="string" />
+	<attribute name="wmlspreadNews" value="false" type="boolean" />
+	<attribute name="wmlLoadingCompleteMessage" value="null" />
+	<attribute name="synccheckTime" value="1000" type="number" />
+	 -->
+	
+	<!-- loading all stage objects on init -->
+	<attribute name="isInitLoader" value="false" type="boolean" />
+    
+    <!-- Export Image Type -->
+    <attribute name="exportType" value="svg" type="string" />
+    
+	<!-- Vars for storing screenshot
+		removed cause of performance and 
+		no php backend availible anymore -->		
+    <attribute name="MCRef" value="null" />
+    
+    <attribute name="pixelArray" value="null" />
+    <attribute name="snap" value="null" />
+    <attribute name="bpData" value="null" />
+    <attribute name="MatrixValue" value="null" />
+    
+    <attribute name="w" value="0" type="number" />
+    <attribute name="h" value="0" type="number" />
+    
+    <attribute name="a" value="0" type="number" />
+    
+    <attribute name="pixel_del" value="$once{ new LzDelegate(this, 'buildPixelArray' )}" />
+    
+    <attribute name="sendpictureName" value="snapchot.jpg" type="string" />
+    
+    <attribute name="isSendPartArray" value="true" type="boolean" />
+    
+    <attribute name="isRecordingLoad" value="false" type="boolean" />
+    <attribute name="isinitRecordingLoad" value="false" type="boolean" />
+	
+	<!-- Start and Stop Event will be thrown by the loading process -->
+	<event name="onwmlloadStart" />
+	<event name="onwmlloadStop" />
+    
+    <!-- Images will be send in packages 
+    	so timeout is workaround
+     -->
+    <attribute name="sendPartURL" value="http://host/createimagefrombitmap.php" type="string" />
+    
+    <!-- create Image from whole Array
+    	Large Images will not be rendered correctly here cause
+    	there can be a timeout -->
+    <attribute name="sendURL" value="http://host/createimagefrombitmap.php" type="string" />
+    
+    <event name="onprogress" />
+    
+    <method name="catchSnapshot">
+        <![CDATA[
+        this.MCRef = this.getDisplayObject();
+        //Debug.write("this.MCRef: ",this.MCRef);
+        this.snap = new flash.display.BitmapData(this.width, this.height, false, 0 );
+        
+        //Matrix to scale the new image
+        this.MatrixValue = new flash.geom.Matrix();
+        this.MatrixValue.scale(1, 1);
+        //Copy video image
+        this.snap.draw(this.MCRef,  this.MatrixValue); 
+        
+        this.bpData = this.snap.getPixels(this.snap.rectangle);
+        
+        this.w = this.width;
+        this.h = this.height;
+        this.a = 0;
+        this.pixelArray = new Array();
+        
+        //pixel_del.register(lz.Idle,'onidle');
+        this.saveAsImage.doCall();
+        ]]>
+    </method>
+    
+	  	<netRemoteCallHib name="saveAsImage" funcname="fileservice.saveAsImage" remotecontext="$once{ canvas.thishib }" >   
+	  		<netparam><method name="getValue">return parent.parent.bpData;</method></netparam>
+	        <handler name="ondata" args="value">	
+	        	//Debug.write("  saveAsImage: ",value);              	          				
+	        </handler>	
+	  	</netRemoteCallHib>     
+    
+    <method name="buildPixelArray" args="item">
+        <![CDATA[
+        
+        for(var b=0; b<=this.h; b++){
+            var tmp = this.snap.getPixel(a, b);
+            this.pixelArray.push(tmp.toString(16));
+        }
+        var perc =  Math.round((this.a*100)/this.w);
+        if (this.onprogress) this.onprogress.sendEvent(perc);            
+        this.a++
+        if(this.a>this.w){ 
+            //Finish capturing
+            if (this.isSendPartArray){
+            	this.sendPHPData(this.pixelArray, this.h, this.w);
+            } else {
+	            this.sendPHPData(this.pixelArray, this.h, this.w);
+	        }
+            //free memory
+            this.snap.dispose();
+            pixel_del.unregisterAll();
+        }
+        
+        ]]>
+    </method>
+    
+    <method name="sendPHPData" args="pix,pixH,pixW">
+        //Debug.write("### sendPHPData: ",pix,pixH,pixW);
+        <![CDATA[
+	        //Create the LoadVars object and pass data to PHP script
+	        var output = new LoadVars();
+	        output.img = pix.toString();
+	        output.height = pixH;
+	        output.width = pixW;
+	        //The page (and this movie itself) should be in a server to work
+	        output.send(this.sendURL, "output", "POST");
+        ]]> 
+    </method>
+	
+	<!-- saving all object on whiteBoard as wml-file -->
+	
+	<handler name="sendObject">
+		if ($debug) Debug.write("sendObject doSave: ",this.baseactionobjectList);
+		this.fileData = this.baseactionobjectList;
+		this.savefileDataWinRef = new lz.saveAsWmlWindow(canvas.main_content._content.inner,{
+                                                refObj:this});
+	</handler>
+	
+	<method name="confirmSaveAsObject" args="fileName" >
+		this.savefileName = fileName;
+		this.saveAsObject.doCall();
+	</method>
+    
+  	<netRemoteCallHib name="saveAsObject" funcname="fileservice.saveAsObject" remotecontext="$once{ canvas.thishib }" >   
+  		<netparam><method name="getValue"> return canvas.sessionId; </method></netparam>
+		<netparam><method name="getValue">return hib.currentroomid;</method></netparam>        				  
+		<netparam><method name="getValue"> return parent.parent.savefileName; </method></netparam>
+		<netparam><method name="getValue"> return parent.parent.fileData;</method></netparam>
+        <handler name="ondata" args="value">	
+			<![CDATA[
+				if ($debug) Debug.write("  saveAsImage: ",value);   
+			    if (value>0){
+					parent.savefileDataWinRef.close();
+					canvas.currentFileExplorer.loadFiles();
+				} else {
+					new lz.rpcErrorDialog(canvas.main_content._content.inner,{errorid:value});
+				}
+			]]>  	          				
+        </handler>	
+  	</netRemoteCallHib>  
+        
+    <method name="confirmSaveAsImageTypeExport" args="fileName,type">
+        this.savefileName = fileName;
+        this.exportType = type;
+        this.fileData = this.baseactionobjectList;
+        this.addPrintList.doCall();
+    </method> 
+     
+    <method name="confirmSaveAsImageExport" args="fileName">
+        this.savefileName = fileName;
+        this.exportType = "svg";
+        this.fileData = this.baseactionobjectList;
+        this.addPrintList.doCall();
+    </method>	
+    
+        <netRemoteCallHib name="addPrintList" funcname="printservice.addPrintList" remotecontext="$once{ canvas.thishib }" > 
+          
+            <netparam><method name="getValue">return canvas.sessionId; </method></netparam>
+            <!--             
+            <netparam><method name="getValue">return parent.parent.savefileName; </method></netparam>
+             -->
+            <netparam><method name="getValue">return parent.parent.fileData;</method></netparam>
+            <netparam><method name="getValue">return parent.parent.width;</method></netparam>
+            <netparam><method name="getValue">return parent.parent.height;</method></netparam>
+            <handler name="ondata" args="value">    
+                <![CDATA[
+                    if ($debug) Debug.write("addPrintList: ",value);   
+                    var downloadurl = canvas.getUrl()+'ExportToImage?' +
+					                    'fileName=' + parent.savefileName +
+					                    '&hash='+value + 
+                                        '&exportType=' + parent.exportType +
+					                    '&sid='+canvas.sessionId;
+                                        
+                    lz.Browser.loadURL(downloadurl,"_BLANK");
+                ]]>                             
+            </handler>  
+        </netRemoteCallHib>     
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/baseDrawWords.lzx b/WebContent/src/modules/conference/whiteboard/base/baseDrawWords.lzx
new file mode 100644
index 0000000..2ea27c3
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/baseDrawWords.lzx
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="styleableInput" extends="customInputtext" x="1" y="1" bgcolor="0xFFFFFF" multiline="true"
+		width="${ parent.width-2 }" height="${ parent.height-2 }" >
+
+	<attribute name="startAdjustHight" value="false" type="boolean" />
+	
+	<attribute name="setFocusOnInit" value="true" type="boolean" />
+	
+	<handler name="oninit">
+		if (this.setFocusOnInit) {
+		    lz.Focus.setFocus(this);	
+		}
+	</handler>
+	<handler name="ontext">
+	<![CDATA[
+		var gh = this.getTextHeight();
+		if (gh>20) {
+			if (gh+this.fontsize > this.height){
+				this.setAttribute("height",(gh+this.fontsize));
+			}
+		}
+	]]>
+	</handler>	
+	<handler name="onkeyup" args="key">
+       <![CDATA[
+       // 13 is return
+       if ((key==27) || (key==13)) {
+       		this.parent.parent.adjustHeight();
+       }
+       ]]>
+    </handler>	
+	<handler name="onheight">
+		if (this.startAdjustHight) this.parent.parent.adjustHeight();
+	</handler>
+	
+	<method name="getURLEncodedText">
+		<![CDATA[
+		
+		    var tString = this.getText();
+		    
+		    //tString = tString.replace("<","&#60;");
+		    //tString = tString.replace(">","&#62;");
+		    
+		    return tString;
+		
+		]]>
+	</method>
+	
+</class>
+
+<class name="baseDrawWords" extends="view" bgcolor="black" 
+	width="120" height="40">
+	
+	<attribute name="refObj" value="null" />
+	
+	<attribute name="inittext" value="" type="string" />
+	<attribute name="initTextName" value="" type="string" />
+
+	<method name="drawtoArray">
+		<![CDATA[
+		if ($debug) Debug.write("drawtoArray");
+		if (this._textview._textview.getURLEncodedText().length!=0 && this.inittext.length==0){
+            
+            //var scale = this.parent._drawarea.width / this.parent._drawarea.initW;
+		    var y = ( this.getAttributeRelative('y',this.refObj)-this.refObj.y+1 );
+            if ($debug) Debug.write("this.refObj.y ",this.refObj.y);
+			if ($debug) Debug.write("this.x-this.refObj.x-this.refObj.parent.x ",y);
+			var x = ( this.getAttributeRelative('x',this.refObj)-this.refObj.x+1 );
+			
+			if(canvas._drawarea.isSnapToGrid){        		
+	    			        	   
+	            x = Math.round(x/canvas._drawarea.gridWidth)*canvas._drawarea.gridWidth;
+		    	y = Math.round(y/canvas._drawarea.gridWidth)*canvas._drawarea.gridWidth;
+            
+            } 
+			
+        	this.refObj.drawTextField(this._textview._textview.getURLEncodedText(),
+                    this._textview._textview.width,
+                    this._textview._textview.height,x,y);
+                    
+        } else if (this._textview._textview.getURLEncodedText().length!=0 && this.inittext.length!=0){
+            
+        	if ($debug) Debug.write("edit modi ",this.initTextName);
+		    var y = (this.getAttributeRelative('y',this.refObj)-this.refObj.y+1);
+			if ($debug) Debug.write("this.x-this.refObj.x-this.refObj.parent.x ",y);
+			var x = (this.getAttributeRelative('x',this.refObj)-this.refObj.x+1);
+            
+			if(canvas._drawarea.isSnapToGrid){        		
+	    			        	   
+	            x = Math.round(x/canvas._drawarea.gridWidth)*canvas._drawarea.gridWidth;
+		    	y = Math.round(y/canvas._drawarea.gridWidth)*canvas._drawarea.gridWidth;
+            
+            } 
+			
+        	this.refObj.setTextFieldByName(this.initTextName,
+                this._textview._textview.getURLEncodedText(),
+                this._textview._textview.width,
+                x,y,this._textview._textview.height);
+                
+        } else {
+			if ($debug) Debug.write("text smaller then 0",this._textview._textview.getURLEncodedText());
+			
+			if ($debug) Debug.write("this.gridWidth",canvas._drawarea.gridWidth);
+			if ($debug) Debug.write("this.isSnapToGrid",canvas._drawarea.isSnapToGrid);
+		}
+        this.giveup();
+		]]>
+    </method>
+    
+	<method name="giveup">
+		this.refObj.letterObjectFree(this);
+		this.destroy();
+	</method>
+	    
+	<handler name="oninit">
+		//startAdjustHight is set to true later, cause otherwise update 
+		//Events would set the height to 
+		//text field default height
+		this.refObj.letterObjectClose(this);
+        var t = new lz.styleableInput(this._textview,{
+	                name:'_textview',text:this.inittext,
+	                fontstyle:this.refObj.currentlayerstyle,
+	                fontsize:this.refObj.currentlayersize,
+	                fgcolor:this.refObj.currentlayerletter
+                });
+        //if ( this.inittext.length==0 ) this.setAttribute('height',40);
+		if ( this.inittext.length!=0 ) {
+		    this.refObj.edittextLetterObject.setAttribute('visible',false);
+		    this.refObj.setModus('letter');
+	    }
+		t.startAdjustHight = true;
+	</handler>
+    
+    <handler name="newStyleEvent">
+        this.callNew(this._textview._textview.getText());
+    </handler>
+  
+	<method name="callNew" args="txxt">
+		//if ($debug) Debug.write("callNew height-2 ");
+		
+        var h = this.getHeight();
+        
+        //if ($debug) Debug.write("callNew height-3 ",this);
+        //if ($debug) Debug.write("callNew height-4 ",this.getHeight());
+        
+		this._textview._textview.destroy();
+		var t = new lz.styleableInput(this._textview,{
+			        setFocusOnInit:false,
+                    name:'_textview',text:txxt,
+                    fontstyle:this.refObj.currentlayerstyle,
+                    fontsize:this.refObj.currentlayersize,
+                    fgcolor:this.refObj.currentlayerletter
+                });
+        this.setAttribute("height",h);
+	</method>
+	<method name="adjustHeight">
+		if ($debug) Debug.write("+++ adjustHeight +++");
+		this.setAttribute('height',this._textview._textview.height+2);
+	</method>
+    
+    <method name="_removeResizestateFromThis">
+    	this.rs.remove();
+    </method>
+    
+    <view name="_textview" width="${ parent.width }" height="${ parent.height }" />
+    
+    <resizestate name="rs" >
+    	<text x="2" y="2" text="${ 'w: '+parent.width+' h: '+parent.height }" bgcolor="white"/>
+    </resizestate>
+	<view resource="_boundingBoxPointerUR" x="${ parent.width-this.width }" y="${ parent.height-this.height }" 
+		onmousedown="parent.rs.apply()" onmouseup="parent._removeResizestateFromThis()" >
+		<labelTooltip text="Resize this Object" />
+	</view>    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/drawViewNew.lzx b/WebContent/src/modules/conference/whiteboard/base/drawViewNew.lzx
new file mode 100644
index 0000000..dcfcf88
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/drawViewNew.lzx
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="drawViewInner" extends="drawview" x="0" y="0" >
+	
+</class>
+
+<!--
+    this is the Base Container for all Whiteboard Objects
+ -->
+<class name="drawViewNew" extends="drawview" cachebitmap="false" x="0" y="0" >
+	
+	<attribute name="typeOfObject" value="paint" type="string" />
+
+    <attribute name="initwidth" value="0" type="number" />
+    <attribute name="initheight" value="0" type="number" />
+    
+    <event name="prepareForDelete" />
+    
+    <handler name="oninit">
+        this.initwidth=this.width;
+        this.initheight=this.height;
+    </handler>
+    
+	<handler name="onwidth">
+        <![CDATA[
+	        if (this.isinited) {
+		        if(this.name.indexOf('line')>=0 
+		        	|| this.name.indexOf('uline')>=0 
+		        	|| this.name.indexOf('drawarrow')>=0
+		        	|| this.name.indexOf('paint')>=0) {
+		        	this.getDisplayObject()._xscale = (this.width/this.initwidth)*100;
+		        } else if (this.name.indexOf('rectangle')>=0) {
+	        		parent.redrawRectItemByScaling(this);
+	        	} else if  (this.name.indexOf('ellipse')>=0) {
+	        		parent.redrawEllipseItemByScaling(this);
+	        	}	        	
+	        }
+        ]]>
+    </handler>
+    
+    <handler name="onheight">
+    	<![CDATA[
+	        if (this.isinited) {
+		        if(this.name.indexOf('line')>=0 
+		        	|| this.name.indexOf('uline')>=0 
+		        	|| this.name.indexOf('drawarrow')>=0
+		        	|| this.name.indexOf('paint')>=0) {
+		        	this.getDisplayObject()._yscale = (this.height/this.initheight)*100;  
+		        } else if (this.name.indexOf('rectangle')>=0) {
+	        		parent.redrawRectItemByScaling(this);
+	        	} else if  (this.name.indexOf('ellipse')>=0) {
+	        		parent.redrawEllipseItemByScaling(this);
+	        	}	
+	        }  	
+        ]]>   
+    </handler>
+    <!-- 
+    <dragstate name="dragger" drag_axis="both"
+	    drag_min_x="0"
+	    drag_max_x="$once{parent.width - this.width}"
+	    drag_min_y="0"
+	    drag_max_y="$once{parent.height - this.height}">
+    </dragstate>
+     -->
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/imageForDrawView.lzx b/WebContent/src/modules/conference/whiteboard/base/imageForDrawView.lzx
new file mode 100644
index 0000000..9b6d544
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/imageForDrawView.lzx
@@ -0,0 +1,195 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="imageForDrawView" extends="image" stretches="both">
+	
+	<event name="prepareForDelete" />
+	
+	<attribute name="downloadurl" value="" type="string" />
+		
+	<attribute name="alterModus" value="true" type="boolean" />
+	<attribute name="isLocalSync" value="false" type="boolean" />
+	
+	<attribute name="recorderModus" value="false" type="boolean" />
+	
+	<attribute name="baseurl" value="" type="string" />
+	<attribute name="fileName" value="" type="string" />
+	<attribute name="moduleName" value="" type="string" />
+	<attribute name="parentPath" value="" type="string" />
+	<attribute name="room" value="" type="string" />
+	<attribute name="domain" value="" type="string" />
+	
+	<attribute name="remotewidth" value="0" type="number" />
+	<attribute name="remoteheight" value="0" type="number" />
+	
+	<attribute name="typeOfObject" value="image" type="string" />
+	
+	<!-- holds the reference_id to the SyncProcess -->
+	<attribute name="uniqueObjectSyncName" value="" type="string" />
+	
+		<!--
+			if (this.width>this.refObj.width){
+				var height = this.height/(this.width/this.refObj.width)
+				this.setAttribute('width',this.refObj.width);
+				this.setAttribute('height',height);
+				this.setAttribute('x',0);
+			}
+			if (this.height>this.refObj.height){
+				var width = this.width/(this.height/this.refObj.height)
+				this.setAttribute('height',this.refObj.height);
+				this.setAttribute('width',width);
+				this.setAttribute('y',0);
+			}
+			if(this.y+this.height>this.refObj.height){
+				this.setAttribute('y',0);
+			}
+			if(this.x+this.width>this.refObj.width){
+				this.setAttribute('x',0);
+			}	            	
+         -->            
+	<attribute name="refObj" value="null" />
+	<handler name="onload">
+		<![CDATA[
+			//Debug.write("image loaded");
+			//this.refObj.parent._loading.setAttribute('visible',false);
+			
+			if (this.remotewidth != 0 && this.remoteheight != 0){
+				this.setAttribute('width',this.remotewidth);
+				this.setAttribute('height',this.remoteheight);
+			} else {
+				
+				if (this.width>this.refObj.width){
+					var height = this.height/(this.width/this.refObj.width)
+					this.setAttribute('width',this.refObj.width);
+					this.setAttribute('height',height);
+					this.setAttribute('x',0);
+				}
+				
+				if (this.height>this.refObj.height){
+					var width = this.width/(this.height/this.refObj.height)
+					this.setAttribute('height',this.refObj.height);
+					this.setAttribute('width',width);
+					this.setAttribute('y',0);
+				}
+				
+				if(this.y+this.height>this.refObj.height){
+					this.setAttribute('y',0);
+				}
+				
+				if(this.x+this.width>this.refObj.width){
+					this.setAttribute('x',0);
+				}
+				
+			}
+	
+			//only send syncCommand if alterModus is true (meaning that this is the Moderator)
+			//otherwise just send a notification to moderator that this image has been loaded
+			//if this is just a recordContent-modi (recordingsViewer) then there should be no syncing
+			if (this.recorderModus) {
+				this.refObj.storeTempValsAndLoadSyncListRecording(this);
+			} else if (this.alterModus){
+				this.refObj.storeTempValsAndLoadSyncList(this);
+			} else if (this.isLocalSync){
+				this.refObj.addImageToLayerHistoryToLocalLoaded.sendEvent(this);
+			} else {
+				this.refObj.sendLoadNotificationImage(this);
+			}
+			this.refObj.layers.push(this);			
+			
+			this.oninit.sendEvent();
+			
+			//This is not needed anymore as it sync's against the server sid, swagner, 11.06.2008
+			//this.refObj.parent.parent.isloadedImage.sendEvent(this);
+			
+			//send notification to wml-loader
+			//this is send later then in normal objects cause it needs to be send after the image
+			//has been loaded completely
+			//if (this.refObj.isWmlLoaderImage){
+			//	this.refObj.isWmlLoaderImage=false;
+            //    //Debug.write("1 onwmlLoaderSend.sendEvent( image )");
+			//	if (this.refObj.onwmlLoaderSend) this.refObj.onwmlLoaderSend.sendEvent('image');
+			//}
+		]]>
+	</handler>
+	<handler name="onerror" args="error">
+		<![CDATA[
+		//Debug.write("onerror "+error);
+			//only send syncCommand if alterModus is true (meaning that this is the Moderator)
+			//otherwise just send a notification to moderator that this iamge has been loaded
+			if (this.recorderModus) {
+				this.refObj.storeTempValsAndLoadSyncListRecording(this);
+			} else if (this.alterModus){
+				this.refObj.storeTempValsAndLoadSyncList(this);
+			} else if (this.isLocalSync){
+				this.refObj.addImageToLayerHistoryToLocalLoaded.sendEvent(this);
+			} else {
+				this.refObj.sendLoadNotificationImage(this);
+			}
+			this.refObj.layers.push(this);			
+			
+			this.oninit.sendEvent();
+			
+			//This is not needed anymore as it sync's against the server sid, swagner, 11.06.2008
+			this.refObj.parent.parent.isloadedImage.sendEvent(this);
+			
+			//send notification to wml-loader
+			//this is send later then in normal objects cause it needs to be send after the image
+			//has been loaded completely
+			//if (this.refObj.isWmlLoaderImage){
+			//	this.refObj.isWmlLoaderImage=false;
+			//	if (this.refObj.onwmlLoaderSend) this.refObj.onwmlLoaderSend.sendEvent('image');
+			//}
+		]]>
+	</handler>
+	<handler name="ontimeout" args="error">
+		<![CDATA[
+		//Debug.write("ontimeout "+error);
+			//only send syncCommand if alterModus is true (meaning that this is the Moderator)
+			//otherwise just send a notification to moderator that this iamge has been loaded
+			if (this.recorderModus) {
+				this.refObj.storeTempValsAndLoadSyncListRecording(this);
+			} else if (this.alterModus){
+				this.refObj.storeTempValsAndLoadSyncList(this);
+			} else if (this.isLocalSync){
+				this.refObj.addImageToLayerHistoryToLocalLoaded.sendEvent(this);
+			} else {
+				this.refObj.sendLoadNotificationImage(this);
+			}
+			this.refObj.layers.push(this);			
+			
+			this.oninit.sendEvent();
+			
+			//This is not needed anymore as it sync's against the server sid, swagner, 11.06.2008
+			this.refObj.parent.parent.isloadedImage.sendEvent(this);
+			
+			//send notification to wml-loader
+			//this is send later then in normal objects cause it needs to be send after the image
+			//has been loaded completely
+			//if (this.refObj.isWmlLoaderImage){
+			//	this.refObj.isWmlLoaderImage=false;
+			//	if (this.refObj.onwmlLoaderSend) this.refObj.onwmlLoaderSend.sendEvent('image');
+			//}
+		]]>
+	</handler>	
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/imageForScreenViewer.lzx b/WebContent/src/modules/conference/whiteboard/base/imageForScreenViewer.lzx
new file mode 100644
index 0000000..7e6d6a3
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/imageForScreenViewer.lzx
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+<class name="imageForScreenViewer" extends="image" stretches="both" x="0" y="0">
+	
+	<attribute name="downloadurl" value="" type="string" />
+		
+	<attribute name="alterModus" value="true" type="boolean" />
+	
+	<attribute name="baseurl" value="" type="string" />
+	<attribute name="fileName" value="" type="string" />
+	<attribute name="moduleName" value="" type="string" />
+	<attribute name="parentPath" value="" type="string" />
+	<attribute name="room" value="" type="string" />
+	<attribute name="domain" value="" type="string" />
+    
+    <attribute name="username" value="" type="string" />
+		
+	<attribute name="refObj" value="null" />
+	<handler name="onload">
+        this.refObj.layers.push(this);	
+        this.refObj.isScreenImageLoading=false;
+	    this.sendToBack();
+        
+        var height = this.height/(this.width/this.parent.width)
+        this.setAttribute('width',this.parent.width);
+        this.setAttribute('height',height);
+        this.setAttribute('x',0);
+            
+        this.refObj.toggleVisibleScreenSharing();
+	</handler>
+	<handler name="onerror" args="error">
+        this.refObj.toggleVisibleScreenSharing();
+	</handler>
+	<handler name="ontimeout" args="error">
+        this.refObj.toggleVisibleScreenSharing();
+	</handler>	
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/library.lzx b/WebContent/src/modules/conference/whiteboard/base/library.lzx
new file mode 100644
index 0000000..ab3ee19
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/library.lzx
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<include href="drawViewNew.lzx" />
+	<include href="baseDraw.lzx" />
+    
+    <!-- extends basedraw with drawing Tools -->
+    <include href="tools/" /> 
+    
+	<include href="swfResourceView.lzx" />
+	<include href="baseDrawObject.lzx" />
+	<include href="baseDrawLetter.lzx" />
+	<include href="imageForDrawView.lzx" />
+	<include href="imageForScreenViewer.lzx" />
+	<include href="baseDrawImage.lzx" />
+	<include href="baseDrawSave.lzx" />
+	<include href="baseDrawWords.lzx" />
+	<include href="whiteboardVideoPlayer.lzx" />
+	<include href="remoteWhiteboard.lzx" />
+	<include href="whiteBoardPointer.lzx" />
+    
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/remoteWhiteboard.lzx b/WebContent/src/modules/conference/whiteboard/base/remoteWhiteboard.lzx
new file mode 100644
index 0000000..bb47ca1
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/remoteWhiteboard.lzx
@@ -0,0 +1,336 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="remoteWhiteboard" extends="baseDrawSave">
+	
+	<attribute name="loadingObjectListId" value="0" type="number" />
+	<attribute name="loadingObjectList" value="null" />
+	
+	<attribute name="loadObjectDelegate" value="null" />
+	
+	<method name="loadObjectList" args="whiteBoardObject">
+		<![CDATA[
+		
+			if ($debug) Debug.info("loadObjectList :1: ",whiteBoardObject,whiteBoardObject.fullFit,whiteBoardObject.zoom);
+		
+			if (parent.parent["zoombox"]) {
+			    parent.parent.zoombox.setWhiteboardValues(whiteBoardObject.fullFit,whiteBoardObject.zoom);
+			}
+			
+			
+			this.setAttribute("x",whiteBoardObject.x);
+			this.setAttribute("y",whiteBoardObject.y);	
+			this.last_x = this.x;
+			this.last_y = this.y;
+			
+			/*
+			if (whiteBoardObject.brainStorming != null) {
+                this.loadBrainStormingObject(whiteBoardObject.brainStorming);
+            }
+            */
+			
+			this.fullFit = whiteBoardObject.fullFit;
+			
+			this.getDisplayObject()._xscale = whiteBoardObject.zoom;
+    		this.getDisplayObject()._yscale = whiteBoardObject.zoom;
+    		
+    		this.onupdateScale.sendEvent(null);
+			
+			this.loadingObjectList = new Array();
+			
+			for (var eg in whiteBoardObject.roomItems) {
+				this.loadingObjectList.push(whiteBoardObject.roomItems[eg]);
+			}
+			
+			//return;
+			//if ($debug) Debug.write("loadObjectList :2: ",this.loadingObjectList);
+			
+			function sortItemByIndex(a,b){
+                var a1 = a[a.length-8];
+                var b1 = b[b.length-8];
+                //_root.//Debug.write("natcompare: ",a1,b1,natcompare(a1,b1));
+                if(a1==b1){
+                    return 0;
+                } else if(a1>b1){
+                    return 1;
+                } else {
+                    return -1;
+                }
+            }
+            
+            //for (var i=0;i<this.loadingObjectList.length;i++) {
+            //	if ($debug) Debug.write(" 1 ",i,this.loadingObjectList[i][0],this.loadingObjectList[i][this.loadingObjectList[i].length-8]);
+            //}
+            
+            this.loadingObjectList.sort(sortItemByIndex);
+			
+            //for (var i=0;i<this.loadingObjectList.length;i++) {
+            //    if ($debug) Debug.write(" 2 ",i,this.loadingObjectList[i][0],this.loadingObjectList[i][this.loadingObjectList[i].length-8]);
+            //}
+            
+			this.loadingObjectListId = 0;
+			//this.loadObjectDelegate = new LzDelegate( this, "loadRemoteObject" );
+			//if (this.loadingObjectList.length != 0){
+			//	lz.Timer.addTimer( this.loadObjectDelegate, 250 );
+			//}
+			//for (var i=0;i<this.loadingObjectList.length;i++){
+			//	if ($debug) Debug.write("i this.loadingObjectList[i] ",i,this.loadingObjectList[i]);
+			//}
+			
+			if ($debug) Debug.write("Number of Whiteboard Objects ",this.loadingObjectList.length);
+			
+			if (this.loadingObjectList != null && this.loadingObjectList.length != 0){
+				this.startNewSyncprocess.doCall();
+			}
+		]]>
+	</method>
+	
+	<method name="loadSavedObjectList" args="objList">
+        <![CDATA[
+            
+            var tempArray = new Array();            
+            tempArray[0] = "loadSavedWhiteboard";
+            ///tempArray[1] = itemObj;
+            tempArray[1] = objList;
+            hib.sendMessageWithClient.sendMessage("whiteboard", tempArray);
+        
+            this.loadingObjectList = objList;
+            
+            if ($debug) Debug.write("loadObjectList :: ",this.loadingObjectList);
+            
+            function sortItemByIndex(a,b){
+                var a1 = a[a.length-8];
+                var b1 = b[b.length-8];
+                //_root.//Debug.write("natcompare: ",a1,b1,natcompare(a1,b1));
+                if(a1==b1){
+                    return 0;
+                } else if(a1>b1){
+                    return 1;
+                } else {
+                    return -1;
+                }
+            }
+            
+            for (var i=0;i<this.loadingObjectList.length;i++) {
+                if ($debug) Debug.write(" 1 ",i,this.loadingObjectList[i][0],this.loadingObjectList[i][this.loadingObjectList[i].length-8]);
+            }
+            
+            this.loadingObjectList.sort(sortItemByIndex);
+            
+            for (var i=0;i<this.loadingObjectList.length;i++) {
+                if ($debug) Debug.write(" 2 ",i,this.loadingObjectList[i][0],this.loadingObjectList[i][this.loadingObjectList[i].length-8]);
+            }
+            
+            this.loadingObjectListId = 0;
+            //this.loadObjectDelegate = new LzDelegate( this, "loadRemoteObject" );
+            //if (this.loadingObjectList.length != 0){
+            //  lz.Timer.addTimer( this.loadObjectDelegate, 250 );
+            //}
+            //for (var i=0;i<this.loadingObjectList.length;i++){
+            //  if ($debug) Debug.write("i this.loadingObjectList[i] ",i,this.loadingObjectList[i]);
+            //}
+            if (this.loadingObjectList != null && this.loadingObjectList.length != 0){
+                this.startSavedSyncprocess.doCall();
+            }
+            
+        ]]>
+    </method>
+    
+    <method name="prepareLoadWMLFile" args="itemObj">
+        if ($debug) Debug.write("loadWMLFile: ",itemObj);
+        
+        this.loadWMLFile.setAttribute('fileExplorerItemId', itemObj.fileExplorerItemId);
+                  
+        if ($debug) Debug.write("prepareLoadWMLFile 1: ",parent.parent.whiteboardId);
+        
+        this.loadWMLFile.doCall();
+    </method>
+    
+    
+    <netRemoteCallHib name="loadWMLFile" funcname="fileservice.loadWmlObject"
+        remotecontext="$once{ canvas.thishib }" >
+        <attribute name="fileExplorerItemId" type="number" value="0"/>
+        <netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+        <netparam><method name="getValue">return hib.currentroomid;</method></netparam> 
+        <netparam><method name="getValue">return parent.fileExplorerItemId;</method></netparam> 
+        <netparam><method name="getValue">return parent.parent.parent.parent.whiteboardId;</method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("loadWMLFile: ",value);
+                //canvas._drawarea.clearAll();
+                //parent.loadSavedObjectList(value);
+                
+            ]]>
+        </handler>   
+    </netRemoteCallHib> 
+    
+    <method name="loadWmlToWhiteboardById" args="roomItems">
+    	this.clearRemote();
+    	this.loadSavedObjectList(roomItems);
+    </method>
+	
+    <netRemoteCallHib name="startNewSyncprocess" funcname="whiteboardservice.startNewSyncprocess"
+        remotecontext="$once{ canvas.thishib }" >
+        <handler name="ondata" args="value">
+            <![CDATA[
+            	//The onResult-Handler will be called be the rtmpconnection
+            	if ($debug) Debug.write("startNewSyncprocess: ",value);
+            	if (value.publicSID == canvas.publicSID){
+            		if ($debug) Debug.write("currentLoadingItem IS mine");
+                    //TODO: Check usage of currentLoadingItem
+            		//if (value.currentLoadingItem){
+            			parent.startInitialLoadinProcess();
+            		//}
+            	}
+            ]]>
+        </handler>   
+    </netRemoteCallHib> 
+    
+     <netRemoteCallHib name="startSavedSyncprocess" funcname="whiteboardservice.startNewSyncprocess"
+        remotecontext="$once{ canvas.thishib }" >
+        <handler name="ondata" args="value">
+            <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("startNewSyncprocess: ",value);
+                //if (value.publicSID == canvas.publicSID){
+                    if ($debug) Debug.write("currentLoadingItem IS mine");
+                    //TODO: Check usage of currentLoadingItem
+                    //if (value.currentLoadingItem){
+                        parent.startInitialLoadinProcess();
+                    //}
+                //}
+            ]]>
+        </handler>   
+    </netRemoteCallHib> 
+    
+    <netRemoteCallHib name="sendCompletedSyncEvent" funcname="whiteboardservice.sendCompletedSyncEvent"
+        remotecontext="$once{ canvas.thishib }" >
+        <handler name="ondata" args="value">
+            <![CDATA[
+            	//The onResult-Handler will be called be the rtmpconnection
+            	if ($debug) Debug.write("sendCompletedSyncEvent: ",value);
+            ]]>
+        </handler>   
+    </netRemoteCallHib>     	
+    
+    <method name="startInitialLoadinProcess">
+		this.loadObjectDelegate = new LzDelegate( this, "loadRemoteObject" );
+		if (this.loadingObjectList.length != 0){
+			lz.Timer.addTimer( this.loadObjectDelegate, 250 );
+		}
+    </method>
+	
+	<method name="loadRemoteObject" args="ref">
+		<![CDATA[
+			this.sendRemoteWatchObject(this.loadingObjectList[this.loadingObjectListId]);
+			this.loadingObjectListId++;
+			if (this.loadingObjectListId < this.loadingObjectList.length){
+				lz.Timer.addTimer( this.loadObjectDelegate, 250 );
+			} else {
+				this.sendCompletedSyncEvent.doCall();
+				this.updateAllObjectsToSlideNumber();
+				this.setModusWithUpdate("hand");
+				this.onupdateScale.sendEvent(null);
+			}
+		]]>
+	</method>
+	
+	<method name="sendRemoteWatchObject" args="actionObject">
+		if ($debug) Debug.write("[sendRemoteWatchObject]: ",actionObject);
+		<![CDATA[
+			
+			//Redraw the View on the paintarea
+			if (actionObject[0]=='paint'){
+				this.paintactionHistory(actionObject,this);
+			} else if (actionObject[0]=='line'){
+				this.lineactionHistory(actionObject,this);
+			} else if (actionObject[0]=='uline'){
+				this.ulineactionHistory(actionObject,this);
+			} else if (actionObject[0]=='drawarrow'){
+				this.drawarrowlineactionHistory(actionObject,this);
+			} else if(actionObject[0]=='letter'){
+				this.drawactionHistory(actionObject,this);
+			} else if(actionObject[0]=='image'){
+				this.addImageToLayerHistoryToLocal(actionObject,this);
+			} else if(actionObject[0]=='swf'){
+				this.addSWFToLayerHistory(actionObject,this,true);
+			} else if(actionObject[0]=='rectangle'){
+				this.drawrectangleToHistory(actionObject,this);
+			} else if(actionObject[0]=='ellipse'){
+				this.drawellipseToHistory(actionObject,this);
+			} else if(actionObject[0]=='flv'){
+                this.drawFlvToHistory(actionObject,this);
+            } else if(actionObject[0]=='mindMapCenter'){
+                this.drawMindMapCenterToHistory(actionObject,this);
+            } else if(actionObject[0]=='mindMapNode'){
+                this.drawMindMapNodeToHistory(actionObject,this);
+            } else if(actionObject[0]=='clipart'){
+                this.drawClipArtToHistory(actionObject,this);
+            }
+			
+			if ($debug) Debug.write("[store actionObject] ",actionObject);
+			
+			this.baseactionobjectList.push(actionObject);
+				
+		]]>
+	</method>	
+	
+	<!-- methods for syncing events -->
+    <netRemoteCallHib name="startNewObjectSyncProcess" funcname="whiteboardservice.startNewObjectSyncProcess"
+        remotecontext="$once{ canvas.thishib }" >
+    	<attribute name="isStarting" value="false" type="boolean" />
+    	<attribute name="uniqueObjectSyncName" value="" type="string" />
+    	<netparam><method name="getValue">return parent.uniqueObjectSyncName;</method></netparam>
+        <netparam><method name="getValue">return parent.isStarting;</method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+            	//The onResult-Handler will be called be the rtmpconnection
+            	if ($debug) Debug.write("startNewImagesSyncprocess: ",value);
+            ]]>
+        </handler>   
+    </netRemoteCallHib> 
+    
+    <netRemoteCallHib name="sendCompletedObjectSyncEvent" funcname="whiteboardservice.sendCompletedObjectSyncEvent"
+        remotecontext="$once{ canvas.thishib }" >
+    	<attribute name="uniqueObjectSyncName" value="" type="string" />
+    	<netparam><method name="getValue">return parent.uniqueObjectSyncName;</method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+            	//The onResult-Handler will be called be the rtmpconnection
+            	if ($debug) Debug.write("sendCompletedImagesSyncEvent: ",value);
+            ]]>
+        </handler>   
+    </netRemoteCallHib>   
+    
+    
+    <method name="startStreaming" args="messageObj">
+        new lz.incomingScreenSharing(canvas,{messageObj:messageObj});
+    </method>
+    
+    <method name="stopStreaming" args="messageObj">
+        
+    </method>
+	
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/swfResourceView.lzx b/WebContent/src/modules/conference/whiteboard/base/swfResourceView.lzx
new file mode 100644
index 0000000..ed48e33
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/swfResourceView.lzx
@@ -0,0 +1,305 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+<class name="swfResourceView" extends="view" >
+	
+	<event name="prepareForDelete" />
+    
+    <attribute name="refObj" value="null" />
+	<attribute name="alterModus" value="true" type="boolean" />
+    
+    <attribute name="standardFileName" value="" type="string"/>
+	
+	<attribute name="recorderModus" value="false" type="boolean" />
+    
+    <attribute name="fullFit" value="true" type="boolean" />
+	
+	<attribute name="baseurl" value="" type="string" />
+	<attribute name="fileName" value="" type="string" />
+	<attribute name="moduleName" value="" type="string" />
+	<attribute name="parentPath" value="" type="string" />
+	<attribute name="room" value="" type="string" />
+	<attribute name="domain" value="" type="string" />    
+    <attribute name="slideNumber" value="1" type="number" /> 
+    
+    <attribute name="currentzoomFactor" value="100" type="number" />
+    <attribute name="zoomlevel" value="20" type="number" />
+    <attribute name="initwidth" value="0" type="number" />
+    <attribute name="initheight" value="0" type="number" />
+    
+    <!-- for wml-loaded SWF's
+        attribute only set on init
+     -->
+    <attribute name="innerwidth" value="0" type="number" />
+    <attribute name="innerheight" value="0" type="number" />
+    <attribute name="innerx" value="0" type="number" />
+    <attribute name="innery" value="0" type="number" />
+    <attribute name="currentzoom" value="0" type="number" />
+    
+    <attribute name="typeOfObject" value="swf" type="string" />
+    
+	<!-- holds the reference_id to the SyncProcess -->
+	<attribute name="uniqueObjectSyncName" value="" type="string" />    
+    
+    <view name="_swfView" play="false">
+    	
+    	<!--
+    	<attribute name="timeisInited" value="false" type="boolean" />
+        <attribute name="sendObjectDel" value="null" />
+         -->
+        
+        <!-- Do not send update events in case 
+            this is sync event broadcasted by another user -->
+        <attribute name="doSendChangeValue" value="false" type="boolean" />
+        
+        <handler name="onframe" args="i">
+            ////Debug.write("onframe",i);
+        </handler>
+        
+        <handler name="onplay" args="i">
+            ////Debug.write("onplay",i);
+        </handler>
+        
+        <handler name="onstop" args="i">
+            ////Debug.write("onstop",i);
+        </handler>
+        
+        <!--
+        <handler name="oninit">
+            this.sendObjectDel = new LzDelegate( this, "sendObject" );
+        </handler>
+        
+        <handler name="onx" args="x">
+        	if (!this.doSendChangeValue) {
+        		return;
+        	}
+        	
+            if (!this.timeisInited){
+                this.timeisInited=true;
+                lz.Timer.addTimer( this.sendObjectDel, 250 );
+            } else {
+                lz.Timer.resetTimer( this.sendObjectDel, 250 );
+            }
+        </handler>
+        <handler name="ony" args="y">
+        	if (!this.doSendChangeValue) {
+                return;
+            }
+            
+            if (!this.timeisInited){
+                this.timeisInited=true;
+                lz.Timer.addTimer( this.sendObjectDel, 250 );
+            } else {
+                lz.Timer.resetTimer( this.sendObjectDel, 250 );
+            }
+        </handler>        
+        
+        <method name="sendObject" args="itemRef">
+            if ($debug) Debug.info("sendObject :: sendCurrentSWFObject");
+            this.parent.parent.sendCurrentSWFObject(this.parent);
+            this.timeisInited=false;
+        </method>
+         -->
+        
+        <method name="initialLoadFullFit">
+            <![CDATA[
+            
+            	if ($debug) Debug.write(" -- fullFit -- ",parent.parent.fullFit);
+            
+                if (parent.parent.fullFit) {
+                    
+                    if ($debug) Debug.write(" -- fullFit -2- ",this.width,this.height);
+                    if ($debug) Debug.write(" -- fullFit -3- ",parent.parent.width,parent.parent.height);
+                    
+                    //Scale to container width/height
+                    var xScale = (parent.parent.parent.width-16)/this.width;
+                    var yScale = (parent.parent.parent.height-16)/this.height;
+                    
+                    if ($debug) Debug.write(" -- fullFit -4- ",xScale,yScale);
+                    
+                    if (xScale < yScale) {
+                    	parent.parent.setCurrentScaleByFullFit(xScale);
+                    } else {
+                    	parent.parent.setCurrentScaleByFullFit(yScale);
+                    }
+                    
+                }
+            
+            ]]>
+        </method>
+        
+        <handler name="onload">
+            <![CDATA[
+                if ($debug) Debug.info("onload: ",this.width,this,height);
+                
+                ////Debug.write("onload: ",this.stop);
+                this.stop();
+                this.setAttribute('play',false);             
+                
+                this.parent.initwidth = this.width;
+                this.parent.initheight = this.height;
+                
+                this.setAttribute('frame',parent.slideNumber);
+                
+                //only send syncCommand if alterModus is true (meaning that this is the Moderator)
+                //otherwise just send a notification to moderator that this iamge has been loaded
+                if (this.parent.recorderModus) {
+					this.parent.refObj.storeTempValsAndLoadSyncListSWFRecording(this.parent);
+				} else if (this.parent.alterModus){
+                    
+                    //this code is invoked when the Moderator loads the Document
+                    
+                    this.parent.refObj.storeTempValsAndLoadSyncListSWF(this.parent);
+                    if ($debug) Debug.write("==> doShowObjectBounds MOD ");
+                    
+                    this.initialLoadFullFit();
+                    
+                    this.parent.refObj.doShowObjectBounds(this.parent.name);
+                    this.parent.refObj.doUpdateDocumentToolBar();
+                } else {
+                    
+                    //this code is invoked when any participants syncronizes and loads the document
+                    //because a Moderator has loaded it
+                    
+                    if ($debug) Debug.write("==> doShowObjectBounds Participant ");
+                    
+                    this.initialLoadFullFit();
+                    
+                    this.parent.refObj.sendLoadNotificationSWF(this.parent);
+                    
+                    this.parent.refObj.doUpdateDocumentToolBarByParticipant(this.parent.name);
+                    
+                }
+                
+                if ($debug) Debug.write("swf loaded -2- ",this.parent.refObj.isWmlLoaderImage);
+                if (this.parent.refObj.isWmlLoaderImage){
+                    if ($debug) Debug.write("swf loaded ",this.parent.innerwidth,this.parent.innerheight);
+                	if (this.parent.innerwidth != 0 && this.parent.innerheight != 0) {
+	                    this.setAttribute('width',this.parent.innerwidth);
+	                    this.setAttribute('height',this.parent.innerheight);
+	                    this.setAttribute('x',this.parent.innerx);
+	                    this.setAttribute('y',this.parent.innery);
+                	}
+                    this.parent.currentzoomFactor = this.parent.currentzoom;
+                }
+
+                this.parent.refObj.layers.push(this.parent);			
+                
+                this.doSendChangeValue = true;
+                
+                this.oninit.sendEvent();
+                //this.parent.refObj.parent.parent.isloadedImage.sendEvent(this);
+                
+                //send notification to wml-loader
+                //this is send later then in normal objects cause it needs to be send after the image
+                //has been loaded completely
+                //if (this.parent.refObj.isWmlLoaderImage){
+                //    this.parent.refObj.isWmlLoaderImage=false;
+                //    if (this.parent.refObj.onwmlLoaderSend) this.parent.refObj.onwmlLoaderSend.sendEvent('swf');
+                //}
+            ]]>
+        </handler>
+        <handler name="onerror" args="error">
+            <![CDATA[
+            ////Debug.write("onerror "+error);
+            
+            
+                new lz.errorPopup(canvas,{error:"onerror SWF!! "+error});
+                
+                this.parent.initwidth = this.width;
+                this.parent.initheight = this.height;
+                                
+                //only send syncCommand if alterModus is true (meaning that this is the Moderator)
+                //otherwise just send a notification to moderator that this iamge has been loaded
+                if (this.parent.recorderModus) {
+					this.parent.refObj.storeTempValsAndLoadSyncListSWFRecording(this.parent);
+				} else if (this.parent.alterModus){
+                    this.parent.refObj.storeTempValsAndLoadSyncListSWF(this.parent);
+                } else {
+                    this.parent.refObj.sendLoadNotificationSWF(this.parent);
+                }
+                this.parent.refObj.layers.push(this.parent);			
+                
+                this.oninit.sendEvent();
+                //this.parent.refObj.parent.parent.isloadedImage.sendEvent(this.parent);
+                
+                //send notification to wml-loader
+                //this is send later then in normal objects cause it needs to be send after the image
+                //has been loaded completely
+                //if (this.parent.refObj.isWmlLoaderImage){
+                //    this.parent.refObj.isWmlLoaderImage=false;
+                //    if (this.parent.refObj.onwmlLoaderSend) this.parent.refObj.onwmlLoaderSend.sendEvent('swf');
+                //}
+            ]]>
+        </handler>
+        <handler name="ontimeout" args="error">
+            <![CDATA[
+            ////Debug.write("ontimeout "+error);
+            
+                new lz.errorPopup(canvas,{error:"ontimeout SWF!! "+error});
+                
+                this.parent.initwidth = this.width;
+                this.parent.initheight = this.height;
+                                
+                //only send syncCommand if alterModus is true (meaning that this is the Moderator)
+                //otherwise just send a notification to moderator that this iamge has been loaded
+                if (this.parent.recorderModus) {
+					this.parent.refObj.storeTempValsAndLoadSyncListSWFRecording(this.parent);
+				} else if (this.parent.alterModus){
+                    this.parent.refObj.storeTempValsAndLoadSyncListSWF(this.parent);
+                } else {
+                    this.parent.refObj.sendLoadNotificationSWF(this.parent);
+                }
+                this.parent.refObj.layers.push(this.parent);			
+                
+                this.oninit.sendEvent();
+                //this.parent.refObj.parent.parent.isloadedImage.sendEvent(this.parent);
+                
+                //send notification to wml-loader
+                //this is send later then in normal objects cause it needs to be send after the image
+                //has been loaded completely
+                //if (this.parent.refObj.isWmlLoaderImage){
+                //    this.parent.refObj.isWmlLoaderImage=false;
+                //    if (this.parent.refObj.onwmlLoaderSend) this.parent.refObj.onwmlLoaderSend.sendEvent('swf');
+                //}
+            ]]>
+        </handler> 
+        
+        <handler name="onwidth" args="w">
+            if ($debug) Debug.write("onwidth ",w);
+        </handler>
+        
+        <handler name="onheight" args="h">
+            if ($debug) Debug.write("onheight ",h);
+        </handler>
+        
+    </view>    
+    
+    <!--
+    <om_vscrollbar name="_scrollstv"
+                visible="${ ((canvas.ismoderator) ? true : ((canvas.isAllowedToDraw) ? true : false )) }" /> 
+    <om_hscrollbar name="_scrollsth"
+                visible="${ ((canvas.ismoderator) ? true : ((canvas.isAllowedToDraw) ? true : false )) }" />
+     -->   
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawArrow.lzx b/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawArrow.lzx
new file mode 100644
index 0000000..a904886
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawArrow.lzx
@@ -0,0 +1,367 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+<class name="baseDrawArrow" extends="baseDrawULine" >
+    
+    <!-- for drawing drawarrow -->
+    <attribute name="currentdrawarrowlinestroke" value="0x000000" />
+    <attribute name="currentdrawarrowlinestrokeDis" value="1" type="number" />
+    <attribute name="currentdrawarrowlinestrokeFill" value="0xFF6600" />
+    <attribute name="currentdrawarrowlinestrokeFillDis" value="1" type="number" />
+    
+    <attribute name="currentdrawarrowlinelineWidth" value="4" type="number" />   
+    <attribute name="currentdrawarrowOpacity" value="1" type="number" />
+      
+    <!-- ###########################
+    drawarrow
+     -->
+     
+    
+    <method name="startDrawarrowline" args="oid_name">
+        <![CDATA[
+	        if (oid_name == null) {
+	            oid_name = 'drawarrow'+this.getCounter();
+	        }
+	        
+	        this.currentlayer = new lz.drawViewNew(this,{
+		            name:oid_name,width:this.width,height:this.height,
+		            opacity:this.currentdrawarrowOpacity});
+            
+            var pArrowStart = new flash.geom.Point(this.startx,this.starty);
+            var pArrowEnd = new flash.geom.Point(this.endx,this.endy);
+            
+            //if ($debug) Debug.write("start,end,line",pArrowStart,pArrowEnd,this.currentdrawarrowlinelineWidth);
+            this.drawArrow(this.currentlayer,pArrowStart,pArrowEnd,this.currentdrawarrowlinelineWidth,
+                    this.currentdrawarrowlinestrokeDis,this.currentdrawarrowlinestroke,
+                    this.currentdrawarrowlinestrokeFill,this.currentdrawarrowlinestrokeFillDis);
+        ]]>
+    </method> 
+    
+    <method name="endDrawarrowline">
+        <![CDATA[
+            //if ($debug) Debug.write("endDrawarrowline",this.startx,this.starty,this.endx,this.endy);
+	        var tempName = this.currentlayer.name;
+	        //Debug.write("tempName: ",tempName);
+	        this.currentlayer.destroy();
+	        
+	        //GetBounds of that Object
+	        var minx = this.width+2000;
+	        var miny = this.height+2000;
+	        var maxx = -2;
+	        var maxy = -2;
+	
+	        if (this.startx<minx) minx=this.startx;
+	        if (this.endx<minx) minx=this.endx;
+	        
+	        if (this.startx>maxx) maxx=this.startx;
+	        if (this.endx>maxx) maxx=this.endx;
+	        
+	        if (this.starty<miny) miny=this.starty;
+	        if (this.endy<miny) miny=this.endy;
+	        
+	        if (this.starty>maxy) maxy=this.starty;
+	        if (this.endy>maxy) maxy=this.endy;
+	        
+	        var width = maxx-minx;
+	        var height = maxy-miny;
+	        
+	        //if ($debug) Debug.write("minx,miny,width,height: ",minx,miny,width,height);
+            //if ($debug) Debug.write("endDrawarrowline",this.startx,this.starty,this.endx,this.endy);
+            	                
+	        
+            if (minx == this.startx) {
+                var x1 = 0;
+                var x2 = width;
+            } else {
+                var x1 = width;
+                var x2 = 0;
+            }
+            if (miny == this.starty) {
+                var y1 = 0;
+                var y2 = height;
+            } else {
+                var y1 = height;
+                var y2 = 0;
+            }
+            
+            if(this.isSnapToGrid){        	
+	        	minx = Math.round(minx/this.gridWidth)*this.gridWidth;
+			    miny = Math.round(miny/this.gridWidth)*this.gridWidth;
+			    
+			    //x1 = Math.round(x1/this.gridWidth)*this.gridWidth;
+			    //y1 = Math.round(y1/this.gridWidth)*this.gridWidth;
+			    
+			    //x2 = Math.round(x2/this.gridWidth)*this.gridWidth;
+			    //y2 = Math.round(y2/this.gridWidth)*this.gridWidth;
+	        		        	
+        	}
+			                        
+	        this.currentlayer = new lz.drawViewNew(this,{
+	            name:tempName,x:minx,y:miny,width:width,height:height,
+	            opacity:this.currentdrawarrowOpacity});
+	            
+	        var pArrowStart = new flash.geom.Point(x1,y1);
+            var pArrowEnd = new flash.geom.Point(x2,y2);
+            
+            //if ($debug) Debug.write("start,end,line",pArrowStart,pArrowEnd,this.currentdrawarrowlinelineWidth);
+            this.drawArrow(this.currentlayer,pArrowStart,pArrowEnd,this.currentdrawarrowlinelineWidth,
+                    this.currentdrawarrowlinestrokeDis,this.currentdrawarrowlinestroke,
+                    this.currentdrawarrowlinestrokeFill,this.currentdrawarrowlinestrokeFillDis);
+	            
+	        //Add Layer to global Layer     
+	        this.layers.push(this.currentlayer);
+	        this.drawarrowlineregisterFinal(this.currentlayer.name,
+                this.currentdrawarrowlinestroke,this.currentdrawarrowlinelineWidth,
+                this.currentdrawarrowlinestrokeFill,this.currentdrawarrowlinestrokeDis,
+                this.currentdrawarrowlinestrokeFillDis,this.currentdrawarrowOpacity,
+                minx,miny,width,height,
+                x1,y1,x2,y2,true,this.getSWFDocumentStatus(),
+                this.getZIndex());
+	        //Debug.write("t: ",t);
+        ]]>
+    </method> 
+       
+    <method name="drawarrowlineregisterFinal" args="newName,stroke,line,fill,strokeDis,fillDis,opacity,x,y,width,height,x1,y1,x2,y2,doCall,swfObj,zIndex">
+        var actionObject = new Array();
+        actionObject[0] = 'drawarrow';
+        actionObject[1] = stroke;
+        actionObject[2] = line;
+        actionObject[3] = fill;
+        actionObject[4] = strokeDis;
+        actionObject[5] = fillDis;
+        actionObject[6] = opacity;
+        actionObject[7] = x1;  
+        actionObject[8] = y1;  
+        actionObject[9] = x2;    
+        actionObject[10] = y2;
+        actionObject[11] = zIndex;//-8
+        actionObject[12] = swfObj;//-7
+        actionObject[13] = this.counter;//-6 
+        actionObject[14] = x;//-5
+        actionObject[15] = y;//-4
+        actionObject[16] = width;//-3
+        actionObject[17] = height;//-2
+        actionObject[18] = newName;//-1
+        this.baseactionobjectList.push(actionObject);       
+        if (doCall) this.onsharedMessage('draw',actionObject);
+    </method>  
+    
+    <method name="drawarrowlineactionHistory" args="lastActionObject,parentView">
+        <![CDATA[
+            //Debug.write("## lineactionHistory",parentView," 2 ## NEW x,y ",lastActionObject[lastActionObject.length-5],lastActionObject[lastActionObject.length-4]," width,height: ",lastActionObject[lastActionObject.length-3],lastActionObject[lastActionObject.length-2]);
+            
+            var tmpCurrentlayer = new lz.drawViewNew(parentView,{
+                name:lastActionObject[lastActionObject.length-1],
+                x:lastActionObject[lastActionObject.length-5],
+                y:lastActionObject[lastActionObject.length-4],
+                width:lastActionObject[lastActionObject.length-3],
+                height:lastActionObject[lastActionObject.length-2],
+                opacity:lastActionObject[6]});
+            
+            var pArrowStart = new flash.geom.Point(lastActionObject[7],lastActionObject[8]);
+            var pArrowEnd = new flash.geom.Point(lastActionObject[9],lastActionObject[10]);
+            
+            //if ($debug) Debug.write("start,end,line",pArrowStart,pArrowEnd,this.currentdrawarrowlinelineWidth);
+            this.drawArrow(tmpCurrentlayer,pArrowStart,pArrowEnd,lastActionObject[2],
+                    lastActionObject[4],lastActionObject[1],
+                    lastActionObject[3],lastActionObject[5]);
+                
+            //Add Layer to global Layer     
+            this.layers.push(tmpCurrentlayer);
+
+            this.doSWFDocumentStatus(tmpCurrentlayer,lastActionObject[lastActionObject.length-7]);
+        ]]>
+    </method>
+    
+    <method name="drawArrow" args="graphics,start,end,thickness,strokeDis,stroke,fill,fillDis">
+        <![CDATA[
+    //(graphics:Graphics,
+    //            start:Point,end:Point,
+    //            style:Object=null):void {
+            
+            if (start.equals(end)) return;
+            
+            
+            var arrowStyle = {'shaftControlPosition':0.5,
+                    'shaftControlSize':0.5,
+                    'headLength':thickness*5, //Pixel Length of arrow head
+                    'headWidth':thickness*5,//Relative width of arrow head
+                    'edgeControlPosition':0.5,
+                    'edgeControlSize':0.5,
+                    'shaftPosition':0,
+                    'shaftThickness':thickness
+                    };
+            
+            var fullVect:Point = end.subtract(start);
+            var halfWidth:Number = (arrowStyle.headWidth != -1) ? arrowStyle.headWidth/2 : arrowStyle.headLength/2; 
+            
+            //Figure out the line start/end points
+            var startNorm = new flash.geom.Point(fullVect.y,-fullVect.x);
+            startNorm.normalize(arrowStyle.shaftThickness/2);
+            var start1 = start.add(startNorm);
+            var start2 = start.subtract(startNorm);
+            var end1 = end.add(startNorm);
+            var end2 = end.subtract(startNorm);
+            
+            //if ($debug) Debug.write("startNorm: ",startNorm.toString());
+            //if ($debug) Debug.write("start1: ",start1.toString());
+            //if ($debug) Debug.write("start2: ",start2.toString());
+            //if ($debug) Debug.write("end1: ",end1.toString());
+            //if ($debug) Debug.write("end2: ",end2.toString());
+            
+            //figure out where the arrow head starts
+            var headPnt = fullVect.clone();
+            //if ($debug) Debug.write("headPnt 1: ",headPnt.toString());
+            //if ($debug) Debug.write("headPnt.length 1: ",headPnt.length);
+            //if ($debug) Debug.write("arrowStyle.headLength 1: ",arrowStyle.headLength);
+            headPnt.normalize(headPnt.length-arrowStyle.headLength);
+            //if ($debug) Debug.write("headPnt 2: ",headPnt.toString());
+            headPnt = headPnt.add(start);
+            //if ($debug) Debug.write("headPnt 3: ",headPnt.toString());
+            
+            //calculate the arrowhead corners
+            var headPntNorm = startNorm.clone();
+            //if ($debug) Debug.write("headPntNorm ^^: ",headPntNorm.toString());
+            //if ($debug) Debug.write("halfWidth ^^: ",halfWidth);
+            headPntNorm.normalize(halfWidth);
+            //if ($debug) Debug.write("headPntNorm: ",headPntNorm.toString());
+            var edge1 = headPnt.add(headPntNorm);
+            var edge2 = headPnt.subtract(headPntNorm);
+            
+            //if ($debug) Debug.write("edge1: ",edge1.toString());
+            //if ($debug) Debug.write("edge2: ",edge2.toString());
+            
+            //Figure out where the arrow connects the the shaft, then calc the intersections
+            var shaftCenter = flash.geom.Point.interpolate(end,headPnt,arrowStyle.shaftPosition);
+            //if ($debug) Debug.write("end: ",end.toString());
+            //if ($debug) Debug.write("headPnt",headPnt.toString());
+            //if ($debug) Debug.write("arrowStyle.shaftPosition: ",arrowStyle.shaftPosition);
+            //if ($debug) Debug.write("shaftCenter",shaftCenter.toString());
+            var inter1 = this.getLineIntersection(start1,end1,shaftCenter,edge1);
+            var inter2 = this.getLineIntersection(start2,end2,shaftCenter,edge2);
+            
+            //if ($debug) Debug.write("inter1: ",inter1.toString());
+            //if ($debug) Debug.write("inter2: ",inter2.toString());
+            
+            //Figure out the control points
+            var edgeCenter = flash.geom.Point.interpolate(end,headPnt,arrowStyle.edgeControlPosition);
+            var edgeNorm = startNorm.clone();
+            edgeNorm.normalize(halfWidth*arrowStyle.edgeControlSize);
+            //if ($debug) Debug.write("halfWidth*arrowStyle.edgeControlSize: "+(halfWidth*arrowStyle.edgeControlSize));
+            //if ($debug) Debug.write("edgeNorm: "+edgeNorm.toString());
+            var edgeCntrl1 = edgeCenter.add(edgeNorm);
+            var edgeCntrl2 = edgeCenter.subtract(edgeNorm);
+
+            //if ($debug) Debug.write("edgeCntrl1: ",edgeCntrl1.toString());
+            //if ($debug) Debug.write("edgeCntrl2: ",edgeCntrl2.toString());
+
+            //if ($debug) Debug.write("moveTo: ",start1.x,start1.y);
+            //if ($debug) Debug.write("lineTo",inter1.x,inter1.y);
+            //if ($debug) Debug.write("lineTo",edge1.x,edge1.y);
+            //if ($debug) Debug.write("quadraticCurveTo",edgeCntrl1.x,edgeCntrl1.y,end.x,end.y);
+            //if ($debug) Debug.write("quadraticCurveTo",edgeCntrl2.x,edgeCntrl2.y,edge2.x,edge2.y);
+            //if ($debug) Debug.write("lineTo",inter2.x,inter2.y);
+            //if ($debug) Debug.write("lineTo",start2.x,start2.y);
+            //if ($debug) Debug.write("lineTo",start1.x,start1.y);
+            
+            graphics.moveTo(start1.x,start1.y);
+            graphics.lineTo(inter1.x,inter1.y);
+            graphics.lineTo(edge1.x,edge1.y);
+            graphics.quadraticCurveTo(edgeCntrl1.x,edgeCntrl1.y,end.x,end.y);
+            graphics.quadraticCurveTo(edgeCntrl2.x,edgeCntrl2.y,edge2.x,edge2.y);
+            graphics.lineTo(inter2.x,inter2.y);
+            graphics.lineTo(start2.x,start2.y);
+            graphics.lineTo(start1.x,start1.y);
+            
+            if (strokeDis!=-1){
+                graphics.strokeStyle = stroke;
+                graphics.stroke();
+            }
+
+            if (fillDis!=-1){
+                graphics.fillStyle = fill;
+                graphics.fill();
+            }
+        ]]>
+    </method>
+    
+    <method name="getLineIntersection" args="a1,a2,b1,b2">
+        <![CDATA[ 
+        
+            //calculate directional constants
+            var k1 = (a2.y-a1.y) / (a2.x-a1.x);
+            var k2 = (b2.y-b1.y) / (b2.x-b1.x);
+            
+            // if the directional constants are equal, the lines are parallel,
+            // meaning there is no intersection point.
+            if( k1 == k2 ) return null;
+            
+            var x = 0;
+            var y = 0;
+            var m1 = 0;
+            var m2 = 0;
+            
+            //if ($debug) Debug.write("k1",k1);
+            //if ($debug) Debug.write("k2",k2);
+            
+            // an infinite directional constant means the line is vertical
+            if( !isFinite(k1) ) {
+                
+                //if ($debug) Debug.write("k1 ^^ 0");
+                //if ($debug) Debug.write("k2",k2,(b2.y-b1.y));
+                //if ($debug) Debug.write("b1.getY(): "+b1.y);
+                //if ($debug) Debug.write("b2.getY(): "+b2.y);
+                // so the intersection must be at the x coordinate of the line
+                x = a1.x;
+                m2 = b1.y - k2 * b1.x;
+                //if ($debug) Debug.write("m2",m2);
+                y = k2 * x + m2;
+                //if ($debug) Debug.write("y",y);
+                
+            // same as above for line 2
+            } else if ( !isFinite(k2) ) {
+                
+                //if ($debug) Debug.write("k2 ^ 0");
+                
+                m1 = a1.y - k1 * a1.x;
+                x = b1.x;
+                y = k1 * x + m1;
+
+            // if neither of the lines are vertical
+            } else {
+                
+                //if ($debug) Debug.write("neither");
+            
+                m1 = a1.y - k1 * a1.x;
+                m2 = b1.y - k2 * b1.x;              
+                x = (m1-m2) / (k2-k1);
+                y = k1 * x + m1;
+                
+            }
+            
+            return new flash.geom.Point(x,y);
+        ]]>
+    </method>    
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawClipArt.lzx b/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawClipArt.lzx
new file mode 100644
index 0000000..59b71b6
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawClipArt.lzx
@@ -0,0 +1,650 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+
+<class name="drawClipArtWhiteBoard" >
+    
+    <attribute name="clipArtEndx" value="0" type="number" />
+    <attribute name="clipArtEndy" value="0" type="number" />
+    
+    <!-- Not needed anymore, use LzView.setColor instead
+    <method name="setTint" args="color, brightness">
+        <![CDATA[
+        if (color != "" && color != null){
+            if (brightness == null) { brightness = 0; }
+            var rgb = color;
+            var red=(rgb >> 16) & 0xFF;
+            var green=(rgb >> 8) & 0xFF;
+            var blue=rgb & 0xFF;
+
+            this.setColorTransform( { ra : red, ga : green, ba : blue,
+                                        rb : 0, gb : 0, bb : 100 } );
+        }
+        ]]>
+    </method>
+     -->
+     
+</class>	
+    
+<class name="baseDrawClipArt" extends="baseDrawArrow" >
+	
+	<attribute name="minClipArtx" value="0" type="number" />
+	<attribute name="maxClipArtx" value="0" type="number" />
+	<attribute name="minClipArty" value="0" type="number" />
+    <attribute name="maxClipArty" value="0" type="number" />
+    <attribute name="deltaClipArtx" value="0" type="number" />
+    <attribute name="deltaClipArty" value="0" type="number" />
+    
+    <attribute name="clipArtEndx" value="0" type="number" />
+    <attribute name="clipArtEndy" value="0" type="number" />
+	
+	<attribute name="currentClipArtRessourceName" value="idea.png" type="string"/>
+	    
+    <method name="startDrawClipArt" args="oid_name">
+        <![CDATA[
+        if (oid_name == null) {
+            oid_name = 'clipart'+this.getCounter();
+        }
+        
+        this.currentlayer = new lz.drawViewNew(this,{
+                                    name:oid_name,width:this.width,height:this.height,
+                                    opacity:this.currentdrawarrowOpacity});
+         
+        this.startx = this.currentlayer.getMouse('x');
+        this.starty = this.currentlayer.getMouse('y');
+                                    
+        var imageurl = canvas.getUrl() + 'public/cliparts/'+this.currentClipArtRessourceName;
+        
+        if ($debug) Debug.write("imageurl :: ",imageurl);
+        
+        new lz.drawClipArtWhiteBoard(this.currentlayer,{
+        	                width:100,height:100,stretches:'both',
+                            x:this.startx,y:this.starty,
+                            //bgcolor:0xFF3300,
+                            resource:imageurl,name:'clipart'});
+
+        this.minClipArtx = this.startx;
+        this.minClipArty = this.starty;
+        this.maxClipArtx = this.startx+100;
+        this.maxClipArty = this.starty+100;
+        this.clipArtEndx = this.maxClipArtx;
+        this.clipArtEndy = this.maxClipArty;
+        this.deltaClipArtx = 0;
+        this.deltaClipArty = 0;
+            
+                            
+        ]]>
+    </method>
+    
+    <method name="setStartPoint" args="sx,sy">
+    	this.startx = sx;
+        this.starty = sy;
+    </method>
+     
+    <method name="trackDrawClipArt">   
+        <![CDATA[
+        //Add Resource
+        //var t = new lz.drawClipArtWhiteBoard(this.currentlayer,{
+        //                    resource:imageurl,x:this.startx,y:this.starty});
+        
+        //Color
+        //t.setTint(this.currentdrawarrowlinestroke,60);
+        //t.setColor(this.currentdrawarrowlinestroke);
+        var tEndX = this.currentlayer.getMouse('x');
+        var tEndY = this.currentlayer.getMouse('y');
+        
+        this.trackDrawClipArtDraw(tEndX,tEndY,this.currentlayer.clipart);
+        
+        ]]>
+    </method>    
+        
+    <method name="trackDrawClipArtDraw" args="tEndX,tEndY,t">   
+        <![CDATA[
+        //Add Resource
+        //var t = new lz.drawClipArtWhiteBoard(this.currentlayer,{
+        //                    resource:imageurl,x:this.startx,y:this.starty});
+        
+        //Color
+        //t.setTint(this.currentdrawarrowlinestroke,60);
+        //t.setColor(this.currentdrawarrowlinestroke);
+        
+        //if ($debug) Debug.write("trackDrawClipArtDraw ",tEndX,tEndY,t);
+        
+        this.clipArtEndx = tEndX;
+        this.clipArtEndy = tEndY;
+        
+        var tx = tEndX-this.startx;
+        var ty = tEndY-this.starty;
+        
+        var gegenkathete = Math.abs(ty);
+        var ankathete = Math.abs(tx); 
+        var hypothenuse = Math.sqrt((ankathete*ankathete)+(gegenkathete*gegenkathete));
+        var sinAlpha = (gegenkathete/hypothenuse);
+        var palpha = Math.asin(sinAlpha);
+        var alpha = palpha/(Math.PI/180);
+        
+        var tLength = Math.sqrt(2)/2*hypothenuse;
+        
+        //if ($debug) Debug.write("tx,ty,alpha,sinAlpha,tLength "+tx+" "+ty+" "+alpha+" "+sinAlpha+" "+tLength);
+        
+        //if ($debug) Debug.write("CALC tx,ty",tx,ty);
+        
+        if (Math.abs(tx) < 2 && Math.abs(ty) < 2) {
+        	
+        	this.minClipArtx = this.startx;
+            this.minClipArty = this.starty;
+            this.maxClipArtx = this.startx+100;
+            this.maxClipArty = this.starty+100;
+            this.clipArtEndx = this.maxClipArtx;
+            this.clipArtEndy = this.maxClipArty;
+            t.setAttribute('rotation',0);
+            
+            this.deltaClipArtx = 0;
+            this.deltaClipArty = 0;
+            
+            //if ($debug) Debug.write(" IS ZERO ",this.startx,this.starty);
+        	
+        } else if (tx>=0 && ty>=0){    
+            t.setAttribute('rotation',(alpha-45));
+            
+            var tRotate = (alpha-45);
+            var pRotate = tRotate * (Math.PI/180);
+            
+            //1. Quadrant  left-down
+            var ankathete_2 = Math.cos(pRotate)*tLength;
+            var gegenkathete_2 = Math.sin(pRotate)*tLength;
+            var tx2 = this.startx+ankathete_2;
+            var ty2 = this.starty+gegenkathete_2;
+            //if ($debug) Debug.write("_1  ",this.startx,this.starty,tx2,ty2);
+            
+            var tRotate2 = 180-(alpha+45);
+            var pRotate2 = tRotate2 * (Math.PI/180);
+            
+            var ankathete_4 = Math.sin(pRotate2)*tLength;
+            var gegenkathete_4 = Math.cos(pRotate2)*tLength;
+            var tx4 = this.startx-gegenkathete_4;
+            var ty4 = this.starty+ankathete_4;
+            
+            this.minClipArtx = tx4;
+            if (this.startx < tx4) {
+            	this.minClipArtx = this.startx;
+            }
+            
+            this.minClipArty = this.starty;
+            if (ty2 < this.starty) {
+            	this.minClipArty = ty2;
+            }
+            
+            this.maxClipArtx = tx2;
+            if (tEndX > tx2) {
+            	this.maxClipArtx = tEndX;
+            }
+            
+            this.maxClipArty = tEndY;
+            if (ty4 > tEndY) {
+            	this.maxClipArty = ty4;
+            }
+            
+            if (gegenkathete_4 > 0) {
+                this.deltaClipArtx = gegenkathete_4;
+                this.deltaClipArty = 0;
+            } else {
+            	this.deltaClipArtx = 0;
+            	this.deltaClipArty = Math.abs(gegenkathete_2);
+            }
+            
+            
+            //if ($debug) Debug.write("_1  ",gegenkathete_4,gegenkathete_2);
+            
+            //if ($debug) Debug.write("_1  ",this.startx,this.starty,tx4,ty4);
+            
+            //if ($debug) Debug.write("_2 ",pRotate2,tRotate2,Math.sin(pRotate2),gegenkathete_4);
+            //if ($debug) Debug.write("_1  ",this.starty,ty4,ankathete_4,"tRotate2,tLength",tRotate2,tLength);
+            
+        } else if (tx<0 && ty>=0){
+            t.setAttribute('rotation',(90+45)-(alpha));
+            
+            var tRotate = (alpha-45);
+            var pRotate = tRotate * (Math.PI/180);
+            
+            //1. Quadrant  left-down
+            var ankathete_2 = Math.cos(pRotate)*tLength;
+            var gegenkathete_2 = Math.sin(pRotate)*tLength;
+            var tx4 = this.startx-ankathete_2;
+            var ty4 = this.starty+gegenkathete_2;
+            
+            //if ($debug) Debug.write("_1  ",this.startx,this.starty,tx4,ty4);
+            
+            var tRotate2 = 180-(alpha+45);
+            var pRotate2 = tRotate2 * (Math.PI/180);
+            
+            var gegenkathete_4 = Math.sin(pRotate2)*tLength;
+            var ankathete_4 = Math.cos(pRotate2)*tLength;
+            var tx2 = this.startx+ankathete_4;
+            var ty2 = this.starty+gegenkathete_4;
+            
+            //if ($debug) Debug.write("_1  x,y",this.startx,this.starty,"tx2,ty2",tx2,ty2,"tx4,ty4",tx4,ty4);
+            
+            this.minClipArtx = tx4;
+            if (tEndX < tx4) {
+                this.minClipArtx = tEndX;
+            }
+            
+            this.minClipArty = this.starty;
+            if (ty4 < this.starty) {
+                this.minClipArty = ty4;
+            }
+            
+            this.maxClipArtx = tx2;
+            if (this.startx > tx2) {
+                this.maxClipArtx = this.startx;
+            }
+            
+            this.maxClipArty = tEndY;
+            if (ty2 > tEndY) {
+                this.maxClipArty = ty2;
+            }
+            
+            if (gegenkathete_2 > 0) {
+                this.deltaClipArtx = ankathete_2;
+                this.deltaClipArty = 0;
+            } else {
+                this.deltaClipArtx = this.maxClipArtx-this.minClipArtx;
+                this.deltaClipArty = Math.abs(gegenkathete_2);
+            }
+            
+        } else if (tx<0 && ty<0){
+            t.setAttribute('rotation',180+(alpha-45));
+            
+            var tRotate = (alpha-45);
+            var pRotate = tRotate * (Math.PI/180);
+            
+            //1. Quadrant  left-down
+            var ankathete_2 = Math.cos(pRotate)*tLength;
+            var gegenkathete_2 = Math.sin(pRotate)*tLength;
+            var tx4 = this.startx-ankathete_2;
+            var ty4 = this.starty-gegenkathete_2;
+            
+            var tRotate2 = 180-(alpha+45);
+            var pRotate2 = tRotate2 * (Math.PI/180);
+            
+            var gegenkathete_4 = Math.sin(pRotate2)*tLength;
+            var ankathete_4 = Math.cos(pRotate2)*tLength;
+            var tx2 = this.startx+ankathete_4;
+            var ty2 = this.starty-gegenkathete_4;
+            
+            this.minClipArtx = tx4;
+            if (tEndX < tx4) {
+                this.minClipArtx = tEndX;
+            }
+            
+            this.minClipArty = tEndY;
+            if (ty2 < tEndY) {
+                this.minClipArty = ty2;
+            }
+            
+            this.maxClipArtx = tx2;
+            if (this.startx > tx2) {
+                this.maxClipArtx = this.startx;
+            }
+            
+            this.maxClipArty = ty4;
+            if (this.starty > ty4) {
+                this.maxClipArty = this.starty;
+            }
+            
+            //if ($debug) Debug.write("_1  ",gegenkathete_2);
+            
+            if (gegenkathete_2 < 0) {
+                this.deltaClipArtx = this.maxClipArtx-this.minClipArtx;
+                this.deltaClipArty = gegenkathete_4;
+            } else {
+                this.deltaClipArtx = ankathete_2;
+                this.deltaClipArty = this.maxClipArty-this.minClipArty;
+            }
+            
+            
+        } else if (tx>0 && ty<=0){
+            t.setAttribute('rotation',((270+45)-alpha));
+            
+            //if ($debug) Debug.write("alpha :: ",alpha);
+            
+            //if ($debug) Debug.write("_1  ",gegenkathete_2);
+            var tRotate = (alpha-45);
+            var pRotate = tRotate * (Math.PI/180);
+            
+            //1. Quadrant  left-down
+            var ankathete_2 = Math.cos(pRotate)*tLength;
+            var gegenkathete_2 = Math.sin(pRotate)*tLength;
+            var tx4 = this.startx+ankathete_2;
+            var ty4 = this.starty-gegenkathete_2;
+            
+            //if ($debug) Debug.write("gegenkathete_2 :: ",gegenkathete_2);
+            
+            var tRotate2 = 180-(alpha+45);
+            var pRotate2 = tRotate2 * (Math.PI/180);
+            
+            var gegenkathete_4 = Math.sin(pRotate2)*tLength;
+            var ankathete_4 = Math.cos(pRotate2)*tLength;
+            var tx2 = this.startx-ankathete_4;
+            var ty2 = this.starty-gegenkathete_4;
+            
+            //if ($debug) Debug.write("ankathete_4 :: ",ankathete_4);
+            
+            this.minClipArtx = tx2;
+            if (this.startx < tx2) {
+                this.minClipArtx = this.startx;
+            }
+            
+            this.minClipArty = tEndY;
+            if (ty2 < tEndY) {
+                this.minClipArty = ty2;
+            }
+            
+            this.maxClipArtx = tEndX;
+            if (tx4 > tEndX) {
+                this.maxClipArtx = tx4;
+            }
+            
+            this.maxClipArty = this.starty;
+            if (ty4 > this.starty) {
+                this.maxClipArty = ty4;
+            }
+            
+            //if ($debug) Debug.write("_1  ",ankathete_4);
+            
+            if (ankathete_4 < 0) {
+                this.deltaClipArtx = 0;
+                this.deltaClipArty = gegenkathete_4;
+            } else {
+                this.deltaClipArtx = ankathete_4;
+                this.deltaClipArty = this.maxClipArty-this.minClipArty;
+                
+                //this.deltaClipArtx = 0;
+                //this.deltaClipArty = 0;
+            }
+            
+        }
+        
+        //if (tx)
+        
+        //Scaling
+        //var basicLength = Math.sqrt((t.width*t.width)+(t.width*t.width));
+        //t.getDisplayObject()._xscale = (hypothenuse/basicLength)*100;
+        //t.getDisplayObject()._yscale = (hypothenuse/basicLength)*100;
+        
+        //if ($debug) Debug.write("hypothenuse "+hypothenuse);
+        
+        
+        
+        t.setAttribute("width",tLength);
+        t.setAttribute("height",tLength);
+
+        //Set previous to null
+        this.prevx = this.currentlayer.getMouse('x');
+        this.prevy = this.currentlayer.getMouse('y');  
+        
+        ]]>
+    </method> 
+    
+    <method name="drawClipArtToHistory" args="lastActionObject,parentView">
+    	<![CDATA[
+    	
+    	   var tmpCurrentlayer = new lz.drawViewNew(parentView,{
+                name:lastActionObject[lastActionObject.length-1],
+                x:lastActionObject[lastActionObject.length-5],
+                y:lastActionObject[lastActionObject.length-4],
+                width:lastActionObject[lastActionObject.length-3],
+                height:lastActionObject[lastActionObject.length-2],
+                opacity:lastActionObject[4]
+                });
+    	
+           new lz.drawClipArtWhiteBoard(tmpCurrentlayer,{
+                                    width:lastActionObject[7],
+                                    height:lastActionObject[8],
+                                    stretches:'both',
+                                    x:lastActionObject[5],
+                                    y:lastActionObject[6],
+                                    rotation:lastActionObject[3],
+                                    resource:lastActionObject[2],
+                                    clipArtEndx:lastActionObject[9],
+                                    clipArtEndy:lastActionObject[10],
+                                    name:'clipart'
+                                });
+             
+            if ($debug) Debug.write("x,y ",tmpCurrentlayer.x,tmpCurrentlayer.y,tmpCurrentlayer.width,tmpCurrentlayer.height);
+                                
+            //Add Layer to global Layer     
+            this.layers.push(tmpCurrentlayer);                                
+              
+            this.doSWFDocumentStatus(tmpCurrentlayer,lastActionObject[lastActionObject.length-7]);
+    	]]>
+    </method>
+    
+    <method name="endDrawClipArtDrag" args="cLayer">
+        <![CDATA[
+        
+            var oid_name = cLayer.name;
+            var tSource = cLayer.clipart.resource;
+            var tRotation = cLayer.clipart.rotation;
+            var tX = cLayer.clipart.x;
+            var tY = cLayer.clipart.y;
+            var tWidth = cLayer.clipart.width;
+            var tHeight = cLayer.clipart.height;
+               
+            //if ($debug) Debug.write("END 0 ",tY);
+            
+            cLayer.destroy();
+           
+            //if ($debug) Debug.write("END 1 ",this.minClipArty,this.starty);
+            
+            this.currentlayer = new lz.drawViewNew(this,{
+                                        x:this.minClipArtx,
+                                        y:this.minClipArty,
+                                        name:oid_name,
+                                        width:this.maxClipArtx-this.minClipArtx,
+                                        height:this.maxClipArty-this.minClipArty
+                                        //bgcolor:0x0033FF
+                                    });
+            
+            //if ($debug) Debug.write(" IS ZERO END1 ",this.currentlayer.x,this.currentlayer.y);                        
+                                    
+            new lz.drawClipArtWhiteBoard(this.currentlayer,{
+                                    width:tWidth,height:tHeight,
+                                    stretches:'both',
+                                    x:this.deltaClipArtx,
+                                    y:this.deltaClipArty,
+                                    rotation:tRotation,
+                                    resource:tSource,
+                                    clipArtEndx:this.clipArtEndx-this.minClipArtx,
+                                    clipArtEndy:this.clipArtEndy-this.minClipArty,
+                                    name:'clipart'
+                                    //bgcolor:0xFF3300
+                                });
+        
+            for (var eg=0;eg<this.baseactionobjectList.length;eg++){
+                if (this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-1]==oid_name) {
+                    
+                    //if ($debug) Debug.write("Found Object 1: ",this.baseactionobjectList[eg]);
+                    
+                	//actionObject[3] = tRotation;
+        //actionObject[5] = deltaClipArtx;
+        //actionObject[6] = deltaClipArty;
+        //actionObject[7] = deltaClipWidth;
+        //actionObject[8] = deltaClipHeight;
+        //actionObject[9] = deltaClipEndx;
+        //actionObject[10] = deltaClipEndy;
+        //actionObject[14] = x;//-5
+        //actionObject[15] = y;//-4
+        //actionObject[16] = width;//-3
+        //actionObject[17] = height;//-2
+        
+            	    this.baseactionobjectList[eg][3] = tRotation;
+                	this.baseactionobjectList[eg][5] = this.deltaClipArtx;
+                	this.baseactionobjectList[eg][6] = this.deltaClipArty;
+                	this.baseactionobjectList[eg][7] = tWidth;
+                	this.baseactionobjectList[eg][8] = tHeight;
+                	this.baseactionobjectList[eg][9] = this.clipArtEndx-this.minClipArtx;
+                	this.baseactionobjectList[eg][10] = this.clipArtEndy-this.minClipArty;
+                	
+                    this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-5] = this.minClipArtx;
+                    this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-4] = this.minClipArty;
+                    this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-3] = this.maxClipArtx-this.minClipArtx;
+                    this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-2] = this.maxClipArty-this.minClipArty;
+                    
+                    var newA = this.baseactionobjectList[eg];
+                    
+                    this.onsharedMessage('size',newA);
+                    
+                    break;
+                }
+            }   
+                           
+            //Set previous to null
+            this.prevx = null;
+            this.prevy = null;  
+        
+        ]]>
+    </method>
+    
+    <method name="endDrawClipArt">
+    	<![CDATA[
+    	
+            var oid_name = this.currentlayer.name;
+    	    var tSource = this.currentlayer.clipart.resource;
+    	    var tRotation = this.currentlayer.clipart.rotation;
+    	    var tX = this.currentlayer.clipart.x;
+    	    var tY = this.currentlayer.clipart.y;
+    	    var tWidth = this.currentlayer.clipart.width;
+    	    var tHeight = this.currentlayer.clipart.height;
+    	
+    	    //if ($debug) Debug.write("END 0 ",tY);
+    	    
+    	    this.currentlayer.destroy();
+    	       	        	    
+    	    //if ($debug) Debug.write("END 1 ",this.minClipArty,this.starty);
+    	    
+	     	if(this.isSnapToGrid){        		
+	    		if ($debug) Debug.write("####  this.minClipArtx y ",this.minClipArtx,this.minClipArty);
+	    	
+		    	//this.minClipArtx = Math.round(this.minClipArtx/this.gridWidth)*this.gridWidth;
+		    	//this.minClipArty = Math.round(this.minClipArty/this.gridWidth)*this.gridWidth;
+		    	
+		    	tX = Math.round(tX/this.gridWidth)*this.gridWidth;
+		    	tY = Math.round(tY/this.gridWidth)*this.gridWidth;
+		    	
+		    	this.currentlayer = new lz.drawViewNew(this,{
+    	                                x:tX,
+    	                                y:tY,
+                                        name:oid_name,
+                                        width:this.maxClipArtx-this.minClipArtx,
+                                        height:this.maxClipArty-this.minClipArty
+                                        //bgcolor:0x0033FF
+                                    });
+		    	
+            }else{
+    	    
+	    	    this.currentlayer = new lz.drawViewNew(this,{
+	    	                                x:this.minClipArtx,
+	    	                                y:this.minClipArty,
+	                                        name:oid_name,
+	                                        width:this.maxClipArtx-this.minClipArtx,
+	                                        height:this.maxClipArty-this.minClipArty
+	                                        //bgcolor:0x0033FF
+	                                    });
+            
+            //if ($debug) Debug.write(" IS ZERO END1 ",this.currentlayer.x,this.currentlayer.y);                        
+            }                                                
+            new lz.drawClipArtWhiteBoard(this.currentlayer,{
+                                    width:tWidth,height:tHeight,
+                                    stretches:'both',
+                                    x:this.deltaClipArtx,
+                                    y:this.deltaClipArty,
+                                    rotation:tRotation,
+                                    resource:tSource,
+                                    clipArtEndx:this.clipArtEndx-this.minClipArtx,
+                                    clipArtEndy:this.clipArtEndy-this.minClipArty,
+                                    name:'clipart'
+                                    //bgcolor:0xFF3300
+                                });
+    	
+            //if ($debug) Debug.write(" IS ZERO END2 ",this.deltaClipArtx,this.deltaClipArty);                        
+            
+            //if ($debug) Debug.write("END 2 ",this.currentlayer.y,this.currentlayer.clipart.y);
+            
+    	    this.drawClipArtRegisterFinal(
+    	                   oid_name,
+    	                   tSource,
+    	                   tRotation,
+    	                   1,
+    	                   this.minClipArtx,
+    	                   this.minClipArty,
+    	                   this.maxClipArtx-this.minClipArtx,
+    	                   this.maxClipArty-this.minClipArty,
+    	                   this.deltaClipArtx,
+    	                   this.deltaClipArty,
+    	                   tWidth,
+    	                   tHeight,
+    	                   this.clipArtEndx-this.minClipArtx,
+                           this.clipArtEndy-this.minClipArty,
+    	                   true,
+    	                   this.getSWFDocumentStatus(),
+    	                   this.getZIndex());
+    	     
+            this.layers.push(this.currentlayer);
+            this.checkStepLayers();    	                   
+    	                   
+            //Set previous to null
+            this.prevx = null;
+            this.prevy = null;  
+    	
+    	]]>
+    </method>
+    
+    <method name="drawClipArtRegisterFinal" args="newName,tSource,tRotation,opacity,x,y,width,height,deltaClipArtx,deltaClipArty,deltaClipWidth,deltaClipHeight,deltaClipEndx,deltaClipEndy,doCall,swfObj,zIndex">
+        var actionObject = new Array();
+        actionObject[0] = 'clipart';
+        actionObject[1] = newName;
+        actionObject[2] = tSource;
+        actionObject[3] = tRotation;
+        actionObject[4] = opacity;
+        actionObject[5] = deltaClipArtx;
+        actionObject[6] = deltaClipArty;
+        actionObject[7] = deltaClipWidth;
+        actionObject[8] = deltaClipHeight;
+        actionObject[9] = deltaClipEndx;
+        actionObject[10] = deltaClipEndy;
+        actionObject[11] = zIndex;//-8
+        actionObject[12] = swfObj;//-7
+        actionObject[13] = this.counter;//-6 
+        actionObject[14] = x;//-5
+        actionObject[15] = y;//-4
+        actionObject[16] = width;//-3
+        actionObject[17] = height;//-2
+        actionObject[18] = newName;//-1
+        this.baseactionobjectList.push(actionObject);       
+        if (doCall) this.onsharedMessage('draw',actionObject);
+    </method>      
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawEllipse.lzx b/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawEllipse.lzx
new file mode 100644
index 0000000..6107959
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawEllipse.lzx
@@ -0,0 +1,215 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="baseDrawEllipse" extends="baseDrawRect" >
+    
+    <!-- 
+        for drawing ellipse the variable 
+        with *Dis* indicates if the line/fil-color is active (+1/-1)
+     -->
+    <attribute name="currentellipsestroke" value="0xFF6600" />
+    <attribute name="currentellipsestrokeDis" value="1" type="number" />
+    <attribute name="currentellipsestrokeFill" value="0xFFFF33" />
+    <attribute name="currentellipsestrokeFillDis" value="1" type="number" />
+    <attribute name="currentellipselineWidth" value="4" />
+    <attribute name="currentellipseOpacity" value="1" type="number" />
+  
+    <!-- ################
+    Ellipse
+     -->
+    <method name="startEllipse" args="oid_name">
+        //Debug.write("startEllipse");
+        if (oid_name == null) {
+            oid_name = 'ellipse'+this.getCounter();
+        }
+        this.currentlayer = new lz.drawViewNew(this,{
+            name:oid_name,width:this.width+2,height:this.height+2,
+            opacity:this.currentellipseOpacity});
+        this.drawlineOnObject(this.currentlayer,-1,-1,0,0);
+        this.drawlineOnObject(this.currentlayer,this.width,this.height,this.width+1,this.height+1);
+    </method>    
+    
+    <method name="endEllipse">
+        <![CDATA[
+            ////Debug.write(" this.startx, this.starty , this.endx, this.endy ",this.startx, this.starty , this.endx, this.endy);
+            var tmpName = this.currentlayer.name;
+            this.currentlayer.destroy();
+            var x = this.startx;
+            var width = this.endx - this.startx;
+            if (this.endx<this.startx){
+                x = this.endx;
+                width = Math.abs(width);
+            }
+            var y = this.starty;
+            var height = this.endy - this.starty;
+            if (this.endy<this.starty){
+                y = this.endy;
+                height = Math.abs(height);
+            }
+            
+            if(this.isSnapToGrid){        		
+	    			        	   
+	            x = Math.round(x/this.gridWidth)*this.gridWidth;
+		    	y = Math.round(y/this.gridWidth)*this.gridWidth;
+            
+            } 
+            
+            this.currentlayer = new lz.drawViewNew(this,{
+                name:tmpName,x:x,y:y,width:width,height:height,
+                opacity:this.currentellipseOpacity});
+                
+            new lz.drawViewInner(this.currentlayer,{
+                name:'_innerEllipse',x:0,y:0,width:width,height:height});
+                
+            //this.drawellipse(0,0,width,height);
+            //Debug.write("this.currentellipsestroke,this.currentellipselineWidth: ",this.currentellipsestroke,this.currentellipselineWidth);
+            
+            this.drawellipseHistory(this.currentlayer,
+                0,0,width,height,
+                this.currentellipsestroke,this.currentellipselineWidth,
+                this.currentellipsestrokeFill,this.currentellipsestrokeDis,
+                this.currentellipsestrokeFillDis)
+            
+            //Draw On Object    
+                
+            this.drawellipseregisterFinal(this.currentlayer.name,
+                this.currentellipsestroke,this.currentellipselineWidth,
+                this.currentellipsestrokeFill,this.currentellipsestrokeDis,
+                this.currentellipsestrokeFillDis,
+                x,y,width,height,this.getSWFDocumentStatus(),this.getZIndex());
+            this.layers.push(this.currentlayer);
+            this.checkStepLayers();
+        ]]>
+    </method>
+    
+    <method name="drawellipseToHistory"  args="lastActionObject,parentView">
+
+        var tmpCurrentlayer = new lz.drawViewNew(parentView,{
+            name:lastActionObject[lastActionObject.length-1],
+            x:lastActionObject[lastActionObject.length-5],
+            y:lastActionObject[lastActionObject.length-4],
+            width:lastActionObject[lastActionObject.length-3],
+            height:lastActionObject[lastActionObject.length-2],
+            opacity:lastActionObject[6]});
+            
+        new lz.drawViewInner(tmpCurrentlayer,{
+                name:'_innerEllipse',x:0,y:0,
+                width:lastActionObject[lastActionObject.length-3],
+                height:lastActionObject[lastActionObject.length-2]});
+                
+        //Debug.write("lastActionObject[1],lastActionObject[2]: ",lastActionObject[1],lastActionObject[2]);
+        this.drawellipseHistory(tmpCurrentlayer,
+            0,0,lastActionObject[lastActionObject.length-3],lastActionObject[lastActionObject.length-2],
+            lastActionObject[1],lastActionObject[2],
+            lastActionObject[3],lastActionObject[4],
+            lastActionObject[5]);
+
+        this.doSWFDocumentStatus(tmpCurrentlayer,lastActionObject[lastActionObject.length-7]);
+    </method>
+    
+    <method name="redrawEllipseItemByScaling" args="objRef">
+        //if ($debug) Debug.write("redrawRectItemByScaling: "+objRef);
+        this.currentlayer = objRef;
+        this.currentlayer._innerEllipse.destroy();
+        new lz.drawViewInner(this.currentlayer,{
+            name:'_innerEllipse',x:0,y:0,width:objRef.width,height:objRef.height});
+        this.drawellipseHistory(this.currentlayer,0,0,
+            objRef.width,objRef.height,
+            this.currentellipsestroke,this.currentellipselineWidth,
+            this.currentellipsestrokeFill,this.currentellipsestrokeDis,
+            this.currentellipsestrokeFillDis);
+    </method> 
+    
+    <method name="drawellipseHistory" args="parentObj,x1,y1,x2,y2,stroke,line,fill,strokeDis,fillDis">
+        <![CDATA[
+        
+            //Debug.write("stroke,line: ",stroke,line);
+            var rx = (x1+x2)/2;
+            var ry = (y1+y2)/2;
+            var xradius = Math.abs(rx-x1);
+            var yradius = Math.abs(ry-y1);
+            
+            parentObj._innerEllipse.lineWidth = line;
+            parentObj._innerEllipse.oval(rx,ry,xradius,yradius);
+            
+            if (strokeDis!=-1){
+                parentObj._innerEllipse.strokeStyle = stroke;
+                parentObj._innerEllipse.stroke();
+            }
+
+            if (fillDis!=-1){
+                parentObj._innerEllipse.fillStyle = fill;
+                parentObj._innerEllipse.fill();
+            }
+
+        ]]>   
+    </method>   
+     
+    <method name="drawellipse" args="x1,y1,x2,y2">
+        <![CDATA[
+            //Debug.write("stroke,line: ",this.currentellipsestroke,this.currentellipselineWidth);
+            var rx = (x1+x2)/2;
+            var ry = (y1+y2)/2;
+            var xradius = Math.abs(rx-x1);
+            var yradius = Math.abs(ry-y1);
+            
+            currentlayer.lineWidth = this.currentellipselineWidth;
+            currentlayer.oval(rx,ry,xradius,yradius);
+            
+            if (this.currentellipsestrokeDis!=-1){
+                currentlayer.strokeStyle = this.currentellipsestroke;
+                currentlayer.stroke();
+            }
+            
+            if (this.currentellipsestrokeFillDis!=-1){
+                currentlayer.fillStyle = this.currentellipsestrokeFill;
+                currentlayer.fill(); 
+            }
+    
+        ]]>   
+    </method>
+    
+    <method name="drawellipseregisterFinal" args="newName,stroke,line,fill,strokeDis,fillDis,x,y,width,height,swfObj,zIndex" >
+        var actionObject = new Array();
+        actionObject[0] = 'ellipse';
+        actionObject[1] = stroke;
+        actionObject[2] = line;
+        actionObject[3] = fill;
+        actionObject[4] = strokeDis;
+        actionObject[5] = fillDis;
+        actionObject[6] = this.currentellipseOpacity;
+        actionObject[7] = zIndex;//-8
+        actionObject[8] = swfObj;//-7
+        actionObject[9] = this.counter;//-6
+        actionObject[10] = x;//-5
+        actionObject[11] = y;//-4
+        actionObject[12] = width;//-3
+        actionObject[13] = height;//-2 
+        actionObject[14] = newName;//-1
+        this.baseactionobjectList.push(actionObject);
+        this.onsharedMessage('draw',actionObject);
+    </method>
+
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawLine.lzx b/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawLine.lzx
new file mode 100644
index 0000000..ce91a74
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawLine.lzx
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<class name="baseDrawLine" extends="baseDrawPaint" >
+      
+		<!-- for drawing line -->
+		<attribute name="currentlinestroke" value="0xFF6600" />
+		<attribute name="currentlinelineWidth" value="2" type="number" />   
+		<attribute name="currentlineOpacity" value="1" type="number" />
+        
+		<!-- ###########################
+			Line
+			 -->
+    
+		<method name="startLine" args="oid_name">
+
+			//Debug.write("startLine ",this.startx,this.starty);
+			if (oid_name == null) {
+				oid_name = 'line' + this.getCounter()
+			}
+			this.currentlayer = new lz.drawViewNew(this, {
+						name : oid_name,
+						width : this.width + 2,
+						height : this.height + 2,
+						x : -1,
+						y : -1,
+						opacity : this.currentlineOpacity
+					});
+			this.drawlineOnObject(this.currentlayer, -1, -1, 0, 0);
+			this.drawlineOnObject(this.currentlayer, this.width, this.height,
+					this.width + 1, this.height + 1);
+
+			//Set previous to null
+			this.prevx = null;
+			this.prevy = null;
+
+			currentlayer.strokeStyle = this.currentlinestroke;
+			currentlayer.lineWidth = this.currentlinelineWidth;
+			//currentlayer.fillstyle = '0x000000';
+
+		</method>
+    
+		<method name="endLine">
+        ////Debug.write("endLine",this.startx,this.starty,this.endx,this.endy);
+		<![CDATA[
+			var tempName = this.currentlayer.name;
+			this.currentlayer.destroy();
+
+			//GetBounds of that Object
+			var minx = this.width + 2;
+			var miny = this.height + 2;
+			var maxx = -2;
+			var maxy = -2;
+
+			if (this.startx < minx)
+				minx = this.startx;
+			if (this.endx < minx)
+				minx = this.endx;
+
+			if (this.startx > maxx)
+				maxx = this.startx;
+			if (this.endx > maxx)
+				maxx = this.endx;
+
+			if (this.starty < miny)
+				miny = this.starty;
+			if (this.endy < miny)
+				miny = this.endy;
+
+			if (this.starty > maxy)
+				maxy = this.starty;
+			if (this.endy > maxy)
+				maxy = this.endy;
+
+			var width = maxx - minx;
+			var height = maxy - miny;
+
+			var x1 = this.startx - minx + (this.currentlinelineWidth / 2);
+			var y1 = this.starty - miny + (this.currentlinelineWidth / 2);
+			var x2 = this.endx - minx + (this.currentlinelineWidth / 2);
+			var y2 = this.endy - miny + (this.currentlinelineWidth / 2);
+
+			if (this.isSnapToGrid) {
+
+				xgrid = Math.round((minx - 1 - (this.currentlinelineWidth / 2))
+						/ this.gridWidth)
+						* this.gridWidth;
+				ygrid = Math.round((miny - 1 - (this.currentlinelineWidth / 2))
+						/ this.gridWidth)
+						* this.gridWidth;
+
+				this.currentlayer = new lz.drawViewNew(this, {
+							name : tempName,
+							x : xgrid,
+							y : ygrid,
+							width : (width + this.currentlinelineWidth),
+							height : (height + this.currentlinelineWidth),
+							opacity : this.currentlineOpacity
+						});
+
+			} else {
+
+				this.currentlayer = new lz.drawViewNew(this, {
+							name : tempName,
+							x : (minx - 1 - (this.currentlinelineWidth / 2)),
+							y : (miny - 1 - (this.currentlinelineWidth / 2)),
+							width : (width + this.currentlinelineWidth),
+							height : (height + this.currentlinelineWidth),
+							opacity : this.currentlineOpacity
+						});
+			}
+			//this.currentlayer.fillstyle = '0x000000';
+			this.currentlayer.lineWidth = this.currentlinelineWidth;
+			this.currentlayer.strokeStyle = this.currentlinestroke;
+
+			this.drawline((x1), (y1), (x2), (y2));
+
+			//Add Layer to global Layer     
+			this.layers.push(this.currentlayer);
+
+			this.lineregisterFinal(this.currentlayer.name,
+					this.currentlinestroke, this.currentlinelineWidth,
+					this.currentlineOpacity, this.currentlayer.x,
+					this.currentlayer.y, this.currentlayer.width,
+					this.currentlayer.height, x1, y1, x2, y2, true, this
+							.getSWFDocumentStatus(), this.getZIndex());
+		]]>
+		</method> 
+    
+    
+		<method name="lineregisterFinal" args="newName,stroke,line,opacity,x,y,width,height,x1,y1,x2,y2,doCall,swfObj,zIndex">
+			var actionObject = new Array();
+			actionObject[0] = 'line';
+			actionObject[1] = stroke;
+			actionObject[2] = line;
+			actionObject[3] = opacity;
+			actionObject[4] = x1
+			actionObject[5] = y1;
+			actionObject[6] = x2;
+			actionObject[7] = y2;
+			actionObject[8] = zIndex;//-8
+			actionObject[9] = swfObj;//-7
+			actionObject[10] = this.counter;//-6
+			actionObject[11] = x;//-5
+			actionObject[12] = y;//-4
+			actionObject[13] = width;//-3
+			actionObject[14] = height;//-2
+			actionObject[15] = newName;//-1
+			this.baseactionobjectList.push(actionObject);
+			if (doCall)
+				this.onsharedMessage('draw', actionObject);
+		</method>       
+    
+    
+		<method name="lineactionHistory" args="lastActionObject,parentView">
+		<![CDATA[
+
+			//Debug.write("## lineactionHistory",parentView," 2 ## NEW x,y ",lastActionObject[lastActionObject.length-5],lastActionObject[lastActionObject.length-4]," width,height: ",lastActionObject[lastActionObject.length-3],lastActionObject[lastActionObject.length-2]);
+
+			var tmpCurrentlayer = new lz.drawViewNew(parentView, {
+						name : lastActionObject[lastActionObject.length - 1],
+						x : lastActionObject[lastActionObject.length - 5],
+						y : lastActionObject[lastActionObject.length - 4],
+						width : lastActionObject[lastActionObject.length - 3],
+						height : lastActionObject[lastActionObject.length - 2],
+						opacity : lastActionObject[3]
+					});
+
+			//this.currentlayer.fillstyle = lastActionObject[1];
+			tmpCurrentlayer.lineWidth = lastActionObject[2];
+			tmpCurrentlayer.strokeStyle = lastActionObject[1];
+
+			this.drawlineOnObject(tmpCurrentlayer, lastActionObject[4],
+					lastActionObject[5], lastActionObject[6],
+					lastActionObject[7]);
+
+			//Add Layer to global Layer     
+			this.layers.push(tmpCurrentlayer);
+
+			this.doSWFDocumentStatus(tmpCurrentlayer,
+					lastActionObject[lastActionObject.length - 7]);
+		]]>
+		</method>
+    
+	</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawPaint.lzx b/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawPaint.lzx
new file mode 100644
index 0000000..00af3e9
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawPaint.lzx
@@ -0,0 +1,290 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<class name="baseDrawPaint" extends="baseDraw" >
+    
+		<!-- paint -->
+		<attribute name="currentlayerstroke" value="0xFF6600" />
+		<attribute name="currentlayerlineWidth" value="2" type="number" />
+		<attribute name="currentlayerOpacity" value="1" type="number" />
+    
+		<!-- TODO: Check if needed, seems to have no reference -->
+		<attribute name="painttrans" value="false" type="boolean" />
+          
+		<!-- #####################
+				Paint
+			 -->
+    
+		<method name="drawline" args="x1,y1,x2,y2">
+		<![CDATA[
+			currentlayer.beginPath();
+			currentlayer.moveTo(x1, y1);
+			currentlayer.lineTo(x2, y2);
+			currentlayer.stroke();
+		]]>
+		</method>
+    
+		<method name="drawlineOnObject" args="obj,x1,y1,x2,y2">
+		<![CDATA[
+			obj.beginPath();
+			obj.moveTo(x1, y1);
+			obj.lineTo(x2, y2);
+			obj.stroke();
+		]]>
+		</method>
+        
+    
+		<method name="drawlineRegisterPaint" args="x1,y1,x2,y2">
+			var actionObject = new Array();
+			actionObject[0] = 'point';
+			actionObject[1] = x1;
+			actionObject[2] = y1;
+			actionObject[3] = x2;
+			actionObject[4] = y2;
+			this.basetempactionobjectList.push(actionObject);
+		</method> 
+         
+		<method name="startPaint">
+
+			//Debug.write("startPaint ",this.startx,this.starty);
+			this.currentlayer = new lz.drawViewNew(this, {
+						name : 'paint' + this.getCounter(),
+						width : this.width + 2,
+						height : this.height + 2,
+						x : -1,
+						y : -1,
+						opacity : this.currentlayerOpacity
+					});
+			this.drawlineOnObject(this.currentlayer, -1, -1, 0, 0);
+			this.drawlineOnObject(this.currentlayer, this.width, this.height,
+					this.width + 1, this.height + 1);
+
+			this.startx = this.currentlayer.getMouse('x');
+			this.starty = this.currentlayer.getMouse('y');
+
+			//Set previous to null
+			this.prevx = null;
+			this.prevy = null;
+
+			currentlayer.strokeStyle = this.currentlayerstroke;
+			currentlayer.lineWidth = this.currentlayerlineWidth;
+			currentlayer.fillstyle = '0x000000';
+
+			this.basetempactionobjectList = new Array();
+
+			//beginFill( the_colorpicker.selectedColor );
+		</method>
+
+		<method name="endPaint">
+        ////Debug.write("endPaint");
+		<![CDATA[
+			var tempName = this.currentlayer.name;
+			this.currentlayer.destroy();
+
+			//GetBounds of that Object
+			var minx = this.width + 2;
+			var miny = this.height + 2;
+			var maxx = -2;
+			var maxy = -2;
+
+			for (var eg = 0; eg < this.basetempactionobjectList.length; eg++) {
+				////Debug.write(this.basetempactionobjectList[eg][1],this.basetempactionobjectList[eg][3]);
+				if (this.basetempactionobjectList[eg][1] < minx)
+					minx = this.basetempactionobjectList[eg][1];
+				if (this.basetempactionobjectList[eg][3] < minx)
+					minx = this.basetempactionobjectList[eg][3];
+
+				if (this.basetempactionobjectList[eg][1] > maxx)
+					maxx = this.basetempactionobjectList[eg][1];
+				if (this.basetempactionobjectList[eg][3] > maxx)
+					maxx = this.basetempactionobjectList[eg][3];
+
+				if (this.basetempactionobjectList[eg][2] < miny)
+					miny = this.basetempactionobjectList[eg][2];
+				if (this.basetempactionobjectList[eg][4] < miny)
+					miny = this.basetempactionobjectList[eg][4];
+
+				if (this.basetempactionobjectList[eg][2] > maxy)
+					maxy = this.basetempactionobjectList[eg][2];
+				if (this.basetempactionobjectList[eg][4] > maxy)
+					maxy = this.basetempactionobjectList[eg][4];
+			}
+
+			for (var eg = 0; eg < this.basetempactionobjectList.length; eg++) {
+
+				this.basetempactionobjectList[eg][1] -= minx;
+				this.basetempactionobjectList[eg][2] -= miny;
+				this.basetempactionobjectList[eg][3] -= minx;
+				this.basetempactionobjectList[eg][4] -= miny
+
+			}
+
+			var width = maxx - minx;
+			var height = maxy - miny;
+			//if ($debug) Debug.info("## 1 ## NEW x,y ",minx,miny," width,height: ",width,height);
+
+			if (width < 2 && height < 2) {
+
+				//if ($debug) Debug.info("Add minimum size of Painting Line");
+
+				if (this.basetempactionobjectList.length > 0) {
+
+					var lastPoint = this.basetempactionobjectList[this.basetempactionobjectList.length
+							- 1];
+
+					var actionObject = new Array();
+					actionObject[0] = 'point';
+					actionObject[1] = lastPoint[3];
+					actionObject[2] = lastPoint[4];
+					actionObject[3] = lastPoint[3] + 2;
+					actionObject[4] = lastPoint[4] + 2;
+					this.basetempactionobjectList.push(actionObject);
+
+				} else {
+
+					//if ($debug) Debug.info("## 2 ## CURRENT width,height ",this.width,this.height);
+
+					minx = this.startx;
+					miny = this.starty;
+
+					var actionObject = new Array();
+					actionObject[0] = 'point';
+					actionObject[1] = 0;
+					actionObject[2] = 0;
+					actionObject[3] = 2;
+					actionObject[4] = 2;
+					this.basetempactionobjectList.push(actionObject);
+
+					width = 2;
+					height = 2;
+
+				}
+
+			}
+
+			if (this.isSnapToGrid) {
+
+				xgrid = Math.round((minx - 1) / this.gridWidth)
+						* this.gridWidth;
+				ygrid = Math.round((miny - 1) / this.gridWidth)
+						* this.gridWidth;
+
+				this.currentlayer = new lz.drawViewNew(this, {
+							name : tempName,
+							x : xgrid,
+							y : ygrid,
+							width : width,
+							height : height,
+							opacity : this.currentlayerOpacity
+						});
+			} else {
+				this.currentlayer = new lz.drawViewNew(this, {
+							name : tempName,
+							x : minx - 1,
+							y : miny - 1,
+							width : width,
+							height : height,
+							opacity : this.currentlayerOpacity
+						});
+			}
+
+			this.currentlayer.fillstyle = '0x000000';
+			this.currentlayer.lineWidth = this.currentlayerlineWidth;
+			this.currentlayer.strokeStyle = this.currentlayerstroke;
+
+			for (var eg = 0; eg < this.basetempactionobjectList.length; eg++)
+				this.drawline(this.basetempactionobjectList[eg][1],
+						this.basetempactionobjectList[eg][2],
+						this.basetempactionobjectList[eg][3],
+						this.basetempactionobjectList[eg][4]);
+
+			//this.currentlayer.setAttribute('stretches','both');
+
+			//Add Layer to global Layer     
+			this.layers.push(this.currentlayer);
+
+			this.registerFinal(this.getSWFDocumentStatus(), this.getZIndex());
+		]]>
+		</method>    
+
+		<method name="registerFinal" args="swfObj,zIndex">
+			var actionObject = new Array();
+			actionObject[0] = 'paint';
+			actionObject[1] = this.basetempactionobjectList;
+			actionObject[2] = currentlayer.fillstyle;
+			actionObject[3] = currentlayer.lineWidth;
+			actionObject[4] = currentlayer.strokeStyle;
+			actionObject[5] = this.currentlayerOpacity;
+			actionObject[6] = zIndex;//-8
+			actionObject[7] = swfObj;//-7
+			actionObject[8] = this.counter;//-6
+			actionObject[9] = currentlayer.x;//-5
+			actionObject[10] = currentlayer.y;//-4
+			actionObject[11] = currentlayer.width;//-3
+			actionObject[12] = currentlayer.height;//-2
+			actionObject[13] = this.currentlayer.name;//-1
+			if ($debug)
+				Debug.write("registerFinal :: ", actionObject);
+			this.baseactionobjectList.push(actionObject);
+			this.onsharedMessage('draw', actionObject);
+		</method>      
+    
+    
+		<method name="paintactionHistory" args="lastActionObject,parentView">
+		<![CDATA[
+			if ($debug) Debug.write("## paintactionHistory", parentView, " opacity:",
+						lastActionObject[5]);
+
+			var tmpCurrentlayer = new lz.drawViewNew(parentView, {
+						name : lastActionObject[lastActionObject.length - 1],
+						x : lastActionObject[lastActionObject.length - 5],
+						y : lastActionObject[lastActionObject.length - 4],
+						width : lastActionObject[lastActionObject.length - 3],
+						height : lastActionObject[lastActionObject.length - 2],
+						opacity : lastActionObject[5]
+					});
+					
+			if ($debug) ("paintactionHistory 1 ",tmpCurrentlayer.x,tmpCurrentlayer.y,tmpCurrentlayer.opacity);
+
+			tmpCurrentlayer.fillstyle = lastActionObject[2];
+			tmpCurrentlayer.lineWidth = lastActionObject[3];
+			tmpCurrentlayer.strokeStyle = lastActionObject[4];
+			
+			if ($debug) ("paintactionHistory 2 ",tmpCurrentlayer.fillstyle,tmpCurrentlayer.lineWidth,tmpCurrentlayer.strokeStyle);
+
+			for (var eg = 0; eg < lastActionObject[1].length; eg++) {
+				if ($debug) ("paintactionHistory 3 ",lastActionObject[1][eg][1], lastActionObject[1][eg][2],
+										lastActionObject[1][eg][3], lastActionObject[1][eg][4]);
+				this.drawlineOnObject(tmpCurrentlayer,
+						lastActionObject[1][eg][1], lastActionObject[1][eg][2],
+						lastActionObject[1][eg][3], lastActionObject[1][eg][4]);
+			}
+
+			//tmpCurrentlayer.setAttribute('stretches','both');
+			this.doSWFDocumentStatus(tmpCurrentlayer,
+					lastActionObject[lastActionObject.length - 7]);
+		]]>
+		</method>
+    
+	</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawPointer.lzx b/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawPointer.lzx
new file mode 100644
index 0000000..e95316d
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawPointer.lzx
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="baseDrawPointer" extends="baseDrawEllipse" >
+      
+    <!-- Pointers -->
+    
+    <method name="endPointerWhiteBoard">
+        this.drawPointerWhiteBoardFinal(
+                "pointer"+this.getCounter(),
+                this.getMouse('x'),this.getMouse('y'),
+                0,0
+            )
+    </method>
+
+    <method name="drawPointerToHistory" args="actionObject,parentObj">
+        new lz.whiteBoardPointer(parentObj,{
+            x:actionObject[actionObject.length-5],
+            y:actionObject[actionObject.length-4],
+            userName:actionObject[1]
+        })
+    </method>
+
+    <method name="drawPointerWhiteBoardFinal" args="newName,x,y,width,height" >
+    	var displayedName = canvas.currentuser;
+    	if (canvas.firstName.length > 0) {
+    		displayedName = canvas.firstName;
+    	}
+    	if (canvas.lastName.length > 0) {
+    		if (canvas.firstName.length > 0) {
+    			displayedName += " " + canvas.lastName;
+    		} else {
+    			displayedName = canvas.lastName;
+    		}
+    	}
+    	
+        var actionObject = new Array();
+        actionObject[0] = 'pointerWhiteBoard';
+        actionObject[1] = displayedName;
+        actionObject[2] = this.counter;//-6
+        actionObject[3] = x;//-5
+        actionObject[4] = y;//-4
+        actionObject[5] = width;//-3
+        actionObject[6] = height;//-2
+        actionObject[7] = newName;//-1
+        this.baseactionobjectList.push(actionObject);
+        this.onsharedMessage('draw',actionObject);
+        this.drawPointerToHistory(actionObject,this);
+    </method>
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawRect.lzx b/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawRect.lzx
new file mode 100644
index 0000000..c3fcd4e
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawRect.lzx
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="baseDrawRect" extends="baseDrawSelect" >
+    
+    <!--  
+        for drawing rectangles the variable 
+        with *Dis* indicates if the line/fil-color is active (+1/-1)
+     -->
+    <attribute name="currentrectanglestroke" value="0xFF6600" />
+    <attribute name="currentrectanglestrokeDis" value="1" type="number" />
+    <attribute name="currentrectanglestrokeFill" value="0xFFFF33" />
+    <attribute name="currentrectanglestrokeFillDis" value="1" type="number" />
+    <attribute name="currentrectangleineWidth" value="4" type="number" />
+    <attribute name="currentrectangleOpacity" value="1" type="number" />
+      
+    <!-- ###########################
+        Rectangle
+     -->
+    
+    <method name="startRect" args="oid_name">
+        if (oid_name == null){
+            oid_name = 'rectangle'+this.getCounter();
+        }
+        //Debug.write("startRect");
+        this.currentlayer = new lz.drawViewNew(this,{
+            name:oid_name,width:this.width,height:this.height,
+            opacity:this.currentrectangleOpacity});
+
+        this.drawlineOnObject(this.currentlayer,-1,-1,0,0);
+        this.drawlineOnObject(this.currentlayer,this.width,this.height,this.width+1,this.height+1);
+    </method>  
+
+    <method name="endRect">
+        <![CDATA[        
+        
+            ////Debug.write(" this.startx, this.starty , this.endx, this.endy ",this.startx, this.starty , this.endx, this.endy);
+            var tmpName = this.currentlayer.name;
+            this.currentlayer.destroy();
+            var x = this.startx;
+            var width = this.endx - this.startx;
+            if (this.endx<this.startx){
+                x = this.endx;
+                width = Math.abs(width);
+            }
+            var y = this.starty;
+            var height = this.endy - this.starty;
+            if (this.endy<this.starty){
+                y = this.endy;
+                height = Math.abs(height);
+            }
+            
+            if(this.isSnapToGrid){        		
+	    			        	   
+	            x = Math.round(x/this.gridWidth)*this.gridWidth;
+		    	y = Math.round(y/this.gridWidth)*this.gridWidth;
+            
+            } 
+            
+            this.currentlayer = new lz.drawViewNew(this,{
+                name:tmpName,x:x,y:y,width:width,height:height,
+                opacity:this.currentrectangleOpacity});
+                
+            new lz.drawViewInner(this.currentlayer,{
+                name:'_innerRect',x:0,y:0,width:width,height:height});
+                
+            this.drawrectangleHistory(this.currentlayer,0,0,width,height,
+                this.currentrectanglestroke,this.currentrectangleineWidth,
+                this.currentrectanglestrokeFill,this.currentrectanglestrokeDis,
+                this.currentrectanglestrokeFillDis);
+            //this.currentlayer.setAttribute('stretches','both');
+            this.drawrectregisterFinal(this.currentlayer.name,this.currentrectanglestroke,
+                this.currentrectangleineWidth,this.currentrectanglestrokeFill,
+                this.currentrectanglestrokeDis,this.currentrectanglestrokeFillDis,
+                x,y,width,height,this.getSWFDocumentStatus(),
+                this.getZIndex());
+            this.layers.push(this.currentlayer);
+            this.checkStepLayers();
+        ]]>
+    </method> 
+    
+    <!--
+        Terminate the usage of this function
+     --> 
+    <method name="drawrectangle" args="x1,y1,x2,y2">
+        <![CDATA[
+            
+            currentlayer.lineWidth = this.currentrectangleineWidth;
+            currentlayer.beginPath();
+            currentlayer.moveTo(x1,y1);
+            currentlayer.lineTo(x1,y2);
+            currentlayer.lineTo(x2,y2);
+            currentlayer.lineTo(x2,y1);
+            currentlayer.lineTo (x1,y1);
+            currentlayer.closePath();
+            
+            if (this.currentrectanglestrokeDis!=-1){
+                currentlayer.strokeStyle = this.currentrectanglestroke;
+                currentlayer.stroke();
+            }
+
+            if (this.currentrectanglestrokeFillDis!=-1){
+                currentlayer.fillStyle = this.currentrectanglestrokeFill;
+                currentlayer.fill();
+            }
+            
+        ]]>   
+    </method>   
+    
+    <method name="redrawRectItemByScaling" args="objRef">
+        //if ($debug) Debug.write("redrawRectItemByScaling: "+objRef);
+        this.currentlayer = objRef;
+        this.currentlayer._innerRect.destroy();
+        new lz.drawViewInner(this.currentlayer,{
+            name:'_innerRect',x:0,y:0,width:objRef.width,height:objRef.height});
+        this.drawrectangleHistory(this.currentlayer,0,0,
+            objRef.width,objRef.height,
+            this.currentrectanglestroke,this.currentrectangleineWidth,
+            this.currentrectanglestrokeFill,this.currentrectanglestrokeDis,
+            this.currentrectanglestrokeFillDis);
+    </method> 
+    
+    <method name="drawrectangleToHistory" args="lastActionObject,parentView">
+        var tmpCurrentlayer = new lz.drawViewNew(parentView,{
+            name:lastActionObject[lastActionObject.length-1],
+            x:lastActionObject[lastActionObject.length-5],
+            y:lastActionObject[lastActionObject.length-4],
+            width:lastActionObject[lastActionObject.length-3],
+            height:lastActionObject[lastActionObject.length-2],
+            opacity:lastActionObject[6]});
+        new lz.drawViewInner(tmpCurrentlayer,{
+                name:'_innerRect',x:0,y:0,
+                width:lastActionObject[lastActionObject.length-3],
+                height:lastActionObject[lastActionObject.length-2]});
+        this.drawrectangleHistory(tmpCurrentlayer,0,0,
+            lastActionObject[lastActionObject.length-3],lastActionObject[lastActionObject.length-2],
+            lastActionObject[1],lastActionObject[2],lastActionObject[3],lastActionObject[4],lastActionObject[5]);
+            
+        this.doSWFDocumentStatus(tmpCurrentlayer,lastActionObject[lastActionObject.length-7]);
+    </method>
+    
+    <method name="drawrectangleHistory" args="parentObj,x1,y1,x2,y2,stroke,line,fill,strokeDis,fillDis">
+        <![CDATA[
+            //Debug.write("drawrectangleHistory",parentObj,x1,y1,x2,y2,stroke,line,fill,strokeDis,fillDis);
+            parentObj._innerRect.lineWidth = line;
+            parentObj._innerRect.beginPath();
+            parentObj._innerRect.moveTo(x1,y1);
+            parentObj._innerRect.lineTo(x1,y2);
+            parentObj._innerRect.lineTo(x2,y2);
+            parentObj._innerRect.lineTo(x2,y1);
+            parentObj._innerRect.lineTo (x1,y1);
+            
+            if (strokeDis!=-1){
+                parentObj._innerRect.strokeStyle = stroke;
+                parentObj._innerRect.stroke();
+            }
+            
+            if (fillDis!=-1){
+                parentObj._innerRect.fillStyle = fill;
+                parentObj._innerRect.fill();
+            }
+            
+        ]]>   
+    </method>  
+    
+    <method name="drawrectregisterFinal" args="newName,stroke,line,fill,strokeDis,fillDis,x,y,width,height,swfObj,zIndex" >
+        Debug.write("drawrectregisterFinal",newName,stroke,line,fill,strokeDis,fillDis,x,y,width,height);
+        var actionObject = new Array();
+        actionObject[0] = 'rectangle';
+        actionObject[1] = stroke;
+        actionObject[2] = line;
+        actionObject[3] = fill;
+        actionObject[4] = strokeDis;
+        actionObject[5] = fillDis;
+        actionObject[6] = this.currentrectangleOpacity;
+        actionObject[7] = zIndex;//-8
+        actionObject[8] = swfObj;//-7
+        actionObject[9] = this.counter;//-6
+        actionObject[10] = x;//-5
+        actionObject[11] = y;//-4
+        actionObject[12] = width;//-3
+        actionObject[13] = height;//-2  
+        actionObject[14] = newName;//-1
+        this.baseactionobjectList.push(actionObject);
+        this.onsharedMessage('draw',actionObject);
+    </method>
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawSelect.lzx b/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawSelect.lzx
new file mode 100644
index 0000000..932dded
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawSelect.lzx
@@ -0,0 +1,465 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="baseDrawSelect" extends="baseDrawTriangle" >
+    
+    <!--  
+        for drawing rectangles the variable 
+        with *Dis* indicates if the line/fil-color is active (+1/-1)
+     -->
+    <attribute name="currentSelectanglestroke" value="0x8e8986" />
+    <attribute name="currentSelectanglestrokeDis" value="1" type="number" />
+    <attribute name="currentSelectanglestrokeFill" value="0x8e8986" />
+    <attribute name="currentSelectanglestrokeFillDis" value="1" type="number" />
+    <attribute name="currentSelectangleineWidth" value="4" type="number" />
+    <attribute name="currentSelectangleOpacity" value="0.2" type="number" />
+    
+    <method name="copyWhiteboardObjects">
+        this.doCopyWhiteboardObjects();
+    </method>
+    
+    <method name="cutWhiteboardObjects">
+    	<![CDATA[
+        	this.doCopyWhiteboardObjects();
+        	for (var eg=0;eg<this.copyObject.length;eg++){                
+                var itemToDelete = this.copyObject[eg][this.copyObject[eg].length-1];
+                this.deleteItemByName(itemToDelete);
+                
+                if ($debug) Debug.write("cut name ", this.copyObject[eg][this.copyObject[eg].length-1]);
+            }
+            
+            //if (this.boundingIsActive){
+            //    this.boundingref._innerDrag.onmouseup.sendEvent();
+            //}
+        ]]>
+    </method>
+    
+    <method name="doCopyWhiteboardObjects">
+        <![CDATA[  
+            if ($debug) Debug.write("tCopyObject :0: ",this.boundingIsActive);
+        
+            if (this.boundingIsActive) {
+            	
+            	this.copyObject = new Array();
+            	
+            	var tObject = new Array();
+                var tCopyObject = this.getBaseObjectByName(this.boundingref.objRef.name);
+                
+                if ($debug) Debug.write("tCopyObject :1: ",this.boundingref.objRef.name);
+                if ($debug) Debug.write("tCopyObject :2: ",tCopyObject);
+                
+                for (var i=0;i<tCopyObject.length;i++) {
+                    var tItemObject = tCopyObject[i];
+                    
+                    if (tItemObject instanceof Array) {
+                        
+                        var storingItemObject = new Array();
+                        
+                        for (var k=0;k<tItemObject.length;k++) {
+                            var kItemObject = tItemObject[k];
+                            
+                            if (kItemObject instanceof Array) {
+                                
+                                var subStoringItemObject = new Array();
+                                
+                                for (var l=0;l<kItemObject.length;l++) {
+                                    var lItemObject = kItemObject[l];
+                                    subStoringItemObject.push(lItemObject);
+                                }
+                                
+                                storingItemObject.push(subStoringItemObject);
+                            } else {
+                                storingItemObject.push(kItemObject);
+                            }
+                            
+                            
+                        }
+                        
+                        tObject[i] = storingItemObject;
+                        
+                    } else {
+                        tObject[i] = tItemObject;
+                    }
+                    
+                }
+                
+                this.copyObject.push(tObject);
+            	
+            } else {
+        
+            	this.copyObject = this.selectedObjects;
+            
+            }
+            
+            if ($debug) Debug.write("to this.copyObject ", this.copyObject);
+            
+        ]]>
+    </method>
+    
+    
+    
+    <method name="paste" args="paste_x, paste_y">
+        <![CDATA[       
+            //if ($debug) Debug.write("paste name ", this.copyObject[eg][this.copyObject[eg].length-1]);
+            if ($debug) Debug.write("paste copyObject", this.copyObject);
+            
+            if(this.isSnapToGrid){ 
+                paste_x = Math.round(paste_x/this.gridWidth)*this.gridWidth;
+                paste_y = Math.round(paste_y/this.gridWidth)*this.gridWidth;
+            }
+            
+            var shift_x = this.width+1;
+            var shift_y = this.height+1;
+            
+            for (var eg=0;eg<this.copyObject.length;eg++){
+            	
+            	var tx = this.copyObject[eg][this.copyObject[eg].length-5];
+            	var ty = this.copyObject[eg][this.copyObject[eg].length-4];  
+            	
+            	if (tx < shift_x) {
+            		shift_x = tx;
+            	}
+            	
+            	if (ty < shift_y) {
+                    shift_y = ty;
+                }
+            	
+            }
+            
+            if ($debug) Debug.write("paste_x,paste_y,shift_x,shift_y", paste_x,paste_y,shift_x,shift_y);
+            
+            for (var eg=0;eg<this.copyObject.length;eg++){
+                
+                //var itemToDelete = this.copyObject[eg][this.copyObject[eg].length-1];
+                //this.deleteItemByName(itemToDelete);
+                
+                //this.baseactionobjectList[eg][10] = this.baseactionobjectList[eg][10] + paste_x;
+                //this.baseactionobjectList[eg][11] = this.baseactionobjectList[eg][11] + paste_y;
+                
+                //this.copyObject[eg][10] = this.copyObject[eg][10] + paste_x -50;
+                //this.copyObject[eg][11] = this.copyObject[eg][11] + paste_y-50;
+                
+                var tempArr = this.copyObject[eg].slice(0);
+                
+                tempArr[tempArr.length-1] += tempArr[0]+this.getCounter(); //Math.round(Math.random()*10000);
+                
+                tempArr[tempArr.length-5] =  paste_x - shift_x + tempArr[tempArr.length-5];
+                tempArr[tempArr.length-4] = paste_y - shift_y + tempArr[tempArr.length-4];               
+                
+                //this.sendWatchObject("draw", this.copyObject[eg], false);
+                
+                if ($debug) Debug.write("paste tempArr :x,y: ", tempArr[tempArr.length-5],tempArr[tempArr.length-4]);
+                
+                this.sendWatchObject("draw", tempArr, false);
+                //this.sendRemoteWatchObject(tempArr);
+                
+                this.onsharedMessage('draw',tempArr);
+                
+                if ($debug) Debug.write("paste name ", this.copyObject[eg]);
+                
+                //if ($debug) Debug.write("paste this.copyObject[eg][10]", this.copyObject[eg][10]);
+                //if ($debug) Debug.write("paste this.copyObject[eg][11] ", this.copyObject[eg][11]);
+                //if ($debug) Debug.write("paste paste_x ", paste_x);
+                //if ($debug) Debug.write("paste paste_y ", paste_y);
+                
+            }
+        ]]>
+    </method>
+    
+      
+    <!-- ###########################
+        Select tool
+     -->
+    
+    <method name="startSelect" args="oid_name">
+        if (oid_name == null){
+            oid_name = 'select'+this.getCounter();
+        }
+        //Debug.write("startselect");
+        this.currentlayer = new lz.drawViewNew(this,{
+            name:oid_name,width:this.width,height:this.height,
+            opacity:this.currentSelectangleOpacity});
+        this.currentlayer
+        this.drawlineOnObject(this.currentlayer,-1,-1,0,0);
+        this.drawlineOnObject(this.currentlayer,this.width,this.height,this.width+1,this.height+1);
+    </method>  
+
+    <method name="endSelect">
+        <![CDATA[        
+        
+            ////Debug.write(" this.startx, this.starty , this.endx, this.endy ",this.startx, this.starty , this.endx, this.endy);
+            var tmpName = this.currentlayer.name;
+            this.currentlayer.destroy();
+            var x = this.startx;
+            var width = this.endx - this.startx;
+            if (this.endx<this.startx){
+                x = this.endx;
+                width = Math.abs(width);
+            }
+            var y = this.starty;
+            var height = this.endy - this.starty;
+            if (this.endy<this.starty){
+                y = this.endy;
+                height = Math.abs(height);
+            }
+            
+            if (width < 2 && height < 2) {
+            	return;
+            }
+            
+            //if(this.isSnapToGrid){        		
+	    			        	   
+	          //  x = Math.round(x/this.gridWidth)*this.gridWidth;
+		    	//y = Math.round(y/this.gridWidth)*this.gridWidth;
+            
+            //} 
+            
+            if(this.selectedObjects != null && this.selectedObjects.length > 0){
+                for (var eg=0;eg<this.selectedObjects.length;eg++){
+                        
+                    var  objectToUpdate = this.getObjectByName(this.selectedObjects[eg][this.selectedObjects[eg].length-1]);
+                    objectToUpdate.setAttribute('opacity', 1);
+                    
+                }
+            }
+            
+            this.selectedObjects = new Array();
+            
+            for (var eg=0;eg<this.baseactionobjectList.length;eg++){
+                //Debug.write("this.baseactionobjectList[eg][0]==modi",this.baseactionobjectList[eg][0],modi);
+                //if ($debug) Debug.write("############## baseactionobjectList select : ", this.baseactionobjectList[eg]);
+                //if ($debug) Debug.write("############## baseactionobjectList select x: ", this.baseactionobjectList[eg][10]);
+                //if ($debug) Debug.write("############## baseactionobjectList select y: ", this.baseactionobjectList[eg][11]);
+                //if ($debug) Debug.write("############## baseactionobjectList select opacity: ", this.baseactionobjectList[eg][6]);
+                //if ($debug) Debug.write("############## baseactionobjectList select name: ", this.baseactionobjectList[eg][14]);
+                
+                //if ($debug) Debug.write("############## baseactionobjectList select this x: ", x);
+                //if ($debug) Debug.write("############## baseactionobjectList select this y: ", y);
+                
+                //if ($debug) Debug.write("############## baseactionobjectList select this x+width: ", x+width);
+                //if ($debug) Debug.write("############## baseactionobjectList select this y+height: ", y+height);
+                
+                //if (this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-1]==bName) {
+                    //return this.baseactionobjectList[eg];
+                //}
+                
+                if (
+                    (this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-5] >= x && this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-4] >= y) &&
+                    (this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-5] <= x+width && this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-4] <= y+height)
+                   ) {
+                    //return this.baseactionobjectList[eg];
+                    //this.baseactionobjectList[eg][6] = 0.2;
+                    
+                   	var tObject = new Array();
+                   	var tCopyObject = this.baseactionobjectList[eg];
+                   	
+                   	for (var i=0;i<tCopyObject.length;i++) {
+                   		var tItemObject = tCopyObject[i];
+                   		
+                   		if (tItemObject instanceof Array) {
+                   			
+               			    var storingItemObject = new Array();
+                   			
+               			    for (var k=0;k<tItemObject.length;k++) {
+           				        var kItemObject = tItemObject[k];
+           				        
+           				        if (kItemObject instanceof Array) {
+           				        	
+           				        	var subStoringItemObject = new Array();
+           				        	
+           				        	for (var l=0;l<kItemObject.length;l++) {
+           				        		var lItemObject = kItemObject[l];
+           				        		subStoringItemObject.push(lItemObject);
+           				        	}
+           				        	
+           				        	storingItemObject.push(subStoringItemObject);
+           				        } else {
+           				        	storingItemObject.push(kItemObject);
+           				        }
+                   				
+                   				
+                   			}
+                   			
+                   			tObject[i] = storingItemObject;
+                   			
+                   		} else {
+                   			tObject[i] = tItemObject;
+                   		}
+                   		
+                   	}
+                   	
+                   	
+                   	
+                    this.selectedObjects.push(tObject);
+                    
+                    objectToUpdate = this.getObjectByName(this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-1]);
+                    objectToUpdate.setAttribute('opacity', 0.7);
+                    
+                    //this.baseactionobjectList[eg][14] += '_copy';
+                    //this.sendRemoteWatchObject(this.baseactionobjectList[eg]);
+                    //this.sendRemoteWatchObject(this.baseactionobjectList[eg]);                  
+                    
+                    if ($debug) Debug.write("############## objectToUpdate: ", objectToUpdate);
+                    if ($debug) Debug.write("############## baseactionobjectList select opacity if: ", this.baseactionobjectList[eg][6]);
+                }
+            }  
+            
+            /*
+            if(whiteboardObjects.length > 0){
+            	 = whiteboardObjects;
+            }
+            */
+            
+            if ($debug) Debug.write("############## endSelect this.selectedObjects: ",  this.selectedObjects);
+            
+            this.currentlayer = new lz.drawViewNew(this,{
+                name:tmpName,x:x,y:y,width:width,height:height,
+                opacity:this.currentSelectangleOpacity});
+                
+            new lz.drawViewInner(this.currentlayer,{
+                name:'_innerSelect',x:0,y:0,width:width,height:height});
+                
+            //this.drawSelectangleHistory(this.currentlayer,0,0,width,height,
+              //  this.currentSelectanglestroke,this.currentSelectangleineWidth,
+                //this.currentSelectanglestrokeFill,this.currentSelectanglestrokeDis,
+                //this.currentSelectanglestrokeFillDis);
+           
+            //this.drawSelectregisterFinal(this.currentlayer.name,this.currentSelectanglestroke,
+              //  this.currentSelectangleineWidth,this.currentSelectanglestrokeFill,
+                //this.currentSelectanglestrokeDis,this.currentSelectanglestrokeFillDis,
+                //x,y,width,height,this.getSWFDocumentStatus(),
+                //this.getZIndex());
+            //this.layers.push(this.currentlayer);
+            //this.checkStepLayers();
+        ]]>
+    </method> 
+    
+    <!--
+        Terminate the usage of this function
+     --> 
+     <!--
+    <method name="drawSelectangle" args="x1,y1,x2,y2">
+        <![CDATA[
+            
+            currentlayer.lineWidth = this.currentSelectangleineWidth;
+            currentlayer.beginPath();
+            currentlayer.moveTo(x1,y1);
+            currentlayer.lineTo(x1,y2);
+            currentlayer.lineTo(x2,y2);
+            currentlayer.lineTo(x2,y1);
+            currentlayer.lineTo (x1,y1);
+            this.closePath();
+            
+            if (this.currentSelectanglestrokeDis!=-1){
+                currentlayer.strokeStyle = this.currentSelectanglestroke;
+                currentlayer.stroke();
+            }
+
+            if (this.currentSelectanglestrokeFillDis!=-1){
+                currentlayer.fillStyle = this.currentSelectanglestrokeFill;
+                currentlayer.fill();
+            }
+            
+        ]]>   
+    </method>   
+    -->
+    <method name="redrawSelectItemByScaling" args="objRef">
+        //if ($debug) Debug.write("redrawSelectItemByScaling: "+objRef);
+        this.currentlayer = objRef;
+        this.currentlayer._innerSelect.destroy();
+        new lz.drawViewInner(this.currentlayer,{
+            name:'_innerSelect',x:0,y:0,width:objRef.width,height:objRef.height});
+        this.drawSelectangleHistory(this.currentlayer,0,0,
+            objRef.width,objRef.height,
+            this.currentSelectanglestroke,this.currentSelectangleineWidth,
+            this.currentSelectanglestrokeFill,this.currentSelectanglestrokeDis,
+            this.currentSelectanglestrokeFillDis);
+    </method> 
+    
+    <method name="drawSelectangleToHistory" args="lastActionObject,parentView">
+        var tmpCurrentlayer = new lz.drawViewNew(parentView,{
+            name:lastActionObject[lastActionObject.length-1],
+            x:lastActionObject[lastActionObject.length-5],
+            y:lastActionObject[lastActionObject.length-4],
+            width:lastActionObject[lastActionObject.length-3],
+            height:lastActionObject[lastActionObject.length-2],
+            opacity:lastActionObject[6]});
+        new lz.drawViewInner(tmpCurrentlayer,{
+                name:'_innerSelect',x:0,y:0,
+                width:lastActionObject[lastActionObject.length-3],
+                height:lastActionObject[lastActionObject.length-2]});
+        this.drawSelectangleHistory(tmpCurrentlayer,0,0,
+            lastActionObject[lastActionObject.length-3],lastActionObject[lastActionObject.length-2],
+            lastActionObject[1],lastActionObject[2],lastActionObject[3],lastActionObject[4],lastActionObject[5]);
+            
+        this.doSWFDocumentStatus(tmpCurrentlayer,lastActionObject[lastActionObject.length-7]);
+    </method>
+    
+    <method name="drawSelectangleHistory" args="parentObj,x1,y1,x2,y2,stroke,line,fill,strokeDis,fillDis">
+        <![CDATA[
+            //Debug.write("drawSelectangleHistory",parentObj,x1,y1,x2,y2,stroke,line,fill,strokeDis,fillDis);
+            parentObj._innerSelect.lineWidth = line;
+            parentObj._innerSelect.beginPath();
+            parentObj._innerSelect.moveTo(x1,y1);
+            parentObj._innerSelect.lineTo(x1,y2);
+            parentObj._innerSelect.lineTo(x2,y2);
+            parentObj._innerSelect.lineTo(x2,y1);
+            parentObj._innerSelect.lineTo (x1,y1);
+            
+            if (strokeDis!=-1){
+                parentObj._innerSelect.strokeStyle = stroke;
+                parentObj._innerSelect.stroke();
+            }
+            
+            if (fillDis!=-1){
+                parentObj._innerSelect.fillStyle = fill;
+                parentObj._innerSelect.fill();
+            }
+            
+        ]]>   
+    </method>  
+    
+    <method name="drawSelectregisterFinal" args="newName,stroke,line,fill,strokeDis,fillDis,x,y,width,height,swfObj,zIndex" >
+        Debug.write("drawSelectregisterFinal",newName,stroke,line,fill,strokeDis,fillDis,x,y,width,height);
+        var actionObject = new Array();
+        actionObject[0] = 'Selectangle';
+        actionObject[1] = stroke;
+        actionObject[2] = line;
+        actionObject[3] = fill;
+        actionObject[4] = strokeDis;
+        actionObject[5] = fillDis;
+        actionObject[6] = this.currentSelectangleOpacity;
+        actionObject[7] = zIndex;//-8
+        actionObject[8] = swfObj;//-7
+        actionObject[9] = this.counter;//-6
+        actionObject[10] = x;//-5
+        actionObject[11] = y;//-4
+        actionObject[12] = width;//-3
+        actionObject[13] = height;//-2  
+        actionObject[14] = newName;//-1
+        this.baseactionobjectList.push(actionObject);
+        this.onsharedMessage('draw',actionObject);
+    </method>
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawTriangle.lzx b/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawTriangle.lzx
new file mode 100644
index 0000000..56baab0
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawTriangle.lzx
@@ -0,0 +1,277 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="baseDrawTriangle" extends="baseDrawClipArt" >
+    
+    <!--  
+        for drawing rectangles the variable 
+        with *Dis* indicates if the line/fil-color is active (+1/-1)
+     -->
+    <attribute name="currenttrianglestroke" value="0xFF6600" />
+    <attribute name="currenttrianglestrokeDis" value="1" type="number" />
+    <attribute name="currenttrianglestrokeFill" value="0xFFFF33" />
+    <attribute name="currenttrianglestrokeFillDis" value="1" type="number" />
+    <attribute name="currenttriangleineWidth" value="4" type="number" />
+    <attribute name="currenttriangleOpacity" value="1" type="number" />
+     
+      
+    <!-- ###########################
+        triangle
+     -->
+    
+    <method name="startTriangle" args="oid_name">
+        if (oid_name == null){
+            oid_name = 'triangle'+this.getCounter();
+        }
+        //Debug.write("startTriangle");
+        this.currentlayer = new lz.drawViewNew(this,{
+            name:oid_name,width:this.width,height:this.height,
+            opacity:this.currenttriangleOpacity});
+        this.currentlayer
+        this.drawlineOnObject(this.currentlayer,-1,-1,0,0);
+        this.drawlineOnObject(this.currentlayer,this.width,this.height,this.width+1,this.height+1);
+    </method>  
+
+    <method name="endTriangle">
+        <![CDATA[        	
+        
+            ////Debug.write(" this.startx, this.starty , this.endx, this.endy ",this.startx, this.starty , this.endx, this.endy);
+            var tmpName = this.currentlayer.name;
+            this.currentlayer.destroy();
+            
+            var tTriangle = this.getTrianglePointByRect(this.startx,this.starty,this.endx,this.endy);
+            
+            var max_x = Math.max(this.startx,this.endx,tTriangle.x);
+            var min_x = Math.min(this.startx,this.endx,tTriangle.x);
+            var max_y = Math.max(this.starty,this.endy,tTriangle.y);
+            var min_y = Math.min(this.starty,this.endy,tTriangle.y);
+            
+            
+            var x = min_x;
+            var width = max_x - min_x;
+            var y = min_y;
+            var height = max_y - min_y;
+            
+            var tx1 = this.startx-x;
+            var ty1 = this.starty-y;
+            var tx2 = this.endx-x;
+            var ty2 = this.endy-y;
+            var tx3 = tTriangle.x-x;
+            var ty3 = tTriangle.y-y;
+            
+            if(this.isSnapToGrid){        		
+	    			        	   
+	            x = Math.round(x/this.gridWidth)*this.gridWidth;
+		    	y = Math.round(y/this.gridWidth)*this.gridWidth;
+            
+            } 
+            
+            this.currentlayer = new lz.drawViewNew(this,{
+                name:tmpName,x:x,y:y,width:width,height:height,
+                opacity:this.currenttriangleOpacity});
+                
+            new lz.drawViewInner(this.currentlayer,{
+                name:'_innerTriangle',x:0,y:0,width:width,height:height});
+                
+            this.drawtriangleHistory(this.currentlayer,0,0,width,height,
+            	tx1,ty1,tx2,ty2,tx3,ty3,
+                this.currenttrianglestroke,this.currenttriangleineWidth,
+                this.currenttrianglestrokeFill,this.currenttrianglestrokeDis,
+                this.currenttrianglestrokeFillDis);
+            //this.currentlayer.setAttribute('stretches','both');
+            this.drawTriangleregisterFinal(this.currentlayer.name,this.currenttrianglestroke,
+                this.currenttriangleineWidth,this.currenttrianglestrokeFill,
+                this.currenttrianglestrokeDis,this.currenttrianglestrokeFillDis,
+                x,y,width,height,
+                tx1,ty1,tx2,ty2,tx3,ty3,
+                this.getSWFDocumentStatus(),
+                this.getZIndex());
+            this.layers.push(this.currentlayer);
+            this.checkStepLayers();
+            if ($debug) Debug.write("############## this.endx : ", this.endx);
+        ]]>
+    </method> 
+    
+    <method name="getTrianglePointByRect" args="x1,y1,x2,y2">
+    	<![CDATA[
+    		if (x2 >= x1 && y1 >= y2) {
+
+               var a = y1 - y2;
+               var b = x2 - x1;
+               
+               return {'x':x2 + a,'y':y2 + b};
+
+           } else if (x2 >= x1 && y1 <= y2) {
+
+               var a = y2 - y1;
+               var b = x2 - x1;
+
+               return {'x':x2 - a,'y':y2 + b};
+
+           } else if (x2 <= x1 && y1 <= y2) {
+
+               var a = y2 - y1;
+               var b = x1 - x2;
+
+               return {'x':x2 - a,'y':y2 - b};
+               
+           } else if (x2 <= x1 && y1 >= y2) {
+
+               var a = y1 - y2;
+               var b = x1 - x2;
+
+               return {'x':x2 + a,'y':y2 - b};
+               
+           } else {
+
+               if ($debug) Debug.warn("DEFAULT drawtriangle ",x1,y1,x2,y2);
+
+           }
+           
+       ]]>
+    </method>
+    
+    <!--
+        Terminate the usage of this function
+     --> 
+    <method name="drawtriangle" args="x1,y1,x2,y2">
+       <![CDATA[
+
+           var tTriangle = this.getTrianglePointByRect(x1,y1,x2,y2);
+
+		   this.drawtriangleByCord(x1,y1,x2,y2,tTriangle.x,tTriangle.y)
+       ]]>   
+   </method> 
+   
+    <method name="drawtriangleByCord" args="tx1,ty1,tx2,ty2,tx3,ty3">
+       <![CDATA[
+
+		   currentlayer.lineWidth = this.currenttriangleineWidth;
+           currentlayer.beginPath();
+           currentlayer.moveTo(tx1, ty1);
+           currentlayer.lineTo(tx2, ty2);
+           currentlayer.lineTo(tx3, ty3);
+           currentlayer.lineTo(tx1, ty1);
+           currentlayer.closePath();
+
+           if (this.currenttrianglestrokeDis != -1) {
+               currentlayer.strokeStyle = this.currenttrianglestroke;
+               currentlayer.stroke();
+           }
+
+           if (this.currenttrianglestrokeFillDis != -1) {
+               currentlayer.fillStyle = this.currenttrianglestrokeFill;
+               currentlayer.fill();
+           }
+       ]]>   
+   </method> 
+    
+    <method name="redrawTriangleItemByScaling" args="objRef">
+        //if ($debug) Debug.write("redrawTriangleItemByScaling: "+objRef);
+        this.currentlayer = objRef;
+        this.currentlayer._innerTriangle.destroy();
+        new lz.drawViewInner(this.currentlayer,{
+            name:'_innerTriangle',x:0,y:0,width:objRef.width,height:objRef.height});
+        this.drawtriangleHistory(this.currentlayer,0,0,
+            objRef.width,objRef.height,
+            this.currenttrianglestroke,this.currenttriangleineWidth,
+            this.currenttrianglestrokeFill,this.currenttrianglestrokeDis,
+            this.currenttrianglestrokeFillDis);
+    </method> 
+    
+    <method name="drawtriangleToHistory" args="lastActionObject,parentView">
+        var tmpCurrentlayer = new lz.drawViewNew(parentView,{
+            name:lastActionObject[lastActionObject.length-1],
+            x:lastActionObject[lastActionObject.length-5],
+            y:lastActionObject[lastActionObject.length-4],
+            width:lastActionObject[lastActionObject.length-3],
+            height:lastActionObject[lastActionObject.length-2],
+            opacity:lastActionObject[6]});
+        new lz.drawViewInner(tmpCurrentlayer,{
+                name:'_innerTriangle',x:0,y:0,
+                width:lastActionObject[lastActionObject.length-3],
+                height:lastActionObject[lastActionObject.length-2]});
+        this.drawtriangleHistory(tmpCurrentlayer,0,0,
+            lastActionObject[lastActionObject.length-3],lastActionObject[lastActionObject.length-2],
+            lastActionObject[7],lastActionObject[8], //tx1,ty1
+            lastActionObject[9],lastActionObject[10], //tx2,ty2
+            lastActionObject[11],lastActionObject[12], //tx3,ty3
+            lastActionObject[1],lastActionObject[2],lastActionObject[3],lastActionObject[4],lastActionObject[5]);
+            
+        this.doSWFDocumentStatus(tmpCurrentlayer,lastActionObject[lastActionObject.length-7]);
+    </method>
+    
+    <method name="drawtriangleHistory" args="parentObj,x1,y1,x2,y2,tx1,ty1,tx2,ty2,tx3,ty3,stroke,line,fill,strokeDis,fillDis">
+        <![CDATA[
+            //Debug.write("drawtriangleHistory",parentObj,x1,y1,x2,y2,stroke,line,fill,strokeDis,fillDis);
+            parentObj._innerTriangle.lineWidth = line;
+            parentObj._innerTriangle.beginPath();
+            parentObj._innerTriangle.moveTo(tx1,ty1);
+            parentObj._innerTriangle.lineTo(tx2,ty2);
+            parentObj._innerTriangle.lineTo(tx3,ty3);
+            parentObj._innerTriangle.lineTo (tx1,ty1);
+            parentObj._innerTriangle.closePath();
+            
+            if (strokeDis!=-1){
+                parentObj._innerTriangle.strokeStyle = stroke;
+                parentObj._innerTriangle.stroke();
+            }
+            
+            if (fillDis!=-1){
+                parentObj._innerTriangle.fillStyle = fill;
+                parentObj._innerTriangle.fill();
+            }
+            
+        ]]>   
+    </method>  
+    
+    <method name="drawTriangleregisterFinal" args="newName,stroke,line,fill,strokeDis,fillDis,x,y,width,height,tx1,ty1,tx2,ty2,tx3,ty3,swfObj,zIndex" >
+        Debug.write("drawTriangleregisterFinal",newName,stroke,line,fill,strokeDis,fillDis,x,y,width,height);
+        var actionObject = new Array();
+        actionObject[0] = 'triangle';
+        actionObject[1] = stroke;
+        actionObject[2] = line;
+        actionObject[3] = fill;
+        actionObject[4] = strokeDis;
+        actionObject[5] = fillDis;
+        actionObject[6] = this.currenttriangleOpacity;
+        actionObject[7] = tx1;
+        actionObject[8] = ty1;
+        actionObject[9] = tx2;
+        actionObject[10] = ty2;
+        actionObject[11] = tx3;
+        actionObject[12] = ty3;
+        actionObject[13] = zIndex;//-8
+        actionObject[14] = swfObj;//-7
+        actionObject[15] = this.counter;//-6
+        actionObject[16] = x;//-5
+        actionObject[17] = y;//-4
+        actionObject[18] = width;//-3
+        actionObject[19] = height;//-2  
+        actionObject[20] = newName;//-1
+        this.baseactionobjectList.push(actionObject);
+        this.onsharedMessage('draw',actionObject);
+    </method>
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawULine.lzx b/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawULine.lzx
new file mode 100644
index 0000000..dfa7e5b
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/tools/baseDrawULine.lzx
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="baseDrawULine" extends="baseDrawLine" >
+    
+    <!-- for drawing uline -->
+    <attribute name="currentulinestroke" value="0xFF6600" />
+    <attribute name="currentulinelineWidth" value="20" type="number" />  
+    <attribute name="currentulineOpacity" value="0.5" type="number" />
+      
+    
+    <!-- ###########################
+    Underline
+     -->
+    <method name="startUline" args="oid_name">
+        if (oid_name == null){
+            oid_name = 'uline'+this.getCounter();
+        }
+        //Debug.write("startUline ",this.startx,this.starty);
+        this.currentlayer = new lz.drawViewNew(this,{
+            name:oid_name,width:this.width+2,height:this.height+2,
+            x:-1,y:-1,
+            opacity:this.currentulineOpacity});
+        this.drawlineOnObject(this.currentlayer,-1,-1,0,0);
+        this.drawlineOnObject(this.currentlayer,this.width,this.height,this.width+1,this.height+1);
+    
+        //Set previous to null
+        this.prevx = null;
+        this.prevy = null;  
+        
+        currentlayer.strokeStyle = this.currentulinestroke;
+        currentlayer.lineWidth = this.currentulinelineWidth;
+        currentlayer.fillstyle = '0x000000';
+    </method>  
+    
+    <method name="endUline">
+        //Debug.write("endUline",this.startx,this.starty,this.endx,this.endy);
+        <![CDATA[
+            var tempName = this.currentlayer.name;
+            //Debug.write("tempName: ",tempName);
+            this.currentlayer.destroy();
+            
+            //GetBounds of that Object
+            var minx = this.width+2;
+            var miny = this.height+2;
+            var maxx = -2;
+            var maxy = -2;
+    
+            if (this.startx<minx) minx=this.startx;
+            if (this.endx<minx) minx=this.endx;
+            
+            if (this.startx>maxx) maxx=this.startx;
+            if (this.endx>maxx) maxx=this.endx;
+            
+            if (this.starty<miny) miny=this.starty;
+            if (this.endy<miny) miny=this.endy;
+            
+            if (this.starty>maxy) maxy=this.starty;
+            if (this.endy>maxy) maxy=this.endy;
+            
+            var width = maxx-minx;
+            var height = maxy-miny;
+            
+            var x1 = this.startx-minx+(this.currentulinelineWidth/2);
+            var y1 = this.starty-miny+(this.currentulinelineWidth/2);
+            var x2 = this.endx-minx+(this.currentulinelineWidth/2);
+            var y2 = this.endy-miny+(this.currentulinelineWidth/2);
+            
+            //Debug.write("minx,miny,width,height: ",minx,miny,width,height);
+            
+            this.currentlayer = new lz.drawViewNew(this,{
+                name:tempName,x:(minx-1-(this.currentulinelineWidth/2)),
+                y:(miny-1-(this.currentulinelineWidth/2)),
+                width:(width+this.currentulinelineWidth),
+                height:(height+this.currentulinelineWidth),
+                opacity:this.currentulineOpacity});
+                
+            //this.currentlayer.fillstyle = '0x000000';
+            this.currentlayer.lineWidth = this.currentulinelineWidth;
+            this.currentlayer.strokeStyle = this.currentulinestroke;
+    
+            this.drawline((x1),(y1),(x2),(y2));
+    
+            //Add Layer to global Layer     
+            this.layers.push(this.currentlayer);  
+            this.ulineregisterFinal(this.currentlayer.name,this.currentulinestroke,
+                this.currentulinelineWidth,this.currentulineOpacity,
+                this.currentlayer.x,this.currentlayer.y,
+                this.currentlayer.width,this.currentlayer.height,
+                x1,y1,x2,y2,true,this.getSWFDocumentStatus(),
+                this.getZIndex());
+        ]]>
+    </method> 
+    
+    
+    <method name="ulineregisterFinal" args="newName,stroke,line,opacity,x,y,width,height,x1,y1,x2,y2,doCall,swfObj,zIndex">
+        var actionObject = new Array();
+        actionObject[0] = 'uline';
+        actionObject[1] = stroke;
+        actionObject[2] = line;
+        actionObject[3] = opacity;
+        actionObject[4] = x1  
+        actionObject[5] = y1;  
+        actionObject[6] = x2;    
+        actionObject[7] = y2;  
+        actionObject[8] = zIndex;//-8
+        actionObject[9] = swfObj;//-7
+        actionObject[10] = this.counter;//-6 
+        actionObject[11] = x;//-5
+        actionObject[12] = y;//-4
+        actionObject[13] = width;//-3
+        actionObject[14] = height;//-2
+        actionObject[15] = newName;//-1
+        this.baseactionobjectList.push(actionObject);       
+        if (doCall) this.onsharedMessage('draw',actionObject);
+    </method>       
+    
+    
+    <method name="ulineactionHistory" args="lastActionObject,parentView">
+        <![CDATA[
+        //Debug.write("## lineactionHistory",parentView," 2 ## NEW x,y ",lastActionObject[lastActionObject.length-5],lastActionObject[lastActionObject.length-4]," width,height: ",lastActionObject[lastActionObject.length-3],lastActionObject[lastActionObject.length-2]);
+        
+        var tmpCurrentlayer = new lz.drawViewNew(parentView,{
+                name:lastActionObject[lastActionObject.length-1],
+                x:lastActionObject[lastActionObject.length-5],
+                y:lastActionObject[lastActionObject.length-4],
+                width:lastActionObject[lastActionObject.length-3],
+                height:lastActionObject[lastActionObject.length-2],
+                opacity:lastActionObject[3]});
+            
+            //this.currentlayer.fillstyle = lastActionObject[1];
+            tmpCurrentlayer.lineWidth = lastActionObject[2];
+            tmpCurrentlayer.strokeStyle = lastActionObject[1];
+    
+            this.drawlineOnObject(tmpCurrentlayer, lastActionObject[4],lastActionObject[5],lastActionObject[6],lastActionObject[7]);
+            
+            //Add Layer to global Layer     
+            this.layers.push(tmpCurrentlayer);  
+            
+            this.doSWFDocumentStatus(tmpCurrentlayer,lastActionObject[lastActionObject.length-7]);
+
+        ]]>
+    </method>
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/tools/library.lzx b/WebContent/src/modules/conference/whiteboard/base/tools/library.lzx
new file mode 100644
index 0000000..c84782b
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/tools/library.lzx
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<include href="baseDrawPaint.lzx" />
+    <include href="baseDrawLine.lzx" />
+    <include href="baseDrawULine.lzx" />
+    <include href="baseDrawClipArt.lzx" />
+    <include href="baseDrawArrow.lzx" />
+    <include href="baseDrawRect.lzx" />
+    <include href="baseDrawEllipse.lzx" />
+    <include href="baseDrawPointer.lzx" />
+    <include href="baseDrawTriangle.lzx" />
+    <include href="baseDrawSelect.lzx" />
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/base/whiteBoardPointer.lzx b/WebContent/src/modules/conference/whiteboard/base/whiteBoardPointer.lzx
new file mode 100644
index 0000000..c95beab
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/whiteBoardPointer.lzx
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+    <class name="whiteBoardPointer" extends="view"

+           resource="pointer_whiteboard_rsc" width="20" height="20" >

+        <attribute name="userName" value="" type="string" />

+        <attribute name="fadeDelegate" value="null" />

+        <labelText x="20" text="$once{ parent.userName }" />

+        <handler name="oninit">

+            this.play();

+            this.fadeDelegate = new LzDelegate( this, "fadeText" );

+            lz.Timer.addTimer( this.fadeDelegate, 5000 );

+        </handler>

+        <method name="fadeText" args="itemObj">

+            this.destroy();

+        </method>

+    </class>

+

+</library>
\ No newline at end of file
diff --git a/WebContent/src/modules/conference/whiteboard/base/whiteboardVideoPlayer.lzx b/WebContent/src/modules/conference/whiteboard/base/whiteboardVideoPlayer.lzx
new file mode 100644
index 0000000..f05712d
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/base/whiteboardVideoPlayer.lzx
@@ -0,0 +1,346 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="whiteboardVideoPlayer" extends="labelExplorerBox" allowDragging="false"
+    docking="false" resizeable="false" closable="false" 
+    x="0" y="0" width="${ parent.width }" height="${ parent.height }">
+	
+	<attribute name="fileExplorerItemId" value="0" type="number" />
+	
+    <attribute name="timerDelegateStarted" value="false" type="boolean" />
+    
+    <attribute name="deltaInSeconds" value="0" type="number" />
+    
+    <attribute name="currentTime" value="0" type="number" /> 	
+    
+    <attribute name="recordingName" value="" type="string" />
+    
+    <attribute name="isLoaded" value="false" type="boolean" />
+	
+	<attribute name="sendInit" value="false" type="boolean" />
+	
+	<attribute name="flv_width" value="0" type="number" /> 
+	
+    <attribute name="flv_height" value="0" type="number" /> 
+    
+    <attribute name="isPaused" value="true" type="boolean" />
+    
+	<handler name="oninit">
+		if ($debug) Debug.write("whiteboardVideoPlayer :: ",this.fileExplorerItemId);
+		
+		this.recordingName = "UPLOADFLV_" + this.fileExplorerItemId + ".flv";
+		calcVideoWidthHeight();
+		this.copyFileToCurrentRoom.doCall();
+		
+		var t = this;
+		canvas.videoComp_lc.stopRecordingStream = function(tName) {
+            if (t.name == tName) {
+            	t.stopStream();
+            }
+        }
+        canvas.videoComp_lc.metaWhiteboardPlaybackStream = function(tName,duration) {
+            if (t.name == tName) {
+                t.deltaInSeconds = duration;
+                t.setDuration();
+            }
+        }
+        canvas.videoComp_lc.updateWhiteboardStreamTime = function(tName,time) {
+            if (t.name == tName) {
+                t.currentTime = time;
+                t.calcProgressBar();
+            }
+        }
+		
+	</handler>
+	
+	<handler name="prepareForDelete" args="tRef">
+		if ($debug) Debug.write("--- prepareForDelete ");
+		this.stopStream();
+	</handler>
+	
+	<handler name="onclose">
+		this.stopStreamPlay();
+	</handler>
+	
+	<handler name="onwidth" args="w">
+		calcVideoWidthHeight();
+	</handler>
+	
+	<handler name="onheight" args="h">
+		calcVideoWidthHeight();
+	</handler>
+	
+	<!--
+	public Long copyFileToCurrentRoom(String SID, Long flvFileExplorerId)
+	 -->
+    <netRemoteCallHib name="copyFileToCurrentRoom" funcname="fileservice.copyFileToCurrentRoom" 
+        remotecontext="$once{ canvas.thishib }" > 
+        <netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+        <netparam><method name="getValue">return parent.parent.fileExplorerItemId;</method></netparam>
+        <handler name="ondata" args="value">
+        	<![CDATA[    
+	            if ($debug) Debug.write("deleteFileOrFolder: ",value);
+	            parent.isLoaded = true;
+	            
+	            var downloadurl = canvas.getUrl()+'DownloadHandler?fileName=UPLOADFLV_'+parent.fileExplorerItemId+'.jpg'
+                                +'&moduleName=lzRecorderApp&parentPath=&room_id='
+                                +'&sid='+canvas.sessionId;
+	            
+                parent._content._preview.imagePreview.setAttribute("src",downloadurl)
+                    
+                parent._content._preview.bringToFront();
+                                
+	            if (parent.sendInit) {
+	                parent.parent.sendNewVideoRemote(parent);
+	            }
+            ]]>
+        </handler>
+    </netRemoteCallHib>
+    
+    <method name="startStreamPlay">
+    	parent.playFLV(this,true);
+    	this.startStream();
+    </method>
+    
+    <method name="stopStreamPlay">
+    	parent.playFLV(this,false);
+    	this.stopStream();
+    </method>
+    
+    <method name="playRemote">
+    	this.startStream();
+    </method>
+    
+    <method name="stopRemote">
+        this.stopStream();
+    </method>
+    
+    <method name="startStream">
+    	<![CDATA[
+	    	if (!this.isLoaded) {
+	    		return;
+	    	}
+	    	
+	    	if ($debug) Debug.write("startStream ",this.recordingName);
+	    	
+	    	if (this.recordingName != "") {
+	    		
+	    		this.isPaused = false;
+	    		
+	    		if (!this.timerDelegateStarted) {
+	    			this.timerDelegateStarted = true;
+	            }
+	            
+	        	if ($debug) Debug.write("PLAY STREAM ",this.recordingName);
+	        	
+	        	var tObjectDimension = calcVideoWidthHeight();
+	        	
+	        	if ($debug) Debug.write("SEND ",this.recordingName,0,tObjectDimension.x,tObjectDimension.y,tObjectDimension.width,tObjectDimension.height);
+	        	
+	            // this._content._videostream.playStream(this.recordingName,0,tObjectDimension.x,tObjectDimension.y,tObjectDimension.width,tObjectDimension.height);
+	            
+	        	var tx = this.getAttributeRelative("x",canvas)+tObjectDimension.x+this._content.x;
+	        	var ty = this.getAttributeRelative("y",canvas)+tObjectDimension.y+this._content.y;
+	        	
+	            canvas.sendViaLocalConnection(canvas.rtmp_lc_name, "playbackWhiteboardVideo", [this.name,this.recordingName,0,tx,ty,tObjectDimension.width,tObjectDimension.height]);
+	    	}
+    	]]>
+    </method>   
+    
+    <!---
+        calculates the new x, y, width and height of the video so that it is 100% 
+        visible in the container
+     -->
+    <method name="calcVideoWidthHeight">
+        <![CDATA[
+        
+            if ($debug) Debug.write("calcVideoWidthHeight ",this.flv_width,this.flv_height);
+        
+            var ratio = this.flv_width / this.flv_height;
+            
+            //max height of container is new height of video;
+            //calc new width and x-position of video
+            var newHeight = this._content.height;
+            var newWidth = ratio * newHeight; 
+            var newx = (this._content.width - newWidth) / 2;
+            var newy = 0;
+            
+            if ($debug) Debug.write("calcVideoWidthHeight",ratio,this._content.width,this._content.height,newWidth,newHeight,newx,newy);
+         
+            if (newWidth > this._content.width) {
+                newWidth = this._content.width;
+                newHeight = newWidth / ratio;
+                newx = 0;
+                newy = (this._content.height - newHeight) / 2;
+            }
+            
+            var t = {'x':newx,'y':newy,'width':newWidth,'height':newHeight};
+            
+            if ($debug) Debug.write("t",t);
+            
+            this._content._preview.setAttribute("x",newx);
+            this._content._preview.setAttribute("y",newy);
+            this._content._preview.setAttribute("width",newWidth);
+            this._content._preview.setAttribute("height",newHeight);
+            
+            return {'x':newx,'y':newy,'width':newWidth,'height':newHeight};
+        ]]>
+    </method>
+    
+    <method name="setDuration">
+    	<![CDATA[
+           if ($debug) Debug.write("setDuration ",this.deltaInSeconds);
+           var tString = "";
+           if (this.deltaInSeconds > 60) {
+               var minutes = Math.floor(this.deltaInSeconds/60);
+               var restSeconds = Math.round(this.deltaInSeconds) - ( minutes * 60 );
+               tString = minutes + " min " + restSeconds + " sec";
+           } else {
+               tString = Math.round(this.deltaInSeconds) + " sec";
+           }
+           this._progress._progressbar._duration.setAttribute("text",tString);
+        ]]>
+    </method>
+    
+    <method name="calcProgressBar">
+    	<![CDATA[
+    	   if ($debug) Debug.write("calcProgressBar ",this.currentTime);
+    	   this._progress._progressbar._pointer.setAttribute("visibility","visible");
+    	   var tString = "";
+    	   if (this.currentTime > 60) {
+    	   	   var minutes = Math.floor(this.currentTime/60);
+    	   	   var restSeconds = Math.round(this.currentTime) - ( minutes * 60 );
+    	   	   tString = minutes + " min " + restSeconds + " sec";
+    	   } else {
+    	   	   tString = Math.round(this.currentTime) + " sec";
+    	   }
+    	   var tNewX = Math.round((this._progress._progressbar.width / this.deltaInSeconds) * this.currentTime);
+    	   this._progress._progressbar._time.setAttribute("text",tString);
+    	   this._progress._progressbar._pointer.setAttribute("x",tNewX);
+    	]]>
+    </method> 
+	
+	<method name="stopStream">
+    	if (this.timerDelegateStarted) {
+    		this.timerDelegateStarted = false;
+        }
+        this._progress._progressbar._time.setAttribute("text","");
+        this._progress._progressbar._pointer.setAttribute("x",0);
+        if ($debug) Debug.write("SEND stopWhiteboardVideo ",this.name);
+        canvas.sendViaLocalConnection(canvas.rtmp_lc_name, "stopWhiteboardVideo",[this.name]);
+        this.isPaused = true;
+    </method>
+    
+    <method name="toggleStream">
+    	if (canvas.ismoderator) {
+    		if (this.isPaused) {
+    			this.startStreamPlay();
+    		}
+    	}
+    </method>
+	
+	<view name="_content" height="${ parent.height-62 }" bgcolor="0x000000"
+		  y="22" x="1" width="${ parent.width-1 }">
+		
+		<view name="_preview" width="0" height="0" >
+        	<image name="imagePreview" stretches="both"
+        		   width="${parent.width}" height="${parent.height}" />
+            <handler name="onclick">
+            	if ($debug) Debug.write("onclick -- toggleStream");
+                parent.parent.toggleStream();
+            </handler>		   
+            <view width="60" height="40" valign="middle" opacity="0.7"
+            	  align="center" bgcolor="0xFFFFFF">
+            	<view resource="lz_recorder_play" valign="middle" align="center" />
+            </view>
+        </view>
+	
+	</view>
+
+    <view name="_progress" height="18" y="${ parent.height - 40 }" width="${ parent.width-2 }"
+    	                  x="1" bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }">
+    	
+    	<view resource="flv_recorder_play_small_rsc" y="1" height="16" width="16"
+    		      bgcolor="$once{ canvas.getThemeColor('baseMouseOvercolorizer') }">
+    		<handler name="onmouseover">
+                this.setAttribute("bgcolor",0xFFFFFF);
+            </handler>
+            <handler name="onmouseout">
+                this.setAttribute("bgcolor",canvas.getThemeColor('baseMouseOvercolorizer'));
+            </handler>
+    		<handler name="onclick">
+    			if (canvas.ismoderator) {
+    			     parent.parent.startStreamPlay();
+    			}
+    		</handler>
+    		<labelTooltip labelid="875" />
+    	</view>
+    	
+    	<view name="_progressbar" x="16" width="${ parent.width - 32 }" y="1" 
+    		  height="16" bgcolor="$once{ canvas.getThemeColor('baseMouseOvercolorizer') }">
+    		
+    		<view x="0" width="${ parent.width }" y="0" height="16" bgcolor="0xFFFFFF" opacity="0.5" /> 
+    		
+    		<handler name="onclick">
+    			//parent.parent.seekStream(this.getMouse("x"));
+    		</handler>
+    		
+    		<view name="_pointer" resource="flv_progress_pointer_rsc" visibility="hidden" />
+    		
+    		<text name="_time" resize="true" fontsize="10" />
+    		
+    		<text name="_duration" align="right" resize="true" fontsize="10" />
+    		
+    	</view>
+    	
+    	<view resource="flv_recorder_stop_small_rsc" align="right" y="1" height="16" width="16"
+    		  bgcolor="$once{ canvas.getThemeColor('baseMouseOvercolorizer') }">
+    		<handler name="onmouseover">
+    			this.setAttribute("bgcolor",0xFFFFFF);
+    		</handler>
+    		<handler name="onmouseout">
+                this.setAttribute("bgcolor",canvas.getThemeColor('baseMouseOvercolorizer'));
+            </handler>
+            <handler name="onclick">
+            	if (canvas.ismoderator) {
+                    parent.parent.stopStreamPlay();
+            	}
+            </handler>
+            <labelTooltip labelid="876" />
+        </view>
+    	
+    </view>	
+    
+    <simpleLabelButton labelid="85" width="100" x="${ parent.width-118 }" 
+    				   y="${ parent.height-20 }" >
+        <handler name="onclick">
+            if (canvas.ismoderator) {
+            	this.parent.stopRemote();
+                this.parent.parent.deleteItemByName(this.parent.name);
+                this.parent.parent.deleteItemByNameSync(this.parent.name);
+            }
+        </handler>
+    </simpleLabelButton>
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/basePropertyPanelWhiteboard.lzx b/WebContent/src/modules/conference/whiteboard/basePropertyPanelWhiteboard.lzx
new file mode 100644
index 0000000..9c10d3f
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/basePropertyPanelWhiteboard.lzx
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="basePropertyPanelWhiteboard" extends="view" >
+	
+	<!--- @keywords private is the Box minimized  -->
+	<attribute name="isopen" value="true" type="boolean" />
+	
+	<!--- @keywords private is the Box minimized  -->
+	<attribute name="open" value="true" type="boolean" />		
+	
+	<!--- Title of this window -->
+	<attribute name="title" type="string" value="basePanel" />
+	
+	<!--- @keywords private  -->
+	<attribute name="initheight" value="0" type="number" />
+	
+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+	
+	<!--- if the box is allowed to be minimized  -->
+	<attribute name="allowToggle" value="true" type="boolean" />	
+		
+	<method name="setLabelId" args="_labelid" >
+		this.labelid = _labelid;
+		this.setAttribute("title",canvas.getLabelName(this.labelid));
+	</method>
+	
+	<method name="toggleopen">
+		if (!this.allowToggle) {
+			return;
+		}
+		////Debug.write("this.isopen",this.isopen);
+		this.setAttribute('isopen',!this.isopen);
+		if (this.isopen){		
+			this.setAttribute('height',this.initheight);
+			this.setAttribute('height',this.initheight);
+		} else {	
+			this.setAttribute('height',22);		
+		}
+	</method>
+	
+    <handler name="oninit">
+    	this.initheight=this.height;
+    </handler>
+	
+    <view x="0" y="1" width="${ this.parent.width }" height="20" bgcolor="0xE0E1EB" />
+    
+    <view x="0" y="0" width="${ this.parent.width }" height="1" bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }" />
+    
+    <view x="0" y="19" width="${ this.parent.width }" height="1" bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }" />
+	
+	<handler name="onclick">
+        this.toggleopen();
+    </handler>
+    
+    <text fontsize="11" height="17" x="2" y="1" text="${ this.parent.title }" 
+						fgcolor="$once{ canvas.getThemeColor('menuTextColor') }" resize="true" fontstyle="bold" />
+	
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/fixedFileExplorerWhiteBoard.lzx b/WebContent/src/modules/conference/whiteboard/fixedFileExplorerWhiteBoard.lzx
new file mode 100644
index 0000000..b73230c
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/fixedFileExplorerWhiteBoard.lzx
@@ -0,0 +1,595 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<!-- 
+############################
+
+    Class newWhiteBoard
+    
+    
+    @keywords deprecated
+    
+ -->
+
+
+<class name="fixedFileExplorerWhiteBoard" extends="view" showhandcursor="false">
+    
+    <attribute name="baseurl" value="" type="string" />
+    <attribute name="fileName" value="" type="string" />
+    <attribute name="moduleName" value="" type="string" />
+    <attribute name="parentPath" value="" type="string" />
+    <attribute name="room" value="" type="string" />
+    <attribute name="domain" value="" type="string" />
+    
+    <attribute name="downloadurl" value="" type="string" />
+    <attribute name="iamgex" value="" type="string" />
+    <attribute name="imagey" value="" type="string" />
+    
+    <attribute name="restricted" value="false" type="boolean" />
+    
+    <event name="onsharedMessage" />
+    
+    <attribute name="sendObject" value="null" />
+    <attribute name="sendObjectToClientID" value="0" type="number"  />
+    
+    <attribute name="confirmdialog" value="null" />
+    
+    <attribute name="documentmenuIsInited" value="false" type="boolean" />
+    
+    <handler name="oninit">
+        if ($debug) Debug.info("Init Whiteboard ",this.restricted);
+    </handler>
+
+    <handler name="ondestroy">
+		//if ($debug) Debug.write("############## fixedFileExplorerWhiteBoard::ondestroy : ", this);
+		this._drawareaMask._drawarea.clearRemote();
+    </handler>
+
+    <method name="sendConfirmation" args="yesno,askagain" >
+        
+        ////Debug.write("clear yesno,askagain: ",yesno,askagain);
+    
+         var g = canvas.getUserData();
+         if (g["image"]==null) g["image"]=new Array();
+         g["image"]["clearField"]=yesno;
+         g["image"]["askagainclear"]=!askagain;
+         canvas.setUserData(g);
+
+         if (yesno){
+            ////Debug.write("clear field!!");
+            canvas._drawarea.setModus('plain');
+            canvas._drawarea.addNewSyncImage(this.downloadurl,this.iamgex,this.imagey,this.baseurl,this.fileName,this.moduleName,this.parentPath,this.room,this.domain);
+         } else {
+            ////Debug.write("don't clear field!!");
+            canvas._drawarea.addNewSyncImage(this.downloadurl,this.iamgex,this.imagey,this.baseurl,this.fileName,this.moduleName,this.parentPath,this.room,this.domain);
+         }
+         this.confirmdialog.close();
+    </method>
+    
+    <method name="getconfirmationscode">
+        var g = canvas.getUserData();
+        if (g["image"]==null) {
+            g["image"]=new Array();
+            g["image"]["clearField"]=false;
+            g["image"]["askagainclear"]=true;
+            canvas.setUserData(g);
+        }
+        return g["image"];
+    </method>
+    
+    <method name="resetDefaultConfirmations">
+        var g = canvas.getUserData();
+        if (g["image"]==null) g["image"]=new Array();
+        g["image"]["clearField"]=false;
+        g["image"]["askagainclear"]=true;
+        canvas.setUserData(g);
+    </method>   
+    
+    <method name="clearAreaAndAddImage" args="downloadurlVal,xVal,yVal,baseurl,fileName,moduleName,parentPath,room,domain">
+        <![CDATA[
+        ////Debug.write("clearAreaAndAddImage: ",downloadurlVal,xVal,yVal,baseurl,fileName,moduleName,parentPath,room,domain);
+        this.downloadurl=downloadurlVal;
+        this.iamgex=xVal;
+        this.imagey=yVal;   
+        this.baseurl=baseurl;
+        this.fileName=fileName;
+        this.moduleName=moduleName;
+        this.parentPath=parentPath;
+        this.room=room;
+        this.domain=domain;
+        var storedImageDate = this.getconfirmationscode();
+        ////Debug.write(" g[image] ",storedImageDate);
+        if (storedImageDate["clearField"] && !storedImageDate["askagainclear"]){
+            canvas._drawarea.setModus('plain');
+            if ($debug) Debug.write(" canvas._drawarea.addNewImage 1 ",this.downloadurl,this.x,this.y);
+            canvas._drawarea.addNewImage(this.downloadurl,this.x,this.y,this.baseurl,this.fileName,this.moduleName,this.parentPath,this.room,this.domain);
+        } else if (!storedImageDate["askagainclear"] && !storedImageDate["clearField"]){
+            canvas._drawarea.addNewImage(this.downloadurl,this.x,this.y,this.baseurl,this.fileName,this.moduleName,this.parentPath,this.room,this.domain);
+            if ($debug) Debug.write(" canvas._drawarea.addNewImage 2 ",this.downloadurl,this.x,this.y);
+        } else if (storedImageDate["askagainclear"]){
+            this.confirmdialog = new lz.confirmationBox(canvas.main_content._content.inner,{labelid:62,labeliderror:63,refObj:this});
+        } else {
+            this.confirmdialog = new lz.confirmationBox(canvas.main_content._content.inner,{labelid:62,labeliderror:63,refObj:this});
+        }
+        ]]> 
+    </method>
+    
+    <event name="isloadingImage" />
+    <event name="isloadedImage" />
+    
+    
+    <text fontsize="11" x="10" y="2" 
+        name="_sharingClientName" fontstyle="bold" />    
+    
+    
+	<method name="checkForApplyScreen">
+		lz.Browser.loadURL(canvas.getScreenSharingUrl(), '_blank');
+	</method> 
+	
+    <!-- 
+        The Content Area    
+     -->
+    <view width="${ parent.parent.width-2 }" 
+          height="${ (canvas.ismoderator) ? (parent.parent.height-42-parent._propertyPanel.height) : ((canvas.isAllowedToDraw) ? (parent.parent.height-42-parent._propertyPanel.height) : (parent.parent.height-42)) }" 
+          y="0" name="_drawareaMask" clip="true" bgcolor="0xFFFFFF" >
+    	
+    	<handler name="oninit">
+            if ($debug) Debug.info("lz.Track.register ",canvas.currentImagesListdraw.currentTrackGroupName);
+            lz.Track.register(this, canvas.currentImagesListdraw.currentTrackGroupName);
+        </handler>
+    	
+    	<handler name="onmousedown">
+            this._drawarea.onmousedownMethod();
+        </handler>
+        
+        <handler name="onmouseup">
+            this._drawarea.onmouseupMethod();
+        </handler>
+        
+        <handler name="onmouseover">
+        	lz.Cursor.restoreCursor();
+        	lz.Cursor.showHandCursor(false);
+            this._drawarea.onmouseoverMethod();
+        </handler>
+        
+        <handler name="onmouseout">
+        	lz.Cursor.showHandCursor(true);
+        	lz.Cursor.unlock();
+            this._drawarea.onmouseoutMethod();
+        </handler>
+        
+        <handler name="onmousetrackover">
+            if ($debug) Debug.write("onmousetrackover");
+            canvas.currentImagesListdraw.currentDragItem.sendOverItem(this);
+            this.setAttribute("bgcolor",0x93FE92);
+        </handler>
+        
+        <handler name="onmousetrackout">
+            if ($debug) Debug.write("onmousetrackout");
+            canvas.currentImagesListdraw.currentDragItem.sendOutItem(this);
+            this.setAttribute("bgcolor",0xFFFFFF);
+        </handler>
+        
+        <handler name="onmousetrackup">
+            if ($debug) Debug.write("onmousetrackup");
+            this.setAttribute("bgcolor",0xFFFFFF);
+        </handler>   
+    	
+    	<remoteWhiteboard y="0" name="_drawarea" isRemoteOID="true" height="${parent.height}" width="${parent.height}"
+                          restricted="$once{ parent.parent.restricted }" >
+    		
+    		<attribute name="sendUpdate" value="true" type="boolean"/>
+    		
+    		<handler name="onx" args="x">
+                if (this.sendUpdate) {
+                    if ($debug) Debug.write("# x",x);
+					if ('scrollContainer' in parent.parent) {
+	                    parent.parent.scrollContainer.calcScrollContent();
+					}
+                }
+            </handler>
+            
+            <handler name="ony" args="y">
+                if (this.sendUpdate) {
+                    if ($debug) Debug.write("# y",y);
+					if ('scrollContainer' in parent.parent) {
+                    	parent.parent.scrollContainer.calcScrollContent();
+					}
+                }
+            </handler>
+            
+            <handler name="onheight" args="h">
+                if ($debug) Debug.write("# height",h);
+                //this.dragger.drag_min_x = parent.width - w;
+				if ('scrollContainer' in parent.parent) {
+	                parent.parent.scrollContainer.calcScrollContent();
+				}
+                parent.parent.zoombox.sendUpdate(null);
+            </handler>
+            
+            <handler name="onwidth" args="w">
+                if ($debug) Debug.write("# width",w);
+                //this.dragger.drag_min_y = parent.height - h;
+				if ('scrollContainer' in parent.parent) {
+	                parent.parent.scrollContainer.calcScrollContent();
+				}
+            </handler>
+            
+            <handler name="onupdateScale" args="tRef">
+                if ($debug) Debug.write("# updateScale",this.getDisplayObject()._xscale);
+				if ('scrollContainer' in parent.parent) {
+	                parent.parent.scrollContainer.calcScrollContent();
+				}
+            </handler>
+    		
+            <attribute name="initH"/>
+            <attribute name="initW"/>
+            <handler name="oninit">
+                canvas._drawarea = this; 
+            </handler>
+            
+            <handler name="onprogress" args="perc">
+                //Debug.write("onprogress: ",perc);
+                this.parent.parent._progress.setProgress(perc);
+            </handler>
+            <!--
+            <handler name="onmousedown" >
+                //Debug.write("onprogress: ",perc);
+            </handler>
+             -->
+            <handler name="ondrawmodus" args="d">
+                this.drawmodus = d;
+                //change Enabled Status of Toolbar Menu Button
+                parent.parent._propertyPanel.loadPanelByModus(this);
+            </handler>
+            <handler name="setNewScreenUserName" args="value">
+                this.parent.parent._sharingClientName.setAttribute('text',value);
+            </handler>
+            <!-- @overwrite -->
+            <method name="onsharedMessage" args="action,obj">
+                
+                if ($debug) Debug.write("###### onsharedMessage",action,obj);
+    
+                var tempSendArray = new Array ();
+                tempSendArray[0] = 'whiteboard';
+                tempSendArray[1] = new Date();
+                tempSendArray[2] = action;
+                tempSendArray[3] = obj;
+                     
+                parent.parent.onsharedMessage.sendEvent(tempSendArray);
+            </method>
+            
+            <handler name="onopenWhiteBoard" >
+                //parent.parent.getRoomItems.doCall();
+            </handler>
+            
+            <!-- clientid  = streamid of the user -->
+            <method name="oninitUser" args="clientid,objectList">
+                this.parent.parent.sendObjectToClientID = clientid;
+                this.parent.parent.sendObject = objectList;
+                this.parent.parent.sendMessageWithClientById.doCall();
+            </method>
+            
+            <handler name="onboundingIsActive" args="b">
+                if ($debug) Debug.write("boundingIsActive: ",b);
+                if (b){
+                    var boundingDoUpdateOnInit = true;
+                    if (this.ObjectByName instanceof lz.swfResourceView){
+                        //Debug.write("is swf Presentation");
+                        boundingDoUpdateOnInit=false;
+                    }
+                    if (!boundingDoUpdateOnInit) {
+                        parent.parent._propertyPanel.setObjectBounds(
+                            this.ObjectByName.x,this.ObjectByName.y,
+                            this.ObjectByName._swfView.width,this.ObjectByName._swfView.height);
+                    } else {
+                        parent.parent._propertyPanel.setObjectBounds(
+                            this.ObjectByName.x,this.ObjectByName.y,
+                            this.ObjectByName.width,this.ObjectByName.height);
+                    }
+                }
+            </handler>
+            
+            <!--  bounding Box (selection Box) -->
+            <handler name="onBoundingBox" args="boundingBoxRef">
+                var boundingDoUpdateOnInit = true;
+                if (boundingBoxRef.objRef instanceof lz.swfResourceView){
+                //Debug.write("is swf Presentation");
+                    boundingDoUpdateOnInit=false;
+                }
+                if (!boundingDoUpdateOnInit) {
+                    parent.parent._propertyPanel.setObjectBounds(
+                    boundingBoxRef.objRef.x,boundingBoxRef.objRef.y,
+                    boundingBoxRef.objRef._swfView.width,boundingBoxRef.objRef._swfView.height);
+                } else {
+                    parent.parent._propertyPanel.setObjectBounds(
+                    boundingBoxRef.objRef.x,boundingBoxRef.objRef.y,
+                    boundingBoxRef.objRef.width,boundingBoxRef.objRef.height);
+                }
+            </handler>
+            
+            <method name="getDocumentToolBar">
+                return parent.parent.panelArea.getDocumentsToolbar();
+            </method>
+            
+            <method name="getPaintToolBar">
+                return parent.parent.panelArea._mainToolsPanel;
+            </method>
+            
+            <view name="_grid" x="-2" y="-2" height="${parent.height}" width="${parent.height}" 
+                  visibility="${ (parent.showGrid) ? 'visible' : 'hidden'}"/>
+        </remoteWhiteboard>   
+    	
+    </view>
+    
+    
+    <view name="scrollContainer" width="${ parent.parent.width-2 }" 
+          visible="${ ((canvas.ismoderator) ? true : ((canvas.isAllowedToDraw) ? true : false )) }"
+          height="${ (canvas.ismoderator) ? (parent.parent.height-42-parent._propertyPanel.height) : ((canvas.isAllowedToDraw) ? (parent.parent.height-33-parent._propertyPanel.height) : (parent.parent.height-33)) }" >
+        
+        <attribute name="sendUpdate" value="true" type="boolean"/>
+        
+        <method name="calcScrollContent">
+            var rHeight = Math.round(parent._drawareaMask._drawarea.height * (parent._drawareaMask._drawarea.getDisplayObject()._xscale / 100));
+            var rWidth = Math.round(parent._drawareaMask._drawarea.width * (parent._drawareaMask._drawarea.getDisplayObject()._yscale / 100));
+            this.sendUpdate = false;
+            this.scrollview.setAttribute("x",parent._drawareaMask._drawarea.x);
+            this.scrollview.setAttribute("y",parent._drawareaMask._drawarea.y);
+            this.scrollview.setAttribute("height", Math.max(rHeight, parent._drawareaMask._drawarea.getDisplayObject()._height));
+            this.scrollview.setAttribute("width", Math.max(rWidth, parent._drawareaMask._drawarea.getDisplayObject()._width));
+            this.sendUpdate = true;
+        </method>
+        
+        <view name="scrollview">
+            
+            <attribute name="timeisInited" value="false" type="boolean" />
+            <attribute name="sendObjectDel" value="null" />
+            
+            <handler name="oninit">
+                this.sendObjectDel = new LzDelegate( this, "sendObject" );
+            </handler>
+            
+            <handler name="onx" args="x">
+                if (parent.sendUpdate) {
+                    if ($debug) Debug.write("# scrollview x",x);
+                    parent.parent._drawareaMask._drawarea.setAttribute("x",x);
+                    
+                    if (!this.timeisInited){
+                        this.timeisInited=true;
+                        lz.Timer.addTimer( this.sendObjectDel, 250 );
+                    } else {
+                        lz.Timer.resetTimer( this.sendObjectDel, 250 );
+                    }
+                }
+            </handler>
+            <handler name="ony" args="y">
+                if (parent.sendUpdate) {
+                    if ($debug) Debug.write("# scrollview y",y);
+                    parent.parent._drawareaMask._drawarea.setAttribute("y",y);
+                    
+                    if (!this.timeisInited){
+                        this.timeisInited=true;
+                        lz.Timer.addTimer( this.sendObjectDel, 250 );
+                    } else {
+                        lz.Timer.resetTimer( this.sendObjectDel, 250 );
+                    }
+                }
+            </handler>
+            
+            <method name="sendObject" args="itemRef">
+                if ($debug) Debug.info("sendObject :: scrollview");
+                
+                var tArray = new Array();
+                tArray[0] = "moveMap";
+                tArray[1] = Math.round(this.x);
+                tArray[2] = Math.round(this.y);
+                
+                this.parent.parent._drawareaMask._drawarea.onsharedMessage('moveMap',tArray);
+                this.timeisInited=false;
+            </method>
+        </view>
+    
+        <om_vscrollbar name="_scrollstv"/> 
+        <om_hscrollbar name="_scrollsth" /> 
+    
+    </view>    
+    
+    
+        <netRemoteCallHib name="sendMessageWithClientById" funcname="sendMessageWithClientById"
+            remotecontext="$once{ canvas.thishib }" >
+            <netparam><method name="getValue">return parent.parent.sendObject;</method></netparam>
+            <netparam><method name="getValue">return parent.parent.sendObjectToClientID;</method></netparam>
+            <handler name="ondata" args="value">
+                <![CDATA[
+                    //The onResult-Handler will be called be the rtmpconnection
+                    //Debug.write("sendMessageWithClientById : ",value);
+                ]]>
+            </handler>   
+        </netRemoteCallHib>     
+    
+    <view name="panelArea" width="${ parent.parent.width }" 
+          height="${ parent.parent.height-42-parent._propertyPanel.height }">
+        
+        <attribute name="objectRef" value="null" />
+        
+        <!--- @deprecated -->
+        <method name="_setSelection" args="obj">
+            parent._drawareaMask._drawarea.removeObjectBounds();
+            if (obj.setSelectionToItem){            
+                if (this.objectRef!=null){
+                    this.objectRef._isselected = false;
+                    this.objectRef._area.setAttribute('bgcolor',0xFFFFFF);
+                }
+                this.objectRef = obj;
+                this.objectRef._isselected = true;
+                this.objectRef._area.setAttribute('bgcolor',canvas.getThemeColor('basebgcolorizer'));
+                parent._drawareaMask._drawarea.setModus(this.objectRef.modi);
+            }
+        </method>
+        
+        <method name="setSelection" args="obj">
+            if ($debug) Debug.write("setSelection ",obj);
+            parent._drawareaMask._drawarea.removeObjectBounds();
+            if (obj.setSelectionToItem){            
+                if (this.objectRef!=null){
+                    this.objectRef._isselected = false;
+                    this.objectRef.setAttribute('enabled',true);
+                }
+                this.objectRef = obj;
+                this.objectRef._isselected = true;
+                this.objectRef.setAttribute('enabled',false);
+            }
+            if (obj.modi=="saveobj"){
+                parent._drawareaMask._drawarea.doAction(obj.modi);
+            } else {
+                parent._drawareaMask._drawarea.setModus(obj.modi);
+            }
+        </method>
+        
+        <method name="setSelectionWithoutEvent" args="obj">
+            if (obj.setSelectionToItem){         
+                if (this.objectRef!=null){
+                    this.objectRef._isselected = false;
+                    this.objectRef.setAttribute('enabled',true);
+                }
+                this.objectRef = obj;
+                this.objectRef._isselected = true;
+                this.objectRef.setAttribute('enabled',false);
+            }
+        </method>
+        
+        <!--
+                                
+         -->
+         
+        <method name="sendNewPropertyHeight" args="objRef">
+            <![CDATA[
+                for (var i=0;i<this.subviews.length;i++) {
+                    if (this.subviews[i].y != 0) {
+                        if (this.subviews[i] instanceof lz.mainToolsTopPanel) {
+                            if (objRef.height<=22){
+                                if (this.subviews[i].y+this.subviews[i].height+5>=parent.parent.height-objRef.initheight-21){
+                                    if ($debug) Debug.write("mainToolsTopPanel");
+                                    this.subviews[i].setAttribute('y',objRef.y-this.subviews[i].height);
+                                }
+                            } else {
+                                if (this.subviews[i].y+this.subviews[i].height+5>=objRef.y){
+                                    if ($debug) Debug.write("mainToolsTopPanel");
+                                    this.subviews[i].setAttribute('y',objRef.y-this.subviews[i].height);
+                                }
+                            }
+                        }   
+                    }
+                }
+            ]]>
+        </method>
+        
+        <method name="getDocumentsToolbar">
+            return parent._propertyPanel._content._documentsPanel;
+        </method>
+        
+        <mainToolsTopPanel x="100" y="0" name="_mainToolsPanel" 
+             visible="${ ((canvas.ismoderator) ? true : ((canvas.isAllowedToDraw) ? true : false )) }"/>
+        
+        <mainToolsLeftPanelPointer y="20" name="_mainToolsLeftPanelPointer" 
+             visible="${ (parent.parent.restricted) ? false : (((canvas.ismoderator) ? false : ((canvas.isAllowedToDraw) ? false : true ))) }"/>
+    </view> 
+    
+    <view name="zoombox" y="0" x="${ parent.parent.width-this.width-14 }" layout="axis:x;spacing:2">
+        
+        <attribute name="ignoreUpdates" value="false" type="boolean" />
+        
+        <handler name="onx" args="x">
+        	if (this._fullFit.getValue()) {
+        		if ($debug) Debug.write("on x sendUpdate ",x);
+        		lz.Timer.addTimer( new LzDelegate( this, "sendUpdate" ), 100 );
+        	}
+        </handler>
+        
+        <method name="sendUpdate" args="refObj">
+            if ($debug) Debug.write("fixedFileExplorer sendUpdate ",refObj);
+        	parent._drawareaMask._drawarea.doFullFit(true);
+        </method>
+        
+        <method name="setWhiteboardValues" args="fullFit,zoom">
+            if ($debug) Debug.write("setWhiteboardValues -1- ",fullFit,zoom);
+            this.ignoreUpdates = true;
+			if ('_zoom' in this) {
+	            this._zoom.setSliderValue(zoom);
+			}
+            this._fullFit.setValue(fullFit);
+            this.ignoreUpdates = false;
+        </method>
+        
+        <method name="setCurrentScaleByFullFit" args="tScale">
+            if ($debug) Debug.write("setCurrentScaleByFullFit -2- ",tScale);
+            this.ignoreUpdates = true;
+			if ('_zoom' in this) {
+	            this._zoom.setSliderValue(tScale);
+			}
+            this.ignoreUpdates = false;
+        </method>
+        
+        <labelCheckbox x="344" name="_fullFit" labelid="847" y="4" fontstyle="bold" bgcolor="0xFFFFFF"
+        		visible="${ ((canvas.becomemoderator) ? true : false ) }">
+            <handler name="onvalue" args="v">
+                if (parent.ignoreUpdates) {
+                    return;
+                }
+                if ($debug) Debug.warn("onvalue Full Fit ",v);
+                
+				if ('_zoom' in parent) {
+                	parent.parent._drawareaMask._drawarea.doUpdateFullFit(v,parent._zoom.initialNumber);
+				}
+            </handler>
+            <labelTooltip labelid="1212" multiline="true" />
+        </labelCheckbox>
+        
+        <changeWidthSlider name="_zoom" initialNumberInit="50" labelid="1328"
+	            boxPosition="down" initialNumber="50" maximum="200">
+            <handler name="oninitialNumber" args="i">
+                if (parent.ignoreUpdates) {
+                    return;
+                }
+                
+                if ($debug) Debug.warn("onvalue Zoom Fit ",this.initialNumber);
+                
+                parent._fullFit.setValue(false);
+				parent.parent._drawareaMask._drawarea.doUpdateZoom(parent._fullFit.getValue(),this.initialNumber);
+            </handler>
+        </changeWidthSlider>
+        
+        <view width="2" />
+        
+    </view>    
+    
+    <propertyPanel name="_propertyPanel" x="0" y="${ parent.parent.height-this.height-42 }" 
+                    visible="${ ((canvas.ismoderator) ? true : ((canvas.isAllowedToDraw) ? true : false )) }">
+        <handler name="onheight" args="h">
+            this.height = h;
+            if ($debug) Debug.write("onheight: ",h);
+            parent.panelArea.sendNewPropertyHeight(this);
+        </handler>
+    </propertyPanel>
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/fixedFileExplorerWhiteboardPanel.lzx b/WebContent/src/modules/conference/whiteboard/fixedFileExplorerWhiteboardPanel.lzx
new file mode 100644
index 0000000..81da29d
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/fixedFileExplorerWhiteboardPanel.lzx
@@ -0,0 +1,350 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="multiWhiteboardPanel" extends="fixedFileExplorerWhiteBoard" y="42" x="1">
+	
+	<attribute name="whiteboardId" value="0" type="number" />
+	<attribute name="objWhiteboard" value="null" />
+	<attribute name="objMessage" value="null" />
+	
+    <handler name="onsharedMessage" args="obj">
+        //Debug.write("send: ",obj);
+        this.objWhiteboard = obj;
+        if (this.sendVarsByWhiteboardId != null){
+        	this.sendVarsByWhiteboardId.doCall();
+        }
+    </handler>
+    
+    <netRemoteCallHib name="sendVarsByWhiteboardId" funcname="sendVarsByWhiteboardId" 
+    				  	showLoading="false" remotecontext="$once{ canvas.thishib }" >
+        <netparam><method name="getValue">return parent.parent.objWhiteboard;</method></netparam>
+        <netparam><method name="getValue">return parent.parent.whiteboardId;</method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+            	//if ($debug) Debug.write("sendVarsByWhiteboardId : ",value);
+            ]]>
+        </handler>   
+    </netRemoteCallHib>     
+    
+    <handler name="onvisible" args="v">
+    	<![CDATA[
+	    	if ($debug) Debug.write("onvisible :: ",v);
+    	]]>
+    </handler>
+    
+    <method name="sendActiveWindow">
+    	if ($debug) Debug.warn("sendActiveWindow :: ");
+    	if (canvas.ismoderator || canvas.isAllowedToDraw) {
+    		if ($debug) Debug.warn("DO sendActiveWindow :: ");
+    		canvas._drawarea = this._drawareaMask._drawarea;
+    		this.objMessage = new Array();
+    		this.objMessage[0] = "activateWhiteboard";
+    		this.objMessage[1] = this.whiteboardId;
+    		this.sendMessageToMembers.doCall();
+    	}
+    </method>
+    
+    <netRemoteCallHib name="sendMessageToMembers" funcname="sendMessageToMembers" 
+    				  	showLoading="false" remotecontext="$once{ canvas.thishib }" >
+        <netparam><method name="getValue">return parent.parent.objMessage;</method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+            //The onResult-Handler will be called be the rtmpconnection
+            	if ($debug) Debug.write("sendMessageToMembers :: ",value);
+            ]]>
+        </handler>   
+    </netRemoteCallHib> 
+    
+</class>
+    
+<class name="fixedFileExplorerWhiteboardPanel" extends="basePropertyPanelWhiteboard" allowToggle="false"
+	   labelid="615" visible="${((canvas.currentRoomObj.hideWhiteboard) ? false:true)}">
+	<attribute name="whiteboardCount" value="0" type="number" />	
+	<!--
+	
+	 -->
+	<handler name="oninit">
+		canvas._drawarea = this;
+	</handler>
+	
+	<handler name="onopenWhiteBoard" >
+        if ($debug) Debug.write(".. onopenWhiteBoard ..");
+        this.loadInitObject()
+    </handler>
+            
+    <!--
+    	##########################################
+    	Add, remove and change Focus of Whiteboard
+    	##########################################
+     -->
+     
+    <method name="addNewItem">
+    	this.getNewWhiteboardId.doCall();
+    </method>
+    
+    <!--
+    public Long getNewWhiteboardId() {
+     -->
+    <netRemoteCallHib name="getNewWhiteboardId" funcname="whiteboardservice.getNewWhiteboardId"
+        remotecontext="$once{ canvas.thishib }" >
+        <handler name="ondata" args="value">
+            <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("############## getNewWhiteboardId : ",value);
+                parent.addNewItemSynced(value);
+                parent.sendNewWindow(value);
+            ]]>
+        </handler>   
+    </netRemoteCallHib>       
+    
+    <method name="addNewItemSynced" args="whiteboardId">
+    	for (var eg in this._bar.subviews) {
+    		this._bar.subviews[eg].isactive = false;
+    		this._bar.subviews[eg].onmouseout.sendEvent(null);
+    		this._bar.subviews[eg].objRef.setAttribute("visibility","hidden");
+    	}
+    	
+    	var whiteboard = new lz.multiWhiteboardPanel(this,{
+								    		whiteboardId:whiteboardId
+								    	});
+    	var tempWidth = this._bar.getCurrentSize();
+    	
+    	var whiteboardName = canvas.getLabelName(615) + (whiteboardCount > 0 ? " " + whiteboardCount : "");
+    	whiteboardCount++;
+    	var tWhiteboardBtn = new lz.whiteboardMiniButton(this._bar,{
+                            	   objRef:whiteboard,
+                            	   width:tempWidth,
+                            	   isactive:true,
+                            	   btnName: whiteboardName
+                            	});
+        
+        this._bar.currentBtn = tWhiteboardBtn;                    	
+                            	
+    	tWhiteboardBtn.onmouseout.sendEvent(null);
+        this.addNewItemButton.updatePosition();
+        canvas.whiteboardCount++;
+        return whiteboard;
+    </method>
+    
+    <method name="sendNewWindow" args="whiteboardId">
+    	if ($debug) Debug.warn("sendNewWindow :: ");
+    	if (canvas.ismoderator || canvas.isAllowedToDraw) {
+    		if ($debug) Debug.warn("DO sendActiveWindow :: ");
+    		this.objMessage = new Array();
+    		this.objMessage[0] = "newWhiteboard";
+    		this.objMessage[1] = whiteboardId;
+    		this.sendMessageToMembers.doCall();
+    	}
+    </method>
+    
+    <method name="newWhiteboard" args="obj">
+    	if ($debug) Debug.write("newWhiteboard :: ",obj);
+    	this.addNewItemSynced(obj[1]);
+    </method>
+    
+    
+    <!--
+        ##########################################
+        Removal of Whiteboards
+        ##########################################
+     -->
+    <method name="sendRemoveWindow" args="whiteboardId">
+    	if ($debug) Debug.warn("sendRemoveWindow :: ");
+    	if (canvas.ismoderator || canvas.isAllowedToDraw) {
+    		this.deleteWhiteboard.whiteboardId = whiteboardId;
+    		this.deleteWhiteboard.doCall();
+    		if ($debug) Debug.warn("DO sendRemoveWindow :: ");
+    		this.objMessage = new Array();
+    		this.objMessage[0] = "removeWindow";
+    		this.objMessage[1] = whiteboardId;
+    		this.sendMessageToMembers.doCall();
+	        canvas.whiteboardCount--;
+    	}
+    </method>
+    
+    <!--
+    public Boolean deleteWhiteboard(Long whiteBoardId)
+     -->
+    <netRemoteCallHib name="deleteWhiteboard" funcname="whiteboardservice.deleteWhiteboard"
+        remotecontext="$once{ canvas.thishib }" >
+    	<attribute name="whiteboardId" value="0" type="number" />
+        <netparam><method name="getValue">return parent.whiteboardId;</method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+                //The onResult-Handler will be called be the rtmpconnection
+                if ($debug) Debug.write("############## deleteWhiteboard : ", value);
+            ]]>
+        </handler>   
+    </netRemoteCallHib>       
+    
+    <method name="removeWindow" args="obj">
+    	if ($debug) Debug.write("removeWindow :: ",obj);
+    	for (var eg in this._bar.subviews) {
+    		
+    		if (this._bar.subviews[eg].objRef.whiteboardId == obj[1]) {
+    			
+    			this._bar.removeObjectSynced(this._bar.subviews[eg]);
+    			return;
+    			
+    		}
+    		
+    	}
+    </method>
+    
+    <netRemoteCallHib name="sendMessageToMembers" funcname="sendMessageToMembers" 
+    				  	showLoading="false" remotecontext="$once{ canvas.thishib }" >
+        <netparam><method name="getValue">return parent.parent.objMessage;</method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+            //The onResult-Handler will be called be the rtmpconnection
+            	if ($debug) Debug.write("sendMessageToMembers :: ",value);
+            ]]>
+        </handler>   
+    </netRemoteCallHib>     
+    
+    <method name="sendWatchObjectByWhiteboard" args="obj">
+    	if ($debug) Debug.write("sendWatchObjectByWhiteboard :: ",obj);
+    	for (var eg in this.subviews) {
+    		if (obj.id == this.subviews[eg].whiteboardId) {
+    			this.subviews[eg]._drawareaMask._drawarea.sendWatchObject(obj.param[2],obj.param[3],false);
+    			return;
+    		}
+    	}
+    </method>
+    
+    <method name="loadWmlToWhiteboardById" args="obj">
+        if ($debug) Debug.write("loadWmlToWhiteboardById :: ",obj);
+        for (var eg in this.subviews) {
+            if (obj.id == this.subviews[eg].whiteboardId) {
+                this.subviews[eg]._drawareaMask._drawarea.loadWmlToWhiteboardById(obj.roomitems);
+                return;
+            }
+        }
+    </method>
+    
+    <method name="activateWhiteboard" args="obj">
+    	if ($debug) Debug.write("activateWhiteboard :: ",obj);
+    	for (var eg in this._bar.subviews) {
+    		
+    		if (this._bar.subviews[eg].objRef.whiteboardId == obj[1]) {
+    			
+    			this._bar.subviews[eg].activateSynced();
+    			return;
+    			
+    		}
+    		
+    	}
+    </method>
+    
+    <!--
+    	##########################################
+    	StarUp Loading Of Objects
+    	##########################################
+     -->
+    
+    <method name="loadInitObject">
+    	this.getRoomItemsBy.doCall();
+    </method>
+    
+	<netRemoteCallHib name="getRoomItemsBy" funcname="whiteboardservice.getRoomItemsBy"
+        remotecontext="$once{ canvas.thishib }" >
+        <handler name="ondata" args="value">
+            <![CDATA[
+            	//The onResult-Handler will be called be the rtmpconnection
+            	if ($debug) Debug.write("############## getRoomItemsBy : ",value);
+            	parent.loadWhiteboards(value.whiteboardObjects);
+            ]]>
+        </handler>   
+    </netRemoteCallHib>   
+    
+    <method name="loadWhiteboards" args="whiteboardObjects">
+    	<![CDATA[
+    	   if ($debug) Debug.write("whiteboardObjects :: ",whiteboardObjects.length);
+    	   var mainArray = new Array();
+    	   for (var eg in whiteboardObjects) {
+    	   	   mainArray.push(whiteboardObjects[eg]);
+    	   }
+    	   mainArray.reverse();
+    	   
+    	   for (var eg=0;eg<mainArray.length;eg++) {
+    	   	  var whiteBoard = this.addNewItemSynced(mainArray[eg].whiteBoardId);
+    	   	  
+    	   	  whiteBoard._drawareaMask._drawarea.loadObjectList(mainArray[eg]);
+    	   }
+    	]]>
+    </method>
+      
+    
+    <whiteboardBarMenu name="_bar" height="20" y="21">
+    	<attribute name="whiteboardId" value="-1" type="number" />
+    	
+    	<handler name="onsubview" args="newSub">
+    		parent.addNewItemButton.updatePosition();
+    	</handler>
+    	<handler name="onwidth" args="newSub">
+            parent.addNewItemButton.updatePosition();
+        </handler>
+    </whiteboardBarMenu>
+    
+    <view name="addNewItemButton" y="24" 
+    	  visible="${ ((canvas.ismoderator) ? true : ((canvas.isAllowedToDraw) ? true : false )) }"
+    	  >
+    	
+    	<attribute name="whiteboardId" value="-1" type="number" />
+    	
+    	<method name="updatePosition">
+    		if (parent._bar.subviews.length != 0) {
+        		var borderItem = parent._bar.subviews[parent._bar.subviews.length-1];
+        		this.setAttribute("x",borderItem.x + borderItem.width + 2);
+    		} else {
+    			this.setAttribute("x",2);
+    		}
+    	</method>
+    	
+    	<handler name="onmouseover" args="refOb">
+    		this.bg.setAttribute("visibility","visible");
+    	</handler>
+    	
+    	<handler name="onmouseout" args="refOb">
+            this.bg.setAttribute("visibility","hidden");
+        </handler>
+        
+        <handler name="onclick" args="refOb">
+            parent.addNewItem();
+        </handler>
+        
+        <view name="bg" bgcolor="0xEEEEEE" opacity="0.5" 
+        	  width="18" height="18" visibility="hidden" />
+    	
+    	<view resource="add_whiteboard_rsc" y="0" x="0" />
+    	
+    	<labelTooltip labelid="1596" />
+    </view>
+    
+    <view width="${ parent.width }" height="1" y="41"
+    	  bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }">
+    	<attribute name="whiteboardId" value="-1" type="number" />
+    </view>
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/helper/boundingBoxAll.lzx b/WebContent/src/modules/conference/whiteboard/helper/boundingBoxAll.lzx
new file mode 100644
index 0000000..b6d91a0
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/helper/boundingBoxAll.lzx
@@ -0,0 +1,519 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+<include href="utils/states/resizestatemin.lzx"/>
+
+<!--
+    The order of views is important in this class
+    otherwise the scrollbar of the swfPresentation would be not visible or partly overlayed
+    
+    
+    this is the selection Box for all Whiteboard Objects
+ -->
+ 
+<class name="boundingBoxAllRotationMarger" extends="view" 
+	   width="24" height="24" resource="bounding_item_rsc">
+	
+	<attribute name="dragStarted" value="false" type="boolean"/>
+	
+	<handler name="onmouseover">
+        lz.Cursor.setCursorGlobal("arrow_rotate_panel_cursor");
+    </handler>
+    <handler name="onmouseout">
+        lz.Cursor.unlock();
+    </handler>
+    
+    <handler name="onx" args="x">
+    	this.doMoveDragPoint();
+    </handler>
+    <handler name="ony" args="y">
+        this.doMoveDragPoint();
+    </handler>
+    
+    <method name="doMoveDragPoint">
+    	if (!this.dragStarted) {
+    		return;
+    	}
+    	parent.doMoveDragPoint(this.x+12,this.y+12);
+    </method>
+    
+    <handler name="onmousedown">
+    	this.dragStarted = true;
+    	parent.doStartDragPoint();
+        this.dragger.apply();
+    </handler>
+    <handler name="onmouseup">
+    	this.dragStarted = false;
+        this.dragger.remove();
+        parent.endDrawClipArtDrag();
+        lz.Cursor.unlock();
+    </handler>
+    
+    <dragstate name="dragger" />  
+    
+</class> 
+    
+<class name="boundingBoxAll" extends="view" focusable="true">
+    
+<!-- 
+	<method name="removeIt">
+		canvas._drawarea.setAttribute('boundingIsActive',true);
+	</method>
+ -->	
+	<method name="removeIt">
+		//Debug.write("removeIt +**********",this.isinited);
+		this.whiteboardRef.setAttribute('boundingIsActive',false);
+		if (this.rs) this.rs.remove();
+		if (this.dragger) this.dragger.remove();
+		this.destroy();
+	</method>
+
+	<attribute name="ex" value="0" type="number" />
+	<attribute name="ey" value="0" type="number" />
+	<attribute name="ewidth" value="0" type="number" />
+	<attribute name="eheight" value="0" type="number" />
+	
+	<attribute name="innerInsetScrollbars" value="0" type="number"/>
+	
+	<attribute name="startdragX" value="0" type="number" />
+	<attribute name="startdragY" value="0" type="number" />
+	<attribute name="startdragWidth" value="0" type="number" />
+	<attribute name="startdragHeight" value="0" type="number" />
+	
+	<attribute name="objRef" value="null" />
+	<attribute name="whiteboardRef" value="null" />
+	<attribute name="doHandlerUpdates" value="false" type="boolean" />	
+    <attribute name="boundingDoUpdateOnInit" value="true" type="boolean" />	 
+    
+    <attribute name="canBeDragged" value="true" type="boolean" />
+    <attribute name="canBeResized" value="true" type="boolean" />
+    
+    <!--- Minimum width for the windowy, default: 60.
+          @keywords final -->
+    <attribute name="minwidth" value="2"/>
+
+    <!--- Minimum height for the window, default: 50.
+          @keywords final -->
+    <attribute name="minheight" value="2"/>    
+	
+	<method name="__LZRemoveItem" args="itemRef">
+		this.whiteboardRef.deleteItemByName(this.objRef.name);
+		//Debug.write("__LZRemoveItem");
+	</method>
+	
+	<handler name="oninit">
+		<![CDATA[
+		    if (!this.boundingDoUpdateOnInit) {
+		    	if ($debug) Debug.write("DESTROY the clickable view");
+		    	//this._innerDrag.destroy();
+		    }
+		    
+		    if (!this.canBeResized) {
+		    	this._gripperNoResize.setAttribute("visibility","visible");
+		    	this._gripperResize.setAttribute("visibility","hidden");
+		    }
+		
+			this.setAttribute('x',this.ex);
+			this.setAttribute('y',this.ey);
+			this.setAttribute('width',this.ewidth);
+			this.setAttribute('height',this.eheight);	
+			this.setStartValues();		
+			if ($debug) Debug.write("Update Property Panel Settings to Object Properties ",this.objRef.name);
+			
+			lz.Focus.setFocus(this, false); 
+			
+			if (this.objRef.typeOfObject == "text") {
+				this._editText.setAttribute("visibility","visible");
+			}
+			
+            //FIXME - Add Ellipse, Line and Free Draw Tool to it
+            if (this.objRef.name.indexOf('rectangle') >= 0){
+				if ($debug) Debug.write("this.objRef._innerRect ",this.objRef._innerRect);
+				
+				if ($debug) Debug.write("strokeStyle: ",this.objRef._innerRect.strokeStyle);
+				if (this.objRef._innerRect.strokeStyle == '#000000') {
+					if ($debug) Debug.write("strokeStyle EMPTY ");
+					this.whiteboardRef.currentrectanglestrokeDis = -1;
+				} else {
+					this.whiteboardRef.currentrectanglestroke = this.objRef._innerRect.strokeStyle;
+					this.whiteboardRef.currentrectanglestrokeDis = 1;
+				}
+				
+				if ($debug) Debug.write("fillStyle: ",this.objRef._innerRect.fillStyle);
+				if (this.objRef._innerRect.fillStyle == '#000000') {
+					if ($debug) Debug.write("fillStyle EMPTY ");
+					this.whiteboardRef.currentrectanglestrokeFillDis = -1;
+				} else {
+					this.whiteboardRef.currentrectanglestrokeFill = this.objRef._innerRect.fillStyle;
+					this.whiteboardRef.currentrectanglestrokeFillDis = 1;
+				}
+				
+				if ($debug) Debug.write("lineWidth: ",this.objRef._innerRect.lineWidth);
+				this.whiteboardRef.currentrectangleineWidth = this.objRef._innerRect.lineWidth;
+				
+			} else if (this.objRef.name.indexOf('swf') >= 0) {
+                this.setAttribute("innerInsetScrollbars",16);
+            } else if (this.objRef.name.indexOf('clipart') >= 0) {
+            	this.canBeResized = false;
+            	this._gripperNoResize.setAttribute("visibility","visible");
+		    	this._gripperResize.setAttribute("visibility","hidden");
+            	
+            	new lz.boundingBoxAllRotationMarger(this,{
+                    	       x:this.objRef.clipart.clipArtEndx-12,
+                    	       y:this.objRef.clipart.clipArtEndy-12
+                        	});
+            	
+            }
+            
+            
+            this.whiteboardRef.parent.parent._propertyPanel.loadPanelByBoundingBox(this.whiteboardRef,this.objRef);
+            
+			this.doUpdateAction();
+		]]>
+	</handler>
+	
+	<method name="doStartDragPoint">
+		this.whiteboardRef.setStartPoint(this.objRef.clipart.x+this.x,this.objRef.clipart.y+this.y);
+	</method>
+	
+	<method name="doMoveDragPoint" args="x,y">
+		this.whiteboardRef.trackDrawClipArtDraw(this.x+x,this.y+y,this.objRef.clipart);
+	</method>
+	
+	<method name="endDrawClipArtDrag">
+        this.whiteboardRef.endDrawClipArtDrag(this.objRef);
+        this.whiteboardRef.reselectShowObjectBounds(this.objRef.name);
+    </method>
+    
+	<!--
+	   Do update the Selection-Box, in case another Moderator or User has moved the Object
+	   while you have it in focus
+	 -->
+    <method name="sendRemoteUpdate" args="obj">
+        <![CDATA[
+           
+           if (this.objRef.name == obj.name) {
+           	   
+           	    this.resetValues();
+           	
+           }
+        
+        ]]>
+    </method>
+    
+	
+	<method name="resetValues">
+		this.ex = this.objRef.x;
+		this.ey = this.objRef.y;
+		this.ewidth = this.objRef.width;
+		this.eheight = this.objRef.height;			
+		this.setAttribute('x',this.objRef.x);
+		this.setAttribute('y',this.objRef.y);
+		this.setAttribute('width',this.objRef.width);
+		this.setAttribute('height',this.objRef.height);	
+		this.setStartValues();	
+	</method>
+
+    <method name="doUpdateAction" >
+    	this.setAttribute('doHandlerUpdates',true);
+    	if (this.boundingDoUpdateOnInit) {
+    	    this._innerDrag.onmousedown.sendEvent();
+    	}
+    </method>
+    
+    <handler name="onheight">
+    	if(this.doHandlerUpdates){
+    		this.objRef.setAttribute('height',this.height);
+    	}
+    </handler>
+    
+    <handler name="onwidth">
+    	if(this.doHandlerUpdates){
+    		this.objRef.setAttribute('width',this.width);
+    	}
+    </handler>
+    
+    <handler name="onx">
+        if(this.doHandlerUpdates){
+            
+            var tx = this.getAttributeRelative('x',objRef);
+        
+            if(this.objRef.parent.isSnapToGrid){   
+                tx = Math.round(tx/this.objRef.parent.gridWidth)*this.objRef.parent.gridWidth;
+                this.setAttribute("x",Math.round(this.x/this.objRef.parent.gridWidth)*this.objRef.parent.gridWidth)
+            }
+            
+            this.objRef.setAttribute('x',tx);
+        }
+    </handler>
+    
+    <handler name="ony">
+        if(this.doHandlerUpdates){
+            
+            var ty = this.getAttributeRelative('y',objRef);
+        
+            if(this.objRef.parent.isSnapToGrid){   
+                ty = Math.round(ty/this.objRef.parent.gridWidth)*this.objRef.parent.gridWidth;
+                this.setAttribute("y",Math.round(this.y/this.objRef.parent.gridWidth)*this.objRef.parent.gridWidth)
+            }
+            
+            this.objRef.setAttribute('y',ty);
+        }
+    </handler>
+    
+    <handler name="onkeydown" args="key">
+        if ($debug) Debug.write("onkeydown ",key);
+
+        //this.objRef.parent.UpdateByObject(this.objRef);
+
+        if (key == 46) {
+        	this.__LZRemoveItem(this.objRef);
+        } else if (key == 40) {
+        	var shiftPressed = lz.Keys.isKeyDown("shift"); 
+        	if ($debug) Debug.write("shiftPressed ",shiftPressed);
+        	this.doHandlerUpdates = true;
+        	this.setAttribute("y",this.y+(shiftPressed ? 20 : 2));
+        	this.doHandlerUpdates = false;
+        	this.objRef.parent.UpdateByObject(this.objRef);
+			this.setStartValues();
+        } else if (key == 38) {
+        	var shiftPressed = lz.Keys.isKeyDown("shift"); 
+        	this.doHandlerUpdates = true;
+        	this.setAttribute("y",this.y-(shiftPressed ? 20 : 2));
+        	this.doHandlerUpdates = false;
+        	this.objRef.parent.UpdateByObject(this.objRef);
+			this.setStartValues();
+        } else if (key == 39) {
+        	var shiftPressed = lz.Keys.isKeyDown("shift"); 
+        	this.doHandlerUpdates = true;
+        	this.setAttribute("x",this.x+(shiftPressed ? 20 : 2));
+        	this.doHandlerUpdates = false;
+        	this.objRef.parent.UpdateByObject(this.objRef);
+			this.setStartValues();
+        } else if (key == 37) {
+        	var shiftPressed = lz.Keys.isKeyDown("shift"); 
+        	this.doHandlerUpdates = true;
+        	this.setAttribute("x",this.x-(shiftPressed ? 20 : 2));
+        	this.doHandlerUpdates = false;
+        	this.objRef.parent.UpdateByObject(this.objRef);
+			this.setStartValues();
+        }
+    </handler>
+	
+	<method name="setStartValues">
+		this.startdragX = this.x;
+		this.startdragY = this.y;
+		this.startdragWidth = this.width;
+		this.startdragHeight = this.height;			
+	</method>
+
+    <method name="_applyResizestateFromThis">
+    	lz.Focus.setFocus(this, true); 
+    	if ($debug) Debug.write("Apply resize State");
+    	if (!this.canBeResized) {
+            return;
+        }
+		this.setStartValues();		
+		this.rs.apply()
+	</method>
+    
+    <method name="_removeResizestateFromThis">
+		<![CDATA[
+		if (!this.canBeResized) {
+            return;
+        }
+    	this.rs.remove();
+		
+		if (this.startdragX != this.x || this.startdragY != this.y || this.startdragWidth != this.width || this.startdragHeight != this.height){
+			//Debug.write("value changed 1");
+			this.objRef.parent.UpdateByObject(this.objRef);
+			this.setStartValues();
+		}
+		if (parent.onBoundingBox) parent.onBoundingBox.sendEvent(this);
+			
+		]]>
+    </method>
+	
+	<method name="_applyDragstateFromThis">
+		lz.Focus.setFocus(this, true); 
+		if (!this.canBeDragged) {
+			return;
+		}
+		this.setStartValues();
+		this.dragger.apply()
+	</method>	
+    
+    <method name="_removeDragstateFromThis">
+		<![CDATA[
+		if (!this.canBeDragged) {
+            return;
+        }
+    	this.dragger.remove();
+		
+    	if (this.startdragX != this.x || this.startdragY != this.y || this.startdragWidth != this.width || this.startdragHeight != this.height){
+			//Debug.write("value changed 2");
+			this.objRef.parent.UpdateByObject(this.objRef);
+			this.setStartValues();
+		}
+		if (parent.onBoundingBox) parent.onBoundingBox.sendEvent(this);
+		
+		]]>			
+    </method>
+
+    <method name="doSetInnerObjectsBounds" args="w,h">
+        this._inner._inner.setAttribute('width',w);
+        this._inner._inner.setAttribute('height',h);
+    </method>
+    
+    <method name="applyScrollbarToObject">
+        <![CDATA[
+            //if ($debug) Debug.write("-- applyScrollbarToObject --",this.objRef.typeOfObject);
+	        if (this.objRef.typeOfObject == 'swf'){
+	            if (canvas.ismoderator || canvas.isAllowedToDraw) {
+                    //if ($debug) Debug.write("-- setCurrentMouseWheelObject --",this.objRef._scrollstv);
+                    //setCurrentMouseWheelObject(this.objRef._scrollstv);
+                }
+	        }
+        ]]>
+    </method>
+    
+    <method name="removeScrollbarToObject">
+        if (this.objRef.typeOfObject == 'swf'){
+            //Well disable, you can always disable without any problem
+            //and in case you do exactly switch the moderation now
+            //it will remove it in any case
+            disableCurrentMouseWheelObject();
+        }
+    </method>
+        
+    <resizestatemin name="rs"> 	
+    	<text x="2" y="2" text="${ 'w: '+parent.width+' h: '+parent.height }" bgcolor="white"/>
+    </resizestatemin>
+    
+   	<dragstate name="dragger">    
+		<text x="2" y="2" text="${ 'x: '+parent.getAttributeRelative('x',parent.objRef)+' y: '+parent.getAttributeRelative('y',parent.objRef) }" bgcolor="white"/>   	
+   	</dragstate>
+	
+	<view name="_innerDrag" width="${ parent.width-parent.innerInsetScrollbars }" 
+		  height="${ parent.height-parent.innerInsetScrollbars }" 
+		  onmouseover="parent.applyScrollbarToObject()" 
+          onmouseout="parent.removeScrollbarToObject()"
+		  onmousedown="parent._applyDragstateFromThis()" 
+    	  onmouseup="parent._removeDragstateFromThis()">
+    	
+    	<contextmenu>
+			<contextmenuitem caption="$once{ canvas.getLabelName(80) }" 
+							 onselect="parent.parent.parent.__LZRemoveItem()" />
+        </contextmenu>
+		 
+		<handler name="ondblclick">
+
+			//Debug.write("ondblclick: ",this.parent.objRef.typeOfObject);
+			if (this.parent.objRef.typeOfObject == "text") {
+				var x = this.parent.objRef.x; //this.parent.objRef.getAttributeRelative('x', canvas);
+				var y = this.parent.objRef.y; //this.parent.objRef.getAttributeRelative('y', canvas);
+				//Debug.write("x,y ",x,y);
+				this.parent.whiteboardRef
+						.editTextByValues(this.parent.objRef,
+								this.parent.objRef.name,
+								this.parent.objRef.text, x, y,
+								this.parent.objRef.width,
+								this.parent.objRef.height);
+			}
+		</handler>	
+		
+		<handler name="onmouseover">
+			if (this.parent.objRef.typeOfObject != "swf") {
+	           lz.Cursor.setCursorGlobal("arrow_draw_panel_cursor");
+			}
+		</handler>
+		
+		<handler name="onmouseout">
+			lz.Cursor.unlock();
+		</handler>
+		
+		
+	</view>
+	
+	<image src="$once{ canvas.getThemeImage('bounding_box_textedit_item_rsc') }" y="2"  width="16" height="16" stretches="both"
+				name="_editText" visibility="hidden" x="${ parent.width-this.width-parent.innerInsetScrollbars-18 }" >
+		<handler name="onclick">
+			this.parent.whiteboardRef
+						.editTextByValues(this.parent.objRef,
+								this.parent.objRef.name,
+								this.parent.objRef.text, 
+								this.parent.x, 
+								this.parent.y,
+								this.parent.objRef.width,
+								this.parent.objRef.height);
+		</handler>
+		<handler name="onmouseover">
+	        lz.Cursor.restoreCursor();
+	        lz.Cursor.showHandCursor(true);
+	    </handler>
+	    <handler name="onmouseout">
+	    	lz.Cursor.showHandCursor(false);
+	        lz.Cursor.unlock();
+	    </handler>
+    
+		<labelTooltip labelid="1463" />
+	</image>	
+	
+	<image src="$once{ canvas.getThemeImage('bounding_box_delete_item_rsc') }" y="2"  width="16" height="16"
+					x="${ parent.width-this.width-parent.innerInsetScrollbars-2 }" stretches="both">
+		<handler name="onclick">
+			//Debug.write("this.parent.objRef.name: ",this.parent.objRef.name);
+			//this.parent.whiteboardRef.deleteItemByName(this.parent.objRef.name);
+			parent.__LZRemoveItem(this.parent.objRef);
+		</handler>
+		<handler name="onmouseover">
+	        lz.Cursor.restoreCursor();
+	        lz.Cursor.showHandCursor(true);
+	    </handler>
+	    <handler name="onmouseout">
+	    	lz.Cursor.showHandCursor(false);
+	        lz.Cursor.unlock();
+	    </handler>
+    
+		<labelTooltip labelid="80" />
+	</image>	    
+    
+    <view resource="_boundingBoxPointerTL" x="0" y="0" />
+    <view resource="_boundingBoxPointerTR" x="${ parent.width-this.width }" y="0" />
+    <view name="_gripperResize" visibility="visible"
+        resource="_boundingBoxPointerUR" x="${ parent.width-this.width }" y="${ parent.height-this.height }" 
+        onmousedown="parent._applyResizestateFromThis()" onmouseup="parent._removeResizestateFromThis()" >
+    	<handler name="onmouseover">
+	        lz.Cursor.setCursorGlobal("arrow_resize_panel_cursor");
+	    </handler>
+	    <handler name="onmouseout">
+	        lz.Cursor.unlock();
+	    </handler>
+        <labelTooltip labelid="252" />
+    </view>
+    <view name="_gripperNoResize" visibility="hidden" 
+        resource="_boundingBoxPointerURNoGripper" x="${ parent.width-this.width }" y="${ parent.height-this.height }" />
+    <view resource="_boundingBoxPointerUL" x="0" y="${ parent.height-this.height }" />
+
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/helper/library.lzx b/WebContent/src/modules/conference/whiteboard/helper/library.lzx
new file mode 100644
index 0000000..04b6215
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/helper/library.lzx
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+	<!-- APL author sebawagner -->
+	<resource name="bounding_item_rsc" src="resources/bounding_item.png" />
+
+    <include href="boundingBoxAll.lzx" />
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/helper/resources/bounding_item.fla b/WebContent/src/modules/conference/whiteboard/helper/resources/bounding_item.fla
new file mode 100644
index 0000000..23ecab3
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/helper/resources/bounding_item.fla
Binary files differ
diff --git a/WebContent/src/modules/conference/whiteboard/helper/resources/bounding_item.png b/WebContent/src/modules/conference/whiteboard/helper/resources/bounding_item.png
new file mode 100644
index 0000000..638f9d4
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/helper/resources/bounding_item.png
Binary files differ
diff --git a/WebContent/src/modules/conference/whiteboard/library.lzx b/WebContent/src/modules/conference/whiteboard/library.lzx
new file mode 100644
index 0000000..95beb27
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/library.lzx
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+	<!-- APL author sebawagner -->
+	<resource name="_boundingBoxPointerTR" src="resources/boundingBoxTR.png" />
+	<!-- APL author sebawagner -->
+	<resource name="_boundingBoxPointerTL" src="resources/boundingBoxTL.png" />
+	<!-- APL author sebawagner -->
+	<resource name="_boundingBoxPointerUR" src="resources/boundingBoxUR.png" />
+	<!-- APL author sebawagner -->
+	<resource name="_boundingBoxPointerURNoGripper" src="resources/boundingBoxULNoGripper.png" />
+	<!-- APL author sebawagner -->
+	<resource name="_boundingBoxPointerUL" src="resources/boundingBoxUL.png" />
+	<!-- APL author sebawagner -->
+	<resource name="pointer_whiteboard_rsc" src="resources/pointer.swf" />
+	<!-- FamFam Icon Set -->
+	<resource name="bold" src="resources/text_bold.png" />
+	<!-- FamFam Icon Set -->
+	<resource name="italic" src="resources/text_italic.png" />
+	<!-- FamFam Icon Set -->
+	<resource name="add_whiteboard_rsc" src="resources/add.png" />
+	
+	<include href="incubator/lzcombobox.lzx"/> 
+	<include href="base/" />
+	<include href="windows/" />
+	<include href="helper/" />
+	
+	<include href="panels/" />
+	
+	<include href="basePropertyPanelWhiteboard.lzx" />
+    <include href="fixedFileExplorerWhiteBoard.lzx" />
+    <include href="fixedFileExplorerWhiteboardPanel.lzx" />
+    <include href="whiteboardMiniButton.lzx" />
+    <include href="whiteboardBarMenu.lzx" />
+
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/panels/library.lzx b/WebContent/src/modules/conference/whiteboard/panels/library.lzx
new file mode 100644
index 0000000..7c30379
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/panels/library.lzx
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<include href="maintoolspanel/" />
+	<include href="propertypanel" />
+	
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/library.lzx b/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/library.lzx
new file mode 100644
index 0000000..b18b8fa
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/library.lzx
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+	<!--  APL author sebawagner -->
+    <resource name="sub_menu_tools_panel_rsc" src="resources/sub_menu.png" />
+    <!--  APL author sebawagner -->
+    <resource name="sub_menu_top_grip_colored_rsc" src="resources/sub_menu_top_grip.swf" />	
+    
+    <!--
+        How to create image map:
+        $imageMagick/montage *.png -tile 20x -geometry 22x22+2+2 all_images.jpg
+     -->
+
+	<include href="mainToolsPanelItem.lzx" />  
+	<include href="mainToolsPanel.lzx" />  
+	<include href="subMenuIconToolsToUpload.lzx" />
+	
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/mainToolsPanel.lzx b/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/mainToolsPanel.lzx
new file mode 100644
index 0000000..8188076
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/mainToolsPanel.lzx
@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<class name="verticalMenuIconBar" extends="view" y="22" x="4" clickable="true">
+	<simplelayout axis="y" spacing="2" />
+	<mainToolsPanelItem name="plain" modi="plainConfirm" labelid="69" resourceItem="plain" setSelectionToItem="false" />
+	<mainToolsPanelItem name="plainSlide" modi="plainSlide" labelid="1005" resourceItem="plainSlides" setSelectionToItem="false" />
+	
+	<!--
+	<mainToolsPanelItem name="drag" modi="drag" labelid="1113" resourceItem="arrow_draw_panel_tool_cursor" />
+	 -->
+
+	<mainToolsPanelItem name="saveobj" modi="saveobj" labelid="197" resourceItem="saveobj" setSelectionToItem="false" />
+	
+	<mainToolsHPanelSeperator>
+        <attribute name="modi" value="" type="string"/>
+    </mainToolsHPanelSeperator>
+	<redoUndoToolsPanelItem name="revert" doredo="false" labelid="70" resourceItem="revert" />
+	<mainToolsHPanelSeperator>
+		<attribute name="modi" value="" type="string"/>
+	</mainToolsHPanelSeperator>
+	<mainToolsPanelItem name="hand" modi="hand" labelid="72" _isselected="true" 
+						resourceItem="menupointer_rsc" />
+    <mainToolsPanelItem name="pointerWhiteboard" modi="pointerWhiteboard" 
+                        labelid="557" x_insetResource="1" y_insetResource="1"
+                        resourceItem="pointer_whiteboard_menu_rsc" />
+	<mainToolsPanelItem name="letter" modi="letter" labelid="73" resourceItem="letter" />
+	<mainToolsPanelItem name="paint" modi="paint" labelid="74" resourceItem="paint" />
+	<mainToolsPanelItem name="line" modi="line" labelid="75" resourceItem="line_rsc" />
+	<mainToolsPanelItem name="uline" modi="uline" labelid="76" resourceItem="uline_rsc" />
+	<mainToolsPanelItem name="rectangle" modi="rectangle" labelid="77" resourceItem="rectangle" />
+	<mainToolsPanelItem name="ellipse" modi="ellipse" labelid="78" resourceItem="ellipse" />
+	<mainToolsPanelItem name="drawarrow" modi="drawarrow" labelid="79" resourceItem="drawarrowicon_rsc" />
+
+    <mainToolsPanelItem name="clipart" modi="clipart" labelid="1323" >
+        
+        <handler name="oninit">
+            this._bgIcon.setAttribute("visibility","hidden");
+            var imageurl = canvas.getUrl() + 'public/cliparts/thumb/'
+                                           + canvas._drawarea.currentClipArtRessourceName;
+            
+            this._rscIcon.setSource(imageurl);
+        </handler>
+        
+        <!--
+        <view x="$once{ parent.x_insetResource }" y="$once{ parent.x_insetResource }" 
+              height="18" width="18" stretches="both" name="_bgIconIcon" />      
+         -->
+              
+        <view resource="sub_menu_tools_panel_rsc"
+              x="$once{ parent.width - 10 }" y="$once{ parent.height - 10 }">
+            <handler name="onclick">
+            	<![CDATA[
+                if ($debug) Debug.write("Show Sub Menu");
+                new lz.subMenuIconToolsToUpload(canvas,{
+                                x:500,
+                                y:82,
+                                refToolbar:parent
+                            });
+                ]]>
+            </handler>
+            <labelTooltip labelid="1335" />
+        </view>
+        
+    </mainToolsPanelItem>
+
+</class>
+
+<class name="horizontalMenuIconBar" extends="view" y="22" x="4" clickable="true">
+	<simplelayout axis="x" spacing="2" />
+	<mainToolsPanelItem name="plain" modi="plainConfirm" labelid="69" resourceItem="plain" setSelectionToItem="false" />
+	<mainToolsPanelItem name="plainSlide" modi="plainSlide" labelid="1005" resourceItem="plainSlides" setSelectionToItem="false" />
+	<!--
+	<mainToolsPanelItem name="drag" modi="drag" labelid="1113" resourceItem="arrow_draw_panel_tool_cursor" />
+     -->
+	<mainToolsPanelItem name="saveobj" modi="saveobj" labelid="197" resourceItem="saveobj" setSelectionToItem="false" />
+	
+	<mainToolsVPanelSeperator>
+        <attribute name="modi" value="" type="string"/>
+    </mainToolsVPanelSeperator>
+	<redoUndoToolsPanelItem name="revert" doredo="false" labelid="70" resourceItem="revert" />
+	<mainToolsVPanelSeperator>
+        <attribute name="modi" value="" type="string"/>
+    </mainToolsVPanelSeperator>	
+	<mainToolsPanelItem name="hand" modi="hand" labelid="72" _isselected="true" 
+						resourceItem="menupointer_rsc" />
+    <mainToolsPanelItem name="pointerWhiteboard" modi="pointerWhiteboard" 
+                        labelid="557" resourceItem="pointer_whiteboard_menu_rsc" />
+	<mainToolsPanelItem name="letter" modi="letter" labelid="73" resourceItem="letter" />
+	<mainToolsPanelItem name="paint" modi="paint" labelid="74" resourceItem="paint" />
+	<mainToolsPanelItem name="line" modi="line" labelid="75" resourceItem="line_rsc" />
+	<mainToolsPanelItem name="uline" modi="uline" labelid="76" resourceItem="uline_rsc" />
+	<mainToolsPanelItem name="rectangle" modi="rectangle" labelid="77" resourceItem="rectangle" />
+	<mainToolsPanelItem name="ellipse" modi="ellipse" labelid="78" resourceItem="ellipse" />
+	<mainToolsPanelItem name="drawarrow" modi="drawarrow" labelid="79" resourceItem="drawarrowicon_rsc" />
+	<mainToolsPanelItem name="clipart" modi="clipart" labelid="1323" >
+        
+        <handler name="oninit">
+            if (this["_bgIcon"]) {
+        	   this._bgIcon.setAttribute("visibility","hidden");
+        	}
+            var imageurl = canvas.getUrl() + 'public/cliparts/thumb/'
+                                           + canvas._drawarea.currentClipArtRessourceName;
+            
+            this._rscIcon.setSource(imageurl);
+        </handler>
+        
+        <view x="$once{ parent.x_insetResource }" y="$once{ parent.x_insetResource }" 
+              height="18" width="18" stretches="both" name="_bgIconIcon" />      
+        
+        <view resource="sub_menu_tools_panel_rsc"
+              x="$once{ parent.width - 10 }" y="$once{ parent.height - 10 }">
+            <handler name="onclick">
+                if ($debug) Debug.write("Show Sub Menu");
+                new lz.subMenuIconToolsToUpload(canvas,{
+                                x:500,
+                                y:82,
+                                refToolbar:parent
+                            });
+            </handler>
+            <labelTooltip labelid="1335" />
+        </view>
+        
+    </mainToolsPanelItem>
+</class>
+
+
+<class name="mainToolsTopPanel" extends="baseTopPanel" 
+	   width="420" height="33" title="" docking="true"
+	   activationClassBounding="mainToolsLeftPanel"
+	   activationVClassBounding="mainToolsTopPanel"
+	   leftClassPanel="mainToolsLeftPanel"
+	   topClassPanel="mainToolsTopPanel"
+	   bottomClassPanel="mainToolsTopPanel"
+	   rightClassPanel="mainToolsLeftPanel"
+	   verticalClassActive="true"
+	   hWidth="33" hHeight="420">
+	
+    <method name="updateToolSelection" args="modi">
+    	<![CDATA[
+            if ($debug) Debug.write("-updateToolSelection-  ",modi);
+            
+            for (var i=0;i<this._tools.subviews.length;i++){
+                
+            	if (this._tools.subviews[i].modi == modi) {
+            		
+            		this._tools.subviews[i].setSelectionWithoutEvent();
+            		return;
+            	}
+            	
+            }
+            
+        ]]>
+    </method>
+    
+	<horizontalMenuIconBar name="_tools" x="20" y="4" />
+</class>	
+	
+<class name="mainToolsLeftPanel" extends="baseLeftPanel" 
+	   width="33" height="420" title="" docking="true"
+	   activationClassBounding="mainToolsLeftPanel"
+	   activationVClassBounding="mainToolsTopPanel"
+	   topClassPanel="mainToolsTopPanel"
+	   bottomClassPanel="mainToolsTopPanel"
+	   leftClassPanel="mainToolsLeftPanel"
+	   rightClassPanel="mainToolsLeftPanel"
+	   verticalClassActive="false"
+	   vWidth="420" vHeight="33">
+	
+    <method name="updateToolSelection" args="modi">
+        <![CDATA[
+            if ($debug) Debug.write("-updateToolSelection-  ",modi);
+            
+            for (var i=0;i<this._tools.subviews.length;i++){
+                
+                if (this._tools.subviews[i].modi == modi) {
+                    
+                    this._tools.subviews[i].setSelectionWithoutEvent();
+                    return;
+                }
+                
+            }
+            
+        ]]>
+    </method>	
+	
+	<verticalMenuIconBar name="_tools" x="3" y="20" />
+</class>
+
+<!-- ################
+    Non Moderator Tools
+-->
+
+<class name="verticalMenuIconBarPointer" extends="view" y="22" x="4" clickable="true">
+    <simplelayout axis="y" spacing="2" />
+    <mainToolsPanelItem name="pointerWhiteboard" modi="pointerWhiteboard" labelid="557" 
+                        resourceItem="pointer_whiteboard_menu_rsc" />
+</class>
+
+<class name="horizontalMenuIconBarPointer" extends="view" y="22" x="4" clickable="true">
+    <simplelayout axis="x" spacing="2" />
+    <mainToolsPanelItem name="pointerWhiteboard" modi="pointerWhiteboard" labelid="557" 
+                        resourceItem="pointer_whiteboard_menu_rsc" />
+</class>
+
+<class name="mainToolsTopPanelPointer" extends="baseTopPanel" 
+       width="52" height="32" title="" docking="true"
+       activationClassBounding="mainToolsLeftPanelPointer"
+       activationVClassBounding="mainToolsTopPanelPointer"
+       leftClassPanel="mainToolsLeftPanelPointer"
+       topClassPanel="mainToolsTopPanelPointer"
+       bottomClassPanel="mainToolsTopPanelPointer"
+       rightClassPanel="mainToolsLeftPanelPointer"
+       verticalClassActive="true"
+       hWidth="32" hHeight="52">
+    
+    <horizontalMenuIconBarPointer x="20" y="4" />
+</class>    
+
+<class name="mainToolsLeftPanelPointer" extends="baseLeftPanel" 
+       width="32" height="52" title="" docking="true"
+       activationClassBounding="mainToolsLeftPanelPointer"
+       activationVClassBounding="mainToolsTopPanelPointer"
+       topClassPanel="mainToolsTopPanelPointer"
+       bottomClassPanel="mainToolsTopPanelPointer"
+       leftClassPanel="mainToolsLeftPanelPointer"
+       rightClassPanel="mainToolsLeftPanelPointer"
+       verticalClassActive="false"
+       vWidth="52" vHeight="32">
+    
+    <verticalMenuIconBarPointer x="2" y="20" />
+</class>	
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/mainToolsPanelItem.lzx b/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/mainToolsPanelItem.lzx
new file mode 100644
index 0000000..565c710
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/mainToolsPanelItem.lzx
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+ 
+<class name="mainToolsPanelItem" extends="blueButton" 
+	   width="26" height="26">
+	
+	<attribute name="modi" value="" type="string" />
+	<attribute name="labelid" value="0" type="number" />
+	
+	<attribute name="setSelectionToItem" value="true" type="boolean" />
+	<attribute name="_isselected" value="false" type="boolean" />
+	
+	<handler name="oninit">
+		if (this._isselected) parent.parent.parent.setSelection(this);
+	</handler>
+	
+	<method name="setSelectionWithoutEvent">
+        parent.parent.parent.setSelectionWithoutEvent(this);
+    </method>
+	
+	<handler name="onmouseup">
+		//if ($debug) Debug.write("parent.parent.parent",parent.parent.parent);
+		parent.parent.parent.setSelection(this);
+	</handler>
+	<labelTooltip name="__labeltooltip" labelid="$once{ parent.labelid }" />
+</class>
+
+<class name="redoUndoToolsPanelItem" extends="mainToolsPanelItem" setSelectionToItem="false">
+	<attribute name="doredo" value="true" type="boolean" />
+	<handler name="onclick">	  
+          if(this.doredo){
+            this.parent.parent.parent.parent._drawareaMask._drawarea.doredo();
+          } else {
+            this.parent.parent.parent.parent._drawareaMask._drawarea.undoredo();
+          }
+        </handler>
+</class>
+
+<class name="mainToolsHPanelSeperator" extends="view" bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }"
+	   width="26" height="1" ></class>
+	   
+<class name="mainToolsVPanelSeperator" extends="view" bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }"
+	   width="1" height="26" ></class>
+
+    
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/resources/sub_menu.fla b/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/resources/sub_menu.fla
new file mode 100644
index 0000000..cb6f4f5
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/resources/sub_menu.fla
Binary files differ
diff --git a/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/resources/sub_menu.png b/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/resources/sub_menu.png
new file mode 100644
index 0000000..e189bc9
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/resources/sub_menu.png
Binary files differ
diff --git a/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/resources/sub_menu_top_grip.fla b/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/resources/sub_menu_top_grip.fla
new file mode 100644
index 0000000..64344b2
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/resources/sub_menu_top_grip.fla
Binary files differ
diff --git a/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/resources/sub_menu_top_grip.swf b/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/resources/sub_menu_top_grip.swf
new file mode 100644
index 0000000..01de566
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/resources/sub_menu_top_grip.swf
Binary files differ
diff --git a/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/subMenuIconToolsToUpload.lzx b/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/subMenuIconToolsToUpload.lzx
new file mode 100644
index 0000000..e154f51
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/panels/maintoolspanel/subMenuIconToolsToUpload.lzx
@@ -0,0 +1,354 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<class name="miniIconSmybolExtraIcons" extends="view" width="22" height="22">
+	
+	<attribute name="modi" value="" type="string"/>
+	
+	<handler name="onclick">
+		parent.sendNewIcon(this,"");
+	</handler>
+	
+	<handler name="ondblclick">
+		parent.sendNewIcon(this,"");
+		parent.chooseSelect();
+	</handler>
+	
+	<labelTooltip text="$once{ parent.modi }" />
+	
+</class>
+
+<class name="miniIconSmybolExtraIconsImageMap" extends="view" >
+    
+    <handler name="onclick">
+        parent.parent.sendImageMapNewIcon(this);
+    </handler>
+    
+    <handler name="ondblclick">
+        parent.parent.sendImageMapNewIcon(this);
+        parent.chooseSelect();
+    </handler>
+    
+    <handler name="onmouseover" args="tObj">
+    	parent.onmouseover.sendEvent(tObj);
+    </handler>
+    
+    <handler name="onmouseout" args="tObj">
+    	parent.onmouseout.sendEvent(tObj);
+	</handler>
+    
+</class>
+
+<class name="miniIconSmybolExtraIconsSeparator" extends="view" width="$once{ parent.width }" 
+	   height="22">
+	
+	<attribute name="title" type="string" value="title" />
+	
+	<attribute name="isopen" value="true" type="boolean" />
+	
+	<method name="toggleopen">
+		this.setAttribute("isopen",!this.isopen);
+	</method>
+	
+	<handler name="onclick">
+		this.toggleopen();
+	</handler>
+	
+	<view width="${ this.parent.parent.width }" y="0" stretches="width"
+                resource="presenter_thumb_rsc" >
+        <handler name="oninit">
+            <![CDATA[
+                this.setTintRGB(canvas.getThemeColor('basebgcolorizer'),90);
+            ]]>
+        </handler>
+        <method name="setTintRGB" args="color, brightness">
+            <![CDATA[
+            if (color != "" && color != null){
+                
+                if (brightness == null) { brightness = 0; }
+                var rgb = color;
+                var red=(rgb >> 16) & 0xFF;
+                var green=(rgb >> 8) & 0xFF;
+                var blue=rgb & 0xFF;
+    
+                this.setColorTransform( { ra : red, ga : green, ba : blue,
+                                            rb : 0, gb : 0, bb : 0 } );
+                                            
+                if($debug) Debug.write("explorerBox/setTintRGB",this);
+                if($debug) Debug.write("explorerBox/setTintRGB", { ra : red, ga : green, ba : blue, rb : 0, gb : 0, bb : 0 } );
+            }
+            ]]>
+        </method>            
+    </view>	
+    
+    <view visible="${ !this.parent.isopen }" x="2" y="2" resource="conferenceBox_button_min_small_rsc" />
+    <view visible="${ this.parent.isopen }" x="2" y="2" resource="conferenceBox_button_max_small_rsc" />
+
+    <text fontsize="11" height="17" x="16" y="1" text="${ this.parent.title }" 
+            fgcolor="0xFFFFFF" resize="true" />
+            
+</class>
+
+<class name="miniIconSmybolExtraIconsContainer" extends="text" width="$once{ parent.width }">
+	
+	<attribute name="fName" value="" type="string"/>
+	<attribute name="folderName" value="" type="string"/>
+	<attribute name="iconList" value="null"/>
+	<attribute name="isopen" value="true" type="boolean" />
+	
+	<method name="sendNewIcon" args="tObj">
+        parent.sendNewIcon(tObj,this.folderName);
+    </method>
+    
+    <method name="calcImageMapNewIcon">
+    	var tX = Math.floor(this._content.getMouse('x')/26);
+    	var tY = Math.floor(this._content.getMouse('y')/26);
+    	
+    	var tNumber = tX + (tY * 20);
+    	
+    	if (tNumber > this.iconList.length) {
+    		return "";
+    	}
+    	
+    	return this.iconList[tNumber];
+    </method>
+    
+    <method name="sendImageMapNewIcon">
+        var tObj = new Object();
+        tObj["modi"] = this.calcImageMapNewIcon();
+        if (tObj["modi"] == "") {
+        	return;
+        }
+        this._content.clearToolTipReference();
+        parent.sendNewIcon(tObj,this.folderName);
+    </method>
+    
+    <method name="chooseSelect">
+    	this._content.clearToolTipReference();
+        parent.chooseSelect();
+    </method>
+
+	
+	<miniIconSmybolExtraIconsSeparator title="$once{ parent.fName }" isopen="$once{ parent.isopen }">
+		<handler name="onisopen" args="o">
+			if (o) {
+				parent._content.setAttribute("visibility","visible");
+			} else {
+				parent._content.setAttribute("visibility","hidden");
+			}
+		</handler>
+	</miniIconSmybolExtraIconsSeparator>
+	
+	<view name="_content" y="22" width="$once{ parent.width }">
+		
+		<attribute name="calcItem" value="false" type="boolean" />
+		
+		<attribute name="toolTipReference" value="null" />
+		
+		<method name="clearToolTipReference">
+			if (this.toolTipReference != null) {
+				this.toolTipReference.destroy();
+				this.toolTipReference = null;
+			}
+		</method>
+		
+		<handler name="onmouseover">
+			this.stillDownDelegate = new LzDelegate( this, "stillDownEventGenerator" );
+			this.calcItem = true;
+			this.toolTipReference = new lz.toolTipCustomPic(canvas);
+			lz.Timer.addTimer( this.stillDownDelegate, 100 );
+		</handler>
+		
+		<method name="stillDownEventGenerator" args="ignore" >
+			if (!this.calcItem) {
+				return;
+			}
+			var tString = parent.calcImageMapNewIcon();
+			this.toolTipReference.setAttribute("x", this.getAttributeRelative("x",canvas)+this.getMouse("x")+20);
+			this.toolTipReference.setAttribute("y", this.getAttributeRelative("y",canvas)+this.getMouse("y")+20);
+			this.toolTipReference.setAttribute("text", tString);
+			lz.Timer.removeTimer( this.stillDownDelegate );
+			lz.Timer.addTimer( this.stillDownDelegate, 100 );
+		</method>
+		
+		<handler name="onmouseout">
+			this.clearToolTipReference();
+			lz.Timer.removeTimer( this.stillDownDelegate );
+            this.calcItem = false;
+        </handler>
+		
+		<method name="sendNewIcon" args="tObj">
+            parent.sendNewIcon(tObj);
+        </method>
+        
+        <method name="chooseSelect">
+            parent.chooseSelect();
+        </method>
+
+	</view>
+	
+</class>
+
+<class name="toolTipCustomPic" extends="text" bgcolor="0xFFFFFF">
+	
+</class>
+	
+	
+<class name="subMenuIconToolsToUpload" extends="guiPresenter" labelid="1335" 
+    minimizable="false" maximizable="false" fullToolBar="true" 
+    resizeable="false" width="340" height="280" >
+	
+	<attribute name="currentSelected" value="null" />
+	<attribute name="refToolbar" value="null" />
+	
+	<handler name="oninit">
+		lz.ModeManager.makeModal(this);
+	</handler>
+	
+    <handler name="onclose">
+    	lz.ModeManager.release(this);
+    </handler>
+    
+    <!--- @keywords private -->
+    <method name="passModeEvent" args="eventStr,view" > 
+        <![CDATA[
+           if ( eventStr == "onmousedown"  ){
+               if ( view != null ) {
+                  if ( !view.childOf(this) ) {
+                       this.close();
+                  }
+               } else {
+                   this.close();
+               }
+           }
+           if (view && view.childOf(this)) {
+               if (view[ eventStr ]) {
+                   view[ eventStr ].sendEvent( view );
+               }
+               return false;
+           }
+          return true;
+       ]]> 
+    </method>  
+    
+    <method name="sendNewIcon" args="refObj,folderName">
+    	if ($debug) Debug.write("sendNewIcon :: ",refObj.modi);
+    	this.currentSelected = refObj;
+    	
+    	if (folderName != "") {
+    		folderName += "/";
+    	}
+    	
+    	var imageurl = canvas.getUrl() + 'public/cliparts/thumb/'+refObj.modi;
+    	
+        if ($debug) Debug.write("this.refToolbar :: ",this.refToolbar);        
+                                        
+    	this.refToolbar._rscIcon.setSource(imageurl);
+    	
+    	this.refToolbar.parent.parent.parent.setSelection(this.refToolbar);
+    	
+    	canvas._drawarea.currentClipArtRessourceName = folderName + refObj.modi;
+    	
+    	this.close();
+    </method>
+    
+    <method name="chooseSelect">
+    	if ($debug) Debug.write("chooseSelect :: ",this.currentSelected);
+    	this.close();
+    </method>
+    
+    <!--
+    <view resource="sub_menu_top_grip_colored_rsc" y="-14">
+    </view>
+     -->
+    
+    <view x="1" y="22" width="$once{ parent.width-4 }" clip="true" showhandcursor="false"
+    	  height="$once{ parent.height - 23 }" clickable="true">
+    	
+    	<view width="$once{ parent.width-15 }" x="1">
+    		
+    		<handler name="oninit">
+    			this.getClipArtIcons.doCall();
+    		</handler>
+    		
+		    <method name="sendNewIcon" args="tObj,folderName">
+                parent.parent.sendNewIcon(tObj,folderName);
+            </method>
+            
+            <method name="chooseSelect">
+                parent.parent.chooseSelect();
+            </method>
+
+    		
+    		<attribute name="currentContainer" value="null" />
+    		
+    		<!--
+    		getClipArtIcons()
+    		 -->
+            <netRemoteCallHib name="getClipArtIcons" funcname="whiteboardservice.getClipArtIcons"
+                remotecontext="$once{ canvas.thishib }" >
+                <handler name="ondata" args="value">
+                    <![CDATA[
+                        //The onResult-Handler will be called be the rtmpconnection
+                        //if ($debug) Debug.write("############## getClipArtIcons : ",value);
+                        parent.loadIconThumbs(value.generalList,"");
+                    ]]>
+                </handler>   
+            </netRemoteCallHib> 
+            
+            <method name="loadIconThumbs" args="list,folderName">
+            	<![CDATA[
+            	
+                    var imageurl = canvas.getUrl() + 'public/cliparts/thumb/';
+                    
+                    //if ($debug) Debug.write("imageurl :: ",imageurl);            	
+                        	
+                    for (var i=0;i<list.length;i++) {
+                    	
+                    	//if ($debug) Debug.write("list[i].indexOf() ",list[i],list[i].indexOf("."));
+                    	
+                    	if (list[i].indexOf(".") > 1 ) {
+                    	
+                            var iconresourceName = imageurl + list[i];
+                          
+                            new lz.miniIconSmybolExtraIcons(this,{
+                                          modi:list[i],
+                                          resource:iconresourceName,
+                                          stretches:'both'
+                                      });
+                                  
+                    	}
+                      
+                    }
+                
+                ]]>
+            </method>    		 
+    		
+    		<wrappinglayout axis="x" spacing="2" xinset="2" />
+    	</view> 
+    	
+    	<om_vscrollbar />
+    </view>
+    
+</class>
+	
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/panels/propertypanel/drawDocumentPanelItem.lzx b/WebContent/src/modules/conference/whiteboard/panels/propertypanel/drawDocumentPanelItem.lzx
new file mode 100644
index 0000000..5fa1425
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/panels/propertypanel/drawDocumentPanelItem.lzx
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+    

+	<class name="drawDocumentPanelItem" extends="blueButton" 

+		   width="26" height="26" 

+		   x_insetResource="2" y_insetResource="2"

+		   width_insetResource="22" height_insetResource="22">

+		

+		<attribute name="modi" value="" type="string" />

+		<attribute name="labelid" value="0" type="number" />

+		

+		<handler name="onclick">

+			//if ($debug) Debug.write("parent.parent.parent.parent: ",parent.parent.parent.parent);

+			if (parent.parent.parent.ignoreUpdates) {

+	            return;

+	        }

+	        parent.parent.parent.parent._drawareaMask._drawarea.setCurrentDocumentByToolBar(parent.parent.currentDocument.getValue());

+	        parent.parent.parent.parent._drawareaMask._drawarea.doDocumentAction(this.modi);

+		</handler>

+		

+		<labelTooltip name="__labeltooltip" labelid="$once{ parent.labelid }" />

+	    

+	</class>    

+

+</library>
\ No newline at end of file
diff --git a/WebContent/src/modules/conference/whiteboard/panels/propertypanel/library.lzx b/WebContent/src/modules/conference/whiteboard/panels/propertypanel/library.lzx
new file mode 100644
index 0000000..4bb685a
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/panels/propertypanel/library.lzx
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+	<!-- APL Author sebawagner -->
+	<resource name="_button_rsc_letter_rsc" src="resources/button_rsc.swf" />
+	
+	<include href="propertyPanelLetterButton.lzx" />  
+	<include href="drawDocumentPanelItem.lzx" />  
+	<include href="propertyPanel.lzx" />  
+	
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/panels/propertypanel/propertyPanel.lzx b/WebContent/src/modules/conference/whiteboard/panels/propertypanel/propertyPanel.lzx
new file mode 100644
index 0000000..162dfbf
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/panels/propertypanel/propertyPanel.lzx
@@ -0,0 +1,355 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+<class name="propertyPanel" extends="basePropertyPanel" 
+	   width="${ parent.parent.width-1 }" height="80" labelid="843" >
+	
+	<attribute name="ignoreUpdates" value="false" type="boolean" />
+    
+	<method name="setObjectBounds" args="x,y,width,height">
+		if ($debug) Debug.write("setObjectBounds: ",x,y,width,height);
+		this._content._xvalue.setAttribute('text',x);
+		this._content._yvalue.setAttribute('text',y);
+		this._content._widthvalue.setAttribute('text',width);
+		this._content._heightvalue.setAttribute('text',height);
+	</method>
+	
+	<method name="onUpdateBoundByText">
+		if (canvas._drawarea.boundingref!=null){
+			if ($debug) Debug.write("onUpdateBoundByText boundingref: ",canvas._drawarea.boundingref);
+			canvas._drawarea.boundingref.setAttribute('x',Number(this._content._xvalue.getText()));
+			canvas._drawarea.boundingref.setAttribute('y',Number(this._content._yvalue.getText()));
+			canvas._drawarea.boundingref.setAttribute('width',Number(this._content._widthvalue.getText()));
+			canvas._drawarea.boundingref.setAttribute('height',Number(this._content._heightvalue.getText()));
+		}
+	</method>
+	
+	<method name="loadPanelByModus" args="drawArea">
+		if ($debug) Debug.write("loadPanelByModus drawmodus: ",drawArea.drawmodus);
+		this.ignoreUpdates = true;
+		if (drawArea.drawmodus == 'paint') {
+			this._content.lineColorChoose.setSelectedColor(drawArea.currentlayerstroke);
+			this._content.changeWidthSlider.setSliderValue(drawArea.currentlayerlineWidth);
+			this._content.fillColorChoose.setEnabled(false);
+			this._content.changeOpacitySlider.setSliderValue(drawArea.currentlayerOpacity*100);
+		} else if (drawArea.drawmodus == 'line') {
+			this._content.lineColorChoose.setSelectedColor(drawArea.currentlinestroke);
+			this._content.changeWidthSlider.setSliderValue(drawArea.currentlinelineWidth);
+			this._content.fillColorChoose.setEnabled(false);
+			this._content.changeOpacitySlider.setEnabled(false);
+			this._content.changeOpacitySlider.setSliderValue(drawArea.currentlineOpacity*100);
+		} else if (drawArea.drawmodus == 'uline') {
+			this._content.lineColorChoose.setSelectedColor(drawArea.currentulinestroke);
+			this._content.changeWidthSlider.setSliderValue(drawArea.currentulinelineWidth);
+			this._content.fillColorChoose.setEnabled(false);
+			this._content.changeOpacitySlider.setSliderValue(drawArea.currentulineOpacity*100);
+		} else if (drawArea.drawmodus == 'drawarrow') {
+			this._content.lineColorChoose.setSelectedColorWithDis(drawArea.currentdrawarrowlinestroke,
+                drawArea.currentdrawarrowlinestrokeDis);
+			this._content.changeWidthSlider.setSliderValue(drawArea.currentdrawarrowlinelineWidth);
+			this._content.fillColorChoose.setSelectedColorWithDis(drawArea.currentdrawarrowlinestrokeFill,
+                drawArea.currentdrawarrowlinestrokeFillDis);
+			this._content.changeOpacitySlider.setSliderValue(drawArea.currentdrawarrowOpacity*100);
+		} else if (drawArea.drawmodus == 'rectangle') {
+			this._content.lineColorChoose.setSelectedColorWithDis(drawArea.currentrectanglestroke,
+				drawArea.currentrectanglestrokeDis);
+			this._content.fillColorChoose.setSelectedColorWithDis(drawArea.currentrectanglestrokeFill,
+				drawArea.currentrectanglestrokeFillDis);
+			this._content.changeWidthSlider.setSliderValue(drawArea.currentrectangleineWidth);
+			this._content.changeOpacitySlider.setSliderValue(drawArea.currentrectangleOpacity*100);
+		} else if (drawArea.drawmodus == 'ellipse') {
+			this._content.lineColorChoose.setSelectedColorWithDis(drawArea.currentellipsestroke,
+				drawArea.currentellipsestrokeDis);
+			this._content.fillColorChoose.setSelectedColorWithDis(drawArea.currentellipsestrokeFill,
+				drawArea.currentellipsestrokeFillDis);
+			this._content.changeWidthSlider.setSliderValue(drawArea.currentellipselineWidth);
+			this._content.changeOpacitySlider.setSliderValue(drawArea.currentellipseOpacity*100);
+		} else if (drawArea.drawmodus == 'letter') {
+			this._content.lineColorChoose.setSelectedColor(drawArea.currentlayerletter);
+			this._content.fillColorChoose.setEnabled(false);
+			if ($debug) Debug.write("drawArea.currentlayersize ",drawArea.currentlayersize);
+			this._content.changeWidthSlider.setSliderValue(drawArea.currentlayersize);
+			this._content.changeOpacitySlider.setEnabled(false);
+			this._content._italic.setValue(canvas._drawarea.italic);
+			this._content._bold.setValue(canvas._drawarea.bold);
+		} else {
+			if ($debug) Debug.warn("Not known drawmodus",drawArea.drawmodus);
+			this._content.lineColorChoose.setEnabled(false);
+			this._content.changeWidthSlider.setEnabled(false);
+			this._content.fillColorChoose.setEnabled(false);
+			this._content.changeOpacitySlider.setEnabled(false);
+		}
+		
+		if (drawArea.drawmodus == 'letter'){
+            this._content._italic.setAttribute('enabled',true);
+            this._content._bold.setAttribute('enabled',true);           
+        } else {
+            this._content._italic.setAttribute('enabled',false);
+            this._content._bold.setAttribute('enabled',false);
+        }
+		
+		this.ignoreUpdates = false;
+	</method>
+	
+	<method name="loadPanelByBoundingBox" args="drawArea,objRef">
+		if ($debug) Debug.write("loadPanelByBoundingBox objRef: ",objRef);
+		
+        this.loadPanelByModus(drawArea);
+        
+        this.ignoreUpdates = true;
+        
+        if (objRef.name.indexOf('swf') >= 0) {
+            
+            this._content._documentsPanel._currentSlideNo.setAttribute("text",objRef.slideNumber);
+            //this._content._documentsPanel._zoom.setAttribute("text",objRef.currentzoomFactor);
+            //this._content._fullFit.setValue(objRef.fullFit);
+            
+        }
+		
+		this.ignoreUpdates = false;
+	</method>
+		
+	<method name="updateProperties">
+		if (!this.ignoreUpdates){
+			if (canvas._drawarea.drawmodus == 'paint'){
+				canvas._drawarea.currentlayerstroke = this._content.lineColorChoose.selectedColor;
+				canvas._drawarea.currentlayerlineWidth = this._content.changeWidthSlider.initialNumber;
+				canvas._drawarea.currentlayerOpacity = this._content.changeOpacitySlider.initialNumber/100;
+			} else if (canvas._drawarea.drawmodus == 'line'){
+				canvas._drawarea.currentlinestroke = this._content.lineColorChoose.selectedColor;
+				canvas._drawarea.currentlinelineWidth = this._content.changeWidthSlider.initialNumber;
+				canvas._drawarea.currentlineOpacity = this._content.changeOpacitySlider.initialNumber/100;
+			} else if (canvas._drawarea.drawmodus == 'uline'){
+				canvas._drawarea.currentulinestroke = this._content.lineColorChoose.selectedColor;
+				canvas._drawarea.currentulinelineWidth = this._content.changeWidthSlider.initialNumber;
+				canvas._drawarea.currentulineOpacity = this._content.changeOpacitySlider.initialNumber/100;
+			} else if (canvas._drawarea.drawmodus == 'drawarrow'){
+				canvas._drawarea.currentdrawarrowlinestroke = this._content.lineColorChoose.selectedColor;
+                canvas._drawarea.currentdrawarrowlinestrokeDis = this._content.lineColorChoose.selectedColorDis;
+                canvas._drawarea.currentdrawarrowlinestrokeFill = this._content.fillColorChoose.selectedColor;
+                canvas._drawarea.currentdrawarrowlinestrokeFillDis = this._content.fillColorChoose.selectedColorDis;
+                canvas._drawarea.currentdrawarrowlinelineWidth = this._content.changeWidthSlider.initialNumber;
+				canvas._drawarea.currentdrawarrowOpacity = this._content.changeOpacitySlider.initialNumber/100;
+			} else if (canvas._drawarea.drawmodus == 'rectangle'){
+				canvas._drawarea.currentrectanglestroke = this._content.lineColorChoose.selectedColor;
+				canvas._drawarea.currentrectanglestrokeDis = this._content.lineColorChoose.selectedColorDis;
+				canvas._drawarea.currentrectanglestrokeFill = this._content.fillColorChoose.selectedColor;
+				canvas._drawarea.currentrectanglestrokeFillDis = this._content.fillColorChoose.selectedColorDis;
+				canvas._drawarea.currentrectangleineWidth = this._content.changeWidthSlider.initialNumber;
+				canvas._drawarea.currentrectangleOpacity = this._content.changeOpacitySlider.initialNumber/100;
+			} else if (canvas._drawarea.drawmodus == 'ellipse'){
+				canvas._drawarea.currentellipsestroke = this._content.lineColorChoose.selectedColor;
+				canvas._drawarea.currentellipsestrokeDis = this._content.lineColorChoose.selectedColorDis;
+				canvas._drawarea.currentellipsestrokeFill = this._content.fillColorChoose.selectedColor;
+				canvas._drawarea.currentellipsestrokeFillDis = this._content.fillColorChoose.selectedColorDis;
+				canvas._drawarea.currentellipselineWidth = this._content.changeWidthSlider.initialNumber;
+				canvas._drawarea.currentellipseOpacity = this._content.changeOpacitySlider.initialNumber/100;
+			} else if (canvas._drawarea.drawmodus == 'letter'){
+				canvas._drawarea.setAttribute('currentlayerletter',this._content.lineColorChoose.selectedColor);
+				canvas._drawarea.setAttribute('currentlayersize',this._content.changeWidthSlider.initialNumber);
+				canvas._drawarea.italic = this._content._italic.getValue();
+				canvas._drawarea.bold = this._content._bold.getValue();
+				canvas._drawarea.doalterStyle();
+			} else {
+				if ($debug) Debug.warn("Not known drawmodus",canvas._drawarea.drawmodus);
+			}
+		}
+	</method>
+
+	<view name="_content" visible="${this.parent.isopen}" >
+		
+		<labelTextWidthTooltip name="_xvalueLabel" x="4" y="24"
+			labelid="545" labelLabelid="546"  /> 
+		<customEdittext name="_xvalue" x="24" y="24" regexpType="number" 
+			width="40" text="0" height="24"
+			onafterCheck="parent.parent.onUpdateBoundByText()" />
+		
+		<labelTextWidthTooltip name="_yvalueLabel" x="4" y="52"
+			labelid="547" labelLabelid="548"  /> 
+		<customEdittext name="_yvalue" x="24" y="52" regexpType="number"
+			width="40" text="0" height="24"
+			onafterCheck="parent.parent.onUpdateBoundByText()" />
+		
+		<labelTextWidthTooltip name="_widthvalueLabel" x="68" y="24"
+			labelid="549" labelLabelid="550" /> 
+		<customEdittext name="_widthvalue" x="88" y="24" regexpType="number" 
+			width="40" text="0" height="24"
+			onafterCheck="parent.parent.onUpdateBoundByText()" />
+		
+		<labelTextWidthTooltip name="_heightvalueLabel" x="68" y="52"
+			labelid="551" labelLabelid="552" /> 
+		<customEdittext name="_heightvalue" x="88" y="52" regexpType="number"
+			width="40" text="0" height="24"
+			onafterCheck="parent.parent.onUpdateBoundByText()" />
+			
+			
+		<lineColorChoose x="132" y="24" name="lineColorChoose" boxPosition="up" >
+			<handler name="onselectedColor" args="sel">
+				if ($debug) Debug.write("lineColorChoose sel: ",sel);
+				parent.parent.updateProperties();			
+			</handler>
+		</lineColorChoose>
+		
+		<fillColorChoose x="132" y="52" name="fillColorChoose" boxPosition="up" >
+			<handler name="onselectedColor" args="sel">
+				if ($debug) Debug.write("fillColorChoose sel: ",sel);
+				parent.parent.updateProperties();	
+			</handler>
+		</fillColorChoose>
+		
+		<changeWidthSlider x="222" y="24" name="changeWidthSlider" boxPosition="up" 
+			initialNumber="2" >
+			<handler name="oninitialNumber" args="i">
+				//this.parent.parent.parent._drawareaMask._drawarea.setAttribute('currentlayersize',i);
+				if ($debug) Debug.write("changeWidthSlider oninitialNumber sel: ",i);
+				parent.parent.updateProperties();	
+			</handler>
+		</changeWidthSlider> 
+		
+		<changeWidthSlider x="222" y="52" name="changeOpacitySlider" labelid="553" boxPosition="up"
+			initialNumber="100" >
+			<handler name="oninitialNumber" args="i">
+				//this.parent.parent.parent._drawareaMask._drawarea.setAttribute('currentlayersize',i);
+				if ($debug) Debug.write("changeOpacitySlider oninitialNumber sel: ",i);
+				parent.parent.updateProperties();	
+			</handler>
+		</changeWidthSlider> 
+
+	    <propertyPanelLetterButton name="_italic" x="286" y="24" labelid="86"
+                                   itemResourceName="italic" />
+	    
+	    <propertyPanelLetterButton name="_bold" x="312" y="24" labelid="87"
+                                   itemResourceName="bold" />
+		
+		<view name="_delemiter" width="2" bgcolor="$once{ canvas.getThemeColor('baseMousecolorizer') }" 
+			  height="$once{ parent.height - this.y - 4 }" y="20" x="338"/>
+		
+		<labelText labelid="721" y="26" x="344" />
+		
+		<resetCombobox name="currentDocument" width="300" height="24" fontsize="11"
+                           editable="false" shownitems="7" x="480" y="24">
+            <attribute name="sendSelection" value="true" type="boolean"/>
+            <handler name="onselect" args="sel">
+                if (this.sendSelection) {
+                    parent.parent.parent._drawareaMask._drawarea.setCurrentDocument(sel.value);
+                }
+            </handler>
+        </resetCombobox>
+        <!--
+	    <labelCheckbox x="344" y="54" name="_fullFit" labelid="847" >
+            <handler name="onvalue" args="v">
+                if (parent.parent.ignoreUpdates) {
+                    return;
+                }
+                if ($debug) Debug.write("onvalue Full Fit ",v);
+                
+                parent.parent.parent._drawareaMask._drawarea.doFullFit(v);
+            </handler>
+            <labelTooltip labelid="1212" multiline="true" />
+	    </labelCheckbox> 
+	     -->       
+		
+		<view name="_documentsPanel" x="480" y="52" layout="axis:x;spacing:2">
+			
+			<handler name="oninit">
+                //if ($debug) Debug.write("oninit: ",this);
+                this._currentSlideNo.setAttribute('text',canvas.currentSlideNo);
+                this._totalSlideNo.setAttribute('text',canvas.currentSlideTotal);
+                //this._zoom.setAttribute('text',canvas.currentSlideZoom);
+            </handler>
+            <handler name="preclose">
+                //if ($debug) Debug.write("onclose: ",this);
+                canvas.currentSlideNo = Number(this._currentSlideNo.getText());
+                canvas.currentSlideTotal = Number(this._totalSlideNo.getText());
+                //canvas.currentSlideZoom = Number(this._zoom.getText());
+            </handler>
+			
+			<method name="addCurrentObject" args="itemObj">
+                //if ($debug) Debug.write("addCurrentObject ",itemObj.fileName,itemObj.name);
+                var docName = itemObj.standardFileName;
+		        if (docName.length == 0) {
+		            docName = itemObj.fileName;
+		        }
+		        
+		        parent.currentDocument.addItem(docName,itemObj.name);
+                parent.currentDocument.sendSelection = false;
+                parent.currentDocument.selectItem(itemObj.name);
+                parent.currentDocument.sendSelection = true;
+                
+                parent._clickLayer.setAttribute("visibility","hidden");
+            </method>
+            
+            <method name="removeDocument" args="refItemName">
+            	
+            	if ($debug) Debug.warn("removeDocument ",refItemName);
+            	
+                parent.currentDocument.removeItem(refItemName);
+                if (parent.currentDocument.getNumItems() != 0) {
+                    parent.currentDocument.selectItemAt(0);
+                    parent._clickLayer.setAttribute("visibility","hidden");
+                } else {
+                	parent.currentDocument.clearSelection(); 
+                	parent._clickLayer.setAttribute("visibility","visible");
+                }
+            </method>
+            
+            <method name="clearDocumentsBar">
+                parent.currentDocument.reset();
+                parent._clickLayer.setAttribute("visibility","visible");
+            </method>
+            
+            <drawDocumentPanelItem name="b3" modi="doc_first" resourceItem="doc_first" 
+                labelid="255" />        
+            <drawDocumentPanelItem name="b4" modi="doc_pre" resourceItem="doc_pre" 
+                labelid="256" />            
+            <drawDocumentPanelItem name="b5" modi="doc_next" resourceItem="doc_next" 
+                labelid="257" />        
+            <drawDocumentPanelItem name="b6" modi="doc_last" resourceItem="doc_last" 
+                labelid="258" />        
+        
+            <customEdittext name="_currentSlideNo" width="40" height="24" regexpType="number" >
+                <handler name="onblur">
+                    if (parent.parent.parent.ignoreUpdates) {
+                    	if ($debug) Debug.write("ignoreUpdates -- ");
+                        return;
+                    }
+                    parent.parent.parent.parent._drawareaMask._drawarea.setCurrentDocumentByToolBar(parent.parent.currentDocument.getValue());
+                    parent.parent.parent.parent._drawareaMask._drawarea.newSlideNumber = Number(this.getText());
+                    parent.parent.parent.parent._drawareaMask._drawarea.doDocumentAction("setSlideNumber");         
+                </handler>
+            </customEdittext>    
+            <labelText y="6" labelid="254" />     
+            <labelText name="_totalSlideNo" y="6" width="40" />  
+            
+		</view>
+		
+		<!-- 340 -->
+		<view name="_clickLayer" clickable="true" opacity="0.75" x="340"
+			  width="460" height="$once{ parent.height - this.y }" 
+			  y="20" showhandcursor="false" bgcolor="0xFFFFFF" />
+		
+	</view>
+
+</class>
+     
+    
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/panels/propertypanel/propertyPanelLetterButton.lzx b/WebContent/src/modules/conference/whiteboard/panels/propertypanel/propertyPanelLetterButton.lzx
new file mode 100644
index 0000000..0cdf38b
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/panels/propertypanel/propertyPanelLetterButton.lzx
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+<class name="propertyPanelLetterButton" extends="view" resource="_button_rsc_letter_rsc"  
+	   x="312" y="24" height="23" width="24" 
+	bgcolor="$once{ canvas.getThemeColor('baseMousecolorizer') }" >
+	<attribute name="itemResourceName" value="" type="string" />
+	<attribute name="currentVal" value="false" type="boolean" />
+	
+    <attribute name="labelid" value="87" type="number"/>
+    
+	<attribute name="enabled" value="false" type="boolean"/>
+	
+	<handler name="onmouseover">
+		this.setAttribute('bgcolor',0xFFFFFF);
+	</handler>
+	<handler name="onmouseout">
+		this.updateByVal();
+	</handler>
+    <handler name="onclick">
+    	this.currentVal = !this.currentVal;
+    	this.updateByVal();
+        parent.parent.updateProperties();	
+    </handler>
+    <method name="getValue">
+    	return this.currentVal;
+    </method>
+    <method name="setValue" args="bool">
+    	this.currentVal = bool;
+    	this.updateByVal();
+    </method>
+    <method name="updateByVal">
+		if (this.currentVal){
+    		this.setAttribute('bgcolor',canvas.getThemeColor('basebgcolorizer'));
+    	} else {
+    		this.setAttribute('bgcolor',canvas.getThemeColor('baseMousecolorizer'));
+    	}    	
+    </method>
+    <view x="2" y="2" resource="$once{ parent.itemResourceName }" />
+    
+    <view name="_clickEnabled" width="$once{ parent.width }" height="$once{ parent.height }" 
+    	  visibility="${ (parent.enabled) ? 'hidden' : 'visible' }"
+    	  opacity="0.5" bgcolor="0xFFFFFF" clickable="true" showhandcursor="false" />
+    
+    <labelTooltip x="2" y="2" labelid="$once{ parent.labelid }" />
+    
+</class>
+    
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/panels/propertypanel/resources/button_rsc.swf b/WebContent/src/modules/conference/whiteboard/panels/propertypanel/resources/button_rsc.swf
new file mode 100644
index 0000000..027e6d0
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/panels/propertypanel/resources/button_rsc.swf
Binary files differ
diff --git a/WebContent/src/modules/conference/whiteboard/resources/add.png b/WebContent/src/modules/conference/whiteboard/resources/add.png
new file mode 100644
index 0000000..6332fef
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/resources/add.png
Binary files differ
diff --git a/WebContent/src/modules/conference/whiteboard/resources/boundingBox.png b/WebContent/src/modules/conference/whiteboard/resources/boundingBox.png
new file mode 100644
index 0000000..1c4b812
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/resources/boundingBox.png
Binary files differ
diff --git a/WebContent/src/modules/conference/whiteboard/resources/boundingBoxTL.png b/WebContent/src/modules/conference/whiteboard/resources/boundingBoxTL.png
new file mode 100644
index 0000000..1c4b812
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/resources/boundingBoxTL.png
Binary files differ
diff --git a/WebContent/src/modules/conference/whiteboard/resources/boundingBoxTR.png b/WebContent/src/modules/conference/whiteboard/resources/boundingBoxTR.png
new file mode 100644
index 0000000..0ae7230
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/resources/boundingBoxTR.png
Binary files differ
diff --git a/WebContent/src/modules/conference/whiteboard/resources/boundingBoxUL.png b/WebContent/src/modules/conference/whiteboard/resources/boundingBoxUL.png
new file mode 100644
index 0000000..68f95ad
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/resources/boundingBoxUL.png
Binary files differ
diff --git a/WebContent/src/modules/conference/whiteboard/resources/boundingBoxULNoGripper.png b/WebContent/src/modules/conference/whiteboard/resources/boundingBoxULNoGripper.png
new file mode 100644
index 0000000..fd428c9
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/resources/boundingBoxULNoGripper.png
Binary files differ
diff --git a/WebContent/src/modules/conference/whiteboard/resources/boundingBoxUR.fla b/WebContent/src/modules/conference/whiteboard/resources/boundingBoxUR.fla
new file mode 100644
index 0000000..516062b
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/resources/boundingBoxUR.fla
Binary files differ
diff --git a/WebContent/src/modules/conference/whiteboard/resources/boundingBoxUR.png b/WebContent/src/modules/conference/whiteboard/resources/boundingBoxUR.png
new file mode 100644
index 0000000..61a2482
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/resources/boundingBoxUR.png
Binary files differ
diff --git a/WebContent/src/modules/conference/whiteboard/resources/pointer.fla b/WebContent/src/modules/conference/whiteboard/resources/pointer.fla
new file mode 100644
index 0000000..96068e9
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/resources/pointer.fla
Binary files differ
diff --git a/WebContent/src/modules/conference/whiteboard/resources/pointer.swf b/WebContent/src/modules/conference/whiteboard/resources/pointer.swf
new file mode 100644
index 0000000..97742bb
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/resources/pointer.swf
Binary files differ
diff --git a/WebContent/src/modules/conference/whiteboard/resources/text_bold.png b/WebContent/src/modules/conference/whiteboard/resources/text_bold.png
new file mode 100644
index 0000000..889ae80
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/resources/text_bold.png
Binary files differ
diff --git a/WebContent/src/modules/conference/whiteboard/resources/text_italic.png b/WebContent/src/modules/conference/whiteboard/resources/text_italic.png
new file mode 100644
index 0000000..8482ac8
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/resources/text_italic.png
Binary files differ
diff --git a/WebContent/src/modules/conference/whiteboard/whiteboardBarMenu.lzx b/WebContent/src/modules/conference/whiteboard/whiteboardBarMenu.lzx
new file mode 100644
index 0000000..5760a69
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/whiteboardBarMenu.lzx
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="whiteboardBarMenu" extends="view" width="${ parent.width }" x="0" y="21" 
+    height="20" layout="axis:x;spacing:1;inset:2" bgcolor="$once{ canvas.getThemeColor('baseMousecolorizer') }">
+    
+    <attribute name="staticwidth" type="number" value="120" />
+    <attribute name="currentBtn" value="null" />
+    
+    <method name="getCurrentSize">
+        <![CDATA[
+            if ( ((this.subviews.length+1)*(this.staticwidth+1)) <= this.width) {
+                return this.staticwidth;
+            } else {
+                var newwidth = Math.round((this.width-this.subviews.length)/(this.subviews.length+1));
+                for (var i=0;i<this.subviews.length;i++) {
+                    this.subviews[i].setAttribute('width',newwidth);
+                }
+                return newwidth;
+            }   
+        ]]>
+    </method>
+    
+    <handler name="onwidth">
+        <![CDATA[
+            if ( ((this.subviews.length)*(this.staticwidth+1)) <= this.width) {
+                for (var i=0;i<this.subviews.length;i++) {
+                    this.subviews[i].setAttribute('width',this.staticwidth);
+                }
+            } else {
+                var newwidth = Math.round((this.width-this.subviews.length)/(this.subviews.length));
+                for (var i=0;i<this.subviews.length;i++) {
+                    this.subviews[i].setAttribute('width',newwidth);
+                }
+            } 
+        ]]>
+    </handler>
+    
+    <method name="removeObject" args="btn">
+    	var whiteboardId = btn.objRef.whiteboardId;
+    	this.removeObjectSynced(btn);
+    	parent.sendRemoveWindow(whiteboardId);
+    </method>
+    
+    <method name="removeObjectSynced" args="btn">
+    <![CDATA[
+    	var removeCurrent = false;
+    	if (this.currentBtn == btn){
+    		removeCurrent = true;
+    	}
+    	btn.objRef.destroy();
+        btn.destroy();
+        if (this.subviews.length != 0 && removeCurrent) {
+        	this.sendActiveWindowSynced(this.subviews[this.subviews.length-1]);
+        }
+        parent.addNewItemButton.updatePosition();
+    ]]>
+    </method>
+
+    
+    <method name="sendActiveWindow" args="btn,win">
+        if ($debug) Debug.write("sendActiveWindow: ",btn,win);
+        this.sendActiveWindowSynced(btn);
+        this.currentBtn.objRef.sendActiveWindow();
+    </method>
+    
+    <method name="sendActiveWindowSynced" args="btn">
+    	<![CDATA[
+            if (this.currentBtn != null){
+                this.currentBtn.isactive=false;
+                if (this.currentBtn._minimizebtn_mo != null) this.currentBtn._minimizebtn_mo.setAttribute('visibility','hidden');
+                if (this.currentBtn._minimizebtn_dn != null) this.currentBtn._minimizebtn_dn.setAttribute('visibility','hidden');
+            }
+            this.currentBtn = btn;
+            this.currentBtn.objRef.setAttribute("visibility","visible");
+        	this.currentBtn.objRef.bringToFront();
+            ////if ($debug)  //Debug.write("sendActiveWindow2: ",this.currentBtn);
+            this.currentBtn._minimizebtn_mo.setAttribute('visibility','hidden');
+            this.currentBtn._minimizebtn_dn.setAttribute('visibility','visible');
+            this.currentBtn.isactive=true;
+        ]]>
+    </method>
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/whiteboardMiniButton.lzx b/WebContent/src/modules/conference/whiteboard/whiteboardMiniButton.lzx
new file mode 100644
index 0000000..adee5e0
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/whiteboardMiniButton.lzx
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="whiteboardMiniButton" extends="view" width="250" height="18" y="2"
+    bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }">
+     
+    <attribute name="btnName" value="" type="string" />
+    <attribute name="objRef" value="null" />
+
+    <attribute name="zielx" value="200" type="number" />
+    <attribute name="zielwidth" value="100" type="number" />    
+    
+    <attribute name="isactive" value="true" type="boolean" />
+    
+    <attribute name="isHidden" value="false" type="boolean" />
+    
+    <handler name="oninit">
+        this.calcTextWidth();
+        parent.onwidth.sendEvent();
+    </handler>
+    
+    <handler name="onwidth">
+        if (this.isinited){
+            this.calcTextWidth();
+        }
+    </handler>
+    
+    <method name="disableItem">
+        //if ($debug) Debug.write("disableItem :: set visibility to hidden");
+        this.isHidden = true;
+        this.setAttribute("visibility","hidden");
+        //this.destroy();
+    </method>
+    
+    <method name="enableItem">
+        this.setAttribute("visibility","visible");
+        this.isHidden = false;
+    </method>
+    
+    <method name="calcTextWidth">
+        <![CDATA[
+            if (this.isHidden) {
+                return;
+            }
+            ////////if ($debug)  //Debug.write(this,this._text,this._text.getTextWidth());
+            if (this._text.getTextWidth()>(this.width-24)) {
+                this._long.setAttribute('visibility','visible');
+                this._text.setAttribute('width',this.width-26);
+            } else {
+                this._long.setAttribute('visibility','hidden');
+                this._text.setAttribute('width',this.width-18);
+            }
+        ]]>        
+    </method>
+        
+    <handler name="onclick">
+        if (this.isHidden) {
+            return;
+        }
+        this._minimizebtn_mo.setAttribute('visibility','visible');
+        this._minimizebtn_dn.setAttribute('visibility','hidden');
+        if ($debug) Debug.write(" :: onclick :: ");
+        this.sendActiveWindow(this.objRef);
+    </handler>
+    
+    <handler name="onmouseover">
+        if (this.isHidden) {
+            return;
+        }
+        this._minimizebtn_mo.setAttribute('visibility','visible');
+        this._minimizebtn_dn.setAttribute('visibility','hidden');
+    </handler>
+    <handler name="onmouseout">
+        if (this.isHidden) {
+            return;
+        }
+        if (this.isactive) {
+            this._minimizebtn_mo.setAttribute('visibility','hidden');
+            this._minimizebtn_dn.setAttribute('visibility','visible');
+        } else {
+            this._minimizebtn_mo.setAttribute('visibility','hidden');
+            this._minimizebtn_dn.setAttribute('visibility','hidden');
+        }        
+    </handler>
+    <handler name="onmousedown">
+        if (this.isHidden) {
+            return;
+        }        
+        this._minimizebtn_mo.setAttribute('visibility','hidden');
+        this._minimizebtn_dn.setAttribute('visibility','visible');
+    </handler>
+    <handler name="onmouseup">
+        if (this.isHidden) {
+            return;
+        }        
+        this._minimizebtn_mo.setAttribute('visibility','visible');
+        this._minimizebtn_dn.setAttribute('visibility','hidden');
+    </handler>
+    
+    <method name="sendActiveWindow" args="win">
+        this.parent.sendActiveWindow(this,win);
+    </method>    
+
+	<method name="activateSynced">
+		this.parent.sendActiveWindowSynced(this);
+	</method>
+    
+    <view name="_minimizebtn_mo" width="${ parent.width-2 }" height="16"
+        bgcolor="white" opacity="0.3" visibility="hidden" x="1" y="1" />
+
+    <view name="_minimizebtn_dn" width="${ parent.width-2 }" height="16"
+        bgcolor="black" opacity="0.3" visibility="hidden" x="1" y="1" />
+    
+
+    <text text="${ parent.btnName }" fgcolor="0xFFFFFF" resize="false" 
+        x="1" fontsize="10" name="_text" />
+    
+        <view y="1" x="${ parent.width-18 }" name="_close"
+            resource="btn_presenter_close"
+            opacity="${ ((canvas.ismoderator) ? 1 : ((canvas.isAllowedToDraw) ? 1 : 0.5 )) }" 
+            onmouseover="this.setAttribute('frame',2)"
+            onmouseout="this.setAttribute('frame',1)"
+            onmousedown="this.setAttribute('frame',3)"
+            onmouseup="this.setAttribute('frame',1)" >
+            <handler name="onclick">
+	            <![CDATA[
+	                this.setAttribute('frame',2);
+	                canvas._videocontainer._videoviewcontent.closeWhiteboard();
+	                var t = this;
+                    canvas.videoComp_lc.closeWhiteboard = function(confirm) {
+                        if ($debug) Debug.write("confirm closeWhiteboard:", confirm);
+                        if (confirm) {
+                            t.parent.parent.removeObject(t.parent);
+                        }
+                    }
+                ]]>
+            </handler>
+            <labelTooltip labelid="1364" />
+        </view>  
+        
+    <text y="1" name="_long" text="..." fgcolor="0xFFFFFF"
+        x="${ parent.width-28 }" fontsize="10" />
+
+    <labelTooltip text="${ parent.btnName }" />
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/windows/library.lzx b/WebContent/src/modules/conference/whiteboard/windows/library.lzx
new file mode 100644
index 0000000..1002108
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/windows/library.lzx
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<include href="saveAsWmlWindow.lzx" />
+	<include href="loadWhiteboardWindow.lzx" />
+	
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/windows/loadWhiteboardWindow.lzx b/WebContent/src/modules/conference/whiteboard/windows/loadWhiteboardWindow.lzx
new file mode 100644
index 0000000..c2da202
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/windows/loadWhiteboardWindow.lzx
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="loadWhiteboardWindow" extends="labelText" multiline="true" resize="false" 
+	   width="260" align="right" y="${ parent.height - this.height - 10 }" 
+	   bgcolor="0xFFFFFF" fgcolor="0xFF3300">
+    
+    <attribute name="refObj" value="null" />
+    
+    <handler name="onclick">
+    	this.destroy();
+    </handler>
+    
+    <method name="close">
+        this.destroy();
+    </method>    
+    
+    <method name="setMessage" args="mess">
+        this.setAttribute('text',mess);
+    </method>
+    
+</class>
+
+</library>
diff --git a/WebContent/src/modules/conference/whiteboard/windows/saveAsWmlWindow.lzx b/WebContent/src/modules/conference/whiteboard/windows/saveAsWmlWindow.lzx
new file mode 100644
index 0000000..823c9cf
--- /dev/null
+++ b/WebContent/src/modules/conference/whiteboard/windows/saveAsWmlWindow.lzx
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="saveAsWmlWindow" extends="labelExplorerBox" labelid="199"
+    docking="true" closable="true" width="260" x="200" y="0" height="220">
+    
+    <attribute name="refObj" value="null" />
+    
+    <handler name="oninit">
+    	lz.ModeManager.makeModal(this);
+    </handler>
+    
+    <handler name="onclose">
+    	lz.ModeManager.release(this);
+    </handler>
+    
+    <labelText y="22" labelid="201" width="200" />
+    <customEdittext name="_savefileName1" y="42" x="4" width="240" text="filename" />
+    
+    <!--
+    <labelText x="4" y="72" labelid="561" width="200" fgcolor="0x0000FF">
+        <handler name="onclick">
+            this.parent.refObj.confirmSaveAsImageTypeExport(this.parent._savefileName1.getText(),"png");
+            this.parent.close();
+        </handler>
+    </labelText>
+    
+    <labelText x="4" y="92" labelid="562" width="200" fgcolor="0x0000FF">
+        <handler name="onclick">
+            this.parent.refObj.confirmSaveAsImageTypeExport(this.parent._savefileName1.getText(),"jpg");
+            this.parent.close();
+        </handler>
+    </labelText>
+    
+    <labelText x="4" y="112" labelid="563" width="200" fgcolor="0x0000FF">
+        <handler name="onclick">
+            this.parent.refObj.confirmSaveAsImageTypeExport(this.parent._savefileName1.getText(),"pdf");
+            this.parent.close();
+        </handler>
+    </labelText>
+    
+    <labelText x="4" y="132" labelid="560" width="200" fgcolor="0x0000FF">
+        <handler name="onclick">
+            this.parent.refObj.confirmSaveAsImageExport(this.parent._savefileName1.getText());
+            this.parent.close();
+        </handler>
+    </labelText>
+    
+    <labelText x="4" y="152" labelid="564" width="200" fgcolor="0x0000FF">
+        <handler name="onclick">
+            this.parent.refObj.confirmSaveAsImageTypeExport(this.parent._savefileName1.getText(),"tif");
+            this.parent.close();
+        </handler>
+    </labelText>
+     -->
+    
+	<simpleLabelButton name="_confirm" x="40" y="190" 
+			labelid="203" width="100" height="20">
+		<handler name="onclick">
+			this.parent.refObj.confirmSaveAsObject(this.parent._savefileName1.getText());
+		</handler>
+	</simpleLabelButton>	
+    
+	<simpleLabelButton name="_cancel" x="150" y="190" 
+			labelid="202" width="100" height="20">
+		<handler name="onclick">
+			this.parent.close();
+		</handler>
+	</simpleLabelButton>
+	
+</class>
+
+</library>
diff --git a/WebContent/src/modules/dashboard/library.lzx b/WebContent/src/modules/dashboard/library.lzx
new file mode 100644
index 0000000..76f3047
--- /dev/null
+++ b/WebContent/src/modules/dashboard/library.lzx
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+	<include href="tabButtonMain.lzx" />
+
+</library>
diff --git a/WebContent/src/modules/dashboard/tabButtonMain.lzx b/WebContent/src/modules/dashboard/tabButtonMain.lzx
new file mode 100644
index 0000000..08ae57f
--- /dev/null
+++ b/WebContent/src/modules/dashboard/tabButtonMain.lzx
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<class name="tabButtonMain" extends="view" focusable="true"

+	   width="$once{ (parent.width-2)/2 }" height="36" y="2">

+	

+	<attribute name="labelid" value="0" type="number" />

+	

+	<attribute name="selected" value="false" type="boolean" />

+	

+	<attribute name="textFontSize" value="14" type="number" />

+	

+	<attribute name="currentIconRsc" value="" type="string"/>

+	

+	<attribute name="showIcon" value="true" type="boolean" />

+	

+	<handler name="oninit">

+		if (this.selected) {

+			this.doSelection();

+		}

+	</handler>

+	

+	<handler name="onclick">

+		this.doSelection();

+	</handler>

+	

+	<method name="doSelection">

+		parent.parent.doSelection(this);

+	</method>

+	

+	<handler name="onmouseover">

+		if (!this.selected) {

+			this._bg2.setAttribute("visibility","visible");

+		}

+	</handler>

+	

+	<handler name="onmouseout">

+		if (!this.selected) {

+        	this._bg2.setAttribute("visibility","hidden");

+        }

+    </handler>

+	

+	<method name="select">

+		this.selected = true;

+		if (this.showIcon) this._icon.setAttribute("opacity",1);

+        this._selectedView.setAttribute("visibility","visible");

+        this._deselectedView.setAttribute("visibility","hidden");

+		this._bg2.setAttribute("visibility","hidden");

+		this._text.setAttribute("fontstyle","bold");

+		this._text.setAttribute("y",6);

+		if (this.showIcon) this._icon.setAttribute("y",6);

+		this._text.setAttribute("fgcolor",canvas.getThemeColor('menuTextColor'));

+	</method>

+     

+    <method name="deselect">

+        this.selected = false;

+        if (this.showIcon) this._icon.setAttribute("opacity",0.5);

+        this._selectedView.setAttribute("visibility","hidden");

+        this._deselectedView.setAttribute("visibility","visible");

+        this._text.setAttribute("y",8);

+        if (this.showIcon) this._icon.setAttribute("y",8);

+        this._text.setAttribute("fontstyle","plain");

+        this._text.setAttribute("fgcolor",canvas.getThemeColor('menuTextDisabledColor'));

+    </method>       

+    

+    <view name="_selectedView" bgcolor="$once{ canvas.getThemeColor('menuBackgroundColor') }" width="$once{ parent.width }" 

+            height="$once{ parent.height }" visibility="visible">

+        <view name="borderRight" width="1" x="0"

+        			bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }" height="$once{ parent.height }" />  

+        <view name="borderTop" width="$once{ parent.width }" bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }" height="1" />

+        <view name="borderLeft" width="1" x="$once{ parent.width-1 }"

+        			bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }" height="$once{ parent.height }" />  

+    </view>

+    

+    <view name="_deselectedView" bgcolor="0xFAFAFA" 

+    		width="$once{ parent.width }" y="2"

+            height="$once{ parent.height-3 }" visibility="visible">

+        <view name="borderRight" width="1" x="0"

+        			bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }" height="$once{ parent.height }" />  

+        <view name="borderTop" width="$once{ parent.width }" bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }" height="1" />

+        <view name="borderLeft" width="1" x="$once{ parent.width-1 }"

+        			bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }" height="$once{ parent.height }" />  

+    </view>       

+          

+    <view name="_bg2" bgcolor="0xFFFFFF" width="$once{ parent.width-2 }" y="3" x="1"

+          height="$once{ parent.height-4 }" opacity="1" visibility="hidden"/>

+    

+    <state applied="$once{ parent.showIcon }" >

+	    <image x="6" y="6" name="_icon" src="$once{ canvas.getThemeImage( parent.currentIconRsc ) }" 

+    				width="20" height="20" stretches="both" />

+    </state>

+                

+    <labelText name="_text" x="$once{ (parent.showIcon) ? 28 : 6 }" fontsize="$once{ parent.textFontSize }" 

+    		valign="middle" fgcolor="0xFFFFFF" labelid="$once{ parent.labelid }" />

+	

+</class>

+

+</library>

diff --git a/WebContent/src/modules/invitation/autoloaderBarOnly.lzx b/WebContent/src/modules/invitation/autoloaderBarOnly.lzx
new file mode 100644
index 0000000..6de2655
--- /dev/null
+++ b/WebContent/src/modules/invitation/autoloaderBarOnly.lzx
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="autoloaderBarOnly" extends="view" x="400" valign="middle" pixellock="true">
+
+	<attribute name="maxwidth" value="400" type="number" />
+	<attribute name="maxsteps" value="22" type="number" />
+	<attribute name="currentsteps" value="0" type="number" />
+	
+	<method name="close">
+		canvas.thishib.loaderVar = null;
+		this.destroy();
+	</method>
+	
+	<method name="setProgress">
+		this.currentsteps += 1;
+		if($debug) Debug.write("autoLoader/setProgress ===== ",this.currentsteps);
+		var w = Math.round(((this.maxwidth)/this.maxsteps)*this.currentsteps);
+		this.loadingbar.setAttribute('visibility','visible');
+		if($debug) Debug.write("autoLoader/setResourceNumber == ",w);
+		this.loadingbar._loading.setAttribute('width',w);
+	</method>
+      
+    <view name="loadingbar"  height="1" pixellock="true"
+          x="-5" y="40" width="$once{ parent.maxwidth+2 }" visibility="hidden">
+          <view x="1" y="1" width="$once{ parent.width-2 }" height="1" opacity="0.3"
+          		bgcolor="$once{ canvas.getThemeColor('styleMenuBarBaseColor') }" />
+          <view name="_loading" x="1" y="1" width="0" height="1"  pixellock="true" 
+          		bgcolor="$once{ canvas.getThemeColor('styleMenuBarBaseColor') }"/>
+    </view>  
+          
+    <netRemoteCallHib name="getLanguageByIdAndMax" funcname="languageservice.getLanguageByIdAndMax" 
+		remotecontext="$once{ canvas.thishib }" >
+    	<attribute name="start" value="0" type="number" />
+    	<attribute name="step" value="100" type="number" /> 
+    	<attribute name="max" value="1600" type="number" />    
+        <netparam><method name="getValue">return canvas.thishib.userlang;</method></netparam> 
+        <netparam><method name="getValue">return parent.start;</method></netparam> 
+        <netparam><method name="getValue">return parent.step;</method></netparam> 
+        <handler name="ondata" args="value">
+        	<![CDATA[
+        		//if ($debug) Debug.write("getLanguageByIdAndMax: ",value);
+        		setLabelObjectByHundred(this.start,value);
+	            //The onResult-Handler will be called be the rtmpconnection
+	            if (this.start <= max){
+	            	this.start += this.step;
+					canvas.thishib.loaderVar.setProgress();
+					this.doCall();
+	            } else {
+            		parent.setProgress();
+		            parent.getTimeZones.doCall();
+		            parent.getUserSalutations.doCall();
+				}
+			]]>
+        </handler>  
+    </netRemoteCallHib>	 
+    
+	<netRemoteCallHib name="getTimeZones" funcname="xmlcrm.getTimeZones">
+		<attribute name="start" value="0" type="number" />
+		<attribute name="step" value="100" type="number" />
+		<netparam><method name="getValue">return parent.start;</method></netparam>
+		<netparam><method name="getValue">return parent.step;</method></netparam>
+		<handler name="ondata" args="value">
+		<![CDATA[
+			//The onResult-Handler will be called be the rtmpconnection
+			if ($debug) Debug.write("getTimeZones count: ", value.length);
+			if (canvas.thishib.loaderVar != null) {
+				canvas.thishib.loaderVar.setProgress();
+			}
+			if (start == 0) {
+				canvas.timeZones = new Array();
+			}
+			for (var i = 0; i < value.length; ++i) {
+				canvas.timeZones.push(value[i]);
+			}
+			if (value.length < step) {
+				//if($debug) Debug.write("canvas.timeZones == ", canvas.timeZones);
+				canvas.inviteMainWindow = new lz.inviteMainWindow(canvas);
+				if($debug) Debug.write("create invitationWindow: ",canvas.inviteMainWindow);
+			} else {
+				start += step;
+				doCall();
+			}
+		]]>
+		</handler>
+	</netRemoteCallHib>
+    
+    <netRemoteCallHib name="getUserSalutations" funcname="userservice.getUserSalutations" 
+		remotecontext="$once{ canvas.thishib }" >  
+		<netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+        <netparam><method name="getValue"> return hib.userlang; </method></netparam> 
+        <handler name="ondata" args="value">
+            //The onResult-Handler will be called be the rtmpconnection
+            if ($debug) Debug.write("getUserSalutations ",value);
+            canvas.salutationsInitValues = value;
+            parent.setProgress();
+            parent.getRoomTypes.doCall();
+        </handler>  
+    </netRemoteCallHib>   
+    
+    <netRemoteCallHib name="getRoomTypes" funcname="conferenceservice.getRoomTypes" 
+		remotecontext="$once{ canvas.thishib }" >  
+		<netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+        <handler name="ondata" args="value">
+            //The onResult-Handler will be called be the rtmpconnection
+            if ($debug) Debug.write("getRoomTypes ",value);
+            canvas.roomTypesInitValues = value;
+            parent.setProgress();
+            parent.setUsernameAndSession.doCall();
+        </handler>  
+    </netRemoteCallHib>    	 
+	 
+    <netRemoteCallHib name="setUsernameAndSession" funcname="setUsernameAndSession" remotecontext="$once{ canvas.thishib }" >   
+        <netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+        <netparam><method name="getValue">return canvas.user_id;</method></netparam>
+        <netparam><method name="getValue">return canvas.currentuser;</method></netparam>
+        <netparam><method name="getValue">return canvas.firstName;</method></netparam>
+        <netparam><method name="getValue">return canvas.lastName;</method></netparam>      
+        <handler name="ondata" args="value">
+            //The onResult-Handler will be called be the rtmpconnection
+            if ($debug) Debug.write("setUsername: value, ",canvas.thishib.currentInvitation.room.roomtype.roomtypes_id);
+            clearStageContent();		
+            parent.close();
+            
+			if (canvas.thishib.currentInvitation.room.roomtype.roomtypes_id==1){
+				
+				new lz.testSetup(canvas,{isDirectLink:true,roomClassName:canvas.conferenceRoomModule,roomObj:canvas.thishib.currentInvitation.room});
+				
+			} else if (canvas.thishib.currentInvitation.room.roomtype.roomtypes_id==2){
+				
+				new lz.testSetup(canvas,{isDirectLink:true,roomClassName:canvas.restrictedRoomModule,roomObj:canvas.thishib.currentInvitation.room});
+				new lz.labelerrorPopup(canvas,{error:'No RoomType currently available for roomTypeId 2'});
+				
+			} else if (canvas.thishib.currentInvitation.room.roomtype.roomtypes_id==3){
+				
+				new lz.testSetup(canvas,{isDirectLink:true,roomClassName:canvas.restrictedRoomModule,roomObj:canvas.thishib.currentInvitation.room});
+				
+			} else if (canvas.thishib.currentInvitation.room.roomtype.roomtypes_id==4){
+                
+                new lz.testSetup(canvas,{isDirectLink:true,roomClassName:canvas.interviewRoomModule,roomObj:canvas.thishib.currentInvitation.room});
+                
+            } else if (canvas.thishib.currentInvitation.room.roomtype.roomtypes_id==5){
+                
+                new lz.testSetup(canvas,{isDirectLink:true,roomClassName:canvas.customRoomModule,roomObj:canvas.thishib.currentInvitation.room});
+                
+            }                 
+        </handler>  
+    </netRemoteCallHib>     
+          
+</class>
+
+</library>
diff --git a/WebContent/src/modules/invitation/invitationQuickLoader.lzx b/WebContent/src/modules/invitation/invitationQuickLoader.lzx
new file mode 100644
index 0000000..e70cf8b
--- /dev/null
+++ b/WebContent/src/modules/invitation/invitationQuickLoader.lzx
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	<!---
+	-->
+	<!-- label: data loading, please wait -->
+	<class name="invitationQuickLoader" extends="labelExplorerBox" labelid="230"
+			docking="true" resizeable="false" closable="false" width="324" 
+			x="$once{ canvas.width/2 - this.width/2 }" y="0" height="120">
+		 
+		<attribute name="userlang" value="1" type="number" />
+		
+		<handler name="oninit">
+			this.setRoomValues();
+			if (canvas.thishib.currentInvitation.passwordProtected){
+				if ($debug) Debug.write("Is Password Protected");
+				this.pass_label.setAttribute('visibility','visible');
+				this._password.setAttribute('visibility','visible');
+				this.invitation_pass.setAttribute('visibility','visible');
+			} else {
+				this.showLoginStep();
+                if ($debug) Debug.write("invitationQuickLoader:oninit userlang = [",userlang,"]; canvas.lang = [",canvas.language_id,"]");
+                if (canvas.language_id > 0) {
+                    this.isRoomFull.doCall();
+                } else {
+                    this.showLoginStep();
+                }
+			}
+		</handler>
+		
+		<method name="showLoginStep">
+			this.pass_label.setAttribute('visibility','hidden');
+			this._password.setAttribute('visibility','hidden');
+			this.invitation_pass.setAttribute('visibility','hidden');		
+			this.labellanguages.setAttribute('visibility','visible');
+			this.languages.setAttribute('visibility','visible');
+			this.connect.setAttribute('visibility','visible');
+		</method>
+		
+		<method name="checkPWD">
+			this.checkInvitationPass.doCall();
+		</method>
+		
+		<netRemoteCallHib name="isRoomFull" funcname="conferenceservice.isRoomFull" 
+							remotecontext="$once{ canvas.thishib }" activeErrorHandler="true" >  	
+        	<netparam name="pass"><method name="getValue">return canvas.thishib.currentInvitation.room.rooms_id;</method></netparam>
+        	<handler name="ondata" args="value">
+        		<![CDATA[
+            		//The onResult-Handler will be called be the rtmpconnection
+            		if ($debug) Debug.write(canvas.thishib.currentInvitation.room.rooms_id);
+					if ($debug) Debug.write("isRoomFull: ",value);
+					
+					if (value) {
+						new lz.labelerrorPopup(canvas,{errorlabelid:618});
+						parent.close();
+					} else {
+						parent.login();
+					}
+            	]]>
+        	</handler>   
+    	</netRemoteCallHib> 
+		
+		<netRemoteCallHib name="checkInvitationPass" funcname="invitationservice.checkInvitationPass" 
+							remotecontext="$once{ canvas.thishib }" activeErrorHandler="true" >  	
+	      	<netparam name="invitationHash"><method name="getValue">return canvas.invitationHash;</method></netparam>
+        	<netparam name="pass"><method name="getValue">return parent.parent._password.getText();</method></netparam>
+	        	
+        	<handler name="ondata" args="value">
+        		<![CDATA[
+            		//The onResult-Handler will be called be the rtmpconnection
+				if ($debug) Debug.write("checkInvitationPass : ",value);
+				if (value<0){
+				} else {
+					parent.showLoginStep();
+				}
+            ]]>
+        	</handler>   
+    	</netRemoteCallHib>  	
+	    
+		<method name="setRoomValues">
+			if (canvas.thishib.currentInvitation.room.roomtype.roomtypes_id==1){
+	    		canvas.isConference = true;
+	    	} else {
+	    		canvas.isConference = false;
+		    }
+	    	var roomObj = canvas.thishib.currentInvitation.room;
+        	hib.currentroomid = roomObj.rooms_id;
+        	
+		</method>
+		
+		<method name="login">
+			this.userlang = Number(this.languages.getValue());
+			this.labellanguages.setAttribute('visibility','hidden');
+			this.languages.setAttribute('visibility','hidden');
+			this.connect.setAttribute('visibility','hidden');
+			this.labelloading.setAttribute('visibility','visible');
+			
+			parent.userlang = Number(this.userlang);
+			
+			var invitee = canvas.thishib.currentInvitation.invitee;
+			var email = invitee.adresses.email;
+			var fName = invitee.firstname == null ? "" : invitee.firstname;
+			var lName = invitee.lastname == null ? email : invitee.lastname;
+			
+			canvas.setAttribute('currentuser', email);
+			canvas.setAttribute('user_id', -1);
+			canvas.setAttribute('firstName', fName);
+			canvas.setAttribute('lastName', lName);
+			canvas.setAttribute('mail', email);
+			canvas.setAttribute('lastLogin', invitee.lastlogin);
+			canvas.setAttribute('official_code','');
+			canvas.setAttribute('picture_uri', invitee.pictureuri);
+			canvas.setAttribute('language', invitee.language_id);
+			
+			hib.userobject = invitee;
+			hib.userobject.firstname = fName;
+			hib.userobject.lastname = lName;
+			
+			hib.userlang = Number(this.userlang);
+			canvas.thishib.loaderVar = new lz.autoloaderBarOnly(canvas);
+			canvas.thishib.loaderVar.setProgress();
+			this.close();
+			canvas.thishib.loaderVar.getLanguageByIdAndMax.doCall();         
+		</method>
+		 
+		<!-- label: password -->
+	    	<labelText name="pass_label" labelid="536" visibility="hidden" width="200" y="30" resize="false" x="10" />  
+		<customEdittext name="_password" password="true" visibility="hidden" width="170" y="30" x="120" />
+		
+		<!-- label: Check password -->
+	 	<simpleLabelButton name="invitation_pass" y="80" x="120" text="start" visibility="hidden" labelid="537"
+	 					   	width="170" height="20" onclick="parent.checkPWD();" />
+		
+		<!-- label: language -->
+		<labelText name="labellanguages" labelid="227" visibility="hidden" width="200" y="30" resize="false" x="10" />     
+		<resetCombobox name="languages" width="170" y="30" x="120" visibility="hidden" editable="false">
+	      	<netRemoteCallHib name="getLanguages" funcname="languageservice.getLanguages" remotecontext="$once{ canvas.thishib }" >      
+	            <handler name="oninit">
+                 	this.doCall();
+	            </handler>
+	            <handler name="ondata" args="value">
+	            	//The onResult-Handler will be called be the rtmpconnection
+                  	<![CDATA[
+                        var selVal = canvas.language_id;
+                        var found = false;
+                  		for (var i=0;i<value.length;i++){
+	                  		this.parent.addItem(value[i].name,value[i].language_id);
+                            if (value[i].language_id == selVal) {
+                                found = true;
+                            }
+		                }
+                		this.parent.selectItem((found) ? selVal : value[0].language_id);
+		            ]]>
+				</handler>  
+			</netRemoteCallHib>
+		</resetCombobox>		 
+
+		<!-- label: loading -->	
+		<labelText name="labelloading" y="30" x="10" fontstyle="bold" labelid="229" visibility="hidden" />
+		
+		<!-- label: enter -->
+		<simpleLabelButton name="connect" y="80" x="120" text="start" 
+						   visibility="hidden" labelid="228" width="170" height="20" 
+						   onclick="parent.isRoomFull.doCall();" />
+	</class>
+</library>
diff --git a/WebContent/src/modules/invitation/inviteMainWindow.lzx b/WebContent/src/modules/invitation/inviteMainWindow.lzx
new file mode 100644
index 0000000..bb31930
--- /dev/null
+++ b/WebContent/src/modules/invitation/inviteMainWindow.lzx
@@ -0,0 +1,333 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	<!---
+		This class shows a invitation window with clicking button which is located in video and audio panel.
+	-->
+	<!-- placeholder
+		label: send invitation
+	-->
+	<class name="inviteMainWindow" extends="labelExplorerBox" labelid="214" 
+			docking="true" closable="false" width="464" x="200" y="100" height="465">
+		
+		<attribute name="roomType" value="conference" type="string" />
+		<attribute name="baseUrl" value="http://www.denic.de" type="string" />
+		<attribute name="currentHash" value="" type="string" />
+		<attribute name="display" value="false" type="boolean" />
+		<attribute name="addTimezoneItemsDelegate" value="null"/>
+		<attribute name="firstname" value="null"/>
+		<attribute name="lastname" value="null"/>
+		<attribute name="email" value="null"/>
+    	
+		<handler name="oninit">
+		<![CDATA[
+    		this.setAttribute('visibility', 'hidden');
+			this.baseUrl = canvas.getAppBaseUrl();
+			if( $debug ) Debug.write("this.baseUrl: ", this.baseUrl);
+			if (addTimezoneItemsDelegate == null) {
+				addTimezoneItemsDelegate = new LzDelegate(this, "addTimezoneItems");
+				lz.Timer.addTimer(addTimezoneItemsDelegate, 2000);
+			}
+		]]>
+		</handler>
+		
+		<method name="addTimezoneItems" args="ignore=null">
+		<![CDATA[
+			var itemCount = _timeZone.cblist.getNumItems();
+			if ( itemCount < canvas.timeZones.length) {
+				for (var i = itemCount; i < Math.min(itemCount + 30, canvas.timeZones.length); ++i) {
+					_timeZone.addItem(canvas.timeZones[i], canvas.timeZones[i]);
+				}
+			} else {
+				lz.Timer.removeTimer(addTimezoneItemsDelegate);
+				addTimezoneItemsDelegate = null;
+			}
+			if ($debug) Debug.write(":: addTimezoneItems :: ", itemCount);
+			lz.Timer.resetTimer(addTimezoneItemsDelegate, 500);
+		]]>
+		</method>
+
+        <handler name="onvisible" args="v">
+    	<![CDATA[
+    		if (v) {
+			    this.setOffset(canvas.stdTimeOffset);
+				this._recipient.setAttribute('text', '');
+				this._message.setAttribute('text', '');
+				this._password.setAttribute('text', '');
+				this._ispasswordProtected.setValue(false);
+				this._timeFrom.setAttribute('text', getStringTime());
+				this._timeTo.setAttribute('text', getStringTime());
+				lz.ModeManager.makeModal(this);
+				if (!canvas.isConference){
+					this.roomType = "restricted"; //FIXME
+				}
+                for (var eg in this.subviews) {
+                    this.subviews[eg].setAttribute('enabled', true);
+                }
+                _password.setAttribute('enabled', _ispasswordProtected.value);
+                var period = _valid.value == 2;
+                _valid_from.setAttribute('enabled', period);
+                _timeFrom.setAttribute('enabled', period);
+                _valid_to.setAttribute('enabled', period);
+                _timeTo.setAttribute('enabled', period);
+                _timeZone.setAttribute('enabled', period);
+                _url.setAttribute('enabled', false);
+			} else {
+	    		lz.ModeManager.release(this);
+			}
+    	]]>
+	    </handler>
+        
+		<method name="setOffset" args="std_time_offset">
+		<![CDATA[
+			var std_time_offset = Math.round(std_time_offset);
+			var timeZoneJavaFormat = "Etc/GMT";
+			if (std_time_offset > 0) {
+				timeZoneJavaFormat += "+"+std_time_offset;
+			} else {
+				timeZoneJavaFormat += "-"+std_time_offset;
+			}
+			
+			if ($debug) Debug.write("timeZoneJavaFormat :: ",timeZoneJavaFormat);
+			
+			var tItem =  this._timeZone.getItem(timeZoneJavaFormat);
+			if (tItem != null) {
+				this._timeZone.selectItem(timeZoneJavaFormat);
+			} else {
+				this._timeZone.selectItemAt(0);
+			}
+			this._languages.selectItem(canvas.language_id);
+		]]>
+		</method> 
+		
+		<!-- label: recipient -->
+		<labelTextWidthTooltip name="_recepientLbl" y="24" width="120" labelid="216" labelLabelid="1597"  />
+		<customEdittext name="_recipient" width="340" x="120" y="22" regexpLabelid="1597">
+			<handler name="onblur">
+			<![CDATA[
+				var addr = parent.replaceAll(parent.replaceAll(getText(), "'", ""), "\"", "");
+				if ($debug) Debug.write("addr: ", addr);
+				var idx1 = addr.indexOf("<"), idx2 = addr.indexOf(">");
+				if (idx1 > -1 && idx2 > -1 && idx2 > idx1) {
+					parent.email = parent.trim(addr.substring(idx1 + 1, idx2));
+					var s = parent.trim(addr.substring(0, idx1));
+					var idx = s.indexOf(" ");
+					if (idx > -1) {
+						parent.firstname = s.substring(0, idx);
+						parent.lastname = s.substring(idx + 1);
+					} else {
+						parent.firstname = s;
+					}
+				} else {
+					parent.email = addr;
+				}
+				if ($debug) Debug.write("[first, last, email]: ", getText(), idx1, idx2, parent.firstname, parent.lastname, parent.email);
+				this.regExpCheckId = canvas.doRegExpCheck(parent.email, this.emailRegEx);
+				if(this.callDelegate == null) {
+					this.callDelegate = new LzDelegate(this, "checkRegExpResult");
+				}
+				lz.Timer.resetTimer(this.callDelegate, 50);
+			]]>
+			</handler>
+			<handler name="onafterCheck">
+				if (!isvalidInput) {
+					this.setAttribute('text', "");
+					parent.email = null;
+					parent.firstname = null;
+					parent.lastname = null;
+				}
+			</handler>
+		</customEdittext>
+		
+		<method name="trim" args="s">
+		<![CDATA[
+			var str = "" + s, begin = 0, end = str.length - 1;
+			while (begin <= end && str.charCodeAt(begin) == 32) { ++begin; }
+			while (end > begin && str.charCodeAt(end) == 32) { --end; }
+			return str.substr(begin, end - begin + 1);
+		]]>
+		</method>
+		
+		<method name="replaceAll" args="s,f,r">
+		<![CDATA[
+			var str = s;
+			while (str.indexOf(f) > -1) { str = str.replace(f, r); }
+			return str;
+		]]>
+		</method>
+	
+		<!-- label: subject -->
+		<labelText labelid="215" y="52" width="120" />
+		<customEdittext name="_subject" labelid="532" width="340" enabled="false" x="120" y="52" />	
+		
+		<!-- label: message -->
+		<labelText labelid="217" y="82" width="120" />
+		<!--
+		<customEdittext name="_message" width="340" x="120" y="82" height="100" 
+						multiline="true" />
+		 -->
+		<customScrollEdittext name="_message" width="340" x="120" y="82" height="100" />	
+		
+							  
+		<!-- label: password protected -->
+		<labelCheckbox name="_ispasswordProtected" y="192" fontsize="11" x="4" labelid="524"  />
+			
+		<!-- label: password -->
+		<labelText labelid="525" y="220" x="4" fgcolor="${ ((!parent._ispasswordProtected.value) ? 0xCCCCCC : 0x000000 ) }" />
+		<customEdittext name="_password" enabled="${ parent._ispasswordProtected.value }" password="true"
+						width="340" x="120" y="218" />
+		
+		<!-- label: validity period -->
+		<labelText labelid="526" y="252" width="120" />
+	
+		<radiogroup name="_valid" x="120" y="256" layout="class:simplelayout; axis:x">
+			<!-- label: endless -->
+	            <labelRadioButton value="1" labelid="527" fontsize="11" />
+			<!-- label: period -->
+	            <labelRadioButton value="2" labelid="528" fontsize="11" />
+			<!-- label: one-time -->
+	        	<labelRadioButton value="3" labelid="529" fontsize="11" />
+		</radiogroup>
+
+		<!-- label: valid from -->		
+		<labelText x="4" labelid="530" y="284" fgcolor="${ ((parent._valid.value==2) ? 0x000000 : 0xCCCCCC ) }" />
+		<dateField x="120" y="282" name="_valid_from" setDefaultToday="true" enabled="${ parent._valid.value == 2 }" />
+		<customEdittext name="_timeFrom" enabled="${ parent._valid.value == 2 }"
+					width="50" x="232" y="282" text="$once{ getStringTime() }" regexpType="time" />	   
+		
+		<!-- label: valid to -->			
+		<labelText x="4" labelid="531" y="314" fgcolor="${ ((parent._valid.value==2) ? 0x000000 : 0xCCCCCC ) }" />
+		<dateField x="120" y="314" name="_valid_to" setDefaultToday="true" additionalDay="1" enabled="${ (parent._valid.value == 2) }" />		
+		<customEdittext name="_timeTo" enabled="${ parent._valid.value == 2 }"
+						width="50" x="232" y="314" text="$once{ getStringTime() }" regexpType="time" />				   
+
+		<labelText labelid="1143" width="200" y="344" fgcolor="${ ((parent._valid.value==2) ? 0x000000 : 0xCCCCCC ) }"  x="4" />
+		<resetCombobox name="_timeZone" editable="false" y="344" width="270" x="120"
+				enabled="${ parent._valid.value == 2 }" fontsize="11" style="componentStyle"/>
+         
+		<labelText labelid="59" width="200" y="374" x="4" />
+        <resetCombobox name="_languages" editable="false" y="374" width="270" x="120" fontsize="11" style="componentStyle">
+            <labeldTextListItem datapath="languagesSet:/item" text="$path{ 'name/text()' }" value="$path{ 'language_id/text()' }"/>
+        </resetCombobox>
+
+		<customEdittext name="_url" enabled="false" width="$once{ parent.width - 10 }" x="5" y="405" text=""/>
+		
+		<simpleLabelButton name="generate" labelid="1526" x="$once{ parent.width-440 }" width="170" y="$once{ parent.height-26 }">
+			<handler name="onclick">
+			<![CDATA[
+				if (parent.email == null) {
+					new lz.errorPopup(canvas.main_content._content.inner,{error:canvas.getLabelName(519)});
+					return;
+				}
+        		parent.display = true;
+				parent.sendInvitationHash.doCall();
+			]]>
+			</handler>
+		</simpleLabelButton>
+		
+        <!-- label: send -->
+		<simpleLabelButton name="send" labelid="218" x="$once{ parent.width-260 }" width="120" y="$once{ parent.height-26 }">
+			<handler name="onclick">
+			<![CDATA[
+				if (parent.email == null) {
+					new lz.errorPopup(canvas.main_content._content.inner,{error:canvas.getLabelName(519)});
+					return;
+				}
+                for (var eg in this.parent.subviews) {
+                    this.parent.subviews[eg].setAttribute('enabled', false);
+                }
+                if (parent.display) {
+                    parent.sendInvitationByHash.doCall();
+                } else {
+                    parent.sendInvitationHash.doCall();
+                }
+				]]>
+			</handler>
+		</simpleLabelButton>
+	
+		<!-- label: cancel -->
+		<simpleLabelButton labelid="219" x="$once{ parent.width-130 }" width="120" y="$once{ parent.height-26 }">
+			<handler name="onclick">
+	    		parent.setAttribute('visibility', 'hidden');
+			</handler>
+		</simpleLabelButton>
+	   
+		<netRemoteCallHib name="sendInvitationByHash" funcname="invitationservice.sendInvitationByHash" remotecontext="$once{ canvas.thishib }" >
+			<netparam name="SID"><method name="getValue">return canvas.sessionId;</method></netparam>
+			<netparam name="invitationHash"><method name="getValue">return this.parent.parent.currentHash;</method></netparam>
+			<netparam name="message"><method name="getValue">return this.parent.parent._message.getText();</method></netparam>
+			<netparam name="subject"><method name="getValue">return this.parent.parent._subject.getText();</method></netparam>
+			<netparam name="language_id"><method name="getValue">return parent.parent._languages.getValue();</method></netparam>
+			<handler name="ondata" args="value">
+			<![CDATA[
+				if (value != null) {
+		    		parent.setAttribute('visibility', 'hidden');
+				} else {
+					new lz.errorPopup(canvas.main_content._content.inner,{error:value});
+				}
+			]]>
+			</handler>   
+		</netRemoteCallHib>
+			
+		<netRemoteCallHib name="sendInvitationHash" funcname="invitationservice.sendInvitationHash" remotecontext="$once{ canvas.thishib }" >
+			<netparam name="sid"><method name="getValue">return canvas.sessionId;</method></netparam>
+			<netparam name="firstname"><method name="getValue">return parent.parent.firstname</method></netparam>
+			<netparam name="lastname"><method name="getValue">return parent.parent.lastname</method></netparam>
+			<netparam name="message"><method name="getValue">return this.parent.parent._message.getText();</method></netparam>
+			<netparam name="email"><method name="getValue">return parent.parent.email;</method></netparam>
+			<netparam name="subject"><method name="getValue">return this.parent.parent._subject.getText();</method></netparam>
+			<netparam name="roomid"><method name="getValue">return hib.currentroomid;</method></netparam>
+			<netparam name="conferencedomain"><method name="getValue">return hib.conferencedomain;</method></netparam>
+			<netparam name="ispasswordProtected"><method name="getValue">return parent.parent._ispasswordProtected.value;</method></netparam>
+			<netparam name="password"><method name="getValue">return parent.parent._password.getText();</method></netparam>
+			<netparam name="valid"><method name="getValue">return parent.parent._valid.value;</method></netparam>
+			<netparam name="validFromDate"><method name="getValue">return parent.parent._valid_from.getDate();</method></netparam>
+			<netparam name="validFromTime"><method name="getValue">return parent.parent._timeFrom.getText();</method></netparam>
+			<netparam name="validToDate"><method name="getValue">return parent.parent._valid_to.getDate();</method></netparam>
+			<netparam name="validToTime"><method name="getValue">return parent.parent._timeTo.getText();</method></netparam>
+			<netparam name="language_id"><method name="getValue">return parent.parent._languages.getValue();</method></netparam>
+			<netparam name="jNameTimeZone"><method name="getValue">return parent.parent._timeZone.getValue();</method></netparam>
+			<netparam name="sendMail"><method name="getValue">return !parent.parent.display;</method></netparam>
+			
+			<handler name="ondata" args="value">
+			<![CDATA[
+				//The onResult-Handler will be called be the rtmpconnection
+				if ($debug) Debug.write("sendInvitationHash : ",value);
+				if ($debug) Debug.write("sendInvitationHash : ", (typeof value));
+				if (typeof value == "object") {
+					if (parent.display) {
+						parent.send.setAttribute('enabled', true);
+						parent._message.setAttribute('enabled', true);
+						parent._subject.setAttribute('enabled', true);
+						parent._languages.setAttribute('enabled', true);
+						parent.currentHash = value.hash;
+						parent._url.setAttribute('text', parent.baseUrl + "?invitationHash=" + parent.currentHash + "&language=" + parent._languages.getValue());
+					} else {
+			    		parent.setAttribute('visibility', 'hidden');
+					}
+				} else {
+					new lz.errorPopup(canvas.main_content._content.inner,{error:value});
+				}
+			]]>
+			</handler>
+		</netRemoteCallHib>
+	</class>
+</library>
diff --git a/WebContent/src/modules/invitation/library.lzx b/WebContent/src/modules/invitation/library.lzx
new file mode 100644
index 0000000..df5c4ee
--- /dev/null
+++ b/WebContent/src/modules/invitation/library.lzx
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+    <include href="autoloaderBarOnly.lzx" />
+	<include href="invitationQuickLoader.lzx" />
+	<include href="inviteMainWindow.lzx" />
+
+</library>
diff --git a/WebContent/src/modules/library.lzx b/WebContent/src/modules/library.lzx
new file mode 100644
index 0000000..58d2999
--- /dev/null
+++ b/WebContent/src/modules/library.lzx
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+	<include href="conference/" />
+	<include href="chat/" />
+	<include href="settings/" />
+	<include href="invitation/" />
+	<include href="dashboard/" />
+	<include href="meetings/" />
+    <include href="sipintegration/" />
+
+</library>
diff --git a/WebContent/src/modules/meetings/allmeetings.lzx b/WebContent/src/modules/meetings/allmeetings.lzx
new file mode 100644
index 0000000..85b3145
--- /dev/null
+++ b/WebContent/src/modules/meetings/allmeetings.lzx
@@ -0,0 +1,340 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="allmeetings" extends="baseContentView" height="${ canvas.height-canvas.naviHeight }">
+	<attribute name="finishedTabsQuantity" type="number" value="0"/>	
+	<attribute name="clickedButton" value="null"/>
+	<attribute name="params" value="" type="string" />
+    
+	<method name="updateFinishedTabsQuantity">
+		this.finishedTabsQuantity = this.finishedTabsQuantity + 1;
+
+		if (this.finishedTabsQuantity == 3) {
+			if (clickedButton != null) {
+				lz.Cursor.unlock();
+
+				clickedButton.onclick.sendEvent();
+			}
+		}
+	</method>
+	
+	<handler name="oninit">
+		_mainScrollBar.setAttribute("visibility","hidden");
+		switch (this.params) {
+			case "publicTabButton":
+				doSelection(this._tabbar.publicTabButton);
+				break;
+			case "privateTabButton":
+				doSelection(this._tabbar.privateTabButton);
+				break;
+			case "myTabButton":
+				doSelection(this._tabbar.myTabButton);
+				break;
+		}
+	</handler>
+	
+	<handler name="ontabcontentleave">
+		_mainScrollBar.setAttribute("visibility","visible");
+	</handler>
+    
+    <attribute name="refObjItem" value="null" />
+    
+    <method name="doSelection" args="objRef">
+    	if (this.refObjItem != null) {
+    		this.refObjItem.deselect();
+    	}
+    	this.refObjItem = objRef;
+    	
+    	switch (this.refObjItem.name) {
+    		case "publicTabButton":
+	    		this._conferences.PublicMeetings.setAttribute("visibility","visible");
+	    		this._conferences.PrivateMeetings.setAttribute("visibility","hidden");
+	    		this._conferences.MyMeetings.setAttribute("visibility","hidden");
+	    		break;
+	    	case "privateTabButton":
+	    		this._conferences.PublicMeetings.setAttribute("visibility","hidden");
+	    		this._conferences.PrivateMeetings.setAttribute("visibility","visible");
+	    		this._conferences.MyMeetings.setAttribute("visibility","hidden");
+	    		break;
+	    	case "myTabButton":
+	    		this._conferences.PublicMeetings.setAttribute("visibility","hidden");
+	    		this._conferences.PrivateMeetings.setAttribute("visibility","hidden");
+	    		this._conferences.MyMeetings.setAttribute("visibility","visible");
+	    		break;
+    	}
+    	
+    	this.refObjItem.select();
+    </method>
+    
+   	<view name="_tabbarBg" width="${ parent.width }" height="32" y="1" bgcolor="0xFAFAFA" />
+   	
+	<view name="borderBarBottom" y="34"
+   			width="${ parent.width }" bgcolor="$once{ canvas.getThemeColor('mainBorderColor') }" height="1" />  
+      
+	<view name="_tabbar" width="${ canvas.width }" y="1" height="32"
+  		  layout="axis:x;spacing:2;inset:2" >
+  		  	
+	 	<handler name="oninit">
+	   		for (var eg in this.subviews) {
+           		this.subviews[eg].deselect();
+            }
+            this.publicTabButton.select();
+	   	</handler>
+		
+		<tabButtonMain name="publicTabButton" selected="true" height="$once{ parent.height }" 
+        		currentIconRsc="icon_btn_rooms_conference" x="0" labelid="777" width="${ (parent.width-6)/3 }"/>
+		
+		<tabButtonMain name="privateTabButton" width="${ (parent.width-6)/3 }" height="$once{ parent.height }" 
+        		 currentIconRsc="icon_btn_rooms_conference" labelid="779" />
+        		
+        <tabButtonMain name="myTabButton" width="${ (parent.width-6)/3 }" height="$once{ parent.height }" 
+        		currentIconRsc="icon_btn_rooms_conference" labelid="781" />
+		
+	</view>
+	
+	<!-- public rooms -->
+	<view name="_conferences" height="${ parent.height-40 }" y="40">
+		<view name="PublicMeetings" height="${ parent.height }">
+			
+			<image x="10" src="$once{ canvas.getThemeImage('info_text_icon_rsc') }" />
+			
+			<labelText labelid="778" x="30" width="400" multiline="true" />
+			
+			<view y="40" height="${ parent.height-40 }">
+		    
+				<netRemoteCallHib name="removeClientFromChatNotification" funcname="chatservice.removeClientFromChatNotification"	
+					remotecontext="$once{ canvas.thishib }" >      
+					<handler name="ondata" args="value">
+						if ($debug) Debug.write("removeClientFromChatNotification: ",value);
+						this.parent.destroy();
+					</handler>
+				</netRemoteCallHib>
+    
+	  
+				<view y="4" x="4" height="${ parent.height-4 }">
+					
+					<handler name="oninit">
+						canvas.thishib.roomtype = "public";
+						this.getRoomsPublicWithoutType.doCall();
+					</handler>
+	        
+					<netRemoteCallHib name="getRoomsPublicWithoutType" funcname="conferenceservice.getRoomsPublicWithoutType" 
+						remotecontext="$once{ canvas.thishib }" >   
+						<netparam><method name="getValue">return canvas.sessionId;</method></netparam>  
+						<handler name="ondata" args="value">	
+							<![CDATA[
+								if ($debug) Debug.write("getRoomsPublicWithoutType: ", value);
+								if (value != null) {
+									for (var eg = 0; eg < value.length; eg++) {
+										var time = value[eg].starttime.getHours()
+												+ ':' + value[eg].starttime.getMinutes()
+												+ ' ' + value[eg].starttime.getDate()
+												+ '.' + (value[eg].starttime.getMonth() + 1)
+												+ '.' + value[eg].starttime.getFullYear();
+												
+										new lz.roomListItem(parent.inn.inn.inn,
+												{
+													roomType:value[eg].roomtype.roomtypes_id,
+													currentusers : value[eg].currentusers,
+													obj : value[eg],
+													ispublic : true,
+													roomid : value[eg].rooms_id,
+													starttime : time,
+													roomname : value[eg].name,
+													roomcomment : value[eg].comment
+												});
+									}
+								}
+								parent.parent.parent.parent.parent.updateFinishedTabsQuantity();
+							]]>	        	          				
+						</handler>	
+					</netRemoteCallHib>
+
+					<!-- inn.inn.inn view would be setted object by above ondata hander. -->
+					<view name="inn" width="480" height="${ parent.height }" 
+									bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }">
+						<view name="inn" x="1" y="1" width="479" height="${ parent.height-1 }" 
+							  		bgcolor="0xFFFFFF" clip="true" >
+							<view name="inn" layout="axis:y;spacing:1"/>
+							<om_vscrollbar />
+						</view>
+					</view>
+				</view>
+				<!-- description panel for eache room. right hand on this class view.
+						roomListDetails class are declared in modules/conference/conference/roomListDetails.lzx.
+							Mar 24 2008 commented by onokeiji@gmal.com
+					 -->
+				<roomListDetails x="510" y="4" name="_roomlistdetails" height="${ parent.height-4 }" />
+			</view>
+		</view>
+	
+	
+		<!-- private Meetings -->	
+		<view name="PrivateMeetings" visibility="hidden" height="${ parent.height }">
+			
+			<image x="10" src="$once{ canvas.getThemeImage('info_text_icon_rsc') }" />
+			
+			<labelText labelid="780" x="30" width="400" multiline="true" />
+				
+			<view y="40" height="${ parent.height-40 }">
+			
+				<!-- Declared conference rooms list -->
+				<view y="4" x="4" height="${ parent.height-4 }">
+					<handler name="oninit">
+						canvas.thishib.roomtype = "private";
+						this.getRoomsByOrganisationWithoutType.doCall();
+					</handler>    
+	        
+					<netRemoteCallHib name="getRoomsByOrganisationWithoutType" funcname="conferenceservice.getRoomsByOrganisationWithoutType" remotecontext="$once{ canvas.thishib }" >   
+						<netparam><method name="getValue">return canvas.sessionId;</method></netparam>  
+						<netparam><method name="getValue">return hib.currentdomainObj.organisation_id;</method></netparam>  
+						<handler name="ondata" args="value">	
+						<![CDATA[
+                            if ($debug) Debug.write("getRoomsByOrganisationWithoutType ",value);
+							if (value != null) {
+								for (var eg = 0; eg < value.length; eg++) {
+									new lz.roomListItem(parent.inn.inn.inn,{
+												roomType:value[eg].room.roomtype.roomtypes_id,
+												currentusers : value[eg].room.currentusers,
+												obj : value[eg],
+												ispublic : false,
+												roomid : value[eg].room.rooms_id,
+												starttime : parseDateToStringTime(value[eg].room.starttime),
+												roomname : value[eg].room.name,
+												roomcomment : value[eg].room.comment
+											});
+								}
+							}
+
+							parent.parent.parent.parent.parent
+									.updateFinishedTabsQuantity();
+						]]>	        	          				
+						</handler>	
+					</netRemoteCallHib> 
+	 
+					<!-- inn.inn.inn view would be setted object by above ondata hander. -->
+					<view name="inn" width="480" height="${ parent.height }" 
+									bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }">
+						<view name="inn" x="1" y="1" width="479" height="${ parent.height-1 }" bgcolor="0xFFFFFF" clip="true" >
+							<view name="inn" layout="axis:y;spacing:1"/>
+							<om_vscrollbar />
+						</view>
+					</view>
+				</view>
+	
+				<!-- description panel for eache room. right hand on this class view.
+						roomListDetails class are declared in modules/conference/conference/roomListDetails.lzx.
+							Mar 24 2008 commented by onokeiji@gmal.com
+					 -->
+				<roomListDetails x="510" y="4" name="_roomlistdetails" height="${ parent.height-4 }" />
+			</view>
+  			
+		</view>
+		
+		<!-- Appointed Meetings -->
+		<view name="MyMeetings" visibility="hidden" height="${ parent.height }">
+			
+			<image x="10" src="$once{ canvas.getThemeImage('info_text_icon_rsc') }" />
+			
+			<labelText labelid="782" x="30" width="400" multiline="true" />
+			
+			<!-- Declared conference rooms list -->
+			<view y="60" height="${ parent.height-60 }">
+				
+				<handler name="oninit">
+					canvas.thishib.roomtype = "public";
+					
+                    new lz.roomListItem(this.inn.inn.inn,{
+                                                roomType:1,
+                                                ispublic:true,
+                                                roomname : canvas.getLabelName(1306)
+                                            });
+
+                    new lz.roomListItem(this.inn.inn.inn,{
+                                                roomType:3,
+                                                ispublic:true,
+                                                roomname : canvas.getLabelName(1307)
+                                            });
+                        
+					this.getAppointedMeetingRoomsWithoutType.doCall();
+				</handler>    
+	        
+				<netRemoteCallHib name="getAppointedMeetingRoomsWithoutType" funcname="conferenceservice.getAppointedMeetingRoomsWithoutType" remotecontext="$once{ canvas.thishib }" >   
+					<netparam><method name="getValue">return canvas.sessionId;</method></netparam>  
+					<handler name="ondata" args="value">	
+						<![CDATA[
+							if ($debug) Debug.write("getRoomsPublic: ", value);
+							if (value != null) {
+								for (var eg = 0; eg < value.length; eg++) {
+									var time = value[eg].starttime.getHours()
+											+ ':'
+											+ value[eg].starttime.getMinutes()
+											+ ' '
+											+ value[eg].starttime.getDate()
+											+ '.'
+											+ (value[eg].starttime.getMonth() + 1)
+											+ '.'
+											+ value[eg].starttime.getFullYear();
+									new lz.roomListItem(parent.inn.inn.inn, 
+										   {
+										        roomType:value[eg].roomtype.roomtypes_id,
+												currentusers : value[eg].currentusers,
+												obj : value[eg],
+												ispublic : true,
+												roomid : value[eg].rooms_id,
+												starttime : time,
+												roomname : value[eg].name
+											});
+								}
+	
+								
+							}
+							
+							parent.parent.parent.parent.updateFinishedTabsQuantity();
+						]]>		        	          				
+					</handler>	
+				</netRemoteCallHib> 
+	 
+				<!-- inn.inn.inn view would be setted object by above ondata hander. -->
+				<view name="inn" width="480" height="${ parent.height }" 
+								bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }">
+					<view name="inn" x="1" y="1" width="479" height="${ parent.height-1 }" bgcolor="0xFFFFFF" clip="true" >
+						<view name="inn" layout="axis:y;spacing:1"/>
+						<om_vscrollbar />
+					</view>
+				</view>
+			</view>
+	
+			<!-- description panel for eache room. right hand on this class view.
+					roomListDetails class are declared in modules/conference/conference/roomListDetails.lzx.
+						Mar 24 2008 commented by onokeiji@gmal.com
+				 -->
+			<roomListDetails x="510" y="4" name="_roomlistdetails" height="${ parent.height-4 }" />
+			
+		</view>
+		
+	</view>
+	
+</class>
+
+
+</library>
diff --git a/WebContent/src/modules/meetings/library.lzx b/WebContent/src/modules/meetings/library.lzx
new file mode 100644
index 0000000..22103e7
--- /dev/null
+++ b/WebContent/src/modules/meetings/library.lzx
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+    <include href="allmeetings.lzx" />
+
+</library>
diff --git a/WebContent/src/modules/settings/library.lzx b/WebContent/src/modules/settings/library.lzx
new file mode 100644
index 0000000..3b48897
--- /dev/null
+++ b/WebContent/src/modules/settings/library.lzx
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+	<!-- APL Author sebawagner -->
+	<resource name="image_loading_placeholder_rsc" 
+			  src="resources/loading_symbol.swf" />
+	
+	<!-- APL Author sebawagner -->
+	<resource name="private_message_select_part_rsc" 
+			  src="resources/select_part.png" />	
+		
+	<!-- FamFam Icon Set -->
+	<resource name="private_message_send_rsc" 
+			  src="resources/email_go.png" />	 
+		
+	<!-- FamFam Icon Set -->
+	<resource name="private_message_add_rsc" 
+			  src="resources/email_add.png" />	
+		
+	<!-- FamFam Icon Set -->	  
+	<resource name="private_message_trash_rsc" 
+			  src="resources/email_delete.png" />	
+	
+	<!-- FamFam Icon Set -->
+	<resource name="private_message_folder_add_rsc" 
+			  src="resources/folder_add.png" />		
+	
+	<!-- FamFam Icon Set -->	  
+	<resource name="private_message_folder_rsc" 
+			  src="resources/folder.png" />	
+		
+	<!-- FamFam Icon Set -->	  
+	<resource name="private_message_inbox_rsc" 
+			  src="resources/basket_put.png" />	
+		
+	<!-- FamFam Icon Set -->	  
+	<resource name="user_contact_calendar_add_rsc" 
+              src="resources/calendar_add.png" />  
+	
+	<!-- FamFam Icon Set -->		  
+	<resource name="user_contact_calendar_delete_rsc" 
+              src="resources/calendar_delete.png" /> 
+      
+    <!-- FamFam Icon Set -->	        
+    <resource name="user_contact_calendar_system_undo_rsc" 
+              src="resources/arrow_undo.png" />   
+   
+    <include href="privatemessages/" />
+    <include href="usercontacts/" />
+    
+    <include href="viewUserProfile.lzx" />
+
+</library>
diff --git a/WebContent/src/modules/settings/privatemessages/library.lzx b/WebContent/src/modules/settings/privatemessages/library.lzx
new file mode 100644
index 0000000..c8cf80f
--- /dev/null
+++ b/WebContent/src/modules/settings/privatemessages/library.lzx
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+    <include href="newPrivateMessage.lzx" />
+
+</library>
diff --git a/WebContent/src/modules/settings/privatemessages/newPrivateMessage.lzx b/WebContent/src/modules/settings/privatemessages/newPrivateMessage.lzx
new file mode 100644
index 0000000..1fdd176
--- /dev/null
+++ b/WebContent/src/modules/settings/privatemessages/newPrivateMessage.lzx
@@ -0,0 +1,467 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<class name="newPrivateMessage" extends="guiPresenter" labelid="1209" isdragable="false" 
+    minimizable="false" maximizable="false" fullToolBar="true" 
+    resizeable="false" width="250" height="154" >
+	
+	<attribute name="refObj" value="null"/>
+	
+	<attribute name="userObject" value="null" />
+	
+	<attribute name="user_id" value="0" type="number"/>
+	
+	<attribute name="parentMessageId" value="0" type="number" />
+	
+	<attribute name="receipents" value="null" />
+	
+	<attribute name="saveRefObj" value="null" />
+	
+	<handler name="oninit">
+		<![CDATA[
+			if (this.userObject != null) {
+				
+				var tString = this.userObject.firstname + ' ' + this.userObject.lastname  + ' ' 
+							+ '<' + this.userObject.adresses.email + '>';
+				
+				this._to.sendUpdateText = false;
+				this._to.setAttribute("text",tString);
+				this._to.sendUpdateText = true;
+			} else if (this.user_id != 0) {
+				this.getUserById.doCall();
+			}
+		]]>
+	</handler>
+	
+	<netRemoteCallHib name="getUserById" funcname="userservice.getUserById" 
+        remotecontext="$once{ canvas.thishib }" > 
+        <netparam><method name="getValue"> return canvas.sessionId; </method></netparam>
+        <netparam><method name="getValue">return parent.parent.user_id;</method></netparam>
+        <handler name="ondata" args="value">
+        	<![CDATA[
+            if($debug) Debug.write("[admin]userValueForm/getUserById: ",value.lastname);
+            parent.userObject = value;
+            var tString = value.firstname + ' ' + value.lastname  + ' ' 
+                            + '<' + value.adresses.email + '>';
+                
+            parent._to.sendUpdateText = false;
+            parent._to.setAttribute("text",tString);
+            parent._to.sendUpdateText = true;
+            ]]>
+        </handler>
+    </netRemoteCallHib>
+	
+	<handler name="onclose">
+		if (this.refObj != null) {
+		    this.refObj.newMessageActive = false;
+		}
+	</handler>
+	
+	<method name="send">
+		<![CDATA[
+		
+			var tAString = this._to.getText().split(",");
+			
+			this.receipents = new Array();
+			
+			for (var i=0;i<tAString.length;i++) {
+				
+				var sString = tAString[i];
+				
+				var t1 = sString.indexOf("<");
+				var t2 = sString.indexOf(">");
+				
+				if ($debug) Debug.write("++ ",i,sString,t1,t2);
+				
+				var email = sString;
+				if (t1 > -1 && t2 > -1) {
+					email = sString.substring(t1 + 1, t2);
+				}
+				
+				if ($debug) Debug.write("++ ",email);
+				
+				this.receipents.push(email);
+				
+			}
+			
+			if ($debug) Debug.write("receipents :: ",this.receipents);
+			if ($debug) Debug.write("receipents :: ",this._richText.getText());
+		
+			this.composeMail.doCall();
+		]]>
+	</method>
+	
+	<!--
+	public Long composeMail(String SID, Map receipents, String subject, String message, Boolean bookedRoom, 
+    		Date validFromDate, String validFromTime, Date validToDate, String validToTime,
+    		Long parentMessageId, Long roomtype_id)
+	 -->
+	<netRemoteCallHib name="composeMail" funcname="userservice.composeMail" remotecontext="$once{ canvas.thishib }" >    
+    		
+    		<netparam><method name="getValue">return canvas.sessionId;</method></netparam>
+		    <netparam><method name="getValue">return parent.parent.receipents</method></netparam>
+            <netparam><method name="getValue">return this.parent.parent._subject.getText();</method></netparam>
+            <netparam><method name="getValue">return parent.parent._richText.getText();</method></netparam>
+            <netparam><method name="getValue">return this.parent.parent._bookRoom.getValue();</method></netparam>
+            <netparam><method name="getValue">return parseDateToStringTimeSeconds(parent.parent._valid_from.getDate());</method></netparam>
+            <netparam><method name="getValue">return parent.parent._timeFrom.getText();</method></netparam>
+            <netparam><method name="getValue">return parseDateToStringTimeSeconds(parent.parent._valid_to.getDate());</method></netparam>
+            <netparam><method name="getValue">return parent.parent._timeTo.getText();</method></netparam>
+            <netparam><method name="getValue">return parent.parent.parentMessageId;</method></netparam>
+            <netparam><method name="getValue">return Number(parent.parent._roomtype.getValue());</method></netparam>
+            <!--String domain, String port, String webapp-->
+            <netparam><method name="getValue"> return canvas.getHttpHost(); </method></netparam>
+            <netparam><method name="getValue"> return canvas.red5httpport; </method></netparam>
+            <netparam><method name="getValue"> return canvas.httpRootKey; </method></netparam>
+            <handler name="ondata" args="value">
+            	<![CDATA[
+                	//The onResult-Handler will be called be the rtmpconnection
+			if ($debug) Debug.write("composeMail : ",value);
+			if (parent.saveRefObj != null) {
+				parent.saveRefObj.saveNotification(parent._bookRoom.getValue());
+			}
+			parent.close();
+           ]]>
+		</handler>   
+	</netRemoteCallHib>	
+	
+	<labelText name="_labelTo" x="2" labelid="1210" y="24"/>
+	
+	<customScrollEdittext name="_to" y="22" x="80" width="$once{ parent.width-82 }" 
+						  text="" height="60">
+		
+		<attribute name="sendUpdateText" value="true" type="boolean"/>
+		<attribute name="sendSingleUpdateText" value="true" type="boolean"/>
+		
+		<handler name="oninit">
+			this.closeDelegate = new LzDelegate( this, "onblurFunction" );
+			this._list.refObj = this;
+			this._list.setAttribute("width",this.width);
+		</handler>
+		
+		<handler name="ontextChange" args="t">
+			<![CDATA[
+				if ($debug) Debug.write("-- ontextChange ",this.sendUpdateText,t);
+				
+				if (!this.sendUpdateText) {
+					return;
+				}
+				
+				var tAString = t.split(",");
+				
+				var tString = tAString[tAString.length-1];
+				
+				if ($debug) Debug.write("-1- tString ",tString);
+				
+				tString = tString.split(' ').join('');
+				
+				if ($debug) Debug.write("-2- tString ",tString);
+				
+				if (tString != "") {
+					
+					this.startSearch(tString);
+					
+				}
+				
+			]]>
+		</handler>
+		
+		<method name="addText" args="txt">
+			<![CDATA[
+			
+				if ($debug) Debug.write("-- addText ",txt);
+				
+				var t = this.getText();
+				var tAString = t.split(",");
+				
+				var nString = "";
+				
+				if ($debug) Debug.write("-- tAString.length ",tAString.length);
+				
+				for (var i=0; i<tAString.length-1; i++) {
+					if (i!=0) {
+						nString += ", ";
+					}
+					nString += tAString[i];
+					if ($debug) Debug.write("-- nString 1 ",nString);
+				}
+				
+				if ($debug) Debug.write("-- nString 2 ",nString);
+				
+				if (nString != "") {
+					nString += ", "
+				}
+				
+				nString += txt;
+				
+				if ($debug) Debug.write("-- nString 3 ",nString);
+				
+				this.sendUpdateText = false;
+				this.setAttribute("text",nString);
+				this.sendUpdateText = true;
+			
+			]]>
+		</method>
+		
+		<handler name="onblur">
+			<![CDATA[
+			
+				if (!this.sendUpdateText) {
+					return;
+				}
+				
+				lz.Timer.addTimer( this.closeDelegate, 10 );
+				
+			]]>
+		</handler>				
+				
+		<method name="onblurFunction" args="refObj" >
+			<![CDATA[
+				if ($debug) Debug.write("-- onblur");
+				
+				if (!this.sendSingleUpdateText) {
+					this.sendSingleUpdateText = true;
+					return;
+				}
+				
+				if (this._list.visibility == "visible") {
+					this._list.setAttribute("visibility","hidden");
+				}
+				
+				var t = this.getText();
+				var tAString = t.split(", ");
+				
+				var lastString = tAString[tAString.length-1];
+				
+				var lastChar = lastString.charAt(lastString.length-1);
+
+				if (lastChar != ">") {
+					var nString = "";
+					
+					for (var i=0;i<tAString.length-1;i++) {
+						if (i!=0) {
+							nString += ",";
+						}
+						nString += tAString[i];
+					}
+					
+					this.sendUpdateText = false;
+					this.setAttribute("text",nString);
+					this.sendUpdateText = true;
+					
+				}
+				
+			]]>
+		</method>
+		
+		<method name="startSearch" args="tString">
+			<![CDATA[
+			
+				if ($debug) Debug.write("startSearch :: ",tString);
+				var tResultA = new Array();
+				
+				for (var i=0; i<canvas.userContacts.length; i++) {
+					
+					if (canvas.userContacts[i].contact.firstname.startsWith(tString) 
+						|| canvas.userContacts[i].contact.lastname.startsWith(tString) 
+						|| canvas.userContacts[i].contact.adresses.email.startsWith(tString) ) {
+					
+						tResultA.push(canvas.userContacts[i]);
+							
+					}
+					
+				}
+				
+				if (tResultA.length > 0) {
+					this._list.removeAllItems();
+					
+					for (var k=0;k<tResultA.length;k++) {
+						
+						this._list.addItem(tResultA[k].contact.firstname +' '+ tResultA[k].contact.lastname + ' &#60;' + tResultA[k].contact.adresses.email + '&#62;', tResultA[k].contact.firstname +' '+ tResultA[k].contact.lastname + ' <' + tResultA[k].contact.adresses.email + '>'); 
+						
+					}
+					
+					
+				} else {
+					
+					this._list.removeAllItems();
+					
+					this._list.addItem("No Contact Found","0");
+					
+				}
+				
+				this.sendUpdateText = false;
+				this._list.sendUpdateAttr = false;
+				this._list.selectItemAt(0);
+				this._list.sendUpdateAttr = true;
+				
+				//lz.Focus.setFocus(this._list, true);
+				this.sendUpdateText = true;
+				
+				//this._list.setHilite(this._list.getItemAt(0));
+				this._list.setAttribute("visibility","visible");
+				
+				if ($debug) Debug.write("LIST :1: ",this._list.sendUpdateAttr);
+			
+			]]>
+		</method>
+		<floatinglist name="_list" width="100" 
+					  attach="bottom" visibility="hidden">
+			<attribute name="sendUpdateAttr" value="true" type="boolean"/>
+			<attribute name="refObj" value="null"/>
+			<handler name="onfocus">
+				if ($debug) Debug.write("onfocus");
+				this.refObj.sendSingleUpdateText = false;
+			</handler>
+			<handler name="onselect" args="sel">
+				if ($debug) Debug.write("onselect :1: ",this.sendUpdateAttr);
+				if (this.sendUpdateAttr) {
+					if ($debug) Debug.write("onselect :2: ",sel.value);
+					if (sel.value != "0") {
+						if ($debug) Debug.write("this.parent :: ",this.parent);
+						this.refObj.addText(sel.value);
+						this.setAttribute("visibility","hidden");
+					}
+				}
+			</handler>
+            <textlistitem text="one"/>
+            <textlistitem text="two"/>
+        </floatinglist>
+	</customScrollEdittext>
+	
+	<labelText name="_labelSubject" x="2" labelid="1211" y="86"/>
+	
+	<customEdittext name="_subject" y="84" x="80" width="$once{ parent.width-82 }" />
+
+	<customScrollEdittext name="_richText" y="108" clip="true" x="1"
+		width="$once{ parent.width-2 }" height="$once{ parent.height-225 }">
+		
+	</customScrollEdittext> 	
+	
+	<labelCheckbox name="_bookRoom" labelid="1218"
+				   width="270" y="$once{ parent.height-120 }" x="4">
+		<handler name="onvalue" args="v">
+			if ($debug) Debug.write("onvalue ",v);
+			if (parent._hideRoomConfig != null) {
+				parent._hideRoomConfig.setAttribute("visibility", v ? "hidden" : "visible");
+			}
+		</handler>
+	</labelCheckbox>
+	
+	<view name="_roomConfigBG" width="290" height="76" bgcolor="0xDDDDDD" 
+		   opacity="0.1" y="$once{ parent.height-104 }" x="2">
+	</view>
+	
+	<labelText labelid="194" width="200" y="$once{ parent.height-100 }" resize="false" x="4"/>  
+        <resetCombobox name="_roomtype" width="164" y="$once{ parent.height-100 }" 
+        			   x="120" editable="false" fontsize="11">
+	        <handler name="oninit" >
+	            <![CDATA[
+		            for (var i=0;i<canvas.roomTypesInitValues.length;i++){
+		                this.addItem(canvas.roomTypesInitValues[i].label.value,canvas.roomTypesInitValues[i].roomtypes_id);
+		            }
+		            this.selectItemAt(0);
+	            ]]>
+	        </handler> 
+        </resetCombobox> 
+        
+	<labelText labelid="1219" width="200" y="$once{ parent.height-76 }" resize="false" x="4"/>  
+	<dateField x="120" y="$once{ parent.height-76 }" name="_valid_from" 
+			   setDefaultToday="true" additionalDay="1" />		
+	<customEdittext name="_timeFrom" 
+					width="50" x="232" y="$once{ parent.height-76 }" 
+					regexpType="time">
+		<handler name="oninit">
+			<![CDATA[
+				var tDate = new Date();
+				var hour = tDate.getHours();
+				if (hour < 10) {
+					hour = "0"+hour;
+				}
+				
+				var minutes = tDate.getMinutes();
+				if (minutes < 15) {
+					minutes = "00";
+				} else if (minutes < 30) {
+					minutes = "15";
+				} else if (minutes < 45) {
+					minutes = "30";
+				} else {
+					minutes = "45";
+				}
+				
+				var hour2 = tDate.getHours()+1;
+				if (hour2 < 10) {
+					hour2 = "0"+hour2;
+				} else if (hour2 > 25) {
+					hour2 = 24;
+				}
+				
+				this.setAttribute("text",hour+":"+minutes);
+				parent._timeTo.setAttribute("text",hour2+":"+minutes);
+			]]>
+		</handler>
+	</customEdittext>
+        
+    <labelText labelid="1220" width="200" y="$once{ parent.height-52 }" resize="false" x="4"/>  
+	<dateField x="120" y="$once{ parent.height-52 }" name="_valid_to" 
+			   setDefaultToday="true" additionalDay="1" />		
+	<customEdittext name="_timeTo" 
+					width="50" x="232" y="$once{ parent.height-52 }" 
+					regexpType="time">
+	</customEdittext>
+	
+	<!-- allowUserQuestions Description -->          
+    <view resource="messagebox_info_rsc" x="302" y="$once{ parent.height-96 }" />
+    
+    <labelText labelid="1221" x="324" y="$once{ parent.height-96 }" fontstyle="italic"
+               multiline="true" width="$once{ parent.width-332 }" /> 
+	
+	<view name="_hideRoomConfig" width="290" height="76" bgcolor="0xFFFFFF" 
+		   opacity="0.6" y="$once{ parent.height-104 }" x="2">
+		<handler name="onclick">
+			parent._bookRoom.setValue(true);
+		</handler>
+	</view>
+		   
+	<!-- label: send -->
+	<simpleLabelButton labelid="218" x="$once{ parent.width-260 }" width="120" y="$once{ parent.height-26 }">
+		<handler name="onclick">
+			<![CDATA[
+                parent.baseUrl = canvas.getAppBaseUrl();
+				
+				parent.send();
+			]]>
+		</handler>
+	</simpleLabelButton>
+
+	<!-- label: cancel -->
+	<simpleLabelButton labelid="219" x="$once{ parent.width-130 }" width="120" y="$once{ parent.height-26 }">
+		<handler name="onclick">
+			parent.close();
+		</handler>
+	</simpleLabelButton>
+	   		   
+						  
+</class>	
+	
+</library>
diff --git a/WebContent/src/modules/settings/resources/arrow_undo.png b/WebContent/src/modules/settings/resources/arrow_undo.png
new file mode 100644
index 0000000..6972c5e
--- /dev/null
+++ b/WebContent/src/modules/settings/resources/arrow_undo.png
Binary files differ
diff --git a/WebContent/src/modules/settings/resources/basket_delete.png b/WebContent/src/modules/settings/resources/basket_delete.png
new file mode 100644
index 0000000..1349974
--- /dev/null
+++ b/WebContent/src/modules/settings/resources/basket_delete.png
Binary files differ
diff --git a/WebContent/src/modules/settings/resources/basket_put.png b/WebContent/src/modules/settings/resources/basket_put.png
new file mode 100644
index 0000000..be62faa
--- /dev/null
+++ b/WebContent/src/modules/settings/resources/basket_put.png
Binary files differ
diff --git a/WebContent/src/modules/settings/resources/calendar_add.png b/WebContent/src/modules/settings/resources/calendar_add.png
new file mode 100644
index 0000000..17679db
--- /dev/null
+++ b/WebContent/src/modules/settings/resources/calendar_add.png
Binary files differ
diff --git a/WebContent/src/modules/settings/resources/calendar_delete.png b/WebContent/src/modules/settings/resources/calendar_delete.png
new file mode 100644
index 0000000..69a3b10
--- /dev/null
+++ b/WebContent/src/modules/settings/resources/calendar_delete.png
Binary files differ
diff --git a/WebContent/src/modules/settings/resources/email_add.png b/WebContent/src/modules/settings/resources/email_add.png
new file mode 100644
index 0000000..6c93368
--- /dev/null
+++ b/WebContent/src/modules/settings/resources/email_add.png
Binary files differ
diff --git a/WebContent/src/modules/settings/resources/email_delete.png b/WebContent/src/modules/settings/resources/email_delete.png
new file mode 100644
index 0000000..a9932b1
--- /dev/null
+++ b/WebContent/src/modules/settings/resources/email_delete.png
Binary files differ
diff --git a/WebContent/src/modules/settings/resources/email_go.png b/WebContent/src/modules/settings/resources/email_go.png
new file mode 100644
index 0000000..4a6c5d3
--- /dev/null
+++ b/WebContent/src/modules/settings/resources/email_go.png
Binary files differ
diff --git a/WebContent/src/modules/settings/resources/folder.png b/WebContent/src/modules/settings/resources/folder.png
new file mode 100644
index 0000000..784e8fa
--- /dev/null
+++ b/WebContent/src/modules/settings/resources/folder.png
Binary files differ
diff --git a/WebContent/src/modules/settings/resources/folder_add.png b/WebContent/src/modules/settings/resources/folder_add.png
new file mode 100644
index 0000000..529fe8f
--- /dev/null
+++ b/WebContent/src/modules/settings/resources/folder_add.png
Binary files differ
diff --git a/WebContent/src/modules/settings/resources/loading_symbol.fla b/WebContent/src/modules/settings/resources/loading_symbol.fla
new file mode 100644
index 0000000..59efc05
--- /dev/null
+++ b/WebContent/src/modules/settings/resources/loading_symbol.fla
Binary files differ
diff --git a/WebContent/src/modules/settings/resources/loading_symbol.swf b/WebContent/src/modules/settings/resources/loading_symbol.swf
new file mode 100644
index 0000000..703fae7
--- /dev/null
+++ b/WebContent/src/modules/settings/resources/loading_symbol.swf
Binary files differ
diff --git a/WebContent/src/modules/settings/resources/select_part.fla b/WebContent/src/modules/settings/resources/select_part.fla
new file mode 100644
index 0000000..57b97e3
--- /dev/null
+++ b/WebContent/src/modules/settings/resources/select_part.fla
Binary files differ
diff --git a/WebContent/src/modules/settings/resources/select_part.png b/WebContent/src/modules/settings/resources/select_part.png
new file mode 100644
index 0000000..fbd6488
--- /dev/null
+++ b/WebContent/src/modules/settings/resources/select_part.png
Binary files differ
diff --git a/WebContent/src/modules/settings/usercontacts/library.lzx b/WebContent/src/modules/settings/usercontacts/library.lzx
new file mode 100644
index 0000000..80e47c5
--- /dev/null
+++ b/WebContent/src/modules/settings/usercontacts/library.lzx
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+    <include href="userContacts.lzx" />
+
+</library>
diff --git a/WebContent/src/modules/settings/usercontacts/userContacts.lzx b/WebContent/src/modules/settings/usercontacts/userContacts.lzx
new file mode 100644
index 0000000..9e25868
--- /dev/null
+++ b/WebContent/src/modules/settings/usercontacts/userContacts.lzx
@@ -0,0 +1,530 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<class name="userContacts" extends="view" height="${ parent.height }"
+	   width="276" x="$once{ canvas.width-this.width + 2 }">
+	
+	<method name="reload">
+		this._pendingContacts._table.getPendingUserContacts.doCall();
+		this._availableContacts._table.getUserContacts.doCall();
+	</method>
+	
+	<!--
+	public Long changePendingStatusUserContacts(
+		String SID, Long userContactId, Boolean pending) {
+	 -->
+	<view name="_pendingContacts" height="$once{ parent.height/2 }" >
+		
+		<!--
+		public List<UserContacts> getPendingUserContacts(String SID)
+		 -->
+		<handler name="oninit">
+			this._table.getPendingUserContacts.doCall();
+		</handler> 
+	    		 
+		
+		<labelText name="_labelPendingUsers" x="2" labelid="1189" fontstyle="bold" />
+		
+		<turnOverListOrderedPaged name="_table" showTopBar="false" x="2" 
+					  height="$once{ parent.height }" 
+		             y="0" itemHeight="40" listLabelId="1184" headerHeight="22" 
+		             listItemName="pendingContactsListItem" menuBarXIndent="100"
+		             multiselect="false" width="270">
+			
+			<netRemoteCallHib name="getPendingUserContacts" funcname="userservice.getPendingUserContacts" 
+					  remotecontext="$once{ canvas.thishib }" >      
+				<netparam><method name="getValue"> return canvas.sessionId; </method></netparam>
+		    	<handler name="ondata" args="value">
+		    		<![CDATA[
+			    		if ($debug) Debug.write("getPendingUserContacts: ",value);
+			    		
+			    		this.parent.initValues(value.length);
+			    		
+			    		if (value.length == 0) {
+			    			parent.parent.setAttribute("height",20);
+			    			parent.setAttribute("visibility","hidden");
+			    		}
+			    		
+			    		this.parent.parent._labelPendingUsers.setAttribute("text",canvas.getLabelName(this.parent.parent._labelPendingUsers.labelid)+' <i>( '+value.length+' </i>)');  
+			    		
+			    		var tResult = new Array();
+			    		for (var t=0;t<value.length;t++) {
+			    			for (var i=0;i<canvas.salutationsInitValues.length;i++){
+			    				if (canvas.salutationsInitValues[i].salutations_id == value[t].owner.salutations_id) {
+					                value[t].owner["title"] = canvas.salutationsInitValues[i].label.value;
+					                break;
+			    				}
+				            }
+			    			tResult.push(value[t]);
+			    		}
+			    		
+			    		this.parent.renderContent(tResult);
+			    		
+		    		]]>
+		    	</handler>
+		    </netRemoteCallHib>	
+		
+			<handler name="oninit">
+	            this.addHeaderItem(1180,190);
+	            this.addHeaderItem(1185,60);
+	        </handler>
+	        
+	        <handler name="onclickedItem" args="refObj">
+	            <![CDATA[
+	            
+	                if ($debug) Debug.write("onclickedItem ",refObj.refObj.userContactId);
+	                
+	            ]]>
+	        </handler>
+	        
+	        <method name="setPendingStatus" args="userContactId,pending">
+	            <![CDATA[
+	            
+	                if ($debug) Debug.write("setPendingStatus ",userContactId,pending);
+	                
+	                this.changePendingStatusUserContacts.pending = pending;
+	                this.changePendingStatusUserContacts.userContactId = userContactId;
+	                this.changePendingStatusUserContacts.doCall();
+	            ]]>
+	        </method>
+	        
+	        <!--
+			public Long changePendingStatusUserContacts(String SID, Long userContactId, Boolean pending)
+			 -->
+		    <netRemoteCallHib name="changePendingStatusUserContacts" funcname="userservice.changePendingStatusUserContacts" 
+						  remotecontext="$once{ canvas.thishib }" activeErrorHandler="true" >      
+				<attribute name="userContactId" value="0" type="number" />
+				<attribute name="pending" value="true" type="boolean" />
+				<netparam><method name="getValue"> return canvas.sessionId; </method></netparam>
+				<netparam><method name="getValue"> return parent.userContactId; </method></netparam>
+		    	<netparam><method name="getValue"> return parent.pending; </method></netparam>
+		    	<handler name="ondata" args="value">
+		    		<![CDATA[
+			    		if ($debug) Debug.write("changePendingStatusUserContacts: ",value);
+			    		parent.parent.parent.reload();
+		    		]]>
+		    	</handler>
+		    </netRemoteCallHib>	
+	        
+	        <method name="updatePendingStatus" args="itemId">
+	        	this.renderList[itemId]["pending"] = true;
+	        </method>
+	        
+	        <method name="renderContent" args="rList">
+	            <![CDATA[
+	            
+	            	this.renderList = rList;
+	            
+	                this.isLoaded = true;
+	                var list = this._innerlist._inn._inn;
+	                
+	                if (this.renderList == null) {
+	                	this.renderList = new Array();
+	                }
+	                //this.renderList = records;
+	                var records = this.renderList;
+	                this._innerlist._inn.setAttribute("y",0);
+	                this._innerlist._inn._inn.setAttribute("height",records.length*this.itemHeight);
+	                this._innerlist._inn.resetItems();
+	                
+	                if ($debug) Debug.write(":: renderContent ::",this.renderList.length,list.subviews.length);
+	                
+	                this._records.setAttribute("text",records.length);
+	                
+	                for (var i=0;i<list.subviews.length;i++){
+	                    
+	                    //if (i % 2 == 0) {
+	                    //    list.subviews[i].setIsSecond(true);
+	                    //} else {
+	                    //    list.subviews[i].setIsSecond(false);
+	                    //}
+	                    
+	                    if (records.length > i) {
+	                    	
+	                    	//if ($debug) Debug.write("Render Item ",records[i]);
+	                        
+	                        list.subviews[i].setAttribute("clickable",true);
+	                        list.subviews[i].refObj = records[i];
+	                        
+	                        if (records[i]["isselected"] && records[i].isselected) {
+	                            list.subviews[i].isselected = true;
+	                        } else {
+	                            list.subviews[i].isselected = false;
+	                        }
+	                        
+	                        list.subviews[i].setAttribute("username",records[i].owner.title + ' ' + records[i].owner.firstname+' '+records[i].owner.lastname);
+	                        
+	                        list.subviews[i].setAttribute("itemId",i);
+	                        
+	                    } else {
+	                        
+	                        list.subviews[i].refObj = null;
+	                        
+	                        list.subviews[i].isselected = false;
+	                        list.subviews[i].onmouseout.sendEvent();
+	                        
+	                        list.subviews[i].setAttribute("username",'');
+	                        
+	                        list.subviews[i].setAttribute("itemId","");
+	                        
+	                        list.subviews[i].setAttribute("clickable",false);
+	                        
+	                    }
+	                    
+	                }
+	                
+	                
+	                this.sendInitialWidthUpdate();
+	                
+	            ]]>
+	        </method>   
+		        
+	        <handler name="onScrollItem" args="item">
+	            <![CDATA[
+	                if (this.renderList.length > item.itemId) {
+	                    item.setAttribute("clickable",true);
+	                    item.refObj = this.renderList[item.itemId];
+	                    
+	                    //if (item.itemId % 2 == 0) {
+	                    //    item.setIsSecond(true);
+	                    //} else {
+	                    //    item.setIsSecond(false);
+	                    //}
+	                    
+	                    if (this.renderList[item.itemId]["isselected"] && this.renderList[item.itemId].isselected) {
+	                        item.isselected = true;
+	                        item.onmouseout.sendEvent();
+	                    } else {
+	                        item.isselected = false;
+	                        item.onmouseout.sendEvent();
+	                    }
+	                    
+	                    //if ($debug) Debug.write(item.itemId);
+	                    
+	                    item.setAttribute("username",this.renderList[item.itemId].owner.title + ' ' + this.renderList[item.itemId].owner.firstname+' '+this.renderList[item.itemId].owner.lastname);
+	                        
+	                    item.setAttribute("itemId",item.itemId);
+	                    
+	                } else {
+	                    
+	                    //if (item.itemId % 2 == 0) {
+	                    //    item.setIsSecond(true);
+	                    //} else {
+	                    //    item.setIsSecond(false);
+	                    //}
+	                    
+	                    item.isselected = false;
+	                    item.onmouseout.sendEvent();
+	                    
+	                    item.refObj = null;
+	                    
+	                    item.setAttribute("username","");
+	                    
+	                    item.setAttribute("itemId","");
+	                    
+	                    item.setAttribute("clickable",false);
+	                }
+	                
+	            ]]>
+	        </handler>
+	        
+			
+		</turnOverListOrderedPaged>
+		
+	</view> 
+	
+	<view name="_availableContacts" y="${ parent._pendingContacts.height + 2 }"
+		  height="${ parent.height - parent._pendingContacts.height - 4 }">
+		
+		
+		<!--
+		public List<UserContacts> getPendingUserContacts(String SID)
+		 -->
+		<handler name="oninit">
+			this._table.getUserContacts.doCall();
+		</handler> 
+		
+		<handler name="onheight" args="h">
+			this._table.renderByHeightChange();
+		</handler>
+	    		 
+		
+		<labelText name="_labelPendingUsers" x="2" labelid="1188" fontstyle="bold" />
+		
+		<turnOverListOrderedPaged name="_table" showTopBar="false" x="2" height="${ parent.height }" 
+		             y="0" itemHeight="40" listLabelId="1184" headerHeight="22" 
+		             listItemName="contactsListItem" menuBarXIndent="100"
+		             multiselect="false" width="270">
+			
+	        <method name="renderByHeightChange" >
+        	
+	        	this.clearList();
+	        	this._innerlist._inn.initItems(this.listItemName);
+	        	
+	        	this.renderContent(this.renderList);
+	        </method>
+			
+			<netRemoteCallHib name="getUserContacts" funcname="userservice.getUserContacts" 
+					  remotecontext="$once{ canvas.thishib }" >      
+				<netparam><method name="getValue"> return canvas.sessionId; </method></netparam>
+		    	<handler name="ondata" args="value">
+		    		<![CDATA[
+			    		if ($debug) Debug.write("getUserContacts: ",value);
+			    		
+			    		canvas.userContacts = value;
+			    		
+			    		this.parent.initValues(value.length);
+			    		
+			    		this.parent.parent._labelPendingUsers.setAttribute("text",canvas.getLabelName(this.parent.parent._labelPendingUsers.labelid)+' <i>( '+value.length+' </i>)')
+			    		
+			    		var tResult = new Array();
+			    		for (var t=0;t<value.length;t++) {
+			    			value[t].contact["shareCalendar"] = value[t].shareCalendar;
+			    			value[t].contact["pending"] = value[t].pending;
+			    			value[t].contact["userContactId"] = value[t].userContactId;
+			    			for (var i=0;i<canvas.salutationsInitValues.length;i++){
+			    				if (canvas.salutationsInitValues[i].salutations_id == value[t].contact.salutations_id) {
+					                value[t].contact["title"] = canvas.salutationsInitValues[i].label.value;
+					                break;
+			    				}
+				            }
+			    			tResult.push(value[t].contact);
+			    		}
+			    		
+			    		this.parent.renderContent(tResult);
+			    		
+		    		]]>
+		    	</handler>
+		    </netRemoteCallHib>	
+		
+			<handler name="oninit">
+	            this.addHeaderItem(1180,170);
+	            this.addHeaderItem(1185,80);
+	        </handler>
+	        
+	        <handler name="onclickedItem" args="refObj">
+	            <![CDATA[
+	            
+	                if ($debug) Debug.write("onclickedItem ",refObj.refObj.userContactId);
+	                
+	            ]]>
+	        </handler>
+	        
+	        <method name="addMessage" args="userObject">
+	        	parent.parent.parent._privateMessages.newMessage(userObject);
+	        </method>
+	        
+	        <method name="removeContactUserMethod" args="userContactId">
+	            <![CDATA[
+	            
+	                if ($debug) Debug.write("removeUser ",userContactId,pending);
+	                
+	                this.removeContactUser.userContactId = userContactId;
+	                this.removeContactUser.doCall();
+	            ]]>
+	        </method>
+	        
+	        <!--
+			public Integer removeContactUser(String SID, Long userContactId)
+			 -->
+		    <netRemoteCallHib name="removeContactUser" funcname="userservice.removeContactUser" 
+						  remotecontext="$once{ canvas.thishib }" activeErrorHandler="true" >      
+				<attribute name="userContactId" value="0" type="number" />
+				<attribute name="pending" value="true" type="boolean" />
+				<netparam><method name="getValue"> return canvas.sessionId; </method></netparam>
+				<netparam><method name="getValue"> return parent.userContactId; </method></netparam>
+		    	<handler name="ondata" args="value">
+		    		<![CDATA[
+			    		if ($debug) Debug.write("removeContactUser: ",value);
+			    		parent.parent.parent.reload();
+		    		]]>
+		    	</handler>
+		    </netRemoteCallHib>	
+		    
+		    <method name="setCalendarSharing" args="userContactId,doShare">
+                <![CDATA[
+                
+                    if ($debug) Debug.write("setPendingStatus ",userContactId,doShare);
+                    
+                    this.shareCalendarUserContact.doShare = doShare;
+                    this.shareCalendarUserContact.userContactId = userContactId;
+                    this.shareCalendarUserContact.doCall();
+                ]]>
+            </method>
+            
+            <!--
+            public void shareCalendarUserContact(String SID, Long userContactId, Boolean shareCalendar)
+             -->
+            <netRemoteCallHib name="shareCalendarUserContact" funcname="userservice.shareCalendarUserContact" 
+                          remotecontext="$once{ canvas.thishib }"  >      
+                <attribute name="userContactId" value="0" type="number" />
+                <attribute name="doShare" value="true" type="boolean" />
+                <netparam><method name="getValue"> return canvas.sessionId; </method></netparam>
+                <netparam><method name="getValue"> return parent.userContactId; </method></netparam>
+                <netparam><method name="getValue"> return parent.doShare; </method></netparam>
+                <handler name="ondata" args="value">
+                    <![CDATA[
+                        if ($debug) Debug.write("changePendingStatusUserContacts: ",value);
+                        parent.parent.parent.reload();
+                    ]]>
+                </handler>
+            </netRemoteCallHib> 
+	        
+	        <method name="renderContent" args="rList">
+	            <![CDATA[
+	            
+	            	this.renderList = rList;
+	            
+	                this.isLoaded = true;
+	                var list = this._innerlist._inn._inn;
+	                
+	                if (this.renderList == null) {
+	                	this.renderList = new Array();
+	                }
+	                //this.renderList = records;
+	                var records = this.renderList;
+	                this._innerlist._inn.setAttribute("y",0);
+	                this._innerlist._inn._inn.setAttribute("height",records.length*this.itemHeight);
+	                this._innerlist._inn.resetItems();
+	                
+	                if ($debug) Debug.write(":: renderContent ::",this.renderList.length,list.subviews.length);
+	                
+	                this._records.setAttribute("text",records.length);
+	                
+	                for (var i=0;i<list.subviews.length;i++){
+	                    
+	                    //if (i % 2 == 0) {
+	                    //    list.subviews[i].setIsSecond(true);
+	                    //} else {
+	                    //    list.subviews[i].setIsSecond(false);
+	                    //}
+	                    
+	                    if (records.length > i) {
+	                    	
+	                    	//if ($debug) Debug.write("Render Item ",records[i]);
+	                        
+	                        list.subviews[i].setAttribute("clickable",true);
+	                        list.subviews[i].refObj = records[i];
+	                        
+	                        if (records[i]["isselected"] && records[i].isselected) {
+	                            list.subviews[i].isselected = true;
+	                        } else {
+	                            list.subviews[i].isselected = false;
+	                        }
+	                        
+	                        var shareCalendar = records[i].shareCalendar;
+                            if (shareCalendar == null) {
+                                shareCalendar = false;
+                            }
+                        
+	                        list.subviews[i].setAttribute("shareCalendar",shareCalendar);
+	                        list.subviews[i].setAttribute("username",records[i].title + ' ' + records[i].firstname+' '+records[i].lastname);
+	                        
+	                        list.subviews[i].setAttribute("itemId",i);
+	                        
+	                    } else {
+	                        
+	                        list.subviews[i].refObj = null;
+	                        
+	                        list.subviews[i].isselected = false;
+	                        list.subviews[i].onmouseout.sendEvent();
+	                        
+	                        list.subviews[i].setAttribute("shareCalendar",false);
+	                        list.subviews[i].setAttribute("username",'');
+	                        
+	                        list.subviews[i].setAttribute("itemId","");
+	                        
+	                        list.subviews[i].setAttribute("clickable",false);
+	                        
+	                    }
+	                    
+	                }
+	                
+	                
+	                this.sendInitialWidthUpdate();
+	                
+	            ]]>
+	        </method>   
+		        
+	        <handler name="onScrollItem" args="item">
+	            <![CDATA[
+	                if (this.renderList.length > item.itemId) {
+	                    item.setAttribute("clickable",true);
+	                    item.refObj = this.renderList[item.itemId];
+	                    
+	                    //if (item.itemId % 2 == 0) {
+	                    //    item.setIsSecond(true);
+	                    //} else {
+	                    //    item.setIsSecond(false);
+	                    //}
+	                    
+	                    if (this.renderList[item.itemId]["isselected"] && this.renderList[item.itemId].isselected) {
+	                        item.isselected = true;
+	                        item.onmouseout.sendEvent();
+	                    } else {
+	                        item.isselected = false;
+	                        item.onmouseout.sendEvent();
+	                    }
+	                    
+	                    //if ($debug) Debug.write(item.itemId);
+	                    var shareCalendar = this.renderList[item.itemId].shareCalendar;
+	                    if (shareCalendar == null) {
+	                    	shareCalendar = false;
+	                    }
+	                    
+	                    item.setAttribute("shareCalendar",shareCalendar);
+	                    item.setAttribute("username",this.renderList[item.itemId].title + ' ' + this.renderList[item.itemId].firstname+' '+this.renderList[item.itemId].lastname);
+	                        
+	                    item.setAttribute("itemId",item.itemId);
+	                    
+	                } else {
+	                    
+	                    //if (item.itemId % 2 == 0) {
+	                    //    item.setIsSecond(true);
+	                    //} else {
+	                    //    item.setIsSecond(false);
+	                    //}
+	                    
+	                    item.isselected = false;
+	                    item.onmouseout.sendEvent();
+	                    
+	                    item.refObj = null;
+	                    
+	                    item.setAttribute("shareCalendar",false);
+	                    item.setAttribute("username","");
+	                    
+	                    item.setAttribute("itemId","");
+	                    
+	                    item.setAttribute("clickable",false);
+	                }
+	                
+	            ]]>
+	        </handler>
+	        
+			
+		</turnOverListOrderedPaged>
+		
+	</view>
+	
+</class>
+
+</library>
diff --git a/WebContent/src/modules/settings/viewUserProfile.lzx b/WebContent/src/modules/settings/viewUserProfile.lzx
new file mode 100644
index 0000000..9a76378
--- /dev/null
+++ b/WebContent/src/modules/settings/viewUserProfile.lzx
@@ -0,0 +1,291 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<class name="viewUserProfileWindow" extends="guiPresenter" labelid="1235" isdragable="true" 
+    minimizable="true" maximizable="false" fullToolBar="true" y="100" x="$once{ (parent.width-this.width)/2 }"
+    resizeable="false" width="470" height="$once{ parent.height-this.y-10 }" >
+	
+	<attribute name="userId" value="0" type="number"/>
+	
+	<handler name="oninit">
+		this.getUserById.doCall();
+	</handler>
+	
+	<!--
+	public Users getUserById(String SID, long user_id)
+	 -->
+	<netRemoteCallHib name="getUserById" funcname="userservice.getUserById" 
+			  remotecontext="$once{ canvas.thishib }" >      
+		<netparam><method name="getValue"> return canvas.sessionId; </method></netparam>
+		<netparam><method name="getValue"> return parent.parent.userId; </method></netparam>
+    	<handler name="ondata" args="value">
+   		<![CDATA[
+    		parent.setAttribute("title",parent.title+" "+value.firstname+" "+value.lastname);
+    		this.parent.viewUserProfile.viewUserProfile.initFields(value);
+   		]]>
+    	</handler>
+    </netRemoteCallHib>	
+	
+    <!--
+    public Long requestUserToContactList(String SID, Long userToAdd_id, 
+                String domain, String port, String webapp)
+     -->
+    <netRemoteCallHib name="requestUserToContactList" funcname="userservice.requestUserToContactList" 
+                  remotecontext="$once{ canvas.thishib }" activeErrorHandler="true" >      
+        <netparam><method name="getValue"> return canvas.sessionId; </method></netparam>
+        <netparam><method name="getValue"> return parent.parent.viewUserProfile.viewUserProfile.userObject.user_id; </method></netparam>
+        <netparam><method name="getValue"> return canvas.getHttpHost(); </method></netparam>
+        <netparam><method name="getValue"> return canvas.red5httpport; </method></netparam>
+        <netparam><method name="getValue"> return canvas.httpRootKey; </method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+                if ($debug) Debug.write("requestUserToContactList: ",value);
+                if (value > 0) {
+                    new lz.labelerrorPopup(canvas,{labelid:1267,errorlabelid:1266});
+                }
+            ]]>
+        </handler>
+    </netRemoteCallHib> 
+	
+	<view name="viewUserProfile" y="24" height="$once{ parent.height-60 }" 
+		  width="$once{ parent.width-2 }" clip="true">
+		
+		<viewUserProfile name="viewUserProfile" />
+		
+		<om_vscrollbar />
+		
+	</view>
+	
+	<simpleLabelButton labelid="1253" width="190" x="5" y="$once{ parent.height - 26 }">
+        <handler name="onclick">
+            new lz.newPrivateMessage(canvas,{
+                                x:200,y:120,
+                                refObj:null,
+                                minimizable:true,
+                                maximizable:true,
+                                isdragable:true,
+                                userObject:null,
+                                user_id:parent.viewUserProfile.viewUserProfile.userObject.user_id,
+                                width:canvas.width-300,
+                                height:canvas.height-130
+                            });
+        </handler>
+    </simpleLabelButton>  
+	
+	<simpleLabelButton labelid="1186" width="160" x="$once{ parent.width - 270 }" y="$once{ parent.height - 26 }">
+    	<handler name="onclick">
+    		if (hib.userobject.user_id == parent.viewUserProfile.viewUserProfile.userObject.user_id) {
+                new lz.labelerrorPopup(canvas,{errorlabelid:1225});
+                return;
+            }
+            parent.requestUserToContactList.doCall();
+    	</handler>
+    </simpleLabelButton>   
+	
+    <simpleLabelButton labelid="61" width="100" x="$once{ parent.width - 105 }" y="$once{ parent.height - 26 }">
+    	<handler name="onclick">
+    		this.parent.close();
+    	</handler>
+    </simpleLabelButton>
+	
+</class>	
+	
+<!--- User Profile Setting Panel -->
+<class name="viewUserProfile" extends="view" >
+	
+	<attribute name="userObject" value="null" />
+			
+	<method name="initFields" args="obj">
+    	<![CDATA[
+    	    this.userObject = obj;
+	        this._userpic.setAttribute('src', canvas.getPictureUrl(obj.pictureuri
+				, '&moduleName=remoteuserprofile&remoteUserid='+obj.user_id));
+	        
+	        var tUserName = "<u><FONT color='#0000CC'><a href='asfunction:_root.searchUsers,"+ this.removeWhitespace(obj.firstname) +"'>" + this.removeWhitespace(obj.firstname) + "</a></FONT></u>";
+    			
+	        tUserName += " <u><FONT color='#0000CC'><a href='asfunction:_root.searchUsers,"+ this.removeWhitespace(obj.lastname) +"'>" + this.removeWhitespace(obj.lastname) + "</a></FONT></u>";
+
+    		this.timezone.setAttribute("text",this.userObject.timeZoneId);
+    	
+    		this.username.setAttribute("text",tUserName);
+    		
+    		this.memberSince.setAttribute("text",parseDateToString(this.userObject.starttime));
+    		
+    		var aOfferings = obj.userOffers.split(",");
+    		
+    		var tOfferings = "";
+    		
+    		for (var t=0;t<aOfferings.length;t++) {
+    			
+    			tOfferings += "<u><FONT color='#0000CC'><a href='asfunction:_root.searchOffers,"+ this.removeWhitespace(aOfferings[t]) +"'>" + this.removeWhitespace(aOfferings[t]) + "</a></FONT></u>";
+    			
+    			if (t+1 < aOfferings.length) {
+    				tOfferings += ", ";
+    			}
+    		}
+    		
+    		this.userOffers._text.setAttribute("text",tOfferings);
+    		
+    		
+    		var aSearchs = obj.userSearchs.split(",");
+    		
+    		var tSearchs = "";
+    		
+    		for (var t=0;t<aSearchs.length;t++) {
+    			
+    			tSearchs += "<u><FONT color='#0000CC'><a href='asfunction:_root.searchInterest,"+ this.removeWhitespace(aSearchs[t]) +"'>" + this.removeWhitespace(aSearchs[t]) + "</a></FONT></u>";
+    			
+    			if (t+1 < aSearchs.length) {
+    				tSearchs += ", ";
+    			}
+    		}
+    		
+    		this.userSearchs._text.setAttribute("text",tSearchs);
+    		
+    		if (hib.userobject.user_id == this.userObject.user_id) {
+    			//Self always show
+    			this.showUserContactData();
+    		} else if (obj.showContactData) {
+    			this.showUserContactData();
+    		}  else if (obj.showContactDataToContacts) {
+                this.checkUserIsInContactList.doCall();
+            } else {
+    			this.userContactData.setAttribute("text",canvas.getLabelName(1268));
+    		}
+    		
+    	
+    	]]>
+	</method>
+	
+	<!--
+	public Boolean checkUserIsInContactList(String SID, Long user_id)
+	 -->
+	<netRemoteCallHib name="checkUserIsInContactList" funcname="userservice.checkUserIsInContactList" 
+              remotecontext="$once{ canvas.thishib }" >      
+        <netparam><method name="getValue"> return canvas.sessionId; </method></netparam>
+        <netparam><method name="getValue"> return parent.parent.userObject.user_id; </method></netparam>
+        <handler name="ondata" args="value">
+            <![CDATA[
+                if ($debug) Debug.write("checkUserIsInContactList: ",value);
+                
+                if (value){
+                    parent.showUserContactData();
+                } else {
+                    parent.userContactData.setAttribute("text",canvas.getLabelName(1269));
+                }
+                
+            ]]>
+        </handler>
+    </netRemoteCallHib> 
+
+	<method name="showUserContactData">
+		<![CDATA[
+		
+			var tString = canvas.getNotNullString(this.userObject.adresses.street) + " " + canvas.getNotNullString(this.userObject.adresses.additionalname) + "<br/>";
+			tString += canvas.getNotNullString(this.userObject.adresses.zip) + " " + canvas.getNotNullString(this.userObject.adresses.town) + "<br/>";
+			tString += canvas.getNotNullString(this.userObject.adresses.states.name) + "<br/><br/>";
+			tString += canvas.getNotNullString(this.userObject.adresses.email) + "<br/>";
+			tString += canvas.getNotNullString(this.userObject.adresses.phone) + "<br/><br/>";
+			tString += canvas.getNotNullString(this.userObject.adresses.comment) + "<br/>";
+
+			this.userContactData.setAttribute("text",tString);
+
+		]]>
+	</method>
+	
+	<method name="removeWhitespace" args="str">
+		<![CDATA[
+		
+			//if ($debug) Debug.write("removeWhitespace 1 ",str);
+			//if ($debug) Debug.write("removeWhitespace 2 ",str.length);
+		
+			var tResultingString = "";
+			
+			for (var i=0;i<str.length;i++) {
+				
+				var tChar = str.substring(i,i+1);
+				
+				if (tChar != " ") {
+					tResultingString = str.substring(i,str.length);
+					break;
+				}
+				
+			}
+			
+			for (var i=tResultingString.length;i>0;i--) {
+				
+				var tChar = tResultingString.substring(i-1,i);
+				
+				if (tChar != " ") {
+					tResultingString = tResultingString.substring(0,i);
+					break;
+				}
+				
+			}
+			
+			
+			return tResultingString;
+			
+		
+		]]>
+	</method>
+	
+	<image y="10" x="10" name="_userpic" />
+	
+	<view x="180" width="260" y="10" height="120" bgcolor="0xFFFFFF" />
+	
+	<labelText name="usernameLabel" x="180" y="10" labelid="1164" />
+	<labelText name="username" x="260" y="10" />
+	
+	<labelText name="timezoneLabel" x="180" y="30" labelid="1165" />
+	<labelText name="timezone" x="260" y="30" />
+	
+	<labelText name="memberSinceLabel" x="180" y="50" labelid="1296" />
+    <labelText name="memberSince" x="260" y="50" />
+	
+	<labelText name="userFields" x="10" y="140" labelid="1166" fontstyle="bold" />
+	
+	<labelText name="userOffersLabel" x="10" y="160" labelid="1162" />
+	
+	<view name="userOffers" x="120" y="160" height="100" width="320" clip="true" bgcolor="0xFFFFFF">
+		<labelText name="_text" multiline="true" width="$once{ parent.width- 16 }" />
+		<om_vscrollbar />
+	</view>
+	
+	<labelText name="userSearchsLabel" x="10" y="270" labelid="1163" />
+	
+	<view name="userSearchs" x="120" y="270" height="100" width="320" clip="true" bgcolor="0xFFFFFF">
+		<labelText name="_text" multiline="true" width="$once{ parent.width- 16 }" />
+		<om_vscrollbar />
+	</view>
+	
+	<labelText name="userContact" x="10" y="380" labelid="1167" fontstyle="bold" />
+	
+	<labelText x="10" y="400" labelid="1270" />
+	
+	<labelText name="userContactData" x="120" y="400" multiline="true" width="320" 
+			   selectable="true" bgcolor="0xFFFFFF" resize="false" />
+	    	
+</class>
+
+
+</library>
diff --git a/WebContent/src/modules/sipintegration/library.lzx b/WebContent/src/modules/sipintegration/library.lzx
new file mode 100644
index 0000000..a0c1e01
--- /dev/null
+++ b/WebContent/src/modules/sipintegration/library.lzx
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+    <include href="sipLoader.lzx" />
+    
+</library>
diff --git a/WebContent/src/modules/sipintegration/sipLoader.lzx b/WebContent/src/modules/sipintegration/sipLoader.lzx
new file mode 100644
index 0000000..e948029
--- /dev/null
+++ b/WebContent/src/modules/sipintegration/sipLoader.lzx
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+<class name="sipLoader" extends="view" bgcolor="0xFFFFFF"
+	   align="center" valign="middle" 
+	   width="${ this._label.width + 50 }" height="40">
+
+    <view resource="warning_icon_rsc" x="10" y="10" />
+
+    <labelText labelid="900" name="_label"
+    		   fontsize="11" y="10" x="40" />
+    
+</class>
+
+</library>
diff --git a/WebContent/src/plugins/library.lzx b/WebContent/src/plugins/library.lzx
new file mode 100644
index 0000000..417d2c6
--- /dev/null
+++ b/WebContent/src/plugins/library.lzx
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+    <!-- Add the Folder and Entry for your Plugin here -->
+
+    <!--
+    <include href="livewall/"/>
+     -->
+	
+</library>
diff --git a/WebContent/src/resources/library.lzx b/WebContent/src/resources/library.lzx
new file mode 100644
index 0000000..37cd9c5
--- /dev/null
+++ b/WebContent/src/resources/library.lzx
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<!-- FamFam Icon Set -->
+<resource name="user_moderator_list_apply_rsc" src="tick.png" />
+
+<!-- add for calendar -->
+<!-- FamFam Icon Set -->
+<resource name="user_profile_rsc" src="user.png" />
+
+</library>
diff --git a/WebContent/src/resources/tick.png b/WebContent/src/resources/tick.png
new file mode 100644
index 0000000..a9925a0
--- /dev/null
+++ b/WebContent/src/resources/tick.png
Binary files differ
diff --git a/WebContent/src/resources/user.png b/WebContent/src/resources/user.png
new file mode 100644
index 0000000..79f35cc
--- /dev/null
+++ b/WebContent/src/resources/user.png
Binary files differ
diff --git a/WebContent/src/rest/rest-testclient.lzx b/WebContent/src/rest/rest-testclient.lzx
new file mode 100644
index 0000000..2702425
--- /dev/null
+++ b/WebContent/src/rest/rest-testclient.lzx
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<canvas debug="true" height="100%" title="REST Test-Application">
+	
+<debug width="450" x="460" y="600" height="100" />
+  
+<include href="incubator/lzcombobox.lzx" />
+
+<attribute name="_baseUrlRestTestGate" value="" type="string" />
+
+<method name="setBaseUrlGateway" args="txt">
+	if ($debug) Debug.write("setBaseUrlGateway: ",txt);
+	this.setAttribute("_baseUrlRestTestGate",txt);
+	var tString1 = txt+"/AddressBookService/findEntry";
+	if ($debug) Debug.write("tString1: ",tString1);
+	this.dset.setSrc(tString1);
+	this.dset.setQueryType("POST");
+	this.dset.setQueryParam("param1","awe");
+	this.dset.doRequest();
+	if ($debug) Debug.write("dset: ",this.dset);
+</method>
+
+<dataset name="dset" request="false" type="post" ondata="Debug.write('ondata: ',val,this.data,this)" >
+</dataset>
+
+<datapointer xpath="dset:/">
+	<handler name="ondata">
+		Debug.write('ondata: ',this);
+	</handler>
+</datapointer>
+
+<view layout="axis:y;spacing:4" width="450" x="0">
+	<text fontstyle="bold" text="Connection - Settings (user for both BroadCasting and Subscribing)" />
+	<view width="450">
+		<text text="BaseURL:" />
+		<edittext align="right" width="350" id="url" text="http://127.0.0.1:5080/openmeetings/services" />
+	</view>
+	<button align="right" width="200" text="connectRtmpConnection" 
+			onclick="canvas.setBaseUrlGateway(url.text)" />
+</view>
+
+
+<!-- some description -->
+<text fontstyle="italic" y="0" width="450" multiline="true" x="450">
+	Test-Client for Testing the WebService-Gateway (Axis2)<br/>
+	This uses the REST-Gateway, not the SOAP Gateway as OpenLaszlo does not<br/>
+	Understand/speak SOAP 1.2<br/>
+</text>
+
+
+</canvas>
diff --git a/WebContent/src/rest/rest-testclient.lzx.lzr=swf8.swf b/WebContent/src/rest/rest-testclient.lzx.lzr=swf8.swf
new file mode 100644
index 0000000..e617ce9
--- /dev/null
+++ b/WebContent/src/rest/rest-testclient.lzx.lzr=swf8.swf
Binary files differ
diff --git a/WebContent/src/subscribe.lzx.lzr=swf8.swf b/WebContent/src/subscribe.lzx.lzr=swf8.swf
new file mode 100644
index 0000000..13e11e1
--- /dev/null
+++ b/WebContent/src/subscribe.lzx.lzr=swf8.swf
Binary files differ
diff --git a/WebContent/src/test-setup.lzx.lzr=swf8.swf b/WebContent/src/test-setup.lzx.lzr=swf8.swf
new file mode 100644
index 0000000..4998ea1
--- /dev/null
+++ b/WebContent/src/test-setup.lzx.lzr=swf8.swf
Binary files differ
diff --git a/WebContent/src/test/Tutorat.swf b/WebContent/src/test/Tutorat.swf
new file mode 100644
index 0000000..317e163
--- /dev/null
+++ b/WebContent/src/test/Tutorat.swf
Binary files differ
diff --git a/WebContent/src/test/backup/index.jsp b/WebContent/src/test/backup/index.jsp
new file mode 100644
index 0000000..0d2fc2a
--- /dev/null
+++ b/WebContent/src/test/backup/index.jsp
@@ -0,0 +1,84 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+    pageEncoding="UTF-8"%>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<title>OpenMeetings</title>
+	<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+	<script type="text/javascript" src="swfobject.js"></script>
+	<style type="text/css">
+		
+		/* hide from ie on mac \*/
+		html {
+			height: 100%;
+			overflow: hidden;
+		}
+		
+		#flashcontent {
+			height: 100%;
+		}
+		/* end hide */
+	
+		body {
+			height: 100%;
+			margin: 0;
+			padding: 0;
+			background-color: #ffffff;
+		}
+	
+	</style>
+</head>
+<body onLoad="focusSWF()">
+
+
+	<div id="flashcontent">
+		<strong>You need to upgrade your Flash Player</strong>
+		<p><a href="http://www.macromedia.com/go/getflashplayer/">Get the latest Flash Player</a></p>
+	</div>
+	
+	<script type="text/javascript">
+		// <![CDATA[
+		
+		var d = new Date();
+		
+		var so = new SWFObject("main.lzx.swf8.swf?r="+d.getTime(), "lzapp", "100%", "100%", "8", "#ffffff");
+		so.addParam("quality", "high");
+		so.addParam("id", "lzapp");
+		so.addParam("allowScriptAccess", "always");
+		so.addParam("scale", "noscale");
+		so.write("flashcontent");
+		
+		function focusSWF(){
+		
+		    if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){
+		    }else {
+		        document.getElementById('lzapp').focus();
+		    }
+		}   		
+		
+		// ]]>
+	</script>	
+
+
+</body>
+</html>
diff --git a/WebContent/src/test/backup_whiteboard/baseDrawArrow.lzx b/WebContent/src/test/backup_whiteboard/baseDrawArrow.lzx
new file mode 100644
index 0000000..baafd01
--- /dev/null
+++ b/WebContent/src/test/backup_whiteboard/baseDrawArrow.lzx
@@ -0,0 +1,611 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+<class name="baseDrawArrow" extends="baseDrawULine" >
+    
+    <!-- for drawing drawarrow -->
+    <attribute name="currentdrawarrowlinestroke" value="0x000000" />
+    <attribute name="currentdrawarrowlinestrokeDis" value="1" type="number" />
+    <attribute name="currentdrawarrowlinestrokeFill" value="0xFF6600" />
+    <attribute name="currentdrawarrowlinestrokeFillDis" value="1" type="number" />
+    
+    <attribute name="currentdrawarrowlinelineWidth" value="4" type="number" />   
+    <attribute name="currentdrawarrowOpacity" value="1" type="number" />
+      
+    <!-- ###########################
+    drawarrow
+     -->
+     
+    
+    <method name="startDrawarrowline" args="oid_name">
+        <![CDATA[
+	        if (oid_name == null) {
+	            oid_name = 'drawarrow'+this.getCounter();
+	        }
+	        
+	        this.currentlayer = new lz.drawViewNew(this,{
+		            name:oid_name,width:this.width,height:this.height,
+		            opacity:this.currentdrawarrowOpacity});
+            
+            var pArrowStart = new flash.geom.Point(this.startx,this.starty);
+            var pArrowEnd = new flash.geom.Point(this.endx,this.endy);
+            
+            if ($debug) Debug.write("start,end,line",pArrowStart,pArrowEnd,this.currentdrawarrowlinelineWidth);
+            this.drawArrow(this.currentlayer,pArrowStart,pArrowEnd,this.currentdrawarrowlinelineWidth);
+        ]]>
+    </method> 
+    
+    <method name="endDrawarrowline">
+        //Debug.write("endDrawarrowline",this.startx,this.starty,this.endx,this.endy);
+        <![CDATA[
+        var tempName = this.currentlayer.name;
+        //Debug.write("tempName: ",tempName);
+        this.currentlayer.destroy();
+        
+        //GetBounds of that Object
+        var minx = this.width+2;
+        var miny = this.height+2;
+        var maxx = -2;
+        var maxy = -2;
+
+        if (this.startx<minx) minx=this.startx;
+        if (this.endx<minx) minx=this.endx;
+        
+        if (this.startx>maxx) maxx=this.startx;
+        if (this.endx>maxx) maxx=this.endx;
+        
+        if (this.starty<miny) miny=this.starty;
+        if (this.endy<miny) miny=this.endy;
+        
+        if (this.starty>maxy) maxy=this.starty;
+        if (this.endy>maxy) maxy=this.endy;
+        
+        var width = maxx-minx;
+        var height = maxy-miny;
+        
+        //Debug.write("minx,miny,width,height: ",minx,miny,width,height);
+
+        this.currentlayer = new lz.drawViewNew(this,{
+            name:tempName,x:minx,y:miny,width:width,height:height,
+            opacity:this.currentdrawarrowOpacity});
+            
+        this.currentlayer.fillstyle = '0x000000';
+        this.currentlayer.lineWidth = this.currentdrawarrowlinelineWidth;
+        this.currentlayer.strokeStyle = this.currentdrawarrowlinestroke;
+        
+        //Debug.write("this.currentlayer: ",this.currentlayer);
+
+        var t = new lz.drawArrowWhiteBoard(this.currentlayer,{x:0,y:0});
+
+        //Color
+        //t.setTint(this.currentdrawarrowlinestroke,60);
+        t.setColor(this.currentdrawarrowlinestroke);
+        
+        var tx = this.endx-this.startx;
+        var ty = this.endy-this.starty;
+
+        var gegenkathete = Math.abs(ty);
+        var ankathete = Math.abs(tx); 
+        var hypothenuse = Math.sqrt((ankathete*ankathete)+(gegenkathete*gegenkathete));
+        var sinAlpha = (gegenkathete/hypothenuse);
+        var alpha = Math.asin(sinAlpha);
+        alpha = alpha/(Math.PI/180);
+            
+        var newx = 0;
+        var newy = 0;
+        if (tx>=0 && ty>=0){    
+            t.setAttribute('rotation',(alpha-45));
+        } else if (tx<0 && ty>=0){
+            newx = width;
+            t.setAttribute('rotation',(45+90-alpha));
+        } else if (tx<0 && ty<0){
+            newy = height;
+            newx = width;
+            t.setAttribute('rotation',(alpha+45+90));
+        } else if (tx>0 && ty<=0){
+            newy = height;
+            t.setAttribute('rotation',(45-alpha-90));
+        }
+        
+        t.setAttribute('x',newx);
+        t.setAttribute('y',newy);
+        
+        //Scaling
+        var basicLength = Math.sqrt((t.width*t.width)+(t.width*t.width));
+        t.getDisplayObject()._xscale = (hypothenuse/basicLength)*100;
+        t.getDisplayObject()._yscale = (hypothenuse/basicLength)*100;
+        
+
+        //Set previous to null
+        this.prevx = null;
+        this.prevy = null;  
+        
+        //Add Layer to global Layer     
+        this.layers.push(this.currentlayer);  
+        ]]>
+        this.drawarrowlineregisterFinal();
+        this.currentlayer = new LzView();
+        //Debug.write("t: ",t);
+    </method> 
+       
+    
+    
+    <method name="drawArrow" args="graphics,start,end,thickness">
+        <![CDATA[
+    //(graphics:Graphics,
+    //            start:Point,end:Point,
+    //            style:Object=null):void {
+            
+            if (start.equals(end)) return;
+            
+            
+            var arrowStyle = {'shaftControlPosition':0.5,
+                    'shaftControlSize':0.5,
+                    'headLength':thickness*5, //Pixel Length of arrow head
+                    'headWidth':thickness*5,//Relative width of arrow head
+                    'edgeControlPosition':0.5,
+                    'edgeControlSize':0.5,
+                    'shaftPosition':0,
+                    'shaftThickness':thickness
+                    };
+            
+            var fullVect:Point = end.subtract(start);
+            var halfWidth:Number = (arrowStyle.headWidth != -1) ? arrowStyle.headWidth/2 : arrowStyle.headLength/2; 
+            
+            //Figure out the line start/end points
+            var startNorm = new flash.geom.Point(fullVect.y,-fullVect.x);
+            startNorm.normalize(arrowStyle.shaftThickness/2);
+            var start1 = start.add(startNorm);
+            var start2 = start.subtract(startNorm);
+            var end1 = end.add(startNorm);
+            var end2 = end.subtract(startNorm);
+            
+            //if ($debug) Debug.write("startNorm: ",startNorm.toString());
+            //if ($debug) Debug.write("start1: ",start1.toString());
+            //if ($debug) Debug.write("start2: ",start2.toString());
+            //if ($debug) Debug.write("end1: ",end1.toString());
+            //if ($debug) Debug.write("end2: ",end2.toString());
+            
+            //figure out where the arrow head starts
+            var headPnt = fullVect.clone();
+            //if ($debug) Debug.write("headPnt 1: ",headPnt.toString());
+            //if ($debug) Debug.write("headPnt.length 1: ",headPnt.length);
+            //if ($debug) Debug.write("arrowStyle.headLength 1: ",arrowStyle.headLength);
+            headPnt.normalize(headPnt.length-arrowStyle.headLength);
+            //if ($debug) Debug.write("headPnt 2: ",headPnt.toString());
+            headPnt = headPnt.add(start);
+            //if ($debug) Debug.write("headPnt 3: ",headPnt.toString());
+            
+            //calculate the arrowhead corners
+            var headPntNorm = startNorm.clone();
+            //if ($debug) Debug.write("headPntNorm ^^: ",headPntNorm.toString());
+            //if ($debug) Debug.write("halfWidth ^^: ",halfWidth);
+            headPntNorm.normalize(halfWidth);
+            //if ($debug) Debug.write("headPntNorm: ",headPntNorm.toString());
+            var edge1 = headPnt.add(headPntNorm);
+            var edge2 = headPnt.subtract(headPntNorm);
+            
+            //if ($debug) Debug.write("edge1: ",edge1.toString());
+            //if ($debug) Debug.write("edge2: ",edge2.toString());
+            
+            //Figure out where the arrow connects the the shaft, then calc the intersections
+            var shaftCenter = flash.geom.Point.interpolate(end,headPnt,arrowStyle.shaftPosition);
+            //if ($debug) Debug.write("end: ",end.toString());
+            //if ($debug) Debug.write("headPnt",headPnt.toString());
+            //if ($debug) Debug.write("arrowStyle.shaftPosition: ",arrowStyle.shaftPosition);
+            //if ($debug) Debug.write("shaftCenter",shaftCenter.toString());
+            var inter1 = this.getLineIntersection(start1,end1,shaftCenter,edge1);
+            var inter2 = this.getLineIntersection(start2,end2,shaftCenter,edge2);
+            
+            //if ($debug) Debug.write("inter1: ",inter1.toString());
+            //if ($debug) Debug.write("inter2: ",inter2.toString());
+            
+            //Figure out the control points
+            var edgeCenter = flash.geom.Point.interpolate(end,headPnt,arrowStyle.edgeControlPosition);
+            var edgeNorm = startNorm.clone();
+            edgeNorm.normalize(halfWidth*arrowStyle.edgeControlSize);
+            //if ($debug) Debug.write("halfWidth*arrowStyle.edgeControlSize: "+(halfWidth*arrowStyle.edgeControlSize));
+            //if ($debug) Debug.write("edgeNorm: "+edgeNorm.toString());
+            var edgeCntrl1 = edgeCenter.add(edgeNorm);
+            var edgeCntrl2 = edgeCenter.subtract(edgeNorm);
+
+            //if ($debug) Debug.write("edgeCntrl1: ",edgeCntrl1.toString());
+            //if ($debug) Debug.write("edgeCntrl2: ",edgeCntrl2.toString());
+
+            //if ($debug) Debug.write("moveTo: ",start1.x,start1.y);
+            //if ($debug) Debug.write("lineTo",inter1.x,inter1.y);
+            //if ($debug) Debug.write("lineTo",edge1.x,edge1.y);
+            //if ($debug) Debug.write("quadraticCurveTo",edgeCntrl1.x,edgeCntrl1.y,end.x,end.y);
+            //if ($debug) Debug.write("quadraticCurveTo",edgeCntrl2.x,edgeCntrl2.y,edge2.x,edge2.y);
+            //if ($debug) Debug.write("lineTo",inter2.x,inter2.y);
+            //if ($debug) Debug.write("lineTo",start2.x,start2.y);
+            //if ($debug) Debug.write("lineTo",start1.x,start1.y);
+            
+            graphics.moveTo(start1.x,start1.y);
+            graphics.lineTo(inter1.x,inter1.y);
+            graphics.lineTo(edge1.x,edge1.y);
+            graphics.quadraticCurveTo(edgeCntrl1.x,edgeCntrl1.y,end.x,end.y);
+            graphics.quadraticCurveTo(edgeCntrl2.x,edgeCntrl2.y,edge2.x,edge2.y);
+            graphics.lineTo(inter2.x,inter2.y);
+            graphics.lineTo(start2.x,start2.y);
+            graphics.lineTo(start1.x,start1.y);
+            
+            if (this.currentdrawarrowlinestrokeDis!=-1){
+                graphics.strokeStyle = this.currentdrawarrowlinestroke;
+                graphics.stroke();
+            }
+
+            if (this.currentdrawarrowlinestrokeFillDis!=-1){
+                graphics.fillStyle = this.currentdrawarrowlinestrokeFill;
+                graphics.fill();
+            }
+        ]]>
+    </method>
+    
+    <method name="getLineIntersection" args="a1,a2,b1,b2">
+        <![CDATA[ 
+        
+            //calculate directional constants
+            var k1 = (a2.y-a1.y) / (a2.x-a1.x);
+            var k2 = (b2.y-b1.y) / (b2.x-b1.x);
+            
+            // if the directional constants are equal, the lines are parallel,
+            // meaning there is no intersection point.
+            if( k1 == k2 ) return null;
+            
+            var x = 0;
+            var y = 0;
+            var m1 = 0;
+            var m2 = 0;
+            
+            //if ($debug) Debug.write("k1",k1);
+            //if ($debug) Debug.write("k2",k2);
+            
+            // an infinite directional constant means the line is vertical
+            if( !isFinite(k1) ) {
+                
+                //if ($debug) Debug.write("k1 ^^ 0");
+                //if ($debug) Debug.write("k2",k2,(b2.y-b1.y));
+                //if ($debug) Debug.write("b1.getY(): "+b1.y);
+                //if ($debug) Debug.write("b2.getY(): "+b2.y);
+                // so the intersection must be at the x coordinate of the line
+                x = a1.x;
+                m2 = b1.y - k2 * b1.x;
+                //if ($debug) Debug.write("m2",m2);
+                y = k2 * x + m2;
+                //if ($debug) Debug.write("y",y);
+                
+            // same as above for line 2
+            } else if ( !isFinite(k2) ) {
+                
+                //if ($debug) Debug.write("k2 ^ 0");
+                
+                m1 = a1.y - k1 * a1.x;
+                x = b1.x;
+                y = k1 * x + m1;
+
+            // if neither of the lines are vertical
+            } else {
+                
+                //if ($debug) Debug.write("neither");
+            
+                m1 = a1.y - k1 * a1.x;
+                m2 = b1.y - k2 * b1.x;              
+                x = (m1-m2) / (k2-k1);
+                y = k1 * x + m1;
+                
+            }
+            
+            return new flash.geom.Point(x,y);
+        ]]>
+    </method>    
+    
+     
+    
+    
+    <method name="drawarrowlineregisterFinal">
+        var actionObject = new Array();
+        actionObject[0] = 'drawarrow';
+        actionObject[1] = currentlayer.fillstyle;
+        actionObject[2] = currentlayer.lineWidth;
+        actionObject[3] = currentlayer.strokeStyle;
+        actionObject[4] = this.startx;  
+        actionObject[5] = this.starty;  
+        actionObject[6] = this.endx;    
+        actionObject[7] = this.endy;
+        actionObject[8] = this.currentdrawarrowOpacity;
+        actionObject[9] = this.counter;   
+        actionObject[10] = currentlayer.x;
+        actionObject[11] = currentlayer.y;
+        actionObject[12] = currentlayer.width;
+        actionObject[13] = currentlayer.height;  
+        actionObject[14] = this.currentlayer.name;
+        this.baseactionobjectList.push(actionObject);       
+        this.onsharedMessage('draw',actionObject);
+    </method>       
+    
+    
+    <method name="drawarrowlineactionHistory" args="lastActionObject,parentView">
+        <![CDATA[
+            //Debug.write("## lineactionHistory",parentView," 2 ## NEW x,y ",lastActionObject[lastActionObject.length-5],lastActionObject[lastActionObject.length-4]," width,height: ",lastActionObject[lastActionObject.length-3],lastActionObject[lastActionObject.length-2]);
+            
+            this.currentlayer = new lz.drawViewNew(parentView,{
+                name:lastActionObject[lastActionObject.length-1],
+                x:lastActionObject[lastActionObject.length-5],
+                y:lastActionObject[lastActionObject.length-4],
+                width:lastActionObject[lastActionObject.length-3],
+                height:lastActionObject[lastActionObject.length-2],
+                opacity:lastActionObject[8]});
+            
+            var t = new lz.drawArrowWhiteBoard(this.currentlayer,{x:0,y:0});
+            
+            //t.setTint(lastActionObject[3],60);
+            t.setColor(lastActionObject[3]);
+            
+            var tx = lastActionObject[6]-lastActionObject[4];
+            var ty = lastActionObject[7]-lastActionObject[5];
+    
+            var gegenkathete = Math.abs(ty);
+            var ankathete = Math.abs(tx); 
+            var hypothenuse = Math.sqrt((ankathete*ankathete)+(gegenkathete*gegenkathete));
+            var sinAlpha = (gegenkathete/hypothenuse);
+            var alpha = Math.asin(sinAlpha);
+            var alpha = alpha/(Math.PI/180);
+                
+            var newx = 0;
+            var newy = 0;
+            if (tx>=0 && ty>=0){    
+                t.setAttribute('rotation',(alpha-45));
+            } else if (tx<0 && ty>=0){
+                newx = lastActionObject[lastActionObject.length-3];
+                t.setAttribute('rotation',(45+90-alpha));
+            } else if (tx<0 && ty<0){
+                newy = lastActionObject[lastActionObject.length-2];
+                newx = lastActionObject[lastActionObject.length-3];
+                t.setAttribute('rotation',(alpha+45+90));
+            } else if (tx>0 && ty<=0){
+                newy = lastActionObject[lastActionObject.length-2];
+                t.setAttribute('rotation',(45-alpha-90));
+            }
+            
+            t.setAttribute('x',newx);
+            t.setAttribute('y',newy);
+            
+            //Scaling
+            var basicLength = Math.sqrt((t.width*t.width)+(t.width*t.width));
+            t.getDisplayObject()._xscale = (hypothenuse/basicLength)*100;
+            t.getDisplayObject()._yscale = (hypothenuse/basicLength)*100;
+            
+            this.currentlayer.fillstyle = lastActionObject[1];
+            this.currentlayer.lineWidth = lastActionObject[2];
+            this.currentlayer.strokeStyle = lastActionObject[3];
+
+        ]]>
+    </method>
+    
+    
+    
+    
+    
+    
+    <!--
+        @keywords deprecated
+     -->
+    <method name="_startDrawarrowline" args="oid_name">
+        <![CDATA[
+        if (oid_name == null) {
+            oid_name = 'drawarrow'+this.getCounter();
+        }
+        
+        this.currentlayer = new lz.drawViewNew(this,{
+            name:oid_name,width:this.width,height:this.height,
+            opacity:this.currentdrawarrowOpacity});
+            
+        this.drawlineOnObject(this.currentlayer,-1,-1,0,0);
+        this.drawlineOnObject(this.currentlayer,this.width,this.height,this.width+1,this.height+1);
+        
+        //Add Resource
+        var t = new lz.drawArrowWhiteBoard(this.currentlayer,{x:this.startx,y:this.starty});
+        
+        //Color
+        //t.setTint(this.currentdrawarrowlinestroke,60);
+        t.setColor(this.currentdrawarrowlinestroke);
+        
+        var tx = this.currentlayer.getMouse('x')-this.startx;
+        var ty = this.currentlayer.getMouse('y')-this.starty;
+
+        var gegenkathete = Math.abs(ty);
+        var ankathete = Math.abs(tx); 
+        var hypothenuse = Math.sqrt((ankathete*ankathete)+(gegenkathete*gegenkathete));
+        var sinAlpha = (gegenkathete/hypothenuse);
+        var alpha = Math.asin(sinAlpha);
+        alpha = alpha/(Math.PI/180);
+            
+        if (tx>=0 && ty>=0){    
+            t.setAttribute('rotation',(alpha-45));
+        } else if (tx<0 && ty>=0){
+            t.setAttribute('rotation',(45+90-alpha));
+        } else if (tx<0 && ty<0){
+            t.setAttribute('rotation',(alpha+45+90));
+        } else if (tx>0 && ty<=0){
+            t.setAttribute('rotation',(45-alpha-90));
+        }
+        
+        //Scaling
+        var basicLength = Math.sqrt((t.width*t.width)+(t.width*t.width));
+        t.getDisplayObject()._xscale = (hypothenuse/basicLength)*100;
+        t.getDisplayObject()._yscale = (hypothenuse/basicLength)*100;
+        
+
+        //Set previous to null
+        this.prevx = null;
+        this.prevy = null;  
+        
+        currentlayer.strokeStyle = this.currentdrawarrowlinestroke;
+        currentlayer.lineWidth = this.currentdrawarrowlinelineWidth;
+        currentlayer.fillstyle = '0x000000';
+        ]]>
+    </method> 
+    
+    <!--
+        @keywords deprecated
+     -->
+    <method name="__startDrawarrowline" args="oid_name">
+        <![CDATA[
+        if (oid_name == null) {
+            oid_name = 'drawarrow'+this.getCounter();
+        }
+        
+        this.currentlayer = new lz.drawViewNew(this,{
+            name:oid_name,width:this.width+2,height:this.height+2,
+            opacity:this.currentdrawarrowOpacity});
+            
+        var distance_x = Math.abs(this.startx - this.endx);
+        var distance_y = Math.abs(this.starty - this.endy);
+        
+        var point_distance_x = Math.round( distance_x/10 );
+        var point_distance_y = Math.round( distance_y/10 );
+        
+        if (this.startx <= this.endx && this.starty >= this.endy) {
+            
+            currentlayer.lineWidth = this.currentrectangleineWidth;
+            currentlayer.beginPath();
+            currentlayer.moveTo(this.startx,this.starty); //1
+            currentlayer.lineTo(this.startx-point_distance_x,this.starty-point_distance_y); //2
+            currentlayer.lineTo(this.endx-point_distance_x*3,this.endy+point_distance_y); //3
+            currentlayer.lineTo(this.endx-point_distance_x*4,this.endy); //4
+            currentlayer.lineTo(this.endx,this.endy); //5
+            currentlayer.lineTo(this.endx,this.endy+point_distance_y*4); //6
+            currentlayer.lineTo(this.endx-point_distance_x,this.endy+point_distance_y*3); //7
+            currentlayer.lineTo(this.startx+point_distance_x,this.starty+point_distance_y); //8
+            currentlayer.lineTo(this.startx,this.starty); //9
+            this.closePath();
+            
+            currentlayer.strokeStyle = 0x000000;
+            currentlayer.stroke();
+
+            currentlayer.fillStyle = this.currentdrawarrowlinelineWidth;
+            currentlayer.fill();
+            
+        }
+        
+        ]]>
+    </method>
+    <!--
+        @keywords deprecated
+     -->
+    <method name="_endDrawarrowline">
+        //Debug.write("endDrawarrowline",this.startx,this.starty,this.endx,this.endy);
+        <![CDATA[
+        var tempName = this.currentlayer.name;
+        //Debug.write("tempName: ",tempName);
+        this.currentlayer.destroy();
+        
+        //GetBounds of that Object
+        var minx = this.width+2;
+        var miny = this.height+2;
+        var maxx = -2;
+        var maxy = -2;
+
+        if (this.startx<minx) minx=this.startx;
+        if (this.endx<minx) minx=this.endx;
+        
+        if (this.startx>maxx) maxx=this.startx;
+        if (this.endx>maxx) maxx=this.endx;
+        
+        if (this.starty<miny) miny=this.starty;
+        if (this.endy<miny) miny=this.endy;
+        
+        if (this.starty>maxy) maxy=this.starty;
+        if (this.endy>maxy) maxy=this.endy;
+        
+        var width = maxx-minx;
+        var height = maxy-miny;
+        
+        //Debug.write("minx,miny,width,height: ",minx,miny,width,height);
+
+        this.currentlayer = new lz.drawViewNew(this,{
+            name:tempName,x:minx-1,y:miny-1,width:width,height:height,
+            opacity:this.currentdrawarrowOpacity});
+            
+        this.currentlayer.fillstyle = '0x000000';
+        this.currentlayer.lineWidth = this.currentdrawarrowlinelineWidth;
+        this.currentlayer.strokeStyle = this.currentdrawarrowlinestroke;
+        
+        //Debug.write("this.currentlayer: ",this.currentlayer);
+
+        var t = new lz.drawArrowWhiteBoard(this.currentlayer,{x:0,y:0});
+
+        //Color
+        //t.setTint(this.currentdrawarrowlinestroke,60);
+        t.setColor(this.currentdrawarrowlinestroke);
+        
+        var tx = this.endx-this.startx;
+        var ty = this.endy-this.starty;
+
+        var gegenkathete = Math.abs(ty);
+        var ankathete = Math.abs(tx); 
+        var hypothenuse = Math.sqrt((ankathete*ankathete)+(gegenkathete*gegenkathete));
+        var sinAlpha = (gegenkathete/hypothenuse);
+        var alpha = Math.asin(sinAlpha);
+        alpha = alpha/(Math.PI/180);
+            
+        var newx = 0;
+        var newy = 0;
+        if (tx>=0 && ty>=0){    
+            t.setAttribute('rotation',(alpha-45));
+        } else if (tx<0 && ty>=0){
+            newx = width;
+            t.setAttribute('rotation',(45+90-alpha));
+        } else if (tx<0 && ty<0){
+            newy = height;
+            newx = width;
+            t.setAttribute('rotation',(alpha+45+90));
+        } else if (tx>0 && ty<=0){
+            newy = height;
+            t.setAttribute('rotation',(45-alpha-90));
+        }
+        
+        t.setAttribute('x',newx);
+        t.setAttribute('y',newy);
+        
+        //Scaling
+        var basicLength = Math.sqrt((t.width*t.width)+(t.width*t.width));
+        t.getDisplayObject()._xscale = (hypothenuse/basicLength)*100;
+        t.getDisplayObject()._yscale = (hypothenuse/basicLength)*100;
+        
+
+        //Set previous to null
+        this.prevx = null;
+        this.prevy = null;  
+        
+        //Add Layer to global Layer     
+        this.layers.push(this.currentlayer);  
+        ]]>
+        this.drawarrowlineregisterFinal();
+        this.currentlayer = new LzView();
+        //Debug.write("t: ",t);
+    </method> 
+    
+</class>
+
+</library>
diff --git a/WebContent/src/test/content/audioTest.lzx b/WebContent/src/test/content/audioTest.lzx
new file mode 100644
index 0000000..511582c
--- /dev/null
+++ b/WebContent/src/test/content/audioTest.lzx
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+<!--
+	exmple class definition
+	
+	as soon as you see possibility try to make usage of classes
+	
+	in general: 
+	usage of layout is nice but it needs more views just for layouting.
+	in a simple scenario thats okay,
+	but in the openmeetings app itself most of the views are set *absolute* by x and y
+	cause this reduces the total amount of views
+	instancing (=making views dynamically like we do) is time critical .. if you create or destroy too many
+	views at one time the browser hangs and cpu will be at 100%
+	so in the openmeetings app try to use as less views as possible
+	use at less constraints as possible
+	use $once{ .. } instead of ${ .. } or use setters and getters
+	don't use canvas.setAttribute('myvar','foo') just use canvas.myvar='foo' 
+	whenever it is not necessary (it will throw some 
+	events which are useless if you don't have any constraints pointing to 'myvar' and which will cost 
+	performance)
+	
+	 
+	
+ -->
+
+	<!-- define resources once at one place instead of
+		linking with the path every time you want it
+		-->
+<resource name="_btn_play_rsc" src="../resources/play.png" />
+<resource name="_btn_stop_rsc" src="../resources/stop.png" />
+<resource name="_btn_volume_rsc" src="../resources/mix_volume.png" />
+<resource name="_btn_audio_scrubtrack_rsc" src="../resources/audio_scrubtrack.png" />
+<resource name="_btn_audio_scrubber_rsc" src="../resources/audio_scrubber.png" />
+	
+<class name="audioTest" extends="view" play="false" y="40">
+	
+	<!-- please write layout definition always on 
+		top or on bottom of the view content
+		or write it directly into the view definition -->
+	<simplelayout axis="y" spacing="5"/>
+	
+	   <view id="audioplayer" play="false" y="40" resource="http:resources/Star_in_the_east_solfege.mp3" 
+		   oninit="this.stop();">
+		   
+		   <!-- follow a structure by defining view contents:
+			   1.) define attributes
+			   2.) define handlers (event handlers oninit for example if not already in view definition)
+			   3.) define methods
+			   4.) define layout (if not already in view definition)
+			   5.) define content 
+			   -->
+		   
+		   <!-- comment about this attribute and don't forget type definition in attribute's:
+			   this attribute is volume-level -->
+			<attribute name="vol" value="100" type="number" />
+		   
+		    <simplelayout axis="x" spacing="10"/>
+		   
+			<view>
+				<simplelayout axis="x" spacing="-1"/>
+				<button width="40" onclick="audioplayer.stop()">
+					<view resource="_btn_stop_rsc" y="6" align="center"/>
+				</button>
+				<button width="40" onclick="audioplayer.play()">
+					<view resource="_btn_play_rsc" y="5" align="center"/>
+				</button>
+			</view>	 
+		          
+			<view>
+				<simplelayout axis="x" spacing="-1"/>
+				<button width="40" text="-"
+					onclick="audioplayer.setVolume( audioplayer.getVolume() -10)">
+					<view resource="_btn_volume_rsc" y="5" align="right"/>
+				</button>
+				<button width="40" text="+" 
+					onclick="audioplayer.setVolume( audioplayer.getVolume() +10)">
+					<view resource="_btn_volume_rsc" y="5" align="right"/>
+				</button>
+			</view>
+					        
+			
+			<view name="background" bgcolor="black" width="202" height="15" 
+					y="50" options="ignorelayout;">
+				<view name="loadbar" resource="_btn_audio_scrubtrack_rsc" 
+						width="${audioplayer.loadperc * 200}">
+					<view name="playbar" resource="_btn_audio_scrubber_rsc" 
+							y="1" x="${Math.round(180 * audioplayer.frame/audioplayer.totalframes)}"/>
+				</view>
+			</view>
+		   
+		</view>
+		
+		<!--
+			think about contraints ... if they really need to be updated always
+			${ canvas.myvar } => value will be updated every time 
+								myvar changes by canvas.setAttribute('myvar','foo')
+								normally this is not needed
+								high performance/cpu usage
+			$once{ canvas.myvar } => value will be only set once .. oninit of this attribute/view
+									lower perfomance/cpu usage 
+			try to use $once whenever possible
+			-->
+		<text text="$once{mess.listen_sound}" multiline="true" width="${this.parent.width - 20}" />
+
+		<view>
+			
+			<simplelayout axis="x" spacing="10"/>
+			
+			<button text="$once{ mess.no }">					                
+			</button>
+			<button text="$once{ mess.yes }">					                
+			</button>
+			
+		</view>
+	
+	<nextButton nextTabpane="$once{ this.parent.parent.parent.microTab }" text="$once{mess.next}" />
+	
+</class>
+
+</library>
diff --git a/WebContent/src/test/content/library.lzx b/WebContent/src/test/content/library.lzx
new file mode 100644
index 0000000..46f0847
--- /dev/null
+++ b/WebContent/src/test/content/library.lzx
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+    <include href="audioTest.lzx" />
+
+</library>
diff --git a/WebContent/src/test/html.lzx b/WebContent/src/test/html.lzx
new file mode 100644
index 0000000..2418fef
--- /dev/null
+++ b/WebContent/src/test/html.lzx
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+
+<canvas debug="true" width="100%" height="100%" fontsize="14" title="OpenMeetings - Computer testing">
+	
+	<debug fontsize="14" oninit="Debug.showInternalProperties = true"/>
+
+                <edittext name="url" width="400"> 
+                    <handler name="onkeyup" args="key">
+                        if ((key == 27) || (key == 13)) {
+                            this.parent.readStart.onclick.sendEvent();
+                        }
+                    </handler>
+                </edittext>
+                
+                <button name="readStart" width="200" x="400" text="LOAD"
+                                y="2">
+                    <handler name="onclick">
+                        <![CDATA[
+                            var url = parent.url.getText();
+                            if ((url.indexOf("http://") < 0)
+                                    && (url.indexOf("https://") < 0)) {
+                                url = "http://" + url;
+                            }
+    
+                            parent.htmlviewer.setAttribute("src",url);
+                            parent.htmlviewer.setAttribute("visible",true);
+    
+                        ]]>
+                    </handler>
+                </button>
+                
+        <html name="htmlviewer" x="4" y="60" width="600" height="500" bgcolor="0xCCCCCC" >
+            <handler name="onloading" args="loading">
+                this.loading = loading;
+                if ($debug) Debug.write("LOADING ",loading);
+            </handler>
+            <handler name="onsrc" args="src">
+                this.src = src;
+                if ($debug) Debug.write("SRC ",loading);
+            </handler>
+        </html>
+	
+</canvas>
diff --git a/WebContent/src/test/html.lzx.swf8.swf b/WebContent/src/test/html.lzx.swf8.swf
new file mode 100644
index 0000000..2263944
--- /dev/null
+++ b/WebContent/src/test/html.lzx.swf8.swf
Binary files differ
diff --git a/WebContent/src/test/html.lzx.swf9.swf b/WebContent/src/test/html.lzx.swf9.swf
new file mode 100644
index 0000000..22d8cd7
--- /dev/null
+++ b/WebContent/src/test/html.lzx.swf9.swf
Binary files differ
diff --git a/WebContent/src/test/iFrame.lzx b/WebContent/src/test/iFrame.lzx
new file mode 100644
index 0000000..cdabb9b
--- /dev/null
+++ b/WebContent/src/test/iFrame.lzx
@@ -0,0 +1,245 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+
+<!-- 
+
+Requirements :
+the html must contain the following in the HEAD :
+
+			function createIFrame(n,id,src,x,y,w,h){
+				var newChild = document.createElement('iframe');
+				newChild.style.visibility='hidden';
+				newChild.style.position='absolute';
+				newChild.style.top='0px';
+				newChild.id=id;
+				newChild.name=n;
+				newChild.src=src;
+				newChild.style.border='0px';
+				newChild.style.left=x+"px";
+				newChild.style.top=y+"px";
+				newChild.width=w+"px";
+				newChild.height=h+"px";
+				document.body.appendChild(newChild);
+			}
+			function centerIframe(iid,x,y,w,h) {
+				var frameRef=document.getElementById(iid);
+				frameRef.style.left=x+"px";
+				frameRef.style.top=y+"px";
+				frameRef.width=w+"px";
+				frameRef.height=h+"px";
+			}
+			function hideIFrame(){
+			    document.getElementById("ifrm1_id").style.visibility="hidden";
+			}
+			function showIFrame(){
+			    document.getElementById("ifrm1_id").style.visibility="visible";
+			}
+
+Attributes :
+ - isrc         : url for the iframeView
+ - iname        : name for the iframeView
+ - iid          : id for the iframeView
+ - callbackTimerDelay           : optional
+ - createIFrame_callbackCounter : optional
+ - createIFrame_callbackMax     : optional
+
+Exemple :
+
+      <canvas debug="true" >
+        
+        <include href="library/iFrame.lzx" />
+        
+        
+        <window id="w" x="100" y="50" width="350" height="250" resizable="true" >
+        
+          <handler name="oninit">
+            new LzDelegate(ifrm,"centerIframe",this,"onx");
+            new LzDelegate(ifrm,"centerIframe",this,"ony");
+          </handler>
+          
+          <iframeView name="ifrm"
+            width = "${immediateparent.width  }"
+            height= "${immediateparent.height }"
+            isrc  = "http://www.google.fr/"
+            iid   = "myIframeId"
+            iname = "myIfrName"
+          />
+          
+        </window>
+          
+        
+      </canvas>
+
+-->
+
+<library>
+
+  <class name="iframeView" extends="view" >
+  
+    <attribute name="isrc" type="string" setter="setIsrc(isrc)"/>
+    <attribute name="iname" type="string" />
+    <attribute name="iid" type="string" />
+    
+    <method name="display">
+      var s = "javascript:document.getElementById('"
+                        + iid 
+                        + "').style.visibility='visible'";
+      lz.Browser.loadJS(s);
+    </method>
+    
+    <method name="hide">
+      var s = "javascript:document.getElementById('"
+                        + iid 
+                        + "').style.visibility='hidden'";
+      //Debug.write("on hide l'iframe",iid," :",s);
+      lz.Browser.loadJS(s);
+    </method>    
+    
+    <method name="setIsrc" args="s">
+      if (!this.isinited || this.isrc== null) {                      //catch the case where this.time is being 
+        this.isrc = s;                                               //initialized during object instantiation
+        return;
+      }      
+      var s = "javascript:document.getElementById('"
+                        + iid 
+                        + "').src='"
+                        + s
+                        + "'";
+      lz.Browser.loadJS(s);
+    </method>
+    
+    <handler name="oninit" >
+      // First initialize the iFrame loading detection mechanism :
+      //initCreateIFrameDone();
+      // Now creating the iframeView :
+      //createIFrame();
+    </handler>
+
+    <method name="createIFrame" >
+    	//Debug.write("create IFRAME !!!!!!!!!!!!!!");
+      var s = "javascript:createIFrame('"
+                        + iname  + "','"
+                        + iid + "','"
+                        + isrc + "','"
+                        + this.getAttributeRelative("x",canvas)      + "','"
+                        + this.getAttributeRelative("y",canvas)      + "','"
+                        + (width +1) + "','"
+                        + (height+1)
+                        + "')";
+      // the browser must also tell our laszlo when the iframeView has been loaded :
+      s = s + ";document.getElementById('"
+                        + iid 
+                        + "').style.visibility='visible'";
+      s = s + ";lzSetCanvasAttribute('" + createIFrameDone_attr + "', true)";
+      ////Debug.write("Calling createIFrame ; loadJS : " + s);//
+      lz.Browser.loadJS(s);
+      // initializing the scheduled check of this iFrame's load state
+      if(typeof this.createIFrame_callbackDelegate == 'undefined') {
+         this.createIFrame_callbackDelegate = new LzDelegate( this, "createIFrame_callback" );
+      }
+      lz.Timer.resetTimer( this.createIFrame_callbackDelegate, callbackTimerDelay );
+    </method>
+    
+    <!-- Iframe load state detection state and initialization -->
+    <attribute name="createIFrameDone_attr" type="string"/><!-- is initialized in oninit() -->
+    <method name="initCreateIFrameDone">
+      // Initializes the iFrame loading detection mechanism.
+      // computing and setting the name of this iframeView's own
+      // load state attribute on the canvas :
+      this.createIFrameDone_attr = 'iFrame.createIFrameDone_' + this.iid;
+      // initializing this iframeView's own load state on the canvas :
+      canvas.setAttribute(createIFrameDone_attr, false);
+      ////Debug.write('createIFrameDone_attr='+this.createIFrameDone_attr);//
+      ////Debug.write('createIFrameDone='+this.createIFrameDone+canvas.getAttribute(createIFrameDone_attr));//
+	</method>
+	
+    <!-- IFrame load state scheduled check -->
+    <attribute name="callbackTimerDelay" type="number" value="100" />
+    <attribute name="createIFrame_callbackCounter" type="number" value="0" />
+    <attribute name="createIFrame_callbackMax" type="number" value="1000" />
+    <method name="createIFrame_callback">
+      ////Debug.write("createIFrame_callback : createIFrame_done=" + canvas.getAttribute(createIFrameDone_attr));//
+      if(!canvas.getAttribute(createIFrameDone_attr)) {
+         if (this.createIFrame_callbackCounter * callbackTimerDelay &lt; createIFrame_callbackMax) {
+            this.createIFrame_callbackCounter = this.createIFrame_callbackCounter + 1;
+            lz.Timer.resetTimer( this.createIFrame_callbackDelegate, callbackTimerDelay );
+         }
+      } else {
+         // creating iframeView moves listeners :
+         //Debug.write('createListeners');//
+         createListeners();
+         // now let's make sure the iframeView has been toggled by moving it
+         if (this.iFrameJsStack == 'javascript:') {
+            ////Debug.write('createListeners.move');//
+            // there's no javascript stack yet, so let's simply move the iframeView :
+            centerIframe();
+         } else {
+            ////Debug.write('createListeners.stacked '+this.iFrameJsStack);//
+            // some javascript has been scheduled to be loaded, so let's do it :
+            lz.Browser.loadJS(this.iFrameJsStack);
+         }
+      }
+    </method>
+    
+    <!-- Stackable javascript execution mechanisme -->
+    <attribute name="iFrameJsStack" type="string" value="javascript:" />
+    <method name="executeJs" args="s">
+      ////Debug.write("executeJs", s);//
+      if (canvas.getAttribute(createIFrameDone_attr)) {
+         ////Debug.write("executeJs.direct", s);//
+         lz.Browser.loadJS(s); // iframeView is loaded, so direct execution
+      } else {
+         ////Debug.write("executeJs.stacked", s);//
+         // else the iframeView has not yet been loaded, so let's stack it :
+         this.iFrameJsStack = this.iFrameJsStack + ';' + s ;
+      }
+    </method>
+	
+    <method name="createListeners" >
+      this.myDelx = new LzDelegate(this, "centerIframe", this, "onx");
+      this.myDely = new LzDelegate(this, "centerIframe", this, "ony");
+      this.myDelw = new LzDelegate(this, "centerIframe", this, "onwidth");
+      this.myDelh = new LzDelegate(this, "centerIframe", this, "onheight");
+    </method>
+    
+    <method  name="centerIframe">
+      // we use a timer in order to avoid too many js call (slow)
+      //Debug.write("centerIframe request");
+      if(typeof this.centerIframe_Delegate == 'undefined') {
+         this.centerIframe_Delegate = new LzDelegate( this, "centerIframe_jsCall" );
+      }
+      lz.Timer.resetTimer( this.centerIframe_Delegate, 20 );
+    </method>
+    
+    <method  name="centerIframe_jsCall">
+      var s = "javascript:centerIframe('"
+            + this.iid   + "','"
+            + this.getAttributeRelative("x",canvas)      + "','"
+            + this.getAttributeRelative("y",canvas)      + "','"
+            + (width +1) + "','"
+            + (height+1) + "')";
+      this.executeJs(s); // using the stackable js exec mechanism
+    </method>
+    
+  </class>
+
+</library>
+ 
diff --git a/WebContent/src/test/images/maindebug.lzx b/WebContent/src/test/images/maindebug.lzx
new file mode 100644
index 0000000..62b4f0d
--- /dev/null
+++ b/WebContent/src/test/images/maindebug.lzx
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<canvas debug="true" width="100%" height="100%" title="Geo Map Portal">
+    
+    <debug fontsize="11" oninit="Debug.showInternalProperties = true" />
+
+<handler name="oninit">
+    <![CDATA[
+    
+        LzLoadQueue.maxOpen = 100;
+
+    
+	    //
+        var url = new Array();
+	    
+	    
+        
+        url[5] = "http://openmeetings.googlecode.com/svn/docs/uml/images/openmeetings/diagram/ModerationChangeClientSide.jpg";
+		url[4] = "http://openmeetings.googlecode.com/svn/docs/uml/images/openmeetings/diagram/ModerationChangeClientSideBig.jpg";
+		url[3] = "http://openmeetings.googlecode.com/svn/docs/uml/images/openmeetings/diagram/VideoClass.png";
+		url[2] = "http://openmeetings.googlecode.com/svn/docs/LanguageNavigationErrors.png";
+		url[1] = "http://openmeetings.googlecode.com/svn/docs/OpenMeetingsSOAPGateway.png";
+		url[0] = "http://openmeetings.googlecode.com/svn/docs/OpenmeetingsAllTables.png";
+        url[6] = "http://openmeetings.googlecode.com/svn/docs/SOAPFlowDirectLogin.png";
+        url[7] = "http://openmeetings.googlecode.com/svn/docs/UserDiagram.png";
+        url[8] = "http://openmeetings.googlecode.com/svn/docs/UserGroupsOrganizationsAndRooms.png";
+        url[9] = "http://openmeetings.googlecode.com/svn/docs/architecture.jpg";
+        url[10] = "http://openmeetings.googlecode.com/svn/docs/moodle_plugin_audience.png";
+        url[11] = "http://openmeetings.googlecode.com/svn/docs/moodle_plugin_conference.png";
+        url[12] = "http://openmeetings.googlecode.com/svn/docs/newWhiteBoard.PNG";
+        url[13] = "http://openmeetings.googlecode.com/svn/docs/newWhiteBoard2.PNG";
+        url[14] = "http://openmeetings.googlecode.com/svn/docs/newWhiteBoard3.PNG";
+        url[15] = "http://openmeetings.googlecode.com/svn/docs/test_application_audio_video.png";
+        
+        
+        
+        
+        for (var i=0;i<16;i++) {
+            var d = new Date();
+            new layerImage(canvas.myView,{srcImage:url[i]+"?time="+i+d.getTime()});
+        }
+        
+        
+        for (var i=0;i<40;i++) {
+            var d = new Date();
+            new layerImage(canvas.myView,{srcImage:"http://openmeetings.googlecode.com/svn/docs/uml/images/openmeetings/diagram/ModerationChangeClientSideBig.jpg?time="+i+d.getTime()});
+        }
+
+    ]]>
+</handler>
+
+<class name="layerImage" extends="image">
+    <attribute name="layerid" value="0" type="number" />
+    <attribute name="type" value="" type="string" />
+    <attribute name="isLayerImage" value="true" type="boolean" />
+    <attribute name="srcImage" value="" type="string" setter="this.setImageSource(srcImage)" />
+    <method name="setImageSource" args="srcImage">
+        if ($debug) Debug.write("setImageSource",srcImage);
+        //var mcRef = this.getDisplayObject();
+        //mcRef.loadMovie(srcImage);
+        this.setSource(srcImage);
+    </method>
+</class>  
+
+<view name="myView" />
+  
+</canvas>
diff --git a/WebContent/src/test/images/maindebugTimer.lzx b/WebContent/src/test/images/maindebugTimer.lzx
new file mode 100644
index 0000000..95abcee
--- /dev/null
+++ b/WebContent/src/test/images/maindebugTimer.lzx
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<canvas debug="true" width="100%" height="100%" title="Geo Map Portal">
+    
+    <debug fontsize="11" oninit="Debug.showInternalProperties = true" />
+
+<attribute name="url" value="" type="string" />
+<attribute name="currentIndex" value="0" type="number" />
+
+<handler name="oninit">
+    <![CDATA[
+    
+	    LzLoadQueue.maxOpen = 100;
+	    
+	    this.url = new Array();
+	    
+	    this.url[5] = "http://openmeetings.googlecode.com/svn/docs/uml/images/openmeetings/diagram/ModerationChangeClientSide.jpg";
+	    this.url[4] = "http://openmeetings.googlecode.com/svn/docs/uml/images/openmeetings/diagram/ModerationChangeClientSideBig.jpg";
+	    this.url[3] = "http://openmeetings.googlecode.com/svn/docs/uml/images/openmeetings/diagram/VideoClass.png";
+	    this.url[2] = "http://openmeetings.googlecode.com/svn/docs/LanguageNavigationErrors.png";
+	    this.url[1] = "http://openmeetings.googlecode.com/svn/docs/OpenMeetingsSOAPGateway.png";
+	    this.url[0] = "http://openmeetings.googlecode.com/svn/docs/OpenmeetingsAllTables.png";
+	    this.url[6] = "http://openmeetings.googlecode.com/svn/docs/SOAPFlowDirectLogin.png";
+	    this.url[7] = "http://openmeetings.googlecode.com/svn/docs/UserDiagram.png";
+	    this.url[8] = "http://openmeetings.googlecode.com/svn/docs/UserGroupsOrganizationsAndRooms.png";
+	    this.url[9] = "http://openmeetings.googlecode.com/svn/docs/architecture.jpg";
+	    this.url[10] = "http://openmeetings.googlecode.com/svn/docs/moodle_plugin_audience.png";
+	    this.url[11] = "http://openmeetings.googlecode.com/svn/docs/moodle_plugin_conference.png";
+	    this.url[12] = "http://openmeetings.googlecode.com/svn/docs/newWhiteBoard.PNG";
+	    this.url[13] = "http://openmeetings.googlecode.com/svn/docs/newWhiteBoard2.PNG";
+	    this.url[14] = "http://openmeetings.googlecode.com/svn/docs/newWhiteBoard3.PNG";
+	    this.url[15] = "http://openmeetings.googlecode.com/svn/docs/test_application_audio_video.png";
+	    this.url[16] = "http://openmeetings.googlecode.com/svn/docs/uml/images/openmeetings/diagram/ModerationChangeClientSideBig.jpg";
+	    
+	    for (var k = 16;k<40;k++) {
+            this.url[k] = "http://openmeetings.googlecode.com/svn/docs/uml/images/openmeetings/diagram/ModerationChangeClientSideBig.jpg";
+        }
+	    
+	    this.fadeDelegate = new LzDelegate( this, "sendImage" );
+	    LzTimer.addTimer( this.fadeDelegate, 50 );
+        
+    ]]>
+</handler>
+
+<method name="sendImage">
+    <![CDATA[
+    
+        var d = new Date();
+        
+        new layerImage(canvas.myView,{srcImage:this.url[this.currentIndex]+"?time="+d.getTime()});
+        
+        this.currentIndex ++;
+        
+        if (this.currentIndex < 40) {
+            LzTimer.addTimer( this.fadeDelegate, 50 );
+        }
+
+    ]]>
+</method>
+
+<class name="layerImage" extends="image">
+    <attribute name="layerid" value="0" type="number" />
+    <attribute name="type" value="" type="string" />
+    <attribute name="isLayerImage" value="true" type="boolean" />
+    <attribute name="srcImage" value="" type="string" setter="this.setImageSource(srcImage)" />
+    <method name="setImageSource" args="srcImage">
+        if ($debug) Debug.write("setImageSource",srcImage);
+        //var mcRef = this.getDisplayObject();
+        //mcRef.loadMovie(srcImage);
+        this.setSource(srcImage);
+    </method>
+</class>  
+
+<view name="myView" />
+  
+</canvas>
diff --git a/WebContent/src/test/lang/en.lzx b/WebContent/src/test/lang/en.lzx
new file mode 100644
index 0000000..28d7146
--- /dev/null
+++ b/WebContent/src/test/lang/en.lzx
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+<script>
+<![CDATA[
+
+var mess = {};
+
+mess.home = "Home";
+mess.welcome = "Welcome !<br />We now determine if your configuration is good to have the best experience with OpenMeetings.";
+mess.sound = "Sound";
+mess.micro = "Micro";
+mess.webcam = "Webcam";
+mess.bandwidth = "Bandwidth";
+mess.latency = "Latency";
+mess.synthesis = "Synthesis";
+mess.next = "Next >";
+mess.listen_sound = "Do you hear the voice ?";
+mess.yes = "Yes";
+mess.no = "No";
+mess.microRecord = "Record your voice and click on \"Play\" button to hear if your micro works.";
+mess.webcamText = "Your webcam :";
+mess.bandwidthText = "We are testing the capacity of your Internet connexion.";
+mess.latencyText = "We are testing the delay between your computer and our server.";
+mess.synthesisText = "Your results :";
+]]>
+</script>
+</library>
diff --git a/WebContent/src/test/lazslo-rtltext/fonts/hebrew/arial.ttf b/WebContent/src/test/lazslo-rtltext/fonts/hebrew/arial.ttf
new file mode 100644
index 0000000..ff0815c
--- /dev/null
+++ b/WebContent/src/test/lazslo-rtltext/fonts/hebrew/arial.ttf
Binary files differ
diff --git a/WebContent/src/test/lazslo-rtltext/fonts/hebrew/arialbd.ttf b/WebContent/src/test/lazslo-rtltext/fonts/hebrew/arialbd.ttf
new file mode 100644
index 0000000..d0d857e
--- /dev/null
+++ b/WebContent/src/test/lazslo-rtltext/fonts/hebrew/arialbd.ttf
Binary files differ
diff --git a/WebContent/src/test/lazslo-rtltext/resources.lzx b/WebContent/src/test/lazslo-rtltext/resources.lzx
new file mode 100644
index 0000000..c39f8ed
--- /dev/null
+++ b/WebContent/src/test/lazslo-rtltext/resources.lzx
@@ -0,0 +1,35 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+    <!-- Fonts -->
+    <font name="default">
+      <face src="fonts/hebrew/arial.ttf"/>
+      <face src="fonts/hebrew/arialbd.ttf" style="bold"/>
+	</font>
+
+</library>
+<!--                                                                       -->
+<!-- Copyright 2001-2004 Laszlo Systems, Inc.  All Rights Reserved.        -->
+<!-- Use is subject to license terms.                                      -->
+<!--                                                                       -->
+<!--                                                                       -->
+<!-- Laszlo Presentation Server version 3.0b1 001227                     -->
+<!--                                                                       -->
diff --git a/WebContent/src/test/lazslo-rtltext/rtlText.lzx b/WebContent/src/test/lazslo-rtltext/rtlText.lzx
new file mode 100644
index 0000000..caf1e73
--- /dev/null
+++ b/WebContent/src/test/lazslo-rtltext/rtlText.lzx
@@ -0,0 +1,82 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<!-- CLASS: rtlText ============================================ --> 
+	<!-- use this on dynamic data text tags. -->
+	<class name="rtlText" extends="text">
+		
+		<!-- ATTRIBUTES -->
+		<!-- text alignment: default is right -->
+    <attribute name="textAlign" value="right" type="string" /> 
+    
+    <method name="getTextAlign">    
+    	return this.textAlign;
+    </method>
+    
+    <method name="setTextAlign">
+    	switch ( this.getTextAlign() ) {
+				case "left" :
+					this.setX( 0 );
+				break;
+				case "center" :
+					this.setX( this.parent.width / 2 - this.getTextWidth() / 2 );
+				break;
+				case "right" :
+					this.setX( this.parent.width - this.getTextWidth() );
+				break;
+			}
+    </method>
+    
+    <method name="isLTR" args="c">
+		<![CDATA[
+			return ( c >= 48 && c <= 57 || c >= 65 && c <= 90 || c >= 97 && c <= 122 );
+		]]>
+	</method>
+    
+    <method name="isHEB" args="c">
+		<![CDATA[
+			return ( c >= 224 && c <= 250 );
+		]]>
+	</method>
+    
+    <method name="reverseWords" args="str">
+		<![CDATA[
+			if ( str == "" || str == null ) return ""; // undefined
+			// first char indicates the main directive of str (rtl/ltr)
+			if ( isLTR( str.charCodeAt( 0 ) ) ) return str; // english or number
+			var words_arr = str.split( "" ); // an array of chars
+			for ( var i = 0, str = ""; i < words_arr.length; i++ ) // reverse their order
+				str += words_arr[ words_arr.length - i - 1 ];
+			return str;
+		]]>
+	</method>
+		
+	<method name="applyData" args="rtl_str">
+		this.setAttribute('text', reverseWords( rtl_str ) );
+	</method>
+	
+	<handler name="ontext">
+		setTextAlign();
+	</handler>
+		
+	</class>
+
+</library>
diff --git a/WebContent/src/test/lazslo-rtltext/rtldata.xml b/WebContent/src/test/lazslo-rtltext/rtldata.xml
new file mode 100644
index 0000000..1d2f7d4
--- /dev/null
+++ b/WebContent/src/test/lazslo-rtltext/rtldata.xml
@@ -0,0 +1,56 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!-- Persons Data -->
+<dataset name="personsData">
+	<myXML>
+    <person>
+        <name>אריאל שרון</name>
+        <title>ראש הממשלה</title>
+    </person>
+    <person>
+        <name>גל פרידמן</name>
+        <title>מדליסט אולימפי</title>
+    </person>
+     <person>
+        <name>פיני גרשון</name>
+        <title>מאמן מכבי תל-אביב</title>
+    </person>
+    <person>
+        <name>שרי אריסון</name>
+        <title>מיליארדרית</title>
+    </person>
+    <person>
+        <name>שלמה ארצי</name>
+        <title>זמר</title>
+    </person>
+    <person>
+        <name>מיקי ברקוביץ</name>
+        <title>כדורסלן עבר</title>
+    </person>
+    <person>
+        <name>יוסי בניון</name>
+        <title>שחקן כדורגל</title>
+    </person>
+   <person>
+        <name>ביל גייטס</name>
+        <title>בעל חברת מיקרוסופט</title>
+    </person>
+	</myXML>
+</dataset>
diff --git a/WebContent/src/test/lazslo-rtltext/test.lzx b/WebContent/src/test/lazslo-rtltext/test.lzx
new file mode 100644
index 0000000..572932d
--- /dev/null
+++ b/WebContent/src/test/lazslo-rtltext/test.lzx
@@ -0,0 +1,42 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<canvas debug="false">     
+
+	<!-- DATASETS -->
+	<include href="rtldata.xml"/>
+
+	<!-- RESOURCES [FONTS] -->
+  <include href="resources.lzx"/> 
+
+	<!-- RTLTEXT CLASS DEFINITION -->
+  <include href="rtlText.lzx"/> 
+
+	
+	<view x="200" y="20">
+    <simplelayout axis="y" />
+    <view datapath="personsData:/myXML[1]/person" width="300" bgcolor="#cccccc">
+      <simplelayout axis="y" />
+    	<rtlText name="txtName" textAlign="center" fontsize="10" font="default" fontstyle="bold" datapath="name/text()"/>
+    	<rtlText name="txtTitle" fontsize="10" font="default" datapath="title/text()"/> 
+    	<text></text>
+    </view>
+  </view>
+
+</canvas>
diff --git a/WebContent/src/test/lib/library.lzx b/WebContent/src/test/lib/library.lzx
new file mode 100644
index 0000000..3f4ad02
--- /dev/null
+++ b/WebContent/src/test/lib/library.lzx
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+    <include href="nextButton.lzx" />
+
+</library>
diff --git a/WebContent/src/test/lib/nextButton.lzx b/WebContent/src/test/lib/nextButton.lzx
new file mode 100644
index 0000000..2885230
--- /dev/null
+++ b/WebContent/src/test/lib/nextButton.lzx
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="nextButton" extends="button" onclick="changeNextTabpane()">
+    
+    <attribute name="align" value="right" />
+    <attribute name="isdefault" value="true" />
+
+	<attribute name="nextTabpane" required="true" />
+
+    <method name="changeNextTabpane">
+      var object = this.getAttribute('nextTabpane');
+      object.setAttribute("selected","true");
+    </method>
+
+</class>
+
+</library>
diff --git a/WebContent/src/test/main.lzx b/WebContent/src/test/main.lzx
new file mode 100644
index 0000000..42784da
--- /dev/null
+++ b/WebContent/src/test/main.lzx
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+
+<canvas debug="true" width="100%" height="100%" fontsize="14" title="OpenMeetings - Computer testing">
+	
+	<debug fontsize="14" oninit="Debug.showInternalProperties = true"/>
+
+<include href="lang/en.lzx"/>
+
+<include href="lib/"/>
+<include href="content/"/>
+
+            <tabs name="mainTabs">
+               <tabpane selected="true" text="${mess.home}">
+					<simplelayout axis="y" spacing="5"/>
+                    <text text="${mess.welcome}" multiline="true" width="${this.parent.width - 20}" />
+                    <nextButton nextTabpane="${this.parent.parent.soundTab}" text="${mess.next}" />
+                </tabpane>
+
+                <tabpane text="${mess.sound}" name="soundTab" onselect="//Debug.write('focus'); audioplayer.play();">
+					
+					<!-- define content areas which are 
+						kind of component in classes -->
+					 <audioTest name="_audiotest" />
+					
+                </tabpane>                
+                
+                <tabpane text="${mess.micro}" name="microTab">
+					<simplelayout axis="y" spacing="5"/>
+                    <text text="${mess.microRecord}" multiline="true" width="${this.parent.width - 20}" />
+					        <view>
+					            <simplelayout axis="x" spacing="-1"/>
+					           <button width="40" onclick="audioplayer.stop()">
+					                <view resource="resources/play.png" y="6" align="center"/>
+					            </button>
+					            <button width="40" onclick="audioplayer.play()">
+					                <view resource="resources/record.png" y="5" align="center"/>
+					            </button>
+					        </view>
+					        
+					        <view>
+					            <simplelayout axis="x" spacing="-1"/>
+					            <button width="40" onclick="audioplayer.setVolume( audioplayer.getVolume() -10)">
+					                    -<view resource="resources/mix_volume.png" y="5" align="right"/>
+					                </button>
+					            <button width="40" onclick="audioplayer.setVolume( audioplayer.getVolume() +10)">
+					                    +<view resource="resources/mix_volume.png" y="5" align="right"/>
+					                </button>
+					        </view>
+                    <nextButton nextTabpane="${this.parent.parent.webcamTab}" text="${mess.next}" />
+                </tabpane>                
+
+                <tabpane text="${mess.webcam}" name="webcamTab">
+					<simplelayout axis="y" spacing="5"/>
+                    <text text="${mess.webcamText}" multiline="true" width="${this.parent.width - 20}" />
+		<view id="v1" layout="axis:y; spacing:4">
+			<videoview id="live" type="rtmp" stream="$once{canvas.s1}" width="240" height="160">
+				<camera id="cam" show="true" fps="20" width="240" height="160" 
+																picturequality="0"/>
+				<microphone id="mic" capturing="false"/>
+				
+			</videoview>
+		</view>                    
+                    <nextButton nextTabpane="${this.parent.parent.messTab}" text="${mess.next}" />
+                </tabpane>                
+
+                <tabpane text="${mess.bandwidth}" name="messTab">
+					<simplelayout axis="y" spacing="5"/>
+                    <text text="${mess.bandwidthText}" multiline="true" width="${this.parent.width - 20}" />
+                    <nextButton nextTabpane="${this.parent.parent.latencyTab}" text="${mess.next}" />
+                </tabpane>                
+
+                <tabpane text="${mess.latency}" name="latencyTab">
+					<simplelayout axis="y" spacing="5"/>
+                    <text text="${mess.latencyText}" multiline="true" width="${this.parent.width - 20}" />
+                    <nextButton nextTabpane="${this.parent.parent.synthesisTab}" text="${mess.next}" />
+                </tabpane>                
+
+                <tabpane text="${mess.synthesis}" name="synthesisTab">
+					<simplelayout axis="y" spacing="5"/>
+                    <text text="${mess.synthesisText}" multiline="true" width="${this.parent.width - 20}" />
+                </tabpane>                
+            </tabs>
+
+	
+	<rtmpconnection src="rtmp://192.168.0.1/'+canvas.webAppRootKey+'/test" autoconnect="true"/>
+	<mediastream name="s1" type="rtmp"/>
+	<mediastream name="s2" type="rtmp"/>
+	<simplelayout/>
+
+<!--	
+	<text multiline="true" width="100%"> Instructions:
+		<br/> 1. Either run a flash media server on localhost (127.0.0.1), or ssh tunnel to a
+		media server at a known host
+		<br/> 2. Press the broadcast button. (Grant camera access permission if needed.) The
+		button should change to say "stop broadcasting"
+		<br/> 3. Press the receive button. You should be receiving audio and video from
+		yourself and the button should say "stop receiving."
+		<br/> 4. Try out the audio and video mute buttons. The video mute should freeze the
+		received picture. The audio mute should silence the received sound.
+		<br/> 5. Press the receive button. The received video should freeze and the button
+		should say "stop receiving".
+		<br/> 6. Press the receive button again. The video should resume and the button should
+		say "receiving".
+		<br/> 7. Press the broadcast button. The received video should freeze and the button
+		should say "broadcast".<br/> <br/> The indicator below shows the status of the video
+		connection.
+		</text>
+-->	
+</canvas>
diff --git a/WebContent/src/test/page/main.lzx b/WebContent/src/test/page/main.lzx
new file mode 100644
index 0000000..e05088f
--- /dev/null
+++ b/WebContent/src/test/page/main.lzx
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<canvas debug="true" width="100%" height="100%" 
+		fontsize="14" title="OpenMeetings - Computer testing">
+
+    <image name="_image" src="Добрыйдень.jpg" />
+    
+    <button text="loadImage2">
+    	<handler name="onclick">
+    		<![CDATA[
+    		   
+    	    ]]>
+    	</handler>
+    </button>
+    
+
+</canvas>
diff --git a/WebContent/src/test/page/main.lzx.swf8.swf b/WebContent/src/test/page/main.lzx.swf8.swf
new file mode 100644
index 0000000..cfd7b01
--- /dev/null
+++ b/WebContent/src/test/page/main.lzx.swf8.swf
Binary files differ
diff --git a/WebContent/src/test/page/test.jpg b/WebContent/src/test/page/test.jpg
new file mode 100644
index 0000000..51d5e80
--- /dev/null
+++ b/WebContent/src/test/page/test.jpg
Binary files differ
diff --git a/WebContent/src/test/regexp.jsp b/WebContent/src/test/regexp.jsp
new file mode 100644
index 0000000..031b348
--- /dev/null
+++ b/WebContent/src/test/regexp.jsp
@@ -0,0 +1,92 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+    pageEncoding="UTF-8"%>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<title>OpenMeetings</title>

+	<script type="text/javascript" src="swfobject.js"></script>

+	<style type="text/css">

+		

+		/* hide from ie on mac \*/

+		html {

+			height: 100%;

+			overflow: hidden;

+		}

+		

+		#flashcontent {

+			height: 100%;

+		}

+		/* end hide */

+	

+		body {

+			height: 100%;

+			margin: 0;

+			padding: 0;

+			background-color: #ffffff;

+		}

+	

+	</style>

+	<link rel="shortcut icon" href="favicon.ico"> 

+	<script type="text/javascript">

+		function reMatch(str, reg){

+			var s = unescape(str);

+			var re = new RegExp(eval(unescape(reg)));

+			return s.replace(re,unescape(rep));

+		}

+	</script>
+</head>
+<body onLoad="focusSWF()">

+

+

+	<div id="flashcontent">

+		<strong>You need to upgrade your Flash Player</strong>

+		This is replaced by the Flash content. 

+		Place your alternate content here and users without the Flash plugin or with 

+		Javascript turned off will see this. Content here allows you to leave out <code>noscript</code> 

+		tags.

+	</div>

+	

+	<script type="text/javascript">

+		// <![CDATA[

+		

+		var so = new SWFObject("test-regExp2.lzx?lzt=swf&lzr=swf8", "lzapp", "100%", "100%", "8", "#ffffff");

+		so.addParam("quality", "high");

+		so.addParam("id", "lzapp");

+		so.addParam("allowScriptAccess", "always");

+		so.addParam("scale", "noscale");

+		so.write("flashcontent");

+		

+		function focusSWF(){

+		

+		    if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){

+		    }else {

+		        document.getElementById('lzapp').focus();

+		    }

+		}   		

+		

+		// ]]>

+	</script>	

+

+

+</body>
+</html>
\ No newline at end of file
diff --git a/WebContent/src/test/resources/audio_scrubber.png b/WebContent/src/test/resources/audio_scrubber.png
new file mode 100644
index 0000000..b51da01
--- /dev/null
+++ b/WebContent/src/test/resources/audio_scrubber.png
Binary files differ
diff --git a/WebContent/src/test/resources/audio_scrubtrack.png b/WebContent/src/test/resources/audio_scrubtrack.png
new file mode 100644
index 0000000..1e7029b
--- /dev/null
+++ b/WebContent/src/test/resources/audio_scrubtrack.png
Binary files differ
diff --git a/WebContent/src/test/resources/mix_volume.png b/WebContent/src/test/resources/mix_volume.png
new file mode 100644
index 0000000..a010125
--- /dev/null
+++ b/WebContent/src/test/resources/mix_volume.png
Binary files differ
diff --git a/WebContent/src/test/resources/next.png b/WebContent/src/test/resources/next.png
new file mode 100644
index 0000000..95fc568
--- /dev/null
+++ b/WebContent/src/test/resources/next.png
Binary files differ
diff --git a/WebContent/src/test/resources/play.png b/WebContent/src/test/resources/play.png
new file mode 100644
index 0000000..b41fa2b
--- /dev/null
+++ b/WebContent/src/test/resources/play.png
Binary files differ
diff --git a/WebContent/src/test/resources/record.png b/WebContent/src/test/resources/record.png
new file mode 100644
index 0000000..d1eb150
--- /dev/null
+++ b/WebContent/src/test/resources/record.png
Binary files differ
diff --git a/WebContent/src/test/resources/stop.png b/WebContent/src/test/resources/stop.png
new file mode 100644
index 0000000..682c322
--- /dev/null
+++ b/WebContent/src/test/resources/stop.png
Binary files differ
diff --git a/WebContent/src/test/scrolledittext.lzx b/WebContent/src/test/scrolledittext.lzx
new file mode 100644
index 0000000..bc64ac5
--- /dev/null
+++ b/WebContent/src/test/scrolledittext.lzx
@@ -0,0 +1,170 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+    <include href="incubator/baseedittext.lzx" />
+    <include href="lz/vscrollbar.lzx"/>
+
+    <!--- Implements visual baseedittext with scrollbar. -->
+    <class name="scrolledittext" extends="baseedittext" 
+           multiline="true" clip="true" height="100">
+
+        <attribute name="border" value="0" />
+        
+        <view name="_face" bgcolor="0xffffff" 
+              width="${parent.width-parent.border*2}" 
+              height="${parent.height-parent.border*2}" 
+              x="${parent.border}" y="${parent.border}"/>
+
+        <_newinternalinputtext name="inp" 
+            x="${parent.border}" 
+            y="${parent.border}" 
+            height="${parent.height - parent.border * 2}" 
+            width="${parent.width - parent.vscrollwidth - parent.border*2}"
+            scrollevents="true">
+            <!-- Supplied by lztext now
+                attribute name="lineheight"
+                       value="${this.getTextHeight()/this.getMaxScroll()}"/-->
+            <attribute name="maxtextheight"
+                       value="${this.lineheight * this.maxscroll}"/>
+            <attribute name="maxheight" 
+                       value="${this.height + this.maxtextheight}"/>
+            <attribute name="pos" value="0" type="number"/>
+            
+            <setter name="pos" args="p">
+                if (this.inited) {
+                    var scroll = 1 - Math.floor(p / this.lineheight);
+                    if (scroll !== this.scroll) {
+                        this.setAttribute('scroll', scroll);
+                        //Debug.info('pos', p, this.scroll)
+                    }
+                    this.pos = p;
+                    if (this.onpos) this.onpos.sendEvent(p);
+                }
+            </setter>
+            
+            <handler name="onscroll" args="IGNORE_THIS_ARG">
+                this.setAttribute('pos', -this.lineheight * (this.scroll - 1));
+            </handler>
+        </_newinternalinputtext>
+
+        <!--- Width to give for scrollbar
+              @keywords private -->
+        <attribute name="vscrollwidth" value="0"/>
+        
+        <method name="setvscrollwidthfromvisibility" args="v">
+            this.setAttribute("vscrollwidth", (v ? this._vs.width : 0));
+        </method>
+        
+<!--
+        <om_vscrollbar name="_vs" axis="y" scrollattr="pos"
+            scrolltarget="parent.inp"
+            x="${parent.width - this.width - parent.border + 1}" 
+            stepsize="${parent.inp.lineheight}" 
+            scrollmax="${parent.inp.scrollheight}">
+        </om_vscrollbar>
+-->
+
+        <!--- Name of class to instantiate for vertical scroll bar.
+              @keywords public -->
+        <attribute name="vscrollbarclassname" type="string" value="vscrollbar"/>
+        
+        <!--- Our vertical scrollbar
+              @keywords private -->
+        <attribute name="_vs" value="null"/>
+        
+        <!--- @keywords private -->
+        <method name="ensurevscrollbar">
+            if (this['_vs'] == null) {
+                var classname = this.vscrollbarclassname;
+                if (classname == "") {
+                    classname = "vscrollbar";
+                }
+                if ($debug) {
+                    if (typeof(lz[classname]) == "undefined") {
+                        Debug.warn("scrollbarclassname undefined", this);
+                    }
+                }
+                if(typeof(lz[classname]) != "undefined"){
+                    this._vs = new lz[classname](this, 
+                                                 { axis: "y",
+                                                   scrollattr: "pos",
+                                                   scrollmax: "0",
+                                                   scrolltarget: this.inp});
+                                                   
+                    var xDel = new lz.Delegate(this, 'updateX');
+                    xDel.register(this['_vs'], 'onwidth');
+                    xDel.register(this, 'onwidth');
+                    xDel.register(this, 'onborder');
+                    
+                    new lz.Delegate(this, 'updateScrollMax', this.inp, 'onscrollheight');
+                    new lz.Delegate(this, 'updateStepSize', this.inp, 'onlineheight');
+                    // call once manually
+                    this.updateX();
+                    this.updateStepSize();
+                }
+
+            }
+        </method>
+        
+        <method name="updateX" args="IGNORE_THIS_ARG = null">
+            if(this['_vs']){
+                this._vs.setAttribute("x", this.width - this._vs.width );
+            }
+        </method>
+        
+        <method name="updateStepSize" args="IGNORE_THIS_ARG = null">
+            if(this['_vs']){
+                this._vs.setAttribute("stepsize", this.inp.lineheight);
+            }
+        </method>
+        
+        <method name="updateScrollMax" args="IGNORE_THIS_ARG = null">
+            if(this['_vs']){
+                this._vs.setAttribute("scrollmax", this.inp.scrollheight);
+            }
+        </method>
+        
+        <method name="init">
+            super.init();
+            this.ensurevscrollbar();
+            setvscrollwidthfromvisibility(this['_vs'] ? this._vs.visible : false);
+            this.myDel = new lz.Delegate(this, "setvscrollwidthfromvisibility", this['_vs'], "onvisible");
+        </method>
+
+ <!--- Overrides a parent method which calculates y position for text
+            in a way that doesn't make sense for this class. We just trap the 
+            call and do nothing. This field is positioned in y by the constraint
+            y=${parent.border}
+            Note: although this method is a no-op, it still has to be declared,
+            so the parent class's method does not get called on instances of 
+            this class. 
+        -->
+        <method name="_placeTextY">
+        </method>
+
+    </class>
+
+</library>
+<!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
+* Copyright 2006-2009 Laszlo Systems, Inc. All Rights Reserved.               *
+* Use is subject to license terms.                                            *
+* X_LZ_COPYRIGHT_END ****************************************************** -->
+<!-- @LZX_VERSION@                                                         -->
diff --git a/WebContent/src/test/simplebroadcast.lzx b/WebContent/src/test/simplebroadcast.lzx
new file mode 100644
index 0000000..fadcf2e
--- /dev/null
+++ b/WebContent/src/test/simplebroadcast.lzx
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<canvas debug="true" width="1000" height="700">
+	
+	<debug fontsize="14" oninit="Debug.showInternalProperties = true"/>
+	
+	<rtmpconnection src="rtmp://macbook/'+canvas.webAppRootKey+'/hibernate" autoconnect="true"/>
+	<mediastream name="s1" type="rtmp"/>
+	<mediastream name="s2" type="rtmp"/>
+	<simplelayout/>
+	
+	<text multiline="true" width="100%"> Instructions:
+		<br/> 1. Either run a flash media server on localhost (127.0.0.1), or ssh tunnel to a
+		media server at a known host
+		<br/> 2. Press the broadcast button. (Grant camera access permission if needed.) The
+		button should change to say "stop broadcasting"
+		<br/> 3. Press the receive button. You should be receiving audio and video from
+		yourself and the button should say "stop receiving."
+		<br/> 4. Try out the audio and video mute buttons. The video mute should freeze the
+		received picture. The audio mute should silence the received sound.
+		<br/> 5. Press the receive button. The received video should freeze and the button
+		should say "stop receiving".
+		<br/> 6. Press the receive button again. The video should resume and the button should
+		say "receiving".
+		<br/> 7. Press the broadcast button. The received video should freeze and the button
+		should say "broadcast".<br/> <br/> The indicator below shows the status of the video
+		connection.
+		</text>
+	<rtmpstatus/>
+	<view layout="axis:x; inset:10; spacing:10">
+		<view id="v1" layout="axis:y; spacing:4">
+			<videoview id="live" type="rtmp" stream="$once{canvas.s1}" width="240" height="160">
+				<camera id="cam" show="false" fps="20" width="240" height="160" 
+																picturequality="0"/>
+				<microphone id="mic" capturing="false"/>
+				
+			</videoview>
+			<edittext name="username">YourName</edittext>
+			<button text="broadcast">
+				<attribute name="text"
+					value="${(s1.broadcasting == false) ? 'broadcast' : 'stop broadcasting'}"/>
+				<handler name="onclick">
+					<![CDATA[
+                    if (cam.show == false) {
+                        live.stream.setAttribute('url', parent.username.text);
+                        live.stream.broadcast();
+							cam.setAttribute('show', true);
+                    } else {
+                        live.stream.stop();
+                        cam.setAttribute('show', false);
+                    }
+                  ]]>
+				</handler>
+			</button>
+			
+			<checkbox onvalue="s1.setAttribute('muteaudio', value)">Mute
+				Audio</checkbox>
+			<checkbox onvalue="s1.setAttribute('mutevideo', value)">Mute
+				Video</checkbox>
+			<button text="checkValues">
+				<handler name="onclick">
+					//Debug.write("this: ",live);
+					//Debug.write("this: ",cam);
+					//Debug.write("this: ",cam._dev);
+					//Debug.write("this: ",mic._dev);
+				</handler>
+			</button>
+		</view>
+		<view id="v2" layout="axis:y; spacing:4">
+			<videoview name="vid" type="rtmp" stream="$once{canvas.s2}"/>
+			<edittext name="username">YourName</edittext>
+			<button text="${s2.playing ? 'stop receiving' : 'receive'}"
+				onclick="s2.setAttribute('url', parent.username.text);
+                         if (s2.playing) s2.stop(); else s2.play();"/>
+		</view>
+	</view>
+	
+</canvas>
diff --git a/WebContent/src/test/simpletestedittext.lzx b/WebContent/src/test/simpletestedittext.lzx
new file mode 100644
index 0000000..ee80f95
--- /dev/null
+++ b/WebContent/src/test/simpletestedittext.lzx
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<canvas height="400" debug="true">
+ 
+     <button text="Show then Fade" onclick="canvas.showText()" />
+     <text name="myText" opacity="0.0" bgcolor="#CCCCCC">The Invisible Man</text>
+     <simplelayout axis="y" spacing="10" />
+	
+	<attribute name="fadeDelegate" value="null" />
+ 
+     <method name="showText">
+         this.myText.setAttribute( "opacity", 1.0 );
+         this.fadeDelegate = new LzDelegate( this, "fadeText" );
+         lz.Timer.addTimer( this.fadeDelegate, 3000 );
+     </method>
+ 
+     <method name="fadeText">
+		 //Debug.write("fadeText: ",lz.Timer.countTimers(this.fadeDelegate));
+         this.myText.animate( "opacity", 0.0, 1000 );
+     </method>
+ 
+ </canvas>
diff --git a/WebContent/src/test/simpletestvalidBox.lzx b/WebContent/src/test/simpletestvalidBox.lzx
new file mode 100644
index 0000000..e23ddfb
--- /dev/null
+++ b/WebContent/src/test/simpletestvalidBox.lzx
@@ -0,0 +1,810 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<canvas height="400" debug="true">
+	
+<include href="lz/textlistitem.lzx" />
+	
+<script>
+<![CDATA[
+	
+String.prototype.startsWith = function(prefix) {
+    return (this.indexOf(prefix) === 0);
+};	
+	
+]]>
+</script>
+	
+<attribute name="statesInitValues" value="null" />
+	
+<handler name="oninit">
+	<![CDATA[
+		var tChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+		var tCharsSmall = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
+		
+		this.statesInitValues = new Array();
+		var m = 0;
+		while (m<20){
+			for (var i = 0;i<26;i++){
+				for (var r=0;r<3;r++){
+					var t = new Array();
+					t["state_id"] = i*r;
+					t["name"] = tChars.charAt(i)+tCharsSmall.charAt(( Math.random()*100))+tCharsSmall.charAt(( Math.random()*100))+tCharsSmall.charAt(( Math.random()*100))+tCharsSmall.charAt(( Math.random()*100))+tCharsSmall.charAt(( Math.random()*100));
+					this.statesInitValues.push(t);
+				}
+			}
+			m++;
+		}
+		//Debug.write(this.statesInitValues);
+		
+		this._validbox.addItem("Da","1");
+		this._validbox.selectItem("1",true);
+	]]>
+</handler>
+	
+<method name="validateCountry" args="str">
+	//Debug.write("validateCountry: ",str);
+	<![CDATA[
+		if (str.length!=0){
+			var a = new Array();
+			for (var i=0;i<canvas.statesInitValues.length;i++){
+				if (canvas.statesInitValues[i].name.startsWith(str))a.push(canvas.statesInitValues[i]);
+				//this.addItem(canvas.statesInitValues[i].name,canvas.statesInitValues[i].state_id);
+			}
+			return a;
+		}
+	]]>	
+</method>	
+	
+
+    <include href="base/baseformitem.lzx" />
+    <include href="lz/list.lzx" />
+    <include href="lz/floatinglist.lzx" />
+	
+	<include href="lz/combobox.lzx" />
+
+    <!--- A dropdown list of selectable items. -->
+    <class name="baseValidCombobox" extends="baseformitem" focusable="false" width="100">
+        <!--- @keywords private -->
+        <attribute name="defaultplacement"  value="cblist" type="string"/>
+
+        <!-- attributes -->
+        <!--- The value of the combobox. -->
+        <attribute name="value" value="${cblist.value}"/>
+
+        <!--- Indicates whether or not the popup list is showing.  -->
+        <attribute name="isopen"       value="false"  setter="this.setOpen(isopen)" />
+
+        <!--- The border size ( in pixels ) of the popup list.  -->
+        <attribute name="bordersize"   value="1" />
+
+        <!--- The spacing size ( in pixels ) between items in the pop-up list.  -->
+        <attribute name="spacing"   value="0" />
+
+        <!--- The text that appears in the text field when no item is selected. -->
+        <attribute name="defaulttext"  value="" type="string" />
+
+        <!--- The number of the item that is initially selected. This overrides
+              the value defined in the defaulttext attribute -->
+        <attribute name="defaultselection"  value="null" type="number"  setter="this.setDefaultSelection( defaultselection )"/>
+
+        <!--- This event is sent when the default selection is set.  -->
+        <event name="ondefaultselection" />
+
+        <!--- The class that is used to create an item in the list when
+              itemdatapath is assigned. -->
+        <attribute name="itemclassname" setter="this.setItemclassname(itemclassname)"  value="" type="string" />
+
+        <!--- Sets the height of the combobox to show 'n' items. -->
+        <attribute name="shownitems"   value="-1" />
+
+        <!--- @keywords private  -->
+        <attribute name="mousedownintext" value="false"/>
+
+        <!--- @keywords private  -->
+        <attribute name="initcomplete" value="0" />
+
+        <!--- Whether a scrollbar should automatically show up when there are more
+              items than shownitems. -->
+        <attribute name="autoscrollbar" value="true"/>
+
+        <!--- The initial selected item. -->
+        <attribute name="selected" value="null"/>
+
+        <!--- This event is triggered whenever the user makes a selection. It
+              may be used as a script in the combobox tag or as an event method.
+              -->
+        <event name="onselect"/>
+
+        <!--- One of "lazy", "resize", "pooling", "none". -->
+        <attribute name="dataoption" value="none" type="string"/>
+
+        <!--- The vertical offset of the floatinglist attached to this
+              combobox. -->
+        <attribute name="attachoffset" value="-1" type="number"/>
+
+        <!--- the x position of the text. default: 2 -->
+        <attribute name="text_x" value="2" type="number"/>
+
+        <!--- the y position of the text. default: 2 -->
+        <attribute name="text_y" value="2" type="number"/>
+
+        <!--- the width the text. default: combowidth - 19 -->
+        <attribute name="text_width" value="${this.width - 19}" type="number"/>
+
+        <!--- The minimum width this component is allowed to be.
+              Defaults to 50 pixels.
+              @keywords defaultsetter -->
+        <attribute name="min_width" value="50" type="number" />
+        
+        <!--- The method to be called for validating -->
+        <attribute name="validate_method" value="null" />
+
+        <!--- Since we are not focusable, defer to the inputtext's next selection,
+              so that when floatinglist is tabbed out of, we can provide a next
+              selection since we are it's owner
+              @keywords private -->
+        <method name="getNextSelection">
+            // must ensure the floatinglist is closed so that if it is being tabbed from,
+            // we can change the focus. (focus is normally not allowed to escape from
+            // a modal view).
+            this.setOpen(false);
+            return lz.Focus.getNext(interior.cbtext);
+        </method>
+
+        <!--- since we are not focusable, this provides an api for asking what child to send focus
+              to, as is the case when floatinglist is shift-tabbed back to us.
+              @keywords private -->
+        <method name="resolveSelection">
+            // must ensure the floatinglist is closed so that if it is being tabbed from,
+            // we can change the focus. (focus is normally not allowed to escape from
+            // a modal view).
+            this.setOpen(false);
+            return interior.cbtext;
+        </method>
+
+        <view name="bkgnd" width="100%" focusable="false">
+        <!--- subclasses defined the 'look' by placing views here -->
+        </view>
+
+        <view name="interior"
+            x="$once{classroot.text_x}"
+            y="$once{classroot.text_y}"
+            width="${classroot.text_width}"
+             height="${classroot.height - 2*classroot.bordersize - 2}"
+             focusable="false">
+            <!--- @keywords private -->
+            <attribute name="_dsblfield" value="null"/>
+
+            <method name="setupText" >
+                var txt = classroot.cblist.getText();
+                if ( !txt ) {
+                    if ( classroot.defaultselection ) {
+                        if ( classroot.cblist._contentview != null ) {
+                            classroot.cblist.selectItemAt( classroot.defaultselection );
+                            txt = classroot.cblist.getText();
+                        }
+                    } else {
+                        txt = classroot.defaulttext;
+                    }
+                }
+                if (this.cbtext) this.cbtext.setAttribute('text', txt );
+                if (this._dsblfield) this._dsblfield.setAttribute('text', txt );
+                parent._applystyle( parent.style );
+            </method>
+
+                <view name="editbkgnd" bgcolor="white" width="100%" height="100%" />
+                <inputtext x="2" y="1" name="cbtext" width="$once{parent.width - 4}">
+                    <attribute name="text" type="string" />
+					
+					<attribute name="initSelect" value="false" type="boolean" />
+					
+                    <attribute name="timerDelegate" value="null"/>
+                    <attribute name="typetime" type="number" value="4000"/>
+					<attribute name="timerIsInited" value="false" type="boolean"/>
+
+                    <!-- arrow down and up both popup floatinglist, and pass the key event to it -->
+                    <handler name="onkeydown" args="key">
+                        <![CDATA[
+						//Debug.write("onkeydown: ",key);
+                        // 38 is up-arrow
+                        // 40 is down-arrow
+                        // 32 is space
+                        // 13 is return
+                            if ((key==38) || (key==40)) {
+                                if (!classroot.isopen) {
+                                    classroot.setOpen(true, true); // open, withKey
+                                }
+    
+                                // pass the key event on to the floatinglist
+                                classroot.cblist.onkeydown.sendEvent(key);
+                            } else {
+                                //Debug.write("onkeydown txt: ",this.getText());
+                                if (!this.initSelect){
+                                    ////Debug.write("onvalue: ",txt,this);
+                                    if (!this.timerIsInited){
+                                        this.timerIsInited = true;
+                                        this.timerDelegate = new LzDelegate( this, "validatedText" );
+                                        //Debug.write("+++++++++++++++++ addTimer");
+                                        //Debug.write("+++++++++++++++++ removeTimer ",lz.Timer.countTimers());
+                                        lz.Timer.addTimer( this.timerDelegate, this.typetime );
+                                    } else {
+                                        //Debug.write("############### resetTimer NO ADDING ");
+                                        //Debug.write("############### removeTimer ",lz.Timer.countTimers());
+                                        //lz.Timer.removeTimer( this.timerDelegate );
+                                    }
+                                } else {
+                                    this.initSelect = false;
+                                }
+                            }
+                        ]]>
+                    </handler>
+
+                    <!-- pass up to component level so focus rect will be visible, and subclassers can catch -->
+                    <handler name="onfocus" args="v">
+                        if ( classroot['onfocus'] ) classroot.onfocus.sendEvent(v);
+                    </handler>
+                    <!-- pass up to component level so subclassers can catch -->
+                    <handler name="onblur" args="v">
+                        this.initSelect=true;
+                        classroot.setAttribute('text', this.getText() );
+                        if ( classroot['onblur'] ) classroot.onblur.sendEvent(v);
+                    </handler>
+                    <!-- pass up to component level so subclassers can catch -->
+                    <handler name="onkeyup" args="kc">
+                        if ( classroot['onkeyup'] ) classroot.onkeyup.sendEvent(kc);
+                    </handler>
+                    <!-- pass up to component level so subclassers can catch -->
+                    <handler name="onkeydown" args="kc">
+                        if ( classroot['onkeydown'] ) classroot.onkeydown.sendEvent(kc);
+                    </handler>
+
+                    <method name="getFocusRect"  >
+                        return classroot.getFocusRect();
+                    </method>
+
+					<method name="validatedText">
+						<![CDATA[
+                            //Debug.write("validatedText: ",this.getText());
+                            //this.reset();
+                            if (!this.initSelect){
+                                var t = classroot.validate_method(this.getText());
+                                //Debug.write('t: ',t.length);
+                                //this.parent._cblist.setAttribute('visible',true);
+                                classroot.cblist.removeAllItems();
+                                for (var i=0;i<t.length;i++){
+                                    classroot.cblist.addItem(t[i].name,t[i].state_id);
+                                }
+                                //Debug.write("############### removeTimer ",lz.Timer.countTimers());
+                                for (var eg in lz.Timer){
+                                    //Debug.write("############### lz.Timer ",eg,lz.Timer[eg]);
+                                }
+                                for (var eg in lz.Timer.timerList){
+                                    //Debug.write("############### lz.Timer.timerList ",eg,lz.Timer.timerList[eg]);
+                                }
+
+                                ////Debug.write("validateText: ",this.getText());
+                                //if (!classroot.isopen) {
+                                //    classroot.setOpen(true, true); // open, withKey
+                                //}
+                                this.timerIsInited = false;
+                            } else {
+                                this.initSelect=false;
+                                this.timerIsInited = false;
+                            }
+						]]>
+					</method>					
+
+                </inputtext>
+
+        </view>
+
+        <floatinglist name="cblist"
+                      width="${owner.width - 1}"
+                      bordersize="${this.owner.bordersize}"
+                      spacing="${this.owner.spacing}"
+                      visible="false"
+                      shownitems="${this.owner.shownitems}"
+                      attach="bottom"
+                      attachoffset="${this.owner.attachoffset}"
+                      multiselect="false"
+                      autoscrollbar="${owner.autoscrollbar}"
+                      defaultselection="${owner.defaultselection ?
+                                          owner.defaultselection : (owner.defaulttext == '' ?
+                                                                    0 : null) }">
+            <!-- create a blank datapath so that it can be assigned a datapointer when combobox is assigned data -->
+               <datapath>
+                   <attribute name="datacontrolsvisibility" value="false" />
+               </datapath>
+
+            <handler name="onconstruct">
+                this.dataoption = owner.dataoption;
+            </handler>
+
+            <method name="_dokeyup" args="kc"
+                    event="onkeyup">
+                if (kc == 27) {  // escape needs to close floating list
+                    this.owner.setOpen(false);
+                }
+            </method>
+            <method name="removeAllItems" args="index"> 
+                for (var eg in _contentview.subviews){
+                    _removeitem(_contentview.subviews[eg]); 
+                } 
+            </method>			
+        </floatinglist>
+
+
+        <!--- Sets the number of the item that is initially selected. This overrides
+              the value defined in the defaulttext attribute.
+              @param Number ds: the number of items to initally select. -->
+        <method name="setDefaultSelection" args="ds" >
+            this.defaultselection = ds;
+            if ( ds == null ) return;
+            if ( defaulttext != "" ) {
+                this.defaulttext = "";
+                //Debug.write("defaultselection overrides defaulttext",this);
+            }
+            if ( this.ondefaultselection ) this.ondefaultselection.sendEvent();
+        </method>
+
+        <!--- @keywords private -->
+        <handler name="ondata" args="d">
+            this.cblist.datapath.setPointer( d );
+        </handler>
+
+        <!--- @keywords private -->
+        <event name="onitemclassname"/>
+
+        <!--- Sets the type of list items which will be created in floatinglist
+              when necessary.
+              @param String icn: the class name to use to create items with. -->
+        <method name="setItemclassname" args="icn" >
+            this.itemclassname = icn; // before anything is inited capture value
+            if ( this.isinited ) { // view is now inited so check classname with cblist
+
+               if (icn != "") {
+                  // then force this classname as the classname for cblist
+                  cblist.setAttribute('itemclassname',this.itemclassname);
+                } else {
+                  //use the default subview as the classname
+                  this.itemclassname = cblist.itemclassname;
+                }
+            }
+            if (this.onitemclassname) this.onitemclassname.sendEvent();
+        </method>
+
+        <!--- @keywords private -->
+        <event name="ontext"/>
+
+        <!--- @keywords private -->
+        <method name="determinePlacement" args="newsub, placement, iargs" >
+            if (placement == 'cblist') 
+                return this.cblist.determinePlacement(newsub, placement, iargs);
+            else 
+                return super.determinePlacement(newsub, placement, iargs);
+        </method>
+
+        <!--- @keywords private -->
+        <method name="init" >
+            this._initcomplete = true;
+			
+            super.init();
+
+            // reassign classname now that the instance is inited
+            this.setItemclassname(this.itemclassname);
+            cblist.setVisible(false);
+         </method>
+
+        <!--- @keywords private -->
+        <handler name="onblur" >
+           if ( lz.Focus.getFocus() != this.interior.cbtext )
+                this.setOpen(false);
+        </handler>
+
+        <!--- @keywords private -->
+        <method name="getFocusRect"  >
+           var fx = this.getAttributeRelative('x',canvas);
+           var fy = this.getAttributeRelative('y',canvas);
+           var fw = this.getAttributeRelative('width',canvas);
+           var fh = this.getAttributeRelative('height',canvas);
+           return [fx,fy,fw,fh];
+        </method>
+
+        <!--- Selects a specific item in the list.
+              @param Object item: the item to select. -->
+        <method name="select" args="item" >
+           this.cblist.select(item);
+        </method>
+
+        <!--- @keywords private -->
+        <attribute name="_fixseldel" value="$once{new LzDelegate(this, 'fixSelection')}"/>
+        <!--- @keywords private -->
+        <method name="fixSelection">
+            this.interior.cbtext.setSelection(_fixseldel.start, _fixseldel.end);
+        </method>
+
+        <!--- this method listens for the onselect event from the floating list
+              and then resends the onselect event to itself so that developers can easily
+              reference that without knowing the internals of combobox
+              @keywords private -->
+        <handler name="onselect" reference="this.cblist"  args="v" > 
+			<![CDATA[
+				this.interior.cbtext.initSelect=true;
+				this.setOpen(false);
+	
+				// anItem has been selected so update the input text field
+				this.selected = v;
+				if (v) this.setAttribute('text',v.text);
+				if (lz.Focus.getFocus() == this.interior.cbtext) {
+					_fixseldel.start = 0;
+					_fixseldel.end = v.text.length;
+					lz.Idle.callOnIdle( _fixseldel );
+	
+				}
+	
+				// resend the event so that developers can write thier own
+				// onselect methods without having to know the internals of
+				// this class.
+				if ( this.onselect ) this.onselect.sendEvent(v);
+            ]]>
+        </handler>
+
+        <!--- @keywords private -->
+        <method name="passModeEvent" args="eventStr,view" > <![CDATA[
+            // Once a view has been made modal, this method
+            // gets called ONLY when a user clicks on a view 'outside'
+            // the contents of this view, or clicks on a inputtext view anywhere
+            // on the screen even for a subview within this view.
+            if ( eventStr == "onmousedown"  ){
+                // first, we only care about the mousedown event.
+                // if the user has pressed the mouse down on a textfield
+                // within the component, then we will not know this unless
+                // we test it to see if it is a subview of this component.
+
+                if ( view != null ) { // view is a clickable view
+                    // view is not LITERALLY part of the class heirarchy but
+                    // it maybe part of the floatingview of this component, and if so
+                    // then treat it as if it were a child of the class.
+
+                   if ( !view.childOf(this.cblist) ) {
+                        // view is outside of combobox so close the combbobox
+                        this.setOpen(false);
+
+                   } else {
+                        // view is a child of cblist, so don't do anything.
+                   }
+
+                } else {
+                    this.setOpen(false);
+                }
+            }
+            // if we're inside a modal dialog, need to propagate event manually
+            // since floating list is a child of the canvas
+            if (view && view.childOf(this.cblist)) {
+                if (view[ eventStr ]) {
+                    view[ eventStr ].sendEvent( view );
+                }
+                return false;
+            }
+           // since a combox is not strictly modal, always return
+           // true to pass the event to the object (oustide combobox)
+           // that was clicked on
+           return true;
+        ]]> </method>
+
+        <!--- Toggles the open/close state of the popup list.
+            @param Boolean withkey: (optional) if true this is triggered by
+                  keyboard and focus indicators will be turned on;
+                  if false, this is triggered by mouse action and focus
+                  indicators will be turned off;
+                  if parameter is ommitted no change in focus indicator
+        -->
+        <method name="toggle" args="withkey">
+            this.setOpen(!this.isopen, withkey)
+        </method>
+
+        <!--- Sets the open/close state of the popup list.
+              @param Boolean open: true to open the list, else false to
+              close.
+              @param Boolean withkey: (optional) if true this is triggered by
+                    keyboard and focus indicators will be turned on;
+                    if false, this is triggered by mouse action and focus
+                    indicators will be turned off;
+                    if parameter is ommitted no change in focus indicator
+          -->
+        <method name="setOpen" args="open, withkey" >
+            if (!this.isinited) {
+                this.isopen = open;
+                return;
+            }
+            if (open) { // open combox
+                if (this.isopen) return; // tends to get called more than once, esp when
+                lz.ModeManager.makeModal( this );
+
+                this.cblist.bringToFront();
+                this.cblist.setVisible(true);
+                lz.Focus.setFocus(this.cblist, withkey);
+
+                this.isopen = true;
+                if (this['onisopen']) this.onisopen.sendEvent(true);
+            } else { // close combox
+                if (!this['isopen']) return;
+                this.isopen = false;
+
+                lz.ModeManager.release( this );
+                this.cblist.setVisible(false);
+                if (this['onisopen']) this.onisopen.sendEvent(false);
+                if ( lz.Focus.getFocus() == this.cblist ) {
+                    lz.Focus.setFocus(interior.cbtext, withkey);
+                }
+            }
+        </method>
+
+        <!--- @keywords private -->
+        <method name="applyData" args="d">
+            this.setAttribute('text', d );
+        </method>
+
+
+        <!--- Get the value for the combobox.
+              @return Object: the value selected or the value in the text
+              field, if no value was found. -->
+        <method name="getValue">
+           var rv;
+           var ra = this.cblist.getValue(); // an array of values
+           if (ra==null) {
+               rv  = this.interior.cbtext.getText();
+           } else {
+               rv = ra;
+           }
+           return rv;
+        </method>
+
+        <!--- Sets the displayed text.
+              @param String t: the text to display. -->
+        <method name="setText" args="t">
+            this.text = t;
+            this.interior.cbtext.setAttribute('text', t );
+            if (!this._enabled) interior._dsblfield.setAttribute('text', t );
+            if ( this.ontext ) this.ontext.sendEvent( t );
+        </method>
+
+        <!--- Get the displayed text.
+              @return String: the displayed text. -->
+        <method name="getText">
+           return this.interior.cbtext.getText();
+        </method>
+
+        <!--- Returns current selection.
+              @return Object: null if no selection, an item if single select
+              (default), or an array of items if multiselect. -->
+        <method name="getSelection">
+            return this.cblist.getSelection();
+        </method>
+
+        <!--- Add the specified item to list to the end of the list.
+              @param String txt: the text for the item.
+              @param Object val: the value for the item. -->
+        <method name="addItem" args="txt, val" >
+            this.cblist.addItem(txt,val);
+        </method>
+
+        <!--- Find a particular item by value. This method is not available with
+              dataoption="lazy" or dataoption="resize" (use data APIs instead).
+              @param Object value: the value for the item to get.
+              @return Object: the item found, or null, if not.
+              -->
+        <method name="getItem" args="value">
+            return this.cblist.getItem(value);
+        </method>
+
+        <!--- Find a particular item by its index. This method not available
+              with dataoption="lazy" or dataoption="resize"
+              (use data APIs instead).
+              @param Number index: the index for the item to get.
+              @return Object: the item found, or null, if not. -->
+        <method name="getItemAt" args="index">
+            return this.cblist.getItemAt(index);
+        </method>
+
+        <!--- Find the first item with the specified value and remove it from
+              the list.
+              @param Object value: the value of the item to remove. -->
+        <method name="removeItem" args="value" >
+            this.cblist.removeItem(value);
+        </method>
+
+        <!--- Remove an item by index (0 based count). This method is not
+            available with dataoption="lazy" or dataoption="resize"
+            (use data APIs instead).
+              @param Number index: the index of the item to remove. -->
+        <method name="removeItemAt" args="index" >
+            this.cblist.removeItemAt(index);
+        </method>
+
+        <!--- Select an item by value. This method is not available with
+              dataoption="lazy" or dataoption="resize".
+              @param Object value: the value of the item to select.
+			  initSelect = true will NOT throw a validating event -->
+        <method name="selectItem" args="value,initSelect">
+			if (initSelect) this.interior.cbtext.initSelect=true;
+            this.cblist.selectItem(value);
+        </method>
+
+        <!--- Select an item by index (0 based count).
+              @param Number index: the index of the item to select. -->
+        <method name="selectItemAt" args="index">
+            this.cblist.selectItemAt(index);
+        </method>
+
+        <!--- Clear the current selection in the list and sets the displayed
+            text to an empty string -->
+        <method name="clearSelection" >
+            this.cblist.clearSelection();
+            this.setAttribute('text',"");
+        </method>
+
+        <!--- @keywords private -->
+        <method name="_applystyle" args="s">
+            if (this.style != null) {
+                interior.editbkgnd.setAttribute("bgcolor", s.textfieldcolor);
+                interior.cbtext.setAttribute('bgcolor',s.textfieldcolor);
+                setTint(bkgnd, s.basecolor);
+           }
+        </method>
+
+        <!--- @keywords private -->
+        <method name="_showEnabled">
+           interior.cbtext.setVisible(this._enabled);
+            if (!this._enabled) {
+                if (interior._dsblfield == null) {
+                    var t = new LzText(interior,
+                        { name: '_dsblfield', x: 2, y: 1,
+                          width:interior.width, height:interior.height,
+                            fgcolor:this['style'] ? this.style.textdisabledcolor : null});
+                } else {
+                   interior._dsblfield.setVisible(true);
+                }
+                interior._dsblfield.setAttribute('text',this.getText());
+            } else {
+                if (interior._dsblfield) interior._dsblfield.setVisible(false);
+            }
+        </method>
+
+        <method name="setWidth" args="w">
+            super.setWidth(Math.max(w,this.min_width));
+        </method>
+    </class>
+
+
+    <!--- A dropdown list of selectable items. Can either be editable or
+          not. -->
+    <class name="validBox" extends="baseValidCombobox">
+		
+        <view name="lft" resource="lzcombobox_lft_rsc" placement="bkgnd"/>
+        <view name="mid" resource="lzcombobox_mid_rsc" stretches="width" placement="bkgnd"/>
+        <basebutton name="rgt" resource="lzcombobox_rgt_rsc" styleable="true"
+                placement="bkgnd" onclick="classroot.toggle(false)" />
+		
+        <stableborderlayout axis="x" placement="bkgnd"/>
+		
+               <!--- @keywords private -->
+        <method name="_showEnabled">
+           super._showEnabled();
+           if (_enabled) {
+				this.bkgnd.lft.setAttribute('frame', 1 );
+				this.bkgnd.mid.setAttribute('frame', 1 );
+            } else {
+				this.bkgnd.lft.setAttribute('frame', 3 );
+				this.bkgnd.mid.setAttribute('frame', 3 );
+            }
+        </method>
+
+    </class>		
+ <!--
+		<edittext name="state" width="270" y="20" x="120" fontsize="11">
+			
+			<attribute name="timerDelegate" value="null"/>
+			<attribute name="typetime" type="number" value="500"/>
+			<attribute name="timerIsInited" value="false" type="boolean"/>
+			
+			<attribute name="formervalue" value="" type="string"/>
+			<attribute name="startValidate" value="false" type="boolean"/>
+			
+			<method name="getValue"> return this.id; </method>
+			<method name="setValued" args="txt,id"> 
+				//Debug.write("setValue:",txt,id); 
+				this.id = id; this.setAttribute('text',txt); 
+			</method>
+			
+			<handler name="onfocus"> //Debug.write("onfocus ",this.getText());
+				this.startValidate = true; this.formervalue = this.getText();
+				</handler>
+			<handler name="onvalue" args="txt">
+				<![CDATA[
+				//Debug.write("onvalue: ",txt,this.startValidate);
+				if (!this.timerIsInited && this.startValidate){
+					this.timerIsInited = true;
+					this.timerDelegate = new LzDelegate( this, "validatedText" );
+					//Debug.write("############### addTimer");
+					lz.Timer.addTimer( this.timerDelegate, this.typetime );
+				} else {
+					lz.Timer.resetTimer( this.timerDelegate, this.typetime );
+				}
+				]]>
+			</handler>
+			<method name="validatedText">
+				<![CDATA[
+					//Debug.write("validatedText: ",this.getText());
+					//this.reset();
+					var t = canvas.validateCountry(this.getText());
+					//Debug.write('t: ',t.length);
+					this._cblist.setAttribute('visible',true);
+					this._cblist.removeAllItems();
+					for (var i=0;i<t.length;i++){
+						this._cblist.addItem(t[i].name,t[i].state_id);
+					}
+					lz.Timer.removeTimer(this.timerDelegate);
+					this.timerIsInited = false;
+					//Debug.write("validateText: ",this.getText());
+
+				]]>
+			</method>
+			<handler name="onblur" args="b"> //Debug.write("onblur: ",b);
+				<![CDATA[
+					if (b!=this._cblist){
+						var t = canvas.validateCountry(this.getText());
+						//Debug.write('t: ',t.length);
+						this._cblist.removeAllItems();
+						for (var i=0;i<t.length;i++){
+							this._cblist.addItem(t[i].name,t[i].state_id);
+						}
+						this.startValidate = false;
+						//this._cblist.setAttribute('visible',false);
+					} else {
+						//Debug.write("is this._cblist");
+					}
+				]]>
+				</handler>
+			
+			<floatinglist width="${ this.owner.width }" attach="bottom"
+				name="_cblist" visible="false" autoscrollbar="true" shownitems="7"
+				scrollbarclassname="scrollbarValidBox" >
+				<method name="removeAllItems" args="index"> 
+					for (var eg in _contentview.subviews){
+						_removeitem(_contentview.subviews[eg]); 
+					} 
+				</method>
+				<handler name="onselect" args="item"> 
+					//Debug.write("onselect:",item); 
+					//this.owner. 
+					this.setAttribute('visible',false);
+					lz.Focus.setFocus(this.owner); 
+				</handler>
+			</floatinglist>
+			
+		</edittext>
+  -->
+	
+	<validBox y="20" width="270" name="_validbox" 
+        shownitems="7" validate_method="$once{ canvas.validateCountry }" />
+    
+ </canvas>
diff --git a/WebContent/src/test/simpletestvalidText.lzx b/WebContent/src/test/simpletestvalidText.lzx
new file mode 100644
index 0000000..a71f716
--- /dev/null
+++ b/WebContent/src/test/simpletestvalidText.lzx
@@ -0,0 +1,290 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<canvas height="400" debug="true">
+	
+<include href="lz/textlistitem.lzx" />
+<include href="lz/edittext.lzx" />
+<include href="lz/button.lzx" />
+	
+<script>
+<![CDATA[
+	
+String.prototype.startsWith = function(prefix) {
+    return (this.indexOf(prefix) === 0);
+};	
+	
+]]>
+</script>
+	
+<attribute name="statesInitValues" value="null" />
+	
+<handler name="oninit">
+	<![CDATA[
+		var tChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+		var tCharsSmall = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
+		
+		this.statesInitValues = new Array();
+		var m = 0;
+		while (m<20){
+			for (var i = 0;i<26;i++){
+				for (var r=0;r<3;r++){
+					var t = new Array();
+					t["state_id"] = i*r;
+					t["name"] = tChars.charAt(i)+tCharsSmall.charAt(( Math.random()*100))+tCharsSmall.charAt(( Math.random()*100))+tCharsSmall.charAt(( Math.random()*100))+tCharsSmall.charAt(( Math.random()*100))+tCharsSmall.charAt(( Math.random()*100));
+					this.statesInitValues.push(t);
+				}
+			}
+			m++;
+		}
+		//Debug.write(this.statesInitValues);
+		
+		this._validbox.addAndSelectItem("Da","1");
+	]]>
+</handler>
+	
+<method name="validateCountry" args="str">
+	//Debug.write("validateCountry: ",str);
+	<![CDATA[
+		if (str.length!=0){
+			var a = new Array();
+			for (var i=0;i<canvas.statesInitValues.length;i++){
+				if (canvas.statesInitValues[i].name.startsWith(str))a.push(canvas.statesInitValues[i]);
+				//this.addItem(canvas.statesInitValues[i].name,canvas.statesInitValues[i].state_id);
+			}
+			return a;
+		}
+	]]>	
+</method>	
+	
+
+    <class name="validText" extends="edittext">
+        
+        <!--- The method to be called for validating -->
+        <attribute name="validate_method" value="null" />
+        
+        <!--- the id-attribute of the resultset -->
+        <attribute name="resultId" value="id" type="string" />
+        <!--- the name-attribute of the resultset -->
+        <attribute name="resultName" value="name" type="string" />        
+					
+        <attribute name="initSelect" value="false" type="boolean" />
+					
+        <attribute name="timerDelegate" value="null"/>
+        <attribute name="typetime" type="number" value="500"/>
+        <attribute name="timerIsInited" value="false" type="boolean"/>
+        
+        <!--- items to be shown in the floatinglist -->
+        <attribute name="shownitems" value="7" type="number" />          
+        <attribute name="spacing" value="1" type="number" />  
+        <!--- The vertical offset of the floatinglist attached to this
+              combobox. -->
+        <attribute name="attachoffset" value="-1" type="number"/>
+        <!--- Whether a scrollbar should automatically show up when there are more
+              items than shownitems. -->
+        <attribute name="autoscrollbar" value="true"/>   
+
+        <!--- The border size ( in pixels ) of the popup list.  -->
+        <attribute name="bordersize"   value="1" />      
+        
+        <attribute name="currentValue" type="string" value="" />
+        
+        <!--- refernce to the current selected item -->
+        <attribute name="_selected" value="null" />    
+        
+        <method name="addAndSelectItem" args="txt,id">
+            this.cblist.addItem(txt,id);
+            this.currentValue = id;
+            this.setAttribute('text',txt);
+        </method>    
+        
+        <method name="setSelection" args="obj">
+            this._selected = obj;
+            this.currentValue = obj.value;
+            this.setAttribute('text',obj.text);
+            this.setOpen(false,true);
+            this.onselect.sendEvent();
+        </method>    
+        
+        <handler name="onselect" args="obj" />
+        
+        <method name="getValue">
+            return this.currentValue;
+        </method>
+
+                    <!-- arrow down and up both popup floatinglist, and pass the key event to it -->
+        <handler name="onkeydown" args="key">
+            <![CDATA[
+                //Debug.write("onkeydown: ",key);
+                // 38 is up-arrow
+                // 40 is down-arrow
+                // 32 is space
+                // 13 is return
+                if ((key==38) || (key==40)) {
+                    if (!this.isopen) {
+                        this.setOpen(true, true); // open, withKey
+                    } else {
+                        lz.Focus.setFocus(this.cblist, true);
+                    }
+                    // pass the key event on to the floatinglist
+                    this.cblist.onkeydown.sendEvent(key);
+                } else if (key==27){
+                    if (!this.isopen) {
+                        this.setOpen(true, true); // open, withKey
+                    } else {
+                        lz.Focus.setFocus(this.cblist, true);
+                    }
+                    this.cblist.onkeydown.sendEvent(key);
+                } else if (key!=13 && key!=9){
+                    //Don't handle Enter and Tab Events cause it will open the listItems
+                    ////Debug.write("onkeydown txt: ",this.getText());
+                    if (!this.initSelect){
+                        ////Debug.write("onvalue: ",txt,this);
+                        if (!this.timerIsInited){
+                            this.timerIsInited = true;
+                            this.timerDelegate = new LzDelegate( this, "validatedText" );
+                            ////Debug.write("+++++++++++++++++ addTimer");
+                            //Debug.write("+++++++++++++++++ removeTimer ",lz.Timer.countTimers());
+                            lz.Timer.addTimer( this.timerDelegate, this.typetime );
+                        } else {
+                            ////Debug.write("############### resetTimer NO ADDING ");
+                            //Debug.write("############### resetTimer ",lz.Timer.countTimers());
+                            lz.Timer.resetTimer( this.timerDelegate, this.typetime );
+                        }
+                    } else {
+                        this.initSelect = false;
+                    }
+                }
+            ]]>
+        </handler>
+        
+        <method name="validatedText">
+            <![CDATA[
+                ////Debug.write("validatedText: ",this.getText());
+                //this.reset();
+                if (!this.initSelect){
+                    var t = this.validate_method(this.getText());
+                    ////Debug.write('t: ',t.length);
+                    //this.parent._cblist.setAttribute('visible',true);
+                    this.cblist.removeAllItems();
+                    for (var i=0;i<t.length;i++){
+                        ////Debug.write(t[i][this.resultName],t[i][this.resultId]);
+                        this.cblist.addItem(t[i][this.resultName],t[i][this.resultId]);
+                    }                
+
+                    ////Debug.write("validateText: ",this.getText());
+                    if (!this.isopen) {
+                        this.setOpen(true, true); // open, withKey
+                    }
+                    this.timerIsInited = false;
+                } else {
+                    this.initSelect=false;
+                    this.timerIsInited = false;
+                }
+            ]]>
+        </method>	
+        
+        <attribute name="isopen" value="false" type="boolean" setter="this.setOpen(isopen)" />
+        
+        <handler name="onisopen" args="bool" />
+        
+        <method name="setOpen" args="open, withkey" >
+            if (!this.isinited) {
+                this.isopen = open;
+                return;
+            }
+            if (open) { // open combox
+                if (this.isopen) return; // tends to get called more than once, esp when
+
+                this.cblist.bringToFront();
+                this.cblist.setVisible(true);
+
+                this.isopen = true;
+                if (this['onisopen']) this.onisopen.sendEvent(true);
+            } else { // close combox
+                if (!this['isopen']) return;
+                this.isopen = false;
+
+                this.cblist.setVisible(false);
+                if (this['onisopen']) this.onisopen.sendEvent(false);
+                if ( lz.Focus.getFocus() == this.cblist ) {
+                    lz.Focus.setFocus(this, withkey);
+                }
+            }
+        </method>           
+
+        <floatinglist name="cblist"
+                      width="${owner.width - 1}"
+                      bordersize="${this.owner.bordersize}"
+                      spacing="${this.owner.spacing}"
+                      visible="false"
+                      shownitems="${this.owner.shownitems}"
+                      attach="bottom"
+                      attachoffset="${this.owner.attachoffset}"
+                      multiselect="false"
+                      autoscrollbar="${owner.autoscrollbar}" >
+
+            <method name="_dokeyup" args="kc"
+                    event="onkeyup">
+                if (kc == 27) {  // escape needs to close floating list
+                    this.owner.setOpen(false);
+                }
+            </method>
+            <method name="removeAllItems" args="index"> 
+                for (var eg in _contentview.subviews){
+                    _removeitem(_contentview.subviews[eg]); 
+                } 
+            </method>	
+            <handler name="onselect" args="obj">
+                ////Debug.write("obj: ",obj);
+                this.owner.setSelection(obj);
+            </handler>	            	
+        </floatinglist>        
+        
+         <handler name="onclick" reference="lz.GlobalMouse" args="who">
+           <![CDATA[ 
+               //need to use lz.GlobalMouse, since we don't get clicks if we're
+               //checked. NB that lz.GlobalMouse sends its events before the view
+               //receives the events, so we can just unlock it here, and the
+               //checkbox can do its normal onclick handling.
+               //Debug.write("onclick lz.GlobalMouse",lz.GlobalMouse,who);
+               //if (who != this.cblist && who.childOf(this.cblist)){
+               //    this.setOpen(false,false);
+               //} 
+               // LPP-3165
+           ]]>
+         </handler>        
+
+    </class>
+	
+
+	<validText y="20" width="270" name="_validbox" 
+        shownitems="7" validate_method="$once{ canvas.validateCountry }" 
+        resultId="state_id" resultName="name" />
+    
+    <button x="300" y="20" text="getValues">
+        <handler name="onclick">
+            //Debug.write(parent._validbox.getValue());
+            //Debug.write(parent._validbox.getText());
+            //Debug.write(parent._validbox._selected);
+        </handler>
+    </button>
+    
+ </canvas>
diff --git a/WebContent/src/test/simpletimertest.lzx b/WebContent/src/test/simpletimertest.lzx
new file mode 100644
index 0000000..521baba
--- /dev/null
+++ b/WebContent/src/test/simpletimertest.lzx
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<canvas height="400" debug="true">
+    
+    <include href="lz/button.lzx" />
+ 
+    <simplelayout axis="y" spacing="10" />
+
+    <text name="myText" opacity="0.0" bgcolor="#CCCCCC">The Invisible Man</text>
+     
+     
+    <edittext >
+        <attribute name="timerDelegate" value="null"/>
+        <attribute name="typetime" type="number" value="2000"/>
+        <attribute name="timerIsInited" value="false" type="boolean"/>
+     
+        <handler name="onvalue">
+            //Debug.write("onvalue");
+            if (!this.timerIsInited){
+                this.timerIsInited = true;
+                canvas.myText.setAttribute( "opacity", 1.0 );
+                this.timerDelegate = new LzDelegate( this, "fadeText" );
+                //Debug.write("+++++++++++++++++ addTimer");
+                lz.Timer.addTimer( this.timerDelegate, this.typetime );
+            } else {
+                //Debug.write("############### resetTimer NO ADDING ");
+                lz.Timer.resetTimer( this.timerDelegate, this.typetime );
+            }
+        </handler>
+     
+        <method name="fadeText">
+            this.timerIsInited = false;
+            //Debug.write("fadeText ");
+            canvas.myText.animate( "opacity", 0.0, 1000 );
+        </method>
+    </edittext>
+    
+    
+ 
+ </canvas>
diff --git a/WebContent/src/test/swf/Google.swf b/WebContent/src/test/swf/Google.swf
new file mode 100644
index 0000000..061e1d3
--- /dev/null
+++ b/WebContent/src/test/swf/Google.swf
Binary files differ
diff --git a/WebContent/src/test/swf/main.lzx b/WebContent/src/test/swf/main.lzx
new file mode 100644
index 0000000..2ee557a
--- /dev/null
+++ b/WebContent/src/test/swf/main.lzx
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+
+<canvas debug="true" width="100%" height="100%" fontsize="14" title="OpenMeetings - Computer testing">
+	
+	<debug fontsize="14" oninit="Debug.showInternalProperties = true"/>
+
+<button text="load SWF">
+    <handler name="onclick">
+        <![CDATA[
+	        if ($debug) Debug.write("load SWF");
+	        //parent.myView._swfView.setAttribute("src","Google.swf");
+	        parent.myView._swfView.setSource("http://localhost:5080/openmeetings/DownloadHandler?fileName=Google.swf&moduleName=videoconf1&parentPath=/Google&room_id=1&sid=a498726852b649da3cce4a5ee9cb3a9b");
+	        //parent.myView._swfView.setSource("http://localhost:5080/openmeetings/Google.swf");
+        ]]>
+    </handler>
+</button>
+
+<view name="myView" y="20">
+    <!--
+    play="false" stretches="both"
+     -->
+    <view name="_swfView" >
+        <handler name="onframe" args="i">
+            ////Debug.write("onframe",i);
+        </handler>
+        
+        <handler name="onplay" args="i">
+            ////Debug.write("onplay",i);
+        </handler>
+        
+        <handler name="onstop" args="i">
+            ////Debug.write("onstop",i);
+        </handler>
+        
+        <handler name="onload">
+            <![CDATA[
+                Debug.write("onload: ",this);
+            ]]>
+        </handler>
+        <handler name="onerror" args="error">
+            <![CDATA[
+                Debug.write("onerror "+error);
+            ]]>
+        </handler>
+        <handler name="ontimeout" args="error">
+            <![CDATA[
+                Debug.write("ontimeout "+error);
+            ]]>
+        </handler> 
+    </view>
+</view>
+
+</canvas>
diff --git a/WebContent/src/test/swf/main.lzx.lzr=swf8.swf b/WebContent/src/test/swf/main.lzx.lzr=swf8.swf
new file mode 100644
index 0000000..e766630
--- /dev/null
+++ b/WebContent/src/test/swf/main.lzx.lzr=swf8.swf
Binary files differ
diff --git a/WebContent/src/test/test-arrow.lzx b/WebContent/src/test/test-arrow.lzx
new file mode 100644
index 0000000..6bcd29b
--- /dev/null
+++ b/WebContent/src/test/test-arrow.lzx
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+
+<canvas debug="true" width="500" height="100%" >
+	
+	<debug oninit="Debug.showInternalProperties = true"/>
+	
+<class name="drawViewNew" extends="drawview" cachebitmap="false" x="-1" y="-1" >
+    
+</class>
+
+<drawview>
+    
+    <handler name="onconstruct">
+        <![CDATA[
+            //var pStart = {'x':100,'y':100};
+            //var pEnd = {'x':200,'y':200};
+            
+            var p = new flash.geom.Point(100,100);
+            var pEnd = new flash.geom.Point(100,200);
+            if ($debug) Debug.write("p",p);
+            
+            var normalizedPoint = new flash.geom.Point(-2, 4);
+			if ($debug) Debug.write(normalizedPoint.length); // 5
+			if ($debug) Debug.write(normalizedPoint.toString()); // (x=3, y=4)
+			normalizedPoint.normalize(10);
+			if ($debug) Debug.write(normalizedPoint.length); // 10
+			if ($debug) Debug.write(normalizedPoint.toString()); // (x=6, y=8)
+            
+            
+            var normalizedPoint = new flash.geom.Point(2, -4);
+            if ($debug) Debug.write(normalizedPoint.length); // 5
+            if ($debug) Debug.write(normalizedPoint.toString()); // (x=3, y=4)
+            normalizedPoint.normalize(10);
+            if ($debug) Debug.write(normalizedPoint.length); // 10
+            if ($debug) Debug.write(normalizedPoint.toString()); // (x=6, y=8)
+            
+            //normalizedPoint.normalize(5);
+            //if ($debug) Debug.write(normalizedPoint.length); // 10
+            //if ($debug) Debug.write(normalizedPoint.toString()); // (x=3, y=4)
+
+            if ($debug) Debug.write("##################");
+            
+            var pArrowStart = new flash.geom.Point(100,100);
+	        var pArrowEnd = new flash.geom.Point(200,100);
+	        
+	        var obj = new lz.drawViewNew(canvas);
+	        
+	        this.drawArrow(obj,pArrowStart,pArrowEnd,4);
+        ]]>
+    </handler>
+    
+    <method name="test">
+        var p1 = p.normalize(1);
+        if ($debug) Debug.write("p1",p1);
+        
+        var p11 = flash.geom.Point.interpolate(p,pEnd,0.5);
+        if ($debug) Debug.write("p11",p11);
+        
+        
+        var p12 = pEnd.subtract(p);
+        if ($debug) Debug.write("p12",p12);
+        
+        
+        var pArrowStart = new flash.geom.Point(100,100);
+        var pArrowEnd = new flash.geom.Point(200,200);
+        
+        var obj = new lz.drawViewNew(canvas);
+        
+        this.drawArrow(obj,pArrowStart,pArrowEnd,4);
+        
+        pArrowStart = new flash.geom.Point(300,300);
+        pArrowEnd = new flash.geom.Point(200,200);
+        obj = new lz.drawViewNew(canvas);
+        this.drawArrow(obj,pArrowStart,pArrowEnd,20);
+        
+        pArrowStart = new flash.geom.Point(600,300);
+        pArrowEnd = new flash.geom.Point(200,100);
+        obj = new lz.drawViewNew(canvas);
+        this.drawArrow(obj,pArrowStart,pArrowEnd,20);
+        
+        var p1 = new flash.geom.Point(-60, -100);
+        var p2 = new flash.geom.Point(20, 50);
+        var f = 0.5;
+        
+        var p3 = flash.geom.Point.interpolate(p1,p2,f);
+        if ($debug) Debug.write("p3",p3);
+    </method>
+    
+    <method name="drawArrow" args="graphics,start,end,thickness">
+        <![CDATA[
+    //(graphics:Graphics,
+    //            start:Point,end:Point,
+    //            style:Object=null):void {
+            
+            if (start.equals(end)) return;
+            
+            
+            var arrowStyle = {'shaftControlPosition':0.5,
+                    'shaftControlSize':0.5,
+                    'headLength':thickness*5, //Pixel Length of arrow head
+                    'headWidth':thickness*5,//Relative width of arrow head
+                    'edgeControlPosition':0.5,
+                    'edgeControlSize':0.5,
+                    'shaftPosition':0,
+                    'shaftThickness':thickness
+                    };
+            
+            var fullVect:Point = end.subtract(start);
+            var halfWidth:Number = (arrowStyle.headWidth != -1) ? arrowStyle.headWidth/2 : arrowStyle.headLength/2; 
+            
+            //Figure out the line start/end points
+            var startNorm = new flash.geom.Point(fullVect.y,-fullVect.x);
+            startNorm.normalize(arrowStyle.shaftThickness/2);
+            var start1 = start.add(startNorm);
+            var start2 = start.subtract(startNorm);
+            var end1 = end.add(startNorm);
+            var end2 = end.subtract(startNorm);
+            
+            //if ($debug) Debug.write("startNorm: ",startNorm.toString());
+            //if ($debug) Debug.write("start1: ",start1.toString());
+            //if ($debug) Debug.write("start2: ",start2.toString());
+            //if ($debug) Debug.write("end1: ",end1.toString());
+            //if ($debug) Debug.write("end2: ",end2.toString());
+            
+            //figure out where the arrow head starts
+            var headPnt = fullVect.clone();
+            //if ($debug) Debug.write("headPnt 1: ",headPnt.toString());
+            //if ($debug) Debug.write("headPnt.length 1: ",headPnt.length);
+            //if ($debug) Debug.write("arrowStyle.headLength 1: ",arrowStyle.headLength);
+            headPnt.normalize(headPnt.length-arrowStyle.headLength);
+            //if ($debug) Debug.write("headPnt 2: ",headPnt.toString());
+            headPnt = headPnt.add(start);
+            //if ($debug) Debug.write("headPnt 3: ",headPnt.toString());
+            
+            //calculate the arrowhead corners
+            var headPntNorm = startNorm.clone();
+            //if ($debug) Debug.write("headPntNorm ^^: ",headPntNorm.toString());
+            //if ($debug) Debug.write("halfWidth ^^: ",halfWidth);
+            headPntNorm.normalize(halfWidth);
+            //if ($debug) Debug.write("headPntNorm: ",headPntNorm.toString());
+            var edge1 = headPnt.add(headPntNorm);
+            var edge2 = headPnt.subtract(headPntNorm);
+            
+            //if ($debug) Debug.write("edge1: ",edge1.toString());
+            //if ($debug) Debug.write("edge2: ",edge2.toString());
+            
+            //Figure out where the arrow connects the the shaft, then calc the intersections
+            var shaftCenter = flash.geom.Point.interpolate(end,headPnt,arrowStyle.shaftPosition);
+            //if ($debug) Debug.write("end: ",end.toString());
+            //if ($debug) Debug.write("headPnt",headPnt.toString());
+            //if ($debug) Debug.write("arrowStyle.shaftPosition: ",arrowStyle.shaftPosition);
+            //if ($debug) Debug.write("shaftCenter",shaftCenter.toString());
+            var inter1 = this.getLineIntersection(start1,end1,shaftCenter,edge1);
+            var inter2 = this.getLineIntersection(start2,end2,shaftCenter,edge2);
+            
+            //if ($debug) Debug.write("inter1: ",inter1.toString());
+            //if ($debug) Debug.write("inter2: ",inter2.toString());
+            
+            //Figure out the control points
+            var edgeCenter = flash.geom.Point.interpolate(end,headPnt,arrowStyle.edgeControlPosition);
+            var edgeNorm = startNorm.clone();
+            edgeNorm.normalize(halfWidth*arrowStyle.edgeControlSize);
+            //if ($debug) Debug.write("halfWidth*arrowStyle.edgeControlSize: "+(halfWidth*arrowStyle.edgeControlSize));
+            //if ($debug) Debug.write("edgeNorm: "+edgeNorm.toString());
+            var edgeCntrl1 = edgeCenter.add(edgeNorm);
+            var edgeCntrl2 = edgeCenter.subtract(edgeNorm);
+
+            //if ($debug) Debug.write("edgeCntrl1: ",edgeCntrl1.toString());
+            //if ($debug) Debug.write("edgeCntrl2: ",edgeCntrl2.toString());
+
+            //if ($debug) Debug.write("moveTo: ",start1.x,start1.y);
+            //if ($debug) Debug.write("lineTo",inter1.x,inter1.y);
+            //if ($debug) Debug.write("lineTo",edge1.x,edge1.y);
+            //if ($debug) Debug.write("quadraticCurveTo",edgeCntrl1.x,edgeCntrl1.y,end.x,end.y);
+            //if ($debug) Debug.write("quadraticCurveTo",edgeCntrl2.x,edgeCntrl2.y,edge2.x,edge2.y);
+            //if ($debug) Debug.write("lineTo",inter2.x,inter2.y);
+            //if ($debug) Debug.write("lineTo",start2.x,start2.y);
+            //if ($debug) Debug.write("lineTo",start1.x,start1.y);
+            
+            graphics.moveTo(start1.x,start1.y);
+            graphics.lineTo(inter1.x,inter1.y);
+            graphics.lineTo(edge1.x,edge1.y);
+            graphics.quadraticCurveTo(edgeCntrl1.x,edgeCntrl1.y,end.x,end.y);
+            graphics.quadraticCurveTo(edgeCntrl2.x,edgeCntrl2.y,edge2.x,edge2.y);
+            graphics.lineTo(inter2.x,inter2.y);
+            graphics.lineTo(start2.x,start2.y);
+            graphics.lineTo(start1.x,start1.y);
+            
+            graphics.strokeStyle = 0x000000;
+            graphics.stroke();
+
+            graphics.fillStyle = 0x000000;
+            graphics.fill();
+        ]]>
+    </method>
+    
+    <method name="getLineIntersection" args="a1,a2,b1,b2">
+        <![CDATA[ 
+        
+            //calculate directional constants
+            var k1 = (a2.y-a1.y) / (a2.x-a1.x);
+            var k2 = (b2.y-b1.y) / (b2.x-b1.x);
+            
+            // if the directional constants are equal, the lines are parallel,
+            // meaning there is no intersection point.
+            if( k1 == k2 ) return null;
+            
+            var x = 0;
+            var y = 0;
+            var m1 = 0;
+            var m2 = 0;
+            
+            //if ($debug) Debug.write("k1",k1);
+            //if ($debug) Debug.write("k2",k2);
+            
+            // an infinite directional constant means the line is vertical
+            if( !isFinite(k1) ) {
+                
+                //if ($debug) Debug.write("k1 ^^ 0");
+                //if ($debug) Debug.write("k2",k2,(b2.y-b1.y));
+                //if ($debug) Debug.write("b1.getY(): "+b1.y);
+                //if ($debug) Debug.write("b2.getY(): "+b2.y);
+                // so the intersection must be at the x coordinate of the line
+                x = a1.x;
+                m2 = b1.y - k2 * b1.x;
+                //if ($debug) Debug.write("m2",m2);
+                y = k2 * x + m2;
+                //if ($debug) Debug.write("y",y);
+                
+            // same as above for line 2
+            } else if ( !isFinite(k2) ) {
+                
+                //if ($debug) Debug.write("k2 ^ 0");
+                
+                m1 = a1.y - k1 * a1.x;
+                x = b1.x;
+                y = k1 * x + m1;
+
+            // if neither of the lines are vertical
+            } else {
+                
+                //if ($debug) Debug.write("neither");
+            
+                m1 = a1.y - k1 * a1.x;
+                m2 = b1.y - k2 * b1.x;              
+                x = (m1-m2) / (k2-k1);
+                y = k1 * x + m1;
+                
+            }
+            
+            return new flash.geom.Point(x,y);
+        ]]>
+    </method>
+    
+    <method name="intermediatePoint" args="p1,p2,f">
+        <![CDATA[
+            
+            var d = Math.sqrt( Math.abs(p1.x - p2.x)^2 + Math.abs(p2.y - p2.y)^2 );
+        
+        ]]>
+    </method>
+    
+</drawview>
+  
+    
+</canvas>
diff --git a/WebContent/src/test/test-baseDraw.lzx b/WebContent/src/test/test-baseDraw.lzx
new file mode 100644
index 0000000..e62cae6
--- /dev/null
+++ b/WebContent/src/test/test-baseDraw.lzx
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+
+<canvas debug="true" width="100%" height="100%" >
+	
+	<debug fontsize="14" oninit="Debug.showInternalProperties = true"/>
+	
+<drawview x="0" y="0" width="100" height="100">
+	
+	<handler name="onwidth">
+		Debug.write(this.isinited);
+	</handler>
+	
+	<handler name="onheight">
+		Debug.write(this.isinited);
+	</handler>
+	
+</drawview>
+  
+    
+</canvas>
diff --git a/WebContent/src/test/test-drawview.lzx b/WebContent/src/test/test-drawview.lzx
new file mode 100644
index 0000000..d447b49
--- /dev/null
+++ b/WebContent/src/test/test-drawview.lzx
@@ -0,0 +1,56 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<canvas debug="true" width="1000" height="800">
+
+    <debug x="250" height="500" /> 
+
+    <drawview width="200" height="100">
+        
+        <handler name="oninit">
+            this.drawBody(this,0,0,this.width,this.height,0xff3300,2);
+        </handler>
+        
+        <handler name="onclick">
+            this.drawBody(this,0,0,this.width,this.height,0xff3300,2);
+        </handler>
+        
+        <method name="drawBody" args="targetObj,x1,y1,x2,y2,fill,lineWidth">
+        <![CDATA[
+            
+            if ($debug) Debug.write("drawBody: ",targetObj,lineWidth);
+        
+            targetObj.lineWidth = lineWidth;
+            targetObj.beginPath();
+            targetObj.moveTo(x1,y1);
+            targetObj.lineTo(x1,y2);
+            targetObj.lineTo(x2,y2);
+            targetObj.lineTo(x2,y1);
+            targetObj.lineTo (x1,y1);
+            targetObj.closePath();
+
+            targetObj.fillStyle = fill;
+            targetObj.fill();
+            
+        ]]>   
+    </method>   
+        
+    </drawview>
+
+</canvas>
diff --git a/WebContent/src/test/test-menubar.lzx b/WebContent/src/test/test-menubar.lzx
new file mode 100644
index 0000000..083ecdf
--- /dev/null
+++ b/WebContent/src/test/test-menubar.lzx
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+
+<canvas debug="true" width="100%" height="100%" fontsize="14" title="OpenMeetings - Computer testing">
+	
+	<debug fontsize="14" oninit="Debug.showInternalProperties = true"/>
+    
+    <!-- private class for conferenceMenubar class -->
+    <class name="_labelMenuItem" extends="menuitem" text="labelmenulabelmenulabelmenu">
+        <attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+        <method name="setLabelId" args="_labelid" >
+            this.labelid = _labelid;
+            this.setAttribute('text',"text "+this.labelid);
+        </method>
+    </class>    
+        
+    <!-- private class for conferenceMenubar class -->
+    <class name="_labelMenu" extends="menu" text="labelmenulabelmenulabelmenu">
+        <attribute name="labelid" type="number" setter="setLabelId(labelid)" />
+        <method name="setLabelId" args="_labelid" >
+            this.labelid = _labelid;
+            this.setAttribute('text',"text "+this.labelid);
+        </method>
+    </class>  
+    
+    <class name="conferenceMenubar" extends="menubar" height="28" >
+       <!-- exit room -->
+        <_labelMenu labelid="308" width="250">
+            <_labelMenuItem labelid="309" />
+        </_labelMenu>
+        <!-- moderator menu -->
+        <_labelMenu labelid="301" width="250">
+            <_labelMenuItem labelid="302" />
+        </_labelMenu>
+        <!-- file menu -->
+        <_labelMenu labelid="245" width="250">
+            <_labelMenuItem labelid="15" />
+        </_labelMenu>    
+       <!-- setteings menu --> 
+        <_labelMenu labelid="305" width="250">
+            <_labelMenuItem labelid="306" />
+            <_labelMenuItem labelid="307" />
+        </_labelMenu>   
+        <!-- poll memu -->     
+        <_labelMenu labelid="303" width="250">
+            <_labelMenuItem width="250" labelid="24" />
+            <_labelMenuItem width="250" labelid="37" />
+            <_labelMenuItem width="250" labelid="42" />
+        </_labelMenu>    
+    </class>    
+    
+    
+    <handler name="oninit">
+        new lz.conferenceMenubar(canvas);
+    </handler>
+    
+</canvas>
diff --git a/WebContent/src/test/test-regExp.lzx b/WebContent/src/test/test-regExp.lzx
new file mode 100644
index 0000000..088728e
--- /dev/null
+++ b/WebContent/src/test/test-regExp.lzx
@@ -0,0 +1,90 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<canvas debug="true" >
+  
+
+      <script when="immediate" >        
+        class LzRegExp extends Instance{
+          static var regexp_cnt = 0;
+          
+          static function initialize(){
+
+              /* if this was in the html-wrapper, would early instantiations be successful? */
+              lz.Browser.loadJS( "window.__lzregexp={};" + 
+                "window.__createRegExp=function(id,re,mod){window.__lzregexp[id]=new RegExp(re,mod);return true};" +
+                "window.__testRegExp=function(id,s){return window.__lzregexp[id].test(s)};" +
+                "window.__execRegExp=function(id,s){return window.__lzregexp[id].exec(s)};" +
+                "window.__deleteRegExp=function(id){delete window.__lzregexp[id]};" 
+              );
+
+          }
+          
+          function initialize( regexp, mod ){
+            super.initialize( this, arguments );
+
+              this.regexp_id = LzRegExp.regexp_cnt++;
+              this.__isready = true;
+              
+              var me = this;
+              lz.Browser.callJS( "window.__createRegExp", function(res){me.__isready = res == true}, this.regexp_id, regexp, mod );
+
+          }
+          
+          function test( s ){
+              if( this.__isready ){
+                return flash.external.ExternalInterface.call.apply( flash.external.ExternalInterface, ["window.__testRegExp", this.regexp_id, s] );
+              } else {
+                Debug.format( "called %w too early", arguments.callee.name );
+              }
+          }
+          
+          function exec( s ){
+              if( this.__isready ){
+                return flash.external.ExternalInterface.call.apply( flash.external.ExternalInterface, ["window.__execRegExp", this.regexp_id, s] );
+              } else {
+                Debug.format( "called %w too early", arguments.callee.name );
+              }
+          }
+          
+          function destroy(){
+            lz.Browser.callJS( "window.__deleteRegExp", null, this.regexp_id );
+          }
+        }
+      </script>
+
+  <button name="btn" text="test" />
+  
+  <handler name="oninit" reference="canvas" method="testRegExp" />
+  <handler name="onclick" reference="btn" method="testRegExp" />
+  
+  <method name="testRegExp" >
+    var regexp = new LzRegExp( ".ello" );
+    Debug.write( regexp.test( "Hello" ) );
+    Debug.write( regexp.test( "Hallo" ) );
+    regexp.destroy();
+
+    global.regexpflag = global["regexpflag"] == true;
+    if( !global.regexpflag ){
+      global.regexpflag = true;
+      lz.Timer.addTimer( new LzDelegate( canvas, "testRegExp" ), 500 );
+    }
+  </method>
+  
+</canvas>
diff --git a/WebContent/src/test/test-regExp.lzx.lzr=swf8.swf b/WebContent/src/test/test-regExp.lzx.lzr=swf8.swf
new file mode 100644
index 0000000..df4a310
--- /dev/null
+++ b/WebContent/src/test/test-regExp.lzx.lzr=swf8.swf
Binary files differ
diff --git a/WebContent/src/test/test-regExp2.lzx b/WebContent/src/test/test-regExp2.lzx
new file mode 100644
index 0000000..efedaf0
--- /dev/null
+++ b/WebContent/src/test/test-regExp2.lzx
@@ -0,0 +1,77 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<canvas debug="true" >
+  <script>
+    _browserjavascriptcallback = "";
+  </script>
+  
+     <attribute name="lzappId" type="string" value="lzapp" />
+     <attribute name="timer" type="number" value="10" />
+     <attribute name="prevalue" type="string" value="_browserjavascriptcallbackprevalue" />
+     <attribute name="value" />
+     
+     <handler name="onvalue" args="v">
+     	if ($debug) Debug.write("onvalue: ",v);
+     	
+     </handler>
+     
+	<edittext name="_hand" />
+  
+  <button name="btn" y="20" text="test" onclick="canvas.testRegExp()" />
+
+  <method name="testRegExp2">
+  	<![CDATA[
+  		var regExp = "[0-9]*";
+  		
+    	var fieldValue = this._hand.getText();
+  	    
+    	var returnValue = flash.external.ExternalInterface.call("replace",fieldValue,escape(regExp),escape);
+    	if ($debug) Debug.write("returnValue: ",returnValue);
+	]]>
+ </method>
+ 
+ <method name="testRegExp" >
+ 	<![CDATA[
+	var fieldValue = "9";
+	var regExp = "[0-9]*";
+    var regex = "/^"+regExp+"$/";
+    var script = "( !( (\""+ fieldValue +"\".replace("+ regex +" ,\"\").length == 0) && ( "+ regex +".test(\""+ fieldValue +"\")) ) ) ";
+  
+	var t = script.split("'").join("\\'");
+	var s = "document.getElementById('"+ lzappId + "').SetVariable('_browserjavascriptcallback', escape((" + t + ")));"
+
+	
+		lz.Browser.loadJS(s);
+		
+		if(typeof this.callDelegate == 'undefined')
+		this.callDelegate = new LzDelegate( this, "callback" );
+		lz.Timer.resetTimer( this.callDelegate, timer );
+		]]>
+   </method>
+
+ <method name="callback">
+	if(unescape(_browserjavascriptcallback) == this.prevalue)
+	lz.Timer.resetTimer( this.callDelegate, timer );
+	else
+	setAttribute("value", unescape(_browserjavascriptcallback));
+ </method>
+
+
+</canvas>
diff --git a/WebContent/src/test/test-regExp2.lzx.lzr=swf8.swf b/WebContent/src/test/test-regExp2.lzx.lzr=swf8.swf
new file mode 100644
index 0000000..4d97d95
--- /dev/null
+++ b/WebContent/src/test/test-regExp2.lzx.lzr=swf8.swf
Binary files differ
diff --git a/WebContent/src/test/test-regexp.html b/WebContent/src/test/test-regexp.html
new file mode 100644
index 0000000..26f4890
--- /dev/null
+++ b/WebContent/src/test/test-regexp.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html>
+<head>

+	<link rel="shortcut icon" href="favicon.ico" > 
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<title>vMapPortal</title>

+	<script type="text/javascript" src="swfobject.js"></script>

+	<style type="text/css">

+		

+		/* hide from ie on mac \*/

+		html {

+			height: 100%;

+			overflow: hidden;

+		}

+		

+		#flashcontent {

+			height: 100%;

+		}

+		/* end hide */

+	

+		body {

+			height: 100%;

+			margin: 0;

+			padding: 0;

+			background-color: #ffffff;

+		}

+	

+	</style>
+</head>
+<body onLoad="focusSWF()">

+

+

+	<div id="flashcontent">

+		<strong>You need to upgrade your Flash Player</strong>

+		This is replaced by the Flash content. 

+		Place your alternate content here and users without the Flash plugin or with 

+		Javascript turned off will see this. Content here allows you to leave out <code>noscript</code> 

+		tags.

+	</div>

+	

+	<script type="text/javascript">

+		// <![CDATA[

+		

+		var so = new SWFObject("portal.swf", "lzapp", "100%", "100%", "8", "#ffffff");

+		so.addParam("quality", "high");

+		so.addParam("id", "lzapp");

+		so.addParam("allowScriptAccess", "always");

+		so.addParam("scale", "noscale");

+		so.write("flashcontent");

+		

+		function focusSWF(){

+		

+		    if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){

+		    }else {

+		        document.getElementById('lzapp').focus();

+		    }

+		}   		

+		

+		// ]]>

+	</script>	

+

+

+</body>
+</html>
\ No newline at end of file
diff --git a/WebContent/src/test/test-scrollEdittext.lzx b/WebContent/src/test/test-scrollEdittext.lzx
new file mode 100644
index 0000000..0f820f1
--- /dev/null
+++ b/WebContent/src/test/test-scrollEdittext.lzx
@@ -0,0 +1,37 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<canvas debug="true" width="1000" height="800">
+
+    <debug x="250" height="500" /> 
+
+    <include href="scrolledittext.lzx"/>
+
+    <scrolledittext name="_scrolledittext" y="130" x="120" width="270" height="120"
+                                  text="" />
+                                  
+                                  
+    <view width="200" height="100" y="300" x="100" bgcolor="0xFFFFFF">
+        <inputtext multiline="true" width="${ parent.width - 14 }">
+            
+        </inputtext>
+        <om_vscrollbar />
+    </view>
+
+</canvas>
diff --git a/WebContent/src/test/test-setup.lzx b/WebContent/src/test/test-setup.lzx
new file mode 100644
index 0000000..60ecfab
--- /dev/null
+++ b/WebContent/src/test/test-setup.lzx
@@ -0,0 +1,564 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
+	license agreements. See the NOTICE file distributed with this work for additional 
+	information regarding copyright ownership. The ASF licenses this file to 
+	you under the Apache License, Version 2.0 (the "License"); you may not use 
+	this file except in compliance with the License. You may obtain a copy of 
+	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+	by applicable law or agreed to in writing, software distributed under the 
+	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+	OF ANY KIND, either express or implied. See the License for the specific 
+	language governing permissions and limitations under the License. -->
+<canvas debug="true" height="100%" title="Audio-Video Test-Application">
+
+	<debug width="450" x="460" y="600" height="100" />
+
+	<switch>
+		<when property="$as3">
+			<passthrough>
+			    import flash.events.*;
+	            import flash.net.*;
+	            import flash.media.*
+			</passthrough>
+		</when>
+	</switch>
+	
+	<class name="myListItem" extends="textlistitem">
+	</class>
+
+	<!--- NetConnection -->
+	<attribute name="_nc" value="null" />
+
+	<!--- NetStream -->
+	<attribute name="_nsBroadCast" value="null" />
+	<attribute name="_nsPlay" value="null" />
+
+	<!--- devices - Reference -->
+	<attribute name="_camera" value="null" />
+	<attribute name="_micro" value="null" />
+
+	<method name="connectRtmpConnection">
+		this._nc = new NetConnection();
+		this._nc.proxyType = "best";
+		Debug.write("connectRtmpConnection URL:",url.getText());
+		this._nc.connect(url.getText());
+		
+		this._nc.addEventListener(NetStatusEvent.NET_STATUS, _onStatus);
+		var clientObj = {};
+   		clientObj.setId = this.setId;
+   		
+   		this._nc.client = clientObj;
+    		
+		//this._nc.onStatus = function(info){
+		//Debug.write(info.code,info);
+		//}
+	</method>
+	
+	<method name="setId" args="tId">
+		if ($debug) Debug.write("setId ", tId);
+	</method>
+	
+    <method name="_onStatus" args="stats"><![CDATA[
+        if ($debug) {
+            Debug.write("devrtmpconnection", this, "_onStatus", stats.info.code);
+        }
+      ]]>
+    </method>
+
+	<method name="startBroadCast">
+	<![CDATA[
+	    if ($debug) Debug.write("startBroadCast 1");
+	    if (this._camera != null) {
+		  this._camera = Camera.getCamera(camDevices.getValue());
+		}
+		if ($debug) Debug.write("startBroadCast 2");
+		//sets the Mode
+		//see: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Camera.html#setMode%28%29
+		if (this._camera != null) this._camera.setMode(Number(streamwidth.getText()),Number(streamheight.getText()),Number(streamfps.getText()),streamfavorarea.getValue());	
+		if ($debug) Debug.write("startBroadCast 3");
+		//sets the Quality
+		//see: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Camera.html#setQuality%28%29
+		if (this._camera != null) this._camera.setQuality(Number(streambandwidth.getText()),Number(streamquality.getText()));	
+		if ($debug) Debug.write("startBroadCast 4");
+		if (useEnhancedMicrophone.getValue()) {
+			this._micro = Microphone.getEnhancedMicrophone(micDevices.getValue());
+			
+			if ($debug) Debug.write(this._micro.enhancedOptions);
+			
+		} else {
+			this._micro = Microphone.getMicrophone(micDevices.getValue());
+		}
+		if ($debug) Debug.write("startBroadCast 5");
+		this._micro.codec = SoundCodec.NELLYMOSER;
+		if ($debug) Debug.write("startBroadCast 6");
+		//sets the Microphone Rate in Khz
+		//see:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Microphone.html#rate
+		this._micro.rate = Number(streamrate.getText());
+		if ($debug) Debug.write("startBroadCast 7");
+		this._micro.gain = 50;
+		if ($debug) Debug.write("startBroadCast 8");
+		//sets wether useEchoSupression should be used or not
+		//http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Microphone.html#useEchoSuppression
+		this._micro.setUseEchoSuppression(streamuseEchoSuppression.getValue());
+		if ($debug) Debug.write("startBroadCast 9");
+		//attaches the Camera to the View
+		if (this._camera != null) broadCastVideo.attachVideo(this._camera);
+		if ($debug) Debug.write("startBroadCast 10");
+		this._nsBroadCast =  new NetStream(this._nc);
+		//see: http://livedocs.adobe.com/flash/9.0_de/ActionScriptLangRefV3/flash/net/NetStream.html
+        //according to the docs the construct to catch event has to be implemented like this.
+        var t = this;
+		var clientObject = new Object();
+		if ($debug) Debug.write("startBroadCast 11");
+		clientObject.onMetaData = function(metadata:Object):void {
+			t.onMetaData(metadata);
+		};
+		clientObject.onPlayStatus = function(metadata:Object):void {
+			t.onPlayStatus(metadata);
+		};
+		clientObject.onCuePoint = function(metadata:Object):void {
+			t.onCuePoint(metadata);
+		};
+		clientObject.ioError = function(error:Object):void {
+			t.ioError(error);
+		};
+		clientObject.netStatus = function(status:Object):void {
+			t.netStatus(status);
+		};
+		clientObject.asyncError = function(error:Object):void {
+			t.asyncError(error);
+		};
+		if ($debug) Debug.write("startBroadCast 12");
+		this._nsBroadCast.client = clientObject;
+		//this is a workaround, attaching the event to the client object does not work
+		this._nsBroadCast.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus2);
+	    if ($debug) Debug.write("startBroadCast 13");
+		if (this._camera != null) this._nsBroadCast.attachCamera(this._camera);
+	    this._nsBroadCast.attachAudio(this._micro);
+	    if ($debug) Debug.write("startBroadCast 14");
+	    this._nsBroadCast.publish(streamname.getText(),"live");
+	    if ($debug) Debug.write("startBroadCast 15");
+    ]]>
+	</method>
+	
+	<method name="onNetStatus2" args="evt">
+		if($debug) Debug.write("netStream_onNetStatus: " , evt.info.code, evt.target);
+	</method>
+	
+	<method name="asyncError" args="error">
+		if($debug) Debug.write("simpleNetStream asyncError",error);
+	</method>
+	
+	<method name="netStatus" args="status">
+		if($debug) Debug.write("simpleNetStream netStatus",status);
+	</method>
+	
+	<method name="ioError" args="error">
+		if($debug) Debug.write("simpleNetStream ioError",error);
+	</method>
+
+    <method name="onCuePoint" args="info"><![CDATA[
+        if($debug) Debug.write("simpleNetStream onCuePoint",info);
+    ]]></method>
+
+    <method name="onPlayStatus" args="info"><![CDATA[
+        if($debug) Debug.write("simpleNetStream onPlayStatus",info);
+    ]]></method>
+
+    <method name="onMetaData" args="info"><![CDATA[
+        if($debug) Debug.write("simpleNetStream onMetaData",info);
+    ]]></method>
+
+	<method name="stopBroadCast">
+		this._nsBroadCast.publish(false);
+		broadCastVideo.attachVideo(null);
+		broadCastVideo.stopIt();
+		this._nsBroadCast.close();
+	</method>
+
+
+	<method name="playBroadCast">
+	<![CDATA[
+		//attaches the Camera to the View
+	
+		this._nsPlay =  new NetStream(this._nc);
+		//see: http://livedocs.adobe.com/flash/9.0_de/ActionScriptLangRefV3/flash/net/NetStream.html
+        //according to the docs the construct to catch event has to be implemented like this.
+        var t = this;
+		var clientObject = new Object();
+		clientObject.onMetaData = function(metadata:Object):void {
+			t.onMetaData(metadata);
+		};
+		clientObject.onPlayStatus = function(metadata:Object):void {
+			t.onPlayStatus(metadata);
+		};
+		clientObject.onCuePoint = function(metadata:Object):void {
+			t.onCuePoint(metadata);
+		};
+		clientObject.ioError = function(error:Object):void {
+			t.ioError(error);
+		};
+		clientObject.netStatus = function(status:Object):void {
+			t.netStatus(status);
+		};
+		clientObject.asyncError = function(error:Object):void {
+			t.asyncError(error);
+		};
+		this._nsPlay.client = clientObject;
+		//this is a workaround, attaching the event to the client object does not work
+		this._nsPlay.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus2);
+	
+	    //sets the Buffer for the Playing
+	    //see: http://livedocs.adobe.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002567.html#wp393038
+	    //this._nsPlay.setBufferTime(Number(this.streambuffer.getText())); 
+	    //=> disabled, cause this leads to Buffer-Full-Buffer-Empty-Events after re-syncing
+		playVideo.attachVideo(this._nsPlay);
+	    
+	    this._nsPlay.play(streamname.getText(),-1);
+    ]]>
+	</method>
+
+	<method name="stopPlayBroadCast">
+		this._nsPlay.pause();
+		this._nsPlay.close();
+		playVideo.attachVideo(null);
+		playVideo.stopIt();
+	</method>
+
+	<view layout="axis:y;spacing:4" width="450" x="0">
+		<text fontstyle="bold"
+			text="Connection - Settings (user for both BroadCasting and Subscribing)" />
+		<view width="450">
+			<text text="URL:" />
+			<edittext align="right" width="350" id="url"
+				text="rtmp://127.0.0.1:1935/openmeetings/testscope" />
+		</view>
+		<button align="right" width="200" text="connectRtmpConnection"
+			onclick="canvas.connectRtmpConnection()" />
+	</view>
+	<!-- some description -->
+	<text fontstyle="italic" y="0" width="450" multiline="true" x="450">
+		You can test all Settings of Audio and Video Streamings which are currently used in OpenMeetings here. <br /> 
+		Change the URL so that 127.0.0.1 points to your Red5-Installation! <br />
+		You first need to <b>connect</b> to a stream before you start to <b>broadcast</b>!<br />
+		You first need <b>broadcast</b> a stream with a name before you try to <b>subscribe</b> to it!<br />
+		If somebody already uses that streamname you get an NetStream *Bad.StreamName*, you can take an StreamName you like, but of course you have to tell the *player* that it will need to use that StreamName!
+		<br />
+	</text>
+
+	<checkbox name="modus" y="120"
+		text="Event Modus (320x240) or Conference Modus (128x96)" value="true">
+		<handler name="onvalue" args="v">
+			if (canvas.isinited) {
+				if (v){
+					broadCastVideo.setAttribute('width',320);
+					broadCastVideo.setAttribute('height',240);
+					broadCastVideo.applySizeToVid();
+					playVideo.setAttribute('width',320);
+					playVideo.setAttribute('height',240);
+					playVideo.applySizeToVid();
+				} else {
+					broadCastVideo.setAttribute('width',128);
+					broadCastVideo.setAttribute('height',96);
+					broadCastVideo.applySizeToVid();
+					playVideo.setAttribute('width',128);
+					playVideo.setAttribute('height',96);
+					playVideo.applySizeToVid();
+				}
+			}
+		</handler>
+	</checkbox>
+
+	<view bgcolor="black" width="${ canvas.width }" height="2" y="140" />
+
+	<!-- two columns left BroadCast, right Subscribe a Stream -->
+	<view y="144" height="$once{ canvas.height-this.y }" clip="true">
+		<!--- ScrollArea -->
+		<view layout="axis:x;spacing:10">
+			<!--- BroadCasting Area -->
+			<view layout="axis:y;spacing:4" width="450">
+
+				<!--- Video Area -->
+				<view id="broadCastVideo" bgcolor="black" width="320" height="240">
+				
+					<passthrough when="$as3">
+				        import flash.media.*;
+				        import flash.net.NetConnection;
+				        import flash.net.NetStream;
+				    </passthrough>
+				    
+				    <attribute name="__LZvideo" value="null" />
+								
+					<method name="init"><![CDATA[
+				        super.init();
+				        var mc = new Video(this.width, this.height);
+				        this.sprite.addChild(mc);
+				        this.__LZvideo = mc;
+				        this.applySizeToVid();
+				    ]]></method>
+					<method name="applySizeToVid">
+						if (this.__LZvideo == null) {
+							return;
+						}
+						var vid = this._getflashvideo();
+						vid.width = this.width;
+						vid.height = this.height;
+					</method>
+					<method name="_getflashvideo">
+						<![CDATA[
+				            //Debug.write("_getflashvideo()");
+				            return this.__LZvideo;
+				        ]]>
+				    </method>
+					<method name="stopIt">
+						if (this.__LZvideo == null) {
+							return;
+						}
+						var vid = this._getflashvideo();
+				    	vid.attachNetStream(null);
+						this.__LZvideo.clear();
+					</method>
+					<!--- shows the Video (can be a Cam-Instance or a NetStream) in the 
+						View -->
+					<method name="attachVideo" args="video">
+						if (this.__LZvideo == null) {
+							return;
+						}
+						var vid = this._getflashvideo();
+						vid.attachCamera(video);
+					</method>
+				</view>
+
+				<text fontstyle="bold" text="BroadCast - Settings" />
+				<view width="450">
+					<text text="StreamName (BroadCast):" />
+					<edittext align="right" width="150" id="streamname" text="stream1" />
+				</view>
+
+				<button align="right" width="200" text="startBroadCast"
+					onclick="canvas.startBroadCast()" />
+				<button align="right" width="200" text="stopBroadCast"
+					onclick="canvas.stopBroadCast()" />
+
+				<text fontstyle="bold" text="Video and Audio - Settings for Broad-Casting" />
+
+				<!--- Settings -->
+				<view width="450">
+					<text text="Camera:" />
+					<combobox align="right" width="350" id="camDevices"
+						editable="false" itemclassname="myListItem">
+						<switch>
+				            <when property="$as3">
+				                <passthrough>
+				                    import flash.media.Camera;
+				                </passthrough>
+				            </when>
+				        </switch>
+						<handler name="oninit">
+						<![CDATA[
+							//Get all availible Cam's
+							var tw = Camera.names;
+							var r = "";
+							for (var eg=0;eg<tw.length;eg++){
+								this.addItem(tw[eg],eg);
+								r=eg;
+							}
+							this.selectItem(String(r));  
+						]]>
+						</handler>
+					</combobox>
+				</view>
+				<!--- Width -->
+				<view width="450">
+					<text text="Width:" />
+					<edittext align="right" width="150" id="streamwidth"
+						text="$ { broadCastVideo.width }" />
+					<text fontstyle="italic" y="26" width="450" multiline="true">
+						width:Number [optional] - The requested capture width, in pixels. The default value is 160.
+					</text>
+				</view>
+				<!--- Height -->
+				<view width="450">
+					<text text="Height:" />
+					<edittext align="right" width="150" id="streamheight"
+						text="$ { broadCastVideo.height }" />
+					<text fontstyle="italic" y="26" width="450" multiline="true">
+						height:Number [optional] - The requested capture height, in pixels. The default value is 120.
+					</text>
+				</view>
+				<!-- Frames Per Second -->
+				<view width="450">
+					<text text="FPS:" />
+					<edittext align="right" width="150" id="streamfps" text="30" />
+					<text fontstyle="italic" y="26" width="450" multiline="true">
+						fps:Number [optional] - The requested rate at which the camera should capture data, in frames per second. The default value is 15.
+					</text>
+				</view>
+				<!--- FavorArea -->
+				<view width="450">
+					<checkbox id="streamfavorarea" text="Favorarea" value="true" />
+					<text fontstyle="italic" y="26" width="450" multiline="true">
+						favorArea:Boolean [optional] - A Boolean value that specifies how to manipulate the width, height, and frame rate if the camera does
+						not have a native mode that meets the specified requirements. The default value is true, which means that maintaining capture size
+						is favored; using this parameter selects the mode that most closely matches width and height values, even if doing so
+						adversely affects performance by reducing the frame rate. To maximize frame rate at the expense of camera height and width,
+						pass false for the favorArea parameter.
+					</text>
+				</view>
+				<!--- Bandwidth -->
+				<view width="450">
+					<text text="Bandwidth:" />
+					<edittext align="right" width="150" id="streambandwidth"
+						text="0" />
+					<text fontstyle="italic" y="26" width="450" multiline="true">
+						bandwidth:Number [optional] - An integer that specifies the maximum amount of bandwidth that the current outgoing video feed
+						can use, in bytes per second. To specify that Flash video can use as much bandwidth as needed to maintain the value of frameQuality, pass 0 for bandwidth.
+					</text>
+				</view>
+				<!--- Quality -->
+				<view width="450">
+					<text text="Quality:" />
+					<edittext align="right" width="150" id="streamquality"
+						text="90" />
+					<text fontstyle="italic" y="26" width="450" multiline="true">
+						quality:Number [optional] - An integer that specifies the required level of picture quality, as determined by the amount of
+						compression being applied to each video frame. Acceptable values range from 1 (lowest quality, maximum compression) to 100 (highest
+						quality, no compression). To specify that picture quality can vary as needed to avoid exceeding bandwidth, pass 0 for quality. The
+						default value is 0.
+					</text>
+				</view>
+				<!--- Choose Microphone -->
+				<view width="450">
+					<text text="Microphone:" />
+					<combobox align="right" width="350" id="micDevices"
+						editable="false" itemclassname="myListItem">
+						<switch>
+				            <when property="$as3">
+				                <passthrough>
+				                    import flash.media.Microphone;
+				                </passthrough>
+				            </when>
+				        </switch>
+						<handler name="oninit">
+						<![CDATA[
+							//Get all availible Cam's
+							var tw = Microphone.names;
+							var r = "";
+							for (var eg=0;eg<tw.length;eg++){
+								this.addItem(tw[eg],eg);
+								r=eg;
+							}
+							this.selectItem(String(r));  
+						]]>
+						</handler>
+					</combobox>
+				</view>
+				<!--- Audio-Rate -->
+				<view width="450">
+					<text text="Rate:" />
+					<edittext align="right" width="150" id="streamrate" text="22" />
+					<text fontstyle="italic" y="26" width="450" multiline="true">
+						rate:Number - The rate at which the microphone should capture sound, in kHz. Acceptable values are 5, 8, 11, 22, and 44. The
+						default value is 8 kHz if your sound capture device supports this value. Otherwise, the default value is the next available capture
+						level above 8 kHz that your sound capture device supports, usually 11 kHz.
+					</text>
+				</view>
+				<!--- useEchoSupression -->
+				<view width="450">
+					<checkbox id="streamuseEchoSuppression" text="useEchoSuppression"
+						value="true" />
+					<text fontstyle="italic" y="26" width="450" multiline="true">
+						public useEchoSuppression : Boolean [read-only] Property (read-only); a Boolean value of true if echo suppression is enabled, false
+						otherwise. The default value is false unless the user has selected Reduce Echo in the Flash Player Microphone Settings panel.
+						<br/><br/>
+						Echo suppression is an effort to reduce the effects of audio feedback, which is caused when sound going out the speaker is picked up by the microphone on the same system. (This is different from acoustic echo cancellation, which completely removes the feedback. The setUseEchoSuppression() method is ignored when you call the getEnhancedMicrophone() method to use acoustic echo cancellation.)
+					</text>
+				</view>
+				
+				<!--- enhanced Microphone -->
+				<view width="450">
+					<checkbox id="useEnhancedMicrophone" text="Use Enhanced Microphone"
+						value="true" />
+					<text fontstyle="italic" y="26" width="450" multiline="true">
+					To use acoustic echo cancellation, set this value to true.
+					</text>
+				</view>
+			</view>
+
+			<!--- Play Area -->
+			<view layout="axis:y;spacing:4" width="450">
+
+				<!--- Video Output -->
+				<view id="playVideo" bgcolor="black" width="320" height="240">
+				
+					<passthrough when="$as3">
+				        import flash.media.*;
+				        import flash.net.NetConnection;
+				        import flash.net.NetStream;
+				    </passthrough>
+				
+					<method name="init"><![CDATA[
+				        super.init();
+				        var mc = new Video(this.width, this.height);
+				        this.sprite.addChild(mc);
+				        this.__LZvideo = mc;
+				        this.applySizeToVid();
+				    ]]></method>
+					<method name="applySizeToVid">
+						if (this.__LZvideo == null) {
+							return;
+						}
+						var vid = this._getflashvideo();
+						vid.width = this.width;
+						vid.height = this.height;
+					</method>
+					<method name="_getflashvideo">
+						<![CDATA[
+				            //Debug.write("_getflashvideo()");
+				            return this.__LZvideo;
+				        ]]>
+				    </method>
+					<method name="stopIt">
+						if (this.__LZvideo == null) {
+							return;
+						}
+						var vid = this._getflashvideo();
+				    	vid.attachNetStream(null);
+						this.__LZvideo.clear();
+					</method>
+					<!--- shows the Video (can be a Cam-Instance or a NetStream) in the 
+						View -->
+					<method name="attachVideo" args="video">
+						var vid = this._getflashvideo();
+						vid.attachNetStream(video);
+					</method>
+				</view>
+
+				<view height="20" />
+				<text fontstyle="bold"
+					text="Play-Broadcast(Subscribe to a Live Stream) - Settings" />
+				<view width="450">
+					<text text="StreamName (Play):" />
+					<edittext align="right" width="150" id="streamname2" text="stream1" />
+				</view>
+				<!--- Buffer Time -->
+				<view width="450">
+					<text text="BufferTime:" />
+					<edittext align="right" width="150" id="streambuffer"
+						text="0.3" />
+					<text fontstyle="italic" y="26" width="450" multiline="true">
+						public bufferTime : Number [read-only] The number of seconds assigned to the buffer by
+						NetStream.setBufferTime(). The default value is .1(one-tenth of a second). To determine the number of seconds currently in the
+						buffer, use NetStream.bufferLength.
+					</text>
+				</view>
+				<button align="right" width="200" text="playBroadCast"
+					onclick="canvas.playBroadCast()" />
+				<button align="right" width="200" text="stopPlayBroadCast"
+					onclick="canvas.stopPlayBroadCast()" />
+			</view>
+		</view>
+		<vscrollbar />
+	</view>
+
+</canvas>
diff --git a/WebContent/src/test/test-setup.lzx.swf11.swf b/WebContent/src/test/test-setup.lzx.swf11.swf
new file mode 100644
index 0000000..5f8a758
--- /dev/null
+++ b/WebContent/src/test/test-setup.lzx.swf11.swf
Binary files differ
diff --git a/WebContent/src/test/test-soap.lzx b/WebContent/src/test/test-soap.lzx
new file mode 100644
index 0000000..d7778e3
--- /dev/null
+++ b/WebContent/src/test/test-soap.lzx
@@ -0,0 +1,51 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<canvas debug="true" height="400" width="530">
+
+    <debug x="10" y="190" width="510" height="200"/>
+
+    <soap name="fileService" wsdl="http://localhost:5080/openmeetings/services/FileService?wsdl">
+        <handler name="onload">
+            Debug.write('fileService soap service loaded');
+        </handler>
+
+        <handler name="onerror" args="error">
+            Debug.write('error:', error);
+        </handler>
+
+        <!-- See RPC chapter for details on remotecall and how dataobject is
+             used to data bind to RPC operation results. --> 
+        <remotecall name="ping" funcname="ping">
+        	<param value="1"/>
+            <handler name="ondata" args="value">
+                Debug.write('result:\n', value);
+            </handler>
+        </remotecall>
+    </soap>
+
+    <view x="10" y="10" layout="spacing: 5">
+        <view layout="axis: x; spacing: 5">
+            <edittext id="s" text="SOAP"/>
+            <button text="search" onclick="Debug.write('Invoking search...'); fileService.ping.invoke()"/>
+        </view>
+
+    </view>
+
+</canvas>
diff --git a/WebContent/src/test/testLPP4154.lzx b/WebContent/src/test/testLPP4154.lzx
new file mode 100644
index 0000000..4ca73f3
--- /dev/null
+++ b/WebContent/src/test/testLPP4154.lzx
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+
+<canvas debug="true" width="100%" height="100%" fontsize="14" title="OpenMeetings - Computer testing">
+	
+	<debug fontsize="14" oninit="Debug.showInternalProperties = true"/>
+    
+<class name="swfResourceView" extends="view" play="false" y="40">
+        
+        <handler name="onload">
+            //Debug.write("Resource loaded: ",this);
+            this.stop();
+            this.setAttribute('play',false);
+        </handler>
+        
+        <handler name="onclick">
+            //Debug.write("onclick: ",this.sprite);
+            //Debug.write("onclick: ",this.sprite.getDisplayObject());
+        </handler>        
+        
+        <handler name="onframe" args="i">
+            ////Debug.write("onframe",i);
+        </handler>
+        
+        <handler name="onplay" args="i">
+            //Debug.write("onplay",i);
+        </handler>
+        
+        <handler name="onstop" args="i">
+            //Debug.write("onstop",i);
+        </handler>        
+        
+</class>    
+    
+<button text="setSource" onclick="xyz.setSource('Tutorat.swf')" >
+    <handler name="onclick">
+        var tempView = new lz.swfResourceView(canvas,{id:'xyz'});
+        tempView.setSource('Tutorat.swf');
+    </handler>
+</button>
+
+  
+    
+</canvas>
diff --git a/WebContent/src/test/testLineWidth.lzx b/WebContent/src/test/testLineWidth.lzx
new file mode 100644
index 0000000..0142622
--- /dev/null
+++ b/WebContent/src/test/testLineWidth.lzx
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+
+<canvas debug="true" width="100%" height="100%" fontsize="14" title="OpenMeetings - Computer testing">
+	
+	<debug fontsize="14" oninit="Debug.showInternalProperties = true"/>
+	
+<!--
+	Tests for calculating the linewidth in a multinline Textbox for each line
+	the meaning of several vars can be seen here:
+	http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/js/html/wwhelp.htm
+ -->	
+    
+<script>
+<![CDATA[
+
+	var maxsize = 220;
+	var textFieldtext = "";
+	var startIndex = 0;
+	var currentLine = 0;
+	var textObject = null;
+	var myTextFormat = null;
+	var lineHeight = 0;
+	
+	function calcLineWidthByTextField(maxsizeText,textForCalcing,fontsize, fontname){
+		
+		maxsize = maxsizeText;
+		startIndex = 0;
+		textObject = new Array();
+		
+		textFieldtext = textForCalcing;
+		myTextFormat = new TextFormat();
+		myTextFormat.size = fontsize;
+		myTextFormat.font = fontname;
+		
+		var metrics = myTextFormat.getTextExtent(textFieldtext, 100000);
+		Debug.write(metrics);
+		lineHeight = metrics.ascent+metrics.descent;
+		Debug.write(lineHeight);		
+		
+		measureLine();
+		
+		for (var k = 0;k<textObject.length;k++){
+			var metrics = myTextFormat.getTextExtent(textObject[k]["text"], 100000);
+			textObject[k]["lineWidth"] = metrics.width;
+			//Debug.write("text: ",metrics,k,textObject[k]["lineWidth"],textObject[k]["text"]);
+		}
+		
+		return textObject;
+	}
+	
+	function measureLine(){		
+		//Debug.write("restString: ",textFieldtext);
+		for (var i=textFieldtext.length;i>0;i--){
+			var testTxt = textFieldtext.slice(startIndex, i);
+			var metrics = myTextFormat.getTextExtent(testTxt, 100000);
+			//Debug.write("metrics: ",testTxt,startIndex,metrics.width);
+			if (metrics.width<=maxsize){
+
+				testTxt = textFieldtext.slice(startIndex, i-1);
+				textObject[currentLine] = new Array();
+				textObject[currentLine]["text"] = testTxt;
+				textFieldtext = textFieldtext.slice(i-1, textFieldtext.length);
+				
+				if (textFieldtext.length==1){
+					textObject[currentLine]["text"]+=textFieldtext;
+					return;
+				} else {
+					currentLine+=1;
+					return measureLine();
+				}
+			}
+		}		
+	}
+	
+	
+	
+	//function getLineWidth()
+]]>
+</script>
+
+<text multiline="true" x="40" y="20" width="220" selectable="true" >
+	<handler name="oninit">
+		<![CDATA[
+			this.sprite.__LZtextclip.wordWrap = false;
+			Debug.write(this.sprite.__LZtextclip);
+			var items = new Array();
+			var t = "";
+			//items[0] = ["text","hello your are the hero lets check accomodation today i need some input"];
+			items[0] = ["text","hello "];
+			items[0] = ["text","der hat drei ecken      und warum ist meni hut der knut      ?? warumST"]; 
+			for (var i=0;i<items.length;i++) {
+				if (items[i][0]=="text"){
+					t += items[i][1];
+				} else {
+					var tempString = calcLineWidthByTextField(this.width, t,this.fontsize,"Verdana");
+					tempString[tempString.length-1]["lineWidth"];
+				}
+			}
+			var tString = calcLineWidthByTextField(this.width, t,this.fontsize,"Verdana");
+			for (var k = 0;k<tString.length;k++){
+				this.setAttribute('text',this.getText()+textObject[k]["text"]+"\r");
+				Debug.write("line,width,text: ",k,textObject[k]["lineWidth"],textObject[k]["text"]);
+			}			
+			
+		]]>
+	</handler>
+</text>
+  
+    
+</canvas>
diff --git a/WebContent/src/test/testLineWidth.lzx.lzr=swf8.swf b/WebContent/src/test/testLineWidth.lzx.lzr=swf8.swf
new file mode 100644
index 0000000..ccb5224
--- /dev/null
+++ b/WebContent/src/test/testLineWidth.lzx.lzr=swf8.swf
Binary files differ
diff --git a/WebContent/src/test/testLoadSWF.lzx.lzr=swf8.swf b/WebContent/src/test/testLoadSWF.lzx.lzr=swf8.swf
new file mode 100644
index 0000000..0700cc8
--- /dev/null
+++ b/WebContent/src/test/testLoadSWF.lzx.lzr=swf8.swf
Binary files differ
diff --git a/WebContent/src/test/test_main.lzx b/WebContent/src/test/test_main.lzx
new file mode 100644
index 0000000..25e9ff8
--- /dev/null
+++ b/WebContent/src/test/test_main.lzx
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<canvas>
+
+<text>Hello World</text>
+
+</canvas>
+
+
diff --git a/WebContent/src/test/test_onclick.lzx b/WebContent/src/test/test_onclick.lzx
new file mode 100644
index 0000000..fc93ebd
--- /dev/null
+++ b/WebContent/src/test/test_onclick.lzx
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<canvas debug="true" width="1000" height="700">
+
+    <class name="myView" extends="drawview" bgcolor="red" clip="true" 
+        width="200" height="200" 
+        onclick="//Debug.write('onclick',this)" 
+        onmouseup="//Debug.write('onmouseup',this)" />
+    
+<myView />
+    
+</canvas>
diff --git a/WebContent/src/test/test_upload.lzx b/WebContent/src/test/test_upload.lzx
new file mode 100644
index 0000000..8a62e2a
--- /dev/null
+++ b/WebContent/src/test/test_upload.lzx
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<canvas debug="true" width="1000" height="700">
+
+<include href="oslmon/" />
+    
+    <handler name="oninit">
+        new lz.uploadWindow(canvas);
+    </handler>
+
+</canvas>
diff --git a/WebContent/src/test/testswf/test.pdf b/WebContent/src/test/testswf/test.pdf
new file mode 100644
index 0000000..234b7bb
--- /dev/null
+++ b/WebContent/src/test/testswf/test.pdf
Binary files differ
diff --git a/WebContent/src/test/testswf/test.swf b/WebContent/src/test/testswf/test.swf
new file mode 100644
index 0000000..d4e1894
--- /dev/null
+++ b/WebContent/src/test/testswf/test.swf
Binary files differ
diff --git a/WebContent/src/test/testswf/testLoadSWF.lzx b/WebContent/src/test/testswf/testLoadSWF.lzx
new file mode 100644
index 0000000..1dab29f
--- /dev/null
+++ b/WebContent/src/test/testswf/testLoadSWF.lzx
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+
+<canvas debug="true" width="100%" height="100%" fontsize="14" title="OpenMeetings - SWF testing">
+	
+	<debug fontsize="14" oninit="Debug.showInternalProperties = true"/>
+	
+<view layout="axis:x;spacing:2">
+	<button name="_btn">
+		<handler name="onclick">
+			canvas._swfview.setAttribute('frame',canvas._swfview.frame+1);
+			//var mc = canvas._swfview.getDisplayObject();
+			//Debug.write(canvas._swfview);
+			//Debug.write(mc);
+			//mc._frame = 4;
+			//mc.play();
+		</handler>
+	</button>
+</view>
+	
+<view name="_swfview" y="20">
+	<handler name="oninit">
+		<![CDATA[
+			this.setSource("test.swf");
+		]]>
+	</handler>
+</view>
+  
+    
+</canvas>
diff --git a/WebContent/src/test/testswf/testLoadSWF.lzx.lzr=swf8.swf b/WebContent/src/test/testswf/testLoadSWF.lzx.lzr=swf8.swf
new file mode 100644
index 0000000..5a03b59
--- /dev/null
+++ b/WebContent/src/test/testswf/testLoadSWF.lzx.lzr=swf8.swf
Binary files differ
diff --git a/WebContent/src/test_main.lzx.lzr=swf8.swf b/WebContent/src/test_main.lzx.lzr=swf8.swf
new file mode 100644
index 0000000..ed0ab9e
--- /dev/null
+++ b/WebContent/src/test_main.lzx.lzr=swf8.swf
Binary files differ
diff --git a/WebContent/swf10/audioVideoTest/library.lzx b/WebContent/swf10/audioVideoTest/library.lzx
new file mode 100644
index 0000000..5b64b48
--- /dev/null
+++ b/WebContent/swf10/audioVideoTest/library.lzx
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+	<!-- APL author sebawagner -->
+	<resource name="level_meter_rsc" src="resources/level_meter.png" />
+	<!-- APL author sebawagner -->
+    <resource name="test_setup_record_rsc" src="resources/webstart_record.png" />
+    <!-- APL author sebawagner -->
+    <resource name="test_setup_play_rsc" src="resources/run.png" />
+    <!-- APL author sebawagner -->
+    <resource name="test_setup_stop_rsc" src="resources/stop.png" />
+    <!-- FamFam Icon Set -->
+    <resource name="test_setup_info_rsc" src="resources/information.png" />
+    
+    <include href="testingApplication.lzx" />
+    
+</library>
diff --git a/WebContent/swf10/audioVideoTest/resources/information.png b/WebContent/swf10/audioVideoTest/resources/information.png
new file mode 100644
index 0000000..12cd1ae
--- /dev/null
+++ b/WebContent/swf10/audioVideoTest/resources/information.png
Binary files differ
diff --git a/WebContent/swf10/audioVideoTest/resources/level_meter.fla b/WebContent/swf10/audioVideoTest/resources/level_meter.fla
new file mode 100644
index 0000000..4e1a8c8
--- /dev/null
+++ b/WebContent/swf10/audioVideoTest/resources/level_meter.fla
Binary files differ
diff --git a/WebContent/swf10/audioVideoTest/resources/level_meter.png b/WebContent/swf10/audioVideoTest/resources/level_meter.png
new file mode 100644
index 0000000..78192ef
--- /dev/null
+++ b/WebContent/swf10/audioVideoTest/resources/level_meter.png
Binary files differ
diff --git a/WebContent/swf10/audioVideoTest/resources/record.fla b/WebContent/swf10/audioVideoTest/resources/record.fla
new file mode 100644
index 0000000..870b264
--- /dev/null
+++ b/WebContent/swf10/audioVideoTest/resources/record.fla
Binary files differ
diff --git a/WebContent/swf10/audioVideoTest/resources/record.png b/WebContent/swf10/audioVideoTest/resources/record.png
new file mode 100644
index 0000000..99109da
--- /dev/null
+++ b/WebContent/swf10/audioVideoTest/resources/record.png
Binary files differ
diff --git a/WebContent/swf10/audioVideoTest/resources/run.png b/WebContent/swf10/audioVideoTest/resources/run.png
new file mode 100644
index 0000000..c77b8d9
--- /dev/null
+++ b/WebContent/swf10/audioVideoTest/resources/run.png
Binary files differ
diff --git a/WebContent/swf10/audioVideoTest/resources/stop.fla b/WebContent/swf10/audioVideoTest/resources/stop.fla
new file mode 100644
index 0000000..44a29f1
--- /dev/null
+++ b/WebContent/swf10/audioVideoTest/resources/stop.fla
Binary files differ
diff --git a/WebContent/swf10/audioVideoTest/resources/stop.png b/WebContent/swf10/audioVideoTest/resources/stop.png
new file mode 100644
index 0000000..5b1adf3
--- /dev/null
+++ b/WebContent/swf10/audioVideoTest/resources/stop.png
Binary files differ
diff --git a/WebContent/swf10/audioVideoTest/resources/webstart_record.fla b/WebContent/swf10/audioVideoTest/resources/webstart_record.fla
new file mode 100644
index 0000000..475f9dc
--- /dev/null
+++ b/WebContent/swf10/audioVideoTest/resources/webstart_record.fla
Binary files differ
diff --git a/WebContent/swf10/audioVideoTest/resources/webstart_record.png b/WebContent/swf10/audioVideoTest/resources/webstart_record.png
new file mode 100644
index 0000000..d94b7f5
--- /dev/null
+++ b/WebContent/swf10/audioVideoTest/resources/webstart_record.png
Binary files differ
diff --git a/WebContent/swf10/audioVideoTest/testingApplication.lzx b/WebContent/swf10/audioVideoTest/testingApplication.lzx
new file mode 100644
index 0000000..bc986ad
--- /dev/null
+++ b/WebContent/swf10/audioVideoTest/testingApplication.lzx
@@ -0,0 +1,417 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<!-- 
+#########################################
+
+Test the setup values before you enter a room
+
+ -->
+ 
+<class name="testingApplication" extends="view" width="600" height="400">
+
+    <switch>
+        <when property="$as3">
+            <passthrough>
+                import flash.media.Camera;
+                import flash.media.Microphone;
+                import flash.net.SharedObject;
+                import flash.media.SoundCodec;
+            </passthrough>
+        </when>
+    </switch>
+	
+	<attribute name="lastRecorded" value="" type="string" />
+	
+	<attribute name="isRunning" value="false" type="boolean" />
+	
+	<attribute name="recordingsCounter" value="5" type="number" />
+	
+	<attribute name="timerIsRunning" value="false" type="boolean" />
+	
+	<attribute name="counterDelegate" value="null" />
+	
+	<handler name="oninit">
+		this.counterDelegate = new LzDelegate( this, "count" );
+	</handler>
+	
+	<method name="startTimer">
+		this.timerIsRunning = true;
+		this.timerWasUnmutedTheFirstTime = true;
+		lz.Timer.addTimer( this.counterDelegate, 1000 );
+	</method>
+	
+	<method name="count" args="calleeObj">
+		if (this.recordingsCounter != 0){
+			this.recordingsCounter -= 1;
+			lz.Timer.addTimer( this.counterDelegate, 1000 );
+			
+			this._text._info.setAttribute("text",""+this.recordingsCounter+" sec");
+			
+		} else {
+			this._text.setAttribute("visibility","hidden");
+			this.doStop();
+			this.timerIsRunning = false;
+			this.doPlay();
+		}
+	</method>
+	
+	<method name="startTimerToCount">
+		if (!this.timerIsRunning) {
+			this.startTimer();
+		}
+	</method>
+	
+	<method name="storeSettings">
+        <![CDATA[
+            if ($debug) Debug.write("storeSettings ");
+            var t:SharedObject = SharedObject.getLocal('userdata');
+            var g = t.data;
+            if (g==null) g = new Array();
+            g["cam"] = this.availibleCams.getValue();
+            g["mic"] = this.availibleMics.getValue();
+            t.flush();
+        ]]>
+    </method>   
+	
+	<method name="doninitalize">
+        <![CDATA[
+        
+            this._btnStartRecording.setAttribute("enabled",false);
+            
+            this.recordingsCounter = 5;
+            
+            this._text.setAttribute("visibility","visible");
+            this._text._info.setAttribute("text","5 sec");
+        
+            this.isRunning = true;
+            
+            var valCam = this.availibleCams.getValue();
+            var valMic = this.availibleCams.getValue();
+            
+            var videoview = this._publisher._chatvideoinner._videostream;
+            if ($debug) Debug.write("videoview: ",videoview);
+            if ($debug) Debug.write(valCam,valMic);
+            
+            var _micro = null;
+            var _camera = null;
+            if (valMic != null) {
+                 _micro = Microphone.getMicrophone(valMic);
+                 if (_micro != null) {
+                     _micro.codec = SoundCodec.NELLYMOSER;
+                     _micro.framesPerPacket = 1;
+                     _micro.setSilenceLevel(0, 2000);
+                     _micro.gain = 50;
+                     // this has no effect if enhanced microphone is obtained
+                    //Microphone setUseEchoSupression(bool)
+                    _micro.setUseEchoSuppression(true);
+                }
+            }
+            if (valCam != null) {
+                _camera = Camera.getCamera(valCam);
+            }
+            
+            if ($debug) Debug.write("_camera.setMode: ",videoview.width,videoview.height,canvas.framesPerSecond,true);
+
+            //Microphone.set
+            if ($debug) Debug.write("canvas.microphoneRateBest: ",canvas.microphoneRateBest);
+            if (_camera != null) {
+                if ($debug) Debug.write("_camera.setQuality BEST: ",this.isInterview,(canvas.bandwidthNeededBest*2),canvas.camQualityBest);
+                if (this.isInterview) {
+                    _camera.setMode(videoview.width,videoview.height,24,true);
+                    if ($debug) Debug.warn("IS INTERVIEW ");
+                    _camera.setQuality(0,98);
+                } else {
+                    _camera.setMode(videoview.width,videoview.height,canvas.framesPerSecond,true);
+                    if ($debug) Debug.warn("IS NO INTERVIEW ");
+                    _camera.setQuality(canvas.bandwidthNeededBest,canvas.camQualityBest);
+                }
+            }
+            
+            //The First start-timer message will come from the Flash Object
+            
+            if ($debug) Debug.warn("_camera.muted ",_camera.muted);
+            if ($debug) Debug.warn("_micro.muted ",_micro.muted);
+            
+            if (!_camera.muted) {
+                this.startTimer();
+            }
+
+            //start recording of client stream
+            
+            var t = new Date();
+            this.lastRecorded = "TEST_SETUP_"+t.getTime();
+            
+            this._publisher.setAttribute("visibility","visible");
+            this._viewer.setAttribute("visibility","hidden");
+            
+            videoview.record(this.lastRecorded,_camera,_micro);
+        ]]>
+    </method>
+    
+    <method name="doPlay">
+    	<![CDATA[
+    	
+    	   if (this.lastRecorded == "") {
+    	   	   //Error - nothing recorded yet
+    	   	   if ($debug) Debug.warn("Nothing to Play");
+    	   } else {
+    	   	   
+    	   	   this._play.setAttribute("visibility","visible");
+    	   	
+    	   	   this._publisher.setAttribute("visibility","hidden");
+               this._viewer.setAttribute("visibility","visible");
+               
+               var videoview = this._viewer._chatvideoinner._videostream;
+               
+               videoview.justPlayStream(this.lastRecorded+".flv",0);
+                
+    	   }
+    	
+    	]]>
+    </method>
+    
+    <method name="doStop">
+    	if (this.isRunning) {
+    		this.isRunning = false;
+    		
+    		var videoview = this._publisher._chatvideoinner._videostream;
+    		
+    		this._btnStartRecording.setAttribute("enabled",true);
+    		
+    		videoview._stop();
+    		
+    		this.doPlay();
+    	}
+    	
+    	var videoviewViewer = this._viewer._chatvideoinner._videostream;
+        videoviewViewer._stop();
+    </method>
+	
+	<labelText fontstyle="bold" labelid="758"
+			   width="$once{ parent.width-2 }" height="30" multiline="true" /> 
+	
+	<labelText name="availibleCamsLabel" labelid="52" fontsize="11" x="2" y="40" />
+
+    <resetCombobox fontsize="11" name="availibleCams" x="10" y="60" width="260" editable="false">
+        <switch>
+            <when property="$as3">
+                <passthrough>
+                    import flash.media.Camera;
+                    import flash.net.SharedObject;
+                </passthrough>
+            </when>
+        </switch>
+        <handler name="oninit">
+            <![CDATA[
+                //Get all availible Cam's
+                var tw = Camera.names;
+                var r = "";
+                for (var eg=0;eg<tw.length;eg++){
+                    this.addItem(tw[eg],eg);
+                    r=eg;
+                }
+                var t:SharedObject = SharedObject.getLocal('userdata');
+                var g = t.data;
+                var cam;
+                if (g != null){
+                    cam = g["cam"];
+                    if (cam == 'undefined') {
+                        cam = r;
+                    }
+                } else {
+                    cam = r;
+                }
+                this.selectItem(String(cam));
+            ]]>
+        </handler>
+    </resetCombobox>
+    
+    <labelText name="availibleMicsLabel" labelid="53" fontsize="11" x="2" y="84" />
+
+    <resetCombobox fontsize="11" name="availibleMics"  x="10" y="104" width="260" editable="false">
+        <switch>
+            <when property="$as3">
+                <passthrough>
+                    import flash.media.Microphone;
+                    import flash.net.SharedObject;
+                </passthrough>
+            </when>
+        </switch>
+        <handler name="oninit">
+            <![CDATA[
+                //Get all availible Mic's
+                var tw = Microphone.names;
+                var r = "";
+                for (var eg=0;eg<tw.length;eg++){
+                    r=eg;
+                    this.addItem(tw[eg],eg);
+                }
+
+                var t:SharedObject = SharedObject.getLocal('userdata');
+                var g = t.data;
+                var mic;
+                if (g != null){
+                if ($debug) Debug.write("Select mic 4: ",mic);
+                    mic = g["mic"];
+                    if (mic == 'undefined') {
+                    if ($debug) Debug.write("Select mic 3: ",mic);
+                        mic = r;
+                    }
+                } else {
+                if ($debug) Debug.write("Select mic 2: ",mic);
+                    mic = r;
+                }
+                if ($debug) Debug.write("Select mic 1: ",mic);
+                
+                this.selectItem(String(mic));
+            ]]>
+        </handler>
+    </resetCombobox>
+    
+    
+    <simpleLabelButton name="_btnStartRecording" labelid="775" 
+    				   width="170" x="100" y="150" height="28">
+    	<handler name="onclick">
+            parent._level_meter.startLevel();
+            parent.doninitalize();
+        </handler>
+        <view resource="test_setup_record_rsc" x="2" y="2" />
+    </simpleLabelButton>
+    
+	
+	<videoObjectTestBroadcast name="_publisher" x="340" y="40" width="240" height="180">
+		<handler name="sendCameraStatus" args="camStatus">
+            if ($debug) Debug.write("sendCameraStatus -1- ",camStatus);
+            if (camStatus == "Camera.Unmuted") {
+            	parent.startTimerToCount();
+            }
+        </handler>
+        
+        <handler name="sendMicroStatus" args="micStatus">
+            if ($debug) Debug.write("sendMicroStatus -1- ",micStatus);
+            if (micStatus == "Microphone.Unmuted") {
+                parent.startTimerToCount();
+            }
+        </handler>
+	</videoObjectTestBroadcast>
+	
+	<videoObjectPlayTestBroadcast name="_viewer" x="340" y="40" 
+								  width="240" height="180" visibility="hidden" />
+								  
+	<view name="_text" x="340" y="40" width="240" height="180" visibility="hidden">
+		<text name="_info" resize="true" bgcolor="0xFFFFFF" align="right"
+			  fontsize="12" fontstyle="bold" />
+	</view>
+	
+	<!--
+	<simpleLabelRoundButtonIcon name="_start" y="190" x="350" 
+				ressourceIcon="test_setup_record_rsc"
+				width="70" tlabelid="763" >
+		<handler name="onclick">
+			parent._level_meter.startLevel();
+			parent.doninitalize();
+		</handler>
+	</simpleLabelRoundButtonIcon>
+	
+	<simpleLabelRoundButtonIcon name="_stop" y="190" x="425" 
+				ressourceIcon="test_setup_stop_rsc"
+				width="70" tlabelid="766" >
+        <handler name="onclick">
+        	parent._level_meter.resetNewLevel();
+            parent.doStop();
+        </handler>
+    </simpleLabelRoundButtonIcon>
+    
+	<simpleLabelRoundButtonIcon name="_play" y="190" x="500" 
+				ressourceIcon="test_setup_play_rsc"
+				width="70" tlabelid="764" 
+				enabled="false">
+        <handler name="onclick">
+            parent.doPlay();
+        </handler>
+    </simpleLabelRoundButtonIcon>
+     -->
+     
+     <!-- ressourceIcon="test_setup_play_rsc" -->
+    <simpleLabelButton name="_play" y="190" x="490" visibility="hidden"
+                width="86" labelid="764" >
+        <handler name="onclick">
+            parent.doPlay();
+        </handler>
+    </simpleLabelButton>
+     
+    <labelText labelid="767" x="340" y="224" />
+    
+    <view name="_level_meter" x="340" y="244" width="240" height="20" clip="true" bgcolor="0x000000">
+    	
+    	 <!--- Level delegate, used to track level changes. 
+              @keywords private -->
+        <attribute name="_leveldel" value="$once{new LzDelegate(this, '_updateLevel')}"/>
+    	
+    	<method name="_updateLevel" args="no">
+    		<![CDATA[
+    		    //if ($debug) Debug.write("_updateLevel",no,parent._publisher._chatvideoinner._videostream.micro);
+    		    //if ($debug) Debug.write("_updateLevel",parent._publisher._chatvideoinner._videostream.micro);
+    		    //if ($debug) Debug.write("_updateLevel",parent._publisher._chatvideoinner._videostream.micro.activityLevel);
+    		    if (parent._publisher._chatvideoinner._videostream.micro == null)
+    		    {
+    		    	return;
+    		    }
+    		    this.setNewLevel(parent._publisher._chatvideoinner._videostream.micro.activityLevel);
+    		]]>
+    	</method>
+    	
+    	<method name="startLevel">
+    		this._leveldel.register(lz.Idle, "onidle");
+    	</method>
+    	
+    	<method name="resetNewLevel">
+    		this._leveldel.unregisterAll();
+    		this.setNewLevel(0);
+    	</method>
+    	
+    	<method name="setNewLevel" args="no">
+    		<![CDATA[
+    		
+                var newLevel = (238/100) * no;
+            
+                this._over.setAttribute("width",238-newLevel);
+                this._over.setAttribute("x",1+(newLevel));
+                
+            ]]>
+    	</method>
+    	
+    	<view name="_bg" width="238" height="18" x="1" y="1" bgcolor="0xFFFFFF" />
+    	<view name="_grip" resource="level_meter_rsc" x="1" y="1" />
+    	<view name="_over" width="238" height="18" x="1" y="1" bgcolor="0xFFFFFF" />
+    </view>
+    
+    <view y="292" resource="test_setup_info_rsc" x="16" />
+    
+    <labelText fontstyle="bold" labelid="765" x="39" y="290"
+               width="$once{ parent.width-50 }" multiline="true" />
+    
+</class>
+	
+</library>
+ 
diff --git a/WebContent/swf10/base/components/button/library.lzx b/WebContent/swf10/base/components/button/library.lzx
new file mode 100644
index 0000000..74f686a
--- /dev/null
+++ b/WebContent/swf10/base/components/button/library.lzx
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+	<include href="simpleLabelButton.lzx" />

+

+</library>

diff --git a/WebContent/swf10/base/components/button/simpleLabelButton.lzx b/WebContent/swf10/base/components/button/simpleLabelButton.lzx
new file mode 100644
index 0000000..183ad5e
--- /dev/null
+++ b/WebContent/swf10/base/components/button/simpleLabelButton.lzx
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<class name="simpleLabelButton" extends="button" fontstyle="bold"

+	   fontsize="11" height="20" style="componentStyle">

+

+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />

+	<method name="setLabelId" args="_labelid" >

+		this.labelid = _labelid;

+		this.setAttribute('text',canvas.getLabelName(this.labelid));

+	</method>

+	

+</class>

+

+</library>

diff --git a/WebContent/swf10/base/components/explorer/explorerBox.lzx b/WebContent/swf10/base/components/explorer/explorerBox.lzx
new file mode 100644
index 0000000..6c9aaf3
--- /dev/null
+++ b/WebContent/swf10/base/components/explorer/explorerBox.lzx
@@ -0,0 +1,400 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<class name="explorerBox" extends="view" width="250" y="100" visibility="hidden"

+    height="400" bgcolor="0x000088" 

+	onmousedown="this._startDragState(this)" onmouseup="this._removeDragState(this)" >

+

+    <switch>

+	  <when property="$as3">

+		<passthrough>

+		  import flash.filters.DropShadowFilter;

+		</passthrough>

+	  </when>

+	</switch>

+

+    <handler name="oninit">

+    	//if($debug) Debug.write("explorerBox/oninit showWindowEffect? ",canvas.showWindowEffect);

+    	if (canvas.showWindowEffect=="y"){

+    		//if($debug) Debug.write("explorerBox/showWindowEffect == YES");

+    		new lz.boxInitEffect(parent,{x:this.x+(this.width/2)-50,y:this.y+(this.height/2)-10,zielx:this.x,ziely:this.y,zielwidth:this.width,zielheight:this.height,objRef:this});

+    	} else {

+    		this.sendAnniComplete();

+    	}

+    </handler>

+    

+    <method name="sendAnniComplete">

+    	//if($debug) Debug.write("sendAnniComplete");

+    	this.setAttribute('visibility','visible');

+    	this.setShadow(true);

+    </method>

+

+    <method name="setShadow" args="bool">

+        this.hasshadow = bool;

+        <![CDATA[

+        if (this.isinited){

+            this.normalMC = this.getDisplayObject();

+            //Debug.write(this.normalMC);

+            ////Debug.write("this.normalMC: ",this.normalMC);

+            ////Debug.write("this: ",this);

+           	this.displacementMap = new DropShadowFilter();

+            this.normalMC.filters = [this.displacementMap];

+        }

+        ]]>              

+    </method>	

+          

+	<!--- The Title of this Box -->

+	<attribute name="title" value="defaulttitle" type="string" />

+	

+	<!--- if this Box should be closeable -->

+	<attribute name="closable" value="false" type="boolean" />

+    

+    <!--- if this Box should be resizeable  -->

+    <attribute name="resizeable" value="false" type="boolean" />

+	

+	<!--- Can this Box be docked to others and 

+			the width/height of parent compoent barrier -->

+	<attribute name="docking" value="false" type="boolean" />

+	

+	<!--- Hard to explain but its clear if you play around 

+		with that. Its the number of minimum pixels before 

+		the "docking" effect will be there -->

+	<attribute name="dockingbarrier" value="15" type="number" />

+	

+	<!--- the Event will be thrown if you close the Box -->

+	<event name="onclose" />

+	

+	<!---@keywords private the list of connected views -->

+	<attribute name="dockinglist" value="null" />

+	

+	<!--- @keywords private temp-older of x-distance to docked-Box  -->

+	<attribute name="tempXdistance" value="0" type="number" />

+

+	<!--- @keywords private temp-older of y-distance to docked-Box  -->

+	<attribute name="tempYdistance" value="0" type="number" />

+	

+	<!--- @keywords private is the Box minimized  -->

+	<attribute name="isopen" value="true" type="boolean" />

+	

+	<!--- @keywords private is the Box minimized  -->

+	<attribute name="open" value="true" type="boolean" />	

+	

+	<!--- @keywords private  -->

+	<attribute name="initheight" value="0" type="number" />

+	

+	<!--- @keywords private store initial height so toggleopen can reset height  -->

+	<handler name="oninit">

+		this.initheight=this.height;

+		////Debug.write("this.isopen: ",this.isopen);

+		if (!this.open) toggleopen();

+	</handler>

+	

+	<method name="close">

+		if (this.onclose) this.onclose.sendEvent();

+		this.doDestroy();

+	</method>

+	

+	<method name="toggleopen">

+		////Debug.write("this.isopen",this.isopen);

+		this.setAttribute('isopen',!this.isopen);

+		if (this.isopen){

+			_calcdockingList();

+			for (var eg in this.dockinglist){

+				if(this.dockinglist[eg].docking){

+					////Debug.write("this.dockinglist[eg]: ",this.dockinglist[eg].title);

+					////Debug.write("open new y",this.y+this.initheight);

+					this.dockinglist[eg].toggleOpenByParent(this.initheight-22);

+					this.dockinglist[eg].setAttribute('y',this.y+this.initheight);

+					

+				}

+			}			

+			this.setAttribute('height',this.initheight);

+		} else {

+			_calcdockingList();

+			for (var eg in this.dockinglist){

+				if(this.dockinglist[eg].docking){

+					////Debug.write("this.dockinglist[eg]: ",this.dockinglist[eg].title);

+					this.dockinglist[eg].toggleOpenByParent(-(this.initheight-22));

+					this.dockinglist[eg].setAttribute('y',this.y+22);

+				}

+			}	

+			this.setAttribute('height',22);		

+		}

+	</method>

+	

+	<method name="toggleOpenByParent" args="changeY">

+		////Debug.write("+++++ toggleOpenByParent +++++ changeY: ",this.title,changeY);

+		var tempList=new Array();

+		<![CDATA[

+		//check for dockable stuff which is connected to this Box

+		for (var eg in this.parent.subviews){

+			//check that you do not calc with yourself

+			if (this.parent.subviews[eg]!=this && this.parent.subviews[eg].docking){

+				// there are 4 cases which have to be proofed to check every possible situation

+				var proof=false;

+				////Debug.write("found some: ",this.parent.subviews[eg].title);

+				//top box-border

+				if  ( ( ((this.y+this.height)-this.parent.subviews[eg].y) < 1 ) && ( ((this.y+this.height)-this.parent.subviews[eg].y) > -1 ) && ( (this.x+this.width) > this.parent.subviews[eg].x )  && ( this.x < (this.parent.subviews[eg].x+this.parent.subviews[eg].width) ) ){

+					proof=true;

+				}

+					

+				if (proof) tempList.push(this.parent.subviews[eg]);

+			}

+		}

+		]]>

+		////Debug.write("tempList.length: ",tempList.length);

+		if (tempList.length!=0){

+			for (var eg in tempList){

+				if(tempList[eg].docking){

+					////Debug.write("toggleOpenByParent 1 [eg],changeY: ",tempList[eg].title,changeY);

+					tempList[eg].toggleOpenByParent(changeY);

+					tempList[eg].setAttribute('y',tempList[eg].y+changeY);

+				}

+			}	

+		}

+		

+	</method>

+	

+	<!--- @keywords private  -->

+	<method name="_removeDragState" args="obj">

+		//It's important to remove the dragger and do docking stuff before you check for conencted Boxes

+		dragger.remove();

+		if (obj==this){

+			if (docking) arrangePosition();

+		} else {

+			if (docking) _lookforParentOnly(obj);

+		}

+			

+		//check for connected Boxes

+		for (var eg in this.dockinglist){

+			if(this.dockinglist[eg].docking){

+				this.dockinglist[eg]._removeDragState(this);

+			}

+		}

+

+	</method>

+

+	

+	<!--- @keywords private

+		the arg obj is needed because the dragging can be called by the Box itself

+		or by a Box which is connected to this Box!  -->

+	<method name="_startDragState" args="obj">

+		this.bringToFront();

+		_calcdockingList();

+		for (var eg in this.dockinglist){

+			if(this.dockinglist[eg].docking){

+				this.dockinglist[eg]._startDragState(this);

+			}

+		}

+		//store position cause it wasn't dragged by itself

+		if (obj!=this){

+			storeAdjustmentToParent(obj.x,obj.y);

+		}

+		dragger.apply();

+	</method>

+	

+	<!--- Calc the List of Boxes which will be dragged and setposition if this Box

+		will be dragged,docked or minimized/maximized  -->

+	<method name="_calcdockingList">

+		//Clear list of conencted Boxes

+		this.dockinglist=new Array();

+		<![CDATA[

+		//check for dockable stuff which is connected to this Box

+		for (var eg in this.parent.subviews){

+			//check that you do not calc with yourself

+			if (this.parent.subviews[eg]!=this && this.parent.subviews[eg].docking){

+				// there are 4 cases which have to be proofed to check every possible situation

+				var proof=false;

+

+				//top box-border

+				if  ( ( ((this.y+this.height)-this.parent.subviews[eg].y) < 1 ) && ( ((this.y+this.height)-this.parent.subviews[eg].y) > -1 ) && ( (this.x+this.width) > this.parent.subviews[eg].x )  && ( this.x < (this.parent.subviews[eg].x+this.parent.subviews[eg].width) ) ){

+					proof=true;

+				}

+

+				if (proof) this.dockinglist.push(this.parent.subviews[eg]);

+			}

+		}

+		]]>

+		////Debug.write("this.dockinglist.length:",this.dockinglist.length);

+	</method>

+	

+	<!--- @keywords private  -->

+	<method name="arrangePosition">

+		//do the magic

+		//the idea is: look for all on the view container one level above this one

+		//and look for the width/height and 0/0 and look for "dockable" stuff there

+		var newx=this.x;

+		var newy=this.y;

+	  

+		<![CDATA[

+				

+		for (var eg in this.parent.subviews){

+			//check that you do not calc with yourself

+			if (this.parent.subviews[eg]!=this && this.parent.subviews[eg].docking){

+				// there are 4 cases which have to be proofed to check every possible situation

+				//left box-border

+				if ( ( ((this.x+this.width)-this.parent.subviews[eg].x) < this.dockingbarrier ) && ( ((this.x+this.width)-this.parent.subviews[eg].x) > -this.dockingbarrier ) &&  ( (this.y+this.height) > this.parent.subviews[eg].y ) &&  ( this.y < (this.parent.subviews[eg].y+this.parent.subviews[eg].height) ) ){

+					newx= ( this.parent.subviews[eg].x - this.width );

+				}

+				//right box-border

+				if ( ( ((this.parent.subviews[eg].x+this.parent.subviews[eg].width)-this.x)<this.dockingbarrier ) && ( ((this.parent.subviews[eg].x+this.parent.subviews[eg].width)-this.x)>-this.dockingbarrier ) &&  ( (this.y+this.height) > this.parent.subviews[eg].y ) &&  ( this.y < (this.parent.subviews[eg].y+this.parent.subviews[eg].height) ) ){

+					newx= ( this.parent.subviews[eg].x + this.parent.subviews[eg].width );

+				}

+				//top box-border

+				if  ( ( ((this.y+this.height)-this.parent.subviews[eg].y) < this.dockingbarrier ) && ( ((this.y+this.height)-this.parent.subviews[eg].y) > -this.dockingbarrier ) && ( (this.x+this.width) > this.parent.subviews[eg].x )  && ( this.x < (this.parent.subviews[eg].x+this.parent.subviews[eg].width) ) ){

+					newy = this.parent.subviews[eg].y-this.height;

+				}

+				//bottom box-border

+				if ( ( ((this.parent.subviews[eg].y+this.parent.subviews[eg].height)-this.y) < this.dockingbarrier ) && ( ((this.parent.subviews[eg].y+this.parent.subviews[eg].height)-this.y) > -this.dockingbarrier ) && ( (this.x+this.width) > this.parent.subviews[eg].x )  && ( this.x < (this.parent.subviews[eg].x+this.parent.subviews[eg].width) ) ){

+					newy = this.parent.subviews[eg].y+this.parent.subviews[eg].height;

+				}

+			}

+		}

+		

+		//Check for Borders

+		//should be done _after_ checking for other dockable stuff so it gets 

+		//priority to dock against the border of parent view

+		if (this.x<this.dockingbarrier){

+			newx=0;

+		}

+		if (this.y<this.dockingbarrier){

+			newy=0;

+		}

+		if ( (this.parent.width-(this.x+this.width))<this.dockingbarrier){

+			newx=this.parent.width-this.width;

+		}

+		if ( (this.parent.height-(this.y+this.height))<this.dockingbarrier){

+			newy=this.parent.height-this.height;

+		}

+		

+		//set position

+		this.setAttribute('x',newx);

+		this.setAttribute('y',newy);

+		]]>

+	</method>

+	

+	<method name="storeAdjustmentToParent" args="objX,objY">

+		this.tempXdistance=objX-this.x;

+		this.tempYdistance=objY-this.y;

+	</method>

+	

+	<!--- @keywords private 

+		this method is needed because if the dragging end and

+		it was not dragged _itself_ it was draged just because a connected

+		dockable Box was dragged than it could be that the connected

+		Box was forced to dock against something different onmouseup

+		so you have to rearrange the old "adjustment"	-->

+	<method name="_lookforParentOnly" args="obj">

+		<![CDATA[		

+		var newx=obj.x-tempXdistance;

+		var newy=obj.y-tempYdistance;

+		

+		this.setAttribute('x',newx);

+		this.setAttribute('y',newy);

+		]]>

+	</method>

+	

+	<dragstate name="dragger" />

+    

+    <animator attribute="y" to="20" duration="1000" started="false" />

+        

+    <animator name="doOut" attribute="y" to="-500" duration="1000" started="false" onstop="parent.doDestroy()" />    

+    

+    <method name="doDestroy">

+        this.destroy();

+    </method>

+	

+	<view width="${ this.parent.width-2 }" height="${ this.parent.height-2 }" 

+		  x="1" y="1" bgcolor="$once{ canvas.getThemeColor('mainBackgroundColor') }" />

+	<view x="1" y="1" width="${ this.parent.width-2 }" height="20" >

+		

+		<gradientview x="0" width="${ this.parent.width }" height="20"

+				colorFrom="$once{ canvas.getThemeColor('baseMousecolorizer') }"

+				colorTo="0x000088" >

+		</gradientview>

+		

+        <text fontsize="10" height="17" x="6" y="1" text="${ this.parent.parent.title }" 

+			fgcolor="0xFFFFFF" resize="true" fontstyle="bold" />

+	

+		<view visible="${ this.parent.parent.closable }" x="${ this.parent.parent.width-20 }" 

+			y="2" resource="btn_presenter_close"

+                onmouseover="this.setAttribute('frame',2)"

+                onmouseout="this.setAttribute('frame',1)"

+                onmousedown="this.setAttribute('frame',3)"

+                onmouseup="this.setAttribute('frame',1)" >

+			<handler name="onclick">

+				this.parent.parent.close();

+			</handler>									

+		</view>

+		<!-- 

+		<view visible="${ !this.parent.parent.isopen }" x="2" y="3" resource="explorer_button_min_rsc">

+			<handler name="onmouseover">

+				this.setAttribute('frame',2);

+			</handler>

+			<handler name="onmouseout">

+				this.setAttribute('frame',1);

+			</handler>

+			<handler name="onmousedown">

+				this.setAttribute('frame',3);

+			</handler>	

+			<handler name="onmouseup">

+				this.setAttribute('frame',1);

+				this.parent.parent.toggleopen();

+			</handler>									

+		</view>

+		<view visible="${ this.parent.parent.isopen }" x="2" y="3" resource="explorer_button_max_rsc">

+			<handler name="onmouseover">

+				this.setAttribute('frame',2);

+			</handler>

+			<handler name="onmouseout">

+				this.setAttribute('frame',1);

+			</handler>

+			<handler name="onmousedown">

+				this.setAttribute('frame',3);

+			</handler>	

+			<handler name="onmouseup">

+				this.setAttribute('frame',1);

+				this.parent.parent.toggleopen();

+			</handler>									

+		</view>

+		 -->

+	</view>

+    <handler name="onaddsubview" args="v">

+		////Debug.write("onaddsubview",v);

+		if (v.parent.subviews.length>2) this._resizeview.bringToFront();

+    </handler>

+    <view visible="${ this.parent.resizeable }" name="_resizeview" 

+    	  x="${ this.parent.width - 17 }" y="${ this.parent.height - 17 }" 

+        resource="explorer_resize_rsc" cursor="explorer_resizemouse_rsc" 

+        onmousedown="this.parent.rs.apply()"

+        onmouseup="this.parent.rs.remove()" >

+    	<handler name="oninit">

+    		//if ($debug) Debug.write("setTint");

+    		//TODO: Fix this, does not work at the moment

+    		//http://code.google.com/p/openmeetings/issues/detail?id=470

+    		this.setColor(canvas.getThemeColor('baseMousecolorizer'));

+    	</handler>  	

+    </view>

+    <resizestate name="rs"/>

+</class>

+

+</library>

diff --git a/WebContent/swf10/base/components/explorer/labelexplorerBox.lzx b/WebContent/swf10/base/components/explorer/labelexplorerBox.lzx
new file mode 100644
index 0000000..e0670ac
--- /dev/null
+++ b/WebContent/swf10/base/components/explorer/labelexplorerBox.lzx
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<class name="labelExplorerBox" extends="explorerBox" >

+

+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />

+	<method name="setLabelId" args="_labelid" >

+		this.labelid = _labelid;

+		this.title=canvas.getLabelName(this.labelid);

+	</method>

+	

+</class>

+

+</library>

diff --git a/WebContent/swf10/base/components/explorer/library.lzx b/WebContent/swf10/base/components/explorer/library.lzx
new file mode 100644
index 0000000..c16ca18
--- /dev/null
+++ b/WebContent/swf10/base/components/explorer/library.lzx
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+	<include href="incubator/gradientview.lzx" /> 

+

+	<include href="resources/" />

+	

+	<include href="explorerBox.lzx" />

+	<include href="labelexplorerBox.lzx" />

+

+    

+</library>

diff --git a/WebContent/swf10/base/components/explorer/resources/close_dn.png b/WebContent/swf10/base/components/explorer/resources/close_dn.png
new file mode 100644
index 0000000..57fcf20
--- /dev/null
+++ b/WebContent/swf10/base/components/explorer/resources/close_dn.png
Binary files differ
diff --git a/WebContent/swf10/base/components/explorer/resources/close_mo.png b/WebContent/swf10/base/components/explorer/resources/close_mo.png
new file mode 100644
index 0000000..b9d0f94
--- /dev/null
+++ b/WebContent/swf10/base/components/explorer/resources/close_mo.png
Binary files differ
diff --git a/WebContent/swf10/base/components/explorer/resources/close_up.png b/WebContent/swf10/base/components/explorer/resources/close_up.png
new file mode 100644
index 0000000..79d3b72
--- /dev/null
+++ b/WebContent/swf10/base/components/explorer/resources/close_up.png
Binary files differ
diff --git a/WebContent/swf10/base/components/explorer/resources/explorbar_maximize_dn.png b/WebContent/swf10/base/components/explorer/resources/explorbar_maximize_dn.png
new file mode 100644
index 0000000..e5ae343
--- /dev/null
+++ b/WebContent/swf10/base/components/explorer/resources/explorbar_maximize_dn.png
Binary files differ
diff --git a/WebContent/swf10/base/components/explorer/resources/explorbar_maximize_mo.png b/WebContent/swf10/base/components/explorer/resources/explorbar_maximize_mo.png
new file mode 100644
index 0000000..093a0b0
--- /dev/null
+++ b/WebContent/swf10/base/components/explorer/resources/explorbar_maximize_mo.png
Binary files differ
diff --git a/WebContent/swf10/base/components/explorer/resources/explorbar_maximize_no.png b/WebContent/swf10/base/components/explorer/resources/explorbar_maximize_no.png
new file mode 100644
index 0000000..fca6ec8
--- /dev/null
+++ b/WebContent/swf10/base/components/explorer/resources/explorbar_maximize_no.png
Binary files differ
diff --git a/WebContent/swf10/base/components/explorer/resources/explorbar_minimize_dn.png b/WebContent/swf10/base/components/explorer/resources/explorbar_minimize_dn.png
new file mode 100644
index 0000000..e05de83
--- /dev/null
+++ b/WebContent/swf10/base/components/explorer/resources/explorbar_minimize_dn.png
Binary files differ
diff --git a/WebContent/swf10/base/components/explorer/resources/explorbar_minimize_mo.png b/WebContent/swf10/base/components/explorer/resources/explorbar_minimize_mo.png
new file mode 100644
index 0000000..faba70d
--- /dev/null
+++ b/WebContent/swf10/base/components/explorer/resources/explorbar_minimize_mo.png
Binary files differ
diff --git a/WebContent/swf10/base/components/explorer/resources/explorbar_minimize_no.png b/WebContent/swf10/base/components/explorer/resources/explorbar_minimize_no.png
new file mode 100644
index 0000000..b4dafa3
--- /dev/null
+++ b/WebContent/swf10/base/components/explorer/resources/explorbar_minimize_no.png
Binary files differ
diff --git a/WebContent/swf10/base/components/explorer/resources/explorerbar.png b/WebContent/swf10/base/components/explorer/resources/explorerbar.png
new file mode 100644
index 0000000..4cb2d59
--- /dev/null
+++ b/WebContent/swf10/base/components/explorer/resources/explorerbar.png
Binary files differ
diff --git a/WebContent/swf10/base/components/explorer/resources/library.lzx b/WebContent/swf10/base/components/explorer/resources/library.lzx
new file mode 100644
index 0000000..2c123a6
--- /dev/null
+++ b/WebContent/swf10/base/components/explorer/resources/library.lzx
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<!-- APL author sebawagner -->

+<resource src="explorerbar.png" name="explorer_thumb_rsc" />

+

+<!-- APL author sebawagner -->

+<resource name="explorer_button_min_rsc" >

+	<frame src="explorbar_minimize_no.png" />

+	<frame src="explorbar_minimize_mo.png" />

+	<frame src="explorbar_minimize_dn.png" />

+</resource>

+

+<!-- APL author sebawagner -->

+<resource name="explorer_button_max_rsc" >

+	<frame src="explorbar_maximize_no.png" />

+	<frame src="explorbar_maximize_mo.png" />

+	<frame src="explorbar_maximize_dn.png" />

+</resource>

+

+<!-- APL author sebawagner -->

+<resource name="explorer_resize_rsc" src="resizer.swf" />

+

+<!-- APL author sebawagner -->

+<resource name="btn_presenter_minimize" src="minimize_up.png" />

+<!-- APL author sebawagner -->

+<resource name="btn_presenter_maximize" src="maximize_up.png" />

+<!-- APL author sebawagner -->

+<resource name="btn_presenter_maximize2" src="maximize2_up.png" />

+

+<!-- APL author sebawagner -->

+<resource name="btn_presenter_close">

+    <frame src="close_up.png" />

+    <frame src="close_mo.png" />

+    <frame src="close_dn.png" />

+</resource> 

+

+<!-- APL author sebawagner -->

+<resource name="explorer_resizemouse_rsc" src="resizemouse.png" />

+

+</library>

diff --git a/WebContent/swf10/base/components/explorer/resources/maximize2_up.png b/WebContent/swf10/base/components/explorer/resources/maximize2_up.png
new file mode 100644
index 0000000..1edd23b
--- /dev/null
+++ b/WebContent/swf10/base/components/explorer/resources/maximize2_up.png
Binary files differ
diff --git a/WebContent/swf10/base/components/explorer/resources/maximize_up.png b/WebContent/swf10/base/components/explorer/resources/maximize_up.png
new file mode 100644
index 0000000..778c05c
--- /dev/null
+++ b/WebContent/swf10/base/components/explorer/resources/maximize_up.png
Binary files differ
diff --git a/WebContent/swf10/base/components/explorer/resources/minimize_up.png b/WebContent/swf10/base/components/explorer/resources/minimize_up.png
new file mode 100644
index 0000000..1637298
--- /dev/null
+++ b/WebContent/swf10/base/components/explorer/resources/minimize_up.png
Binary files differ
diff --git a/WebContent/swf10/base/components/explorer/resources/resizemouse.png b/WebContent/swf10/base/components/explorer/resources/resizemouse.png
new file mode 100644
index 0000000..be3164f
--- /dev/null
+++ b/WebContent/swf10/base/components/explorer/resources/resizemouse.png
Binary files differ
diff --git a/WebContent/swf10/base/components/explorer/resources/resizer.fla b/WebContent/swf10/base/components/explorer/resources/resizer.fla
new file mode 100644
index 0000000..07de957
--- /dev/null
+++ b/WebContent/swf10/base/components/explorer/resources/resizer.fla
Binary files differ
diff --git a/WebContent/swf10/base/components/explorer/resources/resizer.png b/WebContent/swf10/base/components/explorer/resources/resizer.png
new file mode 100644
index 0000000..2c951fe
--- /dev/null
+++ b/WebContent/swf10/base/components/explorer/resources/resizer.png
Binary files differ
diff --git a/WebContent/swf10/base/components/explorer/resources/resizer.swf b/WebContent/swf10/base/components/explorer/resources/resizer.swf
new file mode 100644
index 0000000..2e5d0da
--- /dev/null
+++ b/WebContent/swf10/base/components/explorer/resources/resizer.swf
Binary files differ
diff --git a/WebContent/swf10/base/components/labelCheckbox.lzx b/WebContent/swf10/base/components/labelCheckbox.lzx
new file mode 100644
index 0000000..8660ce8
--- /dev/null
+++ b/WebContent/swf10/base/components/labelCheckbox.lzx
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+          

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<class name="labelCheckbox" extends="checkbox" style="componentStyle" fontsize="11" >

+    <attribute name="labelid" type="number" setter="setLabelId(labelid)" />

+    <method name="setLabelId" args="_labelid" >

+        this.labelid = _labelid;

+        this.setAttribute('text',canvas.getLabelName(this.labelid));

+    </method>

+</class>

+

+</library>
\ No newline at end of file
diff --git a/WebContent/swf10/base/components/library.lzx b/WebContent/swf10/base/components/library.lzx
new file mode 100644
index 0000000..b79c839
--- /dev/null
+++ b/WebContent/swf10/base/components/library.lzx
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+    <include href="resetCombobox.lzx" />

+    <include href="miniIconsPresenter.lzx" />

+    <include href="labelCheckbox.lzx" />

+    

+    <include href="text/" />

+    <include href="scrollbars/" />

+    <include href="lps/" />

+    <include href="button/" />

+    <include href="explorer/" /> 

+      

+</library>

diff --git a/WebContent/swf10/base/components/lps/basePropertySelector.lzx b/WebContent/swf10/base/components/lps/basePropertySelector.lzx
new file mode 100644
index 0000000..2d9a099
--- /dev/null
+++ b/WebContent/swf10/base/components/lps/basePropertySelector.lzx
@@ -0,0 +1,48 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+	
+<class name="hidePropertyView" extends="view"
+	   width="$once{ parent.width }" height="$once{ parent.height }"
+	   opacity="0.7" bgcolor="0xFFFFFF" />
+
+<class name="basePropertySelector" extends="view">
+	
+	<!--- position of the SliderWin or ColorPicker -->
+	<attribute name="boxPosition" value="down" type="string" />
+	
+	<attribute name="isEnabled" value="true" type="boolean" />
+	<attribute name="enabledView" value="null" />
+	
+	<method name="setEnabled" args="b">
+		this.setAttribute('isEnabled',b);
+		if (this.enabledView != null) {
+			this.enabledView.destroy();
+			this.enabledView = null;
+		}
+		if (!b) {
+			this.enabledView = new lz.hidePropertyView(this);
+		} 
+	</method>
+    
+    
+</class>
+
+</library>
diff --git a/WebContent/swf10/base/components/lps/changeWidthSlider.lzx b/WebContent/swf10/base/components/lps/changeWidthSlider.lzx
new file mode 100644
index 0000000..dfa746a
--- /dev/null
+++ b/WebContent/swf10/base/components/lps/changeWidthSlider.lzx
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>  
+
+<class name="changeWidthSlider" extends="basePropertySelector" bgcolor="0xFFFFFF" width="60" height="24">
+
+    <attribute name="numberAlign" value="right" type="string"/>
+    <attribute name="minimum" type="number" value="1" />
+    <attribute name="maximum" type="number" value="100" />
+    <attribute name="step" value="1" type="number"/>
+    <attribute name="initialNumberInit" value="1" type="number"/>
+    <attribute name="initialNumber" value="3" type="number"/>
+    
+    <attribute name="boxPosition" value="down" type="string"/>
+    
+    <attribute name="labelid" value="429" type="number"/>
+    
+    <event name="onplus" />
+    <event name="onminus" />
+    
+    <handler name="oninit">
+        this.initialNumberInit=initialNumber;
+    </handler>
+    
+    <method name="getValue">
+        return this.initialNumber;
+    </method>
+    
+    <method name="setSliderValue" args="v">
+    	this.initialNumber = v;
+    	this.numericValue.setAttribute('tempValue',this.initialNumber);
+    	this.numericValue.setAttribute('text',this.initialNumber);
+    	if ($debug) Debug.write("setSliderValue ",v);
+    	this.setEnabled(true);
+    </method>
+
+    <edittext name="numericValue" width="34" height="24" text="$once{ parent.initialNumber }" >
+        <attribute name="tempValue" value="$once{ parent.initialNumber }" type="number" />
+        <handler name="onfocus">
+            this.tempValue = Number(this.getText());
+        </handler>            
+        <handler name="onblur">
+            <![CDATA[
+                var t = parseInt(this.getText());
+                if (isNaN(t) || t > this.parent.maximum || t < this.parent.minimum){
+                    t = this.tempValue;
+                    this.setAttribute('text',t);
+                    lz.Focus.setFocus(this);
+                } else {
+                    this.tempValue = t;
+                    parent.setAttribute('initialNumber',t);
+                }
+            ]]>
+        </handler>
+    </edittext>
+
+
+    <button name="arrowView" x="36" width="24" y="1" height="23" >
+        <view name="arrow_down_slider" resource="arrow_down_slider_rsc" 
+            x="4" y="3" />
+            <handler name="onclick">
+            	if (this.parent.boxPosition=="up"){
+            		var pick = new lz.changeWidthSliderWin(canvas,{
+					            			initialNumber:parent.numericValue.tempValue,
+					            			btnRef:this.parent,x:(parent.getAttributeRelative('x',canvas)),
+					            			maxvalue:parent.maximum,
+					            			y:(parent.getAttributeRelative('y',canvas)-140+parent.height)
+				            			});
+            	} else {
+            		var pick = new lz.changeWidthSliderWin(canvas,{
+					            			initialNumber:parent.numericValue.tempValue,
+					            			btnRef:this.parent,x:(parent.getAttributeRelative('x',canvas)),
+					            			maxvalue:parent.maximum,
+					            			y:(parent.getAttributeRelative('y',canvas))
+				            			});
+            	}
+                lz.ModeManager.makeModal( pick );
+            </handler>
+        <labelTooltip labelid="$once{ parent.parent.labelid }" />
+    </button>
+    
+</class>
+    
+<class name="closableView" extends="view">
+    <method name="close">
+        lz.ModeManager.release(this);
+        this.destroy();
+    </method>
+</class>    
+    
+<class name="changeWidthSliderWin" extends="closableView" bgcolor="white" 
+    clickable="true" width="58" height="140" >
+    
+    <attribute name="btnRef" value="null" />
+    <attribute name="initialNumber" value="3" type="number"/>
+    <attribute name="maxvalue" value="100" type="number" />
+    
+    <!--- @keywords private -->
+    <method name="passModeEvent" args="eventStr,view" > 
+        <![CDATA[
+            if ( eventStr == "onmousedown"  ){
+                if ( view != null ) {
+                   if ( !view.childOf(this) ) {
+                        this.close();
+                   }
+                } else {
+                    this.close();
+                }
+            }
+            if (view && view.childOf(this)) {
+                if (view[ eventStr ]) {
+                    view[ eventStr ].sendEvent( view );
+                }
+                return false;
+            }
+            return true;
+        ]]> 
+    </method>
+
+    <view bgcolor="$once{ canvas.getThemeColor('baseMousecolorizer') }" width="58" height="138" x="1" y="1" />
+    
+    <vslider name="_slider" height="120" y="10" x="10" minvalue="1" maxvalue="$once{ parent.maxvalue }" 
+        initvalue="$once{ parent.initialNumber }" showrange="false" showvalue="true">
+        <handler name="onvalue" args="v">
+            //if ($debug) Debug.write("onvalue",v);
+            parent.btnRef.numericValue.tempValue = Number(v);
+            parent.btnRef.numericValue.setAttribute('text',v);
+            parent.btnRef.setAttribute('initialNumber',v);
+        </handler>
+        <handler name="onvalueChosenFinal">
+            parent.close();
+        </handler>        
+    </vslider>
+    
+    <view name="_close" x="$once{ parent.width-this.width-2 }" y="2"
+        resource="btn_presenter_close"
+        onmouseover="this.setAttribute('frame',2)"
+        onmouseout="this.setAttribute('frame',1)"
+        onmousedown="this.setAttribute('frame',3)"
+        onmouseup="this.setAttribute('frame',1)" >
+        <handler name="onclick">
+            this.setAttribute('frame',2);
+            this.parent.close();
+        </handler>
+        <labelTooltip labelid="430" />
+    </view>     
+        
+</class>    
+
+</library>
diff --git a/WebContent/swf10/base/components/lps/library.lzx b/WebContent/swf10/base/components/lps/library.lzx
new file mode 100644
index 0000000..7344bcc
--- /dev/null
+++ b/WebContent/swf10/base/components/lps/library.lzx
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+    <!-- APL author sebawagner -->
+    <resource name="arrow_down_slider_rsc" src="resources/arrow_down_slider.png" /> 
+
+    <include href="basePropertySelector.lzx" />
+    <include href="vslider.lzx" /> 
+    <include href="changeWidthSlider.lzx" />
+    
+</library>
diff --git a/WebContent/swf10/base/components/lps/resources/arrow_down_slider.png b/WebContent/swf10/base/components/lps/resources/arrow_down_slider.png
new file mode 100644
index 0000000..f5107d7
--- /dev/null
+++ b/WebContent/swf10/base/components/lps/resources/arrow_down_slider.png
Binary files differ
diff --git a/WebContent/swf10/base/components/lps/vslider.lzx b/WebContent/swf10/base/components/lps/vslider.lzx
new file mode 100644
index 0000000..986a4f2
--- /dev/null
+++ b/WebContent/swf10/base/components/lps/vslider.lzx
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!-- X_LZ_COPYRIGHT_BEGIN ************************************************
+* Copyright 2006, 2009 Laszlo Systems, Inc.  All Rights Reserved.              *
+* Use is subject to license terms.                                       *
+* X_LZ_COPYRIGHT_END ************************************************** -->
+<!--
+    vertical slider contributed by Sebastian Wagner
+-->
+<library>
+  
+  <class name="vslidertrack" extends="view" bgcolor="0x000000">
+        <view width="${ parent.width-2}" height="${ parent.height-2 }" 
+          x="1" y="1" bgcolor="0xFFFFFF"/>
+        <view width="${ parent.width-2}" bgcolor="0xCCCCCC"
+          x="1" y="${ (this.parent.parent.switchaxis) ? 
+                parent.parent._sliderthumb.y : 1 }" 
+          visible="${ parent.parent.showrange }" 
+          height="${ (this.parent.parent.switchaxis) ? 
+        (parent.parent._vslidertrack.height - parent.parent._sliderthumb.y-1) : 
+        parent.parent._sliderthumb.y }" />
+  </class>
+  
+  <class name="vsliderthumb" extends="button" bgcolor="0x999999" 
+        height="10" width="20" 
+    onmousedown="dragger.setAttribute('applied', true)" onmouseup="dragger.setAttribute('applied', false)">
+        <attribute name="drag_min" value="0" type="number" />
+        <attribute name="showvalue" type="boolean" value="true" />
+        <attribute name="drag_max" value="0" type="number" />
+        <handler name="oninit">
+                //Setting the initVal
+                this.setAttribute('y', getPosFromValue(this.parent.initvalue));
+        </handler>
+        
+        <method name="getValueFromPos">
+                var delta1 = this.parent.maxvalue-this.parent.minvalue;
+                var perc = (this.parent.switchaxis) ? 1-(y / (this.parent.height-this.height)) : (y / (this.parent.height-this.height));
+                //Debug.write(delta1,perc);
+                return (Math.round(perc*delta1))+this.parent.minvalue;
+        </method>
+        
+        <method name="getPosFromValue" args="val">
+                var perc = (val-this.parent.minvalue) / (this.parent.maxvalue-this.parent.minvalue);
+                //Debug.write(perc);
+                var valY = (this.parent.switchaxis) ? ( (1-perc) * (this.parent.height-this.height)) : (perc * (this.parent.height-this.height));
+                //Debug.write("valY: ",Math.round(valY));
+                return Math.round(valY);
+        </method>
+        
+        <setter name="y" args="v">
+                super.setAttribute('y', v);
+                var thumbVal = getValueFromPos();
+                if (thumbVal != parent.value) {
+                        this.parent.setValue(thumbVal);
+                }               
+        </setter>
+    <dragstate name="dragger" drag_axis="y"
+        drag_min_y="${ this.drag_min }"  
+        drag_max_y="${ this.drag_max }">
+            <text name="t1" x="-24" text="${ this.parent.parent.value }" y="-4" resize="true" />
+    </dragstate>
+  </class>
+
+  <class name="vslider" extends="view" >
+        <!--- Minimum Value -->
+        <attribute name="minvalue" type="number" value="0"/>
+        
+        <!--- Maximum Value -->
+        <attribute name="maxvalue" type="number" value="100"/>
+        
+        <!--- Showrange should the slidertrack be with color while 'sliding' -->
+        <attribute name="showrange" type="boolean" value="true"/>
+        
+        <!--- showvalue should the slider show the numbers of min/max -->
+        <attribute name="showvalue" type="boolean" value="true"/>
+        
+        <!--- switchaxis true means minimum-value is 
+                t op maximum is bottom false turns around -->
+        <attribute name="switchaxis" type="boolean" value="false"/>
+        
+        <!-- Initial Value -->
+        <attribute name="initvalue" value="0" type="number" />          
+        
+    <!--- @keywords private -->
+    <event name="onvalue"/>
+        
+    <!--- @keywords private -->
+    <attribute name="value" value="0" setter="setValue(value)"/>
+    <method name="setValue" args="v">
+        if (!isinited) {
+          this.value = v;
+          return;
+        }
+        if (this.value == v) return;
+        this.value = v;
+        if (onvalue) onvalue.sendEvent(v);
+    </method>
+       
+        <vslidertrack name="_vslidertrack" x="5" 
+        width="10" height="${ parent.height }" />
+        <vsliderthumb name="_sliderthumb" 
+        drag_max="${ parent.height-this.height }" 
+        showvalue="${ parent.showvalue }" />
+        
+        <text text="${ ( (this.parent.switchaxis) ? 
+                this.parent.maxvalue : this.parent.minvalue ) }" 
+        visible="${ parent.showvalue }" 
+        y="-8" x="${ this.parent._vslidertrack.width+10 }" />
+        
+        <text text="${ ( (this.parent.switchaxis) ? 
+                this.parent.minvalue : this.parent.maxvalue ) }" 
+          visible="${ parent.showvalue }" 
+          y="${ this.parent.height-10 }" 
+          x="${ this.parent._vslidertrack.width+10 }" />
+  </class>
+  
+  
+
+</library>
diff --git a/WebContent/swf10/base/components/miniIconsPresenter.lzx b/WebContent/swf10/base/components/miniIconsPresenter.lzx
new file mode 100644
index 0000000..1d58a24
--- /dev/null
+++ b/WebContent/swf10/base/components/miniIconsPresenter.lzx
@@ -0,0 +1,51 @@
+<library>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+

+<class name="miniIconsPresenter" extends="view">

+    

+    <attribute name="iconRessourceName" value="" type="string"/>

+    

+    <handler name="onmouseover">

+        this._bg.setAttribute("bgcolor",0xFFFFFF);

+        this._bg.setAttribute("visibility","visible");

+    </handler>

+    

+    <handler name="onmouseout">

+        this._bg.setAttribute("visibility","hidden");

+    </handler>

+    

+    <handler name="onmousedown">

+        this._bg.setAttribute("bgcolor",canvas.getThemeColor('basebgcolorizer'));

+        this._bg.setAttribute("visibility","visible");

+    </handler>

+    

+    <handler name="onmouseup">

+        this._bg.setAttribute("visibility","hidden");

+    </handler>

+    

+    <view name="_bg" visibility="hidden" opacity="0.7"

+          width="14" height="14" x="1" y="1" bgcolor="0xFFFFFF" />

+          

+    <view name="_itemRsc" resource="$once{ parent.iconRessourceName }" />

+    

+</class>

+

+</library>

diff --git a/WebContent/swf10/base/components/resetCombobox.lzx b/WebContent/swf10/base/components/resetCombobox.lzx
new file mode 100644
index 0000000..f95abff
--- /dev/null
+++ b/WebContent/swf10/base/components/resetCombobox.lzx
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+    <class name="resetCombobox" extends="combobox" editable="false" shownitems="12"

+    	   style="componentStyle" itemclassname="labeldTextListItem">

+    

+        <method name="reset" >

+            <![CDATA[

+                var currentCount = this.cblist.getNumItems();

+                for (var i = 0; i < currentCount; i++)

+                    this.removeItemAt(0);

+                this.clearSelection();

+            ]]>

+        </method>

+    

+    </class>

+        

+</library>

diff --git a/WebContent/swf10/base/components/scrollbars/library.lzx b/WebContent/swf10/base/components/scrollbars/library.lzx
new file mode 100644
index 0000000..9ee00e1
--- /dev/null
+++ b/WebContent/swf10/base/components/scrollbars/library.lzx
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+	<!-- APL Author sebawagner -->

+	<resource name="omscrolltrack_y_rsc" src="resources/y_scrolltrack.swf" />

+	

+	<!-- APL Author sebawagner -->

+    <resource name="omscrollbar_ythumbmiddle_rsc" src="resources/scrollthumb_y_mid.swf" />

+    <!-- APL Author sebawagner -->

+    <resource name="omscrollbar_ythumbtop_rsc" src="resources/scrollthumb_y_top.swf" />

+    <!-- APL Author sebawagner -->

+    <resource name="omscrollbar_ythumbbottom_rsc" src="resources/scrollthumb_y_bottom.swf" />

+    <!-- APL Author sebawagner -->

+   	<resource name="omscrolltrack_x_rsc" src="resources/x_scrolltrack.swf" />

+	<!-- APL Author sebawagner -->

+    <resource name="omscrollbar_xthumbmiddle_rsc" src="resources/scrollthumb_x_mid.swf" />

+    <!-- APL Author sebawagner -->

+    <resource name="omscrollbar_xthumbleft_rsc" src="resources/scrollthumb_x_left.swf" />

+    <!-- APL Author sebawagner -->

+    <resource name="omscrollbar_xthumbright_rsc" src="resources/scrollthumb_x_right.swf" />

+

+	<include href="om_vscrollbar.lzx"/>

+	<include href="om_hscrollbar.lzx"/>

+

+</library>

diff --git a/WebContent/swf10/base/components/scrollbars/om_hscrollbar.lzx b/WebContent/swf10/base/components/scrollbars/om_hscrollbar.lzx
new file mode 100644
index 0000000..036fed6
--- /dev/null
+++ b/WebContent/swf10/base/components/scrollbars/om_hscrollbar.lzx
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="om_hscrollbar" extends="basescrollbar" styleable="false"
+    axis="x">
+
+    <!--- @keywords private -->
+    <attribute name="height" value="10"/>
+    
+    <!--- @keywords private -->
+    <method name="_showEnabled">
+        <![CDATA[
+        if (!_enabled) {
+        	//this.scrolltrack.thumb.setAttribute('height', 0);
+            this.scrolltrack.thumb.setAttribute('visibility', 'hidden');
+        } else {
+            this.scrolltrack.thumb.setAttribute('visibility', 'visible');
+        }
+        super._showEnabled();
+    ]]>
+    </method>
+
+	<view name="rightarrow" width="0" />
+    <view name="scrolltrack">
+    	 <basescrolltrack name="left"
+           resource="omscrolltrack_x_rsc" stretches="width">
+         	<attribute name="height" value="${parent.height}"/>
+            <attribute name="width" value="${parent.width}"/>  
+         </basescrolltrack>
+         <basescrollthumb name="thumb" x="1">
+             <view resource="omscrollbar_xthumbleft_rsc"/>
+             <view resource="omscrollbar_xthumbmiddle_rsc" stretches="both"/>
+             <view resource="omscrollbar_xthumbright_rsc"/>
+             <stableborderlayout axis="x"/>
+        </basescrollthumb>
+    </view>
+
+	<view height="0" name="leftarrow" />
+    <stableborderlayout axis="x"/>
+
+</class>
+</library>
diff --git a/WebContent/swf10/base/components/scrollbars/om_vscrollbar.lzx b/WebContent/swf10/base/components/scrollbars/om_vscrollbar.lzx
new file mode 100644
index 0000000..98623ed
--- /dev/null
+++ b/WebContent/swf10/base/components/scrollbars/om_vscrollbar.lzx
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+<class name="om_vscrollbar" extends="basescrollbar" styleable="false"
+    axis="y">
+
+    <!--- @keywords private -->
+    <attribute name="width" value="10"/>
+    
+    <!--- @keywords private -->
+    <method name="_showEnabled">
+        <![CDATA[
+        if (!_enabled) {
+        	//this.scrolltrack.thumb.setAttribute('height', 0);
+            this.scrolltrack.thumb.setAttribute('visibility', 'hidden');
+        } else {
+            this.scrolltrack.thumb.setAttribute('visibility', 'visible');
+        }
+        super._showEnabled();
+    ]]>
+    </method>
+
+	<view name="toparrow" height="0" />
+    <view name="scrolltrack">
+    	 <basescrolltrack name="top"
+           resource="omscrolltrack_y_rsc" stretches="height">
+         	<attribute name="height" value="${parent.height}"/>
+            <attribute name="width" value="${parent.width}"/>  
+         </basescrolltrack>
+         <basescrollthumb name="thumb" x="1">
+             <view resource="omscrollbar_ythumbtop_rsc"/>
+             <view resource="omscrollbar_ythumbmiddle_rsc" stretches="both"/>
+             <view resource="omscrollbar_ythumbbottom_rsc"/>
+             <stableborderlayout axis="y"/>
+        </basescrollthumb>
+    </view>
+
+	<view height="0" name="bottomarrow" />
+    <stableborderlayout axis="y"/>
+
+</class>
+</library>
diff --git a/WebContent/swf10/base/components/scrollbars/resources/scrollthumb_x_left.swf b/WebContent/swf10/base/components/scrollbars/resources/scrollthumb_x_left.swf
new file mode 100644
index 0000000..fd9411b
--- /dev/null
+++ b/WebContent/swf10/base/components/scrollbars/resources/scrollthumb_x_left.swf
Binary files differ
diff --git a/WebContent/swf10/base/components/scrollbars/resources/scrollthumb_x_mid.swf b/WebContent/swf10/base/components/scrollbars/resources/scrollthumb_x_mid.swf
new file mode 100644
index 0000000..fff3744
--- /dev/null
+++ b/WebContent/swf10/base/components/scrollbars/resources/scrollthumb_x_mid.swf
Binary files differ
diff --git a/WebContent/swf10/base/components/scrollbars/resources/scrollthumb_x_right.swf b/WebContent/swf10/base/components/scrollbars/resources/scrollthumb_x_right.swf
new file mode 100644
index 0000000..74ea64a
--- /dev/null
+++ b/WebContent/swf10/base/components/scrollbars/resources/scrollthumb_x_right.swf
Binary files differ
diff --git a/WebContent/swf10/base/components/scrollbars/resources/scrollthumb_y_bottom.swf b/WebContent/swf10/base/components/scrollbars/resources/scrollthumb_y_bottom.swf
new file mode 100644
index 0000000..09a370b
--- /dev/null
+++ b/WebContent/swf10/base/components/scrollbars/resources/scrollthumb_y_bottom.swf
Binary files differ
diff --git a/WebContent/swf10/base/components/scrollbars/resources/scrollthumb_y_mid.swf b/WebContent/swf10/base/components/scrollbars/resources/scrollthumb_y_mid.swf
new file mode 100644
index 0000000..af9015f
--- /dev/null
+++ b/WebContent/swf10/base/components/scrollbars/resources/scrollthumb_y_mid.swf
Binary files differ
diff --git a/WebContent/swf10/base/components/scrollbars/resources/scrollthumb_y_top.swf b/WebContent/swf10/base/components/scrollbars/resources/scrollthumb_y_top.swf
new file mode 100644
index 0000000..c701740
--- /dev/null
+++ b/WebContent/swf10/base/components/scrollbars/resources/scrollthumb_y_top.swf
Binary files differ
diff --git a/WebContent/swf10/base/components/scrollbars/resources/x_scrolltrack.swf b/WebContent/swf10/base/components/scrollbars/resources/x_scrolltrack.swf
new file mode 100644
index 0000000..937dd8d
--- /dev/null
+++ b/WebContent/swf10/base/components/scrollbars/resources/x_scrolltrack.swf
Binary files differ
diff --git a/WebContent/swf10/base/components/scrollbars/resources/y_scrolltrack.swf b/WebContent/swf10/base/components/scrollbars/resources/y_scrolltrack.swf
new file mode 100644
index 0000000..b05b88a
--- /dev/null
+++ b/WebContent/swf10/base/components/scrollbars/resources/y_scrolltrack.swf
Binary files differ
diff --git a/WebContent/swf10/base/components/scrollbars/scrollbar_yresources.lzx b/WebContent/swf10/base/components/scrollbars/scrollbar_yresources.lzx
new file mode 100644
index 0000000..bc08ffe
--- /dev/null
+++ b/WebContent/swf10/base/components/scrollbars/scrollbar_yresources.lzx
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+

+    

+</library>
\ No newline at end of file
diff --git a/WebContent/swf10/base/components/text/borderedInputtext.lzx b/WebContent/swf10/base/components/text/borderedInputtext.lzx
new file mode 100644
index 0000000..851449e
--- /dev/null
+++ b/WebContent/swf10/base/components/text/borderedInputtext.lzx
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<class name="borderedInputtext" extends="view" bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }" >

+	<attribute name="width" value="200" type="size" />

+	<attribute name="height" value="18" type="size" />

+    <attribute name="tvalue" type="string" value="default"/>

+    <attribute name="sendchange" value="false" type="boolean" />

+    <attribute name="multiline" value="false"/>

+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />

+	<method name="setLabelId" args="_labelid" >

+		this.labelid = _labelid;

+		this.setAttribute('text',canvas.getLabelName(this.labelid));

+	</method>

+    <attribute name="checkIsNumber" value="false" type="boolean" />

+    <attribute name="checkIsDouble" value="false" type="boolean" />

+    <attribute name="editable" value="true" setter="setEditable(editable)" type="boolean" />

+    <method name="setEditable" args="value">

+        this.editable=value;

+    	this.field.setEnabled(value);

+    </method>

+    <event name="onblur" />

+    <method name="setItemEnabled" args="value">

+    	this.field.setEnabled(value);

+    </method>    

+    <attribute name="maxlength" value="null" type="number"/>         	

+	<attribute name="text" type="string" value="" />

+		<!-- -->

+  <inputtext name="field" fontsize="10" text="${ this.parent.text }" x="1" y="1" bgcolor="0xFFFFFF" 

+  	multiline="$once{parent.multiline}" width="${ this.parent.width-2 }" height="${ this.parent.height-2 }" >

+  		<attribute name="preText" value="" type="string" />

+  		<handler name="onfocus">

+  			this.preText = this.getText();

+  		</handler>

+      	<handler name="onblur">

+      		var t = this.getText();

+      		if (this.parent.checkIsNumber){

+      			if ( isNaN( Number(t) ) ){

+      				if (this.parent.checkIsDouble){

+      					t="0.00";

+      				} else {

+      					t=this.preText;

+      				}

+      				this.setAttribute('text',t);

+      			}

+      		}

+            if (this.parent.sendchange) this.parent.parent.sendchange(this.parent,this.parent.tvalue,this.getText());

+            if (this.parent.onblur) this.parent.onblur.sendEvent();

+      	</handler>

+        <handler name="oninit">

+            this.setEnabled(this.parent.editable);

+        </handler>       	           

+	</inputtext>	   

+	 

+	<method name="getText">

+		return this.field.getText();

+	</method>

+	<method name="setText" args="txt">

+		this.setAttribute('text',txt);

+	</method> 		

+</class>

+

+<class name="borderedMultiInputtext" extends="view">

+	<attribute name="width" value="200" type="size" />

+	<attribute name="height" value="18" type="size" />

+    <attribute name="tvalue" type="string" value="default"/>

+    <attribute name="sendchange" value="false" type="boolean" />

+    <attribute name="multiline" value="false"/>

+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />

+	<method name="setLabelId" args="_labelid" >

+		this.labelid = _labelid;

+		this.setAttribute('text',canvas.getLabelName(this.labelid));

+	</method>

+    <attribute name="checkIsNumber" value="false" type="boolean" />

+    <attribute name="checkIsDouble" value="false" type="boolean" />

+    <attribute name="editable" value="true" setter="setEditable(editable)" type="boolean" />

+    <method name="setEditable" args="value">

+        this.editable=value;

+    	this.field.setEnabled(value);

+    </method>

+    <method name="setItemEnabled" args="value">

+    	this.field.setEnabled(value);

+    </method>    

+    <attribute name="maxlength" value="null" type="number"/>         	

+	<attribute name="bgcolor" value="0xA3B2CC" type="color" />

+	<attribute name="text" type="string" value="" />

+		<!-- -->

+  <inputtext name="field" fontsize="10" text="${ this.parent.text }" x="1" y="1" bgcolor="0xFFFFFF" 

+  	multiline="true" width="${ this.parent.width-2 }" height="${ this.parent.height-2 }" >

+      	<handler name="onblur">

+      		var t = this.getText();

+      		if (this.parent.checkIsNumber){

+      			if ( isNaN( Number(t) ) ){

+      				if (this.parent.checkIsDouble){

+      					t="0.00";

+      				} else {

+      					t="0";

+      				}

+      				this.setAttribute('text',t);

+      			}

+      		}

+            if (this.parent.sendchange) this.parent.parent.sendchange(this.parent,this.parent.tvalue,this.getText());

+      	</handler>   

+        <handler name="oninit">

+            this.setEnabled(this.parent.editable);

+            if(this.multiline) this.init();

+        </handler>       	           

+        <method name="init">

+            super.init();        

+        </method>

+	</inputtext>	   

+	 

+	<method name="getText">

+		return this.field.getText();

+	</method>

+	<method name="setText" args="txt">

+		this.setAttribute('text',txt);

+	</method> 		

+</class>

+

+<class name="borderedPasswordText" extends="view">

+	<attribute name="width" value="200" type="size" />

+	<attribute name="height" value="18" type="size" />

+    <attribute name="tvalue" type="string" value="default"/>

+    <attribute name="sendchange" value="false" type="boolean" />

+    <attribute name="multiline" value="false"/>

+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />

+	<method name="setLabelId" args="_labelid" >

+		this.labelid = _labelid;

+		this.setAttribute('text',canvas.getLabelName(this.labelid));

+	</method>

+    <attribute name="checkIsNumber" value="false" type="boolean" />

+    <attribute name="checkIsDouble" value="false" type="boolean" />

+    <attribute name="editable" value="true" setter="setEditable(editable)" type="boolean" />

+    <method name="setEditable" args="value">

+        this.editable=value;

+    	this.field.setEnabled(value);

+    </method>

+    <method name="setItemEnabled" args="value">

+    	this.field.setEnabled(value);

+    </method>    

+    <attribute name="maxlength" value="null" type="number"/>         	

+	<attribute name="bgcolor" value="0xA3B2CC" type="color" />

+	<attribute name="text" type="string" value="" />

+		<!-- -->

+  <inputtext name="field" fontsize="10" text="${ this.parent.text }" x="1" y="1" bgcolor="0xFFFFFF" 

+  	multiline="$once{parent.multiline}" password="true" width="${ this.parent.width-2 }" height="${ this.parent.height-2 }" >

+      	<handler name="onblur">

+      		var t = this.getText();

+      		if (this.parent.checkIsNumber){

+      			if ( isNaN( Number(t) ) ){

+      				if (this.parent.checkIsDouble){

+      					t="0.00";

+      				} else {

+      					t="0";

+      				}

+      				this.setAttribute('text',t);

+      			}

+      		}

+            if (this.parent.sendchange) this.parent.parent.sendchange(this.parent,this.parent.tvalue,this.getText());

+      	</handler>   

+        <handler name="oninit">

+            this.setEnabled(this.parent.editable);

+        </handler>       	           

+	</inputtext>	   

+	 

+	<method name="getText">

+		return this.field.getText();

+	</method>

+	<method name="setText" args="txt">

+		this.setAttribute('text',txt);

+	</method> 		

+</class>

+

+</library>

diff --git a/WebContent/swf10/base/components/text/labelText.lzx b/WebContent/swf10/base/components/text/labelText.lzx
new file mode 100644
index 0000000..c5f961c
--- /dev/null
+++ b/WebContent/swf10/base/components/text/labelText.lzx
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<class name="labelText" extends="text" resize="true" fontsize="11" >

+

+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />

+	<method name="setLabelId" args="_labelid" >

+		this.labelid = _labelid;

+		this.setAttribute('text',canvas.getLabelName(this.labelid));

+	</method>

+	

+</class>

+

+

+<class name="labelTextWidthTooltip" extends="text" resize="true" 

+	   onmouseover="" onmouseout=""

+	   fontsize="11" >

+	

+	<attribute name="labelLabelid" type="number" value="-1" />

+

+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />

+	<method name="setLabelId" args="_labelid" >

+		this.labelid = _labelid;

+		this.setAttribute('text',canvas.getLabelName(this.labelid));

+	</method>

+	

+	<labelTooltip name="_labelTooltip" labelid="$once{ parent.labelLabelid }" />

+	

+</class>

+

+<class name="labeldTextListItem" extends="textlistitem">

+	<attribute name="labelid" type="number" setter="setLabelId(labelid)" />

+    <method name="setLabelId" args="_labelid" >

+        this.labelid = _labelid;

+        this.setAttribute('text',canvas.getLabelName(this.labelid));

+    </method>

+    <labelTooltip initByDataPathparent="true" />

+</class>

+

+</library>

diff --git a/WebContent/swf10/base/components/text/labelTooltip.lzx b/WebContent/swf10/base/components/text/labelTooltip.lzx
new file mode 100644
index 0000000..442eb3c
--- /dev/null
+++ b/WebContent/swf10/base/components/text/labelTooltip.lzx
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<class name="labelTooltip" extends="view" visible="false" >

+

+	<attribute name="inittwice" value="false" type="boolean" />

+    <attribute name="multiline" value="false" type="boolean" />

+    <attribute name="ismenubuttonlabel" value="false" type="boolean" />

+    <attribute name="initByDataPathparent" value="false" type="boolean" />

+    

+    <attribute name="holder" value="null" />

+    

+    <event name="setContent" />

+        

+    <handler name="onmouseover" reference="this.parent">

+    	<![CDATA[

+            this.doonmouseover();

+        ]]>        

+    </handler>

+    <handler name="onmouseout" reference="this.parent">

+        this.cleanHolder();

+    </handler>

+    

+    <method name="doonmouseover">

+    	<![CDATA[

+            this.setContent.sendEvent();

+	    	if (this.ismenubuttonlabel){

+	    		this.parent.setLabel();

+	    	}

+	    	if (this.inittwice){

+	    		this.setAttribute('text',canvas.getLabelName(this.labelid));

+	    	}

+	    	if (this.initByDataPathparent){

+                this.setAttribute('text',parent.text);

+            }

+	        var xVal = canvas.getMouse('x');

+	        var yVal = canvas.getMouse('y');

+			////Debug.write("mytext: ",this.mytext);

+			if (this.multiline && this.text.length!=0){

+				this.holder = new lz.xmlCrmTooltipMulti(canvas,{text:this.text,holder:this});

+			} else if (this.text.length!=0){

+				this.holder = new lz.xmlCrmTooltip(canvas,{text:this.text,holder:this});

+			}

+	        if (xVal<canvas.width/2){

+	            xVal += 0;

+	        } else {

+	            xVal -= this.holder.width-14;

+	        }

+	        if (yVal<canvas.height/2){

+	            yVal += 24;

+	        } else {

+	            yVal -= 24;

+	        }

+	        this.holder.setAttribute('x',xVal);

+	        this.holder.setAttribute('y',yVal);

+	        canvas.registerToolTip(this);

+        ]]>        

+    </method>

+    

+    <handler name="onmouseup" reference="this.parent">

+        this.cleanHolder();

+    </handler>

+    <handler name="onclick" reference="this.parent">

+        this.cleanHolder();

+    </handler>  

+    

+    <method name="cleanHolder">

+        if (this.holder!=null) {

+            this.holder.destroy();

+            this.holder = null; 

+            canvas.clearToolTip();

+        }

+    </method> 

+      

+    <attribute name="labelid" type="number" setter="setLabelId(labelid)" />

+    <method name="setLabelId" args="_labelid" >

+        this.labelid = _labelid;

+        this.setAttribute('text',canvas.getLabelName(this.labelid));

+    </method>

+    <attribute name="text" value="" type="string" />

+</class>

+

+<class name="xmlCrmTooltip" extends="view" bgcolor="0x000000"

+    width="${ this._text.width+2 }" height="${ this._text.height+2 }" >

+    <switch>

+	  <when property="$as3">

+		<passthrough>

+		  import flash.filters.DropShadowFilter;

+		</passthrough>

+	  </when>

+	</switch>

+    <attribute name="text" value="" type="string" />

+    <attribute name="holder" value="null" />

+    <text x="1" y="1" text="${ parent.text }" resize="true" 

+        fontsize="10" name="_text" bgcolor="0xFFFFFF" />

+    <handler name="onmouseout">

+        this.destroy();

+    </handler>

+    <handler name="oninit">

+        this.setShadow();

+    </handler>

+    <method name="setShadow" >

+        <![CDATA[

+        if (this.isinited){

+            this.normalMC = this.getDisplayObject();

+           	this.displacementMap = new DropShadowFilter();

+            this.normalMC.filters = [this.displacementMap];

+        }

+        ]]>              

+    </method> 

+</class>

+

+<class name="xmlCrmTooltipMulti" extends="view" bgcolor="0x000000" 

+    width="${ this._text.width+2 }" height="${ this._text.height+2 }" >

+    <switch>

+	  <when property="$as3">

+		<passthrough>

+		  import flash.filters.DropShadowFilter;

+		</passthrough>

+	  </when>

+	</switch>

+    <attribute name="text" value="" type="string" />

+    <attribute name="holder" value="null" />

+    <text x="1" y="1" text="${ parent.text }" resize="true" 

+        fontsize="10" name="_text" bgcolor="0xFFFFFF" multiline="true" />

+    <handler name="oninit">

+        this.setShadow();

+    </handler>

+    <method name="setShadow" >

+        <![CDATA[

+        if (this.isinited){

+            this.normalMC = this.getDisplayObject();

+           	this.displacementMap = new DropShadowFilter();

+            this.normalMC.filters = [this.displacementMap];

+        }

+        ]]>              

+    </method>	    

+    <handler name="onmouseout">

+        this.destroy();

+    </handler>

+</class>

+

+</library>

diff --git a/WebContent/swf10/base/components/text/library.lzx b/WebContent/swf10/base/components/text/library.lzx
new file mode 100644
index 0000000..962a736
--- /dev/null
+++ b/WebContent/swf10/base/components/text/library.lzx
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+	

+	<include href="borderedInputtext.lzx" />

+	<include href="labelText.lzx" />

+	<include href="labelTooltip.lzx" />

+	

+

+</library>

diff --git a/WebContent/swf10/base/functions.lzx b/WebContent/swf10/base/functions.lzx
new file mode 100644
index 0000000..14dffd5
--- /dev/null
+++ b/WebContent/swf10/base/functions.lzx
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+
+<!-- 
+
+NOTICE:
+All contents regarding "chat" are moved to /modules/chat/globalMethods.lzx
+Issue353. 2008.3.28 H.kuze(minamotonoason)
+
+-->
+
+
+<script>
+<![CDATA[
+
+// Load Labels from List
+var labels = new Object();
+
+String.prototype.startsWith = function(prefix) {
+    return (this.indexOf(prefix) === 0);
+};	
+
+function setLabelObjectByHundred(no, obj){
+   	for (var i = 0; i < obj.length; ++i) {
+	    labels["id" + obj[i].id] = obj[i].value;
+   	}
+}
+
+function getLabelTag(labelid){
+	var l = labels["id" + labelid];
+	if (l != undefined) {
+		if ($debug) l += " [" + labelid + "]";
+	} else {
+		l = "Error Missing [" + labelid + "]";
+	}
+    return l;
+}
+
+]]>
+</script>
+		
+</library>
diff --git a/WebContent/swf10/base/hibernate/hibRtmpConnection.lzx b/WebContent/swf10/base/hibernate/hibRtmpConnection.lzx
new file mode 100644
index 0000000..307cffd
--- /dev/null
+++ b/WebContent/swf10/base/hibernate/hibRtmpConnection.lzx
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+    

+<dataset name="myresultnavi" />

+

+<dataset name="languagesSet" />        

+

+<class name="userStatus" extends="view" width="250" height="30">

+    <attribute name="statusText" type="string" />

+    <attribute name="statusColor" type="number" value="0" />

+

+    <text name="status" width="240" height="20" x="5" y="5" fontstyle="bold" fgcolor="0" text="defaulttext" fontsize="10"/>

+

+    <handler name="oninit">

+        this.status.setAttribute("text", this.statusText);

+        this.status.setAttribute("fgcolor", this.statusColor);

+        this.setAttribute("visibility", "visible");

+        lz.Timer.addTimer( new LzDelegate( this, "selfDestroy" ), 3000 );

+    </handler>

+

+    <method name="selfDestroy" args="ignore=null">

+        this.destroy();

+    </method>

+</class>

+

+<class name="hibRtmpConnection" extends="rtmpConnection" debug="false" src="" >

+

+     <!--

+        The onconnect Method is triggered several times:

+             - When you enter a room the NetConnection will close and reconnect to the Scope of the Room

+             - When you leave the room again it will be re-connected to the default scope again

+      -->

+     <handler name="onconnect">

+		if($debug) Debug.info("hibRtmpConnection/onconnect send to LocalConnection ");

+		canvas.videoComp_lc.send(canvas.videoComp_lc_name, 'as3ConnectionSuccess');

+		

+		//reset rights

+        canvas.isAllowedToGiveExclusiveAudio = false;

+        // this.overwritePublicSID.doCall();

+        //this.setUsernameReconnect.doCall();

+    </handler>

+

+    <netRemoteCallHib name="overwritePublicSID" funcname="overwritePublicSID" >

+    	<netparam><method name="getValue"> return canvas.publicSID;</method></netparam>

+        <handler name="ondata" args="value">

+            //The onResult-Handler will be called be the rtmpconnection

+            if ($debug) Debug.write("overwritePublicSID: ",value);

+        </handler>

+    </netRemoteCallHib>

+

+    <handler name="onerror" args="value">

+        if ($debug) Debug.write("Connection error ",value);

+        // this.connect();

+    </handler>

+    

+</class>

+

+<hibRtmpConnection name="thishib" id="hib" />

+

+</library>

diff --git a/WebContent/swf10/base/hibernate/library.lzx b/WebContent/swf10/base/hibernate/library.lzx
new file mode 100644
index 0000000..78d99f9
--- /dev/null
+++ b/WebContent/swf10/base/hibernate/library.lzx
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+	<include href="netRemoteCallHib.lzx" />

+	<include href="hibRtmpConnection.lzx" />

+

+</library>

diff --git a/WebContent/swf10/base/hibernate/netRemoteCallHib.lzx b/WebContent/swf10/base/hibernate/netRemoteCallHib.lzx
new file mode 100644
index 0000000..bf28b46
--- /dev/null
+++ b/WebContent/swf10/base/hibernate/netRemoteCallHib.lzx
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<class name="netRemoteCallHib" extends="netremotecall">

+

+	<!-- this should be the contentSaveWindow -->

+	<attribute name="returnObj" value="null" />

+	 

+	<!-- if true this object will register at the update-observer -->

+	<attribute name="registerObject" value="false" type="boolean" />

+	

+	<!-- show Error Messages with normal Box -->

+    <attribute name="activeErrorHandler" value="false" type="boolean" />	

+    

+	<!-- show Error Messages with normal Box -->

+    <attribute name="showLoading" value="true" type="boolean" />    

+	

+	<!-- show Error Messages with Callback Box -->

+	<attribute name="isCallBackHandler" value="false" type="boolean" />	

+	

+	<handler name="oninit">

+		if (this.registerObject) this.parent.addViewToObserver(this);

+	</handler>	

+	<method name="doCall">

+        //if (this.showLoading) canvas._loadingAll.setAttribute('visible',true);

+		//if($debug) Debug.write("netRemoteCallHib/doCall: [ " , this.funcname , " ]",this.parent);

+		this.callRPC(null);

+	</method>

+	

+	<event name="sendCallBack" />

+	

+	<!--

+

+	 -->

+	<handler name="ondata" args="value">

+		<![CDATA[

+			//Debug.write("ondata: ",this.funcname,value);

+			

+			//if (this.showLoading) canvas._loadingAll.setAttribute('visible',false);

+			

+			//Another Error Handler for the Form-Components

+			if (this.returnObj!=null && Number(value)>0) {

+				//Debug.write("this.returnObj.processNext");

+				this.returnObj.processNext();

+			} else if (this.returnObj!=null && Number(value)<0) {

+				this.returnObj.errorByCode(Number(value));

+			} else if (this.returnObj!=null && value==null) {

+				this.returnObj.errorByCode(-1);

+			}

+			

+            if (this.activeErrorHandler) {

+                if (Number(value)<0){

+                    if ($debug) Debug.warn("Received Error ID: ",value);					

+					if (this.isCallBackHandler) 

+					{

+					   //TODO: Fix error messages

+					   

+					} else {

+					   //TODO: Fix error messages

+					}

+                }

+            }			

+		]]>

+	</handler>	

+</class>

+

+</library>

diff --git a/WebContent/swf10/base/library.lzx b/WebContent/swf10/base/library.lzx
new file mode 100644
index 0000000..cde16f9
--- /dev/null
+++ b/WebContent/swf10/base/library.lzx
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+    <include href="functions.lzx" />

+    <include href="mainAttributes.lzx" />

+    <include href="mainDatasets.lzx" />

+    <include href="mainMethods.lzx" />

+    

+    <include href="remote/" />

+    <include href="components/" />

+    <include href="hibernate/" />

+	

+</library>

diff --git a/WebContent/swf10/base/mainAttributes.lzx b/WebContent/swf10/base/mainAttributes.lzx
new file mode 100644
index 0000000..837e01b
--- /dev/null
+++ b/WebContent/swf10/base/mainAttributes.lzx
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+

+<!-- all attributes for main.lzx -->

+

+<library>

+	

+	<!--- 

+	   Audio-Video Quality Settings

+		overwritten by values from the public/config.xml 

+	 -->

+	<attribute name="codecType" value="h264" type="string" />

+	<attribute name="framesPerSecond" value="30" type="number" />

+	<attribute name="bandwidthNeededNormal" value="16384" type="number" />

+	<attribute name="bandwidthNeededBest" value="32768" type="number" />

+	<attribute name="camQualityNormal" value="75" type="number" />

+	<attribute name="camQualityBest" value="75" type="number" />

+	<attribute name="microphoneRateBest" value="22" type="number" /> 

+	<attribute name="echoPath" value="128" type="number" /> 

+	<attribute name="echoSuppression" value="true" type="string" />

+		

+

+	<!--- 

+        Holds a reference to the current VideoCOntainer Object

+        containing the VideoViews

+        and some more references to temp-objects

+	 -->

+	<attribute name="_videocontainer" value="null" />

+

+	<attribute name="currentNC" value="null" />

+

+	<attribute name="currentRoomObject" value="null"/>

+

+	<attribute name="userobject" value="null"/>

+

+	<attribute name="webAppRootKey" value="" type="string" />

+	

+	<!--- 

+		URL/IP to use for the Server for HTTP and HTTPS traffic.

+	    If this value is empty it will use the rtmphostlocal 

+	    variable (and in that way try to connect to the 

+	    domain-name the OpenMeetings-Client has been loading from)

+	 -->

+	<attribute name="httphostlocal" value="" type="string" />

+	

+	<!--- 

+	    Port to use for the Server

+	    This port is used to connect to the HTTP-Servlet

+	    of the Red5-Servlet

+	 -->

+	<attribute name="red5httpport" value="5080" type="string" />

+

+	<attribute name="httpRootKey" value="/" type="string" />

+	

+	<attribute name="protocol" value="/" type="string" />

+	

+	<attribute name="proxyType" value="none" type="string" />

+

+	<!---

+		A reference to the current screenSharingDialogContainer or 

+		null if there is nothing to stream

+	 -->

+	<attribute name="screenSharingDialogContainer" value="null" />

+	

+	<!--

+	    this value indicates if this user is allowed to draw to the Whiteboard

+	    If this user is currently Moderator => he ALWAYS can draw to whiteboard

+	    even if this isAllowedToDraw == false

+	 -->

+	<attribute name="isAllowedToDraw" value="false" type="boolean" />

+	

+	<attribute name="isAllowedToScreenShare" value="false" type="boolean" />

+	

+	<attribute name="isAllowedToRemoteControl" value="false" type="boolean" />

+	

+	<attribute name="isAllowedToGiveExclusiveAudio" value="false" type="boolean" />

+	

+	<attribute name="ismoderator" value="false" type="boolean" />

+	

+	<attribute name="isInterview" value="false" type="boolean" />

+	

+	<!--

+	   Those values are fixed values of the video positions of the videos from the interview room type

+	 -->

+	<attribute name="interviewPod1_x" value="320" type="number" />

+	<attribute name="interviewPod1_y" value="28" type="number" />

+	

+	<attribute name="interviewPod2_x" value="644" type="number" />

+    <attribute name="interviewPod2_y" value="28" type="number" />

+    

+    <!-- 

+		Holds a reference to the current tooltip, if there is one

+	 -->

+	<attribute name="currentToolTip" value="null" />

+	

+	<!-- Attributes for wicket login (since it hard not to break anything)-->

+	<attribute name="wicketsid" type="string" />

+	<attribute name="wicketroomid" value="0" type="number" />

+	

+	

+	<method name="registerToolTip" args="viewInstance">

+		if (this.currentToolTip != null) {

+			this.currentToolTip.cleanHolder();

+		}

+		this.currentToolTip = viewInstance;

+	</method>

+	

+	<method name="clearToolTip">

+		if (this.currentToolTip != null) {

+			this.currentToolTip.cleanHolder();

+			this.currentToolTip = null;

+		}

+	</method>

+

+</library>

diff --git a/WebContent/swf10/base/mainDatasets.lzx b/WebContent/swf10/base/mainDatasets.lzx
new file mode 100644
index 0000000..a51a092
--- /dev/null
+++ b/WebContent/swf10/base/mainDatasets.lzx
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+

+<!-- all datasets for main.lzx -->

+

+<library>

+

+<!-- get values from public/config.xml -->

+<dataset type="http" name="myConfigSet" request="false" ondata="parent.mainTheme.loadTheme()" proxied="false">

+    <handler name="oninit">

+        var d = new Date();

+        this.setAttribute("src","config.xml?random="+d.getTime());

+        this.doRequest();

+    </handler>

+    <handler name="ondata">

+        if ($debug) Debug.write("ondata");

+    </handler>

+    <handler name="onerror" args="e">

+        if ($debug) Debug.write("onerror",e);

+    </handler>

+    <handler name="ontimeout" args="e">

+        if ($debug) Debug.write("ontimeout",e);

+    </handler>

+</dataset>

+

+<method name="reloadConfig">

+	

+</method>

+

+<!-- get values from public/config.xml -->

+<dataset type="http" name="mainTheme" request="false" ondata="canvas.myinit()" proxied="false">

+    <method name="loadTheme">

+        var d = new Date();

+        this.setAttribute("src","theme.xml?random="+d.getTime());

+        this.doRequest();

+    </method>

+    <handler name="ondata">

+        if ($debug) Debug.write("ondata");

+    </handler>

+    <handler name="onerror" args="e">

+        if ($debug) Debug.write("onerror",e);

+    </handler>

+    <handler name="ontimeout" args="e">

+        if ($debug) Debug.write("ontimeout",e);

+    </handler>

+</dataset>

+

+</library>

diff --git a/WebContent/swf10/base/mainMethods.lzx b/WebContent/swf10/base/mainMethods.lzx
new file mode 100644
index 0000000..8e20f88
--- /dev/null
+++ b/WebContent/swf10/base/mainMethods.lzx
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+

+<!-- methods for main.lzx -->

+

+<library>

+    

+    <method name="onError" args="errorEvent">

+		canvas.videoComp_lc.send(canvas.videoComp_lc_name, 'remoteLogWrite', "error " + errorEvent);

+	</method>

+    

+    <method name="myinit">

+        <![CDATA[

+        // Add listener to all uncaught flash errors

+        this.getDisplayObject().loaderInfo.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, onError);

+        

+        canvas.mediaerrortimeout = 30000;

+        canvas.medialoadtimeout = 30000;

+        

+        if($debug) Debug.write("main.lzx/config.xml ondata",this);

+        

+        //Audio-Video-Settings

+        this.setAttribute('loudnessAcitviation',canvas.myConfigSet.getPointer().xpathQuery('config/loudnessAcitviation/text()'));

+        this.setAttribute('codecType',canvas.myConfigSet.getPointer().xpathQuery('config/codecType/text()'));

+        this.setAttribute('framesPerSecond',Number(canvas.myConfigSet.getPointer().xpathQuery('config/framesPerSecond/text()')));  

+        this.setAttribute('bandwidthNeededNormal',Number(canvas.myConfigSet.getPointer().xpathQuery('config/bandwidthNeededNormal/text()')));  

+        this.setAttribute('bandwidthNeededBest',Number(canvas.myConfigSet.getPointer().xpathQuery('config/bandwidthNeededBest/text()')));  

+        this.setAttribute('camQualityNormal',Number(canvas.myConfigSet.getPointer().xpathQuery('config/camQualityNormal/text()')));  

+        this.setAttribute('camQualityBest',Number(canvas.myConfigSet.getPointer().xpathQuery('config/camQualityBest/text()')));  

+        this.setAttribute('microphoneRateBest',Number(canvas.myConfigSet.getPointer().xpathQuery('config/microphoneRateBest/text()')));  

+        this.setAttribute('echoPath',Number(canvas.myConfigSet.getPointer().xpathQuery('config/echoPath/text()')));

+        this.setAttribute('echoSuppression',canvas.myConfigSet.getPointer().xpathQuery('config/echoSuppression/text()'));

+        

+        //httphostlocal variable is loaded from the SWF8 application, cause it needs value, SWF10 app

+        //knows nothing about the rtmphostlocal, and we don't want to parse the URL from the browser

+        //in both applications to find out where the user loaded the SWF from and extract the domain/ip 

+        //from it

+        

+        this.setAttribute('httpRootKey',canvas.myConfigSet.getPointer().xpathQuery('config/httpRootKey/text()'));

+        this.setAttribute('protocol',canvas.myConfigSet.getPointer().xpathQuery('config/protocol/text()')); 

+        this.setAttribute('proxyType',canvas.myConfigSet.getPointer().xpathQuery('config/proxyType/text()'));  

+

+        var _url = this.getDisplayObject().loaderInfo.url;

+        if($debug) Debug.write("_url: ",_url);

+        

+        ]]>

+    </method>

+    

+    <method name="getLabelName" args="id">

+    	// return "label "+id;

+        //if($debug) Debug.write("main.lzx/getLabelName()",id);

+        return getLabelTag(id);

+    </method>

+    

+    <method name="getThemeImage" args="tName">

+		if ($debug) Debug.write("load Image by Name SWF10: ",tName);

+		var tPath = canvas.mainTheme.getPointer().xpathQuery("theme/resource[@name='"+tName+"']/@src");

+		if ($debug) Debug.write("tPath SWF10 "+tPath);

+		return tPath;

+	</method>

+	

+	<method name="getThemeColor" args="tColor">

+		if ($debug) Debug.write("load Color by Name SWF10: ",tColor);

+		var tColor = canvas.mainTheme.getPointer().xpathQuery("theme/color[@name='"+tColor+"']/@value");

+		if ($debug) Debug.write("tColor SWF10 "+tColor);

+		return tColor;

+	</method>

+	

+	<!-- 

+		httphostlocal is synced from the SWF8 application, it will always point to the master

+	 -->

+	<method name="getHttpHost">

+		return canvas.httphostlocal;

+    </method>

+	

+	<method name="getUrl">

+		<![CDATA[

+			return canvas.protocol + '://' + getHttpHost()

+				+ ':' + canvas.red5httpport + canvas.httpRootKey;

+		]]>

+	</method>

+    

+	<method name="getPictureUrl" args="pictureuri,extraParams">

+	<![CDATA[

+		var pUri = (pictureuri == null || pictureuri.length == 0) ? "d.jpg" : pictureuri;

+		var downloadurl = pUri;

+		if (!pUri.startsWith("http://") && !pUri.startsWith("https://")) {

+			pUri = "_profile_" + pUri;

+			

+			downloadurl = canvas.getUrl() + 'DownloadHandler?fileName=' + pUri

+				+ '&room_id=&r=' + (new Date()).getTime()

+				+ extraParams + '&sid='+canvas.sessionId;

+		}

+		if($debug) Debug.write("getPictureUrl/downloadurl ", downloadurl);

+		return downloadurl;

+	]]>

+	</method>

+		

+</library>

diff --git a/WebContent/swf10/base/remote/baseVideoStream.lzx b/WebContent/swf10/base/remote/baseVideoStream.lzx
new file mode 100644
index 0000000..1b62f05
--- /dev/null
+++ b/WebContent/swf10/base/remote/baseVideoStream.lzx
@@ -0,0 +1,380 @@
+<library>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+

+<!---

+	extends the Video-View with Streaming functions

+ -->

+

+<class name="baseVideoStream" extends="baseVideoView">

+

+    <switch>

+    <when property="$as3">

+        <passthrough>

+        	import flash.events.*;

+            import flash.net.*;

+            import flash.media.*

+        </passthrough>

+    </when>

+    </switch>

+    

+    <attribute name="yDebug" value="-20" type="number" />

+    

+    <method name="getYDebug">

+    	this.yDebug += 20;

+    	return this.yDebug;

+    </method>

+

+	<!--- the NetStream Object

+              @keywords final -->

+	<attribute name="_ns" value="null" />

+

+	<!--- This value does indicate if this stream play or broadcasts

+              @keywords readonly -->

+	<attribute name="mode" value="play" type="string" />

+

+	<!--- This is the current buffer used, in Live Streaming this MUST be 0

+              @keywords readonly -->

+	<attribute name="bufferTime" value="0" type="number" />

+

+	<!--- This is a reference to the current microphone, only set if broadcasting

+              @keywords readonly -->

+	<attribute name="micro" value="null" />

+

+	<!--- This is a reference to the current camara, only set if broadcasting

+              @keywords readonly -->

+	<attribute name="camera" value="null" />

+

+	<!--- Reference To the Sound Object

+		@keywords final -->

+	<attribute name="soundRef" value="null" />

+	<!--- Reference To the Sound MovieClip

+		@keywords final -->

+	<attribute name="soundRefMC" value="null" />

+

+    <!--- Default mic gain -->

+    <attribute name="micGain" value="50" type="number"/>

+    

+    <attribute name="micMuted" value="false" />

+

+	<event name="onMetaDataEvent" />

+	<event name="onPlayStatusEvent" />

+	<event name="onCuePointEvent" />

+	<event name="onAsyncError" />

+	<event name="onNetStatus" />

+	<event name="onIoError" />

+

+	<!-- save value for restart -->

+        <attribute name="streamName" />

+        <attribute name="delay" />

+	<!--- @keywords private -->

+	<method name="createStream">

+		var tStream = this._findnc();

+        if (!tStream.connected) {

+        	if ($debug) Debug.warn("NetConnection is not connected");

+        }

+		this._ns = new NetStream(tStream);

+		//see: http://livedocs.adobe.com/flash/9.0_de/ActionScriptLangRefV3/flash/net/NetStream.html

+        //according to the docs the construct to catch event has to be implemented like this.

+        var t = this;

+		var clientObject = new Object();

+		clientObject.onMetaData = function(metadata:Object):void {

+			t.onMetaData(metadata);

+		};

+		clientObject.onPlayStatus = function(metadata:Object):void {

+			t.onPlayStatus(metadata);

+		};

+		clientObject.onCuePoint = function(metadata:Object):void {

+			t.onCuePoint(metadata);

+		};

+		clientObject.ioError = function(error:Object):void {

+			t.ioError(error);

+		};

+		clientObject.netStatus = function(status:Object):void {

+			t.netStatus(status);

+		};

+		clientObject.asyncError = function(error:Object):void {

+			t.asyncError(error);

+		};

+		this._ns.client = clientObject;

+		//this is a workaround, attaching the event to the client object does not work

+		this._ns.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus2);

+	</method>

+	

+	<method name="onNetStatus2" args="evt">

+		if($debug) Debug.write("netStream_onNetStatus: " , evt.info.code, evt.target);

+		this.onNetStatus.sendEvent(evt.info);

+	</method>

+	

+	<method name="asyncError" args="error">

+		if($debug) Debug.write("simpleNetStream asyncError",error);

+		this.onAsyncError.sendEvent(error);

+	</method>

+	

+	<method name="netStatus" args="status">

+		if($debug) Debug.write("simpleNetStream netStatus",status);

+		this.onNetStatus.sendEvent(status);

+	</method>

+	

+	<method name="ioError" args="error">

+		if($debug) Debug.write("simpleNetStream ioError",error);

+		this.onIoError.sendEvent(error);

+	</method>

+

+    <method name="onCuePoint" args="info"><![CDATA[

+        if($debug) Debug.write("simpleNetStream onCuePoint",info);

+        this.onCuePointEvent.sendEvent(info);

+    ]]></method>

+

+    <method name="onPlayStatus" args="info"><![CDATA[

+        if($debug) Debug.write("simpleNetStream onPlayStatus",info);

+        this.onPlayStatusEvent.sendEvent(info);

+    ]]></method>

+

+    <method name="onMetaData" args="info"><![CDATA[

+        if($debug) Debug.write("simpleNetStream onMetaData",info);

+        this.onMetaDataEvent.sendEvent(info);

+    ]]></method>

+

+    <!--- Find the Flash NetConnection object.

+          @keywords private -->

+    <method name="_findnc">

+    	if (canvas.currentNC == null) {

+    		if ($debug) Debug.warn("canvas.currentNC is NULL, maybe connection did fail?");

+    	}

+        return canvas.currentNC;

+    </method>

+

+	<!---

+		Plays a Video Stream, makes a new Instance of a NetStream, if previous NetStream

+		is still open it will first close that, used to subscribe to a live-stream

+		@param string streamName the streamname to play

+		@param number delay The time it should seek, for Live-Streams this value should be -1

+	 -->

+	<method name="playStream" args="streamName,delay">

+		<![CDATA[

+			this.streamName=streamName;

+			this.delay=delay;

+			if (this._ns!=null){

+				this._stop();

+			}

+			this.mode = "play";

+			this.createStream();

+			//invokes Method in baseVideoView which shows the stream

+			this.attachVideo(this._ns);

+			//FIXME: Commented out, cause this leads to Buffer-Full/Buffer-Empty Events

+			//after re-syncing the stream

+			//this.setBuffer(0.1);

+			if (delay == 0) {

+			    this._ns.play(streamName);

+			} else {

+			    this._ns.play(streamName,delay);

+			}

+		]]>

+	</method>

+

+	<method name="justPlayStream" args="streamName,delay">

+        <![CDATA[

+            this.streamName=streamName;

+            this.delay=delay;

+            if (this._ns!=null){

+            	if ($debug) Debug.write("STOP NS is NOT null ")

+                this._stop();

+            }

+            this.mode = "play";

+            this.createStream();

+            //invokes Method in baseVideoView which shows the stream

+            this.attachVideo(this._ns);

+            //FIXME: Commented out, cause this leads to Buffer-Full/Buffer-Empty Events

+            //after re-syncing the stream

+

+            this.setBuffer(6);

+

+            if ($debug) Debug.write("Play Stream "+streamName);

+

+            this._ns.play(streamName,delay);

+        ]]>

+    </method>

+

+	<method name="prepare" args="mode,streamName,camReference,micReference">

+		if (this._ns != null){

+			this._stop();

+		}

+		this.mode = mode;

+		this.createStream();

+		

+		if (camReference != null) {

+			this.setAttribute('camera', camReference);

+			this._ns.attachCamera(camReference);

+			//invokes Method in baseVideoView which shows the cam

+			this.attachCamera(camReference);

+			

+			var videoStreamSettings = null;

+			if ($debug) Debug.write("codecType=" + canvas.codecType);

+			if (canvas.codecType === "h264") {

+				videoStreamSettings = new H264VideoStreamSettings();

+				videoStreamSettings.setProfileLevel(H264Profile.BASELINE, H264Level.LEVEL_5_1);

+			} else {

+				videoStreamSettings = new VideoStreamSettings();

+			}

+			videoStreamSettings.setQuality(camReference.bandwidth, camReference.quality);

+			videoStreamSettings.setKeyFrameInterval(camReference.keyFrameInterval);

+			videoStreamSettings.setMode(camReference.width, camReference.height, camReference.fps);

+			this._ns.videoStreamSettings = videoStreamSettings;

+		}

+		if (micReference != null) {

+			this.setAttribute('micro', micReference);

+			this._ns.attachAudio(micReference);

+			muteMicro(this.micMuted);

+		}

+		

+		this._ns.publish(streamName, (mode == "broadcast") ? "live" : mode);

+	</method>

+	<!---

+		BroadCasts a Stream

+		@param string streamName the streamname to broadcast

+		@param camera camReference a reference to the Camera-Object to stream

+		@param micropone micReference a reference to the Micropohne Object to stream

+	 -->

+	<method name="broadcast" args="streamName,camReference,micReference">

+		prepare("broadcast", streamName, camReference, micReference);

+	</method>

+

+	<method name="record" args="streamName,camReference,micReference">

+		prepare("record", streamName, camReference, micReference);

+    </method>

+    

+	<!---

+		Stops playing or broadcasting a Stream and clears the Video-Object

+	 -->

+	<method name="_stop">

+		if ($debug) Debug.write("STOP: ",this.mode,this._ns);

+		//Stop NetStream

+		if (this._ns==null) return;

+		this.camera = null;

+		this.micro = null;

+		if (this.mode == "play") {

+            this.soundRefMC = null;

+			this.soundRef = null;

+			this._ns.pause();

+			this._ns.close();

+			//remove NetStream from Video-Object

+			this.clear();

+			this._ns = null;

+		} else if (this.mode == "broadcast") {

+            this._ns.publish(false);

+            //remove NetStream from Video-Object

+            this.clear();

+            this._ns.close();

+            this._ns = null;

+        } else if (this.mode == "record") {

+            this._ns.publish(false);

+            //remove NetStream from Video-Object

+            this.clear();

+            this._ns.close();

+            this._ns = null;

+        } else {

+            this.clear();

+            this._ns.close();

+            this._ns = null;

+			if ($debug) Debug.warn("Not known Mode: ",this.mode,this);

+		}

+	</method>

+

+	<method name="restart">

+	     this._stop();

+	     this.playStream(this.streamName ,this.delay);

+	</method>

+	

+	<method name="setBuffer" args="time">

+	    if ($debug) Debug.warn("setBuffer has no 1:1 equivalent in AS3 ");

+	    return;

+		if(this._ns!=null){

+			this.bufferTime = time;

+			this._ns.setBufferTime(time);

+		} else {

+			if ($debug) Debug.warn("setBuffer but no NetStream initialized",this);

+		}

+	</method>

+

+	<!--- sets the Volume of the VideoStream

+		@param number volume Number between 0 and 100

+	 -->

+	<method name="setSoundVolume" args="volume">

+		//if ($debug) Debug.write(":: setSoundVolume ", parent.parent.publicSID);

+		//this.soundRef.setVolume(volume);

+		if (this._ns!=null){

+			this._ns.soundTransform = new SoundTransform(volume/100.0);

+		}

+	</method>

+

+	<method name="muteMicro" args="mute">

+		if ($debug) Debug.write(":: muteMicro ", mute, parent.parent.publicSID);

+		this.micMuted = mute;

+		if(this.micro != null) {

+			if(mute) {

+				if (this.micro.gain == 0) {

+					return;

+				}

+				if ($debug) Debug.write("Make Gain mute again from ",this.micro.gain);

+				this.setAttribute('micGain', this.micro.gain);

+				this.micro.gain = 0;

+			} else {

+				if ($debug) Debug.write("Make Gain loud again to ",this.micGain);

+				this.micro.gain = this.micGain;

+			}

+		}

+	</method>

+    

+    <!---

+        pause or resumes the NetStream

+        @args pauseStatus true pause, false resume

+     -->

+    <method name="pause" args="pauseStatus">

+    	if ($debug) Debug.write("do Pause",pauseStatus);

+    	if (this._ns==null){

+    		if ($debug) Debug.warn("No NetStream");

+    		return;

+    	}

+    	if (pauseStatus) {

+    		this._ns.pause();

+    	} else {

+    		this._ns.resume();

+    	}

+    </method>

+    

+    <!---

+        Seek the stream to a flvTime

+        this might only work if there are keyframes in the FLV, normally it should 

+        try to use the nearest keyframe available for the specified time.

+     -->

+    <method name="seekStream" args="flvTime">

+    	if ($debug) Debug.write("do seek",flvTime);

+        if (this._ns==null){

+            if ($debug) Debug.warn("No NetStream");

+            return;

+        }

+        this._ns.seek(flvTime);

+    </method>

+

+</class>

+

+

+</library>

diff --git a/WebContent/swf10/base/remote/baseVideoStreamDevice.lzx b/WebContent/swf10/base/remote/baseVideoStreamDevice.lzx
new file mode 100644
index 0000000..b0a939b
--- /dev/null
+++ b/WebContent/swf10/base/remote/baseVideoStreamDevice.lzx
@@ -0,0 +1,171 @@
+<library>

+	<!-- Licensed to the Apache Software Foundation (ASF) under one or more 

+		contributor license agreements. See the NOTICE file distributed with this 

+		work for additional information regarding copyright ownership. The ASF licenses 

+		this file to you under the Apache License, Version 2.0 (the "License"); you 

+		may not use this file except in compliance with the License. You may obtain 

+		a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless 

+		required by applicable law or agreed to in writing, software distributed 

+		under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES 

+		OR CONDITIONS OF ANY KIND, either express or implied. See the License for 

+		the specific language governing permissions and limitations under the License. -->

+

+	<!--- extends the baseVideoStream with functions to catch Device Events 

+		this Class uses Events from the Base Class baseVideoStream onmicro and oncamera, 

+		which are thrown, once a device was set -->

+

+	<class name="baseVideoStreamDevice" extends="baseVideoStream">

+

+		<switch>

+			<when property="$as3">

+				<passthrough>

+					import flash.events.StatusEvent;

+					import flash.events.ActivityEvent;

+				</passthrough>

+			</when>

+		</switch>

+

+		<!--- Shows if there is Activity on the Microphone -->

+		<attribute name="micactive" value="false" type="boolean" />

+

+		<!--- Level delegate, used to track level changes.

+			@keywords private -->

+		<attribute name="_leveldel"

+			value="$once{new LzDelegate(this, '_updateLevel')}" />

+

+		<!--- Audio level, 0-100, the amount of sound detected by this microphone. 

+			Reset to 0 when there is no audio (no activity or not allowed).

+			@keywords readonly -->

+		<attribute name="level" type="number" value="0" />

+

+		<!--- Shows if there is Activity on the Camera -->

+		<attribute name="camactive" value="false" type="boolean" />

+

+		<!--- Message to send to Clients -->

+		<attribute name="objMessage" value="null" />

+		<!--- indicates if the message should be send, you can change the notification 

+			level by changing the loudnessAcitviation in the public/config.xml -->

+		<attribute name="isgreater" value="false" type="boolean" />

+

+		<attribute name="doSendNotification" value="true" type="boolean" />

+

+		<!--- If true the component will send an event via LocalConnection when 

+			sound is louder or less 5% -->

+		<attribute name="sendNotificationViaLocalConnection" value="true"

+			type="boolean" />

+

+		<event name="sendCameraStatus" />

+

+		<event name="sendMicroStatus" />

+

+		<handler name="oncamera" args="c">

+			//if ($debug) Debug.write("Cam: ",c);

+			c.addEventListener(ActivityEvent.ACTIVITY, onActivity);

+			c.addEventListener(StatusEvent.STATUS, onStatus);

+		</handler>

+

+		<method name="onStatus" args="stats">

+			if ($debug) Debug.write("CamStatus: ",stats);

+			this.sendCameraStatus.sendEvent(stats.code);

+		</method>

+

+		<method name="onActivity" args="event">

+			this.setAttribute("camactive", event.activating);

+		</method>

+

+		<handler name="onmicro" args="m">

+			//if ($debug) Debug.write("onmicro: ",m);

+			var t = this;

+			//send mic active to true to start the onActivity callback Idle job

+			this.setAttribute("micactive", true);

+			m.addEventListener(ActivityEvent.ACTIVITY, onMicActivity);

+			m.addEventListener(StatusEvent.STATUS, onMicStatus);

+		</handler>

+

+		<method name="onMicStatus" args="stats">

+			if ($debug) Debug.write("onMicStatus 1: ",stats);

+			this.sendMicroStatus.sendEvent(stats.code);

+		</method>

+

+		<method name="onMicActivity" args="event">

+			if ($debug) Debug.write("onMicActivity: ",event);

+		</method>

+

+		<!--- Handler for the Flash Microphone onActivity callback.

+			@keywords private -->

+		<handler name="onmicactive">

+		<![CDATA[

+			if (this.onlevel) {

+				if (this.micactive) {

+					this._leveldel.register(lz.Idle, "onidle");

+				} else {

+					this._leveldel.unregisterAll();

+					this.setAttribute("level", 0);

+				}

+			}

+		]]>

+		</handler>

+

+		<!--- Handler for updating the microphone activity level attribute.

+			@keywords private -->

+		<method name="_updateLevel" args="arg">

+		<![CDATA[

+			if (this.micro == null) {

+				return;

+			}

+			var level = this.micro.activityLevel;

+			if (level < 0) {

+				level = 0;

+			}

+

+			if (level != this.level) {

+				this.setAttribute("level", level);

+			}

+		]]>

+		</method>

+

+		<!-- these methods send a Notification to all Connected users of a Room 

+			about the onActivity-Change -->

+		<handler name="onlevel" args="level">

+		<![CDATA[

+			//if ($debug) Debug.write("onlevel ",this.level,level);

+			

+			if (!this.doSendNotification) {

+				return;

+			}

+			

+			//greater 5 means the green dot starts to blink if the loudness is greater then 5%

+			//it makes no sense to set this to zero as there will be 1000 of events send

+			//per minute to change the status just of this icon, swagner 12.02.2012

+			var tVal = (level > 8);

+			

+			if (this.isgreater != tVal) {

+				//if ($debug) Debug.write("Level sendNotification ",this.isgreater,tVal,level);

+				this.isgreater = tVal;

+				this.sendNotification();

+			}

+		]]>

+		</handler>

+

+		<method name="sendNotification">

+			//if ($debug) Debug.write("Level sendNotification ",this.isgreater);

+			if (!this.sendNotificationViaLocalConnection) {

+				return;

+			}

+			if (parent.parent._loudness != null) {

+				parent.parent._loudness.setSpeaking(this.isgreater);

+			}

+			this.objMessage = new Array ();

+			this.objMessage[0] = 'audioActivity';

+			this.objMessage[1] = this.isgreater;

+			this.objMessage[2] = parent.parent.publicSID;

+			//if ($debug) Debug.write("Level sendNotification ",this.objMessage);

+			this.sendMessage.doCall();

+		</method>

+

+		<netRemoteCallHib name="sendMessage" funcname="sendMessage"

+			remotecontext="$once{ canvas.thishib }" showLoading="false">

+			<netparam><method name="getValue"> return parent.parent.objMessage; </method></netparam>

+		</netRemoteCallHib>

+	</class>

+</library>

diff --git a/WebContent/swf10/base/remote/baseVideoView.lzx b/WebContent/swf10/base/remote/baseVideoView.lzx
new file mode 100644
index 0000000..097a53a
--- /dev/null
+++ b/WebContent/swf10/base/remote/baseVideoView.lzx
@@ -0,0 +1,102 @@
+<library>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+

+

+<!---

+	This class provides the basic functions for the video-output

+

+	    @START_CODE

+            <baseVideoView x="20" y="20" width="320" height="240" bgcolor="black" />

+        @END_CODE

+ -->

+

+<class name="baseVideoView" width="${parent.width}" height="${parent.height}">

+

+    <passthrough when="$as3">

+        import flash.media.*;

+        import flash.net.NetConnection;

+        import flash.net.NetStream;

+    </passthrough>

+

+    <attribute name="_sound" value="null"/>

+    <attribute name="__LZvideo" value="null"/>

+

+	<method name="init"><![CDATA[

+        super.init();

+        var mc = new Video(this.width, this.height);

+        this.sprite.addChild(mc);

+        this.__LZvideo = mc;

+        this.applySizeToVid();

+    ]]></method>

+

+	<method name="applySizeToVid">

+		var vid = this._getflashvideo();

+        if(vid != null) {

+            vid.width = this.width;

+            vid.height = this.height;

+        } else {

+            if ($debug) Debug.warn("applySizeToVid IS NULL ",this.width,this.height);

+        }

+	</method>

+

+    <handler name="onwidth" args="w">

+    	//if ($debug) Debug.info("onwidth ",this.width,this.height);

+        this.applySizeToVid();

+    </handler>

+

+    <handler name="onheight" args="h">

+    	//if ($debug) Debug.info("onheight ",this.width,this.height);

+        this.applySizeToVid();

+    </handler>

+

+	<method name="_getflashvideo">

+	<![CDATA[

+		if (__LZvideo == null) {

+			init();

+		}

+		//if ($debug) Debug.write("_getflashvideo()");

+		return this.__LZvideo;

+	]]>

+	</method>

+

+    <method name="attachCamera" args="camera">

+        var vid = this._getflashvideo();

+    	vid.attachCamera(camera);

+    </method>

+

+    <!--- shows the Video (NetStream) in the View -->

+    <method name="attachVideo" args="video">

+    	var vid = this._getflashvideo();

+    	vid.attachNetStream(video);

+    </method>

+

+	<method name="clear">

+	    if ($debug) Debug.write("Select unattach :3");

+		var vid = this._getflashvideo();

+		vid.attachNetStream(null);

+		vid.attachCamera(null);

+		this.__LZvideo.clear();

+		if ($debug) Debug.write("Select unattach : 4");

+	</method>

+</class>

+

+

+</library>

diff --git a/WebContent/swf10/base/remote/library.lzx b/WebContent/swf10/base/remote/library.lzx
new file mode 100644
index 0000000..18b8cb8
--- /dev/null
+++ b/WebContent/swf10/base/remote/library.lzx
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+	

+	<!-- new Library -->

+	<include href="baseVideoView.lzx" />

+	<include href="baseVideoStream.lzx" />

+	<include href="baseVideoStreamDevice.lzx" />

+	<include href="rtmpConnection.lzx" />

+	<include href="sharedObject.lzx" />

+    

+</library>

diff --git a/WebContent/swf10/base/remote/rtmpConnection.lzx b/WebContent/swf10/base/remote/rtmpConnection.lzx
new file mode 100644
index 0000000..1cfb69f
--- /dev/null
+++ b/WebContent/swf10/base/remote/rtmpConnection.lzx
@@ -0,0 +1,375 @@
+<library>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+

+

+<class name="rtmpConnection" extends="node">

+

+        <switch>

+            <when property="$as3">

+                <passthrough>

+                    import flash.net.NetConnection;

+                    import flash.events.NetStatusEvent;

+                </passthrough>

+            </when>

+        </switch>

+

+    	<attribute name="debug" value="false" type="boolean" />

+    	

+    	<event name="onconnect"/>

+    	<event name="onerror"/>

+        

+        <!-- this attribute holds a reference to the current/last called netremoteCall,

+        in case of error you can debug that way which call did fail -->

+        <attribute name="lastCalled" value="null" />

+    	

+    	<attribute name="src" value="" type="string"/>

+

+		<method name="connect">

+            this._nc = new NetConnection();

+

+            // local reference to rtmpconnection

+            //this._nc.t = this;

+            

+            this._nc.proxyType = canvas.proxyType;

+            

+            var ok = this._nc.connect(src == "null" ? null : src, true); //isAVClient = true

+            if (this.debug) {

+            	if($debug) Debug.write("*** debug ***");

+            }

+            

+            this._nc.addEventListener(NetStatusEvent.NET_STATUS, _onStatus);

+            

+    		if($debug) Debug.write("devRtmpConnection/registerMethods()");

+    		var clientObj = {};

+    		clientObj.setId = this.setId;

+    		

+    		this._nc.client = clientObj;

+    		

+			//Register Methods

+			//this.registerMethods();

+		</method>

+		

+		<method name="setId" args="tId">

+			if ($debug) Debug.write("setId ", tId);

+		</method>

+		

+        <method name="_onStatus" args="stats"><![CDATA[

+            if ($debug) {

+                Debug.write("devrtmpconnection", this, "_onStatus", stats.info.code);

+            }

+

+            var msg = "";

+            var s;

+

+            switch (stats.info.code) {

+

+                case "NetConnection.Connect.Success": {

+                    // The connection attempt succeeded.

+                    //canvas.currentNC is the reference to the NetConnection that is used in the NetStream

+                    msg = stats.info.code;

+                    canvas.currentNC = this._nc;

+                    s = 2;

+                    break;

+                }

+                

+                case "NetConnection.Connect.Closed": {

+                    msg = stats.info.code;

+                    this._nc = null;

+                    canvas.currentNC = null;

+                    s = 0;

+                    break;

+                }

+

+                default: {

+                    msg = stats.info.code;

+                    s = 0;

+                    break;

+                }

+

+            }

+

+            this.setAttribute("status", msg);

+

+            if (s == 2) {

+                this.onconnect.sendEvent();

+            } else {

+            	this.onerror.sendEvent();

+            }

+

+          ]]>

+        </method>	

+        

+        <method name="disconnect">

+        	if ($debug) Debug.write(" DISCONNECT ");

+        	if (this._nc != null) {

+                this._nc.close();

+            }

+        </method>

+    <!--- 

+        With this function all methods are registered to the NetConnection

+        A server can invoke this Method with a call for it from the Client

+        Only subnodes of rtmpconnections which are a instance of netRemoteCallHib

+        are registered, to add dynamically methods to the remotefunction you will

+        have to invoke this method once again

+        -swagner

+     -->

+    <method name="registerMethods">

+        <![CDATA[

+	        if (this.subnodes!=null){

+	            var clientObj = {};

+		        //Register all methods which are onstanceof netRemoteCallHib

+		        for (var i=0;i<this.subnodes.length;i++){

+		            //If it is of Type netRemoteCallHib then register it to the NetConnection

+		            if (this.subnodes[i] instanceof lz.netRemoteCallHib){

+		                clientObj[this.subnodes[i].funcname] = function( args ){

+                            return canvas.thishib.remoteCallMethod(arguments.callee,arguments);

+		                    //return hib.remoteCallMethod(arguments.callee,args);

+		                }

+		            }

+		        }

+		        this._nc.client = clientObj;

+        	}

+        ]]>

+    </method>

+    

+    <!-- 

+        Process the RemoteCall to the Right Funtion

+        -swagner

+     -->

+    <method name="remoteCallMethod" args="callee,args">

+        <![CDATA[

+            for (var eg in this._nc){

+                if (this._nc[eg]==callee){

+                    if (this.debug) {

+                        //_root.Debug.write.write("DEBUG invoked a function remotely: ",eg,args);

+                    }    

+                    if (args.length == 1) {

+                        return this.callFuntion(eg,args[0]);

+                    } else {

+                        return this.callFuntion(eg,args);

+                    }

+                    //return this.callFuntion(eg,args);

+                }

+            }

+        ]]>

+    </method>

+    

+    <!-- 

+        Map the Function to a netRemoteCallHib

+        -swagner

+     -->

+    <method name="callFuntion" args="funcname,args">

+        <![CDATA[

+            for (var i=0;i<this.subnodes.length;i++){

+                if (this.subnodes[i].funcname==funcname){

+                    return this.subnodes[i].onResult(args);

+                }

+            }

+        ]]>

+    </method>		

+    

+    <method name="callRPC" args="func, obj, params">

+    	//if ($debug) Debug.write("*** call: func, obj, params",func,obj, typeof (params) ,params.length);

+    	if (params.length != 0){

+	    	//does this really work?

+	    	//ASSetPropFlags(_global, null, 8, 1);

+            //setPropertyIsEnumerable(8, 1);

+	    	//Debug.write("does it work?",arguments);

+	    	<!--

+	    	this._nc.call.apply(this._nc,arguments);

+	    	 -->

+			if (params.length==1){

+			    this._nc.call(func, obj,params[0]);

+			} else if (params.length==2){

+			    this._nc.call(func, obj,params[0],params[1]);

+			} else if (params.length==3){

+			    this._nc.call(func, obj,params[0],params[1],params[2]);

+			} else if (params.length==4){

+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3]);

+			} else if (params.length==5){

+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4]);

+			} else if (params.length==6){

+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5]);

+			} else if (params.length==7){

+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6]);

+			} else if (params.length==8){

+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7]);

+			} else if (params.length==9){

+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8]);

+			} else if (params.length==10){

+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9]);

+			} else if (params.length==11){

+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10]);

+			} else if (params.length==12){

+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11]);

+			} else if (params.length==13){

+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12]);

+			} else if (params.length==14){

+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13]);

+			} else if (params.length==15){

+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14]);

+			} else if (params.length==16){

+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14],params[15]);

+			} else if (params.length==17){

+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14],params[15],params[16]);

+			} else if (params.length==18){

+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14],params[15],params[16],params[17]);

+			} else if (params.length==19){

+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14],params[15],params[16],params[17],params[18]);

+			} else if (params.length==20){

+			    this._nc.call(func, obj,params[0],params[1],params[2],params[3],params[4],params[5],params[6],params[7],params[8],params[9],params[10],params[11],params[12],params[13],params[14],params[15],params[16],params[17],params[18],params[19]);

+			}	    	 

+        } else {

+            this._nc.call(func, obj);

+        }

+    </method>

+    

+</class>

+

+

+    <!---

+        Net remote call. 

+        @todo Document netremotecall class.

+    -->

+    <class name="netremotecall" extends="node">

+

+        <switch>

+            <when property="$as3">

+                <passthrough>

+                    import flash.net.Responder;

+                </passthrough>

+            </when>

+        </switch>

+

+        <!--- Name of the remote function. -->

+        <attribute name="funcname" value="$once{null}" type="string" />

+    

+        <attribute name="remotecontext" value="null" />

+    

+        <attribute name="dataobject" value="null" />

+

+        <attribute name="responder" value="null" />

+		

+        <!--- Data handling event. args="value"  -->

+        <event name="ondata" />

+

+        <!--- Error handling event. -->

+        <event name="onerror"/>

+

+        <!--- Call the remote method, passing the array of params. -->

+        <method name="callRPC" args="params"><![CDATA[

+            if (this.funcname == null) {

+                //Debug.write("No funcname given");

+                if (this.onerror) this.onerror.sendEvent("No funcname given");

+                return;

+            }

+

+            if (params == null) {

+                params = new Array();

+

+                var subnodes = this.subnodes;

+                if (subnodes != null) {

+                    var i;

+                    var n = subnodes.length;

+                    for (i = 0; i < n; i++) {

+                        // If getValue method is declared in param, call that

+                        // instead to get value.

+                        var tsi = subnodes[i];

+                        //TODO: fixme

+                        //if ((tsi["getValue"] != null) && (tsi.getValue["prototype"] != null)) {

+                        //    params[i] = tsi.getValue();

+                        //    Debug.write("tsi.getValue():", tsi.getValue());

+                        //} else {

+                        //    params[i] = tsi.value;

+                        //}

+                        params[i] = tsi.getValue();

+                    }

+                }

+

+            } else if (params.__proto__ != Array.prototype) {

+                //Debug.write(this.name, "error: first argument (params) is not an array");

+                return -1;

+            }

+

+            //if ($debug) Debug.write("call", this, this.parent, this.parent.status);

+            var rtmpObject = null;

+            if (this.parent instanceof lz.rtmpConnection){

+        	    rtmpObject = this.parent;

+            } else if(this.remotecontext  instanceof lz.rtmpConnection){

+        	    rtmpObject = this.remotecontext;

+            } else {

+        	    if ($debug) Debug.warn("ERROR: no remotecontext availible abort call", this.funcname, this);

+        	    return;

+            }

+        	//Debug.write('call', this, rtmpObject, rtmpObject.status);

+        	//Debug.write('call', this.remotecontext);

+            if (rtmpObject.debug) Debug.write('call', this, rtmpObject, rtmpObject.status);

+            rtmpObject.lastCalled = this;

+

+            this.responder = new Responder(onResult);

+

+            rtmpObject.callRPC(this.funcname, this.responder, params);

+

+          ]]>

+        </method>

+

+        <!--- Handle the result returned from the remote method. -->

+        <method name="onResult" args="value"><![CDATA[

+            // Can be overriden.

+            // Would be great if it can be used with dataobject,

+            // but I don't know how to convert Array/primitive to LzDataset/LzDataPointer.

+            ////Debug.write("netremotecall", this, "onResult", value);

+

+            if (this.dataobject!=null) {

+                if ( this.dataobject instanceof LzDataset ) {

+                    //Debug.write("onResult: ",this,value,dataobject);

+                    var element = LzDataElement.valueToElement(value);

+                    this.dataobject.setData(element.childNodes);

+                } else if ( this.dataobject instanceof LzDataElement ) {

+                    var element = LzDataElement.valueToElement(value);

+                    this.dataobject.appendChild( element );

+                } else {

+                    //TODO:fixme

+                    //Debug.warn("dataobject is not LzDataset or LzDataElement: ",this,this.dataobject,delegate);

+                }

+            }

+            this.ondata.sendEvent(value);		

+          ]]>

+        </method>

+

+

+    </class>

+

+

+    <!---

+        Net parameter.

+        Element to use inside netremotecall.

+        @todo Document netparam class.

+    -->

+    <class name="netparam" extends="node">

+

+        <!--- The value of the netparam. -->

+        <attribute name="value" value="null"/>

+

+    </class>

+

+

+</library>

diff --git a/WebContent/swf10/base/remote/sharedObject.lzx b/WebContent/swf10/base/remote/sharedObject.lzx
new file mode 100644
index 0000000..9c7cd96
--- /dev/null
+++ b/WebContent/swf10/base/remote/sharedObject.lzx
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<class name="sharedObject" extends="node">

+

+    <switch>

+        <when property="$as3">

+            <passthrough>

+                import flash.net.SharedObject;

+            </passthrough>

+        </when>

+    </switch>

+

+	<attribute name="so" value="null" />

+	<attribute name="onStatus" value="null" />

+	

+

+	<method name="connect" args="so_Name,nc,persistant">

+

+		//Debug.write("connect SharedObject: ",nc.uri);

+		this.so = this.getRemote(so_Name,nc.uri,persistant);

+		

+		var t = this;

+		this.so.onSync = function (evtObj){

+			if (t.onStatus)t.onStatus.sendEvent(evtObj);

+			//_root.Debug.write.write("Shared Object onSync",evtObj,arguments);

+		}

+		

+		this.so.connect(nc);

+		

+	</method>

+	

+    

+    <method name="getRemote" args="so_Name,nc,persistant">

+

+        //Debug.write("connect SharedObject: ",nc.uri);

+        this.so = this.getRemote(so_Name,nc.uri,persistant);

+

+        var t = this;

+        this.so.onSync = function (evtObj){

+            if (t.onStatus)t.onStatus.sendEvent(evtObj);

+            //_root.Debug.write.write("Shared Object onSync",evtObj,arguments);

+        }

+    </method>

+    

+    <!--- create Object if not existing  -->

+    <method name="getLocal" args="name">

+

+        this.so = this.getLocal(name);

+

+        var t = this;

+        this.so.onSync = function (evtObj){

+            if (t.onStatus)t.onStatus.sendEvent(evtObj);

+            //_root.Debug.write.write("Shared Object onSync",evtObj,arguments);

+        }

+        

+    </method>

+    

+    <!--- 

+        force write to disk

+        @return true(success) false(User has forbidden to store data local)

+      -->

+    <method name="flush">

+        return this.so.flush();

+    </method>

+

+    <method name="getData" args="key">

+        if (this.so.data["key"] == undefined){

+            return null;

+           //_root.Debug.write.write("key undefined",key);

+        } else {

+            return this.so.data["key"];

+        }

+    </method>

+	

+    <method name="setSharedData" args="key,val">

+    	//Debug.write("this...... so: ",this.so);

+        this.so.data["key"] = val;

+    </method>

+

+		

+</class>

+

+</library>

diff --git a/WebContent/swf10/commonVideoViewContentSWF10.lzx b/WebContent/swf10/commonVideoViewContentSWF10.lzx
new file mode 100644
index 0000000..4e7054b
--- /dev/null
+++ b/WebContent/swf10/commonVideoViewContentSWF10.lzx
@@ -0,0 +1,609 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+

+<class name="commonVideoViewContentSWF10" extends="view">

+

+    <switch>

+        <when property="$as3">

+            <passthrough>

+                import flash.net.LocalConnection;

+                import flash.external.ExternalInterface;

+            </passthrough>

+        </when>

+    </switch>

+

+    <attribute name="offsetLength" type="number" value="40"/>

+    <attribute name="videoWidth" type="number" value="132"/>

+    <attribute name="videoHeight" type="number" value="132"/>

+    <attribute name="SIDEPANEL_WIDTH" type="number" value="270" />

+    

+    <handler name="oninit">

+        <![CDATA[

+

+            var client = {};

+            client.t = this;

+

+            client.createEditRecordStream = this.createEditRecordStream;

+            client.createVideoObject = this.createVideoObject;

+            client.createVideo = this.createVideo;

+            client.getVideoObjectByPublicSID = this.getVideoObjectByPublicSID;

+            client.getNewVideoObject = this.getNewVideoObject;

+            client.getVideoObjectFreePos = this.getVideoObjectFreePos;

+            client.getVideoObjectCount = this.getVideoObjectCount;

+            client.disconnectclient = this.disconnectclient;

+            client.resetAllValues = this.resetAllValues;

+            client.closeStreamClient = this.closeStreamClient;

+            client.setSpeakingByPos = this.setSpeakingByPos;

+            client.setAVSettingsToClient = this.setAVSettingsToClient;

+            client.startStream = this.startStream;

+            client.removeVideoByUser = this.removeVideoByUser;

+            client.muteSound = this.muteSound;

+            client.updateMuteStatusVideoView = this.updateMuteStatusVideoView;

+            client.ismoderatorChanged = this.ismoderatorChanged;

+            // update rights to SWF10 client

+            client.updateModerationFlag = this.updateModerationFlag;

+            client.changeDevice = this.changeDevice;

+            client.setDrawAllowStatus = this.setDrawAllowStatus;

+            client.setExclusiveAudioAllowStatus = this.setExclusiveAudioAllowStatus;

+            client.exitRoom = this.exitRoom;

+            client.immediateExitRoom = this.immediateExitRoom;

+            client.closeWhiteboard = this.closeWhiteboard;

+            client.arrangeWindows = this.arrangeWindows;

+            client.updateFirstLastName = this.updateFirstLastName;

+            client.setSessionId = this.setSessionId;

+

+            var lc:LocalConnection = new LocalConnection();

+            lc.connect(canvas.vid_lc_name);

+            lc.client = client;

+            canvas.setAttribute("lc", lc);

+

+        ]]>

+    </handler>

+    

+	<method name="createEditRecordStream" args="syncUpdate,isInterview,interviewPodId">

+		if($debug) Debug.info("createEditRecordStream,",syncUpdate,isInterview,interviewPodId);

+		if (canvas.inner.editRecordStream != null)

+			canvas.inner.editRecordStream.destroy();

+			new lz.editRecordStreamSWF10(canvas.inner, {

+					name:"editRecordStream",

+					isSyncUpdate:syncUpdate,

+					isInterview:isInterview,

+					interviewPodId:interviewPodId

+				});

+		return;

+	</method>

+

+	<!-- 

+		Method that creates the video views when another user enters a room and his 

+		item in the list of participants is created.

+		The method to "play" the stream is invoked later, when the user

+		really starts to stream and not only when he just enters the room.

+	 -->

+    <method name="createVideoObject" args="publicSID,isBroadcasting,interviewPodId,object">

+        if($debug) Debug.info("createVideoObject, publicSID: ",publicSID, "isBroadcasting: ", isBroadcasting, "object", object);

+        var vidContainer = getVideoObjectByPublicSID(publicSID);

+        if(vidContainer == null) {

+            vidContainer = isBroadcasting ? this.getNewVideoObject(publicSID) : this.getNewVideoObjectByPos(publicSID);

+            vidContainer.publicSID = publicSID;

+        }

+        if ($debug) Debug.write("Is interview ? ",canvas.isInterview);

+        if (canvas.isInterview) {

+        	if ($debug) Debug.write("Is interview ",interviewPodId,"x",canvas["interviewPod"+interviewPodId+"_x"]);

+			if (interviewPodId != null) {

+				vidContainer.setAttribute("interviewPodId", interviewPodId);

+				vidContainer.setAttribute("x",canvas["interviewPod"+interviewPodId+"_x"]);

+				vidContainer.setAttribute("y",canvas["interviewPod"+interviewPodId+"_y"]);

+			}

+            vidContainer.setAttribute("width",322);

+            vidContainer.setAttribute("height",281);

+        }

+        vidContainer.clientVars = object;

+        vidContainer.setAttribute('visibility','hidden');

+        return vidContainer;

+    </method>

+

+	<!-- 

+		

+		Method that creates the video views when user(self) initially entering a room.

+		Creates the video-view AND starts to stream/play the video

+	 -->

+    <method name="createVideo" args="publicSID,displayName,broadcastId,avsettings,interviewPodId,object">

+        <![CDATA[

+            if ($debug) Debug.info("createVideo, publicSID: ",publicSID,"broadcastId: ",broadcastId,"AVsettings: ",avsettings);

+            if ($debug) Debug.write(" createVideo ALL vars ",object);

+            var vidContainer = getVideoObjectByPublicSID(publicSID);

+            if(vidContainer == null) {

+                vidContainer = this.getNewVideoObjectByPos(publicSID);

+                vidContainer.clientVars = object;

+                vidContainer.setAttribute('chatpartnername',displayName);

+                if (avsettings=="n"){

+                    vidContainer.setVideouserProfilePic(object);

+                    vidContainer.setAttribute("visibility","hidden");

+                } else if (avsettings=="a"){

+                    vidContainer.setVideouserProfilePic(object);

+                    if ($debug) Debug.warn("start play");

+                    vidContainer._chatvideoinner._videostream.playStream(broadcastId,-1);

+                    vidContainer.setAttribute("visible", false);

+                } else if (avsettings=="v" || avsettings=="av") {

+                    //this means avsettings is either: "v" or "av"

+                	vidContainer.setDefaultVideoSize(object.VWidth,object.VHeight);

+                    vidContainer._chatvideoinner._videostream.playStream(broadcastId,-1);

+                    vidContainer.setAttribute("visibility","visible");

+                } else {

+                	//this means user did not select anything yet and streaming has not started

+                	vidContainer.setAttribute("visibility","hidden");

+                }

+                vidContainer.setAttribute("interviewPodId", interviewPodId);

+                vidContainer.updateAVSettingsSymbol(object);

+                if (object.micMuted) {

+            	    vidContainer.setMicMuted(object.micMuted);

+           	 	}

+            }

+            

+            

+            if ($debug) Debug.write("Is interview ? ",canvas.isInterview);

+            if (canvas.isInterview && interviewPodId != null && interviewPodId > 0) {

+                if ($debug) Debug.write("Is interview ",interviewPodId,"x",canvas["interviewPod"+interviewPodId+"_x"]);

+                vidContainer.setAttribute("interviewPodId", interviewPodId);

+                vidContainer.setAttribute("x",canvas["interviewPod"+interviewPodId+"_x"]);

+                vidContainer.setAttribute("y",canvas["interviewPod"+interviewPodId+"_y"]);

+                vidContainer.setAttribute("width",322);

+                vidContainer.setAttribute("height",281);

+            }

+			return;

+        ]]>

+    </method>

+    

+    <method name="getVideoObjectByPublicSID" args="publicSID">

+    	<![CDATA[

+    		//if ($debug) Debug.write("getVideoObjectByPublicSid SEARCH: ",publicSID);

+        	for (var i=0;i<this.subviews.length;i++){

+        	    //if ($debug) Debug.write("this.subviews[i].publicSID ",this.subviews[i].publicSID);

+    			if (this.subviews[i].publicSID==publicSID){

+    				return this.subviews[i];

+    			}

+    		}

+    		if ($debug) Debug.warn(" - getVideoObjectByPublicSID - DID NOT FIND THE USER BY ",publicSID);

+            return null;

+    	]]>

+    </method>

+

+    <method name="getNewVideoObjectByPos" args="publicSID">

+        <![CDATA[

+            var obj = this.getVideoObjectByPublicSID(publicSID);

+            if (obj!=null){

+                return obj;

+            }

+

+            //Get a Free VideoView Slot

+            var freePos = this.getVideoObjectFreePos(this.offsetLength,this.videoWidth,this.videoHeight);

+

+            return new lz.videoObjectPlayBroadcast(this,{

+                    publicSID:publicSID,

+                    width:videoWidth,

+                    height:videoHeight,

+                    x:freePos[0],

+                    y:freePos[1],

+                    isInterview:canvas.isInterview

+                });

+        ]]>

+    </method>

+

+    <method name="getNewVideoObject" args="publicSID">

+		<![CDATA[

+			var obj = this.getVideoObjectByPublicSID(publicSID);

+			if (obj!=null){

+				this.broadCastViewRef = obj;

+			} else {

+				this.broadCastViewRef = getNewVideoObjectByPos(publicSID);

+

+				this.broadCastViewRef._chatvideoinner.r.destroy();

+				if ($debug) Debug.write("getNewVideoObject canvas.userobject ",publicSID,canvas.userobject);

+				this.broadCastViewRef.setAttribute('chatpartnername',canvas.userobject.firstname+' '+canvas.userobject.lastname);

+			}

+			return this.broadCastViewRef;

+		]]>

+	</method>

+

+    <method name="getVideoObjectByInterviewPodId" args="interviewPodId">

+        <![CDATA[

+            for (var i=0;i<this.subviews.length;i++){

+                if (this.subviews[i].interviewPodId==interviewPodId){

+                    return this.subviews[i];

+                }

+            }

+            if ($debug) Debug.warn(" - getVideoObjectByInterviewPodId - DID NOT FIND THE USER BY ",interviewPodId);

+            return null;

+        ]]>

+    </method>

+

+	<method name="getVideoObjectCount" args="a">

+	<![CDATA[

+		var count = 0;

+		for (var i = 0; i < this.subviews.length; ++i) {

+			if (this.subviews[i].visible) {

+				count++;

+			}

+		}

+		//if ($debug) Debug.debug("COUNT :: ", count);

+		canvas.videoComp_lc.send(canvas.videoComp_lc_name, 'onInterviewPodCount', count);

+	]]>

+	</method>

+

+    <method name="getVideoObjectFreePos" args="offsetLength,videoWidth,videoHeight">

+        <![CDATA[

+            var newx = 20;

+            if (canvas.currentRoomObject.hideWhiteboard) {

+                newx += SIDEPANEL_WIDTH;

+            }

+            var newy = 0;

+            var posFound = false;

+            if (offsetLength == undefined) {

+                offsetLength=10;

+            }

+            while (!posFound) {

+                posFound = true;

+                for (var i=0;i<this.subviews.length;i++){

+                    var subview = this.subviews[i];

+                    var left = subview.x;

+                    var right = subview.x + subview.width;

+                    var top = subview.y;

+                    var bottom = subview.y + subview.height;

+

+                    if( !(newx > right

+                        || (newx + videoWidth) < left

+                        || newy > bottom

+                        || (newy + videoHeight) < top ))

+                    {

+                        newx = right + offsetLength;

+                        posFound = false;

+                    }

+                    if ((newx + videoWidth) >= canvas.width) {

+                        newx = 20;

+                        if (canvas.currentRoomObject.hideWhiteboard) {

+                            newx += SIDEPANEL_WIDTH;

+                        }

+                        newy += 10;

+                        posFound = false;

+                    }

+                }

+            }

+

+            if ((newy + videoHeight) >= canvas.height) {

+                newy = 0;

+            }

+

+            var result = [newx, newy];

+            return result;

+        ]]>

+    </method>

+

+    <method name="disconnectclient" args="publicSID">

+        <![CDATA[

+            if ($debug) Debug.write("disconnectclient: ",publicSID);

+

+            var obj = this.getVideoObjectByPublicSID(publicSID);

+

+            //if ($debug) Debug.write("disconnecclient obj: ",obj);

+            if (obj == null) {

+            	if ($debug) Debug.warn("Could Not find this To disconnect",publicSID);

+            }

+

+            if (obj != null){

+                obj.resetValues();

+                obj.destroy();

+            }

+        ]]>

+    </method>

+

+    <method name="muteSound" args="publicSID, bool">

+        <![CDATA[

+            var obj = this.getVideoObjectByPublicSID(publicSID);

+            if (obj != null) {

+                obj.silenceMicrophone(bool);

+            }

+            return;

+        ]]>

+    </method>

+

+    <method name="resetAllValues">

+        for (var eg in this.subviews){

+            this.subviews[eg].resetValues();

+        }

+        return;

+    </method>

+

+    <method name="closeStreamclient" args="publicSID">

+        <![CDATA[

+            if ($debug) Debug.write("closeStreamthis: ",publicSID);

+            var obj = this.getVideoObjectByPublicSID(publicSID);

+            if ($debug) Debug.write("closeStreamthis obj: ",obj);

+            if (obj != null){

+                obj.resetValues();

+            }

+            return obj;

+        ]]>

+    </method>

+

+    <method name="removeVideoByUser" args="publicSID"><![CDATA[

+        var obj = this.closeStreamclient(publicSID);

+        if(obj != null) {

+            obj.destroy();

+        }

+        return;

+    ]]></method>

+

+	<method name="updateMuteStatusVideoView" args="roomClient">

+	<![CDATA[

+		var obj = this.getVideoObjectByPublicSID(roomClient.publicSID);

+		if (obj != null) {

+			obj.muteMicrophone(roomClient);

+		}

+	]]>

+	</method>

+

+    <method name="ismoderatorChanged" args="m">

+        canvas.setAttribute("ismoderator", m);

+        return;

+    </method>

+

+

+	<method name="setSpeakingByPos" args="publicSID,bool">

+	<![CDATA[

+		//if ($debug) Debug.write("setSpeakingByPos ",publicSID,bool);

+		var obj = this.getVideoObjectByPublicSID(publicSID);

+		if (obj == null) {

+			if ($debug) Debug.warn("Could not find user for setSpeakingByPos ",publicSID,bool);

+			return;

+		}

+		obj._loudness.setSpeaking(bool);

+	]]>

+	</method>

+

+	<method name="setAVSettingsToClient" args="rcl">

+	<![CDATA[

+		if ($debug) Debug.write("setAVSettingsToClient: ", rcl.publicSID, rcl);

+		var obj = this.getVideoObjectByPublicSID(rcl.publicSID);

+		if ($debug) Debug.write("setAVSettingsToClient: ", obj, rcl.avsettings);

+		if (obj == null) {

+			obj = this.getNewVideoObjectByPos(rcl.publicSID);

+		}

+		if ("n" == rcl.avsettings){

+			obj.setVideouserProfilePic(rcl);

+		} else if ("a" == rcl.avsettings){

+			obj.setVideouserProfilePic(rcl);

+		} else {

+			obj.deleteVideoConfProfilePic();

+		}

+		obj.thisVars = rcl;

+		obj.updateAVSettingsSymbol(rcl);

+		var v = ("a" == rcl.avsettings && obj.isInterview) || ("a" != rcl.avsettings && rcl.avsettings != "n");

+		obj.setAttribute("visible", v);

+		obj.setAttribute("visibility", v ? "visible" : "hidden");

+		if ($debug) Debug.write("setAVSettingsToClient: ", v, obj.visible);

+	]]>

+	</method>

+

+    <method name="startStream" args="publicSID,broadcastId,firstname,lastname,interviewPodId,width,height">

+        <![CDATA[

+            if ($debug) Debug.write("startStream: ", publicSID,broadcastId,firstname,lastname,interviewPodId,width,height);

+            var obj = this.getVideoObjectByPublicSID(publicSID);

+            //if ($debug) Debug.write("startStream obj: ",obj);

+            if (obj != null ){

+                obj._chatvideoinner._videostream.playStream(broadcastId,-1);

+                obj.setDefaultVideoSize(width,height);

+                obj.setAttribute('chatpartnername',firstname+' '+lastname);

+            }

+            //we have to do this again when the stream starts, the initial video 

+            //component does not know the interviewPodId as the user has not selected 

+            //which interview video pod he is going to use

+            if (canvas.isInterview && interviewPodId != null && interviewPodId > 0) {

+                if ($debug) Debug.write("Is interview ",interviewPodId,"x",canvas["interviewPod"+interviewPodId+"_x"]);

+                obj.setAttribute("interviewPodId", interviewPodId);

+                obj.setAttribute("x",canvas["interviewPod"+interviewPodId+"_x"]);

+                obj.setAttribute("y",canvas["interviewPod"+interviewPodId+"_y"]);

+                obj.setAttribute("width",322);

+                obj.setAttribute("height",281);

+            }

+            return;

+        ]]>

+    </method>

+

+	<!---

+		Clear all views, probably this is caleld whenever a user leaves the room for example

+	 -->

+    <method name="clearAll">

+        <![CDATA[

+            if ($debug) Debug.write("clearAll", this.subviews);

+            while(this.subviews.length > 0) {

+                this.subviews[0]._chatvideoinner._videostream._stop();

+                this.subviews[0].destroy();

+            }

+            if (canvas.inner.editRecordStream != null) {

+                canvas.inner.editRecordStream.destroy();

+            }

+            return;

+        ]]>

+    </method>

+    

+    <!---

+    	Update the ismoderator flag, there is no need to check here which user

+    	this happened already before sending it to the SWF10 app

+     -->

+    <method name="updateModerationFlag" args="moderator">

+    	<![CDATA[

+    		if ($debug) Debug.write("updateModerationFlag :: ",moderator);

+    		this.setAttribute('ismoderator',moderator);

+    		return;

+    	]]>

+    </method>

+    

+    <!---

+    	Update the canDraw,canShare,canRemote flag, there is no need to check here which user

+    	this happened already before sending it to the SWF10 app

+     -->

+    <method name="setDrawAllowStatus" args="canDraw,canShare,canRemote">

+    	<![CDATA[

+    		if ($debug) Debug.write("setDrawAllowStatus :: ",canDraw,canShare,canRemote);

+    		canvas.setAttribute("isAllowedToDraw",canDraw);

+            canvas.setAttribute("isAllowedToScreenShare",canShare);

+            canvas.setAttribute("isAllowedToRemoteControl",canRemote);

+            return;

+    	]]>

+    </method>

+    

+    <method name="setExclusiveAudioAllowStatus" args="canGiveAudio">

+    	<![CDATA[

+    		if ($debug) Debug.write("setExclusiveAudioAllowStatus :: ",canGiveAudio);

+    		canvas.setAttribute("isAllowedToGiveExclusiveAudio",canGiveAudio);

+            return;

+    	]]>

+    </method>

+

+    <!---

+        Shows the window with device settings

+    -->

+    <method name="changeDevice">

+        <![CDATA[

+            if ($debug) Debug.write("changeDevice");

+            new lz.changeDevice(canvas.inner, {

+					                name:"changeDeviceDialog"

+					            });

+            return;

+        ]]>

+    </method>

+

+    <!---

+        Shows the exit dialog

+    -->

+    <method name="exitRoom">

+        if ($debug) Debug.write("exitRoom");

+        new lz.confirmationSingleSWF10(canvas,{

+                refObj:this,

+                labelid:791,

+                labeliderror:790,

+                refReturnMethod:'immediateExitRoom',

+                showCheckBox:false

+            });

+        return;

+    </method>

+

+	<method name="immediateExitRoom" args="bool,ctx">

+		<![CDATA[

+		canvas.videoComp_lc.send(canvas.videoComp_lc_name, 'exitRoom', bool);

+		if (canvas.wicketsid != null && bool) {

+			flash.external.ExternalInterface.call("roomExit");

+		}

+		]]>

+	</method>

+

+	<method name="updateFirstLastName" args="publicSID,first,last">

+		var v = getVideoObjectByPublicSID(publicSID);

+		if (v != null) {

+			v.setAttribute('chatpartnername', first + ' ' + last);

+		}

+	</method>

+	

+    <!---

+        Shows the close whiteboard dialog

+    -->

+    <method name="closeWhiteboard">

+        if ($debug) Debug.write("closeWhiteboard");

+        if (canvas.ismoderator || canvas.isAllowedToDraw) {

+            canvas.closeWhiteboardDialog = new lz.confirmationSingleSWF10(canvas,{

+                refObj:this,

+                labeliderror:1313,

+                refReturnMethod:'closeWhiteboardConfirmMethod',

+                showCheckBox:false

+            });

+        } else {

+            new lz.labelerrorPopupSWF10(canvas,{labelid:1366, errorlabelid:1365});

+        }

+        return;

+    </method>

+    

+    <method name="closeWhiteboardConfirmMethod" args="bool,sharedObjectData">

+    	canvas.videoComp_lc.send(canvas.videoComp_lc_name, 'closeWhiteboard', bool);

+    </method>

+        

+	<!-- arranges video pods -->

+	<method name="arrangeWindows">

+	<![CDATA[

+		if ($debug) Debug.write("arrangeWindows");

+		var windowsList = this.subviews;

+

+		if (0 == windowsList.length) {

+            return;

+		}

+

+        windowsList.sort(this.sortFunction);

+

+		var offsetInPx = 40;

+		var initX = 20;

+		var initY = 20;

+		var xPos = initX;

+		var yPos = initY;

+		var rowHeight = windowsList[0].height;

+

+		// arrange windows with new positions

+		for (var winIdx = 0; winIdx < windowsList.length; winIdx++) {

+			var window = windowsList[winIdx];

+			if (canvas.width < xPos + window.width) {

+                yPos += rowHeight + offsetInPx;

+                xPos = initX;

+                rowHeight = window.height;

+			}

+			if (canvas.height < yPos) {

+			    initX += 10;

+			    initY += 10;

+			    xPos = initX;

+			    yPos = initY;

+			}

+			window.setAttribute("x", xPos);

+			window.setAttribute("y", yPos);

+			window.bringToFront();

+

+			xPos += window.width + offsetInPx;

+		}

+	]]>

+	</method>

+

+	<method name="setSessionId" args="session_id">

+		canvas.setAttribute("sessionId", session_id);

+	</method>

+	

+    <!-- @keyword private -->

+    <method name="sortFunction" args="el1, el2">

+        <![CDATA[

+            if (el1.height > el2.height) {

+                return -1;

+            } else if (el1.height < el2.height) {

+                return 1;

+            }

+            return 0;

+        ]]>

+    </method>

+

+</class>

+

+</library>

diff --git a/WebContent/swf10/dragHelper.lzx b/WebContent/swf10/dragHelper.lzx
new file mode 100644
index 0000000..bc8bea9
--- /dev/null
+++ b/WebContent/swf10/dragHelper.lzx
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<class name="dragHelper">

+

+    <attribute name="dragHelper" value="null" />

+

+    <method name="create">

+        if(this.dragHelper != null ) this.dragHelper.destroy();

+        this.dragHelper = new lz.view(canvas, {width:canvas.width,height:canvas.height,x:'0',y:'0', bgcolor:'0xFFFFFF', opacity:0.01,clickable:true});

+        this.dragHelper.sendInFrontOf(canvas.mainComponent);

+    </method>

+

+    <method name="remove">

+        this.dragHelper.destroy();

+        this.dragHelper = null;

+    </method>

+

+</class>

+

+</library>
\ No newline at end of file
diff --git a/WebContent/swf10/hibAdapter.lzx b/WebContent/swf10/hibAdapter.lzx
new file mode 100644
index 0000000..cee134e
--- /dev/null
+++ b/WebContent/swf10/hibAdapter.lzx
@@ -0,0 +1,383 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<class name="hibAdapter">

+

+    <attribute name="testingApplication" value="null" />

+    <attribute name="baseVideoStream" value="null" />

+

+    <switch>

+        <when property="$as3">

+            <passthrough>

+                import flash.net.LocalConnection;

+            </passthrough>

+        </when>

+    </switch>

+

+    <handler name="oninit"><![CDATA[

+        var client = {};

+        client.t = this;

+

+        client.hibAdapter_setLabelObjectByHundred = this.hibAdapter_setLabelObjectByHundred;

+        client.setRoomValues = this.setRoomValues;

+        client.getRoomTypes = this.getRoomTypes;

+        client.disconnect = this.disconnect;

+        client.reconnectSuccess = this.reconnectSuccess;

+        //Test application to record 5 seconds

+        client.doInitTestingApplication = this.doInitTestingApplication;

+        client.closeInitTestingApplication = this.closeInitTestingApplication;

+        

+        //Recording Player Whiteboard

+        client.connectRecordingPlayer = this.connectRecordingPlayer;

+        client.playRecordingStream = this.playRecordingStream;

+        client.updateRecordingVideoPosition = this.updateRecordingVideoPosition;

+        client.stopRecordingStream = this.stopRecordingStream;

+        client.pauseRecordingPlayback = this.pauseRecordingPlayback;

+        client.seekRecordingPlayback = this.seekRecordingPlayback;

+        client.stopAndCloseRecordingConnection = this.stopAndCloseRecordingConnection;

+        client.playbackWhiteboardVideo = this.playbackWhiteboardVideo;

+        client.stopWhiteboardVideo = this.stopWhiteboardVideo;

+        

+        //Screen sharing player

+        client.newScreenSharing = this.newScreenSharing;

+        client.newScreenSharings = this.newScreenSharings;

+        client.closeScreenSharing = this.closeScreenSharing;

+        client.closeAllScreenSharings = this.closeAllScreenSharings;

+        client.updateCursorScreenSharing = this.updateCursorScreenSharing;

+        

+        //Text RegExp 

+        client.regExpTest = this.regExpTest;

+

+        var rtmpLC:LocalConnection = new LocalConnection();

+        rtmpLC.connect(canvas.rtmp_lc_name);

+        if ($debug) Debug.write("Connect to LocalConnection ",canvas.rtmp_lc_name);

+        rtmpLC.client=client;

+        canvas.setAttribute("rtmp_lc", rtmpLC);

+    ]]></handler>

+

+    <method name="hibAdapter_setLabelObjectByHundred" args="start,value">

+    	//if($debug) Debug.write("hibAdapter_setLabelObjectByHundred",start);

+        // if($debug) Debug.write("hibAdapter_setLabelObjectByHundred",start,value);

+        setLabelObjectByHundred(start,value);

+    </method>

+

+    <method name="setRoomValues" args="roomtypes_id,rooms_id,value">

+        if($debug) Debug.write("setRoomValues",roomtypes_id,rooms_id,value);

+        canvas.currentRoomObject = value;

+    </method>

+

+    <method name="getRoomTypes" args="value">

+        canvas.roomTypesInitValues = value;

+    </method>

+    

+    <!-- 

+    	Synces some of the variables from the SWF8 to the SWF10.

+    	This also includes values for httphostlocal

+    	in case its a cluster'ed OpenMeetings installation the connection_url

+    	might point to the slave while the httphostlocal points to the master

+     -->

+    <method name="reconnectSuccess" args="connection_url,publicSID,userobject,isInterview,httphostlocal,httpport">

+        if($debug) Debug.write("reconnectSuccess",connection_url,publicSID,userobject);

+        canvas.httphostlocal = httphostlocal;

+        canvas.red5httpport = httpport;

+        canvas.publicSID = publicSID;

+        canvas.userobject = userobject;

+        canvas.isInterview = isInterview;

+        canvas.thishib.setAttribute('src',connection_url);

+        canvas.thishib.connect();

+    </method>

+    

+    <method name="disconnect" args="arg">

+        if($debug) Debug.write("Do disconnect");

+        canvas.thishib.disconnect();

+    </method>

+    

+    <!---

+        Starts the 5 second audio/video testing application and connect to RTMP

+     -->

+    <method name="doInitTestingApplication" args="x,y,connection_url">

+        if($debug) Debug.write("doInitTestingApplication ",x,y);

+        canvas.thishib.setAttribute('src',connection_url);

+        canvas.thishib.connect();

+        this.testingApplication = new lz.testingApplication(canvas,{name:'currentSharing',x:x+1,y:y+24});

+    </method>

+    

+    <!---

+        Stops and destroys the view with the audio/video testing application

+        and send confirmation back via LocalConnection

+     -->

+    <method name="closeInitTestingApplication">

+    	canvas.thishib.disconnect();

+        if($debug) Debug.write("closeInitTestingApplication ");

+        if (this.testingApplication != null) {

+            this.testingApplication.storeSettings();

+            this.testingApplication.destroy();

+            this.testingApplication = null;

+        }

+        if ($debug) Debug.write("Send confirmation of close back to: ",canvas.videoComp_lc_name);

+        canvas.videoComp_lc.send(canvas.videoComp_lc_name, 'closeInitTestingApplicationConfirm');

+    </method>

+    

+    <!---

+        Initializes video playback component

+        and connect to RTMP

+     -->

+    <method name="connectRecordingPlayer" args="connection_url,x,y,width,height">

+    	if($debug) Debug.write("connectRecordingPlayer ", connection_url,x,y,width,height);

+    	canvas.thishib.setAttribute('src',connection_url);

+        canvas.thishib.connect();

+        this.baseVideoStream = new lz.playBackVideoStream(canvas,{

+            x:x,

+            y:y,

+            width:width,

+            height:height

+        });

+    </method> 

+    

+    <!---

+        plays a recorded stream

+     -->

+    <method name="playRecordingStream" args="streamName,delay,x,y,width,height">

+    	if($debug) Debug.write("playRecordingStream ",streamName,x,y,width,height);

+    	if (this.baseVideoStream == null) {

+    		if ($debug) Debug.warn("baseVideoStream is NULL");

+    		return;

+    	}

+    	this.baseVideoStream.setAttribute("x",x);

+    	this.baseVideoStream.setAttribute("y",y);

+    	this.baseVideoStream.setAttribute("width",width);

+    	this.baseVideoStream.setAttribute("height",height);

+    	this.baseVideoStream.setAttribute("visibility","visible");

+    	this.baseVideoStream.playRecordingStream(streamName,delay);

+    </method>

+    

+    <!---

+        Updates the width/height property of the recording playback video 

+     -->    

+    <method name="updateRecordingVideoPosition" args="width,height">

+    	if (this.baseVideoStream == null) {

+    		if ($debug) Debug.warn("baseVideoStream is NULL");

+            return;

+        }

+        this.baseVideoStream.setAttribute("width",width);

+        this.baseVideoStream.setAttribute("height",height);

+    </method>

+    

+    <!---

+        stops and hides the recording playback video

+     -->

+    <method name="stopRecordingStream">

+    	if($debug) Debug.write("stopRecordingStream ");

+        if (this.baseVideoStream == null) {

+        	if ($debug) Debug.warn("baseVideoStream is NULL");

+            return;

+        }

+        if($debug) Debug.write(" stopRecording ");

+        this.baseVideoStream.stopRecording();

+        this.baseVideoStream.setAttribute("visibility","hidden");

+    </method>

+    

+    <!--- 

+        pauses the current video or continue at the same position

+     -->

+    <method name="pauseRecordingPlayback" args="pauseBool">

+    	if($debug) Debug.write("pauseRecordingPlayback ");

+        if (this.baseVideoStream == null) {

+        	if ($debug) Debug.warn("baseVideoStream is NULL");

+            return;

+        }

+        this.baseVideoStream.pause(pauseBool);

+    </method>

+    

+    <method name="seekRecordingPlayback" args="flvTime">

+    	if($debug) Debug.write("seekRecordingPlayback ",flvTime);

+        if (this.baseVideoStream == null) {

+        	if ($debug) Debug.warn("baseVideoStream is NULL");

+            return;

+        }

+        this.baseVideoStream.seekStream(flvTime);

+    </method>

+    

+    <method name="stopAndCloseRecordingConnection">

+    	if($debug) Debug.write("stopAndCloseRecordingConnection ");

+        if (this.baseVideoStream == null) {

+        	if ($debug) Debug.warn("baseVideoStream is NULL");

+            return;

+        }

+        this.baseVideoStream.stopRecording();

+        this.baseVideoStream.destroy();

+        this.baseVideoStream = null;

+        canvas.thishib.disconnect();

+        // send back confirmation to leave the module

+        canvas.videoComp_lc.send(canvas.videoComp_lc_name, 'recordingStoppedAndDisconnected');

+    </method>

+    

+    <!---

+        Start playback of whiteboard video

+     -->

+    <method name="playbackWhiteboardVideo" args="tName,recordingName,seek,tx,ty,twidth,theight">

+    	<![CDATA[

+    	   if($debug) Debug.write("playbackWhiteboardVideo ",tName,recordingName,seek,tx,ty,twidth,theight);

+    	   if (this[tName]) {

+    	   	 if ($debug) Debug.warn("playbackWhiteboardVideo there was already a video with the same name");

+    	   	 this[tName]._stop();

+    	   	 this[tName].destroy();

+    	   }

+    	   

+    	   new lz.playBackWhiteboardVideo(this.whiteboardVideos,{

+                	       name:tName,

+                	       x:tx,

+                	       y:ty,

+                	   	   width:twidth,

+                	   	   height:theight

+                	   });

+    	   

+    	   this.whiteboardVideos[tName].playVideoStream(recordingName,0);

+    	]]>

+    </method>

+    

+    <method name="stopWhiteboardVideo" args="tName">

+    	<![CDATA[

+    	   if($debug) Debug.write("stopWhiteboardVideo ",tName);

+           if (this.whiteboardVideos[tName]) {

+             this.whiteboardVideos[tName].stopVideo();

+             this.whiteboardVideos[tName].destroy();

+           } else {

+           	 if ($debug) Debug.warn("stopWhiteboardVideo could not find video to stop");

+           }

+    	]]>

+    </method>

+    

+    <!---

+       #################################

+       Methods to handle screen sharing video playback and cursor

+     -->

+     

+    <!---

+        Adds a new screen sharing playback video

+     -->

+    <method name="newScreenSharing" args="value">

+    	<![CDATA[

+    	   if (value.streamPublishName != canvas.publicSID) {

+                if (canvas.screenSharingDialogContainer == null) {

+                    canvas.screenSharingDialogContainer = new lz.screenSharingDialogContainer(canvas);

+                }

+                new lz.screenSharingDialog(canvas.screenSharingDialogContainer,{

+                            initObject:value 

+                        }); 

+            } else {

+                if ($debug) Debug.warn("Self Screen Sharing");

+            }

+    	]]>

+    </method> 

+    

+    <!---

+        Add a list of screen sharing playback videos 

+        (initially when entering the room invoked)

+     -->

+    <method name="newScreenSharings" args="value">

+     	<![CDATA[

+     	    for (var eg in value) {

+                this.newScreenSharing(value[eg]);

+            }

+     	]]>

+    </method>

+   

+    <!---

+        Close a single screen sharing playback video

+     --> 

+	<method name="closeScreenSharing" args="value">

+		<![CDATA[

+			if (canvas.screenSharingDialogContainer != null) {

+				var obj = canvas.screenSharingDialogContainer

+						.searchForSession(value.streamPublishName);

+				if (obj) {

+					obj.doClose();

+				}

+			}

+		]]>

+	</method>

+	

+	<!---

+	   Closes all screen sharing playback videos, whiteboard videos, user videos 

+	   and closes the rtmp connection

+	 -->

+	<method name="closeAllScreenSharings">

+        <![CDATA[

+            if ($debug) Debug.write("RECEIVE closeAllScreenSharings ");

+            if (canvas.screenSharingDialogContainer != null) {

+                canvas.screenSharingDialogContainer.closeAll();

+                canvas.screenSharingDialogContainer.destroy();

+                canvas.screenSharingDialogContainer = null;

+            }

+            this.whiteboardVideos.clearAll();

+            parent._videoComponent.clearAll();

+            canvas.thishib.disconnect();

+        ]]>

+    </method>

+    

+    <!---

+        Update the position of the cursor from the sharing screen

+     -->

+	<method name="updateCursorScreenSharing" args="value">

+		<![CDATA[

+			if (canvas.screenSharingDialogContainer != null) {

+				var obj = canvas.screenSharingDialogContainer.searchForSession(value.streamPublishName);

+				obj.updateCursor(value.cursor_x, value.cursor_y);

+			}

+		]]>

+	</method>

+	

+	<!---

+		Make regExpTest 

+	 -->

+	<method name="regExpTest" args="fieldValue,regExStr,regExpCheckId">

+		<![CDATA[

+			var re = new RegExp(regExStr);

+			

+			var testResult = re.test( fieldValue );

+			

+			if ($debug) Debug.write(fieldValue, testResult);

+			

+			canvas.videoComp_lc.send(canvas.videoComp_lc_name, 'regExpResult', regExpCheckId, testResult);

+			

+		]]>

+	</method>

+	

+    <!--

+        Container to hold all whiteboard videos

+     -->	

+	<view name="whiteboardVideos">

+		<method name="clearAll">

+    		<![CDATA[

+    			for (var eg in this.subviews) {

+    				this.subviews[eg].stopVideo();

+    				this.subviews[eg].destroy();

+    			}

+    		]]>

+		</method>

+	</view>

+     

+

+</class>

+

+</library>
\ No newline at end of file
diff --git a/WebContent/swf10/lzrecorder/library.lzx b/WebContent/swf10/lzrecorder/library.lzx
new file mode 100644
index 0000000..6f84e4c
--- /dev/null
+++ b/WebContent/swf10/lzrecorder/library.lzx
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+    <include href="playBackVideoStream.lzx" />

+    

+</library>

diff --git a/WebContent/swf10/lzrecorder/playBackVideoStream.lzx b/WebContent/swf10/lzrecorder/playBackVideoStream.lzx
new file mode 100644
index 0000000..b7fdfd5
--- /dev/null
+++ b/WebContent/swf10/lzrecorder/playBackVideoStream.lzx
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<!---

+    The playBackVideoStream is used in the recording playerback to show the video

+ -->

+<class name="playBackVideoStream" extends="baseVideoStream" bgcolor="0x000000" visibility="hidden">

+    

+    <attribute name="timerDelegate" value="null"/>

+    <attribute name="timerDelegateStarted" value="false" type="boolean"/>

+    

+    <handler name="oninit">

+        this.timerDelegate = new LzDelegate( this, "calcProgressBar" );

+    </handler>

+    

+    <handler name="onclick">

+        canvas.videoComp_lc.send(canvas.videoComp_lc_name, 'togglePlayRecordingStream');

+    </handler>

+    

+    <method name="playRecordingStream" args="streamName,delay">

+        this.playStream(streamName,delay);

+        this.timerDelegateStarted = true;

+        lz.Timer.addTimer( this.timerDelegate , 1000 );

+    </method>

+    

+    <method name="stopRecording">

+        this._stop();

+        lz.Timer.removeTimer(this.timerDelegate);

+        this.timerDelegateStarted = false;

+    </method>

+    

+    <handler name="onNetStatus" args="info">

+        if ($debug) Debug.write("onNetStatus ",info);

+        if (info.code ==  "NetStream.Play.Stop" ) {

+            canvas.videoComp_lc.send(canvas.videoComp_lc_name, 'stopRecordingStream');

+        }

+    </handler>

+    <handler name="onMetaDataEvent" args="info">

+        if ($debug) Debug.write("onMetaData ",info);

+    </handler>

+    

+    <method name="calcProgressBar" args="tObjRef">

+        if ($debug) Debug.write("calcProgressBar updateRecordingStreamTime",this._ns.time)

+        canvas.videoComp_lc.send(canvas.videoComp_lc_name, 'updateRecordingStreamTime',this._ns.time);

+        if (this.timerDelegateStarted) {

+            lz.Timer.addTimer( this.timerDelegate , 1000 );

+        }

+    </method>

+    

+</class>	

+

+</library>
\ No newline at end of file
diff --git a/WebContent/swf10/main.as3.lzx b/WebContent/swf10/main.as3.lzx
new file mode 100644
index 0000000..a991fcf
--- /dev/null
+++ b/WebContent/swf10/main.as3.lzx
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<canvas width="100%" height="100%" title="OpenMeetings">

+	

+	<switch>

+        <when property="$as3">

+            <passthrough>

+                import flash.net.*;

+                import flash.display.*;

+                import flash.events.*;

+            </passthrough>

+        </when>

+    </switch>

+	<switch>

+		<when property="$debug">

+			<method name="doDebugInit">

+				canvas.setAttribute('debug', true);

+			</method>

+			<debug fontsize="11" oninit="Debug.showInternalProperties = true" width="40%" y="50%" x="60%" height="50%" />

+		</when>

+		<otherwise>

+			<method name="doDebugInit">

+			</method>

+		</otherwise>

+    </switch>

+    

+    <include href="testVideoObject.lzx" />

+

+    <silverstyle name="componentStyle" basecolor="0xFFFFFF" textcolor="0x000000" />

+

+    <attribute name="lc_SID"/>

+

+    <attribute name="vid_lc_name" />

+

+    <attribute name="lc"/>

+

+    <attribute name="rtmp_lc_name" />

+

+    <attribute name="rtmp_lc"/>

+

+    <attribute name="videoComp_lc_name" />

+

+    <attribute name="videoComp_lc_callback_name" />

+

+    <attribute name="videoComp_lc" />

+

+    <include href="base/" />

+

+    <include href="modules/" />

+

+    <include href="video/" />

+    

+    <include href="screensharing/" />

+    

+    <include href="audioVideoTest/" />

+    

+    <include href="lzrecorder/" />

+    

+    <include href="whiteboard/" />

+

+    <include href="commonVideoViewContentSWF10.lzx" />

+

+    <include href="hibAdapter.lzx" />

+

+    <include href="miniIcons.lzx" />

+

+    <include href="dragHelper.lzx" />

+

+    <view name="mainComponent" width="${canvas.width}" height="${canvas.height}">

+        <text id="mainBaseText"> </text>

+    </view>

+

+    <method name="getLCSID">

+        //TODO: fixme

+        return "" + Math.floor(999999*Math.random());

+    </method>

+

+	<method name="getAppBaseUrlWithoutSwfSuffix">

+	<![CDATA[

+		var urlObject = lz.Browser.getBaseURL();

+		//If Port is Null or undefinied use port 80

+		var port = (urlObject.port != null && urlObject.port != undefined) ? urlObject.port : 80;

+		//if($debug) Debug.write("getBaseUrl:: [urlObject, port]", urlObject, port);

+		var url = "" + urlObject.protocol + "://" + urlObject.host + (port != 80 ? ":" + port : "") + urlObject.path;

+		//if($debug) Debug.write("!!!!!!! getBaseUrl:: [urlObject, port, url]", urlObject, port, url);

+		url = url + (url.slice(-1) == '/' ? '' : '/');

+		//if($debug) Debug.write("!!!!!!! getBaseUrl:: [last, url]", url.slice(-1), url);

+		return url;

+	]]>

+	</method>

+

+    <handler name="oninit"><![CDATA[

+		doDebugInit();

+    

+        var tInitArgsArry = new Array('secureHash','invitationHash','sid','roomid','directRoomId'

+        	,'language','hash','cuser','tAccept','moodleRoom','becomemoderator','wwwroot','user_id'

+        	,'picture','scopeRoomId', 'wicketsid', 'wicketroomid');

+    

+        this.setAttribute('lc_SID', this.getLCSID());

+        this.setAttribute('vid_lc_name', lc_SID + '__videoLC');

+        this.setAttribute('rtmp_lc_name', lc_SID + '__rtmpLC');

+        this.setAttribute('videoComp_lc_name', lc_SID + '__streamLC');

+        this.setAttribute('videoComp_lc_callback_name', lc_SID + '__streamLC_cback');

+

+        var videoComp_lc_cback:LocalConnection = new LocalConnection();

+        videoComp_lc_cback.connect(this.videoComp_lc_callback_name);

+        this.setAttribute('videoComp_lc',videoComp_lc_cback);

+        

+        var tqueryString = "";

+        for (var i = 0; i < tInitArgsArry.length; ++i) {

+            // if ($debug) Debug.write(tInitArgsArry[i],lz.Browser.getInitArg(tInitArgsArry[i]));

+            var tValue = lz.Browser.getInitArg(tInitArgsArry[i]);

+            if (tValue != undefined) {

+                tqueryString += "&" + tInitArgsArry[i] + "=" + tValue;

+                if (tInitArgsArry[i].startsWith('wicket')) {

+                	canvas.setAttribute(tInitArgsArry[i], tValue);

+                }

+            }

+        }

+        

+        var tSWFURL = getAppBaseUrlWithoutSwfSuffix() + "main" + ($debug ? "debug" : "") + ".swf8.swf?lzproxied=solo&lc_SID="+lc_SID+tqueryString;

+        

+        if ($debug) Debug.write("tSWFURL :: ",tSWFURL);

+        

+        var request:URLRequest = new URLRequest(tSWFURL);

+        var loader:Loader = new Loader();

+        loader.load(request);

+        this.mainComponent.sprite.addChild(loader);

+

+        new lz.commonVideoViewContentSWF10(this, {name:'_videoComponent'});

+        new lz.hibAdapter(this);

+

+        if ($debug) Debug.write("main::init DONE");

+    ]]></handler>

+

+    <view name="inner"></view>

+    

+</canvas>

diff --git a/WebContent/swf10/miniIcons.lzx b/WebContent/swf10/miniIcons.lzx
new file mode 100644
index 0000000..301d381
--- /dev/null
+++ b/WebContent/swf10/miniIcons.lzx
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<class name="miniIcons" extends="view" stretches="both">

+	<attribute name="showhandcursor" value="true" type="boolean" />

+    <handler name="onmouseover">

+    	if (this.showhandcursor) {

+        	this.setAttribute("x",this.x-1);

+        	this.setAttribute("y",this.y-1);

+        	this.setAttribute("height",this.height+2);

+        	this.setAttribute("width",this.width+2);

+    	}

+        parent.parent.onmouseover.sendEvent();

+    </handler>

+    <handler name="onmouseout">

+    	if (this.showhandcursor) {

+        	this.setAttribute("x",this.x+1);

+            this.setAttribute("y",this.y+1);

+            this.setAttribute("height",this.height-2);

+            this.setAttribute("width",this.width-2);

+    	}

+        parent.parent.onmouseout.sendEvent();

+    </handler>

+</class>

+

+<class name="miniIconsImage" extends="image" stretches="both">

+	<attribute name="showhandcursor" value="true" type="boolean" />

+    <handler name="onmouseover">

+    	if (this.showhandcursor) {

+        	this.setAttribute("x",this.x-1);

+        	this.setAttribute("y",this.y-1);

+        	this.setAttribute("height",this.height+2);

+        	this.setAttribute("width",this.width+2);

+    	}

+        parent.parent.onmouseover.sendEvent();

+    </handler>

+    <handler name="onmouseout">

+    	if (this.showhandcursor) {

+        	this.setAttribute("x",this.x+1);

+            this.setAttribute("y",this.y+1);

+            this.setAttribute("height",this.height-2);

+            this.setAttribute("width",this.width-2);

+    	}

+        parent.parent.onmouseout.sendEvent();

+    </handler>

+</class>

+

+</library>
\ No newline at end of file
diff --git a/WebContent/swf10/modules/conference/library.lzx b/WebContent/swf10/modules/conference/library.lzx
new file mode 100644
index 0000000..9d1d1d1
--- /dev/null
+++ b/WebContent/swf10/modules/conference/library.lzx
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+    <include href="popups/" />

+

+</library>

diff --git a/WebContent/swf10/modules/conference/popups/confirmationSingleSWF10.lzx b/WebContent/swf10/modules/conference/popups/confirmationSingleSWF10.lzx
new file mode 100644
index 0000000..25b3c86
--- /dev/null
+++ b/WebContent/swf10/modules/conference/popups/confirmationSingleSWF10.lzx
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+

+      http://www.apache.org/licenses/LICENSE-2.0

+

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+

+-->

+<library>

+

+<class name="confirmationSingleSWF10" extends="labelExplorerBox" labelid="832"

+    docking="true" resizeable="false" closable="true" height="140" width="300">

+

+    <attribute name="refObj" value="null" />

+

+    <attribute name="refReturnMethod" value="null" />

+

+    <attribute name="showCheckBox" value="true" type="boolean" />

+

+    <attribute name="labeliderror" value="0" type="number" />

+

+    <attribute name="result" type="bool"/>

+    

+    <attribute name="iconResource" value="warning_popup_icon_rsc" type="string" />

+

+	<image x="4" src="$once{ canvas.getThemeImage(parent.iconResource) }" y="24" />

+

+    <labelText labelid="$once{ parent.labeliderror }" y="24"

+    		   width="$once{ parent.width - 40 }"

+    	multiline="true" resize="false" x="30" />

+

+    <handler name="oninit">

+        <![CDATA[

+

+            //Set Position of Confirmation Box as Close as possible to the Mouse

+            var x = parent.getMouse("x");

+            var y = parent.getMouse("y");

+            var newx = x - (this.width/2);

+            var newy = y - (this.height/2);

+

+            if ($debug) Debug.write("1",x,y,newx,newy);

+

+            if (newx < 0) {

+                newx = 20;

+            }

+            if (newy < 0) {

+                newy = 20;

+            }

+

+            //if ($debug) Debug.write("1.1",(this.width + newx + 20),parent.width,this.width);

+

+            var relativeWidth = parent.width;

+            if (relativeWidth > canvas.width) {

+            	relativeWidth = canvas.width;

+            }

+

+            if (this.width + newx + 20 > relativeWidth) {

+            	newx = relativeWidth-this.width-20;

+            }

+

+            if (this.height + newy + 20 > parent.height) {

+            	newy = parent.height-this.height-20;

+            }

+

+            if ($debug) Debug.write("2",newx,newy);

+

+            this.setAttribute("x",newx);

+            this.setAttribute("y",newy);

+

+        ]]>

+    </handler>

+

+    <labelCheckbox name="holddatainSO" visibility="$once{ (parent.showCheckBox) ? 'visible' : 'hidden' }"

+                   labelid="64" x="10" y="$once{ parent.height - 46 }" />

+

+    <simpleLabelButton labelid="61" width="100" x="$once{ parent.width - 105 }" y="$once{ parent.height - 26 }">

+    	<handler name="onclick">

+    		var t = parent.holddatainSO.getValue();

+    		this.parent.close();

+            this.parent.result = false;

+            if (null != this.parent.refObj) {

+                if (parent.refReturnMethod == null) {

+                    this.parent.refObj.sendConfirmation(false,t);

+                } else {

+                    this.parent.refObj[parent.refReturnMethod](false,t);

+                }

+            }

+            if ($debug) Debug.write("end");

+    	</handler>

+    </simpleLabelButton>

+    <simpleLabelButton labelid="60" width="100" x="$once{ parent.width - 210 }" y="$once{ parent.height - 26 }">

+    	<handler name="onclick">

+    		var t = parent.holddatainSO.getValue();

+    		this.parent.close();

+            this.parent.result = true;

+            if (null != this.parent.refObj) {

+                if (parent.refReturnMethod == null) {

+                    this.parent.refObj.sendConfirmation(true,t);

+                } else {

+                    this.parent.refObj[parent.refReturnMethod](true,t);

+                }

+            }

+    	</handler>

+    </simpleLabelButton>

+</class>

+

+<class name="rememberMessageSWF10" extends="labelExplorerBox" labelid="832"

+	   x="$once{ canvas.width/2 - this.width/2 }" y="100"

+	   docking="true" resizeable="false" closable="true" height="140" width="300">

+

+    <attribute name="refObj" value="null" />

+

+    <attribute name="showCheckBox" value="true" type="boolean" />

+

+    <attribute name="labeliderror" value="0" type="number" />

+

+    <view x="4" resource="warning_icon_rsc" y="24" />

+

+    <labelText labelid="$once{ parent.labeliderror }" y="24"

+               width="$once{ parent.width - 40 }"

+        multiline="true" resize="false" x="30" />

+

+    <labelCheckbox name="holddatainSO" visibility="$once{ (parent.showCheckBox) ? 'visible' : 'hidden' }"

+                   labelid="64" x="10" y="$once{ parent.height - 46 }" />

+

+    <simpleLabelButton labelid="642" width="100" x="$once{ parent.width - 105 }" y="$once{ parent.height - 26 }">

+        <handler name="onclick">

+        	var t = parent.holddatainSO.getValue();

+            this.parent.close();

+            if (null != this.parent.refObj) {

+                this.parent.refObj.sendConfirmation(t);

+            }

+        </handler>

+    </simpleLabelButton>

+

+</class>

+

+</library>

diff --git a/WebContent/swf10/modules/conference/popups/errorPopupSWF10.lzx b/WebContent/swf10/modules/conference/popups/errorPopupSWF10.lzx
new file mode 100644
index 0000000..18fb2f9
--- /dev/null
+++ b/WebContent/swf10/modules/conference/popups/errorPopupSWF10.lzx
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<class name="errorPopupSWF10" extends="labelExplorerBox" labelid="204"

+	docking="true" resizeable="false" closable="true" y="100"

+    x="$once{ parent.width/2 - this.width/2 }" height="160" width="324">

+

+	<attribute name="error" value="" type="string" />

+	

+	<attribute name="makeModal" value="false" type="boolean" />

+	

+	<handler name="oninit">

+	   if (this.makeModal) {

+	       lz.ModeManager.makeModal(this);

+	   }

+	</handler>

+	

+	<handler name="onclose">

+       if (this.makeModal) {

+           lz.ModeManager.releaseAll();

+       }

+    </handler>

+

+	<view x="4" resource="warning_icon_rsc" y="24" />

+

+	<view y="24" width="$once{ parent.width - 40 }" height="130" x="30" clip="true">

+		<text fontsize="10" fontstyle="bold" text="${ parent.parent.error }"

+			multiline="true" width="$once{ parent.width - 16 }" selectable="true" />

+	</view>

+    

+    <simpleLabelButton labelid="642" width="100" x="$once{ parent.width-105 }" 

+           y="$once{ parent.height-24 }" 

+           onclick="this.parent.close();" />

+

+</class>

+

+<class name="labelerrorPopupSWF10" extends="errorPopupSWF10">

+

+    <attribute name="errorlabelid" type="number" setter="setErrorLabelId(errorlabelid)" />

+    <method name="setErrorLabelId" args="errorlabelid" >

+        this.errorlabelid = errorlabelid;

+        this.setAttribute("error",canvas.getLabelName(this.errorlabelid));

+        if ($debug) Debug.write("labelerrorPopupSWF10: ",canvas.getLabelName(this.errorlabelid));

+    </method>

+    

+

+</class>

+

+<class name="singletonErrorPopupSWF10" extends="errorPopupSWF10">

+	<handler name="oninit">

+		lz.singletonErrorPopupHolderSWF10.dialogPresent = 1;

+		lz.singletonErrorPopupHolderSWF10.dialogObject = this;

+	</handler>

+	

+	<handler name="ondestroy">

+		lz.singletonErrorPopupHolderSWF10.dialogPresent = 0;

+		lz.singletonErrorPopupHolderSWF10.dialogObject = null;

+	</handler>

+</class>

+

+<class name="singletonErrorPopupHolderSWF10">

+	<attribute name="error" type="string" setter="setError(error)"/>

+	<attribute name="dialogPresent" allocation="class" value="0" />

+	<attribute name="dialogObject" allocation="class" />

+	

+	<method name="setError" args="error">

+	

+		if ( lz.singletonErrorPopupHolderSWF10.dialogPresent == 0 )

+		{

+			lz.singletonErrorPopupHolderSWF10.dialogPresent = 1;

+			lz.singletonErrorPopupHolderSWF10.dialogObject = new lz.singletonErrorPopupSWF10(canvas,{error:error});

+		}

+		else

+		{

+			lz.singletonErrorPopupHolderSWF10.dialogObject.error = error;

+		}

+	</method>

+</class>

+

+</library>
\ No newline at end of file
diff --git a/WebContent/swf10/modules/conference/popups/library.lzx b/WebContent/swf10/modules/conference/popups/library.lzx
new file mode 100644
index 0000000..453df78
--- /dev/null
+++ b/WebContent/swf10/modules/conference/popups/library.lzx
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+	

+	<!-- 

+	FamFam Icon Set

+	Creative Commons 3.0

+	 -->

+	<resource name="warning_icon_rsc" src="resources/error.png" />

+

+    <include href="confirmationSingleSWF10.lzx" />

+    <include href="errorPopupSWF10.lzx" />

+    

+</library>

diff --git a/WebContent/swf10/modules/conference/popups/resources/error.png b/WebContent/swf10/modules/conference/popups/resources/error.png
new file mode 100644
index 0000000..628cf2d
--- /dev/null
+++ b/WebContent/swf10/modules/conference/popups/resources/error.png
Binary files differ
diff --git a/WebContent/swf10/modules/library.lzx b/WebContent/swf10/modules/library.lzx
new file mode 100644
index 0000000..1f553d0
--- /dev/null
+++ b/WebContent/swf10/modules/library.lzx
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+    <include href="conference/" />

+

+</library>

diff --git a/WebContent/swf10/networkTesting/networktesting.lzx b/WebContent/swf10/networkTesting/networktesting.lzx
new file mode 100644
index 0000000..deaa203
--- /dev/null
+++ b/WebContent/swf10/networkTesting/networktesting.lzx
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+          

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<canvas width="100%" height="100%" title="NetworkTesting">

+

+	<switch>

+        <when property="$as3">

+            <passthrough>

+                import flash.external.ExternalInterface;

+            </passthrough>

+        </when>

+    </switch>

+	<switch>

+		<when property="$debug">

+			<method name="doDebugInit">

+				canvas.setAttribute('debug', true);

+			</method>

+			<debug fontsize="11" oninit="Debug.showInternalProperties = true" width="40%" y="50%" x="60%" height="50%" />

+		</when>

+		<otherwise>

+			<method name="doDebugInit">

+			</method>

+		</otherwise>

+    </switch>

+    

+    <include href="testsView.lzx" />

+    <handler name="oninit"><![CDATA[

+    	flash.external.ExternalInterface.call("loadingComplete");

+		doDebugInit();

+	]]></handler>

+	

+    <!--

+        These attributes are rewritten by values from "public/config.xml"

+    -->

+    <attribute name="rtmpProtocol" type="string" value="rtmp" />

+    <attribute name="rtmpHost" type="string" value="" />

+    <attribute name="rtmpPort" type="number" value="1935" />

+    

+    <attribute name="httpProtocol" type="string" value="http" />

+    <attribute name="httpHost" type="string" value="" />

+    <attribute name="httpPort" type="number" value="5080" />

+    <attribute name="uriContext" type="string" value="/openmeetings" />

+    <attribute name="rtmpUriPath" type="string" value="/openmeetings/hibernate" />

+

+	<method name="getBrowserHost">

+		var host:String = ExternalInterface.call("window.location.host.toString()");

+		// in case of IE or some other security issues we will fail ...

+		if (!host) {

+			var url:String = canvas.proxyurl;

+			if (url) {

+				if ($debug) Debug.write("url ", url);

+				var paramsIdx = url.indexOf("?");

+				if (paramsIdx != -1) {

+					url = url.substr(0, paramsIdx);

+				}

+				if ($debug) Debug.write("url ", url);

+				url = url.substr(url.indexOf("//") + 2);

+				var portIdx = url.indexOf(":");

+				host = url.substr(0, portIdx != -1 ? portIdx : url.indexOf("/"));

+				if ($debug) Debug.write("host ", host);

+			}

+		}

+		return host;

+	</method>

+	

+	<method name="getSettings">

+		var settingsPtr = canvas.settings.getPointer();

+		

+		var useSSL:Boolean = ("yes" == settingsPtr.xpathQuery("config/useSSL/text()"));

+		canvas.setAttribute("rtmpProtocol", useSSL ? "rtmps" : "rtmp");

+		canvas.setAttribute("rtmpHost", settingsPtr.xpathQuery("config/rtmphostlocal/text()"));

+		if (!canvas.rtmpHost) {

+			canvas.rtmpHost = getBrowserHost();

+		}

+		canvas.setAttribute("rtmpPort", settingsPtr.xpathQuery("config/rtmpport/text()"));

+		

+		canvas.setAttribute("httpProtocol", settingsPtr.xpathQuery("config/protocol/text()"));

+		canvas.setAttribute("httpHost", settingsPtr.xpathQuery("config/httphostlocal/text()"));

+		if (!canvas.httpHost) {

+			canvas.httpHost = rtmpHost;

+		}

+		canvas.setAttribute("httpPort", settingsPtr.xpathQuery("config/red5httpport/text()"));

+

+		canvas.setAttribute("uriContext", settingsPtr.xpathQuery("config/httpRootKey/text()"));

+		canvas.setAttribute("rtmpUriPath", canvas.uriContext + "hibernate");

+	</method>

+

+    <method name="showTests">

+        var tests = new lz.TestsView(canvas, {name:"testsView"});

+        tests.testAll();

+    </method>

+

+    <dataset type="http" name="settings" request="false" proxied="false">

+        <handler name="oninit">

+            this.setAttribute("src", "config.xml");

+            this.doRequest();

+        </handler>

+        <handler name="ondata">

+            if ($debug) Debug.write("Settings are retrieved");

+            canvas.getSettings();

+            canvas.showTests();

+        </handler>

+        <handler name="onerror" args="e">

+            if ($debug) Debug.write("Settings error [" + this.src + "]", e);

+        </handler>

+        <handler name="ontimeout" args="e">

+            if ($debug) Debug.write("Settings timeout error", e);

+        </handler>

+    </dataset>

+

+    <attribute name="busy" type="boolean" value="false"/>

+    <attribute name="log" type="string" value="" />

+

+    <attribute name="testsView" value="null"/>

+

+</canvas>

diff --git a/WebContent/swf10/networkTesting/resources/edit-copy.png b/WebContent/swf10/networkTesting/resources/edit-copy.png
new file mode 100644
index 0000000..8dd48c4
--- /dev/null
+++ b/WebContent/swf10/networkTesting/resources/edit-copy.png
Binary files differ
diff --git a/WebContent/swf10/networkTesting/tests/BaseURLLoadTest.lzx b/WebContent/swf10/networkTesting/tests/BaseURLLoadTest.lzx
new file mode 100644
index 0000000..7660b0f
--- /dev/null
+++ b/WebContent/swf10/networkTesting/tests/BaseURLLoadTest.lzx
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+

+      http://www.apache.org/licenses/LICENSE-2.0

+

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+

+-->

+<library>

+

+<class name="BaseURLLoadTest" extends="NetworkTest">

+

+    <switch>

+        <when property="$as3">

+            <passthrough>

+                import flash.events.*;

+                import flash.net.*;

+                import flash.utils.*;

+            </passthrough>

+        </when>

+    </switch>

+

+    <attribute name="testsCount" type="number" value="0" />

+    <attribute name="testTypeParameter" type="string" value="null" />

+    <attribute name="verbose" type="boolean" value="true" />

+

+    <attribute name="startTime" type="number" value="0" />

+    <attribute name="wholeTime" type="number" value="0" />

+    <attribute name="maxTime" type="number" value="0" />

+    <attribute name="minTime" type="number" value="999999" />

+    <attribute name="finishedTestsCount" type="number" value="0" />

+    <attribute name="successfulTestsCount" type="number" value="0" />

+

+    <attribute name="hostUrl" type="string" value="" />

+    <attribute name="loaderInited" type="boolean" value="false" />

+    <attribute name="request" value="null" />

+    <attribute name="loader" value="null" />

+

+    <method name="initLoader">

+        hostUrl = getBaseUrl() + "networktest.upload?testType=" + testTypeParameter;

+        request = new URLRequest(hostUrl);

+

+        loader = new URLLoader();

+        loader.addEventListener(Event.COMPLETE, this.onComplete);

+        loader.addEventListener(IOErrorEvent.IO_ERROR, this.onError);

+        loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.onError);

+

+        loaderInited = true;

+    </method>

+

+    <method name="start">

+        if (!loaderInited) {

+            this.initLoader();

+        }

+        finishedTestsCount = 0;

+        successfulTestsCount = 0;

+        wholeTime = 0;

+        maxTime = 0;

+        minTime = 999999;

+

+        this.log("start test... " + hostUrl);

+        startTime = getTimer();

+        loader.load(request);

+    </method>

+

+    <method name="forcedStop">

+        loader.close();

+        this.log("stopped");

+    </method>

+

+    <method name="onComplete" args="e">

+        <![CDATA[

+        var endTime = getTimer();

+        var pingTime = endTime - startTime;

+        wholeTime += pingTime;

+        if (pingTime > maxTime) {

+            maxTime = pingTime;

+        }

+        if (pingTime < minTime) {

+            minTime = pingTime;

+        }

+

+        if (verbose) {

+            this.log("load time = " + pingTime + " ms");

+        }

+

+        finishedTestsCount++;

+        successfulTestsCount++;

+        if (finishedTestsCount < testsCount && running) {

+            startTime = getTimer();

+            loader.load(request);

+        } else {

+            this.report();

+        }

+        ]]>

+    </method>

+

+    <method name="onError" args="e">

+        <![CDATA[

+        if (verbose) {

+            this.log("Error - " + e);

+        }

+

+        finishedTestsCount++;

+        if (finishedTestsCount < testsCount && running) {

+            startTime = getTimer();

+            loader.load(request);

+        } else {

+            this.report();

+        }

+        ]]>

+    </method>

+

+    <method name="report">

+        var report = "report:";

+        if (successfulTestsCount > 0) {

+            report += "\n" + this.generateReport();

+        } else {

+            report += " connection error";

+        }

+        this.log(report);

+

+        if (successfulTestsCount > 0) {

+            this.setPassed();

+        } else {

+            this.setFailed();

+        }

+    </method>

+

+    <method name="generateReport" />

+

+</class>

+

+</library>

diff --git a/WebContent/swf10/networkTesting/tests/DownloadSpeedTest.lzx b/WebContent/swf10/networkTesting/tests/DownloadSpeedTest.lzx
new file mode 100644
index 0000000..a5ea115
--- /dev/null
+++ b/WebContent/swf10/networkTesting/tests/DownloadSpeedTest.lzx
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+

+      http://www.apache.org/licenses/LICENSE-2.0

+

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+

+-->

+<library>

+

+<class name="DownloadSpeedTest" extends="BaseURLLoadTest">

+

+    <handler name="oninit">

+        this.setAttribute("testsCount", 1);

+        this.setAttribute("testName", "Download speed");

+        this.setAttribute("testTypeParameter", "download");

+        this.setAttribute("verbose", false);

+        this.setAttribute("resultText", true);

+    </handler>

+

+    <method name="generateReport">

+        var mBytes = loader.bytesTotal/(1024*1024);

+        var timeSec = wholeTime/1000;

+        var speed = mBytes/timeSec;

+

+        var report = "Bytes downloaded: " + mBytes + " Mb\n";

+        report += "Download time: " + timeSec + " s\n";

+        report += "Download speed: " + speed + " Mb/s\n";

+

+        resultLabel.setAttribute("text", "");

+        resultLabel.addFormat("%.2f\n%s", speed, "Mb/s");

+

+        return report;

+    </method>

+

+</class>

+

+</library>

diff --git a/WebContent/swf10/networkTesting/tests/JitterTest.lzx b/WebContent/swf10/networkTesting/tests/JitterTest.lzx
new file mode 100644
index 0000000..dd80bb0
--- /dev/null
+++ b/WebContent/swf10/networkTesting/tests/JitterTest.lzx
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+

+      http://www.apache.org/licenses/LICENSE-2.0

+

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+

+-->

+<library>

+

+<class name="JitterTest" extends="BaseURLLoadTest">

+

+    <handler name="oninit">

+        this.setAttribute("testsCount", 100);

+        this.setAttribute("testName", "Jitter");

+        this.setAttribute("testTypeParameter", "jitter");

+        this.setAttribute("verbose", false);

+        this.setAttribute("resultText", true);

+    </handler>

+

+    <method name="generateReport">

+        <![CDATA[

+        var averageTime = wholeTime / successfulTestsCount;

+        var jitterMax = maxTime - averageTime;

+        var jitterMin = minTime - averageTime;

+        var report = "Average time: " + averageTime + " ms\n";

+        report += "Min time: " + minTime + " ms\n";

+        report += "Max time: " + maxTime + " ms\n";

+        report += "Jitter: " + jitterMax + " ms and " + jitterMin + " ms \n";

+

+        var max = -jitterMin;

+        if (jitterMax > max) {

+            max = jitterMax;

+        }

+

+        resultLabel.setAttribute("text", "");

+        resultLabel.addFormat("%.0d\n%s", max, "ms");

+

+        return report;

+        ]]>

+    </method>

+

+</class>

+

+</library>

diff --git a/WebContent/swf10/networkTesting/tests/NetworkTest.lzx b/WebContent/swf10/networkTesting/tests/NetworkTest.lzx
new file mode 100644
index 0000000..9fe5e8f
--- /dev/null
+++ b/WebContent/swf10/networkTesting/tests/NetworkTest.lzx
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+

+      http://www.apache.org/licenses/LICENSE-2.0

+

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+

+-->

+<library>

+

+<class name="NetworkTest" extends="view">

+

+    <attribute name="testName" type="string" value="null" />

+    <attribute name="protocol" type="string" value="null" />

+    <attribute name="host" type="string" value="null" />

+    <attribute name="port" type="number" value="null" />

+    <attribute name="running" type="boolean" value="false" />

+    <attribute name="allTests" type="boolean" value="false" />

+    <attribute name="resultText" type="boolean" value="false" />

+

+    <method name="start" />

+    <method name="forcedStop" />

+

+    <method name="startAllTestsMode">

+        allTests = true;

+        this.setRunning();

+    </method>

+

+    <view name="picture">

+        <view name="rsc" resource="notrun" width="113" height="113" />

+    </view>

+    <text name="nameLabel"

+          text="${parent.testName}"

+          x="${(parent.picture.rsc.width - this.width)/2}"

+          y="$once{parent.picture.rsc.height}"

+    />

+    <text name="resultLabel"

+          visible="false"

+          fgcolor="white"

+          align="center"

+          fontsize="16"

+    />

+

+    <handler name="onclick">

+        if (running) {

+            this.setStopped();

+        } else {

+            allTests = false;

+            this.setRunning();

+        }

+    </handler>

+

+    <method name="handleAllTestsMode">

+        if (allTests) {

+            canvas.testsView.testAll();

+        }

+    </method>

+    

+    <method name="setPassed">

+        if (running) {

+            running=false;

+            if (resultText) {

+                picture.rsc.setAttribute("resource", "passed_result");

+                var x = (picture.rsc.width - resultLabel.width)/2;

+                var y = (picture.rsc.height - resultLabel.height)/2;

+                resultLabel.setAttribute("x", x);

+                resultLabel.setAttribute("y", y);

+                resultLabel.setAttribute("visible", true);

+            } else {

+                picture.rsc.setAttribute("resource", "passed");

+            }

+            canvas.setAttribute("busy", false);

+            this.handleAllTestsMode();

+        }

+    </method>

+

+    <method name="setFailed">

+        if (running) {

+            running=false;

+            picture.rsc.setAttribute("resource", "failed");

+            canvas.setAttribute("busy", false);

+            this.handleAllTestsMode();

+        }

+    </method>

+

+    <method name="setRunning">

+        if (canvas.busy) {

+            return;

+        }

+        canvas.setAttribute("busy", true);

+        this.start();

+        running=true;

+        resultLabel.setAttribute("visible", false);

+        picture.rsc.setAttribute("resource", "running");

+        picture.rsc.play();

+    </method>

+

+    <method name="setStopped">

+        this.forcedStop();

+        running=false;

+        picture.rsc.setAttribute("resource", "notrun");

+        canvas.setAttribute("busy", false);

+        this.handleAllTestsMode();

+    </method>

+

+    <method name="log" args="message">

+        var str = testName + ": " + message + "\n";

+        canvas.log += str;

+        if ($debug) Debug.write(str);

+    </method>

+

+    <method name="getBaseUrl">

+    	var hostUrl = protocol + "://" + host + ":" + port + canvas.uriContext;

+    	return hostUrl + (hostUrl.slice(-1) == '/' ? '' : '/');

+    </method>

+

+</class>

+

+</library>

diff --git a/WebContent/swf10/networkTesting/tests/PingTest.lzx b/WebContent/swf10/networkTesting/tests/PingTest.lzx
new file mode 100644
index 0000000..b086d3b
--- /dev/null
+++ b/WebContent/swf10/networkTesting/tests/PingTest.lzx
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+

+      http://www.apache.org/licenses/LICENSE-2.0

+

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+

+-->

+<library>

+

+<class name="PingTest" extends="BaseURLLoadTest">

+

+    <handler name="oninit">

+        this.setAttribute("testsCount", 10);

+        this.setAttribute("testName", "Ping");

+        this.setAttribute("testTypeParameter", "ping");

+    </handler>

+

+    <method name="generateReport">

+        var averageTime = wholeTime / successfulTestsCount;

+        var packetsLost = testsCount - successfulTestsCount;

+        var report = "Average ping time: " + averageTime + " ms\n";

+        report += "Packets received: " + successfulTestsCount + "\n";

+        report += "Packets lost: " + packetsLost + "\n";

+

+        return report;

+    </method>

+

+</class>

+

+</library>

diff --git a/WebContent/swf10/networkTesting/tests/PortAvailabilityTest.lzx b/WebContent/swf10/networkTesting/tests/PortAvailabilityTest.lzx
new file mode 100644
index 0000000..6aacf1b
--- /dev/null
+++ b/WebContent/swf10/networkTesting/tests/PortAvailabilityTest.lzx
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+

+      http://www.apache.org/licenses/LICENSE-2.0

+

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+

+-->

+<library>

+

+<class name="PortAvailabilityTest" extends="NetworkTest">

+

+    <switch>

+        <when property="$as3">

+            <passthrough>

+                import flash.events.*;

+                import flash.net.*;

+                import flash.system.*;

+            </passthrough>

+        </when>

+    </switch>

+

+    <rtmpconnection name="rtmp" autoconnect="false" debug="true" />

+

+    <handler name="oninit">

+        this.setAttribute("testName", "Port");

+    </handler>

+

+    <method name="start">

+        var hostUrl = protocol + "://" + host + ":" + port + canvas.rtmpUriPath;

+        rtmp.setAttribute("src", hostUrl);

+        this.log(": start test... " + hostUrl);

+

+        rtmp.connect();

+    </method>

+

+    <method name="forcedStop">

+        this.log("stopped");

+		disconnect();

+    </method>

+

+	<method name="disconnect">

+       rtmp._nc.close();

+       rtmp.setAttribute('status', 'disconnected');

+       rtmp.setAttribute('stage', 0);

+	</method>

+	

+    <handler name="onconnect" reference="rtmp">

+		if (running) {

+			this.log("port is available\n");

+			this.setPassed();

+			disconnect();

+        }

+    </handler>

+

+    <handler name="onerror" args="e" reference="rtmp">

+        if (running) {

+            this.log("connection error - " + e + "\n");

+            this.setFailed();

+        }

+    </handler>

+

+    <handler name="onstatus" args="e" reference="rtmp">

+        if (running) {

+        	switch(e) {

+        		case "timed out":

+        		case "connection failed":

+        			this.setFailed();

+        			break;

+        	}

+            if($debug) Debug.write(testName + ": RTMP connect status - ", e);

+        }

+    </handler>

+

+</class>

+

+</library>

diff --git a/WebContent/swf10/networkTesting/tests/UploadSpeedTest.lzx b/WebContent/swf10/networkTesting/tests/UploadSpeedTest.lzx
new file mode 100644
index 0000000..01e1402
--- /dev/null
+++ b/WebContent/swf10/networkTesting/tests/UploadSpeedTest.lzx
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+

+      http://www.apache.org/licenses/LICENSE-2.0

+

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+

+-->

+<library>

+

+<class name="UploadSpeedTest" extends="NetworkTest">

+

+    <switch>

+        <when property="$as3">

+            <passthrough>

+                import flash.events.*;

+                import flash.net.*;

+                import flash.utils.*;

+            </passthrough>

+        </when>

+    </switch>

+

+    <attribute name="startTime" type="number" value="0" />

+

+    <attribute name="hostUrl" type="string" value="" />

+    <attribute name="loaderInited" type="boolean" value="false" />

+    <attribute name="request" value="null" />

+    <attribute name="loader" value="null" />

+

+    <handler name="oninit">

+        this.setAttribute("testName", "Upload speed");

+        this.setAttribute("resultText", true);

+    </handler>

+

+    <method name="initLoader">

+        hostUrl = getBaseUrl() + "networktest.upload";

+        request = new URLRequest(hostUrl);

+        request.method = URLRequestMethod.POST;

+        request.data = getDataString();

+

+        loader = new URLLoader();

+        loader.addEventListener(Event.COMPLETE, this.onComplete);

+        loader.addEventListener(IOErrorEvent.IO_ERROR, this.onError);

+        loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.onError);

+

+        loaderInited = true;

+    </method>

+

+    <method name="start">

+        if (!loaderInited) {

+            this.initLoader();

+        }

+

+        this.log("start test... " + hostUrl);

+        startTime = getTimer();

+        loader.load(request);

+    </method>

+

+    <method name="forcedStop">

+        loader.close();

+        this.log("stopped");

+    </method>

+

+    <method name="onComplete" args="e">

+        if (running) {

+            var endTime = getTimer();

+            var loadTime = endTime - startTime;

+            var loadTimeSec = loadTime/1000;

+            var mBytes = request.data.length/(1024*1024);

+            var speed = mBytes / loadTimeSec;

+

+            var report = "report:\n";

+            report += "Bytes uploaded: " + mBytes + " Mb\n";

+            report += "Upload time: " + loadTimeSec + " s\n";

+            report += "Upload speed: " + speed + " Mb/s\n";

+

+            resultLabel.setAttribute("text", "");

+            resultLabel.addFormat("%.2f\n%s", speed, "Mb/s");

+            this.log(report);

+            this.setPassed();

+        }

+    </method>

+

+    <method name="onError" args="e">

+        if (running) {

+            this.log("error - " + e);

+            this.setFailed();

+        }

+    </method>

+

+    <!-- returns a 1 Mb string-->

+    <method name="getDataString">

+        <![CDATA[

+        var result = "";

+        var str64 = "0000000000000000000000000000000000000000000000000000000000000000";

+        for (var i=0; i<16384; i++) {

+            result += str64;

+        }

+        return result;

+        ]]>

+    </method>

+

+</class>

+

+</library>

diff --git a/WebContent/swf10/networkTesting/tests/library.lzx b/WebContent/swf10/networkTesting/tests/library.lzx
new file mode 100644
index 0000000..9b8575d
--- /dev/null
+++ b/WebContent/swf10/networkTesting/tests/library.lzx
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+    <resource name="failed" src="resources/failed.png" />

+    <resource name="notrun" src="resources/notrun.png" />

+    <resource name="passed" src="resources/passed.png" />

+    <resource name="passed_result" src="resources/passed_result.png" />

+    <resource name="running" src="resources/running.swf" />

+

+    <include href="BaseURLLoadTest.lzx" />

+    <include href="DownloadSpeedTest.lzx" />

+    <include href="JitterTest.lzx" />

+    <include href="NetworkTest.lzx" />

+    <include href="PingTest.lzx" />

+    <include href="PortAvailabilityTest.lzx" />

+    <include href="UploadSpeedTest.lzx" />

+

+</library>

diff --git a/WebContent/swf10/networkTesting/tests/resources/failed.png b/WebContent/swf10/networkTesting/tests/resources/failed.png
new file mode 100644
index 0000000..8654b24
--- /dev/null
+++ b/WebContent/swf10/networkTesting/tests/resources/failed.png
Binary files differ
diff --git a/WebContent/swf10/networkTesting/tests/resources/notrun.png b/WebContent/swf10/networkTesting/tests/resources/notrun.png
new file mode 100644
index 0000000..cb869eb
--- /dev/null
+++ b/WebContent/swf10/networkTesting/tests/resources/notrun.png
Binary files differ
diff --git a/WebContent/swf10/networkTesting/tests/resources/passed.png b/WebContent/swf10/networkTesting/tests/resources/passed.png
new file mode 100644
index 0000000..5929d15
--- /dev/null
+++ b/WebContent/swf10/networkTesting/tests/resources/passed.png
Binary files differ
diff --git a/WebContent/swf10/networkTesting/tests/resources/passed_result.png b/WebContent/swf10/networkTesting/tests/resources/passed_result.png
new file mode 100644
index 0000000..d4d6f84
--- /dev/null
+++ b/WebContent/swf10/networkTesting/tests/resources/passed_result.png
Binary files differ
diff --git a/WebContent/swf10/networkTesting/tests/resources/running.swf b/WebContent/swf10/networkTesting/tests/resources/running.swf
new file mode 100644
index 0000000..138d3e1
--- /dev/null
+++ b/WebContent/swf10/networkTesting/tests/resources/running.swf
Binary files differ
diff --git a/WebContent/swf10/networkTesting/testsView.lzx b/WebContent/swf10/networkTesting/testsView.lzx
new file mode 100644
index 0000000..d413229
--- /dev/null
+++ b/WebContent/swf10/networkTesting/testsView.lzx
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+

+      http://www.apache.org/licenses/LICENSE-2.0

+

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+

+-->

+<library>

+

+<include href="tests/" />

+<resource name="log" src="resources/edit-copy.png" />

+

+<class name="TestsView" extends="view">

+

+    <attribute name="offset" type="number" value="20" />

+    <attribute name="smallOffset" type="number" value="5" />

+

+    <text name="label"

+        text="Click a play button to run a test"

+        x="${parent.offset}"

+        y="${parent.offset}"

+    />

+    <view name="logButton"

+        x="${parent.width - this.rsc.width - parent.offset}"

+        y="${parent.label.y + (parent.label.height - this.rsc.height)/2}"

+    >

+        <image name="rsc" resource="log" height="16" width="16"/>

+        <handler name="onclick">

+            lz.Browser.setClipboard(canvas.log);

+        </handler>

+    </view>

+

+    <text name="logLabel"

+        text="Copy the log to the clipboard:"

+        x="${parent.logButton.x - this.width - parent.smallOffset}"

+        y="${parent.label.y}"

+    />

+

+    <PingTest

+        name="pingTest" protocol="${canvas.httpProtocol}" host="${canvas.httpHost}" port="${canvas.httpPort}"

+        x="${parent.offset}"

+        y="${parent.label.y + parent.label.height + parent.offset/2}"

+    />

+    <PortAvailabilityTest

+        name="portTest" protocol="${canvas.rtmpProtocol}" host="${canvas.rtmpHost}" port="${canvas.rtmpPort}"

+        x="${parent.pingTest.x + parent.pingTest.width + parent.offset}"

+        y="${parent.pingTest.y}"

+     />

+    <JitterTest

+        name="jitterTest" protocol="${canvas.httpProtocol}" host="${canvas.httpHost}" port="${canvas.httpPort}"

+        x="${parent.portTest.x + parent.portTest.width + parent.offset}"

+        y="${parent.pingTest.y}"

+    />

+    <DownloadSpeedTest

+        name="downloadTest" protocol="${canvas.httpProtocol}" host="${canvas.httpHost}" port="${canvas.httpPort}"

+        x="${parent.jitterTest.x + parent.jitterTest.width + parent.offset}"

+        y="${parent.pingTest.y}"

+    />

+

+    <UploadSpeedTest

+        name="uploadTest" protocol="${canvas.httpProtocol}" host="${canvas.httpHost}" port="${canvas.httpPort}"

+        x="${parent.downloadTest.x + parent.downloadTest.width + parent.offset}"

+        y="${parent.pingTest.y}"

+    />

+

+    <attribute name="currentTestNumber" type="number" value="0" />

+    <method name="testAll">

+        var nextTest;

+        if (0 == currentTestNumber) {

+            nextTest = pingTest;

+        } else if (1 == currentTestNumber) {

+            nextTest = portTest;

+        } else if (2 == currentTestNumber) {

+            nextTest = jitterTest;

+        } else if (3 == currentTestNumber) {

+            nextTest = downloadTest;

+        } else if (4 == currentTestNumber) {

+            nextTest = uploadTest;

+        } else if (5 == currentTestNumber) {

+            nextTest = null;

+        }

+

+        if (null != nextTest) {

+            currentTestNumber++;

+            nextTest.startAllTestsMode();

+        }

+    </method>

+

+</class>

+

+</library>

diff --git a/WebContent/swf10/screensharing/library.lzx b/WebContent/swf10/screensharing/library.lzx
new file mode 100644
index 0000000..0182183
--- /dev/null
+++ b/WebContent/swf10/screensharing/library.lzx
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+    <!-- FamFam Icon Set -->
+	<resource name="menupointer_rsc" src="resources/cursor.png" />
+	
+	<include href="screenSharingDialog.lzx" />
+    <include href="videoObjectPlayScreenShare.lzx" />
+
+</library>
diff --git a/WebContent/swf10/screensharing/resources/cursor.png b/WebContent/swf10/screensharing/resources/cursor.png
new file mode 100644
index 0000000..532f532
--- /dev/null
+++ b/WebContent/swf10/screensharing/resources/cursor.png
Binary files differ
diff --git a/WebContent/swf10/screensharing/screenSharingDialog.lzx b/WebContent/swf10/screensharing/screenSharingDialog.lzx
new file mode 100644
index 0000000..b83322a
--- /dev/null
+++ b/WebContent/swf10/screensharing/screenSharingDialog.lzx
@@ -0,0 +1,1122 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+    
+<class name="screenSharingDialogContainer" extends="view" 
+       width="${parent.width }" height="${ parent.height }">
+	
+	<method name="closeAll">
+		<![CDATA[
+		    if ($debug) Debug.write("screenSharingDialogContainer closeAll");
+            for (var eg in this.subviews) {
+                this.subviews[eg].doClose();
+            }
+            //do first close the video connection before removing the client view
+            this.clearAllSessions();
+        ]]>
+	</method>
+    
+    <method name="clearAllSessions">
+        <![CDATA[
+            if ($debug) Debug.write("screenSharingDialogContainer clearAllSessions");
+            for (var eg in this.subviews) {
+                this.subviews[eg].destroy();
+            }
+        ]]>
+    </method>
+    
+    <method name="searchForSession" args="streamPublishName">
+        <![CDATA[
+        
+            for (var i=0;i<this.subviews.length;i++) {
+                if (this.subviews[i].initObject.streamPublishName == streamPublishName) {
+                    return this.subviews[i];
+                }
+            }
+            
+            if ($debug) Debug.write("No Screen Session "+streamPublishName);
+            return null;
+        ]]>
+    </method>
+    
+</class>    
+
+<class name="screenSharingDialog" extends="labelExplorerBox" labelid="855"
+    docking="true" resizeable="true" closable="true" 
+    width="270" x="$once{ canvas.width - this.width - 20 }" height="100">
+    
+    <attribute name="isStarted" value="false" type="boolean" />
+    
+    <attribute name="currentCursorObject" value="null" />
+    
+    <attribute name="initObject" value="null"/>
+    
+    <handler name="oninit">
+    	var fName = " " + this.initObject.firstname 
+                  + " " + this.initObject.lastname;
+        var tString = canvas.getLabelName(849)
+                        + " " + fName
+                        + " " + canvas.getLabelName(850);
+        
+		this.setAttribute('title', canvas.getLabelName(855) + " " + fName);
+        if (parent.subviews.length > 1) {
+            this.setAttribute("y",((parent.subviews.length-1)*100)+40);
+        } else {
+            this.setAttribute("y",40);
+        }
+        
+        this._initText._infoText.setAttribute("text",tString);
+    </handler>
+    
+    <method name="startViewerSession">
+        <![CDATA[
+        
+            this.isStarted = true;
+            
+            this._subcontent.setAttribute("visibility","visible");
+            
+            this._initText.setAttribute("visibility","hidden");
+        
+            this._showScreenSharing._y.setAttribute("to",0);
+            this._showScreenSharing._height.setAttribute("to",canvas.height);
+            this._showScreenSharing._width.setAttribute("to",canvas.width-260);
+            this._showScreenSharing._x.setAttribute("to",260);
+        
+            this._showScreenSharing.setAttribute('started', true);
+            
+            if ($debug) Debug.write("this.initObject ",this.initObject);
+            
+            this._subcontent._content._video.setAttribute("width",this.initObject.VWidth);
+            this._subcontent._content._video.setAttribute("height",this.initObject.VHeight);
+            
+            this._subcontent._content._video._videostream.playStream(this.initObject.streamPublishName,-1);
+            
+        ]]>
+    </method>
+    
+    <method name="doMinimize">
+        <![CDATA[
+           
+           this.isStarted = false;
+           
+           this._subcontent._content._video._videostream.stop();
+           
+           this._showScreenSharing._y.setAttribute("to",((parent.subviews.length-1)*100)+40);
+           this._showScreenSharing._x.setAttribute("to",canvas.width - 270 - 20);
+           this._showScreenSharing._height.setAttribute("to",100);
+           this._showScreenSharing._width.setAttribute("to",270);
+           
+           this._showScreenSharing.setAttribute('started', true);
+           
+           this._infoBox.setAttribute("visibility","hidden");
+           this._zoombar.setAttribute("visibility","hidden");
+           this._pause.setAttribute("visibility","hidden");
+           this._close.setAttribute("visibility","hidden");
+           
+           this._subcontent.setAttribute("visibility","hidden");
+           
+        ]]>
+    </method>
+    
+    <method name="doClose">
+        if (this.isStarted) {
+            this._subcontent._content._video._videostream.stop();
+        }
+        this.close();
+    </method>
+    
+    <method name="updateCursor" args="x,y">
+        if (this.currentCursorObject == null) {
+            this.currentCursorObject = new lz.screenShareCursorObject(this._subcontent._content,{
+                        refObj:this._subcontent._content._video._videostream
+                    });
+        }
+        this.currentCursorObject.setAttribute("x",x * (this._zoombar._zoom.initialNumber/100));
+        this.currentCursorObject.setAttribute("y",y * (this._zoombar._zoom.initialNumber/100));
+    </method>    
+    
+    <view name="_initText">
+        
+        <!--
+        <view x="4" resource="warning_icon_rsc" y="24" />
+         -->
+         
+        <labelText name="_infoText" labelid="724" width="230" 
+                   x="10" y="26" multiline="true" />
+    
+        <simpleLabelButton name="_startButton" labelid="848" x="10" width="124" y="78">
+            <handler name="onclick">
+                parent.parent.startViewerSession();
+            </handler>
+        </simpleLabelButton> 
+          
+        <simpleLabelButton name="_closeButton" labelid="851" x="138" width="124" y="78">
+            <handler name="onclick">
+                parent.parent.close();
+            </handler>
+        </simpleLabelButton>   
+        
+    </view>
+    
+    <view name="_subcontent" width="${ parent.width }" visibility="hidden"
+          y="20" height="${ parent.height - 48 }" clip="true">
+    	
+        <view name="_content">
+            
+            <videoObjectPlayScreenShare name="_video">
+            	
+            	<contextmenu>
+			
+					<contextmenuitem caption="$once{ canvas.getLabelName(1087) }" 
+									 onselect="parent.parent.parent.pasteContent()" />
+		        
+		        </contextmenu>
+		                
+                <attribute name="doSendEvents" type="boolean" value="true" />
+                
+                <attribute name="idleDelegate" value="null" type="expression" />
+                
+                <attribute name="isMouseOverActive" value="false" type="boolean"/>
+                
+                <attribute name="lastMouseX" value="-1" type="number"/>
+                <attribute name="lastMouseY" value="-1" type="number"/>
+                
+                <attribute name="isMac" value="false" type="boolean"/>
+                <attribute name="isWindows" value="false" type="boolean"/>
+                <attribute name="isLinux" value="false" type="boolean"/>
+                
+                <handler name="oninit">
+                	
+                	var osInfo = lz.Browser.getOS();
+                	
+                	if ($debug) Debug.write("osInfo :: ",osInfo);
+                	
+                	if (osInfo.indexOf("Mac") >= 0) {
+                		this.isMac = true;
+                	} else if (osInfo.indexOf("Win") >= 0) {
+                        this.isWindows = true;
+                    } else if (osInfo.indexOf("Linux") >= 0) {
+                        this.isLinux = true;
+                    }
+                    
+                    if ($debug) Debug.write("this.isMac :: ",this.isMac);
+                    if ($debug) Debug.write("this.isWindows :: ",this.isWindows);
+                	
+                    this.idleDelegate = new LzDelegate( this, "sendMousePosition" );
+                </handler>
+                
+                <method name="pasteContent">
+                	if ($debug) Debug.write("pasteContent :: ");
+                </method>
+                
+                <handler name="onkeydown" reference="lz.Keys" args="k">
+                	<![CDATA[
+	                    if (this.isMouseOverActive) {
+	                        if ($debug) Debug.write("onkeydown ",k);
+	                        
+	                        var tObject = new Object();
+	                        tObject["action"] = "onkeydown";
+	                        tObject["k"] = k;
+	                        
+	                        var downkeys = lz.Keys.downKeysArray;
+	                        
+	                        if ($debug) Debug.write("downkeys ",downkeys,downkeys.length);
+				
+	                        if (this.isWindows) {
+	                        
+    							if (downkeys.length==2 && downkeys[0]==16) {
+    								if (k == 187) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "*";
+    		                        } else if (k == 191) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "'";
+    		                        } else if (k == 189) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "_";
+    		                        } else if (k == 221) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "`";
+    		                        } else if (k == 219) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "?";
+    		                        } else if (k == 226) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = ">";
+    		                        } else if (k == 220) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "°";
+    		                        } else if (k == 186) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "Ü";
+    		                        } else if (k == 222) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "Ä";
+    		                        } else if (k == 192) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "Ö";
+    		                        }
+    		                        
+    		                        
+    							} else if (downkeys.length==2 && downkeys[0]==18) {
+    								
+    								if (k == 81) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "@";
+    								} else if (k == 226) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "|";
+    								}
+    								
+    							} else {
+    								
+    		                        if (k == 187) {
+    		                        	tObject["k"] = -1;
+    		                        	tObject["c"] = "+";
+    		                        } else if (k == 191) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "#";
+    		                        } else if (k == 189) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "-";
+    		                        } else if (k == 221) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "`";
+    		                        } else if (k == 219) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "ß";
+    		                        } else if (k == 226) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "<";
+    		                        } else if (k == 220) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "^";
+    		                        } else if (k == 186) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "ü";
+    		                        } else if (k == 222) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "ä";
+    		                        } else if (k == 192) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "ö";
+    		                        }
+    		                        
+    							}
+							
+	                        } else if (this.isMac) {
+	                        	
+	                        	if (downkeys.length==2 && downkeys[0]==16) {
+                                    if (k == 221) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "*";
+                                    } else if (k == 220) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "'";
+                                    } else if (k == 191) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "_";
+                                    } else if (k == 225) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "`";
+                                    } else if (k == 189) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "?";
+                                    } else if (k == 192) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = ">";
+                                    } else if (k == 176) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "°";
+                                    } else if (k == 219) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "Ü";
+                                    } else if (k == 222) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "Ä";
+                                    } else if (k == 186) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "Ö";
+                                    }
+                                    
+                                    
+                                } else if (downkeys.length==2 && downkeys[0]==18) {
+                                    
+                                    if (k == 50) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "@";
+                                    } else if (k == 55) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "|";
+                                    }
+                                    
+                                } else {
+                                    
+                                    if (k == 221) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "+";
+                                    } else if (k == 220) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "#";
+                                    } else if (k == 191) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "-";
+                                    } else if (k == 225) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "`";
+                                    } else if (k == 189) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "ß";
+                                    } else if (k == 192) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "<";
+                                    } else if (k == 176) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "^";
+                                    } else if (k == 219) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "ü";
+                                    } else if (k == 222) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "ä";
+                                    } else if (k == 186) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "ö";
+                                    }
+                                    
+                                }
+	                        	
+	                        } else if (this.isLinux) {
+	                        	
+	                        	if (downkeys.length==2 && downkeys[0]==16) {
+                                    if (k == 187) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "*";
+                                    } else if (k == 51) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "'";
+                                    } else if (k == 189) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "_";
+                                    } else if (k == 222) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "`";
+                                    } else if (k == 223) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "?";
+                                    } else if (k == 188) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = ">";
+                                    } else if (k == 176) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "°";
+                                    } else if (k == 252) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "Ü";
+                                    } else if (k == 228) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "Ä";
+                                    } else if (k == 246) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "Ö";
+                                    }
+                                    
+                                    
+                                } else if (downkeys.length==2 && downkeys[0]==18) {
+                                    
+                                    if (k == 50) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "@";
+                                    } else if (k == 55) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "|";
+                                    }
+                                    
+                                } else {
+                                    
+                                    if (k == 187) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "+";
+                                    } else if (k == 51) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "#";
+                                    } else if (k == 189) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "-";
+                                    } else if (k == 222) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "`";
+                                    } else if (k == 223) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "ß";
+                                    } else if (k == 188) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "<";
+                                    } else if (k == 176) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "^";
+                                    } else if (k == 246) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "ü";
+                                    } else if (k == 228) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "ä";
+                                    } else if (k == 246) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "ö";
+                                    }
+                                    
+                                }
+	                        	
+	                        }
+							
+							if (lz.Keys.downKeysArray.length > 1) {
+								for (var i=0;i<lz.Keys.downKeysArray.length;i++) {
+									if (lz.Keys.downKeysArray[i] == 17 || lz.Keys.downKeysArray[i] == '17') {
+										lz.Keys.downKeysArray = new Array();
+										break;
+									}
+								}
+							}
+							
+	                        
+							
+							if (k == 18 || k == 17) {
+								return;
+							}
+	                        
+	                        this.sendRemoteCursorEvent.tObject = tObject;
+	                        if (canvas.isAllowedToRemoteControl || canvas.ismoderator) {
+	                            this.sendRemoteCursorEvent.doCall();
+	                        }
+	                        
+	                    }
+                    ]]>
+                </handler>
+                
+                <handler name="onkeyup" reference="lz.Keys" args="k">
+                	<![CDATA[
+                        if (this.isMouseOverActive) {
+                            if ($debug) Debug.write("onkeyup ",k);
+                            
+                            var tObject = new Object();
+                            tObject["action"] = "onkeyup";
+                            tObject["k"] = k;
+                            
+                            var downkeys = lz.Keys.downKeysArray;
+    				        
+                            if (this.isWindows) {
+                            	
+    					        if (downkeys.length==2 && downkeys[0]==16) {
+    								if (k == 187) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "*";
+    		                        } else if (k == 191) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "'";
+    		                        } else if (k == 189) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "_";
+    		                        } else if (k == 221) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "`";
+    		                        } else if (k == 219) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "?";
+    		                        } else if (k == 226) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = ">";
+    		                        } else if (k == 220) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "°";
+    		                        } else if (k == 186) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "ü";
+    		                        } else if (k == 222) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "ä";
+    		                        } else if (k == 192) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "ö";
+    		                        }
+    		                        
+    		                        
+    							} else if (downkeys.length==2 && downkeys[0]==18) {
+    								
+    								if (k == 81) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "@";
+    								} else if (k == 226) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "|";
+    								}
+    								
+    							} else {
+    								
+    		                        if (k == 187) {
+    		                        	tObject["k"] = -1;
+    		                        	tObject["c"] = "+";
+    		                        } else if (k == 191) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "#";
+    		                        } else if (k == 189) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "-";
+    		                        } else if (k == 221) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "`";
+    		                        } else if (k == 219) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "ß";
+    		                        } else if (k == 226) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "<";
+    		                        } else if (k == 220) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "^";
+    		                        } else if (k == 186) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "Ü";
+    		                        } else if (k == 222) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "Ä";
+    		                        } else if (k == 192) {
+    									tObject["k"] = -1;
+    		                        	tObject["c"] = "Ö";
+    		                        }
+    		                        
+    							}
+    						
+                            } else if (this.isMac) {
+                        	
+                                if (downkeys.length==2 && downkeys[0]==16) {
+                                    if (k == 221) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "*";
+                                    } else if (k == 220) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "'";
+                                    } else if (k == 191) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "_";
+                                    } else if (k == 225) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "`";
+                                    } else if (k == 189) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "?";
+                                    } else if (k == 192) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = ">";
+                                    } else if (k == 176) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "°";
+                                    } else if (k == 219) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "Ü";
+                                    } else if (k == 222) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "Ä";
+                                    } else if (k == 186) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "Ö";
+                                    }
+                                    
+                                    
+                                } else if (downkeys.length==2 && downkeys[0]==18) {
+                                    
+                                    if (k == 50) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "@";
+                                    } else if (k == 55) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "|";
+                                    }
+                                    
+                                } else {
+                                    
+                                    if (k == 221) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "+";
+                                    } else if (k == 220) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "#";
+                                    } else if (k == 191) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "-";
+                                    } else if (k == 225) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "`";
+                                    } else if (k == 189) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "ß";
+                                    } else if (k == 192) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "<";
+                                    } else if (k == 176) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "^";
+                                    } else if (k == 219) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "ü";
+                                    } else if (k == 222) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "ä";
+                                    } else if (k == 186) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "ö";
+                                    }
+                                    
+                                }
+                                
+                            } else if (this.isLinux) {
+	                        	
+	                        	if (downkeys.length==2 && downkeys[0]==16) {
+                                    if (k == 187) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "*";
+                                    } else if (k == 51) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "'";
+                                    } else if (k == 189) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "_";
+                                    } else if (k == 222) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "`";
+                                    } else if (k == 223) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "?";
+                                    } else if (k == 188) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = ">";
+                                    } else if (k == 176) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "°";
+                                    } else if (k == 252) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "Ü";
+                                    } else if (k == 228) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "Ä";
+                                    } else if (k == 246) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "Ö";
+                                    }
+                                    
+                                    
+                                } else if (downkeys.length==2 && downkeys[0]==18) {
+                                    
+                                    if (k == 50) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "@";
+                                    } else if (k == 55) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "|";
+                                    }
+                                    
+                                } else {
+                                    
+                                    if (k == 187) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "+";
+                                    } else if (k == 51) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "#";
+                                    } else if (k == 189) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "-";
+                                    } else if (k == 222) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "`";
+                                    } else if (k == 223) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "ß";
+                                    } else if (k == 188) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "<";
+                                    } else if (k == 176) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "^";
+                                    } else if (k == 246) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "ü";
+                                    } else if (k == 228) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "ä";
+                                    } else if (k == 246) {
+                                        tObject["k"] = -1;
+                                        tObject["c"] = "ö";
+                                    }
+                                    
+                                }
+	                        	
+	                        }
+    							
+    						if (k == 18 || k == 17) {
+    							return;
+    						}
+    						
+    						if (lz.Keys.downKeysArray.length > 1) {
+    							for (var i=0;i<lz.Keys.downKeysArray.length;i++) {
+    								if (lz.Keys.downKeysArray[i] == 17 || lz.Keys.downKeysArray[i] == '17') {
+    									lz.Keys.downKeysArray = new Array();
+    									break;
+    								}
+    							}
+    						}
+                        
+    						if ($debug) Debug.write("tObject :: ",tObject,this.isWindows,this.isMac);
+    						
+                            this.sendRemoteCursorEvent.tObject = tObject;
+                            if (canvas.isAllowedToRemoteControl || canvas.ismoderator) {
+                                this.sendRemoteCursorEvent.doCall();
+                            }
+                        }
+                    ]]>
+                </handler>
+                
+                <handler name="onmouseover">
+                    //if ($debug) Debug.write("onmouseout ");
+                    this.isMouseOverActive = true;
+                    lz.Timer.addTimer( this.idleDelegate, 500 );
+                </handler>
+                
+                <handler name="onmouseout">
+                    //if ($debug) Debug.write("onmouseout ");
+                    this.isMouseOverActive = false;
+                    lz.Timer.removeTimer( this.idleDelegate);
+                </handler>
+                
+                <method name="sendMousePosition" args="refObj">
+                    <![CDATA[
+                        var x = this.getMouse("x");
+                        var y = this.getMouse("y");
+                        x /= (parent.parent.parent._zoombar._zoom.initialNumber/100);
+                        y /= (parent.parent.parent._zoombar._zoom.initialNumber/100);
+                        
+                        var tObject = new Object();
+                        tObject["action"] = "mousePos";
+                        
+                        tObject["x"] = Math.round(x);
+                        tObject["y"] = Math.round(y);
+                        
+                        this.sendRemoteCursorEvent.tObject = tObject;
+                        if (canvas.isAllowedToRemoteControl || canvas.ismoderator) {
+                            
+                            //if ($debug) Debug.write("sendMousePosition ",x,y);
+                            
+                            if (tObject["x"] != this.lastMouseX && tObject["y"] != this.lastMouseY) {
+                                
+                                this.lastMouseX = tObject["x"];
+                                this.lastMouseY = tObject["y"];
+                            
+                                this.sendRemoteCursorEvent.doCall();
+                            }
+                            
+                        }
+                        
+                        if (this.isMouseOverActive) {
+                            lz.Timer.addTimer( this.idleDelegate, 500 );
+                        }
+                    ]]>
+                </method>
+                
+                <handler name="onmousedown" args="refObj">
+                    <![CDATA[
+                        var x = this.getMouse("x");
+                        var y = this.getMouse("y");
+                        if ($debug) Debug.write("1 x,y :: ",x,y);
+                        x /= (parent.parent.parent._zoombar._zoom.initialNumber/100);
+                        y /= (parent.parent.parent._zoombar._zoom.initialNumber/100);
+                        if ($debug) Debug.write("2 x,y :: ",x,y);
+                        
+                        var tObject = new Object();
+                        tObject["action"] = "onmousedown";
+                        tObject["x"] = Math.round(x);
+                        tObject["y"] = Math.round(y);
+                        
+                        this.sendRemoteCursorEvent.tObject = tObject;
+                        if (canvas.isAllowedToRemoteControl || canvas.ismoderator) {
+                            this.sendRemoteCursorEvent.doCall();
+                        }
+                    ]]>
+                </handler>
+                
+                <handler name="onmouseup" args="refObj">
+                    <![CDATA[
+                        var x = this.getMouse("x");
+                        var y = this.getMouse("y");
+                        if ($debug) Debug.write("1 x,y :: ",x,y);
+                        x /= (parent.parent.parent._zoombar._zoom.initialNumber/100);
+                        y /= (parent.parent.parent._zoombar._zoom.initialNumber/100);
+                        if ($debug) Debug.write("2 x,y :: ",x,y);
+                        
+                        var tObject = new Object();
+                        tObject["action"] = "onmouseup";
+                        tObject["x"] = Math.round(x);
+                        tObject["y"] = Math.round(y);
+                        
+                        this.sendRemoteCursorEvent.tObject = tObject;
+                        if (canvas.isAllowedToRemoteControl || canvas.ismoderator) {
+                            this.sendRemoteCursorEvent.doCall();
+                        }
+                    ]]>
+                </handler>
+                
+                <!--
+                public synchronized Boolean sendRemoteCursorEvent(String streamid, Map messageObj)
+                 -->
+                <netRemoteCallHib name="sendRemoteCursorEvent"  showLoading="false"
+                                  remotecontext="$once{ canvas.thishib }" funcname="sendRemoteCursorEvent"  >
+                        <attribute name="tObject" value="null" />
+                        <netparam><method name="getValue">return parent.parent.parent.parent.parent.initObject.streamid;</method></netparam>
+                        <netparam><method name="getValue">return parent.tObject;</method></netparam>
+                        <handler name="ondata" args="value">
+                        //The onResult-Handler will be called be the rtmpconnection
+                        //if( $debug ) Debug.write("+++++++++++++++++ stopRecordingShow: ",value);    
+                        //parent.close();
+                    </handler>  
+                </netRemoteCallHib> 
+                 
+            </videoObjectPlayScreenShare>
+            
+        </view>
+        
+        <om_vscrollbar />
+        <om_hscrollbar />
+        
+    </view>    
+    
+    <view name="_infoBox" x="0" visibility="hidden" >
+    	
+    	<view name="innerBox" height="${ parent.parent.height }" 
+    		  visible="${ ((canvas.ismoderator) ? true : ((canvas.isAllowedToRemoteControl) ? true : false )) }">
+    		
+            <labelExplorerBox name="_infoBox" labelid="1088" 
+                  docking="true" resizeable="false" closable="true" valign="middle"
+                    x="0" height="400" width="170">
+                <switch>
+                    <when property="$as3">
+                        <passthrough>
+                            import flash.net.SharedObject;
+                        </passthrough>
+                    </when>
+                </switch>
+                <handler name="oninit">
+                	<![CDATA[
+                	this.bringToFront();
+                    var t:SharedObject = SharedObject.getLocal('userdata');
+                    var g = t.data;
+                    if (g["image"]!=null) {
+                    	if ($debug) Debug.write("g[image][donotaskagainrdc] ",g["image"]["donotaskagainrdc"]);
+                        if ($debug) Debug.write("g[image] ",g["image"]);
+                        if (g["image"]["donotaskagainrdc"] != null && g["image"]["donotaskagainrdc"] == true) {
+                        	if ($debug) Debug.write("DO CLOSE IT")
+                            this.close();
+                        }
+                    }
+                    ]]>
+                </handler>
+            
+                <view x="4" resource="warning_icon_rsc" y="26" />
+            
+                <view y="22" width="$once{ parent.width - 35 }" height="130" x="30" >
+                    <labelText fontsize="10" fontstyle="bold" labelid="1086"
+                        multiline="true" width="$once{ parent.width - 16 }" selectable="true" />
+                </view>
+                
+                <view y="76" width="$once{ parent.width - 7 }" height="130" x="4" >
+                    <labelText fontsize="10" labelid="1085"
+                        multiline="true" width="$once{ parent.width - 16 }" selectable="true" />
+                </view>
+                
+                <labelCheckbox x="4" y="$once{ parent.height-42 }" fontsize="11"
+                                    name="_doNotShowAgain" labelid="1123" >
+                	<attribute name="checkboxIsinited" value="false" type="boolean"/>
+                	<switch>
+                        <when property="$as3">
+                            <passthrough>
+                                import flash.net.SharedObject;
+                            </passthrough>
+                        </when>
+                    </switch>
+                    <handler name="oninit">
+                    	<![CDATA[
+                    	    var t:SharedObject = SharedObject.getLocal('userdata');
+                            var g = t.data;
+                            if (g["image"]!=null) {
+                            	if ($debug) Debug.write("g[image]",g["image"]);
+                                if (g["image"]["donotaskagainrdc"] != null && g["image"]["donotaskagainrdc"] == true) {
+                                    if ($debug) Debug.write("donotaskagainrdc ",g["image"]["donotaskagainrdc"]);
+                                    this.setValue(true);
+                                }
+                            }
+                            this.checkboxIsinited = true;
+                        ]]>
+                    </handler>
+                    <handler name="onvalue" args="v">
+                    	if (!this.checkboxIsinited) {
+                    		return;
+                    	}
+                        if ($debug) Debug.write("onselect ",v);
+                        var t:SharedObject = SharedObject.getLocal('userdata');
+                        var g = t.data;
+                        if (g["image"]==null) g["image"]=new Array();
+                        g["image"]["donotaskagainrdc"]=v;
+                        
+                        if ($debug) Debug.write("g[image][donotaskagainrdc] ",g["image"]["donotaskagainrdc"]);
+                        if ($debug) Debug.write("g[image] ",g["image"]);
+                        
+                        t.flush();
+                    </handler>
+                </labelCheckbox>    
+                
+                <simpleLabelButton labelid="642" width="100" x="$once{ parent.width-105 }" 
+                       y="$once{ parent.height-24 }" onclick="this.parent.close();" />
+                       
+            </labelExplorerBox>  
+            
+        </view>
+        
+    </view>  
+
+    <view name="_zoombar" x="20" visibility="hidden" y="${ parent.height-26 }">
+        
+        <method name="setDefaultZoom">
+            if (parent.initObject.VWidth > (parent._subcontent.width-16) ) {
+                var newZoom = Math.round(( (parent._subcontent.width-16) /parent.initObject.VWidth)*100);
+                
+                if ($debug) Debug.write("newZoom ",newZoom);
+                
+                this._zoom.setSliderValue(newZoom);
+                
+                this._zoom.oninitialNumber.sendEvent(newZoom);
+            }
+            
+            this.setDefaultHeight();
+        </method>
+        
+        <method name="setDefaultHeight">
+            if (parent.initObject.VHeight > (parent._subcontent.height-16)) {
+                var newZoom = Math.round(( (parent._subcontent.height-16) /parent.initObject.VHeight)*100);
+                
+                if ($debug) Debug.write("newZoom ",newZoom);
+                
+                this._zoom.setSliderValue(newZoom);
+                
+                this._zoom.oninitialNumber.sendEvent(newZoom);
+            }
+        </method>
+        
+        <simplelayout axis="x" spacing="2" />
+        
+        <labelText labelid="852" resize="true" y="4" />
+        
+        <changeWidthSlider name="_zoom" initialNumberInit="100" x="10"
+              boxPosition="up" initialNumber="100" maximum="200">
+            <handler name="oninitialNumber" args="i">
+                if (parent.parent.isStarted) {
+                    
+                    var newWidth = parent.parent.initObject.VWidth * (i/100);
+                    var newHeight = parent.parent.initObject.VHeight * (i/100);
+                    
+                    parent.parent._subcontent._content._video.setAttribute("width",newWidth);
+                    parent.parent._subcontent._content._video.setAttribute("height",newHeight);
+                    
+                }
+            </handler>
+        </changeWidthSlider>
+        
+        <labelText x="64" y="4" labelid="253" />   
+        
+        <labelText x="84" y="4" labelid="1096" />  
+        
+        <!--
+        <resetCombobox name="languages" width="60" y="6" x="200" >
+        	<handler name="oninit">
+        		<![CDATA[
+            		//getBrowserLang
+            		
+        		    var thisItem = this;
+        		
+            		function callback(returnValue) {
+                            
+                        if ($debug) Debug.write(" callback ",returnValue);
+                        
+                        if (returnValue.indexOf("de") >= 0) {
+                        	thisItem.selectItemAt(1);
+                        } else if (returnValue.indexOf("de") >= 0) {
+                        	thisItem.selectItemAt(0);
+                        } else {
+                        	thisItem.selectItemAt(0);
+                        	//Show Error Box that we currently have no 
+                        	//Keyboard Scheme available for that country
+                        }
+                        
+                    }
+                    
+                    lz.Browser. callJS("getBrowserLang",callback);
+            		
+            		
+            		//var t = lz.Browser;
+            		//if ($debug) Debug.write("lz.Browser :: ",t);
+            		
+            		//this.selectItemAt(0);
+        		]]>
+        	</handler>
+        	<labeldTextListItem labelid="1094" value="en_US" />
+            <labeldTextListItem labelid="1095" value="de_DE" />
+        </resetCombobox> 
+         -->
+    </view>
+    
+    <simpleLabelButton name="_pause" visibility="hidden"
+        labelid="854" width="100" x="${ parent.width-204 }" 
+        y="${ parent.height-22 }" onclick="this.parent.doMinimize();" />
+    
+    <simpleLabelButton name="_close" visibility="hidden"
+        labelid="851" width="100" x="${ parent.width-102 }" 
+        y="${ parent.height-22 }" onclick="this.parent.doClose();" />
+        
+    <animatorgroup name="_showScreenSharing" started="false" 
+                   process="simultaneous" duration="1000" >
+        <handler name="onstop">
+            if ($debug) Debug.write("onstop this._y.to ",this._y.to);
+            if (!parent.isStarted) {
+                parent._initText.setAttribute("visibility","visible");
+            } else {
+            	parent._infoBox.setAttribute("visibility","visible");
+                parent._zoombar.setAttribute("visibility","visible");
+                parent._zoombar.setDefaultZoom();
+                parent._close.setAttribute("visibility","visible");
+                parent._pause.setAttribute("visibility","visible");
+            }
+        </handler>
+        <animator name="_y" attribute="y" to="0" />
+        <animator name="_x" attribute="x" to="0" />
+        <animator name="_height" attribute="height" />
+        <animator name="_width" attribute="width" />
+    </animatorgroup>        
+
+</class>
+
+</library>
diff --git a/WebContent/swf10/screensharing/videoObjectPlayScreenShare.lzx b/WebContent/swf10/screensharing/videoObjectPlayScreenShare.lzx
new file mode 100644
index 0000000..fdddbc6
--- /dev/null
+++ b/WebContent/swf10/screensharing/videoObjectPlayScreenShare.lzx
@@ -0,0 +1,238 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<library>
+
+
+<!---
+	Contains no microphone or camera Object, this view can only 
+	subscribe to a video or live-stream
+
+ -->
+	
+<class name="tempTextBox" extends="view" width="120" height="40" bgcolor="0x000000">
+	
+	<attribute name="isStopped" value="false" type="boolean"/>
+	
+	<handler name="oninit">
+		parent.sendCursorVisible(false);
+        lz.Timer.addTimer( new LzDelegate( this, "removeThis" ), 3000 );
+    </handler>
+    
+    <method name="removeThis" args="refObj">
+        this._out.setAttribute('started', true);
+    </method>
+    
+    <animator name="_out" attribute="opacity" to="0" 
+    		  duration="750" started="false">
+    	<handler name="onstop">
+    		if (parent.isStopped) {
+    			return;
+    		}
+    		parent.isStopped = true;
+    		parent._bg._in.stop();
+    		parent._bg._out.stop();
+    		parent.destroy();
+    		parent.parent.sendCursorVisible(true);
+    	</handler>
+    </animator>
+    
+	<view name="_bg" bgcolor="0x7fff00" width="$once{ parent.width }"
+		  height="$once{ parent.height }">
+		<handler name="oninit">
+			this._in.setAttribute('started', true);
+		</handler>
+		
+		<animator name="_out" attribute="opacity" to="0.3" 
+              duration="250" started="false">
+            <handler name="onstop">
+            	if (parent.parent.isStopped) {
+                    return;
+                }
+                parent._in.setAttribute('started', true);
+            </handler>
+        </animator>
+        
+        <animator name="_in" attribute="opacity" to="1" 
+              duration="250" started="false">
+            <handler name="onstop">
+            	if (parent.parent.isStopped) {
+            		return;
+            	}
+                parent._out.setAttribute('started', true);
+            </handler>
+        </animator>
+		
+	</view>
+	
+	<view name="_bg2" bgcolor="0x7fff00" width="$once{ parent.width }" height="18">
+		<labelText x="2" y="1" labelid="1124" />
+	</view>
+	
+	<inputtext name="_text" width="$once{ parent.width - 4 }" height="20" y="18"
+			   bgcolor="0xFFFFFF" x="2" >
+		<handler name="ontext" args="txt">
+			if ($debug) Debug.warn("ontext ",txt);
+			parent.parent.doBroadcastText(txt);
+			parent._out.setAttribute('started', true);
+		</handler>
+	</inputtext>
+	
+</class>	
+
+<class name="copiedTextPopup" extends="labelExplorerBox" labelid="1121"
+    docking="true" resizeable="true" closable="true" y="100"
+    x="$once{ parent.width/2 - this.width/2 }" height="160" width="324">
+
+    <attribute name="error" value="" type="string" />
+    
+    <view name="_box" y="24" width="${ parent.width - 20 }" 
+    	  height="${ parent.height - 50 }" x="10" clip="true">
+        <text fontsize="10" fontstyle="bold" text="${ parent.parent.error }"
+            multiline="true" width="${ parent.width - 16 }" selectable="true" />
+    </view>
+    
+    <simpleLabelButton labelid="642" width="100" x="${ parent.width-105 }" 
+           y="${ parent.height-24 }" onclick="this.parent.close();" />
+
+</class>
+			
+<class name="screenShareCursorObject" extends="view" resource="menupointer_rsc">
+	
+	<attribute name="refObj" value="null" />
+	
+    <contextmenu>
+            
+        <handler name="onmenuopen">
+            parent.refObj.currentX = parent.refObj.getMouse("x");
+            parent.refObj.currentY = parent.refObj.getMouse("y");
+            if ($debug) Debug.write("onmenuopen x,y ",parent.currentX,parent.currentY);
+        </handler>
+        
+        <contextmenuitem caption="$once{ canvas.getLabelName(1119) }" 
+                         onselect="parent.parent.refObj.insertText()" />
+        
+        <contextmenuitem caption="$once{ canvas.getLabelName(1120) }" 
+                         onselect="parent.parent.refObj.copyFromRemote()" />
+                         
+        <contextmenuitem caption="$once{ canvas.getLabelName(1122) }" 
+                         onselect="parent.parent.refObj.showFromRemote()" />
+                         
+    </contextmenu>
+</class>			
+					   
+<class name="videoObjectPlayScreenShare" extends="view">
+	
+    <baseVideoStream name="_videostream" bgcolor="black" 
+          width="${parent.width}" height="${parent.height}" >
+    	
+    	<attribute name="currentX" value="0" type="number" />
+    	<attribute name="currentY" value="0" type="number" />
+    	
+    	<method name="insertText">
+    		if (canvas.isAllowedToRemoteControl || canvas.ismoderator) {
+        		new lz.tempTextBox(this,{
+                		   x:this.currentX,
+                		   y:this.currentY
+                		});
+    		} else {
+    			new lz.labelerrorPopupSWF10(canvas,{
+                               errorlabelid:1125
+                            });
+    		}
+    	</method>
+    	
+    	<method name="sendCursorVisible" args="bool">
+    		if (bool) {
+    			parent.parent.parent.parent.currentCursorObject.setAttribute("visibility","visible");
+    		} else {
+    			parent.parent.parent.parent.currentCursorObject.setAttribute("visibility","hidden");
+    		}
+    	</method>
+    	
+    	<method name="doBroadcastText" args="txt">
+    		if (canvas.isAllowedToRemoteControl || canvas.ismoderator) {
+        		var tObject = new Object();
+                tObject["action"] = "paste";
+                
+                tObject["paste"] = txt;
+                
+                parent.sendRemoteCursorEvent.tObject = tObject;
+                
+                if ($debug) Debug.warn("doBroadcastText :: ",txt);
+                
+                parent.sendRemoteCursorEvent.doCall();
+    		} else {
+    			new lz.labelerrorPopupSWF10(canvas,{
+                               errorlabelid:1125
+                            });
+    		}
+    	</method>
+    	
+    	<method name="copyFromRemote">
+    		if (canvas.isAllowedToRemoteControl || canvas.ismoderator) {
+        		var tObject = new Object();
+                tObject["action"] = "copy";
+                
+                tObject["clientId"] = canvas.streamid;
+                
+        		parent.sendRemoteCursorEvent.tObject = tObject;
+                parent.sendRemoteCursorEvent.doCall();
+    		} else {
+    			new lz.labelerrorPopupSWF10(canvas,{
+                			   errorlabelid:1125
+                			});
+    		}
+    	</method>
+    	
+    	<method name="showFromRemote">
+            var tObject = new Object();
+            tObject["action"] = "show";
+            
+            tObject["clientId"] = canvas.streamid;
+            
+            parent.sendRemoteCursorEvent.tObject = tObject;
+            parent.sendRemoteCursorEvent.doCall();
+        </method>
+    	
+    	<contextmenu>
+    		
+    		<handler name="onmenuopen">
+    			parent.currentX = parent.getMouse("x");
+    			parent.currentY = parent.getMouse("y");
+    			if ($debug) Debug.write("onmenuopen x,y ",parent.currentX,parent.currentY);
+    		</handler>
+            
+            <contextmenuitem caption="$once{ canvas.getLabelName(1119) }" 
+                             onselect="parent.parent.insertText()" />
+            
+            <contextmenuitem caption="$once{ canvas.getLabelName(1120) }" 
+                             onselect="parent.parent.copyFromRemote()" />
+                             
+            <contextmenuitem caption="$once{ canvas.getLabelName(1122) }" 
+                             onselect="parent.parent.showFromRemote()" />
+                             
+        </contextmenu>
+        
+    </baseVideoStream>
+        
+</class>
+
+</library>
diff --git a/WebContent/swf10/testVideoObject.lzx b/WebContent/swf10/testVideoObject.lzx
new file mode 100644
index 0000000..75cc30d
--- /dev/null
+++ b/WebContent/swf10/testVideoObject.lzx
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+    <class name="testVideoObject" extends="view" bgcolor="0x000000" width="132" height="120" onmousedown="dragger.setAttribute('applied', true)" onmouseup="dragger.setAttribute('applied', false)">

+        <dragstate name="dragger"/>>

+    </class>

+</library>
\ No newline at end of file
diff --git a/WebContent/swf10/video/baseVideoObject.lzx b/WebContent/swf10/video/baseVideoObject.lzx
new file mode 100644
index 0000000..3639cc7
--- /dev/null
+++ b/WebContent/swf10/video/baseVideoObject.lzx
@@ -0,0 +1,673 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file 

+	distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under 

+	the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may 

+	obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to 

+	in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 

+	ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under 

+	the License. -->

+<library>

+

+

+	<!--- Base container for a client, can be either: a remote-video (subscribing/playing a video) or a self-video (broadcasting 

+		a cam/mic) -->

+	<class name="baseVideoObject" extends="view" bgcolor="0x000000" width="122" height="101">

+

+		<switch>

+			<when property="$as3">

+				<passthrough>

+					import flash.filters.DropShadowFilter;

+					import flash.media.*

+					import flash.net.SharedObject;

+				</passthrough>

+			</when>

+		</switch>

+

+		<!--- @keywords private -->

+		<attribute name="chatpartnername" value="" type="string" />

+		<!--- @keywords private -->

+		<attribute name="showUserProfilePic" type="boolean" value="false" />

+

+		<!--- color of this user, this is the color the user will also use for his chat-color -->

+		<attribute name="usercolor" value="0" type="number" />

+

+		<!--- publicSID is a hash-value to identify a user -->

+		<attribute name="publicSID" value="" type="string" />

+

+		<!--- micMuted indicates if the microphone is currently turned sound or gain to 0 -->

+		<attribute name="micMuted" value="false" type="boolean" />

+

+		<!--- @keywords private -->

+		<attribute name="isremote" value="true" type="boolean" />

+

+		<!--- @keywords private -->

+		<attribute name="clientVars" value="null" />

+

+		<!--- @keywords private -->

+		<attribute name="isResizing" value="false" type="boolean" />

+

+		<!--- @keywords private -->

+		<attribute name="isInterview" value="false" type="boolean" />

+

+		<attribute name="respectRatio" value="true" type="boolean" />

+

+		<attribute name="minimized" value="false" type="boolean" />

+

+		<attribute name="hidebyAudioOnly" value="false" type="boolean" />

+

+		<attribute name="custom" value="false" type="boolean" />

+

+		<attribute name="initH" value="40" type="number" />

+		<attribute name="initW" value="40" type="number" />

+

+		<attribute name="isShowMicMute" value="false" type="boolean" />

+

+		<attribute name="isMutedByModerator" value="false" type="boolean" />

+

+		<attribute name="isMicrophonesRoom" value="false" type="boolean" />

+

+		<attribute name="lastPositiveVolume" type="number" value="50" />

+

+		<!-- Initial stream ratio: width / height -->

+		<attribute name="initRatio" type="number" value="null" />

+		<attribute name="initialHeight" value="$once{ this.height }" type="number" />

+

+		<handler name="onisremote" args="r">

+			this.isremote = r;

+		</handler>

+

+		<handler name="oninit">

+        <![CDATA[

+            this.clientVars = new Array();

+            this.clientVars['User']='No User Connected';

+            

+            if (this.isInterview) {

+            	this._toolbar._minimize.setAttribute("visibility","hidden");

+            	this._resizeview.setAttribute("visibility","hidden");

+            	this._innerbottom.setAttribute("visibility","hidden");

+            	return;

+            }

+            

+            if (this.custom) {

+                this._toolbar._minimize.setAttribute("visibility","hidden");

+                this._resizeview.setAttribute("visibility","hidden");

+                this._toolbar.setAttribute("visibility","hidden");

+                this._resizeview.setAttribute("visibility","hidden");

+                this._loudness.setAttribute("visibility","hidden");

+                this._innertop.setAttribute("visibility","hidden");

+                this._innerbottom.setAttribute("visibility","hidden");

+            }

+            this.setShadow();

+            

+            if (this.publicSID == canvas.publicSID) {

+                this._toolbar._resync._tip.setAttribute("labelid",610);

+            }

+            this._giveExclusiveAudioView.bringToFront();

+            

+            this.isMicrophonesRoom = canvas.currentRoomObject.showMicrophoneStatus;

+            if (canvas.currentRoomObject.showMicrophoneStatus) {

+                this._innertop.setAttribute("bgcolor", "0xFF6600");

+                this._innerbottom.setAttribute("bgcolor", "0xFF6600");

+            } else {

+                this._innerbottom.setAttribute("visibility", "hidden");

+            }

+        ]]>

+		</handler>

+

+		<handler name="ony">

+		<![CDATA[

+		    if (this.isInterview || this.custom || canvas.currentRoomObject.hideWhiteboard) {

+                return;

+            }

+            var bounds = this.getBounds();

+            var parentBounds = canvas.getBounds();

+            if (bounds.y < 0) {

+                this.setAttribute('y',0);

+            }

+            if (bounds.y > (parentBounds.height - bounds.height)) {           

+                this.setAttribute('y', parentBounds.height - bounds.height );

+            }

+        ]]>

+		</handler>

+

+		<handler name="onx">

+		<![CDATA[

+            if (this.isInterview || this.custom) {

+                return;

+            }	

+		

+			var bounds = this.getBounds();

+            var parentBounds = canvas.getBounds();

+            if (bounds.x < 0) {

+                this.setAttribute('x',0);

+            }

+            

+            if (bounds.x > (parentBounds.width - bounds.width)) {

+                this.setAttribute('x', parentBounds.width - bounds.width );

+            }

+        ]]>

+		</handler>

+

+		<method name="setShadow">

+        <![CDATA[

+	        if (this.isinited){

+	            this.normalMC = this.getDisplayObject();

+	            //if($debug) Debug.write(this.normalMC);

+	            //if($debug) Debug.write("this.normalMC: ",this.normalMC);

+	            //if($debug) Debug.write("this: ",this);

+	            this.displacementMap = new flash.filters.DropShadowFilter();

+	            this.normalMC.filters = [this.displacementMap];

+	        }

+        ]]>

+		</method>

+

+		<!-- respect ratio and keep minimum width / height -->

+		<method name="setItemContraintsWidth" args="unused">

+        <![CDATA[

+            if (!this.respectRatio) {

+                return;

+            }

+            var h=this.width * this.initH/this.initW;

+            h=((h < this.initH ) ? initH : h);

+

+            if ($debug) Debug.write("setItemContraintsWidth",this.respectRatio,'orig',this.height,this.width,'new h',h);

+

+            this.setAttribute("height",h);

+        ]]>

+		</method>

+

+		<method name="setItemContraintsHeight" args="unused">

+        <![CDATA[

+            if (!this.respectRatio) {

+                return;

+            }

+            var w=this.height * this.initW/this.initH;

+            w=((w < this.initW ) ? initW : w);

+

+            if ($debug) Debug.write("setItemContraintsHeight",this.respectRatio,'orig',this.height,this.width,'new w',w);

+

+            this.setAttribute("width",w);

+        ]]>

+		</method>

+

+		<method name="updateAVSettingsSymbol" args="rcl">

+			//FIXME: Set a Symbol wether this Client is Audio(only)/Video(only), both or Profile Picture

+			if ($debug) Debug.warn("updateAVSettingsSymbol TODO ",rcl);

+		</method>

+

+		<method name="doResize" args="bool">

+			if ($debug) Debug.write("doResize",bool);

+			if(bool) {

+				dragHelper.create();

+			} else {

+				dragHelper.remove();

+			}

+			if (this.isInterview || this.custom) {

+				return;

+			}

+

+			if (bool) {

+				this.isResizing = true;

+				this.rs.apply();

+			} else {

+				this.isResizing = false;

+				this.rs.remove();

+			}

+		</method>

+

+		<!--- resets all values and stops the streaming -->

+		<method name="resetValues">

+		<![CDATA[

+	    	if ($debug) Debug.write("resetValues: ",this.isremote);

+	    	this.clientVars=null;

+	    	if (!this.isremote) {

+	    		deleteVideoConfProfilePic();

+	    	}

+	    	if (this.isremote){

+	    		this._chatvideoinner._videostream.restart();

+	    	} else {

+	    		this._chatvideoinner._videostream._stop();

+	    	}

+		]]>

+		</method>

+		

+		<method name="setVideouserProfilePic" args="value">

+			if ($debug) Debug.write("### setVideouserProfilePic ",value);

+			this.deleteVideoConfProfilePic();

+			new lz.videoUserProfilePicSWF10(this._chatvideoinner,{name:'userProfilePic',value:value});

+			this.showUserProfilePic = true;

+		</method>

+		

+		<method name="deleteVideoConfProfilePic">

+			if ($debug) Debug.write("### deleteVideoConfProfilePic ###");

+			if ($debug) Debug.write("delete ",this.showUserProfilePic);

+			if (this.showUserProfilePic) {

+				this._chatvideoinner.userProfilePic.destroy();

+				this.showUserProfilePic = false;

+			}

+		</method>

+

+		<!--- @keywords private -->

+		<method name="_startDragState" args="obj">

+			if (this.isInterview || this.custom) {

+				return;

+			}

+

+			dragHelper.create();

+

+			this.bringToFront();

+			parent.bringToFront();

+			this.dragger.apply();

+		</method>

+

+		<!--- @keywords private -->

+		<method name="_removeDragState" args="obj">

+    	<![CDATA[

+	        lz.Cursor.unlock();

+	        

+	        if (this.x < 0) {

+	        	this.setAttribute("x",20);

+	        }

+	        

+	        if (this.y < 0) {

+	        	this.setAttribute("y",20);

+	        }

+	        

+	        if (this.x+this.width > parent.width) {

+	        	this.setAttribute("x",parent.width - this.width - 20);

+	        }

+	        

+	        if (this.y+this.height > parent.height) {

+	        	this.setAttribute("y",parent.height - this.height - 20);

+	        }

+	        dragHelper.remove();

+	        this.dragger.remove();

+        ]]>

+		</method>

+

+		<method name="minimize">

+        <![CDATA[

+            this.respectRatio = false;

+        

+            this.setAttribute("minimized",true);

+            

+            this._toolbar._minimize.setAttribute("visibility","hidden");

+            this._toolbar._maximize2.setAttribute("visibility","visible");

+            

+            for (var eg in this.subviews) {

+                if (this.subviews[eg].name != "_toolbar" 

+                        && this.subviews[eg].name != "_innertop"

+                        && this.subviews[eg].name != "_loudness") {

+                     this.subviews[eg].setAttribute("visibility","hidden");   

+                }

+            }

+            

+            this._loudness.setAttribute("x",this.width - 84 - (this.isShowMicMute ? 20 : 0));

+            this._loudness.bringToFront();

+            

+            this.initialHeight = this.height;

+            //this.setAttribute("height",20);

+            this._minimizeZoom.setAttribute("to",20);

+            this._minimizeZoom.setAttribute('started', true);

+        ]]>

+		</method>

+

+		<method name="reminimize">

+        <![CDATA[

+            this.setAttribute("minimized",false);

+            

+            this._toolbar._minimize.setAttribute("visibility","visible");

+            this._toolbar._maximize2.setAttribute("visibility","hidden");

+            

+            this._loudness.setAttribute("x",1);

+            

+            //this.setAttribute("height",this.initialHeight); 

+            if ($debug) Debug.write("this.initialHeight ",this.initialHeight);

+            this._minimizeZoom.setAttribute("to",this.initialHeight);

+            this._minimizeZoom.setAttribute('started', true);

+        ]]>

+		</method>

+

+		<method name="reminimizeComplete">

+        <![CDATA[

+            if (!this.minimized) {

+                for (var eg in this.subviews) {

+                    if (this.subviews[eg].name != "_toolbar" 

+                            && this.subviews[eg].name != "_innertop"

+                            && this.subviews[eg].name != "_loudness"

+                            && this.subviews[eg].name != "_innerbottom") {

+                         this.subviews[eg].setAttribute("visibility","visible");   

+                    }

+                }

+                if (isMicrophonesRoom) {

+                    this._innerbottom.setAttribute("visibility", "visible");

+                }

+                this.respectRatio = true;

+            }

+        ]]>

+		</method>

+

+		<view name="_innertop" width="${parent.width-2 }" height="18" x="1" y="1"

+			bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }">

+			<text text="${ parent.parent.chatpartnername }" onmousedown="parent.parent._startDragState(this)"

+				onmouseup="parent.parent._removeDragState(this)"

+				width="${ parent.width-2 }" fgcolor="white" fontsize="9">

+				<handler name="onmouseover">

+					//cursor="arrow_draw_panel_cursor"

+					lz.Cursor.setCursorGlobal("arrow_draw_panel_cursor");

+				</handler>

+

+				<handler name="onmouseout">

+					lz.Cursor.unlock();

+				</handler>

+			</text>

+		</view>

+

+		<view name="_innerbottom" width="${parent.width - 2}" x="1" y="${parent.height - 19}" height="18"

+			bgcolor="$once{ canvas.getThemeColor('basebgcolorizer') }">

+			<text text="${canvas.getLabelName(1434)}" width="${ parent.width-2 }" fgcolor="white" name="title" fontsize="9" />

+		</view>

+

+		<view name="_loudness" x="1" visible="${parent.isremote}" y="${parent.height - 20 - ((parent._innerbottom.visible) ? 18 : 0) }">

+			<method name="setSpeaking" args="bool">

+				this.loudness.setAttribute('opacity', bool ? 1 : 0.2);

+			</method>

+			<view x="2" y="2" name="loudness" resource="speaking" opacity="0.2" onmouseover="" onmouseout="">

+				<handler name="onclick">

+				<![CDATA[

+					if (canvas.ismoderator || canvas.isAllowedToGiveExclusiveAudio) {

+						parent.parent.confirmExclusiveAudio();

+					} else {

+						new lz.labelerrorPopupSWF10(canvas,{errorlabelid:1478});

+					}

+				]]>

+				</handler>

+				<labelTooltip inittwice="true" labelid="372" />

+			</view>

+		</view>

+

+		<view name="_resizeview" x="${ this.parent.width - 16 }" valign="bottom" resource="explorer_resize_rsc" cursor="explorer_resizemouse_rsc"

+			onmousedown="this.parent.doResize(true)" onmouseup="this.parent.doResize(false)">

+			<handler name="oninit">

+				//if ($debug) Debug.write("setTint");

+				//TODO: Fix this, does not work at the moment

+				//canvas.protocol + '://code.google.com/p/openmeetings/issues/detail?id=470

+				this.setColor(canvas.getThemeColor('baseMousecolorizer'));

+			</handler>

+		</view>

+

+		<view name="_toolbar" x="${ parent.width-this.width-2 }" layout="axis:x;spacing:0" y="2">

+

+			<attribute name="isload" value="true" type="boolean" />

+

+			<miniIconsPresenter name="_resync" iconRessourceName="resyncuser_rsc">

+				<handler name="onclick">

+					parent.parent.resetValues();

+					if(!this.parent.parent.isremote) {

+						if ($debug) Debug.write("editRecordStream ################# baseVideObject isInterview"

+								,this.parent.parent.isInterview,this.parent.parent.interviewPodId);

+						if (this.parent.parent.isInterview) {

+							//TODO: fix it

+							new lz.editRecordStreamSWF10(canvas.inner,{

+								name:"editRecordStream",

+								doDefaultAnimation:false,

+								isInterview:true,

+								interviewPodId:this.parent.parent.interviewPodId,

+								isSyncUpdate:true});

+						} else {

+							new lz.editRecordStreamSWF10(canvas.inner,{

+								name:"editRecordStream",

+								isInterview:false,

+								isSyncUpdate:true});

+						}

+					}

+				</handler>

+				<labelTooltip name="_tip" labelid="540" />

+			</miniIconsPresenter>

+

+			<miniIconsPresenter name="_mute" width="16" height="16" iconRessourceName="mute_micro_btn_rsc">

+				<handler name="onclick">

+					parent.parent.silenceMicrophone(!parent.parent.micMuted);

+				</handler>

+				<labelTooltip name="_tip" labelid="1405" />

+			</miniIconsPresenter>

+

+			<miniIconsPresenter x="0" y="0" name="_volume" width="16" height="16" iconRessourceName="volume">

+				<handler name="oninit">

+					_tip.setAttribute("labelid", parent.parent.isremote ? 1511 : 1512);

+				</handler>

+				<handler name="onclick">

+					var volume = parent.parent.getStreamVolume();

+

+					var sliderHeight = 120;

+					var sliderX =

+					this.getAttributeRelative('x',canvas) - 2;

+					var pick = new lz.VolumeSlider(canvas, {

+							height:sliderHeight,

+							x:sliderX,

+							y:(parent.getAttributeRelative('y',canvas) - sliderHeight/2),

+							initialNumber:volume,

+							videoObject:parent.parent

+						});

+					lz.ModeManager.makeModal(pick);

+				</handler>

+				<labelTooltip name="_tip" />

+			</miniIconsPresenter>

+

+			<miniIconsPresenter name="_minimize" iconRessourceName="btn_presenter_minimize">

+				<handler name="onclick">

+					this.parent.parent.minimize();

+				</handler>

+				<labelTooltip labelid="856" />

+			</miniIconsPresenter>

+

+			<miniIconsPresenter name="_maximize2" visibility="hidden" iconRessourceName="btn_presenter_maximize">

+				<handler name="onclick">

+					this.parent.parent.reminimize();

+				</handler>

+				<labelTooltip labelid="857" />

+			</miniIconsPresenter>

+

+		</view>

+

+		<view name="_giveExclusiveAudioView" valign="middle" align="center" visible="false">

+			<view name="_micButton" width="40" height="40" resource="mic_rsc" showhandcursor="true">

+				<labelTooltip name="_toolTipTextExclusiveAudio" labelid="1386" />

+			</view>

+		</view>

+

+		<handler name="onmouseover">

+        <![CDATA[

+	        if (this.isInterview || this.minimized) {

+	            return;

+	        }

+	        if (canvas.ismoderator || canvas.isAllowedToGiveExclusiveAudio) {

+	        	this._giveExclusiveAudioView._micButton._toolTipTextExclusiveAudio.doonmouseover();

+	            this._giveExclusiveAudioView.setAttribute("visible", true);

+	        }

+        ]]>

+		</handler>

+

+		<handler name="onmouseout">

+        <![CDATA[

+	        if (this.isInterview || this.minimized) {

+	            return;

+	        }

+	        this._giveExclusiveAudioView._micButton._toolTipTextExclusiveAudio.cleanHolder();

+	        this._giveExclusiveAudioView.setAttribute("visible", false);

+        ]]>

+		</handler>

+

+		<handler name="onclick">

+		<![CDATA[

+	      	if (canvas.ismoderator || canvas.isAllowedToGiveExclusiveAudio) {

+	      		this._giveExclusiveAudioView._micButton._toolTipTextExclusiveAudio.cleanHolder();

+	          	this.confirmExclusiveAudio();

+	        } else {

+				new lz.labelerrorPopupSWF10(canvas,{errorlabelid:1478});        

+	        }

+		]]>

+		</handler>

+

+		<dragstate name="dragger" />

+		<resizestatemin name="rs" resize_min_width="70" resize_min_height="70" />

+		<dragHelper name="dragHelper" />

+

+		<animator name="_minimizeZoom" attribute="height" duration="750" to="20" started="false">

+			<handler name="onstop" args="s">

+				parent.reminimizeComplete();

+			</handler>

+		</animator>

+

+		<handler name="onismoderator" reference="canvas" args="m">

+        <![CDATA[

+			if ($debug) Debug.write("###### ismoderator ", m);

+	        

+	        if (this.minimized) {

+	            this._loudness.setAttribute("x",this.width - 84 - (this.isShowMicMute ? 20 : 0));

+	            this._loudness.bringToFront();

+	        }

+        ]]>

+		</handler>

+

+		<method name="giveExclusiveAudio">

+			canvas.videoComp_lc.send(canvas.videoComp_lc_name, 'lc_giveExclusiveAudio', this.publicSID);

+		</method>

+

+		<method name="confirmExclusiveAudio">

+			var so:SharedObject = SharedObject.getLocal('userdata');

+			var userData = so.data;

+			var dontShowExclusiveAudioConfirmation = userData["dontShowExclusiveAudioConfirmation"];

+			var exclusiveAudioListener = new Object();

+			exclusiveAudioListener.sendNoConfirmation = function() {};

+			exclusiveAudioListener.sendConfirmation = function(answer, remember) {

+					if (answer) {

+						giveExclusiveAudio();

+						if (remember) {

+							userData["dontShowExclusiveAudioConfirmation"] = true;

+							so.flush();

+						}

+					}

+				};

+			if (dontShowExclusiveAudioConfirmation == true) {

+				exclusiveAudioListener.sendConfirmation(true, true);

+			} else {

+				new lz.confirmationSingleSWF10(canvas,{

+					labelid:1428,

+					labeliderror:1539,

+					refObj:exclusiveAudioListener,

+					showCheckBox:true});

+			}

+		</method>

+

+		<!-- This will mute the Microphone only to the person that is speaking if the gain is set to zero NOBODY will hear 'em -->

+		<method name="muteMicrophone" args="roomClientObj">

+		<![CDATA[

+			if ($debug) Debug.write("############ muteMicrophone ", roomClientObj.micMuted, roomClientObj.publicSID, this.publicSID);

+			

+			if (roomClientObj.publicSID == this.publicSID) {

+				if ($debug) Debug.write("Set Mute for Client :: ", roomClientObj);

+				if ($debug) Debug.write("############ SET GAIN " + roomClientObj.micMuted);

+				this._chatvideoinner._videostream.muteMicro(roomClientObj.micMuted);

+				this.isMutedByModerator = roomClientObj.micMuted;

+				this.setMicMuted(roomClientObj.micMuted);

+			}

+		]]>

+		</method>

+

+		<!-- This will mute it only locally, that means on other screens the user might be still online and loud -->

+		<method name="silenceMicrophone" args="mute">

+		<![CDATA[

+			if ($debug) Debug.write("############ silenceMicrophone ", this.publicSID);

+			if (this.publicSID == canvas.publicSID) {

+				//self sound turned off

+				canvas.videoComp_lc.send(canvas.videoComp_lc_name, 'lc_switchMicMuted', this.publicSID, mute);

+				if (!mute) {

+					this._chatvideoinner._videostream.muteMicro(false);

+				}

+			} else {

+				//disable this action for now

+				if (!canvas.ismoderator) {

+					new lz.labelerrorPopupSWF10(canvas,{errorlabelid:1409});

+					return;

+				}

+				//you can not unmute it locally by putting sound to 100 cause the gain is set to zero globally in the micro of the sender!

+				//so setting the sound/volume on the other remote clients has zero effect

+				if (this.isMutedByModerator && !canvas.ismoderator) {

+					//FIXME: That is not true, you could restart audio/video ...

+					var errorlabelid = this.publicSID == canvas.publicSID ? 1387 : 1402;

+					new lz.labelerrorPopupSWF10(canvas,{errorlabelid:errorlabelid});

+					return;

+				}

+				if (canvas.ismoderator) {

+					canvas.videoComp_lc.send(canvas.videoComp_lc_name, 'lc_switchMicMuted', this.publicSID, mute);

+				} else {

+					this._chatvideoinner._videostream.setSoundVolume(mute ? 0 : 100);

+				}

+			}

+			this.setMicMuted(mute);

+		]]>

+		</method>

+

+		<method name="setMicMuted" args="micMuted">

+        <![CDATA[

+	        this.micMuted = micMuted;

+            this._toolbar._mute._tip.setAttribute("labelid", micMuted ? "1406" : "1405");

+            this._toolbar._mute._itemRsc.setAttribute('frame', micMuted ? 2 : 1);

+            if (isMicrophonesRoom) {

+                var label = canvas.getLabelName(micMuted ? 1435 : 1434);

+                var color = micMuted ? canvas.getThemeColor('basebgcolorizer') : "0xFF6600";

+                this._innertop.setAttribute('bgcolor', color);

+                this._innerbottom.setAttribute('bgcolor', color);

+                this._innerbottom.title.setAttribute('text', label);

+            }

+        ]]>

+		</method>

+

+		<method name="setStreamVolume" args="v">

+			if ($debug) Debug.write("############ setStreamVolume ", v, this.publicSID);

+			var stream = this._chatvideoinner._videostream;

+			if (this.isremote) {

+				stream.setSoundVolume(v);

+			} else {

+				stream.setAttribute('micGain', v);

+				stream.micro.gain = v;

+				if (0 == v) {

+					this.setMicMuted(true);

+					canvas.videoComp_lc.send(canvas.videoComp_lc_name, 'lc_switchMicMuted', this.publicSID, true);

+				} else if (micMuted) {

+					this.silenceMicrophone(false);

+				}

+			}

+		</method>

+

+		<method name="getStreamVolume">

+			var stream = this._chatvideoinner._videostream;

+			return this.isremote ? Number(stream._ns.soundTransform.volume * 100) : stream.micro.gain;

+		</method>

+

+		<handler name="onheight" args="value">

+			if (null == initRatio || !respectRatio) {

+				return;

+			}

+			var videoHeight = value - this.videoInsetY - this.bottomBarHeight;

+			var expectedVideoWidth = videoHeight * initRatio;

+			var expectedPodWidth = expectedVideoWidth + this.videoInsetX;

+			if (this.width != expectedPodWidth) {

+				this.setAttribute("width", expectedPodWidth);

+			}

+		</handler>

+

+		<handler name="onwidth" args="value">

+			if (null == initRatio || !respectRatio) {

+				return;

+			}

+			var videoWidth = value - this.videoInsetX;

+			var expectedVideoHeight = videoWidth / initRatio;

+			var expectedPodHeight = expectedVideoHeight + this.videoInsetY + this.bottomBarHeight;

+			if (this.height != expectedPodHeight) {

+				this.setAttribute("height", expectedPodHeight);

+			}

+		</handler>

+	</class>

+</library>

diff --git a/WebContent/swf10/video/changeDevice.lzx b/WebContent/swf10/video/changeDevice.lzx
new file mode 100644
index 0000000..8a97435
--- /dev/null
+++ b/WebContent/swf10/video/changeDevice.lzx
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<class name="changeDevice" extends="labelExplorerBox" labelid="51"

+    docking="true" resizeable="false" closable="true" width="300" x="14" height="260">

+

+    <switch>

+        <when property="$as3">

+            <passthrough>

+                import flash.net.SharedObject;

+            </passthrough>

+        </when>

+    </switch>

+

+    <method name="storelocaldata">

+        <![CDATA[

+        var so:SharedObject = SharedObject.getLocal('userdata');

+        var sdata = so.data;

+        if (sdata==null) sdata = new Array();

+        sdata["cam"]=availibleCams3.getValue();

+        sdata["mic"]=availibleMics3.getValue();

+        sdata["savecamdata"] = this.holddatainSO.getValue();

+        so.flush();

+        ]]>

+    </method>   

+    

+    <method name="doninitalize">

+        this.storelocaldata();

+        this.close();

+    </method>

+     

+    <labelText labelid="52" fontsize="11" x="10" y="30" />

+

+    <resetCombobox fontsize="11" id="availibleCams3" x="10" y="50" width="280" editable="false">

+        <switch>

+            <when property="$as3">

+                <passthrough>

+                    import flash.media.Camera;

+                    import flash.net.SharedObject;

+                </passthrough>

+            </when>

+        </switch>

+

+        <handler name="oninit">

+            <![CDATA[

+            //Get all availible Cam's

+            var tw = Camera.names;

+            var t = "";

+            for (var eg=0;eg<tw.length;eg++){

+                this.addItem(tw[eg],eg);

+                t=eg;

+            }

+

+            var so:SharedObject = SharedObject.getLocal('userdata');

+	        var sdata = so.data;

+	        var cam;

+            if (sdata != null){

+                cam = sdata["cam"];

+                if (cam == 'undefined') {

+                    cam = t;

+                }

+            } else {

+                cam = t;

+            }

+            this.selectItem(String(cam));

+            ]]>

+        </handler>

+    </resetCombobox>

+    

+    <labelText text="LABEL53" labelid="53" fontsize="11" x="10" y="80" />

+

+    <resetCombobox fontsize="11" id="availibleMics3"  x="10" y="100" width="280" editable="false">

+        <switch>

+            <when property="$as3">

+                <passthrough>

+                    import flash.media.Microphone;

+                    import flash.net.SharedObject;

+                </passthrough>

+            </when>

+        </switch>

+

+        <handler name="oninit">

+            <![CDATA[

+            //Get all availible Mic's

+            var tw = Microphone.names;

+            var t = "";

+            for (var eg=0;eg<tw.length;eg++){

+                t=eg;

+                this.addItem(tw[eg],eg);

+            }

+

+            var so:SharedObject = SharedObject.getLocal('userdata');

+	        var sdata = so.data;

+	        var mic;

+	        if (sdata != null){

+                mic = sdata["mic"];

+                if (mic == 'undefined') {

+                    mic = t;

+                }

+            } else {

+                mic = t;

+            }

+            this.selectItem(String(mic));

+            ]]>

+        </handler>

+    </resetCombobox>

+

+    <!-- Remember Me -->

+    <labelCheckbox name="holddatainSO" labelid="762" x="10" y="220">

+        <switch>

+            <when property="$as3">

+                <passthrough>

+                    import flash.net.SharedObject;

+                </passthrough>

+            </when>

+        </switch>

+

+        <handler name="oninit">

+            var so:SharedObject = SharedObject.getLocal('userdata');

+	        var sdata = so.data;

+            var save = sdata["savecamdata"];

+            if ($debug) Debug.write("savecamdata save: ",save);

+            if(save) this.setValue(true);

+        </handler>         

+    </labelCheckbox>

+    

+    <simpleLabelButton fontsize="11" labelid="54" x="80" y="190" width="100">

+        <handler name="onclick">

+            this.parent.doninitalize();

+        </handler>

+    </simpleLabelButton>

+    

+    <labelText labelid="56" width="280" x="10"

+    	y="150" multiline="true" resize="false"/>

+    

+    <simpleLabelButton labelid="55" width="100" x="190" y="190"

+        onclick="this.parent.close();" />

+    

+</class>

+

+</library>

diff --git a/WebContent/swf10/video/editRecordStreamSWF10.lzx b/WebContent/swf10/video/editRecordStreamSWF10.lzx
new file mode 100644
index 0000000..a29a399
--- /dev/null
+++ b/WebContent/swf10/video/editRecordStreamSWF10.lzx
@@ -0,0 +1,857 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+    

+<!-- #######################

+	Class editRecordStream

+	

+	Description:

+	This Class shows a window where you can alter you Video-/Microphone- Input-Resources

+	and start to stream. The app could also use the default values for Cam/Mic but

+	most users don't know how to alter this (weather in System-Control-Panel or by Right Clicking

+	on the Flash-Screen and *>Preferences>Camera* )

+	So I think it is better if Users are forced to choose something from this list

+	

+ -->

+ 

+<class name="editRecordStreamSWF10"  extends="labelExplorerBox" labelid="51"

+	width="680" height="540" x="14" y="-540" >

+

+    <switch>

+        <when property="$as3">

+            <passthrough>

+				import flash.events.StatusEvent;

+                import flash.media.Camera;

+                import flash.media.Microphone;

+                import flash.media.MicrophoneEnhancedMode;

+                import flash.media.MicrophoneEnhancedOptions;

+                import flash.net.SharedObject;

+                import flash.media.SoundCodec;

+            </passthrough>

+        </when>

+    </switch>

+

+    <attribute name="myvideocontainer" value="null" />

+

+    <attribute name="chosenCam" value="null" />

+    <attribute name="chosenMic" value="null" />

+    <attribute name="chosenSetting" value="null" />

+    <attribute name="currentClient" value="null" />

+

+    <attribute name="remoteMessage" value="null" />

+

+    <!---

+        if true the user will see the dialog no matter if he has choosen "do not show again" or not

+     -->

+    <attribute name="isSyncUpdate" value="false" type="boolean" />

+

+    <attribute name="doDefaultAnimation" value="true" type="boolean" />

+

+    <attribute name="cam_default_width" value="320" type="number" />

+    <attribute name="cam_default_height" value="260" type="number" />

+    

+    <attribute name="interviewPodId" value="0" type="number" />

+    

+    <attribute name="lastRecorded" value="" type="string" />

+	

+	<attribute name="isRunning" value="false" type="boolean" />

+	

+	<attribute name="recordingsCounter" value="5" type="number" />

+	

+	<attribute name="timerIsRunning" value="false" type="boolean" />

+	

+	<attribute name="counterDelegate" value="null" />

+	

+	<method name="startTimer">

+		this.timerIsRunning = true;

+		this.timerWasUnmutedTheFirstTime = true;

+		lz.Timer.addTimer( this.counterDelegate, 1000 );

+	</method>

+	

+	<method name="count" args="calleeObj">

+		if (this.recordingsCounter != 0){

+			this.recordingsCounter -= 1;

+			lz.Timer.addTimer( this.counterDelegate, 1000 );

+			

+			this._text._info.setAttribute("text",""+this.recordingsCounter+" sec");

+			

+		} else {

+			this._text.setAttribute("visibility","hidden");

+			this.doStop();

+			this.timerIsRunning = false;

+			this.doPlay();

+		}

+	</method>

+	

+	<method name="startTimerToCount">

+		if (!this.timerIsRunning) {

+			this.startTimer();

+		}

+	</method>

+	

+	<handler name="oninit">

+		<![CDATA[

+			//Make this view the upmost in the z-Index order

+			canvas.inner.bringToFront();

+		

+			this.counterDelegate = new LzDelegate( this, "count" );

+		

+			if ($debug) Debug.write("this.myvideocontainer ",this.myvideocontainer);

+			if ($debug) Debug.write("editrecordstream ###################### ");

+

+			canvas.videoComp_lc.client = {clb_getBroadCastId: this.clb_getBroadCastId, clb_setUserAVSettings: this.clb_setUserAVSettings};

+

+	        var sharedData = this.checkDeviceSettingsRememberStatus();

+            if(sharedData != null) {

+                this.chosenCam = sharedData["cam"];

+                this.chosenMic = sharedData["mic"];

+                this.cam_default_width = canvas.isInterview ? 320 : sharedData["width"];

+                this.cam_default_height = canvas.isInterview ? 260 : sharedData["height"];

+                this.chosenSetting = sharedData["avstored"];

+                this.remoteMessage = new Array();

+                this.remoteMessage[0] = 'avsettings';

+                this.remoteMessage[2] = this.chosenSetting; 

+                this.getBroadCastId.doCall();

+            } else {

+                if (this.doDefaultAnimation && !canvas.isInterview) {

+                    this._chooseDeviceAnimation.setAttribute('started', true);

+                }

+                this.initItemsAndDefaultAttachCamera();

+            }

+	        

+	        if (canvas.isInterview) {

+	        	if ($debug) Debug.write("Is interview ",interviewPodId);

+                this.setAttribute("x",canvas["interviewPod"+interviewPodId+"_x"]);

+                this.setAttribute("y",canvas["interviewPod"+interviewPodId+"_y"]);

+	        }

+        ]]>

+	</handler>

+	

+	<!-- 

+	   If the remember check-box was true, this flag in the Flash Cookie (aka SharedObject)

+	   is true and the box will close without asking for device settings.

+	 -->

+	<method name="checkDeviceSettingsRememberStatus">

+	<![CDATA[

+		var t:SharedObject = SharedObject.getLocal('userdata');

+		var g = t.data;

+		var save = g["savecamdata"];

+		if ($debug) Debug.write("save: ",save,g["cam"],g["mic"],this.isSyncUpdate);

+		//In case its an Audio-Only Room this box should not close automatically

+		if ($debug) Debug.write("canvas.currentRoomObject: ", canvas.currentRoomObject);

+		

+		//In case the user presses the Sync Button this box should

+        //not close automatically and do the user-prefered values

+        if (canvas.currentRoomObject.roomtype.roomtypes_id == 3) {

+        	//restricted room

+        	return null;

+        }

+		if(save && !this.isSyncUpdate && this.checkLocalDataComplete()) {

+		    return g;

+		}

+		return null;

+	]]>

+	</method>

+	

+	<!-- 

+	   Checks if all needed data in the shared object is available

+	 -->

+	<method name="checkLocalDataComplete">

+        <![CDATA[

+        	var t:SharedObject = SharedObject.getLocal('userdata');

+	        var g = t.data;

+            if (g["width"] > 0 && g["height"] > 0) {

+                return true;

+            }

+            return false;

+        ]]>

+    </method>

+    

+    

+    <netRemoteCallHib name="getBroadCastId" funcname="getBroadCastId"

+                      remotecontext="$once{ canvas.thishib }" >

+

+        <handler name="ondata" args="value">

+            <![CDATA[

+                if ($debug) Debug.write("getBroadCastId",value,canvas.publicSID);

+                parent.myvideocontainer = canvas._videoComponent.createVideoObject(canvas.publicSID, true, parent.interviewPodId, canvas.userobject);

+

+                if ($debug) Debug.write("parent.setUserAVSettings -1- ",parent.chosenSetting);

+                if ($debug) Debug.write("parent.setUserAVSettings -2- ",parent.remoteMessage);

+                if ($debug) Debug.write("parent.setUserAVSettings -3- ",parent.cam_default_width);

+                if ($debug) Debug.write("parent.setUserAVSettings -4- ",parent.cam_default_height);

+                if ($debug) Debug.write("parent.setUserAVSettings -5a- ",canvas.currentRoomObject.rooms_id);

+                if ($debug) Debug.write("parent.setUserAVSettings -6- ",canvas.publicSID);

+                

+                parent.setUserAVSettings.doCall();

+            ]]>

+        </handler>   

+    </netRemoteCallHib>  

+    

+    <netRemoteCallHib name="setUserAVSettings" funcname="setUserAVSettings" 

+                      remotecontext="$once{ canvas.thishib }" >  

+        <netparam><method name="getValue">return parent.parent.chosenSetting;</method></netparam>

+        <netparam><method name="getValue">return parent.parent.remoteMessage;</method></netparam>

+        <netparam><method name="getValue">return parent.parent.cam_default_width;</method></netparam>

+        <netparam><method name="getValue">return parent.parent.cam_default_height;</method></netparam>

+        <netparam><method name="getValue">return canvas.currentRoomObject.rooms_id;</method></netparam>

+        <netparam><method name="getValue">return canvas.publicSID;</method></netparam>

+        <netparam><method name="getValue">return parent.parent.interviewPodId;</method></netparam>

+        <handler name="ondata" args="value">

+            <![CDATA[

+                if ($debug) Debug.write("setUserAVSettings",value);

+                parent.currentClient = value;

+                parent.doStartConference();

+            ]]>

+        </handler>   

+    </netRemoteCallHib>  

+

+    <method name="storelocaldata">

+        <![CDATA[

+            //Debug.write("sharedobject store ");

+            var t:SharedObject = SharedObject.getLocal('userdata');

+            var g = t.data;

+            if (g==null) g = new Array();

+            g["cam"] = this.availableCams.getValue();

+	        g["mic"] = this.availableMics.getValue();

+	        g["avstored"] = this.availableSettings.getValue();

+	        g["savecamdata"] = this.holddatainSO.getValue();

+	        g["width"] = this.cam_default_width;

+	        g["height"] = this.cam_default_height;

+            t.flush();

+        ]]>

+    </method>

+

+	<method name="getMic" args="valMic">

+	<![CDATA[

+		if ($debug) Debug.write("Entering getMic ...", valMic);

+		var _micro = null;

+		if (valMic != null) {

+			_micro = canvas.echoPath == 0 ? Microphone.getMicrophone(valMic) : Microphone.getEnhancedMicrophone(valMic);

+			

+			if (_micro != null && canvas.echoPath == 256) {

+				var options:MicrophoneEnhancedOptions = new MicrophoneEnhancedOptions();

+				options.mode = MicrophoneEnhancedMode.FULL_DUPLEX;

+				options.echoPath = 256;

+				options.nonLinearProcessing = true;

+				_micro.enhancedOptions = options;

+				if ($debug) Debug.write("echoPath set to 256");

+				if ($debug) Debug.write(_micro.enhancedOptions);

+			}

+			

+			if (_micro != null) {

+				_micro.codec = SoundCodec.NELLYMOSER;

+				_micro.framesPerPacket = 1;

+				_micro.setSilenceLevel(0, 2000);

+				if ($debug) Debug.write("canvas.microphoneRateBest: ",canvas.microphoneRateBest);

+				_micro.rate = (canvas.microphoneRateBest == 'undefined') ? 22 : canvas.microphoneRateBest;

+				_micro.gain = 50;

+				// this has no effect if enhanced microphone is obtained

+				//Microphone setUseEchoSupression(bool)

+				var enableEchoSupression = !(canvas.echoSuppression === "false");

+				if ($debug) Debug.write("canvas.echoSuppression: ",canvas.echoSuppression);

+				_micro.setUseEchoSuppression(enableEchoSupression);

+			}

+		}

+		if ($debug) Debug.write("... getMic DONE", _micro);

+		return _micro;

+	]]>

+	</method>

+	

+	<method name="getCam" args="valCam,videoview">

+	<![CDATA[

+		if ($debug) Debug.write("Entering getCam ...", valCam);

+		var _camera = null;

+		if (valCam != null) {

+			_camera = Camera.getCamera(valCam);

+		}

+		if (_camera != null) {

+            if ($debug) Debug.write("videoview: ",videoview);

+			

+			if ($debug) Debug.write("_camera.setQuality BEST: ", canvas.isInterview, (canvas.bandwidthNeededBest*2), canvas.camQualityBest);

+			if (canvas.isInterview) {

+				//we need a fixed frame rate for the videos to merge them later on

+				_camera.setMode(videoview.width, videoview.height, 24, true);

+				if ($debug) Debug.warn("IS INTERVIEW ");

+				_camera.setQuality(0, 98);

+			} else {

+				if ($debug) Debug.write("_camera.setMode: ",videoview.width,videoview.height,canvas.framesPerSecond,true);

+				_camera.setMode(videoview.width, videoview.height, canvas.framesPerSecond, true);

+				if ($debug) Debug.warn("IS NO INTERVIEW ");

+				_camera.setQuality(canvas.bandwidthNeededBest, canvas.camQualityBest);

+			}

+		}

+		if ($debug) Debug.write("... getCam DONE", _camera);

+		return _camera;

+	]]>

+	</method>

+	

+	<method name="doStartConference">

+	<![CDATA[

+		if ($debug) Debug.write("doninitalize");

+		var settings = this.chosenSetting;

+		if (!canvas.isInterview) {

+			this.myvideocontainer.setDefaultVideoSize(this.cam_default_width, this.cam_default_height);

+		}

+		

+		var videoview = this.myvideocontainer._chatvideoinner._videostream;

+		if ($debug) Debug.write("this.myvideocontainer: ", this.myvideocontainer);

+		this.myvideocontainer.setAttribute('isremote',false);

+		var _micro = this.getMic(this.chosenMic);

+		var _camera = this.getCam(this.chosenCam, videoview);

+		if ($debug) Debug.write(_camera , _micro, settings);

+		

+		if ($debug) Debug.write("BroadcastId: ", this.currentClient.broadCastID);

+		switch (settings){

+			case "av":

+				videoview.broadcast(this.currentClient.broadCastID,_camera,_micro);

+				this.myvideocontainer.setAttribute("visible", true);

+				if(canvas.isInterview) {

+					canvas.videoComp_lc.send(canvas.videoComp_lc_name, "onStartBroadcast", this.currentClient.broadCastID, settings);

+				} else {

+					if (this.myvideocontainer.minimized) {

+						this.myvideocontainer.reminimize();

+					}

+				}

+				break;

+			case "a":

+				videoview.broadcast(this.currentClient.broadCastID,null,_micro);

+				this.myvideocontainer.setAttribute("visible", canvas.isInterview || !this.myvideocontainer.hidebyAudioOnly);

+				if(canvas.isInterview) {

+					canvas.videoComp_lc.send(canvas.videoComp_lc_name, "onStartBroadcast", this.currentClient.broadCastID, settings);

+				} else {

+					if (!this.myvideocontainer.hidebyAudioOnly) {

+						if (!this.myvideocontainer.minimized) {

+							this.myvideocontainer.minimize();

+						}

+					}

+				}

+				break;

+			case "v":

+				videoview.broadcast(this.currentClient.broadCastID,_camera,null);

+				this.myvideocontainer.setAttribute("visible", true);

+				if(canvas.isInterview) {

+					canvas.videoComp_lc.send(canvas.videoComp_lc_name, "onStartBroadcast", this.currentClient.broadCastID, settings);

+				} else {

+					if (this.myvideocontainer.minimized) {

+						this.myvideocontainer.reminimize();

+					}

+				}

+				break;

+			case "n":

+				if ($debug) Debug.write("Do not Publish A/V");

+				//Prevent from Hiding the Box in Event Modus

+				if (canvas.thishib.modus == "conference") {

+					this.myvideocontainer.setAttribute("visibility","hidden");

+				}

+				break;

+			default:

+				if ($debug) Debug.warn("no valid device Setup chosen");

+				break;

+		}

+		this.close();

+	]]>

+	</method>

+    

+	<method name="doStartRecording">

+	<![CDATA[

+		this._btnStartRecording.setAttribute("enabled",false);

+		this._play.setAttribute("enabled",false);

+		this.recordingsCounter = 5;

+		this._text.setAttribute("visibility","visible");

+		this._text._info.setAttribute("text","5 sec");

+		this.isRunning = true;

+		

+		var videoview = this._video.content._publisher._chatvideoinner._videostream;

+		var _micro = this.getMic(this.availableMics.getValue());

+		var _camera = this.getCam(this.availableCams.getValue(), videoview);

+		if ($debug) Debug.write(_camera, _micro);

+		

+		if ($debug && _camera != null) Debug.warn("_camera.muted ", _camera.muted);

+		if ($debug && _micro != null) Debug.warn("_micro.muted ", _micro.muted);

+		if ((_camera != null && !_camera.muted) || (_camera == null && _micro != null)) {

+			this.startTimer();

+		}

+		

+		//start recording of client stream

+		var t = new Date();

+		this.lastRecorded = "TEST_SETUP_"+t.getTime();

+		this._video.content._publisher.setAttribute("visibility","visible");

+		this._video.content._viewer.setAttribute("visibility","hidden");

+		videoview.record(this.lastRecorded,_camera,_micro);

+	]]>

+	</method>

+    

+    <method name="doPlay">

+    	<![CDATA[

+    	   if (this.lastRecorded == "") {

+    	   	   //Error - nothing recorded yet

+    	   	   if ($debug) Debug.warn("Nothing to Play");

+    	   } else {

+    	   	   this._play.setAttribute("enabled",true);

+    	   	   this._video.content._publisher.setAttribute("visibility","hidden");

+               this._video.content._viewer.setAttribute("visibility","visible");

+               var videoview = this._video.content._viewer._chatvideoinner._videostream;

+               videoview.justPlayStream(this.lastRecorded+".flv",0);

+    	   }

+    	]]>

+    </method>

+    

+    <method name="doStop">

+    	if (this.isRunning) {

+    		this.isRunning = false;

+    		var videoview = this._video.content._publisher._chatvideoinner._videostream;

+    		this._btnStartRecording.setAttribute("enabled",true);

+    		videoview._stop();

+    		this.doPlay();

+    	}

+    	var videoviewViewer = this._video.content._viewer._chatvideoinner._videostream;

+        videoviewViewer._stop();

+    </method>

+

+    <animator name="_chooseDeviceAnimation" started="false" attribute="y" to="40" duration="750" />

+    

+    

+    <labelText fontstyle="bold" labelid="758"

+			   width="${ parent.width-2 }" height="30" multiline="true" y="20" /> 

+

+    <labelText labelid="447" fontsize="11" fontstyle="bold" x="10" y="80" width="$once{ parent.width-20 }" />

+

+	<resetCombobox fontsize="11" name="availableSettings" x="10" y="100" width="280" editable="false">

+		<handler name="onselect">

+		<![CDATA[

+			var camVisible = true;

+			var micVisible = true;

+			var textVisible = false;

+			switch (this.getValue()){

+				case "av":

+					break;

+				case "a":

+					camVisible = false;

+					break;

+				case "v":

+					micVisible = false;

+					break;

+				case "n":

+					camVisible = false;

+					micVisible = false;

+					textVisible = true;

+					break;

+				default:

+					if ($debug) Debug.warn("no valid device Setup chosen");

+					break;

+			}

+			this.parent.availableCamsLabel.setAttribute("visible", camVisible);

+			this.parent.availableCams.setAttribute("visible", camVisible);

+			this.parent.availableMicsLabel.setAttribute("visible", micVisible);

+			this.parent.availableMics.setAttribute("visible", micVisible);

+			this.parent.infoTextNoAV.setAttribute("visible", textVisible);

+			this.parent.availibleResolutionsLabel.setAttribute("visible", ((canvas.isInterview) ? false : camVisible));

+			this.parent.availibleResolutionsWarning.setAttribute("visible", ((canvas.isInterview) ? false : camVisible));

+			this.parent.availibleResolutions.setAttribute("visible", ((canvas.isInterview) ? false : camVisible));

+		]]>

+		</handler>

+	</resetCombobox>

+    

+    <attribute name="executeAttachCamera" value="false" type="boolean" />

+

+	<method name="getStoredProp" args="prop">

+		//Initialize and get eventually stored property

+		var t:SharedObject = SharedObject.getLocal('userdata');

+		var g = t.data;

+		return g != null ? "" + g[prop] : null;

+	</method>

+	

+	<method name="fillDeviceList" args="list,combo,prop">

+	<![CDATA[

+		//Initialize and get eventually stored property

+		var dev = getStoredProp(prop);

+		

+		//Get all availible devices

+		var foundStoredDev = null;

+		for (var eg = 0; eg < list.length; ++eg) {

+			combo.addItem(list[eg], eg);

+			var r = "" + eg;

+			if (r == dev) {

+				foundStoredDev = r;

+			}

+		}

+		return foundStoredDev;

+	]]>

+	</method>

+	

+	<method name="selectListItem" args="combo,selected,select">

+		if (selected != null) {

+			combo.selectItem(selected);

+		} else {

+			if (select) {

+				combo.selectItemAt(0);

+			}

+		}

+	</method>

+	

+    <!-- 

+        Initialize the default settings for cam and resolution and attach the camera 

+        after we have made sure the values are there one time

+     -->

+	<method name="initItemsAndDefaultAttachCamera">

+	<![CDATA[

+		//fill list of Cameras

+		var cameras = Camera.names;

+		var foundStoredCam = fillDeviceList(cameras, availableCams, "cam");

+		selectListItem(availableCams, foundStoredCam, cameras.length > 0);

+		

+		//fill list of Mics

+		var mics = Microphone.names;

+		var foundStoredMic = fillDeviceList(mics, availableMics, "mic");

+		selectListItem(availableMics, foundStoredMic, mics.length > 0);

+

+		// settings

+		var addCams = !canvas.currentRoomObject.isAudioOnly && cameras.length > 0;

+		var addMics = mics.length > 0;

+		if (addCams && addMics) {

+			availableSettings.addItem(canvas.getLabelName(448), "av");

+		}

+		if (addMics) {

+			availableSettings.addItem(canvas.getLabelName(449), "a");

+		}

+		if (addCams) {

+			availableSettings.addItem(canvas.getLabelName(450), "v");

+		}

+		availableSettings.addItem(canvas.getLabelName(451), "n");

+		

+		var avstored = getStoredProp("avstored");

+		

+		if (availableSettings.getItem(avstored) != null) {

+			availableSettings.selectItem(avstored);

+		} else {

+			availableSettings.selectItemAt(0);

+		}

+

+		//Initialize and set default resolutions combobox

+		if ($debug) Debug.write("myConfigSet 1 ", canvas.myConfigSet);

+		if ($debug) Debug.write("myConfigSet 2 ", canvas.myConfigSet.getPointer().xpathQuery('config/availableCameraResolutions/resolution'));

+		if ($debug) Debug.write("myConfigSet 3 ", canvas.myConfigSet.getPointer().xpathQuery('config/availableCameraResolutions/resolution/'));

+		if ($debug) Debug.write("myConfigSet 4 ", canvas.myConfigSet.getPointer().xpathQuery('config/availableCameraResolutions/resolution/*'));

+		

+		this.executeAttachCamera = true;

+		

+		this.attachCamera();

+	]]>

+	</method>

+	

+	<method name="attachCamera">

+	    <![CDATA[

+		    //if the user has configured this box to auto-close, do not try to

+		    //attach the cam to the preview (black) box

+		    var sharedData = this.checkDeviceSettingsRememberStatus();

+	        if(sharedData != null) {

+	            return;

+	        }

+	        

+	        //Don't execute before combobox items are not initialized

+	        if (!this.executeAttachCamera) {

+	            if ($debug) Debug.write("Return, executeAttachCamera is false");

+                return;

+	        }

+		

+			if (_video == undefined)  {

+			    if ($debug) Debug.write("Return, video video not yet ready");

+                return;

+			}

+			_video.content._publisher.setAttribute("visibility", "visible");

+			_video.content._viewer.setAttribute("visibility", "hidden");

+			var videoview = this._video.content._publisher._chatvideoinner._videostream;

+			var _camera = getCam(availableCams.getValue(), videoview);

+			if (_camera != null) {

+			    //stop will not call clear as there is no NetStream

+				videoview._stop();

+				videoview.clear();

+				videoview.attachCamera(_camera);

+			}

+		]]>

+	</method>

+	

+	<method name="cleanVideos">

+	   if (_video == undefined) return;

+	   //make sure stop and clear is called, as the _stop method does not work for all

+	   //videoviews in the device settings.

+	   _video.content._publisher._chatvideoinner._videostream._stop();

+       _video.content._viewer._chatvideoinner._videostream._stop();

+       _video.content._publisher._chatvideoinner._videostream.clear();

+       _video.content._viewer._chatvideoinner._videostream.clear();

+       if ($debug) Debug.write("Cleaned up videos and free resources");

+	</method>

+	

+    <labelText name="availableCamsLabel" labelid="52" fontsize="11" x="10" y="140" width="$once{ parent.width-20 }" />

+    <resetCombobox fontsize="11" name="availableCams" x="10" y="160" width="280" editable="false">

+		<handler name="onselect">

+			parent.attachCamera();

+		</handler>

+    </resetCombobox>

+

+    <labelText name="availableMicsLabel" labelid="53" fontsize="11" x="10" y="180" width="$once{ parent.width-20 }" />

+    <resetCombobox fontsize="11" name="availableMics"  x="10" y="200" width="280" editable="false" />

+

+    <labelText name="infoTextNoAV" labelid="452" multiline="true" width="280" 

+               fontsize="11" x="10" y="130" visibility="hidden" />

+               

+    <labelText name="availibleResolutionsLabel" labelid="1429" 

+            fontsize="11" x="10" y="224" width="$once{ parent.width-20 }" />

+            

+    <view name="availibleResolutionsWarning" x="272" y="224" 

+            resource="warning_icon_popup_devices_rsc" clickable="true">

+        <labelTooltip multiline="true" labelid="1430" />

+    </view>     

+    

+    <resetCombobox fontsize="11" name="availibleResolutions" x="10" shownitems="10"

+                y="244" width="280" editable="false">

+        <!--- @keywords private -->

+        <attribute name="counter" value="0" />

+		<handler name="onselect" args="item">

+		<![CDATA[

+			if (!canvas.isInterview) {

+				if ($debug) Debug.write("onselect w ", item.cam_width);

+				if ($debug) Debug.write("onselect h ", item.cam_height);

+				parent.setAttribute("cam_default_width",item.cam_width);

+				parent.setAttribute("cam_default_height",item.cam_height);

+				

+				if (item.cam_width > 240) {

+					var newWidth = 600 + item.cam_width - 240;

+					if (newWidth+parent.x+10 > canvas.width) {

+						newWidth = canvas.width - 10 - this.x;

+					}

+					parent.setAttribute("width",newWidth);

+				} else {

+					parent.setAttribute("width",600);

+				}

+				

+				if (item.cam_height > 180) {

+					var newHeight = 500 + item.cam_height - 180;

+					if (newHeight+parent.y+10 > canvas.height) {

+						newHeight = canvas.height - 10 - parent.y;

+					}

+					parent.setAttribute("height",newHeight);

+				} else {

+					parent.setAttribute("height",500);

+				}

+			}

+			parent.attachCamera();

+		]]>

+		</handler>

+        <textlistitem datapath="myConfigSet:/config/availableCameraResolutions/resolution" >

+            <switch>

+	            <when property="$as3">

+	                <passthrough>

+	                    import flash.net.SharedObject;

+	                </passthrough>

+	            </when>

+	        </switch>

+            <attribute name="cam_width" value="320" type="number" />

+            <attribute name="cam_height" value="240" type="number" />

+            <handler name="ondata">

+                <![CDATA[

+                    // if ($debug) Debug.write("ondata ", this);

+                    var type = this.datapath.xpathQuery('@type');

+                    this.cam_width = Number(this.datapath.xpathQuery('@width'));

+                    this.cam_height = Number(this.datapath.xpathQuery('@height'));

+                    this.setAttribute("text",""+this.cam_width+"x"+this.cam_height+" ["+type+"]");

+                    var isDefault = this.datapath.xpathQuery('@isDefault');

+                    

+                    var t:SharedObject = SharedObject.getLocal('userdata');

+                    var g = t.data;

+                    var width = g["width"];

+                    var height = g["height"];

+                    if (width!=null && width > 0 && height!=null && height>0) {

+                        if (width == this.cam_width && height == this.cam_height) {

+                            parent.selectItemAt(parent.counter);

+                            parent.onselect.sendEvent(this);

+                        }

+                    } else {

+                        if (isDefault == "true") {

+                            if ($debug) Debug.write("Found default one ",type);

+                            parent.selectItemAt(parent.counter);

+                            parent.onselect.sendEvent(this);

+                        }

+                    }

+                    parent.counter+=1;

+                ]]>

+            </handler>

+        </textlistitem>

+    </resetCombobox>      

+    

+    <simpleLabelButton name="_btnStartRecording" labelid="775" 

+    				   width="140" x="150" y="280" height="28">

+    	<handler name="onclick">

+            parent._level_meter.startLevel();

+            parent.doStartRecording();

+        </handler>

+    </simpleLabelButton>

+    

+	<view x="340" y="60" name="_video" clip="true" 

+			width="${ parent.width-this.x-10 }" height="${ parent.height-260 }"> 

+		<view name="content">

+		

+			<videoObjectTestBroadcast name="_publisher"  

+					width="${ parent.parent.parent.cam_default_width }" 

+					height="${ parent.parent.parent.cam_default_height }">

+				<handler name="sendCameraStatus" args="camStatus">

+		            if ($debug) Debug.write("sendCameraStatus -1- ",camStatus);

+		            if (camStatus == "Camera.Unmuted") {

+		            	parent.parent.parent.startTimerToCount();

+		            }

+		        </handler>

+		        

+		        <handler name="sendMicroStatus" args="micStatus">

+		            if ($debug) Debug.write("sendMicroStatus -1- ",micStatus);

+		            if (micStatus == "Microphone.Unmuted") {

+		                parent.parent.parent.startTimerToCount();

+		            }

+		        </handler>

+			</videoObjectTestBroadcast>

+			

+			<videoObjectPlayTestBroadcast name="_viewer" visibility="hidden" 

+						width="${ parent.parent.parent.cam_default_width }" 

+						height="${ parent.parent.parent.cam_default_height }" />

+		</view>

+		

+		<om_vscrollbar />

+		<om_hscrollbar />

+	</view>

+	

+								  

+	<view name="_text" x="340" y="60" width="240" height="180" visibility="hidden">

+		<text name="_info" resize="true" bgcolor="0xFFFFFF" align="right"

+			  fontsize="12" fontstyle="bold" />

+	</view>

+    

+    <simpleLabelButton name="_play" y="${ parent.height-166 }" x="490" enabled="false"

+                	width="90" labelid="764" >

+        <handler name="onclick">

+            parent.doPlay();

+        </handler>

+    </simpleLabelButton>

+     

+    <view name="_level_meter" x="340" y="${ parent.height-190 }" width="240" height="20" clip="true" bgcolor="0x000000">

+    	

+    	 <!--- Level delegate, used to track level changes. 

+              @keywords private -->

+        <attribute name="_leveldel" value="$once{new LzDelegate(this, '_updateLevel')}"/>

+    	

+    	<method name="_updateLevel" args="no">

+    		<![CDATA[

+    		    if (parent._video.content._publisher._chatvideoinner._videostream.micro == null)

+    		    {

+    		    	return;

+    		    }

+    		    this.setNewLevel(parent._video.content._publisher._chatvideoinner._videostream.micro.activityLevel);

+    		]]>

+    	</method>

+    	

+    	<method name="startLevel">

+    		this._leveldel.register(lz.Idle, "onidle");

+    	</method>

+    	

+    	<method name="resetNewLevel">

+    		this._leveldel.unregisterAll();

+    		this.setNewLevel(0);

+    	</method>

+    	

+    	<method name="setNewLevel" args="no">

+    		<![CDATA[

+                var newLevel = (238/100) * no;

+                this._over.setAttribute("width",238-newLevel);

+                this._over.setAttribute("x",1+(newLevel));

+            ]]>

+    	</method>

+    	

+    	<view name="_bg" width="238" height="18" x="1" y="1" bgcolor="0xFFFFFF" />

+    	<view name="_grip" resource="level_meter_rsc" x="1" y="1" />

+    	<view name="_over" width="238" height="18" x="1" y="1" bgcolor="0xFFFFFF" />

+    	<labelText labelid="767" x="2" y="2" height="16" width="236" resize="false" />

+    </view>

+    

+    <view y="${ parent.height-98 }" resource="test_setup_info_rsc" x="16" />

+    

+    <labelText fontstyle="bold" labelid="765" x="39" y="${ parent.height-100 }"

+               width="${ parent.width-50 }" multiline="true" />

+

+    <!-- Remember Me -->

+    <labelCheckbox name="holddatainSO" labelid="762" x="10" y="${ parent.height-20 }" >

+        <switch>

+            <when property="$as3">

+                <passthrough>

+                    import flash.net.SharedObject;

+                </passthrough>

+            </when>

+        </switch>

+        <handler name="oninit">

+            var t:SharedObject = SharedObject.getLocal('userdata');

+            var g = t.data;

+            var save = g["savecamdata"];

+            if ($debug) Debug.write("savecamdata save: ",save);

+            if(save) this.setValue(true);

+        </handler>

+    </labelCheckbox>

+

+    <simpleLabelButton fontsize="11" visibility="${ (canvas.isInterview) ? 'visible' : 'hidden' }"

+                       labelid="54" x="${ parent.width-220 }" y="${ parent.height-50 }" width="100">

+        <handler name="onclick">

+            parent.cleanVideos();

+            this.parent.storelocaldata();

+            this.parent.chosenCam = parent.availableCams.getValue();

+            this.parent.chosenMic = parent.availableMics.getValue();

+            this.parent.chosenSetting = parent.availableSettings.getValue();

+            this.parent.remoteMessage = new Array();

+            this.parent.remoteMessage[0] = 'avsettings';

+            this.parent.remoteMessage[1] = "0";

+            this.parent.remoteMessage[2] = this.parent.chosenSetting;

+            this.parent.getBroadCastId.doCall();

+        </handler>

+    </simpleLabelButton>

+

+    <simpleLabelButton fontsize="11" visibility="${ (canvas.isInterview) ? 'visible' : 'hidden' }"

+                       labelid="918" x="${ parent.width-110 }" y="${ parent.height-50 }" width="100">

+        <handler name="onclick">

+            parent.cleanVideos();

+            parent.close();

+        </handler>

+    </simpleLabelButton>

+

+    <simpleLabelButton fontsize="11" visibility="${ (!canvas.isInterview) ? 'visible' : 'hidden' }"

+    				   labelid="761" width="160" x="${ parent.width-170 }" y="${ parent.height-50 }" height="28">

+        <handler name="onclick">

+            parent.cleanVideos();

+        	this.parent.storelocaldata();

+        	this.parent.chosenCam = parent.availableCams.getValue();

+        	this.parent.chosenMic = parent.availableMics.getValue();

+        	this.parent.chosenSetting = parent.availableSettings.getValue();

+			this.parent.remoteMessage = new Array();

+			this.parent.remoteMessage[0] = 'avsettings';

+			this.parent.remoteMessage[1] = "0";

+			this.parent.remoteMessage[2] = this.parent.chosenSetting;

+            this.parent.getBroadCastId.doCall();

+        </handler>

+    </simpleLabelButton>

+

+</class>

+    

+</library>

diff --git a/WebContent/swf10/video/library.lzx b/WebContent/swf10/video/library.lzx
new file mode 100644
index 0000000..515567f
--- /dev/null
+++ b/WebContent/swf10/video/library.lzx
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+	<!--  FamFam Icon Creative Commons -->

+    <resource name="warning_icon_popup_devices_rsc" src="resources/error.png" />

+

+	<!--  APL author sebawagner -->

+	<resource name="chatbgitem" src="resources/profile_pic.jpg" />

+

+	<!--  FamFam Icon Creative Commons -->

+	<resource name="resyncuser_rsc" src="resources/arrow_refresh_small.png" />

+	

+	<!--  APL author sebawagner -->

+    <resource name="mic_rsc" src="resources/micro.png" />

+    

+    <!--  APL author sebawagner -->

+	<resource name="speaking" src="resources/speaking.png" />

+

+    <!--  IconFinder Creative Commons -->

+    <resource name="volume" src="resources/volume.png" />

+	

+	<!--  FamFam Icon Creative Commons -->

+	<resource name="mute_btn_rsc">

+		<frame src="resources/sound.png" />

+		<frame src="resources/sound_mute.png" />

+	</resource>

+	

+	<!--  APL author sebawagner -->

+    <resource name="mute_micro_btn_rsc">

+		<frame src="resources/mute_micro.png" />

+		<frame src="resources/mute_micro_red.png" />

+	</resource>

+

+	<!--  APL author sebawagner -->

+	<resource name="lz_recorder_play" src="resources/webstart_play.png" />

+

+    <include href="changeDevice.lzx" />

+    <include href="videoUserProfilePicSWF10.lzx" />

+    <include href="editRecordStreamSWF10.lzx" />

+    <include href="baseVideoObject.lzx" />

+    <include href="videoObjectPlayBroadcast.lzx" />

+    <include href="videoObjectTestBroadcast.lzx" />

+    <include href="videoObjectPlayTestBroadcast.lzx" />

+    <include href="volumeSlider.lzx" />

+    

+</library>

diff --git a/WebContent/swf10/video/resources/arrow_refresh_small.png b/WebContent/swf10/video/resources/arrow_refresh_small.png
new file mode 100644
index 0000000..d3087df
--- /dev/null
+++ b/WebContent/swf10/video/resources/arrow_refresh_small.png
Binary files differ
diff --git a/WebContent/swf10/video/resources/error.png b/WebContent/swf10/video/resources/error.png
new file mode 100644
index 0000000..628cf2d
--- /dev/null
+++ b/WebContent/swf10/video/resources/error.png
Binary files differ
diff --git a/WebContent/swf10/video/resources/micro.fla b/WebContent/swf10/video/resources/micro.fla
new file mode 100644
index 0000000..0631ad2
--- /dev/null
+++ b/WebContent/swf10/video/resources/micro.fla
Binary files differ
diff --git a/WebContent/swf10/video/resources/micro.png b/WebContent/swf10/video/resources/micro.png
new file mode 100644
index 0000000..9e025d4
--- /dev/null
+++ b/WebContent/swf10/video/resources/micro.png
Binary files differ
diff --git a/WebContent/swf10/video/resources/mute_micro.fla b/WebContent/swf10/video/resources/mute_micro.fla
new file mode 100644
index 0000000..210ddbf
--- /dev/null
+++ b/WebContent/swf10/video/resources/mute_micro.fla
Binary files differ
diff --git a/WebContent/swf10/video/resources/mute_micro.png b/WebContent/swf10/video/resources/mute_micro.png
new file mode 100644
index 0000000..71efdbe
--- /dev/null
+++ b/WebContent/swf10/video/resources/mute_micro.png
Binary files differ
diff --git a/WebContent/swf10/video/resources/mute_micro_red.fla b/WebContent/swf10/video/resources/mute_micro_red.fla
new file mode 100644
index 0000000..287c2a0
--- /dev/null
+++ b/WebContent/swf10/video/resources/mute_micro_red.fla
Binary files differ
diff --git a/WebContent/swf10/video/resources/mute_micro_red.png b/WebContent/swf10/video/resources/mute_micro_red.png
new file mode 100644
index 0000000..29e16b5
--- /dev/null
+++ b/WebContent/swf10/video/resources/mute_micro_red.png
Binary files differ
diff --git a/WebContent/swf10/video/resources/profile_pic.jpg b/WebContent/swf10/video/resources/profile_pic.jpg
new file mode 100644
index 0000000..3b63f01
--- /dev/null
+++ b/WebContent/swf10/video/resources/profile_pic.jpg
Binary files differ
diff --git a/WebContent/swf10/video/resources/sound.png b/WebContent/swf10/video/resources/sound.png
new file mode 100644
index 0000000..6056d23
--- /dev/null
+++ b/WebContent/swf10/video/resources/sound.png
Binary files differ
diff --git a/WebContent/swf10/video/resources/sound_mute.png b/WebContent/swf10/video/resources/sound_mute.png
new file mode 100644
index 0000000..b652d2a
--- /dev/null
+++ b/WebContent/swf10/video/resources/sound_mute.png
Binary files differ
diff --git a/WebContent/swf10/video/resources/speaking.png b/WebContent/swf10/video/resources/speaking.png
new file mode 100644
index 0000000..2ca21a7
--- /dev/null
+++ b/WebContent/swf10/video/resources/speaking.png
Binary files differ
diff --git a/WebContent/swf10/video/resources/volume.png b/WebContent/swf10/video/resources/volume.png
new file mode 100644
index 0000000..1b0dbc5
--- /dev/null
+++ b/WebContent/swf10/video/resources/volume.png
Binary files differ
diff --git a/WebContent/swf10/video/resources/webstart_play.png b/WebContent/swf10/video/resources/webstart_play.png
new file mode 100644
index 0000000..6d13683
--- /dev/null
+++ b/WebContent/swf10/video/resources/webstart_play.png
Binary files differ
diff --git a/WebContent/swf10/video/videoObjectPlayBroadcast.lzx b/WebContent/swf10/video/videoObjectPlayBroadcast.lzx
new file mode 100644
index 0000000..d162445
--- /dev/null
+++ b/WebContent/swf10/video/videoObjectPlayBroadcast.lzx
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 

+	license agreements. See the NOTICE file distributed with this work for additional 

+	information regarding copyright ownership. The ASF licenses this file to 

+	you under the Apache License, Version 2.0 (the "License"); you may not use 

+	this file except in compliance with the License. You may obtain a copy of 

+	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 

+	by applicable law or agreed to in writing, software distributed under the 

+	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 

+	OF ANY KIND, either express or implied. See the License for the specific 

+	language governing permissions and limitations under the License. -->

+<library>

+

+	<!--- Contains no microphone or camera Object, this view can only subscribe 

+		to a video or live-stream -->

+	<class name="videoObjectPlayBroadcast" extends="baseVideoObject"

+		isremote="true">

+		<attribute name="interviewPodId" value="-1" />

+		<attribute name="ratioW" value="1" />

+		<attribute name="ratioH" value="1" />

+

+		<attribute name="videoInsetX" value="2" type="number" />

+		<attribute name="videoInsetY" value="21" type="number" />

+		<attribute name="bottomBarHeight" value="0" type="number" />

+

+		<handler name="oninit">

+		<![CDATA[

+			if ($debug) Debug.write("Init videoObjectPlayBroadcast ",this.isremote,this.clientVars);

+			//Display widget defined in mother class

+			this._loudness.bringToFront();

+			this._resizeview.bringToFront();

+		]]>

+		</handler>

+

+		<!--- Change the video resolution by chaning pod size -->

+		<method name="setDefaultVideoSize" args="w,h">

+			this.initRatio = w / h;

+			this.setAttribute("width",w+this.videoInsetX);

+

+			if (canvas.currentRoomObject.showMicrophoneStatus) {

+				this.setAttribute("bottomBarHeight",this._innertop.height + 1);

+			}

+

+			this.setAttribute("height",h+this.videoInsetY+this.bottomBarHeight);

+		</method>

+

+		<view name="_chatvideoinner" x="$once{ parent.videoInsetX-1 }" y="$once{ parent.videoInsetY-1 }"

+			height="${parent.height-parent.videoInsetY-parent.bottomBarHeight}"

+			width="${parent.width-parent.videoInsetX}">

+

+			<attribute name="initH" />

+			<attribute name="initW" />

+

+			<handler name="oninit">

+				this.r.setAttribute('frame',5);

+				this.initH =

+				this.height;

+				this.initW = this.width;

+			</handler>

+

+			<view name="r"></view>

+

+			<baseVideoStreamDevice name="_videostream"

+				bgcolor="black" width="${parent.width}" height="${parent.height}">

+				<handler name="onlevel">

+					var fullLength = parent.height-24;

+					parent._activityLevel.setAttribute("height",-this.level*(fullLength/100));

+				</handler>

+			</baseVideoStreamDevice>

+

+			<view name="_activityLevel" width="6" x="2" y="${parent.height}"

+				opacity="0.5" bgcolor="0x00FF00" height="0" />

+		</view>

+	</class>

+</library>

diff --git a/WebContent/swf10/video/videoObjectPlayTestBroadcast.lzx b/WebContent/swf10/video/videoObjectPlayTestBroadcast.lzx
new file mode 100644
index 0000000..e989ae5
--- /dev/null
+++ b/WebContent/swf10/video/videoObjectPlayTestBroadcast.lzx
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+

+<!---

+	contains microphone and camera for broadcasting,

+	this class is used only in Meetings-Modus

+ -->

+

+ 

+<class name="videoObjectPlayTestBroadcast" extends="view" >

+

+	<view name="_chatvideoinner" x="0" y="0" height="${parent.height}" width="${parent.width}">

+		

+		<baseVideoStream name="_videostream" mode="broadcast"

+						 width="${parent.width}" height="${parent.height}" bgcolor="0x000000" />

+		

+	</view>	

+</class>

+

+

+</library>

diff --git a/WebContent/swf10/video/videoObjectTestBroadcast.lzx b/WebContent/swf10/video/videoObjectTestBroadcast.lzx
new file mode 100644
index 0000000..2fff0a2
--- /dev/null
+++ b/WebContent/swf10/video/videoObjectTestBroadcast.lzx
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+

+<!---

+	contains microphone and camera for broadcasting,

+	this class is used only in Meetings-Modus

+ -->

+

+ 

+<class name="videoObjectTestBroadcast" extends="view" >

+

+    <event name="sendCameraStatus" />

+    

+    <event name="sendMicroStatus" />

+    

+	<view name="_chatvideoinner" x="0" y="0" height="${parent.height}" width="${parent.width}">

+		

+		<baseVideoStreamDevice name="_videostream" mode="broadcast" sendNotificationViaLocalConnection="false"

+						 width="${parent.width}" height="${parent.height}" bgcolor="0x000000">

+			<handler name="sendCameraStatus" args="camStatus">

+                if ($debug) Debug.write("sendCameraStatus",camStatus);

+                parent.parent.sendCameraStatus.sendEvent(camStatus);

+            </handler>

+            

+            <handler name="sendMicroStatus" args="micStatus">

+                if ($debug) Debug.write("sendMicroStatus",micStatus);

+                parent.parent.sendMicroStatus.sendEvent(micStatus);

+            </handler>

+		</baseVideoStreamDevice>

+		

+	</view>	

+</class>

+

+

+</library>

diff --git a/WebContent/swf10/video/videoUserProfilePicSWF10.lzx b/WebContent/swf10/video/videoUserProfilePicSWF10.lzx
new file mode 100644
index 0000000..2a7797b
--- /dev/null
+++ b/WebContent/swf10/video/videoUserProfilePicSWF10.lzx
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<class name="videoUserProfilePicSWF10" extends="view" x="1" y="2" width="${parent.width-2}" height="${parent.height-3}" 

+	   clip="true" bgcolor="white">

+	<attribute name="value" value="null" />

+		

+	<handler name="oninit">

+	<![CDATA[

+		var extra = value.sipTransport ? "&parentPath=../default&moduleName=videoconf1"

+			: '&parentPath=&moduleName=remoteuserprofile&remoteUserid='+this.value.user_id;

+

+		this._userpic.setAttribute('src', canvas.getPictureUrl(value.picture_uri, extra));

+	]]>

+	</handler>	

+	<image name="_userpic" stretches="both" width="${parent.width}" height="${parent.height}" />

+</class>

+

+</library>

diff --git a/WebContent/swf10/video/volumeSlider.lzx b/WebContent/swf10/video/volumeSlider.lzx
new file mode 100644
index 0000000..8c2d35b
--- /dev/null
+++ b/WebContent/swf10/video/volumeSlider.lzx
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+

+      http://www.apache.org/licenses/LICENSE-2.0

+

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+

+-->

+<library>

+

+<class name="VolumeSlider" extends="closableView" clickable="true" height="120">

+

+    <switch>

+    <when property="$as3">

+        <passthrough>

+            import flash.net.*;

+            import flash.media.*;

+        </passthrough>

+    </when>

+    </switch>

+

+    <attribute name="videoStream" value="null" />

+    <attribute name="ownStream" type="boolean" value="false" />

+    <attribute name="resizing" type="boolean" value="false" />

+

+    <attribute name="videoObject" value="null" />

+    <attribute name="initialNumber" value="50" type="number"/>

+    <attribute name="maxvalue" value="100" type="number" />

+

+    <dragHelper name="dragHelper"/>

+

+    <handler name="oninit">

+        dragHelper.create();

+    </handler>

+

+    <handler name="ondestroy">

+        dragHelper.remove();

+    </handler>

+

+    <!--- @keywords private -->

+    <method name="passModeEvent" args="eventStr,view" >

+        <![CDATA[

+        if (eventStr == "onmousedown") {

+            if (null != view) {

+                if (!view.childOf(this)) {

+                    this.close();

+                }

+            } else {

+                this.close();

+            }

+        }

+        if (view && view.childOf(this)) {

+            if (view[eventStr]) {

+                view[eventStr].sendEvent(view);

+            }

+            return false;

+        }

+        return true;

+        ]]>

+    </method>

+

+    <vslider name="_slider" height="$once{parent.height}" y="10" x="0" minvalue="0" maxvalue="100"

+        initvalue="$once{parent.initialNumber}" showrange="false" showvalue="false" switchaxis="true">

+        <handler name="onvalue" args="v">

+            if ($debug) Debug.write("onvalue", v);

+

+            parent.videoObject.setStreamVolume(Number(v));

+        </handler>

+        <handler name="onvalueChosenFinal">

+            parent.close();

+        </handler>

+    </vslider>

+

+</class>

+

+</library>

diff --git a/WebContent/swf10/whiteboard/library.lzx b/WebContent/swf10/whiteboard/library.lzx
new file mode 100644
index 0000000..ebb556b
--- /dev/null
+++ b/WebContent/swf10/whiteboard/library.lzx
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+    <include href="playBackWhiteboardVideo.lzx" />

+    

+</library>

diff --git a/WebContent/swf10/whiteboard/playBackWhiteboardVideo.lzx b/WebContent/swf10/whiteboard/playBackWhiteboardVideo.lzx
new file mode 100644
index 0000000..8dc7194
--- /dev/null
+++ b/WebContent/swf10/whiteboard/playBackWhiteboardVideo.lzx
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<library>

+

+<!---

+    The playBackVideoStream is used in the recording playerback to show the video

+ -->

+<class name="playBackWhiteboardVideo" extends="baseVideoStream" bgcolor="0x000000">

+	

+	<attribute name="timerDelegate" value="null"/>

+    <attribute name="timerDelegateStarted" value="false" type="boolean"/>

+    

+    <handler name="oninit">

+        this.timerDelegate = new LzDelegate( this, "calcProgressBar" );

+    </handler>

+    

+    <method name="playVideoStream" args="streamName,delay">

+        this.playStream(streamName,delay);

+        this.timerDelegateStarted = true;

+        lz.Timer.addTimer( this.timerDelegate , 1000 );

+    </method>

+    

+    <method name="stopVideo">

+        this._stop();

+        lz.Timer.removeTimer(this.timerDelegate);

+        this.timerDelegateStarted = false;

+    </method>

+	

+	<handler name="onNetStatus" args="info">

+        //if ($debug) Debug.write("onNetStatus ",info);

+        if (info.code ==  "NetStream.Play.Stop" ) {

+        	if ($debug) Debug.write("-- stopStream");

+            //parent.parent.stopStream();

+            canvas.videoComp_lc.send(canvas.videoComp_lc_name, 'stopRecordingStream', this.name);

+        }

+    </handler>

+    <handler name="onMetaDataEvent" args="info">

+        //if ($debug) Debug.warn("onMetaData ",info);

+        //if ($debug) Debug.write("parent.parent.deltaInSeconds ",Number(info.duration));

+        //parent.parent.deltaInSeconds = Number(info.duration);

+        canvas.videoComp_lc.send(canvas.videoComp_lc_name, 'metaWhiteboardPlaybackStream', this.name, Number(info.duration));

+    </handler>

+    

+    <method name="calcProgressBar" args="tObjRef">

+        //if ($debug) Debug.write("calcProgressBar updateRecordingStreamTime",this._ns.time)

+        canvas.videoComp_lc.send(canvas.videoComp_lc_name, 'updateWhiteboardStreamTime',this.name, this._ns.time);

+        if (this.timerDelegateStarted) {

+            lz.Timer.addTimer( this.timerDelegate , 1000 );

+        }

+    </method>

+	

+</class>

+

+</library>
\ No newline at end of file
diff --git a/build-jaudiotagger.xsl b/build-jaudiotagger.xsl
new file mode 100644
index 0000000..210533c
--- /dev/null
+++ b/build-jaudiotagger.xsl
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

+ <xsl:output omit-xml-declaration="no"/>

+    <xsl:template match="node()|@*">

+      <xsl:copy>

+         <xsl:apply-templates select="node()|@*"/>

+      </xsl:copy>

+    </xsl:template>

+

+    <xsl:template match="//*[@id='mp4reader.impl']"/>

+    <xsl:template match="//*[@id='mp3reader.impl']"/>

+</xsl:stylesheet>

diff --git a/build-red5_ivy.xsl b/build-red5_ivy.xsl
new file mode 100644
index 0000000..6eb32f6
--- /dev/null
+++ b/build-red5_ivy.xsl
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

+ <xsl:output omit-xml-declaration="no"/>

+    <xsl:template match="node()|@*">

+      <xsl:copy>

+         <xsl:apply-templates select="node()|@*"/>

+      </xsl:copy>

+    </xsl:template>

+

+    <xsl:template match="//*[@name='jaudiotagger']">

+		<xsl:text disable-output-escaping="yes">

+			&lt;dependency org="org" name="jaudiotagger" rev="2.0.4-SNAPSHOT" &gt;

+				&lt;include type="jar" /&gt;
+			&lt;/dependency&gt;

+		</xsl:text>

+	</xsl:template>

+    <xsl:template match="//*[@name='bcprov-jdk16']">

+		<xsl:text disable-output-escaping="yes">

+			&lt;dependency org="org.bouncycastle" name="bcprov-jdk16" rev="1.45" conf="java6-&gt;*" &gt;

+				&lt;include type="jar" /&gt;
+			&lt;/dependency&gt;

+		</xsl:text>

+	</xsl:template>

+    <xsl:template match="//*[@name='sysout-over-slf4j']">

+		<xsl:text disable-output-escaping="yes">

+			&lt;dependency org="uk.org.lidalia" name="sysout-over-slf4j" rev="1.0.2" &gt;

+				&lt;include type="jar" /&gt;
+			&lt;/dependency&gt;

+		</xsl:text>

+	</xsl:template>

+    <xsl:template match="//*[@name='httpcore']">

+		<xsl:text disable-output-escaping="yes">

+			&lt;dependency org="org.apache.httpcomponents" name="httpcore" rev="4.2.1" &gt;

+				&lt;include type="jar" /&gt;
+			&lt;/dependency&gt;

+		</xsl:text>

+	</xsl:template>

+    <xsl:template match="//*[@name='httpclient']">

+		<xsl:text disable-output-escaping="yes">

+			&lt;dependency org="org.apache.httpcomponents" name="httpclient" rev="4.2" &gt;

+				&lt;include type="jar" /&gt;
+			&lt;/dependency&gt;

+		</xsl:text>

+	</xsl:template>

+</xsl:stylesheet>

diff --git a/build-red5_ivysettings.xsl b/build-red5_ivysettings.xsl
new file mode 100644
index 0000000..dc04882
--- /dev/null
+++ b/build-red5_ivysettings.xsl
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

+ <xsl:output omit-xml-declaration="no"/>

+    <xsl:template match="node()|@*" name="identity">

+      <xsl:copy>

+         <xsl:apply-templates select="node()|@*"/>

+      </xsl:copy>

+    </xsl:template>

+

+    <xsl:template match="url[last()]">

+		<xsl:call-template name="identity"/>

+            <url name="java_net">

+				<artifact pattern="http://download.java.net/maven/2/[organisation]/[artifact]/[revision]/[artifact]-[revision].[ext]" />

+            </url>

+	</xsl:template>

+</xsl:stylesheet>

diff --git a/build.properties b/build.properties
new file mode 100644
index 0000000..b083b95
--- /dev/null
+++ b/build.properties
@@ -0,0 +1,25 @@
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+project.version=3.0.2
+project.status=SNAPSHOT
+project.distname=openmeetings
+ivy.install.version=2.3.0
+maven.version=3.0.4
+red5.server.revision=4393
+red5.client.revision=4393
+red5.server.version=1.0.0
+laszlo.proxied=solo
+wicket.mode=DEPLOYMENT
+backup.file.list=backup_v_1_4_rc1_r3326.zip,backup_v_1_5_rc1_r3393.zip,backup_v_1_6_2_r3675.zip,backup_v_1_7_0_r3822.zip,backup_v_1_8_8_r4555.zip,backup_v_1_9_1_r4707.zip,backup_v_2_0_0_r1361497.zip
+db=derby
+screensharing.keystore.password=secret
+screensharing.keystore.alias=screen
diff --git a/build.xml b/build.xml
new file mode 100644
index 0000000..991590b
--- /dev/null
+++ b/build.xml
@@ -0,0 +1,1445 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+ -->
+<!DOCTYPE project>
+<project name="openmeetings" basedir="./" default="dist"
+	xmlns="antlib:org.apache.tools.ant"
+	xmlns:rat="antlib:org.apache.rat.anttasks"
+	xmlns:ivy="antlib:org.apache.ivy.ant"
+	>
+	<loadproperties srcFile="build.properties" />
+
+	<property name="jar.suffix" value="${project.version}-${project.status}" />
+	<property environment="env" />
+
+	<property name="src.base.dir" value="${basedir}/src" />
+
+	<property name="dist.dir" value="${basedir}/dist" />
+
+	<property name="build.base.dir" value="${basedir}/build" />
+	<property name="project.lib.dir" value="${build.base.dir}/lib" />
+	<property name="ivy.jar.path" value="${project.lib.dir}/ivy-${ivy.install.version}.jar" />
+	<property name="mainlibs.lib.dir" value="${project.lib.dir}/mainlibs" />
+	<property name="om.lib.dir" value="${project.lib.dir}/om" />
+	<property name="anakia.lib.dir" value="${project.lib.dir}/anakia" />
+	<property name="webcontent.base.dir" value="${basedir}/WebContent" />
+	
+	<property name="screenshare.resources.dir" value="${src.base.dir}/screenshare/resources" />
+	<property name="axis.resources.dir" value="${src.base.dir}/axis/resources" />
+	
+	<property name="webapp.dir" value="${src.base.dir}/main/webapp" />
+	<property name="junit.lib.dir" value="${project.lib.dir}/junit" />
+	<property name="junit.backups.dir" value="${junit.lib.dir}/backups" />
+	<property name="rat.lib.dir" value="${project.lib.dir}/rat" />
+	<property name="dtd-generator.lib.dir" value="${project.lib.dir}/dtd-generator" />
+	<property name="svntask.lib.dir" value="${project.lib.dir}/svntask" />
+	<property name="docs.dest" value="docs" />
+	<property name="docs.src" value="xdocs" />
+
+	<property name="red5.server.dir" value="${build.base.dir}/red5/server" />
+	<property name="red5.client.dir" value="${build.base.dir}/red5/client" />
+	<property name="red5.lib" value="${red5.server.dir}/dist" />
+	<property name="red5.server.lib" value="${red5.lib}/lib" />
+	<property name="red5.client.lib" value="${red5.client.dir}/dist" />
+	<property name="red5.root" value="${dist.dir}/red5" />
+	<property name="dist.webapps.dir" value="${red5.root}/webapps/${project.distname}" />
+	<property name="dist.classes.dir" value="${dist.webapps.dir}/WEB-INF/classes" />
+	<property name="dist.persistence.dir" value="${dist.classes.dir}/META-INF/" />
+
+	<property name="laszlo.home" value="${build.base.dir}/openlaszlo" />
+	<property name="laszlo46.home" value="${build.base.dir}/openlaszlo46" />
+
+	<!-- screenshare.out.dir -->
+	<property name="screenshare.out.dir" value="${dist.webapps.dir}/screensharing" />
+	
+	<condition property="junit.run.selenium" value="true" else="false">
+		<isset property="selenium" />
+	</condition>
+
+	<property name="main.out.dir" value="${build.base.dir}/classes/openmeetings" />
+
+	<!-- LPS Properties -->
+	<property name="out.dir.swf" value="${dist.webapps.dir}/public" />
+	<property name="laszlo.as3.src.dir" value="${webcontent.base.dir}/swf10" />
+	<property name="laszlo.src.dir" value="${webcontent.base.dir}/src" />
+
+	<property name="keystore.file" value="${build.base.dir}/screensharing_sign.keystore" />
+
+	<property name="junit.base.dir" value="${build.base.dir}/junit" />
+	<property name="junit.report.dir" value="${junit.base.dir}/report" />
+	<property name="om.dist.webapp" value="${red5.root}/webapps/${project.distname}" />
+	<tstamp prefix="build">
+		<format property="TODAY" pattern="d-MMMM-yyyy" locale="en" />
+	</tstamp>
+
+	<path id="laszlo.lib">
+		<!-- swf8 -->
+		<fileset dir="${laszlo.home}/WEB-INF/lib" includes="saxon-6.5.3-lz-p1.jar jakarta-regexp-1.2.jar
+			commons-collections.jar jdom.jar log4j-1.2.6.jar lps-4.9.0.jar batik-all-flex.jar velocity-dep-1.4-flex.jar" />
+		<!-- swf10 -->
+		<fileset dir="${laszlo.home}/WEB-INF/lib" includes="mxmlc*.jar flex-messaging-common.jar swfutils.jar asc.jar
+			fxgutils.jar" />
+	</path>
+
+	<path id="laszlo46.lib">
+		<fileset dir="${laszlo46.home}/WEB-INF/lib" includes="*.jar" />
+	</path>
+	
+	<!-- compile classpath -->
+	<path id="check.classpath">
+		<fileset dir="${red5.lib}" includes="*.jar" />
+		<fileset dir="${red5.server.lib}" includes="*.jar" />
+		<fileset dir="${red5.client.lib}" includes="red5-client*.jar" />
+		<fileset dir="${mainlibs.lib.dir}" includes="*.jar" />
+		<fileset dir="${om.lib.dir}" includes="*.jar" />
+		<fileset dir="${junit.lib.dir}" includes="*.jar" />
+		<fileset dir="${dtd-generator.lib.dir}" includes="*.jar" />
+		<fileset dir="${project.lib.dir}" includes="*.jar" />
+	</path>
+	<path id="compile.classpath">
+		<fileset dir="${red5.lib}/plugins" includes="*.jar" />
+		<path refid="check.classpath"/>
+	</path>
+	<path id="junit.classpath">
+		<fileset dir="${junit.lib.dir}" includes="*.jar" />
+		<fileset dir="${om.dist.webapp}/WEB-INF/lib">
+			<include name="*.jar" />
+			<exclude name="openmeetings*.jar" />
+		</fileset>
+		<fileset dir="${red5.root}" includes="*.jar" />
+		<fileset dir="${red5.root}/lib" includes="*.jar" />
+		<fileset dir="${red5.root}/plugins" includes="*.jar" />
+		<pathelement path="${dist.classes.dir}" />
+		<pathelement path="${main.out.dir}" />
+	</path>
+
+	<target name="info" unless="java6.installed">
+		<echo>Ant version is ${ant.version}</echo> <!-- output Ant version -->
+	</target>
+
+	<target name="prepare.mkdir" depends="-java6or7.check">
+		<mkdir dir="${red5.server.lib}" />
+		<mkdir dir="${red5.lib}/log" />
+		<mkdir dir="${red5.client.dir}/dist" />
+		<mkdir dir="${dist.dir}" />
+		<mkdir dir="${main.out.dir}" />
+		<mkdir dir="${mainlibs.lib.dir}" />
+		<mkdir dir="${om.lib.dir}" />
+		<mkdir dir="${anakia.lib.dir}" />
+		<mkdir dir="${junit.backups.dir}" />
+		<mkdir dir="${junit.report.dir}" />
+		<mkdir dir="${rat.lib.dir}" />
+		<mkdir dir="${dtd-generator.lib.dir}" />
+		<mkdir dir="${svntask.lib.dir}" />
+		<mkdir dir="${laszlo.home}" />
+		<mkdir dir="${laszlo46.home}" />
+		<echo file="${build.base.dir}/velocity.properties" append="false">runtime.log = ${build.base.dir}/velocity.log${line.separator}output.encoding=UTF-8${line.separator}</echo>
+	</target>
+
+	<!-- perform nightly build with tests -->
+	<target name="dist-bin-nightly" description="perform nightly build with tests" depends="dist-bin, test" />
+
+	<!-- build artefacts -->
+	<target name="dist-bin" description="pack binary distribution" depends="clean.all, dist">
+		<tstamp>
+			<format property="build.time" pattern="dd-MM-yyyy_HHmm" />
+		</tstamp>
+		<property name="archive.file.name" value="${dist.dir}/apache-${project.distname}-${project.version}.r${svn.info.rev}-${build.time}" />
+
+		<move file="${dist.dir}/red5/license.txt" tofile="${dist.dir}/red5/red5-license.txt" />
+		<copy file="build.properties" tofile="${build.base.dir}/build.properties" overwrite="true" />
+		<copy file="LICENSE" tofile="${dist.dir}/red5/LICENSE" overwrite="true" />
+		<copy file="NOTICE" tofile="${dist.dir}/red5/NOTICE" overwrite="true" />
+		<copy file="README" tofile="${dist.dir}/red5/README" overwrite="true" />
+		<copy file="CHANGELOG" tofile="${dist.dir}/red5/CHANGELOG" overwrite="true" />
+
+		<echo file="${build.base.dir}/build.properties" append="true">svn.info.rev=${svn.info.rev}${line.separator}</echo>
+		<tar longfile="gnu" compression="gzip" destfile="${archive.file.name}-src.tar.gz">
+			<tarfileset dir="${basedir}">
+				<exclude name="build/**" />
+				<exclude name="dist/**" />
+				<exclude name="build.properties" />
+			</tarfileset>
+			<tarfileset dir="${build.base.dir}">
+				<include name="build.properties" />
+			</tarfileset>
+		</tar>
+		<tar longfile="gnu" compression="gzip" destfile="${archive.file.name}.tar.gz">
+			<tarfileset dir="${dist.dir}/red5">
+				<include name="**" />
+				<exclude name="*.sh" />
+			</tarfileset>
+			<tarfileset dir="${dist.dir}/red5" filemode="755">
+				<include name="*.sh" />
+			</tarfileset>
+		</tar>
+	</target>
+	
+	<!-- build artefacts -->
+	<target name="dist-release" description="pack binary distribution">
+		<property name="archive.file.name" value="${dist.dir}/apache-${project.distname}-${project.version}" />
+		<antcall target="dist-bin" />
+		<zip destfile="${archive.file.name}.zip">
+			<zipfileset dir="${dist.dir}/red5">
+				<include name="**" />
+				<exclude name="*.sh" />
+			</zipfileset>
+			<zipfileset dir="${dist.dir}/red5" filemode="755">
+				<include name="*.sh" />
+			</zipfileset>
+		</zip>
+		<zip destfile="${archive.file.name}-src.zip">
+			<zipfileset dir="${basedir}">
+				<exclude name="build/**" />
+				<exclude name="dist/**" />
+				<exclude name="build.properties" />
+			</zipfileset>
+			<zipfileset dir="${build.base.dir}">
+				<include name="build.properties" />
+			</zipfileset>
+		</zip>
+	</target>
+
+	<!-- build webapp -->
+	<target name="-copy-libraries" description="All jars downloaded by ivy copied to appropriate places">
+		<copy todir="${red5.root}/lib">
+			<fileset dir="${red5.client.lib}" includes="red5-client*.jar" />
+			<fileset dir="${mainlibs.lib.dir}" includes="*.jar" />
+		</copy>
+		<copy todir="${dist.webapps.dir}/WEB-INF/lib">
+			<fileset dir="${om.lib.dir}" includes="*.jar" />
+		</copy>
+		<chmod dir="${dist.webapps.dir}/WEB-INF/lib" perm="755" includes="**/*.sh" />
+	</target>
+
+	<target name="dist" description="binary distribution of OpenMeetings" depends="clean, jar, client.only, enhance, -copy-libraries, signWebStartJars" />
+
+	<!-- compiles the sources without openlaszlo client -->
+	<target name="dist-test" description="binary distribution of OpenMeetings" depends="clean, -dist-test-no-clean, signWebStartJars" />
+
+	<!-- compiles the sources without openlaszlo client and clean -->
+	<target name="-dist-test-no-clean" description="binary distribution of OpenMeetings" depends="jar, -copy-libraries" />
+
+	<!-- compiles the sources only with laszlo debug client -->
+	<target name="dist-debug" description="binary distribution of OpenMeetings" depends="clean, jar, client.debug.only, -copy-libraries, signWebStartJars" />
+
+	<target name="-cleanup-jrebel" unless="jrebel.enabled">
+		<delete>
+			<fileset dir="${dist.classes.dir}" includes="rebel*.xml" />
+		</delete>
+	</target>
+	
+	<target name="web.copy" depends="-process-db">
+		<copy todir="${dist.webapps.dir}" overwrite="true" force="true">
+			<fileset dir="${webapp.dir}" />
+		</copy>
+		<filter token="wicket.mode" value="${wicket.mode}" />
+		<copy todir="${dist.webapps.dir}/WEB-INF" filtering="true" overwrite="true" force="true">
+			<fileset file="${webapp.dir}/WEB-INF/web.xml" />
+		</copy>
+		<copy todir="${dist.classes.dir}">
+			<fileset dir="${src.base.dir}/web/java">
+				<include name="**/*.html" />
+				<include name="**/*.xml" />
+				<include name="**/*.js" />
+				<include name="**/*.css" />
+			</fileset>
+		</copy>
+	</target>
+	
+	<!-- Check timestamp on files -->
+	<target name="prepare" depends="prepare.mkdir,web.copy">
+		<copy todir="${red5.root}">
+			<fileset dir="${red5.lib}">
+				<exclude name="**/*.fla" />
+			</fileset>
+		</copy>
+
+		<antcall target="-cleanup-jrebel" />
+		<chmod dir="${red5.root}" perm="755" includes="**/*.sh" />
+		<tstamp />
+	</target>
+
+	<!-- Copy any resource or configuration files -->
+	<target name="vmresources">
+		<copy todir="${main.out.dir}" includeEmptyDirs="yes">
+			<fileset dir="${src.base.dir}">
+				<include name="**/*.vm" />
+			</fileset>
+		</copy>
+	</target>
+	
+	<target name="resources" depends="vmresources">
+		<patternset id="xmlpng">
+			<include name="**/*.xml" />
+			<include name="**/*.png" />
+		</patternset>
+		<patternset id="xmlpngconf">
+			<patternset refid="xmlpng" />
+			<include name="**/*.conf" />
+			<include name="**/*.properties" />
+		</patternset>
+
+		<!-- Main Applications -->
+		<copy todir="${main.out.dir}" includeEmptyDirs="yes">
+			<fileset dir="${src.base.dir}">
+				<patternset refid="xmlpngconf" />
+			</fileset>
+		</copy>
+		<!-- Screen Share resources -->
+		<copy todir="${main.out.dir}">
+			<fileset dir="${src.base.dir}/screenshare/java">
+				<include name="**/*.png" />
+			</fileset>
+		</copy>
+	</target>
+
+	<target name="web.only" depends="jar.web.only, web.copy"/>
+	
+	<target name="jar.web.only" depends="enhance.only.norefresh, current_revision, vmresources">
+		<manifestclasspath property="jar.classpath" jarfile="${project.distname}-${jar.suffix}.jar">
+			<classpath refid="compile.classpath" />
+		</manifestclasspath>
+		
+		<!-- Core/main -->
+		<jar destfile="${dist.webapps.dir}/WEB-INF/lib/${project.distname}-core-${jar.suffix}.jar">
+			<fileset dir="${main.out.dir}">
+				<include name="org/apache/openmeetings/**" />
+				<include name="*.vm" />
+				<include name="META-INF/*" />
+				<exclude name="META-INF/*.xml" />
+				<exclude name="org/apache/openmeetings/util/**" />
+				<exclude name="org/apache/openmeetings/test/**" />
+				<exclude name="org/apache/openmeetings/axis/**" />
+				<exclude name="org/apache/openmeetings/db/**" />
+				<exclude name="org/apache/openmeetings/cli/**" />
+				<exclude name="org/apache/openmeetings/backup/**" />
+				<exclude name="org/apache/openmeetings/installation/**" />
+				<exclude name="org/apache/openmeetings/screen/**" />
+				<exclude name="org/apache/openmeetings/doc/**" />
+				<exclude name="org/apache/openmeetings/web/**" />
+			</fileset>
+			<manifest>
+				<attribute name="Built-By" value="OpenMeetings - http://openmeetings.apache.org" />
+				<attribute name="Built-On" value="${build.TODAY}" />
+				<attribute name="Class-Path" value="conf/ ${jar.classpath}" />
+				<attribute name="Svn-Revision" value="${svn.info.rev}" />
+				<attribute name="Product-Version" value="${project.version}-${project.status}" />
+			</manifest>
+		</jar>
+		
+		<!-- DB package -->
+		<jar destfile="${dist.webapps.dir}/WEB-INF/lib/${project.distname}-db-${jar.suffix}.jar">
+			<fileset dir="${main.out.dir}">
+				<include name="org/apache/openmeetings/db/**" />
+				<include name="META-INF/*" />
+				<exclude name="META-INF/*.xml" />
+			</fileset>
+			<manifest>
+				<attribute name="Built-By" value="OpenMeetings - http://openmeetings.apache.org" />
+				<attribute name="Built-On" value="${build.TODAY}" />
+				<attribute name="Class-Path" value="conf/ ${jar.classpath}" />
+				<attribute name="Svn-Revision" value="${svn.info.rev}" />
+				<attribute name="Product-Version" value="${project.version}-${project.status}" />
+			</manifest>
+		</jar>
+		
+		<!-- Install / CLI package -->
+		<jar destfile="${dist.webapps.dir}/WEB-INF/lib/${project.distname}-cli-${jar.suffix}.jar">
+			<fileset dir="${main.out.dir}">
+				<include name="org/apache/openmeetings/cli/**" />
+				<include name="org/apache/openmeetings/backup/**" />
+				<include name="org/apache/openmeetings/installation/**" />
+				<include name="META-INF/*" />
+				<exclude name="META-INF/*.xml" />
+			</fileset>
+			<manifest>
+				<attribute name="Built-By" value="OpenMeetings - http://openmeetings.apache.org" />
+				<attribute name="Built-On" value="${build.TODAY}" />
+				<attribute name="Class-Path" value="conf/ ${jar.classpath}" />
+				<attribute name="Svn-Revision" value="${svn.info.rev}" />
+				<attribute name="Product-Version" value="${project.version}-${project.status}" />
+			</manifest>
+		</jar>
+		
+		<!-- Util package -->
+		<jar destfile="${dist.webapps.dir}/WEB-INF/lib/${project.distname}-util-${jar.suffix}.jar">
+			<fileset dir="${main.out.dir}">
+				<include name="org/apache/openmeetings/util/**" />
+				<include name="META-INF/*" />
+				<exclude name="META-INF/*.xml" />
+			</fileset>
+			<manifest>
+				<attribute name="Built-By" value="OpenMeetings - http://openmeetings.apache.org" />
+				<attribute name="Built-On" value="${build.TODAY}" />
+				<attribute name="Class-Path" value="conf/ ${jar.classpath}" />
+				<attribute name="Svn-Revision" value="${svn.info.rev}" />
+				<attribute name="Product-Version" value="${project.version}-${project.status}" />
+			</manifest>
+		</jar>
+		
+		<!-- web package -->
+		<jar destfile="${dist.webapps.dir}/WEB-INF/lib/${project.distname}-web-${jar.suffix}.jar">
+			<fileset dir="${main.out.dir}">
+				<include name="org/apache/openmeetings/web/**" />
+				<exclude name="*.xml" />
+				<exclude name="*.html" />
+				<include name="META-INF/*" />
+				<exclude name="META-INF/*.xml" />
+			</fileset>
+			<manifest>
+				<attribute name="Built-By" value="OpenMeetings - http://openmeetings.apache.org" />
+				<attribute name="Built-On" value="${build.TODAY}" />
+				<attribute name="Class-Path" value="conf/ ${jar.classpath}" />
+				<attribute name="Svn-Revision" value="${svn.info.rev}" />
+				<attribute name="Product-Version" value="${project.version}-${project.status}" />
+			</manifest>
+		</jar>
+
+		<!-- Build WebServices -->
+		<property name="om_aar_name" value="${project.distname}-${jar.suffix}.aar"/>
+		<property name="om_aar_folder" value="${dist.webapps.dir}/WEB-INF/services"/>
+		<jar destfile="${om_aar_folder}/${om_aar_name}">
+			<fileset dir="${main.out.dir}">
+				<include name="META-INF/*" />
+			</fileset>
+		</jar>
+		<echo file="${om_aar_folder}/services.list" append="false">${om_aar_name}${line.separator}version.aar${line.separator}</echo>
+		<jar destfile="${dist.webapps.dir}/WEB-INF/lib/${project.distname}-axis-${jar.suffix}.jar">
+			<fileset dir="${main.out.dir}">
+				<include name="**/apache/openmeetings/axis/**" />
+				<include name="META-INF/LICENSE" />
+				<include name="META-INF/NOTICE" />
+			</fileset>
+		</jar>
+	</target>
+
+	<target name="jar.only" depends="buildJavaDocs, enhance.only, jar.web.only"/>
+
+	<target name="dist.screen.share" description="Make Screen Share Archive" depends="signWebStartJars" />
+
+	<tstamp prefix="screensharing.build">
+		<format property="TODAY" pattern="d-MMMM-yyyy" locale="en" />
+	</tstamp>
+	<target name="jar.screen.share" description="Make Screen Share Archive" depends="compile.only">
+		<manifestclasspath property="jar2.classpath" jarfile="${project.distname}.jar">
+			<classpath refid="compile.classpath" />
+		</manifestclasspath>
+		<!-- Screen Share -->
+		<jar destfile="${screenshare.out.dir}/${project.distname}-screenshare-${jar.suffix}.jar">
+			<fileset dir="${main.out.dir}">
+				<include name="org/apache/openmeetings/screen/**" />
+				<include name="META-INF/LICENSE" />
+				<include name="META-INF/NOTICE" />
+			</fileset>
+			<fileset file="${screenshare.resources.dir}/logback.xml" />
+			<manifest>
+				<attribute name="Built-By" value="OpenMeetings - http://openmeetings.apache.org" />
+				<attribute name="Built-On" value="${screensharing.build.TODAY}" />
+				<attribute name="Class-Path" value="conf/ ${jar2.classpath}" />
+				<attribute name="Permissions" value="all-permissions" />
+				<attribute name="Codebase" value="*" />
+				<attribute name="Application-Library-Allowable-Codebase" value="*" />
+				<attribute name="Caller-Allowable-Codebase" value="*" />
+			</manifest>
+		</jar>
+	</target>
+	
+	<target name="buildJavaDocs">
+		<tstamp prefix="doc">
+			<format property="TODAY_YEAR" pattern="yyyy" locale="en" />
+		</tstamp>
+	    <javadoc packagenames="org.apache.openmeetings.remote.*"
+	           sourcepath="${src.base.dir}/axis/java:${src.base.dir}/db/java:${src.base.dir}/doc/java:${src.base.dir}/install/java:${src.base.dir}/main/java:${src.base.dir}/screenshare/java:${src.base.dir}/util/java:${src.base.dir}/web/java"
+	           excludepackagenames="org.apache.openmeetings.test.*"
+	           defaultexcludes="yes"
+	           destdir="build/api"
+	           author="true"
+	           version="true"
+	           use="true"
+	           windowtitle="Apache OpenMeetings API">
+	    	<classpath refid="compile.classpath"></classpath>
+	        <doctitle><![CDATA[<h1>Apache OpenMeetings API</h1>]]></doctitle>
+	    	<bottom><![CDATA[<i>Copyright &copy; 2000-${doc.TODAY_YEAR} The Apache Software Foundation. All rights Reserved.</i>]]></bottom>
+	  	</javadoc>
+	</target>
+
+	<!-- Compile JAR -->
+	<target name="jar" description="Make Archive" depends="enhance, build.only.webservice.doc, jar.only, jar.screen.share">
+		<tstamp prefix="build">
+			<format property="TODAY" pattern="d-MMMM-yyyy" locale="en" />
+		</tstamp>
+	</target>
+
+	<target name="generateSignKey"  unless="skip.sign.key.generation">
+		<delete file="${keystore.file}" />
+		<genkey alias="${screensharing.keystore.alias}" storepass="${screensharing.keystore.password}" keystore="${keystore.file}"
+			verbose="true" sigalg="MD5withRSA" keyalg="RSA" >
+			<dname>
+				<param name="CN" value="Sebastian Wagner" />
+				<param name="OU" value="technology" />
+				<param name="O" value="openmeetings.apache.org" />
+				<param name="C" value="DE" />
+			</dname>
+		</genkey>
+	</target>
+	
+	<target name="signWebStartJars" depends="generateSignKey,jar.screen.share">
+		<copy todir="${screenshare.out.dir}" overwrite="true" force="true">
+			<fileset dir="${red5.server.lib}" includes="commons-codec*.jar" />
+			<fileset dir="${red5.server.lib}" includes="httpclient*.jar" />
+			<fileset dir="${red5.server.lib}" includes="httpcore*.jar" />
+			<fileset dir="${red5.server.lib}" includes="bcprov*.jar" />
+			<fileset dir="${red5.server.lib}" includes="ehcache-core*.jar" />
+			<fileset dir="${red5.server.lib}" includes="commons-beanutils*.jar" />
+			<fileset dir="${red5.server.lib}" includes="slf4j-api*.jar" />
+			<fileset dir="${red5.server.lib}" includes="jcl-over-slf4j*.jar" />
+			<fileset dir="${red5.server.lib}" includes="commons-collections*.jar" />
+			<fileset dir="${red5.server.lib}" includes="spring-context-3*.jar" />
+			<fileset dir="${red5.server.lib}" includes="spring-core-*.jar" />
+			<fileset dir="${red5.server.lib}" includes="spring-beans-*.jar" />
+			<fileset dir="${red5.server.lib}" includes="logback*.jar" />
+			<fileset dir="${red5.server.lib}" includes="mina-core*.jar" />
+			<fileset dir="${red5.server.lib}" includes="com.springsource.slf4j.api*.jar" />
+			<fileset dir="${red5.client.lib}" includes="red5*.jar" />
+			<fileset dir="${red5.lib}" includes="red5*.jar" />
+		</copy>
+		<taskdef resource="net/sf/antcontrib/antlib.xml">
+			<classpath refid="check.classpath" />
+		</taskdef>
+		<foreach target="-repack-jar" param="theJar">
+			<fileset dir="${screenshare.out.dir}" casesensitive="yes">
+				<include name="*.jar"/>
+				<exclude name="*openmeetings*.jar"/>
+			</fileset>
+		</foreach>
+		<signjar alias="${screensharing.keystore.alias}" keystore="${keystore.file}" storepass="${screensharing.keystore.password}"
+			lazy="false" sigalg="MD5withRSA" digestalg="SHA1">
+			<path>
+				<fileset dir="${screenshare.out.dir}">
+					<include name="**/*.jar" />
+				</fileset>
+			</path>
+		</signjar>
+	</target>
+
+	<target name="-repack-jar">
+		<echo message="${theJar}"/>
+		<delete dir="${screenshare.out.dir}/1" />
+		<mkdir dir="${screenshare.out.dir}/1" />
+		<unjar src="${theJar}" dest="${screenshare.out.dir}/1"/>
+		<delete dir="${screenshare.out.dir}/1/META-INF" includes="*"/>
+		<delete file="${theJar}" />
+		<jar destfile="${theJar}">
+			<fileset dir="${screenshare.out.dir}/1">
+				<include name="**" />
+			</fileset>
+			<manifest>
+				<attribute name="Built-By" value="OpenMeetings - http://openmeetings.apache.org" />
+				<attribute name="Built-On" value="${screensharing.build.TODAY}" />
+				<attribute name="Permissions" value="all-permissions" />
+				<attribute name="Codebase" value="*" />
+				<attribute name="Application-Library-Allowable-Codebase" value="*" />
+				<attribute name="Caller-Allowable-Codebase" value="*" />
+			</manifest>
+		</jar>
+		<delete dir="${screenshare.out.dir}/1" />
+	</target>
+	
+	<target name="client.only" depends="compile.laszlo.main.as3,compile.laszlo.main,compile.laszlo.networktesting" />
+
+	<target name="client.debug.only" depends="compile.laszlo.main.debug.as3,compile.laszlo.main.debug,compile.laszlo.networktesting.debug" />
+
+	<target name="-compile.flash" description="compile flash application">
+		<!-- commented for now
+		<echo message="flash.src.dir == '${flash.src.dir}'" />
+		<echo message="classpathref == '${flash.classpath.ref}'" />
+		<echo message="laszlo.home == '${flash.lps.home}'" />
+		<echo message="flash.debug == '${flash.debug}'" />
+		<echo message="laszlo.proxied == '${laszlo.proxied}'" />
+		<echo message="flash.runtime == '${flash.runtime}'" />
+		<echo message="out.dir.swf == '${out.dir.swf}'" />
+		<echo message="flash.main.file == '${flash.main.file}'" />
+		<echo message="flash.out.file == '${flash.out.file}'" />
+		-->
+		<java classname="org.openlaszlo.compiler.Main" fork="true" newenvironment="true" failonerror="true" dir="${flash.src.dir}" classpathref="${flash.classpath.ref}">
+			<jvmarg value="-DLPS_HOME=${flash.lps.home}" />
+			<jvmarg value="-Dlzdebug=false" />
+			<jvmarg value="-Dlzproxied=${laszlo.proxied}" />
+			<jvmarg value="-Xms512M" />
+			<jvmarg value="-Xmx512M" />
+			<arg line="--runtime=${flash.runtime} ${flash.debug} --dir &quot;${out.dir.swf}&quot; --onerror warn ${flash.main.file} -o ${flash.out.file}" />
+		</java>
+	</target>
+
+	<target name="compile.laszlo.networktesting" depends="compile.laszlo.networktesting.debug">
+		<antcall target="-compile.flash" inheritAll="true" inheritRefs="true">
+			<param name="flash.classpath.ref" value="laszlo.lib" />
+			<param name="flash.src.dir" value="${laszlo.as3.src.dir}/networkTesting" />
+			<param name="flash.lps.home" value="${laszlo.home}" />
+			<param name="flash.runtime" value="swf10" />
+			<param name="flash.main.file" value="networktesting.lzx" />
+			<param name="flash.out.file" value="networktesting.swf10.swf" />
+			<param name="flash.debug" value="" />
+		</antcall>
+	</target>
+
+	<target name="compile.laszlo.networktesting.debug" depends="-retrieve-openlaszlo">
+		<antcall target="-compile.flash" inheritAll="true" inheritRefs="true">
+			<param name="flash.classpath.ref" value="laszlo.lib" />
+			<param name="flash.src.dir" value="${laszlo.as3.src.dir}/networkTesting" />
+			<param name="flash.lps.home" value="${laszlo.home}" />
+			<param name="flash.runtime" value="swf10" />
+			<param name="flash.main.file" value="networktesting.lzx" />
+			<param name="flash.out.file" value="networktestingdebug.swf10.swf" />
+			<param name="flash.debug" value="--debug" />
+		</antcall>
+	</target>
+
+	<target name="compile.laszlo.testsetup.as3" depends="-retrieve-openlaszlo46">
+        <antcall target="-compile.flash" inheritAll="true" inheritRefs="true">
+            <param name="flash.classpath.ref" value="laszlo46.lib" />
+            <param name="flash.src.dir" value="${laszlo.src.dir}" />
+            <param name="flash.lps.home" value="${laszlo46.home}" />
+            <param name="flash.runtime" value="swf11" />
+            <param name="flash.main.file" value="test/test-setup.lzx" />
+            <param name="flash.out.file" value="test-setup.as3.swf11.swf" />
+            <param name="flash.debug" value="" />
+        </antcall>
+    </target>
+
+	<target name="compile.laszlo.main.as3" depends="compile.laszlo.main.debug.as3">
+		<antcall target="-compile.flash" inheritAll="true" inheritRefs="true">
+			<param name="flash.classpath.ref" value="laszlo46.lib" />
+			<param name="flash.src.dir" value="${laszlo.as3.src.dir}" />
+			<param name="flash.lps.home" value="${laszlo46.home}" />
+			<param name="flash.runtime" value="swf11" />
+			<param name="flash.main.file" value="main.as3.lzx" />
+			<param name="flash.out.file" value="main.as3.swf11.swf" />
+			<param name="flash.debug" value="" />
+		</antcall>
+	</target>
+
+	<target name="compile.laszlo.main.debug.as3" depends="-retrieve-openlaszlo46">
+		<antcall target="-compile.flash" inheritAll="true" inheritRefs="true">
+			<param name="flash.classpath.ref" value="laszlo46.lib" />
+			<param name="flash.src.dir" value="${laszlo.as3.src.dir}" />
+			<param name="flash.lps.home" value="${laszlo46.home}" />
+			<param name="flash.runtime" value="swf11" />
+			<param name="flash.main.file" value="main.as3.lzx" />
+			<param name="flash.out.file" value="maindebug.as3.swf11.swf" />
+			<param name="flash.debug" value="--debug" />
+		</antcall>
+	</target>
+
+	<target name="compile.laszlo.main" depends="compile.laszlo.main.debug">
+		<antcall target="-compile.flash" inheritAll="true" inheritRefs="true">
+			<param name="flash.classpath.ref" value="laszlo.lib" />
+			<param name="flash.src.dir" value="${laszlo.src.dir}" />
+			<param name="flash.lps.home" value="${laszlo.home}" />
+			<param name="flash.runtime" value="swf8" />
+			<param name="flash.main.file" value="main.lzx" />
+			<param name="flash.out.file" value="main.swf8.swf" />
+			<param name="flash.debug" value="" />
+		</antcall>
+	</target>
+
+	<target name="compile.laszlo.main.debug" depends="-retrieve-openlaszlo">
+		<antcall target="-compile.flash" inheritAll="true" inheritRefs="true">
+			<param name="flash.classpath.ref" value="laszlo.lib" />
+			<param name="flash.src.dir" value="${laszlo.src.dir}" />
+			<param name="flash.lps.home" value="${laszlo.home}" />
+			<param name="flash.runtime" value="swf8" />
+			<param name="flash.main.file" value="main.lzx" />
+			<param name="flash.out.file" value="maindebug.swf8.swf" />
+			<param name="flash.debug" value="--debug" />
+		</antcall>
+	</target>
+
+	<target name="compile" depends="compile.only, prepare" />
+
+	<target name="compile.only"
+		depends="-retrieve-mainlibs,-retrieve-om,-retrieve-dtd-generator,-retrieve-junit,-retrieve-cmdadmin,-retrieve-tools.jar,compile.only.nocheck,resources"/>
+	
+	<target name="compile.only.nocheck" depends="clean.classes">
+		<antcall target="prepare.mkdir" inheritAll="true" inheritRefs="true"/>
+		<echo message="Compile main to ${main.out.dir}" />
+		<javac debug="on" debuglevel="lines,vars,source" destdir="${main.out.dir}" includeantruntime="false"
+			source="1.6" target="1.6">
+			<src path="${src.base.dir}/axis/java" />
+			<src path="${src.base.dir}/db/java" />
+			<src path="${src.base.dir}/doc/java" />
+			<src path="${src.base.dir}/install/java" />
+			<src path="${src.base.dir}/main/java" />
+			<src path="${src.base.dir}/test/java" />
+			<src path="${src.base.dir}/screenshare/java" />
+			<src path="${src.base.dir}/util/java" />
+			<src path="${src.base.dir}/web/java" />
+			<classpath refid="compile.classpath" />
+			<compilerarg value="-Aopenjpa.metamodel=true" />
+			<!-- compilerarg value="-Xlint:deprecation"/ -->
+		</javac>
+		<copy todir="${main.out.dir}">
+			<fileset dir="${src.base.dir}/main/java">
+				<include name="**/*.*" />
+				<exclude name="**/*.java" />
+			</fileset>
+		</copy>
+		<copy file="${axis.resources.dir}/services.xml" tofile="${main.out.dir}/META-INF/services.xml" overwrite="true" />
+		<copy file="LICENSE" tofile="${main.out.dir}/META-INF/LICENSE" overwrite="true" />
+		<copy file="NOTICE" tofile="${main.out.dir}/META-INF/NOTICE" overwrite="true" />
+	</target>
+
+	<path id="jpa.enhancement.classpath">
+		<pathelement path="${main.out.dir}" />
+		<path refid="compile.classpath" />
+	</path>
+
+	<target name="enhance" depends="compile, enhance.only" />
+
+	<target name="enhance.only" depends="compile.only">
+		<!-- define the openjpac task -->
+		<taskdef name="openjpac" classname="org.apache.openjpa.ant.PCEnhancerTask">
+			<classpath refid="jpa.enhancement.classpath" />
+		</taskdef>
+
+		<!-- invoke the enhancer -->
+		<openjpac>
+			<classpath refid="jpa.enhancement.classpath" />
+			<config propertiesFile="${dist.persistence.dir}/${db}_persistence.xml" />
+		</openjpac>
+		<echo message="Enhancing complete." />
+	</target>
+	
+	<target name="enhance.only.norefresh" depends="compile.only.nocheck">
+		<!-- define the openjpac task -->
+		<taskdef name="openjpac" classname="org.apache.openjpa.ant.PCEnhancerTask">
+			<classpath refid="jpa.enhancement.classpath" />
+		</taskdef>
+
+		<!-- invoke the enhancer -->
+		<openjpac>
+			<classpath refid="jpa.enhancement.classpath" />
+			<config propertiesFile="${dist.persistence.dir}/${db}_persistence.xml" />
+		</openjpac>
+		<echo message="Enhancing complete." />
+	</target>
+
+	<path id="svntask.classpath">
+		<fileset dir="${svntask.lib.dir}" includes="*.jar" />
+	</path>
+	<target name="-ant-task" depends="-retrieve-svntask">
+		<typedef resource="org/tigris/subversion/svnant/svnantlib.xml">
+			<classpath>
+				<path refid="svntask.classpath" />
+			</classpath>
+		</typedef>
+		<svnSetting svnkit="false" javahl="false" id="svn.settings" />
+		<!-- native svn in the path-->
+	</target>
+	<target name="current_revision" depends="-ant-task" unless="svn.info.rev">
+		<svn refid="svn.settings">
+			<info target="." />
+		</svn>
+		<echo>Current revision: ${svn.info.rev}</echo>
+	</target>
+
+	<!-- Build entire project -->
+	<target name="build project" depends="clean, prepare, compile" />
+
+	<path id="check.rat.classpath">
+		<fileset dir="${rat.lib.dir}" includes="*.jar" />
+	</path>
+	<path id="rat.classpath">
+		<path refid="compile.classpath" />
+		<path refid="check.rat.classpath" />
+	</path>
+	<target name="report_rat" depends="-retrieve-rat">
+		<!-- define the RAT task -->
+		<taskdef uri="antlib:org.apache.rat.anttasks" resource="org/apache/rat/anttasks/antlib.xml">
+			<classpath>
+				<path refid="rat.classpath" />
+			</classpath>
+		</taskdef>
+
+		<rat:report>
+			<rat:substringMatcher licenseFamilyCategory="JQUERY_MIT" licenseFamilyName="jQuery UI CSS MIT">
+				<pattern substring="Copyright 2014 jQuery Foundation and other contributors; Licensed MIT"/>
+			</rat:substringMatcher>
+			<rat:substringMatcher licenseFamilyCategory="JQUERY_MIT" licenseFamilyName="jQuery UI Menubar MIT">
+				<pattern substring="Dual licensed under the MIT or GPL Version 2"/>
+			</rat:substringMatcher>
+			<rat:approvedLicense familyName="jQuery UI CSS MIT"/>
+			<rat:approvedLicense familyName="jQuery UI Menubar MIT"/>
+			<fileset dir="${src.base.dir}" />
+			<fileset dir="${webcontent.base.dir}" excludes="**/*.swf" />
+			<fileset dir="${docs.src}" />
+		</rat:report>
+	</target>
+
+	<path id="build.webservice.classpath">
+		<pathelement path="${main.out.dir}" />
+		<path refid="compile.classpath" />
+	</path>
+
+	<target name="build.webservice.doc" depends="compile.only, build.only.webservice.doc"/>
+
+	<patternset id="images">
+		<include name="**/*.gif" />
+		<include name="**/*.jpeg" />
+		<include name="**/*.jpg" />
+		<include name="**/*.png" />
+	</patternset>
+	<patternset id="css">
+		<include name="**/*.css" />
+		<include name="**/*.gif" />
+		<include name="**/*.png" />
+	</patternset>
+
+	<!-- Anakia Build classpath -->
+	<path id="check.anakia.classpath">
+		<fileset dir="${anakia.lib.dir}" includes="*.jar" />
+		<fileset dir="${mainlibs.lib.dir}" includes="commons-collections*.jar,commons-lang*.jar,velocity*.jar" />
+	</path>
+	
+	<path id="anakia.classpath">
+		<path refid="compile.classpath" />
+		<path refid="check.anakia.classpath" />
+	</path>
+
+	<target name="anakia" depends="-retrieve-mainlibs,-retrieve-om,-retrieve-anakia">
+		<taskdef name="anakia" classname="org.apache.anakia.AnakiaTask">
+			<classpath>
+				<path refid="anakia.classpath" />
+			</classpath>
+		</taskdef>
+
+		<xslt in="${webapp.dir}/languages/errorvalues.xml" out="${docs.src}/ErrorsTable.xml" style="${docs.src}/stylesheets/errortable.xsl" />
+		<anakia basedir="${docs.src}" destdir="${docs.dest}/" extension=".html" style="./site.vsl" projectFile="stylesheets/project.xml" excludes="**/stylesheets/** empty.xml" includes="**/*.xml" lastModifiedCheck="true" templatePath="xdocs/stylesheets" velocityPropertiesFile="${build.base.dir}/velocity.properties" />
+		<copy todir="${docs.dest}/images">
+			<fileset dir="${docs.src}/images">
+				<patternset refid="images" />
+			</fileset>
+		</copy>
+
+		<copy todir="${docs.dest}/css">
+			<fileset dir="${docs.src}/css">
+				<patternset refid="css" />
+			</fileset>
+		</copy>
+	</target>
+
+	<target name="build.only.webservice.doc" depends="anakia">
+		<javadoc classpathref="build.webservice.classpath" useexternalfile="true" destdir="${basedir}/docs">
+			<fileset dir="${src.base.dir}/axis/java/org/apache/openmeetings/axis/services">
+				<include name="*WebService.java" />
+				<exclude name="BaseWebService.java" />
+			</fileset>
+			<doclet name="org.apache.openmeetings.doc.WebServiceDoclet" pathref="build.webservice.classpath" />
+		</javadoc>
+
+		<copy todir="${dist.webapps.dir}/docs">
+			<fileset dir="${basedir}/docs/">
+				<include name="*.html" />
+				<include name="*.css" />
+			</fileset>
+		</copy>
+		<copy todir="${dist.webapps.dir}/docs/images">
+			<fileset dir="${basedir}/docs/images/">
+				<patternset refid="images" />
+			</fileset>
+		</copy>
+		<copy todir="${dist.webapps.dir}/docs/css">
+			<fileset dir="${basedir}/docs/css/">
+				<patternset refid="css" />
+			</fileset>
+		</copy>
+		<copy todir="${dist.webapps.dir}/docs/js">
+			<fileset dir="${basedir}/docs/js/">
+				<include name="**/*.js" />
+			</fileset>
+		</copy>
+	</target>
+	
+	<!-- 
+		Prepare selenium tests by starting up an OpenMeetings instance
+		
+		makes a stop command before starting up to make sure no other is running
+	 -->
+	
+	<target name="prepare-selenium-start-openmeetings" description="Prepare selenium tests by starting up an OpenMeetings instance" 
+		depends="-prepare-selenium-port-properties, prepare-selenium-stop-openmeetings" >
+		<exec dir="${dist.dir}/testred5" executable="red5-highperf.bat" osfamily="windows" output="${dist.dir}/testred5/red5_system.log">
+		</exec>
+		<!--this does only make sense if the unix executable is run obviously, however we do it for all -->
+		<chmod dir="${dist.dir}/testred5" perm="755" includes="**/*.sh" />
+		<exec dir="${dist.dir}/testred5" executable="/bin/bash" osfamily="unix" output="${dist.dir}/testred5/red5_system.log">
+			<arg value="red5-highperf.sh"/> 
+		</exec>
+		<!-- start up does take some time -->
+		<sleep seconds="30" />
+	</target>
+	
+	<target name="prepare-selenium-stop-openmeetings" description="Prepare selenium tests by starting up an OpenMeetings instance" >
+		<exec dir="${dist.dir}/testred5" executable="red5-shutdown.bat" osfamily="windows" output="${dist.dir}/testred5/red5_system.log">
+		</exec>
+		<!--this does only make sense if executed on unix(Linux or OSX are both unix style) is run obviously, 
+			however we do it for all for now -->
+		<chmod dir="${dist.dir}/testred5" perm="755" includes="**/*.sh" />
+		<exec dir="${dist.dir}/testred5" executable="/bin/bash" osfamily="unix" output="${dist.dir}/testred5/red5_system.log">
+			<arg value="red5-shutdown.sh"/> 
+		</exec>
+		<!-- stop up does take a bit of time -->
+		<sleep seconds="10" />
+	</target>
+	
+	<target name="prepare-selenium-test-database" description="Prepare selenium database script">
+		<java classname="org.apache.openmeetings.test.derby.PrepareSystemFiles">
+			<!-- the home directory of the test instance of red5 -->
+	        <arg value="${dist.dir}/testred5/webapps/openmeetings"/>
+			<!-- the directory where the openmeetings database is created by derby -->
+			<arg value="${dist.dir}/testred5/"/>
+			<!-- the persistance file to patch -->
+			<arg value="${basedir}/src/main/webapp/WEB-INF/classes/META-INF/persistence.xml"/>
+			<classpath refid="junit.classpath" />
+		</java>
+	</target>
+
+	<target name="debug-prepare-selenium-copy-test-instance" depends="-prepare-selenium-copy-test-instance"/>
+	
+	<target name="-prepare-selenium-copy-test-instance" description="Prepare selenium tests by starting up an OpenMeetings instance">
+		<copy todir="${dist.dir}/testred5">
+			<fileset dir="${dist.dir}/red5">
+			</fileset>
+		</copy>
+	</target>
+	
+	<target name="-prepare-selenium-port-properties" description="Set the http port to some exotic numbers so that we don't conflict with anything" 
+			depends="-prepare-selenium-copy-test-instance">
+		<replace dir="${dist.dir}/testred5/conf" value="http.port=20080">
+		  <include name="**/red5.properties"/>
+		  <replacetoken>http.port=5080</replacetoken>
+		</replace>
+		<replace dir="${dist.dir}/testred5/conf" value="https.port=20443">
+		  <include name="**/red5.properties"/>
+		  <replacetoken>https.port=5443</replacetoken>
+		</replace>
+		<replace dir="${dist.dir}/testred5/conf" value="rtmp.port=20935">
+		  <include name="**/red5.properties"/>
+		  <replacetoken>rtmp.port=1935</replacetoken>
+		</replace>
+		<replace dir="${dist.dir}/testred5/conf" value="rtmps.port=20443">
+		  <include name="**/red5.properties"/>
+		  <replacetoken>rtmps.port=8443</replacetoken>
+		</replace>
+		<replace dir="${dist.dir}/testred5/conf" value="rtmpt.port=20088">
+		  <include name="**/red5.properties"/>
+		  <replacetoken>rtmpt.port=8088</replacetoken>
+		</replace>
+	</target>
+	
+	<target name="run-selenium" depends="-dist-test-no-clean, -run-selenium-junit"/>
+	
+	<target name="-run-selenium" if="${junit.run.selenium}" >
+		<antcall target="-run-selenium-junit"></antcall>
+	</target>
+	
+	<target name="-run-selenium-junit" depends="prepare-selenium-start-openmeetings" 
+			description="Will run all selenium tests unless -Dtestcases=_file_name_pattern_ will be passed">
+		<taskdef resource="net/sf/antcontrib/antlib.xml">
+			<classpath refid="junit.classpath" />
+		</taskdef>
+		<mkdir dir="${junit.report.dir}" />
+		
+		<junit maxmemory="1024m" printsummary="yes" dir="${junit.base.dir}" tempdir="${junit.base.dir}" fork="yes" 
+			forkmode="perBatch" failureproperty="junit.failed" errorproperty="junit.error">
+			<classpath refid="junit.classpath" />
+			<jvmarg value="-Dom.home=${om.dist.webapp}" />
+			<jvmarg value="-Dlanguages.home=${webapp.dir}/languages" />
+			<jvmarg value="-Dred5.root=${red5.root}" />
+			<jvmarg value="-Dbasedir=${basedir}" />
+			<jvmarg value="-Dred5.config_root=${red5.root}/conf" />
+			<jvmarg value="-Dbackups.dir=${junit.backups.dir}" />
+			<formatter type="${junit.test.formatter}" />
+			<batchtest todir="${junit.report.dir}">
+				<fileset dir="${main.out.dir}">
+					<include name="org/apache/openmeetings/test/selenium/${junit.test.pattern}.class" />
+					<exclude name="**/*$$*.class" />
+				</fileset>
+			</batchtest>
+		</junit>
+		
+		<junitreport todir="${junit.report.dir}">
+			<fileset dir="${junit.report.dir}">
+				<include name="TEST-*.xml" />
+			</fileset>
+			<report todir="${junit.report.dir}" />
+		</junitreport>
+		<fail message="Errors/failures in JUnit tests.">
+			<condition>
+				<or>
+					<isset property="junit.failed"/>
+					<isset property="junit.error"/>
+				</or>
+			</condition>
+		</fail>
+	</target>
+
+	<!-- Unit Tests -->
+	<condition property="junit.test.pattern" value="${testcases}" else="Test*">
+		<isset property="testcases" />
+	</condition>
+
+	<condition property="junit.test.formatter" value="${test.formatter}" else="xml">
+		<isset property="test.formatter" />
+	</condition>
+
+	<target name="test" depends="-dist-test-no-clean, -run-selenium" 
+			description="Will run all tests except selenium unless -Dtestcases=_file_name_pattern_ will be passed">
+		<taskdef resource="net/sf/antcontrib/antlib.xml">
+			<classpath refid="junit.classpath" />
+		</taskdef>
+		<for list="${backup.file.list}" param="prop">
+			<sequential>
+				<if>
+					<not>
+						<available file="${junit.backups.dir}/@{prop}" type="file" />
+					</not>
+					<then>
+						<echo message="Backup file @{prop} does not exists. Downloading ..." />
+						<get src="http://openmeetings.googlecode.com/svn/repository/@{prop}" dest="${junit.backups.dir}" usetimestamp="true"/>
+					</then>
+				</if>
+			</sequential>
+		</for>
+		<mkdir dir="${junit.report.dir}" />
+		<!-- property name="myclsp" refid="junit.classpath" />
+		<echo message="${myclsp}" /-->
+		<junit maxmemory="1024m" printsummary="yes" dir="${junit.base.dir}" tempdir="${junit.base.dir}" fork="yes" 
+			forkmode="perBatch" failureproperty="junit.failed" errorproperty="junit.error">
+			<classpath refid="junit.classpath" />
+			<jvmarg value="-Dom.home=${om.dist.webapp}" />
+			<jvmarg value="-Dlanguages.home=${webapp.dir}/languages" />
+			<jvmarg value="-Dred5.root=${red5.root}" />
+			<jvmarg value="-Dbasedir=${basedir}" />
+			<jvmarg value="-Dred5.config_root=${red5.root}/conf" />
+			<jvmarg value="-Dbackups.dir=${junit.backups.dir}" />
+			<formatter type="${junit.test.formatter}" />
+			<batchtest todir="${junit.report.dir}">
+				<fileset dir="${main.out.dir}">
+					<include name="org/apache/openmeetings/test/**/${junit.test.pattern}.class" />
+					<exclude name="org/apache/openmeetings/test/selenium/${junit.test.pattern}.class" />
+					<exclude name="**/*$$*.class" />
+				</fileset>
+			</batchtest>
+		</junit>
+		
+		<junitreport todir="${junit.report.dir}">
+			<fileset dir="${junit.report.dir}">
+				<include name="TEST-*.xml" />
+			</fileset>
+			<report todir="${junit.report.dir}" />
+		</junitreport>
+		<fail message="Errors/failures in JUnit tests.">
+			<condition>
+				<or>
+					<isset property="junit.failed"/>
+					<isset property="junit.error"/>
+				</or>
+			</condition>
+		</fail>
+	</target>
+	<target name="smoke.test" depends="dist" description="Will run 'Smoke' subset of tests">
+		<antcall target="test">
+			<param name="junit.test.pattern" value="TestSmoke*" />
+		</antcall>
+	</target>
+
+	<target name="-check-ivy-installed">
+		<available file="${ivy.jar.path}" type="file" property="ivy.installed" />
+	</target>
+	<target name="-download-ivy" depends="-check-ivy-installed" unless="ivy.installed">
+		<mkdir dir="${project.lib.dir}"/>
+		<echo message="Downloading ivy..."/>
+		<get src="http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar"
+			dest="${ivy.jar.path}" usetimestamp="true"/>
+	</target>
+	
+	<target name="-install-ivy" depends="-download-ivy" description="Check if we need to download ivy or not">
+		<taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpath="${ivy.jar.path}"/>
+	</target>
+	
+	<target name="-availability-check" unless="red5.installed" description="Check which libraries need to be retrieved" depends="prepare.mkdir">
+		<available classpathref="check.classpath" classname="javax.persistence.spi.PersistenceProvider" property="mainlib.installed" />
+		<available classpathref="check.classpath" classname="org.apache.axis2.Version" property="om.installed" />
+		<available classpathref="check.classpath" classname="net.sf.antcontrib.AntContribVersion" property="junit.installed" />
+		<available classpathref="check.classpath" classname="com.thaiopensource.relaxng.translate.Driver" property="dtd-generator.installed" />
+		<available classpathref="check.classpath" classname="org.apache.commons.cli.CommandLine" property="cmdadmin.installed" />
+		<condition property="anakia.installed">
+			<and>
+				<available classpathref="check.anakia.classpath" classname="org.apache.oro.text.GlobCompiler" />
+				<available classpathref="check.anakia.classpath" classname="org.jdom.JDOMException" />
+			</and>
+		</condition> 
+		<available classpathref="check.anakia.classpath" classname="org.apache.oro.text.GlobCompiler" property="anakia.installed" />
+		<available classpathref="check.rat.classpath" classname="org.apache.rat.Report" property="rat.installed" />
+		<available classpathref="svntask.classpath" classname="org.tmatesoft.svn.core.SVNCommitInfo" property="svntask.installed" />
+		<available classpathref="check.classpath" classname="com.mysql.jdbc.Driver" property="mysql.installed" />
+		<available classpathref="check.classpath" classname="org.apache.derby.jdbc.ClientDriver" property="derby.installed" />
+		<available file="${laszlo.home}/WEB-INF/lib" type="dir" property="laszlo.installed" />
+		<available file="${laszlo46.home}/WEB-INF/lib" type="dir" property="laszlo46.installed" />
+		<available file="${red5.lib}/red5.sh" type="file" property="red5.server.installed" />
+		<available classpathref="check.classpath" classname="org.red5.client.net.rtmp.RTMPClient" property="red5.client.installed" />
+	</target>
+
+	<target name="-retrieve" depends="-install-ivy" description="Retrieves the libraries if needed">
+		<condition property="ivy.conf.name" value="red5">
+			<not>
+				<isset property="ivy.conf.name" />
+			</not>
+		</condition>
+		<condition property="ivy.lib.location" value="${mainlibs.lib.dir}">
+			<not>
+				<isset property="ivy.lib.location" />
+			</not>
+		</condition>
+		<condition property="ivy.transitive" value="false">
+			<not>
+				<isset property="ivy.transitive" />
+			</not>
+		</condition>
+		<echo message="Ivy conf name: ${ivy.conf.name}, destination: ${ivy.lib.location}" />
+		<ivy:resolve file="ivy.xml" conf="${ivy.conf.name}" checkIfChanged="false" transitive="${ivy.transitive}" />
+		<ivy:retrieve conf="${ivy.conf.name}" pattern="${ivy.lib.location}/[artifact]-[type]-[revision].[ext]" />
+	</target>
+	
+	<target name="-patch-red5-server-start-script" if="jrebel.home">
+		<echo>Going to patch red5-debug.* with ${jrebel.home}</echo>
+		<filter token="jrebel.home" value="${jrebel.home}" />
+		<filter token="project.home" value="${user.dir}" />
+		<copy todir="${red5.lib}" filtering="true" overwrite="true" force="true">
+			<fileset dir="${webcontent.base.dir}/jrebel" includes="red5-debug.*"/>
+		</copy>
+	</target>
+	
+	<target name="-patch-red5-server-highperf-script">
+		<echo>Going to patch red5-highperf.bat</echo>
+		<copy todir="${red5.lib}" overwrite="true" force="true">
+			<fileset dir="${webcontent.base.dir}/red5" includes="red5-highperf.bat" />
+		</copy>
+	</target>
+
+	<!-- Check for the Red5 server libraries -->
+	<target name="-retrieve-red5-server" unless="red5.server.installed" description="Retrieves the libraries if needed" depends="-ant-task">
+		<svn refid="svn.settings">
+			<checkout url="https://red5.googlecode.com/svn/java/server/trunk/" revision="${red5.server.revision}" destPath="${red5.server.dir}" />
+		</svn>
+		<!-- START of Tomcat 7 patch -->
+		<delete>
+			<fileset dir="${red5.server.dir}/plugins" includes="*.jar" />
+		</delete>
+		<antcall target="-retrieve" inheritAll="true" inheritRefs="true">
+			<param name="ivy.conf.name" value="tomcat7" />
+			<param name="ivy.lib.location" value="${red5.server.dir}/plugins" />
+		</antcall>
+		<!-- END of Tomcat 7 patch -->
+		<xslt in="${red5.server.dir}/ivy.xml" out="${red5.server.dir}/ivy1.xml" style="build-red5_ivy.xsl" />
+		<move file="${red5.server.dir}/ivy1.xml" tofile="${red5.server.dir}/ivy.xml" />
+		<xslt in="${red5.server.dir}/ivysettings.xml" out="${red5.server.dir}/ivysettings1.xml" style="build-red5_ivysettings.xsl" />
+		<move file="${red5.server.dir}/ivysettings1.xml" tofile="${red5.server.dir}/ivysettings.xml" />
+		<subant target="dist">
+			<fileset dir="${red5.server.dir}" includes="build.xml" />
+		</subant>
+		<delete>
+			<fileset dir="${red5.lib}/lib" includes="red5-client*.jar" />
+		</delete>
+	
+		<!-- START of Tomcat 7 patch -->
+		<delete file="${red5.lib}/lib/javaee-api-5.1.2.jar" />
+		<!-- END of Tomcat 7 patch -->
+		<delete dir="${red5.lib}/webapps/installer" />
+		<delete dir="${red5.lib}/webapps/live" />
+		<delete dir="${red5.lib}/webapps/vod" />
+		<copy file="${webcontent.base.dir}/red5/index.html" todir="${red5.lib}/webapps/root" overwrite="true" force="true" />
+		<copy file="${webcontent.base.dir}/red5/jee-container.xml" todir="${red5.lib}/conf" overwrite="true" force="true" />
+		<copy todir="${red5.lib}" overwrite="true" force="true">
+			<fileset dir="${webcontent.base.dir}/red5" includes="red5*,admin.*,network_test.sh" />
+		</copy>
+		<!-- FIXME need to be removed as soon as JAudioTagger (will be officially Dual Licensed) -->
+		<xslt in="${red5.lib}/conf/red5-common.xml" out="${red5.lib}/conf/red5-common1.xml" style="build-jaudiotagger.xsl" />
+		<move file="${red5.lib}/conf/red5-common1.xml" tofile="${red5.lib}/conf/red5-common.xml" />
+		<delete>
+			<fileset dir="${red5.server.lib}" includes="jaudiotagger*.jar" />
+		</delete>
+		<antcall target="-patch-red5-server-start-script"/> 
+		<antcall target="-patch-red5-server-highperf-script"/> 
+	</target>
+	
+	<!-- Check for the Red5 client libraries -->
+	<target name="-retrieve-red5-client" unless="red5.client.installed" description="Retrieves the libraries if needed" depends="-retrieve-red5-server">
+		<svn refid="svn.settings">
+			<checkout url="http://red5.googlecode.com/svn/java/client/trunk/" revision="${red5.client.revision}" destPath="${red5.client.dir}" />
+		</svn>
+		<copy file="${red5.lib}/red5.jar" todir="${red5.client.dir}/lib" overwrite="true" force="true" />
+		<xslt in="${red5.client.dir}/ivy.xml" out="${red5.client.dir}/ivy1.xml" style="build-red5_ivy.xsl" />
+		<move file="${red5.client.dir}/ivy1.xml" tofile="${red5.client.dir}/ivy.xml" />
+		<subant target="dist">
+			<fileset dir="${red5.client.dir}" includes="build.xml" />
+		</subant>
+		<!-- START of Tomcat 7 patch -->
+		<delete file="${red5.client.lib}/lib/javaee-api-5.1.2.jar" />
+		<!-- END of Tomcat 7 patch -->
+		<echo message="Red5 Client build" />
+	</target>
+
+	<!-- Check for the Top level libraries -->
+	<target name="-retrieve-mainlibs" unless="mainlib.installed" description="Retrieves the libraries if needed" depends="-retrieve-red5-client">
+		<!-- Ivy configuration - http://ant.apache.org/ivy/history/trunk/ant.html -->
+		<antcall target="-retrieve" inheritAll="true" inheritRefs="true">
+			<param name="ivy.conf.name" value="mainlib" />
+			<param name="ivy.lib.location" value="${mainlibs.lib.dir}" />
+		</antcall>
+		<antcall target="-retrieve" inheritAll="true" inheritRefs="true">
+			<param name="ivy.conf.name" value="mainlib.ext" />
+			<param name="ivy.lib.location" value="${mainlibs.lib.dir}" />
+		</antcall>
+		<delete>
+			<fileset dir="${mainlibs.lib.dir}" includes="*-source*.jar" />
+			<fileset dir="${mainlibs.lib.dir}" includes="*-javadoc*.jar" />
+		</delete>
+	</target>
+	<!-- Check for the OM libraries -->
+	<target name="-retrieve-om" unless="om.installed" description="Retrieves the libraries if needed" depends="-availability-check">
+		<antcall target="-retrieve" inheritAll="true" inheritRefs="true">
+			<param name="ivy.conf.name" value="openmeetings" />
+			<param name="ivy.lib.location" value="${om.lib.dir}" />
+		</antcall>
+		<antcall target="-retrieve" inheritAll="true" inheritRefs="true">
+			<param name="ivy.conf.name" value="openmeetings.ext" />
+			<param name="ivy.lib.location" value="${om.lib.dir}" />
+		</antcall>
+		<antcall target="-retrieve" inheritAll="true" inheritRefs="true">
+			<param name="ivy.conf.name" value="openmeetings.axis2" />
+			<param name="ivy.lib.location" value="${om.lib.dir}" />
+			<param name="ivy.transitive" value="true" />
+		</antcall>
+		<delete>
+			<fileset dir="${om.lib.dir}" includes="commons-logging*.jar" />
+			<fileset dir="${om.lib.dir}" includes="commons-codec*.jar" />
+			<fileset dir="${om.lib.dir}" includes="commons-fileupload*.jar" />
+			<fileset dir="${om.lib.dir}" includes="commons-io*.jar" />
+			<fileset dir="${om.lib.dir}" includes="httpcore-jar*.jar" />
+			<fileset dir="${om.lib.dir}" includes="httpclient-jar*.jar" />
+			<fileset dir="${om.lib.dir}" includes="slf4j-api*.jar" />
+			<fileset dir="${om.lib.dir}" includes="*-source*.jar" />
+			<fileset dir="${om.lib.dir}" includes="*-javadoc*.jar" />
+		</delete>
+	</target>
+	<!-- Check for the Anakia libraries -->
+	<target name="-retrieve-anakia" unless="anakia.installed" description="Retrieves the libraries if needed" depends="-retrieve-mainlibs">
+		<antcall target="-retrieve" inheritAll="true" inheritRefs="true">
+			<param name="ivy.conf.name" value="anakia" />
+			<param name="ivy.lib.location" value="${anakia.lib.dir}" />
+		</antcall>
+	</target>
+	<!-- Check for junit libraries -->
+	<target name="-retrieve-junit" unless="junit.installed" description="Retrieves the libraries if needed" depends="-availability-check">
+		<antcall target="-retrieve" inheritAll="true" inheritRefs="true">
+			<param name="ivy.conf.name" value="junit" />
+			<param name="ivy.lib.location" value="${junit.lib.dir}" />
+		</antcall>
+	</target>
+	<!-- Check for rat libraries -->
+	<target name="-retrieve-rat" unless="rat.installed" description="Retrieves the libraries if needed" depends="-availability-check">
+		<antcall target="-retrieve" inheritAll="true" inheritRefs="true">
+			<param name="ivy.conf.name" value="rat" />
+			<param name="ivy.lib.location" value="${rat.lib.dir}" />
+		</antcall>
+	</target>
+	<!-- Check for dtd-generator libraries -->
+	<target name="-retrieve-dtd-generator" unless="dtd-generator.installed" description="Retrieves the libraries if needed" depends="-availability-check">
+		<antcall target="-retrieve" inheritAll="true" inheritRefs="true">
+			<param name="ivy.conf.name" value="dtd" />
+			<param name="ivy.lib.location" value="${dtd-generator.lib.dir}" />
+		</antcall>
+	</target>
+	<!-- Check for svntask libraries -->
+	<target name="-retrieve-svntask" unless="svntask.installed" description="Retrieves the libraries if needed" depends="-availability-check">
+		<antcall target="-retrieve" inheritAll="true" inheritRefs="true">
+			<param name="ivy.conf.name" value="svntask" />
+			<param name="ivy.lib.location" value="${svntask.lib.dir}" />
+			<param name="ivy.transitive" value="true" />
+		</antcall>
+	</target>
+	<!-- Check for JDK 1.6 tools.jar libraries -->
+	<target name="-retrieve-tools.jar" unless="tools.jar.installed" description="Retrieves the libraries if needed">
+		<available file="${java.home}/Classes/classes.jar" type="file" property="tools.jar.path" value="${java.home}/Classes/classes.jar" />
+		<available file="${java.home}/../Classes/classes.jar" type="file" property="tools.jar.path" value="${java.home}/../Classes/classes.jar" />
+		<available file="${java.home}/lib/tools.jar" type="file" property="tools.jar.path" value="${java.home}/lib/tools.jar" />
+		<available file="${java.home}/../lib/tools.jar" type="file" property="tools.jar.path" value="${java.home}/../lib/tools.jar" />
+		<available file="${tools.jar.path}" type="file" property="tools.jar.installed" />
+
+		<copy file="${tools.jar.path}" tofile="${project.lib.dir}/java_16_tools.jar" />
+	</target>
+	<!-- Check for Openlaszlo -->
+	<target name="-extract-tgz" description="Extracts given tar into ${build.base.dir} folder">
+		<echo message="Going to extract ${dep.file} to the ${build.base.dir}" />
+		<untar src="${dep.file}" dest="${build.base.dir}" compression="gzip" />
+	</target>
+	<target name="-retrieve-openlaszlo" unless="laszlo.installed" description="Retrieves the libraries if needed" depends="-availability-check">
+		<antcall target="-retrieve" inheritAll="true" inheritRefs="true">
+			<param name="ivy.conf.name" value="openlaszlo" />
+			<param name="ivy.lib.location" value="${laszlo.home}" />
+		</antcall>
+		<delete>
+			<fileset dir="${laszlo.home}" includes="openlaszlo*.tgz"/>
+		</delete>
+	</target>
+	<target name="-retrieve-openlaszlo46" unless="laszlo46.installed" description="Retrieves the libraries if needed" depends="-availability-check">
+		<antcall target="-retrieve" inheritAll="true" inheritRefs="true">
+			<param name="ivy.conf.name" value="openlaszlo46" />
+			<param name="ivy.lib.location" value="${laszlo46.home}" />
+		</antcall>
+		<chmod dir="${laszlo46.home}/WEB-INF/flexsdk" perm="755" includes="**/mxmlc*" />
+		<delete>
+			<fileset dir="${laszlo46.home}" includes="openlaszlo*.tgz"/>
+		</delete>
+	</target>
+	<!-- Check for Command line admin depandencies -->
+	<target name="-retrieve-cmdadmin" unless="cmdadmin.installed" description="Retrieves the libraries if needed" depends="-availability-check">
+		<antcall target="-retrieve" inheritAll="true" inheritRefs="true">
+			<param name="ivy.conf.name" value="cmdadmin" />
+			<param name="ivy.lib.location" value="${red5.lib}" />
+		</antcall>
+	</target>
+
+	<target name="-retrieve-db2" unless="db2.installed" description="Retrieves the libraries if needed" depends="-availability-check">
+		<!-- empty -->
+	</target>
+
+	<target name="-retrieve-mssql" unless="mssql.installed" description="Retrieves the libraries if needed" depends="-availability-check">
+		<!-- empty -->
+	</target>
+		
+	<target name="-retrieve-derby" unless="derby.installed" description="Retrieves the libraries if needed" depends="-availability-check">
+		<!-- retrieved automatically, added for compatibility -->
+	</target>
+
+	<target name="-retrieve-mysql" unless="mysql.installed" description="Retrieves the libraries if needed" depends="-availability-check">
+		<antcall target="-retrieve" inheritAll="true" inheritRefs="true">
+			<param name="ivy.conf.name" value="mysql" />
+			<param name="ivy.lib.location" value="${om.lib.dir}" />
+		</antcall>
+	</target>
+
+	<target name="-retrieve-oracle" unless="oracle.installed" description="Retrieves the libraries if needed" depends="-availability-check">
+		<!-- empty -->
+	</target>
+
+	<target name="-retrieve-postgresql" unless="postgresql.installed" description="Retrieves the libraries if needed" depends="-availability-check">
+		<!-- retrieved automatically, added for compatibility -->
+	</target>
+
+	<target name="-process-db" description="performs DB related tasks based on passed DB type">
+		<echo message="db.provider == ${db}" />
+		<antcall target="-retrieve-${db}" inheritAll="true" inheritRefs="true" />
+		<copy file="${webapp.dir}/WEB-INF/classes/META-INF/${db}_persistence.xml" tofile="${webapp.dir}/WEB-INF/classes/META-INF/persistence.xml" overwrite="true" />
+	</target>
+
+	<!-- Clean targets -->
+	<!-- Remove classes directory for clean build -->
+	<target name="clean.classes" description="Clean Classes">
+		<delete includeemptydirs="true" dir="${main.out.dir}" />
+	</target>
+
+	<target name="clean.dist" description="Clean Dist dir">
+		<delete includeemptydirs="true" dir="${dist.dir}" />
+	</target>
+
+	<target name="clean" depends="clean.classes, clean.dist" description="Clean For Binary">
+		<delete includeemptydirs="true" dir="${junit.base.dir}" />
+		<delete file="${keystore.file}" />
+	</target>
+
+	<target name="clean.all" depends="clean.dist" description="Clean All">
+		<delete includeemptydirs="true" dir="${build.base.dir}" />
+	</target>
+	
+	<target name="clean.ivy" depends="clean.all,-install-ivy" description="Clears out Ivy cache and build folder">
+		<ivy:cleancache />
+	</target>
+
+	<target name="prepare-eclipse" if="java6.installed" description="Layout various files necessary for development" depends="-java6or7.check">
+		<antcall target="-retrieve-mainlibs" inheritAll="true" inheritRefs="true" />
+		<antcall target="-retrieve-om" inheritAll="true" inheritRefs="true" />
+		<antcall target="-retrieve-junit" inheritAll="true" inheritRefs="true" />
+		<antcall target="-retrieve-dtd-generator" inheritAll="true" inheritRefs="true" />
+		<antcall target="-retrieve-tools.jar" inheritAll="true" inheritRefs="true" />
+		<antcall target="-retrieve-openlaszlo" inheritAll="true" inheritRefs="true" />
+		<antcall target="-retrieve-openlaszlo46" inheritAll="true" inheritRefs="true" />
+		<antcall target="-retrieve-cmdadmin" inheritAll="true" inheritRefs="true" />
+		<antcall target="-retrieve-anakia" inheritAll="true" inheritRefs="true" />
+		<antcall target="-process-db" inheritAll="true" inheritRefs="true" />
+	</target>
+	
+	<target name="-java6or7.check" unless="java6.installed" depends="info">
+		<condition property="java6.installed" value="true">
+			<and>
+				<or>
+					<equals arg1="${java.specification.version}" arg2="1.6" />
+					<equals arg1="${java.specification.version}" arg2="1.7" />
+				</or>
+				<matches string="${java.vm.specification.vendor}" pattern=".*[sun,oracle].*" casesensitive="false" singleline="true" />
+			</and>
+		</condition>
+		<echo message="Using Java ${java.version} specification: ${java.specification.version}" />
+		<fail message="Unsupported Java version - detected: ${java.version} Only Sun/Oracle Java compiler version 6 or 7 supported.">
+			<condition>
+				<not>
+					<equals arg1="${java6.installed}" arg2="true" />
+				</not>
+			</condition>
+		</fail>
+	</target>
+	
+	<path id="loadtest.classpath">
+		<fileset dir="${om.dist.webapp}/screensharing">
+			<include name="*.jar" />
+			<exclude name="openmeetings*.jar" />
+		</fileset>
+		<pathelement path="${resources.dir}" />
+		<pathelement path="${main.out.dir}" />
+	</path>
+	
+	<property name="runTestHost" value="192.168.1.7" />
+	<property name="numberOfClient" value="50" />
+	<property name="runTestPort" value="1935" />
+	<property name="runTestContext" value="openmeetings/1" />
+	
+	<target name="doRunClientTest">
+		<parallel>
+			<java classname="org.apache.openmeetings.test.rtmp.SimulateLoadTest">
+				<arg value="${runTestHost}"/>
+				<arg value="${numberOfClient}"/>
+				<classpath refid="loadtest.classpath" />
+			</java>
+		</parallel>
+	</target>
+	
+</project>
diff --git a/docs/ApacheDerbyConfig.html b/docs/ApacheDerbyConfig.html
new file mode 100644
index 0000000..858e145
--- /dev/null
+++ b/docs/ApacheDerbyConfig.html
@@ -0,0 +1,374 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			Apache OpenMeetings Documentation Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Apache Derby Configuration</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Apache Derby Configuration"><strong>Apache Derby Configuration</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				OpenMeetings default configuration is to use Apache Derby.

+			</p>
+                                                <p>

+				It is recommended for production environments and high

+				availibility to change to an usual relational database like MySQL,

+				Postgres or DB2.

+			</p>
+                                                <p>

+				For more information about Apache Derby see

+				<a href="http://db.apache.org/derby/">http://db.apache.org/derby/</a>

+			</p>
+                                                <p>

+				There is a sample configuration for Apache Derby that ships with

+				every release in:

+				<br />

+				/webapps/openmeetings/WEB-INF/classes/META-INF/derby_persistence.xml

+			</p>
+                                                <p>

+				If you encounter issues, you can drop the db again and delete the

+				file /webapps/openmeetings/conf/install.xml and then run the web

+				based installer again

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/BitrixPlugin.html b/docs/BitrixPlugin.html
new file mode 100644
index 0000000..2079b5f
--- /dev/null
+++ b/docs/BitrixPlugin.html
@@ -0,0 +1,395 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="solomax@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Bitrix Plugin</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="OpenMeetings Plugin for Bitrix"><strong>OpenMeetings Plugin for Bitrix</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				Current Development Snapshots for testing can be created from the sources:

+				<a href="https://svn.codespot.com/a/apache-extras.org/openmeetings-bitrix-plugin/trunk">here</a>

+				.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Features"><strong>Features</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>The plugin contains the following features: </p>
+                                                <ul>

+				<li>Enter videoconference rooms from Bitrix (http://www.1c-bitrix.ru/): </li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Configuration"><strong>Configuration</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+				<b>OpenMeetings Bitrix Plugin Installation</b><br />

+				<ol>

+					<li>Build plugin from sources</li>

+					<li>Unpack it into bitrix/modules</li>

+					<li>Install via Admin</li>

+					<li>Add OPenmeetings component to any page.</li>

+				</ol>              

+			</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/BuildInstructions.html b/docs/BuildInstructions.html
new file mode 100644
index 0000000..abadf5c
--- /dev/null
+++ b/docs/BuildInstructions.html
@@ -0,0 +1,698 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Build instructions</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Nightly Builds"><strong>Nightly Builds</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				You can find Nightly Builds of the software at:

+				<a href="https://builds.apache.org/view/M-R/view/OpenMeetings/" rel="nofollow" target="_BLANK">

+					https://builds.apache.org/view/M-R/view/OpenMeetings/

+				</a>

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="How to Build a Distribution"><strong>How to Build a Distribution</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+				<p>To build a binary release of OpenMeetings you need: </p>

+				<ul>

+					<li>Sun JDK6</li>

+					<li>Apache ANT (minimum) 1.8.3</li>

+					<li>

+						SVN Command line client (Subversion 1.7 required!)

+						<a href="http://subversion.apache.org/packages.html" target="_BLANK" rel="nofollow">http://subversion.apache.org/packages.html</a>

+					</li>

+				</ul>

+			</div>
+                                                <p>Get the source: </p>
+                                                <div class="xmlcode">

+				svn checkout

+				https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/

+			</div>
+                                                <p>Run the command: </p>
+                                                <div class="xmlcode">

+				ant

+			</div>
+                                                <p>There is no need to compile the client additionally! The ant task

+				does it all! You will find a directory dist that contains

+				OpenMeetings and a red5-server.

+			</p>
+                                                <p>To compile the client you can also use ant: </p>
+                                                <div class="xmlcode">

+				ant

+				<span style="margin-left: 200px;"># compiles a complete package into the folder dist

+				</span>

+				<br />

+				ant compile.laszlo.main

+				<span style="margin-left: 70px;"># compiles the client into main.as3.swf10.swf and

+					main.swf8.swf</span>

+				<br />

+				ant compile.laszlo.main.debug

+				<span style="margin-left: 30px;"># compiles the debug-client into

+					maindebug.as3.swf10.swf and maindebug.swf8.swf

+				</span>

+				<br />

+				ant -Ddb=&lt;name of DB&gt;

+				<span style="margin-left: 50px;"># will copy &lt;name of DB&gt;_persistense.xml to

+					persistense.xml

+				</span>

+				<br />

+				<span style="margin-left: 230px;">#(for ex. ant -Ddb=mysql will set mysql as default

+					DB)

+				</span>

+			</div>
+                                                <p>To compile just the openmeetings JAR file: </p>
+                                                <div class="xmlcode">

+				ant jar.only

+			</div>
+                                                <p>

+				To run Junit tests using ANT see

+				<a href="JUnitTesting.html">JUnitTesting</a>

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Run, Develop, Test"><strong>Run, Develop, Test</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				To develop or build OpenMeetings you checkout the source as Eclipse

+				project. You need the Subclipse or Subversive Plugin for Eclipse. If

+				you just need to change 3 lines of code then your probably better

+				switch to

+				<a href="#How_to_build_a_distribution" rel="nofollow">How to build a

+					distribution

+				</a>

+				.

+			</p>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Step1 - Get required Software"><strong>Step1 - Get required Software</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>To develop OpenMeetings you need at least: </p>
+                                                <ul>

+					<li>Eclipse in a up to date copy and Sun JDK6 </li>

+					<li>Apache ANT (minimum) 1.8.3</li>

+					<li>

+						Subclipse 1.8 (Subversion 1.7 required!)

+						<a href="http://subclipse.tigris.org/" target="_BLANK" rel="nofollow">http://subclipse.tigris.org/

+						</a>

+					</li>

+					<li>

+						SVN Command line client (Subversion 1.7 required!)

+						<a href="http://subversion.apache.org/packages.html" target="_BLANK" rel="nofollow">http://subversion.apache.org/packages.html</a>

+					</li>

+					<li>Spring IDE for Eclipse (installable via Help &gt; Eclipse

+						Marketplace)

+					</li>

+					<li>

+						Apache IvyDE™ For Eclipse (installable via Help &gt; Install

+						New Software)

+						URL: http://www.apache.org/dist/ant/ivyde/updatesite

+						detailed steps can be found here:

+						<a href="http://ant.apache.org/ivy/ivyde/download.cgi" target="_BLANK" rel="nofollow">http://ant.apache.org/ivy/ivyde/download.cgi</a>

+					</li>

+					<li>MySQL (or Postgres, or other Databases supported by openJPA)

+						are optionally but handy to have them

+					</li>

+				</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Step2 - Download the Source"><strong>Step2 - Download the Source</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>Advanced Users: Check out the Code from the Repository as a

+					Java

+					project into Eclipse.

+				</p>
+                                                <p>

+					URL:

+					<a href="https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/">

+						https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/

+					</a>

+				</p>
+                                                <p>To download the required JARs for building and developing

+					OpenMeetings you need to run the ANT comand:

+				</p>
+                                                <div class="xmlcode">

+					ant -Ddb=&lt;your_DB&gt; prepare-eclipse

+				</div>
+                                                <p>After the ANT command you need to press F5 and rebuild the

+					project from inside Eclipse

+				</p>
+                                                <p>Step-By-Step: </p>
+                                                <p>1) Start Eclipse </p>
+                                                <p>

+					2) Change Perspective to SVN Repository Exploring:

+					<br />

+					<br />

+					<a class="fancybox-buttons" href="images/checkout_1.png">

+						<img src="images/checkout_1.png" alt="" width="400" height="289" />

+					</a>

+

+				</p>
+                                                <p>

+					3) Select SVN Repository Exploring and click ok.

+					<br />

+					<br />

+					<a class="fancybox-buttons" href="images/checkout_2.png">

+						<img src="images/checkout_2.png" alt="" width="304" height="417" />

+					</a>

+				</p>
+                                                <p>

+					4) A new Dialog in Eclipse opens

+					<strong>SVN Repositories</strong>

+					<br />

+					<br />

+					<a class="fancybox-buttons" href="images/checkout_3.png">

+						<img src="images/checkout_3.png" alt="" width="460" height="102" />

+					</a>

+				</p>
+                                                <p>

+					5) Click on the icon with the plus in the top right corner in the

+					SVN Repository Dialog

+					<br />

+					<br />

+					<a class="fancybox-buttons" href="images/checkout_4.png">

+						<img src="images/checkout_4.png" alt="" width="57" height="38" />

+					</a>

+				</p>
+                                                <p>

+					6) Add the URL

+					<a href="https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/" rel="nofollow">https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/

+					</a>

+					and click Finish

+					<br />

+					<br />

+					<a class="fancybox-buttons" href="images/checkout_5.png">

+						<img src="images/checkout_5.png" alt="" width="455" height="272" />

+					</a>

+				</p>
+                                                <p>

+					7) After download is complete you see a new Source Repository in

+					the Repository Explorer. Right click on it and choose

+					<strong>checkout</strong>

+					<br />

+					<br />

+					<a class="fancybox-buttons" href="images/checkout_6.png">

+						<img src="images/checkout_6.png" alt="" width="340" height="135" />

+					</a>

+				</p>
+                                                <p>

+					8) In the Dialog the opens now just click next

+					<br />

+					<br />

+					<a class="fancybox-buttons" href="images/checkout_7.png">

+						<img src="images/checkout_7.png" alt="" width="390" height="338" />

+					</a>

+				</p>
+                                                <p>

+					9) In the next Dialog just click Finish, Eclipse will then download

+					the sources

+					<br />

+					<br />

+					<a class="fancybox-buttons" href="images/checkout_8.png">

+						<img src="images/checkout_8.png" alt="" width="390" height="338" />

+					</a>

+				</p>
+                                                <p>

+					10) After the download is complete you will see a new Project in

+					the Package Explorer Dialog of Eclipse

+					<br />

+					<br />

+					<a class="fancybox-buttons" href="images/checkout_9.png">

+						<img src="images/checkout_9.png" alt="" width="310" height="297" />

+					</a>

+				</p>
+                                                <div>

+					11) Please run

+					<div class="xmlcode">

+						ant prepare-eclipse

+					</div>

+					to download all necessary jar files, and perform source

+					<tt>Refresh</tt>

+					to resolve all compilation issues.

+				</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Step3 - Deploy and Run"><strong>Step3 - Deploy and Run</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+					see the first chapter about the ANT tasks to compile the code. You

+					will find a directory called

+					<strong>dist</strong>

+					which contains a regular openmeetings including red5. You can then

+					use the usual process like described at

+					<a href="installation.html">installation</a>

+					to run the code then.

+				</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Links"><strong>Links</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+				<li>

+					Getting Started with OpenLaszlo, checkout

+					<a href="http://www.openlaszlo.org/lps4.2/laszlo-explorer/index.jsp?lzr=swf8" target="_BLANK" rel="nofollow">Laszlo-in-10-Minutes</a>

+					and the

+					<a href="http://www.openlaszlo.org/lps4.2/docs/" target="_BLANK" rel="nofollow">Application

+						Developer's Guide

+					</a>

+					or try the

+					<a href="http://www.openlaszlo.org/getstarted" target="_BLANK" rel="nofollow">ScreenCast</a>

+				</li>

+				<li>

+					<a href="http://openmeetings.apache.org/svn.html">

+						browse SVN source

+					</a>

+				</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Tipps and Gotchas"><strong>Tipps and Gotchas</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>When you want to develop only client side there are handy ANT

+				tasks so that you only rebuild the SWFs, same for the Java side.

+			</p>
+                                                <p>

+				It

+				also takes much less time if you do use MySQL as database then

+				rebuilding the software and waiting for Apache Derby to set up the

+				database everytime you did rebuild.

+			</p>
+                                                <p>

+				<b>Working behind a proxy:</b>

+				If you are sitting behind a proxy you should add some proxy settings

+				before starting the build process.

+				<br />

+				For Apache Ivy see:

+				<a href="http://ant.apache.org/ivy/faq.html" target="_BLANK" rel="nofollow">http://ant.apache.org/ivy/faq.html

+				</a>

+				<br />

+				For SVN Command Line Client (From CollabNet 1.7) see:

+				<a href="https://ctf6latest.collab.net/internal-help/index.jsp?topic=/teamforge610/faq/client_proxy_settings.html" target="_BLANK" rel="nofollow">https://ctf6latest.collab.net/internal-help/index.jsp?topic=/teamforge610/faq/client_proxy_settings.html

+				</a>

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/CalendarAndTimezone.html b/docs/CalendarAndTimezone.html
new file mode 100644
index 0000000..5b242d6
--- /dev/null
+++ b/docs/CalendarAndTimezone.html
@@ -0,0 +1,425 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Changing the Calendar and Timezone default</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Changing the Calendar and Timezone default"><strong>Changing the Calendar and Timezone default</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				In general the timezone is configured in the user profile of each

+				user, so changing the server timezone has no effect how to the users

+				calendar for example.

+				<br />

+				<br />

+				However there are some circumstances where there is no user profile

+				available.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Changing servers default timzeone for Emails and Invitations (display)"><strong>Changing servers default timzeone for Emails and Invitations (display)</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				Goto Administration &gt; Configuration and change the config-key:

+				<tt>default.timezone</tt>

+			</p>
+                                                <p>Valid timezone have to meet standards! </p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Changing first day in week for calendar from Sunday to Monday"><strong>Changing first day in week for calendar from Sunday to Monday</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>in the public/config.xml change the key: </p>
+                                                <div class="xmlcode">

+				&lt;!--

+				<br />

+				First day in the Week used by the Calendar

+				<br />

+				0 means Sunday

+				<br />

+				1 means Monday

+				<br />

+				this is the way how the Celendar inits a week

+				<br />

+				--&gt;

+				<br />

+				&lt;firstdayinweek&gt;0&lt;/firstdayinweek&gt;

+				<br />

+			</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Changing the default number of max participants of a conference room created via calendar"><strong>Changing the default number of max participants of a conference room created via calendar</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>Goto

+				Administration &gt; Configuration and change the config-key:

+				<tt>calendar.conference.rooms.default.size</tt>

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/CalendarService.html b/docs/CalendarService.html
new file mode 100644
index 0000000..df1aa5c
--- /dev/null
+++ b/docs/CalendarService.html
@@ -0,0 +1,1114 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+          

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+-->

+

+    <!-- ====================================================================== -->

+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE TEMPLATE INSTEAD! -->

+    <!-- Main Page Section -->

+    <!-- ====================================================================== -->

+    

+     <html>

+        <head>

+		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>

+		<meta name="author" content="OpenMeetings Team">

+		<meta name="email" content="sebawagner@apache.org">

+		<title>OpenMeetings API Methods</title>

+		<link rel="stylesheet" type="text/css" href="openmeetings_docs.css">

+        </head>

+	<body>

+	

+		<h3>Available WebServices:</h3>

+	

+		<iframe src="WebserviceIndex.html" width="100%" height="210" name="WebserviceIndex.html"

+			scrolling="no" marginheight="0" marginwidth="0" frameborder="0">

+		  <p>Your Browser does not support frames ...</p>

+		</iframe>

+		

+		<hr />

+	

+	   <h3>WebService: CalendarService</h3>

+	   <p>CalendarService contains methods to create, edit delete calendar meetings<p>

+	   <p>WSDL sample Url: <a href="http://localhost:5080/openmeetings/services/CalendarService?wsdl">http://localhost:5080/openmeetings/services/CalendarService?wsdl</a><p>

+	

+	<!-- Links to Methods -->

+	   <h3>Index of Methods available in CalendarService</h3>

+	   

+       <div class="navigation">

+	                               <div>

+                <a href="#getAppointmentByRange"><b>getAppointmentByRange</b></a><br/>

+                <div class="navigation_comment"><i >Load appointments by a start / end range for the current SID</i></div>

+                </div>

+                                               <div>

+                <a href="#getAppointmentByRangeForUserId"><b>getAppointmentByRangeForUserId</b></a><br/>

+                <div class="navigation_comment"><i >Load appointments by a start / end range for the userId</i></div>

+                </div>

+                                               <div>

+                <a href="#getNextAppointment"><b>getNextAppointment</b></a><br/>

+                <div class="navigation_comment"><i >Get the next Calendar event for the current user of the SID</i></div>

+                </div>

+                                               <div>

+                <a href="#getNextAppointmentForUserId"><b>getNextAppointmentForUserId</b></a><br/>

+                <div class="navigation_comment"><i >Get the next Calendar event for userId</i></div>

+                </div>

+                                               <div>

+                <a href="#searchAppointmentByName"><b>searchAppointmentByName</b></a><br/>

+                <div class="navigation_comment"><i >Search a calendar event for the current SID</i></div>

+                </div>

+                                               <div>

+                <a href="#saveAppointment"><b>saveAppointment</b></a><br/>

+                <div class="navigation_comment"><i >Save an appointment</i></div>

+                </div>

+                                               <div>

+                <a href="#updateAppointmentTimeOnly"><b>updateAppointmentTimeOnly</b></a><br/>

+                <div class="navigation_comment"><i >Update an calendar event time only</i></div>

+                </div>

+                                               <div>

+                <a href="#updateAppointment"><b>updateAppointment</b></a><br/>

+                <div class="navigation_comment"><i >Save an appointment</i></div>

+                </div>

+                                               <div>

+                <a href="#deleteAppointment"><b>deleteAppointment</b></a><br/>

+                <div class="navigation_comment"><i >delete a calendar event
+ 
+ If the given SID is from an Administrator or Web-Service user, the user
+ can delete any appointment.<br/>
+ If the SID is assigned to a simple user, he can only delete appointments
+ where he is also the owner/creator of the appointment</i></div>

+                </div>

+                                               <div>

+                <a href="#getAppointmentByRoomId"><b>getAppointmentByRoomId</b></a><br/>

+                <div class="navigation_comment"><i >Load a calendar event by its room id</i></div>

+                </div>

+                                               <div>

+                <a href="#getAppointmentCategoryList"><b>getAppointmentCategoryList</b></a><br/>

+                <div class="navigation_comment"><i >Get all categories of calendar events</i></div>

+                </div>

+                                               <div>

+                <a href="#getAppointmentReminderTypList"><b>getAppointmentReminderTypList</b></a><br/>

+                <div class="navigation_comment"><i >Get all reminder types for calendar events</i></div>

+                </div>

+                           </div>

+	   

+	    <h3>Methods Details in CalendarService</h3>

+	

+				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getAppointmentByRange" ><b>getAppointmentByRange</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getAppointmentByRange (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Date starttime

+    			       			    			       			     , 

+    			       			   Date endtime

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Load appointments by a start / end range for the current SID

+    			</p>

+    			<p>

+                  Return Type: java.util.List<org.apache.openmeetings.db.entity.calendar.Appointment>

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Date

+	                     		                     </td>

+	                     <td valign="top">starttime</td>

+	                     <td valign="top">start time, yyyy-mm-dd</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Date

+	                     		                     </td>

+	                     <td valign="top">endtime</td>

+	                     <td valign="top">end time, yyyy-mm-dd</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/CalendarService/getAppointmentByRange?SID=VALUE&starttime=VALUE&endtime=VALUE">http://localhost:5080/openmeetings/services/CalendarService/getAppointmentByRange?SID=VALUE&amp;starttime=VALUE&amp;endtime=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getAppointmentByRangeForUserId" ><b>getAppointmentByRangeForUserId</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getAppointmentByRangeForUserId (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   long userId

+    			       			    			       			     , 

+    			       			   Date starttime

+    			       			    			       			     , 

+    			       			   Date endtime

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Load appointments by a start / end range for the userId

+    			</p>

+    			<p>

+                  Return Type: java.util.List<org.apache.openmeetings.db.entity.calendar.Appointment>

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		long

+	                     		                     </td>

+	                     <td valign="top">userId</td>

+	                     <td valign="top">the userId the calendar events should be loaded</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Date

+	                     		                     </td>

+	                     <td valign="top">starttime</td>

+	                     <td valign="top">start time, yyyy-mm-dd</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Date

+	                     		                     </td>

+	                     <td valign="top">endtime</td>

+	                     <td valign="top">end time, yyyy-mm-dd</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/CalendarService/getAppointmentByRangeForUserId?SID=VALUE&userId=VALUE&starttime=VALUE&endtime=VALUE">http://localhost:5080/openmeetings/services/CalendarService/getAppointmentByRangeForUserId?SID=VALUE&amp;userId=VALUE&amp;starttime=VALUE&amp;endtime=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getNextAppointment" ><b>getNextAppointment</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getNextAppointment (

+    			    			    			       			   String SID

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Get the next Calendar event for the current user of the SID

+    			</p>

+    			<p>

+                  Return Type: org.apache.openmeetings.db.entity.calendar.Appointment

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    												<a href="http://localhost:5080/openmeetings/services/CalendarService/getNextAppointment?SID=VALUE">http://localhost:5080/openmeetings/services/CalendarService/getNextAppointment?SID=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getNextAppointmentForUserId" ><b>getNextAppointmentForUserId</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getNextAppointmentForUserId (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   long userId

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Get the next Calendar event for userId

+    			</p>

+    			<p>

+                  Return Type: org.apache.openmeetings.db.entity.calendar.Appointment

+                </p>

+    			<p>Params:</p>

+    			    				<b>Warning:</b><i> Params in this method do not seem to be correctly documentated</i>

+    				<br/><br/>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/CalendarService/getNextAppointmentForUserId?SID=VALUE&userId=VALUE">http://localhost:5080/openmeetings/services/CalendarService/getNextAppointmentForUserId?SID=VALUE&amp;userId=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="searchAppointmentByName" ><b>searchAppointmentByName</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>searchAppointmentByName (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String appointmentName

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Search a calendar event for the current SID

+    			</p>

+    			<p>

+                  Return Type: java.util.List<org.apache.openmeetings.db.entity.calendar.Appointment>

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">appointmentName</td>

+	                     <td valign="top">the search string</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/CalendarService/searchAppointmentByName?SID=VALUE&appointmentName=VALUE">http://localhost:5080/openmeetings/services/CalendarService/searchAppointmentByName?SID=VALUE&amp;appointmentName=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="saveAppointment" ><b>saveAppointment</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>saveAppointment (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String appointmentName

+    			       			    			       			     , 

+    			       			   String appointmentLocation

+    			       			    			       			     , 

+    			       			   String appointmentDescription

+    			       			    			       			     , 

+    			       			   Calendar appointmentstart

+    			       			    			       			     , 

+    			       			   Calendar appointmentend

+    			       			    			       			     , 

+    			       			   Boolean isDaily

+    			       			    			       			     , 

+    			       			   Boolean isWeekly

+    			       			    			       			     , 

+    			       			   Boolean isMonthly

+    			       			    			       			     , 

+    			       			   Boolean isYearly

+    			       			    			       			     , 

+    			       			   Long categoryId

+    			       			    			       			     , 

+    			       			   Long remind

+    			       			    			       			     , 

+    			       			   String mmClient

+    			       			    			       			     , 

+    			       			   Long roomType

+    			       			    			       			     , 

+    			       			   Long languageId

+    			       			    			       			     , 

+    			       			   Boolean isPasswordProtected

+    			       			    			       			     , 

+    			       			   String password

+    			       			    			       			     , 

+    			       			   long roomId

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Save an appointment

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    				<b>Warning:</b><i> Params in this method do not seem to be correctly documentated</i>

+    				<br/><br/>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">appointmentName</td>

+	                     <td valign="top">name of the calendar event</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">appointmentLocation</td>

+	                     <td valign="top">location info text of the calendar event</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">appointmentDescription</td>

+	                     <td valign="top">description test of the calendar event</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Calendar

+	                     		                     </td>

+	                     <td valign="top">appointmentstart</td>

+	                     <td valign="top">start as Date yyyy-mm-ddThh:mm:ss</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Calendar

+	                     		                     </td>

+	                     <td valign="top">appointmentend</td>

+	                     <td valign="top">end as Date yyyy-mm-ddThh:mm:ss</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isDaily</td>

+	                     <td valign="top">if the calendar event should be repeated daily (not
+            implemented)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isWeekly</td>

+	                     <td valign="top">if the calendar event should be repeated weekly (not
+            implemented)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isMonthly</td>

+	                     <td valign="top">if the calendar event should be repeated monthly (not
+            implemented)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isYearly</td>

+	                     <td valign="top">if the calendar event should be repeated yearly (not
+            implemented)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">categoryId</td>

+	                     <td valign="top">the category id of the calendar event</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">remind</td>

+	                     <td valign="top">the reminder type of the calendar event</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">mmClient</td>

+	                     <td valign="top">List of clients, comma separated string, <br/>
+            sample: 1,firstname,lastname,hans.tier@gmail.com,1,Etc/GMT+1
+            to add multiple clients you can use the same GET parameter in
+            the URL multiple times, for example:
+            &amp;mmClient=1,firstname,lastname,hans
+            .tier@gmail.com,1,Etc/GMT+1&amp;mmClient
+            =2,firstname,lastname,hans.tier@gmail.com,1,Etc/GMT+1</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">roomType</td>

+	                     <td valign="top">the room type for the calendar event</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">languageId</td>

+	                     <td valign="top">the language id of the calendar event, notification emails
+            will be send in this language</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isPasswordProtected</td>

+	                     <td valign="top">if the room is password protected</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">password</td>

+	                     <td valign="top">the password for the room</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/CalendarService/saveAppointment?SID=VALUE&appointmentName=VALUE&appointmentLocation=VALUE&appointmentDescription=VALUE&appointmentstart=VALUE&appointmentend=VALUE&isDaily=VALUE&isWeekly=VALUE&isMonthly=VALUE&isYearly=VALUE&categoryId=VALUE&remind=VALUE&mmClient=VALUE&roomType=VALUE&languageId=VALUE&isPasswordProtected=VALUE&password=VALUE&roomId=VALUE">http://localhost:5080/openmeetings/services/CalendarService/saveAppointment?SID=VALUE&amp;appointmentName=VALUE&amp;appointmentLocation=VALUE&amp;appointmentDescription=VALUE&amp;appointmentstart=VALUE&amp;appointmentend=VALUE&amp;isDaily=VALUE&amp;isWeekly=VALUE&amp;isMonthly=VALUE&amp;isYearly=VALUE&amp;categoryId=VALUE&amp;remind=VALUE&amp;mmClient=VALUE&amp;roomType=VALUE&amp;languageId=VALUE&amp;isPasswordProtected=VALUE&amp;password=VALUE&amp;roomId=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="updateAppointmentTimeOnly" ><b>updateAppointmentTimeOnly</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>updateAppointmentTimeOnly (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long appointmentId

+    			       			    			       			     , 

+    			       			   Date appointmentstart

+    			       			    			       			     , 

+    			       			   Date appointmentend

+    			       			    			       			     , 

+    			       			   Long languageId

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Update an calendar event time only

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">appointmentId</td>

+	                     <td valign="top">the calendar event that should be updated</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Date

+	                     		                     </td>

+	                     <td valign="top">appointmentstart</td>

+	                     <td valign="top">start yyyy-mm-dd</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Date

+	                     		                     </td>

+	                     <td valign="top">appointmentend</td>

+	                     <td valign="top">end yyyy-mm-dd</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">languageId</td>

+	                     <td valign="top">the language id</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/CalendarService/updateAppointmentTimeOnly?SID=VALUE&appointmentId=VALUE&appointmentstart=VALUE&appointmentend=VALUE&languageId=VALUE">http://localhost:5080/openmeetings/services/CalendarService/updateAppointmentTimeOnly?SID=VALUE&amp;appointmentId=VALUE&amp;appointmentstart=VALUE&amp;appointmentend=VALUE&amp;languageId=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="updateAppointment" ><b>updateAppointment</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>updateAppointment (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long appointmentId

+    			       			    			       			     , 

+    			       			   String appointmentName

+    			       			    			       			     , 

+    			       			   String appointmentLocation

+    			       			    			       			     , 

+    			       			   String appointmentDescription

+    			       			    			       			     , 

+    			       			   Calendar appointmentstart

+    			       			    			       			     , 

+    			       			   Calendar appointmentend

+    			       			    			       			     , 

+    			       			   Boolean isDaily

+    			       			    			       			     , 

+    			       			   Boolean isWeekly

+    			       			    			       			     , 

+    			       			   Boolean isMonthly

+    			       			    			       			     , 

+    			       			   Boolean isYearly

+    			       			    			       			     , 

+    			       			   Long categoryId

+    			       			    			       			     , 

+    			       			   Long remind

+    			       			    			       			     , 

+    			       			   String mmClient

+    			       			    			       			     , 

+    			       			   Long roomType

+    			       			    			       			     , 

+    			       			   Long languageId

+    			       			    			       			     , 

+    			       			   Boolean isPasswordProtected

+    			       			    			       			     , 

+    			       			   String password

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Save an appointment

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">appointmentId</td>

+	                     <td valign="top">the id to update</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">appointmentName</td>

+	                     <td valign="top">name of the calendar event</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">appointmentLocation</td>

+	                     <td valign="top">location info text of the calendar event</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">appointmentDescription</td>

+	                     <td valign="top">description test of the calendar event</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Calendar

+	                     		                     </td>

+	                     <td valign="top">appointmentstart</td>

+	                     <td valign="top">start as Date yyyy-mm-ddThh:mm:ss</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Calendar

+	                     		                     </td>

+	                     <td valign="top">appointmentend</td>

+	                     <td valign="top">end as Date yyyy-mm-ddThh:mm:ss</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isDaily</td>

+	                     <td valign="top">if the calendar event should be repeated daily (not
+            implemented)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isWeekly</td>

+	                     <td valign="top">if the calendar event should be repeated weekly (not
+            implemented)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isMonthly</td>

+	                     <td valign="top">if the calendar event should be repeated monthly (not
+            implemented)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isYearly</td>

+	                     <td valign="top">if the calendar event should be repeated yearly (not
+            implemented)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">categoryId</td>

+	                     <td valign="top">the category id of the calendar event</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">remind</td>

+	                     <td valign="top">the reminder type of the calendar event</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">mmClient</td>

+	                     <td valign="top">List of clients, comma separated string, <br/>
+            sample: 1,firstname,lastname,hans.tier@gmail.com,1,Etc/GMT+1
+            to add multiple clients you can use the same GET parameter in
+            the URL multiple times, for example:
+            &amp;mmClient=1,firstname,lastname,hans
+            .tier@gmail.com,1,Etc/GMT+1&amp;mmClient
+            =2,firstname,lastname,hans.tier@gmail.com,1,Etc/GMT+1</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">roomType</td>

+	                     <td valign="top">the room type for the calendar event</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">languageId</td>

+	                     <td valign="top">the language id of the calendar event, notification emails
+            will be send in this language</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isPasswordProtected</td>

+	                     <td valign="top">if the room is password protected</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">password</td>

+	                     <td valign="top">the password for the room</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/CalendarService/updateAppointment?SID=VALUE&appointmentId=VALUE&appointmentName=VALUE&appointmentLocation=VALUE&appointmentDescription=VALUE&appointmentstart=VALUE&appointmentend=VALUE&isDaily=VALUE&isWeekly=VALUE&isMonthly=VALUE&isYearly=VALUE&categoryId=VALUE&remind=VALUE&mmClient=VALUE&roomType=VALUE&languageId=VALUE&isPasswordProtected=VALUE&password=VALUE">http://localhost:5080/openmeetings/services/CalendarService/updateAppointment?SID=VALUE&amp;appointmentId=VALUE&amp;appointmentName=VALUE&amp;appointmentLocation=VALUE&amp;appointmentDescription=VALUE&amp;appointmentstart=VALUE&amp;appointmentend=VALUE&amp;isDaily=VALUE&amp;isWeekly=VALUE&amp;isMonthly=VALUE&amp;isYearly=VALUE&amp;categoryId=VALUE&amp;remind=VALUE&amp;mmClient=VALUE&amp;roomType=VALUE&amp;languageId=VALUE&amp;isPasswordProtected=VALUE&amp;password=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="deleteAppointment" ><b>deleteAppointment</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>deleteAppointment (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long appointmentId

+    			       			    			       			     , 

+    			       			   Long language_id

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  delete a calendar event
+ 
+ If the given SID is from an Administrator or Web-Service user, the user
+ can delete any appointment.<br/>
+ If the SID is assigned to a simple user, he can only delete appointments
+ where he is also the owner/creator of the appointment

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">an authenticated SID</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">appointmentId</td>

+	                     <td valign="top">the id to delete</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">language_id</td>

+	                     <td valign="top">the language id in which the notifications for the deleted
+            appointment are send</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/CalendarService/deleteAppointment?SID=VALUE&appointmentId=VALUE&language_id=VALUE">http://localhost:5080/openmeetings/services/CalendarService/deleteAppointment?SID=VALUE&amp;appointmentId=VALUE&amp;language_id=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getAppointmentByRoomId" ><b>getAppointmentByRoomId</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getAppointmentByRoomId (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Load a calendar event by its room id

+    			</p>

+    			<p>

+                  Return Type: org.apache.openmeetings.db.entity.calendar.Appointment

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/CalendarService/getAppointmentByRoomId?SID=VALUE&room_id=VALUE">http://localhost:5080/openmeetings/services/CalendarService/getAppointmentByRoomId?SID=VALUE&amp;room_id=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getAppointmentCategoryList" ><b>getAppointmentCategoryList</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getAppointmentCategoryList (

+    			    			    			       			   String SID

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Get all categories of calendar events

+    			</p>

+    			<p>

+                  Return Type: java.util.List<org.apache.openmeetings.db.entity.calendar.AppointmentCategory>

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    												<a href="http://localhost:5080/openmeetings/services/CalendarService/getAppointmentCategoryList?SID=VALUE">http://localhost:5080/openmeetings/services/CalendarService/getAppointmentCategoryList?SID=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getAppointmentReminderTypList" ><b>getAppointmentReminderTypList</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getAppointmentReminderTypList (

+    			    			    			       			   String SID

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Get all reminder types for calendar events

+    			</p>

+    			<p>

+                  Return Type: java.util.List<org.apache.openmeetings.db.entity.calendar.AppointmentReminderTyps>

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    												<a href="http://localhost:5080/openmeetings/services/CalendarService/getAppointmentReminderTypList?SID=VALUE">http://localhost:5080/openmeetings/services/CalendarService/getAppointmentReminderTypList?SID=VALUE</a>

+    		  </div>

+    	   			

+	

+	</body>

+</html>

+

diff --git a/docs/Clustering.html b/docs/Clustering.html
new file mode 100644
index 0000000..28a853a
--- /dev/null
+++ b/docs/Clustering.html
@@ -0,0 +1,524 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="solomax@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Clustering</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Description"><strong>Description</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				OpenMeetings 2.1 or later is required to use clustering. One database is used for all OpenMeetings 

+				servers, so all database tables are shared across OM instances. Certain folders should be shared 

+				between all servers to allow access to the files/recording.</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Configuration"><strong>Configuration</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+				<li>

+					Multiple OM servers should be set up as described in

+					<a href="installation.html" target="_BLANK">

+						<b>Installation</b>

+					</a>

+				</li>

+				<li>All servers should be configured to have same Time zone (To avoid

+					Schedulers to drop user sessions as outdated)

+				</li>

+				<li>All servers should be configured to use the same DB</li>

+				<li>Servers should be added in Administration -&gt; Servers section</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Database"><strong>Database</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+				<li>Add users who can connect to the database remotely</li>

+				<li>Update <tt>/opt/red5/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml</tt>

+					set correct server address, login and password. Also add the following section:

+					<div class="xmlcode">&lt;property name="openjpa.RemoteCommitProvider" value="tcp(Addresses=10.1.1.1;10.1.1.2)" /&gt;</div>

+					Instead of the 10.1.1.1 and 10.1.1.2 set semicolon separated IPs of all nodes of the cluster.

+				</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="File systems"><strong>File systems</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+				<li>Install NFS to the data server. In the file <tt>/etc/exports</tt> add the following lines:

+					<div class="xmlcode">

+						/opt/red5/webapps/openmeetings/upload 10.1.1.2(rw,sync,no_subtree_check,no_root_squash)<br />

+						/opt/red5/webapps/openmeetings/streams 10.1.1.2(rw,sync,no_subtree_check,no_root_squash)

+					</div>

+					Here 10.1.1.2 - is node ip for NFS remote access. Add these lines for all nodes except node with 

+					folders.

+				</li>

+				<li>

+					Install NFS common tools to other nodes. In the file <tt>/etc/fstab</tt> do the following:

+					<div class="xmlcode">

+						10.1.1.1:/opt/red5/webapps/openmeetings/upload/<br />

+						/opt/red5/webapps/openmeetings/upload nfs timeo=50,hard,intr<br />

+						10.1.1.1:/opt/red5/webapps/openmeetings/streams/<br />

+						/opt/red5/webapps/openmeetings/streams nfs timeo=50,hard,intr

+					</div>

+					Here 10.1.1.1 – data server ip. And run the command:

+					<div class="xmlcode">

+						mount -a

+					</div>

+				</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="OM nodes configuration"><strong>OM nodes configuration</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <tt>/opt/red5/webapps/openmeetings/WEB-INF/openmeetings-applicationContext.xml</tt>
+                                                <ul>

+				<li>

+					For each node uncomment line:

+					<div class="xmlcode">

+						&lt;!-- Need to be uncommented and set to the real ID if in cluster mode--&gt;<br />

+						&lt;property name="serverId" value="1" /&gt;

+					</div>

+					and input the unique value for each node.

+				</li>

+				<li> 

+					Replace <tt>&lt;ref bean="openmeetings.HashMapStore" /&gt;  &lt;!-- Memory based session cache by default --&gt;</tt><br />

+					with <tt>&lt;ref bean="openmeetings.DatabaseStore" /&gt;</tt> 

+					(Currently commented out with following comment: <tt>"The following section should be used in clustering mode"</tt>)

+				</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Configuring cluster in Administration"><strong>Configuring cluster in Administration</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+				<li>Go to the <tt>Administration -&gt; Users</tt> and create Webservice user (only access via SOAP).</li>

+				<li>

+					Go to the <tt>Administration -&gt; Servers</tt> and add all cluster nodes with the following settings:

+					<div class="xmlcode">

+						Server Name = node name;<br />

+						Active = check the checkbox. If the checkbox is checked it means node is active and you can use this node;<br />

+						Server Address = node ip;<br />

+						HTTP Port = 5080 - port for http part of Openmeetings;<br />

+						User (SOAP Access) = login of Webservice user from the previous step;<br />

+						Password = password of Webservise user;<br />

+						Webapp path = openmeetings - path where OM installed on this node, it would be better if this path will be the same for all nodes;<br />

+						Protocol = http.

+					</div>

+				</li> 

+			</ul>
+                                                <img src="./images/cluster1.png" width="650" height="461" align="middle">
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Ensure everything works as expected"><strong>Ensure everything works as expected</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+				<li>Set up the cluster and loggin with two users, go to the same room (also check before room 

+				entering that the status page with the room list shows the correct number of participants before 

+				entering the room). You should login to the same server initially, the server will redirect you 

+				for the conference room to the appropriate server automatically. Both users should be in the same room.

+				</li>

+				<li>Do the same with only two users but go to _different_ rooms. The calculation should send 

+				both users to different servers, cause based on the calculation two different rooms on a cluster 

+				with two nodes should go exactly one room for each node. You can now loggin really to node1 

+				and node2 of your cluster while those users are loggedin and go to <tt>Administration &gt; Connections</tt>

+				and check in the column "servers" where they are located. They should be on different server.

+				</li>

+			</ul>
+                                                <img src="./images/cluster2.png" width="650" height="369" align="middle">
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/CommandLineAdmin.html b/docs/CommandLineAdmin.html
new file mode 100644
index 0000000..05bd7ca
--- /dev/null
+++ b/docs/CommandLineAdmin.html
@@ -0,0 +1,429 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="solomax@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Command line admin</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Usage"><strong>Usage</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>To avoid intensive traffic utilization and save your time you can

+				use command line admin to achieve following tasks:</p>
+                                                <ul>

+				<li>Install using defaults</li>

+				<li>Install from backup</li>

+				<li>Backup</li>

+				<li>Cleanup</li>

+			</ul>
+                                                <p>Some example commands:</p>
+                                                <p>MySQL (requires to place the MySQL JDBC driver into webapps/openmeetings/WEB-INF/lib before running the command):</p>
+                                                <div>

+				<div class="xmlcode">

+./admin.sh -i -v -tz Europe/Berlin -email your.email@gmail.com -group webbase -user admin --smtp-server localhost --db-type mysql --db-name openmeetings_db --email-auth-user noreply@webbase-design.de --password 123qweasd --system-email-address noreply@webbase-design.de --db-user root --db-host localhost --email-auth-pass 123qweasd<br />

+				</div>

+			</div>
+                                                <p>Derby (Not recommended for production environment):</p>
+                                                <div>

+				<div class="xmlcode">

+./admin.sh -i -v -tz Europe/Berlin -email seba.wagner@gmail.com -group webbase -user admin --smtp-server localhost --email-auth-user noreply@webbase-design.de --password 123qweasd --system-email-address noreply@webbase-design.de --email-auth-pass 123qweasd<br />

+				</div>

+			</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Command reference"><strong>Command reference</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+				<div class="xmlcode">

+ -v,--verbose                        verbose error messages<br />

+--------------------------------------------------------------------------------------------------<br />

+ -h,--help                           prints this message<br />

+--------------------------------------------------------------------------------------------------<br />

+ -b,--backup                         Backups OM<br />

+<span style="margin-left: 50px;">-file &lt;arg&gt;                       (optional) file used for backup/restore/install</span><br />

+<span style="margin-left: 100px;">--exclude-files                (optional) should backup exclude files [default: include]</span><br />

+--------------------------------------------------------------------------------------------------<br />

+ -r,--restore                        Restores OM<br />

+<span style="margin-left: 50px;">-file &lt;arg&gt;                       file used for backup/restore/install</span><br />

+--------------------------------------------------------------------------------------------------<br />

+ -l,--languages                      Reimport All language files into DB<br />

+<span style="margin-left: 50px;">-lang,--language &lt;arg&gt;            (optional) Single language to be imported (id or name)</span><br />

+--------------------------------------------------------------------------------------------------<br />

+ -i,--install                        Fill DB table, and make OM usable<br />

+<span style="margin-left: 50px;">-user &lt;arg&gt;                       Login name of the default user, minimum 4 characters (mutually exclusive with 'file')</span><br />

+<span style="margin-left: 50px;">-group &lt;arg&gt;                      The name of the default user group (mutually exclusive with 'file')</span><br />

+<span style="margin-left: 50px;">-email &lt;arg&gt;                      Email of the default user (mutually exclusive with 'file')</span><br />

+<span style="margin-left: 50px;">-tz &lt;arg&gt;                         Default server time zone, and time zone for the selected user (mutually exclusive with 'file') file used for backup/restore/install</span><br />

+<span style="margin-left: 100px;">--email-auth-pass &lt;arg&gt;        (optional) Email auth password (anonymous connection will be used if not set)</span><br />

+<span style="margin-left: 100px;">--db-host &lt;arg&gt;                (optional) DNS name or IP address of database</span><br />

+<span style="margin-left: 100px;">--drop                         (optional) Drop database before installation</span><br />

+<span style="margin-left: 100px;">--db-user &lt;arg&gt;                (optional) User with write access to the DB specified</span><br />

+<span style="margin-left: 100px;">--system-email-address &lt;arg&gt;   (optional) System e-mail address [default: noreply@openmeetings.apache.org]</span><br />

+<span style="margin-left: 100px;">--password &lt;arg&gt;               (optional) Password of the default user, minimum 4 characters (will be prompted if not set)</span><br />

+<span style="margin-left: 100px;">--email-use-tls                (optional) Is secure e-mail connection [default: no]</span><br />

+<span style="margin-left: 100px;">--email-auth-user &lt;arg&gt;        (optional) Email auth username (anonymous connection will be used if not set)</span><br />

+<span style="margin-left: 100px;">--db-port &lt;arg&gt;                (optional) Database port</span><br />

+<span style="margin-left: 100px;">--smtp-port &lt;arg&gt;              (optional) SMTP server for outgoing e-mails [default: 25]</span><br />

+<span style="margin-left: 100px;">--db-name &lt;arg&gt;                (optional) The name of Openmeetings database</span><br />

+<span style="margin-left: 100px;">--disable-frontend-register    (optional) Do not allow front end register [allowed by default]</span><br />

+<span style="margin-left: 100px;">--db-type &lt;arg&gt;                (optional) The type of the DB to be used</span><br />

+<span style="margin-left: 100px;">--skip-default-rooms           (optional) Do not create default rooms [created by default]</span><br />

+<span style="margin-left: 100px;">--force                        (optional) Install without checking the existence of old data in the database.</span><br />

+<span style="margin-left: 100px;">--smtp-server &lt;arg&gt;            (optional) SMTP server for outgoing e-mails [default: localhost]</span><br />

+<span style="margin-left: 100px;">--db-pass &lt;arg&gt;                (optional) Password of the user with write access to the DB specified</span><br />

+--------------------------------------------------------------------------------------------------<br />

+ -f,--files                          File operations - statictics/cleanup<br />

+<span style="margin-left: 100px;">--cleanup                      (optional) Should intermediate files be clean up</span><br />

+--------------------------------------------------------------------------------------------------<br />

+				</div>

+			</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/ConferenceRoomLayoutOptions.html b/docs/ConferenceRoomLayoutOptions.html
new file mode 100644
index 0000000..50d531d
--- /dev/null
+++ b/docs/ConferenceRoomLayoutOptions.html
@@ -0,0 +1,483 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+            OpenMeetings Team
+        ">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Layout options for a conference room in OpenMeetings</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Layout options for conference rooms"><strong>Layout options for conference rooms</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>Each room has a number of attributes to generate different layouts.

+            You can change those values individually for each room in Administration &gt; Rooms

+            </p>
+                                                <p />
+                                                <table>
+                        <tr>
+                        <th bgcolor="#039acc" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         key 
+    </th>
+                                <th bgcolor="#039acc" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         default 
+    </th>
+                                <th bgcolor="#039acc" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         meaning 
+    </th>
+                                <th bgcolor="#039acc" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         availabe since OpenMeetings version 
+    </th>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         hideTopBar 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         false 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Hide the top bar with the menus and exit button 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         2.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         hideChat 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         false 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Hide the chat tab and use space for whiteboard 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         2.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         hideActivitiesAndActions 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         false 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Hide the activities window with the notofications aber user activities
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         2.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         hideFilesExplorer 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         false 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Hide the file explorer
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         2.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         hideActionsMenu 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         false 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Hide the menu with the actions
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         2.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         hideScreenSharing 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         false 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Hide the button to start screensharing/recording
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         2.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         hideWhiteboard 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         false 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Hide the whiteboard, if this option is true, the videos will be in the area of the whiteboard
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         2.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         showMicrophoneStatus 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         false 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Show the current status of the microphone (off/on) on the bottom of each video view
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         2.x 
+    </td>
+            </tr>
+            </table>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/ConfluencePlugin.html b/docs/ConfluencePlugin.html
new file mode 100644
index 0000000..870e2df
--- /dev/null
+++ b/docs/ConfluencePlugin.html
@@ -0,0 +1,399 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="eschwert@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Confluence Plugin</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Confluence Plugin for OpenMeetings"><strong>Confluence Plugin for OpenMeetings</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>				

+				Current Development Snapshots for testing can be downloaded from:

+				<a href="https://svn.apache.org/repos/asf/openmeetings/branches/confluence-plugin/target/openmeetingsconfluence-1.0-SNAPSHOT.jar">here</a>

+				.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Features"><strong>Features</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>The plugin contains the following features: </p>
+                                                <ul>

+				<li>Create videoconference rooms through Confluence: </li>

+				<li>

+					<ol>

+						<li>Integrated with Confluence content </li>										

+						<li>Configurable room type </li>

+					</ol>

+				</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Demo video"><strong>Demo video</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>The demo video of Confluence plugin show you the plugin in action </p>
+                                                <object style="height: 390px; width: 640px">

+			      <param name="movie" value="http://www.youtube.com/v/YFKlXggtld0?version=3&amp;feature=player_detailpage" />

+			      <param name="allowFullScreen" value="true" />

+			      <param name="allowScriptAccess" value="always" />

+			      <embed src="http://www.youtube.com/v/YFKlXggtld0?version=3&amp;feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360" />

+		      </object>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/CustomCryptMechanism.html b/docs/CustomCryptMechanism.html
new file mode 100644
index 0000000..65bcaed
--- /dev/null
+++ b/docs/CustomCryptMechanism.html
@@ -0,0 +1,436 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Howto create a Custom Crypt styles</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Configuration of Custom Crypt-Style"><strong>Configuration of Custom Crypt-Style</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				You can use custom Crypt-Types, but you should decide during

+				installation which Type of encryption you want to use. By default

+				two type are available:

+			</p>
+                                                <ul>

+				<li>org.xmlcrm.utils.crypt.MD5Implementation - this uses common MD5

+					Crypt like PHP does, this is the default one (results in something

+					like: fe01ce2a7fbac8fafaed7c982a04e229)</li>

+				<li>org.xmlcrm.utils.crypt.MD5CryptImplementation - does use

+					BSD-Style of encryption using a salt (results in something like:

+					$1$GMsj7F2I$5S3r9CeukXGXNwf6b4sph1)</li>

+			</ul>
+                                                <p>

+				You can edit the config-key during Installation or later in the

+				Administration Panel. But if you change it using the

+				Administration-Panel previous passwords might be not working anymore

+				as they are encrypted with another algorithm.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Configuration of Custom Crypt-Style"><strong>Configuration of Custom Crypt-Style</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				To add your own crypt style you need to write a class which

+				implements the interface: org.xmlcrm.utils.cryptCryptString

+				<br />

+				and extends the Adapter: org.xmlcrm.utils.CryptStringAdapter

+				<br />

+				Example of an Implementation:

+			</p>
+                                                <div class="xmlcode">

+				package org.xmlcrm.utils.crypt;

+				

+				import java.security.NoSuchAlgorithmException;

+				

+				public class MD5Implementation extends CryptStringAdapter implements CryptString {

+				

+				        @Override

+				        public String createPassPhrase(String userGivenPass) {

+				                String passPhrase = null;

+				                try {

+				                        passPhrase = MD5.do_checksum(userGivenPass);

+				                } catch (NoSuchAlgorithmException e) {

+				                        e.printStackTrace();

+				                }

+				                return passPhrase;

+				        }

+				

+				        @Override

+				        public Boolean verifyPassword(String passGiven, String passwdFromDb) {

+				                return (passwdFromDb.equals(createPassPhrase(passGiven)));

+				        }

+				        

+				}

+			</div>
+                                                <p>To add your own Encryption-Class you need to add your class to the

+				OpenMeetings-Webapp (make it available to the webapp-classpath) and

+				use your custom-class-name instead of

+				org.xmlcrm.utils.crypt.MD5Implementation during the Installation or

+				at runtime by editing the config-key crypt_ClassName</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Configuration of Custom Crypt-Style"><strong>Configuration of Custom Crypt-Style</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>credits goto Mika for sharing his Implementation of the

+				MD5Crypt-Style</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/CustomRoomTypeHowTo.html b/docs/CustomRoomTypeHowTo.html
new file mode 100644
index 0000000..1dc04b6
--- /dev/null
+++ b/docs/CustomRoomTypeHowTo.html
@@ -0,0 +1,443 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+            OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Howto create a custom room type in OpenMeetings</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Why creating a custom room type in OpenMeetings"><strong>Why creating a custom room type in OpenMeetings</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>If you want to create your own styled room the best thing to do in 

+            order to be "update-save" is to create your own custom room type. There is an empty configuration 

+				by default shipped with every release of OpenMeetings, the room type "custom" (ID = 5).<br />

+				<br />

+            You can use that and extend it, or you can add more room types to fit your use case.

+			</p>
+                                                <p />
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Create your own room type class (User Interface)"><strong>Create your own room type class (User Interface)</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>Lets start by creating your custom room type class.

+				<br />

+					You could for example duplicate an existing room class, from <br />

+					<tt>src/modules/conference/flexibleConferenceRoom</tt> folder, for example the 

+			flexibleConferenceRoom.lzx: Generate a duplicate, change the name, for example to 

+			myCustomConferenceRoom.lzx and edit the class name inside the file name="flexibleConferenceRoom" to

+			name="myCustomConferenceRoom". Also don't miss to add an entry to library.lzx so that the compiler 

+			will find your new class.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Create nesseccary entries in configuration tables"><strong>Create nesseccary entries in configuration tables</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>You first need to create a number of configuration files </p>
+                                                <ul>

+				<li>To have your roomtype available everytime you install OpenMeetings you need to add 

+					it to the default rooms: <tt>ImportInitvalues.java Method: loadDefaultRooms()</tt>. Add your entry here. 

+				You can choose any random name for the room. The ID is the important trigger for the room type 

+				to identify later. You need to run the installer so that your new room type is in the database.</li>

+				

+				<li>Add your room type in the default module configuration: 

+					<tt>src/base/moduleConfiguration.lzx</tt>, 

+				here you need to add a default class name for your room type </li>

+				

+				<li>Add your room type in the real configuration: public/config.xml, add a new entry.

+					<br />

+					You should fix also the file <tt>public/config.xsd</tt> that is the Schema file for the public/config.xml.

+				</li>

+        		

+				<li>Add a parser entry to modify the room type mapping: 

+					<tt>base/mainMethods.lzx method: myinit</tt>. You 

+        		can see some example parsing, you should add your one similar to the existing room types.</li>

+        		

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Link your room type config with your room type class "><strong>Link your room type config with your room type class </strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>Now you need to make sure that everytime the conference room is created 

+			your new class "myCustomConferenceRoom" is used. There are 3 places you need to add your mapping.</p>
+                                                <ul>

+				<li>In the global mapping: 

+					<tt>base/mainMethods.lzx method name="setRoomValues"</tt> 

+				</li>

+				<li>In file: 

+					<tt>modules/conference/conference/roomListItem.lzx method name="initRoom"</tt> 

+				</li>

+				<li>In file: 

+					<tt>modules/invitation/autoloaderBarOnly.lzx netRemoteCallHib name="setUsernameAndSession"</tt> 

+				</li>

+			</ul>
+                                                <p>Thats it. You can add/edit/delete your room with the new room type in the Administration &gt; Rooms interface of 

+			OpenMeetings like any other room.</p>
+                                                <p>If you need to have this room type available as option in the Calendar UI, you need to add it to the combobox manually.</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Dashboard.html b/docs/Dashboard.html
new file mode 100644
index 0000000..249cb2c
--- /dev/null
+++ b/docs/Dashboard.html
@@ -0,0 +1,438 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Changing Dashboard</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Changing Dashboard"><strong>Changing Dashboard</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>You can configure the tabs that are visible by default at bottom

+				of the dashboard. To edit the settings, login as admin and goto

+				Administration &gt; Configuration </p>
+                                                <p />
+                                                <table>
+                        <tr>
+                        <th bgcolor="#039acc" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Config-key 
+    </th>
+                                <th bgcolor="#039acc" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Values 
+    </th>
+                                <th bgcolor="#039acc" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Meaning 
+    </th>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         default.dashboard.tab 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         0,1,2 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Which tab should be shown by default, counting

+						starts with 0

+					
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         dashboard.show.myrooms 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         0 or 1 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         If the MyRooms tab should be visible or not 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         dashboard.show.chat 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         0 or 1 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         If the Chat tab should be visible or not 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         dashboard.show.rssfeed 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         0 or 1 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         If the RSS-Feed tab should be visible or not 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         rss_feed1 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         http-URL 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         ATOM-Feed URL for the dashboard RSS Tab 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         rss_feed2 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         http-URL 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         ATOM-Feed URL for the dashboard RSS Tab 
+    </td>
+            </tr>
+            </table>
+                                                <p />
+                                                <p>Changes are immediately online, no need to restart anything. </p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/DrupalPlugin.html b/docs/DrupalPlugin.html
new file mode 100644
index 0000000..3958d26
--- /dev/null
+++ b/docs/DrupalPlugin.html
@@ -0,0 +1,410 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Drupal Plugin</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Drupal Plugin for OpenMeetings"><strong>Drupal Plugin for OpenMeetings</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				Plugin for Drupal currently is not open source. 

+				Please contact <a href="commercial-support.html" target="_BLANK" rel="nofollow">Commercial Support</a> to get it. 

+				<br />

+				A demo version+video of the Drupal plugin is available at

+				<a href="http://drupal.openmeetings.de/" target="_BLANK" rel="nofollow">drupal.openmeetings.de</a>.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Installation of the Drupal Plugin for Apache OpenMeetings"><strong>Installation of the Drupal Plugin for Apache OpenMeetings</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				You simply download the ZIP or TAR package and unzip it to Drupal "mod" directory.

+				<br />

+				For a detailed description on how to install plugins in Drupal please review their 

+				<a href="http://drupal.org/documentation/install/modules-themes" target="_BLANK" rel="nofollow">handbook</a>.

+				<br />

+				Then you visit the module interface of Drupal, where you will find the new module.

+				You should switch it to "enabled" to get the "Configure" and "Permissions" buttons.

+			</p>
+                                                <a class="fancybox-buttons" href="images/drupal_module_installation.png">

+				<img src="images/drupal_module_installation.png" alt="" width="600" height="150" />

+			</a>
+                                                <p>

+				In the configuration you enter the auth data to access your Apache OpenMeetings server:

+			</p>
+                                                <a class="fancybox-buttons" href="images/drupal_module_configuration.png">

+				<img src="images/drupal_module_configuration.png" alt="" width="600" height="340" />

+			</a>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Adding a new conference room to Drupal"><strong>Adding a new conference room to Drupal</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				After installation of the plugin you can go to the front page in Drupal and add a new content item 

+				"OpenMeetings Rooms" =&gt; "Add New Room". You may find following configuration values for each 

+				conference room:

+			</p>
+                                                <a class="fancybox-buttons" href="images/drupal_room_configuration.png">

+				<img src="images/drupal_room_configuration.png" alt="" width="600" height="400" />

+			</a>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/EditTemplates.html b/docs/EditTemplates.html
new file mode 100644
index 0000000..ca572e0
--- /dev/null
+++ b/docs/EditTemplates.html
@@ -0,0 +1,396 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Edit Templates</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Changing Labels and text strings"><strong>Changing Labels and text strings</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				All language string should be localized and stored in the language

+				section. You have a full featured language editor with every

+				installation of OpenMeetings, check out the

+				<a href="LanguageEditor.html">LanguageEditor</a>

+				.

+			</p>
+                                                <p>

+				To lookup the labelids in the GUI you can simply run OpenMeetings

+				client with the debug enabled. That way every text-string has the

+				labelid in brackets additionally in the textfield. To start the

+				client in debug mode just add the param ?swf=maindebug.swf8.swf to

+				the URL. Example:

+				<a href="http://localhost:5080/openmeetings/?swf=maindebug.swf8.swf" rel="nofollow">http://localhost:5080/openmeetings/?swf=maindebug.swf8.swf</a>

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Changing layout, adding footers in emails"><strong>Changing layout, adding footers in emails</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>If you would like to change the standard email layout or add for

+				example some footer in every email you have to change the email

+				templates.

+			</p>
+                                                <p>To do that: Stop the Red5/OpenMeetings-Service Goto:

+				$Red5_HOME/webapps/openmeetings/WEB-INF/lib/openmeetings-templates.jar

+				Unzip: openmeetings-templates.jar (this is a usual ZIP file, you can

+				rename it to openmeetings-templates.zip unzip, edit the files, zip

+				it again and rename it to openmeetings-templates.jar)

+			</p>
+                                                <p>

+				In openmeetings-templates.jar there are all template files. They

+				have the file extension .vm (VM stands for velocity-template). After

+				you have done your changes you need to (re)start the

+				Red5/OpenMeetings

+				-Service so that changes are online.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/ErrorsTable.html b/docs/ErrorsTable.html
new file mode 100644
index 0000000..83d08b1
--- /dev/null
+++ b/docs/ErrorsTable.html
@@ -0,0 +1,978 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="Apache OpenMeetings Documentation Robot">
+            <meta name="email" content="solomax@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Openmeetings Errors table</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Openmeetings Errors table"><strong>Openmeetings Errors table</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <table>
+                        <tr>
+                        <th bgcolor="#039acc" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Code
+    </th>
+                                <th bgcolor="#039acc" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Type
+    </th>
+                                <th bgcolor="#039acc" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Description
+    </th>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -1
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Unknown error. Please report this to the administrator.
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -2
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Please enter either an email address or a user name
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -3
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        There is no user connected to this username
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -4
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Message
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        The email containing a special link has been sent to your email address
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -5
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        No user found
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -6
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        The passwords you entered weren't identical
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -7
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Password and or username too short, required minimum length for user name / password are:
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -8
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Message
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Password set. You can now login.
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -9
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        No such email address was found. Make sure you entered the same email address you used to create your account.
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -10
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Username not found
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -11
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Invalid password
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -12
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Message
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Successfully logged out
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -13
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Password and or login is too short
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -14
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Registration disabled
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -15
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        The username is already used
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -16
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        System error please contact the administrator
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -17
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        The mail address is already registered
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -18
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Your account has been created. You can now login.
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -19
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Invalid email address
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -20
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Duplicate file name, please enter another
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -21
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        File name too short
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -22
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Could not save the address
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -23
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Message
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        User added but you need to assign this user to an usergroup, otherwise they won't be able to log in
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -24
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        No field found for the ID
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -25
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        No label found
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -26
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Admin authorization required
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -27
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Invalid label ID
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -28
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Message
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        You have deleted the label
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -29
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Invalid label ID
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -30
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Message
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        This room is full
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -31
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        No invitation available for this invitation code
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -32
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        This invitation was already used
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -33
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        The invitation code is invalid
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -34
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Invalid password
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -35
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        This user is already a member of this usergroup
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -36
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        This method needs an adminstration account to be invoked
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -37
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        There was no session associated with this ID
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -38
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        You cannot delete your own user
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -39
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        This is an administrator or moderator account. You can only edit this account through the administration panel.
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -40
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Message
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        You have successfully signed up. An email with a verification code will be sent to your mailbox.
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -41
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Your account is not activated. Please use the link in the email you received during registration.
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -42
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        This session hash has already been used
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -43
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        You have to enter your password again to auto create the SIP data
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -44
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        This email is already used by another user.
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -45
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        This user is already in your contact list or has received an invitation to your contact list that is not answered yet.
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -46
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        The user is already denied.
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -47
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        The user is already approved.
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -48
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        This user contact hash is invalid.
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -49
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        There is no such contact.
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -50
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        You invitation code is not valid, the code is only valid during this specific date and time:
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -51
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Please enter a password
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -52
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        You need an account with user level user, moderator or admin
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -53
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Please enter email
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -54
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -55
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Please specify your timezone
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        -56
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Error
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Configuration with given key already exists, please specify another key or edit existent configuration
+    </td>
+            </tr>
+            </table>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/FFMPEGVersionSwitch.html b/docs/FFMPEGVersionSwitch.html
new file mode 100644
index 0000000..f65f039
--- /dev/null
+++ b/docs/FFMPEGVersionSwitch.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Howto switch between different versions of FFMPEG </title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Default Configuration"><strong>Default Configuration</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>FFMPEG has a change in its API (possibly since GIT revision

+				88bfe4518)

+			</p>
+                                                <p>Since Version 1.9.x of OpenMeetings: By default OpenMeetings

+				expects you to have a new version of FFMPEG on your OpenMeetings

+				server installed and it will use the new API style to communicate

+				with FFMPEG.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Switching to old FFMPEG API"><strong>Switching to old FFMPEG API</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				If you want to switch to the old style you can change that using the

+				config key:

+				<tt>use.old.style.ffmpeg.map.option</tt>

+			</p>
+                                                <p>

+				Set this value to

+				<tt>1</tt>

+				to have the old params in the API call to FFMPEG.

+			</p>
+                                                <p>References:  </p>
+                                                <ul>

+				<li>

+					<a href="http://ffmpeg-users.933282.n4.nabble.com/Invalid-stream-specifier-0-Stream-map-0-0-matches-no-streams-Changes-in-FFMPEG-map-option-td4091165.html" rel="nofollow">http://ffmpeg-users.933282.n4.nabble.com/Invalid-stream-specifier-0-Stream-map-0-0-matches-no-streams-Changes-in-FFMPEG-map-option-td4091165.html

+					</a>

+				</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/FileService.html b/docs/FileService.html
new file mode 100644
index 0000000..afdfd5d
--- /dev/null
+++ b/docs/FileService.html
@@ -0,0 +1,1559 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+          

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+-->

+

+    <!-- ====================================================================== -->

+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE TEMPLATE INSTEAD! -->

+    <!-- Main Page Section -->

+    <!-- ====================================================================== -->

+    

+     <html>

+        <head>

+		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>

+		<meta name="author" content="OpenMeetings Team">

+		<meta name="email" content="sebawagner@apache.org">

+		<title>OpenMeetings API Methods</title>

+		<link rel="stylesheet" type="text/css" href="openmeetings_docs.css">

+        </head>

+	<body>

+	

+		<h3>Available WebServices:</h3>

+	

+		<iframe src="WebserviceIndex.html" width="100%" height="210" name="WebserviceIndex.html"

+			scrolling="no" marginheight="0" marginwidth="0" frameborder="0">

+		  <p>Your Browser does not support frames ...</p>

+		</iframe>

+		

+		<hr />

+	

+	   <h3>WebService: FileService</h3>

+	   <p>Contains methods to import and upload files into the Files section of the
+ conference room and the personal drive of any user<p>

+	   <p>WSDL sample Url: <a href="http://localhost:5080/openmeetings/services/FileService?wsdl">http://localhost:5080/openmeetings/services/FileService?wsdl</a><p>

+	

+	<!-- Links to Methods -->

+	   <h3>Index of Methods available in FileService</h3>

+	   

+       <div class="navigation">

+	                               <div>

+                <a href="#importFile"><b>importFile</b></a><br/>

+                <div class="navigation_comment"><i >Import file from external source
+ 
+ to upload a file to a room-drive you specify: externalUserId, user if of
+ openmeetings user for which we upload the file room_id = openmeetings
+ room id isOwner = 0 parentFolderId = 0
+ 
+ to upload a file to a private-drive you specify: externalUserId, user if
+ of openmeetings user for which we upload the file room_id = openmeetings
+ room id isOwner = 1 parentFolderId = -2</i></div>

+                </div>

+                                               <div>

+                <a href="#importFileByInternalUserId"><b>importFileByInternalUserId</b></a><br/>

+                <div class="navigation_comment"><i >Import file from external source
+ 
+ to upload a file to a room-drive you specify: internalUserId, user if of
+ openmeetings user for which we upload the file room_id = openmeetings
+ room id isOwner = 0 parentFolderId = 0
+ 
+ to upload a file to a private-drive you specify: internalUserId, user if
+ of openmeetings user for which we upload the file room_id = openmeetings
+ room id isOwner = 1 parentFolderId = -2</i></div>

+                </div>

+                                               <div>

+                <a href="#addFolderByExternalUserIdAndType"><b>addFolderByExternalUserIdAndType</b></a><br/>

+                <div class="navigation_comment"><i >to add a folder to the private drive, set parentFileExplorerItemId = 0
+ and isOwner to 1/true and externalUserId/externalUserType to a valid user</i></div>

+                </div>

+                                               <div>

+                <a href="#addFolderByUserId"><b>addFolderByUserId</b></a><br/>

+                <div class="navigation_comment"><i >to add a folder to the private drive, set parentFileExplorerItemId = 0
+ and isOwner to 1/true and userId to a valid user</i></div>

+                </div>

+                                               <div>

+                <a href="#addFolderSelf"><b>addFolderSelf</b></a><br/>

+                <div class="navigation_comment"><i >Add a folder by the current user - similar to RTMP Call</i></div>

+                </div>

+                                               <div>

+                <a href="#deleteFileOrFolderByExternalIdAndType"><b>deleteFileOrFolderByExternalIdAndType</b></a><br/>

+                <div class="navigation_comment"><i >deletes a file by its external Id and type</i></div>

+                </div>

+                                               <div>

+                <a href="#deleteFileOrFolder"><b>deleteFileOrFolder</b></a><br/>

+                <div class="navigation_comment"><i >deletes files or folders based on it id</i></div>

+                </div>

+                                               <div>

+                <a href="#deleteFileOrFolderSelf"><b>deleteFileOrFolderSelf</b></a><br/>

+                <div class="navigation_comment"><i >deletes files or folders based on it id</i></div>

+                </div>

+                                               <div>

+                <a href="#getImportFileExtensions"><b>getImportFileExtensions</b></a><br/>

+                <div class="navigation_comment"><i >Get available import File Extension allowed during import</i></div>

+                </div>

+                                               <div>

+                <a href="#getPresentationPreviewFileExplorer"><b>getPresentationPreviewFileExplorer</b></a><br/>

+                <div class="navigation_comment"><i >Get a LibraryPresentation-Object for a certain file</i></div>

+                </div>

+                                               <div>

+                <a href="#getFileExplorerByRoom"><b>getFileExplorerByRoom</b></a><br/>

+                <div class="navigation_comment"><i >Get a File Explorer Object by a given Room and owner id</i></div>

+                </div>

+                                               <div>

+                <a href="#getFileExplorerByRoomSelf"><b>getFileExplorerByRoomSelf</b></a><br/>

+                <div class="navigation_comment"><i >Get a File Explorer Object by a given Room</i></div>

+                </div>

+                                               <div>

+                <a href="#getFileExplorerByParent"><b>getFileExplorerByParent</b></a><br/>

+                <div class="navigation_comment"><i >Get FileExplorerItem list by parent folder</i></div>

+                </div>

+                                               <div>

+                <a href="#getFileExplorerByParentSelf"><b>getFileExplorerByParentSelf</b></a><br/>

+                <div class="navigation_comment"><i >Get FileExplorerItem[] by parent and owner id</i></div>

+                </div>

+                                               <div>

+                <a href="#updateFileOrFolderName"><b>updateFileOrFolderName</b></a><br/>

+                <div class="navigation_comment"><i >update a file or folder name</i></div>

+                </div>

+                                               <div>

+                <a href="#updateFileOrFolderNameSelf"><b>updateFileOrFolderNameSelf</b></a><br/>

+                <div class="navigation_comment"><i >update a file or folder name</i></div>

+                </div>

+                                               <div>

+                <a href="#moveFile"><b>moveFile</b></a><br/>

+                <div class="navigation_comment"><i >move a file or folder</i></div>

+                </div>

+                                               <div>

+                <a href="#moveFileSelf"><b>moveFileSelf</b></a><br/>

+                <div class="navigation_comment"><i >move a file or folder</i></div>

+                </div>

+                           </div>

+	   

+	    <h3>Methods Details in FileService</h3>

+	

+				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="importFile" ><b>importFile</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>importFile (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String externalUserId

+    			       			    			       			     , 

+    			       			   Long externalFileId

+    			       			    			       			     , 

+    			       			   String externalType

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   boolean isOwner

+    			       			    			       			     , 

+    			       			   String path

+    			       			    			       			     , 

+    			       			   Long parentFolderId

+    			       			    			       			     , 

+    			       			   String fileSystemName

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Import file from external source
+ 
+ to upload a file to a room-drive you specify: externalUserId, user if of
+ openmeetings user for which we upload the file room_id = openmeetings
+ room id isOwner = 0 parentFolderId = 0
+ 
+ to upload a file to a private-drive you specify: externalUserId, user if
+ of openmeetings user for which we upload the file room_id = openmeetings
+ room id isOwner = 1 parentFolderId = -2

+    			</p>

+    			<p>

+                  Return Type: org.apache.openmeetings.util.process.FileImportError[]

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The logged in session id with minimum webservice level</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalUserId</td>

+	                     <td valign="top">the external user id =&gt; If the file should goto a private
+            section of any user, this number needs to be set</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">externalFileId</td>

+	                     <td valign="top">the external file-type to identify the file later</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalType</td>

+	                     <td valign="top">the name of the external system</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">the room Id, if the file goes to the private folder of an
+            user, you can set a random number here</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		boolean

+	                     		                     </td>

+	                     <td valign="top">isOwner</td>

+	                     <td valign="top">specify a 1/true AND parentFolderId==-2 to make the file goto
+            the private section</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">path</td>

+	                     <td valign="top">http-path where we can grab the file from, the file has to be
+            accessible from the OpenMeetings server</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">parentFolderId</td>

+	                     <td valign="top">specify a parentFolderId==-2 AND isOwner == 1/true AND to make
+            the file goto the private section</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">fileSystemName</td>

+	                     <td valign="top">the filename =&gt; Important WITH file extension!</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/FileService/importFile?SID=VALUE&externalUserId=VALUE&externalFileId=VALUE&externalType=VALUE&room_id=VALUE&isOwner=VALUE&path=VALUE&parentFolderId=VALUE&fileSystemName=VALUE">http://localhost:5080/openmeetings/services/FileService/importFile?SID=VALUE&amp;externalUserId=VALUE&amp;externalFileId=VALUE&amp;externalType=VALUE&amp;room_id=VALUE&amp;isOwner=VALUE&amp;path=VALUE&amp;parentFolderId=VALUE&amp;fileSystemName=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="importFileByInternalUserId" ><b>importFileByInternalUserId</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>importFileByInternalUserId (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long internalUserId

+    			       			    			       			     , 

+    			       			   Long externalFileId

+    			       			    			       			     , 

+    			       			   String externalType

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   boolean isOwner

+    			       			    			       			     , 

+    			       			   String path

+    			       			    			       			     , 

+    			       			   Long parentFolderId

+    			       			    			       			     , 

+    			       			   String fileSystemName

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Import file from external source
+ 
+ to upload a file to a room-drive you specify: internalUserId, user if of
+ openmeetings user for which we upload the file room_id = openmeetings
+ room id isOwner = 0 parentFolderId = 0
+ 
+ to upload a file to a private-drive you specify: internalUserId, user if
+ of openmeetings user for which we upload the file room_id = openmeetings
+ room id isOwner = 1 parentFolderId = -2

+    			</p>

+    			<p>

+                  Return Type: org.apache.openmeetings.util.process.FileImportError[]

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as logged in</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">internalUserId</td>

+	                     <td valign="top">the openmeetings user id =&gt; If the file should goto a private
+            section of any user, this number needs to be se</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">externalFileId</td>

+	                     <td valign="top">the external file-type to identify the file later</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalType</td>

+	                     <td valign="top">the name of the external system</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">the room Id, if the file goes to the private folder of an
+            user, you can set a random number here</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		boolean

+	                     		                     </td>

+	                     <td valign="top">isOwner</td>

+	                     <td valign="top">specify a 1/true AND parentFolderId==-2 to make the file goto
+            the private section</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">path</td>

+	                     <td valign="top">http-path where we can grab the file from, the file has to be
+            accessible from the OpenMeetings server</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">parentFolderId</td>

+	                     <td valign="top">specify a parentFolderId==-2 AND isOwner == 1/true AND to make
+            the file goto the private section</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">fileSystemName</td>

+	                     <td valign="top">the filename =&gt; Important WITH file extension!</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/FileService/importFileByInternalUserId?SID=VALUE&internalUserId=VALUE&externalFileId=VALUE&externalType=VALUE&room_id=VALUE&isOwner=VALUE&path=VALUE&parentFolderId=VALUE&fileSystemName=VALUE">http://localhost:5080/openmeetings/services/FileService/importFileByInternalUserId?SID=VALUE&amp;internalUserId=VALUE&amp;externalFileId=VALUE&amp;externalType=VALUE&amp;room_id=VALUE&amp;isOwner=VALUE&amp;path=VALUE&amp;parentFolderId=VALUE&amp;fileSystemName=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="addFolderByExternalUserIdAndType" ><b>addFolderByExternalUserIdAndType</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>addFolderByExternalUserIdAndType (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String externalUserId

+    			       			    			       			     , 

+    			       			   Long parentFileExplorerItemId

+    			       			    			       			     , 

+    			       			   String folderName

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   Boolean isOwner

+    			       			    			       			     , 

+    			       			   Long externalFilesid

+    			       			    			       			     , 

+    			       			   String externalType

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  to add a folder to the private drive, set parentFileExplorerItemId = 0
+ and isOwner to 1/true and externalUserId/externalUserType to a valid user

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as logged in</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalUserId</td>

+	                     <td valign="top">the external file-type to identify the file later</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">parentFileExplorerItemId</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">folderName</td>

+	                     <td valign="top">the name of the folder</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">the room Id, if the file goes to the private folder of an
+            user, you can set a random number here</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isOwner</td>

+	                     <td valign="top">specify a 1/true AND parentFolderId==-2 to make the file goto
+            the private section</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">externalFilesid</td>

+	                     <td valign="top">the external file-type to identify the file later</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalType</td>

+	                     <td valign="top">the name of the external system</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/FileService/addFolderByExternalUserIdAndType?SID=VALUE&externalUserId=VALUE&parentFileExplorerItemId=VALUE&folderName=VALUE&room_id=VALUE&isOwner=VALUE&externalFilesid=VALUE&externalType=VALUE">http://localhost:5080/openmeetings/services/FileService/addFolderByExternalUserIdAndType?SID=VALUE&amp;externalUserId=VALUE&amp;parentFileExplorerItemId=VALUE&amp;folderName=VALUE&amp;room_id=VALUE&amp;isOwner=VALUE&amp;externalFilesid=VALUE&amp;externalType=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="addFolderByUserId" ><b>addFolderByUserId</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>addFolderByUserId (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long userId

+    			       			    			       			     , 

+    			       			   Long parentFileExplorerItemId

+    			       			    			       			     , 

+    			       			   String folderName

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   Boolean isOwner

+    			       			    			       			     , 

+    			       			   Long externalFilesid

+    			       			    			       			     , 

+    			       			   String externalType

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  to add a folder to the private drive, set parentFileExplorerItemId = 0
+ and isOwner to 1/true and userId to a valid user

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as logged in</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">userId</td>

+	                     <td valign="top">the openmeetings user id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">parentFileExplorerItemId</td>

+	                     <td valign="top">specify a parentFolderId==-2 AND isOwner == 1/true AND to make the file goto the private section</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">folderName</td>

+	                     <td valign="top">the name of the folder</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">the room Id, if the file goes to the private folder of an user, you can set a random number here</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isOwner</td>

+	                     <td valign="top">specify a 1/true AND parentFolderId==-2 to make the file goto the private section</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">externalFilesid</td>

+	                     <td valign="top">the external file-type to identify the file later</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalType</td>

+	                     <td valign="top">the name of the external system</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/FileService/addFolderByUserId?SID=VALUE&userId=VALUE&parentFileExplorerItemId=VALUE&folderName=VALUE&room_id=VALUE&isOwner=VALUE&externalFilesid=VALUE&externalType=VALUE">http://localhost:5080/openmeetings/services/FileService/addFolderByUserId?SID=VALUE&amp;userId=VALUE&amp;parentFileExplorerItemId=VALUE&amp;folderName=VALUE&amp;room_id=VALUE&amp;isOwner=VALUE&amp;externalFilesid=VALUE&amp;externalType=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="addFolderSelf" ><b>addFolderSelf</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>addFolderSelf (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long parentFileExplorerItemId

+    			       			    			       			     , 

+    			       			   String fileName

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   Boolean isOwner

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Add a folder by the current user - similar to RTMP Call

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as logged in</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">parentFileExplorerItemId</td>

+	                     <td valign="top">parent folder id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">fileName</td>

+	                     <td valign="top">the file name</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">the room id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isOwner</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/FileService/addFolderSelf?SID=VALUE&parentFileExplorerItemId=VALUE&fileName=VALUE&room_id=VALUE&isOwner=VALUE">http://localhost:5080/openmeetings/services/FileService/addFolderSelf?SID=VALUE&amp;parentFileExplorerItemId=VALUE&amp;fileName=VALUE&amp;room_id=VALUE&amp;isOwner=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="deleteFileOrFolderByExternalIdAndType" ><b>deleteFileOrFolderByExternalIdAndType</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>deleteFileOrFolderByExternalIdAndType (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long externalFilesid

+    			       			    			       			     , 

+    			       			   String externalType

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  deletes a file by its external Id and type

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as logged in</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">externalFilesid</td>

+	                     <td valign="top">the od of the file or folder</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalType</td>

+	                     <td valign="top">the externalType</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/FileService/deleteFileOrFolderByExternalIdAndType?SID=VALUE&externalFilesid=VALUE&externalType=VALUE">http://localhost:5080/openmeetings/services/FileService/deleteFileOrFolderByExternalIdAndType?SID=VALUE&amp;externalFilesid=VALUE&amp;externalType=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="deleteFileOrFolder" ><b>deleteFileOrFolder</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>deleteFileOrFolder (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long fileExplorerItemId

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  deletes files or folders based on it id

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as logged in</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">fileExplorerItemId</td>

+	                     <td valign="top">the id of the file or folder</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/FileService/deleteFileOrFolder?SID=VALUE&fileExplorerItemId=VALUE">http://localhost:5080/openmeetings/services/FileService/deleteFileOrFolder?SID=VALUE&amp;fileExplorerItemId=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="deleteFileOrFolderSelf" ><b>deleteFileOrFolderSelf</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>deleteFileOrFolderSelf (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long fileExplorerItemId

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  deletes files or folders based on it id

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as logged in</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">fileExplorerItemId</td>

+	                     <td valign="top">the id of the file or folder</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/FileService/deleteFileOrFolderSelf?SID=VALUE&fileExplorerItemId=VALUE">http://localhost:5080/openmeetings/services/FileService/deleteFileOrFolderSelf?SID=VALUE&amp;fileExplorerItemId=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getImportFileExtensions" ><b>getImportFileExtensions</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getImportFileExtensions (

+    			    			    			)

+    			</i><br/>

+    			<p>

+    			  Get available import File Extension allowed during import

+    			</p>

+    			<p>

+                  Return Type: java.lang.String[]

+                </p>

+    			<p>Params:</p>

+    			    			

+    			    				<i>No Params</i>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    							<a href="http://localhost:5080/openmeetings/services/FileService/getImportFileExtensions">http://localhost:5080/openmeetings/services/FileService/getImportFileExtensions</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getPresentationPreviewFileExplorer" ><b>getPresentationPreviewFileExplorer</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getPresentationPreviewFileExplorer (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String parentFolder

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Get a LibraryPresentation-Object for a certain file

+    			</p>

+    			<p>

+                  Return Type: org.apache.openmeetings.db.dto.file.LibraryPresentation

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">parentFolder</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/FileService/getPresentationPreviewFileExplorer?SID=VALUE&parentFolder=VALUE">http://localhost:5080/openmeetings/services/FileService/getPresentationPreviewFileExplorer?SID=VALUE&amp;parentFolder=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getFileExplorerByRoom" ><b>getFileExplorerByRoom</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getFileExplorerByRoom (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   Long owner_id

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Get a File Explorer Object by a given Room and owner id

+    			</p>

+    			<p>

+                  Return Type: org.apache.openmeetings.db.dto.file.FileExplorerObject

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as logged in</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">Room id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">owner_id</td>

+	                     <td valign="top">Owner id</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/FileService/getFileExplorerByRoom?SID=VALUE&room_id=VALUE&owner_id=VALUE">http://localhost:5080/openmeetings/services/FileService/getFileExplorerByRoom?SID=VALUE&amp;room_id=VALUE&amp;owner_id=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getFileExplorerByRoomSelf" ><b>getFileExplorerByRoomSelf</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getFileExplorerByRoomSelf (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Get a File Explorer Object by a given Room

+    			</p>

+    			<p>

+                  Return Type: org.apache.openmeetings.db.dto.file.FileExplorerObject

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as logged in</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">Room Id</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/FileService/getFileExplorerByRoomSelf?SID=VALUE&room_id=VALUE">http://localhost:5080/openmeetings/services/FileService/getFileExplorerByRoomSelf?SID=VALUE&amp;room_id=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getFileExplorerByParent" ><b>getFileExplorerByParent</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getFileExplorerByParent (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long parentFileExplorerItemId

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   Boolean isOwner

+    			       			    			       			     , 

+    			       			   Long owner_id

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Get FileExplorerItem list by parent folder

+    			</p>

+    			<p>

+                  Return Type: org.apache.openmeetings.db.entity.file.FileExplorerItem[]

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as logged in</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">parentFileExplorerItemId</td>

+	                     <td valign="top">the parent folder id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">the room id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isOwner</td>

+	                     <td valign="top">true if its a private drive</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">owner_id</td>

+	                     <td valign="top">the owner id</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/FileService/getFileExplorerByParent?SID=VALUE&parentFileExplorerItemId=VALUE&room_id=VALUE&isOwner=VALUE&owner_id=VALUE">http://localhost:5080/openmeetings/services/FileService/getFileExplorerByParent?SID=VALUE&amp;parentFileExplorerItemId=VALUE&amp;room_id=VALUE&amp;isOwner=VALUE&amp;owner_id=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getFileExplorerByParentSelf" ><b>getFileExplorerByParentSelf</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getFileExplorerByParentSelf (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long parentFileExplorerItemId

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   Boolean isOwner

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Get FileExplorerItem[] by parent and owner id

+    			</p>

+    			<p>

+                  Return Type: org.apache.openmeetings.db.entity.file.FileExplorerItem[]

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">SID The SID of the User. This SID must be marked as logged in</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">parentFileExplorerItemId</td>

+	                     <td valign="top">the parent folder id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">the room id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isOwner</td>

+	                     <td valign="top">true to request private drive</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/FileService/getFileExplorerByParentSelf?SID=VALUE&parentFileExplorerItemId=VALUE&room_id=VALUE&isOwner=VALUE">http://localhost:5080/openmeetings/services/FileService/getFileExplorerByParentSelf?SID=VALUE&amp;parentFileExplorerItemId=VALUE&amp;room_id=VALUE&amp;isOwner=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="updateFileOrFolderName" ><b>updateFileOrFolderName</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>updateFileOrFolderName (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long fileExplorerItemId

+    			       			    			       			     , 

+    			       			   String fileName

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  update a file or folder name

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">SID The SID of the User. This SID must be marked as logged in</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">fileExplorerItemId</td>

+	                     <td valign="top">file or folder id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">fileName</td>

+	                     <td valign="top">new file or folder name</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/FileService/updateFileOrFolderName?SID=VALUE&fileExplorerItemId=VALUE&fileName=VALUE">http://localhost:5080/openmeetings/services/FileService/updateFileOrFolderName?SID=VALUE&amp;fileExplorerItemId=VALUE&amp;fileName=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="updateFileOrFolderNameSelf" ><b>updateFileOrFolderNameSelf</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>updateFileOrFolderNameSelf (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long fileExplorerItemId

+    			       			    			       			     , 

+    			       			   String fileName

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  update a file or folder name

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">SID The SID of the User. This SID must be marked as logged in</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">fileExplorerItemId</td>

+	                     <td valign="top">file or folder id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">fileName</td>

+	                     <td valign="top">new file or folder name</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/FileService/updateFileOrFolderNameSelf?SID=VALUE&fileExplorerItemId=VALUE&fileName=VALUE">http://localhost:5080/openmeetings/services/FileService/updateFileOrFolderNameSelf?SID=VALUE&amp;fileExplorerItemId=VALUE&amp;fileName=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="moveFile" ><b>moveFile</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>moveFile (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long fileExplorerItemId

+    			       			    			       			     , 

+    			       			   Long newParentFileExplorerItemId

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   Boolean isOwner

+    			       			    			       			     , 

+    			       			   Boolean moveToHome

+    			       			    			       			     , 

+    			       			   Long owner_id

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  move a file or folder

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">SID The SID of the User. This SID must be marked as logged in</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">fileExplorerItemId</td>

+	                     <td valign="top">current file or folder id to be moved</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">newParentFileExplorerItemId</td>

+	                     <td valign="top">new parent folder id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">room id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isOwner</td>

+	                     <td valign="top">if true owner id will be set</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">moveToHome</td>

+	                     <td valign="top">if true move to private drive</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">owner_id</td>

+	                     <td valign="top">owner id</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/FileService/moveFile?SID=VALUE&fileExplorerItemId=VALUE&newParentFileExplorerItemId=VALUE&room_id=VALUE&isOwner=VALUE&moveToHome=VALUE&owner_id=VALUE">http://localhost:5080/openmeetings/services/FileService/moveFile?SID=VALUE&amp;fileExplorerItemId=VALUE&amp;newParentFileExplorerItemId=VALUE&amp;room_id=VALUE&amp;isOwner=VALUE&amp;moveToHome=VALUE&amp;owner_id=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="moveFileSelf" ><b>moveFileSelf</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>moveFileSelf (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long fileExplorerItemId

+    			       			    			       			     , 

+    			       			   Long newParentFileExplorerItemId

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   Boolean isOwner

+    			       			    			       			     , 

+    			       			   Boolean moveToHome

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  move a file or folder

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">SID The SID of the User. This SID must be marked as logged in</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">fileExplorerItemId</td>

+	                     <td valign="top">current file or folder id to be moved</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">newParentFileExplorerItemId</td>

+	                     <td valign="top">new parent folder id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">room id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isOwner</td>

+	                     <td valign="top">if true owner id will be set</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">moveToHome</td>

+	                     <td valign="top">move to private drive</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/FileService/moveFileSelf?SID=VALUE&fileExplorerItemId=VALUE&newParentFileExplorerItemId=VALUE&room_id=VALUE&isOwner=VALUE&moveToHome=VALUE">http://localhost:5080/openmeetings/services/FileService/moveFileSelf?SID=VALUE&amp;fileExplorerItemId=VALUE&amp;newParentFileExplorerItemId=VALUE&amp;room_id=VALUE&amp;isOwner=VALUE&amp;moveToHome=VALUE</a>

+    		  </div>

+    	   			

+	

+	</body>

+</html>

+

diff --git a/docs/GeneralConfiguration.html b/docs/GeneralConfiguration.html
new file mode 100644
index 0000000..1b6401a
--- /dev/null
+++ b/docs/GeneralConfiguration.html
@@ -0,0 +1,672 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - List of general configuration options</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="List of general configuration options"><strong>List of general configuration options</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <style><!--
+				.configCell {
+					border: 1px solid rgb(204, 204, 204);
+					padding: 5px;
+				}
+			--></style>
+                                                <p>In Administration &gt; Configuration there are a number of

+				configuration values.

+			</p>
+                                                <p />
+                                                <table>
+                        <tr>
+                        <th bgcolor="#039acc" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         key 
+    </th>
+                                <th bgcolor="#039acc" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         default 
+    </th>
+                                <th bgcolor="#039acc" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         meaning 
+    </th>
+                                <th bgcolor="#039acc" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         availabe since OpenMeetings version 
+    </th>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         user.login.minimum.length 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         4 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         minimum chars required for the login to create a user 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         1.9.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         user.pass.minimum.length 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         4 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         minimum chars required for the password to create a

+						user

+					
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         1.9.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         number.minutes.reminder.send 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         15 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         minutes the one-time reminder in the calender is

+						send, set to 0 to disable reminder

+					
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         1.9.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         max_upload_size 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         1073741824 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Maximum size of upload file (bytes) 1073741824 bytes

+						= 1GB

+					
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         1.8.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         show.whiteboard.draw.status 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         0 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Display name of the user who draw the current object

+						(User Name auto-disapper after 3 seconds.

+					
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         1.8.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         use.old.style.ffmpeg.map.option 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         0 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         If the system should "." (old ffmpeg) instead of ":"

+						(new ffmpeg) for the -map option in FFMPEG

+					
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         1.9.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         inviter.email.as.replyto 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         1 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Set inviter's email address as ReplyTo in email invitations (1 == set, 0 == NOT set)	
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         2.0.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         office.path 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         The path to OpenOffice/LibreOffice (optional) please set this to the real path in case jodconverter is unable to find OpenOffice/LibreOffice installation automatically	
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         2.0.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         default.landing.zone 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         user/dashboard 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Area to be shown to the user after login. Possible values are: user/dashboard, user/calendar, user/record, rooms/my, rooms/group, rooms/public, admin/user, admin/connection

+						, admin/group, admin/room, admin/config, admin/lang, admin/ldap, admin/backup, admin/server, admin/oauth2 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         2.1.x, <b> values are changed in 3.0.0</b> 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         sms.provider 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+          
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         SMS service provider (bulksms.http.1) 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         2.1.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         sms.Username 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+          
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Login for SMS service provider 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         2.1.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         sms.Userpass 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+          
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Password for SMS service provider 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         2.1.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         sms.subject 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+          
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Subject of SMS reminder message 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         2.1.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         swftools_zoom 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         100 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         DPI for conversion of PDF to SWF (should be an integer between 50 and  600 with a default value of 100 DPI) 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         2.0.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         swftools_jpegquality 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         85 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Compression quality for conversion of PDF to SWF (should be an integer between 1 and 100, with a default value of 85) 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         2.0.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         sendEmailAtRegister 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         0 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         User get a EMail with their Account data. Values: 0(No) or 1(Yes) 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         2.0.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         sendEmailWithVerficationCode 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         0 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         User must activate their account by clicking on the 

+								activation-link in the registering Email. Values: 0(No) or 1(Yes) 

+								It makes no sense to make this(sendEmailWithVerficationCode) 1(Yes) while 

+								sendEmailAtRegister is 0(No) cause you need

+								to send a EMail. 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         2.0.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         redirect.url.for.external.users 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+          
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Users entered the room via invitationHash or secureHash will be redirected to this URL on connection lost 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         2.2.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         allow_frontend_register 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         (configurable during install) 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Is user register available on login screen 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         1.8.x 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         allow.soap.register 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         1 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Is user register available via SOAP/REST 
+    </td>
+                                <td bgcolor="#a0ddf0" class="configCell" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         3.0.x 
+    </td>
+            </tr>
+            </table>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/GetVersionInfo.html b/docs/GetVersionInfo.html
new file mode 100644
index 0000000..1f094bb
--- /dev/null
+++ b/docs/GetVersionInfo.html
@@ -0,0 +1,421 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - How to check which Openmeetings version running</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="How to check which Openmeetings version running (3.0.0 - )"><strong>How to check which Openmeetings version running (3.0.0 - )</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>Use Top Menu -&gt; About</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="How to check which Openmeetings version running (2.1.1 - )"><strong>How to check which Openmeetings version running (2.1.1 - )</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>The version is printed into openmeetings.log file</p>
+                                                <p>

+				Run openmeetings<br />

+				Open OM_HOME/log/openmeetings.log

+			</p>
+                                                <p>You get something like this: </p>
+                                                <div class="xmlcode"><pre>

+	##################################################

+	#               Openmeetings is up               #

+	#       2.1.1-RELEASE 1490720 7-June-2013        #

+	#                and ready to use                #

+	##################################################

+			</pre></div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="How to check which Openmeetings version running (1.8.0 - 2.1.0)"><strong>How to check which Openmeetings version running (1.8.0 - 2.1.0)</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>If you need to know what version of OpenMeetings you are running,

+				you can check that by the file: openmeetings-*.jar

+			</p>
+                                                <p>

+				Unzip: /webapps/openmeetings/WEB-INF/lib/openmeetings-*.jar (jars are

+				zips)

+				<br />

+				<br />

+				In the resulting unzipped folder open the file to read:

+				/META-INF/MANIFEST.MF

+			</p>
+                                                <p>You get something like this: </p>
+                                                <div class="xmlcode">

+				Manifest-Version: 1.0

+				<br />

+				Ant-Version: Apache Ant 1.8.2

+				<br />

+				Created-By: 1.6.0_26-b03-383-11A511 (Apple Inc.)

+				<br />

+				Built-By: OpenMeetings - http://openmeetings.googlecode.com

+				<br />

+				Built-On: 23-October-2011

+				<br />

+				Svn-Revision: 4368

+				<br />

+			</div>
+                                                <p>This version info is available since version 1.8.0. If you have an

+				older version as version 1.8.0 then you might simply check the

+				language files and the labelid in there, the numbers of labels are

+				almost always unique in the versions. </p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/HotKeys.html b/docs/HotKeys.html
new file mode 100644
index 0000000..0af766f
--- /dev/null
+++ b/docs/HotKeys.html
@@ -0,0 +1,411 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="solomax@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Hot Keys</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Keys table"><strong>Keys table</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <table>
+                        <tr>
+                        <th bgcolor="#039acc" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Key
+    </th>
+                                <th bgcolor="#039acc" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Functionality
+    </th>
+                                <th bgcolor="#039acc" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Configurable
+    </th>
+                                <th bgcolor="#039acc" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Config Key
+    </th>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        F12 (code 123)
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        A hot key code for the 'give exclusive audio' functionality.
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Yes
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        exclusive.audio.keycode
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        F8 (code 119)
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        If 1 or 2 video windows are present in the room they will be

+						"rearranged" to take all the place available
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        No
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        

+					
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        F7 (code 118)
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        A hot key code for the 'mute/unmute audio' functionality.
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Yes
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        mute.keycode
+    </td>
+            </tr>
+            </table>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/IBMDB2Config.html b/docs/IBMDB2Config.html
new file mode 100644
index 0000000..488f56e
--- /dev/null
+++ b/docs/IBMDB2Config.html
@@ -0,0 +1,440 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			Apache OpenMeetings Documentation Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - IBM DB2 Configuration</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="IBM DB2 Configuration"><strong>IBM DB2 Configuration</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                        <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Before you start"><strong>Before you start</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <i>Tested with IBM DB2 Express-C 9.7.x</i>
+                                                <ul>

+					<li>

+						Get the IBM Data Server Driver for JDBC and SQLJ from IBM website:

+						<a href="https://www14.software.ibm.com/webapp/iwm/web/preLogin.do?source=swg-idsdjs">https://www14.software.ibm.com/webapp/iwm/web/preLogin.do?source=swg-idsdjs

+						</a>

+					</li>

+					<li>Copy JDBC driver db2jcc4.jar to

+						webapps/openmeetings/WEB-INF/lib/

+					</li>

+					<li>

+						Create database for OpenMeetings using a pagesize bigger or equal

+						8K, sample query:

+						<br />

+						<div class="xmlcode">

+							CREATE DATABASE openmeet AUTOMATIC STORAGE YES ON 'C:' DBPATH ON 'C:'

+							USING CODESET UTF-8 TERRITORY DE COLLATE USING System PAGESIZE 16

+							K

+						</div>

+					</li>

+					<li>If you encounter issues, you can drop the db again and delete

+						the file $red5/webapps/openmeetings/conf/install.xml and then run

+						the web based installer again </li>

+				</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Steps todo"><strong>Steps todo</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+					<li>

+						Rename:

+						<br />

+						$red5/webapps/openmeetings/WEB-INF/classes/META-INF/db2_persistence.xml

+						<br />

+						to

+						<br />

+						$red5/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

+					</li>

+					<li>

+						Prepare Database Settings - go to

+						openmeetings_version_no_xx/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

+						<br />

+						Alter config values in persistence.xml connectionURL, username and

+						password with your values

+					</li>

+					<li>

+						Run red5-service and goto the web-based installer:

+						http://localhost:5080/openmeetings/install

+					</li>

+				</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="DB2 Sample Configuration"><strong>DB2 Sample Configuration</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+					There is a sample configuration for IBM DB2 that ships with

+					every

+					release in:

+					<br />

+					/webapps/openmeetings/WEB-INF/classes/META-INF/db2_persistence.xml

+				</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Internationalisation.html b/docs/Internationalisation.html
new file mode 100644
index 0000000..c48b6f5
--- /dev/null
+++ b/docs/Internationalisation.html
@@ -0,0 +1,404 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Upgrade</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Where to find language files"><strong>Where to find language files</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>You can find all current language files here: </p>
+                                                <p>

+				<a href="https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/src/main/webapp/languages/" rel="nofollow">https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/src/main/webapp/languages/

+				</a>

+			</p>
+                                                <p>Just take one file and translate it to your language. </p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Import and export of Language Files"><strong>Import and export of Language Files</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+				<li>

+					Use the

+					<a href="LanguageEditor.html">LanguageEditor</a>

+					for translation

+				</li>

+				<li>

+					with the

+					<a href="LanguageEditor.html">LanguageEditor</a>

+					you can import and export Language Files

+				</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="How to add it as installation option"><strong>How to add it as installation option</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				Once you have finished the translation you can add a new node to:

+				<a href="https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/src/main/webapp/languages/languages.xml" rel="nofollow">https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/src/main/webapp/languages/languages.xml

+				</a>

+			</p>
+                                                <p>the name of the language should match the name of the file. Once

+				this is done the Language file will automatically be imported during

+				installation and will be an option at login.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/JUnitTesting.html b/docs/JUnitTesting.html
new file mode 100644
index 0000000..de1cce7
--- /dev/null
+++ b/docs/JUnitTesting.html
@@ -0,0 +1,446 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - JUnit Testing</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Introduction"><strong>Introduction</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				Automatic tests are the significant part of development process.

+				Below is the instruction of how to run Openmeetings

+				<a href="http://junit.org" rel="nofollow">JUnit</a>

+				tests.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Details"><strong>Details</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ol>

+				<li>running tests using command line: </li>

+				<li>

+					<ul>

+						<li>all tests:

+							<div class="xmlcode">

+								ant test

+							</div>

+						</li>

+						<li>subset of tests by mask:

+							<div class="xmlcode">

+								ant -Dtestcases=TestError* test

+							</div>

+						</li>

+					</ul>

+				</li>

+				<li>running tests from Eclipse IDE: </li>

+				<li>

+					<ul>

+						<li>

+							<div class="xmlcode">

+								ant -Ddb=&lt;your_DB&gt; prepare-eclipse

+							</div>

+						</li>

+						<li>Start Eclipse </li>

+						<li>Load workspace with Openmeetings project (or refresh existing

+							project)

+						</li>

+						<li>Select "Debug Configurations..." </li>

+					</ul>

+				</li>

+			</ol>
+                                                <p>

+				<a class="fancybox-buttons" href="images/DebugConfigurations.png">

+					<img src="images/DebugConfigurations.png" alt="" width="367" height="262" />

+				</a>

+			</p>
+                                                <ul>

+				<li>Create New Junit configuration, give it a name and select test

+					class

+				</li>

+			</ul>
+                                                <p>

+				<a class="fancybox-buttons" href="images/NewConfiguration.png">

+					<img src="images/NewConfiguration.png" alt="" width="420" height="206" />

+				</a>

+			</p>
+                                                <ul>

+				<li>Select Arguments tab </li>

+				<li>Add the following code to the VM section

+					<div class="xmlcode">

+						-javaagent:${workspace_loc:Openmeetings}/build/lib/om/openjpa-bundle-2.2.2.jar

+						-Dom.home=${workspace_loc:Openmeetings}/src/main/webapp

+						-Dbackups.dir=${workspace_loc:Openmeetings}/build/lib/junit/backups

+					</div>

+				</li>

+				<li>To avoid temporary files being created in OM root, modify

+					"Working Directory" as follows

+					<div class="xmlcode">${workspace_loc:Openmeetings}/build/junit</div>

+				</li>

+			</ul>
+                                                <p>

+				<a class="fancybox-buttons" href="images/Arguments.png">

+					<img src="images/Arguments.png" alt="" width="435" height="410" />

+				</a>

+			</p>
+                                                <ul>

+				<li>Select Debug </li>

+

+			</ul>
+                                                <ul>

+				<li>Note: You need a file called "persistence.xml" in src/META-INF

+					if you run the JUnit test from inside Eclipse. Normally "ant

+					prepare-eclipse" should do that for you. </li>

+

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/JVMPerformanceTuning.html b/docs/JVMPerformanceTuning.html
new file mode 100644
index 0000000..80b3cee
--- /dev/null
+++ b/docs/JVMPerformanceTuning.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Performance Tuning</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Performance Tuning"><strong>Performance Tuning</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>To use the optimum of performance from your server there is a

+				start-script for red5 available that does some basic settings in the

+				JVM. It is called red5-highperf.sh. It is recommended to use that

+				script for production and high-load scenarios.

+			</p>
+                                                <div class="xmlcode">

+				#!/bin/bash

+				<br />

+				<br />

+				if [ -z "$RED5_HOME" ]; then export RED5_HOME=.; fi

+				<br />

+				<br />

+				# Previous option set

+				<br />

+				export JAVA_OPTS="-Xrs -Xms512M -Xmx1024M -Xss128K -XX:NewSize=256m

+				-XX:SurvivorRatio=16 -XX:MinHeapFreeRatio=20

+				-XX:+ExplicitGCInvokesConcurrent -Djava.net.preferIPv4Stack=true

+				-Xverify:none"

+				<br />

+				<br />

+				# start Red5

+				<br />

+				echo "Setting Hi Performance Options"

+				<br />

+				exec $RED5_HOME/red5.sh &gt;&gt; $RED5_HOME/log/jvm.stdout 2&gt;&amp;1 &amp;

+				<br />

+			</div>
+                                                <p>You have to exclude the "-XX:+UseConcMarkSweepGC" param from the

+				default red5-highperf.sh to make it functional! However if you are a

+				performance expert you might also play with the values to find

+				perfect matches for your use-case.

+			</p>
+                                                <p>

+				For a complete overview about possible arguments and their meaning

+				see:

+				<a href="http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html#PerformanceTuning" rel="nofollow">http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html#PerformanceTuning

+				</a>

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/JabberService.html b/docs/JabberService.html
new file mode 100644
index 0000000..cb3d9c9
--- /dev/null
+++ b/docs/JabberService.html
@@ -0,0 +1,235 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+          

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+-->

+

+    <!-- ====================================================================== -->

+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE TEMPLATE INSTEAD! -->

+    <!-- Main Page Section -->

+    <!-- ====================================================================== -->

+    

+     <html>

+        <head>

+		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>

+		<meta name="author" content="OpenMeetings Team">

+		<meta name="email" content="sebawagner@apache.org">

+		<title>OpenMeetings API Methods</title>

+		<link rel="stylesheet" type="text/css" href="openmeetings_docs.css">

+        </head>

+	<body>

+	

+		<h3>Available WebServices:</h3>

+	

+		<iframe src="WebserviceIndex.html" width="100%" height="210" name="WebserviceIndex.html"

+			scrolling="no" marginheight="0" marginwidth="0" frameborder="0">

+		  <p>Your Browser does not support frames ...</p>

+		</iframe>

+		

+		<hr />

+	

+	   <h3>WebService: JabberService</h3>

+	   <p>This class provides method implementations necessary for OM to Jabber integration.<p>

+	   <p>WSDL sample Url: <a href="http://localhost:5080/openmeetings/services/JabberService?wsdl">http://localhost:5080/openmeetings/services/JabberService?wsdl</a><p>

+	

+	<!-- Links to Methods -->

+	   <h3>Index of Methods available in JabberService</h3>

+	   

+       <div class="navigation">

+	                               <div>

+                <a href="#getAvailableRooms"><b>getAvailableRooms</b></a><br/>

+                <div class="navigation_comment"><i >Get List&lt;RoomDTO&gt; of all rooms available to the user.
+ No admin rights are necessary for this call</i></div>

+                </div>

+                                               <div>

+                <a href="#getUserCount"><b>getUserCount</b></a><br/>

+                <div class="navigation_comment"><i >Returns the count of users currently in the Room with given id
+ No admin rights are necessary for this call</i></div>

+                </div>

+                                               <div>

+                <a href="#getInvitationHash"><b>getInvitationHash</b></a><br/>

+                <div class="navigation_comment"><i >Get invitation hash for the room with given id
+ No admin rights are necessary for this call</i></div>

+                </div>

+                           </div>

+	   

+	    <h3>Methods Details in JabberService</h3>

+	

+				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getAvailableRooms" ><b>getAvailableRooms</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getAvailableRooms (

+    			    			    			       			   String SID

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Get List&lt;RoomDTO&gt; of all rooms available to the user.
+ No admin rights are necessary for this call

+    			</p>

+    			<p>

+                  Return Type: java.util.List<org.apache.openmeetings.db.dto.room.RoomDTO>

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID from UserService.getSession</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    												<a href="http://localhost:5080/openmeetings/services/JabberService/getAvailableRooms?SID=VALUE">http://localhost:5080/openmeetings/services/JabberService/getAvailableRooms?SID=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getUserCount" ><b>getUserCount</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getUserCount (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long roomId

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Returns the count of users currently in the Room with given id
+ No admin rights are necessary for this call

+    			</p>

+    			<p>

+                  Return Type: int

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID from UserService.getSession</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">roomId</td>

+	                     <td valign="top">id of the room to get users</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/JabberService/getUserCount?SID=VALUE&roomId=VALUE">http://localhost:5080/openmeetings/services/JabberService/getUserCount?SID=VALUE&amp;roomId=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getInvitationHash" ><b>getInvitationHash</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getInvitationHash (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String username

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Get invitation hash for the room with given id
+ No admin rights are necessary for this call

+    			</p>

+    			<p>

+                  Return Type: java.lang.String

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID from UserService.getSession</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">username</td>

+	                     <td valign="top">The name of invited user, will be displayed in the rooms user list</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">id of the room to get users</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/JabberService/getInvitationHash?SID=VALUE&username=VALUE&room_id=VALUE">http://localhost:5080/openmeetings/services/JabberService/getInvitationHash?SID=VALUE&amp;username=VALUE&amp;room_id=VALUE</a>

+    		  </div>

+    	   			

+	

+	</body>

+</html>

+

diff --git a/docs/JiraPlugin.html b/docs/JiraPlugin.html
new file mode 100644
index 0000000..342ceba
--- /dev/null
+++ b/docs/JiraPlugin.html
@@ -0,0 +1,399 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="eschwert@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Jira Plugin</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Jira Plugin for OpenMeetings"><strong>Jira Plugin for OpenMeetings</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				Current Development Snapshots for testing can be downloaded from:

+				<a href="https://svn.apache.org/repos/asf/openmeetings/branches/jira-plugin/target/openmeetings-1.0-SNAPSHOT.jar">here</a>

+				.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Features"><strong>Features</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>The plugin contains the following features: </p>
+                                                <ul>

+				<li>Create videoconference rooms through Jira: </li>

+				<li>

+					<ol>

+						<li>Integrated with Jira issues </li>										

+						<li>Configurable room type </li>

+					</ol>

+				</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Demo video"><strong>Demo video</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>The demo video of Jira plugin show you the plugin in action </p>
+                                                <object style="height: 390px; width: 640px">

+			      <param name="movie" value="http://www.youtube.com/v/xBdYj-OZvlc?version=3&amp;feature=player_detailpage" />

+			      <param name="allowFullScreen" value="true" />

+			      <param name="allowScriptAccess" value="always" />

+			      <embed src="http://www.youtube.com/v/xBdYj-OZvlc?version=3&amp;feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360" />

+		      </object>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/JoomlaPlugin.html b/docs/JoomlaPlugin.html
new file mode 100644
index 0000000..8b2486c
--- /dev/null
+++ b/docs/JoomlaPlugin.html
@@ -0,0 +1,416 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="solomax@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Joomla Plugin</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="OpenMeetings Plugin for Joomla"><strong>OpenMeetings Plugin for Joomla</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				Plugin for Joomla currently is not open source. 

+				Please contact <a href="commercial-support.html" target="_BLANK" rel="nofollow">Commercial Support</a> to get it. 

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Features"><strong>Features</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>The plugin contains the following features: </p>
+                                                <ul>

+				<li>Create videoconference rooms from Joomla: </li>

+				<li>

+					<ol>

+						<li>Create rooms</li>										

+						<li>Enter the room</li>

+					</ol>

+				</li>

+				<li>Access recordings from Joomla: </li>

+				<li>

+					<ol>

+						<li>Download recordings</li>										

+					</ol>

+				</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Demo video"><strong>Demo video</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+				<b>OpenMeetings Joomla Plugin Installation</b><br />              

+				<object style="height: 360px; width: 640px">

+					<param name="movie" value="http://www.youtube.com/v/jt8ejgtHavc?version=3&amp;feature=player_detailpage" />

+					<param name="allowFullScreen" value="true" />

+					<param name="allowScriptAccess" value="always" />

+					<embed src="http://www.youtube.com/v/jt8ejgtHavc?version=3&amp;feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360" />

+				</object> 

+			</div>
+                                                <br />
+                                                <div>

+				<b>OpenMeetings Integration with Joomla</b><br />              

+				<object style="height: 360px; width: 640px">

+					<param name="movie" value="http://www.youtube.com/v/H61N0pfLusA?version=3&amp;feature=player_detailpage" />

+					<param name="allowFullScreen" value="true" />

+					<param name="allowScriptAccess" value="always" />

+					<embed src="http://www.youtube.com/v/H61N0pfLusA?version=3&amp;feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360" />

+				</object> 

+			</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/LanguageEditor.html b/docs/LanguageEditor.html
new file mode 100644
index 0000000..86c5a81
--- /dev/null
+++ b/docs/LanguageEditor.html
@@ -0,0 +1,377 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Language Editor</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Language Editor"><strong>Language Editor</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>Features:</p>
+                                                <ul>

+				<li>edit the labels of any language, changes will take effect as

+					soon as you re-login

+				</li>

+				<li>add new languages (for example to fit your co-operative design

+					and language of your company)

+				</li>

+				<li>export the language-files to an XML File (these language Files

+					can be used for your next installation or as contribution to the

+					project)

+				</li>

+				<li>

+					import of language files (

+					<i>you should restart the server if you face problems, as the

+						database cache might be invalid

+					</i>

+					)

+				</li>

+			</ul>
+                                                <p>Screen from the Administration Panel: </p>
+                                                <p>

+				<a class="fancybox-buttons" href="images/langeditor_screen_v2.png">

+					<img src="images/langeditor_screen_v2.png" alt="" width="475" height="324" />

+				</a>

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/LdapAndADS.html b/docs/LdapAndADS.html
new file mode 100644
index 0000000..1b4a8a6
--- /dev/null
+++ b/docs/LdapAndADS.html
@@ -0,0 +1,430 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			Sebastian Wagner
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Home</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Ubuntu Installation"><strong>Ubuntu Installation</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+				Run the commands

+				<blockquote>

+					<i>

+						sudo apt-get install slapd ldap-utils

+					</i>

+				</blockquote>

+			</div>
+                                                <div>

+				Modify file <tt>/etc/ldap/ldap.conf</tt> add highlighted attributes:

+				<blockquote>

+					<i>

+						#<br />

+						# LDAP Defaults<br />

+						#<br />

+						# See ldap.conf(5) for details<br />

+						# This file should be world readable but not world writable.<br />

+						<b>BASE    dc=unixmen,dc=com<br />

+						URI     ldap://192.168.1.200</b><br />

+						#SIZELIMIT      12<br />

+						#TIMELIMIT      15<br />

+						#DEREF          never<br />

+						# TLS certificates (needed for GnuTLS)<br />

+						TLS_CACERT      /etc/ssl/certs/ca-certificates.crt<br />

+					</i>

+				</blockquote>

+			</div>
+                                                <div>

+				Run the Configuration assistant: <tt>sudo dpkg-reconfigure slapd</tt>

+			</div>
+                                                <div>

+				Test LDAP server: <tt>ldapsearch -x</tt>

+			</div>
+                                                <div>

+				Add/Edit/Delete users: <tt>sudo apt-get install phpldapadmin</tt>

+			</div>
+                                                <div>

+				Detailed reference: <a href="http://www.unixmen.com/openldap-installation-and-configuration-in-ubuntu-12-10-server-debian-6/">http://www.unixmen.com/openldap-installation-and-configuration-in-ubuntu-12-10-server-debian-6/</a>

+			</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="LDAP and Active Directory Integration"><strong>LDAP and Active Directory Integration</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p> In: $RED5_HOME/webapps/openmeetings/conf<br />

+				you will find sample configurations for LDAP and Active Directory. The

+				nature of those Directory Servers are that they are individual for

+				every organization, so you have to modify of course at least the

+				path to your user-base et cetera.<br />

+				<br />

+				To activate any of those configurations you have to login into

+				OpenMeetings, goto Administration &gt; Ldap.

+			</p>
+                                                <a class="fancybox-buttons" href="images/ldap_screen.png">

+				<img src="images/ldap_screen.png" alt="" width="442" height="282" />

+			</a>
+                                                <p>

+				Import is that you configure LDAP_SEARCH_PATH so that it points to the node of your directory server that contains the users

+			</p>
+                                                <p>

+				If you have multiple search paths you can either try to define a search path that points to multiple nodes or define multiple ldap configurations.

+			</p>
+                                                <p>

+				Successful integration is also reported with Novell eDirectory

+			</p>
+                                                <p>

+				You can configure multiple domains or different user-paths in the Administration of OpenMeetings. 

+			</p>
+                                                <p>

+				<b>NOTE: </b>You should specify file name <i>RELATIVE</i> to <tt>$RED5_HOME/webapps/openmeetings/conf</tt>

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/MSSQLConfig.html b/docs/MSSQLConfig.html
new file mode 100644
index 0000000..0cb03b7
--- /dev/null
+++ b/docs/MSSQLConfig.html
@@ -0,0 +1,439 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			Apache OpenMeetings Documentation Team
+		">
+            <meta name="email" content="solomax@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - MSSQL Configuration</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="MSSQL Configuration"><strong>MSSQL Configuration</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                        <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Before you start"><strong>Before you start</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+					<li>You need Openmeetings 2.2 or later to use MSSQL integration</li>

+					<li>Make sure that you have set utf8 as collation for the openmeetings database

+						before you start the installation process of OpenMeetings!

+					</li>

+					<li>

+						make sure MSSQL is listening on TCP/IP connections! and username/password 

+						authentication is enabled for it

+						<br />

+						To verify if MSSQL connection is working: OpenMeetings will

+						automatically create all tables in the database and all tables

+						should have utf8 as encoding/collation!

+					</li>

+					<li>If you encounter issues, you can drop the db again and delete

+						the file $red5/webapps/openmeetings/conf/install.xml and then run

+						the web based installer again

+					</li>

+				</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Steps todo"><strong>Steps todo</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+					<li>

+						You need to download the JDBC driver from Microsoft

+						<a href="http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&amp;id=11774" target="_BLANK" rel="nofollow">http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&amp;id=11774</a>

+						Unarchive appropriate file from it (sqljdbc.jar or sqljdbc4.jar) and place it into:

+						<tt>$red5/webapps/openmeetings/WEB-INF/lib/</tt>

+					</li>

+					<li>

+						Rename:

+						<br />

+						$red5/webapps/openmeetings/WEB-INF/classes/META-INF/mssql_persistence.xml

+						<br />

+						to

+						<br />

+						$red5/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

+					</li>

+					<li>

+						Prepare Database Settings - go to

+						openmeetings_version_no_xx/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

+						<br />

+						Alter config values in persistence.xml DB_HOST USER_NAME USER_PASS

+						with your values

+					</li>

+					<li>

+						Run red5-service and goto the web-based installer:

+						http://localhost:5080/openmeetings/install

+					</li>

+				</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="MSSQL Sample Configuration"><strong>MSSQL Sample Configuration</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+					There is a sample configuration for MySQL that ships with

+					every release in:

+					<br />

+					/webapps/openmeetings/WEB-INF/classes/META-INF/mssql_persistence.xml

+				</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/ManualTesting.html b/docs/ManualTesting.html
new file mode 100644
index 0000000..4620dc8
--- /dev/null
+++ b/docs/ManualTesting.html
@@ -0,0 +1,708 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="iarkh@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Manual Testing</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Introduction"><strong>Introduction</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				Below is a test plan for the OpenMeetings 2.1 pre-release testing.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Details"><strong>Details</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ol>

+				<li>

+					<b>User GUI tests</b>

+					<ol>

+						<li>

+							Login/logout 

+							<ol>

+								<li>Password recovering </li>

+								<li>Self-registering </li>

+								<li>"Visit Apache OpenMeetings" link </li>

+								<li>Enter wrong login/password </li>

+								<li>Enter correct login/password </li>

+								<li>Exit the system by click the Exit button </li>

+							</ol>

+						</li>

+						<li>

+							Dashboard

+							<ol>

+								<li>Correct user info in the upper left corner </li>

+								<li>Links in the "Help and support" section </li>

+								<li>It should be possible to enter user’s room from the dashboard </li>

+								<li>Room details should be shown correctly in the "Rooms in this section…" part of the screen </li>

+							</ol>					

+						</li>

+						<li>

+							Global chat 

+							<ol>

+								<li>Send/receive message where at least 3 users in the system </li>

+								<li>Adding a contact to the contact list </li>

+								<li>Private message </li>

+								<li>Showing user profile </li>

+								<li>Inviting user to the conference room </li>

+								<li>Copy chat log </li>

+								<li>Delete chat log </li>

+								<li>Changing font style in the massage </li>

+								<li>Adding emotions to the message </li>

+							</ol>

+							Attention! Correct RTL support does not work in the current implementation 

+						</li>

+						<li>

+							Calendar view

+							<ol>

+								<li>Change view (weekly/daily/monthly) and moving between the dates </li>

+								<li>Adding/removing/moving by mouse an event </li>

+							</ol>

+						</li>

+						<li>

+							Calendar invitation window

+							<ol>

+								<li>Creating/updating/deleting an event </li>

+								<li>Inviting 3 internal and 3 external guests </li>

+								<li>Different reminder types: receiving e-mail invitation for internal and external guests </li>

+								<li>Password protected invitation </li>

+								<li>Inviting to the rooms of the different types </li>

+								<li>Choosing time zone for external guest </li>

+								<li>Correct user data in the invitations </li>

+								<li>SMS reminder for internal and external guests </li>

+								<li>E-mail reminder for internal and external guests </li>

+								<li>It should be possible to enter to the event via invitation link room at the particular time slot only </li>

+								<li>Enter the room via invitation window </li>

+							</ol>

+						</li>

+						<li>

+							My Profile: User profile should contain correct user info and allow to edit this 

+						</li>

+						<li>

+							Contacts and Messages

+							<ol>

+								<li>Add/remove a message </li> 

+								<li>Creating a new folder </li>

+								<li>Moving between the folders </li>

+								<li>Marking messages as read/unread </li>

+								<li>Message filters </li>

+								<li>Contact list </li>

+							</ol>

+						</li>

+						<li>

+							User settings

+							<ol>

+								<li>Possibility to change the user info </li>

+								<li>Changing time zone and language (should start to work after user re-login </li>

+								<li>Community settings or different users </li>

+								<li>Display settings</li> 

+							</ol>

+						</li>

+						<li>

+							Search users

+							<ol>

+								<li>Send a private message </li>

+								<li>Adding a contact </li>

+								<li>View contact details via user list </li>

+							</ol>

+						</li>

+						<li>

+							Room lists 

+							<ol>

+								<li>Public rooms, private rooms and my rooms should contain correct room lists </li>

+								<li>User list for the selected room </li>

+								<li>Room details for the selected room </li>

+							</ol>

+						</li>

+						<li>

+							Recordings

+							<ol> 

+								<li>The list should contain available recordings in public and private folders </li>

+								<li>Info panel should contain actual info about the recording </li>

+								<li>Downloading a recording is different formats (AVI/FLV) </li>

+								<li>Play the recording in OpenMeetings </li>

+								<li>Play downloaded recording by Windows player </li>

+								<li>Remove a recording from the folder </li>

+							</ol>

+						</li>

+						<li>

+							Restricted room testing – general issues (should be tested with at least 3 attendees)

+							<ol>

+								<li>Enter the room: different cases for the cam/micro, choosing of the cam resolution, test recording, allow/deny of video </li>

+								<li>User list should be shown correctly </li>

+								<li>Correct user credentials after  the room entering </li>

+								<li>Add moderator permissions to the user </li>

+								<li>Turn micro on/off in the user list </li>

+								<li>Increasing/decreasing sound level and turning micro on/off in the video window </li>

+								<li>Turn micro on/off in the user list to another user – possible by the moderator only </li>

+								<li>Increasing/decreasing sound level and turning micro on/off in the video window - possible by the moderator only </li>

+								<li>Allow/deny drawing on whiteboard – possible by the moderator only </li>

+								<li>Allow/deny screen sharing – possible by the moderator only </li>

+								<li>Allow/deny remote screen control – possible by the moderator only </li>

+								<li>Allow/deny exclusive audio – possible by the moderator only </li>

+								<li>Re-start devise settings via user list </li>

+								<li>Re-start devise settings via video window </li>

+								<li>Kick the user off by the moderator </li>

+								<li>Click F8 key to arrange videos </li>

+								<li>Activity and actions panel should contain correct info </li>

+								<li>Exit the room </li>

+							</ol>

+						</li>

+						<li>

+							Restricted room testing: file uploading + documents

+							<ol>

+								<li>Upload a document with "Load directly to whiteboard" switch turned on </li>

+								<li>Upload a with "Load directly to whiteboard" switch turned on off </li>

+								<li>Upload a document with the localized file name and spaces in the name </li>

+								<li>Uploading a document into different folders: private files should be visible only their owner only </li>

+								<li>Removing a file from the room </li>

+								<li>Home and public drive size should change correctly </li>

+								<li>Adding a new folder </li>

+								<li>Removing a folder </li>

+								<li>Load a document of each supported type and check that it’s shown correctly </li>

+							</ol>

+						</li>

+						<li>

+							Restricted room testing – whiteboard and properties panels (should be tested with at least 3 attendees)

+							<ol>

+								<li>Adding a removing a whiteboard </li>

+								<li>Full-fit switch </li>

+								<li>Clear whiteboard </li>

+								<li>Clear objects of current slide only </li>

+								<li>Save and export </li>

+								<li>Undo </li>

+								<li>Select an object </li>

+								<li>Pointer </li>

+								<li>Text </li>

+								<li>Paint </li>

+								<li>Draw line </li>

+								<li>Draw underline </li>

+								<li>Rectangle </li>

+								<li>Ellipse </li>

+								<li>Arrow </li>

+								<li>Cliparts</li>

+							</ol>						

+						</li>

+						<li>

+							Restricted room testing – chat (should be tested with at least 3 attendees)

+							<ol>

+								<li>Send a message </li>

+								<li>Start a private chat </li>

+								<li>Chat moderation </li>

+								<li>Font style </li>

+								<li>Emotions </li>

+								<li>Show/copy chat log </li>

+								<li>Delete server chat log </li>

+							</ol>

+						</li>

+						<li>

+							Restricted room testing – screen sharing and recordings (should be tested with at least 3 attendees)

+							<ol>

+								<li>"Share record/screen" button in the room </li>

+								<li>Desktop sharer: start/stop sharing </li>

+								<li>Change the shared screen area (X-offset, Y-offset, width, height) </li>

+								<li>Change the screen sharing quality </li>

+								<li>Start/stop recordings – need to check that it works as expected </li>

+							</ol>

+						</li>

+						<li>

+							Restricted room testing – Actions menu

+							<ol>

+								<li>Send invitation: send English and localized message </li>

+								<li>Send invitation with password </li>

+								<li>Send invitations with 3 different time periods </li>

+								<li>Change time zone of the invitation </li>

+								<li>Change language of the invitation </li>

+								<li>Send invitation screen: "Generate URL" button – check the same things as for the invitations sent by email </li>

+								<li>Apply to be moderator </li>

+								<li>Apply to whiteboard access </li>

+								<li>Apply to audio/video access </li>

+								<li>Create a poll </li>

+								<li>Poll results </li>

+								<li>Vote </li>

+								<li>Default whiteboard settings: check all of them </li>

+							</ol>

+						</li>

+						<li>

+							Conference room testing

+							<ol>

+								<li>User list should look in another way in compare with restricted type </li>

+								<li>Generally, all should look OK when enter the room </li>

+							</ol>

+						</li>

+						<li>

+							Interview room testing (should be tested with at least 3 attendees)

+							<ol>

+								<li>User list should look as expected </li>

+								<li>Change a user for video pod </li>

+								<li>Start/stop recordings </li>

+							</ol>

+						</li>						

+					</ol>			

+				</li>

+				<li>

+					<b>Admin GUI tests</b>

+					<ol>

+						<li>

+							Users

+							<ol>

+								<li>Add/edit/remove/search user in the table </li>

+								<li>Move between screens where there are many users in the table </li>

+								<li>Edit text fields </li>

+								<li>Change a time zone, re-login and check the calendar </li>

+								<li>Change a language, re-login and check the GUI language </li>

+								<li>Е-mail: e-mails should pass </li>

+								<li>Phone and SMS switch: if set and turned on, sms messages should pass </li>

+								<li>Change a status – non-active user cannot login </li>

+								<li>Change user role and re-login </li>

+								<li>Change user group  - user has an access only to the rooms belong to his organization </li>

+								<li>Change community settings and check </li>

+							</ol>

+						</li>

+						<li>

+							Connections

+							<ol>

+								<li>Should be tested with at least 3 users in the system </li>

+								<li>Sessionvars table should be shown correctly </li>

+								<li>Kick the user from the system </li>

+							</ol>

+						</li>

+						<li>

+							Organizations 

+							<ol>

+								<li>Add/remove/edit/search an organization </li>

+								<li>Add/remove a user from the user list of selected organization </li>

+							</ol>

+						</li>

+						<li>

+							Conference rooms

+							<ol>

+								<li>Add/remove/edit/search a room </li>

+								<li>User list for the given room should contain actual list </li>

+								<li>Turn the Moderation switch on/off and enter the room </li>

+								<li>Add/remove a user to the default moderator list </li>

+								<li>Check max participants number in the room </li>

+								<li>Change room type and enter the room </li>

+								<li>Turn public switch on/off </li>

+								<li>Turn "Demo switch" on/off, change the demonstration time </li>

+								<li>Turn "Allow user questions" on/off and enter the room </li>

+								<li>Turn "Audio only" switch on/off and enter the room </li>

+								<li>Set "Close URL" to some URL, enter the room and then exit – you should be re-directed correspondingly </li>

+								<li>Check that SIP settings work as expected </li>

+								<li>Check that "Allow recordings" switch  works as expected </li>

+								<li>Check that "Layout options" switch work as expected </li>

+								<li>Check that "Allow font styles" switch works as expected </li>

+							</ol>

+						</li>

+						<li>					

+							Configuration

+							<ol>

+								<li>Allow_frontend_register </li>

+								<li>Mail server settings </li>

+								<li>SMS provider settings </li>

+								<li>Application.name </li>

+								<li>Default_lang_id </li>

+								<li>default time zone </li>

+								<li>SIP settings </li>

+								<li>Reminder minutes </li>

+							</ol>

+						</li>

+						<li>					

+							Language editor 

+							<ol>

+								<li>Add/remove/edit/search a key </li>

+								<li>Import/export of localization files </li>

+							</ol>

+						</li>

+						<li>					

+							LDAP: Add/remove/edit/search a record

+						</li>

+						<li>

+							Backup

+							<ol>

+								<li>System import </li>

+								<li>System backup </li>

+								<li>TBD – need to add tests for command line admin here </li>

+							</ol> 

+						</li>

+						<li>

+							Servers: Add/remove/edit/search a server

+						</li>						

+					</ol>

+				</li>

+				<li>

+					<b>SIP integration tests</b> (should be tested with at least 3 attendees in the room; for restricted and interview rooms)

+					<ol>

+						<li>Call from the room to the external phone number </li>

+						<li>Call from external phone number to the room </li>

+						<li>Call from the software phone to the room </li>

+						<li>Call from the software phone with video to the room </li>

+					</ol>

+				</li>

+				<li>

+					<b>Network testing script</b>

+				</li>

+				<li>

+					<b>Site integration tests</b>

+					<ol>

+						<li>Enter OpenMeetings room from Mooddle site </li>

+						<li>Check that recordings link are shown on the Moodle site </li>

+						<li>Enter OpenMeetings room from Joomla site </li>

+						<li>Check that recordings link are shown on the Joomla site </li>

+						<li>Enter OpenMeetings room from Drupal site </li>

+						<li>Check that recordings link are shown on the Drupal site </li>

+					</ol>

+				</li>

+			</ol>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/MoodlePlugin.html b/docs/MoodlePlugin.html
new file mode 100644
index 0000000..aa76308
--- /dev/null
+++ b/docs/MoodlePlugin.html
@@ -0,0 +1,419 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Moodle Plugin</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Moodle Plugin for OpenMeetings"><strong>Moodle Plugin for OpenMeetings</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				You can get the latest Version of the Plugin for Moodle from the

+				<a href="downloads.html">downloads</a>

+				.

+				<br />

+				You can find the OpenMeetings Plugin also in the

+				<a href="http://moodle.org/plugins/view.php?plugin=mod_openmeetings" target="_BLANK" rel="nofollow">Moodle Plugin database</a>

+				.

+				<br />

+				A demo version of the Moodle plugin is available at

+				<a href="http://moodle.openmeetings.de" target="_BLANK" rel="nofollow">moodle.openmeetings.de

+				</a>

+				.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Installation of the Moodle Plugin for Apache OpenMeetings"><strong>Installation of the Moodle Plugin for Apache OpenMeetings</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				You simply download the ZIP or TAR package and unzip it to Moodle's "mod" directory.<br />

+				Eventually you need to unzip the package into a folder called "openmeetings".

+				The folder structure is:<br />

+				$MOODLE_HOME/mod/openmeetings/*.php

+				<br />

+				Then you visit the admin interface of Moodle, for example

+				<a href="http://$your_moodle_host/$MOODLE_WWW_ROOT/admin" target="_BLANK" rel="nofollow">http://$your_moodle_host/$MOODLE_WWW_ROOT/admin</a> 

+					<br />

+				Moodle will detect that there is a new plugin and will show the plugin installation screen:

+			</p>
+                                                <a class="fancybox-buttons" href="images/moodle_install_plugin.png">

+				<img src="images/moodle_install_plugin.png" alt="" width="430" height="220" />

+			</a>
+                                                <p>

+				After you have clicked on "Update database" Moodle will show you the plugin configuration screen:

+			</p>
+                                                <a class="fancybox-buttons" href="images/moodle_configure_plugin.png">

+				<img src="images/moodle_configure_plugin.png" alt="" width="500" height="300" />

+			</a>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Adding a new conference room to a Moodle course"><strong>Adding a new conference room to a Moodle course</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				After installation of the plugin you can go to the course pages in Moodle and turn editing on.

+				Then you choose the activity "OpenMeetings", Moodle will then show you the conference room 

+				configuration with all the options:

+			</p>
+                                                <a class="fancybox-buttons" href="images/moodle_add_activity_plugin.png">

+				<img src="images/moodle_add_activity_plugin.png" alt="" width="430" height="360" />

+			</a>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/MySQLConfig.html b/docs/MySQLConfig.html
new file mode 100644
index 0000000..fc0ecda
--- /dev/null
+++ b/docs/MySQLConfig.html
@@ -0,0 +1,439 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			Apache OpenMeetings Documentation Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - MySQL Configuration</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="MySQL Configuration"><strong>MySQL Configuration</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                        <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Before you start"><strong>Before you start</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+					<li>Make sure that you have set utf8 as

+						default/server-character-set in your MySQL configuration (my.cnf)

+						before you start the installation process of OpenMeetings!

+					</li>

+					<li>

+						make sure MySQL is listening on TCP/IP connections!

+						<br />

+						To verify if MySQL connection is working: OpenMeetings will

+						automatically create all tables in the database and all tables

+						should have utf8 as encoding/collation!

+					</li>

+					<li>If you encounter issues, you can drop the db again and delete

+						the file $red5/webapps/openmeetings/conf/install.xml and then run

+						the web based installer again

+					</li>

+				</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Steps todo"><strong>Steps todo</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+					<li>

+						You need to download the JConnector from mysql

+						<a href="http://www.mysql.com/downloads/connector/j/" target="_BLANK" rel="nofollow">http://www.mysql.com/downloads/connector/j/</a>

+						and place it into:

+						<tt>$red5/webapps/openmeetings/WEB-INF/lib/</tt>

+					</li>

+					<li>

+						Rename:

+						<br />

+						$red5/webapps/openmeetings/WEB-INF/classes/META-INF/mysql_persistence.xml

+						<br />

+						to

+						<br />

+						$red5/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

+					</li>

+					<li>

+						Prepare Database Settings - go to

+						openmeetings_version_no_xx/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

+						<br />

+						Alter config values in persistence.xml DB_HOST USER_NAME USER_PASS

+						with your values

+					</li>

+					<li>

+						Run red5-service and goto the web-based installer:

+						http://localhost:5080/openmeetings/install

+					</li>

+				</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="MySQL Sample Configuration"><strong>MySQL Sample Configuration</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+					There is a sample configuration for MySQL that ships with

+					every

+					release in:

+					<br />

+					/webapps/openmeetings/WEB-INF/classes/META-INF/mysql_persistence.xml

+				</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Navigation.html b/docs/Navigation.html
new file mode 100644
index 0000000..c41a2c1
--- /dev/null
+++ b/docs/Navigation.html
@@ -0,0 +1,365 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Change main navigation</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Changing the main navigation"><strong>Changing the main navigation</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>To customize the main menu (for example remove entries or changing

+				the order) you can edit the tables:  </p>
+                                                <ul>

+				<li>navimain </li>

+				<li>naviglobal </li>

+				<li>navisub (currently not in use) </li>

+			</ul>
+                                                <p />
+                                                <p>

+				You need to make sure that you

+				<strong>restart red5 after doing changes to the database</strong>

+				, there is a database cache, so changes might not take affect as

+				long as you did not restart.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/OpenOfficeConverter.html b/docs/OpenOfficeConverter.html
new file mode 100644
index 0000000..aeac745
--- /dev/null
+++ b/docs/OpenOfficeConverter.html
@@ -0,0 +1,376 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - OpenOffice converter for OpenMeetings</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="OpenOffice Service for OpenMeetings"><strong>OpenOffice Service for OpenMeetings</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				To import .doc, .docx, .odp, .xls, .xlsx, .ppt, .pptx, ... [ all

+				files that you can open with OpenOffice ]

+				to OpenMeetings and use

+				them in the whiteboard you need OpenOffice or LibreOffice

+				installed

+				the machine that runs OpenMeetings.

+			</p>
+                                                <p>

+				<i>Since Version 2.0 of OpenMeetings starting of

+					OpenOffice/LibreOffice as service in not required, JODConverter

+					will automatically start and shut down the service!

+				</i>

+			</p>
+                                                <p>

+				Installation of JODConverter means: You donwload the ZIP binary from

+				their

+				<a href="http://code.google.com/p/jodconverter/" target="_BLANK" rel="nofollow">website</a>

+				and then configure in Apache OpenMeetings Administration &gt;

+				Configuration (or during installation) the config key

+				<tt>jod.path</tt>

+				to point to the "lib" directory of the unpacked JODConverter binary.

+				There is no restart of OpenMeetings required.

+			</p>
+                                                <p>You should use an OpenOffice version greater 3</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/OracleConfig.html b/docs/OracleConfig.html
new file mode 100644
index 0000000..8345ec3
--- /dev/null
+++ b/docs/OracleConfig.html
@@ -0,0 +1,425 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			Apache OpenMeetings Documentation Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - IBM DB2 Configuration</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="IBM DB2 Configuration"><strong>IBM DB2 Configuration</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                        <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Before you start"><strong>Before you start</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+					<li>Download the latest JDBC Driver from Oracle for your database

+						version. Place those JARs into

+						$Red5/webapps/openmeetings/WEB-INF/lib

+					</li>

+					<li>If you encounter issues, you can drop the db again and delete

+						the file $red5/webapps/openmeetings/conf/install.xml and then run

+						the web based installer again

+					</li>

+				</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Steps todo"><strong>Steps todo</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+					<li>

+						Rename:

+						<br />

+						$red5/webapps/openmeetings/WEB-INF/classes/META-INF/oracle_persistence.xml

+						<br />

+						to

+						<br />

+						$red5/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

+					</li>

+					<li>

+						Prepare Database Settings - go to

+						openmeetings_version_no_xx/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

+						<br />

+						Alter config values in persistence.xml connectionURL, username and

+						password with your values

+					</li>

+					<li>

+						Run red5-service and goto the web-based installer:

+						http://localhost:5080/openmeetings/install

+					</li>

+				</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Oracle Sample Configuration"><strong>Oracle Sample Configuration</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+					There is a sample configuration for Oracle that ships with

+					every release in:

+					<br />

+					/webapps/openmeetings/WEB-INF/classes/META-INF/oracle_persistence.xml

+				</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/PortSettings.html b/docs/PortSettings.html
new file mode 100644
index 0000000..5352323
--- /dev/null
+++ b/docs/PortSettings.html
@@ -0,0 +1,475 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Port settings</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Default Configuration"><strong>Default Configuration</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+				<li>Port 5080: HTTP (For example for file upload and download) </li>

+				<li>Port 1935: RTMP (Flash Stream and Remoting/RPC) </li>

+				<li>Port 8088: RTMP over HTTP-Tunneling (rtmpT) </li>

+			</ul>
+                                                <p>Additionally red5 uses some ports internally. However those ports

+				are not in use by OpenMeetings by default.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Configure alternative ports"><strong>Configure alternative ports</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>You need to change two files: </p>
+                                                <ul>

+				<li>Server-Side configuration: $RED5_HOME/conf/red5.properties, you

+					need to restart the red5-service so that changes are online.

+				</li>

+				<li>Client-Side configuration:

+					$RED5_HOME/webapps/openmeetings/public/config.xml, you need to clear your

+					browser cache after changing the file.

+				</li>

+				<li>

+					<blockquote>Every server side configuration has a client side

+						representative

+					</blockquote>

+				</li>

+			</ul>
+                                                <p />
+                                                <table>
+                        <tr>
+                        <th bgcolor="#039acc" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Config-Name 
+    </th>
+                                <th bgcolor="#039acc" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Default-value 
+    </th>
+                                <th bgcolor="#039acc" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Name in red5.properties 
+    </th>
+                                <th bgcolor="#039acc" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         Name in public/config.xml 
+    </th>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         HTTP 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         5080 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         http.port 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         red5httpport 
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         RTMP 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         1935 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         rtmp.port 
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+         rtmpport 
+    </td>
+            </tr>
+            </table>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Preventing Firewall issues"><strong>Preventing Firewall issues</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>A common way of bypassing the firewall is to change HTTP port to

+				80 and rtmpT to 443.

+			</p>
+                                                <p>A short description about the connection mechanism: The

+				application first tries connecting to rtmp 3 times, because rtmp is

+				the protocol that is less performance hungry. If that fails the

+				application will fallback to rtmpT.

+			</p>
+                                                <p>Most firewalls do allow traffic on port 443 and they normally do

+				not analyse the packets, because 443 is normally SSL encrypted, so

+				the firewall should not be able to read the packets at all.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="OpenMeetings over SSL"><strong>OpenMeetings over SSL</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				You can run OpenMeetings completely over SSL. See

+				<a href="RTMPSAndHTTPS.html">RTMPSAndHTTPS</a>

+				.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/PostgresConfig.html b/docs/PostgresConfig.html
new file mode 100644
index 0000000..6810e19
--- /dev/null
+++ b/docs/PostgresConfig.html
@@ -0,0 +1,436 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			Apache OpenMeetings Documentation Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - PostgreSQL Configuration</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="PostgreSQL Configuration"><strong>PostgreSQL Configuration</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                        <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Before you start"><strong>Before you start</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+					<li>Make sure that you have set utf8 as default/server-character-set 

+					</li>

+					<li>

+						make sure PostgreSQL is listening on TCP/IP connections!

+						<br />

+						To verify if PostgreSQL connection is working: OpenMeetings will

+						automatically create all tables in the database and all tables

+						should have utf8 as encoding/collation!

+					</li>

+					<li>If you encounter issues, you can drop the db again and delete

+						the file $red5/webapps/openmeetings/conf/install.xml and then run

+						the web based installer again

+					</li>

+					<li><span style="font-size: larger; color: blue;">IMPORTANT</span> According to

+						<a href="http://markmail.org/message/opymlab2e6wygb7p">this</a> thread you need to ensure:<br />

+						<tt>standard_conforming_strings</tt> is set to <tt><b>on</b></tt> and <br />

+						<tt>escape_string_warning</tt> is set to <tt><b>off</b></tt>

+					</li>

+				</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Steps todo"><strong>Steps todo</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+					<li>

+						Rename:

+						<br />

+						$red5/webapps/openmeetings/WEB-INF/classes/META-INF/postgresql_persistence.xml

+						<br />

+						to

+						<br />

+						$red5/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

+					</li>

+					<li>

+						Prepare Database Settings - go to

+						openmeetings_version_no_xx/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

+						<br />

+						Alter config values in persistence.xml DB_HOST USER_NAME USER_PASS

+						with your values

+					</li>

+					<li>

+						Run red5-service and goto the web-based installer:

+						http://localhost:5080/openmeetings/install

+					</li>

+				</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="PostgreSQL Sample Configuration"><strong>PostgreSQL Sample Configuration</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+					There is a sample configuration for PostgreSQL that ships with

+					every

+					release in:

+					<br />

+					/webapps/openmeetings/WEB-INF/classes/META-INF/postgresql_persistence.xml

+				</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/RTMPSAndHTTPS.html b/docs/RTMPSAndHTTPS.html
new file mode 100644
index 0000000..abe1db1
--- /dev/null
+++ b/docs/RTMPSAndHTTPS.html
@@ -0,0 +1,560 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Using OpenMeetings with RTMPS and HTTPS</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Using OpenMeetings with RTMPS and HTTPS"><strong>Using OpenMeetings with RTMPS and HTTPS</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>There are 3 ways the client communicates with the server: </p>
+                                                <ul>

+				<li>The flash-client uses RTMP protocol to transfer Audio/Video and

+					to send and receive the user data (login et cetera) to the server

+					and back

+				</li>

+				<li>The browser uses HTTP protocol to load the SWF and to upload and

+					download the files (documents, pdfs, images) to the server and

+					back.

+				</li>

+				<li>The screensharing client uses RTMP protocol to transfer screen

+					data and remote control to the server and back

+				</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Prerequisites"><strong>Prerequisites</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+				<li>You need OpenMeetings 1.9.x for this, OpenMeetings 1.8.x does

+					not

+					have those options.

+				</li>

+				<li>Install OpenMeetings according to the install instructions and

+					check that it runs without problems

+				</li>

+				<li>Rename the existing keystore file red5/conf/keystore to

+					keystore.bak

+				</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Configuring RTMPS for the Flash Client"><strong>Configuring RTMPS for the Flash Client</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ol>

+				<li>

+					Create a new keystore and key, use the same password for both:<br />

+					(copied from

+					<a href="http://trac.red5.org/wiki/Documentation/Tutorials/Red5DeveloperTips/SSLTLS%29:" rel="nofollow">http://trac.red5.org/wiki/Documentation/Tutorials/Red5DeveloperTips/SSLTLS):</a>

+					<div class="xmlcode">

+						keytool -keysize 2048 -genkey -alias red5 -keyalg RSA -keystore red5/conf/keystore<br />

+						Enter keystore password:<br />

+						Re-enter new password:<br />

+						What is your first and last name?<br />

+						[Unknown]:  &lt;your hostname, e.g demo.openmeetings.de&gt;<br />

+						What is the name of your organizational unit?<br />

+						[Unknown]:  Dev<br />

+						What is the name of your organization?<br />

+						[Unknown]:  OpenMeetings<br />

+						What is the name of your City or Locality?<br />

+						[Unknown]:  Henderson<br />

+						What is the name of your State or Province?<br />

+						[Unknown]:  Nevada<br />

+						What is the two-letter country code for this unit?<br />

+						[Unknown]:  US<br />

+						Is CN=demo.openmeetings.de, OU=Dev, O=OpenMeetings, L=Henderson, ST=Nevada, C=US correct?<br />

+						[no]:  yes<br />

+						Enter key password for &lt;red5&gt;<br />

+					</div>

+				</li>

+		

+				<li>Generate a CSR: keytool -certreq -keyalg RSA -alias red5 -file

+					red5.csr -keystore red5/conf/keystore

+				</li>

+				<li>Submit CSR to your CA of choice and receive a signed certificate

+				</li>

+				<li>Import your chosen CA's root certificate into the keystore (may

+					need to download it from their site - make sure to get the root CA and

+					not the intermediate one): keytool -import -alias root -keystore

+					red5/conf/keystore

+					-trustcacerts -file root.crt (note: you may receive a warning that

+					the certificate already exists in the system wide keystore - import

+					anyway)

+				</li>

+				<li>Import the intermediate certificate(s) you normally receive with

+					the certificate:

+					keytool -import -alias intermed -keystore red5/conf/keystore -trustcacerts

+					-file intermediate.crt

+				</li>

+				<li>Import the certificate you received: keytool -import -alias red5

+					-keystore red5/conf/keystore -trustcacerts -file

+					demo.openmeetings.de.crt

+				</li>

+                <li>

+                Create additional certificate as described above.

+                Add this certificate to the following keystores: <tt>red5/conf/keystore.screen</tt> and <tt>red5/conf/keystore</tt>.

+                </li>

+			</ol>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Set up RTMPS"><strong>Set up RTMPS</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ol>

+		      <li>

+		      Uncomment <tt>&lt;!-- RTMPS --&gt;</tt> section in <tt>red5/conf/red5-core.xml</tt>

+		      </li>

+

+				<li>

+					Edit <tt>red5/conf/red5.properties</tt> and set

+					<tt>rtmps.port=5443</tt>

+					and

+					<tt>rtmps.keystorepass=password</tt>

+					(password = password you set on your new

+					keystore)

+				</li>

+			

+				<li>

+					Edit red5/webapps/openmeetings/public/config.xml and set

+					<tt>&lt;rtmpsslport&gt;5443&lt;/rtmpsslport&gt;</tt>

+					,

+					<tt>&lt;useSSL&gt;yes&lt;/useSSL&gt;</tt>

+					and

+					<tt>&lt;proxyType&gt;best&lt;/proxyType&gt;</tt>

+				</li>

+

+				<li>Restart red5 and try to connect - your connection should now be

+					made via RTMPS (close port 1935 to be sure)

+				</li>   

+					  

+		  </ol>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="SSL for the web interface"><strong>SSL for the web interface</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>If you want to use SSL for the web interface in addition to RTMPS,

+				you need to make some further modifications. This is mainly to secure

+				the server against MITM attacks, additionally some other features

+				like file uploads also use a plain HTTP connection if this is not

+				done. The following instructions assume that you have already set up

+				RTMPS successfully. </p>
+                                                <ol>

+				<li>

+					Edit <tt>red5/conf/jee-container.xml</tt> file:<br />

+					Comment <tt>Tomcat without SSL enabled</tt> section<br />

+					UNComment <tt>Tomcat with SSL enabled</tt> section

+				</li>

+				<li>

+					Edit red5/webapps/openmeetings/public/config.xml and set

+					<tt>&lt;protocol&gt;https&lt;/protocol&gt;</tt>

+				</li>

+				<li>

+					Edit red5/webapps/openmeetings/public/config.xml and set

+					<tt>red5httpport</tt> to <tt>https</tt> port

+				</li>

+				<li>In webapps/openmeetings/WEB-INF/conf/axis2.xml add (below the existing http transportReceiver (around line 225))

+					<div class="xmlcode">&lt;transportReceiver name="https" class="org.apache.axis2.transport.http.AxisServletListener"&gt;<br />

+        &lt;parameter name="port"&gt;443&lt;/parameter&gt;<br />

+&lt;/transportReceiver&gt;</div>

+				</li>

+				<li>Edit red5/conf/red5.properties and set <tt>https.port=443</tt> </li>

+				<li>

+					Restart red5 and try to connect to

+					<a href="https://your.server" rel="nofollow">https://your.server</a>

+					- you should be redirected to the OpenMeetings

+					app and all access should be via HTTPS or RTMPS (close port 5080 to

+					be sure).

+				</li>

+            </ol>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Credits"><strong>Credits</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>Credits goto: Nexus and Holger Rabbach for their help and

+				contribution and configuration documention! </p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/RecommendedHardwareList.html b/docs/RecommendedHardwareList.html
new file mode 100644
index 0000000..8da962b
--- /dev/null
+++ b/docs/RecommendedHardwareList.html
@@ -0,0 +1,401 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Home</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Cameras"><strong>Cameras</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+				<li>Logitech QuickCam Sphere AF</li>

+				<li>Logitech QuickCam E3500</li>

+				<li>Samsung Pleomax PWC-7100</li>

+				<li>Genius Look320S</li>

+				<li>Integrated Lenovo 3000 n100</li>

+				<li>Skypemate WC-103M</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Headsets"><strong>Headsets</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+				<li>Logitech Clear Chat Style</li>

+			</ul>
+                                                <ul>

+				<li>ClearChat PC Wireless (helps to suppress echo)</li>

+				<li>Logitech USB Desktop Microphone - Mikrophon (good sound, but bad echo cancellation)</li>

+			</ul>
+                                                <b>Note for Mac OS X users:</b>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Speakerphones"><strong>Speakerphones</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+				<li>Phoenix Audio Quattro2 USB Speakerphone MT301 (a single microphone + speakers can be used even with 20-30 people sitting in a room)</li>

+				<li>Phoenix DUET Executive</li>

+				<li>Jabra SPEAK410</li>

+				<li>Plantronics MCD 100M</li>

+				<li>Integrated Lenovo 3000 n100</li>

+				<li>Konftel 300</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/RedminePlugin.html b/docs/RedminePlugin.html
new file mode 100644
index 0000000..2d6ab04
--- /dev/null
+++ b/docs/RedminePlugin.html
@@ -0,0 +1,370 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="solomax@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Redmine Plugin</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="OpenMeetings Plugin for Redmine"><strong>OpenMeetings Plugin for Redmine</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				Current Development Snapshots for testing can be created from the sources:

+				<a href="https://svn.codespot.com/a/apache-extras.org/openmeetings-redmine-plugin/trunk">here</a>.<br />

+				The page at redmine site is <a href="http://www.redmine.org/plugins/redmine-openmeetings">here</a>

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Features"><strong>Features</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>TBD</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/ReleaseGuide.html b/docs/ReleaseGuide.html
new file mode 100644
index 0000000..1e241e2
--- /dev/null
+++ b/docs/ReleaseGuide.html
@@ -0,0 +1,606 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Release Guide</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="How to Build a Release of OpenMeetings"><strong>How to Build a Release of OpenMeetings</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                        <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Required tools"><strong>Required tools</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+					<p>To build a binary release of OpenMeetings you need: </p>

+					<ul>

+						<li>Sun JDK6</li>

+						<li>Apache ANT (minimum) 1.8.3</li>

+						<li>

+							SVN Command line client (Subversion 1.7 required!)

+							<a href="http://subversion.apache.org/packages.html" target="_BLANK" rel="nofollow">http://subversion.apache.org/packages.html</a>

+						</li>

+						<li>A text editor</li>

+						<li>You need to be online! The build process actively downloads

+							needed libraries and dependencies.

+						</li>

+					</ul>

+				</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Prepare your Apache ID"><strong>Prepare your Apache ID</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+					Every release package must be signed with a PGP/GPG key.

+					<br />

+					So if you want to release a package your Apache Id must be

+					connected with a PGP key!

+					<br />

+					<br />

+					You might follow:

+					<br />

+					<a href="http://www.apache.org/dev/new-committers-guide.html#security-and-pgp" target="_blank">http://www.apache.org/dev/new-committers-guide.html#security-and-pgp

+					</a>

+					<br />

+					<br />

+					In short:

+					<br />

+					Create PGP key pairs (private + public) (and I recommend creating a

+					Revoke Cert)

+					<br />

+					Upload the public key (either bei using the PGP Tool that you use

+					to create the key) or by using the web form to:

+					<a href="http://pgp.mit.edu/" target="_blank" rel="nofollow">http://pgp.mit.edu/

+					</a>

+					<br />

+					Add the fingerprint string (something like "BF13 CF11 F9C9 0CBE

+					4413 09AB 0055 16BF 93A3 0395") to your profile at

+					<a href="http://id.apche-org" target="_blank" rel="nofollow">id.apche-org

+					</a>

+					<br />

+					Wait for 6-8 hours, the server will search for a public key based

+					on your fingerprint, if success it will create a file with your

+					name at:

+					<br />

+					<a href="https://people.apache.org/keys/committer/">https://people.apache.org/keys/committer/</a>

+					<br />

+					<br />

+					If that is "success" then add your key to:

+					<br />

+					<a href="https://svn.apache.org/repos/asf/openmeetings/project/KEYS">https://svn.apache.org/repos/asf/openmeetings/project/KEYS

+					</a>

+					<br />

+					and follow the instructions in the file.

+					<br />

+				</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Step1 - Prepare files"><strong>Step1 - Prepare files</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+					Check that all files:

+					<br />

+					LICENSE, NOTICE, DISCLAIMER, CHANGELOG, README

+					<br />

+					are up to date and refer to the right version.

+				</p>
+                                                <p>

+					Create a TAG of the SVN tree that you would like to release<br />

+					Example:

+				</p>
+                                                <div class="xmlcode">

+					svn copy -r1453158 https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp \<br />

+						https://svn.apache.org/repos/asf/openmeetings/tags/2.1RC1 \<br />

+						-m "Release candidate 1"

+				</div>
+                                                <p>Get the source from your TAG: </p>
+                                                <div class="xmlcode">

+					svn checkout https://svn.apache.org/repos/asf/openmeetings/tags/$BRANCHORTAG/<br />

+					$BRANCHORTAG should be replaced with your new TAG

+				</div>
+                                                <p>Edit the file build.properties change</p>
+                                                <div class="xmlcode">

+					project.status=SNAPSHOT

+				</div>
+                                                <p>to</p>
+                                                <div class="xmlcode">

+					project.status=RELEASE

+				</div>
+                                                <p>Run the command: </p>
+                                                <div class="xmlcode">

+					ant dist-release

+				</div>
+                                                <p>Test building the source on windows and OSx or Linux</p>
+                                                <p>Test running the binary's</p>
+                                                <p>Create MD5 checksums</p>
+                                                <div class="xmlcode">

+					#On OSX you might use this command to make a MD5 checksum and store it to a file<br />

+					md5 -r apache-openmeetings-XXX-src.zip &gt;apache-openmeetings-XXX-src.zip.md5

+				</div>
+                                                <div class="xmlcode">

+					#To create MD5 hashes On Ubuntu:<br />

+					for f in `ls -1 *.tar.gz *.zip`; do md5sum $f &gt; $f.md5; done<br />

+					<br />

+					#To check MD5 hashes On Ubuntu:<br />

+					for f in `ls -1 *.tar.gz *.zip`; do md5sum -c $f.md5; done

+				</div>
+                                                <p>

+					Create signatures with the your KEY for every file, the KEY must be available at:<br />

+					<a href="http://www.apache.org/dist/incubator/openmeetings/KEYS">

+						http://www.apache.org/dist/incubator/openmeetings/KEYS

+					</a>

+				</p>
+                                                <div class="xmlcode">

+					#To create signatures On Ubuntu:<br />

+					for f in `ls -1 *.tar.gz *.zip`; do gpg --armor --output $f.asc --detach-sig $f; done<br />

+					<br />

+					#To check signatures On Ubuntu:<br />

+					for f in `ls -1 *.tar.gz *.zip`; do gpg --verify $f.asc; done

+				</div>
+                                                <p>

+					Commit artifacts you have created with KEYS file to the

+					<tt>https://dist.apache.org/repos/dist/dev/openmeetings/</tt>

+					Proposed file structure for "Release Candidate 1" of 2.1 will be:

+				</p>
+                                                <div class="xmlcode">

+					2.1<br />

+					2.1/rc1<br />

+					2.1/rc1/src<br />

+					2.1/rc1/src/apache-openmeetings-2.1.0-src.zip<br />

+					2.1/rc1/src/apache-openmeetings-2.1.0-src.tar.gz<br />

+					2.1/rc1/src/apache-openmeetings-2.1.0-src.zip.md5<br />

+					2.1/rc1/src/apache-openmeetings-2.1.0-src.zip.asc<br />

+					2.1/rc1/src/apache-openmeetings-2.1.0-src.tar.gz.md5<br />

+					2.1/rc1/src/apache-openmeetings-2.1.0-src.tar.gz.asc<br />

+					2.1/rc1/bin<br />

+					2.1/rc1/bin/apache-openmeetings-2.1.0.zip<br />

+					2.1/rc1/bin/apache-openmeetings-2.1.0.tar.gz<br />

+					2.1/rc1/bin/apache-openmeetings-2.1.0.zip.md5<br />

+					2.1/rc1/bin/apache-openmeetings-2.1.0.zip.asc<br />

+					2.1/rc1/bin/apache-openmeetings-2.1.0.tar.gz.md5<br />

+					2.1/rc1/bin/apache-openmeetings-2.1.0.tar.gz.asc<br />

+					2.1/rc1/CHANGELOG<br />

+					2.1/rc1/KEYS<br />

+				</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Step2 - VOTE and RESULT emails"><strong>Step2 - VOTE and RESULT emails</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+					Send a "VOTE" to the developer mailing list including links to release artefacts.<br />

+					A VOTE always contains two parts:<br />

+					Send an email to the developer mailing list with the subject line:<br />

+					[VOTE] Apache OpenMeetings x.xx release<br />

+					An example for such an email:

+					<a href="http://s.apache.org/vote-2.1.0RC1">example Vote email</a>

+					<a href="http://s.apache.org/vote-2.0.0RC4">example Vote email (Incubator)</a>

+					<br />

+					Forward (Not CC) this Vote email to: private@openmeetings.apache.org<br />

+					<br />

+					After the vote is over, send a "RESULT" email to the list with the subject line:<br />

+					[RESULT][VOTE] Apache OpenMeetings x.xx release<br />

+					An example for such an email:

+					<a href="http://mail-archives.apache.org/mod_mbox/incubator-openmeetings-dev/201207.mbox/%3CCACeMiA-ibo6fGCbnLjJX9H5H2kFGDVJRMfxPyMtzWzCWNi%2BpOg%40mail.gmail.com%3E">example Result email</a>

+					<br />

+					Forward (Not CC) this RESULT VOTE email to: private@openmeetings.apache.org<br />

+					<br />

+					Votes on whether a package is ready to be released use majority approval -- i.e., at 

+					least three PMC members must vote affirmatively for release, and there must be more 

+					positive than negative votes. Releases may not be vetoed. Before voting +1 PMC members

+					are required to download the signed source code package, compile it as provided, and 

+					test the resulting executable on their own platform, along with also verifying that 

+					the package meets the requirements of the ASF policy on releases.

+				</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Step3 - Distribute and announce"><strong>Step3 - Distribute and announce</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>If VOTEs positive: Upload the release </p>
+                                                <div class="xmlcode">

+					svn mv https://dist.apache.org/repos/dist/dev/openmeetings/2.1/rc3 \<br />

+						https://dist.apache.org/repos/dist/release/openmeetings/2.1 \<br />

+						-m "RC3 is released as 2.1"

+				</div>
+                                                <p>

+					Wait 24 hours (until all Apache mirrors have synced the packages)

+					and send an announcement to the mailing list + blog and any other

+					channel.

+				</p>
+                                                <p>

+					Email announcements should have the subject line:

+					<br />

+					[ANNOUNCE] Apache OpenMeetings x.xx released

+				</p>
+                                                <p>

+					Add a section to <a href="downloads.html">downloads</a> website.<br />

+					Make sure that the binary packages are linked using the mirror URL as base path (

+					<b>not</b> http://www.apache.org/dist):<br />

+					Mirror URL: 

+					<a href="http://www.apache.org/dyn/closer.cgi/openmeetings/">http://www.apache.org/dyn/closer.cgi/openmeetings/</a>

+				</p>
+                                                <p>

+					Release candidates should be deleted from <tt>https://dist.apache.org/repos/dist/dev/openmeetings/</tt><br />

+					Old releases should be deleted from <tt>https://dist.apache.org/repos/dist/release/openmeetings/</tt>

+				</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/RestAPISample.html b/docs/RestAPISample.html
new file mode 100644
index 0000000..d3ac1d8
--- /dev/null
+++ b/docs/RestAPISample.html
@@ -0,0 +1,414 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			Sebastian Wagner
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Home</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Introduction"><strong>Introduction</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p> For a detailed instruction which services, methods and params are available see the list in the SoapMethods. ALL methods that are implemented for the SOAP API are also available via REST. 

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="How to invoke Services via REST"><strong>How to invoke Services via REST</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>For example for the method getSession in the UserService, you would use this URL via REST:

+			</p>
+                                                <p>Sample URL: </p>
+                                                <a href="http://demo.openmeetings.de/openmeetings/services/UserService/getSession">http://demo.openmeetings.de/openmeetings/services/UserService/getSession</a>
+                                                <p>Result: </p>
+                                                <div class="xmlcode">

+				&lt;ns:getSessionResponse/&gt;<br />

+				&lt;ns:return type="org.apache.openmeetings.hibernate.beans.basic.Sessiondata"/&gt;<br />

+				<div style="margin-left:20px">

+					&lt;ax219:id&gt;156971&lt;/ax219:id/&gt;<br />

+					&lt;ax219:language_id xsi:nil="true"//&gt;<br />

+					&lt;ax219:organization_id xsi:nil="true"//&gt;<br />

+					&lt;ax219:refresh_time&gt;2011-07-03T14:40:44.000Z&lt;/ax219:refresh_time/&gt;<br />

+					&lt;ax219:sessionXml xsi:nil="true"//&gt;<br />

+					&lt;ax219:session_id&gt;26584705202d7c1de6cc8e7e28890e3d&lt;/ax219:session_id/&gt;<br />

+					&lt;ax219:starttermin_time&gt;2011-07-03T14:40:44.000Z&lt;/ax219:starttermin_time/&gt;<br />

+					&lt;ax219:storePermanent xsi:nil="true"//&gt;<br />

+					&lt;ax219:user_id xsi:nil="true"//&gt;<br />

+				</div>

+				&lt;/ns:return/&gt;<br />

+				&lt;/ns:getSessionResponse/&gt;<br />

+			</div>
+                                                <p>To login a user the call to auth would be:</p>
+                                                <p>Sample URL: </p>
+                                                <a href="http://demo.openmeetings.de/openmeetings/services/UserService/loginUser?SID=26584705202d7c1de6cc8e7e28890e3d&amp;username=hans&amp;userpass=test">http://demo.openmeetings.de/openmeetings/services/UserService/loginUser?SID=26584705202d7c1de6cc8e7e28890e3d&amp;username=han&amp;userpass=test</a>
+                                                <p>Result: </p>
+                                                <div class="xmlcode">

+				&lt;ns:loginUserResponse/&gt;<br />

+				<div style="margin-left:20px">

+				    &lt;ns:return&gt;-11&lt;/ns:return/&gt;<br />

+				</div>

+				&lt;/ns:loginUserResponse/&gt;<br />

+			</div>
+                                                <p>=&gt; It does return -10, which is the error id cause we will not write down a SOAP login to our public server in this wiki. However the correct way to check this error would be to invoke the call to get the localized error message. So we invoke the method to get the error via REST:</p>
+                                                <p>Sample URL: </p>
+                                                <a href="http://demo.openmeetings.de/openmeetings/services/UserService/getErrorByCode?SID=26584705202d7c1de6cc8e7e28890e3d&amp;errorid=-10&amp;language_id=1">http://demo.openmeetings.de/openmeetings/services/UserService/getErrorByCode?SID=26584705202d7c1de6cc8e7e28890e3d&amp;errorid=-10&amp;language_id=1</a>
+                                                <p>Result:</p>
+                                                <div class="xmlcode">

+				&lt;ns:getErrorByCodeResponse/&gt;<br />

+				&lt;ns:return type="org.apache.openmeetings.db.dto.basic.ErrorResult"/&gt;<br />

+				<div style="margin-left:20px">

+					&lt;ax218:errmessage&gt;Username not found&lt;/ax218:errmessage/&gt;<br />

+					&lt;ax218:errorId&gt;-10&lt;/ax218:errorId/&gt;<br />

+					&lt;ax218:errortype&gt;Error&lt;/ax218:errortype/&gt;<br />

+				</div>

+				&lt;/ns:return/&gt;<br />

+				&lt;/ns:getErrorByCodeResponse/&gt;<br />

+			</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/RestrictedAccess.html b/docs/RestrictedAccess.html
new file mode 100644
index 0000000..d272b1d
--- /dev/null
+++ b/docs/RestrictedAccess.html
@@ -0,0 +1,401 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - How to restrict access to your Openmeetings server</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Server Side"><strong>Server Side</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>You can protect your OpenMeetings instance from beeing accessed

+				from 3th party by using the file:

+			</p>
+                                                <p>$RED5_HOME/webapps/openmeetings/WEB-INF/red5-web.properties </p>
+                                                <p>Content: </p>
+                                                <div class="xmlcode">

+				webapp.virtualHosts=*,localhost, 127.0.0.1

+			</div>
+                                                <a href="http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/red5-web.properties" rel="nofollow">http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/red5-web.properties

+			</a>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Client Side"><strong>Client Side</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>And you can restrict the access also for the client side: Every

+				Flash Plugin will check a file called "crossdomain.xml" before it

+				tries to access the server using rtmp/RPC. This file is located: </p>
+                                                <p>$RED5_HOME/webapps/root/crossdomain.xml </p>
+                                                <p>Content: </p>
+                                                <div class="xmlcode">

+				&lt;?xml version="1.0"?&gt;<br />

+				&lt;cross-domain-policy&gt;<br />

+				        &lt;site-control permitted-cross-domain-policies="all"/&gt;<br />

+				        &lt;allow-access-from domain="localhost" to-ports="20-65535"/&gt;<br />

+				        &lt;allow-access-from domain="*.local" to-ports="20-65535"/&gt;<br />

+				&lt;/cross-domain-policy&gt;<br />

+			</div>
+                                                <p>

+				Sample file:

+				<a href="http://code.google.com/p/red5/source/browse/java/server/trunk/webapps/root/crossdomain.xml" rel="nofollow">http://code.google.com/p/red5/source/browse/java/server/trunk/webapps/root/crossdomain.xml

+				</a>

+			</p>
+                                                <p>

+					If you accessing your application behind an Apache Webservre (using

+					mod_proxy or mod_jk2) be careful to make the crossdomain.xml

+					accessible. Flash will always search for this file in the www-root

+					directory of every URL you connect to. You might use

+					<a href="https://addons.mozilla.org/de/firefox/addon/firebug/" rel="nofollow">FireBug

+					</a>

+					for example to lookup requests.

+				</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/RoomService.html b/docs/RoomService.html
new file mode 100644
index 0000000..a961764
--- /dev/null
+++ b/docs/RoomService.html
@@ -0,0 +1,5041 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+          

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+-->

+

+    <!-- ====================================================================== -->

+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE TEMPLATE INSTEAD! -->

+    <!-- Main Page Section -->

+    <!-- ====================================================================== -->

+    

+     <html>

+        <head>

+		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>

+		<meta name="author" content="OpenMeetings Team">

+		<meta name="email" content="sebawagner@apache.org">

+		<title>OpenMeetings API Methods</title>

+		<link rel="stylesheet" type="text/css" href="openmeetings_docs.css">

+        </head>

+	<body>

+	

+		<h3>Available WebServices:</h3>

+	

+		<iframe src="WebserviceIndex.html" width="100%" height="210" name="WebserviceIndex.html"

+			scrolling="no" marginheight="0" marginwidth="0" frameborder="0">

+		  <p>Your Browser does not support frames ...</p>

+		</iframe>

+		

+		<hr />

+	

+	   <h3>WebService: RoomService</h3>

+	   <p>RoomService contains methods to manipulate rooms and create invitation hash<p>

+	   <p>WSDL sample Url: <a href="http://localhost:5080/openmeetings/services/RoomService?wsdl">http://localhost:5080/openmeetings/services/RoomService?wsdl</a><p>

+	

+	<!-- Links to Methods -->

+	   <h3>Index of Methods available in RoomService</h3>

+	   

+       <div class="navigation">

+	                               <div>

+                <a href="#getRoomsPublic"><b>getRoomsPublic</b></a><br/>

+                <div class="navigation_comment"><i >Returns an Object of Type RoomsList which contains a list of
+ Room-Objects. Every Room-Object contains a Roomtype and all informations
+ about that Room. The List of current-users in the room is Null if you get
+ them via SOAP. The Roomtype can be 1 for conference rooms or 2 for
+ audience rooms.</i></div>

+                </div>

+                                               <div>

+                <a href="#deleteFlvRecording"><b>deleteFlvRecording</b></a><br/>

+                <div class="navigation_comment"><i >Deletes a flv recording</i></div>

+                </div>

+                                               <div>

+                <a href="#getFlvRecordingByExternalUserId"><b>getFlvRecordingByExternalUserId</b></a><br/>

+                <div class="navigation_comment"><i >Gets a list of flv recordings</i></div>

+                </div>

+                                               <div>

+                <a href="#getFlvRecordingByExternalRoomTypeAndCreator"><b>getFlvRecordingByExternalRoomTypeAndCreator</b></a><br/>

+                <div class="navigation_comment"><i >Gets a list of flv recordings</i></div>

+                </div>

+                                               <div>

+                <a href="#getFlvRecordingByExternalRoomTypeByList"><b>getFlvRecordingByExternalRoomTypeByList</b></a><br/>

+                <div class="navigation_comment"><i >Gets a list of flv recordings</i></div>

+                </div>

+                                               <div>

+                <a href="#getFlvRecordingByExternalRoomType"><b>getFlvRecordingByExternalRoomType</b></a><br/>

+                <div class="navigation_comment"><i >Gets a list of flv recordings</i></div>

+                </div>

+                                               <div>

+                <a href="#getFlvRecordingByRoomId"><b>getFlvRecordingByRoomId</b></a><br/>

+                <div class="navigation_comment"><i >Get list of recordings</i></div>

+                </div>

+                                               <div>

+                <a href="#getRoomTypes"><b>getRoomTypes</b></a><br/>

+                <div class="navigation_comment"><i >List of available room types</i></div>

+                </div>

+                                               <div>

+                <a href="#getRoomCounters"><b>getRoomCounters</b></a><br/>

+                <div class="navigation_comment"><i >Returns current users for rooms ids</i></div>

+                </div>

+                                               <div>

+                <a href="#getRoomById"><b>getRoomById</b></a><br/>

+                <div class="navigation_comment"><i >returns a conference room object</i></div>

+                </div>

+                                               <div>

+                <a href="#getRoomWithClientObjectsById"><b>getRoomWithClientObjectsById</b></a><br/>

+                <div class="navigation_comment"><i >Returns a object of type RoomReturn</i></div>

+                </div>

+                                               <div>

+                <a href="#getRooms"><b>getRooms</b></a><br/>

+                <div class="navigation_comment"><i >Returns a List of Objects of Rooms You can use "name" as value for
+ orderby or rooms_id</i></div>

+                </div>

+                                               <div>

+                <a href="#getRoomsWithCurrentUsers"><b>getRoomsWithCurrentUsers</b></a><br/>

+                <div class="navigation_comment"><i >Returns a List of Objects of Rooms You can use "name" as value for
+ orderby or rooms_id. It also fills the attribute currentUsers in the
+ Room-Object</i></div>

+                </div>

+                                               <div>

+                <a href="#addRoom"><b>addRoom</b></a><br/>

+                <div class="navigation_comment"><i >TODO: Fix Organization Issue
+ 
+ deprecated use addRoomWithModeration instead</i></div>

+                </div>

+                                               <div>

+                <a href="#addRoomWithModeration"><b>addRoomWithModeration</b></a><br/>

+                <div class="navigation_comment"><i >Create a conference room</i></div>

+                </div>

+                                               <div>

+                <a href="#addRoomWithModerationAndQuestions"><b>addRoomWithModerationAndQuestions</b></a><br/>

+                <div class="navigation_comment"><i >this SOAP Method has an additional param to enable or disable the buttons
+ to apply for moderation this does only work in combination with the
+ room-type restricted</i></div>

+                </div>

+                                               <div>

+                <a href="#addRoomWithModerationQuestionsAndAudioType"><b>addRoomWithModerationQuestionsAndAudioType</b></a><br/>

+                <div class="navigation_comment"><i >adds a new room with options for user questions and audio only</i></div>

+                </div>

+                                               <div>

+                <a href="#addRoomWithModerationQuestionsAudioTypeAndHideOptions"><b>addRoomWithModerationQuestionsAudioTypeAndHideOptions</b></a><br/>

+                <div class="navigation_comment"><i >adds a new room with options for user questions, audio only and hide</i></div>

+                </div>

+                                               <div>

+                <a href="#getRoomIdByExternalId"><b>getRoomIdByExternalId</b></a><br/>

+                <div class="navigation_comment"><i >Checks if a room with this exteralRoomId + externalRoomType does exist,
+ if yes it returns the room id if not, it will create the room and then
+ return the room id of the newly created room</i></div>

+                </div>

+                                               <div>

+                <a href="#updateRoom"><b>updateRoom</b></a><br/>

+                <div class="navigation_comment"><i >TODO: Fix Organization Issue deprecated use updateRoomWithModeration</i></div>

+                </div>

+                                               <div>

+                <a href="#updateRoomWithModeration"><b>updateRoomWithModeration</b></a><br/>

+                <div class="navigation_comment"><i >Updates a conference room by its room id</i></div>

+                </div>

+                                               <div>

+                <a href="#updateRoomWithModerationAndQuestions"><b>updateRoomWithModerationAndQuestions</b></a><br/>

+                <div class="navigation_comment"><i ></i></div>

+                </div>

+                                               <div>

+                <a href="#updateRoomWithModerationQuestionsAudioTypeAndHideOptions"><b>updateRoomWithModerationQuestionsAudioTypeAndHideOptions</b></a><br/>

+                <div class="navigation_comment"><i >update room with options for user questions, audio only and hide</i></div>

+                </div>

+                                               <div>

+                <a href="#deleteRoom"><b>deleteRoom</b></a><br/>

+                <div class="navigation_comment"><i >Delete a room by its room id</i></div>

+                </div>

+                                               <div>

+                <a href="#kickUser"><b>kickUser</b></a><br/>

+                <div class="navigation_comment"><i >kick all uses of a certain room</i></div>

+                </div>

+                                               <div>

+                <a href="#addRoomWithModerationAndExternalType"><b>addRoomWithModerationAndExternalType</b></a><br/>

+                <div class="navigation_comment"><i >Add a new conference room with option to set the external room type, the
+ external room type should be set if multiple applications use the same
+ OpenMeetings instance</i></div>

+                </div>

+                                               <div>

+                <a href="#addRoomWithModerationExternalTypeAndAudioType"><b>addRoomWithModerationExternalTypeAndAudioType</b></a><br/>

+                <div class="navigation_comment"><i >Adds a new room with options for audio only</i></div>

+                </div>

+                                               <div>

+                <a href="#addRoomWithModerationAndRecordingFlags"><b>addRoomWithModerationAndRecordingFlags</b></a><br/>

+                <div class="navigation_comment"><i >Adds a new room with options for recording</i></div>

+                </div>

+                                               <div>

+                <a href="#addRoomWithModerationExternalTypeAndTopBarOption"><b>addRoomWithModerationExternalTypeAndTopBarOption</b></a><br/>

+                <div class="navigation_comment"><i >Add a conference room with options to disable the top menu bar in the
+ conference room</i></div>

+                </div>

+                                               <div>

+                <a href="#getInvitationHash"><b>getInvitationHash</b></a><br/>

+                <div class="navigation_comment"><i >Create a Invitation hash and optionally send it by mail the From to Date
+ is as String as some SOAP libraries do not accept Date Objects in SOAP
+ Calls Date is parsed as dd.mm.yyyy, time as hh:mm (don't forget the
+ leading zero's)</i></div>

+                </div>

+                                               <div>

+                <a href="#sendInvitationHash"><b>sendInvitationHash</b></a><br/>

+                <div class="navigation_comment"><i >Create a Invitation hash and optionally send it by mail the From to Date
+ is as String as some SOAP libraries do not accept Date Objects in SOAP
+ Calls Date is parsed as dd.mm.yyyy, time as hh:mm (don't forget the
+ leading zero's)</i></div>

+                </div>

+                                               <div>

+                <a href="#sendInvitationHashWithDateObject"><b>sendInvitationHashWithDateObject</b></a><br/>

+                <div class="navigation_comment"><i >Create a Invitation hash and optionally send it by mail the From to Date
+ is as String as some SOAP libraries do not accept Date Objects in SOAP
+ Calls Date is parsed as dd.mm.yyyy, time as hh:mm (don't forget the
+ leading zero's)</i></div>

+                </div>

+                                               <div>

+                <a href="#getRoomsWithCurrentUsersByList"><b>getRoomsWithCurrentUsersByList</b></a><br/>

+                <div class="navigation_comment"><i >Return a RoomReturn Object with information of the current users of a
+ conference room</i></div>

+                </div>

+                                               <div>

+                <a href="#getRoomsWithCurrentUsersByListAndType"><b>getRoomsWithCurrentUsersByListAndType</b></a><br/>

+                <div class="navigation_comment"><i >Return a RoomReturn Object with information of the current users of a
+ conference room with option to search for special external room types</i></div>

+                </div>

+                                               <div>

+                <a href="#addRoomWithModerationAndExternalTypeAndStartEnd"><b>addRoomWithModerationAndExternalTypeAndStartEnd</b></a><br/>

+                <div class="navigation_comment"><i >Adds a conference room that is only available for a period of time</i></div>

+                </div>

+                                               <div>

+                <a href="#addMeetingMemberRemindToRoom"><b>addMeetingMemberRemindToRoom</b></a><br/>

+                <div class="navigation_comment"><i >Add a meeting member to a certain room. This is the same as adding an
+ external user to a event in the calendar.</i></div>

+                </div>

+                                               <div>

+                <a href="#addExternalMeetingMemberRemindToRoom"><b>addExternalMeetingMemberRemindToRoom</b></a><br/>

+                <div class="navigation_comment"><i >Add a meeting member to a certain room. This is the same as adding an
+ external user to a event in the calendar. with a certain time zone</i></div>

+                </div>

+                                               <div>

+                <a href="#closeRoom"><b>closeRoom</b></a><br/>

+                <div class="navigation_comment"><i >Method to remotely close or open rooms. If a room is closed all users
+ inside the room and all users that try to enter it will be redirected to
+ the redirectURL that is defined in the Room-Object.
+ 
+ Returns positive value if authentication was successful.</i></div>

+                </div>

+                                               <div>

+                <a href="#modifyRoomParameter"><b>modifyRoomParameter</b></a><br/>

+                <div class="navigation_comment"><i >Method to update arbitrary room parameter.</i></div>

+                </div>

+                                               <div>

+                <a href="#addRoomToOrg"><b>addRoomToOrg</b></a><br/>

+                <div class="navigation_comment"><i >Adds a room to an organization</i></div>

+                </div>

+                           </div>

+	   

+	    <h3>Methods Details in RoomService</h3>

+	

+				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getRoomsPublic" ><b>getRoomsPublic</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getRoomsPublic (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long roomtypes_id

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Returns an Object of Type RoomsList which contains a list of
+ Room-Objects. Every Room-Object contains a Roomtype and all informations
+ about that Room. The List of current-users in the room is Null if you get
+ them via SOAP. The Roomtype can be 1 for conference rooms or 2 for
+ audience rooms.

+    			</p>

+    			<p>

+                  Return Type: org.apache.openmeetings.db.entity.room.Room[]

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">roomtypes_id</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getRoomsPublic?SID=VALUE&roomtypes_id=VALUE">http://localhost:5080/openmeetings/services/RoomService/getRoomsPublic?SID=VALUE&amp;roomtypes_id=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="deleteFlvRecording" ><b>deleteFlvRecording</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>deleteFlvRecording (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long flvRecordingId

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Deletes a flv recording

+    			</p>

+    			<p>

+                  Return Type: boolean

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">flvRecordingId</td>

+	                     <td valign="top">the id of the recording</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/deleteFlvRecording?SID=VALUE&flvRecordingId=VALUE">http://localhost:5080/openmeetings/services/RoomService/deleteFlvRecording?SID=VALUE&amp;flvRecordingId=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getFlvRecordingByExternalUserId" ><b>getFlvRecordingByExternalUserId</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getFlvRecordingByExternalUserId (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String externalUserId

+    			       			    			       			     , 

+    			       			   String externalUserType

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Gets a list of flv recordings

+    			</p>

+    			<p>

+                  Return Type: java.util.List<org.apache.openmeetings.db.dto.file.RecordingObject>

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalUserId</td>

+	                     <td valign="top">the externalUserId</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalUsertype</td>

+	                     <td valign="top">the externalUserType</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getFlvRecordingByExternalUserId?SID=VALUE&externalUserId=VALUE&externalUserType=VALUE">http://localhost:5080/openmeetings/services/RoomService/getFlvRecordingByExternalUserId?SID=VALUE&amp;externalUserId=VALUE&amp;externalUserType=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getFlvRecordingByExternalRoomTypeAndCreator" ><b>getFlvRecordingByExternalRoomTypeAndCreator</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getFlvRecordingByExternalRoomTypeAndCreator (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String externalRoomType

+    			       			    			       			     , 

+    			       			   Long insertedBy

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Gets a list of flv recordings

+    			</p>

+    			<p>

+                  Return Type: org.apache.openmeetings.db.dto.file.RecordingObject[]

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalRoomType</td>

+	                     <td valign="top">externalRoomType specified when creating the room</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">insertedBy</td>

+	                     <td valign="top">the userId that created the recording</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getFlvRecordingByExternalRoomTypeAndCreator?SID=VALUE&externalRoomType=VALUE&insertedBy=VALUE">http://localhost:5080/openmeetings/services/RoomService/getFlvRecordingByExternalRoomTypeAndCreator?SID=VALUE&amp;externalRoomType=VALUE&amp;insertedBy=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getFlvRecordingByExternalRoomTypeByList" ><b>getFlvRecordingByExternalRoomTypeByList</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getFlvRecordingByExternalRoomTypeByList (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String externalRoomType

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Gets a list of flv recordings

+    			</p>

+    			<p>

+                  Return Type: java.util.List<org.apache.openmeetings.db.entity.record.FlvRecording>

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalRoomType</td>

+	                     <td valign="top">externalRoomType specified when creating the room</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getFlvRecordingByExternalRoomTypeByList?SID=VALUE&externalRoomType=VALUE">http://localhost:5080/openmeetings/services/RoomService/getFlvRecordingByExternalRoomTypeByList?SID=VALUE&amp;externalRoomType=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getFlvRecordingByExternalRoomType" ><b>getFlvRecordingByExternalRoomType</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getFlvRecordingByExternalRoomType (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String externalRoomType

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Gets a list of flv recordings

+    			</p>

+    			<p>

+                  Return Type: org.apache.openmeetings.db.entity.record.FlvRecording[]

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalRoomType</td>

+	                     <td valign="top">externalRoomType specified when creating the room</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getFlvRecordingByExternalRoomType?SID=VALUE&externalRoomType=VALUE">http://localhost:5080/openmeetings/services/RoomService/getFlvRecordingByExternalRoomType?SID=VALUE&amp;externalRoomType=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getFlvRecordingByRoomId" ><b>getFlvRecordingByRoomId</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getFlvRecordingByRoomId (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long roomId

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Get list of recordings

+    			</p>

+    			<p>

+                  Return Type: org.apache.openmeetings.db.entity.record.FlvRecording[]

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">roomId</td>

+	                     <td valign="top">the room id</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getFlvRecordingByRoomId?SID=VALUE&roomId=VALUE">http://localhost:5080/openmeetings/services/RoomService/getFlvRecordingByRoomId?SID=VALUE&amp;roomId=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getRoomTypes" ><b>getRoomTypes</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getRoomTypes (

+    			    			    			       			   String SID

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  List of available room types

+    			</p>

+    			<p>

+                  Return Type: java.util.List<org.apache.openmeetings.db.entity.room.RoomType>

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">- The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getRoomTypes?SID=VALUE">http://localhost:5080/openmeetings/services/RoomService/getRoomTypes?SID=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getRoomCounters" ><b>getRoomCounters</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getRoomCounters (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Integer roomId

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Returns current users for rooms ids

+    			</p>

+    			<p>

+                  Return Type: java.util.List<org.apache.openmeetings.axis.services.RoomCountBean>

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">- The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">roomId</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getRoomCounters?SID=VALUE&roomId=VALUE">http://localhost:5080/openmeetings/services/RoomService/getRoomCounters?SID=VALUE&amp;roomId=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getRoomById" ><b>getRoomById</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getRoomById (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   long rooms_id

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  returns a conference room object

+    			</p>

+    			<p>

+                  Return Type: org.apache.openmeetings.db.entity.room.Room

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">- The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		long

+	                     		                     </td>

+	                     <td valign="top">rooms_id</td>

+	                     <td valign="top">- the room id</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getRoomById?SID=VALUE&rooms_id=VALUE">http://localhost:5080/openmeetings/services/RoomService/getRoomById?SID=VALUE&amp;rooms_id=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getRoomWithClientObjectsById" ><b>getRoomWithClientObjectsById</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getRoomWithClientObjectsById (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   long rooms_id

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Returns a object of type RoomReturn

+    			</p>

+    			<p>

+                  Return Type: org.apache.openmeetings.axis.services.RoomReturn

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		long

+	                     		                     </td>

+	                     <td valign="top">rooms_id</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getRoomWithClientObjectsById?SID=VALUE&rooms_id=VALUE">http://localhost:5080/openmeetings/services/RoomService/getRoomWithClientObjectsById?SID=VALUE&amp;rooms_id=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getRooms" ><b>getRooms</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getRooms (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   int start

+    			       			    			       			     , 

+    			       			   int max

+    			       			    			       			     , 

+    			       			   String orderby

+    			       			    			       			     , 

+    			       			   boolean asc

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Returns a List of Objects of Rooms You can use "name" as value for
+ orderby or rooms_id

+    			</p>

+    			<p>

+                  Return Type: org.apache.openmeetings.db.dto.room.RoomSearchResult

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">- The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">start</td>

+	                     <td valign="top">- The id you want to start</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">max</td>

+	                     <td valign="top">- The maximum you want to get</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">orderby</td>

+	                     <td valign="top">- The column it will be ordered</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		boolean

+	                     		                     </td>

+	                     <td valign="top">asc</td>

+	                     <td valign="top">- Asc or Desc sort ordering</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getRooms?SID=VALUE&start=VALUE&max=VALUE&orderby=VALUE&asc=VALUE">http://localhost:5080/openmeetings/services/RoomService/getRooms?SID=VALUE&amp;start=VALUE&amp;max=VALUE&amp;orderby=VALUE&amp;asc=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getRoomsWithCurrentUsers" ><b>getRoomsWithCurrentUsers</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getRoomsWithCurrentUsers (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   int start

+    			       			    			       			     , 

+    			       			   int max

+    			       			    			       			     , 

+    			       			   String orderby

+    			       			    			       			     , 

+    			       			   boolean asc

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Returns a List of Objects of Rooms You can use "name" as value for
+ orderby or rooms_id. It also fills the attribute currentUsers in the
+ Room-Object

+    			</p>

+    			<p>

+                  Return Type: org.apache.openmeetings.db.dto.room.RoomSearchResult

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">- The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">start</td>

+	                     <td valign="top">- The id you want to start</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">max</td>

+	                     <td valign="top">- The maximum you want to get</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">orderby</td>

+	                     <td valign="top">- The column it will be ordered</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		boolean

+	                     		                     </td>

+	                     <td valign="top">asc</td>

+	                     <td valign="top">- Asc or Desc sort ordering</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getRoomsWithCurrentUsers?SID=VALUE&start=VALUE&max=VALUE&orderby=VALUE&asc=VALUE">http://localhost:5080/openmeetings/services/RoomService/getRoomsWithCurrentUsers?SID=VALUE&amp;start=VALUE&amp;max=VALUE&amp;orderby=VALUE&amp;asc=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="addRoom" ><b>addRoom</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>addRoom (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String name

+    			       			    			       			     , 

+    			       			   Long roomtypes_id

+    			       			    			       			     , 

+    			       			   String comment

+    			       			    			       			     , 

+    			       			   Long numberOfPartizipants

+    			       			    			       			     , 

+    			       			   Boolean ispublic

+    			       			    			       			     , 

+    			       			   Integer videoPodWidth

+    			       			    			       			     , 

+    			       			   Integer videoPodHeight

+    			       			    			       			     , 

+    			       			   Integer videoPodXPosition

+    			       			    			       			     , 

+    			       			   Integer videoPodYPosition

+    			       			    			       			     , 

+    			       			   Integer moderationPanelXPosition

+    			       			    			       			     , 

+    			       			   Boolean showWhiteBoard

+    			       			    			       			     , 

+    			       			   Integer whiteBoardPanelXPosition

+    			       			    			       			     , 

+    			       			   Integer whiteBoardPanelYPosition

+    			       			    			       			     , 

+    			       			   Integer whiteBoardPanelHeight

+    			       			    			       			     , 

+    			       			   Integer whiteBoardPanelWidth

+    			       			    			       			     , 

+    			       			   Boolean showFilesPanel

+    			       			    			       			     , 

+    			       			   Integer filesPanelXPosition

+    			       			    			       			     , 

+    			       			   Integer filesPanelYPosition

+    			       			    			       			     , 

+    			       			   Integer filesPanelHeight

+    			       			    			       			     , 

+    			       			   Integer filesPanelWidth

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  TODO: Fix Organization Issue
+ 
+ deprecated use addRoomWithModeration instead

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">name</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">roomtypes_id</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">comment</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">numberOfPartizipants</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">ispublic</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">videoPodWidth</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">videoPodHeight</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">videoPodXPosition</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">videoPodYPosition</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">moderationPanelXPosition</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">showWhiteBoard</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">whiteBoardPanelXPosition</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">whiteBoardPanelYPosition</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">whiteBoardPanelHeight</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">whiteBoardPanelWidth</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">showFilesPanel</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">filesPanelXPosition</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">filesPanelYPosition</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">filesPanelHeight</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">filesPanelWidth</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addRoom?SID=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&videoPodWidth=VALUE&videoPodHeight=VALUE&videoPodXPosition=VALUE&videoPodYPosition=VALUE&moderationPanelXPosition=VALUE&showWhiteBoard=VALUE&whiteBoardPanelXPosition=VALUE&whiteBoardPanelYPosition=VALUE&whiteBoardPanelHeight=VALUE&whiteBoardPanelWidth=VALUE&showFilesPanel=VALUE&filesPanelXPosition=VALUE&filesPanelYPosition=VALUE&filesPanelHeight=VALUE&filesPanelWidth=VALUE">http://localhost:5080/openmeetings/services/RoomService/addRoom?SID=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;videoPodWidth=VALUE&amp;videoPodHeight=VALUE&amp;videoPodXPosition=VALUE&amp;videoPodYPosition=VALUE&amp;moderationPanelXPosition=VALUE&amp;showWhiteBoard=VALUE&amp;whiteBoardPanelXPosition=VALUE&amp;whiteBoardPanelYPosition=VALUE&amp;whiteBoardPanelHeight=VALUE&amp;whiteBoardPanelWidth=VALUE&amp;showFilesPanel=VALUE&amp;filesPanelXPosition=VALUE&amp;filesPanelYPosition=VALUE&amp;filesPanelHeight=VALUE&amp;filesPanelWidth=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="addRoomWithModeration" ><b>addRoomWithModeration</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>addRoomWithModeration (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String name

+    			       			    			       			     , 

+    			       			   Long roomtypes_id

+    			       			    			       			     , 

+    			       			   String comment

+    			       			    			       			     , 

+    			       			   Long numberOfPartizipants

+    			       			    			       			     , 

+    			       			   Boolean ispublic

+    			       			    			       			     , 

+    			       			   Boolean appointment

+    			       			    			       			     , 

+    			       			   Boolean isDemoRoom

+    			       			    			       			     , 

+    			       			   Integer demoTime

+    			       			    			       			     , 

+    			       			   Boolean isModeratedRoom

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Create a conference room

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">name</td>

+	                     <td valign="top">Name of the Room</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">roomtypes_id</td>

+	                     <td valign="top">Type of that room (1 = Conference, 2 = Audience, 3 =
+            Restricted, 4 = Interview)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">comment</td>

+	                     <td valign="top">any comment</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">numberOfPartizipants</td>

+	                     <td valign="top">the maximum users allowed in this room</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">ispublic</td>

+	                     <td valign="top">If this room is public (use true if you don't deal with
+            different Organizations)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">appointment</td>

+	                     <td valign="top">is it a Calendar Room (use false by default)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isDemoRoom</td>

+	                     <td valign="top">is it a Demo Room with limited time (use false by default)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">demoTime</td>

+	                     <td valign="top">time in seconds after the user will be logged out (only
+            enabled if isDemoRoom is true)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isModeratedRoom</td>

+	                     <td valign="top">Users have to wait untill a Moderator arrives. Use the
+            becomeModerator param in setUserObjectAndGenerateRoomHash to
+            set a user as default Moderator</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addRoomWithModeration?SID=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE">http://localhost:5080/openmeetings/services/RoomService/addRoomWithModeration?SID=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="addRoomWithModerationAndQuestions" ><b>addRoomWithModerationAndQuestions</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>addRoomWithModerationAndQuestions (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String name

+    			       			    			       			     , 

+    			       			   Long roomtypes_id

+    			       			    			       			     , 

+    			       			   String comment

+    			       			    			       			     , 

+    			       			   Long numberOfPartizipants

+    			       			    			       			     , 

+    			       			   Boolean ispublic

+    			       			    			       			     , 

+    			       			   Boolean appointment

+    			       			    			       			     , 

+    			       			   Boolean isDemoRoom

+    			       			    			       			     , 

+    			       			   Integer demoTime

+    			       			    			       			     , 

+    			       			   Boolean isModeratedRoom

+    			       			    			       			     , 

+    			       			   Boolean allowUserQuestions

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  this SOAP Method has an additional param to enable or disable the buttons
+ to apply for moderation this does only work in combination with the
+ room-type restricted

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">name</td>

+	                     <td valign="top">Name of the Room</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">roomtypes_id</td>

+	                     <td valign="top">Type of that room (1 = Conference, 2 = Audience, 3 =
+            Restricted, 4 = Interview)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">comment</td>

+	                     <td valign="top">any comment</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">numberOfPartizipants</td>

+	                     <td valign="top">the maximum users allowed in this room</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">ispublic</td>

+	                     <td valign="top">If this room is public (use true if you don't deal with
+            different Organizations)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">appointment</td>

+	                     <td valign="top">is it a Calendar Room (use false by default)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isDemoRoom</td>

+	                     <td valign="top">is it a Demo Room with limited time (use false by default)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">demoTime</td>

+	                     <td valign="top">time in seconds after the user will be logged out (only
+            enabled if isDemoRoom is true)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isModeratedRoom</td>

+	                     <td valign="top">Users have to wait untill a Moderator arrives. Use the
+            becomeModerator param in setUserObjectAndGenerateRoomHash to
+            set a user as default Moderator</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">allowUserQuestions</td>

+	                     <td valign="top">enable or disable the button to allow users to apply for
+            moderation</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationAndQuestions?SID=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE&allowUserQuestions=VALUE">http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationAndQuestions?SID=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE&amp;allowUserQuestions=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="addRoomWithModerationQuestionsAndAudioType" ><b>addRoomWithModerationQuestionsAndAudioType</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>addRoomWithModerationQuestionsAndAudioType (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String name

+    			       			    			       			     , 

+    			       			   Long roomtypes_id

+    			       			    			       			     , 

+    			       			   String comment

+    			       			    			       			     , 

+    			       			   Long numberOfPartizipants

+    			       			    			       			     , 

+    			       			   Boolean ispublic

+    			       			    			       			     , 

+    			       			   Boolean appointment

+    			       			    			       			     , 

+    			       			   Boolean isDemoRoom

+    			       			    			       			     , 

+    			       			   Integer demoTime

+    			       			    			       			     , 

+    			       			   Boolean isModeratedRoom

+    			       			    			       			     , 

+    			       			   Boolean allowUserQuestions

+    			       			    			       			     , 

+    			       			   Boolean isAudioOnly

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  adds a new room with options for user questions and audio only

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">name</td>

+	                     <td valign="top">Name of the Room</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">roomtypes_id</td>

+	                     <td valign="top">Type of that room (1 = Conference, 2 = Audience, 3 =
+            Restricted, 4 = Interview)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">comment</td>

+	                     <td valign="top">any comment</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">numberOfPartizipants</td>

+	                     <td valign="top">the maximum users allowed in this room</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">ispublic</td>

+	                     <td valign="top">If this room is public (use true if you don't deal with
+            different Organizations)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">appointment</td>

+	                     <td valign="top">is it a Calendar Room (use false by default)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isDemoRoom</td>

+	                     <td valign="top">is it a Demo Room with limited time (use false by default)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">demoTime</td>

+	                     <td valign="top">time in seconds after the user will be logged out (only
+            enabled if isDemoRoom is true)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isModeratedRoom</td>

+	                     <td valign="top">Users have to wait until a Moderator arrives. Use the
+            becomeModerator param in setUserObjectAndGenerateRoomHash to
+            set a user as default Moderator</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">allowUserQuestions</td>

+	                     <td valign="top">enable or disable the button to allow users to apply for
+            moderation</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isAudioOnly</td>

+	                     <td valign="top">enable or disable the video / or audio-only</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationQuestionsAndAudioType?SID=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE&allowUserQuestions=VALUE&isAudioOnly=VALUE">http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationQuestionsAndAudioType?SID=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE&amp;allowUserQuestions=VALUE&amp;isAudioOnly=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="addRoomWithModerationQuestionsAudioTypeAndHideOptions" ><b>addRoomWithModerationQuestionsAudioTypeAndHideOptions</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>addRoomWithModerationQuestionsAudioTypeAndHideOptions (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String name

+    			       			    			       			     , 

+    			       			   Long roomtypes_id

+    			       			    			       			     , 

+    			       			   String comment

+    			       			    			       			     , 

+    			       			   Long numberOfPartizipants

+    			       			    			       			     , 

+    			       			   Boolean ispublic

+    			       			    			       			     , 

+    			       			   Boolean appointment

+    			       			    			       			     , 

+    			       			   Boolean isDemoRoom

+    			       			    			       			     , 

+    			       			   Integer demoTime

+    			       			    			       			     , 

+    			       			   Boolean isModeratedRoom

+    			       			    			       			     , 

+    			       			   Boolean allowUserQuestions

+    			       			    			       			     , 

+    			       			   Boolean isAudioOnly

+    			       			    			       			     , 

+    			       			   Boolean hideTopBar

+    			       			    			       			     , 

+    			       			   Boolean hideChat

+    			       			    			       			     , 

+    			       			   Boolean hideActivitiesAndActions

+    			       			    			       			     , 

+    			       			   Boolean hideFilesExplorer

+    			       			    			       			     , 

+    			       			   Boolean hideActionsMenu

+    			       			    			       			     , 

+    			       			   Boolean hideScreenSharing

+    			       			    			       			     , 

+    			       			   Boolean hideWhiteboard

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  adds a new room with options for user questions, audio only and hide

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">name</td>

+	                     <td valign="top">Name of the Room</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">roomtypes_id</td>

+	                     <td valign="top">Type of that room (1 = Conference, 2 = Audience, 3 =
+            Restricted, 4 = Interview)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">comment</td>

+	                     <td valign="top">any comment</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">numberOfPartizipants</td>

+	                     <td valign="top">the maximum users allowed in this room</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">ispublic</td>

+	                     <td valign="top">If this room is public (use true if you don't deal with
+            different Organizations)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">appointment</td>

+	                     <td valign="top">is it a Calendar Room (use false by default)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isDemoRoom</td>

+	                     <td valign="top">is it a Demo Room with limited time (use false by default)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">demoTime</td>

+	                     <td valign="top">time in seconds after the user will be logged out (only
+            enabled if isDemoRoom is true)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isModeratedRoom</td>

+	                     <td valign="top">Users have to wait until a Moderator arrives. Use the
+            becomeModerator param in setUserObjectAndGenerateRoomHash to
+            set a user as default Moderator</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">allowUserQuestions</td>

+	                     <td valign="top">enable or disable the button to allow users to apply for
+            moderation</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isAudioOnly</td>

+	                     <td valign="top">enable or disable the video / or audio-only</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">hideTopBar</td>

+	                     <td valign="top">hide or show TopBar</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">hideChat</td>

+	                     <td valign="top">hide or show Chat</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">hideActivitiesAndActions</td>

+	                     <td valign="top">hide or show Activities And Actions</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">hideFilesExplorer</td>

+	                     <td valign="top">hide or show Files Explorer</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">hideActionsMenu</td>

+	                     <td valign="top">hide or show Actions Menu</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">hideScreenSharing</td>

+	                     <td valign="top">hide or show Screen Sharing</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">hideWhiteboard</td>

+	                     <td valign="top">hide or show Whiteboard. If whitboard is hidden, video pods
+            and scrollbar appear instead.</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationQuestionsAudioTypeAndHideOptions?SID=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE&allowUserQuestions=VALUE&isAudioOnly=VALUE&hideTopBar=VALUE&hideChat=VALUE&hideActivitiesAndActions=VALUE&hideFilesExplorer=VALUE&hideActionsMenu=VALUE&hideScreenSharing=VALUE&hideWhiteboard=VALUE">http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationQuestionsAudioTypeAndHideOptions?SID=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE&amp;allowUserQuestions=VALUE&amp;isAudioOnly=VALUE&amp;hideTopBar=VALUE&amp;hideChat=VALUE&amp;hideActivitiesAndActions=VALUE&amp;hideFilesExplorer=VALUE&amp;hideActionsMenu=VALUE&amp;hideScreenSharing=VALUE&amp;hideWhiteboard=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getRoomIdByExternalId" ><b>getRoomIdByExternalId</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getRoomIdByExternalId (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String name

+    			       			    			       			     , 

+    			       			   Long roomtypes_id

+    			       			    			       			     , 

+    			       			   String comment

+    			       			    			       			     , 

+    			       			   Long numberOfPartizipants

+    			       			    			       			     , 

+    			       			   Boolean ispublic

+    			       			    			       			     , 

+    			       			   Boolean appointment

+    			       			    			       			     , 

+    			       			   Boolean isDemoRoom

+    			       			    			       			     , 

+    			       			   Integer demoTime

+    			       			    			       			     , 

+    			       			   Boolean isModeratedRoom

+    			       			    			       			     , 

+    			       			   Long externalRoomId

+    			       			    			       			     , 

+    			       			   String externalRoomType

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Checks if a room with this exteralRoomId + externalRoomType does exist,
+ if yes it returns the room id if not, it will create the room and then
+ return the room id of the newly created room

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">name</td>

+	                     <td valign="top">Name of the room</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">roomtypes_id</td>

+	                     <td valign="top">Type of that room (1 = Conference, 2 = Audience, 3 =
+            Restricted, 4 = Interview)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">comment</td>

+	                     <td valign="top">any comment</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">numberOfPartizipants</td>

+	                     <td valign="top">the maximum users allowed in this room</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">ispublic</td>

+	                     <td valign="top">If this room is public (use true if you don't deal with
+            different Organizations)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">appointment</td>

+	                     <td valign="top">is it a Calendar Room? (use false if not sure what that means)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isDemoRoom</td>

+	                     <td valign="top">is it a Demo Room with limited time? (use false if not sure
+            what that means)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">demoTime</td>

+	                     <td valign="top">time in seconds after the user will be logged out (only
+            enabled if isDemoRoom is true)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isModeratedRoom</td>

+	                     <td valign="top">Users have to wait untill a Moderator arrives. Use the
+            becomeModerator param in setUserObjectAndGenerateRoomHash to
+            set a user as default Moderator</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">externalRoomId</td>

+	                     <td valign="top">your external room id may set here</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalRoomType</td>

+	                     <td valign="top">you can specify your system-name or type of room here, for
+            example "moodle"</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getRoomIdByExternalId?SID=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE&externalRoomId=VALUE&externalRoomType=VALUE">http://localhost:5080/openmeetings/services/RoomService/getRoomIdByExternalId?SID=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE&amp;externalRoomId=VALUE&amp;externalRoomType=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="updateRoom" ><b>updateRoom</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>updateRoom (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long rooms_id

+    			       			    			       			     , 

+    			       			   String name

+    			       			    			       			     , 

+    			       			   Long roomtypes_id

+    			       			    			       			     , 

+    			       			   String comment

+    			       			    			       			     , 

+    			       			   Long numberOfPartizipants

+    			       			    			       			     , 

+    			       			   Boolean ispublic

+    			       			    			       			     , 

+    			       			   Integer videoPodWidth

+    			       			    			       			     , 

+    			       			   Integer videoPodHeight

+    			       			    			       			     , 

+    			       			   Integer videoPodXPosition

+    			       			    			       			     , 

+    			       			   Integer videoPodYPosition

+    			       			    			       			     , 

+    			       			   Integer moderationPanelXPosition

+    			       			    			       			     , 

+    			       			   Boolean showWhiteBoard

+    			       			    			       			     , 

+    			       			   Integer whiteBoardPanelXPosition

+    			       			    			       			     , 

+    			       			   Integer whiteBoardPanelYPosition

+    			       			    			       			     , 

+    			       			   Integer whiteBoardPanelHeight

+    			       			    			       			     , 

+    			       			   Integer whiteBoardPanelWidth

+    			       			    			       			     , 

+    			       			   Boolean showFilesPanel

+    			       			    			       			     , 

+    			       			   Integer filesPanelXPosition

+    			       			    			       			     , 

+    			       			   Integer filesPanelYPosition

+    			       			    			       			     , 

+    			       			   Integer filesPanelHeight

+    			       			    			       			     , 

+    			       			   Integer filesPanelWidth

+    			       			    			       			     , 

+    			       			   Boolean appointment

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  TODO: Fix Organization Issue deprecated use updateRoomWithModeration

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    				<b>Warning:</b><i> Params in this method do not seem to be correctly documentated</i>

+    				<br/><br/>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">rooms_id</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">name</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">roomtypes_id</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">comment</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">numberOfPartizipants</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">ispublic</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">videoPodWidth</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">videoPodHeight</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">videoPodXPosition</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">videoPodYPosition</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">moderationPanelXPosition</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">showWhiteBoard</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">whiteBoardPanelXPosition</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">whiteBoardPanelYPosition</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">whiteBoardPanelHeight</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">whiteBoardPanelWidth</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">showFilesPanel</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">filesPanelXPosition</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">filesPanelYPosition</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">filesPanelHeight</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">filesPanelWidth</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/updateRoom?SID=VALUE&rooms_id=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&videoPodWidth=VALUE&videoPodHeight=VALUE&videoPodXPosition=VALUE&videoPodYPosition=VALUE&moderationPanelXPosition=VALUE&showWhiteBoard=VALUE&whiteBoardPanelXPosition=VALUE&whiteBoardPanelYPosition=VALUE&whiteBoardPanelHeight=VALUE&whiteBoardPanelWidth=VALUE&showFilesPanel=VALUE&filesPanelXPosition=VALUE&filesPanelYPosition=VALUE&filesPanelHeight=VALUE&filesPanelWidth=VALUE&appointment=VALUE">http://localhost:5080/openmeetings/services/RoomService/updateRoom?SID=VALUE&amp;rooms_id=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;videoPodWidth=VALUE&amp;videoPodHeight=VALUE&amp;videoPodXPosition=VALUE&amp;videoPodYPosition=VALUE&amp;moderationPanelXPosition=VALUE&amp;showWhiteBoard=VALUE&amp;whiteBoardPanelXPosition=VALUE&amp;whiteBoardPanelYPosition=VALUE&amp;whiteBoardPanelHeight=VALUE&amp;whiteBoardPanelWidth=VALUE&amp;showFilesPanel=VALUE&amp;filesPanelXPosition=VALUE&amp;filesPanelYPosition=VALUE&amp;filesPanelHeight=VALUE&amp;filesPanelWidth=VALUE&amp;appointment=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="updateRoomWithModeration" ><b>updateRoomWithModeration</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>updateRoomWithModeration (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   String name

+    			       			    			       			     , 

+    			       			   Long roomtypes_id

+    			       			    			       			     , 

+    			       			   String comment

+    			       			    			       			     , 

+    			       			   Long numberOfPartizipants

+    			       			    			       			     , 

+    			       			   Boolean ispublic

+    			       			    			       			     , 

+    			       			   Boolean appointment

+    			       			    			       			     , 

+    			       			   Boolean isDemoRoom

+    			       			    			       			     , 

+    			       			   Integer demoTime

+    			       			    			       			     , 

+    			       			   Boolean isModeratedRoom

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Updates a conference room by its room id

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">the room id to update</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">name</td>

+	                     <td valign="top">new name of the room</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">roomtypes_id</td>

+	                     <td valign="top">new type of room (1 = Conference, 2 = Audience, 3 =
+            Restricted, 4 = Interview)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">comment</td>

+	                     <td valign="top">new comment</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">numberOfPartizipants</td>

+	                     <td valign="top">new numberOfParticipants</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">ispublic</td>

+	                     <td valign="top">is public</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">appointment</td>

+	                     <td valign="top">if the room is an appointment</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isDemoRoom</td>

+	                     <td valign="top">is it a Demo Room with limited time? (use false if not sure
+            what that means)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">demoTime</td>

+	                     <td valign="top">time in seconds after the user will be logged out (only
+            enabled if isDemoRoom is true)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isModeratedRoom</td>

+	                     <td valign="top">Users have to wait until a Moderator arrives. Use the
+            becomeModerator parameter in setUserObjectAndGenerateRoomHash
+            to set a user as default Moderator</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/updateRoomWithModeration?SID=VALUE&room_id=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE">http://localhost:5080/openmeetings/services/RoomService/updateRoomWithModeration?SID=VALUE&amp;room_id=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="updateRoomWithModerationAndQuestions" ><b>updateRoomWithModerationAndQuestions</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>updateRoomWithModerationAndQuestions (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   String name

+    			       			    			       			     , 

+    			       			   Long roomtypes_id

+    			       			    			       			     , 

+    			       			   String comment

+    			       			    			       			     , 

+    			       			   Long numberOfPartizipants

+    			       			    			       			     , 

+    			       			   Boolean ispublic

+    			       			    			       			     , 

+    			       			   Boolean appointment

+    			       			    			       			     , 

+    			       			   Boolean isDemoRoom

+    			       			    			       			     , 

+    			       			   Integer demoTime

+    			       			    			       			     , 

+    			       			   Boolean isModeratedRoom

+    			       			    			       			     , 

+    			       			   Boolean allowUserQuestions

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">the room id to update</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">name</td>

+	                     <td valign="top">new name of the room</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">roomtypes_id</td>

+	                     <td valign="top">new type of room (1 = Conference, 2 = Audience, 3 =
+            Restricted, 4 = Interview)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">comment</td>

+	                     <td valign="top">new comment</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">numberOfPartizipants</td>

+	                     <td valign="top">new numberOfParticipants</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">ispublic</td>

+	                     <td valign="top">is public</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">appointment</td>

+	                     <td valign="top">if the room is an appointment</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isDemoRoom</td>

+	                     <td valign="top">is it a Demo Room with limited time? (use false if not sure
+            what that means)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">demoTime</td>

+	                     <td valign="top">time in seconds after the user will be logged out (only
+            enabled if isDemoRoom is true)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isModeratedRoom</td>

+	                     <td valign="top">Users have to wait until a Moderator arrives. Use the
+            becomeModerator parameter in setUserObjectAndGenerateRoomHash
+            to set a user as default Moderator</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">allowUserQuestions</td>

+	                     <td valign="top">enable or disable the button to allow users to apply for
+            moderation</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/updateRoomWithModerationAndQuestions?SID=VALUE&room_id=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE&allowUserQuestions=VALUE">http://localhost:5080/openmeetings/services/RoomService/updateRoomWithModerationAndQuestions?SID=VALUE&amp;room_id=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE&amp;allowUserQuestions=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="updateRoomWithModerationQuestionsAudioTypeAndHideOptions" ><b>updateRoomWithModerationQuestionsAudioTypeAndHideOptions</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>updateRoomWithModerationQuestionsAudioTypeAndHideOptions (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   String name

+    			       			    			       			     , 

+    			       			   Long roomtypes_id

+    			       			    			       			     , 

+    			       			   String comment

+    			       			    			       			     , 

+    			       			   Long numberOfPartizipants

+    			       			    			       			     , 

+    			       			   Boolean ispublic

+    			       			    			       			     , 

+    			       			   Boolean appointment

+    			       			    			       			     , 

+    			       			   Boolean isDemoRoom

+    			       			    			       			     , 

+    			       			   Integer demoTime

+    			       			    			       			     , 

+    			       			   Boolean isModeratedRoom

+    			       			    			       			     , 

+    			       			   Boolean allowUserQuestions

+    			       			    			       			     , 

+    			       			   Boolean isAudioOnly

+    			       			    			       			     , 

+    			       			   Boolean hideTopBar

+    			       			    			       			     , 

+    			       			   Boolean hideChat

+    			       			    			       			     , 

+    			       			   Boolean hideActivitiesAndActions

+    			       			    			       			     , 

+    			       			   Boolean hideFilesExplorer

+    			       			    			       			     , 

+    			       			   Boolean hideActionsMenu

+    			       			    			       			     , 

+    			       			   Boolean hideScreenSharing

+    			       			    			       			     , 

+    			       			   Boolean hideWhiteboard

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  update room with options for user questions, audio only and hide

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">the room id to update</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">name</td>

+	                     <td valign="top">new name of the room</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">roomtypes_id</td>

+	                     <td valign="top">new type of room (1 = Conference, 2 = Audience, 3 =
+            Restricted, 4 = Interview)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">comment</td>

+	                     <td valign="top">new comment</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">numberOfPartizipants</td>

+	                     <td valign="top">number of participants</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">ispublic</td>

+	                     <td valign="top">is public</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">appointment</td>

+	                     <td valign="top">if the room is an appointment (use false if not sure what that
+            means)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isDemoRoom</td>

+	                     <td valign="top">is it a Demo Room with limited time? (use false if not sure
+            what that means)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">demoTime</td>

+	                     <td valign="top">time in seconds after the user will be logged out (only
+            enabled if isDemoRoom is true)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isModeratedRoom</td>

+	                     <td valign="top">Users have to wait until a Moderator arrives. Use the
+            becomeModerator parameter in setUserObjectAndGenerateRoomHash
+            to set a user as default Moderator</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">allowUserQuestions</td>

+	                     <td valign="top">enable or disable the button to allow users to apply for
+            moderation</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isAudioOnly</td>

+	                     <td valign="top">enable or disable the video / or audio-only</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">hideTopBar</td>

+	                     <td valign="top">hide or show TopBar</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">hideChat</td>

+	                     <td valign="top">hide or show Chat</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">hideActivitiesAndActions</td>

+	                     <td valign="top">hide or show Activities And Actions</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">hideFilesExplorer</td>

+	                     <td valign="top">hide or show Files Explorer</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">hideActionsMenu</td>

+	                     <td valign="top">hide or show Actions Menu</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">hideScreenSharing</td>

+	                     <td valign="top">hide or show Screen Sharing</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">hideWhiteboard</td>

+	                     <td valign="top">hide or show Whiteboard. If whitboard is hidden, video pods
+            and scrollbar appear instead.</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/updateRoomWithModerationQuestionsAudioTypeAndHideOptions?SID=VALUE&room_id=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE&allowUserQuestions=VALUE&isAudioOnly=VALUE&hideTopBar=VALUE&hideChat=VALUE&hideActivitiesAndActions=VALUE&hideFilesExplorer=VALUE&hideActionsMenu=VALUE&hideScreenSharing=VALUE&hideWhiteboard=VALUE">http://localhost:5080/openmeetings/services/RoomService/updateRoomWithModerationQuestionsAudioTypeAndHideOptions?SID=VALUE&amp;room_id=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE&amp;allowUserQuestions=VALUE&amp;isAudioOnly=VALUE&amp;hideTopBar=VALUE&amp;hideChat=VALUE&amp;hideActivitiesAndActions=VALUE&amp;hideFilesExplorer=VALUE&amp;hideActionsMenu=VALUE&amp;hideScreenSharing=VALUE&amp;hideWhiteboard=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="deleteRoom" ><b>deleteRoom</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>deleteRoom (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   long rooms_id

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Delete a room by its room id

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		long

+	                     		                     </td>

+	                     <td valign="top">rooms_id</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/deleteRoom?SID=VALUE&rooms_id=VALUE">http://localhost:5080/openmeetings/services/RoomService/deleteRoom?SID=VALUE&amp;rooms_id=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="kickUser" ><b>kickUser</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>kickUser (

+    			    			    			       			   String SID_Admin

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  kick all uses of a certain room

+    			</p>

+    			<p>

+                  Return Type: java.lang.Boolean

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin
+            _Admin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">the room id</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/kickUser?SID_Admin=VALUE&room_id=VALUE">http://localhost:5080/openmeetings/services/RoomService/kickUser?SID_Admin=VALUE&amp;room_id=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="addRoomWithModerationAndExternalType" ><b>addRoomWithModerationAndExternalType</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>addRoomWithModerationAndExternalType (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String name

+    			       			    			       			     , 

+    			       			   Long roomtypes_id

+    			       			    			       			     , 

+    			       			   String comment

+    			       			    			       			     , 

+    			       			   Long numberOfPartizipants

+    			       			    			       			     , 

+    			       			   Boolean ispublic

+    			       			    			       			     , 

+    			       			   Boolean appointment

+    			       			    			       			     , 

+    			       			   Boolean isDemoRoom

+    			       			    			       			     , 

+    			       			   Integer demoTime

+    			       			    			       			     , 

+    			       			   Boolean isModeratedRoom

+    			       			    			       			     , 

+    			       			   String externalRoomType

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Add a new conference room with option to set the external room type, the
+ external room type should be set if multiple applications use the same
+ OpenMeetings instance

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">name</td>

+	                     <td valign="top">new name of the room</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">roomtypes_id</td>

+	                     <td valign="top">new type of room (1 = Conference, 2 = Audience, 3 =
+            Restricted, 4 = Interview)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">comment</td>

+	                     <td valign="top">new comment</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">numberOfPartizipants</td>

+	                     <td valign="top">new numberOfParticipants</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">ispublic</td>

+	                     <td valign="top">is public</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">appointment</td>

+	                     <td valign="top">if the room is an appointment</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isDemoRoom</td>

+	                     <td valign="top">is it a Demo Room with limited time? (use false if not sure
+            what that means)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">demoTime</td>

+	                     <td valign="top">time in seconds after the user will be logged out (only
+            enabled if isDemoRoom is true)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isModeratedRoom</td>

+	                     <td valign="top">Users have to wait until a Moderator arrives. Use the
+            becomeModerator parameter in setUserObjectAndGenerateRoomHash
+            to set a user as default Moderator</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalRoomType</td>

+	                     <td valign="top">the external room type (can be used to identify different
+            external systems using same OpenMeetings instance)</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationAndExternalType?SID=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE&externalRoomType=VALUE">http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationAndExternalType?SID=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE&amp;externalRoomType=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="addRoomWithModerationExternalTypeAndAudioType" ><b>addRoomWithModerationExternalTypeAndAudioType</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>addRoomWithModerationExternalTypeAndAudioType (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String name

+    			       			    			       			     , 

+    			       			   Long roomtypes_id

+    			       			    			       			     , 

+    			       			   String comment

+    			       			    			       			     , 

+    			       			   Long numberOfPartizipants

+    			       			    			       			     , 

+    			       			   Boolean ispublic

+    			       			    			       			     , 

+    			       			   Boolean appointment

+    			       			    			       			     , 

+    			       			   Boolean isDemoRoom

+    			       			    			       			     , 

+    			       			   Integer demoTime

+    			       			    			       			     , 

+    			       			   Boolean isModeratedRoom

+    			       			    			       			     , 

+    			       			   String externalRoomType

+    			       			    			       			     , 

+    			       			   Boolean allowUserQuestions

+    			       			    			       			     , 

+    			       			   Boolean isAudioOnly

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Adds a new room with options for audio only

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">name</td>

+	                     <td valign="top">new name of the room</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">roomtypes_id</td>

+	                     <td valign="top">new type of room (1 = Conference, 2 = Audience, 3 =
+            Restricted, 4 = Interview)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">comment</td>

+	                     <td valign="top">new comment</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">numberOfPartizipants</td>

+	                     <td valign="top">new numberOfParticipants</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">ispublic</td>

+	                     <td valign="top">is public</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">appointment</td>

+	                     <td valign="top">if the room is an appointment</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isDemoRoom</td>

+	                     <td valign="top">is it a Demo Room with limited time? (use false if not sure
+            what that means)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">demoTime</td>

+	                     <td valign="top">time in seconds after the user will be logged out (only
+            enabled if isDemoRoom is true)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isModeratedRoom</td>

+	                     <td valign="top">Users have to wait until a Moderator arrives. Use the
+            becomeModerator parameter in setUserObjectAndGenerateRoomHash
+            to set a user as default Moderator</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalRoomType</td>

+	                     <td valign="top">the external room type (can be used to identify different
+            external systems using same OpenMeetings instance)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">allowUserQuestions</td>

+	                     <td valign="top">enable or disable the button to allow users to apply for
+            moderation</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isAudioOnly</td>

+	                     <td valign="top">enable or disable the video / or audio-only</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationExternalTypeAndAudioType?SID=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE&externalRoomType=VALUE&allowUserQuestions=VALUE&isAudioOnly=VALUE">http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationExternalTypeAndAudioType?SID=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE&amp;externalRoomType=VALUE&amp;allowUserQuestions=VALUE&amp;isAudioOnly=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="addRoomWithModerationAndRecordingFlags" ><b>addRoomWithModerationAndRecordingFlags</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>addRoomWithModerationAndRecordingFlags (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String name

+    			       			    			       			     , 

+    			       			   Long roomtypes_id

+    			       			    			       			     , 

+    			       			   String comment

+    			       			    			       			     , 

+    			       			   Long numberOfPartizipants

+    			       			    			       			     , 

+    			       			   Boolean ispublic

+    			       			    			       			     , 

+    			       			   Boolean appointment

+    			       			    			       			     , 

+    			       			   Boolean isDemoRoom

+    			       			    			       			     , 

+    			       			   Integer demoTime

+    			       			    			       			     , 

+    			       			   Boolean isModeratedRoom

+    			       			    			       			     , 

+    			       			   String externalRoomType

+    			       			    			       			     , 

+    			       			   Boolean allowUserQuestions

+    			       			    			       			     , 

+    			       			   Boolean isAudioOnly

+    			       			    			       			     , 

+    			       			   Boolean waitForRecording

+    			       			    			       			     , 

+    			       			   Boolean allowRecording

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Adds a new room with options for recording

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">name</td>

+	                     <td valign="top">new name of the room</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">roomtypes_id</td>

+	                     <td valign="top">new type of room (1 = Conference, 2 = Audience, 3 =
+            Restricted, 4 = Interview)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">comment</td>

+	                     <td valign="top">new comment</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">numberOfPartizipants</td>

+	                     <td valign="top">new numberOfParticipants</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">ispublic</td>

+	                     <td valign="top">is public</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">appointment</td>

+	                     <td valign="top">if the room is an appointment</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isDemoRoom</td>

+	                     <td valign="top">is it a Demo Room with limited time? (use false if not sure
+            what that means)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">demoTime</td>

+	                     <td valign="top">time in seconds after the user will be logged out (only
+            enabled if isDemoRoom is true)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isModeratedRoom</td>

+	                     <td valign="top">Users have to wait until a Moderator arrives. Use the
+            becomeModerator parameter in setUserObjectAndGenerateRoomHash
+            to set a user as default Moderator</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalRoomType</td>

+	                     <td valign="top">the external room type (can be used to identify different
+            external systems using same OpenMeetings instance)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">allowUserQuestions</td>

+	                     <td valign="top">enable or disable the button to allow users to apply for
+            moderation</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isAudioOnly</td>

+	                     <td valign="top">enable or disable the video / or audio-only</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">waitForRecording</td>

+	                     <td valign="top">if the users in the room will get a notification that they
+            should start recording before they do a conference</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">allowRecording</td>

+	                     <td valign="top">if the recording option is available or not</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationAndRecordingFlags?SID=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE&externalRoomType=VALUE&allowUserQuestions=VALUE&isAudioOnly=VALUE&waitForRecording=VALUE&allowRecording=VALUE">http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationAndRecordingFlags?SID=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE&amp;externalRoomType=VALUE&amp;allowUserQuestions=VALUE&amp;isAudioOnly=VALUE&amp;waitForRecording=VALUE&amp;allowRecording=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="addRoomWithModerationExternalTypeAndTopBarOption" ><b>addRoomWithModerationExternalTypeAndTopBarOption</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>addRoomWithModerationExternalTypeAndTopBarOption (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String name

+    			       			    			       			     , 

+    			       			   Long roomtypes_id

+    			       			    			       			     , 

+    			       			   String comment

+    			       			    			       			     , 

+    			       			   Long numberOfPartizipants

+    			       			    			       			     , 

+    			       			   Boolean ispublic

+    			       			    			       			     , 

+    			       			   Boolean appointment

+    			       			    			       			     , 

+    			       			   Boolean isDemoRoom

+    			       			    			       			     , 

+    			       			   Integer demoTime

+    			       			    			       			     , 

+    			       			   Boolean isModeratedRoom

+    			       			    			       			     , 

+    			       			   String externalRoomType

+    			       			    			       			     , 

+    			       			   Boolean allowUserQuestions

+    			       			    			       			     , 

+    			       			   Boolean isAudioOnly

+    			       			    			       			     , 

+    			       			   Boolean waitForRecording

+    			       			    			       			     , 

+    			       			   Boolean allowRecording

+    			       			    			       			     , 

+    			       			   Boolean hideTopBar

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Add a conference room with options to disable the top menu bar in the
+ conference room

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">name</td>

+	                     <td valign="top">new name of the room</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">roomtypes_id</td>

+	                     <td valign="top">new type of room (1 = Conference, 2 = Audience, 3 =
+            Restricted, 4 = Interview)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">comment</td>

+	                     <td valign="top">new comment</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">numberOfPartizipants</td>

+	                     <td valign="top">new numberOfParticipants</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">ispublic</td>

+	                     <td valign="top">is public</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">appointment</td>

+	                     <td valign="top">if the room is an appointment</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isDemoRoom</td>

+	                     <td valign="top">is it a Demo Room with limited time? (use false if not sure
+            what that means)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">demoTime</td>

+	                     <td valign="top">time in seconds after the user will be logged out (only
+            enabled if isDemoRoom is true)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isModeratedRoom</td>

+	                     <td valign="top">Users have to wait until a Moderator arrives. Use the
+            becomeModerator parameter in setUserObjectAndGenerateRoomHash
+            to set a user as default Moderator</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalRoomType</td>

+	                     <td valign="top">the external room type (can be used to identify different
+            external systems using same OpenMeetings instance)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">allowUserQuestions</td>

+	                     <td valign="top">enable or disable the button to allow users to apply for
+            moderation</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isAudioOnly</td>

+	                     <td valign="top">enable or disable the video / or audio-only</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">waitForRecording</td>

+	                     <td valign="top">if the users in the room will get a notification that they
+            should start recording before they do a conference</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">allowRecording</td>

+	                     <td valign="top">if the recording option is available or not</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">hideTopBar</td>

+	                     <td valign="top">if the top bar in the conference room is visible or not</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationExternalTypeAndTopBarOption?SID=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE&externalRoomType=VALUE&allowUserQuestions=VALUE&isAudioOnly=VALUE&waitForRecording=VALUE&allowRecording=VALUE&hideTopBar=VALUE">http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationExternalTypeAndTopBarOption?SID=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE&amp;externalRoomType=VALUE&amp;allowUserQuestions=VALUE&amp;isAudioOnly=VALUE&amp;waitForRecording=VALUE&amp;allowRecording=VALUE&amp;hideTopBar=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getInvitationHash" ><b>getInvitationHash</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getInvitationHash (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String username

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   Boolean isPasswordProtected

+    			       			    			       			     , 

+    			       			   String invitationpass

+    			       			    			       			     , 

+    			       			   Integer valid

+    			       			    			       			     , 

+    			       			   String validFromDate

+    			       			    			       			     , 

+    			       			   String validFromTime

+    			       			    			       			     , 

+    			       			   String validToDate

+    			       			    			       			     , 

+    			       			   String validToTime

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Create a Invitation hash and optionally send it by mail the From to Date
+ is as String as some SOAP libraries do not accept Date Objects in SOAP
+ Calls Date is parsed as dd.mm.yyyy, time as hh:mm (don't forget the
+ leading zero's)

+    			</p>

+    			<p>

+                  Return Type: java.lang.String

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin a
+            valid Session Token</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">username</td>

+	                     <td valign="top">the username of the User that he will get</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">the conference room id of the invitation</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isPasswordProtected</td>

+	                     <td valign="top">if the invitation is password protected</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">invitationpass</td>

+	                     <td valign="top">the password for accessing the conference room via the
+            invitation hash</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">valid</td>

+	                     <td valign="top">the type of validation for the hash 1: endless, 2: from-to
+            period, 3: one-time</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">validFromDate</td>

+	                     <td valign="top">Date in Format of dd.mm.yyyy only of interest if valid is type
+            2</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">validFromTime</td>

+	                     <td valign="top">time in Format of hh:mm only of interest if valid is type 2</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">validToDate</td>

+	                     <td valign="top">Date in Format of dd.mm.yyyy only of interest if valid is type
+            2</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">validToTime</td>

+	                     <td valign="top">time in Format of hh:mm only of interest if valid is type 2</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getInvitationHash?SID=VALUE&username=VALUE&room_id=VALUE&isPasswordProtected=VALUE&invitationpass=VALUE&valid=VALUE&validFromDate=VALUE&validFromTime=VALUE&validToDate=VALUE&validToTime=VALUE">http://localhost:5080/openmeetings/services/RoomService/getInvitationHash?SID=VALUE&amp;username=VALUE&amp;room_id=VALUE&amp;isPasswordProtected=VALUE&amp;invitationpass=VALUE&amp;valid=VALUE&amp;validFromDate=VALUE&amp;validFromTime=VALUE&amp;validToDate=VALUE&amp;validToTime=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="sendInvitationHash" ><b>sendInvitationHash</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>sendInvitationHash (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String username

+    			       			    			       			     , 

+    			       			   String message

+    			       			    			       			     , 

+    			       			   String email

+    			       			    			       			     , 

+    			       			   String subject

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   String conferencedomain

+    			       			    			       			     , 

+    			       			   Boolean isPasswordProtected

+    			       			    			       			     , 

+    			       			   String invitationpass

+    			       			    			       			     , 

+    			       			   Integer valid

+    			       			    			       			     , 

+    			       			   String validFromDate

+    			       			    			       			     , 

+    			       			   String validFromTime

+    			       			    			       			     , 

+    			       			   String validToDate

+    			       			    			       			     , 

+    			       			   String validToTime

+    			       			    			       			     , 

+    			       			   Long language_id

+    			       			    			       			     , 

+    			       			   Boolean sendMail

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Create a Invitation hash and optionally send it by mail the From to Date
+ is as String as some SOAP libraries do not accept Date Objects in SOAP
+ Calls Date is parsed as dd.mm.yyyy, time as hh:mm (don't forget the
+ leading zero's)

+    			</p>

+    			<p>

+                  Return Type: java.lang.String

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin a
+            valid Session Token</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">username</td>

+	                     <td valign="top">the Username of the User that he will get</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">message</td>

+	                     <td valign="top">the Message in the Email Body send with the invitation if
+            sendMail is true</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">email</td>

+	                     <td valign="top">the Email to send the invitation to if sendMail is true</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">subject</td>

+	                     <td valign="top">the subject of the Email send with the invitation if sendMail
+            is true</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">the conference room id of the invitation</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">conferencedomain</td>

+	                     <td valign="top">the domain of the room (keep empty)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isPasswordProtected</td>

+	                     <td valign="top">if the invitation is password protected</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">invitationpass</td>

+	                     <td valign="top">the password for accessing the conference room via the
+            invitation hash</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">valid</td>

+	                     <td valign="top">the type of validation for the hash 1: endless, 2: from-to
+            period, 3: one-time</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">validFromDate</td>

+	                     <td valign="top">Date in Format of dd.mm.yyyy only of interest if valid is type
+            2</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">validFromTime</td>

+	                     <td valign="top">time in Format of hh:mm only of interest if valid is type 2</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">validToDate</td>

+	                     <td valign="top">Date in Format of dd.mm.yyyy only of interest if valid is type
+            2</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">validToTime</td>

+	                     <td valign="top">time in Format of hh:mm only of interest if valid is type 2</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">language_id</td>

+	                     <td valign="top">the language id of the EMail that is send with the invitation
+            if sendMail is true</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">sendMail</td>

+	                     <td valign="top">if sendMail is true then the RPC-Call will send the invitation
+            to the email</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/sendInvitationHash?SID=VALUE&username=VALUE&message=VALUE&email=VALUE&subject=VALUE&room_id=VALUE&conferencedomain=VALUE&isPasswordProtected=VALUE&invitationpass=VALUE&valid=VALUE&validFromDate=VALUE&validFromTime=VALUE&validToDate=VALUE&validToTime=VALUE&language_id=VALUE&sendMail=VALUE">http://localhost:5080/openmeetings/services/RoomService/sendInvitationHash?SID=VALUE&amp;username=VALUE&amp;message=VALUE&amp;email=VALUE&amp;subject=VALUE&amp;room_id=VALUE&amp;conferencedomain=VALUE&amp;isPasswordProtected=VALUE&amp;invitationpass=VALUE&amp;valid=VALUE&amp;validFromDate=VALUE&amp;validFromTime=VALUE&amp;validToDate=VALUE&amp;validToTime=VALUE&amp;language_id=VALUE&amp;sendMail=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="sendInvitationHashWithDateObject" ><b>sendInvitationHashWithDateObject</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>sendInvitationHashWithDateObject (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String username

+    			       			    			       			     , 

+    			       			   String message

+    			       			    			       			     , 

+    			       			   String email

+    			       			    			       			     , 

+    			       			   String subject

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   String conferencedomain

+    			       			    			       			     , 

+    			       			   Boolean isPasswordProtected

+    			       			    			       			     , 

+    			       			   String invitationpass

+    			       			    			       			     , 

+    			       			   Integer valid

+    			       			    			       			     , 

+    			       			   Date fromDate

+    			       			    			       			     , 

+    			       			   Date toDate

+    			       			    			       			     , 

+    			       			   Long language_id

+    			       			    			       			     , 

+    			       			   Boolean sendMail

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Create a Invitation hash and optionally send it by mail the From to Date
+ is as String as some SOAP libraries do not accept Date Objects in SOAP
+ Calls Date is parsed as dd.mm.yyyy, time as hh:mm (don't forget the
+ leading zero's)

+    			</p>

+    			<p>

+                  Return Type: java.lang.String

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin a
+            valid Session Token</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">username</td>

+	                     <td valign="top">the Username of the User that he will get</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">message</td>

+	                     <td valign="top">the Message in the Email Body send with the invitation if
+            sendMail is true</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">email</td>

+	                     <td valign="top">the Email to send the invitation to if sendMail is true</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">subject</td>

+	                     <td valign="top">the subject of the Email send with the invitation if sendMail
+            is true</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">the conference room id of the invitation</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">conferencedomain</td>

+	                     <td valign="top">the domain of the room (keep empty)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isPasswordProtected</td>

+	                     <td valign="top">if the invitation is password protected</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">invitationpass</td>

+	                     <td valign="top">the password for accessing the conference room via the
+            invitation hash</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">valid</td>

+	                     <td valign="top">the type of validation for the hash 1: endless, 2: from-to
+            period, 3: one-time</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Date

+	                     		                     </td>

+	                     <td valign="top">fromDate</td>

+	                     <td valign="top">Date as Date Object only of interest if valid is type 2</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Date

+	                     		                     </td>

+	                     <td valign="top">toDate</td>

+	                     <td valign="top">Date as Date Object only of interest if valid is type 2</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">language_id</td>

+	                     <td valign="top">the language id of the EMail that is send with the invitation
+            if sendMail is true</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">sendMail</td>

+	                     <td valign="top">if sendMail is true then the RPC-Call will send the invitation
+            to the email</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/sendInvitationHashWithDateObject?SID=VALUE&username=VALUE&message=VALUE&email=VALUE&subject=VALUE&room_id=VALUE&conferencedomain=VALUE&isPasswordProtected=VALUE&invitationpass=VALUE&valid=VALUE&fromDate=VALUE&toDate=VALUE&language_id=VALUE&sendMail=VALUE">http://localhost:5080/openmeetings/services/RoomService/sendInvitationHashWithDateObject?SID=VALUE&amp;username=VALUE&amp;message=VALUE&amp;email=VALUE&amp;subject=VALUE&amp;room_id=VALUE&amp;conferencedomain=VALUE&amp;isPasswordProtected=VALUE&amp;invitationpass=VALUE&amp;valid=VALUE&amp;fromDate=VALUE&amp;toDate=VALUE&amp;language_id=VALUE&amp;sendMail=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getRoomsWithCurrentUsersByList" ><b>getRoomsWithCurrentUsersByList</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getRoomsWithCurrentUsersByList (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   int start

+    			       			    			       			     , 

+    			       			   int max

+    			       			    			       			     , 

+    			       			   String orderby

+    			       			    			       			     , 

+    			       			   boolean asc

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Return a RoomReturn Object with information of the current users of a
+ conference room

+    			</p>

+    			<p>

+                  Return Type: java.util.List<org.apache.openmeetings.axis.services.RoomReturn>

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">start</td>

+	                     <td valign="top">The id you want to start</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">max</td>

+	                     <td valign="top">The maximum you want to get</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">orderby</td>

+	                     <td valign="top">The column it will be ordered</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		boolean

+	                     		                     </td>

+	                     <td valign="top">asc</td>

+	                     <td valign="top">Asc or Desc sort ordering</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getRoomsWithCurrentUsersByList?SID=VALUE&start=VALUE&max=VALUE&orderby=VALUE&asc=VALUE">http://localhost:5080/openmeetings/services/RoomService/getRoomsWithCurrentUsersByList?SID=VALUE&amp;start=VALUE&amp;max=VALUE&amp;orderby=VALUE&amp;asc=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getRoomsWithCurrentUsersByListAndType" ><b>getRoomsWithCurrentUsersByListAndType</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getRoomsWithCurrentUsersByListAndType (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   int start

+    			       			    			       			     , 

+    			       			   int max

+    			       			    			       			     , 

+    			       			   String orderby

+    			       			    			       			     , 

+    			       			   boolean asc

+    			       			    			       			     , 

+    			       			   String externalRoomType

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Return a RoomReturn Object with information of the current users of a
+ conference room with option to search for special external room types

+    			</p>

+    			<p>

+                  Return Type: java.util.List<org.apache.openmeetings.axis.services.RoomReturn>

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">start</td>

+	                     <td valign="top">The id you want to start</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">max</td>

+	                     <td valign="top">The maximum you want to get</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">orderby</td>

+	                     <td valign="top">The column it will be ordered</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		boolean

+	                     		                     </td>

+	                     <td valign="top">asc</td>

+	                     <td valign="top">Asc or Desc sort ordering</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalRoomType</td>

+	                     <td valign="top">the external room type</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/getRoomsWithCurrentUsersByListAndType?SID=VALUE&start=VALUE&max=VALUE&orderby=VALUE&asc=VALUE&externalRoomType=VALUE">http://localhost:5080/openmeetings/services/RoomService/getRoomsWithCurrentUsersByListAndType?SID=VALUE&amp;start=VALUE&amp;max=VALUE&amp;orderby=VALUE&amp;asc=VALUE&amp;externalRoomType=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="addRoomWithModerationAndExternalTypeAndStartEnd" ><b>addRoomWithModerationAndExternalTypeAndStartEnd</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>addRoomWithModerationAndExternalTypeAndStartEnd (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String name

+    			       			    			       			     , 

+    			       			   Long roomtypes_id

+    			       			    			       			     , 

+    			       			   String comment

+    			       			    			       			     , 

+    			       			   Long numberOfPartizipants

+    			       			    			       			     , 

+    			       			   Boolean ispublic

+    			       			    			       			     , 

+    			       			   Boolean appointment

+    			       			    			       			     , 

+    			       			   Boolean isDemoRoom

+    			       			    			       			     , 

+    			       			   Integer demoTime

+    			       			    			       			     , 

+    			       			   Boolean isModeratedRoom

+    			       			    			       			     , 

+    			       			   String externalRoomType

+    			       			    			       			     , 

+    			       			   String validFromDate

+    			       			    			       			     , 

+    			       			   String validFromTime

+    			       			    			       			     , 

+    			       			   String validToDate

+    			       			    			       			     , 

+    			       			   String validToTime

+    			       			    			       			     , 

+    			       			   Boolean isPasswordProtected

+    			       			    			       			     , 

+    			       			   String password

+    			       			    			       			     , 

+    			       			   Long reminderTypeId

+    			       			    			       			     , 

+    			       			   String redirectURL

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Adds a conference room that is only available for a period of time

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">name</td>

+	                     <td valign="top">new name of the room</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">roomtypes_id</td>

+	                     <td valign="top">new type of room (1 = Conference, 2 = Audience, 3 =
+            Restricted, 4 = Interview)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">comment</td>

+	                     <td valign="top">new comment</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">numberOfPartizipants</td>

+	                     <td valign="top">new numberOfParticipants</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">ispublic</td>

+	                     <td valign="top">is public</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">appointment</td>

+	                     <td valign="top">if the room is an appointment</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isDemoRoom</td>

+	                     <td valign="top">is it a Demo Room with limited time? (use false if not sure
+            what that means)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Integer

+	                     		                     </td>

+	                     <td valign="top">demoTime</td>

+	                     <td valign="top">time in seconds after the user will be logged out (only
+            enabled if isDemoRoom is true)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isModeratedRoom</td>

+	                     <td valign="top">Users have to wait until a Moderator arrives. Use the
+            becomeModerator parameter in setUserObjectAndGenerateRoomHash
+            to set a user as default Moderator</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalRoomType</td>

+	                     <td valign="top">the external room type (can be used to identify different
+            external systems using same OpenMeetings instance)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">validFromDate</td>

+	                     <td valign="top">valid from as Date format: dd.MM.yyyy</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">validFromTime</td>

+	                     <td valign="top">valid to as time format: mm:hh</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">validToDate</td>

+	                     <td valign="top">valid to Date format: dd.MM.yyyy</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">validToTime</td>

+	                     <td valign="top">valid to time format: mm:hh</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">isPasswordProtected</td>

+	                     <td valign="top">If the links send via EMail to invited people is password
+            protected</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">password</td>

+	                     <td valign="top">Password for Invitations send via Mail</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">reminderTypeId</td>

+	                     <td valign="top">1=none, 2=simple mail, 3=ICAL</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">redirectURL</td>

+	                     <td valign="top">URL Users will be lead to if the Conference Time is elapsed</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationAndExternalTypeAndStartEnd?SID=VALUE&name=VALUE&roomtypes_id=VALUE&comment=VALUE&numberOfPartizipants=VALUE&ispublic=VALUE&appointment=VALUE&isDemoRoom=VALUE&demoTime=VALUE&isModeratedRoom=VALUE&externalRoomType=VALUE&validFromDate=VALUE&validFromTime=VALUE&validToDate=VALUE&validToTime=VALUE&isPasswordProtected=VALUE&password=VALUE&reminderTypeId=VALUE&redirectURL=VALUE">http://localhost:5080/openmeetings/services/RoomService/addRoomWithModerationAndExternalTypeAndStartEnd?SID=VALUE&amp;name=VALUE&amp;roomtypes_id=VALUE&amp;comment=VALUE&amp;numberOfPartizipants=VALUE&amp;ispublic=VALUE&amp;appointment=VALUE&amp;isDemoRoom=VALUE&amp;demoTime=VALUE&amp;isModeratedRoom=VALUE&amp;externalRoomType=VALUE&amp;validFromDate=VALUE&amp;validFromTime=VALUE&amp;validToDate=VALUE&amp;validToTime=VALUE&amp;isPasswordProtected=VALUE&amp;password=VALUE&amp;reminderTypeId=VALUE&amp;redirectURL=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="addMeetingMemberRemindToRoom" ><b>addMeetingMemberRemindToRoom</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>addMeetingMemberRemindToRoom (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   String firstname

+    			       			    			       			     , 

+    			       			   String lastname

+    			       			    			       			     , 

+    			       			   String email

+    			       			    			       			     , 

+    			       			   Long language_id

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Add a meeting member to a certain room. This is the same as adding an
+ external user to a event in the calendar.

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">The Room Id the meeting member is going to be added</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">firstname</td>

+	                     <td valign="top">The first name of the meeting member</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">lastname</td>

+	                     <td valign="top">The last name of the meeting member</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">email</td>

+	                     <td valign="top">The email of the Meeting member</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">language_id</td>

+	                     <td valign="top">The ID of the language, for the email that is send to the
+            meeting member</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addMeetingMemberRemindToRoom?SID=VALUE&room_id=VALUE&firstname=VALUE&lastname=VALUE&email=VALUE&language_id=VALUE">http://localhost:5080/openmeetings/services/RoomService/addMeetingMemberRemindToRoom?SID=VALUE&amp;room_id=VALUE&amp;firstname=VALUE&amp;lastname=VALUE&amp;email=VALUE&amp;language_id=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="addExternalMeetingMemberRemindToRoom" ><b>addExternalMeetingMemberRemindToRoom</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>addExternalMeetingMemberRemindToRoom (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   String firstname

+    			       			    			       			     , 

+    			       			   String lastname

+    			       			    			       			     , 

+    			       			   String email

+    			       			    			       			     , 

+    			       			   Long language_id

+    			       			    			       			     , 

+    			       			   String jNameTimeZone

+    			       			    			       			     , 

+    			       			   String invitorName

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Add a meeting member to a certain room. This is the same as adding an
+ external user to a event in the calendar. with a certain time zone

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">The Room Id the meeting member is going to be added</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">firstname</td>

+	                     <td valign="top">The first name of the meeting member</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">lastname</td>

+	                     <td valign="top">The last name of the meeting member</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">email</td>

+	                     <td valign="top">The email of the Meeting member</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">language_id</td>

+	                     <td valign="top">The ID of the language, for the email that is send to the
+            meeting member</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">jNameTimeZone</td>

+	                     <td valign="top">name of the timezone</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">invitorName</td>

+	                     <td valign="top">name of invitation creators</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addExternalMeetingMemberRemindToRoom?SID=VALUE&room_id=VALUE&firstname=VALUE&lastname=VALUE&email=VALUE&language_id=VALUE&jNameTimeZone=VALUE&invitorName=VALUE">http://localhost:5080/openmeetings/services/RoomService/addExternalMeetingMemberRemindToRoom?SID=VALUE&amp;room_id=VALUE&amp;firstname=VALUE&amp;lastname=VALUE&amp;email=VALUE&amp;language_id=VALUE&amp;jNameTimeZone=VALUE&amp;invitorName=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="closeRoom" ><b>closeRoom</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>closeRoom (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   Boolean status

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Method to remotely close or open rooms. If a room is closed all users
+ inside the room and all users that try to enter it will be redirected to
+ the redirectURL that is defined in the Room-Object.
+ 
+ Returns positive value if authentication was successful.

+    			</p>

+    			<p>

+                  Return Type: int

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">the room id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">status</td>

+	                     <td valign="top">false = close, true = open</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/closeRoom?SID=VALUE&room_id=VALUE&status=VALUE">http://localhost:5080/openmeetings/services/RoomService/closeRoom?SID=VALUE&amp;room_id=VALUE&amp;status=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="modifyRoomParameter" ><b>modifyRoomParameter</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>modifyRoomParameter (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   String paramName

+    			       			    			       			     , 

+    			       			   Object paramValue

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Method to update arbitrary room parameter.

+    			</p>

+    			<p>

+                  Return Type: int

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">the room id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">paramName</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Object

+	                     		                     </td>

+	                     <td valign="top">paramValue</td>

+	                     <td valign="top"></td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/modifyRoomParameter?SID=VALUE&room_id=VALUE&paramName=VALUE&paramValue=VALUE">http://localhost:5080/openmeetings/services/RoomService/modifyRoomParameter?SID=VALUE&amp;room_id=VALUE&amp;paramName=VALUE&amp;paramValue=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="addRoomToOrg" ><b>addRoomToOrg</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>addRoomToOrg (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long rooms_id

+    			       			    			       			     , 

+    			       			   Long organisation_id

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Adds a room to an organization

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">- The SID of the User. This SID must be marked as Loggedin</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">rooms_id</td>

+	                     <td valign="top">- Id of room to be added</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">organisation_id</td>

+	                     <td valign="top">- Id of organisation that the room is being paired with</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/RoomService/addRoomToOrg?SID=VALUE&rooms_id=VALUE&organisation_id=VALUE">http://localhost:5080/openmeetings/services/RoomService/addRoomToOrg?SID=VALUE&amp;rooms_id=VALUE&amp;organisation_id=VALUE</a>

+    		  </div>

+    	   			

+	

+	</body>

+</html>

+

diff --git a/docs/SakaiPlugin.html b/docs/SakaiPlugin.html
new file mode 100644
index 0000000..f3ac700
--- /dev/null
+++ b/docs/SakaiPlugin.html
@@ -0,0 +1,460 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Sakai Plugin</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Introduction"><strong>Introduction</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				In 2010,

+				<a rel="nofollow" href="http://www.samoo.es" target="_blank">Samoo company

+				</a>

+				has developed a plugin that integrates Sakai LMS and OpenMeetings

+				.

+			</p>
+                                                <p>

+				The plugin was developed for some Spanish Universities that use

+				Sakai and belongs to

+				<a rel="nofollow" target="_blank" href="https://confluence.sakaiproject.org/display/SPANISH/S2G+-+Spanish+Sakai+Group">"Spanish Sakai Universities"</a>

+				group:

+			</p>
+                                                <ul>

+				<li>

+					<a rel="nofollow" href="http://www.udl.es/" target="_blank">Universitat de Lleida </a>

+				</li>

+				<li>

+					<a rel="nofollow" href="http://www.upv.es/" target="_blank">Universidad Politécnica de Valencia </a>

+				</li>

+				<li>

+					<a rel="nofollow" href="http://www.um.es/" target="_blank">Universidad de Murcia</a>

+				</li>

+				<li>

+					<a rel="nofollow" href="http://www.unavarra.es/" target="_blank">Universidad Pública de Navarra</a>

+				</li>

+				<li>

+					<a rel="nofollow" href="http://www.ucam.edu/" target="_blank">Universidad Católica San Antonio de Murcia

+					</a>

+				</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Features"><strong>Features</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>The plugin contains the following features: </p>
+                                                <ul>

+				<li>Create videoconference rooms through Sakai: </li>

+				<li>

+					<ol>

+						<li>Integrated with calendar </li>

+						<li>Integrated with announcements </li>

+						<li>Sends an email to all site participants </li>

+						<li>Rooms restricted to site groups </li>

+						<li>Configurable room type </li>

+					</ol>

+				</li>

+			</ul>
+                                                <p />
+                                                <ul>

+				<li>Future requirements </li>

+				<li>

+					<ol>

+						<li>Publish room recordings to students </li>

+						<li>Room reservation </li>

+					</ol>

+				</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Source"><strong>Source</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				You can download and build the source code

+				<a rel="nofollow" target="_blank" href="https://source.sakaiproject.org/contrib/samoo/adobeconnectpro-openmeetings-integration/trunk/">here</a>

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Installation and documentation"><strong>Installation and documentation</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				The documentation resides in the

+				<a rel="nofollow" target="_blank" href="https://confluence.sakaiproject.org/display/OPENMTG/Home">Sakai confluence space</a>

+			</p>
+                                                <p>

+				Please contact the mailing list for further information. For

+				commercial support you can also contact

+				<a rel="nofollow" href="http://www.samoo.es" target="_blank">Samoo company</a>

+				or other companies from the list of

+				<a href="commercial-support.html">commercial support</a>

+				.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/ServerService.html b/docs/ServerService.html
new file mode 100644
index 0000000..9d8bac1
--- /dev/null
+++ b/docs/ServerService.html
@@ -0,0 +1,378 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+          

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+-->

+

+    <!-- ====================================================================== -->

+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE TEMPLATE INSTEAD! -->

+    <!-- Main Page Section -->

+    <!-- ====================================================================== -->

+    

+     <html>

+        <head>

+		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>

+		<meta name="author" content="OpenMeetings Team">

+		<meta name="email" content="sebawagner@apache.org">

+		<title>OpenMeetings API Methods</title>

+		<link rel="stylesheet" type="text/css" href="openmeetings_docs.css">

+        </head>

+	<body>

+	

+		<h3>Available WebServices:</h3>

+	

+		<iframe src="WebserviceIndex.html" width="100%" height="210" name="WebserviceIndex.html"

+			scrolling="no" marginheight="0" marginwidth="0" frameborder="0">

+		  <p>Your Browser does not support frames ...</p>

+		</iframe>

+		

+		<hr />

+	

+	   <h3>WebService: ServerService</h3>

+	   <p>This class provides method implementations necessary for OM to manage servers
+ participating in cluster.<p>

+	   <p>WSDL sample Url: <a href="http://localhost:5080/openmeetings/services/ServerService?wsdl">http://localhost:5080/openmeetings/services/ServerService?wsdl</a><p>

+	

+	<!-- Links to Methods -->

+	   <h3>Index of Methods available in ServerService</h3>

+	   

+       <div class="navigation">

+	                               <div>

+                <a href="#getServers"><b>getServers</b></a><br/>

+                <div class="navigation_comment"><i >Method to retrieve the list of the servers participating in cluster</i></div>

+                </div>

+                                               <div>

+                <a href="#getServerCount"><b>getServerCount</b></a><br/>

+                <div class="navigation_comment"><i >Method to retrieve the total count of the servers participating in
+ cluster</i></div>

+                </div>

+                                               <div>

+                <a href="#saveServer"><b>saveServer</b></a><br/>

+                <div class="navigation_comment"><i >Method to add/update server</i></div>

+                </div>

+                                               <div>

+                <a href="#deleteServer"><b>deleteServer</b></a><br/>

+                <div class="navigation_comment"><i >Method to delete server</i></div>

+                </div>

+                           </div>

+	   

+	    <h3>Methods Details in ServerService</h3>

+	

+				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getServers" ><b>getServers</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getServers (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   int start

+    			       			    			       			     , 

+    			       			   int max

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Method to retrieve the list of the servers participating in cluster

+    			</p>

+    			<p>

+                  Return Type: org.apache.openmeetings.db.entity.server.Server[]

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">- session id to identify the user making request</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">start</td>

+	                     <td valign="top">- server index to start with</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">max</td>

+	                     <td valign="top">- Maximum server count</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/ServerService/getServers?SID=VALUE&start=VALUE&max=VALUE">http://localhost:5080/openmeetings/services/ServerService/getServers?SID=VALUE&amp;start=VALUE&amp;max=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getServerCount" ><b>getServerCount</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getServerCount (

+    			    			    			       			   String SID

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Method to retrieve the total count of the servers participating in
+ cluster

+    			</p>

+    			<p>

+                  Return Type: int

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">- session id to identify the user making request</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    												<a href="http://localhost:5080/openmeetings/services/ServerService/getServerCount?SID=VALUE">http://localhost:5080/openmeetings/services/ServerService/getServerCount?SID=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="saveServer" ><b>saveServer</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>saveServer (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   long id

+    			       			    			       			     , 

+    			       			   String name

+    			       			    			       			     , 

+    			       			   String address

+    			       			    			       			     , 

+    			       			   int port

+    			       			    			       			     , 

+    			       			   String user

+    			       			    			       			     , 

+    			       			   String pass

+    			       			    			       			     , 

+    			       			   String webapp

+    			       			    			       			     , 

+    			       			   String protocol

+    			       			    			       			     , 

+    			       			   Boolean active

+    			       			    			       			     , 

+    			       			   String comment

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Method to add/update server

+    			</p>

+    			<p>

+                  Return Type: long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">- session id to identify the user making request</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		long

+	                     		                     </td>

+	                     <td valign="top">id</td>

+	                     <td valign="top">- the id of the server to save</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">name</td>

+	                     <td valign="top">- the name of the server to save</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">address</td>

+	                     <td valign="top">- the address(DNS name or IP) of the server to save</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">port</td>

+	                     <td valign="top">- the http port of the slave</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">user</td>

+	                     <td valign="top">- REST user to access the slave</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">pass</td>

+	                     <td valign="top">- REST pass to access the slave</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">webapp</td>

+	                     <td valign="top">- webapp name of the OpenMeetings instance</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">protocol</td>

+	                     <td valign="top">- protocol to access the OpenMeetings instance</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Boolean

+	                     		                     </td>

+	                     <td valign="top">active</td>

+	                     <td valign="top">- if the server currently participates in the cluster or not</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">comment</td>

+	                     <td valign="top">- comment for the server</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/ServerService/saveServer?SID=VALUE&id=VALUE&name=VALUE&address=VALUE&port=VALUE&user=VALUE&pass=VALUE&webapp=VALUE&protocol=VALUE&active=VALUE&comment=VALUE">http://localhost:5080/openmeetings/services/ServerService/saveServer?SID=VALUE&amp;id=VALUE&amp;name=VALUE&amp;address=VALUE&amp;port=VALUE&amp;user=VALUE&amp;pass=VALUE&amp;webapp=VALUE&amp;protocol=VALUE&amp;active=VALUE&amp;comment=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="deleteServer" ><b>deleteServer</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>deleteServer (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   long id

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Method to delete server

+    			</p>

+    			<p>

+                  Return Type: boolean

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">- session id to identify the user making request</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		long

+	                     		                     </td>

+	                     <td valign="top">id</td>

+	                     <td valign="top">- the id of the server to delete</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/ServerService/deleteServer?SID=VALUE&id=VALUE">http://localhost:5080/openmeetings/services/ServerService/deleteServer?SID=VALUE&amp;id=VALUE</a>

+    		  </div>

+    	   			

+	

+	</body>

+</html>

+

diff --git a/docs/SoapRestAPI.html b/docs/SoapRestAPI.html
new file mode 100644
index 0000000..abc229c
--- /dev/null
+++ b/docs/SoapRestAPI.html
@@ -0,0 +1,423 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			Sebastian Wagner
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Home</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Available WebServices"><strong>Available WebServices</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+				<div>

+					<a href="UserService.html" target="_BLANK">

+						<b>UserService</b>

+					</a>

+					<br />

+					<div style="margin-left:20px">

+						<i>The Service contains methods to login and create hash to

+							directly enter

+							conference rooms, recordings or the application in

+							general

+						</i>

+					</div>

+				</div>

+				<div>

+					<a href="RoomService.html" target="_BLANK">

+						<b>RoomService</b>

+					</a>

+					<br />

+					<div style="margin-left:20px">

+						<i>RoomService contains methods to manipulate rooms and create

+							invitation hash

+						</i>

+					</div>

+				</div>

+				<div>

+					<a href="FileService.html" target="_BLANK">

+						<b>FileService</b>

+					</a>

+					<br />

+					<div style="margin-left:20px">

+						<i>Contains methods to import and upload files into the Files

+							section of the

+							conference room and the personal drive of any user

+						</i>

+					</div>

+				</div>

+				<div>

+					<a href="CalendarService.html" target="_BLANK">

+						<b>CalendarService</b>

+					</a>

+					<br />

+					<div style="margin-left:20px">

+						<i>CalendarService contains methods to create, edit delete

+							calendar meetings

+						</i>

+					</div>

+				</div>

+				<div>

+					<a href="JabberService.html" target="_BLANK">

+						<b>JabberService</b>

+					</a>

+					<br />

+					<div style="margin-left:20px">

+						<i>The Service contains methods necessary for OM to Jabber integration.

+						All methods doesn't require admin privileges to get called.

+						</i>

+					</div>

+				</div>

+				<div>

+					<a href="ServerService.html" target="_BLANK">

+						<b>ServerService</b>

+					</a>

+					<br />

+					<div style="margin-left:20px">

+						<i>The Service contains methods necessary for OM to manage servers 

+						participating in cluster.

+						All methods does require admin privileges to get called.

+						</i>

+					</div>

+				</div>

+			</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/SugarCRMPlugin.html b/docs/SugarCRMPlugin.html
new file mode 100644
index 0000000..f58c656
--- /dev/null
+++ b/docs/SugarCRMPlugin.html
@@ -0,0 +1,435 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="eschwert@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - SugarCRM Plugin</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="SugarCRM Plugin for OpenMeetings"><strong>SugarCRM Plugin for OpenMeetings</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				You can get the latest Version of the Plugin for SugarCRM from the

+				<a href="downloads.html">downloads</a>

+				.

+			</p>
+                                                <p>

+				You can find the OpenMeetings Plugin also in the

+				<a href="http://www.sugarforge.org/projects/openmeetings/" target="_BLANK" rel="nofollow">SugarCRM Plugin database</a>

+				.

+			</p>
+                                                <p>

+				A demo version of the SugarCRM plugin is available at

+				<a href="http://demo.e-schwert.de/sugarcrm/" target="_BLANK" rel="nofollow">demo.e-schwert.de</a>

+				. Username: demo Password: Demouser55 

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Features"><strong>Features</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>The plugin contains the following features: </p>
+                                                <ul>

+				<li>Create videoconference rooms through SugarCRM: </li>

+				<li>

+					<ol>

+						<li>Integrated with calendar </li>

+						<li>Integrated with SugarCRM meetings </li>

+						<li>Sends invetations emails to meeting participants </li>					

+						<li>Configurable room type </li>

+					</ol>

+				</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Installation the SugarCRM Plugin for OpenMeetings"><strong>Installation the SugarCRM Plugin for OpenMeetings</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>In SugarCRM's administration web-interface you will find the

+				module loader.

+			</p>
+                                                <a class="fancybox-buttons" href="images/moodle_plugin_conference.png">

+				<img src="images/SugarCRM_Installation.png" alt="" width="640" height="320" />

+			</a>
+                                                <ol>

+				<li>Upload the module with module loader in administration area. </li>

+				<li>Configure OpenMeetings settings. </li>

+				<li>Create OpenMeetings rooms. </li>				

+			</ol>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Demo video"><strong>Demo video</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>The demo video of SugarCRM plugin show you the plugin in action </p>
+                                                <object style="height: 390px; width: 640px">

+			      <param name="movie" value="http://www.youtube.com/v/xrDbcXqxDq8?version=3&amp;feature=player_detailpage" />

+			      <param name="allowFullScreen" value="true" />

+			      <param name="allowScriptAccess" value="always" />

+			      <embed src="http://www.youtube.com/v/xrDbcXqxDq8?version=3&amp;feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360" />

+		      </object>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/TimeZoneHandling.html b/docs/TimeZoneHandling.html
new file mode 100644
index 0000000..2191231
--- /dev/null
+++ b/docs/TimeZoneHandling.html
@@ -0,0 +1,418 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Timezones</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Introduction"><strong>Introduction</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				List of default Timezones:

+				<a href="http://openmeetings.googlecode.com/svn/trunk/singlewebapp/src/main/webapp/languages/timezones.xml" rel="nofollow">http://openmeetings.googlecode.com/svn/trunk/singlewebapp/src/main/webapp/languages/timezones.xml

+				</a>

+			</p>
+                                                <p>

+				To add a new Time Zone you have to lookup its represant in Java's

+				Timezone registry. You can then add freely new time zones to the XML

+				file. The XML entries are imported into the database into the table

+				<strong>om_timezone</strong>

+				during the installation of OpenMeetings. (Don't forget to stop the

+				server before you change anything in the database).

+			</p>
+                                                <p>

+				The Servers default timezone is stored in the configuration table in

+				the attribute

+				<strong>default.timezone</strong>

+				. The name in this value links to an attribute in the table

+				om_timezone in the column

+				<strong>jname</strong>

+				.

+			</p>
+                                                <p>

+				You can set a Flag

+				<strong>forceTimeZoneCheck</strong>

+				for each user that gives him a Pop-Up notification to change his

+				time zone. The Flag can be changed in the user administration of

+				OpenMeetings. This can be handy if you update from a previous

+				version of OpenMeetings to make sure users see the new feature and

+				update their settings.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="How to lookup timezone's"><strong>How to lookup timezone's</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div class="xmlcode">

+		  

+                    String[] ids = TimeZone.getAvailableIDs();<br />

+                    for (String id : ids) {<br />

+                        

+                        <div style="margin-left:20px">

+                        TimeZone timeZone = TimeZone.getTimeZone(id);<br />

+                        //TimeZone timeZone = timeRegistry.getTimeZone(id);<br />

+                        <br />

+                        Calendar cal = Calendar.getInstance();<br />

+                                <div style="margin-left:20px">

+                                cal.setTimeZone(timeZone);<br />

+                                // + cal.get(Calendar.DST_OFFSET)<br />

+                                int offset = cal.get(Calendar.ZONE_OFFSET);<br />

+                        <br />

+                                int offsetInMinutes = offset/1000/60;<br />

+                                <br />

+                                System.out.println("name" + id + "name offset "+offsetInMinutes+"offset ");

+                                </div>

+                        </div>

+                    }

+		  

+		  </div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Upgrade.html b/docs/Upgrade.html
new file mode 100644
index 0000000..b3e09a2
--- /dev/null
+++ b/docs/Upgrade.html
@@ -0,0 +1,429 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Upgrade</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Upgrading OpenMeetings via the Web-Interface"><strong>Upgrading OpenMeetings via the Web-Interface</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ol>

+				<li>

+					<p>There is a System Backup and Import tool. Login as Administrator and Administration &gt; Backup</p>

+					<a class="fancybox-buttons" href="images/backup.png"><img src="images/backup.png" alt="" width="600" /></a>

+					<p>

+						The Text in the Administration &gt; Backup section actually just says

+						it all. The backup contains users, rooms, organizations and

+						appointments (Invitations and Reminders are NOT included in the

+						Backup and Reminders will not be send again!). The Backup contains

+						also all uploaded Files and Documents and will re-import them again.

+		

+						Max Upload Size is 1000 MB.

+					</p>

+				</li>

+				<li>Stop Openmeetings</li>

+				<li>(*) Backup folder with existing installation</li>

+				<li>(*) Perform DB backup using tools available for your database</li>

+				<li>Delete/move folder with existing installation of OM</li>

+				<li>Drop existing OM database</li>

+				<li>Create empty Database with same name and UTF-8 support</li>

+				<li>Unzip new version of OM into the same folder</li>

+				<li>(*) Modify DB settings</li>

+				<li>Start Openmeetings</li>

+				<li>go to http://localhost:5080/openmeetings</li>

+				<li>Install OM using Web installer</li>

+				<li>Login as Administrator and Administration &gt; Backup</li>

+				<li>Perform system import</li>

+			</ol>
+                                                <p>(*) Optional step</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Upgrading OpenMeetings from command line"><strong>Upgrading OpenMeetings from command line</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				<i>You need OpenMeetings 2.x or later to have the command line interface (CLI) 

+					feature available

+				</i>

+			</p>
+                                                <p>

+				Alternatively to the Web-Installer you can also export and import via the command line. <br />

+				<b>You should shutdown the Red5-Service while doing CLI export or import operations</b><br />

+				Cd to your red5-home directory, type "./admin.sh" and hit enter. You will get options available.<br />

+				<br />

+				A typical export would be:<br />

+				<tt>./admin.sh -b -file backup_today.zip</tt><br />

+				<br />

+				A typical import would be:<br />

+				<tt>./admin.sh -r -file backup_yesterday.zip</tt><br />

+				<br />

+				You can also combine the installation with a backup, that way you will create exactly the user table 

+				that existed in the backup.<br />

+				A typical install from backup would be:<br />

+				<tt>./admin.sh -i -file backup_yesterday.zip</tt><br />

+				please see <a href="CommandLineAdmin.html" target="_BLANK" rel="nofollow">Command Line Admin</a> for more options

+			</p>
+                                                <p><b>Detailed steps</b></p>
+                                                <ol>

+				<li>Stop Openmeetings</li>

+				<li>(*) Backup folder with existing installation</li>

+				<li>(*) Perform DB backup using tools available for your database</li>

+				<li><tt>./admin.sh -v -b -file ../backup_today.zip</tt></li>

+				<li>Delete/move folder with existing installation of OM</li>

+				<li>Unzip new version of OM into the same folder</li>

+				<li><tt>./admin.sh -v -i -file ../backup_today.zip --drop --skip-default-room</tt> (Optionally you can specify

+					additional parameters like DB host/user/pass/instance etc.)</li>

+				<li>Start Openmeetings</li>

+				<li>go to http://localhost:5080/openmeetings</li>

+			</ol>
+                                                <p>(*) Optional step</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/UserService.html b/docs/UserService.html
new file mode 100644
index 0000000..abd6c5b
--- /dev/null
+++ b/docs/UserService.html
@@ -0,0 +1,2090 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+          

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+-->

+

+    <!-- ====================================================================== -->

+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE TEMPLATE INSTEAD! -->

+    <!-- Main Page Section -->

+    <!-- ====================================================================== -->

+    

+     <html>

+        <head>

+		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>

+		<meta name="author" content="OpenMeetings Team">

+		<meta name="email" content="sebawagner@apache.org">

+		<title>OpenMeetings API Methods</title>

+		<link rel="stylesheet" type="text/css" href="openmeetings_docs.css">

+        </head>

+	<body>

+	

+		<h3>Available WebServices:</h3>

+	

+		<iframe src="WebserviceIndex.html" width="100%" height="210" name="WebserviceIndex.html"

+			scrolling="no" marginheight="0" marginwidth="0" frameborder="0">

+		  <p>Your Browser does not support frames ...</p>

+		</iframe>

+		

+		<hr />

+	

+	   <h3>WebService: UserService</h3>

+	   <p>The Service contains methods to login and create hash to directly enter
+ conference rooms, recordings or the application in general<p>

+	   <p>WSDL sample Url: <a href="http://localhost:5080/openmeetings/services/UserService?wsdl">http://localhost:5080/openmeetings/services/UserService?wsdl</a><p>

+	

+	<!-- Links to Methods -->

+	   <h3>Index of Methods available in UserService</h3>

+	   

+       <div class="navigation">

+	                               <div>

+                <a href="#getSession"><b>getSession</b></a><br/>

+                <div class="navigation_comment"><i >load this session id before doing anything else Returns an Object of Type
+ Sessiondata, this contains a sessionId, use that sessionId in all Methods</i></div>

+                </div>

+                                               <div>

+                <a href="#loginUser"><b>loginUser</b></a><br/>

+                <div class="navigation_comment"><i >Auth function, use the SID you get by getSession, return positive means
+ logged-in, if negative its an ErrorCode, you have to invoke the Method
+ getErrorByCode to get the Text-Description of that ErrorCode</i></div>

+                </div>

+                                               <div>

+                <a href="#getErrorByCode"><b>getErrorByCode</b></a><br/>

+                <div class="navigation_comment"><i >loads an Error-Object. If a Method returns a negative Result, its an
+ Error-id, it needs a language_id to specify in which language you want to
+ display/read the error-message. English has the Language-ID one, for
+ different one see the list of languages</i></div>

+                </div>

+                                               <div>

+                <a href="#addNewUser"><b>addNewUser</b></a><br/>

+                <div class="navigation_comment"><i >Adds a new Usre like through the Frontend, but also does activates the
+ Account To do SSO see the methods to create a hash and use those ones!</i></div>

+                </div>

+                                               <div>

+                <a href="#addNewUserWithTimeZone"><b>addNewUserWithTimeZone</b></a><br/>

+                <div class="navigation_comment"><i >Adds a new User like through the Frontend, but also does activates the
+ Account</i></div>

+                </div>

+                                               <div>

+                <a href="#addNewUserWithExternalType"><b>addNewUserWithExternalType</b></a><br/>

+                <div class="navigation_comment"><i >Adds a new User like through the Frontend, but also does activates the
+ Account, sends NO email (no matter what you configured) and sets the
+ users external user id and type
+ 
+ Use the methods to create a hash for SSO, creating users is not required
+ for SSO</i></div>

+                </div>

+                                               <div>

+                <a href="#deleteUserById"><b>deleteUserById</b></a><br/>

+                <div class="navigation_comment"><i >Delete a certain user by its id</i></div>

+                </div>

+                                               <div>

+                <a href="#deleteUserByExternalUserIdAndType"><b>deleteUserByExternalUserIdAndType</b></a><br/>

+                <div class="navigation_comment"><i >Delete a certain user by its external user id</i></div>

+                </div>

+                                               <div>

+                <a href="#setUserObjectAndGenerateRoomHash"><b>setUserObjectAndGenerateRoomHash</b></a><br/>

+                <div class="navigation_comment"><i >Description: sets the SessionObject for a certain SID, after setting this
+ Session-Object you can use the SID + a RoomId to enter any Room. ...
+ Session-Hashs are deleted 15 minutes after the creation if not used.</i></div>

+                </div>

+                                               <div>

+                <a href="#setUserObjectAndGenerateRoomHashByURL"><b>setUserObjectAndGenerateRoomHashByURL</b></a><br/>

+                <div class="navigation_comment"><i >Description: sets the SessionObject for a certain SID, after setting this
+ Session-Object you can use the SID + a RoomId to enter any Room.
+ 
+ ++ the user can press f5 to reload the page / use the link several times,
+ the SOAP Gateway does remember the IP of the user and the will only the
+ first user that enters the room allow to re-enter. ... Session-Hashs are
+ deleted 15 minutes after the creation if not used.</i></div>

+                </div>

+                                               <div>

+                <a href="#setUserObjectAndGenerateRoomHashByURLAndRecFlag"><b>setUserObjectAndGenerateRoomHashByURLAndRecFlag</b></a><br/>

+                <div class="navigation_comment"><i >Description: sets the SessionObject for a certain SID, after setting this
+ Session-Object you can use the SID + a RoomId to enter any Room.
+ 
+ ++ the user can press f5 to reload the page / use the link several times,
+ the SOAP Gateway does remember the IP of the user and the will only the
+ first user that enters the room allow to re-enter. ... Session-Hashs are
+ deleted 15 minutes after the creation if not used.
+ 
+ ++ sets the flag if the user can do recording in the conference room</i></div>

+                </div>

+                                               <div>

+                <a href="#setUserObjectMainLandingZone"><b>setUserObjectMainLandingZone</b></a><br/>

+                <div class="navigation_comment"><i >Description: sets the SessionObject for a certain SID, after setting this
+ Session-Object you can use the SID and directly login into the dashboard
+ 
+ ++ the user can press f5 to reload the page / use the link several times,
+ the SOAP Gateway does remember the IP of the user and the will only the
+ first user that enters the room allow to re-enter. ... Session-Hashs are
+ deleted 15 minutes after the creation if not used.</i></div>

+                </div>

+                                               <div>

+                <a href="#setUserAndNickName"><b>setUserAndNickName</b></a><br/>

+                <div class="navigation_comment"><i >Description: sets the SessionObject for a certain SID, after setting this
+ Session-Object you can use the SID + a RoomId to enter any Room.
+ 
+ ++ the user can press f5 to reload the page / use the link several times,
+ the SOAP Gateway does remember the IP of the user and the will only the
+ first user that enters the room allow to re-enter. ... Session-Hashs are
+ deleted 15 minutes after the creation if not used.
+ 
+ ++ Additionally you can set a param showNickNameDialogAsInt, the effect
+ if that param is 1 is, that the user gets a popup where he can enter his
+ nickname right before he enters the conference room. All nicknames and
+ emails users enter are logged in the conferencelog table.</i></div>

+                </div>

+                                               <div>

+                <a href="#setUserObjectAndGenerateRecordingHashByURL"><b>setUserObjectAndGenerateRecordingHashByURL</b></a><br/>

+                <div class="navigation_comment"><i >Use this method to access a Recording instead of Room</i></div>

+                </div>

+                                               <div>

+                <a href="#addUserToOrganisation"><b>addUserToOrganisation</b></a><br/>

+                <div class="navigation_comment"><i >Add a user to a certain organization</i></div>

+                </div>

+                                               <div>

+                <a href="#getUsersByOrganisation"><b>getUsersByOrganisation</b></a><br/>

+                <div class="navigation_comment"><i >Search users and return them</i></div>

+                </div>

+                                               <div>

+                <a href="#kickUserByPublicSID"><b>kickUserByPublicSID</b></a><br/>

+                <div class="navigation_comment"><i >Kick a user by its public SID</i></div>

+                </div>

+                                               <div>

+                <a href="#addOrganisation"><b>addOrganisation</b></a><br/>

+                <div class="navigation_comment"><i >add a new organisation</i></div>

+                </div>

+                           </div>

+	   

+	    <h3>Methods Details in UserService</h3>

+	

+				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getSession" ><b>getSession</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getSession (

+    			    			    			)

+    			</i><br/>

+    			<p>

+    			  load this session id before doing anything else Returns an Object of Type
+ Sessiondata, this contains a sessionId, use that sessionId in all Methods

+    			</p>

+    			<p>

+                  Return Type: org.apache.openmeetings.db.entity.server.Sessiondata

+                </p>

+    			<p>Params:</p>

+    			    			

+    			    				<i>No Params</i>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    							<a href="http://localhost:5080/openmeetings/services/UserService/getSession">http://localhost:5080/openmeetings/services/UserService/getSession</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="loginUser" ><b>loginUser</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>loginUser (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String username

+    			       			    			       			     , 

+    			       			   String userpass

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Auth function, use the SID you get by getSession, return positive means
+ logged-in, if negative its an ErrorCode, you have to invoke the Method
+ getErrorByCode to get the Text-Description of that ErrorCode

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">- The SID from getSession</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">username</td>

+	                     <td valign="top">- Username from OpenMeetings, the user has to have Admin-rights</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">userpass</td>

+	                     <td valign="top">- Userpass from OpenMeetings</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/UserService/loginUser?SID=VALUE&username=VALUE&userpass=VALUE">http://localhost:5080/openmeetings/services/UserService/loginUser?SID=VALUE&amp;username=VALUE&amp;userpass=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getErrorByCode" ><b>getErrorByCode</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getErrorByCode (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   long errorid

+    			       			    			       			     , 

+    			       			   long langId

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  loads an Error-Object. If a Method returns a negative Result, its an
+ Error-id, it needs a language_id to specify in which language you want to
+ display/read the error-message. English has the Language-ID one, for
+ different one see the list of languages

+    			</p>

+    			<p>

+                  Return Type: org.apache.openmeetings.db.dto.basic.ErrorResult

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID from getSession</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		long

+	                     		                     </td>

+	                     <td valign="top">errorid</td>

+	                     <td valign="top">the error id (negative Value here!)</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		long

+	                     		                     </td>

+	                     <td valign="top">langId</td>

+	                     <td valign="top">The id of the language</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/UserService/getErrorByCode?SID=VALUE&errorid=VALUE&langId=VALUE">http://localhost:5080/openmeetings/services/UserService/getErrorByCode?SID=VALUE&amp;errorid=VALUE&amp;langId=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="addNewUser" ><b>addNewUser</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>addNewUser (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String username

+    			       			    			       			     , 

+    			       			   String userpass

+    			       			    			       			     , 

+    			       			   String lastname

+    			       			    			       			     , 

+    			       			   String firstname

+    			       			    			       			     , 

+    			       			   String email

+    			       			    			       			     , 

+    			       			   String additionalname

+    			       			    			       			     , 

+    			       			   String street

+    			       			    			       			     , 

+    			       			   String zip

+    			       			    			       			     , 

+    			       			   String fax

+    			       			    			       			     , 

+    			       			   long states_id

+    			       			    			       			     , 

+    			       			   String town

+    			       			    			       			     , 

+    			       			   long language_id

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Adds a new Usre like through the Frontend, but also does activates the
+ Account To do SSO see the methods to create a hash and use those ones!

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID from getSession</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">username</td>

+	                     <td valign="top">any username</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">userpass</td>

+	                     <td valign="top">any userpass</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">lastname</td>

+	                     <td valign="top">any lastname</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">firstname</td>

+	                     <td valign="top">any firstname</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">email</td>

+	                     <td valign="top">any email</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">additionalname</td>

+	                     <td valign="top">any additionalname</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">street</td>

+	                     <td valign="top">any street</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">zip</td>

+	                     <td valign="top">any zip</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">fax</td>

+	                     <td valign="top">any fax</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		long

+	                     		                     </td>

+	                     <td valign="top">states_id</td>

+	                     <td valign="top">a valid states_id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">town</td>

+	                     <td valign="top">any town</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		long

+	                     		                     </td>

+	                     <td valign="top">language_id</td>

+	                     <td valign="top">the language_id</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/UserService/addNewUser?SID=VALUE&username=VALUE&userpass=VALUE&lastname=VALUE&firstname=VALUE&email=VALUE&additionalname=VALUE&street=VALUE&zip=VALUE&fax=VALUE&states_id=VALUE&town=VALUE&language_id=VALUE">http://localhost:5080/openmeetings/services/UserService/addNewUser?SID=VALUE&amp;username=VALUE&amp;userpass=VALUE&amp;lastname=VALUE&amp;firstname=VALUE&amp;email=VALUE&amp;additionalname=VALUE&amp;street=VALUE&amp;zip=VALUE&amp;fax=VALUE&amp;states_id=VALUE&amp;town=VALUE&amp;language_id=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="addNewUserWithTimeZone" ><b>addNewUserWithTimeZone</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>addNewUserWithTimeZone (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String username

+    			       			    			       			     , 

+    			       			   String userpass

+    			       			    			       			     , 

+    			       			   String lastname

+    			       			    			       			     , 

+    			       			   String firstname

+    			       			    			       			     , 

+    			       			   String email

+    			       			    			       			     , 

+    			       			   String additionalname

+    			       			    			       			     , 

+    			       			   String street

+    			       			    			       			     , 

+    			       			   String zip

+    			       			    			       			     , 

+    			       			   String fax

+    			       			    			       			     , 

+    			       			   long states_id

+    			       			    			       			     , 

+    			       			   String town

+    			       			    			       			     , 

+    			       			   long language_id

+    			       			    			       			     , 

+    			       			   String jNameTimeZone

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Adds a new User like through the Frontend, but also does activates the
+ Account

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID from getSession</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">username</td>

+	                     <td valign="top">any username</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">userpass</td>

+	                     <td valign="top">any userpass</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">lastname</td>

+	                     <td valign="top">any lastname</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">firstname</td>

+	                     <td valign="top">any firstname</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">email</td>

+	                     <td valign="top">any email</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">additionalname</td>

+	                     <td valign="top">any additionalname</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">street</td>

+	                     <td valign="top">any street</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">zip</td>

+	                     <td valign="top">any zip</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">fax</td>

+	                     <td valign="top">any fax</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		long

+	                     		                     </td>

+	                     <td valign="top">states_id</td>

+	                     <td valign="top">a valid states_id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">town</td>

+	                     <td valign="top">any town</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		long

+	                     		                     </td>

+	                     <td valign="top">language_id</td>

+	                     <td valign="top">the language_id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">jNameTimeZone</td>

+	                     <td valign="top">the name of the timezone for the user</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/UserService/addNewUserWithTimeZone?SID=VALUE&username=VALUE&userpass=VALUE&lastname=VALUE&firstname=VALUE&email=VALUE&additionalname=VALUE&street=VALUE&zip=VALUE&fax=VALUE&states_id=VALUE&town=VALUE&language_id=VALUE&jNameTimeZone=VALUE">http://localhost:5080/openmeetings/services/UserService/addNewUserWithTimeZone?SID=VALUE&amp;username=VALUE&amp;userpass=VALUE&amp;lastname=VALUE&amp;firstname=VALUE&amp;email=VALUE&amp;additionalname=VALUE&amp;street=VALUE&amp;zip=VALUE&amp;fax=VALUE&amp;states_id=VALUE&amp;town=VALUE&amp;language_id=VALUE&amp;jNameTimeZone=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="addNewUserWithExternalType" ><b>addNewUserWithExternalType</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>addNewUserWithExternalType (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String username

+    			       			    			       			     , 

+    			       			   String userpass

+    			       			    			       			     , 

+    			       			   String lastname

+    			       			    			       			     , 

+    			       			   String firstname

+    			       			    			       			     , 

+    			       			   String email

+    			       			    			       			     , 

+    			       			   String additionalname

+    			       			    			       			     , 

+    			       			   String street

+    			       			    			       			     , 

+    			       			   String zip

+    			       			    			       			     , 

+    			       			   String fax

+    			       			    			       			     , 

+    			       			   long states_id

+    			       			    			       			     , 

+    			       			   String town

+    			       			    			       			     , 

+    			       			   long language_id

+    			       			    			       			     , 

+    			       			   String jNameTimeZone

+    			       			    			       			     , 

+    			       			   String externalUserId

+    			       			    			       			     , 

+    			       			   String externalUserType

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Adds a new User like through the Frontend, but also does activates the
+ Account, sends NO email (no matter what you configured) and sets the
+ users external user id and type
+ 
+ Use the methods to create a hash for SSO, creating users is not required
+ for SSO

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID from getSession</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">username</td>

+	                     <td valign="top">any username</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">userpass</td>

+	                     <td valign="top">any userpass</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">lastname</td>

+	                     <td valign="top">any lastname</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">firstname</td>

+	                     <td valign="top">any firstname</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">email</td>

+	                     <td valign="top">any email</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">additionalname</td>

+	                     <td valign="top">any additionalname</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">street</td>

+	                     <td valign="top">any street</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">zip</td>

+	                     <td valign="top">any zip</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">fax</td>

+	                     <td valign="top">any fax</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		long

+	                     		                     </td>

+	                     <td valign="top">states_id</td>

+	                     <td valign="top">a valid states_id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">town</td>

+	                     <td valign="top">any town</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		long

+	                     		                     </td>

+	                     <td valign="top">language_id</td>

+	                     <td valign="top">the language_id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">jNameTimeZone</td>

+	                     <td valign="top">the name of the timezone for the user</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalUserId</td>

+	                     <td valign="top">externalUserId</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalUserType</td>

+	                     <td valign="top">externalUserType</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/UserService/addNewUserWithExternalType?SID=VALUE&username=VALUE&userpass=VALUE&lastname=VALUE&firstname=VALUE&email=VALUE&additionalname=VALUE&street=VALUE&zip=VALUE&fax=VALUE&states_id=VALUE&town=VALUE&language_id=VALUE&jNameTimeZone=VALUE&externalUserId=VALUE&externalUserType=VALUE">http://localhost:5080/openmeetings/services/UserService/addNewUserWithExternalType?SID=VALUE&amp;username=VALUE&amp;userpass=VALUE&amp;lastname=VALUE&amp;firstname=VALUE&amp;email=VALUE&amp;additionalname=VALUE&amp;street=VALUE&amp;zip=VALUE&amp;fax=VALUE&amp;states_id=VALUE&amp;town=VALUE&amp;language_id=VALUE&amp;jNameTimeZone=VALUE&amp;externalUserId=VALUE&amp;externalUserType=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="deleteUserById" ><b>deleteUserById</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>deleteUserById (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long userId

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Delete a certain user by its id

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID from getSession</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">userId</td>

+	                     <td valign="top">the openmeetings user id</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/UserService/deleteUserById?SID=VALUE&userId=VALUE">http://localhost:5080/openmeetings/services/UserService/deleteUserById?SID=VALUE&amp;userId=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="deleteUserByExternalUserIdAndType" ><b>deleteUserByExternalUserIdAndType</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>deleteUserByExternalUserIdAndType (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String externalUserId

+    			       			    			       			     , 

+    			       			   String externalUserType

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Delete a certain user by its external user id

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID from getSession</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalUserId</td>

+	                     <td valign="top">externalUserId</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalUserType</td>

+	                     <td valign="top">externalUserId</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/UserService/deleteUserByExternalUserIdAndType?SID=VALUE&externalUserId=VALUE&externalUserType=VALUE">http://localhost:5080/openmeetings/services/UserService/deleteUserByExternalUserIdAndType?SID=VALUE&amp;externalUserId=VALUE&amp;externalUserType=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="setUserObjectAndGenerateRoomHash" ><b>setUserObjectAndGenerateRoomHash</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>setUserObjectAndGenerateRoomHash (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String username

+    			       			    			       			     , 

+    			       			   String firstname

+    			       			    			       			     , 

+    			       			   String lastname

+    			       			    			       			     , 

+    			       			   String profilePictureUrl

+    			       			    			       			     , 

+    			       			   String email

+    			       			    			       			     , 

+    			       			   String externalUserId

+    			       			    			       			     , 

+    			       			   String externalUserType

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   int becomeModeratorAsInt

+    			       			    			       			     , 

+    			       			   int showAudioVideoTestAsInt

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Description: sets the SessionObject for a certain SID, after setting this
+ Session-Object you can use the SID + a RoomId to enter any Room. ...
+ Session-Hashs are deleted 15 minutes after the creation if not used.

+    			</p>

+    			<p>

+                  Return Type: java.lang.String

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID from getSession</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">username</td>

+	                     <td valign="top">any username</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">firstname</td>

+	                     <td valign="top">any firstname</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">lastname</td>

+	                     <td valign="top">any lastname</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">profilePictureUrl</td>

+	                     <td valign="top">any profilePictureUrl</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">email</td>

+	                     <td valign="top">any email</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalUserId</td>

+	                     <td valign="top">if you have any external user Id you may set it here</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalUserType</td>

+	                     <td valign="top">you can specify your system-name here, for example "moodle"</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">the room id the user should be logged in</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">becomeModeratorAsInt</td>

+	                     <td valign="top">0 means no Moderator, 1 means Moderator</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">showAudioVideoTestAsInt</td>

+	                     <td valign="top">0 means don't show Audio/Video Test, 1 means show Audio/Video
+            Test Application before the user is logged into the room</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/UserService/setUserObjectAndGenerateRoomHash?SID=VALUE&username=VALUE&firstname=VALUE&lastname=VALUE&profilePictureUrl=VALUE&email=VALUE&externalUserId=VALUE&externalUserType=VALUE&room_id=VALUE&becomeModeratorAsInt=VALUE&showAudioVideoTestAsInt=VALUE">http://localhost:5080/openmeetings/services/UserService/setUserObjectAndGenerateRoomHash?SID=VALUE&amp;username=VALUE&amp;firstname=VALUE&amp;lastname=VALUE&amp;profilePictureUrl=VALUE&amp;email=VALUE&amp;externalUserId=VALUE&amp;externalUserType=VALUE&amp;room_id=VALUE&amp;becomeModeratorAsInt=VALUE&amp;showAudioVideoTestAsInt=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="setUserObjectAndGenerateRoomHashByURL" ><b>setUserObjectAndGenerateRoomHashByURL</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>setUserObjectAndGenerateRoomHashByURL (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String username

+    			       			    			       			     , 

+    			       			   String firstname

+    			       			    			       			     , 

+    			       			   String lastname

+    			       			    			       			     , 

+    			       			   String profilePictureUrl

+    			       			    			       			     , 

+    			       			   String email

+    			       			    			       			     , 

+    			       			   String externalUserId

+    			       			    			       			     , 

+    			       			   String externalUserType

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   int becomeModeratorAsInt

+    			       			    			       			     , 

+    			       			   int showAudioVideoTestAsInt

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Description: sets the SessionObject for a certain SID, after setting this
+ Session-Object you can use the SID + a RoomId to enter any Room.
+ 
+ ++ the user can press f5 to reload the page / use the link several times,
+ the SOAP Gateway does remember the IP of the user and the will only the
+ first user that enters the room allow to re-enter. ... Session-Hashs are
+ deleted 15 minutes after the creation if not used.

+    			</p>

+    			<p>

+                  Return Type: java.lang.String

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID from getSession</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">username</td>

+	                     <td valign="top">any username</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">firstname</td>

+	                     <td valign="top">any firstname</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">lastname</td>

+	                     <td valign="top">any lastname</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">profilePictureUrl</td>

+	                     <td valign="top">any profilePictureUrl</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">email</td>

+	                     <td valign="top">any email any email</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalUserId</td>

+	                     <td valign="top">if you have any external user Id you may set it here</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalUserType</td>

+	                     <td valign="top">you can specify your system-name here, for example "moodle"</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">the room id the user should be logged in</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">becomeModeratorAsInt</td>

+	                     <td valign="top">0 means no Moderator, 1 means Moderator</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">showAudioVideoTestAsInt</td>

+	                     <td valign="top">0 means don't show Audio/Video Test, 1 means show Audio/Video
+            Test Application before the user is logged into the room</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/UserService/setUserObjectAndGenerateRoomHashByURL?SID=VALUE&username=VALUE&firstname=VALUE&lastname=VALUE&profilePictureUrl=VALUE&email=VALUE&externalUserId=VALUE&externalUserType=VALUE&room_id=VALUE&becomeModeratorAsInt=VALUE&showAudioVideoTestAsInt=VALUE">http://localhost:5080/openmeetings/services/UserService/setUserObjectAndGenerateRoomHashByURL?SID=VALUE&amp;username=VALUE&amp;firstname=VALUE&amp;lastname=VALUE&amp;profilePictureUrl=VALUE&amp;email=VALUE&amp;externalUserId=VALUE&amp;externalUserType=VALUE&amp;room_id=VALUE&amp;becomeModeratorAsInt=VALUE&amp;showAudioVideoTestAsInt=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="setUserObjectAndGenerateRoomHashByURLAndRecFlag" ><b>setUserObjectAndGenerateRoomHashByURLAndRecFlag</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>setUserObjectAndGenerateRoomHashByURLAndRecFlag (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String username

+    			       			    			       			     , 

+    			       			   String firstname

+    			       			    			       			     , 

+    			       			   String lastname

+    			       			    			       			     , 

+    			       			   String profilePictureUrl

+    			       			    			       			     , 

+    			       			   String email

+    			       			    			       			     , 

+    			       			   String externalUserId

+    			       			    			       			     , 

+    			       			   String externalUserType

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   int becomeModeratorAsInt

+    			       			    			       			     , 

+    			       			   int showAudioVideoTestAsInt

+    			       			    			       			     , 

+    			       			   int allowRecording

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Description: sets the SessionObject for a certain SID, after setting this
+ Session-Object you can use the SID + a RoomId to enter any Room.
+ 
+ ++ the user can press f5 to reload the page / use the link several times,
+ the SOAP Gateway does remember the IP of the user and the will only the
+ first user that enters the room allow to re-enter. ... Session-Hashs are
+ deleted 15 minutes after the creation if not used.
+ 
+ ++ sets the flag if the user can do recording in the conference room

+    			</p>

+    			<p>

+                  Return Type: java.lang.String

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID from getSession</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">username</td>

+	                     <td valign="top">any username</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">firstname</td>

+	                     <td valign="top">any firstname</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">lastname</td>

+	                     <td valign="top">any lastname</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">profilePictureUrl</td>

+	                     <td valign="top">any profilePictureUrl</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">email</td>

+	                     <td valign="top">any email</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalUserId</td>

+	                     <td valign="top">if you have any external user Id you may set it here</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalUserType</td>

+	                     <td valign="top">you can specify your system-name here, for example "moodle"</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">the room id the user should be logged in</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">becomeModeratorAsInt</td>

+	                     <td valign="top">0 means no Moderator, 1 means Moderator</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">showAudioVideoTestAsInt</td>

+	                     <td valign="top">0 means don't show Audio/Video Test, 1 means show Audio/Video
+            Test Application before the user is logged into the room</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">allowRecording</td>

+	                     <td valign="top">0 means don't allow Recording, 1 means allow Recording</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/UserService/setUserObjectAndGenerateRoomHashByURLAndRecFlag?SID=VALUE&username=VALUE&firstname=VALUE&lastname=VALUE&profilePictureUrl=VALUE&email=VALUE&externalUserId=VALUE&externalUserType=VALUE&room_id=VALUE&becomeModeratorAsInt=VALUE&showAudioVideoTestAsInt=VALUE&allowRecording=VALUE">http://localhost:5080/openmeetings/services/UserService/setUserObjectAndGenerateRoomHashByURLAndRecFlag?SID=VALUE&amp;username=VALUE&amp;firstname=VALUE&amp;lastname=VALUE&amp;profilePictureUrl=VALUE&amp;email=VALUE&amp;externalUserId=VALUE&amp;externalUserType=VALUE&amp;room_id=VALUE&amp;becomeModeratorAsInt=VALUE&amp;showAudioVideoTestAsInt=VALUE&amp;allowRecording=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="setUserObjectMainLandingZone" ><b>setUserObjectMainLandingZone</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>setUserObjectMainLandingZone (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String username

+    			       			    			       			     , 

+    			       			   String firstname

+    			       			    			       			     , 

+    			       			   String lastname

+    			       			    			       			     , 

+    			       			   String profilePictureUrl

+    			       			    			       			     , 

+    			       			   String email

+    			       			    			       			     , 

+    			       			   String externalUserId

+    			       			    			       			     , 

+    			       			   String externalUserType

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Description: sets the SessionObject for a certain SID, after setting this
+ Session-Object you can use the SID and directly login into the dashboard
+ 
+ ++ the user can press f5 to reload the page / use the link several times,
+ the SOAP Gateway does remember the IP of the user and the will only the
+ first user that enters the room allow to re-enter. ... Session-Hashs are
+ deleted 15 minutes after the creation if not used.

+    			</p>

+    			<p>

+                  Return Type: java.lang.String

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID from getSession</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">username</td>

+	                     <td valign="top">any username</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">firstname</td>

+	                     <td valign="top">any firstname</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">lastname</td>

+	                     <td valign="top">any lastname</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">profilePictureUrl</td>

+	                     <td valign="top">any absolute profilePictureUrl</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">email</td>

+	                     <td valign="top">any email</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalUserId</td>

+	                     <td valign="top">if you have any external user Id you may set it here</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalUserType</td>

+	                     <td valign="top">you can specify your system-name here, for example "moodle"</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/UserService/setUserObjectMainLandingZone?SID=VALUE&username=VALUE&firstname=VALUE&lastname=VALUE&profilePictureUrl=VALUE&email=VALUE&externalUserId=VALUE&externalUserType=VALUE">http://localhost:5080/openmeetings/services/UserService/setUserObjectMainLandingZone?SID=VALUE&amp;username=VALUE&amp;firstname=VALUE&amp;lastname=VALUE&amp;profilePictureUrl=VALUE&amp;email=VALUE&amp;externalUserId=VALUE&amp;externalUserType=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="setUserAndNickName" ><b>setUserAndNickName</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>setUserAndNickName (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String username

+    			       			    			       			     , 

+    			       			   String firstname

+    			       			    			       			     , 

+    			       			   String lastname

+    			       			    			       			     , 

+    			       			   String profilePictureUrl

+    			       			    			       			     , 

+    			       			   String email

+    			       			    			       			     , 

+    			       			   String externalUserId

+    			       			    			       			     , 

+    			       			   String externalUserType

+    			       			    			       			     , 

+    			       			   Long room_id

+    			       			    			       			     , 

+    			       			   int becomeModeratorAsInt

+    			       			    			       			     , 

+    			       			   int showAudioVideoTestAsInt

+    			       			    			       			     , 

+    			       			   int showNickNameDialogAsInt

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Description: sets the SessionObject for a certain SID, after setting this
+ Session-Object you can use the SID + a RoomId to enter any Room.
+ 
+ ++ the user can press f5 to reload the page / use the link several times,
+ the SOAP Gateway does remember the IP of the user and the will only the
+ first user that enters the room allow to re-enter. ... Session-Hashs are
+ deleted 15 minutes after the creation if not used.
+ 
+ ++ Additionally you can set a param showNickNameDialogAsInt, the effect
+ if that param is 1 is, that the user gets a popup where he can enter his
+ nickname right before he enters the conference room. All nicknames and
+ emails users enter are logged in the conferencelog table.

+    			</p>

+    			<p>

+                  Return Type: java.lang.String

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID from getSession</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">username</td>

+	                     <td valign="top">any username</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">firstname</td>

+	                     <td valign="top">any firstname</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">lastname</td>

+	                     <td valign="top">any lastname</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">profilePictureUrl</td>

+	                     <td valign="top">any profilePictureUrl</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">email</td>

+	                     <td valign="top">any email</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalUserId</td>

+	                     <td valign="top">if you have any external user Id you may set it here</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalUserType</td>

+	                     <td valign="top">you can specify your system-name here, for example "moodle"</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">room_id</td>

+	                     <td valign="top">the room id the user should be logged in</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">becomeModeratorAsInt</td>

+	                     <td valign="top">0 means no Moderator, 1 means Moderator</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">showAudioVideoTestAsInt</td>

+	                     <td valign="top">0 means don't show Audio/Video Test, 1 means show Audio/Video
+            Test Application before the user is logged into the room</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">showNickNameDialogAsInt</td>

+	                     <td valign="top">0 means do not show the popup to enter a nichname, 1 means
+            that there is a popup to enter the nickname for the conference</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/UserService/setUserAndNickName?SID=VALUE&username=VALUE&firstname=VALUE&lastname=VALUE&profilePictureUrl=VALUE&email=VALUE&externalUserId=VALUE&externalUserType=VALUE&room_id=VALUE&becomeModeratorAsInt=VALUE&showAudioVideoTestAsInt=VALUE&showNickNameDialogAsInt=VALUE">http://localhost:5080/openmeetings/services/UserService/setUserAndNickName?SID=VALUE&amp;username=VALUE&amp;firstname=VALUE&amp;lastname=VALUE&amp;profilePictureUrl=VALUE&amp;email=VALUE&amp;externalUserId=VALUE&amp;externalUserType=VALUE&amp;room_id=VALUE&amp;becomeModeratorAsInt=VALUE&amp;showAudioVideoTestAsInt=VALUE&amp;showNickNameDialogAsInt=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="setUserObjectAndGenerateRecordingHashByURL" ><b>setUserObjectAndGenerateRecordingHashByURL</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>setUserObjectAndGenerateRecordingHashByURL (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String username

+    			       			    			       			     , 

+    			       			   String firstname

+    			       			    			       			     , 

+    			       			   String lastname

+    			       			    			       			     , 

+    			       			   String externalUserId

+    			       			    			       			     , 

+    			       			   String externalUserType

+    			       			    			       			     , 

+    			       			   Long recording_id

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Use this method to access a Recording instead of Room

+    			</p>

+    			<p>

+                  Return Type: java.lang.String

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID from getSession</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">username</td>

+	                     <td valign="top">any username</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">firstname</td>

+	                     <td valign="top">any firstname</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">lastname</td>

+	                     <td valign="top">any lastname</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalUserId</td>

+	                     <td valign="top">if you have any external user Id you may set it here</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">externalUserType</td>

+	                     <td valign="top">you can specify your system-name here, for example "moodle"</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">recording_id</td>

+	                     <td valign="top">the id of the recording, get a List of all Recordings with
+            RoomService::getFlvRecordingByExternalRoomType</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/UserService/setUserObjectAndGenerateRecordingHashByURL?SID=VALUE&username=VALUE&firstname=VALUE&lastname=VALUE&externalUserId=VALUE&externalUserType=VALUE&recording_id=VALUE">http://localhost:5080/openmeetings/services/UserService/setUserObjectAndGenerateRecordingHashByURL?SID=VALUE&amp;username=VALUE&amp;firstname=VALUE&amp;lastname=VALUE&amp;externalUserId=VALUE&amp;externalUserType=VALUE&amp;recording_id=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="addUserToOrganisation" ><b>addUserToOrganisation</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>addUserToOrganisation (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   Long user_id

+    			       			    			       			     , 

+    			       			   Long organisation_id

+    			       			    			       			     , 

+    			       			   Long insertedby

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Add a user to a certain organization

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID from getSession</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">user_id</td>

+	                     <td valign="top">the user id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">organisation_id</td>

+	                     <td valign="top">the organization id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		Long

+	                     		                     </td>

+	                     <td valign="top">insertedby</td>

+	                     <td valign="top">user id of the operating user</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/UserService/addUserToOrganisation?SID=VALUE&user_id=VALUE&organisation_id=VALUE&insertedby=VALUE">http://localhost:5080/openmeetings/services/UserService/addUserToOrganisation?SID=VALUE&amp;user_id=VALUE&amp;organisation_id=VALUE&amp;insertedby=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="getUsersByOrganisation" ><b>getUsersByOrganisation</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>getUsersByOrganisation (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   long organisation_id

+    			       			    			       			     , 

+    			       			   int start

+    			       			    			       			     , 

+    			       			   int max

+    			       			    			       			     , 

+    			       			   String orderby

+    			       			    			       			     , 

+    			       			   boolean asc

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Search users and return them

+    			</p>

+    			<p>

+                  Return Type: org.apache.openmeetings.db.dto.basic.SearchResult<org.apache.openmeetings.db.entity.user.User>

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID from getSession</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		long

+	                     		                     </td>

+	                     <td valign="top">organisation_id</td>

+	                     <td valign="top">the organization id</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">start</td>

+	                     <td valign="top">first record</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		int

+	                     		                     </td>

+	                     <td valign="top">max</td>

+	                     <td valign="top">max records</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">orderby</td>

+	                     <td valign="top">orderby clause</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		boolean

+	                     		                     </td>

+	                     <td valign="top">asc</td>

+	                     <td valign="top">asc or desc</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    								    				    								    				    								    				    								    				    												<a href="http://localhost:5080/openmeetings/services/UserService/getUsersByOrganisation?SID=VALUE&organisation_id=VALUE&start=VALUE&max=VALUE&orderby=VALUE&asc=VALUE">http://localhost:5080/openmeetings/services/UserService/getUsersByOrganisation?SID=VALUE&amp;organisation_id=VALUE&amp;start=VALUE&amp;max=VALUE&amp;orderby=VALUE&amp;asc=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="kickUserByPublicSID" ><b>kickUserByPublicSID</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>kickUserByPublicSID (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String publicSID

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  Kick a user by its public SID

+    			</p>

+    			<p>

+                  Return Type: java.lang.Boolean

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID from getSession</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">publicSID</td>

+	                     <td valign="top">the publicSID (you can get it from the call to get users in a
+            room)</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/UserService/kickUserByPublicSID?SID=VALUE&publicSID=VALUE">http://localhost:5080/openmeetings/services/UserService/kickUserByPublicSID?SID=VALUE&amp;publicSID=VALUE</a>

+    		  </div>

+    	   				    		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="addOrganisation" ><b>addOrganisation</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>addOrganisation (

+    			    			    			       			   String SID

+    			       			    			       			     , 

+    			       			   String name

+    			       			    			)

+    			</i><br/>

+    			<p>

+    			  add a new organisation

+    			</p>

+    			<p>

+                  Return Type: java.lang.Long

+                </p>

+    			<p>Params:</p>

+    			    			

+    				    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   	    			   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">SID</td>

+	                     <td valign="top">The SID from getSession</td>

+	                   </tr>

+	                   

+	                   	                   	    			   <tr>

+	                     <td valign="top">

+	                     		                     		String

+	                     		                     </td>

+	                     <td valign="top">name</td>

+	                     <td valign="top">the name of the org</td>

+	                   </tr>

+	                   

+	                   	                   	                   </tbody>

+	    			</table>

+    			    			<br/>

+    			REST Sample Call/URL:<br/>

+    			    			    				    								    				    												<a href="http://localhost:5080/openmeetings/services/UserService/addOrganisation?SID=VALUE&name=VALUE">http://localhost:5080/openmeetings/services/UserService/addOrganisation?SID=VALUE&amp;name=VALUE</a>

+    		  </div>

+    	   			

+	

+	</body>

+</html>

+

diff --git a/docs/WebappNamePath.html b/docs/WebappNamePath.html
new file mode 100644
index 0000000..548d5d8
--- /dev/null
+++ b/docs/WebappNamePath.html
@@ -0,0 +1,534 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Webapp Name / Path</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Customize Openmeetings logo"><strong>Customize Openmeetings logo</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>If you want to set up your logo in Openmeetings header you can do the following:</p>
+                                                <ol>

+				<li>create your logo image as PNG 40px height</li>

+				<li>replace <tt>/opt/red5/webapps/openmeetings/public/themes/basic-theme/general/logo.png</tt> with your logo file</li>

+				<li>(Advanced optional) you can modify <tt>/opt/red5/webapps/openmeetings/public/config.xml</tt> and modify <tt>appdisplay</tt> section: set position and display for the logo and/or name</li>

+				<li>(Advanced optional) you can modify <tt>/opt/red5/webapps/openmeetings/public/theme.xml</tt> (around line 57) and change image name/path</li>

+			</ol>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Renaming /openmeetings context"><strong>Renaming /openmeetings context</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				If you want to have

+				<tt>http://yourcorp.com:5080/yourmeetings</tt>

+				instead of

+				<tt>http://yourcorp.com:5080/openmeetings</tt>

+				you need to do the following

+			</p>
+                                                <ol>

+				<li>stop openmmetings if it is running </li>

+				<li>

+					go to openmeetings install dir (for ex.

+					<tt>/opt/red5</tt>

+					)

+				</li>

+				<li>

+					rename

+					<tt>/opt/red5/webapps/openmeetings</tt>

+					to

+					<tt>/opt/red5/webapps/yourmeetings</tt>

+					(for ex.

+					<tt>mv /opt/red5/webapps/openmeetings

+						/opt/red5/webapps/yourmeetings

+					</tt>

+					)

+				</li>

+				<li>

+					open

+					<tt>/opt/red5/webapps/yourmeetings/public/config.xml</tt>

+					using your favorite text editor (for ex.

+					<tt>vim /opt/red5/webapps/yourmeetings/public/config.xml</tt>

+					)

+				</li>

+				<li>

+					find and modify

+					<tt>&lt;webAppRootKey&gt;openmeetings&lt;/webAppRootKey&gt;</tt>

+					to be

+					<tt>&lt;webAppRootKey&gt;</tt>

+					<strong>yourmeetings</strong>

+					<tt>&lt;/webAppRootKey&gt;</tt>

+				</li>

+				<li>

+					find and modify

+					<tt>&lt;httpRootKey&gt;/openmeetings/&lt;/httpRootKey&gt;</tt>

+					to be

+					<tt>&lt;httpRootKey&gt;</tt>

+					<strong>/yourmeetings/</strong>

+					<tt>&lt;/httpRootKey&gt;</tt>

+				</li>

+			</ol>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Changing hard-coded application name in string labels"><strong>Changing hard-coded application name in string labels</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				To have

+				<i>Your Application Name</i>

+				instead of

+				<i>Openmeetings</i>

+				in

+				<strong>all</strong>

+				text labels you need to do the following

+			</p>
+                                                <ol>

+				<li>

+					ensure

+					<strong>

+						<tt>$APP_NAME</tt>

+					</strong>

+					placeholder is used in

+					<i>all</i>

+					strings you have added and/or modified (all strings bundled into

+					Openmeetings already have this placeholder)

+				</li>

+				<li>login to Openmeetings as user with administrator privileges </li>

+				<li>

+					go to

+					<tt>Administration -&gt; Configuration</tt>

+				</li>

+				<li>

+					find and edit configuration with name

+					<strong>

+						<tt>application.name</tt>

+					</strong>

+				</li>

+				<li>

+					Set its value to be

+					<i>

+						<tt>Your Application Name</tt>

+					</i>

+				</li>

+				<li>

+					<tt>Save</tt>

+				</li>

+				<li>reload page or relogin </li>

+			</ol>
+                                                <p>

+			All string will display

+			<i>

+				<tt>Your Application Name</tt>

+			</i>

+			in place of

+			<i>

+				<tt>Openmeetings</tt>

+			</i>

+			</p>
+                                                <p>

+				Please

+				<i>NOTE</i>

+				there are 3 additional properties in the public/config.xml file which

+				should be modified for

+				<strong>TOTAL</strong>

+				Openmeetings clean up:

+			</p>
+                                                <div class="xmlcode">

+				&lt;currentappname&gt;OpenMeetings&lt;/currentappname&gt;

+				<br />

+				&lt;currentappnameurl&gt;http://openmeetings.apache.org&lt;/currentappnameurl&gt;

+				<br />

+				&lt;currentappnamebugurl&gt;https://issues.apache.org/jira/browse/OPENMEETINGS&lt;/currentappnamebugurl&gt;

+				<br />

+			</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Running multiple Openmeetings instances on the same server"><strong>Running multiple Openmeetings instances on the same server</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				If you want to run multiple Openmeetings instances on the same server i.e. to have<br />  

+				<tt>http://yourcorp.com:5080/openmeetings1</tt><br /> 

+				<tt>http://yourcorp.com:5080/openmeetings2</tt><br /> etc.<br /> you need to do the following:

+			</p>
+                                                <ol>

+				<li>edit <tt>webapps/openmeetings1/WEB-INF/red5-web.properties</tt> for <strong>every</strong> Openmeetings 

+				instance and add the following line <tt>webapp.contextPath=/openmeetings1</tt>  to it (context of 

+				<strong>every</strong> instance <strong>should</strong> match the folder name in webapps dir)

+				</li>

+				<li>in case of java memory problems modify <tt>red5.sh</tt> add following line:<br />

+					<div class="xmlcode">

+					export JAVA_OPTS="-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:MaxPermSize=128M"

+					</div>

+					or <tt>red5.bat</tt>:<br />

+					<div class="xmlcode">

+					set JAVA_OPTS=-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:MaxPermSize=128M

+					</div>

+				</li>

+			</ol>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/WebcamResolutions.html b/docs/WebcamResolutions.html
new file mode 100644
index 0000000..5f734de
--- /dev/null
+++ b/docs/WebcamResolutions.html
@@ -0,0 +1,379 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - How to configure Camera default resolutions </title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="How to configure Camera default resolutions"><strong>How to configure Camera default resolutions</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>When you choose the webcam you have different resolutions

+				available the user can choose from. </p>
+                                                <p>You can add/remove resolutions and also change the default

+				selection. In the public/config.xml there is a section: </p>
+                                                <div class="xmlcode">

+				&lt;availableCameraResolutions&gt;<br />

+				<div style="margin-left:20px">

+				    &lt;resolution type="4:3 (~6 KByte/sec)" width="40" height="30" isDefault="false" /&gt;<br />

+				    &lt;resolution type="4:3 (~12 KByte/sec)" width="80" height="60" isDefault="false" /&gt;<br />

+				    &lt;resolution type="4:3 (~20 KByte/sec)" width="120" height="90" isDefault="true" /&gt;<br />

+				    &lt;resolution type="QQVGA 4:3 (~36 KByte/sec)" width="160" height="120" isDefault="false" /&gt;<br />

+				    &lt;resolution type="4:3 (~40 KByte/sec)" width="240" height="180" isDefault="false" /&gt;<br />

+				    &lt;resolution type="HVGA 4:3 (~56 KByte/sec)" width="320" height="240" isDefault="false" /&gt;<br />

+				    &lt;resolution type="4:3  (~60 KByte/sec)" width="480" height="360" isDefault="false" /&gt;<br />

+				    &lt;resolution type="4:3 (~68 KByte/sec)" width="640" height="480" isDefault="false" /&gt;<br />

+				    &lt;resolution type="XGA 4:3" width="1024" height="768" isDefault="false" /&gt;<br />

+				    &lt;resolution type="16:9" width="256" height="150" isDefault="false" /&gt;<br />

+				    &lt;resolution type="WQVGA 9:5" width="432" height="240" isDefault="false" /&gt;<br />

+				    &lt;resolution type="pseudo 16:9" width="480" height="234" isDefault="false" /&gt;<br />

+				    &lt;resolution type="16:9" width="512" height="300" isDefault="false" /&gt;<br />

+				    &lt;resolution type="nHD 16:9" width="640" height="360" isDefault="false" /&gt;<br />

+				    &lt;resolution type="16:9" width="1024" height="600" isDefault="false" /&gt;<br />

+				    </div>

+				&lt;/availableCameraResolutions&gt;			 

+			</div>
+                                                <p>Tip: You might edit the public/config.xml with an XML aware editor that correctly 

+		    handles the XSD defintion to avoid misconfiguration. The openmeetings-config.xsd 

+		    is in the same folder like the public/config.xml. </p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/WebserviceIndex.html b/docs/WebserviceIndex.html
new file mode 100644
index 0000000..222c354
--- /dev/null
+++ b/docs/WebserviceIndex.html
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+          

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+-->

+

+    <!-- ====================================================================== -->

+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE TEMPLATE INSTEAD! -->

+    <!-- Main Page Section -->

+    <!-- ====================================================================== -->

+    

+     <html>

+        <head>

+		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>

+		<meta name="author" content="OpenMeetings Team">

+		<meta name="email" content="sebawagner@apache.org">

+		<title>OpenMeetings API Classes</title>

+		<link rel="stylesheet" type="text/css" href="openmeetings_docs.css">

+        </head>

+	<body>

+			

+       <div class="navigation">

+	               <div>

+            <a href="CalendarService.html" target="_PARENT"><b>CalendarService</b></a><br/>

+            <div class="navigation_comment"><i >CalendarService contains methods to create, edit delete calendar meetings</i></div>

+            </div>

+                    <div>

+            <a href="FileService.html" target="_PARENT"><b>FileService</b></a><br/>

+            <div class="navigation_comment"><i >Contains methods to import and upload files into the Files section of the
+ conference room and the personal drive of any user</i></div>

+            </div>

+                    <div>

+            <a href="JabberService.html" target="_PARENT"><b>JabberService</b></a><br/>

+            <div class="navigation_comment"><i >This class provides method implementations necessary for OM to Jabber integration.</i></div>

+            </div>

+                    <div>

+            <a href="RoomService.html" target="_PARENT"><b>RoomService</b></a><br/>

+            <div class="navigation_comment"><i >RoomService contains methods to manipulate rooms and create invitation hash</i></div>

+            </div>

+                    <div>

+            <a href="ServerService.html" target="_PARENT"><b>ServerService</b></a><br/>

+            <div class="navigation_comment"><i >This class provides method implementations necessary for OM to manage servers
+ participating in cluster.</i></div>

+            </div>

+                    <div>

+            <a href="UserService.html" target="_PARENT"><b>UserService</b></a><br/>

+            <div class="navigation_comment"><i >The Service contains methods to login and create hash to directly enter
+ conference rooms, recordings or the application in general</i></div>

+            </div>

+                </div>

+	

+	

+	</body>

+	</html>

diff --git a/docs/WebsiteGuide.html b/docs/WebsiteGuide.html
new file mode 100644
index 0000000..e608eca
--- /dev/null
+++ b/docs/WebsiteGuide.html
@@ -0,0 +1,478 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Release Guide</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="How to update Apache OpenMeetings website"><strong>How to update Apache OpenMeetings website</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                        <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Required tools"><strong>Required tools</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+					<ul>

+						<li>Sun JDK6</li>

+						<li>Apache ANT (1.8 or later)</li>

+					</ul>

+				</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Introduction"><strong>Introduction</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+					<p>

+						The Apache OpenMeetings HTML websites are generated from XML files. 

+						You edit the XML files, run the ANT command "ant anakia" that generates the HTML files 

+						and then you checkin to SVN both: XML and HTML files.

+					</p>

+					<p>

+						The website itself uses JQuery to generate the menu, the pop images and the image slider at the landing page.

+					</p>

+				</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Editing the website"><strong>Editing the website</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+					<p>

+						OpenMeetings website (

+						<a href="http://openmeetings.apache.org/">http://openmeetings.apache.org/</a>

+						) is a copy from the SVN repository.

+						<br />

+						The file in the SVN to be synced are at:

+						<br />

+						<a href="http://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/docs/">http://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/docs/

+						</a>

+						<br />and<br />

+						<a href="http://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/xdocs/">http://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/xdocs/

+						</a>

+					</p>

+					

+					<div>

+						To update the website you checkout trunk:

+						<br />

+						<a href="https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/">https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/

+						</a> <br />

+						edit the files in the folder <tt>xdocs</tt><br />

+						then you run the command:

+						<div class="xmlcode">

+							ant anakia

+						</div>

+						control the output locally in the folder <tt>docs</tt><br />

+						And then checkin into the SVN <i>both</i> the edited xml and generated html files.

+					</div>

+					

+					<p>

+						The public website is automatically synced with the SVN repository.<br />

+						Changes to the SVN should be immediately synced to the production website.<br />

+						If not you might login to people.apache.org,<br />

+						cd to <tt>/www/openmeetings.apache.org/content/</tt><br />

+						and run the linux command "touch" on the files that need to be synced

+					</p>

+				</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Adding a new menu entry"><strong>Adding a new menu entry</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+					To add a new menu entry in the left side panel you need to modify the file: 

+					<br />

+					<tt>xdocs/stylesheets/project.xml</tt>

+				</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Writing a new macro"><strong>Writing a new macro</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+					<p>

+						You can write macros in a template language to parse from the XML files certain aspects.

+					</p>

+					<p>

+						To add a new macro see the file:<br />

+						<tt>xdocs/stylesheets/site.vsl</tt>

+					</p>

+				</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/commercial-support.html b/docs/commercial-support.html
new file mode 100644
index 0000000..cd1d818
--- /dev/null
+++ b/docs/commercial-support.html
@@ -0,0 +1,380 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Commercial Support</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Commercial Support for OpenMeetings"><strong>Commercial Support for OpenMeetings</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>There are few companies offering complex services for OpenMeetings, including code support,

+			development, integration and bug fixing

+			</p>
+                                                <ul>

+				<li>

+					<a href="http://www.webbase-design.de/" target="_BLANK">webbase-design.de

+					</a>

+					owned by Sebastian Wagner

+				</li>

+				<li>

+					<a href="http://www.dataved.ru" target="_BLANK">dataved.ru

+					</a>

+					run by Alexei Fedotov, Maxim Solodovnik, Timur Tleukenov, Irina Arkhipets, Denis Kandrov, Vasily Degtyarev

+				</li>

+				<li>

+                    <a href="http://www.samoo.es" target="_BLANK" rel="nofollow">samoo.es</a>

+                    provides support for the Sakai Plugin

+                </li>

+			</ul>
+                                                <p>

+                            Please write to <a href="mailto:support-om@dataved.ru">support-om@dataved.ru</a> to get WebBase-Design or Dataved support

+			</p>
+                                                <p>

+			    There are more companies offering installation, customization, hosting, conferencing and support services. You can add 

+				yourself to the <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Commercial+Support">wiki page</a>.

+			</p>
+                                                <p>

+				Want to get listed here? Become a <a href="http://www.apache.org/dev/committers.html">committer</a>.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/css/1b.png b/docs/css/1b.png
new file mode 100644
index 0000000..0d70d76
--- /dev/null
+++ b/docs/css/1b.png
Binary files differ
diff --git a/docs/css/2b.png b/docs/css/2b.png
new file mode 100644
index 0000000..a93e132
--- /dev/null
+++ b/docs/css/2b.png
Binary files differ
diff --git a/docs/css/3b.png b/docs/css/3b.png
new file mode 100644
index 0000000..f9d8b7a
--- /dev/null
+++ b/docs/css/3b.png
Binary files differ
diff --git a/docs/css/4b.png b/docs/css/4b.png
new file mode 100644
index 0000000..c6e41f4
--- /dev/null
+++ b/docs/css/4b.png
Binary files differ
diff --git a/docs/css/coin-slider-styles.css b/docs/css/coin-slider-styles.css
new file mode 100644
index 0000000..31e7d67
--- /dev/null
+++ b/docs/css/coin-slider-styles.css
@@ -0,0 +1,17 @@
+/*
+	Coin Slider jQuery plugin CSS styles
+	http://workshop.rs/projects/coin-slider
+*/
+
+
+.coin-slider { overflow: hidden; zoom: 1; position: relative; }
+.coin-slider a{ text-decoration: none; outline: none; border: none; }
+
+.cs-buttons { font-size: 0px; padding: 10px; float: left; }
+.cs-buttons a { margin-left: 5px; height: 10px; width: 10px; float: left; border: 1px solid #B8C4CF; color: #B8C4CF; text-indent: -1000px; }
+.cs-active { background-color: #B8C4CF; color: #FFFFFF; }
+
+.cs-title { width: 545px; padding: 10px; background-color: #000000; color: #FFFFFF; }
+
+.cs-prev, 
+.cs-next { background-color: #000000; color: #FFFFFF; padding: 0px 10px; }
diff --git a/docs/css/colorbox.css b/docs/css/colorbox.css
new file mode 100644
index 0000000..894da5d
--- /dev/null
+++ b/docs/css/colorbox.css
@@ -0,0 +1,70 @@
+/*
+    Colorbox Core Style:
+    The following CSS is consistent between example themes and should not be altered.
+*/
+#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
+#cboxWrapper {max-width:none;}
+#cboxOverlay{position:fixed; width:100%; height:100%;}
+#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
+#cboxContent{position:relative;}
+#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
+#cboxTitle{margin:0;}
+#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
+#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
+.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;}
+.cboxIframe{width:100%; height:100%; display:block; border:0; padding:0; margin:0;}
+#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
+
+/* 
+    User Style:
+    Change the following styles to modify the appearance of Colorbox.  They are
+    ordered & tabbed in a way that represents the nesting of the generated HTML.
+*/
+#cboxOverlay{background:url(images/overlay.png) repeat 0 0;}
+#colorbox{outline:0;}
+    #cboxTopLeft{width:21px; height:21px; background:url(images/controls.png) no-repeat -101px 0;}
+    #cboxTopRight{width:21px; height:21px; background:url(images/controls.png) no-repeat -130px 0;}
+    #cboxBottomLeft{width:21px; height:21px; background:url(images/controls.png) no-repeat -101px -29px;}
+    #cboxBottomRight{width:21px; height:21px; background:url(images/controls.png) no-repeat -130px -29px;}
+    #cboxMiddleLeft{width:21px; background:url(images/controls.png) left top repeat-y;}
+    #cboxMiddleRight{width:21px; background:url(images/controls.png) right top repeat-y;}
+    #cboxTopCenter{height:21px; background:url(images/border.png) 0 0 repeat-x;}
+    #cboxBottomCenter{height:21px; background:url(images/border.png) 0 -29px repeat-x;}
+    #cboxContent{background:#fff; overflow:hidden;}
+        .cboxIframe{background:#fff;}
+        #cboxError{padding:50px; border:1px solid #ccc;}
+        #cboxLoadedContent{margin-bottom:28px;}
+        #cboxTitle{position:absolute; bottom:4px; left:0; text-align:center; width:100%; color:#949494;}
+        #cboxCurrent{position:absolute; bottom:4px; left:58px; color:#949494;}
+        #cboxLoadingOverlay{background:url(images/loading_background.png) no-repeat center center;}
+        #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;}
+
+        /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */
+        #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; width:auto; background:none; }
+        
+        /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */
+        #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}
+
+        #cboxSlideshow{position:absolute; bottom:4px; right:30px; color:#0092ef;}
+        #cboxPrevious{position:absolute; bottom:0; left:0; background:url(images/controls.png) no-repeat -75px 0; width:25px; height:25px; text-indent:-9999px;}
+        #cboxPrevious:hover{background-position:-75px -25px;}
+        #cboxNext{position:absolute; bottom:0; left:27px; background:url(images/controls.png) no-repeat -50px 0; width:25px; height:25px; text-indent:-9999px;}
+        #cboxNext:hover{background-position:-50px -25px;}
+        #cboxClose{position:absolute; bottom:0; right:0; background:url(images/controls.png) no-repeat -25px 0; width:25px; height:25px; text-indent:-9999px;}
+        #cboxClose:hover{background-position:-25px -25px;}
+
+/*
+  The following fixes a problem where IE7 and IE8 replace a PNG's alpha transparency with a black fill
+  when an alpha filter (opacity change) is set on the element or ancestor element.  This style is not applied to or needed in IE9.
+  See: http://jacklmoore.com/notes/ie-transparency-problems/
+*/
+.cboxIE #cboxTopLeft,
+.cboxIE #cboxTopCenter,
+.cboxIE #cboxTopRight,
+.cboxIE #cboxBottomLeft,
+.cboxIE #cboxBottomCenter,
+.cboxIE #cboxBottomRight,
+.cboxIE #cboxMiddleLeft,
+.cboxIE #cboxMiddleRight {
+    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);
+}
diff --git a/docs/css/images/animated-overlay.gif b/docs/css/images/animated-overlay.gif
new file mode 100644
index 0000000..d441f75
--- /dev/null
+++ b/docs/css/images/animated-overlay.gif
Binary files differ
diff --git a/docs/css/images/border.png b/docs/css/images/border.png
new file mode 100644
index 0000000..f463a10
--- /dev/null
+++ b/docs/css/images/border.png
Binary files differ
diff --git a/docs/css/images/controls.png b/docs/css/images/controls.png
new file mode 100644
index 0000000..dcfd6fb
--- /dev/null
+++ b/docs/css/images/controls.png
Binary files differ
diff --git a/docs/css/images/loading.gif b/docs/css/images/loading.gif
new file mode 100644
index 0000000..b4695d8
--- /dev/null
+++ b/docs/css/images/loading.gif
Binary files differ
diff --git a/docs/css/images/loading_background.png b/docs/css/images/loading_background.png
new file mode 100644
index 0000000..6ae83e6
--- /dev/null
+++ b/docs/css/images/loading_background.png
Binary files differ
diff --git a/docs/css/images/overlay.png b/docs/css/images/overlay.png
new file mode 100644
index 0000000..53ea98f
--- /dev/null
+++ b/docs/css/images/overlay.png
Binary files differ
diff --git a/docs/css/images/ui-bg_flat_0_000088_40x100.png b/docs/css/images/ui-bg_flat_0_000088_40x100.png
new file mode 100644
index 0000000..b0919c2
--- /dev/null
+++ b/docs/css/images/ui-bg_flat_0_000088_40x100.png
Binary files differ
diff --git a/docs/css/images/ui-bg_flat_0_e6b900_40x100.png b/docs/css/images/ui-bg_flat_0_e6b900_40x100.png
new file mode 100644
index 0000000..facb4c0
--- /dev/null
+++ b/docs/css/images/ui-bg_flat_0_e6b900_40x100.png
Binary files differ
diff --git a/docs/css/images/ui-bg_flat_100_eeeeee_40x100.png b/docs/css/images/ui-bg_flat_100_eeeeee_40x100.png
new file mode 100644
index 0000000..b976c9b
--- /dev/null
+++ b/docs/css/images/ui-bg_flat_100_eeeeee_40x100.png
Binary files differ
diff --git a/docs/css/images/ui-bg_flat_20_000088_40x100.png b/docs/css/images/ui-bg_flat_20_000088_40x100.png
new file mode 100644
index 0000000..56c2330
--- /dev/null
+++ b/docs/css/images/ui-bg_flat_20_000088_40x100.png
Binary files differ
diff --git a/docs/css/images/ui-bg_flat_22_1484e6_40x100.png b/docs/css/images/ui-bg_flat_22_1484e6_40x100.png
new file mode 100644
index 0000000..7f3bc6b
--- /dev/null
+++ b/docs/css/images/ui-bg_flat_22_1484e6_40x100.png
Binary files differ
diff --git a/docs/css/images/ui-bg_flat_25_c5ddfc_40x100.png b/docs/css/images/ui-bg_flat_25_c5ddfc_40x100.png
new file mode 100644
index 0000000..724aae8
--- /dev/null
+++ b/docs/css/images/ui-bg_flat_25_c5ddfc_40x100.png
Binary files differ
diff --git a/docs/css/images/ui-bg_flat_26_2293f7_40x100.png b/docs/css/images/ui-bg_flat_26_2293f7_40x100.png
new file mode 100644
index 0000000..5ef1530
--- /dev/null
+++ b/docs/css/images/ui-bg_flat_26_2293f7_40x100.png
Binary files differ
diff --git a/docs/css/images/ui-bg_highlight-soft_100_f9f9f9_1x100.png b/docs/css/images/ui-bg_highlight-soft_100_f9f9f9_1x100.png
new file mode 100644
index 0000000..9d2c4ad
--- /dev/null
+++ b/docs/css/images/ui-bg_highlight-soft_100_f9f9f9_1x100.png
Binary files differ
diff --git a/docs/css/images/ui-icons_0a82eb_256x240.png b/docs/css/images/ui-icons_0a82eb_256x240.png
new file mode 100644
index 0000000..3001a8f
--- /dev/null
+++ b/docs/css/images/ui-icons_0a82eb_256x240.png
Binary files differ
diff --git a/docs/css/images/ui-icons_0b54d5_256x240.png b/docs/css/images/ui-icons_0b54d5_256x240.png
new file mode 100644
index 0000000..926aa07
--- /dev/null
+++ b/docs/css/images/ui-icons_0b54d5_256x240.png
Binary files differ
diff --git a/docs/css/images/ui-icons_5fa5e3_256x240.png b/docs/css/images/ui-icons_5fa5e3_256x240.png
new file mode 100644
index 0000000..81bd20c
--- /dev/null
+++ b/docs/css/images/ui-icons_5fa5e3_256x240.png
Binary files differ
diff --git a/docs/css/images/ui-icons_ffffff_256x240.png b/docs/css/images/ui-icons_ffffff_256x240.png
new file mode 100644
index 0000000..4f624bb
--- /dev/null
+++ b/docs/css/images/ui-icons_ffffff_256x240.png
Binary files differ
diff --git a/docs/css/jquery-ui-1.10.4.custom.css b/docs/css/jquery-ui-1.10.4.custom.css
new file mode 100644
index 0000000..92a96fb
--- /dev/null
+++ b/docs/css/jquery-ui-1.10.4.custom.css
@@ -0,0 +1,513 @@
+/*! jQuery UI - v1.10.4 - 2014-03-25
+* http://jqueryui.com
+* Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.theme.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=segoe%20ui%2C%20Arial%2C%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=3px&bgColorHeader=%23f9f9f9&bgTextureHeader=highlight_soft&bgImgOpacityHeader=100&borderColorHeader=%23cccccc&fcHeader=%23000088&iconColorHeader=%235fa5e3&bgColorContent=%23eeeeee&bgTextureContent=flat&bgImgOpacityContent=100&borderColorContent=%23aaaaaa&fcContent=%23222222&iconColorContent=%230a82eb&bgColorDefault=%231484e6&bgTextureDefault=flat&bgImgOpacityDefault=22&borderColorDefault=%23ffffff&fcDefault=%23ffffff&iconColorDefault=%23ffffff&bgColorHover=%232293f7&bgTextureHover=flat&bgImgOpacityHover=26&borderColorHover=%232293f7&fcHover=%23ffffff&iconColorHover=%23ffffff&bgColorActive=%23000088&bgTextureActive=flat&bgImgOpacityActive=20&borderColorActive=%23000088&fcActive=%23ffffff&iconColorActive=%23ffffff&bgColorHighlight=%23c5ddfc&bgTextureHighlight=flat&bgImgOpacityHighlight=25&borderColorHighlight=%23ffffff&fcHighlight=%23333333&iconColorHighlight=%230b54d5&bgColorError=%23000088&bgTextureError=flat&bgImgOpacityError=20&borderColorError=%23000088&fcError=%23ffffff&iconColorError=%23ffffff&bgColorOverlay=%23e6b900&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=%23000088&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=20&thicknessShadow=0px&offsetTopShadow=6px&offsetLeftShadow=6px&cornerRadiusShadow=3px
+* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden {
+	display: none;
+}
+.ui-helper-hidden-accessible {
+	border: 0;
+	clip: rect(0 0 0 0);
+	height: 1px;
+	margin: -1px;
+	overflow: hidden;
+	padding: 0;
+	position: absolute;
+	width: 1px;
+}
+.ui-helper-reset {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	outline: 0;
+	line-height: 1.3;
+	text-decoration: none;
+	font-size: 100%;
+	list-style: none;
+}
+.ui-helper-clearfix:before,
+.ui-helper-clearfix:after {
+	content: "";
+	display: table;
+	border-collapse: collapse;
+}
+.ui-helper-clearfix:after {
+	clear: both;
+}
+.ui-helper-clearfix {
+	min-height: 0; /* support: IE7 */
+}
+.ui-helper-zfix {
+	width: 100%;
+	height: 100%;
+	top: 0;
+	left: 0;
+	position: absolute;
+	opacity: 0;
+	filter:Alpha(Opacity=0);
+}
+
+.ui-front {
+	z-index: 100;
+}
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled {
+	cursor: default !important;
+}
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	display: block;
+	text-indent: -99999px;
+	overflow: hidden;
+	background-repeat: no-repeat;
+}
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay {
+	position: fixed;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+}
+.ui-accordion .ui-accordion-header {
+	display: block;
+	cursor: pointer;
+	position: relative;
+	margin-top: 2px;
+	padding: .5em .5em .5em .7em;
+	min-height: 0; /* support: IE7 */
+}
+.ui-accordion .ui-accordion-icons {
+	padding-left: 2.2em;
+}
+.ui-accordion .ui-accordion-noicons {
+	padding-left: .7em;
+}
+.ui-accordion .ui-accordion-icons .ui-accordion-icons {
+	padding-left: 2.2em;
+}
+.ui-accordion .ui-accordion-header .ui-accordion-header-icon {
+	position: absolute;
+	left: .5em;
+	top: 50%;
+	margin-top: -8px;
+}
+.ui-accordion .ui-accordion-content {
+	padding: 1em 2.2em;
+	border-top: 0;
+	overflow: auto;
+}
+
+/* Component containers
+----------------------------------*/
+.ui-widget {
+	font-family: segoe ui, Arial, sans-serif;
+	font-size: 1.1em;
+}
+.ui-widget .ui-widget {
+	font-size: 1em;
+}
+.ui-widget input,
+.ui-widget select,
+.ui-widget textarea,
+.ui-widget button {
+	font-family: segoe ui, Arial, sans-serif;
+	font-size: 1em;
+}
+.ui-widget-content {
+	border: 1px solid #aaaaaa;
+	background: #eeeeee url(images/ui-bg_flat_100_eeeeee_40x100.png) 50% 50% repeat-x;
+	color: #222222;
+}
+.ui-widget-content a {
+	color: #222222;
+}
+.ui-widget-header {
+	border: 1px solid #cccccc;
+	background: #f9f9f9 url(images/ui-bg_highlight-soft_100_f9f9f9_1x100.png) 50% 50% repeat-x;
+	color: #000088;
+	font-weight: bold;
+}
+.ui-widget-header a {
+	color: #000088;
+}
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default,
+.ui-widget-content .ui-state-default,
+.ui-widget-header .ui-state-default {
+	border: 1px solid #ffffff;
+	background: #1484e6 url(images/ui-bg_flat_22_1484e6_40x100.png) 50% 50% repeat-x;
+	font-weight: bold;
+	color: #ffffff;
+}
+.ui-state-default a,
+.ui-state-default a:link,
+.ui-state-default a:visited {
+	color: #ffffff;
+	text-decoration: none;
+}
+.ui-state-hover,
+.ui-widget-content .ui-state-hover,
+.ui-widget-header .ui-state-hover,
+.ui-state-focus,
+.ui-widget-content .ui-state-focus,
+.ui-widget-header .ui-state-focus {
+	border: 1px solid #2293f7;
+	background: #2293f7 url(images/ui-bg_flat_26_2293f7_40x100.png) 50% 50% repeat-x;
+	font-weight: bold;
+	color: #ffffff;
+}
+.ui-state-hover a,
+.ui-state-hover a:hover,
+.ui-state-hover a:link,
+.ui-state-hover a:visited,
+.ui-state-focus a,
+.ui-state-focus a:hover,
+.ui-state-focus a:link,
+.ui-state-focus a:visited {
+	color: #ffffff;
+	text-decoration: none;
+}
+.ui-state-active,
+.ui-widget-content .ui-state-active,
+.ui-widget-header .ui-state-active {
+	border: 1px solid #000088;
+	background: #000088 url(images/ui-bg_flat_20_000088_40x100.png) 50% 50% repeat-x;
+	font-weight: bold;
+	color: #ffffff;
+}
+.ui-state-active a,
+.ui-state-active a:link,
+.ui-state-active a:visited {
+	color: #ffffff;
+	text-decoration: none;
+}
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight,
+.ui-widget-content .ui-state-highlight,
+.ui-widget-header .ui-state-highlight {
+	border: 1px solid #ffffff;
+	background: #c5ddfc url(images/ui-bg_flat_25_c5ddfc_40x100.png) 50% 50% repeat-x;
+	color: #333333;
+}
+.ui-state-highlight a,
+.ui-widget-content .ui-state-highlight a,
+.ui-widget-header .ui-state-highlight a {
+	color: #333333;
+}
+.ui-state-error,
+.ui-widget-content .ui-state-error,
+.ui-widget-header .ui-state-error {
+	border: 1px solid #000088;
+	background: #000088 url(images/ui-bg_flat_20_000088_40x100.png) 50% 50% repeat-x;
+	color: #ffffff;
+}
+.ui-state-error a,
+.ui-widget-content .ui-state-error a,
+.ui-widget-header .ui-state-error a {
+	color: #ffffff;
+}
+.ui-state-error-text,
+.ui-widget-content .ui-state-error-text,
+.ui-widget-header .ui-state-error-text {
+	color: #ffffff;
+}
+.ui-priority-primary,
+.ui-widget-content .ui-priority-primary,
+.ui-widget-header .ui-priority-primary {
+	font-weight: bold;
+}
+.ui-priority-secondary,
+.ui-widget-content .ui-priority-secondary,
+.ui-widget-header .ui-priority-secondary {
+	opacity: .7;
+	filter:Alpha(Opacity=70);
+	font-weight: normal;
+}
+.ui-state-disabled,
+.ui-widget-content .ui-state-disabled,
+.ui-widget-header .ui-state-disabled {
+	opacity: .35;
+	filter:Alpha(Opacity=35);
+	background-image: none;
+}
+.ui-state-disabled .ui-icon {
+	filter:Alpha(Opacity=35); /* For IE8 - See #6059 */
+}
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	width: 16px;
+	height: 16px;
+}
+.ui-icon,
+.ui-widget-content .ui-icon {
+	background-image: url(images/ui-icons_0a82eb_256x240.png);
+}
+.ui-widget-header .ui-icon {
+	background-image: url(images/ui-icons_5fa5e3_256x240.png);
+}
+.ui-state-default .ui-icon {
+	background-image: url(images/ui-icons_ffffff_256x240.png);
+}
+.ui-state-hover .ui-icon,
+.ui-state-focus .ui-icon {
+	background-image: url(images/ui-icons_ffffff_256x240.png);
+}
+.ui-state-active .ui-icon {
+	background-image: url(images/ui-icons_ffffff_256x240.png);
+}
+.ui-state-highlight .ui-icon {
+	background-image: url(images/ui-icons_0b54d5_256x240.png);
+}
+.ui-state-error .ui-icon,
+.ui-state-error-text .ui-icon {
+	background-image: url(images/ui-icons_ffffff_256x240.png);
+}
+
+/* positioning */
+.ui-icon-blank { background-position: 16px 16px; }
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-on { background-position: -96px -144px; }
+.ui-icon-radio-off { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-left,
+.ui-corner-tl {
+	border-top-left-radius: 3px;
+}
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-right,
+.ui-corner-tr {
+	border-top-right-radius: 3px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-left,
+.ui-corner-bl {
+	border-bottom-left-radius: 3px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-right,
+.ui-corner-br {
+	border-bottom-right-radius: 3px;
+}
+
+/* Overlays */
+.ui-widget-overlay {
+	background: #e6b900 url(images/ui-bg_flat_0_e6b900_40x100.png) 50% 50% repeat-x;
+	opacity: .3;
+	filter: Alpha(Opacity=30);
+}
+.ui-widget-shadow {
+	margin: 6px 0 0 6px;
+	padding: 0px;
+	background: #000088 url(images/ui-bg_flat_0_000088_40x100.png) 50% 50% repeat-x;
+	opacity: .2;
+	filter: Alpha(Opacity=20);
+	border-radius: 3px;
+}
diff --git a/docs/css/openmeetings.css b/docs/css/openmeetings.css
new file mode 100644
index 0000000..ea209b8
--- /dev/null
+++ b/docs/css/openmeetings.css
@@ -0,0 +1,87 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements.  See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+body {
+	color: #000000;
+	margin: 0;
+	background: #fafafa;
+	font: 10pt Verdana, Arial, Helvetica, sans-serif;
+	  
+}
+.active {
+	font-style: italic;
+}
+
+.mainbody {
+	margin-left: 40px;
+	margin-right: 40px;
+	-moz-box-shadow: 4px 0px 5px #666666;
+	-webkit-box-shadow: 4px 0px 5px #666666;
+	box-shadow: 4px 0px 5px #666666;
+}
+.superbody {
+	background: #FFFFFF;
+	-moz-box-shadow: -4px 0px 5px #666666;
+	-webkit-box-shadow: -4px 0px 5px #666666;
+	box-shadow: -4px 0px 5px #666666;
+}
+
+/* Box CSS  */
+div {
+	margin: 0;
+}
+
+
+.ro {
+	background: url(2b.png) top right no-repeat;
+}
+
+.lo {
+	background: url(1b.png) top left no-repeat;
+}
+
+.ru {
+	background: url(3b.png) bottom right no-repeat;
+}
+
+.lu {
+	background: url(4b.png) bottom left no-repeat;
+}
+
+ul {
+	margin-top: 0em;
+	padding-left: 1.5em;
+}
+
+.inhalt {
+	margin: 0;
+	padding: 0.5em 2.0em 1.5em 1.0em;
+}
+
+.inhalt p {
+	margin: 0;
+	padding: 0;
+}
+.xmlcode {
+	margin-left: 20px;
+	background-color: #eeeeee;
+	color: #0000ff;
+	margin-top: 10px;
+	margin-bottom: 10px;
+}
+#accordion.ui-accordion .ui-accordion-header a {
+	padding-left: 20px;
+}
diff --git a/docs/demo.html b/docs/demo.html
new file mode 100644
index 0000000..02d5aae
--- /dev/null
+++ b/docs/demo.html
@@ -0,0 +1,360 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			Sebastian Wagner
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Mailing Lists</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Apache OpenMeetings Demo Servers"><strong>Apache OpenMeetings Demo Servers</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				There are currently some technical issues with demo servers.

+			</p>
+                                                <p>

+				This is a list of servers that you can use for testing OpenMeetings.

+			</p>
+                                                <p>

+				<a href="http://demo.dataved.ru/openmeetings" target="_BLANK" rel="nofollow">http://demo.dataved.ru/openmeetings</a>

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/dependencies.html b/docs/dependencies.html
new file mode 100644
index 0000000..93361d3
--- /dev/null
+++ b/docs/dependencies.html
@@ -0,0 +1,365 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+ OpenMeetings Documentation Team">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Project Dependencies</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="The Apache Podling Project"><strong>The Apache Podling Project</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+<p> 

+The common external dependencies of OpenMeetings include the tools used to build 

+and test it:

+</p>

+

+<ul>

+<li>Subversion</li>

+<li>Ant</li>

+<li>JUnit</li>

+</ul>

+

+<p>OpenMeetings will actively download resources from the online repositories while building.</p>

+

+</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/documentation.html b/docs/documentation.html
new file mode 100644
index 0000000..9c25cf4
--- /dev/null
+++ b/docs/documentation.html
@@ -0,0 +1,358 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+ Podling Documentation Team">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Documentation</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="OpenMeetings Documentation"><strong>OpenMeetings Documentation</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+Wiki is to be linked here, coming soon ...

+

+<!-- ***************** TBD **************************  -->

+<!-- ***************** TBD **************************  -->

+<!-- ***************** TBD **************************  -->

+

+</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/downloads.html b/docs/downloads.html
new file mode 100644
index 0000000..a14a817
--- /dev/null
+++ b/docs/downloads.html
@@ -0,0 +1,445 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			Podling Documentation Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Downloads</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Downloads"><strong>Downloads</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+				All downloads can be verified using the Apache OpenMeetings code

+				signing <a href="https://www.apache.org/dist/openmeetings/3.0.0/KEYS">KEYS</a>.

+			</div>
+                                                <p>

+				All are available for download as source and binary.

+			</p>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Latest Official Release"><strong>Latest Official Release</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+					Apache Openmeetings 3.0.0

+				</p>
+                                                <ul>

+					<li>

+						Binaries:

+						<ul>

+							<li>

+								<a href="http://www.apache.org/dyn/closer.cgi/openmeetings/3.0.0/bin/apache-openmeetings-3.0.0.zip">apache-openmeetings-3.0.0.zip</a>

+								<a href="http://www.apache.org/dist/openmeetings/3.0.0/bin/apache-openmeetings-3.0.0.zip.asc">[SIG]</a>

+								<a href="http://www.apache.org/dist/openmeetings/3.0.0/bin/apache-openmeetings-3.0.0.zip.md5">[MD5]</a>

+							</li>

+							<li>

+								<a href="http://www.apache.org/dyn/closer.cgi/openmeetings/3.0.0/bin/apache-openmeetings-3.0.0.tar.gz">apache-openmeetings-3.0.0.tar.gz</a>

+								<a href="http://www.apache.org/dist/openmeetings/3.0.0/bin/apache-openmeetings-3.0.0.tar.gz.asc">[SIG]</a>

+								<a href="http://www.apache.org/dist/openmeetings/3.0.0/bin/apache-openmeetings-3.0.0.tar.gz.md5">[MD5]</a>

+							</li>

+						</ul>

+					</li>

+					<li>

+						Sources:

+						<ul>

+							<li>

+								<a href="http://www.apache.org/dyn/closer.cgi/openmeetings/3.0.0/src/apache-openmeetings-3.0.0-src.zip">apache-openmeetings-3.0.0-src.zip</a>

+								<a href="http://www.apache.org/dist/openmeetings/3.0.0/src/apache-openmeetings-3.0.0-src.zip.asc">[SIG]</a>

+								<a href="http://www.apache.org/dist/openmeetings/3.0.0/src/apache-openmeetings-3.0.0-src.zip.md5">[MD5]</a>

+							</li>

+							<li>

+								<a href="http://www.apache.org/dyn/closer.cgi/openmeetings/3.0.0/src/apache-openmeetings-3.0.0-src.tar.gz">apache-openmeetings-3.0.0-src.tar.gz</a>

+								<a href="http://www.apache.org/dist/openmeetings/3.0.0/src/apache-openmeetings-3.0.0-src.tar.gz.asc">[SIG]</a>

+								<a href="http://www.apache.org/dist/openmeetings/3.0.0/src/apache-openmeetings-3.0.0-src.tar.gz.md5">[MD5]</a>

+							</li>

+						</ul>

+					</li>

+				</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Previous Official Releases"><strong>Previous Official Releases</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+					Apache Openmeetings releases available here:

+					<a href="http://archive.apache.org/dist/openmeetings/">http://archive.apache.org/dist/openmeetings/</a>

+				</p>
+                                                <p>

+					Apache Openmeetings Incubating 2.0 is available here:

+					<a href="http://archive.apache.org/dist/incubator/openmeetings/2.0-incubating/">http://archive.apache.org/dist/incubator/openmeetings/2.0-incubating</a>

+				</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Plugins / Non ASF downloads"><strong>Plugins / Non ASF downloads</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+					If you are looking for more plugins for 3th party applications (Moodle, Drupal, Joomla, ...) check out <a href="http://code.google.com/a/apache-extras.org/hosting/search?q=openmeetings" target="_BLANK" rel="nofollow">apache-extras.org</a>.

+				</p>
+                                                <p>

+					OpenMeetings releases that are not part of the ASF can be downloaded from the

+					old

+					<a href="http://code.google.com/p/openmeetings/downloads/list" target="_BLANK">GoogleCode website</a>

+				</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/get-involved.html b/docs/get-involved.html
new file mode 100644
index 0000000..d4776c2
--- /dev/null
+++ b/docs/get-involved.html
@@ -0,0 +1,470 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Documentation Team
+		">
+            <meta name="email" content="dev@openmeetings.apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Get Involved</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="How do I contribute, give feedback, fix bugs and so on?"><strong>How do I contribute, give feedback, fix bugs and so on?</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				The Apache OpenMeetings project really needs and appreciates any

+				contributions,

+				including documentation help, source code and

+				feedback. Suggested

+				changes should come in the form of source code

+				and/or very detailed

+				and constructive feedback.

+			</p>
+                                                <ul>

+				<li>

+					Discussion occurs on the

+					<a href="mail-lists.html">OpenMeetings mailing lists</a>

+				</li>

+				<li>

+					Information on access to the project source code is

+					available

+					<a href="svn.html">here</a>

+					.

+				</li>

+				<li>

+					Bugs and other issues can be posted on the project

+					<a href="https://issues.apache.org/jira/browse/OPENMEETINGS">JIRA</a>

+					(

+					<a href="https://issues.apache.org/jira/secure/Signup!default.jspa">sign up</a>

+					).

+				</li>

+				<li>

+					Additional documentation and discussion can be contributed to the

+					project

+					<a href="https://cwiki.apache.org/OPENMEETINGS">Wiki</a>

+					(

+					<a href="https://cwiki.apache.org/confluence/signup.action">sign up</a>

+					).

+				</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Which taks could I potentially work on?"><strong>Which taks could I potentially work on?</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				No matter if you want to share your experiences, improve

+				documentation, localization, code Java, ActionScript or PHP, there

+				are dozens of areas where you can find task to work on and share

+				with others.

+				<br />

+				<br />

+				We tried to collect a list of ideas in our wiki:

+				<br />

+				<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/New+committers+and+developers+task+idea+list" target="_BLANK">https://cwiki.apache.org/confluence/display/OPENMEETINGS/New+committers+and+developers+task+idea+list

+				</a>

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="How do I become a committer?"><strong>How do I become a committer?</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>If you're interested in committing to the project: </p>
+                                                <ul>

+				<li>

+					<p>

+						You'll need to fill out some legal paperwork and go through

+						a

+						process to get an apache foundation committer account: See

+						<a class="external" rel="nofollow" href="http://apache.org/dev/new-committers-guide.html">

+							New Committers Guide

+						</a>

+						,

+						<a class="external" rel="nofollow" href="http://apache.org/dev/contributors.html"> Contributors</a>

+						, and

+						<a class="external" rel="nofollow" href="http://apache.org/dev/committers.html"> Committers</a>

+						for more details.

+					</p>

+

+				</li>

+				<li>

+					<p>

+						After you've received an email from

+						<a href="mailto:root@apache.org">root@apache.org</a>

+						with your committer account information, change your initial

+						password:

+						Login by 'ssh -l &lt;username&gt; people.apache.org';

+						run

+						'passwd';

+						run 'svnpasswd'. See

+						<a class="external" rel="nofollow" href="http://apache.org/dev/version-control.html">Committer Subversion Access

+						</a>

+						.

+					</p>

+				</li>

+				<li>

+					<p>

+						Check out the OpenMeetings sources and test your svn account:

+						<a href="http://svn.apache.org/viewvc/openmeetings/">

+							SubversionRepository

+						</a>

+						.

+					</p>

+

+				</li>

+

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/images/54882.jpg b/docs/images/54882.jpg
new file mode 100644
index 0000000..39cc036
--- /dev/null
+++ b/docs/images/54882.jpg
Binary files differ
diff --git a/docs/images/Arguments.png b/docs/images/Arguments.png
new file mode 100644
index 0000000..7427236
--- /dev/null
+++ b/docs/images/Arguments.png
Binary files differ
diff --git a/docs/images/DebugConfigurations.png b/docs/images/DebugConfigurations.png
new file mode 100644
index 0000000..c572dda
--- /dev/null
+++ b/docs/images/DebugConfigurations.png
Binary files differ
diff --git a/docs/images/Features_Screen_Conference_Room_Thumb.png b/docs/images/Features_Screen_Conference_Room_Thumb.png
new file mode 100644
index 0000000..19dece9
--- /dev/null
+++ b/docs/images/Features_Screen_Conference_Room_Thumb.png
Binary files differ
diff --git a/docs/images/NewConfiguration.png b/docs/images/NewConfiguration.png
new file mode 100644
index 0000000..45f3d62
--- /dev/null
+++ b/docs/images/NewConfiguration.png
Binary files differ
diff --git a/docs/images/SugarCRM_Installation.png b/docs/images/SugarCRM_Installation.png
new file mode 100644
index 0000000..b652b7b
--- /dev/null
+++ b/docs/images/SugarCRM_Installation.png
Binary files differ
diff --git a/docs/images/apache-incubator-logo-no-borders.png b/docs/images/apache-incubator-logo-no-borders.png
new file mode 100644
index 0000000..4bf4a6c
--- /dev/null
+++ b/docs/images/apache-incubator-logo-no-borders.png
Binary files differ
diff --git a/docs/images/apache_feather.gif b/docs/images/apache_feather.gif
new file mode 100644
index 0000000..1a0c3e6
--- /dev/null
+++ b/docs/images/apache_feather.gif
Binary files differ
diff --git a/docs/images/audio_and_video.png b/docs/images/audio_and_video.png
new file mode 100644
index 0000000..f35bb10
--- /dev/null
+++ b/docs/images/audio_and_video.png
Binary files differ
diff --git a/docs/images/backup.png b/docs/images/backup.png
new file mode 100644
index 0000000..f174339
--- /dev/null
+++ b/docs/images/backup.png
Binary files differ
diff --git a/docs/images/calendar.png b/docs/images/calendar.png
new file mode 100644
index 0000000..25f7978
--- /dev/null
+++ b/docs/images/calendar.png
Binary files differ
diff --git a/docs/images/chat.png b/docs/images/chat.png
new file mode 100644
index 0000000..ce9c040
--- /dev/null
+++ b/docs/images/chat.png
Binary files differ
diff --git a/docs/images/checkout_1.png b/docs/images/checkout_1.png
new file mode 100644
index 0000000..950891a
--- /dev/null
+++ b/docs/images/checkout_1.png
Binary files differ
diff --git a/docs/images/checkout_2.png b/docs/images/checkout_2.png
new file mode 100644
index 0000000..f31050b
--- /dev/null
+++ b/docs/images/checkout_2.png
Binary files differ
diff --git a/docs/images/checkout_3.png b/docs/images/checkout_3.png
new file mode 100644
index 0000000..94d21ce
--- /dev/null
+++ b/docs/images/checkout_3.png
Binary files differ
diff --git a/docs/images/checkout_4.png b/docs/images/checkout_4.png
new file mode 100644
index 0000000..7fcf576
--- /dev/null
+++ b/docs/images/checkout_4.png
Binary files differ
diff --git a/docs/images/checkout_5.png b/docs/images/checkout_5.png
new file mode 100644
index 0000000..e102426
--- /dev/null
+++ b/docs/images/checkout_5.png
Binary files differ
diff --git a/docs/images/checkout_6.png b/docs/images/checkout_6.png
new file mode 100644
index 0000000..8dd9189
--- /dev/null
+++ b/docs/images/checkout_6.png
Binary files differ
diff --git a/docs/images/checkout_7.png b/docs/images/checkout_7.png
new file mode 100644
index 0000000..4168d93
--- /dev/null
+++ b/docs/images/checkout_7.png
Binary files differ
diff --git a/docs/images/checkout_8.png b/docs/images/checkout_8.png
new file mode 100644
index 0000000..0494bb5
--- /dev/null
+++ b/docs/images/checkout_8.png
Binary files differ
diff --git a/docs/images/checkout_9.png b/docs/images/checkout_9.png
new file mode 100644
index 0000000..b083d00
--- /dev/null
+++ b/docs/images/checkout_9.png
Binary files differ
diff --git a/docs/images/choose_divice.png b/docs/images/choose_divice.png
new file mode 100644
index 0000000..1e38713
--- /dev/null
+++ b/docs/images/choose_divice.png
Binary files differ
diff --git a/docs/images/cluster1.png b/docs/images/cluster1.png
new file mode 100644
index 0000000..672ffc4
--- /dev/null
+++ b/docs/images/cluster1.png
Binary files differ
diff --git a/docs/images/cluster2.png b/docs/images/cluster2.png
new file mode 100644
index 0000000..6d47e1d
--- /dev/null
+++ b/docs/images/cluster2.png
Binary files differ
diff --git a/docs/images/cut_administration_configuration.png b/docs/images/cut_administration_configuration.png
new file mode 100644
index 0000000..c54ac9c
--- /dev/null
+++ b/docs/images/cut_administration_configuration.png
Binary files differ
diff --git a/docs/images/cut_conference_room.png b/docs/images/cut_conference_room.png
new file mode 100644
index 0000000..1a50a25
--- /dev/null
+++ b/docs/images/cut_conference_room.png
Binary files differ
diff --git a/docs/images/cut_file_explorer.png b/docs/images/cut_file_explorer.png
new file mode 100644
index 0000000..4e5d0c7
--- /dev/null
+++ b/docs/images/cut_file_explorer.png
Binary files differ
diff --git a/docs/images/cut_integrated_calendar.png b/docs/images/cut_integrated_calendar.png
new file mode 100644
index 0000000..3188354
--- /dev/null
+++ b/docs/images/cut_integrated_calendar.png
Binary files differ
diff --git a/docs/images/cut_integration_api.png b/docs/images/cut_integration_api.png
new file mode 100644
index 0000000..7cf6264
--- /dev/null
+++ b/docs/images/cut_integration_api.png
Binary files differ
diff --git a/docs/images/cut_private_messages.png b/docs/images/cut_private_messages.png
new file mode 100644
index 0000000..c080851
--- /dev/null
+++ b/docs/images/cut_private_messages.png
Binary files differ
diff --git a/docs/images/cut_recordings_playback.png b/docs/images/cut_recordings_playback.png
new file mode 100644
index 0000000..906d798
--- /dev/null
+++ b/docs/images/cut_recordings_playback.png
Binary files differ
diff --git a/docs/images/dashboard.png b/docs/images/dashboard.png
new file mode 100644
index 0000000..66152bd
--- /dev/null
+++ b/docs/images/dashboard.png
Binary files differ
diff --git a/docs/images/desktopsharing.png b/docs/images/desktopsharing.png
new file mode 100644
index 0000000..94e8add
--- /dev/null
+++ b/docs/images/desktopsharing.png
Binary files differ
diff --git a/docs/images/drupal_module_configuration.png b/docs/images/drupal_module_configuration.png
new file mode 100644
index 0000000..5ff3d04
--- /dev/null
+++ b/docs/images/drupal_module_configuration.png
Binary files differ
diff --git a/docs/images/drupal_module_installation.png b/docs/images/drupal_module_installation.png
new file mode 100644
index 0000000..3ba21b3
--- /dev/null
+++ b/docs/images/drupal_module_installation.png
Binary files differ
diff --git a/docs/images/drupal_room_configuration.png b/docs/images/drupal_room_configuration.png
new file mode 100644
index 0000000..fb35760
--- /dev/null
+++ b/docs/images/drupal_room_configuration.png
Binary files differ
diff --git a/docs/images/file_smal.png b/docs/images/file_smal.png
new file mode 100644
index 0000000..69dcc46
--- /dev/null
+++ b/docs/images/file_smal.png
Binary files differ
diff --git a/docs/images/installation_instructions.png b/docs/images/installation_instructions.png
new file mode 100644
index 0000000..64ab05a
--- /dev/null
+++ b/docs/images/installation_instructions.png
Binary files differ
diff --git a/docs/images/langeditor_screen_v2.png b/docs/images/langeditor_screen_v2.png
new file mode 100644
index 0000000..fbaf47d
--- /dev/null
+++ b/docs/images/langeditor_screen_v2.png
Binary files differ
diff --git a/docs/images/ldap_screen.png b/docs/images/ldap_screen.png
new file mode 100644
index 0000000..e28bbc3
--- /dev/null
+++ b/docs/images/ldap_screen.png
Binary files differ
diff --git a/docs/images/logo-2.jpg b/docs/images/logo-2.jpg
new file mode 100644
index 0000000..13c2512
--- /dev/null
+++ b/docs/images/logo-2.jpg
Binary files differ
diff --git a/docs/images/micro_small.png b/docs/images/micro_small.png
new file mode 100644
index 0000000..215c831
--- /dev/null
+++ b/docs/images/micro_small.png
Binary files differ
diff --git a/docs/images/monitor_add.png b/docs/images/monitor_add.png
new file mode 100644
index 0000000..a818066
--- /dev/null
+++ b/docs/images/monitor_add.png
Binary files differ
diff --git a/docs/images/moodle_add_activity_plugin.png b/docs/images/moodle_add_activity_plugin.png
new file mode 100644
index 0000000..7a95991
--- /dev/null
+++ b/docs/images/moodle_add_activity_plugin.png
Binary files differ
diff --git a/docs/images/moodle_configure_plugin.png b/docs/images/moodle_configure_plugin.png
new file mode 100644
index 0000000..70b5cbf
--- /dev/null
+++ b/docs/images/moodle_configure_plugin.png
Binary files differ
diff --git a/docs/images/moodle_install_plugin.png b/docs/images/moodle_install_plugin.png
new file mode 100644
index 0000000..7381712
--- /dev/null
+++ b/docs/images/moodle_install_plugin.png
Binary files differ
diff --git a/docs/images/mouse_add.png b/docs/images/mouse_add.png
new file mode 100644
index 0000000..65bcab5
--- /dev/null
+++ b/docs/images/mouse_add.png
Binary files differ
diff --git a/docs/images/pencil_add.png b/docs/images/pencil_add.png
new file mode 100644
index 0000000..902bbe6
--- /dev/null
+++ b/docs/images/pencil_add.png
Binary files differ
diff --git a/docs/images/poll.png b/docs/images/poll.png
new file mode 100644
index 0000000..5b51c9b
--- /dev/null
+++ b/docs/images/poll.png
Binary files differ
diff --git a/docs/images/pollresult.png b/docs/images/pollresult.png
new file mode 100644
index 0000000..88c38df
--- /dev/null
+++ b/docs/images/pollresult.png
Binary files differ
diff --git a/docs/images/privat_messages.png b/docs/images/privat_messages.png
new file mode 100644
index 0000000..cc6e245
--- /dev/null
+++ b/docs/images/privat_messages.png
Binary files differ
diff --git a/docs/images/recordings_timeleine.png b/docs/images/recordings_timeleine.png
new file mode 100644
index 0000000..407719e
--- /dev/null
+++ b/docs/images/recordings_timeleine.png
Binary files differ
diff --git a/docs/images/right_management.png b/docs/images/right_management.png
new file mode 100644
index 0000000..da287a6
--- /dev/null
+++ b/docs/images/right_management.png
Binary files differ
diff --git a/docs/images/system_backup.png b/docs/images/system_backup.png
new file mode 100644
index 0000000..ffc2964
--- /dev/null
+++ b/docs/images/system_backup.png
Binary files differ
diff --git a/docs/images/user_add.png b/docs/images/user_add.png
new file mode 100644
index 0000000..deae99b
--- /dev/null
+++ b/docs/images/user_add.png
Binary files differ
diff --git a/docs/images/vote.png b/docs/images/vote.png
new file mode 100644
index 0000000..c16ff86
--- /dev/null
+++ b/docs/images/vote.png
Binary files differ
diff --git a/docs/images/whiteboard.png b/docs/images/whiteboard.png
new file mode 100644
index 0000000..8e5392f
--- /dev/null
+++ b/docs/images/whiteboard.png
Binary files differ
diff --git a/docs/index.html b/docs/index.html
new file mode 100644
index 0000000..539446e
--- /dev/null
+++ b/docs/index.html
@@ -0,0 +1,886 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			Sebastian Wagner
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Home</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Apache OpenMeetings - Features and overview"><strong>Apache OpenMeetings - Features and overview</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div id="coin-slider">

+				<a href="#">

+					<img src="images/cut_conference_room.png" alt="Conference Room" />

+					<span>

+						<b>Audio/Video Conferencing</b>

+						<br />

+						OpenMeetings enables you to make Audio/Video conferencing.

+					</span>

+				</a>

+

+				<a href="#">

+					<img src="images/cut_integrated_calendar.png" alt="Calendar" />

+					<span>

+						<b>Calendar</b>

+						<br />

+						You can create meetings with the integrated calendar, conference rooms and invitations are automatically send to everybody

+					</span>

+				</a>

+

+				<a href="#">

+					<img src="images/cut_file_explorer.png" alt="File Explorer" />

+					<span>

+						<b>File Explorer</b>

+						<br />

+						Each room has its own File-Explorer. Each user has his own private drive and additionally there is a public drive to share files with other participants

+					</span>

+				</a>

+

+				<a href="#">

+					<img src="images/cut_integration_api.png" alt="Integration API" />

+					<span>

+						<b>Integration API</b>

+						<br />

+						There is a SOAP/REST API to integrate into your website or intranet, as well

+						as LDAP/ADS connectors and VoIP/Asterisk integration modules

+					</span>

+				</a>

+

+				<a href="#">

+					<img src="images/cut_private_messages.png" alt="Private messages" />

+					<span>

+						<b>Private messages and contacts</b>

+						<br />

+						From the private message center you can send invitations by email

+						and attach meeting invitations to every email

+					</span>

+				</a>

+

+				<a href="#">

+					<img src="images/cut_administration_configuration.png" alt="Administration" />

+					<span>

+						<b>Administration and Configuration</b>

+						<br />

+						You can configure users, rooms, usergroups, config settings or

+						edit labels with a Web-Frontend integrated in the application

+					</span>

+				</a>

+

+				<a href="#">

+					<img src="images/cut_recordings_playback.png" alt="Share and Record" />

+					<span>

+						<b>Screen sharing and Recording</b>

+						<br />

+						You can do screen sharing as well as recording of whole sessions

+						including audio/video. Recordings can be downloaded as AVI/FLV or

+						watched online in the integrated player.

+					</span>

+				</a>

+

+			</div>
+                                                <p> Openmeetings provides video conferencing, instant messaging,

+				white board, collaborative document editing and other groupware

+				tools using API functions of the Red5 Streaming Server for Remoting

+				and Streaming.

+			</p>
+                                                <p>

+				OpenMeetings is a project of the Apache, the old project

+				website at

+				<a href="http://code.google.com/p/openmeetings/" target="_BLANK">GoogleCode

+				</a>

+				will receive no updates anymore. The website at Apache is the only

+				place that receives updates.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="News"><strong>News</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+			    <strong>

+                    Version 2.2.0 released! See <a href="downloads.html">Downloads page</a>. 

+                    (2013-12-12)

+                </strong>

+                <br />

+			    <strong>

+                    Version 2.1.1 released! See <a href="https://blogs.apache.org/openmeetings/entry/apache_openmeetings_2_1_11" target="_BLANK">Project Blog</a> or <a href="downloads.html">Downloads page</a>. 

+                    (2013-07-06)

+                </strong>

+                <br />

+			    <strong>

+					OpenMeetings 2.1.0 is released! Please check <a href="downloads.html">Downloads page</a>. 

+					(2013-04-01)

+				</strong>

+				<br />

+			    <strong>

+					OpenMeetings new URL, update your filters!

+					<a href="http://openmeetings.apache.org">openmeetings.apache.org</a> is the new home. 

+					(2013-01-28)

+				</strong>

+				<br />

+			    <strong>

+					OpenMeetings on the road to graduate from the Incubator

+					<a href="https://blogs.apache.org/openmeetings/entry/openmeetings_on_the_road_to" target="_BLANK" rel="nofollow">at our blog</a>

+					(2012-12-07)

+				</strong>

+				<br />

+				<strong>

+					Some slides from our Fast Feather Track at the ApacheCon Europe 2012 

+					<a href="https://blogs.apache.org/openmeetings/entry/openmeetings_apachecon_presentation_slide" target="_BLANK" rel="nofollow">at our blog</a>

+					(2012-11-18)

+				</strong>

+				<br />

+				<strong>

+					Update: Builds are available at

+					<a href="https://builds.apache.org/view/M-R/view/OpenMeetings/" target="_BLANK" rel="nofollow">builds.apache.org</a>

+					(2012-08-03)

+				</strong>

+				<br />

+				<strong>

+					<a href="https://blogs.apache.org/openmeetings/entry/apache_openmeetings_2_0_incubating" target="_BLANK" rel="nofollow">Version 2.0 released</a>

+					(2012-07-26)

+				</strong>

+				<br />

+				<strong>New committer: Timur Tleukenov (2012-03-06)</strong>

+				<br />

+				<strong>

+					<a href="http://demo.openmeetings.de" target="_BLANK" rel="nofollow">Demo

+						server</a>

+					updated to r1236172 (2012-01-26)

+				</strong>

+				<br />

+				<strong>New committer: German Grekhov (2011-12-26)</strong>

+				<br />

+				<strong>OpenMeetings has been accepted into the Apache Incubator

+					(2011-11-12).

+				</strong>

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Community"><strong>Community</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+				<strong>Who we are</strong>

+				<blockquote>

+					<a href="team-list.html">List of committers</a>

+					.

+				</blockquote>

+			</div>
+                                                <div>

+				<strong>Users!</strong>

+				<blockquote>

+					We'd love to have you involved. Check out the

+					<a href="get-involved.html">Get involved</a>

+					.

+				</blockquote>

+			</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Feature details"><strong>Feature details</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    	<h3>Audio and Video Conferencing</h3>
+	<table border="0">
+		<tbody>
+			<tr>
+				<td style="text-align: center;" width="300">
+																		<p>
+							<a class="group1 fancybox-buttons" href="images/Features_Screen_Conference_Room_Thumb.png">
+								<img src="images/Features_Screen_Conference_Room_Thumb.png" alt="" width="250"
+									 height="175"  />
+							</a>
+																										</td>
+				<td>
+																													<div>

+					There are four options to use OpenMeetings audio/video functions,

+					which you can select during a conference session.

+					<ul>

+						<li>audio + video</li>

+						<li>audio only</li>

+						<li>video only</li>

+						<li>picture only</li>

+					</ul>

+					Additional you can change video-/audio-quality, choose multiple

+					camera resolutions (4:3, 16:9 or 3:2)

+					and choose your input devices.

+				</div>
+															</td>
+			</tr>
+	    </tbody>
+	</table>
+                                                	<h3>Meeting recording and Screen sharing</h3>
+	<table border="0">
+		<tbody>
+			<tr>
+				<td style="text-align: center;" width="300">
+																		<p>
+							<a class="group1 fancybox-buttons" href="images/desktopsharing.png">
+								<img src="images/desktopsharing.png" alt="" width="140"
+									 height="150"  />
+							</a>
+																								<p>
+							<a class="group1 fancybox-buttons" href="images/recordings_timeleine.png">
+								<img src="images/recordings_timeleine.png" alt="" width="200"
+									 height="115"  />
+							</a>
+																										</td>
+				<td>
+																																								<div>

+					<ul>

+						<li>Recorded sessions contain everything including sound recorded

+							from all audio streams in exactly the way you've seen it in the

+							conference.

+						</li>

+					</ul>

+					<ul>

+						<li>Recorded sessions can be downloaded as AVI/FLV files.</li>

+					</ul>

+					<ul>

+						<li>Possibility to select a screen area for sharing.</li>

+					</ul>

+					<ul>

+						<li>Different quality steps for Screensharing.</li>

+					</ul>

+					<ul>

+						<li>Watch and organize recordings in an integrated Drag and Drop

+							File-Explorer

+						</li>

+					</ul>

+				</div>
+															</td>
+			</tr>
+	    </tbody>
+	</table>
+                                                	<h3>File Explorer</h3>
+	<table border="0">
+		<tbody>
+			<tr>
+				<td style="text-align: center;" width="300">
+																		<p>
+							<a class="group1 fancybox-buttons" href="images/file_smal.png">
+								<img src="images/file_smal.png" alt="" width="135"
+									 height="200"  />
+							</a>
+																										</td>
+				<td>
+																													<div>

+					Advanced File-Explorer in every conference room, Drag and Drop

+					interface for managing uploaded files, including the possibility to

+					create a document tree with folders.

+					<br />

+					<br />

+					Private and Public Drive in

+					File-Explorer. The File-Explorer has two

+					different views, one is the

+					<b>Private Drive</b>

+					and the other the

+					<b>Public Drive</b>

+					. The Private Drive

+					always contains the same files.

+					Those files are

+					visible only to the

+					user currently loggedin. The

+					Public Drive is not

+					bound to the user,

+					but to the conference room

+					instead. All users in

+					the conference room

+					have access to the Public

+					Drive.

+				</div>
+															</td>
+			</tr>
+	    </tbody>
+	</table>
+                                                	<h3>Moderating System</h3>
+	<table border="0">
+		<tbody>
+			<tr>
+				<td style="text-align: center;" width="300">
+																		<p>
+							<a class="group1 fancybox-buttons" href="images/right_management.png">
+								<img src="images/right_management.png" alt="" width="135"
+									 height="216"  />
+							</a>
+																										</td>
+				<td>
+																													<div>

+					During a conference, the moderator can adjust the user permission

+					to every user individually .

+					<ul>

+						<li>

+							<img class="alignnone" title="Allow modaration" src="images/user_add.png" alt="" />

+							Allow/Deny moderation

+						</li>

+						<li>

+							<img class="alignnone" title="Whiteboard Access" src="images/pencil_add.png" alt="" />

+							Allow/Deny to draw on white board

+						</li>

+						<li>

+							<img class="alignnone" title="Screenshare" src="images/monitor_add.png" alt="" />

+							Allow/Deny screen-sharing/record screen

+						</li>

+						<li>

+							<img class="alignnone" title="Remote control" src="images/mouse_add.png" alt="" />

+							Allow/Deny Remote Control Screen

+						</li>

+						<li>

+							<img class="alignnone" title="Remote control" src="images/micro_small.png" alt="" />

+							Give exclusive audio to others or self

+						</li>

+						<li>

+							<img class="alignnone" title="Video Audio" src="images/audio_and_video.png" alt="" />

+							(Re-) Start Audio, Video or Device settings

+						</li>

+					</ul>

+				</div>
+															</td>
+			</tr>
+	    </tbody>
+	</table>
+                                                	<h3>Multi-Whiteboard and Chat</h3>
+	<table border="0">
+		<tbody>
+			<tr>
+				<td style="text-align: center;" width="300">
+																		<p>
+							<a class="group1 fancybox-buttons" href="images/whiteboard.png">
+								<img src="images/whiteboard.png" alt="" width="240"
+									 height="165"  />
+							</a>
+																								<p>
+							<a class="group1 fancybox-buttons" href="images/chat.png">
+								<img src="images/chat.png" alt="" width="240"
+									 height="68"  />
+							</a>
+																										</td>
+				<td>
+																																								<div>

+					Multi-Whiteboard, you can add new whiteboard instances, each

+					white

+					board can have the full range of tools and documents inside.

+					<br />

+					<br />

+					Save white boards. You can save each whiteboard instance as a file.

+					The file is located in the File-Explorer and can be drag n' drop'ed

+					to the white board again and organized like any other document,

+					image or folder.

+					<br />

+					<br />

+					White board with drawing, writing, Drag n' Drop, Resizing, Images

+					(Drag n'

+					Drop from File-Explorer), Symbol(s)/Cliparts .

+					<br />

+					<br />

+					Full-fit does rescale the document on the screen to be 100% visible

+					on all

+					screens no matter what kind of screen resolution different

+					users

+					have.

+					<br />

+					<br />

+					You can import from a wide range of document formats (PDF, DOC,

+					ODT, PPT, et cetera...)

+				</div>
+															</td>
+			</tr>
+	    </tbody>
+	</table>
+                                                	<h3>User and room management</h3>
+	<table border="0">
+		<tbody>
+			<tr>
+				<td style="text-align: center;" width="300">
+																		<p>
+							<a class="group1 fancybox-buttons" href="images/dashboard.png">
+								<img src="images/dashboard.png" alt="" width="250"
+									 height="130"  />
+							</a>
+																										</td>
+				<td>
+																													<div>

+					You can manage users and multiple organizations in a single

+					OpenMeetings instance. You can also create users that only have

+					access via the SOAP-API.

+					<br />

+					<br />

+					MyRooms section. Each user has by default 2 personal rooms that

+					are

+					always accessible exclusively for that user. There are buttons

+					to

+					enter those rooms from the Dashboard.

+					<br />

+					<br />

+					You can assign conference room to all users, or you can assign them

+					only to specific user-groups.

+				</div>
+															</td>
+			</tr>
+	    </tbody>
+	</table>
+                                                	<h3>Private message center</h3>
+	<table border="0">
+		<tbody>
+			<tr>
+				<td style="text-align: center;" width="300">
+																		<p>
+							<a class="group1 fancybox-buttons" href="images/privat_messages.png">
+								<img src="images/privat_messages.png" alt="" width="230"
+									 height="125"  />
+							</a>
+																										</td>
+				<td>
+																													<div>

+					Send users messages and organize them in folders. You can book

+					conference rooms by sending private messages. The booked event

+					automatically is in your and the participants calendar, changes to

+					that event will be populated to all users booked to the event.

+					<br />

+					<br />

+					User contacts, you can search users and add them to your contacts.

+					You

+					can even give them the right to see your calendar.

+				</div>
+															</td>
+			</tr>
+	    </tbody>
+	</table>
+                                                	<h3>Plan meetings with integrated calendar</h3>
+	<table border="0">
+		<tbody>
+			<tr>
+				<td style="text-align: center;" width="300">
+																		<p>
+							<a class="group1 fancybox-buttons" href="images/calendar.png">
+								<img src="images/calendar.png" alt="" width="200"
+									 height="115"  />
+							</a>
+																										</td>
+				<td>
+																													<div>

+					<ul>

+						<li>Plan your conferencing and invite attendees from OpenMeetings

+							or External.

+						</li>

+						<li>The invited attendees will recieve an E-mail with details to

+							the meetings and a link with a secure hash to the conference

+							room.

+						</li>

+						<li>Share your calendar with your contacts.</li>

+					</ul>

+				</div>
+															</td>
+			</tr>
+	    </tbody>
+	</table>
+                                                	<h3>Polls and Votes</h3>
+	<table border="0">
+		<tbody>
+			<tr>
+				<td style="text-align: center;" width="300">
+																		<p>
+							<a class="group1 fancybox-buttons" href="images/poll.png">
+								<img src="images/poll.png" alt="" width="250"
+									 height="250"  />
+							</a>
+																										</td>
+				<td>
+																													<div>

+					You can create a poll with yes/no or 1-10 questions, let the

+					user

+					vote and see the voting results.

+					<br />

+					<br />

+					Polls can be stored and results viewed as pie-chart

+				</div>
+															</td>
+			</tr>
+	    </tbody>
+	</table>
+                                                	<h3>Backup</h3>
+	<table border="0">
+		<tbody>
+			<tr>
+				<td style="text-align: center;" width="300">
+																		<p>
+							<a class="group1 fancybox-buttons" href="images/backup.png">
+								<img src="images/backup.png" alt="" width="250"
+									 />
+							</a>
+																										</td>
+				<td>
+																													<div>

+					You can backup all user-generated data including files

+					uploaded by the users in a single ZIP file and import that ZIP into

+					a new installation of OpenMeetings again.

+				</div>
+															</td>
+			</tr>
+	    </tbody>
+	</table>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/installation.html b/docs/installation.html
new file mode 100644
index 0000000..8804758
--- /dev/null
+++ b/docs/installation.html
@@ -0,0 +1,667 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Home</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="OpenMeetings Installation"><strong>OpenMeetings Installation</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				To update from past versions or migrate see <a href="Upgrade.html">Upgrade</a>.<br />

+				If you are looking for commercial help have a look at

+				<a href="commercial-support.html" target="_BLANK" rel="nofollow">commercial support</a>.

+			</p>
+                                                <div>

+				<a href="downloads.html" rel="nofollow">

+					<img src="images/installation_instructions.png" alt="Installation in 3 simple steps" />

+				</a>

+				<p>

+					<i>Note: OpenMeetings requires SUN/Oracle JRE 6, not openJDK!</i><br />

+					<i>

+						Since Version 2.0 you can also install OpenMeetings from command line. Just cd to the unpacked 

+						archive and type ./admin.sh or admin.bat, please see

+						<a href="CommandLineAdmin.html" target="_BLANK" rel="nofollow">Command Line Admin</a>

+						for more options

+					</i>

+				</p>

+			</div>
+                                                <ol>

+				<li>

+					<b>Recommendation for production environment</b>

+					<div style="margin-top: 10px; margin-bottom:10px">

+						By default OpenMeetings uses the integrated Apache Derby database.

+						For production environment you should consider using

+						<a href="MySQLConfig.html">MySQL</a>

+						,

+						<a href="PostgresConfig.html">Postgres</a>

+						, or for example

+						<a href="IBMDB2Config.html">IBM DB2</a>

+						, or

+						<a href="OracleConfig.html">Oracle</a>

+						, or

+						<a href="MSSQLConfig.html">MSSQL</a>

+					</div>

+				</li>

+				<li>

+					<b>Enabling Image Upload and import to whiteboard</b>

+					<div style="margin-top: 10px; margin-bottom:10px">

+						Install

+						<b>ImageMagick</b>

+						on the server, you can get more information on

+						<a href="http://www.imagemagick.org" rel="nofollow" target="_BLANK">http://www.imagemagick.org

+						</a>

+						regarding installation. The instructions

+						for installation can be

+						found there

+						<a href="http://www.imagemagick.org/script/binary-releases.php" target="_BLANK" rel="nofollow">http://www.imagemagick.org/script/binary-releases.php

+						</a>

+						,

+						however on

+						most Linux systems you can get it via your favorite

+						package

+						managers (apt-get it)

+					</div>

+				</li>

+				<li>

+					<b>Enabling import of PDFs into whiteboard</b>

+					<div style="margin-top: 10px; margin-bottom:10px">

+						<ul>

+							<li>

+								Install

+								<b>GhostScript</b>

+								on the server, you can get more

+								information on

+								<a href="http://www.ghostscript.com/download/gsdnld.html" target="_BLANK" rel="nofollow">

+									http://www.ghostscript.com/download/gsdnld.html

+								</a>

+								regarding

+								installation. The instructions for installation can be

+								found

+								there, however on most Linux systems you can get it via

+								your

+								favorite package managers (apt-get it).

+							</li>

+							<li>

+								Install

+								<b>SWFTools</b>

+								on the server, you can get more information

+								on

+								<a href="http://www.swftools.org/" target="_BLANK" rel="nofollow">http://www.swftools.org/

+								</a>

+								regarding installation. Some of the

+								Linux distributions already

+								have it in there package manager (see

+								<a href="http://packages.debian.org/unstable/utils/swftools" target="_BLANK" rel="nofollow">http://packages.debian.org/unstable/utils/swftools

+								</a>

+								), the

+								recommended version of SWFTools is 0.9 as prior version

+								have a

+								bug that does lead to wrong object dimensions at

+								whiteboard

+							</li>

+						</ul>

+					</div>

+				</li>

+				<li>

+					<b>Enabling import of .doc, .docx, .ppt, .pptx, ... all Office

+						Documents into whitebaord

+					</b>

+					<div style="margin-top: 10px; margin-bottom:10px">

+						<ul>

+							<li>

+								<a href="http://code.google.com/p/jodconverter/" target="_BLANK" rel="nofollow">JODConverter</a>

+								installed (needed since v2.x)

+							</li>

+							<li>OpenOffice or Libre Office Installed</li>

+						</ul>

+						Since Version 2.x of OpenMeetings it is no more required to start

+						OpenOffice (or Libreoffice) service, see

+						<a href="OpenOfficeConverter.html">OpenOfficeConverter</a>

+						for details

+					</div>

+				</li>

+				<li>

+					<b>Enabling Recording and import of .avi, .flv, .mov and .mp4 into

+						whiteboard

+					</b>

+					<div style="margin-top: 10px; margin-bottom:10px">

+						<ul>

+							<li>

+								Install

+								<b>FFMpeg (with -enabled libmp3lame and libx264 options)</b>

+								. You should get FFMPEG in an up to date copy! OpenMeetings is

+								tested with FFMPEG Version 10.3 and latest build from GIT

+								For Windows you can download a Build for example from

+								<a href="http://ffmpeg.zeranoe.com/builds/" target="_BLANK" rel="nofollow">http://ffmpeg.zeranoe.com/builds/ </a>

+								Linux or OSx Users should be able to use one of the various

+								Installation Instructions on the Web. You need to enable

+								libmp3lame and libx264!

+							</li>

+							<li>

+								Install

+								<b>SoX</b>

+								<a href="http://sox.sourceforge.net/" target="_BLANK" rel="nofollow">http://sox.sourceforge.net/

+								</a>

+								. You should install SoX in a up

+								to date copy! SoX 12.xx will NOT

+								work!

+							</li>

+						</ul>

+					</div>

+				</li>

+			</ol>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Ports, NAT Settings, Customize"><strong>Ports, NAT Settings, Customize</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				See

+				<a href="PortSettings.html">PortSettings</a>

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="VMWare"><strong>VMWare</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+				<li>

+					See

+					<a href="http://nightly.openmeetings.de/openmeetings/builds/vmware/" rel="nofollow">http://nightly.openmeetings.de/openmeetings/builds/vmware/</a>

+				</li>

+				<li>

+					VMWare 1.6.1

+					<a href="http://openstudio.no-ip.info/2011/01/openmeetings-1-6-rc1-vmware-appliance-using-ubuntu-server-10-04-lts/" rel="nofollow">blog-entry</a>

+				</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Hardware Requirements"><strong>Hardware Requirements</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+				<li>

+					Minimalistic requirement (without Document Converters, Recorder and

+					Upload feature) 1GHz CPU 1 GB RAM (

+					<i>server-side</i>

+					)

+				</li>

+				<li>

+					Recommended requirement 2x/4x 2GHz ++ CPU (32 or 64Bit) 4GB RAM. If

+					you have a 64Bit Operating System check if there is a OpenOffice

+					64Bit Version

+					<a href="http://download.openoffice.org/other.html#de" rel="nofollow">available

+						for your OS

+					</a>

+					(

+					<i>server-side</i>

+					)

+				</li>

+				<li>

+					Headset/Microphone recommendation: Logitech ClearChat PC Wireless,

+					for example from

+					<a href="http://www.amazon.de/Logitech-ClearChat-kabelloser-Kopfh%C3%B6rer-Transmitter/dp/B00166WSN4" rel="nofollow">Amazon</a>

+					or

+					<a href="http://shop.ebay.com/i.html?_nkw=Logitech+ClearChat.+Wireless&amp;_sacat=0&amp;_trksid=p3286.m270.l1313&amp;LH_BIN=1&amp;LH_IncludeSIF=1&amp;_odkw=Logitech+ClearChat+PC&amp;_osacat=0" rel="nofollow">EBay Auctions</a>

+					(

+					<i>cient-side</i>

+					).

+					<a href="RecommendedHardwareList.html">See all recommendations</a>

+					for cameras, headsets and speakerphones.

+				</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Debian, Links, Changelog, VoIP"><strong>Debian, Links, Changelog, VoIP</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+				<li>

+					for VoIP and SIP Integration see also

+					<a href="voip-sip-integration.html">VoIPAndSIP</a>

+				</li>

+				<li>

+					<a href="http://meetingslive.sourceforge.net/" rel="nofollow">http://meetingslive.sourceforge.net/

+					</a>

+				</li>

+				<li>

+					<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Installation of OM 2.0 for Ubuntu 12.04 x64, Ubuntu 12.10 x64, Debian, Windows XP, 7, 2003, 2008</a>

+				</li>

+				<li>

+					<a href="http://liberamemoria.blogspot.com/2009/02/instalando-openmeetings-07-rc-2-en.html" rel="nofollow">Espanol Version for Debian Installation</a>

+				</li>

+				<li>

+					<a href="http://aitinet.com/blog/wp-content/uploads/2009/08/TUTORIAL-PARA-INSTALACAO-DO-RED5-E-OPENMEETINGS-NO-LINUX-DEBIAN-LENNY-51.pdf" rel="nofollow">Portuguese Version for Debian Installation of 0.9 RC1</a>

+				</li>

+				<li>

+					<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools" rel="nofollow">Automatic script installation for Ubuntu/Debian (beta)</a>

+				</li>

+				<li>

+					French version of Installation Instructions:

+					<a href="http://flash.54n.free.fr/?/Root/Debian/OpenMeetings-Installation" rel="nofollow">http://flash.54n.free.fr/?/Root/Debian/OpenMeetings-Installation

+					</a>

+				</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Tips and Tricks"><strong>Tips and Tricks</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+				<li>

+					Use the Debug-Application: Enter in your browser

+					<a href="http://$RED-HOST:$RED5-PORT/openmeetings/?swf=maindebug.as3.swf11.swf" rel="nofollow">http://$RED-HOST:$RED5-PORT/openmeetings/?swf=maindebug.as3.swf11.swf

+					</a>

+					for example

+					<a href="http://localhost:5080/openmeetings/?swf=maindebug.as3.swf11.swf" rel="nofollow">http://localhost:5080/openmeetings/?swf=maindebug.as3.swf11.swf

+					</a>

+				</li>

+				<li>If you have Problems with conversion-jobs check your Red5-Log

+					output. There will be error Messages which help you. You must

+					install OpenOffice, ImageMagick, GhostScript and SWFTools to run

+					all conversion-Jobs correctly.

+				</li>

+				<li>if you have problems in converting Files check the Batch-Scripts

+					in $OPENMEETINGS_HOME/jod

+				</li>

+				<li>

+					If you want to use red5 as a service (without red5.bat), you need

+					to move red5\wrapper\wrapper.exe to red5\wrapper.exe. Then change

+					some path in conf\wrapper.conf (like ..\lib\foo.jar to

+					lib\foo.jar). And finally change the register key in

+					HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Red5\ImagePath

+					to point to the new wrapper.

+				</li>

+				<li>

+					you can query a Mysql Database to get the schema_collection by

+					using this query:

+					<div class="xmlcode">

+						SELECT Table_name, TABLE_COLLATION FROM

+						information_schema.tables WHERE table_schema = 'openmeetings'

+						ORDER BY table_name DESC

+					</div>

+				</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/js/coin-slider.min.js b/docs/js/coin-slider.min.js
new file mode 100644
index 0000000..b96708f
--- /dev/null
+++ b/docs/js/coin-slider.min.js
@@ -0,0 +1,51 @@
+/**
+ * Coin Slider - Unique jQuery Image Slider
+ * @version: 1.0 - (2010/04/04)
+ * @requires jQuery v1.2.2 or later 
+ * @author Ivan Lazarevic
+ * Examples and documentation at: http://workshop.rs/projects/coin-slider/
+ 
+ * Licensed under MIT licence:
+ *   http://www.opensource.org/licenses/mit-license.php
+**/
+
+(function($){var params=new Array;var order=new Array;var images=new Array;var links=new Array;var linksTarget=new Array;var titles=new Array;var interval=new Array;var imagePos=new Array;var appInterval=new Array;var squarePos=new Array;var reverse=new Array;$.fn.coinslider=$.fn.CoinSlider=function(options){init=function(el){order[el.id]=new Array();images[el.id]=new Array();links[el.id]=new Array();linksTarget[el.id]=new Array();titles[el.id]=new Array();imagePos[el.id]=0;squarePos[el.id]=0;reverse[el.id]=1;params[el.id]=$.extend({},$.fn.coinslider.defaults,options);$.each($('#'+el.id+' img'),function(i,item){images[el.id][i]=$(item).attr('src');links[el.id][i]=$(item).parent().is('a')?$(item).parent().attr('href'):'';linksTarget[el.id][i]=$(item).parent().is('a')?$(item).parent().attr('target'):'';titles[el.id][i]=$(item).next().is('span')?$(item).next().html():'';$(item).hide();$(item).next().hide();});$(el).css({'background-image':'url('+images[el.id][0]+')','width':params[el.id].width,'height':params[el.id].height,'position':'relative','background-position':'top left'}).wrap("<div class='coin-slider' id='coin-slider-"+el.id+"' />");$('#'+el.id).append("<div class='cs-title' id='cs-title-"+el.id+"' style='position: absolute; bottom:0; left: 0; z-index: 1000;'></div>");$.setFields(el);if(params[el.id].navigation)
+$.setNavigation(el);$.transition(el,0);$.transitionCall(el);}
+$.setFields=function(el){tWidth=sWidth=parseInt(params[el.id].width/params[el.id].spw);tHeight=sHeight=parseInt(params[el.id].height/params[el.id].sph);counter=sLeft=sTop=0;tgapx=gapx=params[el.id].width-params[el.id].spw*sWidth;tgapy=gapy=params[el.id].height-params[el.id].sph*sHeight;for(i=1;i<=params[el.id].sph;i++){gapx=tgapx;if(gapy>0){gapy--;sHeight=tHeight+1;}else{sHeight=tHeight;}
+for(j=1;j<=params[el.id].spw;j++){if(gapx>0){gapx--;sWidth=tWidth+1;}else{sWidth=tWidth;}
+order[el.id][counter]=i+''+j;counter++;if(params[el.id].links)
+$('#'+el.id).append("<a href='"+links[el.id][0]+"' class='cs-"+el.id+"' id='cs-"+el.id+i+j+"' style='width:"+sWidth+"px; height:"+sHeight+"px; float: left; position: absolute;'></a>");else
+$('#'+el.id).append("<div class='cs-"+el.id+"' id='cs-"+el.id+i+j+"' style='width:"+sWidth+"px; height:"+sHeight+"px; float: left; position: absolute;'></div>");$("#cs-"+el.id+i+j).css({'background-position':-sLeft+'px '+(-sTop+'px'),'left':sLeft,'top':sTop});sLeft+=sWidth;}
+sTop+=sHeight;sLeft=0;}
+$('.cs-'+el.id).mouseover(function(){$('#cs-navigation-'+el.id).show();});$('.cs-'+el.id).mouseout(function(){$('#cs-navigation-'+el.id).hide();});$('#cs-title-'+el.id).mouseover(function(){$('#cs-navigation-'+el.id).show();});$('#cs-title-'+el.id).mouseout(function(){$('#cs-navigation-'+el.id).hide();});if(params[el.id].hoverPause){$('.cs-'+el.id).mouseover(function(){params[el.id].pause=true;});$('.cs-'+el.id).mouseout(function(){params[el.id].pause=false;});$('#cs-title-'+el.id).mouseover(function(){params[el.id].pause=true;});$('#cs-title-'+el.id).mouseout(function(){params[el.id].pause=false;});}};$.transitionCall=function(el){clearInterval(interval[el.id]);delay=params[el.id].delay+params[el.id].spw*params[el.id].sph*params[el.id].sDelay;interval[el.id]=setInterval(function(){$.transition(el)},delay);}
+$.transition=function(el,direction){if(params[el.id].pause==true)return;$.effect(el);squarePos[el.id]=0;appInterval[el.id]=setInterval(function(){$.appereance(el,order[el.id][squarePos[el.id]])},params[el.id].sDelay);$(el).css({'background-image':'url('+images[el.id][imagePos[el.id]]+')'});if(typeof(direction)=="undefined")
+imagePos[el.id]++;else
+if(direction=='prev')
+imagePos[el.id]--;else
+imagePos[el.id]=direction;if(imagePos[el.id]==images[el.id].length){imagePos[el.id]=0;}
+if(imagePos[el.id]==-1){imagePos[el.id]=images[el.id].length-1;}
+$('.cs-button-'+el.id).removeClass('cs-active');$('#cs-button-'+el.id+"-"+(imagePos[el.id]+1)).addClass('cs-active');if(titles[el.id][imagePos[el.id]]){$('#cs-title-'+el.id).css({'opacity':0}).animate({'opacity':params[el.id].opacity},params[el.id].titleSpeed);$('#cs-title-'+el.id).html(titles[el.id][imagePos[el.id]]);}else{$('#cs-title-'+el.id).css('opacity',0);}};$.appereance=function(el,sid){$('.cs-'+el.id).attr('href',links[el.id][imagePos[el.id]]).attr('target',linksTarget[el.id][imagePos[el.id]]);if(squarePos[el.id]==params[el.id].spw*params[el.id].sph){clearInterval(appInterval[el.id]);return;}
+$('#cs-'+el.id+sid).css({opacity:0,'background-image':'url('+images[el.id][imagePos[el.id]]+')'});$('#cs-'+el.id+sid).animate({opacity:1},300);squarePos[el.id]++;};$.setNavigation=function(el){$(el).append("<div id='cs-navigation-"+el.id+"'></div>");$('#cs-navigation-'+el.id).hide();$('#cs-navigation-'+el.id).append("<a href='#' id='cs-prev-"+el.id+"' class='cs-prev'>prev</a>");$('#cs-navigation-'+el.id).append("<a href='#' id='cs-next-"+el.id+"' class='cs-next'>next</a>");$('#cs-prev-'+el.id).css({'position':'absolute','top':params[el.id].height/2-15,'left':0,'z-index':1001,'line-height':'30px','opacity':params[el.id].opacity}).click(function(e){e.preventDefault();$.transition(el,'prev');$.transitionCall(el);}).mouseover(function(){$('#cs-navigation-'+el.id).show()});$('#cs-next-'+el.id).css({'position':'absolute','top':params[el.id].height/2-15,'right':0,'z-index':1001,'line-height':'30px','opacity':params[el.id].opacity}).click(function(e){e.preventDefault();$.transition(el);$.transitionCall(el);}).mouseover(function(){$('#cs-navigation-'+el.id).show()});$("<div id='cs-buttons-"+el.id+"' class='cs-buttons'></div>").appendTo($('#coin-slider-'+el.id));for(k=1;k<images[el.id].length+1;k++){$('#cs-buttons-'+el.id).append("<a href='#' class='cs-button-"+el.id+"' id='cs-button-"+el.id+"-"+k+"'>"+k+"</a>");}
+$.each($('.cs-button-'+el.id),function(i,item){$(item).click(function(e){$('.cs-button-'+el.id).removeClass('cs-active');$(this).addClass('cs-active');e.preventDefault();$.transition(el,i);$.transitionCall(el);})});$('#cs-navigation-'+el.id+' a').mouseout(function(){$('#cs-navigation-'+el.id).hide();params[el.id].pause=false;});$("#cs-buttons-"+el.id).css({'left':'50%','margin-left':-images[el.id].length*15/2-5,'position':'relative'});}
+$.effect=function(el){effA=['random','swirl','rain','straight'];if(params[el.id].effect=='')
+eff=effA[Math.floor(Math.random()*(effA.length))];else
+eff=params[el.id].effect;order[el.id]=new Array();if(eff=='random'){counter=0;for(i=1;i<=params[el.id].sph;i++){for(j=1;j<=params[el.id].spw;j++){order[el.id][counter]=i+''+j;counter++;}}
+$.random(order[el.id]);}
+if(eff=='rain'){$.rain(el);}
+if(eff=='swirl')
+$.swirl(el);if(eff=='straight')
+$.straight(el);reverse[el.id]*=-1;if(reverse[el.id]>0){order[el.id].reverse();}}
+$.random=function(arr){var i=arr.length;if(i==0)return false;while(--i){var j=Math.floor(Math.random()*(i+1));var tempi=arr[i];var tempj=arr[j];arr[i]=tempj;arr[j]=tempi;}}
+$.swirl=function(el){var n=params[el.id].sph;var m=params[el.id].spw;var x=1;var y=1;var going=0;var num=0;var c=0;var dowhile=true;while(dowhile){num=(going==0||going==2)?m:n;for(i=1;i<=num;i++){order[el.id][c]=x+''+y;c++;if(i!=num){switch(going){case 0:y++;break;case 1:x++;break;case 2:y--;break;case 3:x--;break;}}}
+going=(going+1)%4;switch(going){case 0:m--;y++;break;case 1:n--;x++;break;case 2:m--;y--;break;case 3:n--;x--;break;}
+check=$.max(n,m)-$.min(n,m);if(m<=check&&n<=check)
+dowhile=false;}}
+$.rain=function(el){var n=params[el.id].sph;var m=params[el.id].spw;var c=0;var to=to2=from=1;var dowhile=true;while(dowhile){for(i=from;i<=to;i++){order[el.id][c]=i+''+parseInt(to2-i+1);c++;}
+to2++;if(to<n&&to2<m&&n<m){to++;}
+if(to<n&&n>=m){to++;}
+if(to2>m){from++;}
+if(from>to)dowhile=false;}}
+$.straight=function(el){counter=0;for(i=1;i<=params[el.id].sph;i++){for(j=1;j<=params[el.id].spw;j++){order[el.id][counter]=i+''+j;counter++;}}}
+$.min=function(n,m){if(n>m)return m;else return n;}
+$.max=function(n,m){if(n<m)return m;else return n;}
+this.each(function(){init(this);});};$.fn.coinslider.defaults={width:565,height:290,spw:7,sph:5,delay:3000,sDelay:30,opacity:0.7,titleSpeed:500,effect:'',navigation:true,links:true,hoverPause:true};})(jQuery);
\ No newline at end of file
diff --git a/docs/js/jquery-1.11.0.min.js b/docs/js/jquery-1.11.0.min.js
new file mode 100644
index 0000000..73f33fb
--- /dev/null
+++ b/docs/js/jquery-1.11.0.min.js
@@ -0,0 +1,4 @@
+/*! jQuery v1.11.0 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
+!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k="".trim,l={},m="1.11.0",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(l.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:k&&!k.call("\ufeff\xa0")?function(a){return null==a?"":k.call(a)}:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||n.guid++,e):void 0},now:function(){return+new Date},support:l}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s="sizzle"+-new Date,t=a.document,u=0,v=0,w=eb(),x=eb(),y=eb(),z=function(a,b){return a===b&&(j=!0),0},A="undefined",B=1<<31,C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=D.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",M=L.replace("w","w#"),N="\\["+K+"*("+L+")"+K+"*(?:([*^$|!~]?=)"+K+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+M+")|)|)"+K+"*\\]",O=":("+L+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+N.replace(3,8)+")*)|.*)\\)|)",P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(O),U=new RegExp("^"+M+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L.replace("w","w*")+")"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=/'|\\/g,ab=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),bb=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{G.apply(D=H.call(t.childNodes),t.childNodes),D[t.childNodes.length].nodeType}catch(cb){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function db(a,b,d,e){var f,g,h,i,j,m,p,q,u,v;if((b?b.ownerDocument||b:t)!==l&&k(b),b=b||l,d=d||[],!a||"string"!=typeof a)return d;if(1!==(i=b.nodeType)&&9!==i)return[];if(n&&!e){if(f=Z.exec(a))if(h=f[1]){if(9===i){if(g=b.getElementById(h),!g||!g.parentNode)return d;if(g.id===h)return d.push(g),d}else if(b.ownerDocument&&(g=b.ownerDocument.getElementById(h))&&r(b,g)&&g.id===h)return d.push(g),d}else{if(f[2])return G.apply(d,b.getElementsByTagName(a)),d;if((h=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(h)),d}if(c.qsa&&(!o||!o.test(a))){if(q=p=s,u=b,v=9===i&&a,1===i&&"object"!==b.nodeName.toLowerCase()){m=ob(a),(p=b.getAttribute("id"))?q=p.replace(_,"\\$&"):b.setAttribute("id",q),q="[id='"+q+"'] ",j=m.length;while(j--)m[j]=q+pb(m[j]);u=$.test(a)&&mb(b.parentNode)||b,v=m.join(",")}if(v)try{return G.apply(d,u.querySelectorAll(v)),d}catch(w){}finally{p||b.removeAttribute("id")}}}return xb(a.replace(P,"$1"),b,d,e)}function eb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function fb(a){return a[s]=!0,a}function gb(a){var b=l.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function hb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function ib(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||B)-(~a.sourceIndex||B);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function jb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function kb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function lb(a){return fb(function(b){return b=+b,fb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function mb(a){return a&&typeof a.getElementsByTagName!==A&&a}c=db.support={},f=db.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},k=db.setDocument=function(a){var b,e=a?a.ownerDocument||a:t,g=e.defaultView;return e!==l&&9===e.nodeType&&e.documentElement?(l=e,m=e.documentElement,n=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){k()},!1):g.attachEvent&&g.attachEvent("onunload",function(){k()})),c.attributes=gb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=gb(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(e.getElementsByClassName)&&gb(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=gb(function(a){return m.appendChild(a).id=s,!e.getElementsByName||!e.getElementsByName(s).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==A&&n){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){var c=typeof a.getAttributeNode!==A&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==A?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==A&&n?b.getElementsByClassName(a):void 0},p=[],o=[],(c.qsa=Y.test(e.querySelectorAll))&&(gb(function(a){a.innerHTML="<select t=''><option selected=''></option></select>",a.querySelectorAll("[t^='']").length&&o.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||o.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll(":checked").length||o.push(":checked")}),gb(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&o.push("name"+K+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||o.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),o.push(",.*:")})),(c.matchesSelector=Y.test(q=m.webkitMatchesSelector||m.mozMatchesSelector||m.oMatchesSelector||m.msMatchesSelector))&&gb(function(a){c.disconnectedMatch=q.call(a,"div"),q.call(a,"[s!='']:x"),p.push("!=",O)}),o=o.length&&new RegExp(o.join("|")),p=p.length&&new RegExp(p.join("|")),b=Y.test(m.compareDocumentPosition),r=b||Y.test(m.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},z=b?function(a,b){if(a===b)return j=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===t&&r(t,a)?-1:b===e||b.ownerDocument===t&&r(t,b)?1:i?I.call(i,a)-I.call(i,b):0:4&d?-1:1)}:function(a,b){if(a===b)return j=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],k=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:i?I.call(i,a)-I.call(i,b):0;if(f===g)return ib(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)k.unshift(c);while(h[d]===k[d])d++;return d?ib(h[d],k[d]):h[d]===t?-1:k[d]===t?1:0},e):l},db.matches=function(a,b){return db(a,null,null,b)},db.matchesSelector=function(a,b){if((a.ownerDocument||a)!==l&&k(a),b=b.replace(S,"='$1']"),!(!c.matchesSelector||!n||p&&p.test(b)||o&&o.test(b)))try{var d=q.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return db(b,l,null,[a]).length>0},db.contains=function(a,b){return(a.ownerDocument||a)!==l&&k(a),r(a,b)},db.attr=function(a,b){(a.ownerDocument||a)!==l&&k(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!n):void 0;return void 0!==f?f:c.attributes||!n?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},db.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},db.uniqueSort=function(a){var b,d=[],e=0,f=0;if(j=!c.detectDuplicates,i=!c.sortStable&&a.slice(0),a.sort(z),j){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return i=null,a},e=db.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=db.selectors={cacheLength:50,createPseudo:fb,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ab,bb),a[3]=(a[4]||a[5]||"").replace(ab,bb),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||db.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&db.error(a[0]),a},PSEUDO:function(a){var b,c=!a[5]&&a[2];return V.CHILD.test(a[0])?null:(a[3]&&void 0!==a[4]?a[2]=a[4]:c&&T.test(c)&&(b=ob(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ab,bb).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=w[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&w(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==A&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=db.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),t=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&t){k=q[s]||(q[s]={}),j=k[a]||[],n=j[0]===u&&j[1],m=j[0]===u&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[u,n,m];break}}else if(t&&(j=(b[s]||(b[s]={}))[a])&&j[0]===u)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(t&&((l[s]||(l[s]={}))[a]=[u,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||db.error("unsupported pseudo: "+a);return e[s]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?fb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:fb(function(a){var b=[],c=[],d=g(a.replace(P,"$1"));return d[s]?fb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:fb(function(a){return function(b){return db(a,b).length>0}}),contains:fb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:fb(function(a){return U.test(a||"")||db.error("unsupported lang: "+a),a=a.replace(ab,bb).toLowerCase(),function(b){var c;do if(c=n?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===m},focus:function(a){return a===l.activeElement&&(!l.hasFocus||l.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:lb(function(){return[0]}),last:lb(function(a,b){return[b-1]}),eq:lb(function(a,b,c){return[0>c?c+b:c]}),even:lb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:lb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:lb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:lb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=jb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=kb(b);function nb(){}nb.prototype=d.filters=d.pseudos,d.setFilters=new nb;function ob(a,b){var c,e,f,g,h,i,j,k=x[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=Q.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?db.error(a):x(a,i).slice(0)}function pb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function qb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=v++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[u,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[s]||(b[s]={}),(h=i[d])&&h[0]===u&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function rb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function sb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function tb(a,b,c,d,e,f){return d&&!d[s]&&(d=tb(d)),e&&!e[s]&&(e=tb(e,f)),fb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||wb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:sb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=sb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=sb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ub(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],i=g||d.relative[" "],j=g?1:0,k=qb(function(a){return a===b},i,!0),l=qb(function(a){return I.call(b,a)>-1},i,!0),m=[function(a,c,d){return!g&&(d||c!==h)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>j;j++)if(c=d.relative[a[j].type])m=[qb(rb(m),c)];else{if(c=d.filter[a[j].type].apply(null,a[j].matches),c[s]){for(e=++j;f>e;e++)if(d.relative[a[e].type])break;return tb(j>1&&rb(m),j>1&&pb(a.slice(0,j-1).concat({value:" "===a[j-2].type?"*":""})).replace(P,"$1"),c,e>j&&ub(a.slice(j,e)),f>e&&ub(a=a.slice(e)),f>e&&pb(a))}m.push(c)}return rb(m)}function vb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,i,j,k){var m,n,o,p=0,q="0",r=f&&[],s=[],t=h,v=f||e&&d.find.TAG("*",k),w=u+=null==t?1:Math.random()||.1,x=v.length;for(k&&(h=g!==l&&g);q!==x&&null!=(m=v[q]);q++){if(e&&m){n=0;while(o=a[n++])if(o(m,g,i)){j.push(m);break}k&&(u=w)}c&&((m=!o&&m)&&p--,f&&r.push(m))}if(p+=q,c&&q!==p){n=0;while(o=b[n++])o(r,s,g,i);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=E.call(j));s=sb(s)}G.apply(j,s),k&&!f&&s.length>0&&p+b.length>1&&db.uniqueSort(j)}return k&&(u=w,h=t),r};return c?fb(f):f}g=db.compile=function(a,b){var c,d=[],e=[],f=y[a+" "];if(!f){b||(b=ob(a)),c=b.length;while(c--)f=ub(b[c]),f[s]?d.push(f):e.push(f);f=y(a,vb(e,d))}return f};function wb(a,b,c){for(var d=0,e=b.length;e>d;d++)db(a,b[d],c);return c}function xb(a,b,e,f){var h,i,j,k,l,m=ob(a);if(!f&&1===m.length){if(i=m[0]=m[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&c.getById&&9===b.nodeType&&n&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(ab,bb),b)||[])[0],!b)return e;a=a.slice(i.shift().value.length)}h=V.needsContext.test(a)?0:i.length;while(h--){if(j=i[h],d.relative[k=j.type])break;if((l=d.find[k])&&(f=l(j.matches[0].replace(ab,bb),$.test(i[0].type)&&mb(b.parentNode)||b))){if(i.splice(h,1),a=f.length&&pb(i),!a)return G.apply(e,f),e;break}}}return g(a,m)(f,b,!n,e,$.test(a)&&mb(b.parentNode)||b),e}return c.sortStable=s.split("").sort(z).join("")===s,c.detectDuplicates=!!j,k(),c.sortDetached=gb(function(a){return 1&a.compareDocumentPosition(l.createElement("div"))}),gb(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||hb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&gb(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||hb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),gb(function(a){return null==a.getAttribute("disabled")})||hb(J,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),db}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=a.document,A=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,B=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:A.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:z,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=z.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return y.find(a);this.length=1,this[0]=d}return this.context=z,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};B.prototype=n.fn,y=n(z);var C=/^(?:parents|prev(?:Until|All))/,D={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!n(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function E(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return E(a,"nextSibling")},prev:function(a){return E(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(D[a]||(e=n.unique(e)),C.test(a)&&(e=e.reverse())),this.pushStack(e)}});var F=/\S+/g,G={};function H(a){var b=G[a]={};return n.each(a.match(F)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?G[a]||H(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&n.each(arguments,function(a,c){var d;while((d=n.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){if(a===!0?!--n.readyWait:!n.isReady){if(!z.body)return setTimeout(n.ready);n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(z,[n]),n.fn.trigger&&n(z).trigger("ready").off("ready"))}}});function J(){z.addEventListener?(z.removeEventListener("DOMContentLoaded",K,!1),a.removeEventListener("load",K,!1)):(z.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(z.addEventListener||"load"===event.type||"complete"===z.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===z.readyState)setTimeout(n.ready);else if(z.addEventListener)z.addEventListener("DOMContentLoaded",K,!1),a.addEventListener("load",K,!1);else{z.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&z.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!n.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}J(),n.ready()}}()}return I.promise(b)};var L="undefined",M;for(M in n(l))break;l.ownLast="0"!==M,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c=z.getElementsByTagName("body")[0];c&&(a=z.createElement("div"),a.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",b=z.createElement("div"),c.appendChild(a).appendChild(b),typeof b.style.zoom!==L&&(b.style.cssText="border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1",(l.inlineBlockNeedsLayout=3===b.offsetWidth)&&(c.style.zoom=1)),c.removeChild(a),a=b=null)}),function(){var a=z.createElement("div");if(null==l.deleteExpando){l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}}a=null}(),n.acceptData=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(n.acceptData(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f
+}}function S(a,b,c){if(n.acceptData(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d]));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=n._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var T=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,U=["Top","Right","Bottom","Left"],V=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},W=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},X=/^(?:checkbox|radio)$/i;!function(){var a=z.createDocumentFragment(),b=z.createElement("div"),c=z.createElement("input");if(b.setAttribute("className","t"),b.innerHTML="  <link/><table></table><a href='/a'>a</a>",l.leadingWhitespace=3===b.firstChild.nodeType,l.tbody=!b.getElementsByTagName("tbody").length,l.htmlSerialize=!!b.getElementsByTagName("link").length,l.html5Clone="<:nav></:nav>"!==z.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,a.appendChild(c),l.appendChecked=c.checked,b.innerHTML="<textarea>x</textarea>",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,a.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){l.noCloneEvent=!1}),b.cloneNode(!0).click()),null==l.deleteExpando){l.deleteExpando=!0;try{delete b.test}catch(d){l.deleteExpando=!1}}a=b=c=null}(),function(){var b,c,d=z.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),l[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var Y=/^(?:input|select|textarea)$/i,Z=/^key/,$=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,ab=/^([^.]*)(?:\.(.+)|)$/;function bb(){return!0}function cb(){return!1}function db(){try{return z.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof n===L||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(F)||[""],h=b.length;while(h--)f=ab.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(F)||[""],j=b.length;while(j--)if(h=ab.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,m,o=[d||z],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||z,3!==d.nodeType&&8!==d.nodeType&&!_.test(p+n.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[n.expando]?b:new n.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),k=n.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!n.isWindow(d)){for(i=k.delegateType||p,_.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||z)&&o.push(l.defaultView||l.parentWindow||a)}m=0;while((h=o[m++])&&!b.isPropagationStopped())b.type=m>1?i:k.bindType||p,f=(n._data(h,"events")||{})[b.type]&&n._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&n.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&n.acceptData(d)&&g&&d[p]&&!n.isWindow(d)){l=d[g],l&&(d[g]=null),n.event.triggered=p;try{d[p]()}catch(r){}n.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((n.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?n(c,this).index(i)>=0:n.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=$.test(e)?this.mouseHooks:Z.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||z),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||z,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==db()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===db()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return n.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=z.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===L&&(a[d]=null),a.detachEvent(d,c))},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&(a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault())?bb:cb):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:cb,isPropagationStopped:cb,isImmediatePropagationStopped:cb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=bb,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=bb,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=bb,this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),l.submitBubbles||(n.event.special.submit={setup:function(){return n.nodeName(this,"form")?!1:void n.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=n.nodeName(b,"input")||n.nodeName(b,"button")?b.form:void 0;c&&!n._data(c,"submitBubbles")&&(n.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),n._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&n.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return n.nodeName(this,"form")?!1:void n.event.remove(this,"._submit")}}),l.changeBubbles||(n.event.special.change={setup:function(){return Y.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(n.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),n.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),n.event.simulate("change",this,a,!0)})),!1):void n.event.add(this,"beforeactivate._change",function(a){var b=a.target;Y.test(b.nodeName)&&!n._data(b,"changeBubbles")&&(n.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||n.event.simulate("change",this.parentNode,a,!0)}),n._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return n.event.remove(this,"._change"),!Y.test(this.nodeName)}}),l.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=n._data(d,b);e||d.addEventListener(a,c,!0),n._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=n._data(d,b)-1;e?n._data(d,b,e):(d.removeEventListener(a,c,!0),n._removeData(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=cb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return n().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=cb),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});function eb(a){var b=fb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var fb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gb=/ jQuery\d+="(?:null|\d+)"/g,hb=new RegExp("<(?:"+fb+")[\\s/>]","i"),ib=/^\s+/,jb=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,kb=/<([\w:]+)/,lb=/<tbody/i,mb=/<|&#?\w+;/,nb=/<(?:script|style|link)/i,ob=/checked\s*(?:[^=]|=\s*.checked.)/i,pb=/^$|\/(?:java|ecma)script/i,qb=/^true\/(.*)/,rb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,sb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:l.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},tb=eb(z),ub=tb.appendChild(z.createElement("div"));sb.optgroup=sb.option,sb.tbody=sb.tfoot=sb.colgroup=sb.caption=sb.thead,sb.th=sb.td;function vb(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==L?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==L?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,vb(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function wb(a){X.test(a.type)&&(a.defaultChecked=a.checked)}function xb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function yb(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function zb(a){var b=qb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ab(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}function Bb(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Cb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(yb(b).text=a.text,zb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&X.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}n.extend({clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!hb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ub.innerHTML=a.outerHTML,ub.removeChild(f=ub.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=vb(f),h=vb(a),g=0;null!=(e=h[g]);++g)d[g]&&Cb(e,d[g]);if(b)if(c)for(h=h||vb(a),d=d||vb(f),g=0;null!=(e=h[g]);g++)Bb(e,d[g]);else Bb(a,f);return d=vb(f,"script"),d.length>0&&Ab(d,!i&&vb(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k,m=a.length,o=eb(b),p=[],q=0;m>q;q++)if(f=a[q],f||0===f)if("object"===n.type(f))n.merge(p,f.nodeType?[f]:f);else if(mb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(kb.exec(f)||["",""])[1].toLowerCase(),k=sb[i]||sb._default,h.innerHTML=k[1]+f.replace(jb,"<$1></$2>")+k[2],e=k[0];while(e--)h=h.lastChild;if(!l.leadingWhitespace&&ib.test(f)&&p.push(b.createTextNode(ib.exec(f)[0])),!l.tbody){f="table"!==i||lb.test(f)?"<table>"!==k[1]||lb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)n.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}n.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),l.appendChecked||n.grep(vb(p,"input"),wb),q=0;while(f=p[q++])if((!d||-1===n.inArray(f,d))&&(g=n.contains(f.ownerDocument,f),h=vb(o.appendChild(f),"script"),g&&Ab(h),c)){e=0;while(f=h[e++])pb.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.deleteExpando,m=n.event.special;null!=(d=a[h]);h++)if((b||n.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k?delete d[i]:typeof d.removeAttribute!==L?d.removeAttribute(i):d[i]=null,c.push(f))}}}),n.fn.extend({text:function(a){return W(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||z).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(vb(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&Ab(vb(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(vb(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return W(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(gb,""):void 0;if(!("string"!=typeof a||nb.test(a)||!l.htmlSerialize&&hb.test(a)||!l.leadingWhitespace&&ib.test(a)||sb[(kb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(jb,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(vb(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(vb(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,k=this.length,m=this,o=k-1,p=a[0],q=n.isFunction(p);if(q||k>1&&"string"==typeof p&&!l.checkClone&&ob.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(k&&(i=n.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=n.map(vb(i,"script"),yb),f=g.length;k>j;j++)d=i,j!==o&&(d=n.clone(d,!0,!0),f&&n.merge(g,vb(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,n.map(g,zb),j=0;f>j;j++)d=g[j],pb.test(d.type||"")&&!n._data(d,"globalEval")&&n.contains(h,d)&&(d.src?n._evalUrl&&n._evalUrl(d.src):n.globalEval((d.text||d.textContent||d.innerHTML||"").replace(rb,"")));i=c=null}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],g=n(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Db,Eb={};function Fb(b,c){var d=n(c.createElement(b)).appendTo(c.body),e=a.getDefaultComputedStyle?a.getDefaultComputedStyle(d[0]).display:n.css(d[0],"display");return d.detach(),e}function Gb(a){var b=z,c=Eb[a];return c||(c=Fb(a,b),"none"!==c&&c||(Db=(Db||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Db[0].contentWindow||Db[0].contentDocument).document,b.write(),b.close(),c=Fb(a,b),Db.detach()),Eb[a]=c),c}!function(){var a,b,c=z.createElement("div"),d="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";c.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=c.getElementsByTagName("a")[0],a.style.cssText="float:left;opacity:.5",l.opacity=/^0.5/.test(a.style.opacity),l.cssFloat=!!a.style.cssFloat,c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===c.style.backgroundClip,a=c=null,l.shrinkWrapBlocks=function(){var a,c,e,f;if(null==b){if(a=z.getElementsByTagName("body")[0],!a)return;f="border:0;width:0;height:0;position:absolute;top:0;left:-9999px",c=z.createElement("div"),e=z.createElement("div"),a.appendChild(c).appendChild(e),b=!1,typeof e.style.zoom!==L&&(e.style.cssText=d+";width:1px;padding:1px;zoom:1",e.innerHTML="<div></div>",e.firstChild.style.width="5px",b=3!==e.offsetWidth),a.removeChild(c),a=c=e=null}return b}}();var Hb=/^margin/,Ib=new RegExp("^("+T+")(?!px)[a-z%]+$","i"),Jb,Kb,Lb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Jb=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)},Kb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Jb(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),Ib.test(g)&&Hb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):z.documentElement.currentStyle&&(Jb=function(a){return a.currentStyle},Kb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Jb(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Ib.test(g)&&!Lb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Mb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h=z.createElement("div"),i="border:0;width:0;height:0;position:absolute;top:0;left:-9999px",j="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";h.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",b=h.getElementsByTagName("a")[0],b.style.cssText="float:left;opacity:.5",l.opacity=/^0.5/.test(b.style.opacity),l.cssFloat=!!b.style.cssFloat,h.style.backgroundClip="content-box",h.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===h.style.backgroundClip,b=h=null,n.extend(l,{reliableHiddenOffsets:function(){if(null!=c)return c;var a,b,d,e=z.createElement("div"),f=z.getElementsByTagName("body")[0];if(f)return e.setAttribute("className","t"),e.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=z.createElement("div"),a.style.cssText=i,f.appendChild(a).appendChild(e),e.innerHTML="<table><tr><td></td><td>t</td></tr></table>",b=e.getElementsByTagName("td"),b[0].style.cssText="padding:0;margin:0;border:0;display:none",d=0===b[0].offsetHeight,b[0].style.display="",b[1].style.display="none",c=d&&0===b[0].offsetHeight,f.removeChild(a),e=f=null,c},boxSizing:function(){return null==d&&k(),d},boxSizingReliable:function(){return null==e&&k(),e},pixelPosition:function(){return null==f&&k(),f},reliableMarginRight:function(){var b,c,d,e;if(null==g&&a.getComputedStyle){if(b=z.getElementsByTagName("body")[0],!b)return;c=z.createElement("div"),d=z.createElement("div"),c.style.cssText=i,b.appendChild(c).appendChild(d),e=d.appendChild(z.createElement("div")),e.style.cssText=d.style.cssText=j,e.style.marginRight=e.style.width="0",d.style.width="1px",g=!parseFloat((a.getComputedStyle(e,null)||{}).marginRight),b.removeChild(c)}return g}});function k(){var b,c,h=z.getElementsByTagName("body")[0];h&&(b=z.createElement("div"),c=z.createElement("div"),b.style.cssText=i,h.appendChild(b).appendChild(c),c.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;display:block;padding:1px;border:1px;width:4px;margin-top:1%;top:1%",n.swap(h,null!=h.style.zoom?{zoom:1}:{},function(){d=4===c.offsetWidth}),e=!0,f=!1,g=!0,a.getComputedStyle&&(f="1%"!==(a.getComputedStyle(c,null)||{}).top,e="4px"===(a.getComputedStyle(c,null)||{width:"4px"}).width),h.removeChild(b),c=h=null)}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Nb=/alpha\([^)]*\)/i,Ob=/opacity\s*=\s*([^)]*)/,Pb=/^(none|table(?!-c[ea]).+)/,Qb=new RegExp("^("+T+")(.*)$","i"),Rb=new RegExp("^([+-])=("+T+")","i"),Sb={position:"absolute",visibility:"hidden",display:"block"},Tb={letterSpacing:0,fontWeight:400},Ub=["Webkit","O","Moz","ms"];function Vb(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Ub.length;while(e--)if(b=Ub[e]+c,b in a)return b;return d}function Wb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=n._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&V(d)&&(f[g]=n._data(d,"olddisplay",Gb(d.nodeName)))):f[g]||(e=V(d),(c&&"none"!==c||!e)&&n._data(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Xb(a,b,c){var d=Qb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Yb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+U[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+U[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+U[f]+"Width",!0,e))):(g+=n.css(a,"padding"+U[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+U[f]+"Width",!0,e)));return g}function Zb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Jb(a),g=l.boxSizing()&&"border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Kb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Ib.test(e))return e;d=g&&(l.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Yb(a,b,c||(g?"border":"content"),d,f)+"px"}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Kb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":l.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;if(b=n.cssProps[h]||(n.cssProps[h]=Vb(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Rb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),l.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]="",i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Vb(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Kb(a,b,d)),"normal"===f&&b in Tb&&(f=Tb[b]),""===c||c?(e=parseFloat(f),c===!0||n.isNumeric(e)?e||0:f):f}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?0===a.offsetWidth&&Pb.test(n.css(a,"display"))?n.swap(a,Sb,function(){return Zb(a,b,d)}):Zb(a,b,d):void 0},set:function(a,c,d){var e=d&&Jb(a);return Xb(a,c,d?Yb(a,b,d,l.boxSizing()&&"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),l.opacity||(n.cssHooks.opacity={get:function(a,b){return Ob.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=n.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===n.trim(f.replace(Nb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Nb.test(f)?f.replace(Nb,e):f+" "+e)}}),n.cssHooks.marginRight=Mb(l.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},Kb,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+U[d]+b]=f[d]||f[d-2]||f[0];return e}},Hb.test(a)||(n.cssHooks[a+b].set=Xb)}),n.fn.extend({css:function(a,b){return W(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=Jb(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)
+},a,b,arguments.length>1)},show:function(){return Wb(this,!0)},hide:function(){return Wb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){V(this)?n(this).show():n(this).hide()})}});function $b(a,b,c,d,e){return new $b.prototype.init(a,b,c,d,e)}n.Tween=$b,$b.prototype={constructor:$b,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=$b.propHooks[this.prop];return a&&a.get?a.get(this):$b.propHooks._default.get(this)},run:function(a){var b,c=$b.propHooks[this.prop];return this.pos=b=this.options.duration?n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):$b.propHooks._default.set(this),this}},$b.prototype.init.prototype=$b.prototype,$b.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},$b.propHooks.scrollTop=$b.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=$b.prototype.init,n.fx.step={};var _b,ac,bc=/^(?:toggle|show|hide)$/,cc=new RegExp("^(?:([+-])=|)("+T+")([a-z%]*)$","i"),dc=/queueHooks$/,ec=[jc],fc={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=cc.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&cc.exec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function gc(){return setTimeout(function(){_b=void 0}),_b=n.now()}function hc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=U[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function ic(a,b,c){for(var d,e=(fc[b]||[]).concat(fc["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function jc(a,b,c){var d,e,f,g,h,i,j,k,m=this,o={},p=a.style,q=a.nodeType&&V(a),r=n._data(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,m.always(function(){m.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=n.css(a,"display"),k=Gb(a.nodeName),"none"===j&&(j=k),"inline"===j&&"none"===n.css(a,"float")&&(l.inlineBlockNeedsLayout&&"inline"!==k?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",l.shrinkWrapBlocks()||m.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],bc.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||n.style(a,d)}if(!n.isEmptyObject(o)){r?"hidden"in r&&(q=r.hidden):r=n._data(a,"fxshow",{}),f&&(r.hidden=!q),q?n(a).show():m.done(function(){n(a).hide()}),m.done(function(){var b;n._removeData(a,"fxshow");for(b in o)n.style(a,b,o[b])});for(d in o)g=ic(q?r[d]:0,d,m),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function kc(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function lc(a,b,c){var d,e,f=0,g=ec.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=_b||gc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:_b||gc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(kc(k,j.opts.specialEasing);g>f;f++)if(d=ec[f].call(j,a,k,j.opts))return d;return n.map(k,ic,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(lc,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],fc[c]=fc[c]||[],fc[c].unshift(b)},prefilter:function(a,b){b?ec.unshift(a):ec.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(V).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=lc(this,n.extend({},a),f);(e||n._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=n._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&dc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=n._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(hc(b,!0),a,d,e)}}),n.each({slideDown:hc("show"),slideUp:hc("hide"),slideToggle:hc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=n.timers,c=0;for(_b=n.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||n.fx.stop(),_b=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){ac||(ac=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(ac),ac=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e=z.createElement("div");e.setAttribute("className","t"),e.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=e.getElementsByTagName("a")[0],c=z.createElement("select"),d=c.appendChild(z.createElement("option")),b=e.getElementsByTagName("input")[0],a.style.cssText="top:1px",l.getSetAttribute="t"!==e.className,l.style=/top/.test(a.getAttribute("style")),l.hrefNormalized="/a"===a.getAttribute("href"),l.checkOn=!!b.value,l.optSelected=d.selected,l.enctype=!!z.createElement("form").enctype,c.disabled=!0,l.optDisabled=!d.disabled,b=z.createElement("input"),b.setAttribute("value",""),l.input=""===b.getAttribute("value"),b.value="t",b.setAttribute("type","radio"),l.radioValue="t"===b.value,a=b=c=d=e=null}();var mc=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(mc,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.text(a)}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(l.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)if(d=e[g],n.inArray(n.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},l.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var nc,oc,pc=n.expr.attrHandle,qc=/^(?:checked|selected)$/i,rc=l.getSetAttribute,sc=l.input;n.fn.extend({attr:function(a,b){return W(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===L?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?oc:nc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void n.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(F);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)?sc&&rc||!qc.test(c)?a[d]=!1:a[n.camelCase("default-"+c)]=a[d]=!1:n.attr(a,c,""),a.removeAttribute(rc?c:d)},attrHooks:{type:{set:function(a,b){if(!l.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),oc={set:function(a,b,c){return b===!1?n.removeAttr(a,c):sc&&rc||!qc.test(c)?a.setAttribute(!rc&&n.propFix[c]||c,c):a[n.camelCase("default-"+c)]=a[c]=!0,c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=pc[b]||n.find.attr;pc[b]=sc&&rc||!qc.test(b)?function(a,b,d){var e,f;return d||(f=pc[b],pc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,pc[b]=f),e}:function(a,b,c){return c?void 0:a[n.camelCase("default-"+b)]?b.toLowerCase():null}}),sc&&rc||(n.attrHooks.value={set:function(a,b,c){return n.nodeName(a,"input")?void(a.defaultValue=b):nc&&nc.set(a,b,c)}}),rc||(nc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},pc.id=pc.name=pc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},n.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:nc.set},n.attrHooks.contenteditable={set:function(a,b,c){nc.set(a,""===b?!1:b,c)}},n.each(["width","height"],function(a,b){n.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),l.style||(n.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var tc=/^(?:input|select|textarea|button|object)$/i,uc=/^(?:a|area)$/i;n.fn.extend({prop:function(a,b){return W(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return a=n.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),n.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=n.find.attr(a,"tabindex");return b?parseInt(b,10):tc.test(a.nodeName)||uc.test(a.nodeName)&&a.href?0:-1}}}}),l.hrefNormalized||n.each(["href","src"],function(a,b){n.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),l.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this}),l.enctype||(n.propFix.enctype="encoding");var vc=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(F)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(vc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(F)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(vc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(F)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===L||"boolean"===c)&&(this.className&&n._data(this,"__className__",this.className),this.className=this.className||a===!1?"":n._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(vc," ").indexOf(b)>=0)return!0;return!1}}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var wc=n.now(),xc=/\?/,yc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;n.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=n.trim(b+"");return e&&!n.trim(e.replace(yc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():n.error("Invalid JSON: "+b)},n.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||n.error("Invalid XML: "+b),c};var zc,Ac,Bc=/#.*$/,Cc=/([?&])_=[^&]*/,Dc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Ec=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Fc=/^(?:GET|HEAD)$/,Gc=/^\/\//,Hc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Ic={},Jc={},Kc="*/".concat("*");try{Ac=location.href}catch(Lc){Ac=z.createElement("a"),Ac.href="",Ac=Ac.href}zc=Hc.exec(Ac.toLowerCase())||[];function Mc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(F)||[];if(n.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nc(a,b,c,d){var e={},f=a===Jc;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Oc(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&n.extend(!0,a,c),a}function Pc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Qc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ac,type:"GET",isLocal:Ec.test(zc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Oc(Oc(a,n.ajaxSettings),b):Oc(n.ajaxSettings,a)},ajaxPrefilter:Mc(Ic),ajaxTransport:Mc(Jc),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Dc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||Ac)+"").replace(Bc,"").replace(Gc,zc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(F)||[""],null==k.crossDomain&&(c=Hc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===zc[1]&&c[2]===zc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(zc[3]||("http:"===zc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),Nc(Ic,k,b,v),2===t)return v;h=k.global,h&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Fc.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(xc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Cc.test(e)?e.replace(Cc,"$1_="+wc++):e+(xc.test(e)?"&":"?")+"_="+wc++)),k.ifModified&&(n.lastModified[e]&&v.setRequestHeader("If-Modified-Since",n.lastModified[e]),n.etag[e]&&v.setRequestHeader("If-None-Match",n.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Kc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Nc(Jc,k,b,v)){v.readyState=1,h&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Pc(k,v,c)),u=Qc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(n.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){if(n.isFunction(a))return this.each(function(b){n(this).wrapAll(a.call(this,b))});if(this[0]){var b=n(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!l.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||n.css(a,"display"))},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var Rc=/%20/g,Sc=/\[\]$/,Tc=/\r?\n/g,Uc=/^(?:submit|button|image|reset|file)$/i,Vc=/^(?:input|select|textarea|keygen)/i;function Wc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||Sc.test(a)?d(a,e):Wc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Wc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Wc(c,a[c],b,e);return d.join("&").replace(Rc,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&Vc.test(this.nodeName)&&!Uc.test(a)&&(this.checked||!X.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(Tc,"\r\n")}}):{name:b.name,value:c.replace(Tc,"\r\n")}}).get()}}),n.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&$c()||_c()}:$c;var Xc=0,Yc={},Zc=n.ajaxSettings.xhr();a.ActiveXObject&&n(a).on("unload",function(){for(var a in Yc)Yc[a](void 0,!0)}),l.cors=!!Zc&&"withCredentials"in Zc,Zc=l.ajax=!!Zc,Zc&&n.ajaxTransport(function(a){if(!a.crossDomain||l.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Xc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Yc[g],b=void 0,f.onreadystatechange=n.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Yc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function $c(){try{return new a.XMLHttpRequest}catch(b){}}function _c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=z.head||n("head")[0]||z.documentElement;return{send:function(d,e){b=z.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var ad=[],bd=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=ad.pop()||n.expando+"_"+wc++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(bd.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&bd.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(bd,"$1"+e):b.jsonp!==!1&&(b.url+=(xc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,ad.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||z;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var cd=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&cd)return cd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=a.slice(h,a.length),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&n.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var dd=a.document.documentElement;function ed(a){return n.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&n.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,n.contains(b,e)?(typeof e.getBoundingClientRect!==L&&(d=e.getBoundingClientRect()),c=ed(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===n.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(c=a.offset()),c.top+=n.css(a[0],"borderTopWidth",!0),c.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-n.css(d,"marginTop",!0),left:b.left-c.left-n.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||dd;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||dd})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);n.fn[a]=function(d){return W(this,function(a,d,e){var f=ed(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?n(f).scrollLeft():e,c?e:n(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Mb(l.pixelPosition,function(a,c){return c?(c=Kb(a,b),Ib.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return W(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var fd=a.jQuery,gd=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=gd),b&&a.jQuery===n&&(a.jQuery=fd),n},typeof b===L&&(a.jQuery=a.$=n),n});
diff --git a/docs/js/jquery-ui-1.10.4.custom.min.js b/docs/js/jquery-ui-1.10.4.custom.min.js
new file mode 100644
index 0000000..fe3e05c
--- /dev/null
+++ b/docs/js/jquery-ui-1.10.4.custom.min.js
@@ -0,0 +1,6 @@
+/*! jQuery UI - v1.10.4 - 2014-03-25
+* http://jqueryui.com
+* Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.accordion.js
+* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */
+
+(function(e,t){function i(t,i){var s,a,o,r=t.nodeName.toLowerCase();return"area"===r?(s=t.parentNode,a=s.name,t.href&&a&&"map"===s.nodeName.toLowerCase()?(o=e("img[usemap=#"+a+"]")[0],!!o&&n(o)):!1):(/input|select|textarea|button|object/.test(r)?!t.disabled:"a"===r?t.href||i:i)&&n(t)}function n(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}var s=0,a=/^ui-id-\d+$/;e.ui=e.ui||{},e.extend(e.ui,{version:"1.10.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({focus:function(t){return function(i,n){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),n&&n.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),scrollParent:function(){var t;return t=e.ui.ie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(e.css(this,"position"))&&/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0),/fixed/.test(this.css("position"))||!t.length?e(document):t},zIndex:function(i){if(i!==t)return this.css("zIndex",i);if(this.length)for(var n,s,a=e(this[0]);a.length&&a[0]!==document;){if(n=a.css("position"),("absolute"===n||"relative"===n||"fixed"===n)&&(s=parseInt(a.css("zIndex"),10),!isNaN(s)&&0!==s))return s;a=a.parent()}return 0},uniqueId:function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++s)})},removeUniqueId:function(){return this.each(function(){a.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,n){return!!e.data(t,n[3])},focusable:function(t){return i(t,!isNaN(e.attr(t,"tabindex")))},tabbable:function(t){var n=e.attr(t,"tabindex"),s=isNaN(n);return(s||n>=0)&&i(t,!s)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(i,n){function s(t,i,n,s){return e.each(a,function(){i-=parseFloat(e.css(t,"padding"+this))||0,n&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),s&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var a="Width"===n?["Left","Right"]:["Top","Bottom"],o=n.toLowerCase(),r={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+n]=function(i){return i===t?r["inner"+n].call(this):this.each(function(){e(this).css(o,s(this,i)+"px")})},e.fn["outer"+n]=function(t,i){return"number"!=typeof t?r["outer"+n].call(this,t):this.each(function(){e(this).css(o,s(this,t,!0,i)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.support.selectstart="onselectstart"in document.createElement("div"),e.fn.extend({disableSelection:function(){return this.bind((e.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),e.extend(e.ui,{plugin:{add:function(t,i,n){var s,a=e.ui[t].prototype;for(s in n)a.plugins[s]=a.plugins[s]||[],a.plugins[s].push([i,n[s]])},call:function(e,t,i){var n,s=e.plugins[t];if(s&&e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType)for(n=0;s.length>n;n++)e.options[s[n][0]]&&s[n][1].apply(e.element,i)}},hasScroll:function(t,i){if("hidden"===e(t).css("overflow"))return!1;var n=i&&"left"===i?"scrollLeft":"scrollTop",s=!1;return t[n]>0?!0:(t[n]=1,s=t[n]>0,t[n]=0,s)}})})(jQuery);(function(t,e){var i=0,s=Array.prototype.slice,n=t.cleanData;t.cleanData=function(e){for(var i,s=0;null!=(i=e[s]);s++)try{t(i).triggerHandler("remove")}catch(o){}n(e)},t.widget=function(i,s,n){var o,a,r,h,l={},c=i.split(".")[0];i=i.split(".")[1],o=c+"-"+i,n||(n=s,s=t.Widget),t.expr[":"][o.toLowerCase()]=function(e){return!!t.data(e,o)},t[c]=t[c]||{},a=t[c][i],r=t[c][i]=function(t,i){return this._createWidget?(arguments.length&&this._createWidget(t,i),e):new r(t,i)},t.extend(r,a,{version:n.version,_proto:t.extend({},n),_childConstructors:[]}),h=new s,h.options=t.widget.extend({},h.options),t.each(n,function(i,n){return t.isFunction(n)?(l[i]=function(){var t=function(){return s.prototype[i].apply(this,arguments)},e=function(t){return s.prototype[i].apply(this,t)};return function(){var i,s=this._super,o=this._superApply;return this._super=t,this._superApply=e,i=n.apply(this,arguments),this._super=s,this._superApply=o,i}}(),e):(l[i]=n,e)}),r.prototype=t.widget.extend(h,{widgetEventPrefix:a?h.widgetEventPrefix||i:i},l,{constructor:r,namespace:c,widgetName:i,widgetFullName:o}),a?(t.each(a._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,r,i._proto)}),delete a._childConstructors):s._childConstructors.push(r),t.widget.bridge(i,r)},t.widget.extend=function(i){for(var n,o,a=s.call(arguments,1),r=0,h=a.length;h>r;r++)for(n in a[r])o=a[r][n],a[r].hasOwnProperty(n)&&o!==e&&(i[n]=t.isPlainObject(o)?t.isPlainObject(i[n])?t.widget.extend({},i[n],o):t.widget.extend({},o):o);return i},t.widget.bridge=function(i,n){var o=n.prototype.widgetFullName||i;t.fn[i]=function(a){var r="string"==typeof a,h=s.call(arguments,1),l=this;return a=!r&&h.length?t.widget.extend.apply(null,[a].concat(h)):a,r?this.each(function(){var s,n=t.data(this,o);return n?t.isFunction(n[a])&&"_"!==a.charAt(0)?(s=n[a].apply(n,h),s!==n&&s!==e?(l=s&&s.jquery?l.pushStack(s.get()):s,!1):e):t.error("no such method '"+a+"' for "+i+" widget instance"):t.error("cannot call methods on "+i+" prior to initialization; "+"attempted to call method '"+a+"'")}):this.each(function(){var e=t.data(this,o);e?e.option(a||{})._init():t.data(this,o,new n(a,this))}),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this.bindings=t(),this.hoverable=t(),this.focusable=t(),s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:t.noop,_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(t.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:t.noop,widget:function(){return this.element},option:function(i,s){var n,o,a,r=i;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof i)if(r={},n=i.split("."),i=n.shift(),n.length){for(o=r[i]=t.widget.extend({},this.options[i]),a=0;n.length-1>a;a++)o[n[a]]=o[n[a]]||{},o=o[n[a]];if(i=n.pop(),1===arguments.length)return o[i]===e?null:o[i];o[i]=s}else{if(1===arguments.length)return this.options[i]===e?null:this.options[i];r[i]=s}return this._setOptions(r),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return this.options[t]=e,"disabled"===t&&(this.widget().toggleClass(this.widgetFullName+"-disabled ui-state-disabled",!!e).attr("aria-disabled",e),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_on:function(i,s,n){var o,a=this;"boolean"!=typeof i&&(n=s,s=i,i=!1),n?(s=o=t(s),this.bindings=this.bindings.add(s)):(n=s,s=this.element,o=this.widget()),t.each(n,function(n,r){function h(){return i||a.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof r?a[r]:r).apply(a,arguments):e}"string"!=typeof r&&(h.guid=r.guid=r.guid||h.guid||t.guid++);var l=n.match(/^(\w+)\s*(.*)$/),c=l[1]+a.eventNamespace,u=l[2];u?o.delegate(u,c,h):s.bind(c,h)})},_off:function(t,e){e=(e||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(e).undelegate(e)},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){t(e.currentTarget).addClass("ui-state-hover")},mouseleave:function(e){t(e.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){t(e.currentTarget).addClass("ui-state-focus")},focusout:function(e){t(e.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}})})(jQuery);(function(e){var t=0,i={},a={};i.height=i.paddingTop=i.paddingBottom=i.borderTopWidth=i.borderBottomWidth="hide",a.height=a.paddingTop=a.paddingBottom=a.borderTopWidth=a.borderBottomWidth="show",e.widget("ui.accordion",{version:"1.10.4",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},_create:function(){var t=this.options;this.prevShow=this.prevHide=e(),this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist"),t.collapsible||t.active!==!1&&null!=t.active||(t.active=0),this._processPanels(),0>t.active&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():e(),content:this.active.length?this.active.next():e()}},_createIcons:function(){var t=this.options.icons;t&&(e("<span>").addClass("ui-accordion-header-icon ui-icon "+t.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),this._destroyIcons(),e=this.headers.next().css("display","").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),"content"!==this.options.heightStyle&&e.css("height","")},_setOption:function(e,t){return"active"===e?(this._activate(t),undefined):("event"===e&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),"collapsible"!==e||t||this.options.active!==!1||this._activate(0),"icons"===e&&(this._destroyIcons(),t&&this._createIcons()),"disabled"===e&&this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!t),undefined)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var i=e.ui.keyCode,a=this.headers.length,s=this.headers.index(t.target),n=!1;switch(t.keyCode){case i.RIGHT:case i.DOWN:n=this.headers[(s+1)%a];break;case i.LEFT:case i.UP:n=this.headers[(s-1+a)%a];break;case i.SPACE:case i.ENTER:this._eventHandler(t);break;case i.HOME:n=this.headers[0];break;case i.END:n=this.headers[a-1]}n&&(e(t.target).attr("tabIndex",-1),e(n).attr("tabIndex",0),n.focus(),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().focus()},refresh:function(){var t=this.options;this._processPanels(),t.active===!1&&t.collapsible===!0||!this.headers.length?(t.active=!1,this.active=e()):t.active===!1?this._activate(0):this.active.length&&!e.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=e()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all"),this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide()},_refresh:function(){var i,a=this.options,s=a.heightStyle,n=this.element.parent(),r=this.accordionId="ui-accordion-"+(this.element.attr("id")||++t);this.active=this._findActive(a.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(t){var i=e(this),a=i.attr("id"),s=i.next(),n=s.attr("id");a||(a=r+"-header-"+t,i.attr("id",a)),n||(n=r+"-panel-"+t,s.attr("id",n)),i.attr("aria-controls",n),s.attr("aria-labelledby",a)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(a.event),"fill"===s?(i=n.height(),this.element.siblings(":visible").each(function(){var t=e(this),a=t.css("position");"absolute"!==a&&"fixed"!==a&&(i-=t.outerHeight(!0))}),this.headers.each(function(){i-=e(this).outerHeight(!0)}),this.headers.next().each(function(){e(this).height(Math.max(0,i-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===s&&(i=0,this.headers.next().each(function(){i=Math.max(i,e(this).css("height","").height())}).height(i))},_activate:function(t){var i=this._findActive(t)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:e.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):e()},_setupEvents:function(t){var i={keydown:"_keydown"};t&&e.each(t.split(" "),function(e,t){i[t]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var i=this.options,a=this.active,s=e(t.currentTarget),n=s[0]===a[0],r=n&&i.collapsible,o=r?e():s.next(),h=a.next(),d={oldHeader:a,oldPanel:h,newHeader:r?e():s,newPanel:o};t.preventDefault(),n&&!i.collapsible||this._trigger("beforeActivate",t,d)===!1||(i.active=r?!1:this.headers.index(s),this.active=n?e():s,this._toggle(d),a.removeClass("ui-accordion-header-active ui-state-active"),i.icons&&a.children(".ui-accordion-header-icon").removeClass(i.icons.activeHeader).addClass(i.icons.header),n||(s.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),i.icons&&s.children(".ui-accordion-header-icon").removeClass(i.icons.header).addClass(i.icons.activeHeader),s.next().addClass("ui-accordion-content-active")))},_toggle:function(t){var i=t.newPanel,a=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=a,this.options.animate?this._animate(i,a,t):(a.hide(),i.show(),this._toggleComplete(t)),a.attr({"aria-hidden":"true"}),a.prev().attr("aria-selected","false"),i.length&&a.length?a.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===e(this).attr("tabIndex")}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true",tabIndex:0,"aria-expanded":"true"})},_animate:function(e,t,s){var n,r,o,h=this,d=0,c=e.length&&(!t.length||e.index()<t.index()),l=this.options.animate||{},u=c&&l.down||l,v=function(){h._toggleComplete(s)};return"number"==typeof u&&(o=u),"string"==typeof u&&(r=u),r=r||u.easing||l.easing,o=o||u.duration||l.duration,t.length?e.length?(n=e.show().outerHeight(),t.animate(i,{duration:o,easing:r,step:function(e,t){t.now=Math.round(e)}}),e.hide().animate(a,{duration:o,easing:r,complete:v,step:function(e,i){i.now=Math.round(e),"height"!==i.prop?d+=i.now:"content"!==h.options.heightStyle&&(i.now=Math.round(n-t.outerHeight()-d),d=0)}}),undefined):t.animate(i,o,r,v):e.animate(a,o,r,v)},_toggleComplete:function(e){var t=e.oldPanel;t.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all"),t.length&&(t.parent()[0].className=t.parent()[0].className),this._trigger("activate",null,e)}})})(jQuery);
\ No newline at end of file
diff --git a/docs/js/jquery.colorbox.js b/docs/js/jquery.colorbox.js
new file mode 100644
index 0000000..255a3aa
--- /dev/null
+++ b/docs/js/jquery.colorbox.js
@@ -0,0 +1,1085 @@
+/*!
+	Colorbox v1.5.5 - 2014-03-13
+	jQuery lightbox and modal window plugin
+	(c) 2014 Jack Moore - http://www.jacklmoore.com/colorbox
+	license: http://www.opensource.org/licenses/mit-license.php
+*/
+(function ($, document, window) {
+	var
+	// Default settings object.
+	// See http://jacklmoore.com/colorbox for details.
+	defaults = {
+		// data sources
+		html: false,
+		photo: false,
+		iframe: false,
+		inline: false,
+
+		// behavior and appearance
+		transition: "elastic",
+		speed: 300,
+		fadeOut: 300,
+		width: false,
+		initialWidth: "600",
+		innerWidth: false,
+		maxWidth: false,
+		height: false,
+		initialHeight: "450",
+		innerHeight: false,
+		maxHeight: false,
+		scalePhotos: true,
+		scrolling: true,
+		opacity: 0.9,
+		preloading: true,
+		className: false,
+		overlayClose: true,
+		escKey: true,
+		arrowKey: true,
+		top: false,
+		bottom: false,
+		left: false,
+		right: false,
+		fixed: false,
+		data: undefined,
+		closeButton: true,
+		fastIframe: true,
+		open: false,
+		reposition: true,
+		loop: true,
+		slideshow: false,
+		slideshowAuto: true,
+		slideshowSpeed: 2500,
+		slideshowStart: "start slideshow",
+		slideshowStop: "stop slideshow",
+		photoRegex: /\.(gif|png|jp(e|g|eg)|bmp|ico|webp|jxr|svg)((#|\?).*)?$/i,
+
+		// alternate image paths for high-res displays
+		retinaImage: false,
+		retinaUrl: false,
+		retinaSuffix: '@2x.$1',
+
+		// internationalization
+		current: "image {current} of {total}",
+		previous: "previous",
+		next: "next",
+		close: "close",
+		xhrError: "This content failed to load.",
+		imgError: "This image failed to load.",
+
+		// accessbility
+		returnFocus: true,
+		trapFocus: true,
+
+		// callbacks
+		onOpen: false,
+		onLoad: false,
+		onComplete: false,
+		onCleanup: false,
+		onClosed: false,
+
+		rel: function() {
+			return this.rel;
+		},
+		href: function() {
+			// Using .attr() so that the href can also be used to provide a selector for inline content
+			return $(this).attr('href');
+		},
+		title: function() {
+			return this.title;
+		}
+	},
+
+
+	// Abstracting the HTML and event identifiers for easy rebranding
+	colorbox = 'colorbox',
+	prefix = 'cbox',
+	boxElement = prefix + 'Element',
+	
+	// Events
+	event_open = prefix + '_open',
+	event_load = prefix + '_load',
+	event_complete = prefix + '_complete',
+	event_cleanup = prefix + '_cleanup',
+	event_closed = prefix + '_closed',
+	event_purge = prefix + '_purge',
+
+	// Cached jQuery Object Variables
+	$overlay,
+	$box,
+	$wrap,
+	$content,
+	$topBorder,
+	$leftBorder,
+	$rightBorder,
+	$bottomBorder,
+	$related,
+	$window,
+	$loaded,
+	$loadingBay,
+	$loadingOverlay,
+	$title,
+	$current,
+	$slideshow,
+	$next,
+	$prev,
+	$close,
+	$groupControls,
+	$events = $('<a/>'), // $({}) would be prefered, but there is an issue with jQuery 1.4.2
+	
+	// Variables for cached values or use across multiple functions
+	settings,
+	interfaceHeight,
+	interfaceWidth,
+	loadedHeight,
+	loadedWidth,
+	index,
+	photo,
+	open,
+	active,
+	closing,
+	loadingTimer,
+	publicMethod,
+	div = "div",
+	requests = 0,
+	previousCSS = {},
+	init;
+
+	// ****************
+	// HELPER FUNCTIONS
+	// ****************
+	
+	// Convenience function for creating new jQuery objects
+	function $tag(tag, id, css) {
+		var element = document.createElement(tag);
+
+		if (id) {
+			element.id = prefix + id;
+		}
+
+		if (css) {
+			element.style.cssText = css;
+		}
+
+		return $(element);
+	}
+	
+	// Get the window height using innerHeight when available to avoid an issue with iOS
+	// http://bugs.jquery.com/ticket/6724
+	function winheight() {
+		return window.innerHeight ? window.innerHeight : $(window).height();
+	}
+
+	function Settings(element, options) {
+		if (options !== Object(options)) {
+			options = {};
+		}
+
+		this.cache = {};
+		this.el = element;
+
+		this.value = function(key) {
+			var dataAttr;
+
+			if (this.cache[key] === undefined) {
+				dataAttr = $(this.el).attr('data-cbox-'+key);
+
+				if (dataAttr !== undefined) {
+					this.cache[key] = dataAttr;
+				} else if (options[key] !== undefined) {
+					this.cache[key] = options[key];
+				} else if (defaults[key] !== undefined) {
+					this.cache[key] = defaults[key];
+				}
+			}
+
+			return this.cache[key];
+		};
+
+		this.get = function(key) {
+			var value = this.value(key);
+			return $.isFunction(value) ? value.call(this.el, this) : value;
+		};
+	}
+
+	// Determine the next and previous members in a group.
+	function getIndex(increment) {
+		var
+		max = $related.length,
+		newIndex = (index + increment) % max;
+		
+		return (newIndex < 0) ? max + newIndex : newIndex;
+	}
+
+	// Convert '%' and 'px' values to integers
+	function setSize(size, dimension) {
+		return Math.round((/%/.test(size) ? ((dimension === 'x' ? $window.width() : winheight()) / 100) : 1) * parseInt(size, 10));
+	}
+	
+	// Checks an href to see if it is a photo.
+	// There is a force photo option (photo: true) for hrefs that cannot be matched by the regex.
+	function isImage(settings, url) {
+		return settings.get('photo') || settings.get('photoRegex').test(url);
+	}
+
+	function retinaUrl(settings, url) {
+		return settings.get('retinaUrl') && window.devicePixelRatio > 1 ? url.replace(settings.get('photoRegex'), settings.get('retinaSuffix')) : url;
+	}
+
+	function trapFocus(e) {
+		if ('contains' in $box[0] && !$box[0].contains(e.target) && e.target !== $overlay[0]) {
+			e.stopPropagation();
+			$box.focus();
+		}
+	}
+
+	function setClass(str) {
+		if (setClass.str !== str) {
+			$box.add($overlay).removeClass(setClass.str).addClass(str);
+			setClass.str = str;
+		}
+	}
+
+	function getRelated() {
+		index = 0;
+		
+		if (rel && rel !== 'nofollow') {
+			$related = $('.' + boxElement).filter(function () {
+				var options = $.data(this, colorbox);
+				var settings = new Settings(this, options);
+				return (settings.get('rel') === rel);
+			});
+			index = $related.index(settings.el);
+			
+			// Check direct calls to Colorbox.
+			if (index === -1) {
+				$related = $related.add(settings.el);
+				index = $related.length - 1;
+			}
+		} else {
+			$related = $(settings.el);
+		}
+	}
+
+	function trigger(event) {
+		// for external use
+		$(document).trigger(event);
+		// for internal use
+		$events.triggerHandler(event);
+	}
+
+	var slideshow = (function(){
+		var active,
+			className = prefix + "Slideshow_",
+			click = "click." + prefix,
+			timeOut;
+
+		function clear () {
+			clearTimeout(timeOut);
+		}
+
+		function set() {
+			if (settings.get('loop') || $related[index + 1]) {
+				clear();
+				timeOut = setTimeout(publicMethod.next, settings.get('slideshowSpeed'));
+			}
+		}
+
+		function start() {
+			$slideshow
+				.html(settings.get('slideshowStop'))
+				.unbind(click)
+				.one(click, stop);
+
+			$events
+				.bind(event_complete, set)
+				.bind(event_load, clear);
+
+			$box.removeClass(className + "off").addClass(className + "on");
+		}
+
+		function stop() {
+			clear();
+			
+			$events
+				.unbind(event_complete, set)
+				.unbind(event_load, clear);
+
+			$slideshow
+				.html(settings.get('slideshowStart'))
+				.unbind(click)
+				.one(click, function () {
+					publicMethod.next();
+					start();
+				});
+
+			$box.removeClass(className + "on").addClass(className + "off");
+		}
+
+		function reset() {
+			active = false;
+			$slideshow.hide();
+			clear();
+			$events
+				.unbind(event_complete, set)
+				.unbind(event_load, clear);
+			$box.removeClass(className + "off " + className + "on");
+		}
+
+		return function(){
+			if (active) {
+				if (!settings.get('slideshow')) {
+					$events.unbind(event_cleanup, reset);
+					reset();
+				}
+			} else {
+				if (settings.get('slideshow') && $related[1]) {
+					active = true;
+					$events.one(event_cleanup, reset);
+					if (settings.get('slideshowAuto')) {
+						start();
+					} else {
+						stop();
+					}
+					$slideshow.show();
+				}
+			}
+		};
+
+	}());
+
+
+	function launch(element) {
+		var options;
+
+		if (!closing) {
+
+			options = $(element).data('colorbox');
+
+			settings = new Settings(element, options);
+
+			rel = settings.get('rel');
+			
+			getRelated();
+
+			if (!open) {
+				open = active = true; // Prevents the page-change action from queuing up if the visitor holds down the left or right keys.
+
+				setClass(settings.get('className'));
+				
+				// Show colorbox so the sizes can be calculated in older versions of jQuery
+				$box.css({visibility:'hidden', display:'block', opacity:''});
+				
+				$loaded = $tag(div, 'LoadedContent', 'width:0; height:0; overflow:hidden; visibility:hidden');
+				$content.css({width:'', height:''}).append($loaded);
+
+				// Cache values needed for size calculations
+				interfaceHeight = $topBorder.height() + $bottomBorder.height() + $content.outerHeight(true) - $content.height();
+				interfaceWidth = $leftBorder.width() + $rightBorder.width() + $content.outerWidth(true) - $content.width();
+				loadedHeight = $loaded.outerHeight(true);
+				loadedWidth = $loaded.outerWidth(true);
+
+				// Opens inital empty Colorbox prior to content being loaded.
+				settings.w = setSize(settings.get('initialWidth'), 'x');
+				settings.h = setSize(settings.get('initialHeight'), 'y');
+				$loaded.css({width:'', height:settings.h});
+				publicMethod.position();
+
+				trigger(event_open);
+				settings.get('onOpen');
+
+				$groupControls.add($title).hide();
+
+				$box.focus();
+				
+				if (settings.get('trapFocus')) {
+					// Confine focus to the modal
+					// Uses event capturing that is not supported in IE8-
+					if (document.addEventListener) {
+
+						document.addEventListener('focus', trapFocus, true);
+						
+						$events.one(event_closed, function () {
+							document.removeEventListener('focus', trapFocus, true);
+						});
+					}
+				}
+
+				// Return focus on closing
+				if (settings.get('returnFocus')) {
+					$events.one(event_closed, function () {
+						$(settings.el).focus();
+					});
+				}
+			}
+
+			$overlay.css({
+				opacity: parseFloat(settings.get('opacity')) || '',
+				cursor: settings.get('overlayClose') ? 'pointer' : '',
+				visibility: 'visible'
+			}).show();
+			
+			if (settings.get('closeButton')) {
+				$close.html(settings.get('close')).appendTo($content);
+			} else {
+				$close.appendTo('<div/>'); // replace with .detach() when dropping jQuery < 1.4
+			}
+
+			load();
+		}
+	}
+
+	// Colorbox's markup needs to be added to the DOM prior to being called
+	// so that the browser will go ahead and load the CSS background images.
+	function appendHTML() {
+		if (!$box && document.body) {
+			init = false;
+			$window = $(window);
+			$box = $tag(div).attr({
+				id: colorbox,
+				'class': $.support.opacity === false ? prefix + 'IE' : '', // class for optional IE8 & lower targeted CSS.
+				role: 'dialog',
+				tabindex: '-1'
+			}).hide();
+			$overlay = $tag(div, "Overlay").hide();
+			$loadingOverlay = $([$tag(div, "LoadingOverlay")[0],$tag(div, "LoadingGraphic")[0]]);
+			$wrap = $tag(div, "Wrapper");
+			$content = $tag(div, "Content").append(
+				$title = $tag(div, "Title"),
+				$current = $tag(div, "Current"),
+				$prev = $('<button type="button"/>').attr({id:prefix+'Previous'}),
+				$next = $('<button type="button"/>').attr({id:prefix+'Next'}),
+				$slideshow = $tag('button', "Slideshow"),
+				$loadingOverlay
+			);
+
+			$close = $('<button type="button"/>').attr({id:prefix+'Close'});
+			
+			$wrap.append( // The 3x3 Grid that makes up Colorbox
+				$tag(div).append(
+					$tag(div, "TopLeft"),
+					$topBorder = $tag(div, "TopCenter"),
+					$tag(div, "TopRight")
+				),
+				$tag(div, false, 'clear:left').append(
+					$leftBorder = $tag(div, "MiddleLeft"),
+					$content,
+					$rightBorder = $tag(div, "MiddleRight")
+				),
+				$tag(div, false, 'clear:left').append(
+					$tag(div, "BottomLeft"),
+					$bottomBorder = $tag(div, "BottomCenter"),
+					$tag(div, "BottomRight")
+				)
+			).find('div div').css({'float': 'left'});
+			
+			$loadingBay = $tag(div, false, 'position:absolute; width:9999px; visibility:hidden; display:none; max-width:none;');
+			
+			$groupControls = $next.add($prev).add($current).add($slideshow);
+
+			$(document.body).append($overlay, $box.append($wrap, $loadingBay));
+		}
+	}
+
+	// Add Colorbox's event bindings
+	function addBindings() {
+		function clickHandler(e) {
+			// ignore non-left-mouse-clicks and clicks modified with ctrl / command, shift, or alt.
+			// See: http://jacklmoore.com/notes/click-events/
+			if (!(e.which > 1 || e.shiftKey || e.altKey || e.metaKey || e.ctrlKey)) {
+				e.preventDefault();
+				launch(this);
+			}
+		}
+
+		if ($box) {
+			if (!init) {
+				init = true;
+
+				// Anonymous functions here keep the public method from being cached, thereby allowing them to be redefined on the fly.
+				$next.click(function () {
+					publicMethod.next();
+				});
+				$prev.click(function () {
+					publicMethod.prev();
+				});
+				$close.click(function () {
+					publicMethod.close();
+				});
+				$overlay.click(function () {
+					if (settings.get('overlayClose')) {
+						publicMethod.close();
+					}
+				});
+				
+				// Key Bindings
+				$(document).bind('keydown.' + prefix, function (e) {
+					var key = e.keyCode;
+					if (open && settings.get('escKey') && key === 27) {
+						e.preventDefault();
+						publicMethod.close();
+					}
+					if (open && settings.get('arrowKey') && $related[1] && !e.altKey) {
+						if (key === 37) {
+							e.preventDefault();
+							$prev.click();
+						} else if (key === 39) {
+							e.preventDefault();
+							$next.click();
+						}
+					}
+				});
+
+				if ($.isFunction($.fn.on)) {
+					// For jQuery 1.7+
+					$(document).on('click.'+prefix, '.'+boxElement, clickHandler);
+				} else {
+					// For jQuery 1.3.x -> 1.6.x
+					// This code is never reached in jQuery 1.9, so do not contact me about 'live' being removed.
+					// This is not here for jQuery 1.9, it's here for legacy users.
+					$('.'+boxElement).live('click.'+prefix, clickHandler);
+				}
+			}
+			return true;
+		}
+		return false;
+	}
+
+	// Don't do anything if Colorbox already exists.
+	if ($.colorbox) {
+		return;
+	}
+
+	// Append the HTML when the DOM loads
+	$(appendHTML);
+
+
+	// ****************
+	// PUBLIC FUNCTIONS
+	// Usage format: $.colorbox.close();
+	// Usage from within an iframe: parent.jQuery.colorbox.close();
+	// ****************
+	
+	publicMethod = $.fn[colorbox] = $[colorbox] = function (options, callback) {
+		var settings;
+		var $obj = this;
+
+		options = options || {};
+
+		if ($.isFunction($obj)) { // assume a call to $.colorbox
+			$obj = $('<a/>');
+			options.open = true;
+		} else if (!$obj[0]) { // colorbox being applied to empty collection
+			return $obj;
+		}
+
+
+		if (!$obj[0]) { // colorbox being applied to empty collection
+			return $obj;
+		}
+		
+		appendHTML();
+
+		if (addBindings()) {
+
+			if (callback) {
+				options.onComplete = callback;
+			}
+
+			$obj.each(function () {
+				var old = $.data(this, colorbox) || {};
+				$.data(this, colorbox, $.extend(old, options));
+			}).addClass(boxElement);
+
+			settings = new Settings($obj[0], options);
+			
+			if (settings.get('open')) {
+				launch($obj[0]);
+			}
+		}
+		
+		return $obj;
+	};
+
+	publicMethod.position = function (speed, loadedCallback) {
+		var
+		css,
+		top = 0,
+		left = 0,
+		offset = $box.offset(),
+		scrollTop,
+		scrollLeft;
+		
+		$window.unbind('resize.' + prefix);
+
+		// remove the modal so that it doesn't influence the document width/height
+		$box.css({top: -9e4, left: -9e4});
+
+		scrollTop = $window.scrollTop();
+		scrollLeft = $window.scrollLeft();
+
+		if (settings.get('fixed')) {
+			offset.top -= scrollTop;
+			offset.left -= scrollLeft;
+			$box.css({position: 'fixed'});
+		} else {
+			top = scrollTop;
+			left = scrollLeft;
+			$box.css({position: 'absolute'});
+		}
+
+		// keeps the top and left positions within the browser's viewport.
+		if (settings.get('right') !== false) {
+			left += Math.max($window.width() - settings.w - loadedWidth - interfaceWidth - setSize(settings.get('right'), 'x'), 0);
+		} else if (settings.get('left') !== false) {
+			left += setSize(settings.get('left'), 'x');
+		} else {
+			left += Math.round(Math.max($window.width() - settings.w - loadedWidth - interfaceWidth, 0) / 2);
+		}
+		
+		if (settings.get('bottom') !== false) {
+			top += Math.max(winheight() - settings.h - loadedHeight - interfaceHeight - setSize(settings.get('bottom'), 'y'), 0);
+		} else if (settings.get('top') !== false) {
+			top += setSize(settings.get('top'), 'y');
+		} else {
+			top += Math.round(Math.max(winheight() - settings.h - loadedHeight - interfaceHeight, 0) / 2);
+		}
+
+		$box.css({top: offset.top, left: offset.left, visibility:'visible'});
+		
+		// this gives the wrapper plenty of breathing room so it's floated contents can move around smoothly,
+		// but it has to be shrank down around the size of div#colorbox when it's done.  If not,
+		// it can invoke an obscure IE bug when using iframes.
+		$wrap[0].style.width = $wrap[0].style.height = "9999px";
+		
+		function modalDimensions() {
+			$topBorder[0].style.width = $bottomBorder[0].style.width = $content[0].style.width = (parseInt($box[0].style.width,10) - interfaceWidth)+'px';
+			$content[0].style.height = $leftBorder[0].style.height = $rightBorder[0].style.height = (parseInt($box[0].style.height,10) - interfaceHeight)+'px';
+		}
+
+		css = {width: settings.w + loadedWidth + interfaceWidth, height: settings.h + loadedHeight + interfaceHeight, top: top, left: left};
+
+		// setting the speed to 0 if the content hasn't changed size or position
+		if (speed) {
+			var tempSpeed = 0;
+			$.each(css, function(i){
+				if (css[i] !== previousCSS[i]) {
+					tempSpeed = speed;
+					return;
+				}
+			});
+			speed = tempSpeed;
+		}
+
+		previousCSS = css;
+
+		if (!speed) {
+			$box.css(css);
+		}
+
+		$box.dequeue().animate(css, {
+			duration: speed || 0,
+			complete: function () {
+				modalDimensions();
+				
+				active = false;
+				
+				// shrink the wrapper down to exactly the size of colorbox to avoid a bug in IE's iframe implementation.
+				$wrap[0].style.width = (settings.w + loadedWidth + interfaceWidth) + "px";
+				$wrap[0].style.height = (settings.h + loadedHeight + interfaceHeight) + "px";
+				
+				if (settings.get('reposition')) {
+					setTimeout(function () {  // small delay before binding onresize due to an IE8 bug.
+						$window.bind('resize.' + prefix, publicMethod.position);
+					}, 1);
+				}
+
+				if (loadedCallback) {
+					loadedCallback();
+				}
+			},
+			step: modalDimensions
+		});
+	};
+
+	publicMethod.resize = function (options) {
+		var scrolltop;
+		
+		if (open) {
+			options = options || {};
+			
+			if (options.width) {
+				settings.w = setSize(options.width, 'x') - loadedWidth - interfaceWidth;
+			}
+
+			if (options.innerWidth) {
+				settings.w = setSize(options.innerWidth, 'x');
+			}
+
+			$loaded.css({width: settings.w});
+			
+			if (options.height) {
+				settings.h = setSize(options.height, 'y') - loadedHeight - interfaceHeight;
+			}
+
+			if (options.innerHeight) {
+				settings.h = setSize(options.innerHeight, 'y');
+			}
+
+			if (!options.innerHeight && !options.height) {
+				scrolltop = $loaded.scrollTop();
+				$loaded.css({height: "auto"});
+				settings.h = $loaded.height();
+			}
+
+			$loaded.css({height: settings.h});
+
+			if(scrolltop) {
+				$loaded.scrollTop(scrolltop);
+			}
+			
+			publicMethod.position(settings.get('transition') === "none" ? 0 : settings.get('speed'));
+		}
+	};
+
+	publicMethod.prep = function (object) {
+		if (!open) {
+			return;
+		}
+		
+		var callback, speed = settings.get('transition') === "none" ? 0 : settings.get('speed');
+
+		$loaded.remove();
+
+		$loaded = $tag(div, 'LoadedContent').append(object);
+		
+		function getWidth() {
+			settings.w = settings.w || $loaded.width();
+			settings.w = settings.mw && settings.mw < settings.w ? settings.mw : settings.w;
+			return settings.w;
+		}
+		function getHeight() {
+			settings.h = settings.h || $loaded.height();
+			settings.h = settings.mh && settings.mh < settings.h ? settings.mh : settings.h;
+			return settings.h;
+		}
+		
+		$loaded.hide()
+		.appendTo($loadingBay.show())// content has to be appended to the DOM for accurate size calculations.
+		.css({width: getWidth(), overflow: settings.get('scrolling') ? 'auto' : 'hidden'})
+		.css({height: getHeight()})// sets the height independently from the width in case the new width influences the value of height.
+		.prependTo($content);
+		
+		$loadingBay.hide();
+		
+		// floating the IMG removes the bottom line-height and fixed a problem where IE miscalculates the width of the parent element as 100% of the document width.
+		
+		$(photo).css({'float': 'none'});
+
+		setClass(settings.get('className'));
+
+		callback = function () {
+			var total = $related.length,
+				iframe,
+				complete;
+			
+			if (!open) {
+				return;
+			}
+			
+			function removeFilter() { // Needed for IE8 in versions of jQuery prior to 1.7.2
+				if ($.support.opacity === false) {
+					$box[0].style.removeAttribute('filter');
+				}
+			}
+			
+			complete = function () {
+				clearTimeout(loadingTimer);
+				$loadingOverlay.hide();
+				trigger(event_complete);
+				settings.get('onComplete');
+			};
+
+			
+			$title.html(settings.get('title')).show();
+			$loaded.show();
+			
+			if (total > 1) { // handle grouping
+				if (typeof settings.get('current') === "string") {
+					$current.html(settings.get('current').replace('{current}', index + 1).replace('{total}', total)).show();
+				}
+				
+				$next[(settings.get('loop') || index < total - 1) ? "show" : "hide"]().html(settings.get('next'));
+				$prev[(settings.get('loop') || index) ? "show" : "hide"]().html(settings.get('previous'));
+				
+				slideshow();
+				
+				// Preloads images within a rel group
+				if (settings.get('preloading')) {
+					$.each([getIndex(-1), getIndex(1)], function(){
+						var img,
+							i = $related[this],
+							settings = new Settings(i, $.data(i, colorbox)),
+							src = settings.get('href');
+
+						if (src && isImage(settings, src)) {
+							src = retinaUrl(settings, src);
+							img = document.createElement('img');
+							img.src = src;
+						}
+					});
+				}
+			} else {
+				$groupControls.hide();
+			}
+			
+			if (settings.get('iframe')) {
+				iframe = document.createElement('iframe');
+				
+				if ('frameBorder' in iframe) {
+					iframe.frameBorder = 0;
+				}
+				
+				if ('allowTransparency' in iframe) {
+					iframe.allowTransparency = "true";
+				}
+
+				if (!settings.get('scrolling')) {
+					iframe.scrolling = "no";
+				}
+				
+				$(iframe)
+					.attr({
+						src: settings.get('href'),
+						name: (new Date()).getTime(), // give the iframe a unique name to prevent caching
+						'class': prefix + 'Iframe',
+						allowFullScreen : true // allow HTML5 video to go fullscreen
+					})
+					.one('load', complete)
+					.appendTo($loaded);
+				
+				$events.one(event_purge, function () {
+					iframe.src = "//about:blank";
+				});
+
+				if (settings.get('fastIframe')) {
+					$(iframe).trigger('load');
+				}
+			} else {
+				complete();
+			}
+			
+			if (settings.get('transition') === 'fade') {
+				$box.fadeTo(speed, 1, removeFilter);
+			} else {
+				removeFilter();
+			}
+		};
+		
+		if (settings.get('transition') === 'fade') {
+			$box.fadeTo(speed, 0, function () {
+				publicMethod.position(0, callback);
+			});
+		} else {
+			publicMethod.position(speed, callback);
+		}
+	};
+
+	function load () {
+		var href, setResize, prep = publicMethod.prep, $inline, request = ++requests;
+		
+		active = true;
+		
+		photo = false;
+		
+		trigger(event_purge);
+		trigger(event_load);
+		settings.get('onLoad');
+		
+		settings.h = settings.get('height') ?
+				setSize(settings.get('height'), 'y') - loadedHeight - interfaceHeight :
+				settings.get('innerHeight') && setSize(settings.get('innerHeight'), 'y');
+		
+		settings.w = settings.get('width') ?
+				setSize(settings.get('width'), 'x') - loadedWidth - interfaceWidth :
+				settings.get('innerWidth') && setSize(settings.get('innerWidth'), 'x');
+		
+		// Sets the minimum dimensions for use in image scaling
+		settings.mw = settings.w;
+		settings.mh = settings.h;
+		
+		// Re-evaluate the minimum width and height based on maxWidth and maxHeight values.
+		// If the width or height exceed the maxWidth or maxHeight, use the maximum values instead.
+		if (settings.get('maxWidth')) {
+			settings.mw = setSize(settings.get('maxWidth'), 'x') - loadedWidth - interfaceWidth;
+			settings.mw = settings.w && settings.w < settings.mw ? settings.w : settings.mw;
+		}
+		if (settings.get('maxHeight')) {
+			settings.mh = setSize(settings.get('maxHeight'), 'y') - loadedHeight - interfaceHeight;
+			settings.mh = settings.h && settings.h < settings.mh ? settings.h : settings.mh;
+		}
+		
+		href = settings.get('href');
+		
+		loadingTimer = setTimeout(function () {
+			$loadingOverlay.show();
+		}, 100);
+		
+		if (settings.get('inline')) {
+			// Inserts an empty placeholder where inline content is being pulled from.
+			// An event is bound to put inline content back when Colorbox closes or loads new content.
+			$inline = $tag(div).hide().insertBefore($(href)[0]);
+
+			$events.one(event_purge, function () {
+				$inline.replaceWith($loaded.children());
+			});
+
+			prep($(href));
+		} else if (settings.get('iframe')) {
+			// IFrame element won't be added to the DOM until it is ready to be displayed,
+			// to avoid problems with DOM-ready JS that might be trying to run in that iframe.
+			prep(" ");
+		} else if (settings.get('html')) {
+			prep(settings.get('html'));
+		} else if (isImage(settings, href)) {
+
+			href = retinaUrl(settings, href);
+
+			photo = document.createElement('img');
+
+			$(photo)
+			.addClass(prefix + 'Photo')
+			.bind('error',function () {
+				prep($tag(div, 'Error').html(settings.get('imgError')));
+			})
+			.one('load', function () {
+				var percent;
+
+				if (request !== requests) {
+					return;
+				}
+
+				$.each(['alt', 'longdesc', 'aria-describedby'], function(i,val){
+					var attr = $(settings.el).attr(val) || $(settings.el).attr('data-'+val);
+					if (attr) {
+						photo.setAttribute(val, attr);
+					}
+				});
+
+				if (settings.get('retinaImage') && window.devicePixelRatio > 1) {
+					photo.height = photo.height / window.devicePixelRatio;
+					photo.width = photo.width / window.devicePixelRatio;
+				}
+
+				if (settings.get('scalePhotos')) {
+					setResize = function () {
+						photo.height -= photo.height * percent;
+						photo.width -= photo.width * percent;
+					};
+					if (settings.mw && photo.width > settings.mw) {
+						percent = (photo.width - settings.mw) / photo.width;
+						setResize();
+					}
+					if (settings.mh && photo.height > settings.mh) {
+						percent = (photo.height - settings.mh) / photo.height;
+						setResize();
+					}
+				}
+				
+				if (settings.h) {
+					photo.style.marginTop = Math.max(settings.mh - photo.height, 0) / 2 + 'px';
+				}
+				
+				if ($related[1] && (settings.get('loop') || $related[index + 1])) {
+					photo.style.cursor = 'pointer';
+					photo.onclick = function () {
+						publicMethod.next();
+					};
+				}
+
+				photo.style.width = photo.width + 'px';
+				photo.style.height = photo.height + 'px';
+
+				setTimeout(function () { // A pause because Chrome will sometimes report a 0 by 0 size otherwise.
+					prep(photo);
+				}, 1);
+			});
+			
+			setTimeout(function () { // A pause because Opera 10.6+ will sometimes not run the onload function otherwise.
+				photo.src = href;
+			}, 1);
+		} else if (href) {
+			$loadingBay.load(href, settings.get('data'), function (data, status) {
+				if (request === requests) {
+					prep(status === 'error' ? $tag(div, 'Error').html(settings.get('xhrError')) : $(this).contents());
+				}
+			});
+		}
+	}
+		
+	// Navigates to the next page/image in a set.
+	publicMethod.next = function () {
+		if (!active && $related[1] && (settings.get('loop') || $related[index + 1])) {
+			index = getIndex(1);
+			launch($related[index]);
+		}
+	};
+	
+	publicMethod.prev = function () {
+		if (!active && $related[1] && (settings.get('loop') || index)) {
+			index = getIndex(-1);
+			launch($related[index]);
+		}
+	};
+
+	// Note: to use this within an iframe use the following format: parent.jQuery.colorbox.close();
+	publicMethod.close = function () {
+		if (open && !closing) {
+			
+			closing = true;
+			open = false;
+			trigger(event_cleanup);
+			settings.get('onCleanup');
+			$window.unbind('.' + prefix);
+			$overlay.fadeTo(settings.get('fadeOut') || 0, 0);
+			
+			$box.stop().fadeTo(settings.get('fadeOut') || 0, 0, function () {
+				$box.hide();
+				$overlay.hide();
+				trigger(event_purge);
+				$loaded.remove();
+				
+				setTimeout(function () {
+					closing = false;
+					trigger(event_closed);
+					settings.get('onClosed');
+				}, 1);
+			});
+		}
+	};
+
+	// Removes changes Colorbox made to the document, but does not remove the plugin.
+	publicMethod.remove = function () {
+		if (!$box) { return; }
+
+		$box.stop();
+		$.colorbox.close();
+		$box.stop().remove();
+		$overlay.remove();
+		closing = false;
+		$box = null;
+		$('.' + boxElement)
+			.removeData(colorbox)
+			.removeClass(boxElement);
+
+		$(document).unbind('click.'+prefix);
+	};
+
+	// A method for fetching the current element Colorbox is referencing.
+	// returns a jQuery object.
+	publicMethod.element = function () {
+		return $(settings.el);
+	};
+
+	publicMethod.settings = defaults;
+
+}(jQuery, document, window));
diff --git a/docs/license.html b/docs/license.html
new file mode 100644
index 0000000..18a36fb
--- /dev/null
+++ b/docs/license.html
@@ -0,0 +1,564 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+ Podling Documentation Team">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - License</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Apache License v2.0"><strong>Apache License v2.0</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                        <div align="left">
+    <table style="border: solid 1px #023264; padding: 5px;">
+    <tr>
+      <td bgcolor="#ffffff"><pre>
+
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      &quot;License&quot; shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      &quot;Licensor&quot; shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      &quot;Legal Entity&quot; shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      &quot;control&quot; means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      &quot;You&quot; (or &quot;Your&quot;) shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      &quot;Source&quot; form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      &quot;Object&quot; form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      &quot;Work&quot; shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      &quot;Derivative Works&quot; shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      &quot;Contribution&quot; shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, &quot;submitted&quot;
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as &quot;Not a Contribution.&quot;
+
+      &quot;Contributor&quot; shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a &quot;NOTICE&quot; text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an &quot;AS IS&quot; BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets &quot;[]&quot;
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same &quot;printed page&quot; as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+ </pre></td>
+    </tr>
+    </table>
+    </div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/mail-lists.html b/docs/mail-lists.html
new file mode 100644
index 0000000..ae983c8
--- /dev/null
+++ b/docs/mail-lists.html
@@ -0,0 +1,537 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			Sebastian Wagner
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Mailing Lists</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Apache OpenMeetings Mailing Lists"><strong>Apache OpenMeetings Mailing Lists</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				There are currently 4 publicly available mailing lists for OpenMeetings.

+			</p>
+                                                <p>

+				The commits list is for notification of commits to the OpenMeetings

+				repository.

+			</p>
+                                                <p>

+				The dev list is for internal discussion among the OpenMeetings

+				developers. It is

+				open to the public if you are interested in seeing how the sausage is

+				made.

+			</p>
+                                                <p>

+				<b>Note: </b>If your email bounces with status messages like "Delivery Status Notification" it is 

+				likely that you have send your mail as HTML mail. Apache does not like sending HTML emails, see:

+				<br /> 

+				<a href="http://www.apache.org/dev/contrib-email-tips.html#do-not-send-html-mail" target="_BLANK" rel="nofollow">http://www.apache.org/dev/contrib-email-tips.html#do-not-send-html-mail</a>

+			</p>
+                                                <p>

+				You can search the entire mailing list very easy by using markmail.com, by using the term 

+				"openmeetings" plus your search. Try yourself: <br />

+				<a href="http://markmail.org/search/?q=openmeetings" target="_BLANK" rel="nofollow">http://markmail.org/search/?q=openmeetings</a>

+			</p>
+                                                <table>
+                        <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        

+						<p>

+							<strong>User List</strong>

+							:

+							<a href="mailto:user@openmeetings.apache.org">

+								user@openmeetings.apache.org

+							</a>

+						</p>

+					
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        

+						<p>

+							<a class="external" rel="nofollow" href="mailto:user-subscribe@openmeetings.apache.org">

+								Subscribe

+							</a>

+						</p>

+					
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        

+						<p>

+							<a class="external" rel="nofollow" href="mailto:user-unsubscribe@openmeetings.apache.org">

+								Unsubscribe

+							</a>

+						</p>

+					
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        

+						<p>

+							<a href="http://mail-archives.apache.org/mod_mbox/openmeetings-user/">

+								Archive

+							</a>

+						</p>

+					
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        

+						<p>

+							<strong>Spanish User List</strong>

+							:

+							<a href="mailto:user-espanol@openmeetings.apache.org">

+								user-espanol@openmeetings.apache.org

+							</a>

+						</p>

+					
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        

+						<p>

+							<a class="external" rel="nofollow" href="mailto:user-espanol-subscribe@openmeetings.apache.org">

+								Subscribe

+							</a>

+						</p>

+					
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        

+						<p>

+							<a class="external" rel="nofollow" href="mailto:user-espanol-unsubscribe@openmeetings.apache.org">

+								Unsubscribe

+							</a>

+						</p>

+					
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        

+						<p>

+							<a href="http://mail-archives.apache.org/mod_mbox/openmeetings-user-espanol/">

+								Archive

+							</a>

+						</p>

+					
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        

+						<p>

+							<strong>Commits List</strong>

+							:

+							<a href="mailto:commits@openmeetings.apache.org">

+								commits@openmeetings.apache.org

+							</a>

+						</p>

+					
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        

+						<p>

+							<a class="external" rel="nofollow" href="mailto:commits-subscribe@openmeetings.apache.org">

+								Subscribe

+							</a>

+						</p>

+					
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        

+						<p>

+							<a class="external" rel="nofollow" href="mailto:commits-unsubscribe@openmeetings.apache.org">

+								Unsubscribe

+							</a>

+						</p>

+					
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        

+						<p>

+							<a href="http://mail-archives.apache.org/mod_mbox/openmeetings-commits/">

+								Archive

+							</a>

+						</p>

+					
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        

+						<p>

+							<strong>Developer List</strong>

+							:

+							<a href="mailto:dev@openmeetings.apache.org">

+								dev@openmeetings.apache.org

+							</a>

+						</p>

+					
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        

+						<p>

+							<a class="external" rel="nofollow" href="mailto:dev-subscribe@openmeetings.apache.org">

+								Subscribe

+							</a>

+						</p>

+					
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        

+						<p>

+							<a class="external" rel="nofollow" href="mailto:dev-unsubscribe@openmeetings.apache.org">

+								Unsubscribe

+							</a>

+						</p>

+					
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        

+						<p>

+							<a href="http://mail-archives.apache.org/mod_mbox/openmeetings-dev">

+								Archive

+							</a>

+						</p>

+					
+    </td>
+            </tr>
+            </table>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/oauth2.html b/docs/oauth2.html
new file mode 100644
index 0000000..d2c7b2e
--- /dev/null
+++ b/docs/oauth2.html
@@ -0,0 +1,385 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="OpenMeetings Team">
+            <meta name="email" content="a_horuzhenko@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - OAuth2 integration</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="OAuth2 integration"><strong>OAuth2 integration</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>You need Apache Openmeetings <strong>version 3.0</strong> to apply this guide!</p>
+                                                <p>You can manage various OAuth2 servers by opening "Administration =&gt; OAuth2". There are already created servers like Facebook or Google. You can use them as example or in production. To add your own servers you need to get their documentation to set necessary attributes.</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Attributes"><strong>Attributes</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <ul>

+				<li><i>Name</i> - displayed in the login dialog text</li>

+				<li><i>client_id</i> and <i>client_secret</i> - credentials which you got from your oauth2 server.</li>

+				<li><i>Redirect uri</i> - put this value into application settings in the oauth2 server.</li>

+				<li><i>Request key URL</i> - an URL which will be used to request access key.</li>

+				<li><i>Request token URL</i> - an URL which will be used to request access token.</li>

+				<li><i>Request token attributes</i> - attributes for access token request.</li>

+				<li><i>Request info URL</i> - an URL which will be used to request authentication attributes.</li>

+				<li><i>Login param name</i> - login key name to get value from info response.</li>

+				<li><i>Email param name</i> - email key name to get value from info response.</li>

+				<li><i>Firstname param name</i> - firstname key name to get value from info response.</li>

+				<li><i>Lastname param name</i> - lastname key name to get value from info response.</li>

+			</ul>
+                                                <p>Request attributes (request key url, request token url, request token attributes, request info url) may contain next variables as a part:</p>
+                                                <ul>

+				<li>{$client_id}</li>

+				<li>{$client_secret}</li>

+				<li>{$redirect_uri}</li>

+				<li>{$code}</li>

+				<li>{$access_token}</li>

+			</ul>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/openmeetings_docs.css b/docs/openmeetings_docs.css
new file mode 100644
index 0000000..8a09524
--- /dev/null
+++ b/docs/openmeetings_docs.css
@@ -0,0 +1,45 @@
+/*

+* Licensed to the Apache Software Foundation (ASF) under one or more

+* contributor license agreements.  See the NOTICE file distributed with

+* this work for additional information regarding copyright ownership.

+* The ASF licenses this file to You under the Apache License, Version 2.0

+* (the "License"); you may not use this file except in compliance with

+* the License.  You may obtain a copy of the License at

+*

+*     http://www.apache.org/licenses/LICENSE-2.0

+*

+* Unless required by applicable law or agreed to in writing, software

+* distributed under the License is distributed on an "AS IS" BASIS,

+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+* See the License for the specific language governing permissions and

+* limitations under the License.

+*/

+body {

+    font: 10pt Verdana, Arial, Helvetica, sans-serif;

+}

+table {

+	margin-left: 20px;

+	border-color: #000000;

+}

+th {

+    background-color: #dddddd;

+}

+.method {

+	margin-top: 20px;

+	width: 100%;

+}

+.method_header {

+	background-color: #cccccc;

+	width: 100%;

+	border-style: solid;

+	border-color: #666666;

+	border-width: 2px;

+	font-size: 11pt;

+	color: #0000FF;

+}

+.navigation {

+	margin-left: 40px;

+}

+.navigation_comment {

+	margin-left: 20px;

+}
\ No newline at end of file
diff --git a/docs/red5sip-integration_2.0.html b/docs/red5sip-integration_2.0.html
new file mode 100644
index 0000000..929a7de
--- /dev/null
+++ b/docs/red5sip-integration_2.0.html
@@ -0,0 +1,534 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="timur@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - SIP-Transport Integration</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="SIP-Transport Integration"><strong>SIP-Transport Integration</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				You need minimum version 2.0 of Apache OpenMeetings to apply this guide!

+			</p>
+                                                <p>

+				Here is instruction how-to set up red5sip transport integration with OpenMeetings on Ubuntu 10.04.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Setup Asterisk"><strong>Setup Asterisk</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+                Run the commands

+                <blockquote>

+                    <i>

+                    sudo apt-get update<br />

+                    sudo apt-get install asterisk asterisk-mysql

+                    </i>

+                </blockquote>

+            </div>
+                                                <div>

+                Ubuntu 10.04 has broken asterisk-mysql version. For other distribution next commands not needed:

+                <blockquote>

+                    <i>

+                        aptitude purge asterisk-mysql

+                        <br />

+                        cd /tmp

+                        <br />

+                        apt-get build-dep asterisk-mysql

+                        <br />

+                        apt-get -b source asterisk-mysql

+                        <br />

+                        dpkg -i asterisk-mysql_1.6.2.0-1_i386.deb

+                    </i>

+

+                </blockquote>

+            </div>
+                                                <div>

+                Enable asterisk mysql realtime module:<br /><br />

+                Add string

+                <blockquote>

+                    <i>load =&gt; res_config_mysql.so</i>

+                </blockquote>

+                to the /etc/asterisk/modules.conf into the "modules" section.

+            </div>
+                                                <div>

+                Configure mysql realtime module:<br /><br />

+

+                Create file /etc/asterisk/res_mysql.conf and add lines:

+                <blockquote>

+                    <i>[general]

+                        <br />

+                        dbhost=127.0.0.1

+                        <br />

+                        dbname=openmeetings

+                        <br />

+                        dbuser=root

+                        <br />

+                        dbpass=

+                        <br />

+                        dbport=3306

+                    </i>

+

+                </blockquote>

+            </div>
+                                                <div>

+                Add next lines into the /etc/asterisk/extconfig.conf:

+                <blockquote>

+                    <i>[settings]

+                        <br />

+                        sipusers =&gt; mysql,general,sipusers

+                        <br />

+                        sippeers =&gt; mysql,general,sipusers

+                        <br />

+                        extensions =&gt; mysql,general,extensions

+                        <br />

+                        meetme =&gt; mysql,general,meetme

+                    </i>

+

+                </blockquote>

+            </div>
+                                                <div>

+                Add next lines into the /etc/asterisk/extensions.conf:

+                <blockquote>

+                    <i>[rooms]

+                        <br />

+                        switch =&gt; Realtime/@

+                    </i>

+

+                </blockquote>

+            </div>
+                                                <div>

+                Restart asterisk:

+                <blockquote>

+                    <i>service asterisk restart</i>

+                </blockquote>

+                Insert, for example, SIP user with name 'test':

+                <blockquote>

+                    <i>

+                        INSERT INTO sipusers (allow, context, disallow, host, name, secret) VALUES ('ulaw' , 'rooms', NULL, 'dynamic' , 'test', '12345');

+                    </i>

+                </blockquote>

+            </div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Setup red5sip transport"><strong>Setup red5sip transport</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+                Download red5sip from<blockquote>http://red5phone.googlecode.com/svn/branches/red5sip</blockquote>

+            </div>
+                                                <p>

+                Build with Apache Ant

+            </p>
+                                                <div>

+                Install jsvc:

+                <blockquote>

+                    <i>apt-get install jsvc</i>

+                </blockquote>

+            </div>
+                                                <div>

+                Insert proper values to the /opt/red5sip/settings.properties

+

+                <blockquote>

+                    <i>red5.host - red5 server address (127.0.0.1)

+                        <br />

+                        sip.obproxy - asterisk adderss (127.0.0.1)

+                        <br />

+                        sip.phone - sip phone number (test)

+                        <br />

+                        sip.authid - sip auth id (test)

+                        <br />

+                        sip.secret - sip password (12345)

+                        <br />

+                        sip.realm - sip realm, "asterisk" by default

+                        <br />

+                        sip.proxy -

+                        <br />

+                        rooms - ids of openmeetings rooms, can be, for example, 2,3,5,6

+                    </i>

+

+                </blockquote>

+            </div>
+                                                <div>

+                Add red5sip to autostart:

+                <blockquote>

+                    <i>ln -s /opt/red5sip/red5sip.sh /etc/init.d/red5sip

+                        <br />

+                        chmod a+x /etc/init.d/red5sip

+                        <br />

+                        update-rc.d /etc/init.d/red5sip defaults

+                    </i>

+

+                </blockquote>

+            </div>
+                                                <div>

+                Start openmeetings

+                <blockquote>

+                    <i>service red5 start</i>

+                </blockquote>

+            </div>
+                                                <div>

+                Start red5sip

+                <blockquote>

+                    <i>service red5sip start</i>

+                </blockquote>

+            </div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/red5sip-integration_2.1.html b/docs/red5sip-integration_2.1.html
new file mode 100644
index 0000000..6550d3f
--- /dev/null
+++ b/docs/red5sip-integration_2.1.html
@@ -0,0 +1,702 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="OpenMeetings Team">
+            <meta name="email" content="solomax@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - SIP-Transport Integration</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="SIP-Transport Integration"><strong>SIP-Transport Integration</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>You need Apache OpenMeetings <strong>version 2.1</strong> to apply this guide!</p>
+                                                <p>You need Asterisk <strong>version 11</strong> to apply this guide!</p>
+                                                <p>Here is instruction how-to set up red5sip transport integration with OpenMeetings on Ubuntu 12.10.</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Prerequisites"><strong>Prerequisites</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+				Run the commands

+				<blockquote>

+					<i>

+						sudo apt-get update &amp;&amp; sudo apt-get upgrade<br />

+						sudo apt-get install build-essential linux-headers-`uname -r` libxml2-dev libncurses5-dev libsqlite3-dev sqlite3 openssl libssl-dev<br />

+					</i>

+				</blockquote>

+			</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="ODBC Setup"><strong>ODBC Setup</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+				Run the commands

+				<blockquote>

+					<i>

+						sudo apt-get update<br />

+						sudo apt-get install unixODBC unixODBC-dev libmyodbc

+					</i>

+				</blockquote>

+			</div>
+                                                <div>

+				Set up Asterisk connector:<br /><br />

+				Modify file <tt>/etc/odbc.ini</tt> as follows: (replace USER, PASSWORD and Socket with values relative to your system)

+				<blockquote>

+					<i>

+						[asterisk-connector]<br />

+						Description = MySQL connection to 'openmeetings' database<br />

+						Driver = MySQL<br />

+						Database = openmeetings<br />

+						Server = localhost<br />

+						USER = root<br />

+						PASSWORD =<br />

+						Port = 3306<br />

+						Socket = /var/run/mysqld/mysqld.sock<br />

+					</i>

+				</blockquote><br /><br />

+				Modify file <tt>/etc/odbcinst.ini</tt> as follows: (replace the path to the *.so files below with the real paths on your system)

+				<blockquote>

+					(The path below is for x32 server, x64 version is most probably located at <tt>/usr/lib/x86_64-linux-gnu/odbc</tt>)<br />

+					<i>

+						[MySQL]<br />

+						Description = ODBC for MySQL<br />

+						Driver = /usr/lib/i386-linux-gnu/odbc/libmyodbc.so<br />

+						Setup = /usr/lib/i386-linux-gnu/odbc/libodbcmyS.so<br />

+						FileUsage = 1<br />

+					</i>

+				</blockquote><br /><br />

+				Run the following command to ensure everything works as expected:

+				<blockquote>

+					<i>echo "select 1" | isql -v asterisk-connector</i>

+				</blockquote>

+			</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Building and setting up Asterisk"><strong>Building and setting up Asterisk</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+				Run the commands

+				<blockquote>

+					<i>

+						sudo mkdir /usr/src/asterisk &amp;&amp; cd /usr/src/asterisk<br />

+						sudo wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-11.2.1.tar.gz<br />

+						sudo tar -xvzf asterisk-11.2.1.tar.gz<br />

+						cd ./asterisk-11.2.1<br />

+						sudo make clean<br />

+						sudo ./configure<br />

+						sudo make<br />

+						sudo make install<br />

+						sudo make samples<br />

+						sudo make config<br />

+						sudo service asterisk start<br />

+					</i>

+				</blockquote>

+			</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Configure Asterisk"><strong>Configure Asterisk</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+				Enable asterisk ODBC module:<br /><br />

+				Modify "[modules]" section of <tt>/etc/asterisk/modules.conf</tt> as follows:<br />

+				<strong>Add/uncomment the following lines</strong>

+				<blockquote>

+					<i>

+						preload =&gt; res_odbc.so<br />

+						preload =&gt; res_config_odbc.so<br />

+					</i>

+				</blockquote>

+			</div>
+                                                <br />
+                                                <div>

+				Create/update "[asterisk]" section in <tt>/etc/asterisk/res_odbc.conf</tt>:

+				<blockquote>

+					<i>

+						[asterisk]<br />

+						enabled =&gt; yes<br />

+						dsn =&gt; asterisk-connector<br />

+						pre-connect =&gt; yes

+					</i>

+				</blockquote>

+			</div>
+                                                <br />
+                                                <div>

+				Modify <tt>/etc/asterisk/sip.conf</tt><br />

+				<strong>Add/uncomment the following line</strong>:<br />

+				<blockquote>

+					<i>

+						videosupport=yes<br />

+						rtcachefriends=yes<br />

+					</i>

+				</blockquote>

+				<strong>Increase maxexpiry value to 43200</strong>:<br />

+				<blockquote>

+					<i>

+						maxexpiry=43200<br />

+				        </i>

+				</blockquote>

+				<strong>Add user for the "SIP Transport"</strong>:<br />

+				<blockquote>

+					<i>

+						[red5sip_user]<br />

+						type=friend<br />

+						secret=12345<br />

+						disallow=all<br />

+						allow=ulaw<br />

+						allow=h264<br />

+						host=dynamic<br />

+						nat=force_rport,comedia<br />

+						context=rooms-red5sip<br />

+					</i>

+				</blockquote>

+			</div>
+                                                <br />
+                                                <div>

+				Add next lines into the <tt>/etc/asterisk/extconfig.conf</tt>:

+				<blockquote>

+					<i>

+						[settings]<br />

+						sippeers =&gt; odbc,asterisk,sipusers<br />

+					</i>

+				</blockquote>

+			</div>
+                                                <br />
+                                                <div>

+				Modify <tt>/etc/asterisk/extensions.conf</tt><br />

+				<strong>Add the following section</strong>:<br />

+				<blockquote>

+					<i>

+						[rooms]<br />

+						exten =&gt; _400X!,1,GotoIf($[${DB_EXISTS(openmeetings/rooms/${EXTEN})}]?ok:notavail)<br />

+						exten =&gt; _400X!,n(ok),SET(PIN=${DB(openmeetings/rooms/${EXTEN})})<br />

+						exten =&gt; _400X!,n,Set(CONFBRIDGE(user,template)=sip_user)<br />

+						exten =&gt; _400X!,n,Set(CONFBRIDGE(user,pin)=${PIN})<br />

+						exten =&gt; _400X!,n(ok),Confbridge(${EXTEN},default_bridge,)<br />

+						exten =&gt; _400X!,n,Hangup<br />

+						exten =&gt; _400X!,n(notavail),Answer()<br />

+						exten =&gt; _400X!,n,Playback(invalid)<br />

+						exten =&gt; _400X!,n,Hangup<br />

+						<br />

+						[rooms-originate]<br />

+						exten =&gt; _400X!,1,Confbridge(${EXTEN},default_bridge,sip_user)<br />

+						exten =&gt; _400X!,n,Hangup<br />

+						<br />

+						[rooms-out]<br />

+						; *****************************************************<br />

+						; Extensions for outgoing calls from Openmeetings room.<br />

+						; *****************************************************<br />

+						<br />

+						[rooms-red5sip]<br />

+						exten =&gt; _400X!,1,GotoIf($[${DB_EXISTS(openmeetings/rooms/${EXTEN})}]?ok:notavil)<br />

+						exten =&gt; _400X!,n(ok),Confbridge(${EXTEN},default_bridge,red5sip_user)<br />

+						exten =&gt; _400X!,n(notavail),Hangup <br />

+					</i>

+				</blockquote>

+			</div>
+                                                <br />
+                                                <div>

+				Modify <tt>/etc/asterisk/confbridge.conf</tt><br />

+				<strong>Add/Modify the following secions</strong>:<br />

+				<blockquote>

+					<i>

+						[general]<br />

+						<br />

+						[red5sip_user]<br />

+						type=user<br />

+						marked=yes<br />

+						dsp_drop_silence=yes<br />

+						denoise=true<br />

+						<br />

+						[sip_user]<br />

+						type=user<br />

+						end_marked=yes<br />

+						wait_marked=yes<br />

+						music_on_hold_when_empty=yes<br />

+						dsp_drop_silence=yes<br />

+						denoise=true<br />

+						<br />

+						[default_bridge]<br />

+						type=bridge<br />

+						video_mode=follow_talker<br /> 

+					</i>

+				</blockquote>

+			</div>
+                                                <br />
+                                                <div>

+				To enable Asterisk Manager API modify <tt>/etc/asterisk/manager.conf</tt><br />

+				<strong>Add/Modify the following sections</strong>:<br />

+				<blockquote>

+					<i>

+						[general]<br />

+						enabled = yes<br />

+						webenabled = no<br />

+						port = 5038<br />

+						bindaddr = 127.0.0.1<br />

+						<br />

+						[openmeetings]<br />

+						secret = 12345<br />

+						deny=0.0.0.0/0.0.0.0<br />

+						permit=127.0.0.1/255.255.255.0<br />

+						read = all<br />

+						write = all<br />

+					</i>

+				</blockquote>

+			</div>
+                                                <br />
+                                                <div>

+				Update Openmeetings with creadentials for Asterisk manager. 

+				Modify <tt>/opt/red5/webapps/openmeetings/WEB-INF/openmeetings-applicationContext.xml</tt><br />

+				find <strong>&lt;bean id="sipDao" class="org.apache.openmeetings.data.conference.dao.SipDao"&gt;</strong>

+				uncomment its parameters and set it to your custom values.

+				<p style="font-size: larger; color: blue;">

+					IMPORTANT: this step should be done <strong>BEFORE</strong> system install/restore

+					otherwise all SIP related room information will be lost

+				</p>   

+			</div>
+                                                <br />
+                                                <div>

+				Restart asterisk:

+				<blockquote>

+					<i>service asterisk restart</i>

+				</blockquote>

+			</div>
+                                                <br />
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Setup red5sip transport"><strong>Setup red5sip transport</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+				Download red5sip from

+				<blockquote>http://red5phone.googlecode.com/svn/branches/red5sip_2.1</blockquote>

+			</div>
+                                                <div>

+				Build with Apache Ant

+				<blockquote>

+					<i>ant</i>

+				</blockquote>

+			</div>
+                                                <div>

+				Insert proper values to the <tt>/opt/red5sip/settings.properties</tt>

+

+				<blockquote>

+					<i>

+						red5.host=127.0.0.1 # red5 server address<br />

+						om.context=openmeetings # Openmeetings context<br /> 

+						red5.codec=asao<br />

+						red5.codec.rate=22 # should correlate with mic settings in public/config.xml<br />

+						sip.obproxy=127.0.0.1 # asterisk adderss<br />

+						sip.phone=red5sip_user # sip phone number<br />

+						sip.authid=red5sip_user # sip auth id<br />

+						sip.secret=12345 # sip password<br />

+						sip.realm=asterisk # sip realm<br />

+						sip.proxy=127.0.0.1 # address of sip proxy <br />

+						rooms.forceStart=no # TBD <br />

+						rooms=1 # TBD (not in use) <br />

+					</i>

+				</blockquote>

+			</div>
+                                                <div>

+				Add red5sip to autostart:

+				<blockquote>

+					<i>

+						sudo cp /opt/red5sip/red5sip /etc/init.d/<br />

+						sudo chmod a+x /etc/init.d/red5sip<br />

+						sudo update-rc.d red5sip defaults

+					</i>

+				</blockquote>

+			</div>
+                                                <div>

+				Start openmeetings

+				<blockquote>

+					<i>service red5 start</i>

+				</blockquote>

+			</div>
+                                                <div>

+				Start red5sip

+				<blockquote>

+					<i>service red5sip start</i>

+				</blockquote>

+			</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/red5sip-integration_3.0.html b/docs/red5sip-integration_3.0.html
new file mode 100644
index 0000000..1a64177
--- /dev/null
+++ b/docs/red5sip-integration_3.0.html
@@ -0,0 +1,702 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="OpenMeetings Team">
+            <meta name="email" content="solomax@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - SIP-Transport Integration</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="SIP-Transport Integration"><strong>SIP-Transport Integration</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>You need Apache OpenMeetings <strong>version 3.0</strong> to apply this guide!</p>
+                                                <p>You need Asterisk <strong>version 11</strong> to apply this guide!</p>
+                                                <p>Here is instruction how-to set up red5sip transport integration with OpenMeetings on Ubuntu 12.10.</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Prerequisites"><strong>Prerequisites</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+				Run the commands

+				<blockquote>

+					<i>

+						sudo apt-get update &amp;&amp; sudo apt-get upgrade<br />

+						sudo apt-get install build-essential linux-headers-`uname -r` libxml2-dev libncurses5-dev libsqlite3-dev sqlite3 openssl libssl-dev<br />

+					</i>

+				</blockquote>

+			</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="ODBC Setup"><strong>ODBC Setup</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+				Run the commands

+				<blockquote>

+					<i>

+						sudo apt-get update<br />

+						sudo apt-get install unixODBC unixODBC-dev libmyodbc

+					</i>

+				</blockquote>

+			</div>
+                                                <div>

+				Set up Asterisk connector:<br /><br />

+				Modify file <tt>/etc/odbc.ini</tt> as follows: (replace USER, PASSWORD and Socket with values relative to your system)

+				<blockquote>

+					<i>

+						[asterisk-connector]<br />

+						Description = MySQL connection to 'openmeetings' database<br />

+						Driver = MySQL<br />

+						Database = openmeetings<br />

+						Server = localhost<br />

+						USER = root<br />

+						PASSWORD =<br />

+						Port = 3306<br />

+						Socket = /var/run/mysqld/mysqld.sock<br />

+					</i>

+				</blockquote><br /><br />

+				Modify file <tt>/etc/odbcinst.ini</tt> as follows: (replace the path to the *.so files below with the real paths on your system)

+				<blockquote>

+					(The path below is for x32 server, x64 version is most probably located at <tt>/usr/lib/x86_64-linux-gnu/odbc</tt>)<br />

+					<i>

+						[MySQL]<br />

+						Description = ODBC for MySQL<br />

+						Driver = /usr/lib/i386-linux-gnu/odbc/libmyodbc.so<br />

+						Setup = /usr/lib/i386-linux-gnu/odbc/libodbcmyS.so<br />

+						FileUsage = 1<br />

+					</i>

+				</blockquote><br /><br />

+				Run the following command to ensure everything works as expected:

+				<blockquote>

+					<i>echo "select 1" | isql -v asterisk-connector</i>

+				</blockquote>

+			</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Building and setting up Asterisk"><strong>Building and setting up Asterisk</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+				Run the commands

+				<blockquote>

+					<i>

+						sudo mkdir /usr/src/asterisk &amp;&amp; cd /usr/src/asterisk<br />

+						sudo wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-11.2.1.tar.gz<br />

+						sudo tar -xvzf asterisk-11.2.1.tar.gz<br />

+						cd ./asterisk-11.2.1<br />

+						sudo make clean<br />

+						sudo ./configure<br />

+						sudo make<br />

+						sudo make install<br />

+						sudo make samples<br />

+						sudo make config<br />

+						sudo service asterisk start<br />

+					</i>

+				</blockquote>

+			</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Configure Asterisk"><strong>Configure Asterisk</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+				Enable asterisk ODBC module:<br /><br />

+				Modify "[modules]" section of <tt>/etc/asterisk/modules.conf</tt> as follows:<br />

+				<strong>Add/uncomment the following lines</strong>

+				<blockquote>

+					<i>

+						preload =&gt; res_odbc.so<br />

+						preload =&gt; res_config_odbc.so<br />

+					</i>

+				</blockquote>

+			</div>
+                                                <br />
+                                                <div>

+				Create/update "[asterisk]" section in <tt>/etc/asterisk/res_odbc.conf</tt>:

+				<blockquote>

+					<i>

+						[asterisk]<br />

+						enabled =&gt; yes<br />

+						dsn =&gt; asterisk-connector<br />

+						pre-connect =&gt; yes

+					</i>

+				</blockquote>

+			</div>
+                                                <br />
+                                                <div>

+				Modify <tt>/etc/asterisk/sip.conf</tt><br />

+				<strong>Add/uncomment the following line</strong>:<br />

+				<blockquote>

+					<i>

+						videosupport=yes<br />

+						rtcachefriends=yes<br />

+					</i>

+				</blockquote>

+				<strong>Increase maxexpiry value to 43200</strong>:<br />

+				<blockquote>

+					<i>

+						maxexpiry=43200<br />

+				        </i>

+				</blockquote>

+				<strong>Add user for the "SIP Transport"</strong>:<br />

+				<blockquote>

+					<i>

+						[red5sip_user]<br />

+						type=friend<br />

+						secret=12345<br />

+						disallow=all<br />

+						allow=ulaw<br />

+						allow=h264<br />

+						host=dynamic<br />

+						nat=force_rport,comedia<br />

+						context=rooms-red5sip<br />

+					</i>

+				</blockquote>

+			</div>
+                                                <br />
+                                                <div>

+				Add next lines into the <tt>/etc/asterisk/extconfig.conf</tt>:

+				<blockquote>

+					<i>

+						[settings]<br />

+						sippeers =&gt; odbc,asterisk,sipusers<br />

+					</i>

+				</blockquote>

+			</div>
+                                                <br />
+                                                <div>

+				Modify <tt>/etc/asterisk/extensions.conf</tt><br />

+				<strong>Add the following section</strong>:<br />

+				<blockquote>

+					<i>

+						[rooms]<br />

+						exten =&gt; _400X!,1,GotoIf($[${DB_EXISTS(openmeetings/rooms/${EXTEN})}]?ok:notavail)<br />

+						exten =&gt; _400X!,n(ok),SET(PIN=${DB(openmeetings/rooms/${EXTEN})})<br />

+						exten =&gt; _400X!,n,Set(CONFBRIDGE(user,template)=sip_user)<br />

+						exten =&gt; _400X!,n,Set(CONFBRIDGE(user,pin)=${PIN})<br />

+						exten =&gt; _400X!,n(ok),Confbridge(${EXTEN},default_bridge,)<br />

+						exten =&gt; _400X!,n,Hangup<br />

+						exten =&gt; _400X!,n(notavail),Answer()<br />

+						exten =&gt; _400X!,n,Playback(invalid)<br />

+						exten =&gt; _400X!,n,Hangup<br />

+						<br />

+						[rooms-originate]<br />

+						exten =&gt; _400X!,1,Confbridge(${EXTEN},default_bridge,sip_user)<br />

+						exten =&gt; _400X!,n,Hangup<br />

+						<br />

+						[rooms-out]<br />

+						; *****************************************************<br />

+						; Extensions for outgoing calls from Openmeetings room.<br />

+						; *****************************************************<br />

+						<br />

+						[rooms-red5sip]<br />

+						exten =&gt; _400X!,1,GotoIf($[${DB_EXISTS(openmeetings/rooms/${EXTEN})}]?ok:notavil)<br />

+						exten =&gt; _400X!,n(ok),Confbridge(${EXTEN},default_bridge,red5sip_user)<br />

+						exten =&gt; _400X!,n(notavail),Hangup <br />

+					</i>

+				</blockquote>

+			</div>
+                                                <br />
+                                                <div>

+				Modify <tt>/etc/asterisk/confbridge.conf</tt><br />

+				<strong>Add/Modify the following secions</strong>:<br />

+				<blockquote>

+					<i>

+						[general]<br />

+						<br />

+						[red5sip_user]<br />

+						type=user<br />

+						marked=yes<br />

+						dsp_drop_silence=yes<br />

+						denoise=true<br />

+						<br />

+						[sip_user]<br />

+						type=user<br />

+						end_marked=yes<br />

+						wait_marked=yes<br />

+						music_on_hold_when_empty=yes<br />

+						dsp_drop_silence=yes<br />

+						denoise=true<br />

+						<br />

+						[default_bridge]<br />

+						type=bridge<br />

+						video_mode=follow_talker<br /> 

+					</i>

+				</blockquote>

+			</div>
+                                                <br />
+                                                <div>

+				To enable Asterisk Manager API modify <tt>/etc/asterisk/manager.conf</tt><br />

+				<strong>Add/Modify the following sections</strong>:<br />

+				<blockquote>

+					<i>

+						[general]<br />

+						enabled = yes<br />

+						webenabled = no<br />

+						port = 5038<br />

+						bindaddr = 127.0.0.1<br />

+						<br />

+						[openmeetings]<br />

+						secret = 12345<br />

+						deny=0.0.0.0/0.0.0.0<br />

+						permit=127.0.0.1/255.255.255.0<br />

+						read = all<br />

+						write = all<br />

+					</i>

+				</blockquote>

+			</div>
+                                                <br />
+                                                <div>

+				Update Openmeetings with creadentials for Asterisk manager. 

+				Modify <tt>/opt/red5/webapps/openmeetings/WEB-INF/classes/openmeetings-applicationContext.xml</tt><br />

+				find <strong>&lt;bean id="sipDao" class="org.apache.openmeetings.db.dao.room.SipDao"&gt;</strong>

+				uncomment its parameters and set it to your custom values.

+				<p style="font-size: larger; color: blue;">

+					IMPORTANT: this step should be done <strong>BEFORE</strong> system install/restore

+					otherwise all SIP related room information will be lost

+				</p>   

+			</div>
+                                                <br />
+                                                <div>

+				Restart asterisk:

+				<blockquote>

+					<i>service asterisk restart</i>

+				</blockquote>

+			</div>
+                                                <br />
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Setup red5sip transport"><strong>Setup red5sip transport</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <div>

+				Download red5sip from

+				<blockquote>http://red5phone.googlecode.com/svn/branches/red5sip_2.1</blockquote>

+			</div>
+                                                <div>

+				Build with Apache Ant

+				<blockquote>

+					<i>ant</i>

+				</blockquote>

+			</div>
+                                                <div>

+				Insert proper values to the <tt>/opt/red5sip/settings.properties</tt>

+

+				<blockquote>

+					<i>

+						red5.host=127.0.0.1 # red5 server address<br />

+						om.context=openmeetings # Openmeetings context<br /> 

+						red5.codec=asao<br />

+						red5.codec.rate=22 # should correlate with mic settings in public/config.xml<br />

+						sip.obproxy=127.0.0.1 # asterisk adderss<br />

+						sip.phone=red5sip_user # sip phone number<br />

+						sip.authid=red5sip_user # sip auth id<br />

+						sip.secret=12345 # sip password<br />

+						sip.realm=asterisk # sip realm<br />

+						sip.proxy=127.0.0.1 # address of sip proxy <br />

+						rooms.forceStart=no # TBD <br />

+						rooms=1 # TBD (not in use) <br />

+					</i>

+				</blockquote>

+			</div>
+                                                <div>

+				Add red5sip to autostart:

+				<blockquote>

+					<i>

+						sudo cp /opt/red5sip/red5sip /etc/init.d/<br />

+						sudo chmod a+x /etc/init.d/red5sip<br />

+						sudo update-rc.d red5sip defaults

+					</i>

+				</blockquote>

+			</div>
+                                                <div>

+				Start openmeetings

+				<blockquote>

+					<i>service red5 start</i>

+				</blockquote>

+			</div>
+                                                <div>

+				Start red5sip

+				<blockquote>

+					<i>service red5sip start</i>

+				</blockquote>

+			</div>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/svn.html b/docs/svn.html
new file mode 100644
index 0000000..d7ad956
--- /dev/null
+++ b/docs/svn.html
@@ -0,0 +1,779 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			Sebastian Wagner
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Source Code</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="OpenMeetings Source Code"><strong>OpenMeetings Source Code</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				OpenMeetings uses

+				<a class="external" rel="nofollow" href="http://subversion.tigris.org">

+					Subversion

+				</a>

+				to manage its source code.

+				If you're new to Subversion, you can check out the

+				<a href="http://svnbook.red-bean.com/">online book</a>

+				about Subversion.

+				Note that we are currently using Subversion 1.1.x (there are separate

+				versions of the book covering 1.0 and 1.1).

+			</p>
+                                                <p>

+				To receive notice of commits to the repository subscribe to

+				<a href="mailto:commits@openmeetings.apache.org">

+					commits@openmeetings.apache.org

+				</a>

+				by sending email to

+				<a href="mailto:commits-subscribe@openmeetings.apache.org">

+					commits-subscribe@openmeetings.apache.org

+				</a>

+				.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Web Access to Subversion"><strong>Web Access to Subversion</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				If you just want to browse the source code, you can use the

+				<a class="external" rel="nofollow" href="http://svn.apache.org/viewcvs/openmeetings">

+					ViewCVS web interface

+				</a>

+				to Subversion. This is current at all times.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Checking Out Code Using Subversion"><strong>Checking Out Code Using Subversion</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>Anyone can check code out of Subversion. You only need to specify

+				a

+				username and password to update the Subversion repository, and only

+				OpenMeetings committers can do that.

+				If you are a committer, are working from behind a firewall, or are

+				connected to the internet through a proxy server, please see the

+				sections

+				below for more information.

+			</p>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Anonymous check out from Subversion"><strong>Anonymous check out from Subversion</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>Use a command like:</p>
+                                                <pre>% svn checkout

+					http://svn.apache.org/repos/asf/openmeetings </pre>
+                                                <p>Once you have OpenMeetings checked out you can update the source

+					by executing the following command from within the openmeetings

+					directory.

+				</p>
+                                                <pre>

+					% svn update

+				</pre>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Access from behind a firewall"><strong>Access from behind a firewall</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>For those users who are stuck behind a corporate firewall which

+					is

+					blocking http access to the Subversion repository, you can try to access it

+					via HTTPS:

+				</p>
+                                                <pre>

+					% svn checkout

+					https://svn.apache.org/repos/asf/openmeetings

+				</pre>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Access through a proxy"><strong>Access through a proxy</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>The Subversion client can go through a proxy, if you configure it

+					to do so. First, edit your "servers" configuration file to indicate

+					which

+					proxy to use. The files location depends on your operating system.

+					On Linux or Unix it is located in the directory "~/.subversion".

+					On Windows it is in "%APPDATA%\Subversion". (Try "echo %APPDATA%",

+					note this is a hidden directory.)

+				</p>
+                                                <p>There are comments in the file explaining what to do. If you

+					don't have

+					that file, get the latest Subversion client and run any command; this

+					will

+					cause the configuration directory and template files to be created.

+				</p>
+                                                <p>Example : Edit the 'servers' file and add something like :

+				</p>
+                                                <pre>

+					[global]

+					http-proxy-host = your.proxy.name

+					http-proxy-port = 3128

+				</pre>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Committer access"><strong>Committer access</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>Everyone can access the Apache Podling Subversion repository via

+					HTTPS,

+					but OpenMeetings Committers must checkout the Subversion repository

+					via HTTPS.

+				</p>
+                                                <pre>

+					% svn checkout

+					https://svn.apache.org/repos/asf/openmeetings

+				</pre>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Submitting Code Changes"><strong>Submitting Code Changes</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                        <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Submitting a patch"><strong>Submitting a patch</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>If you make changes to OpenMeetings, and would like to contribute

+					it to the project, you should open a JIRA issue and discuss the

+					merits

+					of the proposal with the developer community. If there is agreement,

+					create a patch and attach it to the JIRA issue.

+				</p>
+                                                <p>

+					To create a patch, execute the svn diff command. This creates a patch

+					that

+					can easily be uploaded to a JIRA issue. A good name for the patch

+					includes

+					the JIRA issue name, e.g. OPENMEETINGS-104.patch. If there are several

+					patches

+					for the same JIRA issue, you might include your initials, e.g.

+					OPENMEETINGS-104.clr.patch

+				</p>
+                                                <pre>

+					% svn diff &gt; OPENMEETINGS-104.clr.patch

+				</pre>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Committing changes to subversion"><strong>Committing changes to subversion</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+					To commit changes to the subversion repository, you must be an

+					OpenMeetings committer. See

+					<a href="get-involved.html">get involved</a>

+					for information on how to become a committer and how to set up your

+					password once you become a committer.

+				</p>
+                                                <p>

+					Once your password is set, you can use a command like this to commit:

+				</p>
+                                                <pre>

+					$&gt; svn commit --username your-username

+					Authentication realm: &lt;https://svn.apache.org:443&gt; ASF Committers

+					Password for 'your-username': your-password

+				</pre>
+                                                <p>You can also pass your password on the command line directly, but

+					this is a security problem on multiuser unix computers (the command

+					line

+					arguments are available via the ps command). Here is the command if you

+					are Windows or a single user unix computer:

+				</p>
+                                                <pre>

+					$&gt; svn commit --username your-username --password your-password

+				</pre>
+                                                <p>Remember to replace 'your-username' and 'your-password' with

+					your actual username and password on svn.apache.org.

+				</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Building Podling from Source"><strong>Building Podling from Source</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				<!-- ***************** TBD ************************** -->

+				<!-- ***************** TBD ************************** -->

+				<!-- ***************** TBD ************************** -->

+				<!-- ***************** TBD ************************** -->

+				<!-- ***************** TBD ************************** -->

+				<!-- ***************** TBD ************************** -->

+				<!-- ***************** TBD ************************** -->

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Using Subversion on Windows with cygwin"><strong>Using Subversion on Windows with cygwin</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				If you use Subversion on Windows under cygwin, you may find that the

+				Subversion client automatically assigns the executable property to

+				non-executable files. In that case, you would see this at the bottom

+				of

+				an

+				<em>svn diff</em>

+				of the file:

+			</p>
+                                                <pre>

+				Property changes on: test/sql/derby/datastoreidentity/schema1.sql

+				___________________________________________________________________

+				Name: svn:executable

+				+ *

+			</pre>
+                                                <p>This section explains the source of the problem and suggests some

+				actions to avoid it.

+			</p>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Background"><strong>Background</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>Subversion carries executable information in the built-in

+					property

+					called svn:executable. This property, unlike others, may be present

+					or absent, but it has no value. You can add it or delete it, but you

+					cannot change its value.

+				</p>
+                                                <p>In theory, Subversion ignores Windows file permissions and by

+					default

+					does not set svn:executable. However, cygwin svn acts like Unix svn and

+					determines the svn:executable property based on file permissions.

+				</p>
+                                                <p>

+					If you create a file from the cygwin command line, by default it is

+					executable only if the filename ends with .bat, .com or .exe, or if

+					its

+					content starts with #!. [This is what the doc says, but you may see -x

+					for all files.] If you create a file using a Windows tool, by default

+					its Windows permissions are executable by all. Cygwin interprets

+					the

+					Unix-style permissions this way as well. If the file is executable by all,

+					cygwin svn sets the svn:executable property on the file when you

+					invoke

+					<em>svn add</em>

+					.

+				</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Removing existing executable properties from the repository"><strong>Removing existing executable properties from the repository</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>You can use svn propdel to remove the svn:executable property

+					from your

+					working copy.

+				</p>
+                                                <pre>

+					svn propdel -R svn:executable .

+				</pre>
+                                                <p>will recursively remove the svn:executable property from all of

+					the

+					files below the current directory. You can use this and commit the

+					files to clean the repository if necessary.

+				</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="#EFEFEF">
+        <font color="#000000" face="arial,helvetica,sanserif">
+          <a name="Preventing Subversion from adding unwanted executable  properties"><strong>Preventing Subversion from adding unwanted executable  properties</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+					Windows/cygwin users who don't want to have to think about using

+					<em>svn

+						propdel

+					</em>

+					or

+					<em>chmod</em>

+					on each added file can use a non-cygwin

+					version of svn. The Subversion 1.2.3 Win32 binaries, downloadable from the

+					link at the bottom of

+					<a rel="nofollow" href="http://subversion.tigris.org/project_packages.html">

+						http://subversion.tigris.org/project_packages.html

+					</a>

+					, appear to work

+					well. After installation add the svn.exe location to your Windows PATH

+					variable. If you are switching from cygwin svn to Win32 svn

+				</p>
+                                                <ol type="1">

+					<li>

+						<p>Remove the subversion component from your cygwin installation

+							because when svn is invoked from a cygwin window, the cygwin

+							version is

+							found even if your cygwin/bin directory is later on the path. (In the

+							Select Packages window of the setup wizard, navigate to the

+							subversion

+							package in the Devel. category. Click on the status icon until Uninstall

+							is displayed. Click next and continue through the wizard until

+							installation

+							is complete.)

+						</p>

+					</li>

+					<li>

+						<p>Copy the servers file and the auth folder from the sygwin

+							~/.subversion

+							directory to C:\Documents and

+							Settings\&lt;user&gt;\Application Data\Subversion used by Win32

+							subversion.

+						</p>

+					</li>

+				</ol>
+                                                <p>Note that windows svn uses backslash as the path separator when

+					displaying file names. You cannot just copy and paste this file

+					name

+					to another svn command when running from within a cygwin shell.

+					You need to enclose the file name into double quotes.

+				</p>
+                                                <p>Alternatively, Windows users can set file permissions in Windows

+					Explorer. (Right-click on the top-level folder &amp; select

+					Properties.

+					Select the Security tab. Click Advanced. Remove all instances of

+					Read &amp; Execute from the Permission Entries. Click "Reset

+					permissions

+					on all child objects and enable propogations of inheritable

+					permissions".

+					Click Apply. OK. OK.) You will have to do this again when you do a clean

+					checkout to a new directory.

+				</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/team-list-ru.html b/docs/team-list-ru.html
new file mode 100644
index 0000000..5f9b203
--- /dev/null
+++ b/docs/team-list-ru.html
@@ -0,0 +1,453 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			Sebastian Wagner
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Команда проекта</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="OpenMeetings Committers"><strong>OpenMeetings Committers</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				Люди, отмеченные на этой странице, имеют доступ к репозиторию исходного кода Apache Openmeetings. 

+				Данная страница предназначена для того, чтобы служить основой квалификационного отбора

+				по проектам, требующим модификации исходного кода Openmeetings.

+			</p>
+                                                <table>
+                        <tr>
+                        <th bgcolor="#039acc" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Имя
+    </th>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Себастьян Вагнер
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Алексей Федотов
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Евгений Ровинский
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Максим Солодовник
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Oliver Becherer
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Eugen Schwert
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Sascha Xander
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Johnny Strom
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Герман Грехов
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Тимур Тлеукенов
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Alvaro Bustos
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        George Kirkham
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Stephen Cottham
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Ирина Архипец
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Василий Дегтярев
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Денис Кандров
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Юлия Альгаер
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Артём Хоруженко
+    </td>
+            </tr>
+            </table>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/team-list.html b/docs/team-list.html
new file mode 100644
index 0000000..dcbd4a0
--- /dev/null
+++ b/docs/team-list.html
@@ -0,0 +1,581 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			Sebastian Wagner
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Project Team</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="OpenMeetings Committers"><strong>OpenMeetings Committers</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				The people listed below have made significant contributions to

+				Podling

+				by

+				working long and hard to make quality software for the rest

+				of the world to

+				use.

+			</p>
+                                                <p>

+				If you would like to contribute to Podling, please see the

+				<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/New+committers+and+developers+task+idea+list" target="_BLANK">https://cwiki.apache.org/confluence/display/OPENMEETINGS/New+committers+and+developers+task+idea+list

+				</a>

+				to find areas where you can contribute.

+				If there is nothing in there

+				that suits your interest, but you still

+				have

+				ideas, please feel free

+				to suggest them on the mailing list.

+			</p>
+                                                <p>

+				If you would like to become a committer, please see

+				<a href="get-involved.html">Get Involved</a>

+				.

+			</p>
+                                                <table>
+                        <tr>
+                        <th bgcolor="#039acc" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Name
+    </th>
+                                <th bgcolor="#039acc" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Organization
+    </th>
+                                <th bgcolor="#039acc" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Contact/Website
+    </th>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Sebastian Wagner
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Independent
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        

+						<a href="https://twitter.com/#!/dead_lock" target="_BLANK" rel="nofollow">https://twitter.com/#!/dead_lock

+						</a>

+					
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Alexei Fedotov
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Independent
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        &nbsp;
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Evgeny Rovinsky
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Independent
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        &nbsp;
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Maxim Solodovnik
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Independent
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        &nbsp;
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Oliver Becherer
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Independent
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        &nbsp;
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Eugen Schwert
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Independent
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        &nbsp;
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Sascha Xander
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Independent
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        &nbsp;
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Johnny Strom
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Independent
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        &nbsp;
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Timur Tleukenov
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Independent
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        &nbsp;
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Alvaro Bustos
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Independent
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        &nbsp;
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        George Kirkham
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Independent
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        &nbsp;
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Stephen Cottham
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Independent
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        &nbsp;
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Irina Arkhipets
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Independent
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        &nbsp;
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Vasiliy Degtyarev
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Independent
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        &nbsp;
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Denis Kandrov
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Independent
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        &nbsp;
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Yulia Algaer
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Independent
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        &nbsp;
+    </td>
+            </tr>
+                                <tr>
+                        <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Artyom Horuzhenko
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        Independent
+    </td>
+                                <td bgcolor="#a0ddf0" class="$class" colspan="" rowspan="" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+        &nbsp;
+    </td>
+            </tr>
+            </table>
+                                                <p>

+			<a href="team-list-ru.html">Here</a> is the Russian version of this page.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/themes-and-branding.html b/docs/themes-and-branding.html
new file mode 100644
index 0000000..709bab4
--- /dev/null
+++ b/docs/themes-and-branding.html
@@ -0,0 +1,387 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - Theme and color</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Available with Apache OpenMeetings 2.0"><strong>Available with Apache OpenMeetings 2.0</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				Themes are only available starting with Openmeetings 2.x.

+				<br />

+				There are also more general client side configuration like port

+				configuration. Those configs are stored in the public/config.xml

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                                <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="Editing the theme"><strong>Editing the theme</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>You can find the default theme in the SVN: </p>
+                                                <p>

+				<a href="https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/src/main/webapp/openmeetings/public/theme.xml" target="_BLANK" rel="nofollow">https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/src/main/webapp/openmeetings/public/theme.xml

+				</a>

+			</p>
+                                                <p>

+				Or if you already installed OpenMeetings on your machine at:

+				<br />

+				<tt>/webapps/openmeetings/public/theme.xml</tt>

+				<br />

+				The file contains border, background and font color definitions as

+				well as paths to icons that are loaded at runtime.

+				<br />

+				You can change the theme at runtime and just reload the browser

+				(eventually clear the browser cache) to see updates based on

+				modification in your theme.

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/voip-sip-integration.html b/docs/voip-sip-integration.html
new file mode 100644
index 0000000..f35ac02
--- /dev/null
+++ b/docs/voip-sip-integration.html
@@ -0,0 +1,386 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+        
+<!-- start the processing -->
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+                                                    <meta name="author" content="
+			OpenMeetings Team
+		">
+            <meta name="email" content="sebawagner@apache.org">
+            
+           
+                                    
+                        
+            <title>Apache OpenMeetings - VoIP and SIP Integration</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="#ffffff" text="#000000" link="#123465" vlink="#123465" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    <td align="left">
+<a href="http://openmeetings.apache.org/"><img src="./images/logo-2.jpg" alt="Apache OpenMeetings" border="0"/></a>
+</td>
+                    <td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+            	<h3><a href="#General">General</a></h3>
+    	<div>
+	        	            	            	    <a href="./index.html">Home</a>
+<br/>
+	        		        	            	            	    <a href="./license.html">License</a>
+<br/>
+	        		        	            	            	    <a href="http://www.apache.org/">ASF</a>
+<br/>
+	        		        	            	            	    <a href="./downloads.html">Downloads</a>
+<br/>
+	        		        	            	            	    <a href="./commercial-support.html">Commercial Support</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#InstallationandUpgrade">Installation and Upgrade</a></h3>
+    	<div>
+	        	            	            	    <a href="./installation.html">Installation</a>
+<br/>
+	        		        	            	            	    <a href="./Upgrade.html">Upgrade</a>
+<br/>
+	        		        	            	            	    <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Tutorials</a>
+<br/>
+	        		        	            	            	    <a href="./CommandLineAdmin.html">Command Line Admin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Community">Community</a></h3>
+    	<div>
+	        	            	            	    <a href="./get-involved.html">Get Involved</a>
+<br/>
+	        		        	            	            	    <a href="./team-list.html">Committers</a>
+<br/>
+	        		        	            	            	    <a href="./mail-lists.html">Mailing Lists</a>
+<br/>
+	        		        	            	            	    <a href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/">Wiki</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Development">Development</a></h3>
+    	<div>
+	        	            	            	    <a href="./svn.html">Source Code</a>
+<br/>
+	        		        	            	            	    <a href="http://issues.apache.org/jira/browse/OPENMEETINGS">Bugs / Issues (JIRA)</a>
+<br/>
+	        		        	            	            	    <a href="./dependencies.html">Dependencies</a>
+<br/>
+	        		        	            	            	    <a href="./BuildInstructions.html">Build Instructions</a>
+<br/>
+	        		        	            	            	    <a href="./JUnitTesting.html">JUnit Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ManualTesting.html">Manual Testing</a>
+<br/>
+	        		        	            	            	    <a href="./ReleaseGuide.html">Release Guide</a>
+<br/>
+	        		        	            	            	    <a href="./WebsiteGuide.html">Website Guide</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Integration">Integration</a></h3>
+    	<div>
+	        	            	            	    <a href="./SoapRestAPI.html">SOAP/REST API</a>
+<br/>
+	        		        	            	            	    <a href="./RestAPISample.html">REST API Sample</a>
+<br/>
+	        		        	            	            	    <a href="./LdapAndADS.html">Ldap and ADS</a>
+<br/>
+	        		        	            	            	    <a href="./oauth2.html">OAuth2</a>
+<br/>
+	        		        	            	            	    <a href="./voip-sip-integration.html">VoIP and SIP</a>
+<br/>
+	        		        	            	            	    <a href="./ErrorsTable.html">Errors table</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Plugins">Plugins</a></h3>
+    	<div>
+	        	            	            	    <a href="./MoodlePlugin.html">Moodle Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SakaiPlugin.html">Sakai Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JiraPlugin.html">Jira Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./JoomlaPlugin.html">Joomla Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./DrupalPlugin.html">Drupal Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./BitrixPlugin.html">Bitrix Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./ConfluencePlugin.html">Confluence Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./SugarCRMPlugin.html">SugarCRM Plugin</a>
+<br/>
+	        		        	            	            	    <a href="./RedminePlugin.html">Redmine Plugin</a>
+<br/>
+	        		            	</div>
+        	<h3><a href="#Configuration">Configuration</a></h3>
+    	<div>
+	        	            	            	<b>DB Sample Configurations</b><br/>
+	            			            			    <a href="./ApacheDerbyConfig.html">Apache Derby</a>
+<br/>
+	            			            			    <a href="./IBMDB2Config.html">IBM DB2</a>
+<br/>
+	            			            			    <a href="./OracleConfig.html">Oracle</a>
+<br/>
+	            			            			    <a href="./MySQLConfig.html">MySQL</a>
+<br/>
+	            			            			    <a href="./PostgresConfig.html">Postgres</a>
+<br/>
+	            			            			    <a href="./MSSQLConfig.html">MSSQL</a>
+<br/>
+	            			        		        	            	            	<b>Localization and languages</b><br/>
+	            			            			    <a href="./Internationalisation.html">Internationalisation</a>
+<br/>
+	            			            			    <a href="./LanguageEditor.html">LanguageEditor</a>
+<br/>
+	            			            			    <a href="./TimeZoneHandling.html">TimeZoneHandling</a>
+<br/>
+	            			            			    <a href="./EditTemplates.html">EditTemplates</a>
+<br/>
+	            			        		        	            	            	<b>NAT Port Settings</b><br/>
+	            			            			    <a href="./PortSettings.html">Port settings</a>
+<br/>
+	            			        		        	            	            	<b>Performance</b><br/>
+	            			            			    <a href="./JVMPerformanceTuning.html">JVM performance tuning</a>
+<br/>
+	            			        		        	            	            	<b>User Interface</b><br/>
+	            			            			    <a href="./themes-and-branding.html">Themes</a>
+<br/>
+	            			            			    <a href="./Dashboard.html">Dashboard</a>
+<br/>
+	            			            			    <a href="./WebcamResolutions.html">Webcam resolutions</a>
+<br/>
+	            			            			    <a href="./ConferenceRoomLayoutOptions.html">Room layout options</a>
+<br/>
+	            			            			    <a href="./HotKeys.html">Hot Keys</a>
+<br/>
+	            			        		        	            	            	<b>Customization</b><br/>
+	            			            			    <a href="./WebappNamePath.html">Webapp name/path</a>
+<br/>
+	            			            			    <a href="./Navigation.html">Navigation</a>
+<br/>
+	            			            			    <a href="./CalendarAndTimezone.html">Calendar and timezone</a>
+<br/>
+	            			            			    <a href="./CustomRoomTypeHowTo.html">Custom room type</a>
+<br/>
+	            			            			    <a href="./CustomCryptMechanism.html">Custom ctypt mechanism</a>
+<br/>
+	            			            			    <a href="./GeneralConfiguration.html">General Configuration</a>
+<br/>
+	            			        		        	            	            	<b>Security</b><br/>
+	            			            			    <a href="./RestrictedAccess.html">Restricted Access</a>
+<br/>
+	            			            			    <a href="./RTMPSAndHTTPS.html">RTMPS and HTTPS</a>
+<br/>
+	            			        		        	            	            	<b>Converters</b><br/>
+	            			            			    <a href="./OpenOfficeConverter.html">OpenOffice Converter</a>
+<br/>
+	            			            			    <a href="./FFMPEGVersionSwitch.html">FFMPEG Version Switch</a>
+<br/>
+	            			        		        	            	            	<b>Clustering</b><br/>
+	            			            			    <a href="./Clustering.html">Clustering</a>
+<br/>
+	            			        		        	            	            	<b>Misc</b><br/>
+	            			            			    <a href="./GetVersionInfo.html">Get version info</a>
+<br/>
+	            			        		            	</div>
+        
+    </div>
+     
+    <br/>
+    
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                                                                    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="#EEEEEE" -->
+        <font color="#000000" face="verdana,arial,helvetica,sanserif">
+          <a name="VoIP and SIP Integration"><strong>VoIP and SIP Integration</strong></a>
+        </font>
+        <hr style="width:100%; color:#999999; background-color:#999999; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+                                    <p>

+				There are multiple ways to integrate with VoIP and or SIP.

+				OpenMeetings does not provide out of the box a ready to run VoIP

+				integration / integration to cell phone or usual land lane.

+				The

+				nature of such integrations is that it depends heavily on the

+				infrastructure that you are using and where you would like to

+				integrate OpenMeetings into.

+				<br />

+				<br />

+				It also depends on a number of factors of which OpenMeetings is

+				impossible to set up for you, for example setting up your VoIP

+				server or provide you with a range of telephone numbers reserved for

+				conference calls in your national phone network.

+				Such an integration

+				project is likely to become a consulting job for a

+				telecommunications consultant.

+				<br />

+				<br />

+				To get help on the integration you can contact the

+				<a href="mail-lists.html">mailing lists</a>

+				or for example somebody from the list of

+				<a href="commercial-support.html">commercial support</a>

+				.

+                <br /><br />

+                <a href="red5sip-integration_2.0.html">

+                Instruction how-to set up OpenMeetings SIP-Transport integration for Openmeetings 2.0

+                </a>.<br />

+                <a href="red5sip-integration_2.1.html">

+                Instruction how-to set up OpenMeetings SIP-Transport integration for Openmeetings 2.1

+                </a>.<br />

+                <a href="red5sip-integration_3.0.html">

+                Instruction how-to set up OpenMeetings SIP-Transport integration for Openmeetings 3.0

+                </a>.<br />

+			</p>
+                            </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+                                        </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="#123465" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ivy.xml b/ivy.xml
new file mode 100644
index 0000000..0290820
--- /dev/null
+++ b/ivy.xml
@@ -0,0 +1,429 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+ -->
+<ivy-module version="2.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
+	<info organisation="apache" module="openmeetings" />
+	<configurations defaultconfmapping="default">
+		<conf name="default" />
+		<conf name="mainlib" extends="default" description="Top level libraries" />
+		<conf name="mainlib.ext" extends="mainlib" description="Top level libraries with different pattern" />
+		<conf name="openmeetings" description="Openmeetings required libraries" />
+		<conf name="openmeetings.ext" extends="openmeetings" description="Openmeetings required libraries with different pattern" />
+		<conf name="openmeetings.axis2" extends="openmeetings.ext" description="Axis required libraries with dependencies" />
+		<conf name="anakia" description="Openmeetings required libraries" />
+		<conf name="junit" description="Unit testing dependencies" />
+		<conf name="cmdadmin" description="Command Line Admin dependencies" />
+		<conf name="rat" extends="cmdadmin" description="Apache Rat dependencies" />
+		<conf name="dtd" description="Dtd-generator dependencies" />
+		<conf name="svntask" description="Svn task dependencies" />
+		<conf name="openlaszlo" description="Openlaszlo dependencies" />
+		<conf name="openlaszlo46" description="Openlaszlo with Flex 4.6 dependencies" />
+		<conf name="mysql" description="MySQL JDBC driver" />
+		<conf name="tomcat7" description="Libraries necessary for patching Red5 to use Tomcat7" />
+		<conf name="mvn" description="Maven Ant task to build Red5" />
+		<conf name="red5-client" description="Red5 Client/Server for screensharing" />
+	</configurations>
+	<dependencies>
+		<!--  START OF mainlib -->
+		<dependency org="commons-fileupload" name="commons-fileupload" rev="1.3" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="commons-io" name="commons-io" rev="2.4" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="asm" name="asm" rev="3.1" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.springframework" name="spring-aspects" rev="3.1.1.RELEASE" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.springframework" name="spring-jdbc" rev="3.1.1.RELEASE" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.springframework" name="spring-orm" rev="3.1.1.RELEASE" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.springframework" name="spring-tx" rev="3.1.1.RELEASE" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.springframework" name="spring-webmvc" rev="3.1.1.RELEASE" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.springframework" name="spring-context-support" rev="3.1.1.RELEASE" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<!-- include type="bundle" / FIXME unable to get openjpa without  sources -->
+		<dependency org="org.apache.geronimo.specs" name="geronimo-jpa_2.0_spec" rev="1.1" conf="mainlib.ext->*" transitive="false"/>
+		<!--  END OF mainlib -->
+		
+		<!--  START OF ANAKIA -->
+		<dependency org="org.jdom" name="jdom" rev="1.1" conf="anakia->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="logkit" name="logkit" rev="1.0.1" conf="anakia->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="oro" name="oro" rev="2.0.8" conf="anakia->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.velocity" name="velocity-anakia" rev="1.1.0-SNAPSHOT" conf="anakia->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<!--  END OF ANAKIA -->
+
+		<!--  START OF OPENMEETINGS -->
+		<dependency org="org.apache.axis2" name="axis2" rev="1.7.0-SNAPSHOT" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-anim" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-awt-util" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-bridge" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-codec" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-css" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-dom" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-ext" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-extension" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-gui-util" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-gvt" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-parser" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-rasterizer" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-script" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-slideshow" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-squiggle" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-svg-dom" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-svggen" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-svgpp" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-swing" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-transcoder" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-ttf2svg" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-util" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="batik-xml" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="fop" rev="1.0" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlgraphics" name="xmlgraphics-commons" rev="1.4" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="xml-apis" name="xml-apis-ext" rev="1.3.04" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.derby" name="derby" rev="10.10.1.1" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.derby" name="derbyclient" rev="10.10.1.1" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.derby" name="derbynet" rev="10.10.1.1" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.postgresql" name="postgresql" rev="9.3-1101-jdbc4" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="dom4j" name="dom4j" rev="1.6.1" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.velocity" name="velocity" rev="1.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.velocity" name="velocity-tools" rev="2.0" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<!--  added to avoid downloading version 1.3 with Axis2 -->
+		<dependency org="commons-codec" name="commons-codec" rev="1.8" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="com.thoughtworks.xstream" name="xstream" rev="1.4.2" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.ws.commons.util" name="ws-commons-util" rev="1.0.2" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlrpc" name="xmlrpc-common" rev="3.1.3" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.xmlrpc" name="xmlrpc-client" rev="3.1.3" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="commons-transaction" name="commons-transaction" rev="1.2" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="net.sourceforge.serp" name="serp" rev="1.13.1" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="commons-dbcp" name="commons-dbcp" rev="1.4" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="commons-digester" name="commons-digester" rev="2.1" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="xpp3" name="xpp3" rev="1.1.4c" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="javax.mail" name="mail" rev="1.4.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.simpleframework" name="simple-xml" rev="2.7" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.wicket" name="wicket-request" rev="6.14.0" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.wicket" name="wicket-util" rev="6.14.0" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.wicket" name="wicket-core" rev="6.14.0" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.wicket" name="wicket-auth-roles" rev="6.14.0" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.wicket" name="wicket-ioc" rev="6.14.0" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.wicket" name="wicket-extensions" rev="6.14.0" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.wicket" name="wicket-datetime" rev="6.14.0" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="joda-time" name="joda-time" rev="2.3" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.wicket" name="wicket-devutils" rev="6.14.0" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.wicket" name="wicket-native-websocket-core" rev="6.14.0" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.wicket" name="wicket-native-websocket-tomcat" rev="6.14.0" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui-core" rev="6.14.0" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui" rev="6.14.0" conf="openmeetings->*" transitive="false">
+            <include type="jar" />
+        </dependency>
+		<dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui-calendar" rev="6.14.0" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="com.googlecode.wicket-jquery-ui" name="wicket-jquery-ui-plugins" rev="6.14.0" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="ro.fortsoft.wicket.dashboard" name="wicket-dashboard-core" rev="0.10" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="com.google.code.gson" name="gson" rev="2.2.4" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="com.github.svenmeier.wicket-dnd" name="wicket-dnd" rev="0.6.0" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.wicketstuff" name="wicketstuff-urlfragment" rev="6.14.0" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.wicketstuff" name="wicketstuff-html5" rev="6.14.0" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="com.vaynberg.wicket.select2" name="wicket-select2" rev="2.2.2" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		
+		<!-- iCal4j seems to need this JAR -->
+		<dependency org="backport-util-concurrent" name="backport-util-concurrent" rev="3.1" conf="openmeetings->*"/>
+
+		<dependency org="commons-net" name="commons-net" rev="3.3" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="com.googlecode.jsmpp" name="jsmpp" rev="2.1.0" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.smslib" name="smslib" rev="3.5.3" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.asteriskjava" name="asterisk-java" rev="1.0.0.CI-20130102.214528-1134" conf="openmeetings->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<!-- Selenium -->
+		<dependency org="org.seleniumhq.selenium" name="selenium-java" conf="openmeetings->*" rev="2.35.0" >
+			<include type="jar" />
+		</dependency>
+
+		<!-- include type="bundle" / FIXME unable to get openjpa without  sources -->
+		<dependency org="org.mnode.ical4j" name="ical4j" rev="1.0.5" conf="openmeetings.ext->*" transitive="false"/>
+		<dependency org="org.apache.openjpa" name="openjpa" rev="2.2.2" conf="openmeetings.ext->*" transitive="false"/>
+		<dependency org="commons-lang" name="commons-lang" rev="2.6" conf="openmeetings.ext->*" transitive="false"/> <!-- required by PCEnchancer -->
+		
+		<dependency org="org.apache.ws.commons.axiom" name="axiom-impl" rev="1.2.14" conf="openmeetings.axis2->*" transitive="true">
+			<exclude name='commons-io' />
+			<exclude name='commons-logging' />
+		</dependency>
+		<dependency org="org.apache.ws.commons.axiom" name="axiom-dom" rev="1.2.14" conf="openmeetings.axis2->*" transitive="false" />
+		<dependency org="org.apache.axis2" name="axis2-transport-http" rev="1.7.0-SNAPSHOT" conf="openmeetings.axis2->*"/>
+		<dependency org="org.apache.axis2" name="axis2-transport-local" rev="1.7.0-SNAPSHOT" conf="openmeetings.axis2->*"/>
+		<dependency org="org.apache.axis2" name="mex" rev="1.7.0-SNAPSHOT" conf="openmeetings.axis2->*"/>
+		<dependency org="org.apache.axis2" name="axis2-jaxws" rev="1.7.0-SNAPSHOT" conf="openmeetings.axis2->*"/>
+		<!--  END OF OPENMEETINGS -->
+
+		<!--  START OF JUNIT -->
+		<dependency org="org.springframework" name="spring-test" rev="3.1.1.RELEASE" conf="junit->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="ant-contrib" name="ant-contrib" rev="1.0b3" conf="junit->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<!--  END OF JUNIT -->
+		
+		<!--  START OF RAT -->
+		<dependency org="org.apache.rat" name="apache-rat-core" rev="0.10" conf="rat->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.rat" name="apache-rat-tasks" rev="0.10" conf="rat->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<!--  END OF RAT -->
+		
+		<!--  START OF DTD -->
+		<dependency org="com.thaiopensource" name="trang" rev="20091111" conf="dtd->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<!--  END OF DTD -->
+		
+		<!--  START OF svntask -->
+		<dependency org="org.tmatesoft.svnkit" name="svnkit" rev="1.7.11" conf="svntask->*" transitive="true">
+			<include type="jar" />
+		</dependency>
+		<dependency org="svnant" name="svnant" rev="1.3.1" conf="svntask->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="svnClientAdapter" name="svnClientAdapter" rev="1.3.1" conf="svntask->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<!--  END OF svntask -->
+		
+		<!--  START OF openlaszlo -->
+		<dependency org="openlaszlo" name="openlaszlo" rev="4.9" conf="openlaszlo->*" transitive="false">
+			<artifact name="openlaszlo" type="tgz"/>
+			<include type="tgz" />
+		</dependency>
+		<!--  END OF openlaszlo -->
+		
+		<!--  START OF openlaszlo46 -->
+		<dependency org="openlaszlo" name="openlaszlo" rev="4.9.5" conf="openlaszlo46->*" transitive="false">
+			<artifact name="openlaszlo" type="tgz"/>
+			<include type="tgz" />
+		</dependency>
+		<!--  END OF openlaszlo46 -->
+		
+		<!--  START OF Command Line Admin -->
+		<dependency org="commons-cli" name="commons-cli" rev="1.2" conf="cmdadmin->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<!--  END OF Command Line Admin -->
+		
+		<!--  START OF MySQL Driver -->
+		<dependency org="mysql" name="mysql-connector-java" rev="5.1.26" conf="mysql->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<!--  END OF MySQL Driver -->
+
+		<!-- Tomcat 7 --> 
+		<dependency org="org.apache.tomcat.embed" name="tomcat-embed-core" conf="tomcat7->*" rev="7.0.50" transitive="false" >
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.tomcat.embed" name="tomcat-embed-jasper" conf="tomcat7->*" rev="7.0.50" transitive="false" >
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.tomcat.embed" name="tomcat-embed-logging-juli" conf="tomcat7->*" rev="7.0.50" transitive="false" >
+			<include type="jar" />
+		</dependency>
+		<dependency org="org.apache.tomcat.embed" name="tomcat-embed-logging-log4j" conf="tomcat7->*" rev="7.0.50" transitive="false" >
+			<include type="jar" />
+		</dependency>
+		<dependency org="tomcatplugin" name="tomcatplugin" rev="1.4" conf="tomcat7->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+
+		<!-- MVN --> 
+		<dependency org="org.apache.maven" name="maven-ant-tasks" conf="mvn->*" rev="2.1.3" transitive="false" >
+			<include type="jar" />
+		</dependency>
+
+		<!-- Red5 Client/Server for screensharing -->
+		<!-- dependency org="red5_client" name="red5_client" rev="r4393" conf="red5-client->*" transitive="false">
+			<include type="jar" />
+		</dependency>
+		<dependency org="red5_server" name="red5_server" rev="r4393" conf="red5-client->*" transitive="false">
+			<include type="jar" />
+		</dependency-->
+		
+		<exclude org="javax.servlet" module="servlet-api" type="*" ext="*" conf="*" matcher="exact"/>		
+		<exclude org="cglib" module="cglib-nodep" type="*" ext="*" conf="*" matcher="exact"/>
+		<exclude org="pull-parser" module="pull-parser" type="*" ext="*" conf="*" matcher="exact"/>
+	</dependencies>
+</ivy-module>
+
diff --git a/ivysettings.xml b/ivysettings.xml
new file mode 100644
index 0000000..9de1607
--- /dev/null
+++ b/ivysettings.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+ -->
+<ivysettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+    xsi:noNamespaceSchemaLocation="ivysettings.xsd">
+	<settings defaultResolver="chain"/>
+	<resolvers>
+		<chain name="chain">
+			<ibiblio name="central" m2compatible="true"/>
+			<ibiblio name="apache-public" m2compatible="true" root="https://repository.apache.org/content/groups/public" />
+			<url name="mavencentral">
+				<artifact pattern="http://repo1.maven.org/maven2/[organisation]/[artifact]-[revision].[ext]" />
+			</url>
+			<url name="sonatype" m2compatible="true">
+				<artifact pattern="https://oss.sonatype.org/content/repositories/releases/[organisation]/[artifact]/[revision]/[artifact]-[revision].[ext]" />
+			</url>
+			<url name="svnkit" m2compatible="true">
+				<artifact pattern="http://maven.tmatesoft.com/content/repositories/releases/[organisation]/[artifact]/[revision]/[artifact]-[revision].[ext]" />
+			</url>
+			<url name="googlecode">
+				<artifact pattern="https://openlaszlo-openmeetings-integration.googlecode.com/svn/repository/[artifact](-[revision]).[ext]" />
+				<artifact pattern="https://openmeetings.googlecode.com/svn/repository/[artifact](-[revision]).[ext]" />
+				<artifact pattern="https://red5.googlecode.com/svn/repository/[organisation]/[artifact]/[revision]/[artifact](-[revision]).[ext]" />
+			</url>
+			<url name="smslib" m2compatible="true">
+				<artifact pattern="http://smslib.org/maven2/v3/[organisation]/[artifact]/[revision]/[artifact]-[revision].[ext]" />
+			</url>
+			<!--url name="wicket-jquery-ui" m2compatible="true">
+				<artifact pattern="https://oss.sonatype.org/content/repositories/snapshots/[organisation]/[artifact]/6.13.1-SNAPSHOT/[artifact]-[revision].[ext]" />
+			</url-->
+		</chain>
+	</resolvers>
+	<triggers>
+		<ant-call target="-extract-tgz" prefix="dep" event="post-download-artifact" filter="type=tgz"/>
+	</triggers>
+</ivysettings>
+
diff --git a/ivysettings.xsd b/ivysettings.xsd
new file mode 100644
index 0000000..c506c7d
--- /dev/null
+++ b/ivysettings.xsd
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

+  <xs:element name="ivysettings">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element ref="settings"/>

+        <xs:element ref="resolvers"/>

+        <xs:element ref="triggers" minOccurs="0"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="settings">

+    <xs:complexType>

+      <xs:attribute name="defaultResolver" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="resolvers">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element ref="chain" maxOccurs="unbounded"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="chain">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element minOccurs="0" maxOccurs="unbounded" ref="ibiblio"/>

+        <xs:element maxOccurs="unbounded" ref="url"/>

+      </xs:sequence>

+      <xs:attribute name="name" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="ibiblio">

+    <xs:complexType>

+      <xs:attribute name="m2compatible" use="required" type="xs:boolean"/>

+      <xs:attribute name="name" use="required" type="xs:NCName"/>

+      <xs:attribute name="root" type="xs:anyURI"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="url">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element maxOccurs="unbounded" ref="artifact"/>

+      </xs:sequence>

+      <xs:attribute name="name" use="required" type="xs:NCName"/>

+      <xs:attribute name="m2compatible" use="optional" type="xs:NCName"/>

+      <xs:attribute name="checksums" use="optional" type="xs:string"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="artifact">

+    <xs:complexType>

+      <xs:attribute name="pattern" use="required"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="triggers">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element ref="ant-call"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="ant-call">

+    <xs:complexType>

+      <xs:attribute name="event" use="required" type="xs:NCName"/>

+      <xs:attribute name="filter" use="required"/>

+      <xs:attribute name="prefix" use="required" type="xs:NCName"/>

+      <xs:attribute name="target" use="required" type="xs:NMTOKEN"/>

+    </xs:complexType>

+  </xs:element>

+</xs:schema>

diff --git a/src/axis/java/org/apache/openmeetings/axis/services/BaseWebService.java b/src/axis/java/org/apache/openmeetings/axis/services/BaseWebService.java
new file mode 100644
index 0000000..cd9b0c5
--- /dev/null
+++ b/src/axis/java/org/apache/openmeetings/axis/services/BaseWebService.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.axis.services;
+
+import javax.servlet.ServletContext;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.transport.http.HTTPConstants;
+import org.apache.openmeetings.servlet.BeanUtil;
+import org.apache.openmeetings.servlet.ServerNotInitializedException;
+
+public abstract class BaseWebService {
+	private BeanUtil beanUtil = new BeanUtil();
+	
+	private ServletContext getServletContext() throws AxisFault {
+		try {
+			MessageContext mc = MessageContext.getCurrentMessageContext();
+			return (ServletContext) mc.getProperty(HTTPConstants.MC_HTTP_SERVLETCONTEXT);
+		} catch (Exception err) {
+			throw new AxisFault("Servlet context is not available yet, retry in couple of seconds");
+		}
+	}
+	
+	// package access
+	<T> T getBean(Class<? extends T> clazz) throws AxisFault {
+		try {
+			return beanUtil.getBean(clazz, getServletContext());
+		} catch (ServerNotInitializedException e) {
+			throw new AxisFault(e.getMessage());
+		}
+	}
+}
diff --git a/src/axis/java/org/apache/openmeetings/axis/services/CalendarWebService.java b/src/axis/java/org/apache/openmeetings/axis/services/CalendarWebService.java
new file mode 100644
index 0000000..396b6d3
--- /dev/null
+++ b/src/axis/java/org/apache/openmeetings/axis/services/CalendarWebService.java
@@ -0,0 +1,606 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.axis.services;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.axis2.AxisFault;
+import org.apache.openmeetings.data.calendar.management.AppointmentLogic;
+import org.apache.openmeetings.data.conference.RoomManager;
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.db.dao.calendar.AppointmentCategoryDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypDao;
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.room.RoomTypeDao;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.db.entity.calendar.AppointmentCategory;
+import org.apache.openmeetings.db.entity.calendar.AppointmentReminderTyps;
+import org.apache.openmeetings.db.entity.calendar.MeetingMember;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.util.TimezoneUtil;
+import org.apache.openmeetings.util.AuthLevelUtil;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * CalendarService contains methods to create, edit delete calendar meetings
+ * 
+ * @author sebawagner
+ * @webservice CalendarService
+ * 
+ */
+public class CalendarWebService {
+	private static final Logger log = Red5LoggerFactory.getLogger(CalendarWebService.class, webAppRootKey);
+
+	@Autowired
+	private AppointmentDao appointmentDao;
+	@Autowired
+	private AppointmentLogic appointmentLogic;
+	@Autowired
+	private SessiondataDao sessiondataDao;
+	@Autowired
+	private UserManager userManager;
+	@Autowired
+	private AdminUserDao userDao;
+	@Autowired
+	private RoomManager roomManager;
+	@Autowired
+	private RoomDao roomDao;
+	@Autowired
+	private AppointmentCategoryDao appointmentCategoryDao;
+	@Autowired
+	private AppointmentReminderTypDao appointmentReminderTypDao;
+	@Autowired
+	private TimezoneUtil timezoneUtil;
+	@Autowired
+	private RoomTypeDao roomTypeDao;
+
+	/**
+	 * Load appointments by a start / end range for the current SID
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param starttime
+	 *            start time, yyyy-mm-dd
+	 * @param endtime
+	 *            end time, yyyy-mm-dd
+	 *            
+	 * @return - list of appointments in range
+	 */
+	public List<Appointment> getAppointmentByRange(String SID, Date starttime,
+			Date endtime) {
+		log.debug("getAppointmentByRange : startdate - " + starttime
+				+ ", enddate - " + endtime);
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				return appointmentDao.getAppointmentsByRange(users_id, starttime, endtime);
+			}
+		} catch (Exception err) {
+			log.error("[getAppointmentByRange]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * Load appointments by a start / end range for the userId
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param userId
+	 *            the userId the calendar events should be loaded
+	 * @param starttime
+	 *            start time, yyyy-mm-dd
+	 * @param endtime
+	 *            end time, yyyy-mm-dd
+	 *            
+	 * @return - list of appointments in range
+	 */
+	public List<Appointment> getAppointmentByRangeForUserId(String SID,
+			long userId, Date starttime, Date endtime) {
+		log.debug("getAppointmentByRange : startdate - " + starttime
+				+ ", enddate - " + endtime);
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+
+				return appointmentDao.getAppointmentsByRange(userId, starttime, endtime);
+			}
+		} catch (Exception err) {
+			log.error("[getAppointmentByRangeForUserId]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * Get the next Calendar event for the current user of the SID
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @return - next Calendar event
+	 */
+	public Appointment getNextAppointment(String SID) {
+
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				return appointmentLogic.getNextAppointment();
+			}
+		} catch (Exception err) {
+			log.error("[getNextAppointmentById]", err);
+		}
+		return null;
+
+	}
+
+	/**
+	 * Get the next Calendar event for userId
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 *            
+	 * @return - next Calendar event
+	 */
+	public Appointment getNextAppointmentForUserId(String SID, long userId) {
+
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				return appointmentLogic.getNextAppointment();
+			}
+		} catch (Exception err) {
+			log.error("[getNextAppointmentById]", err);
+		}
+		return null;
+
+	}
+
+	/**
+	 * Search a calendar event for the current SID
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param appointmentName
+	 *            the search string
+	 *            
+	 * @return - calendar event list
+	 */
+	public List<Appointment> searchAppointmentByName(String SID,
+			String appointmentName) {
+
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				return appointmentLogic
+						.searchAppointmentByName(appointmentName);
+			}
+		} catch (Exception err) {
+			log.error("[searchAppointmentByName]", err);
+		}
+		return null;
+
+	}
+
+	/**
+	 * Save an appointment
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param appointmentName
+	 *            name of the calendar event
+	 * @param appointmentLocation
+	 *            location info text of the calendar event
+	 * @param appointmentDescription
+	 *            description test of the calendar event
+	 * @param appointmentstart
+	 *            start as Date yyyy-mm-ddThh:mm:ss
+	 * @param appointmentend
+	 *            end as Date yyyy-mm-ddThh:mm:ss
+	 * @param isDaily
+	 *            if the calendar event should be repeated daily (not
+	 *            implemented)
+	 * @param isWeekly
+	 *            if the calendar event should be repeated weekly (not
+	 *            implemented)
+	 * @param isMonthly
+	 *            if the calendar event should be repeated monthly (not
+	 *            implemented)
+	 * @param isYearly
+	 *            if the calendar event should be repeated yearly (not
+	 *            implemented)
+	 * @param categoryId
+	 *            the category id of the calendar event
+	 * @param remind
+	 *            the reminder type of the calendar event
+	 * @param mmClient
+	 *            List of clients, comma separated string, <br/>
+	 *            sample: 1,firstname,lastname,hans.tier@gmail.com,1,Etc/GMT+1
+	 *            to add multiple clients you can use the same GET parameter in
+	 *            the URL multiple times, for example:
+	 *            &amp;mmClient=1,firstname,lastname,hans
+	 *            .tier@gmail.com,1,Etc/GMT+1&amp;mmClient
+	 *            =2,firstname,lastname,hans.tier@gmail.com,1,Etc/GMT+1
+	 * @param roomType
+	 *            the room type for the calendar event
+	 * @param languageId
+	 *            the language id of the calendar event, notification emails
+	 *            will be send in this language
+	 * @param isPasswordProtected
+	 *            if the room is password protected
+	 * @param password
+	 *            the password for the room
+	 *            
+	 * @return - id of appointment saved
+	 */
+	public Long saveAppointment(String SID, String appointmentName,
+			String appointmentLocation, String appointmentDescription,
+			Calendar appointmentstart, Calendar appointmentend,
+			Boolean isDaily, Boolean isWeekly, Boolean isMonthly,
+			Boolean isYearly, Long categoryId, Long remind, String[] mmClient,
+			Long roomType, Long languageId,
+			Boolean isPasswordProtected, String password, long roomId) {
+		//Seems to be create
+		log.debug("saveAppointMent SID:" + SID);
+
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			log.debug("saveAppointMent users_id:" + users_id);
+
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+				Appointment a = appointmentLogic.getAppointment(appointmentName, appointmentLocation, appointmentDescription,
+						appointmentstart, appointmentend, isDaily, isWeekly, isMonthly, isYearly, categoryId, remind,
+						mmClient, roomType, languageId, isPasswordProtected, password, roomId, users_id);
+				return appointmentDao.update(a, users_id).getId();
+			} else {
+				log.error("saveAppointment : wrong user level");
+			}
+		} catch (Exception err) {
+			log.error("[saveAppointment]", err);
+		}
+		return null;
+
+	}
+
+	/**
+	 * Update an calendar event time only
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param appointmentId
+	 *            the calendar event that should be updated
+	 * @param appointmentstart
+	 *            start yyyy-mm-dd
+	 * @param appointmentend
+	 *            end yyyy-mm-dd
+	 * @param languageId
+	 *            the language id
+	 *            
+	 * @return - id of appointment updated
+	 */
+	public Long updateAppointmentTimeOnly(String SID, Long appointmentId,
+			Date appointmentstart, Date appointmentend, Long languageId) {
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				Appointment a = appointmentDao.get(appointmentId);
+				if (!AuthLevelUtil.checkAdminLevel(user_level) && !a.getOwner().getUser_id().equals(users_id)) {
+					throw new AxisFault("The Appointment cannot be updated by the given user");
+				}
+				if (!a.getStart().equals(appointmentstart) || !a.getEnd().equals(appointmentend)) {
+					a.setStart(appointmentstart);
+					a.setEnd(appointmentend);
+					//FIXME this might change the owner!!!!!
+					return appointmentDao.update(a, users_id).getId();
+				}					
+			}
+		} catch (Exception err) {
+			log.error("[updateAppointment]", err);
+			err.printStackTrace();
+		}
+		return null;
+
+	}
+
+	/**
+	 * Save an appointment
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param appointmentId
+	 *            the id to update
+	 * @param appointmentName
+	 *            name of the calendar event
+	 * @param appointmentLocation
+	 *            location info text of the calendar event
+	 * @param appointmentDescription
+	 *            description test of the calendar event
+	 * @param appointmentstart
+	 *            start as Date yyyy-mm-ddThh:mm:ss
+	 * @param appointmentend
+	 *            end as Date yyyy-mm-ddThh:mm:ss
+	 * @param isDaily
+	 *            if the calendar event should be repeated daily (not
+	 *            implemented)
+	 * @param isWeekly
+	 *            if the calendar event should be repeated weekly (not
+	 *            implemented)
+	 * @param isMonthly
+	 *            if the calendar event should be repeated monthly (not
+	 *            implemented)
+	 * @param isYearly
+	 *            if the calendar event should be repeated yearly (not
+	 *            implemented)
+	 * @param categoryId
+	 *            the category id of the calendar event
+	 * @param remind
+	 *            the reminder type of the calendar event
+	 * @param mmClient
+	 *            List of clients, comma separated string, <br/>
+	 *            sample: 1,firstname,lastname,hans.tier@gmail.com,1,Etc/GMT+1
+	 *            to add multiple clients you can use the same GET parameter in
+	 *            the URL multiple times, for example:
+	 *            &amp;mmClient=1,firstname,lastname,hans
+	 *            .tier@gmail.com,1,Etc/GMT+1&amp;mmClient
+	 *            =2,firstname,lastname,hans.tier@gmail.com,1,Etc/GMT+1
+	 * @param roomType
+	 *            the room type for the calendar event
+	 * @param languageId
+	 *            the language id of the calendar event, notification emails
+	 *            will be send in this language
+	 * @param isPasswordProtected
+	 *            if the room is password protected
+	 * @param password
+	 *            the password for the room
+	 *            
+	 * @return - id of appointment updated
+	 */
+	public Long updateAppointment(String SID, Long appointmentId,
+			String appointmentName, String appointmentLocation,
+			String appointmentDescription, Calendar appointmentstart,
+			Calendar appointmentend, Boolean isDaily, Boolean isWeekly,
+			Boolean isMonthly, Boolean isYearly, Long categoryId, Long remind,
+			String[] mmClient, Long roomType, Long languageId,
+			Boolean isPasswordProtected, String password) throws AxisFault {
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(user_level) || AuthLevelUtil.checkAdminLevel(user_level)) {
+				// fine
+			} else if (AuthLevelUtil.checkUserLevel(user_level)) {
+				// check if the appointment belongs to the current user
+				Appointment a = appointmentDao.get(appointmentId);
+				if (!a.getOwner().getUser_id().equals(users_id)) {
+					throw new AxisFault("The Appointment cannot be updated by the given user");
+				}
+			} else {
+				throw new AxisFault("Not allowed to preform that action, Authenticate the SID first");
+			}
+
+			Appointment a = appointmentDao.get(appointmentId);
+			a.setTitle(appointmentName);
+			a.setLocation(appointmentLocation);
+			a.setDescription(appointmentDescription);
+			a.setStart(appointmentstart.getTime());
+			a.setEnd(appointmentend.getTime());
+			a.setIsDaily(isDaily);
+			a.setIsWeekly(isWeekly);
+			a.setIsMonthly(isMonthly);
+			a.setIsYearly(isYearly);
+			a.setCategory(appointmentCategoryDao.get(categoryId));
+			a.setRemind(appointmentReminderTypDao.get(remind));
+			a.getRoom().setComment(appointmentDescription);
+			a.getRoom().setName(appointmentName);
+			a.getRoom().setRoomtype(roomTypeDao.get(roomType));
+			a.setOwner(userDao.get(users_id));
+			a.setPasswordProtected(isPasswordProtected);
+			a.setPassword(password);
+			a.setMeetingMembers(new ArrayList<MeetingMember>());
+			for (String singleClient : mmClient) {
+				MeetingMember mm = appointmentLogic.getMeetingMember(users_id, languageId, singleClient);
+				mm.setAppointment(a);
+				a.getMeetingMembers().add(mm);
+			}
+			return appointmentDao.update(a, users_id).getId();
+		} catch (Exception err) {
+			log.error("[updateAppointment]", err);
+			throw new AxisFault(err.getMessage());
+		}
+	}
+
+	/**
+	 * 
+	 * delete a calendar event
+	 * 
+	 * If the given SID is from an Administrator or Web-Service user, the user
+	 * can delete any appointment.<br/>
+	 * If the SID is assigned to a simple user, he can only delete appointments
+	 * where he is also the owner/creator of the appointment
+	 * 
+	 * @param SID
+	 *            an authenticated SID
+	 * @param appointmentId
+	 *            the id to delete
+	 * @param language_id
+	 *            the language id in which the notifications for the deleted
+	 *            appointment are send
+	 * @return - id of appointment deleted
+	 */
+	public Long deleteAppointment(String SID, Long appointmentId, Long language_id) throws AxisFault {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			Appointment a = appointmentDao.get(appointmentId);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level) || AuthLevelUtil.checkAdminLevel(user_level)) {
+				// fine
+			} else if (AuthLevelUtil.checkUserLevel(user_level)) {
+				// check if the appointment belongs to the current user
+				if (!a.getOwner().getUser_id().equals(users_id)) {
+					throw new AxisFault("The Appointment cannot be updated by the given user");
+				}
+			} else {
+				throw new AxisFault("Not allowed to preform that action, Authenticate the SID first");
+			}
+			appointmentDao.delete(a, users_id); //FIXME check this !!!!
+			return a.getId();
+		} catch (Exception err) {
+			log.error("[deleteAppointment]", err);
+			throw new AxisFault(err.getMessage());
+		}
+	}
+
+	/**
+	 * 
+	 * Load a calendar event by its room id
+	 * 
+	 * @param SID
+	 * @param room_id
+	 * @return - calendar event by its room id
+	 */
+	public Appointment getAppointmentByRoomId(String SID, Long room_id) {
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				Appointment appointment = new Appointment();
+
+				Appointment appStored = appointmentDao.getAppointmentByRoomId(
+						users_id, room_id);
+
+				appointment.setStart(appStored
+						.getStart());
+				appointment.setEnd(appStored
+						.getEnd());
+
+				return appointment;
+			}
+
+		} catch (Exception err) {
+			log.error("[getAppointmentByRoomId]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * Get all categories of calendar events
+	 * 
+	 * @param SID
+	 * @return - all categories of calendar events
+	 */
+	public List<AppointmentCategory> getAppointmentCategoryList(String SID) {
+		log.debug("AppointmenetCategoryService.getAppointmentCategoryList SID : "
+				+ SID);
+
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				List<AppointmentCategory> res = appointmentCategoryDao
+						.getAppointmentCategoryList();
+
+				if (res == null || res.size() < 1)
+					log.debug("no AppointmentCategories found");
+				else {
+					for (int i = 0; i < res.size(); i++) {
+						AppointmentCategory ac = res.get(i);
+						log.debug("found appCategory : " + ac.getName());
+					}
+				}
+
+				return res;
+			} else {
+				log.error("AppointmenetCategoryService.getAppointmentCategoryList : UserLevel Error");
+			}
+		} catch (Exception err) {
+			log.error("[getAppointmentCategory]", err);
+		}
+		return null;
+
+	}
+
+	/**
+	 * Get all reminder types for calendar events
+	 * 
+	 * @param SID
+	 * @return - all reminder types for calendar events
+	 */
+	public List<AppointmentReminderTyps> getAppointmentReminderTypList(
+			String SID) {
+		log.debug("getAppointmentReminderTypList");
+
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				User user = userManager.getUserById(users_id);
+				long language_id = (user == null) ? 1 : user.getLanguage_id();
+				List<AppointmentReminderTyps> res = appointmentReminderTypDao
+						.getAppointmentReminderTypList(language_id);
+
+				if (res == null || res.size() < 1) {
+					log.debug("no remindertyps found!");
+				} else {
+					for (int i = 0; i < res.size(); i++) {
+						log.debug("found reminder " + res.get(i).getName());
+					}
+				}
+
+				return res;
+			} else
+				log.debug("getAppointmentReminderTypList  :error - wrong authlevel!");
+		} catch (Exception err) {
+			log.error("[getAppointmentReminderTypList]", err);
+		}
+		return null;
+	}
+}
diff --git a/src/axis/java/org/apache/openmeetings/axis/services/CalendarWebServiceFacade.java b/src/axis/java/org/apache/openmeetings/axis/services/CalendarWebServiceFacade.java
new file mode 100644
index 0000000..429bec2
--- /dev/null
+++ b/src/axis/java/org/apache/openmeetings/axis/services/CalendarWebServiceFacade.java
@@ -0,0 +1,113 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.axis.services;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.axis2.AxisFault;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.db.entity.calendar.AppointmentCategory;
+import org.apache.openmeetings.db.entity.calendar.AppointmentReminderTyps;
+
+public class CalendarWebServiceFacade extends BaseWebService {
+	
+	public List<Appointment> getAppointmentByRange(String SID, Date starttime,
+			Date endtime) throws AxisFault {
+		return getBean(CalendarWebService.class).getAppointmentByRange(SID, starttime,
+				endtime);
+	}
+
+	public List<Appointment> getAppointmentByRangeForUserId(String SID,
+			long userId, Date starttime, Date endtime) throws AxisFault {
+		return getBean(CalendarWebService.class).getAppointmentByRangeForUserId(SID,
+				userId, starttime, endtime);
+	}
+
+	public Appointment getNextAppointment(String SID) throws AxisFault {
+		return getBean(CalendarWebService.class).getNextAppointment(SID);
+	}
+
+	public Appointment getNextAppointmentForUserId(String SID, long userId)
+			throws AxisFault {
+		return getBean(CalendarWebService.class).getNextAppointmentForUserId(SID,
+				userId);
+	}
+
+	public List<Appointment> searchAppointmentByName(String SID,
+			String appointmentName) throws AxisFault {
+		return getBean(CalendarWebService.class).searchAppointmentByName(SID,
+				appointmentName);
+	}
+
+	public Long saveAppointment(String SID, String appointmentName,
+			String appointmentLocation, String appointmentDescription,
+			Calendar appointmentstart, Calendar appointmentend,
+			Boolean isDaily, Boolean isWeekly, Boolean isMonthly,
+			Boolean isYearly, Long categoryId, Long remind, String[] mmClient,
+			Long roomType, Long languageId,
+			Boolean isPasswordProtected, String password, long roomId) throws AxisFault {
+		return getBean(CalendarWebService.class).saveAppointment(SID, appointmentName,
+				appointmentLocation, appointmentDescription, appointmentstart,
+				appointmentend, isDaily, isWeekly, isMonthly, isYearly,
+				categoryId, remind, mmClient, roomType, languageId,
+				isPasswordProtected, password, roomId);
+	}
+
+	public Long updateAppointmentTimeOnly(String SID, Long appointmentId,
+			Date appointmentstart, Date appointmentend, Long languageId) throws AxisFault {
+		return getBean(CalendarWebService.class).updateAppointmentTimeOnly(SID,
+				appointmentId, appointmentstart, appointmentend, languageId);
+	}
+
+	public Long updateAppointment(String SID, Long appointmentId,
+			String appointmentName, String appointmentLocation,
+			String appointmentDescription, Calendar appointmentstart,
+			Calendar appointmentend, Boolean isDaily, Boolean isWeekly,
+			Boolean isMonthly, Boolean isYearly, Long categoryId, Long remind,
+			String[] mmClient, Long roomType, Long languageId,
+			Boolean isPasswordProtected, String password) throws AxisFault {
+		return getBean(CalendarWebService.class).updateAppointment(SID, appointmentId,
+				appointmentName, appointmentLocation, appointmentDescription,
+				appointmentstart, appointmentend, isDaily, isWeekly, isMonthly,
+				isYearly, categoryId, remind, mmClient, roomType, languageId, isPasswordProtected, password);
+	}
+
+	public Long deleteAppointment(String SID, Long appointmentId,
+			Long language_id) throws AxisFault {
+		return getBean(CalendarWebService.class).deleteAppointment(SID, appointmentId,
+				language_id);
+	}
+
+	public Appointment getAppointmentByRoomId(String SID, Long room_id)
+			throws AxisFault {
+		return getBean(CalendarWebService.class).getAppointmentByRoomId(SID, room_id);
+	}
+
+	public List<AppointmentCategory> getAppointmentCategoryList(String SID)
+			throws AxisFault {
+		return getBean(CalendarWebService.class).getAppointmentCategoryList(SID);
+	}
+
+	public List<AppointmentReminderTyps> getAppointmentReminderTypList(
+			String SID) throws AxisFault {
+		return getBean(CalendarWebService.class).getAppointmentReminderTypList(SID);
+	}
+}
diff --git a/src/axis/java/org/apache/openmeetings/axis/services/FileWebService.java b/src/axis/java/org/apache/openmeetings/axis/services/FileWebService.java
new file mode 100644
index 0000000..05e48e9
--- /dev/null
+++ b/src/axis/java/org/apache/openmeetings/axis/services/FileWebService.java
@@ -0,0 +1,1041 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.axis.services;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.InputStream;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.LinkedHashMap;
+
+import org.apache.axis2.AxisFault;
+import org.apache.openmeetings.data.file.FileProcessor;
+import org.apache.openmeetings.data.file.FileUtils;
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dto.file.FileExplorerObject;
+import org.apache.openmeetings.db.dto.file.LibraryPresentation;
+import org.apache.openmeetings.db.entity.file.FileExplorerItem;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.documents.LoadLibraryPresentation;
+import org.apache.openmeetings.util.AuthLevelUtil;
+import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.openmeetings.util.StoredFile;
+import org.apache.openmeetings.util.process.ConverterProcessResultList;
+import org.apache.openmeetings.util.process.FileImportError;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 
+ * Contains methods to import and upload files into the Files section of the
+ * conference room and the personal drive of any user
+ * 
+ * @author sebawagner
+ * @webservice FileService
+ * 
+ */
+public class FileWebService {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			FileWebService.class, OpenmeetingsVariables.webAppRootKey);
+	@Autowired
+	private SessiondataDao sessiondataDao;
+	@Autowired
+	private UserManager userManager;
+	@Autowired
+	private FileExplorerItemDao fileExplorerItemDao;
+	@Autowired
+	private FileProcessor fileProcessor;
+	@Autowired
+	private FileUtils fileUtils;
+
+	/**
+	 * 
+	 * Import file from external source
+	 * 
+	 * to upload a file to a room-drive you specify: externalUserId, user if of
+	 * openmeetings user for which we upload the file room_id = openmeetings
+	 * room id isOwner = 0 parentFolderId = 0
+	 * 
+	 * to upload a file to a private-drive you specify: externalUserId, user if
+	 * of openmeetings user for which we upload the file room_id = openmeetings
+	 * room id isOwner = 1 parentFolderId = -2
+	 * 
+	 * @param SID The logged in session id with minimum webservice level
+	 * @param externalUserId
+	 *            the external user id =&gt; If the file should goto a private
+	 *            section of any user, this number needs to be set
+	 * @param externalFileId
+	 *            the external file-type to identify the file later
+	 * @param externalType
+	 *            the name of the external system
+	 * @param room_id
+	 *            the room Id, if the file goes to the private folder of an
+	 *            user, you can set a random number here
+	 * @param isOwner
+	 *            specify a 1/true AND parentFolderId==-2 to make the file goto
+	 *            the private section
+	 * @param path
+	 *            http-path where we can grab the file from, the file has to be
+	 *            accessible from the OpenMeetings server
+	 * @param parentFolderId
+	 *            specify a parentFolderId==-2 AND isOwner == 1/true AND to make
+	 *            the file goto the private section
+	 * @param fileSystemName
+	 *            the filename =&gt; Important WITH file extension!
+	 *            
+	 * @return - array of file import errors
+	 * @throws AxisFault
+	 */
+	public FileImportError[] importFile(String SID, String externalUserId,
+			Long externalFileId, String externalType, Long room_id,
+			boolean isOwner, String path, Long parentFolderId,
+			String fileSystemName) throws AxisFault {
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long User_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(User_level)) {
+
+				URL url = new URL(path);
+				URLConnection uc = url.openConnection();
+				InputStream inputstream = new BufferedInputStream(
+						uc.getInputStream());
+
+				User externalUser = userManager.getUserByExternalIdAndType(
+						externalUserId, externalType);
+
+				LinkedHashMap<String, Object> hs = new LinkedHashMap<String, Object>();
+				hs.put("user", externalUser);
+
+				ConverterProcessResultList returnError = fileProcessor
+						.processFile(externalUser.getUser_id(), room_id,
+								isOwner, inputstream, parentFolderId,
+								fileSystemName,
+								externalFileId, externalType);
+
+				// Flash cannot read the response of an upload
+				// httpServletResponse.getWriter().print(returnError);
+				hs.put("message", "library");
+				hs.put("action", "newFile");
+				hs.put("fileExplorerItem", fileExplorerItemDao
+						.getFileExplorerItemsById(returnError.getFileExplorerItemId()));
+				hs.put("error", returnError.getLogMessage());
+				hs.put("fileName", returnError.getCompleteName());
+				
+				//FIXME: Send event to UI that there is a new file
+
+				return returnError.convertToFileImportErrors();
+
+			}
+		} catch (Exception err) {
+			log.error("[importFile]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * Import file from external source
+	 * 
+	 * to upload a file to a room-drive you specify: internalUserId, user if of
+	 * openmeetings user for which we upload the file room_id = openmeetings
+	 * room id isOwner = 0 parentFolderId = 0
+	 * 
+	 * to upload a file to a private-drive you specify: internalUserId, user if
+	 * of openmeetings user for which we upload the file room_id = openmeetings
+	 * room id isOwner = 1 parentFolderId = -2
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as logged in
+	 * @param internalUserId
+	 *            the openmeetings user id =&gt; If the file should goto a private
+	 *            section of any user, this number needs to be se
+	 * @param externalFileId
+	 *            the external file-type to identify the file later
+	 * @param externalType
+	 *            the name of the external system
+	 * @param room_id
+	 *            the room Id, if the file goes to the private folder of an
+	 *            user, you can set a random number here
+	 * @param isOwner
+	 *            specify a 1/true AND parentFolderId==-2 to make the file goto
+	 *            the private section
+	 * @param path
+	 *            http-path where we can grab the file from, the file has to be
+	 *            accessible from the OpenMeetings server
+	 * @param parentFolderId
+	 *            specify a parentFolderId==-2 AND isOwner == 1/true AND to make
+	 *            the file goto the private section
+	 * @param fileSystemName
+	 *            the filename =&gt; Important WITH file extension!
+	 *            
+	 * @return - array of file import errors
+	 * @throws AxisFault
+	 */
+	public FileImportError[] importFileByInternalUserId(String SID,
+			Long internalUserId, Long externalFileId, String externalType,
+			Long room_id, boolean isOwner, String path, Long parentFolderId,
+			String fileSystemName) throws AxisFault {
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long User_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(User_level)) {
+
+				URL url = new URL(path);
+				URLConnection uc = url.openConnection();
+				InputStream inputstream = new BufferedInputStream(
+						uc.getInputStream());
+
+				User internalUser = userManager.getUserById(internalUserId);
+
+				LinkedHashMap<String, Object> hs = new LinkedHashMap<String, Object>();
+				hs.put("user", internalUser);
+
+				ConverterProcessResultList returnError = fileProcessor
+						.processFile(internalUser.getUser_id(), room_id,
+								isOwner, inputstream, parentFolderId,
+								fileSystemName, 
+								externalFileId, externalType);
+
+				// Flash cannot read the response of an upload
+				// httpServletResponse.getWriter().print(returnError);
+				hs.put("message", "library");
+				hs.put("action", "newFile");
+				hs.put("fileExplorerItem", fileExplorerItemDao
+						.getFileExplorerItemsById(returnError.getFileExplorerItemId()));
+				hs.put("error", returnError);
+				hs.put("fileName", returnError.getCompleteName());
+				
+				//FIXME: Notificate UI of clients of new file
+
+				return returnError.convertToFileImportErrors();
+
+			}
+		} catch (Exception err) {
+			log.error("[importFileByInternalUserId]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * to add a folder to the private drive, set parentFileExplorerItemId = 0
+	 * and isOwner to 1/true and externalUserId/externalUserType to a valid user
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as logged in
+	 * @param externalUserId
+	 *            the external file-type to identify the file later
+	 * @param parentFileExplorerItemId
+	 * @param folderName
+	 *            the name of the folder
+	 * @param room_id
+	 *            the room Id, if the file goes to the private folder of an
+	 *            user, you can set a random number here
+	 * @param isOwner
+	 *            specify a 1/true AND parentFolderId==-2 to make the file goto
+	 *            the private section
+	 * @param externalFilesid
+	 *            the external file-type to identify the file later
+	 * @param externalType
+	 *            the name of the external system
+	 *            
+	 * @return - id of folder added
+	 * @throws AxisFault
+	 */
+	public Long addFolderByExternalUserIdAndType(String SID,
+			String externalUserId, Long parentFileExplorerItemId,
+			String folderName, Long room_id, Boolean isOwner,
+			Long externalFilesid, String externalType) throws AxisFault {
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long User_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(User_level)) {
+
+				User userExternal = userManager.getUserByExternalIdAndType(
+						externalUserId, externalType);
+
+				Long userId = userExternal.getUser_id();
+
+				log.debug("addFolder " + parentFileExplorerItemId);
+
+				if (parentFileExplorerItemId == -2 && isOwner) {
+					// users_id (OwnerID) => only set if its directly root in
+					// Owner Directory,
+					// other Folders and Files maybe are also in a Home
+					// directory
+					// but just because their parent is
+					return fileExplorerItemDao.add(folderName, "", 0L, userId,
+							room_id, userId, true, // isFolder
+							false, // isImage
+							false, // isPresentation
+							"", // WML Path
+							false, // isStoredWML file
+							false, // isXmlFile
+							externalFilesid, externalType);
+				} else {
+					return fileExplorerItemDao.add(folderName, "",
+							parentFileExplorerItemId, null, room_id, userId,
+							true, // isFolder
+							false, // isImage
+							false, // isPresentation
+							"", // WML Path
+							false, // isStoredWML file
+							false, // isXmlFile
+							externalFilesid, externalType);
+				}
+			}
+
+		} catch (Exception err) {
+			log.error("[addFolderByExternalUserIdAndType]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * to add a folder to the private drive, set parentFileExplorerItemId = 0
+	 * and isOwner to 1/true and userId to a valid user
+	 * 
+	 * @param SID The SID of the User. This SID must be marked as logged in
+	 * @param userId the openmeetings user id 
+	 * @param parentFileExplorerItemId specify a parentFolderId==-2 AND isOwner == 1/true AND to make the file goto the private section  
+	 * @param folderName the name of the folder 
+	 * @param room_id the room Id, if the file goes to the private folder of an user, you can set a random number here 
+	 * @param isOwner specify a 1/true AND parentFolderId==-2 to make the file goto the private section 
+	 * @param externalFilesid the external file-type to identify the file later 
+	 * @param externalType the name of the external system
+	 *  
+	 * @return - id of the folder
+	 * @throws AxisFault
+	 */
+	public Long addFolderByUserId(String SID, Long userId,
+			Long parentFileExplorerItemId, String folderName, Long room_id,
+			Boolean isOwner, Long externalFilesid, String externalType)
+			throws AxisFault {
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long User_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(User_level)) {
+
+				log.debug("addFolder " + parentFileExplorerItemId);
+
+				if (parentFileExplorerItemId == -2 && isOwner) {
+					// users_id (OwnerID) => only set if its directly root in
+					// Owner Directory,
+					// other Folders and Files maybe are also in a Home
+					// directory
+					// but just because their parent is
+					return fileExplorerItemDao.add(folderName, "", 0L, userId,
+							room_id, userId, true, // isFolder
+							false, // isImage
+							false, // isPresentation
+							"", // WML Path
+							false, // isStoredWML file
+							false, // isXmlFile
+							externalFilesid, externalType);
+				} else {
+					return fileExplorerItemDao.add(folderName, "",
+							parentFileExplorerItemId, null, room_id, userId,
+							true, // isFolder
+							false, // isImage
+							false, // isPresentation
+							"", // WML Path
+							false, // isStoredWML file
+							false, // isXmlFile
+							externalFilesid, externalType);
+				}
+			}
+
+		} catch (Exception err) {
+			log.error("[addFolderByUserId]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 * Add a folder by the current user - similar to RTMP Call
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as logged in
+	 * @param parentFileExplorerItemId
+	 *            parent folder id
+	 * @param fileName
+	 *            the file name
+	 * @param room_id
+	 *            the room id
+	 * @param isOwner
+	 * @return - id of the folder
+	 */
+	public Long addFolderSelf(String SID, Long parentFileExplorerItemId,
+			String fileName, Long room_id, Boolean isOwner) throws AxisFault {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				log.debug("addFolder " + parentFileExplorerItemId);
+
+				if (parentFileExplorerItemId == 0 && isOwner) {
+					// users_id (OwnerID) => only set if its directly root in
+					// Owner Directory,
+					// other Folders and Files maybe are also in a Home
+					// directory
+					// but just because their parent is
+					return fileExplorerItemDao.add(fileName, "",
+							parentFileExplorerItemId, users_id, room_id,
+							users_id, true, // isFolder
+							false, // isImage
+							false, // isPresentation
+							"", // WML Path
+							false, // isStoredWML file
+							false // isXmlFile
+							, 0L, "");
+				} else {
+					return fileExplorerItemDao.add(fileName, "",
+							parentFileExplorerItemId, null, room_id, users_id,
+							true, // isFolder
+							false, // isImage
+							false, // isPresentation
+							"", // WML Paht
+							false, // isStoredWML file
+							false // isXmlFile
+							, 0L, "");
+				}
+			}
+		} catch (Exception err) {
+			log.error("[getFileExplorerByParent] ", err);
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 * deletes a file by its external Id and type
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as logged in
+	 * @param externalFilesid
+	 *            the od of the file or folder
+	 * @param externalType
+	 *            the externalType
+	 * @return - null
+	 */
+	public Long deleteFileOrFolderByExternalIdAndType(String SID,
+			Long externalFilesid, String externalType) throws AxisFault {
+
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long User_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(User_level)) {
+
+				fileExplorerItemDao.deleteFileExplorerItemByExternalIdAndType(
+						externalFilesid, externalType);
+
+			}
+
+		} catch (Exception err) {
+			log.error("[deleteFileOrFolderByExternalIdAndType]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 * deletes files or folders based on it id
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as logged in
+	 * @param fileExplorerItemId
+	 *            the id of the file or folder
+	 * @return - null
+	 */
+	public Long deleteFileOrFolder(String SID, Long fileExplorerItemId)
+			throws AxisFault {
+
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long User_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(User_level)) {
+
+				fileExplorerItemDao.deleteFileExplorerItem(fileExplorerItemId);
+
+			}
+
+		} catch (Exception err) {
+			log.error("[deleteFileOrFolder]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 * deletes files or folders based on it id
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as logged in
+	 * @param fileExplorerItemId
+	 *            the id of the file or folder
+	 * @return - null
+	 */
+	public Long deleteFileOrFolderSelf(String SID, Long fileExplorerItemId)
+			throws AxisFault {
+
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long User_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkUserLevel(User_level)) {
+
+				// TODO: Check if user has access or not to the file
+
+				fileExplorerItemDao.deleteFileExplorerItem(fileExplorerItemId);
+
+			}
+
+		} catch (Exception err) {
+			log.error("[deleteFileOrFolder]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * Get available import File Extension allowed during import
+	 * 
+	 * @return the array of the import file extensions
+	 * @throws AxisFault
+	 */
+	public String[] getImportFileExtensions() throws AxisFault {
+		try {
+
+			return StoredFile.getExtensions();
+
+		} catch (Exception err) {
+			log.error("[getImportFileExtensions]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * Get a LibraryPresentation-Object for a certain file
+	 * 
+	 * @param SID
+	 * @param parentFolder
+	 * 
+	 * @return - LibraryPresentation-Object for a certain file
+	 * @throws AxisFault
+	 */
+	public LibraryPresentation getPresentationPreviewFileExplorer(String SID,
+			String parentFolder) throws AxisFault {
+
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+
+				File working_dir = new File(OmFileHelper.getUploadProfilesDir(), parentFolder);
+				log.debug("############# working_dir : " + working_dir);
+
+				File file = new File(working_dir, OmFileHelper.libraryFileName);
+
+				if (!file.exists()) {
+					throw new Exception(file.getCanonicalPath() + ": does not exist ");
+				}
+
+				return LoadLibraryPresentation.parseLibraryFileToObject(file);
+
+			} else {
+
+				throw new Exception("not Authenticated");
+
+			}
+
+		} catch (Exception e) {
+			log.error("[getListOfFilesByAbsolutePath]", e);
+			return null;
+		}
+
+	}
+
+	/**
+	 * Get a File Explorer Object by a given Room and owner id
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as logged in
+	 * @param room_id
+	 *            Room id
+	 * @param owner_id
+	 *            Owner id
+	 * @return - File Explorer Object by a given Room and owner id
+	 * @throws AxisFault
+	 */
+	public FileExplorerObject getFileExplorerByRoom(String SID, Long room_id,
+			Long owner_id) throws AxisFault {
+
+		try {
+
+			Long webservice_users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager
+					.getUserLevelByID(webservice_users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+
+				log.debug("room_id " + room_id);
+
+				FileExplorerObject fileExplorerObject = new FileExplorerObject();
+
+				// Home File List
+				FileExplorerItem[] fList = fileExplorerItemDao
+						.getFileExplorerItemsByOwner(owner_id, 0L);
+
+				long homeFileSize = 0;
+
+				for (FileExplorerItem homeChildExplorerItem : fList) {
+					log.debug("FileExplorerItem fList "
+							+ homeChildExplorerItem.getFileName());
+					homeFileSize += fileUtils
+							.getSizeOfDirectoryAndSubs(homeChildExplorerItem);
+				}
+
+				fileExplorerObject.setUserHome(fList);
+				fileExplorerObject.setUserHomeSize(homeFileSize);
+
+				// Public File List
+				FileExplorerItem[] rList = fileExplorerItemDao
+						.getFileExplorerItemsByRoom(room_id, 0L);
+
+				long roomFileSize = 0;
+
+				for (FileExplorerItem homeChildExplorerItem : rList) {
+					log.debug("FileExplorerItem rList "
+							+ homeChildExplorerItem.getFileName());
+					roomFileSize += fileUtils
+							.getSizeOfDirectoryAndSubs(homeChildExplorerItem);
+				}
+
+				fileExplorerObject.setRoomHome(rList);
+				fileExplorerObject.setRoomHomeSize(roomFileSize);
+
+				return fileExplorerObject;
+
+			} else {
+
+				throw new Exception("not Authenticated");
+
+			}
+
+		} catch (Exception e) {
+			log.error("[getFileExplorerByRoom]", e);
+			return null;
+		}
+	}
+
+	/**
+	 * Get a File Explorer Object by a given Room
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as logged in
+	 * @param room_id
+	 *            Room Id
+	 * @return - File Explorer Object by a given Room
+	 * @throws AxisFault
+	 */
+	public FileExplorerObject getFileExplorerByRoomSelf(String SID, Long room_id)
+			throws AxisFault {
+
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				log.debug("room_id " + room_id);
+
+				FileExplorerObject fileExplorerObject = new FileExplorerObject();
+
+				// Home File List
+				FileExplorerItem[] fList = fileExplorerItemDao
+						.getFileExplorerItemsByOwner(users_id, 0L);
+
+				long homeFileSize = 0;
+
+				for (FileExplorerItem homeChildExplorerItem : fList) {
+					log.debug("FileExplorerItem fList "
+							+ homeChildExplorerItem.getFileName());
+					homeFileSize += fileUtils
+							.getSizeOfDirectoryAndSubs(homeChildExplorerItem);
+				}
+
+				fileExplorerObject.setUserHome(fList);
+				fileExplorerObject.setUserHomeSize(homeFileSize);
+
+				// Public File List
+				FileExplorerItem[] rList = fileExplorerItemDao
+						.getFileExplorerItemsByRoom(room_id, 0L);
+
+				long roomFileSize = 0;
+
+				for (FileExplorerItem homeChildExplorerItem : rList) {
+					log.debug("FileExplorerItem rList "
+							+ homeChildExplorerItem.getFileName());
+					roomFileSize += fileUtils
+							.getSizeOfDirectoryAndSubs(homeChildExplorerItem);
+				}
+
+				fileExplorerObject.setRoomHome(rList);
+				fileExplorerObject.setRoomHomeSize(roomFileSize);
+
+				return fileExplorerObject;
+
+			} else {
+
+				throw new Exception("not Authenticated");
+
+			}
+
+		} catch (Exception e) {
+			log.error("[getFileExplorerByRoomSelf]", e);
+			return null;
+		}
+	}
+
+	/**
+	 * Get FileExplorerItem list by parent folder
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as logged in
+	 * @param parentFileExplorerItemId
+	 *            the parent folder id
+	 * @param room_id
+	 *            the room id
+	 * @param isOwner
+	 *            true if its a private drive
+	 * @param owner_id
+	 *            the owner id
+	 * @return - FileExplorerItem list by parent folder
+	 * @throws AxisFault
+	 */
+	public FileExplorerItem[] getFileExplorerByParent(String SID,
+			Long parentFileExplorerItemId, Long room_id, Boolean isOwner,
+			Long owner_id) throws AxisFault {
+
+		try {
+
+			Long webservice_users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager
+					.getUserLevelByID(webservice_users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+
+				log.debug("parentFileExplorerItemId "
+						+ parentFileExplorerItemId);
+
+				if (parentFileExplorerItemId == 0) {
+					if (isOwner) {
+						return fileExplorerItemDao.getFileExplorerItemsByOwner(
+								owner_id, parentFileExplorerItemId);
+					} else {
+						return fileExplorerItemDao.getFileExplorerItemsByRoom(
+								room_id, parentFileExplorerItemId);
+					}
+				} else {
+					return fileExplorerItemDao
+							.getFileExplorerItemsByParent(parentFileExplorerItemId);
+				}
+
+			}
+		} catch (Exception err) {
+			log.error("[getFileExplorerByParent] ", err);
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 * Get FileExplorerItem[] by parent and owner id
+	 * 
+	 * @param SID
+	 *            SID The SID of the User. This SID must be marked as logged in
+	 * @param parentFileExplorerItemId
+	 *            the parent folder id
+	 * @param room_id
+	 *            the room id
+	 * @param isOwner
+	 *            true to request private drive
+	 * @return - list of file explorer items
+	 * @throws AxisFault
+	 */
+	public FileExplorerItem[] getFileExplorerByParentSelf(String SID,
+			Long parentFileExplorerItemId, Long room_id, Boolean isOwner)
+			throws AxisFault {
+
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				log.debug("parentFileExplorerItemId "
+						+ parentFileExplorerItemId);
+
+				if (parentFileExplorerItemId == 0) {
+					if (isOwner) {
+						return fileExplorerItemDao.getFileExplorerItemsByOwner(
+								users_id, parentFileExplorerItemId);
+					} else {
+						return fileExplorerItemDao.getFileExplorerItemsByRoom(
+								room_id, parentFileExplorerItemId);
+					}
+				} else {
+					return fileExplorerItemDao
+							.getFileExplorerItemsByParent(parentFileExplorerItemId);
+				}
+
+			}
+		} catch (Exception err) {
+			log.error("[getFileExplorerByParentSelf] ", err);
+		}
+		return null;
+	}
+
+	/**
+	 * update a file or folder name
+	 * 
+	 * @param SID
+	 *            SID The SID of the User. This SID must be marked as logged in
+	 * @param fileExplorerItemId
+	 *            file or folder id
+	 * @param fileName
+	 *            new file or folder name
+	 * @return - null
+	 * @throws AxisFault
+	 */
+	public Long updateFileOrFolderName(String SID, Long fileExplorerItemId,
+			String fileName) throws AxisFault {
+
+		try {
+
+			Long webservice_users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager
+					.getUserLevelByID(webservice_users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+
+				log.debug("deleteFileOrFolder " + fileExplorerItemId);
+
+				fileExplorerItemDao.updateFileOrFolderName(fileExplorerItemId,
+						fileName);
+
+			}
+		} catch (Exception err) {
+			log.error("[updateFileOrFolderName] ", err);
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 * update a file or folder name
+	 * 
+	 * @param SID
+	 *            SID The SID of the User. This SID must be marked as logged in
+	 * @param fileExplorerItemId
+	 *            file or folder id
+	 * @param fileName
+	 *            new file or folder name
+	 * @return - null
+	 * @throws AxisFault
+	 */
+	public Long updateFileOrFolderNameSelf(String SID, Long fileExplorerItemId,
+			String fileName) throws AxisFault {
+
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				// TODO: check if this user is allowed to change this file
+				/*
+				 * FileExplorerItem fileExItem =
+				 * fileExplorerItemDao.getFileExplorerItemsById
+				 * (fileExplorerItemId);
+				 * 
+				 * if (fileExItem.getOwnerId() != null &&
+				 * !fileExItem.getOwnerId().equals(users_id)) { throw new
+				 * Exception(
+				 * "This user is not the owner of the file and not allowed to edit its name"
+				 * ); }
+				 */
+
+				log.debug("deleteFileOrFolder " + fileExplorerItemId);
+
+				fileExplorerItemDao.updateFileOrFolderName(fileExplorerItemId,
+						fileName);
+
+			}
+		} catch (Exception err) {
+			log.error("[updateFileOrFolderNameSelf] ", err);
+		}
+		return null;
+	}
+
+	/**
+	 * move a file or folder
+	 * 
+	 * @param SID
+	 *            SID The SID of the User. This SID must be marked as logged in
+	 * @param fileExplorerItemId
+	 *            current file or folder id to be moved
+	 * @param newParentFileExplorerItemId
+	 *            new parent folder id
+	 * @param room_id
+	 *            room id
+	 * @param isOwner
+	 *            if true owner id will be set
+	 * @param moveToHome
+	 *            if true move to private drive
+	 * @param owner_id
+	 *            owner id
+	 * @return - null
+	 * @throws AxisFault
+	 */
+	public Long moveFile(String SID, Long fileExplorerItemId,
+			Long newParentFileExplorerItemId, Long room_id, Boolean isOwner,
+			Boolean moveToHome, Long owner_id) throws AxisFault {
+
+		try {
+
+			Long webservice_users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager
+					.getUserLevelByID(webservice_users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+
+				log.debug("deleteFileOrFolder " + fileExplorerItemId);
+
+				fileExplorerItemDao
+						.moveFile(fileExplorerItemId,
+								newParentFileExplorerItemId, room_id, isOwner,
+								owner_id);
+
+				FileExplorerItem fileExplorerItem = fileExplorerItemDao
+						.getFileExplorerItemsById(fileExplorerItemId);
+
+				if (moveToHome) {
+					// set this file and all subfiles and folders the ownerId
+					fileUtils.setFileToOwnerOrRoomByParent(fileExplorerItem,
+							owner_id, null);
+
+				} else {
+					// set this file and all subfiles and folders the room_id
+					fileUtils.setFileToOwnerOrRoomByParent(fileExplorerItem,
+							null, room_id);
+
+				}
+
+			}
+		} catch (Exception err) {
+			log.error("[moveFile] ", err);
+		}
+		return null;
+	}
+
+	/**
+	 * move a file or folder
+	 * 
+	 * @param SID
+	 *            SID The SID of the User. This SID must be marked as logged in
+	 * @param fileExplorerItemId
+	 *            current file or folder id to be moved
+	 * @param newParentFileExplorerItemId
+	 *            new parent folder id
+	 * @param room_id
+	 *            room id
+	 * @param isOwner
+	 *            if true owner id will be set
+	 * @param moveToHome
+	 *            move to private drive
+	 * @return - null
+	 * @throws AxisFault
+	 */
+	public Long moveFileSelf(String SID, Long fileExplorerItemId,
+			Long newParentFileExplorerItemId, Long room_id, Boolean isOwner,
+			Boolean moveToHome) throws AxisFault {
+
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+				
+				// A test is required that checks if the user is allowed to move the file
+
+				log.debug("moveFileSelf " + fileExplorerItemId);
+
+				fileExplorerItemDao
+						.moveFile(fileExplorerItemId,
+								newParentFileExplorerItemId, room_id, isOwner,
+								users_id);
+
+				FileExplorerItem fileExplorerItem = fileExplorerItemDao
+						.getFileExplorerItemsById(fileExplorerItemId);
+
+				if (moveToHome) {
+					// set this file and all subfiles and folders the ownerId
+					fileUtils.setFileToOwnerOrRoomByParent(fileExplorerItem,
+							users_id, null);
+
+				} else {
+					// set this file and all subfiles and folders the room_id
+					fileUtils.setFileToOwnerOrRoomByParent(fileExplorerItem,
+							null, room_id);
+
+				}
+
+			}
+		} catch (Exception err) {
+			log.error("[moveFile] ", err);
+		}
+		return null;
+	}
+
+}
diff --git a/src/axis/java/org/apache/openmeetings/axis/services/FileWebServiceFacade.java b/src/axis/java/org/apache/openmeetings/axis/services/FileWebServiceFacade.java
new file mode 100644
index 0000000..92a3083
--- /dev/null
+++ b/src/axis/java/org/apache/openmeetings/axis/services/FileWebServiceFacade.java
@@ -0,0 +1,323 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.axis.services;
+
+import org.apache.axis2.AxisFault;
+import org.apache.openmeetings.db.dto.file.FileExplorerObject;
+import org.apache.openmeetings.db.dto.file.LibraryPresentation;
+import org.apache.openmeetings.db.entity.file.FileExplorerItem;
+import org.apache.openmeetings.util.process.FileImportError;
+
+public class FileWebServiceFacade extends BaseWebService {
+
+	/**
+	 * 
+	 * Import file from external source
+	 * 
+	 * to upload a file to a room-drive you specify: externalUserId, user if of
+	 * openmeetings user for which we upload the file room_id = openmeetings
+	 * room id isOwner = 0 parentFolderId = 0
+	 * 
+	 * to upload a file to a private-drive you specify: externalUserId, user if
+	 * of openmeetings user for which we upload the file room_id = openmeetings
+	 * room id isOwner = 1 parentFolderId = -2
+	 * 
+	 * @param SID
+	 * @param externalUserId
+	 *            the external user id =&gt; If the file should goto a private
+	 *            section of any user, this number needs to be set
+	 * @param externalFileId
+	 *            the external file-type to identify the file later
+	 * @param externalType
+	 *            the name of the external system
+	 * @param room_id
+	 *            the room Id, if the file goes to the private folder of an
+	 *            user, you can set a random number here
+	 * @param isOwner
+	 *            specify a 1/true AND parentFolderId==-2 to make the file goto
+	 *            the private section
+	 * @param path
+	 *            http-path where we can grab the file from, the file has to be
+	 *            accessible from the OpenMeetings server
+	 * @param parentFolderId
+	 *            specify a parentFolderId==-2 AND isOwner == 1/true AND to make
+	 *            the file goto the private section
+	 * @param fileSystemName
+	 *            the filename =&gt; Important WITH file extension!
+	 * @return
+	 * @throws AxisFault
+	 */
+	public FileImportError[] importFile(String SID, String externalUserId,
+			Long externalFileId, String externalType, Long room_id,
+			boolean isOwner, String path, Long parentFolderId,
+			String fileSystemName) throws AxisFault {
+		return getBean(FileWebService.class).importFile(SID, externalUserId,
+				externalFileId, externalType, room_id, isOwner, path,
+				parentFolderId, fileSystemName);
+	}
+
+	/**
+	 * 
+	 * Import file from external source
+	 * 
+	 * to upload a file to a room-drive you specify: internalUserId, user if of
+	 * openmeetings user for which we upload the file room_id = openmeetings
+	 * room id isOwner = 0 parentFolderId = 0
+	 * 
+	 * to upload a file to a private-drive you specify: internalUserId, user if
+	 * of openmeetings user for which we upload the file room_id = openmeetings
+	 * room id isOwner = 1 parentFolderId = -2
+	 * 
+	 * @param SID
+	 * @param internalUserId
+	 *            the openmeetings user id =&gt; If the file should goto a private
+	 *            section of any user, this number needs to be set
+	 * @param externalFileId
+	 *            the external file-type to identify the file later
+	 * @param externalType
+	 *            the name of the external system
+	 * @param room_id
+	 *            the room Id, if the file goes to the private folder of an
+	 *            user, you can set a random number here
+	 * @param isOwner
+	 *            specify a 1/true AND parentFolderId==-2 to make the file goto
+	 *            the private section
+	 * @param path
+	 *            http-path where we can grab the file from, the file has to be
+	 *            accessible from the OpenMeetings server
+	 * @param parentFolderId
+	 *            specify a parentFolderId==-2 AND isOwner == 1/true AND to make
+	 *            the file goto the private section
+	 * @param fileSystemName
+	 *            the filename =&gt; Important WITH file extension!
+	 * @return
+	 * @throws AxisFault
+	 */
+	public FileImportError[] importFileByInternalUserId(String SID,
+			Long internalUserId, Long externalFileId, String externalType,
+			Long room_id, boolean isOwner, String path, Long parentFolderId,
+			String fileSystemName) throws AxisFault {
+		return getBean(FileWebService.class).importFileByInternalUserId(SID,
+				internalUserId, externalFileId, externalType, room_id, isOwner,
+				path, parentFolderId, fileSystemName);
+	}
+
+	/**
+	 * 
+	 * to add a folder to the private drive, set parentFileExplorerItemId = 0
+	 * and isOwner to 1/true and externalUserId/externalUserType to a valid user
+	 * 
+	 * @param SID
+	 * @param externalUserId
+	 * @param externalUserType
+	 * @param parentFileExplorerItemId
+	 * @param fileName
+	 * @param room_id
+	 * @param isOwner
+	 * @param externalFilesid
+	 * @param externalType
+	 * @return
+	 * @throws AxisFault
+	 */
+	public Long addFolderByExternalUserIdAndType(String SID,
+			String externalUserId, Long parentFileExplorerItemId,
+			String folderName, Long room_id, Boolean isOwner,
+			Long externalFilesid, String externalType) throws AxisFault {
+		return getBean(FileWebService.class).addFolderByExternalUserIdAndType(SID,
+				externalUserId, parentFileExplorerItemId, folderName, room_id,
+				isOwner, externalFilesid, externalType);
+
+	}
+
+	/**
+	 * 
+	 * to add a folder to the private drive, set parentFileExplorerItemId = 0
+	 * and isOwner to 1/true and userId to a valid user
+	 * 
+	 * @param SID
+	 * @param userId
+	 * @param parentFileExplorerItemId
+	 * @param fileName
+	 * @param room_id
+	 * @param isOwner
+	 * @param externalFilesid
+	 * @param externalType
+	 * @return
+	 * @throws AxisFault
+	 */
+	public Long addFolderByUserId(String SID, Long userId,
+			Long parentFileExplorerItemId, String folderName, Long room_id,
+			Boolean isOwner, Long externalFilesid, String externalType)
+			throws AxisFault {
+		return getBean(FileWebService.class).addFolderByUserId(SID, userId,
+				parentFileExplorerItemId, folderName, room_id, isOwner,
+				externalFilesid, externalType);
+	}
+
+	/**
+	 * 
+	 * Add a folder by the current user - similar to RTMP Call
+	 * 
+	 * @param SID
+	 * @param parentFileExplorerItemId
+	 * @param fileName
+	 * @param room_id
+	 * @param isOwner
+	 * @return
+	 */
+	public Long addFolderSelf(String SID, Long parentFileExplorerItemId,
+			String fileName, Long room_id, Boolean isOwner) throws AxisFault {
+		return getBean(FileWebService.class).addFolderSelf(SID,
+				parentFileExplorerItemId, fileName, room_id, isOwner);
+	}
+	
+	public Long addFolderSelfInternal(String SID, Long parentFileExplorerItemId,
+			String fileName, Long roomId, Boolean isOwner) throws AxisFault {
+		return getBean(FileWebService.class).addFolderSelf(SID,
+				parentFileExplorerItemId, fileName, roomId, isOwner);
+	}
+	
+
+	/**
+	 * 
+	 * deletes a file by its external Id and type
+	 * 
+	 * @param SID
+	 * @param externalFilesid
+	 * @param externalType
+	 * @return
+	 */
+	public Long deleteFileOrFolderByExternalIdAndType(String SID,
+			Long externalFilesid, String externalType) throws AxisFault {
+		return getBean(FileWebService.class).deleteFileOrFolderByExternalIdAndType(
+				SID, externalFilesid, externalType);
+	}
+
+	/**
+	 * 
+	 * deletes files or folders based on it id
+	 * 
+	 * @param SID
+	 * @param fileExplorerItemId
+	 * @return
+	 */
+	public Long deleteFileOrFolder(String SID, Long fileExplorerItemId)
+			throws AxisFault {
+		return getBean(FileWebService.class).deleteFileOrFolder(SID,
+				fileExplorerItemId);
+	}
+
+	/**
+	 * 
+	 * deletes files or folders based on it id
+	 * 
+	 * @param SID
+	 * @param fileExplorerItemId
+	 * @return
+	 */
+	public Long deleteFileOrFolderSelf(String SID, Long fileExplorerItemId)
+			throws AxisFault {
+		return getBean(FileWebService.class).deleteFileOrFolderSelf(SID,
+				fileExplorerItemId);
+	}
+
+	public String[] getImportFileExtensions() throws AxisFault {
+		return getBean(FileWebService.class).getImportFileExtensions();
+	}
+
+	public LibraryPresentation getPresentationPreviewFileExplorer(String SID,
+			String parentFolder) throws AxisFault {
+		return getBean(FileWebService.class).getPresentationPreviewFileExplorer(
+				SID, parentFolder);
+	}
+
+	public FileExplorerObject getFileExplorerByRoom(String SID, Long room_id,
+			Long owner_id) throws AxisFault {
+		return getBean(FileWebService.class).getFileExplorerByRoom(SID, room_id,
+				owner_id);
+	}
+
+	public FileExplorerObject getFileExplorerByRoomSelf(String SID, Long room_id)
+			throws AxisFault {
+		return getBean(FileWebService.class)
+				.getFileExplorerByRoomSelf(SID, room_id);
+	}
+	
+	public FileExplorerObject getFileExplorerByRoomSelfInternal(String SID, Long roomId)
+			throws AxisFault {
+		return getBean(FileWebService.class)
+				.getFileExplorerByRoomSelf(SID, roomId);
+	}
+
+	public FileExplorerItem[] getFileExplorerByParent(String SID,
+			Long parentFileExplorerItemId, Long room_id, Boolean isOwner,
+			Long owner_id) throws AxisFault {
+		return getBean(FileWebService.class).getFileExplorerByParent(SID,
+				parentFileExplorerItemId, room_id, isOwner, owner_id);
+	}
+
+	public FileExplorerItem[] getFileExplorerByParentSelf(String SID,
+			Long parentFileExplorerItemId, Long room_id, Boolean isOwner)
+			throws AxisFault {
+		return getBean(FileWebService.class).getFileExplorerByParentSelf(SID,
+				parentFileExplorerItemId, room_id, isOwner);
+	}
+	
+	public FileExplorerItem[] getFileExplorerByParentSelfInternal(String SID,
+			Long parentFileExplorerItemId, Long roomId, Boolean isOwner)
+			throws AxisFault {
+		return getBean(FileWebService.class).getFileExplorerByParentSelf(SID,
+				parentFileExplorerItemId, roomId, isOwner);
+	}
+
+	public Long updateFileOrFolderName(String SID, Long fileExplorerItemId,
+			String fileName) throws AxisFault {
+		return getBean(FileWebService.class).updateFileOrFolderName(SID,
+				fileExplorerItemId, fileName);
+	}
+
+	public Long updateFileOrFolderNameSelf(String SID, Long fileExplorerItemId,
+			String fileName) throws AxisFault {
+		return getBean(FileWebService.class).updateFileOrFolderNameSelf(SID,
+				fileExplorerItemId, fileName);
+	}
+
+	public Long moveFile(String SID, Long fileExplorerItemId,
+			Long newParentFileExplorerItemId, Long room_id, Boolean isOwner,
+			Boolean moveToHome, Long owner_id) throws AxisFault {
+		return getBean(FileWebService.class).moveFile(SID, fileExplorerItemId,
+				newParentFileExplorerItemId, room_id, isOwner, moveToHome,
+				owner_id);
+	}
+
+	public Long moveFileSelf(String SID, Long fileExplorerItemId,
+			Long newParentFileExplorerItemId, Long room_id, Boolean isOwner,
+			Boolean moveToHome) throws AxisFault {
+		return getBean(FileWebService.class).moveFileSelf(SID, fileExplorerItemId,
+				newParentFileExplorerItemId, room_id, isOwner, moveToHome);
+	}
+	
+	public Long moveFileSelfInternal(String SID, Long fileExplorerItemId,
+			Long newParentFileExplorerItemId, Long roomId, Boolean isOwner,
+			Boolean moveToHome) throws AxisFault {
+		return getBean(FileWebService.class).moveFileSelf(SID, fileExplorerItemId,
+				newParentFileExplorerItemId, roomId, isOwner, moveToHome);
+	}
+
+}
diff --git a/src/axis/java/org/apache/openmeetings/axis/services/JabberWebService.java b/src/axis/java/org/apache/openmeetings/axis/services/JabberWebService.java
new file mode 100644
index 0000000..178775a
--- /dev/null
+++ b/src/axis/java/org/apache/openmeetings/axis/services/JabberWebService.java
@@ -0,0 +1,155 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.axis.services;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.openmeetings.data.conference.InvitationManager;
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.dto.room.RoomDTO;
+import org.apache.openmeetings.db.entity.room.Invitation;
+import org.apache.openmeetings.db.entity.room.Invitation.Valid;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.room.RoomOrganisation;
+import org.apache.openmeetings.db.entity.user.Organisation_Users;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.util.TimezoneUtil;
+import org.apache.openmeetings.remote.ConferenceService;
+import org.apache.openmeetings.util.AuthLevelUtil;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * This class provides method implementations necessary for OM to Jabber integration.
+ * 
+ * @author solomax
+ * @webservice JabberService
+ *
+ */
+public class JabberWebService {
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			JabberWebService.class, OpenmeetingsVariables.webAppRootKey);
+
+	@Autowired
+	private UserManager userManager;
+	@Autowired
+	private AdminUserDao userDao;
+	@Autowired
+	private SessiondataDao sessiondataDao;
+	@Autowired
+	private ConferenceService conferenceService;
+	@Autowired
+	private InvitationManager invitationManager;
+	@Autowired
+	private ConfigurationDao configurationDao;
+	@Autowired
+	private TimezoneUtil timezoneUtil;
+	@Autowired
+	private RoomDao roomDao;
+
+	/**
+	 * Get List&lt;RoomDTO&gt; of all rooms available to the user.
+	 * No admin rights are necessary for this call
+	 * 
+	 * @param SID The SID from UserService.getSession
+	 * @return List&lt;RoomDTO&gt; of Rooms
+	 */
+	public List<RoomDTO> getAvailableRooms(String SID) {
+		log.debug("getAvailableRooms enter");
+		
+		List<Room> rl = new ArrayList<Room>();
+		List<Room> al = conferenceService.getAppointedMeetingRoomsWithoutType(SID);
+		if (al != null) {
+			rl.addAll(al);
+		}
+
+		List<Room> pbl = conferenceService.getRoomsPublicWithoutType(SID);
+		if (pbl != null) {
+			rl.addAll(pbl);
+		}
+
+		Long users_id = sessiondataDao.checkSession(SID);
+		User u = userManager.getUserById(users_id);
+		for (Organisation_Users ou : u.getOrganisation_users()) {
+			List<RoomOrganisation> rol = conferenceService.getRoomsByOrganisationWithoutType(SID
+					, ou.getOrganisation().getOrganisation_id().longValue());
+			if (rol != null) {
+				for (RoomOrganisation ro : rol) {
+					rl.add(ro.getRoom());
+				}
+			}
+		}
+		List<RoomDTO> result = new ArrayList<RoomDTO>();
+		for (Room r : rl) {
+			r.setCurrentusers(null);
+			result.add(new RoomDTO(r));
+		}
+		return result;
+	}
+
+	/**
+	 * Returns the count of users currently in the Room with given id
+	 * No admin rights are necessary for this call
+	 * 
+	 * @param SID The SID from UserService.getSession
+	 * @param roomId id of the room to get users
+	 * @return number of users as int
+	 */
+	public int getUserCount(String SID, Long roomId) {
+		Long users_id = this.sessiondataDao.checkSession(SID);
+		Long user_level = this.userManager.getUserLevelByID(users_id);
+
+		if (AuthLevelUtil.checkUserLevel(user_level)) {
+			return conferenceService.getRoomClientsListByRoomId(roomId).size();
+		}
+		return -1;
+	}
+
+	/**
+	 * Get invitation hash for the room with given id
+	 * No admin rights are necessary for this call
+	 * 
+	 * @param SID The SID from UserService.getSession
+	 * @param username The name of invited user, will be displayed in the rooms user list
+	 * @param room_id id of the room to get users
+	 * @return hash to enter the room
+	 */
+	public String getInvitationHash(String SID, String username, Long room_id) {
+		Long users_id = this.sessiondataDao.checkSession(SID);
+		Long user_level = this.userManager.getUserLevelByID(users_id);
+		
+		if (AuthLevelUtil.checkUserLevel(user_level)) {
+			User invitee = userDao.getContact(username, username, username, users_id);
+			Invitation invitation = invitationManager.getInvitation(invitee, roomDao.get(room_id),
+							false, "", Valid.OneTime
+							, userDao.get(users_id), 1L, null, null, null);
+	
+			return ((invitation == null) ? null : invitation.getHash());
+		} else {
+			return "Need Admin Privileges to perfom the Action";
+		}
+	}
+}
diff --git a/src/axis/java/org/apache/openmeetings/axis/services/JabberWebServiceFacade.java b/src/axis/java/org/apache/openmeetings/axis/services/JabberWebServiceFacade.java
new file mode 100644
index 0000000..919bab6
--- /dev/null
+++ b/src/axis/java/org/apache/openmeetings/axis/services/JabberWebServiceFacade.java
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.axis.services;
+
+import java.util.List;
+
+import org.apache.axis2.AxisFault;
+import org.apache.openmeetings.db.dto.room.RoomDTO;
+
+/**
+ * This class provides method entry points necessary for OM to Jabber integration.
+ * 
+ * @author solomax
+ *
+ */
+public class JabberWebServiceFacade extends BaseWebService {
+	
+	/**
+	 * Get list of all rooms available to the user.
+	 * No admin rights are necessary for this call
+	 * 
+	 * @param SID The SID from {@link UserWebService.getSession}
+	 * @return array of Rooms
+	 * @throws AxisFault 
+	 */
+	public List<RoomDTO> getAvailableRooms(String SID) throws AxisFault {
+		return getBean(JabberWebService.class).getAvailableRooms(SID);
+	}
+
+	/**
+	 * Returns the count of users currently in the Room with given id
+	 * No admin rights are necessary for this call
+	 * 
+	 * @param SID The SID from {@link UserWebService.getSession}
+	 * @param roomId id of the room to get users
+	 * @return number of users as int
+	 * @throws AxisFault 
+	 */
+	public int getUserCount(String SID, Long roomId) throws AxisFault {
+		return getBean(JabberWebService.class).getUserCount(SID, roomId);
+	}
+
+	/**
+	 * Get invitation hash for the room with given id
+	 * No admin rights are necessary for this call
+	 * 
+	 * @param SID The SID from {@link UserWebService.getSession}
+	 * @param username The name of invited user, will be displayed in the rooms user list
+	 * @param room_id id of the room to get users
+	 * @return hash to enter the room
+	 * @throws AxisFault 
+	 */
+	public String getInvitationHash(String SID, String username, Long room_id) throws AxisFault {
+		return getBean(JabberWebService.class)
+				.getInvitationHash(SID, username, room_id);
+	}
+}
\ No newline at end of file
diff --git a/src/axis/java/org/apache/openmeetings/axis/services/RoomCountBean.java b/src/axis/java/org/apache/openmeetings/axis/services/RoomCountBean.java
new file mode 100644
index 0000000..caf558a
--- /dev/null
+++ b/src/axis/java/org/apache/openmeetings/axis/services/RoomCountBean.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.axis.services;
+
+public class RoomCountBean {
+	
+	private long roomId;
+	private String roomName;
+	private Integer roomCount;
+	private Integer maxUser;
+	
+	public long getRoomId() {
+		return roomId;
+	}
+	public void setRoomId(long roomId) {
+		this.roomId = roomId;
+	}
+	public String getRoomName() {
+		return roomName;
+	}
+	public void setRoomName(String roomName) {
+		this.roomName = roomName;
+	}
+	public Integer getRoomCount() {
+		return roomCount;
+	}
+	public void setRoomCount(Integer roomCount) {
+		this.roomCount = roomCount;
+	}
+	public Integer getMaxUser() {
+		return maxUser;
+	}
+	public void setMaxUser(Integer maxUser) {
+		this.maxUser = maxUser;
+	}
+	
+
+}
diff --git a/src/axis/java/org/apache/openmeetings/axis/services/RoomReturn.java b/src/axis/java/org/apache/openmeetings/axis/services/RoomReturn.java
new file mode 100644
index 0000000..e86f4f7
--- /dev/null
+++ b/src/axis/java/org/apache/openmeetings/axis/services/RoomReturn.java
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.axis.services;
+
+import java.util.Date;
+
+public class RoomReturn {
+
+	private Long room_id;
+	private String name;
+	private String creator;
+	private Date created;
+	private RoomUser[] roomUser;
+
+	public Long getRoom_id() {
+		return room_id;
+	}
+
+	public void setRoom_id(Long roomId) {
+		room_id = roomId;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getCreator() {
+		return creator;
+	}
+
+	public void setCreator(String creator) {
+		this.creator = creator;
+	}
+
+	public Date getCreated() {
+		return created;
+	}
+
+	public void setCreated(Date created) {
+		this.created = created;
+	}
+
+	public RoomUser[] getRoomUser() {
+		return roomUser;
+	}
+
+	public void setRoomUser(RoomUser[] roomUser) {
+		this.roomUser = roomUser;
+	}
+
+}
diff --git a/src/axis/java/org/apache/openmeetings/axis/services/RoomUser.java b/src/axis/java/org/apache/openmeetings/axis/services/RoomUser.java
new file mode 100644
index 0000000..042be0a
--- /dev/null
+++ b/src/axis/java/org/apache/openmeetings/axis/services/RoomUser.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.axis.services;
+
+public class RoomUser {
+	
+	private String firstname;
+	private String lastname;
+	private String publicSID;
+	private long broadcastId;
+	private Boolean isBroadCasting;
+	private String avsettings;
+	
+	public String getFirstname() {
+		return firstname;
+	}
+	public void setFirstname(String firstname) {
+		this.firstname = firstname;
+	}
+	public String getLastname() {
+		return lastname;
+	}
+	public void setLastname(String lastname) {
+		this.lastname = lastname;
+	}
+	public Boolean getIsBroadCasting() {
+		return isBroadCasting;
+	}
+	public void setIsBroadCasting(Boolean isBroadCasting) {
+		this.isBroadCasting = isBroadCasting;
+	}
+	public String getAvsettings() {
+		return avsettings;
+	}
+	public void setAvsettings(String avsettings) {
+		this.avsettings = avsettings;
+	}
+	public String getPublicSID() {
+		return publicSID;
+	}
+	public void setPublicSID(String publicSID) {
+		this.publicSID = publicSID;
+	}
+	public long getBroadcastId() {
+		return broadcastId;
+	}
+	public void setBroadcastId(long broadcastId) {
+		this.broadcastId = broadcastId;
+	}
+	
+}
diff --git a/src/axis/java/org/apache/openmeetings/axis/services/RoomWebService.java b/src/axis/java/org/apache/openmeetings/axis/services/RoomWebService.java
new file mode 100644
index 0000000..f300d08
--- /dev/null
+++ b/src/axis/java/org/apache/openmeetings/axis/services/RoomWebService.java
@@ -0,0 +1,2386 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.axis.services;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.axis2.AxisFault;
+import org.apache.openmeetings.data.calendar.management.AppointmentLogic;
+import org.apache.openmeetings.data.conference.InvitationManager;
+import org.apache.openmeetings.data.conference.RoomManager;
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.db.dao.calendar.AppointmentCategoryDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypDao;
+import org.apache.openmeetings.db.dao.calendar.IInvitationManager.MessageType;
+import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.server.ISessionManager;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.dto.file.RecordingObject;
+import org.apache.openmeetings.db.dto.room.RoomSearchResult;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.db.entity.calendar.MeetingMember;
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.db.entity.room.Invitation;
+import org.apache.openmeetings.db.entity.room.Invitation.Valid;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.room.RoomType;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.util.TimezoneUtil;
+import org.apache.openmeetings.remote.ConferenceService;
+import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
+import org.apache.openmeetings.util.AuthLevelUtil;
+import org.apache.openmeetings.util.CalendarPatterns;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.BeanWrapper;
+import org.springframework.beans.BeanWrapperImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * RoomService contains methods to manipulate rooms and create invitation hash
+ * 
+ * @author sebawagner
+ * @webservice RoomService
+ * 
+ */
+public class RoomWebService {
+	private static final Logger log = Red5LoggerFactory.getLogger(RoomWebService.class, webAppRootKey);
+
+	@Autowired
+	private AppointmentDao appointmentDao;
+	@Autowired
+	private AppointmentCategoryDao appointmentCategoryDao;
+	@Autowired
+	private AppointmentReminderTypDao appointmentReminderTypDao;
+	@Autowired
+	private AppointmentLogic appointmentLogic;
+	@Autowired
+	private SessiondataDao sessiondataDao;
+	@Autowired
+	private UserManager userManager;
+	@Autowired
+	private AdminUserDao userDao;
+	@Autowired
+	private RoomManager roomManager;
+	@Autowired
+	private FlvRecordingDao flvRecordingDao;
+	@Autowired
+	private InvitationManager invitationManager;
+	@Autowired
+	private ScopeApplicationAdapter scopeApplicationAdapter;
+	@Autowired
+	private ConferenceService conferenceService;
+	@Autowired
+	private ISessionManager sessionManager;
+	@Autowired
+	private RoomDao roomDao;
+	@Autowired
+	private TimezoneUtil timezoneUtil;
+
+	/**
+	 * Returns an Object of Type RoomsList which contains a list of
+	 * Room-Objects. Every Room-Object contains a Roomtype and all informations
+	 * about that Room. The List of current-users in the room is Null if you get
+	 * them via SOAP. The Roomtype can be 1 for conference rooms or 2 for
+	 * audience rooms.
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param roomtypes_id
+	 * @return - list of public rooms
+	 * @throws AxisFault
+	 */
+	public Room[] getRoomsPublic(String SID, Long roomtypes_id)
+			throws AxisFault {
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long User_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(User_level)) {
+
+				List<Room> roomList = roomManager.getPublicRooms(
+						User_level, roomtypes_id);
+				// We need to re-marshal the Rooms object cause Axis2 cannot use
+				// our objects
+				if (roomList != null && roomList.size() != 0) {
+					// roomsListObject.setRoomList(roomList);
+					Room[] roomItems = new Room[roomList.size()];
+					int count = 0;
+					for (Iterator<Room> it = roomList.iterator(); it.hasNext();) {
+						Room room = it.next();
+						room.setCurrentusers(null);
+						roomItems[count] = room;
+						count++;
+					}
+
+					return roomItems;
+				}
+				log.debug("roomList SIZE: " + roomList.size());
+
+			}
+			return null;
+		} catch (Exception err) {
+			log.error("[getRoomsPublic] ", err);
+			throw new AxisFault(err.getMessage());
+		}
+	}
+
+	/**
+	 * Deletes a flv recording
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param flvRecordingId
+	 *            the id of the recording
+	 *            
+	 * @return - true if recording was deleted
+	 * @throws AxisFault
+	 */
+	public boolean deleteFlvRecording(String SID, Long flvRecordingId)
+			throws AxisFault {
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				return flvRecordingDao.delete(flvRecordingId);
+			}
+
+		} catch (Exception err) {
+			log.error("[deleteFlvRecording] ", err);
+			throw new AxisFault(err.getMessage());
+		}
+
+		return false;
+	}
+
+	/**
+	 * Gets a list of flv recordings
+	 * 
+	 * @param SID The SID of the User. This SID must be marked as Loggedin
+	 * @param externalUserId the externalUserId
+	 * @param externalUsertype the externalUserType
+	 *            
+	 * @return - list of flv recordings
+	 * @throws AxisFault
+	 */
+	public List<RecordingObject> getFlvRecordingByExternalUserId(String SID,
+			String externalUserId, String externalUserType) throws AxisFault {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				return flvRecordingDao.getFlvRecordingByExternalUserId(externalUserId, externalUserType);
+			}
+
+			return null;
+		} catch (Exception err) {
+			log.error("[getFlvRecordingByExternalUserId] ", err);
+			throw new AxisFault(err.getMessage());
+		}
+	}
+
+	/**
+	 * Gets a list of flv recordings
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param externalRoomType
+	 *            externalRoomType specified when creating the room
+	 * @param insertedBy
+	 *            the userId that created the recording
+	 * @return - list of flv recordings
+	 * @throws AxisFault
+	 */
+	public RecordingObject[] getFlvRecordingByExternalRoomTypeAndCreator(
+			String SID, String externalRoomType, Long insertedBy)
+			throws AxisFault {
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				List<FlvRecording> recordingList = flvRecordingDao
+						.getFlvRecordingByExternalRoomTypeAndCreator(
+								externalRoomType, insertedBy);
+
+				// We need to re-marshal the Rooms object cause Axis2 cannot use
+				// our objects
+				if (recordingList != null && recordingList.size() != 0) {
+					// roomsListObject.setRoomList(roomList);
+					RecordingObject[] recordingListItems = new RecordingObject[recordingList.size()];
+					int count = 0;
+					for (Iterator<FlvRecording> it = recordingList.iterator(); it.hasNext();) {
+						FlvRecording flvRecording = it.next();
+						recordingListItems[count] = new RecordingObject(flvRecording);
+						count++;
+					}
+
+					return recordingListItems;
+				}
+
+				return null;
+			}
+
+			return null;
+		} catch (Exception err) {
+			log.error("[getFlvRecordingByExternalRoomTypeAndCreator] ", err);
+			throw new AxisFault(err.getMessage());
+		}
+	}
+
+	/**
+	 * Gets a list of flv recordings
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param externalRoomType
+	 *            externalRoomType specified when creating the room
+	 * @return - list of flv recordings
+	 * @throws AxisFault
+	 */
+	public List<FlvRecording> getFlvRecordingByExternalRoomTypeByList(
+			String SID, String externalRoomType) throws AxisFault {
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				return flvRecordingDao
+						.getFlvRecordingByExternalRoomType(externalRoomType);
+
+			}
+
+			return null;
+		} catch (Exception err) {
+			log.error("[getFlvRecordingByExternalRoomTypeByList] ", err);
+			throw new AxisFault(err.getMessage());
+		}
+	}
+
+	/**
+	 * Gets a list of flv recordings
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param externalRoomType
+	 *            externalRoomType specified when creating the room
+	 * @return - list of flv recordings
+	 * @throws AxisFault
+	 */
+	public FlvRecording[] getFlvRecordingByExternalRoomType(String SID,
+			String externalRoomType) throws AxisFault {
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				List<FlvRecording> recordingList = flvRecordingDao
+						.getFlvRecordingByExternalRoomType(externalRoomType);
+
+				// We need to re-marshal the Rooms object cause Axis2 cannot use
+				// our objects
+				if (recordingList != null && recordingList.size() != 0) {
+					// roomsListObject.setRoomList(roomList);
+					FlvRecording[] recordingListItems = new FlvRecording[recordingList
+							.size()];
+					int count = 0;
+					for (Iterator<FlvRecording> it = recordingList.iterator(); it
+							.hasNext();) {
+						FlvRecording flvRecording = it.next();
+						recordingListItems[count] = flvRecording;
+						count++;
+					}
+
+					return recordingListItems;
+				}
+
+				return null;
+			}
+
+			return null;
+		} catch (Exception err) {
+			log.error("[getFlvRecordingByExternalRoomType] ", err);
+			throw new AxisFault(err.getMessage());
+		}
+	}
+
+	/**
+	 * Get list of recordings
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param roomId
+	 *            the room id
+	 * @return - list of recordings
+	 * @throws AxisFault
+	 */
+	public FlvRecording[] getFlvRecordingByRoomId(String SID, Long roomId)
+			throws AxisFault {
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+
+				List<FlvRecording> recordingList = flvRecordingDao
+						.getFlvRecordingByRoomId(roomId);
+
+				// We need to re-marshal the Rooms object cause Axis2 cannot use
+				// our objects
+				if (recordingList != null && recordingList.size() != 0) {
+					// roomsListObject.setRoomList(roomList);
+					FlvRecording[] recordingListItems = new FlvRecording[recordingList
+							.size()];
+					int count = 0;
+					for (Iterator<FlvRecording> it = recordingList.iterator(); it
+							.hasNext();) {
+						FlvRecording flvRecording = it.next();
+						recordingListItems[count] = flvRecording;
+						count++;
+					}
+
+					return recordingListItems;
+				}
+
+				return null;
+			}
+
+			return null;
+		} catch (Exception err) {
+			log.error("[getFlvRecordingByExternalRoomType] ", err);
+			throw new AxisFault(err.getMessage());
+		}
+	}
+
+	/**
+	 * List of available room types
+	 * 
+	 * @param SID - The SID of the User. This SID must be marked as Loggedin
+	 * @return - List of available room types
+	 * @throws AxisFault
+	 */
+	public List<RoomType> getRoomTypes(String SID) throws AxisFault {
+		try {
+			return conferenceService.getRoomTypes(SID);
+		} catch (Exception err) {
+			log.error("[getRoomTypes]", err);
+			throw new AxisFault(err.getMessage());
+		}
+	}
+
+	/**
+	 * Returns current users for rooms ids
+	 * 
+	 * @param SID - The SID of the User. This SID must be marked as Loggedin
+	 * @param roomId
+	 * @return - current users for rooms ids
+	 * @throws AxisFault
+	 */
+	public List<RoomCountBean> getRoomCounters(String SID, Integer[] roomId) throws AxisFault {
+		List<RoomCountBean> roomBeans = new ArrayList<RoomCountBean>();
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				List<Integer> roomIds = new ArrayList<Integer>();
+
+				if (roomId != null) {
+					for (Integer id : roomId) {
+						if (id != null && id > 0) {
+							log.debug("roomId :: " + id);
+							roomIds.add(id);
+						}
+					}
+				}
+
+				List<Room> rooms = roomManager.getRoomsByIds(roomIds);
+
+				for (Room room : rooms) {
+					RoomCountBean rCountBean = new RoomCountBean();
+					rCountBean.setRoomId(room.getRooms_id());
+					rCountBean.setRoomName(room.getName());
+					rCountBean.setMaxUser(room.getNumberOfPartizipants().intValue());
+					rCountBean.setRoomCount(sessionManager.getClientListByRoom(room.getRooms_id()).size());
+
+					roomBeans.add(rCountBean);
+				}
+
+			} else {
+				log.error("Not authorized");
+			}
+		} catch (Exception err) {
+			log.error("[getRoomTypes]", err);
+			throw new AxisFault(err.getMessage());
+		}
+		return roomBeans;
+	}
+
+	/**
+	 * returns a conference room object
+	 * 
+	 * @param SID - The SID of the User. This SID must be marked as Loggedin
+	 * @param rooms_id - the room id
+	 * @return - room with the id given
+	 */
+	public Room getRoomById(String SID, long rooms_id) {
+		return conferenceService.getRoomById(SID, rooms_id);
+	}
+
+	/**
+	 * Returns a object of type RoomReturn
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param rooms_id
+	 * @return - object of type RoomReturn
+	 * @throws AxisFault
+	 */
+	public RoomReturn getRoomWithClientObjectsById(String SID, long rooms_id) throws AxisFault {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+
+				Room room = roomManager.getRoomById(user_level, rooms_id);
+
+				RoomReturn roomReturn = new RoomReturn();
+
+				roomReturn.setCreated(room.getStarttime());
+				roomReturn.setCreator(null);
+				roomReturn.setName(room.getName());
+				roomReturn.setRoom_id(room.getRooms_id());
+
+				List<Client> map = sessionManager
+						.getClientListByRoom(room.getRooms_id());
+
+				RoomUser[] roomUsers = new RoomUser[map.size()];
+
+				int i = 0;
+				for (Client rcl : map) {
+					RoomUser roomUser = new RoomUser();
+					roomUser.setFirstname(rcl.getFirstname());
+					roomUser.setLastname(rcl.getLastname());
+					roomUser.setBroadcastId(rcl.getBroadCastID());
+					roomUser.setPublicSID(rcl.getPublicSID());
+					roomUser.setIsBroadCasting(rcl.getIsBroadcasting());
+					roomUser.setAvsettings(rcl.getAvsettings());
+
+					roomUsers[i++] = roomUser;
+				}
+
+				roomReturn.setRoomUser(roomUsers);
+
+				return roomReturn;
+			}
+
+			return null;
+
+		} catch (Exception err) {
+			log.error("[getRoomWithClientObjectsById]", err);
+			throw new AxisFault(err.getMessage());
+		}
+
+	}
+
+	/**
+	 * Returns a List of Objects of Rooms You can use "name" as value for
+	 * orderby or rooms_id
+	 * 
+	 * @param SID - The SID of the User. This SID must be marked as Loggedin
+	 * @param start - The id you want to start
+	 * @param max - The maximum you want to get
+	 * @param orderby - The column it will be ordered
+	 * @param asc - Asc or Desc sort ordering
+	 *            
+	 * @return - List of Objects of Rooms
+	 */
+	public RoomSearchResult getRooms(String SID, int start, int max, String orderby, boolean asc) {
+		return new RoomSearchResult(conferenceService.getRooms(SID, start, max, orderby, asc, ""));
+	}
+
+	/**
+	 * Returns a List of Objects of Rooms You can use "name" as value for
+	 * orderby or rooms_id. It also fills the attribute currentUsers in the
+	 * Room-Object
+	 * 
+	 * @param SID - The SID of the User. This SID must be marked as Loggedin
+	 * @param start - The id you want to start
+	 * @param max - The maximum you want to get
+	 * @param orderby - The column it will be ordered
+	 * @param asc - Asc or Desc sort ordering
+	 *            
+	 * @return - List of Objects of Rooms
+	 */
+	public RoomSearchResult getRoomsWithCurrentUsers(String SID, int start, int max, String orderby, boolean asc) {
+		return new RoomSearchResult(conferenceService.getRoomsWithCurrentUsers(SID, start, max, orderby, asc));
+	}
+
+	// TODO: Add functions to get Users of a Room
+
+	/**
+	 * TODO: Fix Organization Issue
+	 * 
+	 * deprecated use addRoomWithModeration instead
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param name
+	 * @param roomtypes_id
+	 * @param comment
+	 * @param numberOfPartizipants
+	 * @param ispublic
+	 * @param videoPodWidth
+	 * @param videoPodHeight
+	 * @param videoPodXPosition
+	 * @param videoPodYPosition
+	 * @param moderationPanelXPosition
+	 * @param showWhiteBoard
+	 * @param whiteBoardPanelXPosition
+	 * @param whiteBoardPanelYPosition
+	 * @param whiteBoardPanelHeight
+	 * @param whiteBoardPanelWidth
+	 * @param showFilesPanel
+	 * @param filesPanelXPosition
+	 * @param filesPanelYPosition
+	 * @param filesPanelHeight
+	 * @param filesPanelWidth
+	 * @return - id of the room or error code
+	 */
+	@Deprecated
+	public Long addRoom(String SID, String name, Long roomtypes_id,
+			String comment, Long numberOfPartizipants, Boolean ispublic,
+			Integer videoPodWidth, Integer videoPodHeight,
+			Integer videoPodXPosition, Integer videoPodYPosition,
+			Integer moderationPanelXPosition, Boolean showWhiteBoard,
+			Integer whiteBoardPanelXPosition, Integer whiteBoardPanelYPosition,
+			Integer whiteBoardPanelHeight, Integer whiteBoardPanelWidth,
+			Boolean showFilesPanel, Integer filesPanelXPosition,
+			Integer filesPanelYPosition, Integer filesPanelHeight,
+			Integer filesPanelWidth) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				return roomManager.addRoom(3L, name, roomtypes_id, comment,
+						numberOfPartizipants, ispublic, null, false, false,
+						null, false, null, true, false, false, false //isClosed
+						, "", "",
+						null, null, null, false, // hideTopBar
+						false, // hideChat
+						false, // hideActivitiesAndActions
+						false, // hideFilesExplorer
+						false, // hideActionsMenu
+						false, // hideScreenSharing
+						false, // hideWhiteboard
+						false, // showMicrophoneStatus
+						false, // chatModerated
+						false, // chatOpened
+						false, // filesOpened
+						false, // autoVideoSelect
+						false //sipEnabled
+						);
+			}
+		} catch (Exception err) {
+			log.error("[addRoom] ", err);
+		}
+		return new Long(-1);
+	}
+
+	/**
+	 * Create a conference room
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param name
+	 *            Name of the Room
+	 * @param roomtypes_id
+	 *            Type of that room (1 = Conference, 2 = Audience, 3 =
+	 *            Restricted, 4 = Interview)
+	 * @param comment
+	 *            any comment
+	 * @param numberOfPartizipants
+	 *            the maximum users allowed in this room
+	 * @param ispublic
+	 *            If this room is public (use true if you don't deal with
+	 *            different Organizations)
+	 * @param appointment
+	 *            is it a Calendar Room (use false by default)
+	 * @param isDemoRoom
+	 *            is it a Demo Room with limited time (use false by default)
+	 * @param demoTime
+	 *            time in seconds after the user will be logged out (only
+	 *            enabled if isDemoRoom is true)
+	 * @param isModeratedRoom
+	 *            Users have to wait untill a Moderator arrives. Use the
+	 *            becomeModerator param in setUserObjectAndGenerateRoomHash to
+	 *            set a user as default Moderator
+	 *            
+	 * @return - id of the room or error code
+	 */
+	public Long addRoomWithModeration(String SID, String name,
+			Long roomtypes_id, String comment, Long numberOfPartizipants,
+			Boolean ispublic, Boolean appointment, Boolean isDemoRoom,
+			Integer demoTime, Boolean isModeratedRoom) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				return roomManager.addRoom(3L, name, roomtypes_id, comment,
+						numberOfPartizipants, ispublic, null, appointment,
+						isDemoRoom, demoTime, isModeratedRoom, null, true,
+						false, true, false //isClosed
+						, "", "", null, null, null, false, // hideTopBar
+						false, // hideChat
+						false, // hideActivitiesAndActions
+						false, // hideFilesExplorer
+						false, // hideActionsMenu
+						false, // hideScreenSharing
+						false, // hideWhiteboard
+						false, // showMicrophoneStatus
+						false, // chatModerated
+						false, // chatOpened
+						false, // filesOpened
+						false, // autoVideoSelect
+						false //sipEnabled
+						);
+			}
+		} catch (Exception err) {
+			log.error("[addRoomWithModeration] ", err);
+		}
+		return new Long(-1);
+	}
+
+	/**
+	 * this SOAP Method has an additional param to enable or disable the buttons
+	 * to apply for moderation this does only work in combination with the
+	 * room-type restricted
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param name
+	 *            Name of the Room
+	 * @param roomtypes_id
+	 *            Type of that room (1 = Conference, 2 = Audience, 3 =
+	 *            Restricted, 4 = Interview)
+	 * @param comment
+	 *            any comment
+	 * @param numberOfPartizipants
+	 *            the maximum users allowed in this room
+	 * @param ispublic
+	 *            If this room is public (use true if you don't deal with
+	 *            different Organizations)
+	 * @param appointment
+	 *            is it a Calendar Room (use false by default)
+	 * @param isDemoRoom
+	 *            is it a Demo Room with limited time (use false by default)
+	 * @param demoTime
+	 *            time in seconds after the user will be logged out (only
+	 *            enabled if isDemoRoom is true)
+	 * @param isModeratedRoom
+	 *            Users have to wait untill a Moderator arrives. Use the
+	 *            becomeModerator param in setUserObjectAndGenerateRoomHash to
+	 *            set a user as default Moderator
+	 * @param allowUserQuestions
+	 *            enable or disable the button to allow users to apply for
+	 *            moderation
+	 *            
+	 * @return - id of the room or error code
+	 */
+	public Long addRoomWithModerationAndQuestions(String SID, String name,
+			Long roomtypes_id, String comment, Long numberOfPartizipants,
+			Boolean ispublic, Boolean appointment, Boolean isDemoRoom,
+			Integer demoTime, Boolean isModeratedRoom,
+			Boolean allowUserQuestions) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				return roomManager.addRoom(3L, name, roomtypes_id, comment,
+						numberOfPartizipants, ispublic, null, appointment,
+						isDemoRoom, demoTime, isModeratedRoom, null,
+						allowUserQuestions, false, true, false //isClosed
+						, "", "", null,
+						null, null, false, // hideTopBar
+						false, // hideChat
+						false, // hideActivitiesAndActions
+						false, // hideFilesExplorer
+						false, // hideActionsMenu
+						false, // hideScreenSharing
+						false, // hideWhiteboard
+						false, // showMicrophoneStatus
+						false, // chatModerated
+						false, // chatOpened
+						false, // filesOpened
+						false, // autoVideoSelect
+						false //sipEnabled
+						);
+			}
+		} catch (Exception err) {
+			log.error("[addRoomWithModerationAndQuestions] ", err);
+		}
+		return new Long(-1);
+	}
+
+	/**
+	 * 
+	 * adds a new room with options for user questions and audio only
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param name
+	 *            Name of the Room
+	 * @param roomtypes_id
+	 *            Type of that room (1 = Conference, 2 = Audience, 3 =
+	 *            Restricted, 4 = Interview)
+	 * @param comment
+	 *            any comment
+	 * @param numberOfPartizipants
+	 *            the maximum users allowed in this room
+	 * @param ispublic
+	 *            If this room is public (use true if you don't deal with
+	 *            different Organizations)
+	 * @param appointment
+	 *            is it a Calendar Room (use false by default)
+	 * @param isDemoRoom
+	 *            is it a Demo Room with limited time (use false by default)
+	 * @param demoTime
+	 *            time in seconds after the user will be logged out (only
+	 *            enabled if isDemoRoom is true)
+	 * @param isModeratedRoom
+	 *            Users have to wait until a Moderator arrives. Use the
+	 *            becomeModerator param in setUserObjectAndGenerateRoomHash to
+	 *            set a user as default Moderator
+	 * @param allowUserQuestions
+	 *            enable or disable the button to allow users to apply for
+	 *            moderation
+	 * @param isAudioOnly
+	 *            enable or disable the video / or audio-only
+	 * 
+	 * @return - id of the room or error code
+	 * @throws AxisFault
+	 */
+	public Long addRoomWithModerationQuestionsAndAudioType(String SID,
+			String name, Long roomtypes_id, String comment,
+			Long numberOfPartizipants, Boolean ispublic, Boolean appointment,
+			Boolean isDemoRoom, Integer demoTime, Boolean isModeratedRoom,
+			Boolean allowUserQuestions, Boolean isAudioOnly) throws AxisFault {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				return roomManager.addRoom(3L, name, roomtypes_id, comment,
+						numberOfPartizipants, ispublic, null, appointment,
+						isDemoRoom, demoTime, isModeratedRoom, null,
+						allowUserQuestions, isAudioOnly, true, false //isClosed
+						, "", "",
+						null, null, null, false, // hideTopBar
+						false, // hideChat
+						false, // hideActivitiesAndActions
+						false, // hideFilesExplorer
+						false, // hideActionsMenu
+						false, // hideScreenSharing
+						false, // hideWhiteboard
+						false, // showMicrophoneStatus
+						false, // chatModerated
+						false, // chatOpened
+						false, // filesOpened
+						false, // autoVideoSelect
+						false //sipEnabled
+						);
+			}
+			return -1L;
+		} catch (Exception err) {
+			log.error("[addRoomWithModerationQuestionsAndAudioType] ", err);
+			throw new AxisFault(err.getMessage());
+		}
+	}
+
+	/**
+	 * 
+	 * adds a new room with options for user questions, audio only and hide
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param name
+	 *            Name of the Room
+	 * @param roomtypes_id
+	 *            Type of that room (1 = Conference, 2 = Audience, 3 =
+	 *            Restricted, 4 = Interview)
+	 * @param comment
+	 *            any comment
+	 * @param numberOfPartizipants
+	 *            the maximum users allowed in this room
+	 * @param ispublic
+	 *            If this room is public (use true if you don't deal with
+	 *            different Organizations)
+	 * @param appointment
+	 *            is it a Calendar Room (use false by default)
+	 * @param isDemoRoom
+	 *            is it a Demo Room with limited time (use false by default)
+	 * @param demoTime
+	 *            time in seconds after the user will be logged out (only
+	 *            enabled if isDemoRoom is true)
+	 * @param isModeratedRoom
+	 *            Users have to wait until a Moderator arrives. Use the
+	 *            becomeModerator param in setUserObjectAndGenerateRoomHash to
+	 *            set a user as default Moderator
+	 * @param allowUserQuestions
+	 *            enable or disable the button to allow users to apply for
+	 *            moderation
+	 * @param isAudioOnly
+	 *            enable or disable the video / or audio-only
+	 * @param hideTopBar
+	 *            hide or show TopBar
+	 * @param hideChat
+	 *            hide or show Chat
+	 * @param hideActivitiesAndActions
+	 *            hide or show Activities And Actions
+	 * @param hideFilesExplorer
+	 *            hide or show Files Explorer
+	 * @param hideActionsMenu
+	 *            hide or show Actions Menu
+	 * @param hideScreenSharing
+	 *            hide or show Screen Sharing
+	 * @param hideWhiteboard
+	 *            hide or show Whiteboard. If whitboard is hidden, video pods
+	 *            and scrollbar appear instead.
+	 *            
+	 * @return - id of the room or error code
+	 * @throws AxisFault
+	 */
+	public Long addRoomWithModerationQuestionsAudioTypeAndHideOptions(
+			String SID, String name, Long roomtypes_id, String comment,
+			Long numberOfPartizipants, Boolean ispublic, Boolean appointment,
+			Boolean isDemoRoom, Integer demoTime, Boolean isModeratedRoom,
+			Boolean allowUserQuestions, Boolean isAudioOnly,
+			Boolean hideTopBar, Boolean hideChat,
+			Boolean hideActivitiesAndActions, Boolean hideFilesExplorer,
+			Boolean hideActionsMenu, Boolean hideScreenSharing,
+			Boolean hideWhiteboard) throws AxisFault {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				return roomManager.addRoom(3L, name, roomtypes_id, comment,
+						numberOfPartizipants, ispublic, null, appointment,
+						isDemoRoom, demoTime, isModeratedRoom, null,
+						allowUserQuestions, isAudioOnly, true, false //isClosed
+						, "", "",
+						null, null, null, hideTopBar, hideChat,
+						hideActivitiesAndActions, hideFilesExplorer,
+						hideActionsMenu, hideScreenSharing, hideWhiteboard,
+						false, false, 
+						false, // chatOpened
+						false, // filesOpened
+						false, // autoVideoSelect
+						false //sipEnabled
+						);
+			}
+			return -1L;
+		} catch (Exception err) {
+			log.error(
+					"[addRoomWithModerationQuestionsAudioTypeAndHideOptions] ",
+					err);
+			throw new AxisFault(err.getMessage());
+		}
+	}
+
+	/**
+	 * Checks if a room with this exteralRoomId + externalRoomType does exist,
+	 * if yes it returns the room id if not, it will create the room and then
+	 * return the room id of the newly created room
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param name
+	 *            Name of the room
+	 * @param roomtypes_id
+	 *            Type of that room (1 = Conference, 2 = Audience, 3 =
+	 *            Restricted, 4 = Interview)
+	 * @param comment
+	 *            any comment
+	 * @param numberOfPartizipants
+	 *            the maximum users allowed in this room
+	 * @param ispublic
+	 *            If this room is public (use true if you don't deal with
+	 *            different Organizations)
+	 * @param appointment
+	 *            is it a Calendar Room? (use false if not sure what that means)
+	 * @param isDemoRoom
+	 *            is it a Demo Room with limited time? (use false if not sure
+	 *            what that means)
+	 * @param demoTime
+	 *            time in seconds after the user will be logged out (only
+	 *            enabled if isDemoRoom is true)
+	 * @param isModeratedRoom
+	 *            Users have to wait untill a Moderator arrives. Use the
+	 *            becomeModerator param in setUserObjectAndGenerateRoomHash to
+	 *            set a user as default Moderator
+	 * @param externalRoomId
+	 *            your external room id may set here
+	 * @param externalRoomType
+	 *            you can specify your system-name or type of room here, for
+	 *            example "moodle"
+	 *            
+	 * @return - id of the room or error code
+	 * @throws AxisFault
+	 */
+	public Long getRoomIdByExternalId(String SID, String name,
+			Long roomtypes_id, String comment, Long numberOfPartizipants,
+			Boolean ispublic, Boolean appointment, Boolean isDemoRoom,
+			Integer demoTime, Boolean isModeratedRoom, Long externalRoomId,
+			String externalRoomType) throws AxisFault {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				Room room = conferenceService.getRoomByExternalId(SID,
+						externalRoomId, externalRoomType, roomtypes_id);
+				Long roomId = null;
+				if (room == null) {
+					roomId = roomManager.addExternalRoom(name, roomtypes_id,
+							comment, numberOfPartizipants, ispublic, null,
+							appointment, isDemoRoom, demoTime, isModeratedRoom,
+							null, externalRoomId, externalRoomType, true,
+							false, true, false, "", false, true, false);
+				} else {
+					roomId = room.getRooms_id();
+				}
+				return roomId;
+			}
+
+			return -26L;
+		} catch (Exception err) {
+			log.error("[addRoomWithModeration] ", err);
+			throw new AxisFault(err.getMessage());
+		}
+		// return new Long (-1);
+	}
+
+	/**
+	 * TODO: Fix Organization Issue deprecated use updateRoomWithModeration
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param rooms_id
+	 * @param name
+	 * @param roomtypes_id
+	 * @param comment
+	 * @param numberOfPartizipants
+	 * @param ispublic
+	 * @param videoPodWidth
+	 * @param videoPodHeight
+	 * @param videoPodXPosition
+	 * @param videoPodYPosition
+	 * @param moderationPanelXPosition
+	 * @param showWhiteBoard
+	 * @param whiteBoardPanelXPosition
+	 * @param whiteBoardPanelYPosition
+	 * @param whiteBoardPanelHeight
+	 * @param whiteBoardPanelWidth
+	 * @param showFilesPanel
+	 * @param filesPanelXPosition
+	 * @param filesPanelYPosition
+	 * @param filesPanelHeight
+	 * @param filesPanelWidth
+	 * 
+	 * @return - id of the room updated or error code
+	 */
+	@Deprecated
+	public Long updateRoom(String SID, Long rooms_id, String name,
+			Long roomtypes_id, String comment, Long numberOfPartizipants,
+			Boolean ispublic, Integer videoPodWidth, Integer videoPodHeight,
+			Integer videoPodXPosition, Integer videoPodYPosition,
+			Integer moderationPanelXPosition, Boolean showWhiteBoard,
+			Integer whiteBoardPanelXPosition, Integer whiteBoardPanelYPosition,
+			Integer whiteBoardPanelHeight, Integer whiteBoardPanelWidth,
+			Boolean showFilesPanel, Integer filesPanelXPosition,
+			Integer filesPanelYPosition, Integer filesPanelHeight,
+			Integer filesPanelWidth, Boolean appointment) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				return roomManager.updateRoomInternal(rooms_id,
+						roomtypes_id, name, ispublic, comment,
+						numberOfPartizipants, null, appointment, false, null,
+						false, null, true, false, true, false, "", "", null,
+						null, null, false, // hideTopBar
+						false, // hideChat
+						false, // hideActivitiesAndActions
+						false, // hideFilesExplorer
+						false, // hideActionsMenu
+						false, // hideScreenSharing
+						false, // hideWhiteboard
+						false, // showMicrophoneStatus
+						false, // chatModerated
+						false, // chatOpened
+						false, // filesOpened
+						false, // autoVideoSelect
+						false //sipEnabled
+						);
+			}
+		} catch (Exception err) {
+			log.error("[addRoom] ", err);
+		}
+		return new Long(-1);
+	}
+
+	/**
+	 * Updates a conference room by its room id
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param room_id
+	 *            the room id to update
+	 * @param name
+	 *            new name of the room
+	 * @param roomtypes_id
+	 *            new type of room (1 = Conference, 2 = Audience, 3 =
+	 *            Restricted, 4 = Interview)
+	 * @param comment
+	 *            new comment
+	 * @param numberOfPartizipants
+	 *            new numberOfParticipants
+	 * @param ispublic
+	 *            is public
+	 * @param appointment
+	 *            if the room is an appointment
+	 * @param isDemoRoom
+	 *            is it a Demo Room with limited time? (use false if not sure
+	 *            what that means)
+	 * @param demoTime
+	 *            time in seconds after the user will be logged out (only
+	 *            enabled if isDemoRoom is true)
+	 * @param isModeratedRoom
+	 *            Users have to wait until a Moderator arrives. Use the
+	 *            becomeModerator parameter in setUserObjectAndGenerateRoomHash
+	 *            to set a user as default Moderator
+	 *            
+	 * @return - id of the room updated or error code
+	 */
+	public Long updateRoomWithModeration(String SID, Long room_id, String name,
+			Long roomtypes_id, String comment, Long numberOfPartizipants,
+			Boolean ispublic, Boolean appointment, Boolean isDemoRoom,
+			Integer demoTime, Boolean isModeratedRoom) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				return roomManager.updateRoomInternal(room_id, roomtypes_id,
+						name, ispublic, comment, numberOfPartizipants, null,
+						appointment, isDemoRoom, demoTime, isModeratedRoom,
+						null, true, false, true, false, "", "", null, null, null,
+						false, // hideTopBar
+						false, // hideChat
+						false, // hideActivitiesAndActions
+						false, // hideFilesExplorer
+						false, // hideActionsMenu
+						false, // hideScreenSharing
+						false, // hideWhiteboard
+						false, // showMicrophoneStatus
+						false, // chatModerated
+						false, // chatOpened
+						false, // filesOpened
+						false, // autoVideoSelect
+						false //sipEnabled
+						);
+			}
+		} catch (Exception err) {
+			log.error("[updateRoomWithModeration] ", err);
+		}
+		return new Long(-1);
+	}
+
+	/**
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param room_id
+	 *            the room id to update
+	 * @param name
+	 *            new name of the room
+	 * @param roomtypes_id
+	 *            new type of room (1 = Conference, 2 = Audience, 3 =
+	 *            Restricted, 4 = Interview)
+	 * @param comment
+	 *            new comment
+	 * @param numberOfPartizipants
+	 *            new numberOfParticipants
+	 * @param ispublic
+	 *            is public
+	 * @param appointment
+	 *            if the room is an appointment
+	 * @param isDemoRoom
+	 *            is it a Demo Room with limited time? (use false if not sure
+	 *            what that means)
+	 * @param demoTime
+	 *            time in seconds after the user will be logged out (only
+	 *            enabled if isDemoRoom is true)
+	 * @param isModeratedRoom
+	 *            Users have to wait until a Moderator arrives. Use the
+	 *            becomeModerator parameter in setUserObjectAndGenerateRoomHash
+	 *            to set a user as default Moderator
+	 * @param allowUserQuestions
+	 *            enable or disable the button to allow users to apply for
+	 *            moderation
+	 *            
+	 * @return - id of the room updated or error code
+	 */
+	public Long updateRoomWithModerationAndQuestions(String SID, Long room_id,
+			String name, Long roomtypes_id, String comment,
+			Long numberOfPartizipants, Boolean ispublic, Boolean appointment,
+			Boolean isDemoRoom, Integer demoTime, Boolean isModeratedRoom,
+			Boolean allowUserQuestions) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				return roomManager.updateRoomInternal(room_id, roomtypes_id,
+						name, ispublic, comment, numberOfPartizipants, null,
+						appointment, isDemoRoom, demoTime, isModeratedRoom,
+						null, allowUserQuestions, false, true, false, "", "",
+						null, null, null, false, // hideTopBar
+						false, // hideChat
+						false, // hideActivitiesAndActions
+						false, // hideFilesExplorer
+						false, // hideActionsMenu
+						false, // hideScreenSharing
+						false, // hideWhiteboard
+						false, // showMicrophoneStatus
+						false, // chatModerated
+						false, // chatOpened
+						false, // filesOpened
+						false, // autoVideoSelect
+						false //sipEnabled
+						);
+			}
+		} catch (Exception err) {
+			log.error("[updateRoomWithModerationAndQuestions] ", err);
+		}
+		return new Long(-1);
+	}
+
+	/**
+	 * update room with options for user questions, audio only and hide
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param room_id
+	 *            the room id to update
+	 * @param name
+	 *            new name of the room
+	 * @param roomtypes_id
+	 *            new type of room (1 = Conference, 2 = Audience, 3 =
+	 *            Restricted, 4 = Interview)
+	 * @param comment
+	 *            new comment
+	 * @param numberOfPartizipants
+	 *            number of participants
+	 * @param ispublic
+	 *            is public
+	 * @param appointment
+	 *            if the room is an appointment (use false if not sure what that
+	 *            means)
+	 * @param isDemoRoom
+	 *            is it a Demo Room with limited time? (use false if not sure
+	 *            what that means)
+	 * @param demoTime
+	 *            time in seconds after the user will be logged out (only
+	 *            enabled if isDemoRoom is true)
+	 * @param isModeratedRoom
+	 *            Users have to wait until a Moderator arrives. Use the
+	 *            becomeModerator parameter in setUserObjectAndGenerateRoomHash
+	 *            to set a user as default Moderator
+	 * @param allowUserQuestions
+	 *            enable or disable the button to allow users to apply for
+	 *            moderation
+	 * @param isAudioOnly
+	 *            enable or disable the video / or audio-only
+	 * @param hideTopBar
+	 *            hide or show TopBar
+	 * @param hideChat
+	 *            hide or show Chat
+	 * @param hideActivitiesAndActions
+	 *            hide or show Activities And Actions
+	 * @param hideFilesExplorer
+	 *            hide or show Files Explorer
+	 * @param hideActionsMenu
+	 *            hide or show Actions Menu
+	 * @param hideScreenSharing
+	 *            hide or show Screen Sharing
+	 * @param hideWhiteboard
+	 *            hide or show Whiteboard. If whitboard is hidden, video pods
+	 *            and scrollbar appear instead.
+	 *            
+	 * @return - id of the room updated or error code
+	 */
+	public Long updateRoomWithModerationQuestionsAudioTypeAndHideOptions(
+			String SID, Long room_id, String name, Long roomtypes_id,
+			String comment, Long numberOfPartizipants, Boolean ispublic,
+			Boolean appointment, Boolean isDemoRoom, Integer demoTime,
+			Boolean isModeratedRoom, Boolean allowUserQuestions,
+			Boolean isAudioOnly, Boolean hideTopBar, Boolean hideChat,
+			Boolean hideActivitiesAndActions, Boolean hideFilesExplorer,
+			Boolean hideActionsMenu, Boolean hideScreenSharing,
+			Boolean hideWhiteboard) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				return roomManager.updateRoomInternal(room_id, roomtypes_id,
+						name, ispublic, comment, numberOfPartizipants, null,
+						appointment, isDemoRoom, demoTime, isModeratedRoom,
+						null, allowUserQuestions, isAudioOnly, true, false, "", "",
+						null, null, null, hideTopBar, hideChat,
+						hideActivitiesAndActions, hideFilesExplorer,
+						hideActionsMenu, hideScreenSharing, hideWhiteboard,
+						false, // showMicrophoneStatus
+						false, // chatModerated
+						false, // chatOpened
+						false, // filesOpened
+						false, // autoVideoSelect
+						false //sipEnabled
+						);
+			}
+		} catch (Exception err) {
+			log.error("[updateRoomWithModerationQuestionsAudioTypeAndHideOptions] ", err);
+		}
+		return new Long(-1);
+	}
+
+	/**
+	 * Delete a room by its room id
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param rooms_id
+	 * 
+	 * @return - id of the room deleted
+	 */
+	public Long deleteRoom(String SID, long rooms_id) {
+		return conferenceService.deleteRoom(SID, rooms_id);
+	}
+
+	/**
+	 * kick all uses of a certain room
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 *            _Admin
+	 * @param room_id
+	 *            the room id
+	 *            
+	 * @return - true if user was kicked, false otherwise
+	 */
+	public Boolean kickUser(String SID_Admin, Long room_id) {
+		try {
+			Boolean salida = false;
+
+			salida = userManager.kickUserByStreamId(SID_Admin, room_id);
+
+			if (salida == null)
+				salida = false;
+
+			return salida;
+		} catch (Exception err) {
+			log.error("[kickUser]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * Add a new conference room with option to set the external room type, the
+	 * external room type should be set if multiple applications use the same
+	 * OpenMeetings instance
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param name
+	 *            new name of the room
+	 * @param roomtypes_id
+	 *            new type of room (1 = Conference, 2 = Audience, 3 =
+	 *            Restricted, 4 = Interview)
+	 * @param comment
+	 *            new comment
+	 * @param numberOfPartizipants
+	 *            new numberOfParticipants
+	 * @param ispublic
+	 *            is public
+	 * @param appointment
+	 *            if the room is an appointment
+	 * @param isDemoRoom
+	 *            is it a Demo Room with limited time? (use false if not sure
+	 *            what that means)
+	 * @param demoTime
+	 *            time in seconds after the user will be logged out (only
+	 *            enabled if isDemoRoom is true)
+	 * @param isModeratedRoom
+	 *            Users have to wait until a Moderator arrives. Use the
+	 *            becomeModerator parameter in setUserObjectAndGenerateRoomHash
+	 *            to set a user as default Moderator
+	 * @param externalRoomType
+	 *            the external room type (can be used to identify different
+	 *            external systems using same OpenMeetings instance)
+	 *            
+	 * @return - id of the room added or error code
+	 */
+	public Long addRoomWithModerationAndExternalType(String SID, String name,
+			Long roomtypes_id, String comment, Long numberOfPartizipants,
+			Boolean ispublic, Boolean appointment, Boolean isDemoRoom,
+			Integer demoTime, Boolean isModeratedRoom, String externalRoomType) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				return roomManager.addExternalRoom(name, roomtypes_id,
+						comment, numberOfPartizipants, ispublic, null,
+						appointment, isDemoRoom, demoTime, isModeratedRoom,
+						null, null, externalRoomType, true, false, true, false, "",
+						false, true, false);
+			}
+		} catch (Exception err) {
+			log.error("[addRoomWithModerationAndExternalType] ", err);
+		}
+		return new Long(-1);
+	}
+
+	/**
+	 * Adds a new room with options for audio only
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param name
+	 *            new name of the room
+	 * @param roomtypes_id
+	 *            new type of room (1 = Conference, 2 = Audience, 3 =
+	 *            Restricted, 4 = Interview)
+	 * @param comment
+	 *            new comment
+	 * @param numberOfPartizipants
+	 *            new numberOfParticipants
+	 * @param ispublic
+	 *            is public
+	 * @param appointment
+	 *            if the room is an appointment
+	 * @param isDemoRoom
+	 *            is it a Demo Room with limited time? (use false if not sure
+	 *            what that means)
+	 * @param demoTime
+	 *            time in seconds after the user will be logged out (only
+	 *            enabled if isDemoRoom is true)
+	 * @param isModeratedRoom
+	 *            Users have to wait until a Moderator arrives. Use the
+	 *            becomeModerator parameter in setUserObjectAndGenerateRoomHash
+	 *            to set a user as default Moderator
+	 * @param externalRoomType
+	 *            the external room type (can be used to identify different
+	 *            external systems using same OpenMeetings instance)
+	 * @param allowUserQuestions
+	 *            enable or disable the button to allow users to apply for
+	 *            moderation
+	 * @param isAudioOnly
+	 *            enable or disable the video / or audio-only
+	 *            
+	 * @return - id of the room added or error code
+	 */
+	public Long addRoomWithModerationExternalTypeAndAudioType(String SID,
+			String name, Long roomtypes_id, String comment,
+			Long numberOfPartizipants, Boolean ispublic, Boolean appointment,
+			Boolean isDemoRoom, Integer demoTime, Boolean isModeratedRoom,
+			String externalRoomType, Boolean allowUserQuestions,
+			Boolean isAudioOnly) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				return roomManager.addExternalRoom(name, roomtypes_id,
+						comment, numberOfPartizipants, ispublic, null,
+						appointment, isDemoRoom, demoTime, isModeratedRoom,
+						null, null, externalRoomType, allowUserQuestions,
+						isAudioOnly, true, false, "", false, true, false);
+			}
+		} catch (Exception err) {
+			log.error("[addRoomWithModerationExternalTypeAndAudioType] ", err);
+		}
+		return new Long(-1);
+	}
+
+	/**
+	 * Adds a new room with options for recording
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param name
+	 *            new name of the room
+	 * @param roomtypes_id
+	 *            new type of room (1 = Conference, 2 = Audience, 3 =
+	 *            Restricted, 4 = Interview)
+	 * @param comment
+	 *            new comment
+	 * @param numberOfPartizipants
+	 *            new numberOfParticipants
+	 * @param ispublic
+	 *            is public
+	 * @param appointment
+	 *            if the room is an appointment
+	 * @param isDemoRoom
+	 *            is it a Demo Room with limited time? (use false if not sure
+	 *            what that means)
+	 * @param demoTime
+	 *            time in seconds after the user will be logged out (only
+	 *            enabled if isDemoRoom is true)
+	 * @param isModeratedRoom
+	 *            Users have to wait until a Moderator arrives. Use the
+	 *            becomeModerator parameter in setUserObjectAndGenerateRoomHash
+	 *            to set a user as default Moderator
+	 * @param externalRoomType
+	 *            the external room type (can be used to identify different
+	 *            external systems using same OpenMeetings instance)
+	 * @param allowUserQuestions
+	 *            enable or disable the button to allow users to apply for
+	 *            moderation
+	 * @param isAudioOnly
+	 *            enable or disable the video / or audio-only
+	 * @param waitForRecording
+	 *            if the users in the room will get a notification that they
+	 *            should start recording before they do a conference
+	 * @param allowRecording
+	 *            if the recording option is available or not
+	 *            
+	 * @return - id of the room added or error code
+	 */
+	public Long addRoomWithModerationAndRecordingFlags(String SID, String name,
+			Long roomtypes_id, String comment, Long numberOfPartizipants,
+			Boolean ispublic, Boolean appointment, Boolean isDemoRoom,
+			Integer demoTime, Boolean isModeratedRoom, String externalRoomType,
+			Boolean allowUserQuestions, Boolean isAudioOnly,
+			Boolean waitForRecording, Boolean allowRecording) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				return roomManager.addExternalRoom(name, roomtypes_id,
+						comment, numberOfPartizipants, ispublic, null,
+						appointment, isDemoRoom, demoTime, isModeratedRoom,
+						null, null, externalRoomType, allowUserQuestions,
+						isAudioOnly, true, false, "", waitForRecording,
+						allowRecording, false);
+			} else {
+				return -26L;
+			}
+		} catch (Exception err) {
+			log.error("[addRoomWithModerationAndRecordingFlags] ", err);
+		}
+		return new Long(-1);
+	}
+
+	/**
+	 * Add a conference room with options to disable the top menu bar in the
+	 * conference room
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param name
+	 *            new name of the room
+	 * @param roomtypes_id
+	 *            new type of room (1 = Conference, 2 = Audience, 3 =
+	 *            Restricted, 4 = Interview)
+	 * @param comment
+	 *            new comment
+	 * @param numberOfPartizipants
+	 *            new numberOfParticipants
+	 * @param ispublic
+	 *            is public
+	 * @param appointment
+	 *            if the room is an appointment
+	 * @param isDemoRoom
+	 *            is it a Demo Room with limited time? (use false if not sure
+	 *            what that means)
+	 * @param demoTime
+	 *            time in seconds after the user will be logged out (only
+	 *            enabled if isDemoRoom is true)
+	 * @param isModeratedRoom
+	 *            Users have to wait until a Moderator arrives. Use the
+	 *            becomeModerator parameter in setUserObjectAndGenerateRoomHash
+	 *            to set a user as default Moderator
+	 * @param externalRoomType
+	 *            the external room type (can be used to identify different
+	 *            external systems using same OpenMeetings instance)
+	 * @param allowUserQuestions
+	 *            enable or disable the button to allow users to apply for
+	 *            moderation
+	 * @param isAudioOnly
+	 *            enable or disable the video / or audio-only
+	 * @param waitForRecording
+	 *            if the users in the room will get a notification that they
+	 *            should start recording before they do a conference
+	 * @param allowRecording
+	 *            if the recording option is available or not
+	 * @param hideTopBar
+	 *            if the top bar in the conference room is visible or not
+	 *            
+	 * @return - id of the room added or error code
+	 */
+	public Long addRoomWithModerationExternalTypeAndTopBarOption(String SID,
+			String name, Long roomtypes_id, String comment,
+			Long numberOfPartizipants, Boolean ispublic, Boolean appointment,
+			Boolean isDemoRoom, Integer demoTime, Boolean isModeratedRoom,
+			String externalRoomType, Boolean allowUserQuestions,
+			Boolean isAudioOnly, Boolean waitForRecording,
+			Boolean allowRecording, Boolean hideTopBar) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				return roomManager.addExternalRoom(name, roomtypes_id,
+						comment, numberOfPartizipants, ispublic, null,
+						appointment, isDemoRoom, demoTime, isModeratedRoom,
+						null, null, externalRoomType, allowUserQuestions,
+						isAudioOnly, true, false, "", waitForRecording,
+						allowRecording, hideTopBar);
+			}
+		} catch (Exception err) {
+			log.error("[addRoomWithModerationExternalTypeAndTopBarOption] ", err);
+		}
+		return new Long(-1);
+	}
+
+	/**
+	 * 
+	 * Create a Invitation hash and optionally send it by mail the From to Date
+	 * is as String as some SOAP libraries do not accept Date Objects in SOAP
+	 * Calls Date is parsed as dd.mm.yyyy, time as hh:mm (don't forget the
+	 * leading zero's)
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin a
+	 *            valid Session Token
+	 * @param username
+	 *            the username of the User that he will get
+	 * @param room_id
+	 *            the conference room id of the invitation
+	 * @param isPasswordProtected
+	 *            if the invitation is password protected
+	 * @param invitationpass
+	 *            the password for accessing the conference room via the
+	 *            invitation hash
+	 * @param valid
+	 *            the type of validation for the hash 1: endless, 2: from-to
+	 *            period, 3: one-time
+	 * @param validFromDate
+	 *            Date in Format of dd.mm.yyyy only of interest if valid is type
+	 *            2
+	 * @param validFromTime
+	 *            time in Format of hh:mm only of interest if valid is type 2
+	 * @param validToDate
+	 *            Date in Format of dd.mm.yyyy only of interest if valid is type
+	 *            2
+	 * @param validToTime
+	 *            time in Format of hh:mm only of interest if valid is type 2
+	 * @return a HASH value that can be made into a URL with
+	 *         http://$OPENMEETINGS_HOST
+	 *         :$PORT/openmeetings/?invitationHash="+invitationsHash;
+	 * @throws AxisFault
+	 */
+	public String getInvitationHash(String SID, String username, Long room_id,
+			Boolean isPasswordProtected, String invitationpass, Integer valid,
+			String validFromDate, String validFromTime, String validToDate,
+			String validToTime) throws AxisFault {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+
+				Date dFrom = null;
+				Date dTo = null;
+
+				if (valid == 2) {
+					Integer validFromHour = Integer.valueOf(
+							validFromTime.substring(0, 2)).intValue();
+					Integer validFromMinute = Integer.valueOf(
+							validFromTime.substring(3, 5)).intValue();
+
+					Integer validToHour = Integer.valueOf(
+							validToTime.substring(0, 2)).intValue();
+					Integer validToMinute = Integer.valueOf(
+							validToTime.substring(3, 5)).intValue();
+
+					log.info("validFromHour: " + validFromHour);
+					log.info("validFromMinute: " + validFromMinute);
+
+					Date fromDate = CalendarPatterns.parseDate(validFromDate); // dd.MM.yyyy
+					Date toDate = CalendarPatterns.parseDate(validToDate); // dd.MM.yyyy
+
+					Calendar calFrom = Calendar.getInstance();
+					calFrom.setTime(fromDate);
+					calFrom.set(calFrom.get(Calendar.YEAR),
+							calFrom.get(Calendar.MONTH),
+							calFrom.get(Calendar.DATE), validFromHour,
+							validFromMinute, 0);
+
+					Calendar calTo = Calendar.getInstance();
+					calTo.setTime(toDate);
+					calTo.set(calTo.get(Calendar.YEAR),
+							calTo.get(Calendar.MONTH),
+							calTo.get(Calendar.DATE), validToHour,
+							validToMinute, 0);
+
+					dFrom = calFrom.getTime();
+					dTo = calTo.getTime();
+
+					log.info("validFromDate: "
+							+ CalendarPatterns
+									.getDateWithTimeByMiliSeconds(dFrom));
+					log.info("validToDate: "
+							+ CalendarPatterns
+									.getDateWithTimeByMiliSeconds(dTo));
+				}
+				User invitee = userDao.getContact(username, username, username, users_id);
+				Invitation invitation = invitationManager.getInvitation(invitee, roomDao.get(room_id),
+								isPasswordProtected, invitationpass, Valid.fromInt(valid)
+								, userDao.get(users_id), 1L, dFrom, dTo, null);
+
+				if (invitation != null) {
+					return invitation.getHash();
+				} else {
+					return "Sys - Error";
+				}
+			} else {
+				return "Need Admin Privileges to perfom the Action";
+			}
+		} catch (Exception err) {
+			log.error("[sendInvitationHash] ", err);
+			throw new AxisFault(err.getMessage());
+		}
+	}
+
+	/**
+	 * Create a Invitation hash and optionally send it by mail the From to Date
+	 * is as String as some SOAP libraries do not accept Date Objects in SOAP
+	 * Calls Date is parsed as dd.mm.yyyy, time as hh:mm (don't forget the
+	 * leading zero's)
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin a
+	 *            valid Session Token
+	 * @param username
+	 *            the Username of the User that he will get
+	 * @param message
+	 *            the Message in the Email Body send with the invitation if
+	 *            sendMail is true
+	 * @param email
+	 *            the Email to send the invitation to if sendMail is true
+	 * @param subject
+	 *            the subject of the Email send with the invitation if sendMail
+	 *            is true
+	 * @param room_id
+	 *            the conference room id of the invitation
+	 * @param conferencedomain
+	 *            the domain of the room (keep empty)
+	 * @param isPasswordProtected
+	 *            if the invitation is password protected
+	 * @param invitationpass
+	 *            the password for accessing the conference room via the
+	 *            invitation hash
+	 * @param valid
+	 *            the type of validation for the hash 1: endless, 2: from-to
+	 *            period, 3: one-time
+	 * @param validFromDate
+	 *            Date in Format of dd.mm.yyyy only of interest if valid is type
+	 *            2
+	 * @param validFromTime
+	 *            time in Format of hh:mm only of interest if valid is type 2
+	 * @param validToDate
+	 *            Date in Format of dd.mm.yyyy only of interest if valid is type
+	 *            2
+	 * @param validToTime
+	 *            time in Format of hh:mm only of interest if valid is type 2
+	 * @param language_id
+	 *            the language id of the EMail that is send with the invitation
+	 *            if sendMail is true
+	 * @param sendMail
+	 *            if sendMail is true then the RPC-Call will send the invitation
+	 *            to the email
+	 * @return a HASH value that can be made into a URL with
+	 *         http://$OPENMEETINGS_HOST
+	 *         :$PORT/openmeetings/?invitationHash="+invitationsHash;
+	 * @throws AxisFault
+	 */
+	public String sendInvitationHash(String SID, String username,
+			String message, String email, String subject,
+			Long room_id, String conferencedomain, Boolean isPasswordProtected,
+			String invitationpass, Integer valid, String validFromDate,
+			String validFromTime, String validToDate, String validToTime,
+			Long language_id, Boolean sendMail) throws AxisFault {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+
+				Date dFrom = null;
+				Date dTo = null;
+
+				if (valid == 2) {
+					Integer validFromHour = Integer.valueOf(
+							validFromTime.substring(0, 2)).intValue();
+					Integer validFromMinute = Integer.valueOf(
+							validFromTime.substring(3, 5)).intValue();
+
+					Integer validToHour = Integer.valueOf(
+							validToTime.substring(0, 2)).intValue();
+					Integer validToMinute = Integer.valueOf(
+							validToTime.substring(3, 5)).intValue();
+
+					log.info("validFromHour: " + validFromHour);
+					log.info("validFromMinute: " + validFromMinute);
+
+					Date fromDate = CalendarPatterns.parseDate(validFromDate); // dd.MM.yyyy
+					Date toDate = CalendarPatterns.parseDate(validToDate); // dd.MM.yyyy
+
+					Calendar calFrom = Calendar.getInstance();
+					calFrom.setTime(fromDate);
+					calFrom.set(calFrom.get(Calendar.YEAR),
+							calFrom.get(Calendar.MONTH),
+							calFrom.get(Calendar.DATE), validFromHour,
+							validFromMinute, 0);
+
+					Calendar calTo = Calendar.getInstance();
+					calTo.setTime(toDate);
+					calTo.set(calTo.get(Calendar.YEAR),
+							calTo.get(Calendar.MONTH),
+							calTo.get(Calendar.DATE), validToHour,
+							validToMinute, 0);
+
+					dFrom = calFrom.getTime();
+					dTo = calTo.getTime();
+
+					log.info("validFromDate: "
+							+ CalendarPatterns
+									.getDateWithTimeByMiliSeconds(dFrom));
+					log.info("validToDate: "
+							+ CalendarPatterns
+									.getDateWithTimeByMiliSeconds(dTo));
+				}
+
+				User invitee = userDao.getContact(email, users_id);
+				Invitation invitation = invitationManager.getInvitation(invitee, roomDao.get(room_id),
+								isPasswordProtected, invitationpass, Valid.fromInt(valid)
+								, userDao.get(users_id), language_id,
+								dFrom, dTo, null);
+
+				if (invitation != null) {
+					if (sendMail) {
+						invitationManager.sendInvitionLink(invitation, MessageType.Create, subject, message, false);
+					}
+
+					return invitation.getHash();
+				} else {
+					return "Sys - Error";
+				}
+			} else {
+				return "Need Admin Privileges to perfom the Action";
+			}
+
+		} catch (Exception err) {
+			log.error("[sendInvitationHash] ", err);
+			throw new AxisFault(err.getMessage());
+		}
+	}
+
+	/**
+	 * Create a Invitation hash and optionally send it by mail the From to Date
+	 * is as String as some SOAP libraries do not accept Date Objects in SOAP
+	 * Calls Date is parsed as dd.mm.yyyy, time as hh:mm (don't forget the
+	 * leading zero's)
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin a
+	 *            valid Session Token
+	 * @param username
+	 *            the Username of the User that he will get
+	 * @param message
+	 *            the Message in the Email Body send with the invitation if
+	 *            sendMail is true
+	 * @param email
+	 *            the Email to send the invitation to if sendMail is true
+	 * @param subject
+	 *            the subject of the Email send with the invitation if sendMail
+	 *            is true
+	 * @param room_id
+	 *            the conference room id of the invitation
+	 * @param conferencedomain
+	 *            the domain of the room (keep empty)
+	 * @param isPasswordProtected
+	 *            if the invitation is password protected
+	 * @param invitationpass
+	 *            the password for accessing the conference room via the
+	 *            invitation hash
+	 * @param valid
+	 *            the type of validation for the hash 1: endless, 2: from-to
+	 *            period, 3: one-time
+	 * @param fromDate
+	 *            Date as Date Object only of interest if valid is type 2
+	 * @param toDate
+	 *            Date as Date Object only of interest if valid is type 2
+	 * @param language_id
+	 *            the language id of the EMail that is send with the invitation
+	 *            if sendMail is true
+	 * @param sendMail
+	 *            if sendMail is true then the RPC-Call will send the invitation
+	 *            to the email
+	 * @return a HASH value that can be made into a URL with
+	 *         http://$OPENMEETINGS_HOST
+	 *         :$PORT/openmeetings/?invitationHash="+invitationsHash;
+	 * @throws AxisFault
+	 */
+	public String sendInvitationHashWithDateObject(String SID, String username,
+			String message, String email, String subject,
+			Long room_id, String conferencedomain, Boolean isPasswordProtected,
+			String invitationpass, Integer valid, Date fromDate, Date toDate,
+			Long language_id, Boolean sendMail) throws AxisFault {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+
+				Calendar calFrom = Calendar.getInstance();
+				calFrom.setTime(fromDate);
+
+				Calendar calTo = Calendar.getInstance();
+				calTo.setTime(toDate);
+
+				Date dFrom = calFrom.getTime();
+				Date dTo = calTo.getTime();
+
+				log.info("validFromDate: "
+						+ CalendarPatterns.getDateWithTimeByMiliSeconds(dFrom));
+				log.info("validToDate: "
+						+ CalendarPatterns.getDateWithTimeByMiliSeconds(dTo));
+
+				User invitee = userDao.getContact(email, users_id);
+				Invitation invitation = invitationManager.getInvitation(invitee, roomDao.get(room_id),
+								isPasswordProtected, invitationpass, Valid.fromInt(valid)
+								, userDao.get(users_id), language_id,
+								dFrom, dTo, null);
+
+				if (invitation != null) {
+					if (sendMail) {
+						invitationManager.sendInvitionLink(invitation, MessageType.Create, subject, message, false);
+					}
+
+					return invitation.getHash();
+				} else {
+					return "Sys - Error";
+				}
+			} else {
+				return "Need Admin Privileges to perfom the Action";
+			}
+		} catch (Exception err) {
+			log.error("[sendInvitationHash] ", err);
+			throw new AxisFault(err.getMessage());
+		}
+	}
+
+	/**
+	 * Return a RoomReturn Object with information of the current users of a
+	 * conference room
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param start
+	 *            The id you want to start
+	 * @param max
+	 *            The maximum you want to get
+	 * @param orderby
+	 *            The column it will be ordered
+	 * @param asc
+	 *            Asc or Desc sort ordering
+	 *            
+	 * @return - RoomReturn Objects with information of the current users
+	 * @throws AxisFault
+	 */
+	public List<RoomReturn> getRoomsWithCurrentUsersByList(String SID,
+			int start, int max, String orderby, boolean asc) throws AxisFault {
+		try {
+			List<Room> rooms = conferenceService
+					.getRoomsWithCurrentUsersByList(SID, start, max, orderby,
+							asc);
+
+			List<RoomReturn> returnObjList = new LinkedList<RoomReturn>();
+
+			for (Room room : rooms) {
+
+				RoomReturn roomReturn = new RoomReturn();
+
+				roomReturn.setRoom_id(room.getRooms_id());
+				roomReturn.setName(room.getName());
+
+				roomReturn.setCreator("SOAP");
+				roomReturn.setCreated(room.getStarttime());
+
+				RoomUser[] rUser = new RoomUser[room.getCurrentusers().size()];
+
+				int i = 0;
+				for (Client rcl : room.getCurrentusers()) {
+
+					RoomUser ru = new RoomUser();
+					ru.setFirstname(rcl.getFirstname());
+					ru.setLastname(rcl.getLastname());
+
+					rUser[i] = ru;
+
+					i++;
+				}
+
+				roomReturn.setRoomUser(rUser);
+
+				returnObjList.add(roomReturn);
+
+			}
+
+			return returnObjList;
+		} catch (Exception err) {
+			log.error("setUserObjectWithExternalUser", err);
+			throw new AxisFault(err.getMessage());
+		}
+	}
+
+	/**
+	 * Return a RoomReturn Object with information of the current users of a
+	 * conference room with option to search for special external room types
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param start
+	 *            The id you want to start
+	 * @param max
+	 *            The maximum you want to get
+	 * @param orderby
+	 *            The column it will be ordered
+	 * @param asc
+	 *            Asc or Desc sort ordering
+	 * @param externalRoomType
+	 *            the external room type
+	 *            
+	 * @return - list of room return objects
+	 * @throws AxisFault
+	 */
+	public List<RoomReturn> getRoomsWithCurrentUsersByListAndType(String SID,
+			int start, int max, String orderby, boolean asc,
+			String externalRoomType) throws AxisFault {
+		try {
+			List<Room> rooms = conferenceService
+					.getRoomsWithCurrentUsersByListAndType(SID, start, max,
+							orderby, asc, externalRoomType);
+
+			List<RoomReturn> returnObjList = new LinkedList<RoomReturn>();
+
+			for (Room room : rooms) {
+
+				RoomReturn roomReturn = new RoomReturn();
+
+				roomReturn.setRoom_id(room.getRooms_id());
+				roomReturn.setName(room.getName());
+
+				roomReturn.setCreator("SOAP");
+				roomReturn.setCreated(room.getStarttime());
+
+				RoomUser[] rUser = new RoomUser[room.getCurrentusers().size()];
+
+				int i = 0;
+				for (Client rcl : room.getCurrentusers()) {
+
+					RoomUser ru = new RoomUser();
+					ru.setFirstname(rcl.getFirstname());
+					ru.setLastname(rcl.getLastname());
+
+					rUser[i] = ru;
+
+					i++;
+				}
+
+				roomReturn.setRoomUser(rUser);
+
+				returnObjList.add(roomReturn);
+
+			}
+
+			return returnObjList;
+		} catch (Exception err) {
+			log.error("setUserObjectWithExternalUser", err);
+			throw new AxisFault(err.getMessage());
+		}
+	}
+
+	/**
+	 * Adds a conference room that is only available for a period of time
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param name
+	 *            new name of the room
+	 * @param roomtypes_id
+	 *            new type of room (1 = Conference, 2 = Audience, 3 =
+	 *            Restricted, 4 = Interview)
+	 * @param comment
+	 *            new comment
+	 * @param numberOfPartizipants
+	 *            new numberOfParticipants
+	 * @param ispublic
+	 *            is public
+	 * @param appointment
+	 *            if the room is an appointment
+	 * @param isDemoRoom
+	 *            is it a Demo Room with limited time? (use false if not sure
+	 *            what that means)
+	 * @param demoTime
+	 *            time in seconds after the user will be logged out (only
+	 *            enabled if isDemoRoom is true)
+	 * @param isModeratedRoom
+	 *            Users have to wait until a Moderator arrives. Use the
+	 *            becomeModerator parameter in setUserObjectAndGenerateRoomHash
+	 *            to set a user as default Moderator
+	 * @param externalRoomType
+	 *            the external room type (can be used to identify different
+	 *            external systems using same OpenMeetings instance)
+	 * @param validFromDate
+	 *            valid from as Date format: dd.MM.yyyy
+	 * @param validFromTime
+	 *            valid to as time format: mm:hh
+	 * @param validToDate
+	 *            valid to Date format: dd.MM.yyyy
+	 * @param validToTime
+	 *            valid to time format: mm:hh
+	 * @param isPasswordProtected
+	 *            If the links send via EMail to invited people is password
+	 *            protected
+	 * @param password
+	 *            Password for Invitations send via Mail
+	 * @param reminderTypeId
+	 *            1=none, 2=simple mail, 3=ICAL
+	 * @param redirectURL
+	 *            URL Users will be lead to if the Conference Time is elapsed
+	 *            
+	 * @return - id of the room in case of success, error code otherwise
+	 * @throws AxisFault
+	 */
+	public Long addRoomWithModerationAndExternalTypeAndStartEnd(String SID,
+			String name, Long roomtypes_id, String comment,
+			Long numberOfPartizipants, Boolean ispublic, Boolean appointment,
+			Boolean isDemoRoom, Integer demoTime, Boolean isModeratedRoom,
+			String externalRoomType, String validFromDate,
+			String validFromTime, String validToDate, String validToTime,
+			Boolean isPasswordProtected, String password, Long reminderTypeId,
+			String redirectURL) throws AxisFault {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				int validFromHour = Integer.valueOf(validFromTime.substring(0, 2)).intValue();
+				int validFromMinute = Integer.valueOf(validFromTime.substring(3, 5)).intValue();
+
+				int validToHour = Integer.valueOf(validToTime.substring(0, 2)).intValue();
+				int validToMinute = Integer.valueOf(validToTime.substring(3, 5)).intValue();
+
+				log.info("validFromHour: " + validFromHour);
+				log.info("validFromMinute: " + validFromMinute);
+
+				Date fromDate = CalendarPatterns.parseDateBySeparator(validFromDate); // dd.MM.yyyy
+				Date toDate = CalendarPatterns.parseDateBySeparator(validToDate); // dd.MM.yyyy
+
+				Calendar calFrom = Calendar.getInstance();
+				calFrom.setTime(fromDate);
+				calFrom.set(calFrom.get(Calendar.YEAR),
+						calFrom.get(Calendar.MONTH),
+						calFrom.get(Calendar.DATE), validFromHour,
+						validFromMinute, 0);
+
+				Calendar calTo = Calendar.getInstance();
+				calTo.setTime(toDate);
+				calTo.set(calTo.get(Calendar.YEAR), calTo.get(Calendar.MONTH),
+						calTo.get(Calendar.DATE), validToHour, validToMinute, 0);
+
+				Date dFrom = calFrom.getTime();
+				Date dTo = calTo.getTime();
+
+				log.info("validFromDate: " + CalendarPatterns.getDateWithTimeByMiliSeconds(dFrom));
+				log.info("validToDate: " + CalendarPatterns.getDateWithTimeByMiliSeconds(dTo));
+
+				Long rooms_id = roomManager.addExternalRoom(name,
+						roomtypes_id, comment, numberOfPartizipants, ispublic,
+						null, appointment, isDemoRoom, demoTime,
+						isModeratedRoom, null, null, externalRoomType, false, // allowUserQuestions
+						false, // isAudioOnly
+						true,  // allowFontStyles
+						false, // isClosed
+						redirectURL, false, true, false);
+
+				if (rooms_id <= 0) {
+					return rooms_id;
+				}
+
+				Appointment a = new Appointment();
+				a.setTitle("appointmentName");
+				a.setOwner(userDao.get(users_id));
+				a.setLocation("appointmentLocation");
+				a.setDescription("appointmentDescription");
+				a.setStart(dFrom);
+				a.setEnd(dTo);
+				a.setCategory(appointmentCategoryDao.get(1L));
+				a.setRemind(appointmentReminderTypDao.get(reminderTypeId));
+				a.setRoom(roomDao.get(rooms_id));
+				a.setPasswordProtected(isPasswordProtected);
+				a.setPassword(password);
+				a.setLanguageId(1L); //TODO check
+				appointmentDao.update(a, users_id); //FIXME verify !!!
+
+				return rooms_id;
+
+			} else {
+				return -2L;
+			}
+		} catch (Exception err) {
+			log.error("[addRoomWithModeration] ", err);
+
+			throw new AxisFault(err.getMessage());
+		}
+		// return new Long(-1);
+		// return numberOfPartizipants;
+	}
+
+	/**
+	 * Add a meeting member to a certain room. This is the same as adding an
+	 * external user to a event in the calendar.
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param room_id
+	 *            The Room Id the meeting member is going to be added
+	 * @param firstname
+	 *            The first name of the meeting member
+	 * @param lastname
+	 *            The last name of the meeting member
+	 * @param email
+	 *            The email of the Meeting member
+	 * @param language_id
+	 *            The ID of the language, for the email that is send to the
+	 *            meeting member
+	 *            
+	 * @return - id of the member in case of success, error code otherwise
+	 * @throws AxisFault
+	 */
+	public Long addMeetingMemberRemindToRoom(String SID, Long room_id,
+			String firstname, String lastname, String email, Long language_id) throws AxisFault {
+		return addExternalMeetingMemberRemindToRoom(SID, room_id, firstname, lastname, email, language_id, null, null);
+	}
+
+	/**
+	 * Add a meeting member to a certain room. This is the same as adding an
+	 * external user to a event in the calendar. with a certain time zone
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param room_id
+	 *            The Room Id the meeting member is going to be added
+	 * @param firstname
+	 *            The first name of the meeting member
+	 * @param lastname
+	 *            The last name of the meeting member
+	 * @param email
+	 *            The email of the Meeting member
+	 * @param language_id
+	 *            The ID of the language, for the email that is send to the
+	 *            meeting member
+	 * @param jNameTimeZone
+	 *            name of the timezone
+	 * @param invitorName
+	 *            name of invitation creators
+	 *            
+	 * @return - id of the member in case of success, error code otherwise
+	 * @throws AxisFault
+	 */
+	public Long addExternalMeetingMemberRemindToRoom(String SID, Long room_id,
+			String firstname, String lastname, String email, Long language_id, String jNameTimeZone, String invitorName)
+			throws AxisFault {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				Appointment a = appointmentLogic.getAppointmentByRoom(room_id);
+
+				if (email == null || a == null) {
+					return -1L;
+				}
+				for (MeetingMember mm : a.getMeetingMembers()) {
+					if (email.equals(mm.getUser().getAdresses().getEmail())) {
+						return mm.getId();
+					}
+				}
+				MeetingMember mm = new MeetingMember();
+				mm.setAppointment(a);
+				mm.setUser(userDao.getContact(email, firstname, lastname, language_id, jNameTimeZone, users_id));
+				a.getMeetingMembers().add(mm);
+				appointmentDao.update(a, users_id);
+
+				return mm.getId(); //FIXME check to return ID
+			} else {
+				return -2L;
+			}
+		} catch (Exception err) {
+			log.error("[addExternalMeetingMemberRemindToRoom] ", err);
+
+			throw new AxisFault(err.getMessage());
+		}
+	}
+
+	/**
+	 * Method to remotely close or open rooms. If a room is closed all users
+	 * inside the room and all users that try to enter it will be redirected to
+	 * the redirectURL that is defined in the Room-Object.
+	 * 
+	 * Returns positive value if authentication was successful.
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param room_id
+	 *            the room id
+	 * @param status
+	 *            false = close, true = open
+	 *            
+	 * @return - 1 in case of success, -2 otherwise
+	 * @throws AxisFault
+	 */
+	public int closeRoom(String SID, Long room_id, Boolean status)
+			throws AxisFault {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			log.debug("closeRoom 1 " + room_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+
+				log.debug("closeRoom 2 " + status);
+
+				roomManager.closeRoom(room_id, status);
+
+				if (status) {
+					Map<String, String> message = new HashMap<String, String>();
+					message.put("message", "roomClosed");
+					scopeApplicationAdapter.sendMessageByRoomAndDomain(room_id,
+							message);
+				}
+				return 1;
+
+			} else {
+				return -2;
+			}
+		} catch (Exception err) {
+			log.error("[closeRoom] ", err);
+
+			throw new AxisFault(err.getMessage());
+		}
+
+	}
+
+	/**
+	 * Method to update arbitrary room parameter.
+	 * 
+	 * @param SID The SID of the User. This SID must be marked as Loggedin
+	 * @param room_id the room id
+	 * @param paramName
+	 * @param paramValue
+	 * @return 1 in case of success, -2 if permissions are insufficient
+	 * @throws AxisFault if any error occurred
+	 */
+	public int modifyRoomParameter(String SID, Long room_id, String paramName, Object paramValue)
+			throws AxisFault {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				log.debug(String.format("modifyRoomParameter[%s]: %s = %s", room_id, paramName, paramValue));
+				Room r = roomDao.get(room_id);
+				BeanWrapper rw = new BeanWrapperImpl(r);
+				rw.setPropertyValue(paramName, paramValue);
+				roomDao.update(r, users_id);
+			} else {
+				return -2;
+			}
+			return 1;
+		} catch (Exception err) {
+			log.error("[modifyRoomParameter] ", err);
+
+			throw new AxisFault(err.getMessage());
+		}
+	}
+	
+	/**
+	 * Adds a room to an organization
+	 * 
+	 * @param SID - The SID of the User. This SID must be marked as Loggedin
+	 * @param rooms_id - Id of room to be added
+	 * @param organisation_id - Id of organisation that the room is being paired with
+	 * 
+	 * @return Id of the relation created, null or -1 in case of the error
+	 */
+	public Long addRoomToOrg(String SID, Long rooms_id, Long organisation_id) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				if (null == roomManager.getRoomsOrganisationByOrganisationIdAndRoomId(organisation_id, rooms_id)) {
+					return roomManager.addRoomToOrganisation(user_level, rooms_id, organisation_id);
+				}
+			}
+		} catch (Exception err) {
+			log.error("[addRoomToOrg]", err);
+		}
+		return new Long(-1);
+	}
+}
diff --git a/src/axis/java/org/apache/openmeetings/axis/services/RoomWebServiceFacade.java b/src/axis/java/org/apache/openmeetings/axis/services/RoomWebServiceFacade.java
new file mode 100644
index 0000000..b2cce19
--- /dev/null
+++ b/src/axis/java/org/apache/openmeetings/axis/services/RoomWebServiceFacade.java
@@ -0,0 +1,616 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.axis.services;
+
+import java.util.Date;
+import java.util.List;
+
+import org.apache.axis2.AxisFault;
+import org.apache.openmeetings.db.dto.file.RecordingObject;
+import org.apache.openmeetings.db.dto.room.RoomSearchResult;
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.room.RoomType;
+
+public class RoomWebServiceFacade extends BaseWebService {
+
+	public Room[] getRoomsPublic(String SID, Long roomtypes_id) throws AxisFault {
+		return getBean(RoomWebService.class).getRoomsPublic(SID, roomtypes_id);
+	}
+
+	/**
+	 * Deletes a flv recording
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as Loggedin
+	 * @param flvRecordingId
+	 *            the id of the recording
+	 * @return
+	 * @throws AxisFault
+	 */
+	public boolean deleteFlvRecording(String SID, Long flvRecordingId)
+			throws AxisFault {
+		return getBean(RoomWebService.class).deleteFlvRecording(SID,
+				flvRecordingId);
+	}
+
+	public List<RecordingObject> getFlvRecordingByExternalUserId(String SID,
+			String externalUserId, String externalUserType) throws AxisFault {
+		return getBean(RoomWebService.class).getFlvRecordingByExternalUserId(SID, externalUserId, externalUserType);
+	}
+
+	public RecordingObject[] getFlvRecordingByExternalRoomTypeAndCreator(
+			String SID, String externalRoomType, Long insertedBy)
+			throws AxisFault {
+		return getBean(RoomWebService.class)
+				.getFlvRecordingByExternalRoomTypeAndCreator(SID,
+						externalRoomType, insertedBy);
+	}
+
+	public List<FlvRecording> getFlvRecordingByExternalRoomTypeByList(
+			String SID, String externalRoomType) throws AxisFault {
+		return getBean(RoomWebService.class)
+				.getFlvRecordingByExternalRoomTypeByList(SID, externalRoomType);
+	}
+
+	public FlvRecording[] getFlvRecordingByExternalRoomType(String SID, String externalRoomType) throws AxisFault {
+		return getBean(RoomWebService.class).getFlvRecordingByExternalRoomType(SID, externalRoomType);
+	}
+
+	public FlvRecording[] getFlvRecordingByRoomId(String SID, Long roomId) throws AxisFault {
+		return getBean(RoomWebService.class).getFlvRecordingByRoomId(SID, roomId);
+	}
+
+	public List<RoomType> getRoomTypes(String SID) throws AxisFault {
+		return getBean(RoomWebService.class).getRoomTypes(SID);
+	}
+
+	public List<RoomCountBean> getRoomCounters(String SID, Integer[] roomId) throws AxisFault {
+		return getBean(RoomWebService.class).getRoomCounters(SID, roomId);
+	}
+
+	public Room getRoomById(String SID, long rooms_id) throws AxisFault {
+		return getBean(RoomWebService.class).getRoomById(SID, rooms_id);
+	}
+
+	public RoomReturn getRoomWithClientObjectsById(String SID, long rooms_id)
+			throws AxisFault {
+		return getBean(RoomWebService.class).getRoomWithClientObjectsById(SID,
+				rooms_id);
+	}
+
+	public RoomSearchResult getRooms(String SID, int start, int max, String orderby, boolean asc) throws AxisFault {
+		return getBean(RoomWebService.class).getRooms(SID, start, max, orderby, asc);
+	}
+
+	public RoomSearchResult getRoomsWithCurrentUsers(String SID, int start, int max, String orderby , boolean asc) throws AxisFault {
+		return getBean(RoomWebService.class).getRoomsWithCurrentUsers(SID, start, max, orderby, asc);
+	}
+
+	/**
+	 * TODO: Fix Organization Issue
+	 * 
+	 * @deprecated use addRoomWithModeration instead
+	 * 
+	 * @param SID
+	 * @param name
+	 * @param roomtypes_id
+	 * @param comment
+	 * @param numberOfPartizipants
+	 * @param ispublic
+	 * @param videoPodWidth
+	 * @param videoPodHeight
+	 * @param videoPodXPosition
+	 * @param videoPodYPosition
+	 * @param moderationPanelXPosition
+	 * @param showWhiteBoard
+	 * @param whiteBoardPanelXPosition
+	 * @param whiteBoardPanelYPosition
+	 * @param whiteBoardPanelHeight
+	 * @param whiteBoardPanelWidth
+	 * @param showFilesPanel
+	 * @param filesPanelXPosition
+	 * @param filesPanelYPosition
+	 * @param filesPanelHeight
+	 * @param filesPanelWidth
+	 * @return
+	 */
+	@Deprecated
+	public Long addRoom(String SID, String name, Long roomtypes_id,
+			String comment, Long numberOfPartizipants, Boolean ispublic,
+			Integer videoPodWidth, Integer videoPodHeight,
+			Integer videoPodXPosition, Integer videoPodYPosition,
+			Integer moderationPanelXPosition, Boolean showWhiteBoard,
+			Integer whiteBoardPanelXPosition, Integer whiteBoardPanelYPosition,
+			Integer whiteBoardPanelHeight, Integer whiteBoardPanelWidth,
+			Boolean showFilesPanel, Integer filesPanelXPosition,
+			Integer filesPanelYPosition, Integer filesPanelHeight,
+			Integer filesPanelWidth) throws AxisFault {
+		return getBean(RoomWebService.class).addRoom(SID, name, roomtypes_id,
+				comment, numberOfPartizipants, ispublic, videoPodWidth,
+				videoPodHeight, videoPodXPosition, videoPodYPosition,
+				moderationPanelXPosition, showWhiteBoard,
+				whiteBoardPanelXPosition, whiteBoardPanelYPosition,
+				whiteBoardPanelHeight, whiteBoardPanelWidth, showFilesPanel,
+				filesPanelXPosition, filesPanelYPosition, filesPanelHeight,
+				filesPanelWidth);
+	}
+
+	public Long addRoomWithModeration(String SID, String name,
+			Long roomtypes_id, String comment, Long numberOfPartizipants,
+			Boolean ispublic, Boolean appointment, Boolean isDemoRoom,
+			Integer demoTime, Boolean isModeratedRoom) throws AxisFault {
+		return getBean(RoomWebService.class).addRoomWithModeration(SID, name,
+				roomtypes_id, comment, numberOfPartizipants, ispublic,
+				appointment, isDemoRoom, demoTime, isModeratedRoom);
+	}
+
+	/**
+	 * this SOAP Method has an additional param to enable or disable the buttons
+	 * to apply for moderation this does only work in combination with the
+	 * room-type restricted
+	 * 
+	 * @param SID
+	 * @param name
+	 * @param roomtypes_id
+	 * @param comment
+	 * @param numberOfPartizipants
+	 * @param ispublic
+	 * @param appointment
+	 * @param isDemoRoom
+	 * @param demoTime
+	 * @param isModeratedRoom
+	 * @param allowUserQuestions
+	 * @return
+	 */
+	public Long addRoomWithModerationAndQuestions(String SID, String name,
+			Long roomtypes_id, String comment, Long numberOfPartizipants,
+			Boolean ispublic, Boolean appointment, Boolean isDemoRoom,
+			Integer demoTime, Boolean isModeratedRoom,
+			Boolean allowUserQuestions) throws AxisFault {
+		return getBean(RoomWebService.class).addRoomWithModerationAndQuestions(
+				SID, name, roomtypes_id, comment, numberOfPartizipants,
+				ispublic, appointment, isDemoRoom, demoTime, isModeratedRoom,
+				allowUserQuestions);
+	}
+
+	public Long addRoomWithModerationQuestionsAndAudioType(String SID,
+			String name, Long roomtypes_id, String comment,
+			Long numberOfPartizipants, Boolean ispublic, Boolean appointment,
+			Boolean isDemoRoom, Integer demoTime, Boolean isModeratedRoom,
+			Boolean allowUserQuestions, Boolean isAudioOnly) throws AxisFault {
+		return getBean(RoomWebService.class)
+				.addRoomWithModerationQuestionsAndAudioType(SID, name,
+						roomtypes_id, comment, numberOfPartizipants, ispublic,
+						appointment, isDemoRoom, demoTime, isModeratedRoom,
+						allowUserQuestions, isAudioOnly);
+	}
+
+	/**
+	 * 
+	 * @param SID
+	 * @param name
+	 * @param roomtypes_id
+	 * @param comment
+	 * @param numberOfPartizipants
+	 * @param ispublic
+	 * @param appointment
+	 * @param isDemoRoom
+	 * @param demoTime
+	 * @param isModeratedRoom
+	 * @param externalRoomId
+	 * @param externalUserType
+	 * @return
+	 */
+	public Long getRoomIdByExternalId(String SID, String name,
+			Long roomtypes_id, String comment, Long numberOfPartizipants,
+			Boolean ispublic, Boolean appointment, Boolean isDemoRoom,
+			Integer demoTime, Boolean isModeratedRoom, Long externalRoomId,
+			String externalRoomType) throws AxisFault {
+		return getBean(RoomWebService.class).getRoomIdByExternalId(SID, name,
+				roomtypes_id, comment, numberOfPartizipants, ispublic,
+				appointment, isDemoRoom, demoTime, isModeratedRoom,
+				externalRoomId, externalRoomType);
+	}
+
+	/**
+	 * TODO: Fix Organization Issue
+	 * 
+	 * @deprecated use updateRoomWithModeration
+	 * 
+	 * @param SID
+	 * @param rooms_id
+	 * @param name
+	 * @param roomtypes_id
+	 * @param comment
+	 * @param numberOfPartizipants
+	 * @param ispublic
+	 * @param videoPodWidth
+	 * @param videoPodHeight
+	 * @param videoPodXPosition
+	 * @param videoPodYPosition
+	 * @param moderationPanelXPosition
+	 * @param showWhiteBoard
+	 * @param whiteBoardPanelXPosition
+	 * @param whiteBoardPanelYPosition
+	 * @param whiteBoardPanelHeight
+	 * @param whiteBoardPanelWidth
+	 * @param showFilesPanel
+	 * @param filesPanelXPosition
+	 * @param filesPanelYPosition
+	 * @param filesPanelHeight
+	 * @param filesPanelWidth
+	 * @return
+	 */
+	@Deprecated
+	public Long updateRoom(String SID, Long rooms_id, String name,
+			Long roomtypes_id, String comment, Long numberOfPartizipants,
+			Boolean ispublic, Integer videoPodWidth, Integer videoPodHeight,
+			Integer videoPodXPosition, Integer videoPodYPosition,
+			Integer moderationPanelXPosition, Boolean showWhiteBoard,
+			Integer whiteBoardPanelXPosition, Integer whiteBoardPanelYPosition,
+			Integer whiteBoardPanelHeight, Integer whiteBoardPanelWidth,
+			Boolean showFilesPanel, Integer filesPanelXPosition,
+			Integer filesPanelYPosition, Integer filesPanelHeight,
+			Integer filesPanelWidth, Boolean appointment) throws AxisFault {
+		return getBean(RoomWebService.class).updateRoom(SID, rooms_id, name,
+				roomtypes_id, comment, numberOfPartizipants, ispublic,
+				videoPodWidth, videoPodHeight, videoPodXPosition,
+				videoPodYPosition, moderationPanelXPosition, showWhiteBoard,
+				whiteBoardPanelXPosition, whiteBoardPanelYPosition,
+				whiteBoardPanelHeight, whiteBoardPanelWidth, showFilesPanel,
+				filesPanelXPosition, filesPanelYPosition, filesPanelHeight,
+				filesPanelWidth, appointment);
+	}
+
+	public Long updateRoomWithModeration(String SID, Long room_id, String name,
+			Long roomtypes_id, String comment, Long numberOfPartizipants,
+			Boolean ispublic, Boolean appointment, Boolean isDemoRoom,
+			Integer demoTime, Boolean isModeratedRoom) throws AxisFault {
+		return getBean(RoomWebService.class).updateRoomWithModeration(SID,
+				room_id, name, roomtypes_id, comment, numberOfPartizipants,
+				ispublic, appointment, isDemoRoom, demoTime, isModeratedRoom);
+	}
+
+	public Long updateRoomWithModerationAndQuestions(String SID, Long room_id,
+			String name, Long roomtypes_id, String comment,
+			Long numberOfPartizipants, Boolean ispublic, Boolean appointment,
+			Boolean isDemoRoom, Integer demoTime, Boolean isModeratedRoom,
+			Boolean allowUserQuestions) throws AxisFault {
+		return getBean(RoomWebService.class).updateRoomWithModerationAndQuestions(
+				SID, room_id, name, roomtypes_id, comment,
+				numberOfPartizipants, ispublic, appointment, isDemoRoom,
+				demoTime, isModeratedRoom, allowUserQuestions);
+	}
+
+	public Long updateRoomWithModerationQuestionsAudioTypeAndHideOptions(
+			String SID, Long room_id, String name, Long roomtypes_id,
+			String comment, Long numberOfPartizipants, Boolean ispublic,
+			Boolean appointment, Boolean isDemoRoom, Integer demoTime,
+			Boolean isModeratedRoom, Boolean allowUserQuestions,
+			Boolean isAudioOnly, Boolean hideTopBar, Boolean hideChat,
+			Boolean hideActivitiesAndActions, Boolean hideFilesExplorer,
+			Boolean hideActionsMenu, Boolean hideScreenSharing,
+			Boolean hideWhiteboard) throws AxisFault {
+		return getBean(RoomWebService.class)
+				.updateRoomWithModerationQuestionsAudioTypeAndHideOptions(SID,
+						room_id, name, roomtypes_id, comment,
+						numberOfPartizipants, ispublic, appointment,
+						isDemoRoom, demoTime, isModeratedRoom,
+						allowUserQuestions, isAudioOnly, hideTopBar, hideChat,
+						hideActivitiesAndActions, hideFilesExplorer,
+						hideActionsMenu, hideScreenSharing, hideWhiteboard);
+
+	}
+
+	public Long deleteRoom(String SID, long rooms_id) throws AxisFault {
+		return getBean(RoomWebService.class).deleteRoom(SID, rooms_id);
+	}
+
+	public Boolean kickUser(String SID_Admin, Long room_id) throws AxisFault {
+		return getBean(RoomWebService.class).kickUser(SID_Admin, room_id);
+	}
+
+	public Long addRoomWithModerationAndExternalType(String SID, String name,
+			Long roomtypes_id, String comment, Long numberOfPartizipants,
+			Boolean ispublic, Boolean appointment, Boolean isDemoRoom,
+			Integer demoTime, Boolean isModeratedRoom, String externalRoomType)
+			throws AxisFault {
+		return getBean(RoomWebService.class).addRoomWithModerationAndExternalType(
+				SID, name, roomtypes_id, comment, numberOfPartizipants,
+				ispublic, appointment, isDemoRoom, demoTime, isModeratedRoom,
+				externalRoomType);
+	}
+
+	public Long addRoomWithModerationExternalTypeAndAudioType(String SID,
+			String name, Long roomtypes_id, String comment,
+			Long numberOfPartizipants, Boolean ispublic, Boolean appointment,
+			Boolean isDemoRoom, Integer demoTime, Boolean isModeratedRoom,
+			String externalRoomType, Boolean allowUserQuestions,
+			Boolean isAudioOnly) throws AxisFault {
+		return getBean(RoomWebService.class)
+				.addRoomWithModerationExternalTypeAndAudioType(SID, name,
+						roomtypes_id, comment, numberOfPartizipants, ispublic,
+						appointment, isDemoRoom, demoTime, isModeratedRoom,
+						externalRoomType, allowUserQuestions, isAudioOnly);
+	}
+
+	public Long addRoomWithModerationAndRecordingFlags(String SID, String name,
+			Long roomtypes_id, String comment, Long numberOfPartizipants,
+			Boolean ispublic, Boolean appointment, Boolean isDemoRoom,
+			Integer demoTime, Boolean isModeratedRoom, String externalRoomType,
+			Boolean allowUserQuestions, Boolean isAudioOnly,
+			Boolean waitForRecording, Boolean allowRecording) throws AxisFault {
+		return getBean(RoomWebService.class)
+				.addRoomWithModerationAndRecordingFlags(SID, name,
+						roomtypes_id, comment, numberOfPartizipants, ispublic,
+						appointment, isDemoRoom, demoTime, isModeratedRoom,
+						externalRoomType, allowUserQuestions, isAudioOnly,
+						waitForRecording, allowRecording);
+	}
+
+	public Long addRoomWithModerationExternalTypeAndTopBarOption(String SID,
+			String name, Long roomtypes_id, String comment,
+			Long numberOfPartizipants, Boolean ispublic, Boolean appointment,
+			Boolean isDemoRoom, Integer demoTime, Boolean isModeratedRoom,
+			String externalRoomType, Boolean allowUserQuestions,
+			Boolean isAudioOnly, Boolean waitForRecording,
+			Boolean allowRecording, Boolean hideTopBar) throws AxisFault {
+		return getBean(RoomWebService.class)
+				.addRoomWithModerationExternalTypeAndTopBarOption(SID, name,
+						roomtypes_id, comment, numberOfPartizipants, ispublic,
+						appointment, isDemoRoom, demoTime, isModeratedRoom,
+						externalRoomType, allowUserQuestions, isAudioOnly,
+						waitForRecording, allowRecording, hideTopBar);
+	}
+
+	public Long addRoomWithModerationQuestionsAudioTypeAndHideOptions(
+			String SID, String name, Long roomtypes_id, String comment,
+			Long numberOfPartizipants, Boolean ispublic, Boolean appointment,
+			Boolean isDemoRoom, Integer demoTime, Boolean isModeratedRoom,
+			Boolean allowUserQuestions, Boolean isAudioOnly,
+			Boolean hideTopBar, Boolean hideChat,
+			Boolean hideActivitiesAndActions, Boolean hideFilesExplorer,
+			Boolean hideActionsMenu, Boolean hideScreenSharing,
+			Boolean hideWhiteboard) throws AxisFault {
+		return getBean(RoomWebService.class).addRoomWithModerationQuestionsAudioTypeAndHideOptions(SID, name, roomtypes_id, comment, numberOfPartizipants, ispublic, appointment, isDemoRoom, demoTime, isModeratedRoom, allowUserQuestions, isAudioOnly, hideTopBar, hideChat, hideActivitiesAndActions, hideFilesExplorer, hideActionsMenu, hideScreenSharing, hideWhiteboard);
+	}
+	
+	/**
+	 * 
+	 * Create a Invitation hash and optionally send it by mail the From to Date
+	 * is as String as some SOAP libraries do not accept Date Objects in SOAP
+	 * Calls Date is parsed as dd.mm.yyyy, time as hh:mm (don't forget the
+	 * leading zero's)
+	 * 
+	 * @param SID
+	 *            a valid Session Token
+	 * @param username
+	 *            the username of the User that he will get
+	 * @param room_id
+	 *            the conference room id of the invitation
+	 * @param isPasswordProtected
+	 *            if the invitation is password protected
+	 * @param invitationpass
+	 *            the password for accessing the conference room via the
+	 *            invitation hash
+	 * @param valid
+	 *            the type of validation for the hash 1: endless, 2: from-to
+	 *            period, 3: one-time
+	 * @param validFromDate
+	 *            Date in Format of dd.mm.yyyy only of interest if valid is type
+	 *            2
+	 * @param validFromTime
+	 *            time in Format of hh:mm only of interest if valid is type 2
+	 * @param validToDate
+	 *            Date in Format of dd.mm.yyyy only of interest if valid is type
+	 *            2
+	 * @param validToTime
+	 *            time in Format of hh:mm only of interest if valid is type 2
+	 * @return a HASH value that can be made into a URL with
+	 *         http://$OPENMEETINGS_HOST
+	 *         :$PORT/openmeetings/?invitationHash="+invitationsHash;
+	 * @throws AxisFault
+	 */
+	public String getInvitationHash(String SID, String username, Long room_id,
+			Boolean isPasswordProtected, String invitationpass, Integer valid,
+			String validFromDate, String validFromTime, String validToDate,
+			String validToTime) throws AxisFault {
+		return getBean(RoomWebService.class).getInvitationHash(SID, username,
+				room_id, isPasswordProtected, invitationpass, valid,
+				validFromDate, validFromTime, validToDate, validToTime);
+
+	}
+
+	/**
+	 * Create a Invitation hash and optionally send it by mail the From to Date
+	 * is as String as some SOAP libraries do not accept Date Objects in SOAP
+	 * Calls Date is parsed as dd.mm.yyyy, time as hh:mm (don't forget the
+	 * leading zero's)
+	 * 
+	 * @param SID
+	 *            a valid Session Token
+	 * @param username
+	 *            the Username of the User that he will get
+	 * @param message
+	 *            the Message in the Email Body send with the invitation if
+	 *            sendMail is true
+	 * @param email
+	 *            the Email to send the invitation to if sendMail is true
+	 * @param subject
+	 *            the subject of the Email send with the invitation if sendMail
+	 *            is true
+	 * @param room_id
+	 *            the conference room id of the invitation
+	 * @param conferencedomain
+	 *            the domain of the room (keep empty)
+	 * @param isPasswordProtected
+	 *            if the invitation is password protected
+	 * @param invitationpass
+	 *            the password for accessing the conference room via the
+	 *            invitation hash
+	 * @param valid
+	 *            the type of validation for the hash 1: endless, 2: from-to
+	 *            period, 3: one-time
+	 * @param validFromDate
+	 *            Date in Format of dd.mm.yyyy only of interest if valid is type
+	 *            2
+	 * @param validFromTime
+	 *            time in Format of hh:mm only of interest if valid is type 2
+	 * @param validToDate
+	 *            Date in Format of dd.mm.yyyy only of interest if valid is type
+	 *            2
+	 * @param validToTime
+	 *            time in Format of hh:mm only of interest if valid is type 2
+	 * @param language_id
+	 *            the language id of the EMail that is send with the invitation
+	 *            if sendMail is true
+	 * @param sendMail
+	 *            if sendMail is true then the RPC-Call will send the invitation
+	 *            to the email
+	 * @return a HASH value that can be made into a URL with
+	 *         http://$OPENMEETINGS_HOST
+	 *         :$PORT/openmeetings/?invitationHash="+invitationsHash;
+	 * @throws AxisFault
+	 */
+	public String sendInvitationHash(String SID, String username,
+			String message, String email, String subject,
+			Long room_id, String conferencedomain, Boolean isPasswordProtected,
+			String invitationpass, Integer valid, String validFromDate,
+			String validFromTime, String validToDate, String validToTime,
+			Long language_id, Boolean sendMail) throws AxisFault {
+		return getBean(RoomWebService.class).sendInvitationHash(SID, username,
+				message, email, subject, room_id, conferencedomain,
+				isPasswordProtected, invitationpass, valid, validFromDate,
+				validFromTime, validToDate, validToTime, language_id, sendMail);
+	}
+
+	/**
+	 * Create a Invitation hash and optionally send it by mail the From to Date
+	 * is as String as some SOAP libraries do not accept Date Objects in SOAP
+	 * Calls Date is parsed as dd.mm.yyyy, time as hh:mm (don't forget the
+	 * leading zero's)
+	 * 
+	 * @param SID
+	 *            a valid Session Token
+	 * @param username
+	 *            the Username of the User that he will get
+	 * @param message
+	 *            the Message in the Email Body send with the invitation if
+	 *            sendMail is true
+	 * @param email
+	 *            the Email to send the invitation to if sendMail is true
+	 * @param subject
+	 *            the subject of the Email send with the invitation if sendMail
+	 *            is true
+	 * @param room_id
+	 *            the conference room id of the invitation
+	 * @param conferencedomain
+	 *            the domain of the room (keep empty)
+	 * @param isPasswordProtected
+	 *            if the invitation is password protected
+	 * @param invitationpass
+	 *            the password for accessing the conference room via the
+	 *            invitation hash
+	 * @param valid
+	 *            the type of validation for the hash 1: endless, 2: from-to
+	 *            period, 3: one-time
+	 * @param fromDate
+	 *            Date as Date Object only of interest if valid is type 2
+	 * @param toDate
+	 *            Date as Date Object only of interest if valid is type 2
+	 * @param language_id
+	 *            the language id of the EMail that is send with the invitation
+	 *            if sendMail is true
+	 * @param sendMail
+	 *            if sendMail is true then the RPC-Call will send the invitation
+	 *            to the email
+	 * @return a HASH value that can be made into a URL with
+	 *         http://$OPENMEETINGS_HOST
+	 *         :$PORT/openmeetings/?invitationHash="+invitationsHash;
+	 * @throws AxisFault
+	 */
+	public String sendInvitationHashWithDateObject(String SID, String username,
+			String message, String email, String subject,
+			Long room_id, String conferencedomain, Boolean isPasswordProtected,
+			String invitationpass, Integer valid, Date fromDate, Date toDate,
+			Long language_id, Boolean sendMail) throws AxisFault {
+		return getBean(RoomWebService.class).sendInvitationHashWithDateObject(SID,
+				username, message, email, subject, room_id,
+				conferencedomain, isPasswordProtected, invitationpass, valid,
+				fromDate, toDate, language_id, sendMail);
+	}
+
+	public List<RoomReturn> getRoomsWithCurrentUsersByList(String SID,
+			int start, int max, String orderby, boolean asc) throws AxisFault {
+		return getBean(RoomWebService.class).getRoomsWithCurrentUsersByList(SID,
+				start, max, orderby, asc);
+	}
+
+	public List<RoomReturn> getRoomsWithCurrentUsersByListAndType(String SID,
+			int start, int max, String orderby, boolean asc,
+			String externalRoomType) throws AxisFault {
+		return getBean(RoomWebService.class)
+				.getRoomsWithCurrentUsersByListAndType(SID, start, max,
+						orderby, asc, externalRoomType);
+	}
+
+	public Long addRoomWithModerationAndExternalTypeAndStartEnd(String SID,
+			String name, Long roomtypes_id, String comment,
+			Long numberOfPartizipants, Boolean ispublic, Boolean appointment,
+			Boolean isDemoRoom, Integer demoTime, Boolean isModeratedRoom,
+			String externalRoomType, String validFromDate,
+			String validFromTime, String validToDate, String validToTime,
+			Boolean isPasswordProtected, String password, Long reminderTypeId,
+			String redirectURL) throws AxisFault {
+		return getBean(RoomWebService.class)
+				.addRoomWithModerationAndExternalTypeAndStartEnd(SID, name,
+						roomtypes_id, comment, numberOfPartizipants, ispublic,
+						appointment, isDemoRoom, demoTime, isModeratedRoom,
+						externalRoomType, validFromDate, validFromTime,
+						validToDate, validToTime, isPasswordProtected,
+						password, reminderTypeId, redirectURL);
+	}
+
+	public Long addMeetingMemberRemindToRoom(String SID, Long room_id,
+			String firstname, String lastname, String email, String phone, Long language_id) throws AxisFault {
+		return getBean(RoomWebService.class).addMeetingMemberRemindToRoom(SID,
+				room_id, firstname, lastname, email, language_id);
+	}
+
+	public Long addExternalMeetingMemberRemindToRoom(String SID, Long room_id,
+			String firstname, String lastname, String email, Long language_id, String jNameTimeZone, String invitorName)
+			throws AxisFault {
+		return getBean(RoomWebService.class).addExternalMeetingMemberRemindToRoom(
+				SID, room_id, firstname, lastname, email, language_id, jNameTimeZone, invitorName);
+	}
+
+	public int closeRoom(String SID, Long room_id, Boolean status)
+			throws AxisFault {
+		return getBean(RoomWebService.class).closeRoom(SID, room_id, status);
+	}
+
+	public int modifyRoomParameter(String SID, Long room_id, String paramName, Object paramValue) throws AxisFault {
+		return getBean(RoomWebService.class).modifyRoomParameter(SID, room_id, paramName, paramValue);
+	}
+	
+	public Long addRoomToOrg(String SID, Long rooms_id, Long organisation_id) throws AxisFault {
+		return getBean(RoomWebService.class).addRoomToOrg(SID, rooms_id, organisation_id);
+	}
+}
diff --git a/src/axis/java/org/apache/openmeetings/axis/services/ServerWebService.java b/src/axis/java/org/apache/openmeetings/axis/services/ServerWebService.java
new file mode 100644
index 0000000..5478595
--- /dev/null
+++ b/src/axis/java/org/apache/openmeetings/axis/services/ServerWebService.java
@@ -0,0 +1,177 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.axis.services;

+

+import org.apache.axis2.AxisFault;

+import org.apache.openmeetings.data.user.UserManager;

+import org.apache.openmeetings.db.dao.server.ServerDao;

+import org.apache.openmeetings.db.dao.server.SessiondataDao;

+import org.apache.openmeetings.db.entity.server.Server;

+import org.apache.openmeetings.util.AuthLevelUtil;

+import org.apache.openmeetings.util.OpenmeetingsVariables;

+import org.red5.logging.Red5LoggerFactory;

+import org.slf4j.Logger;

+import org.springframework.beans.factory.annotation.Autowired;

+

+/**

+ * This class provides method implementations necessary for OM to manage servers

+ * participating in cluster.

+ * 

+ * @author solomax, sebawagner

+ * @webservice ServerService

+ * 

+ */

+public class ServerWebService {

+	private static final Logger log = Red5LoggerFactory.getLogger(

+			ServerWebService.class, OpenmeetingsVariables.webAppRootKey);

+

+	@Autowired

+	private SessiondataDao sessiondataDao;

+	@Autowired

+	private UserManager userManager;

+	@Autowired

+	private ServerDao serversDao;

+

+	/**

+	 * Method to retrieve the list of the servers participating in cluster

+	 * 

+	 * @param SID

+	 *            - session id to identify the user making request

+	 * @param start

+	 *            - server index to start with

+	 * @param max

+	 *            - Maximum server count

+	 * @return The list of servers participating in cluster

+	 */

+	public Server[] getServers(String SID, int start, int max) throws AxisFault {

+		log.debug("getServers enter");

+		Long users_id = sessiondataDao.checkSession(SID);

+		Long user_level = userManager.getUserLevelByID(users_id);

+

+		if (AuthLevelUtil.checkWebServiceLevel(user_level)) {

+			return serversDao.get(start, max).toArray(new Server[0]);

+		} else {

+			log.warn("Insuffisient permissions");

+			return null;

+		}

+	}

+

+	/**

+	 * Method to retrieve the total count of the servers participating in

+	 * cluster

+	 * 

+	 * @param SID

+	 *            - session id to identify the user making request

+	 * @return total count of the servers participating in cluster

+	 */

+	public int getServerCount(String SID) throws AxisFault {

+		log.debug("getServerCount enter");

+		Long users_id = sessiondataDao.checkSession(SID);

+		Long user_level = userManager.getUserLevelByID(users_id);

+

+		if (AuthLevelUtil.checkWebServiceLevel(user_level)) {

+			return (int) serversDao.count();

+		} else {

+			log.warn("Insuffisient permissions");

+			return -1;

+		}

+	}

+

+	/**

+	 * Method to add/update server

+	 * 

+	 * @param SID

+	 *            - session id to identify the user making request

+	 * @param id

+	 *            - the id of the server to save

+	 * @param name

+	 *            - the name of the server to save

+	 * @param address

+	 *            - the address(DNS name or IP) of the server to save

+	 * @param port

+	 *            - the http port of the slave

+	 * @param user

+	 *            - REST user to access the slave

+	 * @param pass

+	 *            - REST pass to access the slave

+	 * @param webapp

+	 *            - webapp name of the OpenMeetings instance

+	 * @param protocol

+	 *            - protocol to access the OpenMeetings instance

+	 * @param active

+	 *            - if the server currently participates in the cluster or not

+	 * @param comment

+	 *            - comment for the server

+	 * @return the id of saved server

+	 */

+	public long saveServer(String SID, long id, String name, String address,

+			int port, String user, String pass, String webapp, String protocol,

+			Boolean active, String comment) throws AxisFault {

+		log.debug("saveServerCount enter");

+		Long users_id = sessiondataDao.checkSession(SID);

+		Long user_level = userManager.getUserLevelByID(users_id);

+

+		if (AuthLevelUtil.checkWebServiceLevel(user_level)) {

+			Server s = serversDao.get(id);

+			if (s == null) {

+				s = new Server();

+			}

+			s.setName(name);

+			s.setAddress(address);

+			s.setPort(port);

+			s.setUser(user);

+			s.setPass(pass);

+			s.setWebapp(webapp);

+			s.setProtocol(protocol);

+			s.setActive(active);

+			s.setComment(comment);

+			return serversDao.update(s, users_id).getId();

+		} else {

+			log.warn("Insuffisient permissions");

+			return -1;

+		}

+	}

+

+	/**

+	 * Method to delete server

+	 * 

+	 * @param SID

+	 *            - session id to identify the user making request

+	 * @param id

+	 *            - the id of the server to delete

+	 * @return true if the server was deleted, false otherwise

+	 */

+	public boolean deleteServer(String SID, long id) throws AxisFault {

+		log.debug("saveServerCount enter");

+		Long users_id = sessiondataDao.checkSession(SID);

+		Long user_level = userManager.getUserLevelByID(users_id);

+

+		if (AuthLevelUtil.checkWebServiceLevel(user_level)) {

+			Server s = serversDao.get(id);

+			if (s != null) {

+				serversDao.delete(s, users_id);

+				return true;

+			}

+		} else {

+			log.warn("Insuffisient permissions");

+		}

+		return false;

+	}

+

+}

diff --git a/src/axis/java/org/apache/openmeetings/axis/services/ServerWebServiceFacade.java b/src/axis/java/org/apache/openmeetings/axis/services/ServerWebServiceFacade.java
new file mode 100644
index 0000000..af5c40b
--- /dev/null
+++ b/src/axis/java/org/apache/openmeetings/axis/services/ServerWebServiceFacade.java
@@ -0,0 +1,60 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.axis.services;

+

+import org.apache.axis2.AxisFault;

+import org.apache.openmeetings.db.entity.server.Server;

+

+public class ServerWebServiceFacade extends BaseWebService {

+

+	/**

+	 * Proxy method please see

+	 * {@link ServerWebService#getServers(String, int, int)}

+	 */

+	public Server[] getServers(String SID, int start, int max) throws AxisFault {

+		return getBean(ServerWebService.class).getServers(SID, start, max);

+	}

+

+	/**

+	 * Proxy method please see {@link ServerWebService#getServerCount(String)}

+	 */

+	public int getServerCount(String SID) throws AxisFault {

+		return getBean(ServerWebService.class).getServerCount(SID);

+	}

+

+	/**

+	 * Proxy method please see

+	 * {@link ServerWebService#saveServer(String, long, String, String, int, String, String, String, String, Boolean, String)}

+	 */

+	public long saveServer(String SID, long id, String name, String address,

+			int port, String user, String pass, String webapp, String protocol,

+			Boolean active, String comment) throws AxisFault {

+		return getBean(ServerWebService.class).saveServer(SID, id, name, address, port,

+				user, pass, webapp, protocol, active, comment);

+	}

+

+	/**

+	 * Proxy method please see

+	 * {@link ServerWebService#deleteServer(String, long)}

+	 */

+	public boolean deleteServer(String SID, long id) throws AxisFault {

+		return getBean(ServerWebService.class).deleteServer(SID, id);

+	}

+

+}

diff --git a/src/axis/java/org/apache/openmeetings/axis/services/UserWebService.java b/src/axis/java/org/apache/openmeetings/axis/services/UserWebService.java
new file mode 100644
index 0000000..1453277
--- /dev/null
+++ b/src/axis/java/org/apache/openmeetings/axis/services/UserWebService.java
@@ -0,0 +1,1125 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.axis.services;
+
+import java.util.Date;
+
+import org.apache.axis2.AxisFault;
+import org.apache.openmeetings.data.basic.FieldManager;
+import org.apache.openmeetings.data.user.OrganisationManager;
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.basic.ErrorDao;
+import org.apache.openmeetings.db.dao.label.FieldLanguagesValuesDao;
+import org.apache.openmeetings.db.dao.server.SOAPLoginDao;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.dto.basic.ErrorResult;
+import org.apache.openmeetings.db.dto.basic.SearchResult;
+import org.apache.openmeetings.db.entity.basic.ErrorType;
+import org.apache.openmeetings.db.entity.basic.ErrorValue;
+import org.apache.openmeetings.db.entity.server.RemoteSessionObject;
+import org.apache.openmeetings.db.entity.server.Sessiondata;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.remote.MainService;
+import org.apache.openmeetings.util.AuthLevelUtil;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 
+ * The Service contains methods to login and create hash to directly enter
+ * conference rooms, recordings or the application in general
+ * 
+ * @author sebawagner
+ * @webservice UserService
+ * 
+ */
+public class UserWebService {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			UserWebService.class, OpenmeetingsVariables.webAppRootKey);
+
+	@Autowired
+	private SessiondataDao sessiondataDao;
+	@Autowired
+	private ConfigurationDao configurationDao;
+	@Autowired
+	private UserManager userManagement;
+	@Autowired
+	private FieldManager fieldManager;
+	@Autowired
+	private ErrorDao errorDao;
+	@Autowired
+	private OrganisationManager organisationManager;
+	@Autowired
+	private SOAPLoginDao soapLoginDao;
+	@Autowired
+	private AdminUserDao usersDao;
+	@Autowired
+	private MainService mainService;
+	@Autowired
+	private FieldLanguagesValuesDao labelDao;
+
+	/**
+	 * load this session id before doing anything else Returns an Object of Type
+	 * Sessiondata, this contains a sessionId, use that sessionId in all Methods
+	 * 
+	 * @return - creates new session
+	 */
+	public Sessiondata getSession() {
+		log.debug("SPRING LOADED getSession -- ");
+		return mainService.getsessiondata();
+	}
+
+	/**
+	 * Auth function, use the SID you get by getSession, return positive means
+	 * logged-in, if negative its an ErrorCode, you have to invoke the Method
+	 * getErrorByCode to get the Text-Description of that ErrorCode
+	 * 
+	 * @param SID - The SID from getSession
+	 * @param username - Username from OpenMeetings, the user has to have Admin-rights
+	 * @param userpass - Userpass from OpenMeetings
+	 *            
+	 * @return - id of the logged in user, -1 in case of the error
+	 */
+	public Long loginUser(String SID, String username, String userpass)
+			throws AxisFault {
+		try {
+			Object obj = userManagement.loginUser(SID, username, userpass,
+					null, null, false);
+			if (obj == null) {
+				return new Long(-1);
+			}
+			String objName = obj.getClass().getName();
+			if (objName.equals("java.lang.Long")) {
+				return (Long) obj;
+			} else {
+				return new Long(1);
+			}
+		} catch (Exception err) {
+			log.error("[loginUser]", err);
+		}
+		return new Long(-1);
+	}
+
+	/**
+	 * loads an Error-Object. If a Method returns a negative Result, its an
+	 * Error-id, it needs a language_id to specify in which language you want to
+	 * display/read the error-message. English has the Language-ID one, for
+	 * different one see the list of languages
+	 * 
+	 * @param SID
+	 *            The SID from getSession
+	 * @param errorid
+	 *            the error id (negative Value here!)
+	 * @param langId
+	 *            The id of the language
+	 *            
+	 * @return - error with the code given
+	 */
+	public ErrorResult getErrorByCode(String SID, long errorid, long langId) {
+		try {
+			if (errorid < 0) {
+				ErrorValue eValues = errorDao.get(-1 * errorid);
+				if (eValues != null) {
+					ErrorType eType = errorDao.getErrorType(eValues.getErrortype_id());
+					log.debug("eValues.getFieldvalues_id() = " + eValues.getFieldvalues_id());
+					log.debug("eValues.getErrorType() = " + eType);
+					String eValue = labelDao.getString(eValues.getFieldvalues_id(), langId);
+					String tValue = labelDao.getString(eType.getFieldvalues_id(), langId);
+					if (eValue != null) {
+						return new ErrorResult(errorid, eValue, tValue);
+					}
+				}
+			} else {
+				return new ErrorResult(errorid, "Error ... please check your input", "Error");
+			}
+		} catch (Exception err) {
+			log.error("[getErrorByCode] ", err);
+		}
+		return null;
+	}
+
+	/**
+	 * Adds a new Usre like through the Frontend, but also does activates the
+	 * Account To do SSO see the methods to create a hash and use those ones!
+	 * 
+	 * @param SID
+	 *            The SID from getSession
+	 * @param username
+	 *            any username
+	 * @param userpass
+	 *            any userpass
+	 * @param lastname
+	 *            any lastname
+	 * @param firstname
+	 *            any firstname
+	 * @param email
+	 *            any email
+	 * @param additionalname
+	 *            any additionalname
+	 * @param street
+	 *            any street
+	 * @param zip
+	 *            any zip
+	 * @param fax
+	 *            any fax
+	 * @param states_id
+	 *            a valid states_id
+	 * @param town
+	 *            any town
+	 * @param language_id
+	 *            the language_id
+	 *            
+	 * @return - id of the user added or error code
+	 * @throws AxisFault
+	 */
+	public Long addNewUser(String SID, String username, String userpass,
+			String lastname, String firstname, String email,
+			String additionalname, String street, String zip, String fax,
+			long states_id, String town, long language_id)
+			throws AxisFault {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManagement.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+
+				String jName_timeZone = configurationDao.getConfValue("default.timezone", String.class, "");
+
+				Long user_id = userManagement.registerUser(username, userpass,
+						lastname, firstname, email, new Date(), street,
+						additionalname, fax, zip, states_id, town, language_id,
+						"", false, true, // generate SIP Data if the config is enabled
+						jName_timeZone);
+
+				if (user_id == null || user_id < 0) {
+					return user_id;
+				}
+
+				User user = userManagement.getUserById(user_id);
+
+				// activate the User
+				user.setStatus(1);
+				user.setUpdatetime(new Date());
+
+				userManagement.updateUser(user);
+
+				return user_id;
+
+			} else {
+				return new Long(-26);
+			}
+		} catch (Exception err) {
+			log.error("addNewUser", err);
+			throw new AxisFault(err.getMessage());
+		}
+	}
+
+	/**
+	 * Adds a new User like through the Frontend, but also does activates the
+	 * Account
+	 * 
+	 * @param SID
+	 *            The SID from getSession
+	 * @param username
+	 *            any username
+	 * @param userpass
+	 *            any userpass
+	 * @param lastname
+	 *            any lastname
+	 * @param firstname
+	 *            any firstname
+	 * @param email
+	 *            any email
+	 * @param additionalname
+	 *            any additionalname
+	 * @param street
+	 *            any street
+	 * @param zip
+	 *            any zip
+	 * @param fax
+	 *            any fax
+	 * @param states_id
+	 *            a valid states_id
+	 * @param town
+	 *            any town
+	 * @param language_id
+	 *            the language_id
+	 * @param jNameTimeZone
+	 *            the name of the timezone for the user
+	 *            
+	 * @return - id of the user added or the error code
+	 * @throws AxisFault
+	 */
+	public Long addNewUserWithTimeZone(String SID, String username,
+			String userpass, String lastname, String firstname, String email,
+			String additionalname, String street, String zip, String fax,
+			long states_id, String town, long language_id, String jNameTimeZone) throws AxisFault {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManagement.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+
+				Long user_id = userManagement.registerUser(username, userpass,
+						lastname, firstname, email, new Date(), street,
+						additionalname, fax, zip, states_id, town, language_id,
+						"", false, true, // generate
+											// SIP
+											// Data
+											// if
+											// the
+											// config
+											// is
+											// enabled
+						jNameTimeZone); 
+
+				if (user_id == null || user_id < 0) {
+					return user_id;
+				}
+
+				User user = userManagement.getUserById(user_id);
+
+				// activate the User
+				user.setStatus(1);
+				user.setUpdatetime(new Date());
+
+				userManagement.updateUser(user);
+
+				return user_id;
+
+			} else {
+				return new Long(-26);
+			}
+		} catch (Exception err) {
+			log.error("addNewUserWithTimeZone", err);
+			throw new AxisFault(err.getMessage());
+		}
+	}
+
+	/**
+	 * Adds a new User like through the Frontend, but also does activates the
+	 * Account, sends NO email (no matter what you configured) and sets the
+	 * users external user id and type
+	 * 
+	 * Use the methods to create a hash for SSO, creating users is not required
+	 * for SSO
+	 * 
+	 * @param SID
+	 *            The SID from getSession
+	 * @param username
+	 *            any username
+	 * @param userpass
+	 *            any userpass
+	 * @param lastname
+	 *            any lastname
+	 * @param firstname
+	 *            any firstname
+	 * @param email
+	 *            any email
+	 * @param additionalname
+	 *            any additionalname
+	 * @param street
+	 *            any street
+	 * @param zip
+	 *            any zip
+	 * @param fax
+	 *            any fax
+	 * @param states_id
+	 *            a valid states_id
+	 * @param town
+	 *            any town
+	 * @param language_id
+	 *            the language_id
+	 * @param jNameTimeZone
+	 *            the name of the timezone for the user
+	 * @param externalUserId
+	 *            externalUserId
+	 * @param externalUserType
+	 *            externalUserType
+	 *            
+	 * @return - id of user added or error code
+	 * @throws AxisFault
+	 */
+	public Long addNewUserWithExternalType(String SID, String username,
+			String userpass, String lastname, String firstname, String email,
+			String additionalname, String street, String zip, String fax,
+			long states_id, String town, long language_id,
+			String jNameTimeZone, String externalUserId, String externalUserType)
+			throws AxisFault {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManagement.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkAdminLevel(user_level)) {
+
+				User testUser = userManagement.getUserByExternalIdAndType(
+						externalUserId, externalUserType);
+
+				if (testUser != null) {
+					throw new Exception("User does already exist!");
+				}
+
+				// This will send no email to the users
+				Long user_id = userManagement.registerUserNoEmail(username,
+						userpass, lastname, firstname, email, new Date(),
+						street, additionalname, fax, zip, states_id, town,
+						language_id, "", false, true, // generate SIP Data if the config is enabled
+						jNameTimeZone);
+
+				if (user_id == null || user_id < 0) {
+					return user_id;
+				}
+
+				User user = userManagement.getUserById(user_id);
+
+				// activate the User
+				user.setStatus(1);
+				user.setUpdatetime(new Date());
+				user.setExternalUserId(externalUserId);
+				user.setExternalUserType(externalUserType);
+
+				userManagement.updateUser(user);
+
+				return user_id;
+
+			} else {
+				return new Long(-26);
+			}
+
+		} catch (Exception err) {
+			log.error("addNewUserWithExternalType", err);
+			throw new AxisFault(err.getMessage());
+		}
+	}
+
+	/**
+	 * 
+	 * Delete a certain user by its id
+	 * 
+	 * @param SID
+	 *            The SID from getSession
+	 * @param userId
+	 *            the openmeetings user id
+	 *            
+	 * @return - id of the user deleted, error code otherwise
+	 * @throws AxisFault
+	 */
+	public Long deleteUserById(String SID, Long userId) throws AxisFault {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManagement.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkAdminLevel(user_level)) {
+
+				// Setting user deleted
+				usersDao.deleteUserID(userId);
+
+				return userId;
+
+			} else {
+				return new Long(-26);
+			}
+
+		} catch (Exception err) {
+			log.error("deleteUserById", err);
+			throw new AxisFault(err.getMessage());
+		}
+	}
+
+	/**
+	 * 
+	 * Delete a certain user by its external user id
+	 * 
+	 * @param SID
+	 *            The SID from getSession
+	 * @param externalUserId
+	 *            externalUserId
+	 * @param externalUserType
+	 *            externalUserId
+	 *            
+	 * @return - id of user deleted, or error code
+	 * @throws AxisFault
+	 */
+	public Long deleteUserByExternalUserIdAndType(String SID,
+			String externalUserId, String externalUserType) throws AxisFault {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManagement.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkAdminLevel(user_level)) {
+
+				User userExternal = userManagement.getUserByExternalIdAndType(
+						externalUserId, externalUserType);
+
+				Long userId = userExternal.getUser_id();
+
+				// Setting user deleted
+				usersDao.deleteUserID(userId);
+
+				return userId;
+
+			} else {
+				return new Long(-26);
+			}
+
+		} catch (Exception err) {
+			log.error("deleteUserByExternalUserIdAndType", err);
+			throw new AxisFault(err.getMessage());
+		}
+	}
+
+	/**
+	 * Description: sets the SessionObject for a certain SID, after setting this
+	 * Session-Object you can use the SID + a RoomId to enter any Room. ...
+	 * Session-Hashs are deleted 15 minutes after the creation if not used.
+	 * 
+	 * @param SID
+	 *            The SID from getSession
+	 * @param username
+	 *            any username
+	 * @param firstname
+	 *            any firstname
+	 * @param lastname
+	 *            any lastname
+	 * @param profilePictureUrl
+	 *            any profilePictureUrl
+	 * @param email
+	 *            any email
+	 * @param externalUserId
+	 *            if you have any external user Id you may set it here
+	 * @param externalUserType
+	 *            you can specify your system-name here, for example "moodle"
+	 * @param room_id
+	 *            the room id the user should be logged in
+	 * @param becomeModeratorAsInt
+	 *            0 means no Moderator, 1 means Moderator
+	 * @param showAudioVideoTestAsInt
+	 *            0 means don't show Audio/Video Test, 1 means show Audio/Video
+	 *            Test Application before the user is logged into the room
+	 *            
+	 * @return - secure hash or error code
+	 * @throws AxisFault
+	 */
+	public String setUserObjectAndGenerateRoomHash(String SID, String username,
+			String firstname, String lastname, String profilePictureUrl,
+			String email, String externalUserId, String externalUserType,
+			Long room_id, int becomeModeratorAsInt, int showAudioVideoTestAsInt)
+			throws AxisFault {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManagement.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+
+				RemoteSessionObject remoteSessionObject = new RemoteSessionObject(
+						username, firstname, lastname, profilePictureUrl,
+						email, externalUserId, externalUserType);
+
+				log.debug(remoteSessionObject.toString());
+
+				String xmlString = remoteSessionObject.toXml();
+
+				log.debug("xmlString " + xmlString);
+
+				sessiondataDao.updateUserRemoteSession(SID, xmlString);
+
+				boolean becomeModerator = false;
+				if (becomeModeratorAsInt != 0) {
+					becomeModerator = true;
+				}
+
+				boolean showAudioVideoTest = false;
+				if (showAudioVideoTestAsInt != 0) {
+					showAudioVideoTest = true;
+				}
+
+				String hash = soapLoginDao.addSOAPLogin(SID, room_id,
+						becomeModerator, showAudioVideoTest, false, // allowSameURLMultipleTimes
+						null, // recording_id
+						false, // showNickNameDialogAsInt
+						"room", // LandingZone,
+						true // allowRecording
+						);
+
+				if (hash != null) {
+					return hash;
+				}
+
+			} else {
+				return "" + new Long(-26);
+			}
+		} catch (Exception err) {
+			log.error("setUserObjectWithAndGenerateRoomHash", err);
+			throw new AxisFault(err.getMessage());
+		}
+		return "" + new Long(-1);
+	}
+
+	/**
+	 * 
+	 * Description: sets the SessionObject for a certain SID, after setting this
+	 * Session-Object you can use the SID + a RoomId to enter any Room.
+	 * 
+	 * ++ the user can press f5 to reload the page / use the link several times,
+	 * the SOAP Gateway does remember the IP of the user and the will only the
+	 * first user that enters the room allow to re-enter. ... Session-Hashs are
+	 * deleted 15 minutes after the creation if not used.
+	 * 
+	 * @param SID
+	 *            The SID from getSession
+	 * @param username
+	 *            any username
+	 * @param firstname
+	 *            any firstname
+	 * @param lastname
+	 *            any lastname
+	 * @param profilePictureUrl
+	 *            any profilePictureUrl
+	 * @param email
+	 *            any email any email
+	 * @param externalUserId
+	 *            if you have any external user Id you may set it here
+	 * @param externalUserType
+	 *            you can specify your system-name here, for example "moodle"
+	 * @param room_id
+	 *            the room id the user should be logged in
+	 * @param becomeModeratorAsInt
+	 *            0 means no Moderator, 1 means Moderator
+	 * @param showAudioVideoTestAsInt
+	 *            0 means don't show Audio/Video Test, 1 means show Audio/Video
+	 *            Test Application before the user is logged into the room
+	 *            
+	 * @return - secure hash or error code
+	 */
+	public String setUserObjectAndGenerateRoomHashByURL(String SID,
+			String username, String firstname, String lastname,
+			String profilePictureUrl, String email, String externalUserId,
+			String externalUserType, Long room_id, int becomeModeratorAsInt,
+			int showAudioVideoTestAsInt) throws AxisFault {
+
+		log.debug("UserService.setUserObjectAndGenerateRoomHashByURL");
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManagement.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+
+				RemoteSessionObject remoteSessionObject = new RemoteSessionObject(
+						username, firstname, lastname, profilePictureUrl,
+						email, externalUserId, externalUserType);
+
+				log.debug(remoteSessionObject.toString());
+
+				String xmlString = remoteSessionObject.toXml();
+
+				log.debug("xmlString " + xmlString);
+
+				sessiondataDao.updateUserRemoteSession(SID, xmlString);
+
+				boolean becomeModerator = false;
+				if (becomeModeratorAsInt != 0) {
+					becomeModerator = true;
+				}
+
+				boolean showAudioVideoTest = false;
+				if (showAudioVideoTestAsInt != 0) {
+					showAudioVideoTest = true;
+				}
+
+				String hash = soapLoginDao.addSOAPLogin(SID, room_id,
+						becomeModerator, showAudioVideoTest, true, // allowSameURLMultipleTimes
+						null, // recording_id
+						false, // showNickNameDialogAsInt
+						"room", // LandingZone,
+						true // allowRecording
+						);
+
+				if (hash != null) {
+					return hash;
+				}
+
+			} else {
+				return "" + new Long(-26);
+			}
+		} catch (Exception err) {
+			log.error("setUserObjectAndGenerateRoomHashByURL", err);
+			throw new AxisFault(err.getMessage());
+		}
+		return "" + new Long(-1);
+	}
+
+	/**
+	 * 
+	 * Description: sets the SessionObject for a certain SID, after setting this
+	 * Session-Object you can use the SID + a RoomId to enter any Room.
+	 * 
+	 * ++ the user can press f5 to reload the page / use the link several times,
+	 * the SOAP Gateway does remember the IP of the user and the will only the
+	 * first user that enters the room allow to re-enter. ... Session-Hashs are
+	 * deleted 15 minutes after the creation if not used.
+	 * 
+	 * ++ sets the flag if the user can do recording in the conference room
+	 * 
+	 * @param SID
+	 *            The SID from getSession
+	 * @param username
+	 *            any username
+	 * @param firstname
+	 *            any firstname
+	 * @param lastname
+	 *            any lastname
+	 * @param profilePictureUrl
+	 *            any profilePictureUrl
+	 * @param email
+	 *            any email
+	 * @param externalUserId
+	 *            if you have any external user Id you may set it here
+	 * @param externalUserType
+	 *            you can specify your system-name here, for example "moodle"
+	 * @param room_id
+	 *            the room id the user should be logged in
+	 * @param becomeModeratorAsInt
+	 *            0 means no Moderator, 1 means Moderator
+	 * @param showAudioVideoTestAsInt
+	 *            0 means don't show Audio/Video Test, 1 means show Audio/Video
+	 *            Test Application before the user is logged into the room
+	 * @param allowRecording
+	 *            0 means don't allow Recording, 1 means allow Recording
+	 *            
+	 * @return - secure hash or error code
+	 */
+	public String setUserObjectAndGenerateRoomHashByURLAndRecFlag(String SID,
+			String username, String firstname, String lastname,
+			String profilePictureUrl, String email, String externalUserId,
+			String externalUserType, Long room_id, int becomeModeratorAsInt,
+			int showAudioVideoTestAsInt, int allowRecording) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManagement.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+
+				RemoteSessionObject remoteSessionObject = new RemoteSessionObject(
+						username, firstname, lastname, profilePictureUrl,
+						email, externalUserId, externalUserType);
+
+				log.debug(remoteSessionObject.toString());
+
+				String xmlString = remoteSessionObject.toXml();
+
+				log.debug("xmlString " + xmlString);
+
+				sessiondataDao.updateUserRemoteSession(SID, xmlString);
+
+				boolean becomeModerator = false;
+				if (becomeModeratorAsInt != 0) {
+					becomeModerator = true;
+				}
+
+				boolean showAudioVideoTest = false;
+				if (showAudioVideoTestAsInt != 0) {
+					showAudioVideoTest = true;
+				}
+
+				boolean allowRecordingBool = false;
+				if (allowRecording != 0) {
+					allowRecordingBool = true;
+				}
+
+				String hash = soapLoginDao.addSOAPLogin(SID, room_id,
+						becomeModerator, showAudioVideoTest, true, // allowSameURLMultipleTimes
+						null, // recording_id
+						false, // showNickNameDialogAsInt
+						"room", // LandingZone,
+						allowRecordingBool // allowRecording
+						);
+
+				if (hash != null) {
+					return hash;
+				}
+
+			} else {
+				return "" + new Long(-26);
+			}
+		} catch (Exception err) {
+			log.error("setUserObjectWithAndGenerateRoomHash", err);
+		}
+		return "" + new Long(-1);
+	}
+
+	/**
+	 * 
+	 * Description: sets the SessionObject for a certain SID, after setting this
+	 * Session-Object you can use the SID and directly login into the dashboard
+	 * 
+	 * ++ the user can press f5 to reload the page / use the link several times,
+	 * the SOAP Gateway does remember the IP of the user and the will only the
+	 * first user that enters the room allow to re-enter. ... Session-Hashs are
+	 * deleted 15 minutes after the creation if not used.
+	 * 
+	 * @param SID
+	 *            The SID from getSession
+	 * @param username
+	 *            any username
+	 * @param firstname
+	 *            any firstname
+	 * @param lastname
+	 *            any lastname
+	 * @param profilePictureUrl
+	 *            any absolute profilePictureUrl
+	 * @param email
+	 *            any email
+	 * @param externalUserId
+	 *            if you have any external user Id you may set it here
+	 * @param externalUserType
+	 *            you can specify your system-name here, for example "moodle"
+	 *            
+	 * @return - secure hash or error code
+	 */
+	public String setUserObjectMainLandingZone(String SID, String username,
+			String firstname, String lastname, String profilePictureUrl,
+			String email, String externalUserId, String externalUserType) {
+		log.debug("UserService.setUserObjectMainLandingZone");
+
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManagement.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+
+				RemoteSessionObject remoteSessionObject = new RemoteSessionObject(
+						username, firstname, lastname, profilePictureUrl,
+						email, externalUserId, externalUserType);
+
+				log.debug(remoteSessionObject.toString());
+
+				String xmlString = remoteSessionObject.toXml();
+
+				log.debug("xmlString " + xmlString);
+
+				sessiondataDao.updateUserRemoteSession(SID, xmlString);
+
+				String hash = soapLoginDao.addSOAPLogin(SID, null, false, true,
+						true, // allowSameURLMultipleTimes
+						null, // recording_id
+						false, // showNickNameDialogAsInt
+						"dashboard", // LandingZone,
+						true // allowRecording
+						);
+
+				if (hash != null) {
+					return hash;
+				}
+
+			} else {
+
+				log.debug("Invalid access via SOAP " + SID + " UserD"
+						+ users_id + " " + user_level);
+
+				return "" + new Long(-26);
+			}
+		} catch (Exception err) {
+			log.error("setUserObjectWithAndGenerateRoomHash", err);
+		}
+		return "" + new Long(-1);
+	}
+
+	/**
+	 * 
+	 * Description: sets the SessionObject for a certain SID, after setting this
+	 * Session-Object you can use the SID + a RoomId to enter any Room.
+	 * 
+	 * ++ the user can press f5 to reload the page / use the link several times,
+	 * the SOAP Gateway does remember the IP of the user and the will only the
+	 * first user that enters the room allow to re-enter. ... Session-Hashs are
+	 * deleted 15 minutes after the creation if not used.
+	 * 
+	 * ++ Additionally you can set a param showNickNameDialogAsInt, the effect
+	 * if that param is 1 is, that the user gets a popup where he can enter his
+	 * nickname right before he enters the conference room. All nicknames and
+	 * emails users enter are logged in the conferencelog table.
+	 * 
+	 * @param SID
+	 *            The SID from getSession
+	 * @param username
+	 *            any username
+	 * @param firstname
+	 *            any firstname
+	 * @param lastname
+	 *            any lastname
+	 * @param profilePictureUrl
+	 *            any profilePictureUrl
+	 * @param email
+	 *            any email
+	 * @param externalUserId
+	 *            if you have any external user Id you may set it here
+	 * @param externalUserType
+	 *            you can specify your system-name here, for example "moodle"
+	 * @param room_id
+	 *            the room id the user should be logged in
+	 * @param becomeModeratorAsInt
+	 *            0 means no Moderator, 1 means Moderator
+	 * @param showAudioVideoTestAsInt
+	 *            0 means don't show Audio/Video Test, 1 means show Audio/Video
+	 *            Test Application before the user is logged into the room
+	 * @param showNickNameDialogAsInt
+	 *            0 means do not show the popup to enter a nichname, 1 means
+	 *            that there is a popup to enter the nickname for the conference
+	 *            
+	 * @return - secure hash, or error code 
+	 */
+	public String setUserAndNickName(String SID, String username,
+			String firstname, String lastname, String profilePictureUrl,
+			String email, String externalUserId, String externalUserType,
+			Long room_id, int becomeModeratorAsInt,
+			int showAudioVideoTestAsInt, int showNickNameDialogAsInt) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManagement.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+
+				RemoteSessionObject remoteSessionObject = new RemoteSessionObject(
+						username, firstname, lastname, profilePictureUrl,
+						email, externalUserId, externalUserType);
+
+				log.debug(remoteSessionObject.toString());
+				log.debug("showNickNameDialogAsInt" + showNickNameDialogAsInt);
+
+				String xmlString = remoteSessionObject.toXml();
+
+				log.debug("xmlString " + xmlString);
+
+				sessiondataDao.updateUserRemoteSession(SID, xmlString);
+
+				boolean becomeModerator = false;
+				if (becomeModeratorAsInt != 0) {
+					becomeModerator = true;
+				}
+
+				boolean showAudioVideoTest = false;
+				if (showAudioVideoTestAsInt != 0) {
+					showAudioVideoTest = true;
+				}
+
+				boolean showNickNameDialog = false;
+				if (showNickNameDialogAsInt != 0) {
+					showNickNameDialog = true;
+				}
+
+				String hash = soapLoginDao.addSOAPLogin(SID, room_id,
+						becomeModerator, showAudioVideoTest, true, null,
+						showNickNameDialog, "room", // LandingZone,
+						true // allowRecording
+						);
+
+				if (hash != null) {
+					return hash;
+				}
+
+			} else {
+				return "" + new Long(-26);
+			}
+		} catch (Exception err) {
+			log.error("setUserObjectWithAndGenerateRoomHash", err);
+		}
+		return "" + new Long(-1);
+	}
+
+	/**
+	 * Use this method to access a Recording instead of Room
+	 * 
+	 * @param SID
+	 *            The SID from getSession
+	 * @param username
+	 *            any username
+	 * @param firstname
+	 *            any firstname
+	 * @param lastname
+	 *            any lastname
+	 * @param externalUserId
+	 *            if you have any external user Id you may set it here
+	 * @param externalUserType
+	 *            you can specify your system-name here, for example "moodle"
+	 * @param recording_id
+	 *            the id of the recording, get a List of all Recordings with
+	 *            RoomService::getFlvRecordingByExternalRoomType
+	 *            
+	 * @return - hash of the recording, or error id
+	 */
+	public String setUserObjectAndGenerateRecordingHashByURL(String SID,
+			String username, String firstname, String lastname,
+			String externalUserId, String externalUserType, Long recording_id) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManagement.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+
+				RemoteSessionObject remoteSessionObject = new RemoteSessionObject(
+						username, firstname, "", "", "", externalUserId,
+						externalUserType);
+
+				log.debug(remoteSessionObject.toString());
+
+				String xmlString = remoteSessionObject.toXml();
+
+				log.debug("xmlString " + xmlString);
+
+				sessiondataDao.updateUserRemoteSession(SID, xmlString);
+
+				String hash = soapLoginDao.addSOAPLogin(SID, null, false,
+						false, true, // allowSameURLMultipleTimes
+						recording_id, // recording_id
+						false, // showNickNameDialogAsInt
+						"room", // LandingZone,
+						true // allowRecording
+						);
+
+				if (hash != null) {
+					return hash;
+				}
+
+			} else {
+				return "" + new Long(-26);
+			}
+		} catch (Exception err) {
+			log.error("setUserObjectWithAndGenerateRoomHash", err);
+		}
+		return "" + new Long(-1);
+	}
+
+	/**
+	 * 
+	 * Add a user to a certain organization
+	 * 
+	 * @param SID
+	 *            The SID from getSession
+	 * @param user_id
+	 *            the user id
+	 * @param organisation_id
+	 *            the organization id
+	 * @param insertedby
+	 *            user id of the operating user
+	 * @return - id of the user added, or error id in case of the error
+	 */
+	public Long addUserToOrganisation(String SID, Long user_id,
+			Long organisation_id, Long insertedby) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManagement.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+
+				return organisationManager.addUserToOrganisation(user_id,
+						organisation_id, users_id);
+
+			} else {
+				return new Long(-26);
+			}
+		} catch (Exception err) {
+			log.error("addUserToOrganisation", err);
+		}
+		return new Long(-1);
+	}
+
+	/**
+	 * Search users and return them
+	 * 
+	 * @param SID
+	 *            The SID from getSession
+	 * @param organisation_id
+	 *            the organization id
+	 * @param start
+	 *            first record
+	 * @param max
+	 *            max records
+	 * @param orderby
+	 *            orderby clause
+	 * @param asc
+	 *            asc or desc
+	 * @return - users found
+	 */
+	public SearchResult<User> getUsersByOrganisation(String SID,
+			long organisation_id, int start, int max, String orderby,
+			boolean asc) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManagement.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				return organisationManager
+						.getUsersSearchResultByOrganisationId(organisation_id,
+								start, max, orderby, asc);
+			} else {
+				log.error("Need Administration Account");
+				SearchResult<User> sResult = new SearchResult<User>();
+				sResult.setErrorId(-26L);
+				return sResult;
+			}
+		} catch (Exception err) {
+			log.error("getUsersByOrganisation", err);
+		}
+		return null;
+	}
+
+	/**
+	 * Kick a user by its public SID
+	 * 
+	 * @param SID
+	 *            The SID from getSession
+	 * @param publicSID
+	 *            the publicSID (you can get it from the call to get users in a
+	 *            room)
+	 * @return - <code>true</code> if user was kicked
+	 */
+	public Boolean kickUserByPublicSID(String SID, String publicSID) {
+		try {
+			Boolean success = false;
+
+			success = userManagement.kickUserByPublicSID(SID, publicSID);
+
+			if (success == null)
+				success = false;
+
+			return success;
+		} catch (Exception err) {
+			log.error("[kickUser]", err);
+		}
+		return null;
+	}
+	
+	/**
+	 * add a new organisation
+	 * 
+	 * @param SID
+	 *            The SID from getSession
+	 * @param name
+	 *            the name of the org
+	 * @return the new id of the org or -1 in case an error happened
+	 * @throws AxisFault
+	 */
+	public Long addOrganisation(String SID, String name) throws AxisFault {
+		Long users_id = sessiondataDao.checkSession(SID);
+		Long user_level = userManagement.getUserLevelByID(users_id);
+		if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+			return organisationManager.addOrganisation(name, users_id);
+		}
+		log.error("Could not create organization");
+		return -1L;
+	}
+
+}
diff --git a/src/axis/java/org/apache/openmeetings/axis/services/UserWebServiceFacade.java b/src/axis/java/org/apache/openmeetings/axis/services/UserWebServiceFacade.java
new file mode 100644
index 0000000..9240909
--- /dev/null
+++ b/src/axis/java/org/apache/openmeetings/axis/services/UserWebServiceFacade.java
@@ -0,0 +1,240 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.axis.services;
+
+import org.apache.axis2.AxisFault;
+import org.apache.openmeetings.db.dto.basic.ErrorResult;
+import org.apache.openmeetings.db.dto.user.UserSearchResult;
+import org.apache.openmeetings.db.entity.server.Sessiondata;
+
+public class UserWebServiceFacade extends BaseWebService {
+
+	/**
+	 * load this session id before doing anything else
+	 * 
+	 * @return Sessiondata-Object
+	 */
+	public Sessiondata getSession() throws AxisFault {
+		return getBean(UserWebService.class).getSession();
+	}
+
+	/**
+	 * auth function, use the SID you get by getSession
+	 * 
+	 * @param SID
+	 * @param Username
+	 * @param Userpass
+	 * @return positive means Loggedin, if negativ its an ErrorCode, you have to
+	 *         invoke the Method getErrorByCode to get the Text-Description of
+	 *         that ErrorCode
+	 */
+	public Long loginUser(String SID, String username, String userpass)
+			throws AxisFault {
+		return getBean(UserWebService.class).loginUser(SID, username, userpass);
+	}
+
+	/**
+	 * Gets the Error-Object
+	 * 
+	 * @param SID
+	 * @param errorid
+	 * @param language_id
+	 * @return
+	 * @throws AxisFault 
+	 */
+	public ErrorResult getErrorByCode(String SID, Long errorid, Long language_id) throws AxisFault {
+		return getBean(UserWebService.class).getErrorByCode(SID, errorid, language_id);
+	}
+
+	public Long addNewUser(String SID, String username, String userpass,
+			String lastname, String firstname, String email,
+			String additionalname, String street, String zip, String fax,
+			long states_id, String town, long language_id)
+			throws AxisFault {
+		return getBean(UserWebService.class).addNewUser(SID, username, userpass,
+				lastname, firstname, email, additionalname, street, zip, fax,
+				states_id, town, language_id);
+	}
+
+	public Long addNewUserWithTimeZone(String SID, String username,
+			String userpass, String lastname, String firstname, String email,
+			String additionalname, String street, String zip, String fax,
+			long states_id, String town, long language_id,
+			String jNameTimeZone) throws AxisFault {
+		return getBean(UserWebService.class).addNewUserWithTimeZone(SID, username,
+				userpass, lastname, firstname, email, additionalname, street,
+				zip, fax, states_id, town, language_id, jNameTimeZone);
+
+	}
+
+	/**
+	 * 
+	 * Adds a user with an externalUserId and type, but checks if the user/type
+	 * does already exist
+	 * 
+	 * @param SID
+	 * @param username
+	 * @param userpass
+	 * @param lastname
+	 * @param firstname
+	 * @param email
+	 * @param additionalname
+	 * @param street
+	 * @param zip
+	 * @param fax
+	 * @param states_id
+	 * @param town
+	 * @param language_id
+	 * @param jNameTimeZone
+	 * @param externalUserId
+	 * @param externalUserType
+	 * @return
+	 * @throws AxisFault
+	 */
+	public Long addNewUserWithExternalType(String SID, String username,
+			String userpass, String lastname, String firstname, String email,
+			String additionalname, String street, String zip, String fax,
+			long states_id, String town, long language_id,
+			String jNameTimeZone, String externalUserId, String externalUserType)
+			throws AxisFault {
+		return getBean(UserWebService.class).addNewUserWithExternalType(SID, username,
+				userpass, lastname, firstname, email, additionalname, street,
+				zip, fax, states_id, town, language_id, jNameTimeZone,
+				externalUserId, externalUserType);
+
+	}
+
+	/**
+	 * 
+	 * delete a user by its id
+	 * 
+	 * @param SID
+	 * @param userId
+	 * @return
+	 * @throws AxisFault
+	 */
+	public Long deleteUserById(String SID, Long userId) throws AxisFault {
+		return getBean(UserWebService.class).deleteUserById(SID, userId);
+	}
+
+	/**
+	 * 
+	 * delete a user by its external user id and type
+	 * 
+	 * @param SID
+	 * @param externalUserId
+	 * @param externalUserType
+	 * @return
+	 * @throws AxisFault
+	 */
+	public Long deleteUserByExternalUserIdAndType(String SID,
+			String externalUserId, String externalUserType) throws AxisFault {
+		return getBean(UserWebService.class).deleteUserByExternalUserIdAndType(SID,
+				externalUserId, externalUserType);
+	}
+
+	public String setUserObjectAndGenerateRoomHash(String SID, String username,
+			String firstname, String lastname, String profilePictureUrl,
+			String email, String externalUserId, String externalUserType,
+			Long room_id, int becomeModeratorAsInt, int showAudioVideoTestAsInt)
+			throws AxisFault {
+		return getBean(UserWebService.class).setUserObjectAndGenerateRoomHash(SID,
+				username, firstname, lastname, profilePictureUrl, email,
+				externalUserId, externalUserType, room_id,
+				becomeModeratorAsInt, showAudioVideoTestAsInt);
+	}
+
+	public String setUserObjectAndGenerateRoomHashByURL(String SID,
+			String username, String firstname, String lastname,
+			String profilePictureUrl, String email, String externalUserId,
+			String externalUserType, Long room_id, int becomeModeratorAsInt,
+			int showAudioVideoTestAsInt) throws AxisFault {
+		return getBean(UserWebService.class).setUserObjectAndGenerateRoomHashByURL(SID,
+				username, firstname, lastname, profilePictureUrl, email,
+				externalUserId, externalUserType, room_id,
+				becomeModeratorAsInt, showAudioVideoTestAsInt);
+	}
+
+	public String setUserObjectAndGenerateRoomHashByURLAndRecFlag(String SID,
+			String username, String firstname, String lastname,
+			String profilePictureUrl, String email, String externalUserId,
+			String externalUserType, Long room_id, int becomeModeratorAsInt,
+			int showAudioVideoTestAsInt, int allowRecording) throws AxisFault {
+		return getBean(UserWebService.class)
+				.setUserObjectAndGenerateRoomHashByURLAndRecFlag(SID, username,
+						firstname, lastname, profilePictureUrl, email,
+						externalUserId, externalUserType, room_id,
+						becomeModeratorAsInt, showAudioVideoTestAsInt,
+						allowRecording);
+	}
+
+	public String setUserObjectMainLandingZone(String SID, String username,
+			String firstname, String lastname, String profilePictureUrl,
+			String email, String externalUserId, String externalUserType)
+			throws AxisFault {
+		return getBean(UserWebService.class).setUserObjectMainLandingZone(SID,
+				username, firstname, lastname, profilePictureUrl, email,
+				externalUserId, externalUserType);
+	}
+
+	public String setUserAndNickName(String SID, String username,
+			String firstname, String lastname, String profilePictureUrl,
+			String email, String externalUserId, String externalUserType,
+			Long room_id, int becomeModeratorAsInt,
+			int showAudioVideoTestAsInt, int showNickNameDialogAsInt)
+			throws AxisFault {
+		return getBean(UserWebService.class).setUserAndNickName(SID, username,
+				firstname, lastname, profilePictureUrl, email, externalUserId,
+				externalUserType, room_id, becomeModeratorAsInt,
+				showAudioVideoTestAsInt, showNickNameDialogAsInt);
+	}
+
+	public String setUserObjectAndGenerateRecordingHashByURL(String SID,
+			String username, String firstname, String lastname,
+			String externalUserId, String externalUserType, Long recording_id)
+			throws AxisFault {
+		return getBean(UserWebService.class)
+				.setUserObjectAndGenerateRecordingHashByURL(SID, username,
+						firstname, lastname, externalUserId, externalUserType,
+						recording_id);
+	}
+
+	public Long addUserToOrganisation(String SID, Long user_id,
+			Long organisation_id, Long insertedby)
+			throws AxisFault {
+		return getBean(UserWebService.class).addUserToOrganisation(SID, user_id,
+				organisation_id, insertedby);
+	}
+
+	public UserSearchResult getUsersByOrganisation(String SID, long organisation_id, int start, int max, String orderby,
+			boolean asc) throws AxisFault {
+		return new UserSearchResult(getBean(UserWebService.class)
+				.getUsersByOrganisation(SID, organisation_id, start, max, orderby, asc));
+	}
+
+	public Boolean kickUserByPublicSID(String SID, String publicSID)
+			throws AxisFault {
+		return getBean(UserWebService.class).kickUserByPublicSID(SID, publicSID);
+	}
+	
+	public Long addOrganisation(String SID, String name) throws AxisFault {
+		return getBean(UserWebService.class).addOrganisation(SID, name);
+	}
+
+}
diff --git a/src/axis/resources/services.xml b/src/axis/resources/services.xml
new file mode 100644
index 0000000..9aba71f
--- /dev/null
+++ b/src/axis/resources/services.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+ -->
+<serviceGroup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+    xsi:noNamespaceSchemaLocation="services.xsd">
+  <service name="UserService">
+	<description>User Service</description>
+	<messageReceivers>
+        <messageReceiver 
+            mep="http://www.w3.org/ns/wsdl/in-only"
+			class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
+        <messageReceiver
+            mep="http://www.w3.org/ns/wsdl/in-out"
+			class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
+    </messageReceivers>
+    <parameter name="ServiceClass" locked="xsd:false">org.apache.openmeetings.axis.services.UserWebServiceFacade</parameter>
+  </service>
+  <service name="RoomService">
+	<description>Room Service</description>
+	<messageReceivers>
+        <messageReceiver 
+            mep="http://www.w3.org/ns/wsdl/in-only"
+			class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
+        <messageReceiver
+            mep="http://www.w3.org/ns/wsdl/in-out"
+			class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
+    </messageReceivers>
+    <parameter name="ServiceClass" locked="xsd:false">org.apache.openmeetings.axis.services.RoomWebServiceFacade</parameter>
+  </service>
+  <service name="FileService">
+	<description>File Service</description>
+	<messageReceivers>
+        <messageReceiver 
+            mep="http://www.w3.org/ns/wsdl/in-only"
+			class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
+        <messageReceiver
+            mep="http://www.w3.org/ns/wsdl/in-out"
+			class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
+    </messageReceivers>
+    <parameter name="ServiceClass" locked="xsd:false">org.apache.openmeetings.axis.services.FileWebServiceFacade</parameter>
+  </service>
+  <service name="CalendarService">
+	<description>Calendar Service</description>
+	<messageReceivers>
+        <messageReceiver 
+            mep="http://www.w3.org/ns/wsdl/in-only"
+			class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
+        <messageReceiver
+            mep="http://www.w3.org/ns/wsdl/in-out"
+			class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
+    </messageReceivers>
+    <parameter name="ServiceClass" locked="xsd:false">org.apache.openmeetings.axis.services.CalendarWebServiceFacade</parameter>
+  </service>
+  <service name="JabberService">
+	<description>Jabber Service</description>
+	<messageReceivers>
+        <messageReceiver 
+            mep="http://www.w3.org/ns/wsdl/in-only"
+			class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
+        <messageReceiver
+            mep="http://www.w3.org/ns/wsdl/in-out"
+			class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
+    </messageReceivers>
+    <parameter name="ServiceClass" locked="xsd:false">org.apache.openmeetings.axis.services.JabberWebServiceFacade</parameter>
+  </service>
+  <service name="ServerService">
+	<description>Server Service</description>
+	<messageReceivers>
+        <messageReceiver 
+            mep="http://www.w3.org/ns/wsdl/in-only"
+			class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
+        <messageReceiver
+            mep="http://www.w3.org/ns/wsdl/in-out"
+			class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
+    </messageReceivers>
+    <parameter name="ServiceClass" locked="xsd:false">org.apache.openmeetings.axis.services.ServerWebServiceFacade</parameter>
+  </service>
+</serviceGroup>
diff --git a/src/axis/resources/services.xsd b/src/axis/resources/services.xsd
new file mode 100644
index 0000000..a71b92b
--- /dev/null
+++ b/src/axis/resources/services.xsd
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

+  <xs:element name="serviceGroup">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element maxOccurs="unbounded" ref="service"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="service">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element ref="description"/>

+        <xs:element ref="messageReceivers"/>

+        <xs:element ref="parameter"/>

+      </xs:sequence>

+      <xs:attribute name="name" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="description" type="xs:string"/>

+  <xs:element name="messageReceivers">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element maxOccurs="unbounded" ref="messageReceiver"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="messageReceiver">

+    <xs:complexType>

+      <xs:attribute name="class" use="required"/>

+      <xs:attribute name="mep" use="required" type="xs:anyURI"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="parameter">

+    <xs:complexType mixed="true">

+      <xs:attribute name="locked" use="required" type="xs:NMTOKEN"/>

+      <xs:attribute name="name" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+</xs:schema>

diff --git a/src/db/java/org/apache/openmeetings/db/dao/IDataProviderDao.java b/src/db/java/org/apache/openmeetings/db/dao/IDataProviderDao.java
new file mode 100644
index 0000000..5b3052d
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/IDataProviderDao.java
@@ -0,0 +1,92 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.db.dao;

+

+import java.util.List;

+

+import org.apache.openmeetings.db.entity.IDataProviderEntity;

+

+/**

+ * General interface to perform CRUD operations on entities

+ * 

+ * @author solomax, swagner

+ * 

+ * @param <T>

+ */

+public interface IDataProviderDao<T extends IDataProviderEntity> {

+

+	/**

+	 * Get an instance of an {@link T}

+	 * 

+	 * @param id - id of instance to retrieve

+	 * @return instance with the id gived

+	 */

+	T get(long id);

+

+	/**

+	 * Get a list of instances of {@link T}

+	 * 

+	 * @param start - the start to range to retrieve

+	 * @param count - maximum instance count to retrieve

+	 * @return list of instances in the range specified

+	 */

+	List<T> get(int start, int count);

+

+	/**

+	 * Get a list of instances of {@link T}

+	 * 

+	 * @param search - string search criteria to filter entities

+	 * @param start - the start to range to retrieve

+	 * @param count - maximum instance count to retrieve

+	 * @param order - column and sort order

+	 * @return list of instances in the range specified

+	 */

+	List<T> get(String search, int start, int count, String order);

+

+	/**

+	 * Count the number of instances of {@link T}

+	 * 

+	 * @return count of instances

+	 */

+	long count();

+

+	/**

+	 * Count the number of instances of {@link T}

+	 * 

+	 * @param search - string search criteria to filter entities

+	 * @return count of instances satisfying given search criteria

+	 */

+	long count(String search);

+

+	/**

+	 * Update an instance of {@link T}

+	 * 

+	 * @param entity - entity to be updated

+	 * @param userId - user performed update

+	 */

+	T update(T entity, Long userId);

+

+	/**

+	 * Delete an instance of {@link T}

+	 * 

+	 * @param entity - entity to be deleted

+	 * @param userId - user performed delete

+	 */

+	void delete(T entity, Long userId);

+}

diff --git a/src/db/java/org/apache/openmeetings/db/dao/basic/ChatDao.java b/src/db/java/org/apache/openmeetings/db/dao/basic/ChatDao.java
new file mode 100644
index 0000000..8345424
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/basic/ChatDao.java
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.basic;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import org.apache.openmeetings.db.entity.basic.ChatMessage;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class ChatDao {
+	@PersistenceContext
+	private EntityManager em;
+
+	public ChatMessage get(long id) {
+		return em.createNamedQuery("getChatMessageById", ChatMessage.class)
+				.setParameter("id", id)
+				.getSingleResult();
+	}
+
+	//TODO additional methods should be added to get messages by external email
+	public List<ChatMessage> get(long userId, int start, int count) {
+		return em.createNamedQuery("getChatMessagesByUser", ChatMessage.class)
+				.setParameter("userId", userId)
+				.setFirstResult(start)
+				.setMaxResults(count)
+				.getResultList();
+	}
+
+	public List<ChatMessage> get(int start, int count) {
+		return em.createNamedQuery("getGlobalChatMessages", ChatMessage.class)
+				.setFirstResult(start)
+				.setMaxResults(count)
+				.getResultList();
+	}
+
+	public ChatMessage update(ChatMessage entity) {
+		entity.setSent(new Date());
+		if (entity.getId() == 0) {
+			em.persist(entity);
+		}
+		return entity;
+	}
+
+	public void delete(ChatMessage entity, long userId) {
+		// TODO Auto-generated method stub
+		
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java b/src/db/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
new file mode 100644
index 0000000..9d1dbde
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
@@ -0,0 +1,339 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.basic;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_APPLICATION_BASE_URL;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_CRYPT_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_MAX_UPLOAD_SIZE_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.DEFAULT_BASE_URL;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.configKeyCryptClassName;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.whiteboardDrawStatus;
+
+import java.lang.reflect.Constructor;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.dao.IDataProviderDao;
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.entity.basic.Configuration;
+import org.apache.openmeetings.util.DaoHelper;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * Insert/update/Delete on {@link Configuration}<br/>
+ * <br/>
+ * It provides basic mechanism to get a Conf Key:<br/>
+ * {@link #getConfValue(String, Class, String)} <br/>
+ * <br/>
+ * <b> {@link #get(String)} is deprecated!</b>
+ * 
+ * @author swagner
+ * 
+ */
+@Transactional
+public class ConfigurationDao implements IDataProviderDao<Configuration> {
+	private static final Logger log = Red5LoggerFactory.getLogger(ConfigurationDao.class, webAppRootKey);
+	public static final long DEFAULT_MAX_UPLOAD_SIZE = 1024 * 1024 * 1024; // 1GB
+	public static final String DEFAULT_APP_NAME = "OpenMeetings";
+	public final static String[] searchFields = {"conf_key", "conf_value"};
+
+	@PersistenceContext
+	private EntityManager em;
+
+	@Resource(name = "adminUserDao")
+	private AdminUserDao adminUserDao;
+
+	/**
+	 * @deprecated Dao's are not the place to store session variables, also
+	 *             updates to the key won't update this variable
+	 */
+	@Deprecated
+	private String appName = null;
+
+	/**
+	 * Retrieves Configuration regardless of its deleted status
+	 * 
+	 * @param confKey
+	 * @return
+	 */
+	public Configuration forceGet(String confKey) {
+		try {
+			List<Configuration> list = em.createNamedQuery("forceGetConfigurationByKey", Configuration.class)
+					.setParameter("conf_key", confKey).getResultList();
+			return list.isEmpty() ? null : list.get(0);
+		} catch (Exception e) {
+			log.error("[forceGet]: ", e);
+		}
+		return null;
+	}
+
+	public List<Configuration> get(String... keys) {
+		List<Configuration> result = new ArrayList<Configuration>();
+		for (String key : keys) { //iteration is necessary to fill list with all values 
+			List<Configuration> r = em.createNamedQuery("getConfigurationsByKeys", Configuration.class)
+					.setParameter("conf_keys", Arrays.asList(key))
+					.getResultList();
+			result.add(r.isEmpty() ? null : r.get(0));
+		}
+		return result;
+	}
+
+	/**
+	 * Return a object using a custom type and a default value if the key is not
+	 * present, or value is not set
+	 * 
+	 * Example: Integer my_key = getConfValue("my_key", Integer.class, "15");
+	 * 
+	 * @param key
+	 * @param type
+	 * @param defaultValue
+	 * @return
+	 */
+	public <T> T getConfValue(String key, Class<T> type, String defaultValue) {
+		try {
+			List<Configuration> list = get(key);
+
+			if (list == null || list.isEmpty() || list.get(0) == null) {
+				log.warn("Could not find key in configuration CONF_KEY: " + key);
+			} else {
+				String val = list.get(0).getConf_value();
+				// Use the custom value as default value
+				if (val != null) {
+					defaultValue = val;
+				}
+			}
+
+			if (defaultValue == null) {
+				return null;
+			}
+			// Either this can be directly assigned or try to find a constructor
+			// that handles it
+			if (type.isAssignableFrom(defaultValue.getClass())) {
+				return type.cast(defaultValue);
+			}
+			Constructor<T> c = type.getConstructor(defaultValue.getClass());
+			return c.newInstance(defaultValue);
+
+		} catch (Exception err) {
+			log.error("cannot be cast to return type, you have misconfigured your configuration CONF_KEY: " + key, err);
+			return null;
+		}
+	}
+
+	public List<Configuration> getConfigurations(int start, int max,
+			String orderby, boolean asc) {
+		try {
+
+			String query = "SELECT c FROM Configuration c " //
+					+ "LEFT JOIN FETCH c.user " //
+					+ "WHERE c.deleted = false " //
+					+ "ORDER BY " + orderby;
+
+			if (asc) {
+				query += " ASC";
+			} else {
+				query += " DESC";
+			}
+
+			TypedQuery<Configuration> q = em.createQuery(query,
+					Configuration.class);
+			q.setFirstResult(start);
+			q.setMaxResults(max);
+			return q.getResultList();
+		} catch (Exception ex2) {
+			log.error("[getConfigurations]", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 */
+	public Configuration add(String key, String value, Long userId, String comment) {
+		Configuration c = new Configuration();
+		c.setConf_key(key);
+		c.setConf_value(value);
+		c.setComment(comment);
+		return update(c, userId);
+	}
+
+	/**
+	 * @deprecated please use {@link ConfigurationDao#update(Configuration, Long)}
+	 */
+	public Long addConfig(Configuration conf) {
+		try {
+			conf = em.merge(conf);
+			Long configuration_id = conf.getConfiguration_id();
+			return configuration_id;
+		} catch (Exception ex2) {
+			log.error("[updateConfByUID]: ", ex2);
+		}
+		return new Long(-1);
+	}
+
+	/**
+	 * @deprecated please use {@link ConfigurationDao#update(Configuration, Long)}
+	 * @param conf
+	 * @return
+	 */
+	public Long updateConfig(Configuration conf) {
+		try {
+			if (conf.getConfiguration_id() == null
+					|| conf.getConfiguration_id() == 0
+					|| conf.getConfiguration_id() == 0L) {
+				em.persist(conf);
+			} else {
+				if (!em.contains(conf)) {
+					conf = em.merge(conf);
+				}
+			}
+			if (CONFIG_CRYPT_KEY.equals(conf.getConf_key())) {
+				configKeyCryptClassName = conf.getConf_value();
+			} else if ("show.whiteboard.draw.status".equals(conf.getConf_key())) {
+				whiteboardDrawStatus = "1".equals(conf.getConf_value());
+			}
+			return conf.getConfiguration_id();
+		} catch (Exception ex2) {
+			log.error("[updateConfByUID]: ", ex2);
+		}
+		return new Long(-1);
+	}
+
+	public String getAppName() {
+		if (appName == null) {
+			appName = getConfValue("application.name", String.class, DEFAULT_APP_NAME);
+		}
+		return appName;
+	}
+
+	public String getBaseUrl() {
+		String val = getConfValue(CONFIG_APPLICATION_BASE_URL, String.class, DEFAULT_BASE_URL);
+		if (val != null && !val.endsWith("/")) {
+			val += "/";
+		}
+		return val;
+	}
+
+	public Configuration get(long id) {
+		if (id <= 0) {
+			return null;
+		}
+		return em.createNamedQuery("getConfigurationById", Configuration.class)
+				.setParameter("configuration_id", id).getSingleResult();
+	}
+
+	public List<Configuration> get(int start, int count) {
+		return em.createNamedQuery("getNondeletedConfiguration", Configuration.class)
+				.setFirstResult(start).setMaxResults(count).getResultList();
+	}
+
+	public List<Configuration> get(String search, int start, int count, String sort) {
+		TypedQuery<Configuration> q = em.createQuery(DaoHelper.getSearchQuery("Configuration", "c", search, true, false, sort, searchFields), Configuration.class);
+		q.setFirstResult(start);
+		q.setMaxResults(count);
+		return q.getResultList();
+	}
+	
+	public long count() {
+		return em.createNamedQuery("countConfigurations", Long.class).getSingleResult();
+	}
+
+	public long count(String search) {
+		TypedQuery<Long> q = em.createQuery(DaoHelper.getSearchQuery("Configuration", "c", search, true, true, null, searchFields), Long.class);
+		return q.getSingleResult();
+	}
+	
+	public Configuration update(Configuration entity, Long userId) {
+		return update(entity, userId, false);
+	}
+	
+	public Configuration update(Configuration entity, Long userId, boolean deleted) {
+		String key = entity.getConf_key();
+		String value = entity.getConf_value();
+		if (entity.getConfiguration_id() == null || entity.getConfiguration_id() <= 0) {
+			entity.setStarttime(new Date());
+			entity.setDeleted(deleted);
+			em.persist(entity);
+		} else {
+			if (userId != null) {
+				entity.setUser(adminUserDao.get(userId));
+			}
+			entity.setDeleted(deleted);
+			entity.setUpdatetime(new Date());
+			entity = em.merge(entity);
+		}
+		if (CONFIG_CRYPT_KEY.equals(key)) {
+			configKeyCryptClassName = value;
+		} else if ("show.whiteboard.draw.status".equals(key)) {
+			whiteboardDrawStatus = "1".equals(value);
+		} else if ("application.name".equals(key)) {
+			appName = value;
+		}
+		//TODO ensure entity returned is updated
+		return entity;
+	}
+
+	public void delete(Configuration entity, Long userId) {
+		entity.setUpdatetime(new Date());
+		this.update(entity, userId, true);
+	}
+
+	/**
+	 * returns the max upload size configured by max_upload_size config key
+	 * 
+	 * @param configurationDao
+	 * @return
+	 */
+	public final long getMaxUploadSize() {
+		try {
+			return getConfValue(CONFIG_MAX_UPLOAD_SIZE_KEY, Long.class, "" + DEFAULT_MAX_UPLOAD_SIZE);
+		} catch (Exception e) {
+			log.error("Invalid value saved for max_upload_size conf key: ", e);
+		}
+		return DEFAULT_MAX_UPLOAD_SIZE;
+	}
+	
+	public String getCryptKey() {
+		if (configKeyCryptClassName == null) {
+			String cryptClass = getConfValue(CONFIG_CRYPT_KEY, String.class, null);
+			if (cryptClass != null) {
+				configKeyCryptClassName = cryptClass;
+			}
+		}
+
+		return configKeyCryptClassName;
+	}
+
+	public boolean getWhiteboardDrawStatus() {
+		if (whiteboardDrawStatus == null) {
+			String drawStatus = getConfValue("show.whiteboard.draw.status", String.class, "0");
+			whiteboardDrawStatus = "1".equals(drawStatus);
+		}
+		return whiteboardDrawStatus;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/basic/ErrorDao.java b/src/db/java/org/apache/openmeetings/db/dao/basic/ErrorDao.java
new file mode 100644
index 0000000..b4af047
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/basic/ErrorDao.java
@@ -0,0 +1,146 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.basic;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.entity.basic.ErrorType;
+import org.apache.openmeetings.db.entity.basic.ErrorValue;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class ErrorDao {
+	private static final Logger log = Red5LoggerFactory.getLogger(ErrorDao.class, webAppRootKey);
+
+	@PersistenceContext
+	private EntityManager em;
+
+	public Long addErrorType(Long errortype_id, Long fieldvalues_id) {
+		try {
+			ErrorType eType = new ErrorType();
+			eType.setErrortype_id(errortype_id);
+			eType.setStarttime(new Date());
+			eType.setDeleted(false);
+			eType.setFieldvalues_id(fieldvalues_id);
+			eType = em.merge(eType);
+			Long newerrortype_id = eType.getErrortype_id();
+			return newerrortype_id;
+		} catch (Exception ex2) {
+			log.error("[addErrorType]: ", ex2);
+		}
+		return null;
+	}
+
+	public List<ErrorType> getErrorTypes() {
+		try {
+			TypedQuery<ErrorType> query = em.createNamedQuery("getErrorTypes", ErrorType.class);
+			query.setParameter("deleted", true);
+			List<ErrorType> ll = query.getResultList();
+			return ll;
+		} catch (Exception ex2) {
+			log.error("[getErrorTypes]: ", ex2);
+		}
+		return null;
+	}
+
+	public ErrorType getErrorType(Long errortype_id) {
+		try {
+			TypedQuery<ErrorType> query = em.createNamedQuery("getErrorType", ErrorType.class);
+			query.setParameter("deleted", true);
+			query.setParameter("errortype_id", errortype_id);
+			return query.getSingleResult();
+		} catch (Exception ex2) {
+			log.error("[getErrorType(" + errortype_id + ")]", ex2);
+		}
+		return null;
+	}
+
+	public Long addErrorValues(Long errorvalues_id, Long errortype_id,
+			Long fieldvalues_id) {
+		try {
+			ErrorValue eValue = new ErrorValue();
+			eValue.setErrorvalues_id(errorvalues_id);
+			eValue.setErrortype_id(errortype_id);
+			eValue.setDeleted(false);
+			eValue.setStarttime(new Date());
+			eValue.setFieldvalues_id(fieldvalues_id);
+			eValue = em.merge(eValue);
+			return eValue.getErrorvalues_id();
+		} catch (Exception ex2) {
+			log.error("[addErrorValues]: ", ex2);
+		}
+		return null;
+	}
+
+	public Long getErrorValueById(Long errortype_id, Long fieldvalues_id) {
+		try {
+			ErrorValue eValue = new ErrorValue();
+			eValue.setErrortype_id(errortype_id);
+			eValue.setStarttime(new Date());
+			eValue.setFieldvalues_id(fieldvalues_id);
+			eValue = em.merge(eValue);
+			Long newerrorvalues_id = eValue.getErrorvalues_id();
+			return newerrorvalues_id;
+		} catch (Exception ex2) {
+			log.error("[getErrorValueById]: ", ex2);
+		}
+		return null;
+	}
+
+	public Long updateErrorValues(Long errortype_id, Long fieldvalues_id) {
+		try {
+			ErrorValue eValue = new ErrorValue();
+			eValue.setErrortype_id(errortype_id);
+			eValue.setStarttime(new Date());
+			eValue.setFieldvalues_id(fieldvalues_id);
+			eValue = em.merge(eValue);
+			Long newerrorvalues_id = eValue.getErrorvalues_id();
+			return newerrorvalues_id;
+		} catch (Exception ex2) {
+			log.error("[addErrorType]: ", ex2);
+		}
+		return null;
+	}
+
+	public ErrorValue get(Long id) {
+		try {
+			TypedQuery<ErrorValue> query = em.createNamedQuery("getErrorValueById", ErrorValue.class);
+			query.setParameter("id", id);
+			ErrorValue e = null;
+			try {
+				e = query.getSingleResult();
+			} catch (NoResultException ex) {
+			}
+			return e;
+		} catch (Exception ex2) {
+			log.error("[get]", ex2);
+		}
+		return null;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/basic/MailMessageDao.java b/src/db/java/org/apache/openmeetings/db/dao/basic/MailMessageDao.java
new file mode 100644
index 0000000..98cfb0e
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/basic/MailMessageDao.java
@@ -0,0 +1,82 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.db.dao.basic;

+

+import java.util.Calendar;

+import java.util.List;

+

+import javax.persistence.EntityManager;

+import javax.persistence.PersistenceContext;

+

+import org.apache.openmeetings.db.dao.IDataProviderDao;

+import org.apache.openmeetings.db.entity.basic.MailMessage;

+import org.apache.openmeetings.db.entity.basic.MailMessage.Status;

+import org.springframework.transaction.annotation.Transactional;

+

+@Transactional

+public class MailMessageDao  implements IDataProviderDao<MailMessage> {

+	@PersistenceContext

+	private EntityManager em;

+	

+	public MailMessage get(long id) {

+		return em.createNamedQuery("getMailMessageById", MailMessage.class).setParameter("id", id).getSingleResult();

+	}

+

+	public List<MailMessage> get(int start, int count) {

+		return em.createNamedQuery("getMailMessages", MailMessage.class).setParameter("status", Status.NONE)

+				.setFirstResult(start).setMaxResults(count).getResultList();

+	}

+

+	public List<MailMessage> get(String search, int start, int count, String order) {

+		return get(start, count);

+	}

+

+	public long count() {

+		return em.createNamedQuery("countMailMessages", Long.class).setParameter("status", Status.NONE)

+				.getSingleResult();

+	}

+

+	public long count(String search) {

+		return count();

+	}

+

+	public void resetSendingStatus(Calendar date) {

+		em.createQuery("UPDATE MailMessage m SET m.status = :noneStatus WHERE m.status = :sendingStatus " +

+				"	AND m.updated < :date")

+			.setParameter("noneStatus", Status.NONE)

+			.setParameter("sendingStatus", Status.SENDING)

+			.setParameter("date", date)

+			.executeUpdate();

+	}

+	

+	public MailMessage update(MailMessage m, Long userId) {

+		if (m.getId() == null) {

+			m.setInserted(Calendar.getInstance());

+			em.persist(m);

+		} else {

+			m.setUpdated(Calendar.getInstance());

+			m =	em.merge(m);

+		}

+		return m;

+	}

+

+	public void delete(MailMessage m, Long userId) {

+		em.remove(m);

+	}

+}

diff --git a/src/db/java/org/apache/openmeetings/db/dao/basic/NavigationDao.java b/src/db/java/org/apache/openmeetings/db/dao/basic/NavigationDao.java
new file mode 100644
index 0000000..4a778bb
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/basic/NavigationDao.java
@@ -0,0 +1,144 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.basic;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.dao.label.FieldLanguagesValuesDao;
+import org.apache.openmeetings.db.entity.basic.Naviglobal;
+import org.apache.openmeetings.db.entity.basic.Navimain;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class NavigationDao {
+	private static final Logger log = Red5LoggerFactory.getLogger(NavigationDao.class, webAppRootKey);
+
+	@PersistenceContext
+	private EntityManager em;
+
+	@Autowired
+	private FieldLanguagesValuesDao labelDao;
+
+	public Naviglobal getGlobalMenuEntry(long globalId) {
+		try {
+			TypedQuery<Naviglobal> query = em.createNamedQuery("getNavigationById", Naviglobal.class);
+			query.setParameter("global_id", globalId);
+			return query.getSingleResult();
+		} catch (Exception ex2) {
+			log.error("getGlobalMenuEntry", ex2);
+		}
+		return null;
+
+	}
+
+	public List<Naviglobal> getMainMenu(long user_level, long USER_ID, long language_id) {
+		List<Naviglobal> ll = getMainMenu(user_level, USER_ID);
+		for (Naviglobal navigl : ll) {
+			navigl.setLabel(labelDao.get(navigl.getFieldvalues_id(), language_id));
+			navigl.setTooltip(labelDao.get(navigl.getTooltip_fieldvalues_id(), language_id));
+			for (Navimain navim : navigl.getMainnavi()) {
+				navim.setLabel(labelDao.get(navim.getFieldvalues_id(), language_id));
+				navim.setTooltip(labelDao.get(navim.getTooltip_fieldvalues_id(), language_id));
+			}
+		}
+		return ll;
+	}
+
+	public List<Naviglobal> getMainMenu(long user_level, long USER_ID) {
+		try {
+			TypedQuery<Naviglobal> query = em.createNamedQuery("getNavigation", Naviglobal.class);
+			query.setParameter("level_id", user_level);
+			List<Naviglobal> navi = query.getResultList();
+			return navi;
+		} catch (Exception ex2) {
+			log.error("getMainMenu", ex2);
+		}
+		return null;
+	}
+
+	public void addGlobalStructure(String action, int naviorder, long fieldvalues_id, boolean isleaf, boolean isopen, long level_id,
+			String name, boolean deleted, Long tooltip_fieldvalues_id) {
+		try {
+			Naviglobal ng = new Naviglobal();
+			ng.setAction(action);
+			ng.setComment("");
+			ng.setIcon("");
+			ng.setNaviorder(naviorder);
+			ng.setFieldvalues_id(fieldvalues_id);
+			ng.setIsleaf(isleaf);
+			ng.setIsopen(isopen);
+			ng.setDeleted(deleted);
+			ng.setLevel_id(level_id);
+			ng.setName(name);
+			ng.setStarttime(new Date());
+			ng.setTooltip_fieldvalues_id(tooltip_fieldvalues_id);
+			// CriteriaBuilder crit = em.getCriteriaBuilder();
+
+			em.merge(ng);
+
+		} catch (Exception ex2) {
+			log.error("addGlobalStructure", ex2);
+		}
+	}
+
+	public void addMainStructure(String action, String params, int naviorder, long fieldvalues_id, boolean isleaf, boolean isopen,
+			long level_id, String name, long global_id, boolean deleted, Long tooltip_fieldvalues_id) {
+		try {
+			Naviglobal ng = getGlobalMenuEntry(global_id);
+			List<Navimain> mainEntries = ng.getMainnavi();
+			mainEntries = (mainEntries == null) ? new ArrayList<Navimain>() : mainEntries;
+
+			Navimain nm = new Navimain();
+			nm.setAction(action);
+			nm.setParams(params);
+			nm.setComment("");
+			nm.setIcon("");
+			nm.setFieldvalues_id(fieldvalues_id);
+			nm.setIsleaf(isleaf);
+			nm.setNaviorder(naviorder);
+			nm.setIsopen(isopen);
+			nm.setLevel_id(level_id);
+			nm.setName(name);
+			nm.setDeleted(deleted);
+			nm.setGlobal_id(global_id);
+			nm.setStarttime(new Date());
+			nm.setTooltip_fieldvalues_id(tooltip_fieldvalues_id);
+
+			mainEntries.add(nm);
+			ng.setMainnavi(mainEntries);
+
+			em.merge(ng);
+
+		} catch (Exception ex2) {
+			log.error("addMainStructure", ex2);
+		}
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentCategoryDao.java b/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentCategoryDao.java
new file mode 100644
index 0000000..53735ca
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentCategoryDao.java
@@ -0,0 +1,163 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.calendar;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.calendar.AppointmentCategory;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class AppointmentCategoryDao {
+	private static final Logger log = Red5LoggerFactory.getLogger(AppointmentCategoryDao.class, webAppRootKey);
+
+	@PersistenceContext
+	private EntityManager em;
+	@Autowired
+	private UserDao usersDao;
+
+	public AppointmentCategory get(Long categoryId) {
+		try {
+			log.debug("getAppointmentCategoryById: " + categoryId);
+
+			String hql = "select app from AppointmentCategory app "
+					+ "WHERE app.deleted <> :deleted "
+					+ "AND app.categoryId = :categoryId";
+
+			TypedQuery<AppointmentCategory> query = em.createQuery(hql, AppointmentCategory.class);
+			query.setParameter("deleted", true);
+			query.setParameter("categoryId", categoryId);
+
+			AppointmentCategory appointCategory = null;
+			try {
+				appointCategory = query.getSingleResult();
+			} catch (NoResultException ex) {
+			}
+
+			return appointCategory;
+		} catch (Exception ex2) {
+			log.error("[getAppointmentCategoryById]: " + ex2);
+		}
+		return null;
+	}
+
+	public Long updateAppointmentCategory(Long categoryId, String name) {
+		try {
+
+			AppointmentCategory ac = this
+					.get(categoryId);
+
+			ac.setName(name);
+			ac.setUpdatetime(new Date());
+
+			if (ac.getCategoryId() == null) {
+				em.persist(ac);
+			} else {
+				if (!em.contains(ac)) {
+					em.merge(ac);
+				}
+			}
+
+			return categoryId;
+		} catch (Exception ex2) {
+			log.error("[updateAppointmentCategory]: ", ex2);
+		}
+		return null;
+	}
+
+	public Long addAppointmentCategory(Long user_id, String name, String comment) {
+		try {
+
+			AppointmentCategory ac = new AppointmentCategory();
+
+			ac.setName(name);
+			ac.setStarttime(new Date());
+			ac.setDeleted(false);
+			ac.setUser(usersDao.get(user_id));
+			ac.setComment(comment);
+
+			ac = em.merge(ac);
+			Long category_id = ac.getCategoryId();
+
+			return category_id;
+		} catch (Exception ex2) {
+			log.error("[addAppointmentCategory]: ", ex2);
+		}
+		return null;
+	}
+
+	public Long deleteAppointmentCategory(Long categoryId) {
+		try {
+
+			AppointmentCategory ac = this
+					.get(categoryId);
+
+			log.debug("ac: " + ac);
+
+			if (ac == null) {
+				log.debug("Already deleted / Could not find: " + categoryId);
+				return categoryId;
+			}
+			ac.setUpdatetime(new Date());
+			ac.setDeleted(true);
+			if (ac.getCategoryId() == null) {
+				em.persist(ac);
+			} else {
+				if (!em.contains(ac)) {
+					em.merge(ac);
+				}
+			}
+			return categoryId;
+		} catch (Exception ex2) {
+			log.error("[deleteAppointmentCategory]: " + ex2);
+		}
+		return null;
+	}
+
+	public List<AppointmentCategory> getAppointmentCategoryList() {
+		try {
+
+			String hql = "select a from AppointmentCategory a "
+					+ "WHERE a.deleted <> :deleted ";
+
+			TypedQuery<AppointmentCategory> query = em.createQuery(hql, AppointmentCategory.class);
+			query.setParameter("deleted", true);
+
+			List<AppointmentCategory> listAppointmentCategory = query
+					.getResultList();
+
+			return listAppointmentCategory;
+		} catch (Exception ex2) {
+			log.error("[AppointmentCategory]: " + ex2);
+		}
+		return null;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java b/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
new file mode 100644
index 0000000..21ecde9
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
@@ -0,0 +1,401 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.calendar;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.TimeZone;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.calendar.IInvitationManager.MessageType;
+import org.apache.openmeetings.db.dao.room.InvitationDao;
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.db.entity.calendar.MeetingMember;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.util.TimezoneUtil;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class AppointmentDao {
+	private static final Logger log = Red5LoggerFactory.getLogger(AppointmentDao.class, webAppRootKey);
+	@PersistenceContext
+	private EntityManager em;
+	@Autowired
+	private AppointmentCategoryDao appointmentCategoryDaoImpl;
+	@Autowired
+	private AppointmentReminderTypDao appointmentReminderTypDao;
+	@Autowired
+	private MeetingMemberDao meetingMemberDao;
+	@Autowired
+	private UserDao usersDao;
+	@Autowired
+	private RoomDao roomDao;
+	@Autowired
+	private ConfigurationDao cfgDao;
+	@Autowired
+	private IInvitationManager invitationManager;
+	@Autowired
+	private TimezoneUtil timezoneUtil;
+	@Autowired
+	private InvitationDao invitationDao;
+
+	/*
+	 * insert, update, delete, select
+	 */
+
+	/**
+	 * @author o.becherer Retrievment of Appointment for room
+	 */
+	// -----------------------------------------------------------------------------------------------
+	public Appointment getAppointmentByRoom(Long room_id) throws Exception {
+		log.debug("AppointMentDaoImpl.getAppointmentByRoom");
+
+		TypedQuery<Appointment> query = em.createNamedQuery("getAppointmentByRoomId", Appointment.class);
+		query.setParameter("room_id", room_id);
+
+		List<Appointment> appoint = query.getResultList();
+
+		if (appoint.size() > 0) {
+			return appoint.get(0);
+		}
+
+		return null;
+	}
+
+	// -----------------------------------------------------------------------------------------------
+
+	public Appointment get(Long id) {
+		TypedQuery<Appointment> query = em.createNamedQuery("getAppointmentById", Appointment.class);
+		query.setParameter("id", id);
+
+		Appointment appoint = null;
+		try {
+			appoint = query.getSingleResult();
+		} catch (NoResultException ex) {
+		}
+		return appoint;
+	}
+
+	public Appointment getAppointmentByIdBackup(Long appointmentId) {
+		String hql = "select a from Appointment a WHERE a.id = :id ";
+
+		TypedQuery<Appointment> query = em.createQuery(hql, Appointment.class);
+		query.setParameter("id", appointmentId);
+
+		Appointment appoint = null;
+		try {
+			appoint = query.getSingleResult();
+		} catch (NoResultException ex) {
+		}
+
+		return appoint;
+	}
+
+	public List<Appointment> getAppointments() {
+		return em.createQuery(
+				"SELECT a FROM Appointment a LEFT JOIN FETCH a.meetingMembers WHERE a.deleted = false ORDER BY a.id"
+				, Appointment.class).getResultList();
+	}
+
+	public Long addAppointmentObj(Appointment ap) {
+		try {
+
+			ap.setInserted(new Date());
+
+			ap = em.merge(ap);
+
+			return ap.getId();
+		} catch (Exception ex2) {
+			log.error("[addAppointmentObj]: ", ex2);
+		}
+		return null;
+	}
+
+	public Appointment update(Appointment a, Long userId) {
+		Room r = a.getRoom();
+		if (r.getRooms_id() == null) {
+			r.setName(a.getTitle());
+			r.setNumberOfPartizipants(cfgDao.getConfValue("calendar.conference.rooms.default.size", Long.class, "50"));
+		}
+		roomDao.update(r, userId);
+		Set<Long> mmIds = a.getId() == null ? new HashSet<Long>()
+				: meetingMemberDao.getMeetingMemberIdsByAppointment(a.getId());
+		// update meeting members
+		//TODO update email need to be sent on meeting members list update
+		Appointment a0 = a.getId() == null ? null : get(a.getId());
+		boolean sendMail = a0 == null || !a0.getTitle().equals(a.getTitle()) ||
+				!(a0.getDescription() != null ? a0.getDescription().equals(a.getDescription()) : true) ||
+				!(a0.getLocation() != null ? a0.getLocation().equals(a.getLocation()) : true) ||
+				!a0.getStart().equals(a.getStart()) ||
+				!a0.getEnd().equals(a.getEnd());
+		List<MeetingMember> mmList = a.getMeetingMembers();
+		if (mmList != null){
+			for (MeetingMember mm : mmList) {
+				if (mm.getId() == null || !mmIds.contains(mm.getId())) {
+					invitationManager.processInvitation(a, mm, MessageType.Create);
+				} else {
+					mmIds.remove(mm.getId());
+					invitationManager.processInvitation(a, mm, MessageType.Update, sendMail);
+				}
+			}
+		}
+		for (long id : mmIds) {
+			invitationManager.processInvitation(a, meetingMemberDao.get(id), MessageType.Cancel);
+		}
+		//notify owner
+		MeetingMember owner = new MeetingMember();
+		owner.setUser(a.getOwner());
+		if (a.getId() == null) {
+			invitationManager.processInvitation(a, owner, MessageType.Create);
+		} else if (a.isDeleted()) {
+			invitationManager.processInvitation(a, owner, MessageType.Cancel);
+		} else if (sendMail) {
+			invitationManager.processInvitation(a, owner, MessageType.Update, sendMail);
+		}
+		if (a.getId() == null) {
+			a.setInserted(new Date());
+			em.persist(a);
+		} else {
+			a.setUpdated(new Date());
+			a =	em.merge(a);
+		}
+		return a;
+	}
+	
+	// ----------------------------------------------------------------------------------------------------------------------------
+
+	public Long updateAppointment(Appointment appointment) {
+		if (appointment.getId() != null) {
+			appointment = em.merge(appointment);
+			return appointment.getId();
+		} else {
+			log.error("[updateAppointment] " + "Error: No AppointmentId given");
+		}
+		return null;
+	}
+
+	public List<Appointment> getAppointmentsByRoomId(Long roomId) {
+		try {
+
+			String hql = "select a from Appointment a "
+					+ "WHERE a.room.rooms_id = :roomId ";
+
+			TypedQuery<Appointment> query = em.createQuery(hql,
+					Appointment.class);
+			query.setParameter("roomId", roomId);
+			List<Appointment> ll = query.getResultList();
+
+			return ll;
+		} catch (Exception e) {
+			log.error("[getAppointmentsByRoomId]", e);
+		}
+		return null;
+	}
+
+	// ----------------------------------------------------------------------------------------------------------
+
+	public void delete(Appointment a, Long userId) {
+		a.setUpdated(new Date());
+		a.setDeleted(true);
+		a.setMeetingMembers(null);
+		if (Boolean.TRUE.equals(a.getRoom().getAppointment())) {
+			a.getRoom().setDeleted(true);
+		}
+		update(a, userId);
+	}
+	
+	public List<Appointment> getAppointmentsByRange(Long userId, Date start, Date end) {
+		Calendar calstart = Calendar.getInstance();
+		calstart.setTime(start);
+		calstart.set(Calendar.HOUR, 0);
+
+		Calendar calend = Calendar.getInstance();
+		calend.setTime(end);
+		calend.set(Calendar.HOUR, 23);
+		calend.set(Calendar.MINUTE, 59);
+		
+		log.debug("Start " + calstart.getTime() + " End " + calend.getTime());
+
+		TypedQuery<Appointment> query = em.createNamedQuery("appointmentsInRange", Appointment.class);
+		query.setParameter("starttime", calstart.getTime());
+		query.setParameter("endtime", calend.getTime());
+		query.setParameter("userId", userId);
+		
+		List<Appointment> listAppoints = new ArrayList<Appointment>(query.getResultList()); 
+		TypedQuery<Appointment> q1 = em.createNamedQuery("joinedAppointmentsInRange", Appointment.class);
+		q1.setParameter("starttime", calstart.getTime());
+		q1.setParameter("endtime", calend.getTime());
+		q1.setParameter("userId", userId);
+		for (Appointment a : q1.getResultList()) {
+			a.setConnectedEvent(true); //TODO need to be reviewed
+			listAppoints.add(a);
+		}
+
+		return listAppoints;
+	}
+
+	public List<Appointment> getAppointmentsInRange(Calendar start, Calendar end) {
+		TypedQuery<Appointment> q = em.createNamedQuery("appointmentsInRangeRemind", Appointment.class);
+		q.setParameter("starttime", start.getTime());
+		q.setParameter("endtime", end.getTime());
+		return q.getResultList();
+	}
+	
+	public List<Appointment> getAppointmentsByCat(Long categoryId) {
+		try {
+
+			String hql = "select a from Appointments a "
+					+ "WHERE a.deleted false "
+					+ "AND a.appointmentCategory.categoryId = :categoryId";
+
+			TypedQuery<Appointment> query = em.createQuery(hql,
+					Appointment.class);
+			query.setParameter("categoryId", categoryId);
+
+			List<Appointment> listAppoints = query.getResultList();
+			return listAppoints;
+		} catch (Exception ex2) {
+			log.error("[getAppointements]: ", ex2);
+		}
+		return null;
+	}
+
+	// next appointment to select date
+	public Appointment getNextAppointment(Date appointmentStarttime) {
+		try {
+
+			String hql = "select a from Appointment a "
+					+ "WHERE a.deleted false "
+					+ "AND a.start > :appointmentStarttime ";
+
+			TypedQuery<Appointment> query = em.createQuery(hql, Appointment.class);
+			query.setParameter("appointmentStarttime", appointmentStarttime);
+
+			Appointment appoint = null;
+			try {
+				appoint = query.getSingleResult();
+			} catch (NoResultException ex) {
+			}
+
+			return appoint;
+		} catch (Exception ex2) {
+			log.error("[getNextAppointmentById]: ", ex2);
+		}
+		return null;
+	}
+
+	public List<Appointment> searchAppointmentsByName(String name) {
+		try {
+
+			String hql = "select a from Appointment a "
+					+ "WHERE a.deleted false "
+					+ "AND a.title LIKE :appointmentName";
+
+			TypedQuery<Appointment> query = em.createQuery(hql,
+					Appointment.class);
+			query.setParameter("appointmentName", name);
+
+			List<Appointment> listAppoints = query.getResultList();
+
+			return listAppoints;
+		} catch (Exception ex2) {
+			log.error("[searchAppointmentsByName]: ", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * @author becherer
+	 * @param userId
+	 * @return
+	 */
+	public List<Appointment> getTodaysAppointmentsbyRangeAndMember(Long userId) {
+		log.debug("getAppoitmentbyRangeAndMember : UserID - " + userId);
+
+		TimeZone timeZone = timezoneUtil.getTimeZone(usersDao.get(userId));
+
+		Calendar startCal = Calendar.getInstance(timeZone);
+		startCal.set(Calendar.MINUTE, 0);
+		startCal.set(Calendar.HOUR, 0);
+		startCal.set(Calendar.SECOND, 1);
+
+		Calendar endCal = Calendar.getInstance(timeZone);
+		endCal.set(Calendar.MINUTE, 23);
+		endCal.set(Calendar.HOUR, 59);
+		endCal.set(Calendar.SECOND, 59);
+
+		TypedQuery<Appointment> query = em.createNamedQuery("appointmentsInRangeByUser", Appointment.class);
+
+		query.setParameter("userId", userId);
+
+		query.setParameter("starttime", startCal.getTime());
+		query.setParameter("endtime", endCal.getTime());
+
+		List<Appointment> listAppoints = query.getResultList();
+		return listAppoints;
+	}
+
+	// ---------------------------------------------------------------------------------------------
+
+	public Appointment getAppointmentByRoomId(Long user_id, Long rooms_id) {
+		try {
+
+			String hql = "select a from Appointment a "
+					+ "WHERE a.deleted <> :deleted "
+					+ "AND a.owner.user_id = :user_id "
+					+ "AND a.room.rooms_id = :rooms_id ";
+
+			TypedQuery<Appointment> query = em.createQuery(hql,
+					Appointment.class);
+
+			query.setParameter("deleted", true);
+			query.setParameter("user_id", user_id);
+			query.setParameter("rooms_id", rooms_id);
+
+			List<Appointment> listAppoints = query.getResultList();
+
+			if (listAppoints.size() > 0) {
+				return listAppoints.get(0);
+			}
+
+			return null;
+
+		} catch (Exception e) {
+			log.error("[getAppointmentByRoomId]", e);
+			return null;
+		}
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentReminderTypDao.java b/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentReminderTypDao.java
new file mode 100644
index 0000000..45b0021
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentReminderTypDao.java
@@ -0,0 +1,176 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.calendar;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.dao.label.FieldLanguagesValuesDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.calendar.AppointmentReminderTyps;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class AppointmentReminderTypDao {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			AppointmentReminderTypDao.class,
+			OpenmeetingsVariables.webAppRootKey);
+
+	@PersistenceContext
+	private EntityManager em;
+	@Autowired
+	private UserDao usersDao;
+	@Autowired
+	private FieldLanguagesValuesDao fieldLanguagesValuesDao;
+
+	public AppointmentReminderTyps get(Long typId) {
+		try {
+			log.debug("AppointmentReminderTypById: " + typId);
+
+			String hql = "select app from AppointmentReminderTyps app "
+					+ "WHERE app.deleted <> :deleted "
+					+ "AND app.typId = :typId";
+
+			TypedQuery<AppointmentReminderTyps> query = em.createQuery(hql, AppointmentReminderTyps.class);
+			query.setParameter("deleted", true);
+			query.setParameter("typId", typId);
+
+			AppointmentReminderTyps appointmentReminderTyps = null;
+			try {
+				appointmentReminderTyps = query.getSingleResult();
+			} catch (NoResultException ex) {
+			}
+
+			return appointmentReminderTyps;
+		} catch (Exception ex2) {
+			log.error("[getAppointmentReminderTypsById]: " + ex2);
+		}
+		return null;
+	}
+
+	public Long updateAppointmentReminderTyps(Long typId, String name) {
+		try {
+
+			AppointmentReminderTyps ac = this
+					.get(typId);
+
+			ac.setName(name);
+			ac.setUpdatetime(new Date());
+
+			if (ac.getTypId() == null) {
+				em.persist(ac);
+			} else {
+				if (!em.contains(ac)) {
+					em.merge(ac);
+				}
+			}
+
+			return typId;
+		} catch (Exception ex2) {
+			log.error("[updateAppointmentReminderTyps]: ", ex2);
+		}
+		return null;
+	}
+
+	public Long addAppointmentReminderTyps(Long user_id, String name, long fieldvalues_id) {
+		try {
+
+			AppointmentReminderTyps ac = new AppointmentReminderTyps();
+
+			ac.setName(name);
+			ac.setStarttime(new Date());
+			ac.setDeleted(false);
+			ac.setUser(usersDao.get(user_id));
+			ac.setFieldvalues_id(fieldvalues_id);
+
+			ac = em.merge(ac);
+			Long category_id = ac.getTypId();
+
+			return category_id;
+		} catch (Exception ex2) {
+			log.error("[addAppointmentReminderTyps]: ", ex2);
+		}
+		return null;
+	}
+
+	public Long deleteAppointmentReminderTyp(Long typId) {
+		try {
+
+			AppointmentReminderTyps ac = this
+					.get(typId);
+
+			log.debug("ac: " + ac);
+
+			if (ac == null) {
+				log.debug("Already deleted / Could not find: " + typId);
+				return typId;
+			}
+			ac.setUpdatetime(new Date());
+			ac.setDeleted(true);
+
+			if (ac.getTypId() == null) {
+				em.persist(ac);
+			} else {
+				if (!em.contains(ac)) {
+					em.merge(ac);
+				}
+			}
+
+			return typId;
+		} catch (Exception ex2) {
+			log.error("[deleteAppointmentReminderTyp]: " + ex2);
+		}
+		return null;
+	}
+
+	public List<AppointmentReminderTyps> getAppointmentReminderTypList(long language_id) {
+		log.debug("getAppointmenetReminderTypList");
+
+		try {
+
+			String hql = "select a from AppointmentReminderTyps a "
+					+ "WHERE a.deleted <> :deleted ";
+
+			TypedQuery<AppointmentReminderTyps> query = em.createQuery(hql, AppointmentReminderTyps.class);
+			query.setParameter("deleted", true);
+
+			List<AppointmentReminderTyps> listAppointmentReminderTyp = query
+					.getResultList();
+			for (AppointmentReminderTyps ti : listAppointmentReminderTyp) {
+				ti.setLabel(fieldLanguagesValuesDao.get(
+						ti.getFieldvalues_id(), language_id));
+			}
+
+			return listAppointmentReminderTyp;
+		} catch (Exception ex2) {
+			log.error("[getAppointmentReminderTypList]: " + ex2);
+		}
+		return null;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/calendar/IInvitationManager.java b/src/db/java/org/apache/openmeetings/db/dao/calendar/IInvitationManager.java
new file mode 100644
index 0000000..663496f
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/calendar/IInvitationManager.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.calendar;
+
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.db.entity.calendar.MeetingMember;
+
+public interface IInvitationManager {
+	enum MessageType {
+		Create
+		, Update
+		, Cancel
+	}
+	
+	void processInvitation(Appointment a, MeetingMember member, MessageType type);
+	
+	void processInvitation(Appointment a, MeetingMember mm, MessageType type, boolean sendMail);
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/calendar/MeetingMemberDao.java b/src/db/java/org/apache/openmeetings/db/dao/calendar/MeetingMemberDao.java
new file mode 100644
index 0000000..cfe7521
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/calendar/MeetingMemberDao.java
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.calendar;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.PersistenceContext;
+
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.calendar.MeetingMember;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class MeetingMemberDao {
+	private static final Logger log = Red5LoggerFactory.getLogger(MeetingMemberDao.class, webAppRootKey);
+	@PersistenceContext
+	private EntityManager em;
+	@Autowired
+	private AppointmentDao appointmentDao;
+	@Autowired
+	private UserDao usersDao;
+
+	public MeetingMember get(Long meetingMemberId) {
+		MeetingMember meetingMember = null;
+		try {
+			meetingMember = em.createNamedQuery("getMeetingMemberById", MeetingMember.class)
+					.setParameter("id", meetingMemberId).getSingleResult();
+		} catch (NoResultException ex) {
+		}
+
+		return meetingMember;
+	}
+
+	public List<MeetingMember> getMeetingMembers() {
+		return em.createNamedQuery("getMeetingMembers", MeetingMember.class).getResultList();
+	}
+
+	public Set<Long> getMeetingMemberIdsByAppointment(Long appointmentId) {
+		log.debug("getMeetingMemberIdsByAppointment: " + appointmentId);
+
+		return new HashSet<Long>(em.createNamedQuery("getMeetingMemberIdsByAppointment", Long.class)
+				.setParameter("id", appointmentId)
+				.getResultList());
+	}
+	
+	/**
+	 * Updating MeetingMember
+	 */
+	// -------------------------------------------------------------------------------
+	public MeetingMember update(MeetingMember meetingMember) {
+		if (meetingMember.getId() == null) {
+			em.persist(meetingMember);
+		} else {
+			if (!em.contains(meetingMember)) {
+				meetingMember = em.merge(meetingMember);
+			}
+		}
+		return meetingMember;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java b/src/db/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java
new file mode 100644
index 0000000..14f27c4
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java
@@ -0,0 +1,415 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.file;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.entity.file.FileExplorerItem;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @author sebastianwagner
+ * 
+ */
+@Transactional
+public class FileExplorerItemDao {
+
+    private static final Logger log = Red5LoggerFactory.getLogger(
+            FileExplorerItemDao.class,
+            OpenmeetingsVariables.webAppRootKey);
+	@PersistenceContext
+	private EntityManager em;
+
+    public Long add(String fileName, String fileHash,
+            Long parentFileExplorerItemId, Long ownerId, Long room_id,
+            Long insertedBy, Boolean isFolder, Boolean isImage,
+            Boolean isPresentation, String wmlFilePath,
+            Boolean isStoredWmlFile, Boolean isChart,
+            Long externalFileId, String externalType) {
+        log.debug(".add(): adding file " + fileName+ " roomID: "+room_id);
+        try {
+            FileExplorerItem fileItem = new FileExplorerItem();
+            fileItem.setFileName(fileName);
+            fileItem.setFileHash(fileHash);
+            fileItem.setDeleted(false);
+            fileItem.setParentFileExplorerItemId(parentFileExplorerItemId);
+            fileItem.setOwnerId(ownerId);
+            fileItem.setRoom_id(room_id);
+            fileItem.setInserted(new Date());
+            fileItem.setInsertedBy(insertedBy);
+            fileItem.setIsFolder(isFolder);
+            fileItem.setIsImage(isImage);
+            fileItem.setIsPresentation(isPresentation);
+            fileItem.setUpdated(new Date());
+            fileItem.setWmlFilePath(wmlFilePath);
+            fileItem.setIsStoredWmlFile(isStoredWmlFile);
+            fileItem.setIsChart(isChart);
+            fileItem.setExternalFileId(externalFileId);
+            fileItem.setExternalType(externalType);
+
+			fileItem = em.merge(fileItem);
+			Long fileItemId = fileItem.getFileExplorerItemId();
+
+            log.debug(".add(): file " + fileName + " added as " + fileItemId);
+            return fileItemId;
+        } catch (Exception ex2) {
+            log.error(".add(): ", ex2);
+        }
+        return null;
+    }
+    
+    public Long addFileExplorerItem(FileExplorerItem fileItem) {
+        try {
+
+			fileItem = em.merge(fileItem);
+			Long fileItemId = fileItem.getFileExplorerItemId();
+
+            return fileItemId;
+        } catch (Exception ex2) {
+            log.error("[addFileExplorerItem]", ex2);
+        }
+        return null;
+    }
+
+	public List<FileExplorerItem> getFileExplorerItemsByRoomAndOwner(
+            Long room_id, Long ownerId) {
+        log.debug(".getFileExplorerItemsByRoomAndOwner() started");
+        try {
+            String hql = "SELECT c FROM FileExplorerItem c "
+                    + "WHERE c.deleted <> :deleted "
+                    + "AND c.room_id = :room_id " + "AND c.ownerId = :ownerId "
+                    + "ORDER BY c.isFolder DESC, c.fileName ";
+
+			TypedQuery<FileExplorerItem> query = em.createQuery(hql, FileExplorerItem.class);
+			query.setParameter("deleted", true);
+			query.setParameter("room_id",room_id);
+			query.setParameter("ownerId",ownerId);
+			
+			List<FileExplorerItem> fileExplorerList = query.getResultList();
+
+            return fileExplorerList;
+        } catch (Exception ex2) {
+            log.error("[getFileExplorerItemsByRoomAndOwner]: ", ex2);
+        }
+        return null;
+    }
+
+    public FileExplorerItem[] getFileExplorerItemsByRoom(Long room_id,
+            Long parentFileExplorerItemId) {
+        log.debug("getFileExplorerItemsByRoom room_id :: "+room_id);
+        try {
+
+			String hql = "SELECT c FROM FileExplorerItem c " +
+					"WHERE c.deleted <> :deleted " +
+					"AND c.room_id = :room_id " +
+					"AND c.ownerId IS NULL " +
+					"AND c.parentFileExplorerItemId = :parentFileExplorerItemId " +
+					"ORDER BY c.isFolder DESC, c.fileName ";
+			
+			TypedQuery<FileExplorerItem> query = em.createQuery(hql, FileExplorerItem.class);
+			query.setParameter("deleted", true);
+			query.setParameter("room_id",room_id);
+			query.setParameter("parentFileExplorerItemId", parentFileExplorerItemId);
+			
+	        FileExplorerItem[] fileExplorerList = query.getResultList().toArray(new FileExplorerItem[0]);
+			
+			return fileExplorerList;
+        } catch (Exception ex2) {
+            log.error("[getFileExplorerRootItemsByRoom]: ", ex2);
+        }
+        return null;
+    }
+
+    public FileExplorerItem[] getFileExplorerItemsByOwner(Long ownerId,
+            Long parentFileExplorerItemId) {
+        log.debug(".getFileExplorerItemsByOwner() started");
+        try {
+
+            String hql = "SELECT c FROM FileExplorerItem c "
+                    + "WHERE c.deleted <> :deleted "
+                    + "AND c.ownerId = :ownerId "
+                    + "AND c.parentFileExplorerItemId = :parentFileExplorerItemId "
+                    + "ORDER BY c.isFolder DESC, c.fileName ";
+
+			TypedQuery<FileExplorerItem> query = em.createQuery(hql, FileExplorerItem.class);
+			query.setParameter("deleted", true);
+			query.setParameter("ownerId",ownerId);
+			query.setParameter("parentFileExplorerItemId", parentFileExplorerItemId);
+			
+            FileExplorerItem[] fileExplorerList = query.getResultList().toArray(new FileExplorerItem[0]);
+
+            return fileExplorerList;
+        } catch (Exception ex2) {
+            log.error("[getFileExplorerRootItemsByOwner]: ", ex2);
+        }
+        return null;
+    }
+
+    public FileExplorerItem[] getFileExplorerItemsByParent(
+            Long parentFileExplorerItemId) {
+        log.debug(".getFileExplorerItemsByParent() started");
+        try {
+
+            String hql = "SELECT c FROM FileExplorerItem c "
+                    + "WHERE c.deleted <> :deleted "
+                    + "AND c.parentFileExplorerItemId = :parentFileExplorerItemId "
+                    + "ORDER BY c.isFolder DESC, c.fileName ";
+
+			TypedQuery<FileExplorerItem> query = em.createQuery(hql, FileExplorerItem.class);
+			query.setParameter("deleted", true);
+			query.setParameter("parentFileExplorerItemId", parentFileExplorerItemId);
+			
+            FileExplorerItem[] fileExplorerList = query.getResultList().toArray(new FileExplorerItem[0]);
+
+            return fileExplorerList;
+        } catch (Exception ex2) {
+            log.error("[getFileExplorerRootItemsByOwner]: ", ex2);
+        }
+        return null;
+    }
+
+    public FileExplorerItem getFileExplorerItemsByHash(String hash) {
+        try {
+
+			TypedQuery<FileExplorerItem> query = em.createNamedQuery("getByHash", FileExplorerItem.class);
+			query.setParameter("fileHash", hash);
+			
+			FileExplorerItem fileExplorerList = null;
+			try {
+				fileExplorerList = query.getSingleResult();
+		    } catch (NoResultException ex) {
+		    }
+
+            return fileExplorerList;
+        } catch (Exception ex2) {
+            log.error("[getFileExplorerItemsById]: ", ex2);
+        }
+        return null;
+    }
+    
+    public FileExplorerItem getFileExplorerItemsById(Long fileExplorerItemId) {
+        try {
+
+			TypedQuery<FileExplorerItem> query = em.createNamedQuery("getById", FileExplorerItem.class);
+			query.setParameter("fileExplorerItemId", fileExplorerItemId);
+			
+			FileExplorerItem fileExplorerList = null;
+			try {
+				fileExplorerList = query.getSingleResult();
+		    } catch (NoResultException ex) {
+		    }
+
+            return fileExplorerList;
+        } catch (Exception ex2) {
+            log.error("[getFileExplorerItemsById]: ", ex2);
+        }
+        return null;
+    }
+    
+    public FileExplorerItem getFileExplorerItemsByExternalIdAndType(Long externalFileId, String externalType) {
+        log.debug(".getFileExplorerItemsByExternalIdAndType() started");
+
+        try {
+
+            String hql = "SELECT c FROM FileExplorerItem c "
+                    + "WHERE c.externalFileId = :externalFileId " +
+            		"AND c.externalType LIKE :externalType";
+
+			TypedQuery<FileExplorerItem> query = em.createQuery(hql, FileExplorerItem.class);
+			query.setParameter("externalFileId", externalFileId);
+			query.setParameter("externalType", externalType);
+			
+			FileExplorerItem fileExplorerList = null;
+			try {
+				fileExplorerList = query.getSingleResult();
+		    } catch (NoResultException ex) {
+		    }
+
+            return fileExplorerList;
+        } catch (Exception ex2) {
+            log.error("[getFileExplorerItemsByExternalIdAndType]: ", ex2);
+        }
+        return null;
+    }
+
+    public List<FileExplorerItem> getFileExplorerItems() {
+        log.debug(".getFileExplorerItems() started");
+
+        try {
+			TypedQuery<FileExplorerItem> query = em.createNamedQuery("getAllFiles", FileExplorerItem.class);
+
+            List<FileExplorerItem> fileExplorerList = query.getResultList();
+
+            return fileExplorerList;
+        } catch (Exception ex2) {
+            log.error("[getFileExplorerItems]: ", ex2);
+        }
+        return null;
+    }    
+
+    /**
+     * @param fileExplorerItemId
+     */
+    public void deleteFileExplorerItem(Long fileExplorerItemId) {
+        log.debug(".deleteFileExplorerItem() started");
+
+        try {
+
+            FileExplorerItem fId = this
+                    .getFileExplorerItemsById(fileExplorerItemId);
+
+            fId.setDeleted(true);
+            fId.setUpdated(new Date());
+
+			if (fId.getFileExplorerItemId() == 0) {
+				em.persist(fId);
+		    } else {
+		    	if (!em.contains(fId)) {
+		    		em.merge(fId);
+			    }
+			}
+        } catch (Exception ex2) {
+            log.error("[deleteFileExplorerItem]: ", ex2);
+        }
+    }
+    
+    public void deleteFileExplorerItemByExternalIdAndType(Long externalFilesid, String externalType) {
+        log.debug(".deleteFileExplorerItemByExternalIdAndType() started");
+
+        try {
+
+            FileExplorerItem fId = this
+                    .getFileExplorerItemsByExternalIdAndType(externalFilesid, externalType);
+
+            if (fId == null) {
+            	throw new Exception("externalFilesid: "+externalFilesid+" and externalType: "+externalType+" Not found");
+            }
+            
+            fId.setDeleted(true);
+            fId.setUpdated(new Date());
+
+			if (fId.getFileExplorerItemId() == 0) {
+				em.persist(fId);
+		    } else {
+		    	if (!em.contains(fId)) {
+		    		em.merge(fId);
+			    }
+			}
+        } catch (Exception ex2) {
+            log.error("[deleteFileExplorerItemByExternalIdAndType]: ", ex2);
+        }
+    }
+
+    /**
+     * @param fileExplorerItemId
+     * @param fileName
+     */
+    public void updateFileOrFolderName(Long fileExplorerItemId, String fileName) {
+        log.debug(".updateFileOrFolderName() started");
+
+        try {
+
+            FileExplorerItem fId = this
+                    .getFileExplorerItemsById(fileExplorerItemId);
+
+            fId.setFileName(fileName);
+            fId.setUpdated(new Date());
+
+			if (fId.getFileExplorerItemId() == 0) {
+				em.persist(fId);
+		    } else {
+		    	if (!em.contains(fId)) {
+		    		em.merge(fId);
+			    }
+			}
+        } catch (Exception ex2) {
+            log.error("[updateFileOrFolderName]: ", ex2);
+        }
+    }
+
+    public void updateFileOrFolder(FileExplorerItem fId) {
+        log.debug(".updateFileOrFolder() started");
+        try {
+            // fId.setUpdated(new Date());
+
+			if (fId.getFileExplorerItemId() == 0) {
+				em.persist(fId);
+		    } else {
+		    	if (!em.contains(fId)) {
+		    		em.merge(fId);
+			    }
+			}
+        } catch (Exception ex2) {
+            log.error("[updateFileOrFolder]: ", ex2);
+        }
+    }
+
+    /**
+     * @param fileExplorerItemId
+     * @param newParentFileExplorerItemId
+     * @param isOwner
+     */
+    public void moveFile(Long fileExplorerItemId,
+            Long parentFileExplorerItemId, Long room_id, Boolean isOwner,
+            Long ownerId) {
+        log.debug(".moveFile() started");
+        try {
+
+            FileExplorerItem fId = this
+                    .getFileExplorerItemsById(fileExplorerItemId);
+
+            fId.setParentFileExplorerItemId(parentFileExplorerItemId);
+
+            if (parentFileExplorerItemId == 0) {
+                if (isOwner) {
+                    // move to personal Folder
+                    fId.setOwnerId(ownerId);
+                } else {
+                    // move to public room folder
+                    fId.setOwnerId(null);
+                    fId.setRoom_id(room_id);
+                }
+            } else {
+                fId.setOwnerId(null);
+            }
+
+            fId.setUpdated(new Date());
+
+			if (fId.getFileExplorerItemId() == 0) {
+				em.persist(fId);
+		    } else {
+		    	if (!em.contains(fId)) {
+		    		em.merge(fId);
+			    }
+			}
+        } catch (Exception ex2) {
+            log.error("[updateFileOrFolderName]: ", ex2);
+        }
+    }
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/label/FieldLanguageDao.java b/src/db/java/org/apache/openmeetings/db/dao/label/FieldLanguageDao.java
new file mode 100644
index 0000000..0c95c0f
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/label/FieldLanguageDao.java
@@ -0,0 +1,140 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.label;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.entity.label.FieldLanguage;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 
+ * @author sebastianwagner
+ * 
+ */
+@Transactional
+public class FieldLanguageDao implements Serializable {
+
+	private static final long serialVersionUID = -2714490167956230305L;
+
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			FieldLanguageDao.class, OpenmeetingsVariables.webAppRootKey);
+
+	@PersistenceContext
+	private EntityManager em;
+
+	public long getNextAvailableId() {
+		TypedQuery<Long> q = em.createQuery("SELECT MAX(fl.language_id) from FieldLanguage fl", Long.class);
+		return q.getSingleResult() + 1;
+	}
+	
+	public FieldLanguage addLanguage(int langId, String langName, Boolean langRtl, String code) {
+		try {
+			FieldLanguage fl = new FieldLanguage();
+			fl.setLanguage_id((long)langId);
+			fl.setStarttime(new Date());
+			fl.setDeleted(false);
+			fl.setName(langName);
+			fl.setRtl(langRtl);
+			fl.setCode(code);
+
+			fl = em.merge(fl);
+
+			//Eagerly FETCH values list
+			TypedQuery<FieldLanguage> q = em.createQuery("select fl from FieldLanguage fl LEFT JOIN FETCH fl.languageValues WHERE fl.language_id = :langId", FieldLanguage.class);
+			q.setParameter("langId", langId);
+			List<FieldLanguage> results = q.getResultList();
+			
+			return results != null && !results.isEmpty() ? results.get(0) : null;
+		} catch (Exception ex2) {
+			log.error("[addLanguage]: ", ex2);
+		}
+		return null;
+	}
+
+	public void emptyFieldLanguage() {
+		try {
+			TypedQuery<FieldLanguage> q = em.createQuery("delete from FieldLanguage", FieldLanguage.class);
+			q.executeUpdate();
+		} catch (Exception ex2) {
+			log.error("[emptyFieldLanguage]: ", ex2);
+		}
+	}
+
+	public void delete(FieldLanguage fl) {
+		fl.setUpdatetime(new Date());
+		fl.setDeleted(true);
+		em.merge(fl);
+	}
+
+	public void updateLanguage(FieldLanguage fl) {
+		if (fl.getLanguage_id() == null) {
+			em.persist(fl);
+		} else {
+			if (!em.contains(fl)) {
+				em.merge(fl);
+			}
+		}
+	}
+
+	public FieldLanguage getFieldLanguageById(Long language_id) {
+		try {
+			String hql = "select c from FieldLanguage as c "
+					+ "WHERE c.deleted <> :deleted "
+					+ "AND c.language_id = :language_id";
+			TypedQuery<FieldLanguage> query = em.createQuery(hql, FieldLanguage.class);
+			query.setParameter("deleted", true);
+			query.setParameter("language_id", language_id);
+			FieldLanguage fl = null;
+			try {
+				fl = query.getSingleResult();
+			} catch (NoResultException ex) {
+			}
+			return fl;
+		} catch (Exception ex2) {
+			log.error("[getLanguageById]: ", ex2);
+		}
+		return null;
+	}
+
+	public List<FieldLanguage> getLanguages() {
+		try {
+			String hql = "select c from FieldLanguage as c "
+					+ "WHERE c.deleted <> :deleted ";
+			TypedQuery<FieldLanguage> query = em.createQuery(hql, FieldLanguage.class);
+			query.setParameter("deleted", true);
+			List<FieldLanguage> ll = query.getResultList();
+			return ll;
+		} catch (Exception ex2) {
+			log.error("[getLanguages]: ", ex2);
+		}
+		return null;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/label/FieldLanguagesValuesDao.java b/src/db/java/org/apache/openmeetings/db/dao/label/FieldLanguagesValuesDao.java
new file mode 100644
index 0000000..7c94e69
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/label/FieldLanguagesValuesDao.java
@@ -0,0 +1,187 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.db.dao.label;

+

+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAUT_LANG_KEY;

+

+import java.util.Date;

+import java.util.List;

+

+import javax.persistence.EntityManager;

+import javax.persistence.NoResultException;

+import javax.persistence.PersistenceContext;

+import javax.persistence.TypedQuery;

+

+import org.apache.openmeetings.db.dao.IDataProviderDao;

+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;

+import org.apache.openmeetings.db.entity.label.Fieldlanguagesvalues;

+import org.springframework.beans.factory.annotation.Autowired;

+import org.springframework.transaction.annotation.Transactional;

+

+/**

+ * 

+ * CRUD operations for {@link Fieldlanguagesvalues}

+ * 

+ * @author solomax, swagner

+ * 

+ */

+@Transactional

+public class FieldLanguagesValuesDao implements IDataProviderDao<Fieldlanguagesvalues> {

+	@PersistenceContext

+	private EntityManager em;

+	@Autowired

+	private ConfigurationDao configurationDao;

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see org.apache.openmeetings.data.OmDAO#get(int, int)

+	 */

+	public List<Fieldlanguagesvalues> get(int first, int count) {

+		return get(configurationDao.getConfValue(CONFIG_DEFAUT_LANG_KEY, Long.class, "1"), first, count);

+	}

+

+	public List<Fieldlanguagesvalues> get(String search, int start, int count, String sort) {

+		// TODO Auto-generated method stub

+		return null;

+	}

+	

+	public List<Fieldlanguagesvalues> get(Long language_id, String search, int start, int count, String sort) {

+		// TODO Auto-generated method stub

+		return null;

+	}

+	

+	/**

+	 * Advanced query to set the language id

+	 * 

+	 * @param language_id

+	 * @param first

+	 * @param count

+	 * @return

+	 */

+	public List<Fieldlanguagesvalues> get(Long language_id, int first, int count) {

+		// all Fieldlanguagesvalues in current Language

+		TypedQuery<Fieldlanguagesvalues> q = em.createNamedQuery(

+				"allFieldLanguageValues", Fieldlanguagesvalues.class);

+		q.setParameter("language_id", language_id);

+		q.setFirstResult(first);

+		q.setMaxResults(count);

+		return q.getResultList();

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see org.apache.openmeetings.data.OmDAO#get(long)

+	 */

+	public Fieldlanguagesvalues get(long id) {

+		TypedQuery<Fieldlanguagesvalues> q = em.createNamedQuery(

+				"getFieldLanguagesValuesById", Fieldlanguagesvalues.class);

+		q.setParameter("id", id);

+		Fieldlanguagesvalues flv = null;

+		try {

+			flv = q.getSingleResult();

+		} catch (NoResultException e) {

+

+		}

+		return flv;

+	}

+

+	public Fieldlanguagesvalues get(long fieldValuesId, long langId) {

+		TypedQuery<Fieldlanguagesvalues> q = em.createNamedQuery(

+				"getFieldLanguagesValuesByValueAndLang", Fieldlanguagesvalues.class);

+		q.setParameter("fieldValuesId", fieldValuesId);

+		q.setParameter("lang", langId);

+		Fieldlanguagesvalues flv = null;

+		try {

+			flv = q.getSingleResult();

+		} catch (NoResultException e) {

+		}

+		return flv;

+	}

+

+	public String getString(long fieldValuesId, long langId) {

+		Fieldlanguagesvalues v = get(fieldValuesId, langId);

+		return v == null ? null : v.getValue();

+	}

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see org.apache.openmeetings.data.OmDAO#count()

+	 */

+	public long count() {

+		TypedQuery<Long> q = em.createNamedQuery("getFieldCount", Long.class);

+		return q.getSingleResult();

+	}

+

+	public long count(String search) {

+		// TODO Auto-generated method stub

+		return 0;

+	}

+	

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see

+	 * org.apache.openmeetings.data.OmDAO#update(org.apache.openmeetings.persistence

+	 * .beans.OmEntity, long)

+	 */

+	public Fieldlanguagesvalues update(Fieldlanguagesvalues entity, Long userId) {

+		entity.setUpdatetime(new Date());

+		if (entity.getFieldlanguagesvalues_id() == null) {

+			em.persist(entity);

+		} else {

+			entity = em.merge(entity);

+		}

+		return entity;

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see

+	 * org.apache.openmeetings.data.OmDAO#delete(org.apache.openmeetings.persistence

+	 * .beans.OmEntity, long)

+	 */

+	public void delete(Fieldlanguagesvalues entity, Long userId) {

+		entity.setDeleted(true);

+		entity.setUpdatetime(new Date());

+		entity = em.merge(entity);

+	}

+

+	public List<Fieldlanguagesvalues> getMixedFieldValuesList(Long language_id) {

+		// all Fieldlanguagesvalues in current Language

+		TypedQuery<Fieldlanguagesvalues> q = em.createNamedQuery("allFieldLanguageValues", Fieldlanguagesvalues.class);

+		q.setParameter("language_id", language_id);

+		return q.getResultList();

+	}

+

+	public List<Fieldlanguagesvalues> getUntranslatedFieldValuesList(Long language_id) {

+		// all FieldValuesIds in current Language

+		TypedQuery<Long> q0 = em.createNamedQuery("allFieldValuesIds", Long.class);

+		q0.setParameter("language_id", language_id);

+		List<Long> translatedIds = q0.getResultList();

+		

+		// all not translated values from english

+		TypedQuery<Fieldlanguagesvalues> q1 = em.createNamedQuery("allNotTranslatedValues", Fieldlanguagesvalues.class);

+		q1.setParameter("id_list", translatedIds);

+

+		return q1.getResultList();

+	}

+}

diff --git a/src/db/java/org/apache/openmeetings/db/dao/label/FieldValueDao.java b/src/db/java/org/apache/openmeetings/db/dao/label/FieldValueDao.java
new file mode 100644
index 0000000..2159280
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/label/FieldValueDao.java
@@ -0,0 +1,155 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.db.dao.label;

+

+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAUT_LANG_KEY;

+

+import java.util.ArrayList;

+import java.util.Date;

+import java.util.List;

+

+import javax.persistence.EntityManager;

+import javax.persistence.PersistenceContext;

+import javax.persistence.TypedQuery;

+

+import org.apache.openmeetings.db.dao.IDataProviderDao;

+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;

+import org.apache.openmeetings.db.entity.label.Fieldlanguagesvalues;

+import org.apache.openmeetings.db.entity.label.Fieldvalues;

+import org.apache.openmeetings.util.DaoHelper;

+import org.springframework.beans.factory.annotation.Autowired;

+import org.springframework.transaction.annotation.Transactional;

+

+@Transactional

+public class FieldValueDao implements IDataProviderDao<Fieldvalues> {

+	public final static String[] searchFields = {"value", "fieldvalues.name"};

+	

+	@PersistenceContext

+	private EntityManager em;

+	@Autowired

+	private ConfigurationDao configurationDao;

+	@Autowired

+	private FieldLanguagesValuesDao flvDaoImpl;

+

+	private Long getDefaultLanguage() {

+		return configurationDao.getConfValue(CONFIG_DEFAUT_LANG_KEY, Long.class, "1");

+	}

+	

+	public Fieldvalues get(long id) {

+		TypedQuery<Fieldvalues> q = em.createNamedQuery("getFieldByIdAndLanguage", Fieldvalues.class);

+		q.setParameter("id", id);

+		List<Fieldvalues> l = q.getResultList();

+		return l == null || l.isEmpty() ? null : l.get(0);

+	}

+

+	public List<Fieldvalues> get(int start, int count) {

+		return get(getDefaultLanguage(), start, count);

+	}

+

+	public List<Fieldvalues> get(String search, int start, int count, String sort) {

+		return get(getDefaultLanguage(), search, start, count, sort);

+	}

+	

+	public List<Fieldvalues> get(Long language_id, String search, int start, int count, String sort) {

+		String sql = DaoHelper.getSearchQuery(

+				"Fieldlanguagesvalues"

+				, "flv"

+				, search

+				, true

+				, false

+				, "flv.fieldvalues.deleted = false AND flv.language_id = :lang"

+				, sort

+				, searchFields);

+		TypedQuery<Fieldlanguagesvalues> q = em.createQuery(sql, Fieldlanguagesvalues.class);

+		q.setParameter("lang", language_id);

+		q.setFirstResult(start);

+		q.setMaxResults(count);

+		

+		//now lets create the list of Fieldvalues

+		List<Fieldlanguagesvalues> flvList = q.getResultList();

+		List<Fieldvalues> r = new ArrayList<Fieldvalues>(flvList.size());

+		for (Fieldlanguagesvalues flv : flvList) {

+			Fieldvalues fv = flv.getFieldvalues();

+			fv.setFieldlanguagesvalue(flv);

+			r.add(fv);

+		}

+		return r;

+	}

+	

+	public List<Fieldvalues> get(Long language_id, int start, int count) {

+		TypedQuery<Fieldvalues> q = em.createNamedQuery("getFieldByLanguage", Fieldvalues.class);

+		//q.setParameter("lang", language_id); //FIXME commented for now

+		q.setFirstResult(start);

+		q.setMaxResults(count);

+		List<Fieldvalues> result = q.getResultList();

+		for (Fieldvalues fv : result) {

+			//FIXME ineffective !!!!!!!!!!!!!!!!!!!!

+			Fieldlanguagesvalues flv = flvDaoImpl.get(fv.getFieldvalues_id(), language_id);

+			if (flv == null) {

+				flv = new Fieldlanguagesvalues();

+				flv.setLanguage_id(language_id);

+				flv.setFieldvalues(fv);

+			}

+			fv.setFieldlanguagesvalue(flv);

+		}

+		return result;

+	}

+

+	public long count() {

+		TypedQuery<Long> q = em.createNamedQuery("getFieldCount", Long.class);

+		return q.getSingleResult();

+	}

+

+	public long count(String search) {

+		return count(getDefaultLanguage(), search);

+	}

+	

+	public long count(Long language_id, String search) {

+		String sql = DaoHelper.getSearchQuery(

+				"Fieldlanguagesvalues"

+				, "flv"

+				, search

+				, true

+				, true

+				, "flv.fieldvalues.deleted = false AND flv.language_id = :lang"

+				, null

+				, searchFields);

+		TypedQuery<Long> q = em.createQuery(sql, Long.class);

+		q.setParameter("lang", language_id);

+		return q.getSingleResult();

+	}

+	

+	public Fieldvalues update(Fieldvalues entity, Long userId) {

+		entity.setDeleted(false);

+		if (entity.getFieldvalues_id() == null) {

+			entity.setFieldvalues_id(count() + 1);

+			entity.setStarttime(new Date());

+			em.persist(entity);

+		} else {

+			entity = em.merge(entity);

+		}

+		return entity;

+	}

+

+	public void delete(Fieldvalues entity, Long userId) {

+		// TODO Auto-generated method stub

+		

+	}

+

+}

diff --git a/src/db/java/org/apache/openmeetings/db/dao/log/ConferenceLogDao.java b/src/db/java/org/apache/openmeetings/db/dao/log/ConferenceLogDao.java
new file mode 100644
index 0000000..dbead7a
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/log/ConferenceLogDao.java
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.log;
+
+import java.util.Date;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import org.apache.openmeetings.db.entity.log.ConferenceLog;
+import org.apache.openmeetings.db.entity.log.ConferenceLogType;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class ConferenceLogDao {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(ConferenceLogDao.class, OpenmeetingsVariables.webAppRootKey);
+	@PersistenceContext
+	private EntityManager em;
+	@Autowired
+	private ConferenceLogTypeDao conferenceLogTypeDao;
+
+	public Long addConferenceLog(String eventType, Long userId, String streamid, 
+			Long room_id, String userip, String scopeName, 
+			String externalUserId, String externalUserType, String email,
+			String firstname, String lastname) {
+		try {
+			
+			ConferenceLogType confLogType = conferenceLogTypeDao.getConferenceLogTypeByEventName(eventType);
+			if (confLogType == null) {
+				conferenceLogTypeDao.addConferenceLogType(eventType);
+				confLogType = conferenceLogTypeDao.getConferenceLogTypeByEventName(eventType);
+			}
+			
+			ConferenceLog confLog = new ConferenceLog();
+			confLog.setConferenceLogType(confLogType);
+			confLog.setInserted(new Date());
+			confLog.setUserId(userId);
+			confLog.setStreamid(streamid);
+			confLog.setScopeName(scopeName);
+			confLog.setRoom_id(room_id);
+			confLog.setUserip(userip);
+			confLog.setExternalUserId(externalUserId);
+			confLog.setExternalUserType(externalUserType);
+			confLog.setFirstname(firstname);
+			confLog.setLastname(lastname);
+			confLog.setEmail(email);
+			
+			confLog = em.merge(confLog);
+			Long confLogId = confLog.getConferenceLogId();
+
+			return confLogId;
+		} catch (Exception ex2) {
+			log.error("[addConferenceLog]: ",ex2);
+		}
+		return null;
+	}
+	
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/log/ConferenceLogTypeDao.java b/src/db/java/org/apache/openmeetings/db/dao/log/ConferenceLogTypeDao.java
new file mode 100644
index 0000000..22472ae
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/log/ConferenceLogTypeDao.java
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.log;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.entity.log.ConferenceLogType;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class ConferenceLogTypeDao {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(ConferenceLogTypeDao.class, OpenmeetingsVariables.webAppRootKey);
+	@PersistenceContext
+	private EntityManager em;
+
+	public Long addConferenceLogType(String eventType) {
+		try {
+			ConferenceLogType confLogType = new ConferenceLogType();
+			confLogType.setEventType(eventType);
+			confLogType.setInserted(new Date());
+			confLogType = em.merge(confLogType);
+			return confLogType.getConferenceLogTypeId();
+		} catch (Exception ex2) {
+			log.error("[addConferenceLogType]: ", ex2);
+		}
+		return null;
+	}
+	
+	public ConferenceLogType getConferenceLogTypeByEventName(String eventType) {
+		try {
+			TypedQuery<ConferenceLogType> query = em.createNamedQuery("getConferenceLogTypeByEventName", ConferenceLogType.class);
+			query.setParameter("eventType",eventType);
+			
+			//Seems like this does throw an error sometimes cause it does not return a unique Result
+			//ConferenceLogType confLogType = (ConferenceLogType) query.getSingleResult();
+			List<ConferenceLogType> confLogTypes = query.getResultList();
+			if (confLogTypes != null && confLogTypes.size() > 0) {
+				return confLogTypes.get(0);
+			}
+		} catch (Exception ex2) {
+			log.error("[getConferenceLogTypeByEventName]: ", ex2);
+		}
+		return null;
+	}
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java b/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java
new file mode 100644
index 0000000..143f88c
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingDao.java
@@ -0,0 +1,354 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.record;
+
+import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.OGG_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.getMp4Recording;
+import static org.apache.openmeetings.util.OmFileHelper.getOggRecording;
+import static org.apache.openmeetings.util.OmFileHelper.getRecording;
+import static org.apache.openmeetings.util.OmFileHelper.isRecordingExists;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.dto.file.RecordingContainerData;
+import org.apache.openmeetings.db.dto.file.RecordingObject;
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.openmeetings.db.entity.record.FlvRecording.Status;
+import org.apache.openmeetings.db.entity.user.Organisation_Users;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @author sebastianwagner
+ * 
+ */
+@Transactional
+public class FlvRecordingDao {
+	
+	private static final Logger log = Red5LoggerFactory.getLogger(FlvRecordingDao.class, webAppRootKey);
+	
+	@PersistenceContext
+	private EntityManager em;
+	@Autowired
+	private UserDao userDao;
+
+	public FlvRecording get(Long flvRecordingId) {
+		try {
+			TypedQuery<FlvRecording> query = em.createNamedQuery("getRecordingById", FlvRecording.class);
+			query.setParameter("id", flvRecordingId);
+
+			FlvRecording flvRecording = null;
+			try {
+				flvRecording = query.getSingleResult();
+			} catch (NoResultException ex) {
+			}
+			return flvRecording;
+		} catch (Exception ex2) {
+			log.error("[getFlvRecordingById]: ", ex2);
+		}
+		return null;
+	}
+
+	public FlvRecording getRecordingByHash(String hash) {
+		try {
+			TypedQuery<FlvRecording> query = em.createNamedQuery("getRecordingByHash", FlvRecording.class);
+			query.setParameter("fileHash", hash);
+
+			try {
+				return query.getSingleResult();
+			} catch (NoResultException ex) {
+				// noop
+			}
+		} catch (Exception ex2) {
+			log.error("[getRecordingByHash]: ", ex2);
+		}
+		return null;
+	}
+
+	public List<FlvRecording> getFlvRecordings() {
+		try {
+			return em.createQuery("SELECT c FROM FlvRecording c WHERE c.deleted = false", FlvRecording.class)
+					.getResultList();
+		} catch (Exception ex2) {
+			log.error("[getFlvRecordings]: ", ex2);
+		}
+		return null;
+	}
+
+	public List<RecordingObject> getFlvRecordingByExternalUserId(String externalUserId, String externalUserType) {
+		try {
+			log.debug("getFlvRecordingByExternalUserId :externalUserId: {}; externalType: {}", externalUserId, externalUserType);
+
+			TypedQuery<RecordingObject> query = em.createNamedQuery("getRecordingsByExternalUser", RecordingObject.class);
+			query.setParameter("externalUserId", externalUserId);
+			query.setParameter("externalUserType", externalUserType);
+
+			List<RecordingObject> flvRecordingList = query.getResultList();
+
+			log.debug("getFlvRecordingByExternalUserId :: " + flvRecordingList.size());
+
+			return flvRecordingList;
+		} catch (Exception ex2) {
+			log.error("[getFlvRecordingByExternalUserId]: ", ex2);
+		}
+		return null;
+	}
+
+	public List<FlvRecording> getFlvRecordingByExternalRoomTypeAndCreator(String externalRoomType, Long insertedBy) {
+		try {
+
+			log.debug("getFlvRecordingByExternalRoomType :externalRoomType: " + externalRoomType);
+
+			String hql = "SELECT c FROM FlvRecording c, Room r WHERE c.room_id = r.rooms_id "
+					+ "AND r.externalRoomType LIKE :externalRoomType AND c.insertedBy LIKE :insertedBy "
+					+ "AND c.deleted = false";
+
+			TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class);
+			query.setParameter("externalRoomType", externalRoomType);
+			query.setParameter("insertedBy", insertedBy);
+			query.setParameter("deleted", true);
+
+			List<FlvRecording> flvRecordingList = query.getResultList();
+
+			log.debug("getFlvRecordingByExternalRoomType :: " + flvRecordingList.size());
+
+			return flvRecordingList;
+		} catch (Exception ex2) {
+			log.error("[getFlvRecordingByExternalRoomType]: ", ex2);
+		}
+		return null;
+	}
+
+	public List<FlvRecording> getAllFlvRecordings() {
+		try {
+			String hql = "SELECT c FROM FlvRecording c LEFT JOIN FETCH c.flvRecordingMetaData ORDER BY c.flvRecordingId";
+
+			TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class);
+
+			return query.getResultList();
+		} catch (Exception ex2) {
+			log.error("[getFlvRecordings]: ", ex2);
+		}
+		return null;
+	}
+
+	public List<FlvRecording> getFlvRecordingByExternalRoomType(String externalRoomType) {
+		try {
+
+			log.debug("getFlvRecordingByExternalRoomType :externalRoomType: " + externalRoomType);
+
+			String hql = "SELECT c FROM FlvRecording c, Room r " + "WHERE c.room_id = r.rooms_id "
+					+ "AND r.externalRoomType LIKE :externalRoomType " + "AND c.deleted <> :deleted ";
+
+			TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class);
+			query.setParameter("externalRoomType", externalRoomType);
+			query.setParameter("deleted", true);
+
+			List<FlvRecording> flvRecordingList = query.getResultList();
+
+			log.debug("getFlvRecordingByExternalRoomType :: " + flvRecordingList.size());
+
+			return flvRecordingList;
+		} catch (Exception ex2) {
+			log.error("[getFlvRecordingByExternalRoomType]: ", ex2);
+		}
+		return null;
+	}
+
+	public List<FlvRecording> getFlvRecordingRootByPublic(Long orgId) {
+		TypedQuery<FlvRecording> q = em.createNamedQuery(orgId == null ? "getRecordingsPublic" : "getRecordingsByOrganization", FlvRecording.class);
+		if (orgId != null) {
+			q.setParameter("organization_id", orgId);
+		}
+		return q.getResultList();
+	}
+
+	public List<FlvRecording> getFlvRecordingRootByOwner(Long ownerId) {
+		return em.createNamedQuery("getRecordingsByOwner", FlvRecording.class).setParameter("ownerId", ownerId).getResultList();
+	}
+
+	public List<FlvRecording> getFlvRecordingByRoomId(Long room_id) {
+		try {
+
+			String hql = "SELECT c FROM FlvRecording c " + "WHERE c.deleted <> :deleted " + "AND c.room_id = :room_id "
+					+ "ORDER BY c.folder DESC, c.fileName ";
+
+			TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class);
+			query.setParameter("deleted", true);
+			query.setParameter("room_id", room_id);
+
+			List<FlvRecording> flvRecordingList = query.getResultList();
+
+			return flvRecordingList;
+		} catch (Exception ex2) {
+			log.error("[getFlvRecordingByOwner]: ", ex2);
+		}
+		return null;
+	}
+
+	public List<FlvRecording> getFlvRecordingByParent(Long parentFileExplorerItemId) {
+		try {
+
+			String hql = "SELECT c FROM FlvRecording c " + "WHERE c.deleted <> :deleted "
+					+ "AND c.parentFileExplorerItemId = :parentFileExplorerItemId "
+					+ "ORDER BY c.folder DESC, c.fileName ";
+
+			TypedQuery<FlvRecording> query = em.createQuery(hql, FlvRecording.class);
+			query.setParameter("deleted", true);
+			query.setParameter("parentFileExplorerItemId", parentFileExplorerItemId);
+
+			List<FlvRecording> flvRecordingList = query.getResultList();
+
+			return flvRecordingList;
+		} catch (Exception ex2) {
+			log.error("[getFlvRecordingByParent]: ", ex2);
+		}
+		return null;
+	}
+
+	public void updateFlvRecordingEndTime(Long flvRecordingId, Date recordEnd, Long organization_id) {
+		try {
+
+			FlvRecording fId = get(flvRecordingId);
+
+			fId.setProgressPostProcessing(0);
+			fId.setRecordEnd(recordEnd);
+			fId.setOrganization_id(organization_id);
+
+			update(fId);
+		} catch (Exception ex2) {
+			log.error("[deleteFileExplorerItem]: ", ex2);
+		}
+	}
+
+	/**
+	 * @param fileExplorerItemId
+	 */
+	public boolean delete(Long flvRecordingId) {
+		try {
+
+			FlvRecording f = get(flvRecordingId);
+			return delete(f);
+		} catch (Exception ex2) {
+			log.error("[delete]: ", ex2);
+		}
+
+		return false;
+	}
+
+	public boolean delete(FlvRecording f) {
+		if (f == null || f.getFlvRecordingId() == 0) {
+			return false;
+		}
+		f.setDeleted(true);
+		update(f);
+		return true;
+	}
+	
+	public FlvRecording update(FlvRecording f) {
+		try {
+			if (f.getFlvRecordingId() == 0) {
+				f.setInserted(new Date());
+				em.persist(f);
+			} else {
+				f.setUpdated(new Date());
+				if (!em.contains(f)) {
+					f = em.merge(f);
+				}
+			}
+
+		} catch (Exception ex2) {
+			log.error("[update]: ", ex2);
+		}
+		return f;
+	}
+
+	public void resetProcessingStatus() {
+		em.createNamedQuery("resetRecordingProcessingStatus").setParameter("error", Status.ERROR).setParameter("processing", Status.PROCESSING).executeUpdate();
+	}
+	
+	public RecordingContainerData getRecordingContainerData(long userId) {
+		try {
+			RecordingContainerData containerData = new RecordingContainerData();
+	
+			// User Home Recordings
+			List<FlvRecording> homeFlvRecordings = getFlvRecordingRootByOwner(userId);
+			long homeFileSize = 0;
+	
+			for (FlvRecording homeFlvRecording : homeFlvRecordings) {
+				homeFileSize += getRecordingSize(homeFlvRecording);
+			}
+	
+			containerData.setUserHomeSize(homeFileSize);
+			
+			// Public Recordings
+			long publicFileSize = 0;
+			
+			//get all organizations the user can view
+			for (Organisation_Users ou : userDao.get(userId).getOrganisation_users()) {
+				List<FlvRecording>publicFlvRecordings = getFlvRecordingRootByPublic(ou.getOrganisation().getOrganisation_id());
+				//get sizes
+				for (FlvRecording publicFlvRecording : publicFlvRecordings) {
+					publicFileSize += getRecordingSize(publicFlvRecording);
+				}
+			}
+			containerData.setPublicFileSize(publicFileSize);
+
+			return containerData;
+		} catch (Exception ex2) {
+			log.error("[getRecordingContainerData]: ", ex2);
+		}
+		return null;
+	}
+	
+	private long getRecordingSize(FlvRecording r) {
+		long size = 0;
+
+		if (isRecordingExists(r.getFileHash())) {
+			size += getRecording(r.getFileHash()).length();
+		}
+		if (isRecordingExists(r.getAlternateDownload())) {
+			size += getRecording(r.getAlternateDownload()).length();
+		}
+		if (isRecordingExists(r.getPreviewImage())) {
+			size += getRecording(r.getPreviewImage()).length();
+		}
+		if (isRecordingExists(r.getFileHash() + MP4_EXTENSION)) {
+			size += getMp4Recording(r.getFileHash()).length();
+		}
+		if (isRecordingExists(r.getFileHash() + OGG_EXTENSION)) {
+			size += getOggRecording(r.getFileHash()).length();
+		}
+		for (FlvRecording flvRecording : getFlvRecordingByParent(r.getFlvRecordingId())) {
+			size += getRecordingSize(flvRecording);
+		}
+		return size;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingLogDao.java b/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingLogDao.java
new file mode 100644
index 0000000..aa85beb
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingLogDao.java
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.record;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.openmeetings.db.entity.record.FlvRecordingLog;
+import org.apache.openmeetings.util.process.ConverterProcessResult;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class FlvRecordingLogDao {
+	private static final Logger log = Red5LoggerFactory.getLogger(FlvRecordingDao.class, webAppRootKey);
+	@PersistenceContext
+	private EntityManager em;
+	
+	public long countErrors(Long recordingId) {
+		return em.createNamedQuery("countErrorRecordingLogsByRecording", Long.class)
+				.setParameter("recId", recordingId).getSingleResult();
+	}	
+	
+	public List<FlvRecordingLog> getByRecordingId(Long recordingId) {
+		return em.createNamedQuery("getRecordingLogsByRecording", FlvRecordingLog.class)
+				.setParameter("recId", recordingId).getResultList();
+	}	
+	
+	public void deleteByRecordingId(Long flvRecordingId) {
+		try {
+			List<FlvRecordingLog> flvRecordingLogs = getByRecordingId(flvRecordingId);
+			
+			for (FlvRecordingLog flvRecordingLog : flvRecordingLogs) {
+				flvRecordingLog = em.find(FlvRecordingLog.class, flvRecordingLog.getFlvRecordingLogId());
+				em.remove(flvRecordingLog);
+			}
+			
+		} catch (Exception ex2) {
+			log.error("[deleteFLVRecordingLogByRecordingId] ", ex2);
+		}
+	}
+	
+	public Long addFLVRecordingLog(String msgType, FlvRecording flvRecording, ConverterProcessResult returnMap) {
+		try { 
+			FlvRecordingLog flvRecordingLog = new FlvRecordingLog();
+			flvRecordingLog.setInserted(new Date());
+			flvRecordingLog.setExitValue(returnMap.getExitValue());
+			flvRecordingLog.setFlvRecording(flvRecording);
+			flvRecordingLog.setFullMessage(returnMap.buildLogMessage());
+			flvRecordingLog.setMsgType(msgType);
+			
+			flvRecordingLog = em.merge(flvRecordingLog);
+			Long flvRecordingLogId = flvRecordingLog.getFlvRecordingLogId();
+			
+			return flvRecordingLogId;
+		} catch (Exception ex2) {
+			log.error("[addFLVRecordingLog]: ",ex2);
+		}
+		return -1L;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingMetaDataDao.java b/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingMetaDataDao.java
new file mode 100644
index 0000000..7c574b9
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingMetaDataDao.java
@@ -0,0 +1,216 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.record;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.entity.record.FlvRecordingMetaData;
+import org.apache.openmeetings.db.entity.record.FlvRecordingMetaData.Status;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class FlvRecordingMetaDataDao {
+	private static final Logger log = Red5LoggerFactory.getLogger(FlvRecordingMetaDataDao.class, webAppRootKey);
+	@PersistenceContext
+	private EntityManager em;
+	@Autowired
+	private FlvRecordingDao flvRecordingDao;
+
+	public FlvRecordingMetaData get(Long flvRecordingMetaDataId) {
+		try {
+			String hql = "SELECT c FROM FlvRecordingMetaData c WHERE c.flvRecordingMetaDataId = :flvRecordingMetaDataId";
+
+			TypedQuery<FlvRecordingMetaData> query = em.createQuery(hql, FlvRecordingMetaData.class);
+			query.setParameter("flvRecordingMetaDataId", flvRecordingMetaDataId);
+
+			FlvRecordingMetaData flvRecordingMetaData = null;
+			try {
+				flvRecordingMetaData = query.getSingleResult();
+			} catch (NoResultException ex) {
+			}
+
+			return flvRecordingMetaData;
+		} catch (Exception ex2) {
+			log.error("[getFlvRecordingMetaDataById]: ", ex2);
+		}
+		return null;
+	}
+
+	public List<FlvRecordingMetaData> getByRecording(Long flvRecordingId) {
+		try {
+
+			String hql = "SELECT c FROM FlvRecordingMetaData c WHERE c.flvRecording.flvRecordingId = :flvRecordingId "
+					+ "AND c.deleted = false ";
+
+			TypedQuery<FlvRecordingMetaData> query = em.createQuery(hql, FlvRecordingMetaData.class);
+			query.setParameter("flvRecordingId", flvRecordingId);
+
+			List<FlvRecordingMetaData> flvRecordingMetaDatas = query.getResultList();
+
+			return flvRecordingMetaDatas;
+
+		} catch (Exception ex2) {
+			log.error("[getFlvRecordingMetaDataByRecording]: ", ex2);
+		}
+		return null;
+	}
+
+	public List<FlvRecordingMetaData> getAudioMetaDataByRecording(Long flvRecordingId) {
+		try {
+			String hql = "SELECT c FROM FlvRecordingMetaData c WHERE c.flvRecording.flvRecordingId = :flvRecordingId "
+					+ "AND c.screenData = false AND c.streamStatus <> :none "
+					+ "AND (c.isAudioOnly = true OR (c.isAudioOnly = false AND c.isVideoOnly = false))";
+
+			TypedQuery<FlvRecordingMetaData> query = em.createQuery(hql, FlvRecordingMetaData.class);
+			query.setParameter("flvRecordingId", flvRecordingId);
+			query.setParameter("none", Status.NONE);
+
+			List<FlvRecordingMetaData> flvRecordingMetaDatas = query.getResultList();
+
+			return flvRecordingMetaDatas;
+		} catch (Exception ex2) {
+			log.error("[getAudioMetaDataByRecording]: ", ex2);
+		}
+		return null;
+	}
+
+	public FlvRecordingMetaData getScreenMetaDataByRecording(Long flvRecordingId) {
+		try {
+			String hql = "SELECT c FROM FlvRecordingMetaData c WHERE c.flvRecording.flvRecordingId = :flvRecordingId "
+					+ "AND c.screenData = true";
+
+			TypedQuery<FlvRecordingMetaData> query = em.createQuery(hql, FlvRecordingMetaData.class);
+			query.setParameter("flvRecordingId", flvRecordingId);
+
+			List<FlvRecordingMetaData> flvRecordingMetaDatas = query.getResultList();
+
+			if (flvRecordingMetaDatas.size() > 0) {
+				return flvRecordingMetaDatas.get(0);
+			}
+
+		} catch (Exception ex2) {
+			log.error("[getScreenMetaDataByRecording]: ", ex2);
+		}
+		return null;
+	}
+
+	public Long addFlvRecordingMetaData(Long flvRecordingId, String freeTextUserName, Date recordStart, Boolean isAudioOnly,
+			Boolean isVideoOnly, Boolean isScreenData, String streamName, Integer interiewPodId) {
+		try {
+
+			FlvRecordingMetaData flvRecordingMetaData = new FlvRecordingMetaData();
+
+			flvRecordingMetaData.setDeleted(false);
+
+			flvRecordingMetaData.setFlvRecording(flvRecordingDao.get(flvRecordingId));
+			flvRecordingMetaData.setFreeTextUserName(freeTextUserName);
+			flvRecordingMetaData.setInserted(new Date());
+
+			flvRecordingMetaData.setRecordStart(recordStart);
+
+			flvRecordingMetaData.setIsAudioOnly(isAudioOnly);
+			flvRecordingMetaData.setIsVideoOnly(isVideoOnly);
+			flvRecordingMetaData.setScreenData(isScreenData);
+
+			flvRecordingMetaData.setStreamName(streamName);
+
+			flvRecordingMetaData.setInteriewPodId(interiewPodId);
+
+			flvRecordingMetaData = em.merge(flvRecordingMetaData);
+			Long flvRecordingMetaDataId = flvRecordingMetaData.getFlvRecordingMetaDataId();
+
+			return flvRecordingMetaDataId;
+
+		} catch (Exception ex2) {
+			log.error("[addFlvRecordingMetaData]: ", ex2);
+		}
+		return null;
+	}
+
+	public Long addFlvRecordingMetaDataObj(FlvRecordingMetaData flvRecordingMetaData) {
+		try {
+
+			flvRecordingMetaData = em.merge(flvRecordingMetaData);
+			Long flvRecordingMetaDataId = flvRecordingMetaData.getFlvRecordingMetaDataId();
+
+			return flvRecordingMetaDataId;
+
+		} catch (Exception ex2) {
+			log.error("[addFlvRecordingMetaDataObj]: ", ex2);
+		}
+		return null;
+	}
+
+	public Long updateFlvRecordingMetaDataEndDate(Long flvRecordingMetaDataId, Date recordEnd) {
+		try {
+			FlvRecordingMetaData flvRecordingMetaData = get(flvRecordingMetaDataId);
+
+			flvRecordingMetaData.setRecordEnd(recordEnd);
+			
+			log.debug("updateFlvRecordingMetaDataEndDate :: Start Date :"+flvRecordingMetaData.getRecordStart());
+			log.debug("updateFlvRecordingMetaDataEndDate :: End Date :"+flvRecordingMetaData.getRecordEnd());
+			
+			this.update(flvRecordingMetaData);
+			
+			return flvRecordingMetaDataId;
+		} catch (Exception ex2) {
+			log.error("[updateFlvRecordingMetaDataEndDate]: ", ex2);
+		}
+		return null;
+	}
+
+	public Long updateFlvRecordingMetaDataInitialGap(Long flvRecordingMetaDataId, long initalGap) {
+		try {
+			FlvRecordingMetaData flvRecordingMetaData = get(flvRecordingMetaDataId);
+
+			flvRecordingMetaData.setInitialGapSeconds(Long.valueOf(initalGap).intValue());
+			this.update(flvRecordingMetaData);
+			return flvRecordingMetaDataId;
+		} catch (Exception ex2) {
+			log.error("[updateFlvRecordingMetaDataEndDate]: ", ex2);
+		}
+		return null;
+	}
+
+	public Long update(FlvRecordingMetaData flvRecordingMetaData) {
+		try {
+			if (flvRecordingMetaData.getFlvRecordingMetaDataId() == 0) {
+				em.persist(flvRecordingMetaData);
+			} else {
+				if (!em.contains(flvRecordingMetaData)) {
+					em.merge(flvRecordingMetaData);
+				}
+			}
+		} catch (Exception ex2) {
+			log.error("[updateFlvRecordingMetaData]: ", ex2);
+		}
+		return null;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingMetaDeltaDao.java b/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingMetaDeltaDao.java
new file mode 100644
index 0000000..bf89502
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/record/FlvRecordingMetaDeltaDao.java
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.record;
+
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.entity.record.FlvRecordingMetaDelta;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @author sebastianwagner
+ *
+ */
+@Transactional
+public class FlvRecordingMetaDeltaDao {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(FlvRecordingMetaDeltaDao.class,
+			OpenmeetingsVariables.webAppRootKey);
+	@PersistenceContext
+	private EntityManager em;
+	
+	public List<FlvRecordingMetaDelta> getFlvRecordingMetaDeltaByMetaId(Long flvRecordingMetaDataId) {
+		try { 
+			
+			String hql = "SELECT c FROM FlvRecordingMetaDelta c " +
+					"WHERE c.flvRecordingMetaDataId = :flvRecordingMetaDataId";
+			
+			TypedQuery<FlvRecordingMetaDelta> query = em.createQuery(hql, FlvRecordingMetaDelta.class);
+			query.setParameter("flvRecordingMetaDataId", flvRecordingMetaDataId);
+			
+			List<FlvRecordingMetaDelta> flvRecordingMetaDeltas = query.getResultList();
+			
+			return flvRecordingMetaDeltas;
+		} catch (Exception ex2) {
+			log.error("[getFlvRecordingMetaDeltaByMetaId]: ",ex2);
+		}
+		return null;
+	}
+	
+	
+	
+	public Long addFlvRecordingMetaDelta(FlvRecordingMetaDelta flvRecordingMetaDelta) {
+		try { 
+			
+			flvRecordingMetaDelta = em.merge(flvRecordingMetaDelta);
+			Long flvRecordingMetaDeltaId = flvRecordingMetaDelta.getFlvRecordingMetaDeltaId();
+			
+			log.debug("flvRecordingMetaDeltaId "+flvRecordingMetaDeltaId);
+			
+			return flvRecordingMetaDeltaId;
+		} catch (Exception ex2) {
+			log.error("[addFlvRecordingMetaDelta]: ",ex2);
+		}
+		return null;
+	}
+	
+	public Long updateFlvRecordingMetaDelta(FlvRecordingMetaDelta flvRecordingMetaDelta) {
+		try { 
+			if (flvRecordingMetaDelta.getFlvRecordingMetaDataId() == 0) {
+				em.persist(flvRecordingMetaDelta);
+		    } else {
+		    	if (!em.contains(flvRecordingMetaDelta)) {
+		    		em.merge(flvRecordingMetaDelta);
+			    }
+			}
+			
+			return flvRecordingMetaDelta.getFlvRecordingMetaDataId();
+		} catch (Exception ex2) {
+			log.error("[updateFlvRecordingMetaDelta]: ",ex2);
+		}
+		return null;
+	}	
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/room/ClientDao.java b/src/db/java/org/apache/openmeetings/db/dao/room/ClientDao.java
new file mode 100644
index 0000000..3a56399
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/room/ClientDao.java
@@ -0,0 +1,177 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.room;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.db.entity.server.Server;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * Persistence of client objects to database is only available if so configured!
+ * 
+ * @author sebawagner
+ *
+ */
+@Transactional
+public class ClientDao {
+	
+	@PersistenceContext
+	private EntityManager em;
+	
+	private static List<Long> EMPTY_LIST = new ArrayList<Long>(0);
+	
+	public void cleanAllClients() {
+		em.createNamedQuery("deleteAll").executeUpdate();
+	}
+
+	public void cleanClientsByServer(Server server) {
+		em.createNamedQuery("deleteClientsByServer").
+			setParameter("server", server).
+			executeUpdate();
+	}
+	
+	public Client add(Client entity) {
+		em.persist(entity);
+		return entity;
+	}
+	
+	public Client update(Client entity) {
+		em.merge(entity);
+		return entity;
+	}
+	
+	public void delete(Client entity) {
+		Query q = em.createNamedQuery("deletedById");
+		q.setParameter("id", entity.getId());
+		q.executeUpdate();
+	}
+	
+	public void removeClientByServerAndStreamId(Server server, String streamId) {
+		Query q = em.createNamedQuery("deletedByServerAndStreamId");
+		q.setParameter("server", server);
+		q.setParameter("streamid", streamId);
+		q.executeUpdate();
+	}
+	
+	public int countClients() {
+		return em.createNamedQuery("countClients", Long.class).getSingleResult().intValue();
+	}
+	
+	public int countClientsByServer(Server server) {
+		TypedQuery<Long> q = em.createNamedQuery("countClientsByServer", Long.class);
+		q.setParameter("server", server);
+		return q.getSingleResult().intValue();
+	}
+
+	public long countClientsByServerAndStreamId(Server server, String streamId) {
+		TypedQuery<Long> q = em.createNamedQuery("countClientsByServerAndStreamId", Long.class);
+		q.setParameter("streamid", streamId);
+		q.setParameter("server", server);
+		return q.getSingleResult();
+	}
+
+	/**
+	 * Query.getSingleResult would throw an error if result is null, 
+	 * see: http://stackoverflow.com/questions/2002993/jpa-getsingleresult-or-null
+	 * 
+	 * @param server
+	 * @param streamId
+	 * @return
+	 */
+	public Client getClientByServerAndStreamId(Server server, String streamId) {
+		TypedQuery<Client> q = em.createNamedQuery("getClientByServerAndStreamId", Client.class);
+		q.setParameter("streamid", streamId);
+		q.setParameter("server", server);
+		List<Client> ll = q.getResultList();
+		if (ll.size() == 1) {
+			return ll.get(0);
+		} else if (ll.size() == 0) {
+			return null;
+		}
+		throw new RuntimeException("more then one client was found streamId "+ streamId + " server "+server);
+	}
+
+	public List<Client> getClientsByPublicSIDAndServer(Server server, String publicSID) {
+		TypedQuery<Client> q = em.createNamedQuery("getClientsByPublicSIDAndServer", Client.class);
+		q.setParameter("server", server);
+		q.setParameter("publicSID", publicSID);
+		return q.getResultList();
+	}
+
+	public List<Client> getClientsByPublicSID(String publicSID) {
+		TypedQuery<Client> q = em.createNamedQuery("getClientsByPublicSID", Client.class);
+		q.setParameter("publicSID", publicSID);
+		return q.getResultList();
+	}
+
+	public List<Client> getClientsByServer(Server server) {
+		TypedQuery<Client> q = em.createNamedQuery("getClientsByServer", Client.class);
+		q.setParameter("server", server);	
+		return q.getResultList();
+	}
+
+	public List<Client> getClients() {
+		return em.createNamedQuery("getClients", Client.class).getResultList();
+	}
+	
+	public List<Client> getClientsWithServer() {
+		return em.createNamedQuery("getClientsWithServer", Client.class).getResultList();
+	}
+
+	public List<Client> getClientsByUserId(Server server, Long userId) {
+		TypedQuery<Client> q = em.createNamedQuery("getClientsByUserId", Client.class);
+		q.setParameter("server", server);
+		q.setParameter("user_id", userId);	
+		return q.getResultList();
+	}
+
+	public List<Client> getClientsByRoomId(Long roomId) {
+		TypedQuery<Client> q = em.createNamedQuery("getClientsByRoomId", Client.class);
+		q.setParameter("room_id", roomId);	
+		return q.getResultList();
+	}
+
+	/**
+	 * returns a list of servers or an empty list in case no roomIds are found
+	 * 
+	 * @param server
+	 * @return
+	 */
+	public List<Long> getRoomsIdsByServer(Server server) {
+		Query q = em.createNamedQuery("getRoomsIdsByServer");
+		q.setParameter("server", server);
+		@SuppressWarnings("unchecked")
+		List<Long> resultList = q.getResultList();
+		//if the result list contains only a value null, it means it 
+		//was empty and no roomid's have been found
+		if (resultList.size() == 1 && resultList.get(0) == null) {
+			return EMPTY_LIST;
+		}
+		return resultList;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/room/IRoomManager.java b/src/db/java/org/apache/openmeetings/db/dao/room/IRoomManager.java
new file mode 100644
index 0000000..12cbc36
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/room/IRoomManager.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.room;
+
+import org.apache.openmeetings.db.entity.room.Room;
+
+//FIXME HACK to bypass cross project compilation
+public interface IRoomManager {
+	Room  getRoomByOwnerAndTypeId(Long ownerId, Long roomtypesId, String roomName);
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/room/InvitationDao.java b/src/db/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
new file mode 100644
index 0000000..19859e3
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.room;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Date;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.entity.room.Invitation;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class InvitationDao {
+	private static final Logger log = Red5LoggerFactory.getLogger(InvitationDao.class, webAppRootKey);
+	
+	@PersistenceContext
+	private EntityManager em;
+	
+	public Invitation update(Invitation invitation) {
+		invitation.setUpdated(new Date());
+		if (invitation.getId() == null) {
+			em.persist(invitation);
+			return invitation;
+		} else {
+			if (!em.contains(invitation)) {
+				return em.merge(invitation);
+			}
+		}
+		return null;
+	}
+	
+	public Invitation get(Long invId) {
+		try {
+			
+			TypedQuery<Invitation> query = em.createNamedQuery("getInvitationbyId", Invitation.class);
+			query.setParameter("invid", invId);
+			
+			try {
+				return query.getSingleResult();
+			} catch (NoResultException ex) {
+			}
+
+		} catch (Exception e) {
+			log.error("get : ", e);
+		}
+		return null;
+	}
+	
+	public Invitation getInvitationByHashCode(String hashCode, boolean hidePass) {
+		try {
+			
+			TypedQuery<Invitation> query = em.createNamedQuery("getInvitationByHashCode", Invitation.class);
+			query.setParameter("hashCode", hashCode);
+			
+			try {
+				return query.getSingleResult();
+			} catch (NoResultException ex) {
+			}
+			
+		} catch (Exception e) {
+			log.error("getInvitationByHashCode : ", e);
+		}
+		return null;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/room/PollDao.java b/src/db/java/org/apache/openmeetings/db/dao/room/PollDao.java
new file mode 100644
index 0000000..8b832eb
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/room/PollDao.java
@@ -0,0 +1,199 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.room;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.dao.label.FieldValueDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.db.entity.room.PollType;
+import org.apache.openmeetings.db.entity.room.RoomPoll;
+import org.apache.openmeetings.db.entity.room.RoomPollAnswers;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class PollDao {
+	private static final Logger log = Red5LoggerFactory.getLogger(PollDao.class, webAppRootKey);
+
+	@PersistenceContext
+	private EntityManager em;
+	@Autowired
+	private FieldValueDao fieldValDao;
+	@Autowired
+	private UserDao userDao;
+	@Autowired
+	private RoomDao roomDao;
+
+	public Long addPollType(Long labelId, Boolean isNumeric) {
+		log.debug("Adding poll type: " + labelId + ", " + isNumeric);
+		PollType pt = new PollType();
+		pt.setLabel(fieldValDao.get(labelId));
+		pt.setIsNumericAnswer(isNumeric);
+
+		em.persist(pt);
+		
+		return pt.getPollTypesId();
+	}
+	
+	public List<PollType> getPollTypes() {
+		return em.createNamedQuery("getPollTypes", PollType.class)
+				.getResultList();
+	}
+	
+	public PollType getPollType(Long typeId) {
+		TypedQuery<PollType> q = em.createNamedQuery("getPollType", PollType.class);
+		q.setParameter("pollTypesId", typeId);
+		return q.getSingleResult();
+	}
+	
+	public RoomPoll createPoll(Client rc, String pollName, String pollQuestion, Long pollTypeId) {
+		RoomPoll roomP = new RoomPoll();
+		
+		roomP.setCreatedBy(userDao.get(rc.getUser_id()));
+		roomP.setCreated(new Date());
+		roomP.setPollName(pollName);
+		roomP.setPollQuestion(pollQuestion);
+		roomP.setPollType(getPollType(pollTypeId));
+		roomP.setRoom(roomDao.get(rc.getRoom_id()));
+		
+		em.persist(roomP);
+		return roomP;
+	}
+	
+	public void savePollBackup(RoomPoll rp) {
+		em.persist(rp);
+	}
+
+
+	public RoomPoll updatePoll(RoomPoll rp) {
+		return em.merge(rp);
+	}
+
+	public boolean closePoll(Long room_id){
+		try {
+			log.debug(" :: closePoll :: ");
+			Query q = em.createNamedQuery("closePoll");
+			q.setParameter("rooms_id", room_id);
+			q.setParameter("archived", true);
+			return q.executeUpdate() > 0;
+		} catch (Exception err) {
+			log.error("[closePoll]", err);
+		}
+		return false;
+	}
+
+	public boolean deletePoll(Long poll_id){
+		try {
+			log.debug(" :: deletePoll :: ");
+			Query q = em.createNamedQuery("deletePoll");
+			q.setParameter("roomPollId", poll_id);
+			return q.executeUpdate() > 0;
+		} catch (Exception err) {
+			log.error("[deletePoll]", err);
+		}
+		return false;
+	}
+
+	public RoomPoll getPoll(Long room_id) {
+		try {
+			log.debug(" :: getPoll :: " + room_id);
+			TypedQuery<RoomPoll> q = em.createNamedQuery("getPoll", RoomPoll.class);
+			q.setParameter("room_id", room_id);
+			q.setParameter("archived", false);
+			return q.getSingleResult();
+		} catch (NoResultException nre) {
+			//expected
+		} catch (Exception err) {
+			log.error("[getPoll]", err);
+		}
+		return null;
+	}
+	
+	public List<RoomPoll> getPollListBackup() {
+		try {
+			TypedQuery<RoomPoll> q = em.createNamedQuery("getPollListBackup", RoomPoll.class);
+			return q.getResultList();
+		} catch (NoResultException nre) {
+			//expected
+		} catch (Exception err) {
+			log.error("[getPoll]", err);
+		}
+		return null;
+	}
+	
+	public List<RoomPoll> getArchivedPollList(Long room_id) {
+		try {
+			log.debug(" :: getPoll :: " + room_id);
+			TypedQuery<RoomPoll> q = em.createNamedQuery("getArchivedPollList",RoomPoll.class);
+			q.setParameter("room_id", room_id);
+			q.setParameter("archived", true);
+			return q.getResultList();
+		} catch (NoResultException nre) {
+			//expected
+		} catch (Exception err) {
+			log.error("[getPoll]", err);
+		}
+		return null;
+	}
+	
+	public boolean hasPoll(Long room_id) {
+		try {
+			log.debug(" :: hasPoll :: " + room_id);
+			TypedQuery<Long> q = em.createNamedQuery("hasPoll", Long.class);
+			q.setParameter("room_id", room_id);
+			q.setParameter("archived", false);
+			return q.getSingleResult() > 0;
+		} catch (NoResultException nre) {
+			//expected
+		} catch (Exception err) {
+			log.error("[getPoll]", err);
+		}
+		return false;
+	}
+	
+	public boolean hasVoted(Long room_id, Long userid) {
+		try {
+			log.debug(" :: hasVoted :: " + room_id + ", " + userid);
+			TypedQuery<RoomPollAnswers> q = em.createNamedQuery("hasVoted", RoomPollAnswers.class);
+			q.setParameter("room_id", room_id);
+			q.setParameter("userid", userid);
+			q.setParameter("archived", false);
+			q.getSingleResult();
+			return true;
+		} catch (NoResultException nre) {
+			//expected
+		} catch (Exception err) {
+			log.error("[getPoll]", err);
+		}
+		return false;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/room/RoomDao.java b/src/db/java/org/apache/openmeetings/db/dao/room/RoomDao.java
new file mode 100644
index 0000000..e6e7415
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/room/RoomDao.java
@@ -0,0 +1,176 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.room;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+import java.util.TimeZone;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.dao.IDataProviderDao;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.util.TimezoneUtil;
+import org.apache.openmeetings.util.DaoHelper;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class RoomDao implements IDataProviderDao<Room> {
+	private static final Logger log = Red5LoggerFactory.getLogger(RoomDao.class, webAppRootKey);
+	public final static String[] searchFields = {"name"};
+	
+	@PersistenceContext
+	private EntityManager em;
+    @Autowired
+	private ConfigurationDao cfgDao;
+    @Autowired
+    private SipDao sipDao;
+	@Autowired
+	private UserDao usersDao;
+	@Autowired
+	private TimezoneUtil timezoneUtil;
+
+	public Room get(long id) {
+		TypedQuery<Room> q = em.createNamedQuery("getRoomById", Room.class);
+		q.setParameter("id", id);
+		List<Room> l = q.getResultList();
+		return l.isEmpty() ? null : l.get(0);
+	}
+
+	public List<Room> get() {
+		return em.createNamedQuery("getBackupRooms", Room.class).getResultList();
+	}
+	
+	public List<Room> get(int start, int count) {
+		TypedQuery<Room> q = em.createNamedQuery("getNondeletedRooms", Room.class);
+		q.setFirstResult(start);
+		q.setMaxResults(count);
+		return q.getResultList();
+	}
+
+	public List<Room> get(String search, int start, int count, String sort) {
+		TypedQuery<Room> q = em.createQuery(DaoHelper.getSearchQuery("Room", "r", search, true, false, sort, searchFields), Room.class);
+		q.setFirstResult(start);
+		q.setMaxResults(count);
+		return q.getResultList();
+	}
+
+	public long count() {
+		TypedQuery<Long> q = em.createNamedQuery("countRooms", Long.class);
+		return q.getSingleResult();
+	}
+
+	public long count(String search) {
+		TypedQuery<Long> q = em.createQuery(DaoHelper.getSearchQuery("Room", "r", search, true, true, null, searchFields), Long.class);
+		return q.getSingleResult();
+	}
+
+	public List<Room> getPublicRooms() {
+		return em.createNamedQuery("getPublicRoomsOrdered", Room.class).getResultList();
+	}
+	
+	public List<Long> getSipRooms(List<Long> ids) {
+		TypedQuery<Long> q = em.createNamedQuery("getSipRoomIdsByIds", Long.class);
+		q.setParameter("ids", ids);
+		return q.getResultList();
+	}
+
+	public List<Room> getOrganisationRooms(long orgId) {
+		TypedQuery<Room> q = em.createNamedQuery("getOrganisationRooms", Room.class);
+		q.setParameter("orgId", orgId);
+		return q.getResultList();
+	}
+
+	public List<Room> getAppointedRoomsByUser(long userId) {
+		//TODO generalize with AppointmentDao
+		log.debug("getAppointedRoomsByUser : UserID - " + userId);
+
+		TimeZone timeZone = timezoneUtil.getTimeZone(usersDao.get(userId));
+
+		Calendar startCal = Calendar.getInstance(timeZone);
+		startCal.set(Calendar.MINUTE, 0);
+		startCal.set(Calendar.HOUR, 0);
+		startCal.set(Calendar.SECOND, 1);
+
+		Calendar endCal = Calendar.getInstance(timeZone);
+		endCal.set(Calendar.MINUTE, 23);
+		endCal.set(Calendar.HOUR, 59);
+		endCal.set(Calendar.SECOND, 59);
+
+		return em.createNamedQuery("appointedRoomsInRangeByUser", Room.class)
+				.setParameter("userId", userId)
+				.setParameter("starttime", startCal.getTime())
+				.setParameter("endtime", endCal.getTime())
+				.getResultList();
+	}
+	
+	public Long getRoomsCapacityByIds(List<Long> ids) {
+		return ids == null || ids.isEmpty() ? 0
+			: em.createNamedQuery("getRoomsCapacityByIds", Long.class).setParameter("ids", ids).getSingleResult();
+	}
+	
+	private boolean isSipEnabled() {
+		return "yes".equals(cfgDao.getConfValue("red5sip.enable", String.class, "no"));
+	}
+	
+	private String getSipNumber(long roomId) {
+        if (isSipEnabled()) {
+        	return cfgDao.getConfValue("red5sip.room_prefix", String.class, "400") + roomId;
+        }
+        return null;
+	}
+	
+	public Room update(Room entity, Long userId) {
+		if (entity.getRooms_id() == null) {
+			entity.setStarttime(new Date());
+			em.persist(entity);
+		} else {
+			entity.setUpdatetime(new Date());
+		}
+		if (entity.isSipEnabled() && isSipEnabled()) {
+			String sipNumber = getSipNumber(entity.getRooms_id());
+			if (!sipNumber.equals(entity.getConfno())) {
+				entity.setConfno(sipNumber);
+			}
+			sipDao.update(sipNumber, entity.getPin());
+		} else {
+			sipDao.delete(entity.getConfno());
+			entity.setConfno(null);
+			entity.setPin(null);
+		}
+		entity = em.merge(entity);
+		return entity;
+	}
+
+	public void delete(Room entity, Long userId) {
+		entity.setDeleted(true);
+		entity.setSipEnabled(false);
+		update(entity, userId);
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/room/RoomModeratorsDao.java b/src/db/java/org/apache/openmeetings/db/dao/room/RoomModeratorsDao.java
new file mode 100644
index 0000000..22e31bc
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/room/RoomModeratorsDao.java
@@ -0,0 +1,299 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.room;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Date;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.room.RoomModerator;
+import org.apache.openmeetings.db.entity.user.User;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class RoomModeratorsDao {
+	private static final Logger log = Red5LoggerFactory.getLogger(RoomModeratorsDao.class, webAppRootKey);
+	@Autowired
+	private UserDao userDao;
+	@PersistenceContext
+	private EntityManager em;
+
+	/**
+	 * 
+	 * @param us
+	 * @param isSuperModerator
+	 * @return
+	 */
+	public Long addRoomModeratorByUserId(User us, Boolean isSuperModerator,
+			Long roomId) {
+		try {
+			RoomModerator rModerator = new RoomModerator();
+			rModerator.setUser(us);
+			rModerator.setIsSuperModerator(isSuperModerator);
+			rModerator.setStarttime(new Date());
+			rModerator.setDeleted(false);
+			rModerator.setRoomId(roomId);
+			rModerator = em.merge(rModerator);
+			long rModeratorId = rModerator.getRoomModeratorsId();
+			return rModeratorId;
+		} catch (Exception ex2) {
+			log.error("[addRoomModeratorByUserId] ", ex2);
+		}
+		return null;
+	}
+
+	public Long addRoomModeratorByObj(RoomModerator rModerator) {
+		try {
+			rModerator.setStarttime(new Date());
+			rModerator = em.merge(rModerator);
+			long rModeratorId = rModerator.getRoomModeratorsId();
+			return rModeratorId;
+		} catch (Exception ex2) {
+			log.error("[addRoomModeratorByUserId] ", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * get all available RoomTypes
+	 * 
+	 * @return List of RoomTypes
+	 */
+	public RoomModerator getRoomModeratorById(Long roomModeratorsId) {
+		try {
+			TypedQuery<RoomModerator> query = em.createNamedQuery("getRoomModeratorById", RoomModerator.class);
+			query.setParameter("roomModeratorsId", roomModeratorsId);
+			RoomModerator roomModerators = null;
+			try {
+				roomModerators = query.getSingleResult();
+			} catch (NoResultException ex) {
+			}
+			return roomModerators;
+
+		} catch (Exception ex2) {
+			log.error("[getRoomModeratorById] ", ex2);
+		}
+		return null;
+	}
+
+	public List<RoomModerator> getRoomModeratorByRoomId(Long roomId) {
+		try {
+			TypedQuery<RoomModerator> query = em.createNamedQuery("getRoomModeratorByRoomId", RoomModerator.class);
+			query.setParameter("deleted", true);
+			query.setParameter("roomId", roomId);
+			return query.getResultList();
+		} catch (Exception ex2) {
+			log.error("[getRoomModeratorByRoomId] ", ex2);
+			ex2.printStackTrace();
+		}
+		return null;
+	}
+
+	public List<RoomModerator> getRoomModeratorByUserAndRoomId(Long roomId,
+			Long user_id) {
+		try {
+			TypedQuery<RoomModerator> query = em.createNamedQuery("getRoomModeratorByUserAndRoomId", RoomModerator.class);
+			query.setParameter("deleted", true);
+			query.setParameter("roomId", roomId);
+			query.setParameter("user_id", user_id);
+			return query.getResultList();
+		} catch (Exception ex2) {
+			log.error("[getRoomModeratorByUserAndRoomId] ", ex2);
+			ex2.printStackTrace();
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 * @param roomModeratorsId
+	 */
+	public void removeRoomModeratorByUserId(Long roomModeratorsId) {
+		try {
+			RoomModerator rModerator = this
+					.getRoomModeratorById(roomModeratorsId);
+
+			if (rModerator == null) {
+				return;
+			}
+
+			rModerator.setUpdatetime(new Date());
+			rModerator.setDeleted(true);
+
+			if (rModerator.getRoomModeratorsId() == 0) {
+				em.persist(rModerator);
+			} else {
+				if (!em.contains(rModerator)) {
+					em.merge(rModerator);
+				}
+			}
+
+		} catch (Exception ex2) {
+			log.error("[removeRoomModeratorByUserId] ", ex2);
+		}
+	}
+
+	public void updateRoomModeratorByUserId(Long roomModeratorsId,
+			Boolean isSuperModerator) {
+		try {
+			RoomModerator rModerator = this
+					.getRoomModeratorById(roomModeratorsId);
+
+			if (rModerator == null) {
+				return;
+			}
+
+			rModerator.setIsSuperModerator(isSuperModerator);
+			rModerator.setUpdatetime(new Date());
+
+			if (rModerator.getRoomModeratorsId() == 0) {
+				em.persist(rModerator);
+			} else {
+				if (!em.contains(rModerator)) {
+					em.merge(rModerator);
+				}
+			}
+
+		} catch (Exception ex2) {
+			log.error("[updateRoomModeratorByUserId] ", ex2);
+		}
+	}
+
+	public void addRoomModeratorByUserList(
+			List<Map<String, Object>> roomModerators, Long roomId) {
+		try {
+
+			for (Iterator<Map<String, Object>> iter = roomModerators.iterator(); iter
+					.hasNext();) {
+
+				Map<String, Object> roomModeratorObj = iter.next();
+
+				Long userId = Long.parseLong(roomModeratorObj.get("userId")
+						.toString());
+				Boolean isSuperModerator = Boolean
+						.parseBoolean(roomModeratorObj.get("isSuperModerator")
+								.toString());
+
+				this.addRoomModeratorByUserId(
+						userDao.get(userId), isSuperModerator,
+						roomId);
+
+			}
+
+		} catch (Exception ex2) {
+			log.error("[addRoomModeratorByUserList] ", ex2);
+			ex2.printStackTrace();
+		}
+	}
+
+	public void updateRoomModeratorByUserList(
+			List<Map<String, Object>> roomModerators, Long roomId) {
+		try {
+
+			// getLsit of RoomModerators before you add new ones
+			List<RoomModerator> remoteRoomModeratorList = this
+					.getRoomModeratorByRoomId(roomId);
+
+			for (Iterator<Map<String, Object>> iter = roomModerators.iterator(); iter
+					.hasNext();) {
+
+				Map<String, Object> roomModeratorObj = iter.next();
+
+				Long roomModeratorsId = Long.parseLong(roomModeratorObj.get(
+						"roomModeratorsId").toString());
+				Long userId = Long.parseLong(roomModeratorObj.get("userId")
+						.toString());
+				Boolean isSuperModerator = Boolean
+						.parseBoolean(roomModeratorObj.get("isSuperModerator")
+								.toString());
+
+				if (roomModeratorsId == null || roomModeratorsId == 0) {
+					Long newRoomModeratorId = this.addRoomModeratorByUserId(
+							userDao.get(userId),
+							isSuperModerator, roomId);
+
+					roomModeratorObj
+							.put("roomModeratorsId", newRoomModeratorId);
+
+				} else {
+					this.updateRoomModeratorByUserId(roomModeratorsId,
+							isSuperModerator);
+				}
+
+			}
+
+			// Check for items to delete
+			List<RoomModerator> roomModeratorsToDelete = new LinkedList<RoomModerator>();
+
+			if (remoteRoomModeratorList != null) {
+
+				for (RoomModerator roomModerator : remoteRoomModeratorList) {
+
+					boolean found = false;
+
+					for (Iterator<Map<String, Object>> iter = roomModerators
+							.iterator(); iter.hasNext();) {
+						Map<String, Object> roomModeratorObj = iter.next();
+
+						Long roomModeratorsId = Long.parseLong(roomModeratorObj
+								.get("roomModeratorsId").toString());
+
+						if (roomModerator.getRoomModeratorsId() == roomModeratorsId
+								.longValue()) {
+							found = true;
+							break;
+						}
+
+					}
+
+					if (!found) {
+						roomModeratorsToDelete.add(roomModerator);
+					}
+
+				}
+
+			}
+
+			for (RoomModerator rModerator : roomModeratorsToDelete) {
+				System.out.println("Remove Map "
+						+ rModerator.getRoomModeratorsId());
+				this.removeRoomModeratorByUserId(rModerator
+						.getRoomModeratorsId());
+			}
+
+		} catch (Exception ex2) {
+			log.error("[updateRoomModeratorByUserList] ", ex2);
+			ex2.printStackTrace();
+		}
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/room/RoomOrganisationDao.java b/src/db/java/org/apache/openmeetings/db/dao/room/RoomOrganisationDao.java
new file mode 100644
index 0000000..373a185
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/room/RoomOrganisationDao.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.room;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import org.apache.openmeetings.db.entity.room.RoomOrganisation;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class RoomOrganisationDao {
+	@PersistenceContext
+	private EntityManager em;
+
+	public List<RoomOrganisation> get() {
+		return em.createNamedQuery("getAllRoomsOrganisations", RoomOrganisation.class).getResultList();
+	}
+
+	public RoomOrganisation update(RoomOrganisation entity, Long userId) {
+		if (entity.getRooms_organisation_id() == null) {
+			entity.setStarttime(new Date());
+			em.persist(entity);
+		} else {
+			entity.setUpdatetime(new Date());
+			entity = em.merge(entity);
+		}
+		return entity;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/room/RoomTypeDao.java b/src/db/java/org/apache/openmeetings/db/dao/room/RoomTypeDao.java
new file mode 100644
index 0000000..7f2a72d
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/room/RoomTypeDao.java
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.room;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.dao.label.FieldLanguagesValuesDao;
+import org.apache.openmeetings.db.entity.room.RoomType;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class RoomTypeDao {
+	private static final Logger log = Red5LoggerFactory.getLogger(RoomTypeDao.class, webAppRootKey);
+	@PersistenceContext
+	private EntityManager em;
+	
+	@Autowired
+	private FieldLanguagesValuesDao fieldLangValueDao;
+	
+	/**
+	 * get all availible RoomTypes
+	 * 
+	 * @return List of RoomTypes
+	 */
+	public List<RoomType> getAll(long langId) {
+		TypedQuery<RoomType> query = em.createNamedQuery("getAllRoomTypes", RoomType.class);
+		query.setParameter("deleted", true);
+		List<RoomType> ll = query.getResultList();
+		for (RoomType ti : ll) {
+			ti.setLabel(fieldLangValueDao.get(ti.getFieldvalues_id(), langId));
+		}
+		return ll;
+	}
+	
+	public RoomType get(long id) {
+		TypedQuery<RoomType> query = em.createNamedQuery("getRoomTypesById", RoomType.class);
+		query.setParameter("roomtypes_id", id);
+		query.setParameter("deleted", true);
+		List<?> ll = query.getResultList();
+		if (ll.size() > 0) {
+			return (RoomType) ll.get(0);
+		}
+		return null;
+	}
+
+	/**
+	 * add a new Record to the table roomtypes
+	 * 
+	 * @param name
+	 * @return ID of new created roomtype or null
+	 */
+	public Long addRoomType(String name, long fieldvalues_id, boolean deleted) {
+		try {
+			RoomType rtype = new RoomType();
+			rtype.setName(name);
+			rtype.setStarttime(new Date());
+			rtype.setDeleted(deleted);
+			rtype.setFieldvalues_id(fieldvalues_id);
+			rtype = em.merge(rtype);
+			long returnId = rtype.getRoomtypes_id();
+			return returnId;
+		} catch (Exception ex2) {
+			log.error("[addRoomType] ", ex2);
+		}
+		return null;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/room/SipDao.java b/src/db/java/org/apache/openmeetings/db/dao/room/SipDao.java
new file mode 100644
index 0000000..86ef780
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/room/SipDao.java
@@ -0,0 +1,146 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.db.dao.room;

+

+import org.asteriskjava.manager.ManagerConnection;

+import org.asteriskjava.manager.ManagerConnectionFactory;

+import org.asteriskjava.manager.ResponseEvents;

+import org.asteriskjava.manager.action.ConfbridgeListAction;

+import org.asteriskjava.manager.action.DbDelAction;

+import org.asteriskjava.manager.action.DbDelTreeAction;

+import org.asteriskjava.manager.action.DbGetAction;

+import org.asteriskjava.manager.action.DbPutAction;

+import org.asteriskjava.manager.action.EventGeneratingAction;

+import org.asteriskjava.manager.action.ManagerAction;

+import org.asteriskjava.manager.response.ManagerError;

+import org.asteriskjava.manager.response.ManagerResponse;

+import org.red5.logging.Red5LoggerFactory;

+import org.slf4j.Logger;

+

+public class SipDao {

+	private static final Logger log = Red5LoggerFactory.getLogger(SipDao.class);

+	public static final String ASTERISK_OM_FAMILY = "openmeetings";

+	public static final String ASTERISK_OM_KEY = "rooms";

+	private String sipHostname;

+	private int sipPort;

+	private String sipUsername;

+	private String sipPassword;

+	private ManagerConnectionFactory factory;

+	private ManagerConnection connection;

+

+	@SuppressWarnings("unused")

+	private SipDao() {

+		// prohibited default constructor

+	}

+

+	public SipDao(String sipHostname, int sipPort, String sipUsername, String sipPassword) {

+		this.sipHostname = sipHostname;

+		this.sipPort = sipPort;

+		this.sipUsername = sipUsername;

+		this.sipPassword = sipPassword;

+		factory = new ManagerConnectionFactory(this.sipHostname, this.sipPort, this.sipUsername, this.sipPassword);

+		connection = factory.createManagerConnection(); // TODO secure

+	}

+

+	private ManagerResponse exec(ManagerAction action) {

+		if (connection == null) {

+			log.warn("There is no Asterisk configured");

+			return null;

+		}

+		try {

+			connection.login();

+			ManagerResponse r = connection.sendAction(action);

+			connection.logoff();

+			if (log.isDebugEnabled() && r != null) {

+				log.debug(r.toString());

+			}

+			return (r instanceof ManagerError) ? null : r;

+		} catch (Exception e) {

+			if (log.isDebugEnabled()) {

+				log.error("Error while executing ManagerAction: " + action, e);

+			}

+		}

+		return null;

+	}

+

+	private ResponseEvents execEvent(EventGeneratingAction action) {

+		if (connection == null) {

+			log.warn("There is no Asterisk configured");

+			return null;

+		}

+		try {

+			connection.login("on");

+			ResponseEvents r = connection.sendEventGeneratingAction(action);

+			connection.logoff();

+			if (log.isDebugEnabled() && r != null) {

+				log.debug(r.getResponse().toString());

+			}

+			return (r == null || r.getResponse() instanceof ManagerError) ? null : r;

+		} catch (Exception e) {

+			if (log.isDebugEnabled()) {

+				log.error("Error while executing EventGeneratingAction: " + action, e);

+			}

+		}

+		return null;

+	}

+

+	private String getKey(String confno) {

+		return ASTERISK_OM_KEY + "/" + confno;

+	}

+

+	public String get(String confno) {

+		String pin = null;

+		DbGetAction da = new DbGetAction(ASTERISK_OM_FAMILY, getKey(confno));

+		ManagerResponse r = exec(da);

+		if (r != null) {

+			pin = r.getResponse();

+		}

+		return pin;

+	}

+

+	public void update(String confno, String pin) {

+		delete(confno);

+		DbPutAction da = new DbPutAction(ASTERISK_OM_FAMILY, getKey(confno), pin);

+		exec(da);

+	}

+

+	public void delete() {

+		DbDelTreeAction da = new DbDelTreeAction(ASTERISK_OM_FAMILY, ASTERISK_OM_KEY);

+		exec(da);

+	}

+

+	public void delete(String confno) {

+		DbDelAction da = new DbDelAction(ASTERISK_OM_FAMILY, getKey(confno));

+		exec(da);

+	}

+

+	public Integer countUsers(String confno) {

+		if (confno == null) {

+			return null;

+		}

+		ConfbridgeListAction da = new ConfbridgeListAction(confno);

+		ResponseEvents r = execEvent(da);

+		if (r != null) {

+			log.debug("SipDao::countUsers size == " + r.getEvents().size());

+			// "- 1" here means: ListComplete event 

+			return r.getEvents().size() - 1; // TODO check if was successfull

+		}

+		return 0;

+	}

+}

diff --git a/src/db/java/org/apache/openmeetings/db/dao/server/ISessionManager.java b/src/db/java/org/apache/openmeetings/db/dao/server/ISessionManager.java
new file mode 100644
index 0000000..663d20e
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/server/ISessionManager.java
@@ -0,0 +1,217 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.db.dao.server;

+

+import java.util.Collection;

+import java.util.List;

+

+import org.apache.openmeetings.db.dto.basic.SearchResult;

+import org.apache.openmeetings.db.dto.server.ClientSessionInfo;

+import org.apache.openmeetings.db.entity.room.Client;

+import org.apache.openmeetings.db.entity.server.Server;

+

+/**

+ * Methods to add/get/remove {@link Client}s to the session

+ * 

+ * 

+ * @author sebawagner

+ *

+ */

+public interface ISessionManager {

+	

+	/**

+	 * Notified on server start, when the session manager should be started and

+	 * eventually caches cleared/setup

+	 */

+	public abstract void sessionStart();

+

+	/**

+	 * add a new client item

+	 * 

+	 * @param streamId

+	 * @param scopeName

+	 * @param remotePort

+	 * @param remoteAddress

+	 * @param swfUrl

+	 * @param isAVClient

+	 * @param server

+	 * @return

+	 */

+	public abstract Client addClientListItem(String streamId,

+			String scopeName, Integer remotePort, String remoteAddress,

+			String swfUrl, boolean isAVClient, Server server);

+

+	public abstract Collection<Client> getClients();

+	

+	/**

+	 * loads the server into the client (only if database cache is used)

+	 * 

+	 * @return

+	 */

+	public abstract Collection<Client> getClientsWithServer();

+

+	/**

+	 * Get a client by its streamId

+	 * 

+	 * @param streamId

+	 * @param server

+	 * @return

+	 */

+	public abstract Client getClientByStreamId(String streamId,

+			Server server);

+

+	/**

+	 * get a client by its publicSID and the server, 

+	 * isAVClient is normally false, as you want the data connection.

+	 * If you set isAVClient to true, you would obtain the RTMP 

+	 * connection that is used for Audio/Video streaming

+	 * 

+	 * @param publicSID

+	 * @param isAVClient

+	 * @param server

+	 * @return

+	 */

+	public abstract Client getClientByPublicSID(String publicSID,

+			boolean isAVClient, Server server);

+	

+	/**

+	 * same as {@link #getClientByPublicSID(String, boolean, Server)} but it ignores 

+	 * if the server part, so it will deliver any client just by its publicSID.<br/>

+	 * <br/>

+	 * <b>Note:</b>

+	 * This method requires more time to find the user, so under normal circumstances 

+	 * you should use {@link #getClientByPublicSID(String, boolean, Server)}!

+	 * 

+	 * @param publicSID

+	 * @param isAVClient

+	 * @return

+	 */

+	public ClientSessionInfo getClientByPublicSIDAnyServer(String publicSID, boolean isAVClient);

+

+	/**

+	 * 

+	 * @param userId

+	 * @return

+	 * 

+	 * @deprecated There could be multiple users logged in with the same userid,

+	 *             then this call would return a list not a single user

+	 */

+	public abstract Client getClientByUserId(Long userId);

+

+	/**

+	 * Update the session object of the audio/video-connection and additionally

+	 * swap the values to the session object of the user that holds the full

+	 * session object

+	 * 

+	 * @param streamId

+	 * @param rcm

+	 * @return

+	 */

+	public abstract Boolean updateAVClientByStreamId(String streamId,

+			Client rcm, Server server);

+

+	/**

+	 * Update the session object

+	 * 

+	 * updateRoomCount is only <i>one</i> time true, in

+	 * ScopeApplicationAdapter#setRoomValues(Long, Boolean, Boolean, Long, String)

+	 * .

+	 * 

+	 * @param streamId

+	 * @param rcm

+	 * @param updateRoomCount

+	 *            true means the count for the room has to be updated

+	 * @return

+	 */

+	public abstract Boolean updateClientByStreamId(String streamId,

+			Client rcm, boolean updateRoomCount, Server server);

+

+	/**

+	 * Remove a client from the session store

+	 * 

+	 * @param streamId

+	 * @return

+	 */

+	public abstract Boolean removeClient(String streamId, Server server);

+

+	/**

+	 * Get all ClientList Objects of that room and domain This Function is

+	 * needed cause it is invoked internally AFTER the current user has been

+	 * already removed from the ClientList to see if the Room is empty again and

+	 * the PollList can be removed

+	 * @param room_id 

+	 * @return

+	 */

+	public abstract List<Client> getClientListByRoom(Long room_id);

+	

+	public abstract Collection<Client> getClientListByRoomAll(Long room_id);

+

+	/**

+	 * get the current Moderator in this room

+	 * 

+	 * @param roomname

+	 * @return

+	 */

+	public abstract List<Client> getCurrentModeratorByRoom(Long room_id);

+

+	/**

+	 * Get list of current client sessions

+	 * 

+	 * @param start

+	 * @param max

+	 * @param orderby

+	 * @param asc

+	 * @return

+	 */

+	public abstract SearchResult<Client> getListByStartAndMax(int start,

+			int max, String orderby, boolean asc);

+

+	/**

+	 * returns number of current users recording

+	 * 

+	 * @param roomId

+	 * @return

+	 */

+	public abstract long getRecordingCount(long roomId);

+

+	/**

+	 * returns a number of current users publishing screensharing

+	 * 

+	 * @param roomId

+	 * @return

+	 */

+	public abstract long getPublishingCount(long roomId);

+	

+	/**

+	 * Get a list of all servers of all rooms on that server, serverId = null 

+	 * means it is a local session on the master.

+	 * 

+	 * @param server

+	 * @return a set, a roomId can be only one time in this list

+	 */

+	public abstract List<Long> getActiveRoomIdsByServer(Server server);

+

+	/**

+	 * Get some statistics about the current sessions

+	 * 

+	 * @return

+	 */

+	public abstract String getSessionStatistics();

+

+}
\ No newline at end of file
diff --git a/src/db/java/org/apache/openmeetings/db/dao/server/LdapConfigDao.java b/src/db/java/org/apache/openmeetings/db/dao/server/LdapConfigDao.java
new file mode 100644
index 0000000..00c8775
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/server/LdapConfigDao.java
@@ -0,0 +1,269 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.server;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.PersistenceException;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.dao.IDataProviderDao;
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.entity.server.LdapConfig;
+import org.apache.openmeetings.util.DaoHelper;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * Insert/Update/Delete {@link LdapConfig}
+ * 
+ * 
+ * @author swagner
+ * 
+ */
+@Transactional
+public class LdapConfigDao implements IDataProviderDao<LdapConfig> {
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			LdapConfigDao.class, OpenmeetingsVariables.webAppRootKey);
+	public final static String[] searchFields = {"name", "configFileName", "domain", "comment"};
+
+	@PersistenceContext
+	private EntityManager em;
+
+	@Autowired
+	private AdminUserDao usersDao;
+
+	public Long addLdapConfig(String name, Boolean addDomainToUserName,
+			String configFileName, String domain, Long insertedby,
+			Boolean isActive) {
+		try {
+
+			LdapConfig ldapConfig = new LdapConfig();
+			ldapConfig.setAddDomainToUserName(addDomainToUserName);
+			ldapConfig.setConfigFileName(configFileName);
+			ldapConfig.setDeleted(false);
+			ldapConfig.setDomain(domain);
+			ldapConfig.setIsActive(isActive);
+			ldapConfig.setName(name);
+			ldapConfig.setInserted(new Date());
+			if (insertedby != null) {
+				log.debug("addLdapConfig :1: " + usersDao.get(insertedby));
+				ldapConfig.setInsertedby(usersDao.get(insertedby));
+			}
+
+			log.debug("addLdapConfig :2: " + insertedby);
+
+			ldapConfig = em.merge(ldapConfig);
+			Long ldapConfigId = ldapConfig.getLdapConfigId();
+
+			if (ldapConfigId > 0) {
+				return ldapConfigId;
+			} else {
+				throw new Exception("Could not store SOAPLogin");
+			}
+
+		} catch (Exception ex2) {
+			log.error("[addLdapConfig]: ", ex2);
+		}
+		return null;
+	}
+
+	public Long addLdapConfigByObject(LdapConfig ldapConfig) {
+		try {
+
+			ldapConfig.setDeleted(false);
+			ldapConfig.setInserted(new Date());
+
+			ldapConfig = em.merge(ldapConfig);
+			Long ldapConfigId = ldapConfig.getLdapConfigId();
+
+			if (ldapConfigId > 0) {
+				return ldapConfigId;
+			} else {
+				throw new Exception("Could not store SOAPLogin");
+			}
+
+		} catch (Exception ex2) {
+			log.error("[addLdapConfig]: ", ex2);
+		}
+		return null;
+	}
+
+	public Long updateLdapConfig(Long ldapConfigId, String name,
+			Boolean addDomainToUserName, String configFileName, String domain,
+			Long updatedby, Boolean isActive) {
+		try {
+
+			LdapConfig ldapConfig = this.get(ldapConfigId);
+
+			if (ldapConfig == null) {
+				return -1L;
+			}
+
+			ldapConfig.setAddDomainToUserName(addDomainToUserName);
+			ldapConfig.setConfigFileName(configFileName);
+			ldapConfig.setDeleted(false);
+			ldapConfig.setDomain(domain);
+			ldapConfig.setIsActive(isActive);
+			ldapConfig.setName(name);
+			ldapConfig.setUpdated(new Date());
+			if (updatedby != null) {
+				log.debug("updateLdapConfig :1: " + usersDao.get(updatedby));
+				ldapConfig.setUpdatedby(usersDao.get(updatedby));
+			}
+
+			log.debug("updateLdapConfig :2: " + updatedby);
+
+			ldapConfig = em.merge(ldapConfig);
+			ldapConfigId = ldapConfig.getLdapConfigId();
+
+			return ldapConfigId;
+
+		} catch (Exception ex2) {
+			log.error("[updateLdapConfig]: ", ex2);
+		}
+		return -1L;
+	}
+
+	public LdapConfig get(long ldapConfigId) {
+		try {
+
+			String hql = "select c from LdapConfig c "
+					+ "WHERE c.ldapConfigId = :ldapConfigId "
+					+ "AND c.deleted = :deleted";
+
+			TypedQuery<LdapConfig> query = em
+					.createQuery(hql, LdapConfig.class);
+			query.setParameter("ldapConfigId", ldapConfigId);
+			query.setParameter("deleted", false);
+
+			LdapConfig ldapConfig = null;
+			try {
+				ldapConfig = query.getSingleResult();
+			} catch (NoResultException ex) {
+			}
+
+			return ldapConfig;
+
+		} catch (Exception ex2) {
+			log.error("[get]: ", ex2);
+		}
+		return null;
+	}
+
+	public List<LdapConfig> getActiveLdapConfigs() {
+		log.debug("getActiveLdapConfigs");
+
+		// get all users
+		TypedQuery<LdapConfig> query =  em.createNamedQuery("getActiveLdapConfigs", LdapConfig.class);
+		query.setParameter("isActive", true);
+
+		return query.getResultList();
+	}
+
+	public List<LdapConfig> getLdapConfigs() {
+		//Add localhost Domain
+		LdapConfig ldapConfig = new LdapConfig();
+		
+		ldapConfig.setName("local DB [internal]");
+		ldapConfig.setLdapConfigId(-1);
+
+		List<LdapConfig> result = new ArrayList<LdapConfig>();
+		result.add(ldapConfig);
+		result.addAll(getActiveLdapConfigs());
+		return result;
+	}
+
+	public List<LdapConfig> get(int start, int count) {
+		TypedQuery<LdapConfig> q = em.createNamedQuery("getNondeletedLdapConfigs", LdapConfig.class);
+		q.setFirstResult(start);
+		q.setMaxResults(count);
+		return q.getResultList();
+	}
+
+	public List<LdapConfig> get(String search, int start, int count, String sort) {
+		TypedQuery<LdapConfig> q = em.createQuery(DaoHelper.getSearchQuery("LdapConfig", "lc", search, true, false, sort, searchFields), LdapConfig.class);
+		q.setFirstResult(start);
+		q.setMaxResults(count);
+		return q.getResultList();
+	}
+	
+	public long count() {
+		try {
+			TypedQuery<Long> query = em
+					.createQuery(
+							"select count(c.ldapConfigId) from LdapConfig c where c.deleted = false",
+							Long.class);
+			List<Long> ll = query.getResultList();
+			log.debug("selectMaxFromLdapConfig" + ll.get(0));
+			return ll.get(0);
+		} catch (Exception ex2) {
+			log.error("[selectMaxFromLdapConfig] ", ex2);
+		}
+		return 0L;
+	}
+
+	public long count(String search) {
+		TypedQuery<Long> q = em.createQuery(DaoHelper.getSearchQuery("LdapConfig", "lc", search, true, true, null, searchFields), Long.class);
+		return q.getSingleResult();
+	}
+	
+	public LdapConfig update(LdapConfig entity, Long userId) {
+		try {
+			if (entity.getLdapConfigId() <= 0) {
+				entity.setInserted(new Date());
+				if (userId != null) {
+					entity.setInsertedby(usersDao.get(userId));
+				}
+				entity.setDeleted(false);
+				em.persist(entity);
+			} else {
+				entity.setUpdated(new Date());
+				if (userId != null) {
+					entity.setUpdatedby(usersDao.get(userId));
+				}
+				entity.setDeleted(false);
+				em.merge(entity);
+			}
+		} catch (PersistenceException ex) {
+			log.error("[update LdapConfig]", ex);
+		}
+		return entity;
+	}
+
+	public void delete(LdapConfig entity, Long userId) {
+		if (entity.getLdapConfigId() >= 0) {
+			entity.setUpdated(new Date());
+			if (userId != null) {
+				entity.setUpdatedby(usersDao.get(userId));
+			}
+			entity.setDeleted(true);
+			em.merge(entity);
+		}
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java b/src/db/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java
new file mode 100644
index 0000000..1a1c3d4
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.server;
+
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.dao.IDataProviderDao;
+import org.apache.openmeetings.db.entity.server.OAuthServer;
+import org.apache.openmeetings.util.DaoHelper;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class OAuth2Dao implements IDataProviderDao<OAuthServer> {
+
+	public final static String[] searchFields = {"name"};
+	@PersistenceContext
+	private EntityManager em;
+	
+	public List<OAuthServer> getEnabledOAuthServers() {
+		TypedQuery<OAuthServer> query = em.createNamedQuery("getEnabledOAuthServers", OAuthServer.class);
+		return query.getResultList();
+	}
+	
+	public OAuthServer get(long id) {
+		TypedQuery<OAuthServer> query = em.createNamedQuery("getOAuthServerById", OAuthServer.class);
+		query.setParameter("id", id);
+		OAuthServer result = null;
+		try {
+			result = query.getSingleResult();
+		} catch (NoResultException e) {}
+		return result;
+	}
+
+	public List<OAuthServer> get(int start, int count) {
+		TypedQuery<OAuthServer> query = em.createNamedQuery("getAllOAuthServers", OAuthServer.class);
+		query.setFirstResult(start);
+		query.setMaxResults(count);
+		return query.getResultList();
+	}
+
+	public List<OAuthServer> get(String search, int start, int count, String order) {
+		TypedQuery<Long> q = em.createQuery(DaoHelper.getSearchQuery("OAuthServer", "s", search, true, false, null, searchFields), Long.class);
+		q.setFirstResult(start);
+		q.setMaxResults(count);
+		return null;
+	}
+
+	public long count() {
+		TypedQuery<Long> q = em.createNamedQuery("countOAuthServers", Long.class);
+		return q.getSingleResult();
+	}
+
+	public long count(String search) {
+		TypedQuery<Long> q = em.createQuery(DaoHelper.getSearchQuery("OAuthServer", "s", search, true, true, null, searchFields), Long.class);
+		return q.getSingleResult();
+	}
+
+	public OAuthServer update(OAuthServer server, Long userId) {
+		if (server.getId() == null) {
+			em.persist(server);
+		} else {
+			server = em.merge(server);
+		}
+		return server;
+	}
+
+	public void delete(OAuthServer server, Long userId) {
+		server.setDeleted(true);
+		update(server, userId);
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java b/src/db/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
new file mode 100644
index 0000000..38acc03
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
@@ -0,0 +1,119 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.server;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.entity.server.SOAPLogin;
+import org.apache.openmeetings.util.crypt.ManageCryptStyle;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class SOAPLoginDao {
+	private static final Logger log = Red5LoggerFactory.getLogger(SOAPLoginDao.class, webAppRootKey);
+
+	@PersistenceContext
+	private EntityManager em;
+
+	public String addSOAPLogin(String sessionHash, Long room_id,
+			boolean becomemoderator, boolean showAudioVideoTest,
+			boolean allowSameURLMultipleTimes, Long recording_id,
+			boolean showNickNameDialog, String landingZone,
+			boolean allowRecording) {
+		try {
+
+			String thistime = "TIME_" + (new Date().getTime());
+
+			String hash = ManageCryptStyle.getInstanceOfCrypt()
+					.createPassPhrase(thistime);
+
+			SOAPLogin soapLogin = new SOAPLogin();
+			soapLogin.setCreated(new Date());
+			soapLogin.setUsed(false);
+			soapLogin.setRoom_id(room_id);
+			soapLogin.setAllowSameURLMultipleTimes(allowSameURLMultipleTimes);
+			soapLogin.setHash(hash);
+			soapLogin.setRoomRecordingId(recording_id);
+			soapLogin.setSessionHash(sessionHash);
+			soapLogin.setBecomemoderator(becomemoderator);
+			soapLogin.setShowAudioVideoTest(showAudioVideoTest);
+			soapLogin.setShowNickNameDialog(showNickNameDialog);
+			soapLogin.setLandingZone(landingZone);
+			soapLogin.setAllowRecording(allowRecording);
+
+			soapLogin = em.merge(soapLogin);
+			Long soapLoginId = soapLogin.getSoapLoginId();
+
+			if (soapLoginId > 0) {
+				return hash;
+			} else {
+				throw new Exception("Could not store SOAPLogin");
+			}
+
+		} catch (Exception ex2) {
+			log.error("[addSOAPLogin]: ", ex2);
+		}
+		return null;
+	}
+
+	public SOAPLogin get(String hash) {
+		try {
+			String hql = "select sl from SOAPLogin as sl WHERE sl.hash LIKE :hash";
+			TypedQuery<SOAPLogin> query = em.createQuery(hql, SOAPLogin.class);
+			query.setParameter("hash", hash);
+			List<SOAPLogin> sList = query.getResultList();
+
+			if (sList.size() > 1) {
+				throw new Exception("there are more then one SOAPLogin with identical hash! " + hash);
+			}
+
+			if (sList.size() == 1) {
+				return sList.get(0);
+			}
+
+		} catch (Exception ex2) {
+			log.error("[get]: ", ex2);
+		}
+		return null;
+	}
+
+	public void update(SOAPLogin soapLogin) {
+		try {
+			if (soapLogin.getSoapLoginId() == 0) {
+				em.persist(soapLogin);
+			} else {
+				if (!em.contains(soapLogin)) {
+					em.merge(soapLogin);
+				}
+			}
+		} catch (Exception ex2) {
+			log.error("[update]: ", ex2);
+		}
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/server/ServerDao.java b/src/db/java/org/apache/openmeetings/db/dao/server/ServerDao.java
new file mode 100644
index 0000000..ee3fe56
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/server/ServerDao.java
@@ -0,0 +1,210 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.db.dao.server;

+

+import java.util.Date;

+import java.util.List;

+

+import javax.persistence.EntityManager;

+import javax.persistence.NoResultException;

+import javax.persistence.PersistenceContext;

+import javax.persistence.TypedQuery;

+

+import org.apache.openmeetings.db.dao.IDataProviderDao;

+import org.apache.openmeetings.db.dao.user.AdminUserDao;

+import org.apache.openmeetings.db.entity.server.Server;

+import org.apache.openmeetings.util.DaoHelper;

+import org.apache.openmeetings.util.OpenmeetingsVariables;

+import org.red5.logging.Red5LoggerFactory;

+import org.slf4j.Logger;

+import org.springframework.beans.factory.annotation.Autowired;

+import org.springframework.transaction.annotation.Transactional;

+

+/**

+ * 

+ * CRUD for {@link Server}

+ * 

+ * @author solomax, sebawagner

+ * 

+ */

+@Transactional

+public class ServerDao implements IDataProviderDao<Server> {

+	private static final Logger log = Red5LoggerFactory.getLogger(

+			ServerDao.class, OpenmeetingsVariables.webAppRootKey);

+	public final static String[] searchFields = { "name", "address", "comment" };

+

+	@PersistenceContext

+	private EntityManager em;

+

+	@Autowired

+	private AdminUserDao usersDao;

+	

+	/**

+	 * Get a list of all available servers

+	 * 

+	 * @return

+	 */

+	public List<Server> getServerList() {

+		log.debug("getServerList enter");

+		TypedQuery<Server> q = em.createNamedQuery("getAllServers",

+				Server.class);

+		return q.getResultList();

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see org.apache.openmeetings.data.OmDAO#get(int, int)

+	 */

+	public List<Server> get(int start, int max) {

+		TypedQuery<Server> q = em.createNamedQuery("getAllServers", Server.class);

+		q.setFirstResult(start);

+		q.setMaxResults(max);

+		return q.getResultList();

+	}

+

+	public List<Server> get(String search, int start, int count, String order) {

+		TypedQuery<Server> q = em.createQuery(DaoHelper.getSearchQuery(

+				"Server", "s", search, true, false, order, searchFields),

+				Server.class);

+		q.setFirstResult(start);

+		q.setMaxResults(count);

+		return q.getResultList();

+	}

+

+	/**

+	 * get the list of all servers in the cluster that are ready to receive a

+	 * ping (active = true)

+	 * 

+	 * @return

+	 */

+	public List<Server> getActiveServers() {

+		return em.createNamedQuery("getActiveServers", Server.class)

+				.getResultList();

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see org.apache.openmeetings.data.OmDAO#count()

+	 */

+	public long count() {

+		log.debug("getServerCount enter");

+		TypedQuery<Long> q = em.createNamedQuery("getServerCount", Long.class);

+

+		return q.getSingleResult();

+	}

+

+	public long count(String search) {

+		TypedQuery<Long> q = em.createQuery(DaoHelper.getSearchQuery("Server",

+				"s", search, true, true, null, searchFields), Long.class);

+		return q.getSingleResult();

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see org.apache.openmeetings.data.OmDAO#get(long)

+	 */

+	public Server get(long id) {

+		Server result = null;

+		log.debug("getServer enter, id = " + id);

+		TypedQuery<Server> q = em.createNamedQuery("getServerById",

+				Server.class);

+		q.setParameter("id", id);

+		try {

+			result = q.getSingleResult();

+		} catch (NoResultException e) {

+			// noop

+		}

+		return result;

+	}

+

+	/**

+	 * Get server by its address

+	 * 

+	 * @param address

+	 * @return

+	 */

+	public Server getServerByAddress(String address) {

+		log.debug("getServer enter, address = " + address);

+		TypedQuery<Server> q = em.createNamedQuery("getServerByAddress",

+				Server.class);

+		q.setParameter("address", address);

+		List<Server> list = q.getResultList();

+		return list.size() > 0 ? list.get(0) : null;

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see

+	 * org.apache.openmeetings.data.OmDAO#update(org.apache.openmeetings.persistence

+	 * .beans.OmEntity, long)

+	 */

+	public Server update(Server entity, Long userId) {

+		entity.setDeleted(false);

+		if (entity.getId() > 0) {

+			entity.setUpdated(new Date());

+			if (userId != null) {

+				entity.setUpdatedby(usersDao.get(userId));

+			}

+			em.merge(entity);

+		} else {

+			entity.setInserted(new Date());

+			if (userId != null) {

+				entity.setInsertedby(usersDao.get(userId));

+			}

+			em.persist(entity);

+		}

+		return entity;

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see

+	 * org.apache.openmeetings.data.OmDAO#delete(org.apache.openmeetings.persistence

+	 * .beans.OmEntity, long)

+	 */

+	public void delete(Server entity, Long userId) {

+		if (entity.getId() > 0) {

+			entity.setUpdated(new Date());

+			if (userId != null) {

+				entity.setUpdatedby(usersDao.get(userId));

+			}

+			entity.setDeleted(true);

+			em.merge(entity);

+		}

+	}

+

+	/**

+	 * get {@link Server} by name

+	 * 

+	 * @param name

+	 * @return

+	 */

+	public List<Server> getServersByName(String name) {

+		TypedQuery<Server> q = em.createNamedQuery("getServerByName",

+				Server.class);

+		q.setParameter("name", name);

+		return q.getResultList();

+	}

+

+}

diff --git a/src/db/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java b/src/db/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
new file mode 100644
index 0000000..b954e85
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
@@ -0,0 +1,443 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.server;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.db.entity.server.Sessiondata;
+import org.apache.openmeetings.util.crypt.ManageCryptStyle;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 
+ * @author swagner This Class handles all session management
+ * 
+ *         TODO: Delete all inactive session by a scheduler
+ * 
+ */
+@Transactional
+public class SessiondataDao {
+	private static final Logger log = Red5LoggerFactory.getLogger(SessiondataDao.class, webAppRootKey);
+	@PersistenceContext
+	private EntityManager em;
+
+	@Autowired
+	private ISessionManager sessionManager;
+
+	/**
+	 * creates a new session-object in the database
+	 * 
+	 * @return
+	 */
+	public Sessiondata startsession() {
+		try {
+
+			log.debug("startsession :: startsession");
+
+			long thistime = new Date().getTime();
+			Sessiondata sessiondata = new Sessiondata();
+			sessiondata.setSession_id(ManageCryptStyle.getInstanceOfCrypt()
+					.createPassPhrase(String.valueOf(thistime).toString()));
+			sessiondata.setRefresh_time(new Date());
+			sessiondata.setStarttermin_time(new Date());
+			sessiondata.setUser_id(null);
+
+			sessiondata = em.merge(sessiondata);
+
+			return sessiondata;
+		} catch (Exception ex2) {
+			log.error("[startsession]: ", ex2);
+		}
+
+		return null;
+	}
+
+	public Sessiondata getSessionByHash(String SID) {
+		try {
+			log.debug("updateUser User SID: " + SID);
+
+			CriteriaBuilder cb = em.getCriteriaBuilder();
+			CriteriaQuery<Sessiondata> cq = cb.createQuery(Sessiondata.class);
+			Root<Sessiondata> c = cq.from(Sessiondata.class);
+			Predicate condition = cb.equal(c.get("session_id"), SID);
+			cq.where(condition);
+
+			TypedQuery<Sessiondata> q = em.createQuery(cq);
+
+			List<Sessiondata> fullList = q.getResultList();
+			if (fullList.size() == 0) {
+				log.error("Could not find session to update: " + SID);
+				return null;
+			}
+
+			Sessiondata sd = fullList.get(0);
+
+			return sd;
+		} catch (Exception ex2) {
+			log.error("[getSessionByHash]: ", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 * @param SID
+	 * @return
+	 */
+	public Long checkSession(String SID) {
+		try {
+			TypedQuery<Sessiondata> query = em.createNamedQuery("getSessionById", Sessiondata.class);
+			query.setParameter("session_id", SID);
+			List<Sessiondata> sessions = query.getResultList();
+
+			Sessiondata sessiondata = null;
+			if (sessions != null && sessions.size() > 0) {
+				sessiondata = sessions.get(0);
+			}
+
+			// Update the Session Object
+			if (sessiondata != null)
+				updatesession(SID);
+
+			// Checks if wether the Session or the User Object of that Session
+			// is set yet
+			if (sessiondata == null || sessiondata.getUser_id() == null
+					|| sessiondata.getUser_id().equals(new Long(0))) {
+				return new Long(0);
+			} else {
+				return sessiondata.getUser_id();
+			}
+		} catch (Exception ex2) {
+			log.error("[checkSession]: ", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * update the session of a user with a new user id this is needed to see if
+	 * the session is loggedin
+	 * 
+	 * @param SID
+	 * @param USER_ID
+	 */
+	public Boolean updateUser(String SID, long USER_ID) {
+		try {
+			log.debug("updateUser User: " + USER_ID + " || " + SID);
+
+			TypedQuery<Sessiondata> query = em.createNamedQuery("getSessionById", Sessiondata.class);
+			query.setParameter("session_id", SID);
+
+			List<Sessiondata> sessions = query.getResultList();
+
+			Sessiondata sessiondata = null;
+			if (sessions != null && sessions.size() > 0) {
+				sessiondata = sessions.get(0);
+			}
+
+			if (sessiondata == null) {
+				log.error("Could not find session to Update");
+				return false;
+			}
+			log.debug("Found session to update: " + sessiondata.getSession_id()
+					+ " userId: " + USER_ID);
+
+			sessiondata.setRefresh_time(new Date());
+			sessiondata.setUser_id(USER_ID);
+			if (sessiondata.getId() == null) {
+				em.persist(sessiondata);
+			} else {
+				if (!em.contains(sessiondata)) {
+					em.merge(sessiondata);
+				}
+			}
+			return true;
+		} catch (Exception ex2) {
+			log.error("[updateUser]: ", ex2);
+		}
+		return null;
+	}
+
+	public boolean updateUser(String SID, long USER_ID, boolean storePermanent, Long language_id) {
+		try {
+			log.debug("updateUser User: " + USER_ID + " || " + SID);
+			TypedQuery<Sessiondata> query = em.createNamedQuery("getSessionById", Sessiondata.class);
+			query.setParameter("session_id", SID);
+
+			List<Sessiondata> sessions = query.getResultList();
+
+			Sessiondata sessiondata = null;
+			if (sessions != null && sessions.size() > 0) {
+				sessiondata = sessions.get(0);
+			}
+
+			if (sessiondata == null) {
+				log.error("Could not find session to Update");
+				return false;
+			}
+			log.debug("Found session to update: " + sessiondata.getSession_id() + " userId: " + USER_ID);
+
+			sessiondata.setRefresh_time(new Date());
+			sessiondata.setUser_id(USER_ID);
+			if (storePermanent) {
+				sessiondata.setStorePermanent(storePermanent);
+			}
+			sessiondata.setLanguage_id(language_id);
+			if (sessiondata.getId() == null) {
+				em.persist(sessiondata);
+			} else {
+				if (!em.contains(sessiondata)) {
+					em.merge(sessiondata);
+				}
+			}
+
+			// log.debug("session updated User: "+USER_ID);
+			return true;
+		} catch (Exception ex2) {
+			log.error("[updateUser]: ", ex2);
+		}
+		return false;
+	}
+
+	public Boolean updateUserOrg(String SID, Long organization_id) {
+		try {
+			log.debug("updateUserOrg User: " + organization_id + " || " + SID);
+			TypedQuery<Sessiondata> query = em.createNamedQuery("getSessionById", Sessiondata.class);
+			query.setParameter("session_id", SID);
+
+			List<Sessiondata> sessions = query.getResultList();
+
+			Sessiondata sessiondata = null;
+			if (sessions != null && sessions.size() > 0) {
+				sessiondata = sessions.get(0);
+			}
+
+			if (sessiondata == null) {
+				log.error("Could not find session to Update");
+				return false;
+			}
+			log.debug("Found session to update: " + sessiondata.getSession_id()
+					+ " organisation_id: " + organization_id);
+
+			sessiondata.setRefresh_time(new Date());
+			sessiondata.setOrganization_id(organization_id);
+			if (sessiondata.getId() == null) {
+				em.persist(sessiondata);
+			} else {
+				if (!em.contains(sessiondata)) {
+					em.merge(sessiondata);
+				}
+			}
+			return true;
+		} catch (Exception ex2) {
+			log.error("[updateUser]: ", ex2);
+		}
+		return null;
+	}
+
+	public Boolean updateUserWithoutSession(String SID, Long USER_ID) {
+		try {
+			log.debug("updateUser User: " + USER_ID + " || " + SID);
+			TypedQuery<Sessiondata> query = em.createNamedQuery("getSessionById", Sessiondata.class);
+			query.setParameter("session_id", SID);
+
+			List<Sessiondata> sessions = query.getResultList();
+
+			Sessiondata sessiondata = null;
+			if (sessions != null && sessions.size() > 0) {
+				sessiondata = sessions.get(0);
+			}
+
+			if (sessiondata == null) {
+				log.error("Could not find session to Update");
+				return false;
+			}
+			log.debug("Found session to update: " + sessiondata.getSession_id()
+					+ " userId: " + USER_ID);
+
+			sessiondata.setRefresh_time(new Date());
+			sessiondata.setUser_id(USER_ID);
+			if (sessiondata.getId() == null) {
+				em.persist(sessiondata);
+			} else {
+				if (!em.contains(sessiondata)) {
+					em.merge(sessiondata);
+				}
+			}
+			return true;
+		} catch (Exception ex2) {
+			log.error("[updateUser]: ", ex2);
+		}
+		return null;
+	}
+
+	public Boolean updateUserRemoteSession(String SID, String sessionXml) {
+		try {
+			log.debug("updateUser User SID: " + SID);
+
+			CriteriaBuilder cb = em.getCriteriaBuilder();
+			CriteriaQuery<Sessiondata> cq = cb.createQuery(Sessiondata.class);
+			Root<Sessiondata> c = cq.from(Sessiondata.class);
+			Predicate condition = cb.equal(c.get("session_id"), SID);
+			cq.where(condition);
+
+			TypedQuery<Sessiondata> q = em.createQuery(cq);
+			List<Sessiondata> fullList = q.getResultList();
+
+			if (fullList.size() == 0) {
+				log.error("Could not find session to update: " + SID);
+				return false;
+			} else {
+				// log.error("Found session to update: "+SID);
+			}
+			Sessiondata sd = fullList.get(0);
+			sd.setRefresh_time(new Date());
+			sd.setSessionXml(sessionXml);
+
+			if (sd.getId() == null) {
+				em.persist(sd);
+			} else {
+				if (!em.contains(sd)) {
+					em.merge(sd);
+				}
+			}
+			return true;
+		} catch (Exception ex2) {
+			log.error("[updateUserRemoteSession]: ", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * update the session every time a user makes a request
+	 * 
+	 * @param SID
+	 */
+	private void updatesession(String SID) {
+		try {
+			CriteriaBuilder cb = em.getCriteriaBuilder();
+			CriteriaQuery<Sessiondata> cq = cb.createQuery(Sessiondata.class);
+			Root<Sessiondata> c = cq.from(Sessiondata.class);
+			Predicate condition = cb.equal(c.get("session_id"), SID);
+			cq.where(condition);
+
+			TypedQuery<Sessiondata> q = em.createQuery(cq);
+
+			List<Sessiondata> fullList = q.getResultList();
+			if (fullList.size() == 0) {
+				log.error("Found NO session to updateSession: ");
+
+			} else {
+				// log.debug("Found session to updateSession: ");
+				Sessiondata sd = fullList.iterator().next();
+				// log.debug("Found session to updateSession sd "+sd.getUser_id()+" "+sd.getSession_id());
+				sd.setRefresh_time(new Date());
+
+				if (sd.getId() == null) {
+					em.persist(sd);
+				} else {
+					if (!em.contains(sd)) {
+						em.merge(sd);
+					}
+				}
+			}
+
+		} catch (Exception ex2) {
+			log.error("[updatesession]: ", ex2);
+		}
+	}
+
+	/**
+	 * 
+	 * @param date
+	 * @return
+	 */
+	private List<Sessiondata> getSessionToDelete(Date refresh_time) {
+		try {
+			TypedQuery<Sessiondata> query = em.createNamedQuery("getSessionToDelete", Sessiondata.class);
+			query.setParameter("refresh_time", refresh_time);
+			return query.getResultList();
+		} catch (Exception ex2) {
+			log.error("[getSessionToDelete]: ", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 *
+	 */
+	public void clearSessionTable() {
+		try {
+			log.debug("****** clearSessionTable: ");
+			Calendar rightNow = Calendar.getInstance();
+			rightNow.setTimeInMillis(rightNow.getTimeInMillis() - 1800000);
+			List<Sessiondata> l = this.getSessionToDelete(rightNow.getTime());
+			log.debug("clearSessionTable: " + l.size());
+			for (Iterator<Sessiondata> it = l.iterator(); it.hasNext();) {
+				Sessiondata sData = it.next();
+				sData = em.find(Sessiondata.class, sData.getId());
+				em.remove(sData);
+			}
+		} catch (Exception err) {
+			log.error("clearSessionTable", err);
+		}
+	}
+
+	/**
+	 * @param room_id
+	 */
+	public void clearSessionByRoomId(Long room_id) {
+		try {
+			for (Client rcl : sessionManager.getClientListByRoom(room_id)) {
+				String aux = rcl.getSwfurl();
+
+				int init_pos = aux.indexOf("sid=") + 4;
+				int end_pos = init_pos + 32;
+				if (end_pos > aux.length())
+					end_pos = aux.length();
+				String SID = aux.substring(init_pos, end_pos);
+
+				Sessiondata sData = this.getSessionByHash(SID);
+
+				sData = em.find(Sessiondata.class, sData.getId());
+				em.remove(sData);
+			}
+
+		} catch (Exception err) {
+			log.error("clearSessionByRoomId", err);
+		}
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java b/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java
new file mode 100644
index 0000000..f34d56b
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/user/AbstractUserDao.java
@@ -0,0 +1,495 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.user;
+
+import static org.apache.openmeetings.db.util.UserHelper.getMinLoginLength;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAUT_LANG_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.security.NoSuchAlgorithmException;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.openjpa.persistence.OpenJPAPersistence;
+import org.apache.openjpa.persistence.OpenJPAQuery;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.entity.user.Address;
+import org.apache.openmeetings.db.entity.user.Organisation_Users;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.User.Type;
+import org.apache.openmeetings.db.util.TimezoneUtil;
+import org.apache.openmeetings.util.DaoHelper;
+import org.apache.openmeetings.util.crypt.ManageCryptStyle;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * CRUD operations for {@link User}
+ * 
+ * @author swagner, solomax, vasya
+ * 
+ */
+@Transactional
+public class AbstractUserDao  {
+	private static final Logger log = Red5LoggerFactory.getLogger(AbstractUserDao.class, webAppRootKey);
+
+	public final static String[] searchFields = {"lastname", "firstname", "login", "adresses.email", "adresses.town"};
+
+	@PersistenceContext
+	private EntityManager em;
+
+	@Autowired
+	private ConfigurationDao cfgDao;
+	@Autowired
+	private StateDao stateDaoImpl;
+	@Autowired
+	private TimezoneUtil timezoneUtil;
+
+	/**
+	 * Get a new instance of the {@link User} entity, with all default values
+	 * set
+	 * 
+	 * @param currentUser
+	 *            the timezone of the current user is copied to the new default
+	 *            one (if the current user has one)
+	 * @return
+	 */
+	public User getNewUserInstance(User currentUser) {
+		User user = new User();
+		user.setSalutations_id(1L); // TODO: Fix default selection to be
+									// configurable
+		user.setLevel_id(1L);
+		user.setLanguage_id(cfgDao.getConfValue(CONFIG_DEFAUT_LANG_KEY, Long.class, "1"));
+		user.setTimeZoneId(timezoneUtil.getTimeZone(currentUser).getID());
+		user.setForceTimeZoneCheck(false);
+		user.setSendSMS(false);
+		user.setAge(new Date());
+		Address adresses = new Address();
+		adresses.setStates(stateDaoImpl.getStateById(1L));
+		user.setAdresses(adresses);
+		user.setStatus(1);
+		user.setShowContactData(false);
+		user.setShowContactDataToContacts(false);
+
+		return user;
+	}
+
+	public List<User> get(int first, int count) {
+		TypedQuery<User> q = em.createNamedQuery("getNondeletedUsers", User.class);
+		q.setFirstResult(first);
+		q.setMaxResults(count);
+		return q.getResultList();
+	}
+	
+	private String getAdditionalWhere(boolean excludeContacts) {
+		return excludeContacts ? "(u.type <> :contact OR (u.type = :contact AND u.ownerId = :ownerId))" : null;
+	}
+	
+	private void setAdditionalParams(TypedQuery<?> q, boolean excludeContacts, long currentUserId) {
+		if (excludeContacts) {
+			q.setParameter("ownerId", currentUserId);
+			q.setParameter("contact", Type.contact);
+		}
+	}
+
+	public List<User> get(String search, int start, int count, String sort, boolean isAdmin, long currentUserId) {
+		TypedQuery<User> q = em.createQuery(DaoHelper.getSearchQuery("User", "u", search, true, false, getAdditionalWhere(isAdmin), sort, searchFields), User.class);
+		q.setFirstResult(start);
+		q.setMaxResults(count);
+		setAdditionalParams(q, isAdmin, currentUserId);
+		return q.getResultList();
+	}
+	
+	public long count() {
+		// get all users
+		TypedQuery<Long> q = em.createNamedQuery("countNondeletedUsers", Long.class);
+		return q.getSingleResult();
+	}
+
+	public long count(String search, boolean excludeContacts, long currentUserId) {
+		TypedQuery<Long> q = em.createQuery(DaoHelper.getSearchQuery("User", "u", search, true, true, getAdditionalWhere(excludeContacts), null, searchFields), Long.class);
+		setAdditionalParams(q, excludeContacts, currentUserId);
+		return q.getSingleResult();
+	}
+	
+	public List<User> get(String search, boolean excludeContacts, long currentUserId) {
+		TypedQuery<User> q = em.createQuery(DaoHelper.getSearchQuery("User", "u", search, true, false, getAdditionalWhere(excludeContacts), null, searchFields), User.class);
+		if (excludeContacts) {
+			q.setParameter("ownerId", currentUserId);
+			q.setParameter("contact", Type.contact);
+		}
+		return q.getResultList();
+	}
+
+	public User update(User u, Long userId) {
+		if (u.getUser_id() == null) {
+			u.setStarttime(new Date());
+			em.persist(u);
+		} else {
+			u.setUpdatetime(new Date());
+			u =	em.merge(u);
+		}
+		return u;
+	}
+	
+	// TODO: Why the password field is not set via the Model is because its
+	// FetchType is Lazy, this extra hook here might be not needed with a
+	// different mechanism to protect the password from being read
+	// sebawagner, 01.10.2012
+	public User update(User user, String password, long updatedBy) throws NoSuchAlgorithmException {
+		User u = update(user, updatedBy);
+		if (password != null && !password.isEmpty()) {
+			//OpenJPA is not allowing to set fields not being fetched before
+			User u1 = get(u.getUser_id(), true);
+			u1.updatePassword(cfgDao, password);
+			update(u1, updatedBy);
+		}
+		return u;
+	}
+	
+	public void delete(User u, Long userId) {
+		deleteUserID(u.getUser_id());
+	}
+
+	public User get(long user_id) {
+		return get(user_id, false);
+	}
+	
+	private User get(long user_id, boolean force) {
+		if (user_id > 0) {
+			TypedQuery<User> query = em.createNamedQuery("getUserById",
+					User.class);
+			query.setParameter("user_id", user_id);
+
+			User users = null;
+			try {
+				if (force) {
+					@SuppressWarnings("unchecked")
+					OpenJPAQuery<User> kq = OpenJPAPersistence.cast(query);
+					kq.getFetchPlan().addFetchGroup("backupexport");
+					users = kq.getSingleResult();
+				} else {
+					users = query.getSingleResult();
+				}
+			} catch (NoResultException ex) {
+			}
+			return users;
+		} else {
+			log.info("[getUser] " + "Info: No USER_ID given");
+		}
+		return null;
+	}
+
+	public Long deleteUserID(long userId) {
+		try {
+			if (userId != 0) {
+				User us = get(userId);
+				for (Organisation_Users ou : us.getOrganisation_users()){
+					em.remove(ou);
+				}
+				us.setOrganisation_users(null);
+				us.setDeleted(true);
+				us.setUpdatetime(new Date());
+				us.setSipUser(null);
+				Address adr = us.getAdresses();
+				if (adr != null) {
+					adr.setDeleted(true);
+				}
+
+				if (us.getUser_id() == null) {
+					em.persist(us);
+				} else {
+					if (!em.contains(us)) {
+						em.merge(us);
+					}
+				}
+				return us.getUser_id();
+			}
+		} catch (Exception ex2) {
+			log.error("[deleteUserID]", ex2);
+		}
+		return null;
+	}
+
+	public List<User> getAllUsers() {
+		try {
+			TypedQuery<User> q = em.createNamedQuery("getNondeletedUsers", User.class);
+			return q.getResultList();
+		} catch (Exception ex2) {
+			log.error("[getAllUsers] ", ex2);
+		}
+		return null;
+	}
+
+	public List<User> getAllUsersDeleted() {
+		try {
+			TypedQuery<User> q = em.createNamedQuery("getAllUsers", User.class);
+			@SuppressWarnings("unchecked")
+			OpenJPAQuery<User> kq = OpenJPAPersistence.cast(q);
+			kq.getFetchPlan().addFetchGroup("backupexport");
+			return kq.getResultList();
+		} catch (Exception ex2) {
+			log.error("[getAllUsersDeleted] ", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * check for duplicates
+	 * 
+	 * @param DataValue
+	 * @return
+	 */
+	public boolean checkUserLogin(String login, Long id) {
+		log.debug("checkUserLogin: login = {}, id = {}", login, id);
+		long count = em.createNamedQuery("checkUserLogin", Long.class)
+				.setParameter("login", login)
+				.setParameter("id", id == null ? 0 : id)
+				.getSingleResult();
+		return count == 0;
+	}
+
+	/**
+	 * Checks if a mail is already taken by someone else
+	 * 
+	 * @param email
+	 * @return
+	 */
+	public boolean checkUserEMail(String email, Long id) {
+		log.debug("checkUserMail: email = {}, id = {}", email, id);
+		if (email == null || email.length() == 0) {
+			return true;
+		}
+		long count = em.createNamedQuery("checkUserEmail", Long.class)
+			.setParameter("email", email)
+			.setParameter("id", id == null ? 0 : id)
+			.setParameter("type", Type.contact)
+			.getSingleResult();
+		log.debug("size: " + count);
+
+		return count == 0;
+	}
+	
+	public User getUserByName(String login) {
+		User us = null;
+		try {
+			us = em.createNamedQuery("getUserByLogin", User.class)
+					.setParameter("login", login)
+					.setParameter("type", User.Type.user)
+					.getSingleResult();
+		} catch (NoResultException ex) {
+		}
+		return us;
+	}
+
+	public User getUserByEmail(String email) {
+		User us = null;
+		try {
+			us = em.createNamedQuery("getUserByEmail", User.class)
+					.setParameter("email", email)
+					.setParameter("type", User.Type.user)
+					.getSingleResult();
+		} catch (NoResultException ex) {
+		}
+		return us;
+	}
+
+	public Object getUserByHash(String hash) {
+		if (hash.length() == 0) {
+			return new Long(-5);
+		}
+		User us = null;
+		try {
+			us = em.createNamedQuery("getUserByHash", User.class)
+					.setParameter("resethash", hash)
+					.setParameter("type", User.Type.user)
+					.getSingleResult();
+		} catch (NoResultException ex) {
+		} catch (Exception e) {
+			log.error("[getUserByHash]", e);
+		}
+		if (us != null) {
+			return us;
+		} else {
+			return new Long(-5);
+		}
+	}
+
+	/**
+	 * @param search
+	 * @return
+	 */
+	public Long selectMaxFromUsersWithSearch(String search) {
+		try {
+			// get all users
+			TypedQuery<Long> query = em.createNamedQuery("selectMaxFromUsersWithSearch", Long.class);
+			query.setParameter("search", StringUtils.lowerCase(search));
+			List<Long> ll = query.getResultList();
+			log.info("selectMaxFromUsers" + ll.get(0));
+			return ll.get(0);
+		} catch (Exception ex2) {
+			log.error("[selectMaxFromUsers] ", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * Returns true if the password is correct
+	 * 
+	 * @param userId
+	 * @param password
+	 * @return
+	 */
+	public boolean verifyPassword(Long userId, String password) {
+		TypedQuery<Long> query = em.createNamedQuery("checkPassword", Long.class);
+		query.setParameter("userId", userId);
+		query.setParameter("password", ManageCryptStyle.getInstanceOfCrypt().createPassPhrase(password));
+		return query.getResultList().get(0) == 1;
+
+	}
+
+	public User getContact(String email, long ownerId) {
+		return getContact(email, "", "", ownerId);
+	}
+	
+	public User getContact(String email, User owner) {
+		return getContact(email, "", "", null, null, owner);
+	}
+	
+	public User getContact(String email, String firstName, String lastName, long ownerId) {
+		return getContact(email, firstName, lastName, null, null, get(ownerId));
+	}
+	
+	public User getContact(String email, String firstName, String lastName, Long langId, String tzId, User owner) {
+		User to = null;
+		try {
+			to = em.createNamedQuery("getContactByEmailAndUser", User.class)
+					.setParameter("email", email).setParameter("type", User.Type.contact).setParameter("ownerId", owner.getUser_id()).getSingleResult();
+		} catch (Exception e) {
+			//no-op
+		}
+		if (to == null) {
+			to = new User();
+			to.setType(Type.contact);
+			String login = owner.getUser_id() + "_" + email; //UserId prefix is used to ensure unique login
+			to.setLogin(login.length() < getMinLoginLength(cfgDao) ? UUID.randomUUID().toString() : login);
+			to.setFirstname(firstName);
+			to.setLastname(lastName);
+			to.setLanguage_id(null == langId ? owner.getLanguage_id() : langId);
+			to.setOwnerId(owner.getUser_id());
+			to.setAdresses(new Address());
+			to.getAdresses().setEmail(email);
+			to.setTimeZoneId(null == tzId ? owner.getTimeZoneId() : tzId);
+		}
+		return to;
+	}
+
+	/**
+	 * @param hash
+	 * @return
+	 */
+	public User getUserByActivationHash(String hash) {
+		TypedQuery<User> query = em.createQuery("SELECT u FROM User as u WHERE u.activatehash = :activatehash"
+				+ " AND u.deleted = false", User.class);
+		query.setParameter("activatehash", hash);
+		User u = null;
+		try {
+			u = query.getSingleResult();
+		} catch (NoResultException e) {
+			// u=null}
+		}
+		return u;
+	}
+
+	private StringBuilder getUserProfileQuery(boolean count, String text, String offers, String search) {
+		StringBuilder sb = new StringBuilder("SELECT ");
+		sb.append(count ? "COUNT(" : "").append("u").append(count ? ") " : " ")
+			.append("FROM User u WHERE u.deleted = false AND ")
+			.append(getAdditionalWhere(true));
+		if (offers != null && offers.length() != 0) {
+			sb.append(" AND (LOWER(u.userOffers) LIKE :userOffers) ");
+		}
+		if (search != null && search.length() != 0) {
+			sb.append(" AND (LOWER(u.userSearchs) LIKE :userSearchs) ");
+		}
+		if (text != null && text.length() != 0) {
+			sb.append(" AND (LOWER(u.login) LIKE :search ")
+				.append("OR LOWER(u.firstname) LIKE :search ")
+				.append("OR LOWER(u.lastname) LIKE :search ")
+				.append("OR LOWER(u.adresses.email) LIKE :search ")
+				.append("OR LOWER(u.adresses.town) LIKE :search " + ") ");
+		}
+		return sb;
+	}
+	
+	public List<User> searchUserProfile(long userId, String text, String offers, String search, String orderBy, int start, int max, boolean asc) {
+		StringBuilder sb = getUserProfileQuery(false, text, offers, search);
+		sb.append(" ORDER BY ").append(orderBy).append(asc ? " ASC" : " DESC");
+
+		log.debug("hql :: " + sb.toString());
+		TypedQuery<User> query = em.createQuery(sb.toString(), User.class);
+		setAdditionalParams(query, false, userId);
+
+		if (text != null && text.length() != 0) {
+			query.setParameter("search", StringUtils.lowerCase("%" + text + "%"));
+		}
+		if (offers != null && offers.length() != 0) {
+			query.setParameter("userOffers", StringUtils.lowerCase("%" + offers + "%"));
+		}
+		if (search != null && search.length() != 0) {
+			query.setParameter("userSearchs", StringUtils.lowerCase("%" + search + "%"));
+		}
+		return query.setFirstResult(start).setMaxResults(max).getResultList();
+	}
+
+	public Long searchCountUserProfile(long userId, String text, String offers, String search) {
+		StringBuilder sb = getUserProfileQuery(true, text, offers, search);
+		
+		log.debug("hql :: " + sb.toString());
+		TypedQuery<Long> query = em.createQuery(sb.toString(), Long.class);
+		setAdditionalParams(query, false, userId);
+		
+		if (text != null && text.length() != 0) {
+			query.setParameter("search", StringUtils.lowerCase("%" + text + "%"));
+		}
+		if (offers != null && offers.length() != 0) {
+			query.setParameter("userOffers", StringUtils.lowerCase("%" + offers + "%"));
+		}
+		if (search != null && search.length() != 0) {
+			query.setParameter("userSearchs", StringUtils.lowerCase("%" + search + "%"));
+		}
+		return query.getSingleResult();
+	}
+
+	public User getExternalUser(String extId, String extType) {
+		return em.createNamedQuery("getExternalUser", User.class)
+				.setParameter("externalId", extId)
+				.setParameter("externalType", extType)
+				.getSingleResult();
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/user/AdminUserDao.java b/src/db/java/org/apache/openmeetings/db/dao/user/AdminUserDao.java
new file mode 100644
index 0000000..59a7409
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/user/AdminUserDao.java
@@ -0,0 +1,131 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.db.dao.user;

+

+import java.security.NoSuchAlgorithmException;

+import java.util.List;

+

+import org.apache.openmeetings.db.dao.IDataProviderDao;

+import org.apache.openmeetings.db.entity.user.User;

+import org.springframework.beans.factory.annotation.Autowired;

+

+public class AdminUserDao implements IDataProviderDao<User> {

+	

+	@Autowired

+	private AbstractUserDao dao;

+

+	public final static String[] searchFields = AbstractUserDao.searchFields;

+

+	

+	public User get(long id) {

+		return dao.get(id);

+	}

+

+	public List<User> get(int start, int count) {

+		return dao.get(start, count);

+	}

+

+	public List<User> get(String search, int start, int count, String order) {

+		return dao.get(search, start, count, order, true, -1);

+	}

+

+	public List<User> get(String search, boolean excludeContacts) {

+		return dao.get(search, excludeContacts, -1);

+	}

+

+	public long count() {

+		return dao.count();

+	}

+

+	public long count(String search) {

+		return dao.count(search, true, -1);

+	}

+

+	public User update(User entity, Long userId) {

+		return dao.update(entity, userId);

+	}

+

+	public void delete(User entity, Long userId) {

+		dao.delete(entity, userId);

+	}

+

+	public Long deleteUserID(long userId) {

+		return dao.deleteUserID(userId);

+	}

+	

+	public User getNewUserInstance(User currentUser) {

+		return dao.getNewUserInstance(currentUser);

+	}

+	

+	public User update(User user, String password, long updatedBy) throws NoSuchAlgorithmException {

+		return dao.update(user, password, updatedBy);

+	}

+

+	public List<User> getAllUsers() {

+		return dao.getAllUsers();

+	}

+

+	public List<User> getAllUsersDeleted() {

+		return dao.getAllUsersDeleted();

+	}

+	

+	public boolean verifyPassword(Long userId, String password) {

+		return dao.verifyPassword(userId, password);

+	}

+

+	public boolean checkUserLogin(String login, Long id) {

+		return dao.checkUserLogin(login, id);

+	}

+	

+	public boolean checkUserEMail(String email, Long id) {

+		return dao.checkUserEMail(email, id);

+	}

+	

+	public User getUserByName(String login) {

+		return dao.getUserByName(login);

+	}

+

+	public User getUserByEmail(String email) {

+		return dao.getUserByEmail(email);

+	}

+	

+	public Object getUserByHash(String hash) {

+		return dao.getUserByHash(hash);

+	}

+	

+	public User getContact(String email, User owner) {

+		return dao.getContact(email, owner);

+	}

+	

+	public User getContact(String email, long ownerId) {

+		return dao.getContact(email, ownerId);

+	}

+	

+	public User getContact(String email, String firstName, String lastName, long ownerId) {

+		return dao.getContact(email, firstName, lastName, ownerId);

+	}

+	

+	public User getContact(String email, String firstName, String lastName, Long langId, String tzId, long ownerId) {

+		return dao.getContact(email, firstName, lastName, langId, tzId, dao.get(ownerId));

+	}

+	

+	public User getExternalUser(String extId, String extType) {

+		return dao.getExternalUser(extId, extType);

+	}

+}

diff --git a/src/db/java/org/apache/openmeetings/db/dao/user/ILdapLoginManagement.java b/src/db/java/org/apache/openmeetings/db/dao/user/ILdapLoginManagement.java
new file mode 100644
index 0000000..b4fefe2
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/user/ILdapLoginManagement.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.user;
+
+import org.apache.openmeetings.db.entity.room.Client;
+import org.red5.server.api.IClient;
+
+//FIXME HACK to bypass cross project compilation
+public interface ILdapLoginManagement {
+	Object doLdapLogin(String user, String passwd,
+			Client currentClient, IClient client, String SID, String domain);
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/user/IUserManager.java b/src/db/java/org/apache/openmeetings/db/dao/user/IUserManager.java
new file mode 100644
index 0000000..fce0260
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/user/IUserManager.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.user;
+
+import java.util.Date;
+import java.util.List;
+import java.util.TimeZone;
+
+import org.apache.openmeetings.db.entity.room.Client;
+import org.red5.server.api.IClient;
+
+//FIXME HACK to bypass cross project compilation
+public interface IUserManager {
+	Long registerUserInit(long user_level, long level_id, int availible,
+			int status, String login, String password, String lastname,
+			String firstname, String email, Date age, String street,
+			String additionalname, String fax, String zip, long states_id,
+			String town, long language_id, boolean sendWelcomeMessage,
+			List<Long> organisations, String phone, boolean sendSMS,
+			Boolean sendConfirmation,
+			TimeZone timezone, Boolean forceTimeZoneCheck,
+			String userOffers, String userSearchs, Boolean showContactData,
+			Boolean showContactDataToContacts, String activatedHash) throws Exception;
+
+	Long registerUserNoEmail(String login, String Userpass,
+			String lastname, String firstname, String email, Date age,
+			String street, String additionalname, String fax, String zip,
+			long states_id, String town, long language_id, String phone, boolean sendSMS, 
+			boolean generateSipUserData, String jNameTimeZone);
+	
+	Object loginUser(String SID, String userOrEmail, String userpass,
+			Client currentClient, IClient client, Boolean storePermanent);
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/user/IUserService.java b/src/db/java/org/apache/openmeetings/db/dao/user/IUserService.java
new file mode 100644
index 0000000..65b5d87
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/user/IUserService.java
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.user;
+
+//FIXME HACK to bypass cross project compilation
+public interface IUserService {
+	Boolean kickUserByStreamId(String SID, String streamid, long serverId);
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/user/OrganisationDao.java b/src/db/java/org/apache/openmeetings/db/dao/user/OrganisationDao.java
new file mode 100644
index 0000000..88a8477
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/user/OrganisationDao.java
@@ -0,0 +1,106 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.db.dao.user;

+

+import java.util.Date;

+import java.util.List;

+

+import javax.persistence.EntityManager;

+import javax.persistence.NoResultException;

+import javax.persistence.PersistenceContext;

+import javax.persistence.TypedQuery;

+

+import org.apache.openmeetings.db.dao.IDataProviderDao;

+import org.apache.openmeetings.db.entity.user.Organisation;

+import org.apache.openmeetings.util.DaoHelper;

+import org.springframework.transaction.annotation.Transactional;

+

+@Transactional

+public class OrganisationDao implements IDataProviderDao<Organisation> {

+	public final static String[] searchFields = {"name"};

+	@PersistenceContext

+	private EntityManager em;

+

+	public Organisation get(long id) {

+		TypedQuery<Organisation> query = em.createNamedQuery("getOrganisationById", Organisation.class);

+		query.setParameter("organisation_id", id);

+		query.setParameter("deleted", false);

+		Organisation o = null;

+		try {

+			o = query.getSingleResult();

+		} catch (NoResultException e) {

+			// o = null;

+		}

+		return o;

+	}

+

+	public List<Organisation> get(int start, int count) {

+		TypedQuery<Organisation> q = em.createNamedQuery("getNondeletedOrganisations", Organisation.class);

+		q.setFirstResult(start);

+		q.setMaxResults(count);

+		return q.getResultList();

+	}

+

+	public List<Organisation> get(String search, int start, int count, String sort) {

+		TypedQuery<Organisation> q = em.createQuery(DaoHelper.getSearchQuery("Organisation", "o", search, true, false, sort, searchFields), Organisation.class);

+		q.setFirstResult(start);

+		q.setMaxResults(count);

+		return q.getResultList();

+	}

+	

+	public long count() {

+		TypedQuery<Long> q = em.createNamedQuery("countOrganisations", Long.class);

+		return q.getSingleResult();

+	}

+

+	public long count(String search) {

+		TypedQuery<Long> q = em.createQuery(DaoHelper.getSearchQuery("Organisation", "o", search, true, true, null, searchFields), Long.class);

+		return q.getSingleResult();

+	}

+	

+	public Organisation update(Organisation entity, Long userId) {

+		if (entity.getOrganisation_id() == null) {

+			if (userId != null) {

+				entity.setInsertedby(userId);

+			}

+			entity.setStarttime(new Date());

+			em.persist(entity);

+		} else {

+			if (userId != null) {

+				entity.setUpdatedby(userId);

+			}

+			entity.setUpdatetime(new Date());

+			em.merge(entity);

+		}

+		return entity;

+	}

+

+	public void delete(Organisation entity, Long userId) {

+		em.createNamedQuery("deleteUsersFromOrganisation")

+			.setParameter("id", entity.getOrganisation_id())

+			.executeUpdate();

+

+		entity.setDeleted(true);

+		if (userId != null) {

+			entity.setUpdatedby(userId);

+		}

+

+		em.merge(entity);

+	}

+}

diff --git a/src/db/java/org/apache/openmeetings/db/dao/user/OrganisationUserDao.java b/src/db/java/org/apache/openmeetings/db/dao/user/OrganisationUserDao.java
new file mode 100644
index 0000000..0bdd70a
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/user/OrganisationUserDao.java
@@ -0,0 +1,124 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.db.dao.user;

+

+import java.util.List;

+

+import javax.persistence.EntityManager;

+import javax.persistence.PersistenceContext;

+import javax.persistence.TypedQuery;

+

+import org.apache.openmeetings.db.dao.IDataProviderDao;

+import org.apache.openmeetings.db.entity.user.Organisation_Users;

+import org.apache.openmeetings.db.entity.user.User;

+import org.apache.openmeetings.util.DaoHelper;

+import org.springframework.beans.factory.annotation.Autowired;

+import org.springframework.transaction.annotation.Transactional;

+

+@Transactional

+public class OrganisationUserDao implements IDataProviderDao<Organisation_Users> {

+	@PersistenceContext

+	private EntityManager em;

+	@Autowired

+	private UserDao usersDao;

+	public final static String[] searchFields = {"user.lastname", "user.firstname", "user.login", "user.adresses.email"};

+

+	public Organisation_Users get(long id) {

+		TypedQuery<Organisation_Users> q = em.createNamedQuery("getOrganisationUsersById", Organisation_Users.class);

+		q.setParameter("id", id);

+		return q.getSingleResult();

+	}

+

+	public List<Organisation_Users> get(int start, int count) {

+		throw new RuntimeException("Should not be used");

+	}

+

+	public List<Organisation_Users> get(String search, int start, int count, String sort) {

+		throw new RuntimeException("Should not be used");

+	}

+	

+	public List<Organisation_Users> get(long orgId, String search, int start, int count, String sort) {

+		TypedQuery<Organisation_Users> q = em.createQuery(DaoHelper.getSearchQuery("Organisation_Users", "ou", search, false, false, sort, searchFields), Organisation_Users.class);

+		q.setFirstResult(start);

+		q.setMaxResults(count);

+		return q.getResultList();

+	}

+	

+	public List<Organisation_Users> get(long orgId, int start, int count) {

+		TypedQuery<Organisation_Users> q = em.createNamedQuery("getOrganisationUsersByOrgId", Organisation_Users.class);

+		q.setParameter("id", orgId);

+		q.setFirstResult(start);

+		q.setMaxResults(count);

+

+		// This refresh is necessary because after saving the user entity the

+		// user_id is somehow not

+		// filled into the Organisation_Users, this might be fixed by

+		// implementing another

+		// JOIN or mapping strategy

+		List<Organisation_Users> orgUserList = q.getResultList();

+		for (Organisation_Users ou : orgUserList) {

+			em.refresh(ou);

+		}

+		return orgUserList;

+	}

+

+	public boolean isUserInOrganization(long orgId, long userId) {

+		return em.createNamedQuery("isUserInOrganization", Organisation_Users.class)

+				.setParameter("orgId", orgId).setParameter("userId", userId).getResultList().size() > 0;

+	}

+	

+	public long count() {

+		throw new RuntimeException("Should not be used");

+	}

+

+	public long count(String search) {

+		throw new RuntimeException("Should not be used");

+	}

+	

+	public long count(long orgId, String search) {

+		TypedQuery<Long> q = em.createQuery(DaoHelper.getSearchQuery("Organisation_Users", "ou", search, false, true, null, searchFields), Long.class);

+		return q.getSingleResult();

+	}

+	

+	public long count(long orgId) {

+		TypedQuery<Long> q = em.createNamedQuery("countOrganisationUsers", Long.class);

+		q.setParameter("id", orgId);

+		return q.getSingleResult();

+	}

+

+	public Organisation_Users update(Organisation_Users entity, Long userId) {

+		//if (entity.getOrganisation_users_id())// TODO Auto-generated method stub

+		return entity;

+	}

+

+	public void delete(Organisation_Users entity, Long userId) {

+		if (entity.getOrganisation_users_id() != null) {

+			User u = usersDao.get(entity.getUser_id());

+			int idx = u.getOrganisation_users().indexOf(entity);

+			//entity has been detached need to re-fetch

+			Organisation_Users ou = u.getOrganisation_users().remove(idx);

+			em.remove(ou);

+			usersDao.update(u, userId);

+		}

+	}

+

+	public void add() {

+		

+	}

+}

diff --git a/src/db/java/org/apache/openmeetings/db/dao/user/PrivateMessageFolderDao.java b/src/db/java/org/apache/openmeetings/db/dao/user/PrivateMessageFolderDao.java
new file mode 100644
index 0000000..276f1bd
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/user/PrivateMessageFolderDao.java
@@ -0,0 +1,149 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.user;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.dao.IDataProviderDao;
+import org.apache.openmeetings.db.entity.user.PrivateMessageFolder;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class PrivateMessageFolderDao implements IDataProviderDao<PrivateMessageFolder> {
+	private static final Logger log = Red5LoggerFactory.getLogger(PrivateMessageFolderDao.class, webAppRootKey);
+	@PersistenceContext
+	private EntityManager em;
+	
+	public Long addPrivateMessageFolder(String folderName, Long userId) {
+		try {
+			PrivateMessageFolder privateMessageFolder = new PrivateMessageFolder();
+			privateMessageFolder.setFolderName(folderName);
+			privateMessageFolder.setUserId(userId);
+			privateMessageFolder.setInserted(new Date());
+			
+			privateMessageFolder = em.merge(privateMessageFolder);
+			Long privateMessageFolderId = privateMessageFolder.getPrivateMessageFolderId();
+			
+			return privateMessageFolderId;	
+		} catch (Exception e) {
+			log.error("[addPrivateMessageFolder]",e);
+		}
+		return null;
+	}
+	
+	public Long addPrivateMessageFolderObj(PrivateMessageFolder privateMessageFolder) {
+		try {
+			privateMessageFolder.setInserted(new Date());
+			
+			privateMessageFolder = em.merge(privateMessageFolder);
+			Long privateMessageFolderId = privateMessageFolder.getPrivateMessageFolderId();
+			
+			return privateMessageFolderId;	
+		} catch (Exception e) {
+			log.error("[addPrivateMessageFolder]",e);
+		}
+		return null;
+	}
+	
+	public PrivateMessageFolder get(long privateMessageFolderId) {
+		try {
+			String hql = "select c from PrivateMessageFolder c " +
+						"where c.privateMessageFolderId = :privateMessageFolderId ";
+
+			TypedQuery<PrivateMessageFolder> query = em.createQuery(hql, PrivateMessageFolder.class); 
+			query.setParameter("privateMessageFolderId", privateMessageFolderId);
+			
+			PrivateMessageFolder privateMessageFolder = null;
+			try {
+				privateMessageFolder = query.getSingleResult();
+		    } catch (NoResultException ex) {
+		    }
+			
+			return privateMessageFolder;
+		} catch (Exception e) {
+			log.error("[getPrivateMessageFolderById]",e);
+		}
+		return null;
+	}
+
+	public List<PrivateMessageFolder> get(int start, int count) {
+		return em.createQuery("SELECT c FROM PrivateMessageFolder c ORDER BY c.privateMessageFolderId", PrivateMessageFolder.class)
+				.setFirstResult(start).setMaxResults(count)
+				.getResultList();
+	}
+
+	public PrivateMessageFolder update(PrivateMessageFolder privateMessageFolder, Long userId) {
+		if (privateMessageFolder.getPrivateMessageFolderId() == 0) {
+			em.persist(privateMessageFolder);
+	    } else {
+	    	if (!em.contains(privateMessageFolder)) {
+	    		privateMessageFolder = em.merge(privateMessageFolder);
+		    }
+		}
+		return privateMessageFolder;
+	}
+	
+	public List<PrivateMessageFolder> getPrivateMessageFolderByUserId(Long userId) {
+		try {
+			String hql = "select c from PrivateMessageFolder c " +
+						"where c.userId = :userId ";
+
+			TypedQuery<PrivateMessageFolder> query = em.createQuery(hql, PrivateMessageFolder.class); 
+			query.setParameter("userId", userId);
+			
+			List<PrivateMessageFolder> privateMessageFolders = query.getResultList();
+			
+			return privateMessageFolders;
+		} catch (Exception e) {
+			log.error("[getPrivateMessageFolderByUserId]",e);
+		}
+		return null;
+	}
+
+	public void delete(PrivateMessageFolder privateMessageFolder, Long userId) {
+		privateMessageFolder = em.find(PrivateMessageFolder.class, privateMessageFolder.getPrivateMessageFolderId());
+		em.remove(privateMessageFolder);
+	}
+
+	public List<PrivateMessageFolder> get(String search, int start, int count, String order) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public long count() {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	public long count(String search) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/user/PrivateMessagesDao.java b/src/db/java/org/apache/openmeetings/db/dao/user/PrivateMessagesDao.java
new file mode 100644
index 0000000..a32cd2c
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/user/PrivateMessagesDao.java
@@ -0,0 +1,195 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.user;
+
+import static org.apache.openmeetings.db.entity.user.PrivateMessage.INBOX_FOLDER_ID;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+import javax.persistence.TypedQuery;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.openmeetings.db.dao.IDataProviderDao;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.user.PrivateMessage;
+import org.apache.openmeetings.db.entity.user.User;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class PrivateMessagesDao implements IDataProviderDao<PrivateMessage> {
+	private static final Logger log = Red5LoggerFactory.getLogger(PrivateMessagesDao.class, webAppRootKey);
+	@PersistenceContext
+	private EntityManager em;
+	
+	public Long addPrivateMessage(String subject, String message, Long parentMessageId, 
+			User from, User to, User owner, Boolean bookedRoom, Room room,
+			Boolean isContactRequest, Long userContactId) {
+		try {
+			PrivateMessage privateMessage = new PrivateMessage();
+			privateMessage.setInserted(new Date());
+			privateMessage.setSubject(subject);
+			privateMessage.setMessage(message);
+			privateMessage.setFrom(from);
+			privateMessage.setTo(to);
+			privateMessage.setOwner(owner);
+			privateMessage.setBookedRoom(Boolean.TRUE.equals(bookedRoom));
+			privateMessage.setRoom(room);
+			privateMessage.setParentMessage(parentMessageId);
+			privateMessage.setFolderId(INBOX_FOLDER_ID);
+			privateMessage.setIsRead(false);
+			privateMessage.setIsContactRequest(isContactRequest);
+			privateMessage.setUserContactId(userContactId);
+			
+			privateMessage = em.merge(privateMessage);
+			Long privateMessageId = privateMessage.getFolderId();
+			
+			return privateMessageId;			
+		} catch (Exception e) {
+			log.error("[addPrivateMessage]",e);
+		}
+		return null;
+	}
+	
+	public List<PrivateMessage> get(int first, int count) {
+		return em.createNamedQuery("getPrivateMessages", PrivateMessage.class)
+				.setFirstResult(first).setMaxResults(count)
+				.getResultList();
+	}
+	
+	public PrivateMessage get(long id) {
+		TypedQuery<PrivateMessage> query = em.createNamedQuery("getPrivateMessageById", PrivateMessage.class); 
+		query.setParameter("id", id);
+		PrivateMessage privateMessage = null;
+		try {
+			privateMessage = query.getSingleResult();
+	    } catch (NoResultException ex) {
+	    }
+		return privateMessage;
+	}
+	
+	public PrivateMessage update(PrivateMessage entity, Long userId) {
+		if (entity.getId() < 1) {
+			entity.setInserted(new Date());
+			em.persist(entity);
+	    } else {
+    		entity = em.merge(entity);
+		}
+		return entity;
+	}
+	
+	private String getQuery(boolean isCount, String search, String orderBy, boolean asc) {
+		StringBuilder hql = new StringBuilder("SELECT ");
+		hql.append(isCount ? "COUNT(" : "").append("m").append(isCount ? ")" : "")
+			.append(" FROM PrivateMessage m WHERE m.owner.user_id = :ownerId ")
+			.append(" AND m.folderId = :folderId ");
+		
+		if (!StringUtils.isEmpty(search)) {
+			hql.append(" AND ( ")
+				.append("lower(m.subject) LIKE :search ")
+				.append("OR lower(m.message) LIKE :search ")
+				.append("OR lower(m.from.firstname) LIKE :search ")
+				.append("OR lower(m.from.lastname) LIKE :search ")
+				.append("OR lower(m.from.login) LIKE :search ")
+				.append("OR lower(m.from.adresses.email) LIKE :search ")
+				.append(" ) ");
+		}
+		
+		if (!isCount && !StringUtils.isEmpty(orderBy)) {
+			hql.append(" ORDER BY ").append(orderBy).append(asc ? " ASC" : " DESC");
+		}
+		return hql.toString();
+	}
+	
+	public Long count(Long ownerId, Long folderId, String search) {
+		TypedQuery<Long> query = em.createQuery(getQuery(true, search, null, true), Long.class); 
+		query.setParameter("ownerId", ownerId);
+		if (!StringUtils.isEmpty(search)) {
+			query.setParameter("search", StringUtils.lowerCase("%" + search + "%"));
+		}
+		query.setParameter("folderId", folderId);
+		return query.getSingleResult();
+	}
+	
+	public List<PrivateMessage> get(Long ownerId, Long folderId, String search, String orderBy, boolean asc, int start, int max) {
+		TypedQuery<PrivateMessage> query = em.createQuery(getQuery(false, search, orderBy, asc), PrivateMessage.class); 
+		query.setParameter("ownerId", ownerId);
+		query.setParameter("folderId", folderId);
+		if (!StringUtils.isEmpty(search)) {
+			query.setParameter("search", StringUtils.lowerCase("%" + search + "%"));
+		}
+		query.setFirstResult(start);
+		query.setMaxResults(max);
+		return query.getResultList();
+	}
+	
+	public int updateReadStatus(Collection<Long> ids, Boolean isRead) {
+		Query query = em.createNamedQuery("updatePrivateMessagesReadStatus"); 
+		query.setParameter("isRead", isRead);
+		query.setParameter("ids", ids);
+		return query.executeUpdate();
+	}
+
+	public Integer moveMailsToFolder(Collection<Long> ids, Long folderId) {
+		Query query = em.createNamedQuery("moveMailsToFolder"); 
+		query.setParameter("folderId", folderId);
+		query.setParameter("ids", ids);
+		return query.executeUpdate();
+	}
+	
+	public int delete(Collection<Long> ids) {
+		Query query = em.createNamedQuery("deletePrivateMessages"); 
+		query.setParameter("ids", ids);
+		return query.executeUpdate();
+	}
+	
+	public List<PrivateMessage> getPrivateMessagesByRoom(Long roomId) {
+		TypedQuery<PrivateMessage> query = em.createNamedQuery("getPrivateMessagesByRoom", PrivateMessage.class); 
+		query.setParameter("roomId", roomId);
+		return query.getResultList();
+	}
+
+	public List<PrivateMessage> get(String search, int start, int count, String order) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public long count() {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	public long count(String search) {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	public void delete(PrivateMessage entity, Long userId) {
+		// TODO Auto-generated method stub
+		
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/user/SalutationDao.java b/src/db/java/org/apache/openmeetings/db/dao/user/SalutationDao.java
new file mode 100644
index 0000000..4d420ab
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/user/SalutationDao.java
@@ -0,0 +1,104 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.user;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import org.apache.openmeetings.db.dao.label.FieldLanguagesValuesDao;
+import org.apache.openmeetings.db.entity.user.Salutation;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * CRUD operations for {@link Salutation}
+ * 
+ * @author swagner
+ * 
+ */
+@Transactional
+public class SalutationDao {
+	private static final Logger log = Red5LoggerFactory.getLogger(SalutationDao.class, webAppRootKey);
+
+	@Autowired
+	private FieldLanguagesValuesDao fieldLangValDao;
+
+	@PersistenceContext
+	private EntityManager em;
+
+	/**
+	 * Adds a new Salutation to the table Titles
+	 * 
+	 * @param titelname
+	 * @param fieldvalues_id
+	 * @return
+	 */
+	public Long addUserSalutation(String titelname, long fieldvalues_id) {
+		try {
+			Salutation ti = new Salutation();
+			ti.setName(titelname);
+			ti.setDeleted(false);
+			ti.setFieldvalues_id(fieldvalues_id);
+			ti.setStarttime(new Date());
+			ti = em.merge(ti);
+			Long salutations_id = ti.getSalutations_id();
+			return salutations_id;
+		} catch (Exception ex2) {
+			log.error("[addUserSalutation]", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * get a Salutation by given id
+	 * 
+	 * @param id
+	 * @param language_id
+	 * @return
+	 */
+	public Salutation get(long id, long language_id) {
+		List<Salutation> ll = em.createNamedQuery("getSalutationById", Salutation.class)
+				.setParameter("id", id).getResultList();
+		for (Salutation ti : ll) {
+			ti.setLabel(fieldLangValDao.get(ti.getFieldvalues_id(), language_id));
+		}
+		return ll.get(0);
+	}
+	
+	/**
+	 * get a list of all availible Salutations
+	 * 
+	 * @param language_id
+	 * @return
+	 */
+	public List<Salutation> getUserSalutations(long language_id) {
+		List<Salutation> ll = em.createNamedQuery("getSalutations", Salutation.class).getResultList();
+		for (Salutation ti : ll) {
+			ti.setLabel(fieldLangValDao.get(ti.getFieldvalues_id(), language_id));
+		}
+		return ll;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/user/StateDao.java b/src/db/java/org/apache/openmeetings/db/dao/user/StateDao.java
new file mode 100644
index 0000000..eb28ef4
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/user/StateDao.java
@@ -0,0 +1,153 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.user;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.entity.user.State;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * CRUD operations for {@link State}
+ * 
+ * @author sebawagner
+ * 
+ */
+@Transactional
+public class StateDao {
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			StateDao.class, OpenmeetingsVariables.webAppRootKey);
+
+	@PersistenceContext
+	private EntityManager em;
+
+	/**
+	 * adds a new State to the states table with no short name and code
+	 * 
+	 * @param name
+	 * @return the id of the new state or null if an error occurred
+	 */
+	public Long addState(String name) {
+		return addState(name, "", 0);
+	}
+	
+	/**
+	 * adds a new State to the states table
+	 * 
+	 * @param name the name of the country
+	 * @param shortName the short name of the country
+	 * @param code the code of the country
+	 * @return the id of the new state or null if an error occurred
+	 */
+	public Long addState(String name, String shortName, int code) {
+		try {
+
+			State st = new State();
+			st.setName(name);
+			st.setShortName(shortName);
+			st.setCode(code);
+			st.setStarttime(new Date());
+			st.setDeleted(false);
+
+			st = em.merge(st);
+			Long id = st.getState_id();
+
+			log.debug("added id " + id);
+
+			return id;
+		} catch (Exception ex2) {
+			log.error("addState", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * selects a state by its id
+	 * 
+	 * @param state_id
+	 * @return the state-object or null
+	 */
+	public State getStateById(long state_id) {
+		try {
+			TypedQuery<State> query = em
+					.createNamedQuery("getStateById", State.class);
+			query.setParameter("state_id", state_id);
+			query.setParameter("deleted", true);
+			List<State> ll = query.getResultList();
+			if (ll.size() > 0) {
+				return ll.get(0);
+			}
+		} catch (Exception ex2) {
+			log.error("getStateById", ex2);
+		}
+		return null;
+	}
+	
+	/**
+	 * selects a state by its name
+	 * 
+	 * @param state_id
+	 * @return the state-object or null
+	 */
+	public State getStateByName(String name) {
+		try {
+			if (name == null) {
+				return null;
+			}
+			TypedQuery<State> query = em
+					.createNamedQuery("getStateByName", State.class);
+			query.setParameter("name", name.toLowerCase());
+			query.setParameter("deleted", true);
+			List<State> ll = query.getResultList();
+			if (ll.size() > 0) {
+				return ll.get(0);
+			}
+		} catch (Exception ex2) {
+			log.error("getStateByName", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * Get all state-Object
+	 * 
+	 * @return List of State Objects or null
+	 */
+	public List<State> getStates() {
+		try {
+			TypedQuery<State> query = em
+					.createNamedQuery("getStates", State.class);
+			query.setParameter("deleted", true);
+			List<State> ll = query.getResultList();
+			return ll;
+		} catch (Exception ex2) {
+			log.error("getStates", ex2);
+		}
+		return null;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/user/UserContactsDao.java b/src/db/java/org/apache/openmeetings/db/dao/user/UserContactsDao.java
new file mode 100644
index 0000000..091778d
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/user/UserContactsDao.java
@@ -0,0 +1,266 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.user;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.entity.user.UserContact;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class UserContactsDao {
+	
+	private static final Logger log = Red5LoggerFactory.getLogger(UserContactsDao.class, OpenmeetingsVariables.webAppRootKey);
+	@PersistenceContext
+	private EntityManager em;
+    @Autowired
+    private UserDao userDao;
+
+	public Long addUserContact(Long user_id, Long ownerId, Boolean pending, String hash) {
+		try {
+			
+			UserContact userContact = new UserContact();
+			userContact.setInserted(new Date());
+			userContact.setOwner(userDao.get(ownerId));
+			userContact.setContact(userDao.get(user_id));
+			userContact.setPending(pending);
+			userContact.setHash(hash);
+			
+			userContact = em.merge(userContact);
+			Long userContactId = userContact.getUserContactId();
+			
+			return userContactId;			
+		} catch (Exception e) {
+			log.error("[addUserContact]",e);
+		}
+		return null;
+	}
+	
+	public Long addUserContactObj(UserContact userContact) {
+		try {
+			
+			userContact.setInserted(new Date());
+			
+			userContact = em.merge(userContact);
+			Long userContactId = userContact.getUserContactId();
+			
+			return userContactId;			
+		} catch (Exception e) {
+			log.error("[addUserContact]",e);
+		}
+		return null;
+	}
+	
+	/**
+	 * @param userContactDeleteId
+	 * @return rowcount of update
+	 */
+	public Integer deleteUserContact(Long userContactDeleteId) {
+		try {
+			Query query = em.createNamedQuery("deleteUserContact");
+			query.setParameter("userContactDeleteId", userContactDeleteId);
+	        return query.executeUpdate();
+		} catch (Exception e) {
+			log.error("[deleteUserContact]",e);
+		}
+		return null;
+	}
+	
+	/**
+	 * @param ownerId
+	 * @return rowcount of update
+	 */
+	public Integer deleteAllUserContacts(Long ownerId) {
+		try {
+			Query query = em.createNamedQuery("deleteAllUserContacts");
+	        query.setParameter("ownerId",ownerId);
+	        return query.executeUpdate();
+		} catch (Exception e) {
+			log.error("[deleteAllUserContacts]",e);
+		}
+		return null;
+	}
+	
+	public Long checkUserContacts(Long user_id, Long ownerId) {
+		try {
+			TypedQuery<Long> query = em.createNamedQuery("checkUserContacts", Long.class); 
+			query.setParameter("user_id", user_id);
+			query.setParameter("ownerId", ownerId);
+			List<Long> ll = query.getResultList();
+			
+			log.info("checkUserContacts" + ll.get(0));
+			
+			return ll.get(0);
+			
+		} catch (Exception e) {
+			log.error("[checkUserContacts]",e);
+		}
+		return null;
+	}
+	
+	public List<UserContact> get(long ownerId, int first, int count) {
+		TypedQuery<UserContact> q = em.createNamedQuery("getContactsByUser", UserContact.class);
+		q.setParameter("user_id", ownerId);
+		q.setFirstResult(first);
+		q.setMaxResults(count);
+		return q.getResultList();
+	}
+	
+	public long count(long ownerId) {
+		TypedQuery<Long> q = em.createNamedQuery("countContactsByUser", Long.class);
+		q.setParameter("user_id", ownerId);
+		return q.getSingleResult();
+	}
+	
+	public List<UserContact> getContactsByUserAndStatus(Long ownerId, Boolean pending) {
+		try {
+			TypedQuery<UserContact> query = em.createNamedQuery("getContactsByUserAndStatus", UserContact.class);
+			query.setParameter("ownerId", ownerId);
+			query.setParameter("pending", pending);
+			return query.getResultList();
+		} catch (Exception e) {
+			log.error("[getContactsByUserAndStatus]",e);
+		}
+		return null;
+	}
+	
+	public UserContact getUserContactByShareCalendar(Long contactId,
+			Boolean shareCalendar, Long userId) {
+		try {
+			TypedQuery<UserContact> query = em.createNamedQuery("getUserContactByShareCalendar",
+					UserContact.class);
+			query.setParameter("contactId", contactId);
+			query.setParameter("userId", userId);
+			query.setParameter("shareCalendar", shareCalendar);
+			List<UserContact> ll = query.getResultList();
+			if (ll.size() > 0) {
+				return ll.get(0);
+			}
+		} catch (Exception e) {
+			log.error("[getUserContactByShareCalendar]", e);
+		}
+		return null;
+	}
+
+	public List<UserContact> getContactsByShareCalendar(Long contactId, Boolean shareCalendar) {
+		try {
+			TypedQuery<UserContact> query = em.createNamedQuery("getContactsByShareCalendar", UserContact.class); 
+			query.setParameter("contactId", contactId);
+			query.setParameter("shareCalendar", shareCalendar);
+			return query.getResultList();
+		} catch (Exception e) {
+			log.error("[getContactsByShareCalendar]",e);
+		}
+		return null;
+	}
+	
+	public List<UserContact> getContactRequestsByUserAndStatus(Long user_id, Boolean pending) {
+		try {
+			TypedQuery<UserContact> query = em.createNamedQuery("getContactRequestsByUserAndStatus", UserContact.class); 
+			query.setParameter("user_id", user_id);
+			query.setParameter("pending", pending);
+			return query.getResultList();
+		} catch (Exception e) {
+			log.error("[getContactRequestsByUserAndStatus]",e);
+		}
+		return null;
+	}
+	
+	public UserContact get(Long id) {
+		try {
+			TypedQuery<UserContact> query = em.createNamedQuery("getUserContactsById", UserContact.class); 
+			query.setParameter("userContactId", id);
+			UserContact userContacts = null;
+			try {
+				userContacts = query.getSingleResult();
+		    } catch (NoResultException ex) {
+		    }
+			return userContacts;
+		} catch (Exception e) {
+			log.error("[getUserContacts]",e);
+		}
+		return null;
+	}
+	
+	public List<UserContact> getUserContacts() {
+		try {
+			TypedQuery<UserContact> query = em.createNamedQuery("getUserContacts", UserContact.class); 
+			return query.getResultList();
+		} catch (Exception e) {
+			log.error("[getUserContacts]",e);
+		}
+		return null;
+	}
+	
+	public Long updateContactStatus(Long userContactId, Boolean pending) {
+		try {
+			
+			UserContact userContacts = this.get(userContactId);
+			
+			if (userContacts == null) {
+				return null;
+			}
+			userContacts.setPending(pending);
+			userContacts.setUpdated(new Date());
+			
+			if (userContacts.getUserContactId() == 0) {
+				em.persist(userContacts);
+		    } else {
+		    	if (!em.contains(userContacts)) {
+		    		em.merge(userContacts);
+			    }
+			}
+			
+			return userContactId;
+			
+		} catch (Exception e) {
+			log.error("[updateContactStatus]",e);
+		}
+		return null;
+	}
+	
+	public void updateContact(UserContact userContacts) {
+		try {
+			userContacts.setUpdated(new Date());
+			
+			if (userContacts.getUserContactId() == 0) {
+				em.persist(userContacts);
+		    } else {
+		    	if (!em.contains(userContacts)) {
+		    		em.merge(userContacts);
+			    }
+			}
+			
+		} catch (Exception e) {
+			log.error("[updateContact]",e);
+		}
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dao/user/UserDao.java b/src/db/java/org/apache/openmeetings/db/dao/user/UserDao.java
new file mode 100644
index 0000000..2c708ec
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/user/UserDao.java
@@ -0,0 +1,90 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.db.dao.user;

+

+import java.security.NoSuchAlgorithmException;

+import java.util.List;

+

+import org.apache.openmeetings.db.entity.user.User;

+import org.springframework.beans.factory.annotation.Autowired;

+

+public class UserDao {

+	@Autowired

+	private AbstractUserDao dao;

+

+	public User get(long id) {

+		return dao.get(id);

+	}

+

+	public List<User> get(int start, int count) {

+		return dao.get(start, count);

+	}

+

+	public List<User> get(String search, long currentUserId) {

+		return dao.get(search, true, currentUserId);

+	}

+	

+	public List<User> get(String search, int start, int count, String order, long currentUserId) {

+		return dao.get(search, start, count, order, false, currentUserId);

+	}

+

+	public long count() {

+		return dao.count();

+	}

+

+	public long count(String search, long currentUserId) {

+		return dao.count(search, false, currentUserId);

+	}

+

+	public User update(User entity, Long userId) {

+		return dao.update(entity, userId);

+	}

+	

+	public User update(User user, String password, long updatedBy) throws NoSuchAlgorithmException {

+		return dao.update(user, password, updatedBy);

+	}

+

+	public void delete(User entity, Long userId) {

+		dao.delete(entity, userId);

+	}

+	

+	public User getContact(String email, long ownerId) {

+		return dao.getContact(email, ownerId);

+	}

+	

+	public User getContact(String email, String firstName, String lastName, long ownerId) {

+		return dao.getContact(email, firstName, lastName, ownerId);

+	}

+	

+	public User getUserByActivationHash(String hash) {

+		return dao.getUserByActivationHash(hash);

+	}

+

+	public List<User> searchUserProfile(long userId, String text, String offers, String search, String orderBy, int start, int max, boolean asc) {

+		return dao.searchUserProfile(userId, text, offers, search, orderBy, start, max, asc);

+	}

+

+	public Long searchCountUserProfile(long userId, String text, String offers, String search) {

+		return dao.searchCountUserProfile(userId, text, offers, search);

+	}

+	

+	public User getExternalUser(String extId, String extType) {

+		return dao.getExternalUser(extId, extType);

+	}

+}

diff --git a/src/db/java/org/apache/openmeetings/db/dao/user/UserLevelDao.java b/src/db/java/org/apache/openmeetings/db/dao/user/UserLevelDao.java
new file mode 100644
index 0000000..3a3391f
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dao/user/UserLevelDao.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.user;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Date;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import org.apache.openmeetings.db.entity.user.Userlevel;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class UserLevelDao {
+	private static final Logger log = Red5LoggerFactory.getLogger(UserLevelDao.class, webAppRootKey);
+	
+	@PersistenceContext
+	private EntityManager em;
+
+	public void addUserLevel(String description, int myStatus) {
+		try {
+			Userlevel uslevel = new Userlevel();
+			uslevel.setStarttime(new Date());
+			uslevel.setDescription(description);
+			uslevel.setStatuscode(new Integer(myStatus));
+			uslevel.setDeleted(false);
+			em.merge(uslevel);
+		} catch (Exception ex2) {
+			log.error("[addUserLevel]", ex2);
+		}
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/basic/ErrorResult.java b/src/db/java/org/apache/openmeetings/db/dto/basic/ErrorResult.java
new file mode 100644
index 0000000..779d1bb
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/basic/ErrorResult.java
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.basic;
+
+public class ErrorResult {
+	
+	private Long errorId;
+	private String errmessage;
+	private String errortype;
+
+	public ErrorResult(Long errorId, String errmessage, String errortype) {
+		super();
+		this.errorId = errorId;
+		this.errmessage = errmessage;
+		this.errortype = errortype;
+	}
+
+	public Long getErrorId() {
+		return errorId;
+	}
+
+	public void setErrorId(Long errorId) {
+		this.errorId = errorId;
+	}
+
+	public String getErrmessage() {
+		return errmessage;
+	}
+
+	public void setErrmessage(String errmessage) {
+		this.errmessage = errmessage;
+	}
+
+	public String getErrortype() {
+		return errortype;
+	}
+
+	public void setErrortype(String errortype) {
+		this.errortype = errortype;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/basic/SearchResult.java b/src/db/java/org/apache/openmeetings/db/dto/basic/SearchResult.java
new file mode 100644
index 0000000..afd5260
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/basic/SearchResult.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.basic;
+
+import java.util.Collection;
+
+
+public class SearchResult<T> {
+	private String objectName;
+	private Long records;
+	private Collection<T> result;
+	private Long errorId;
+	
+	public String getObjectName() {
+		return objectName;
+	}
+	public void setObjectName(String objectName) {
+		this.objectName = objectName;
+	}
+	public Long getRecords() {
+		return records;
+	}
+	public void setRecords(Long records) {
+		this.records = records;
+	}
+	public Collection<T> getResult() {
+		return result;
+	}
+	public void setResult(Collection<T> result) {
+		this.result = result;
+	}
+	public Long getErrorId() {
+		return errorId;
+	}
+	public void setErrorId(Long errorId) {
+		this.errorId = errorId;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/file/FileExplorerObject.java b/src/db/java/org/apache/openmeetings/db/dto/file/FileExplorerObject.java
new file mode 100644
index 0000000..7b2e9dc
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/file/FileExplorerObject.java
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.file;
+
+import org.apache.openmeetings.db.entity.file.FileExplorerItem;
+
+/**
+ * @author sebastianwagner
+ *
+ */
+public class FileExplorerObject {
+
+	private FileExplorerItem[] userHome;
+	private FileExplorerItem[] roomHome;
+	private Long userHomeSize;
+	private Long roomHomeSize;
+	
+	public FileExplorerItem[] getUserHome() {
+		return userHome;
+	}
+	public void setUserHome(FileExplorerItem[] userHome) {
+		this.userHome = userHome;
+	}
+	public FileExplorerItem[] getRoomHome() {
+		return roomHome;
+	}
+	public void setRoomHome(FileExplorerItem[] roomHome) {
+		this.roomHome = roomHome;
+	}
+	public Long getUserHomeSize() {
+		return userHomeSize;
+	}
+	public void setUserHomeSize(Long userHomeSize) {
+		this.userHomeSize = userHomeSize;
+	}
+	public Long getRoomHomeSize() {
+		return roomHomeSize;
+	}
+	public void setRoomHomeSize(Long roomHomeSize) {
+		this.roomHomeSize = roomHomeSize;
+	}
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/file/FilesObject.java b/src/db/java/org/apache/openmeetings/db/dto/file/FilesObject.java
new file mode 100644
index 0000000..381f9a1
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/file/FilesObject.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.file;
+
+/**
+ * This Object will represent a File on the File-System
+ * @author sebastianwagner
+ *
+ */
+public class FilesObject {
+	
+	private String fileName;
+	private String fileNamePure;
+	private String fileNameExt;
+	private String lastModified;
+	private String fileBytes;
+	private String isimage;
+	public String getFileName() {
+		return fileName;
+	}
+	public void setFileName(String fileName) {
+		this.fileName = fileName;
+	}
+	public String getFileNamePure() {
+		return fileNamePure;
+	}
+	public void setFileNamePure(String fileNamePure) {
+		this.fileNamePure = fileNamePure;
+	}
+	public String getFileNameExt() {
+		return fileNameExt;
+	}
+	public void setFileNameExt(String fileNameExt) {
+		this.fileNameExt = fileNameExt;
+	}
+	public String getLastModified() {
+		return lastModified;
+	}
+	public void setLastModified(String lastModified) {
+		this.lastModified = lastModified;
+	}
+	public String getFileBytes() {
+		return fileBytes;
+	}
+	public void setFileBytes(String fileBytes) {
+		this.fileBytes = fileBytes;
+	}
+	public String getIsimage() {
+		return isimage;
+	}
+	public void setIsimage(String isimage) {
+		this.isimage = isimage;
+	}
+	
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/file/FoldersObject.java b/src/db/java/org/apache/openmeetings/db/dto/file/FoldersObject.java
new file mode 100644
index 0000000..bba75d5
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/file/FoldersObject.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.file;
+/**
+ * Represents a Folder in the File System
+ * @author sebastianwagner
+ *
+ */
+public class FoldersObject {
+	
+	private String folderName;
+	private String lastModified;
+	
+	public String getFolderName() {
+		return folderName;
+	}
+	public void setFolderName(String folderName) {
+		this.folderName = folderName;
+	}
+	public String getLastModified() {
+		return lastModified;
+	}
+	public void setLastModified(String lastModified) {
+		this.lastModified = lastModified;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/file/LiberaryObject.java b/src/db/java/org/apache/openmeetings/db/dto/file/LiberaryObject.java
new file mode 100644
index 0000000..9849e26
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/file/LiberaryObject.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.file;
+/**
+ * Response of one Library-Files-Request
+ * @author sebastianwagner
+ *
+ */
+import java.util.LinkedList;
+
+public class LiberaryObject {
+	
+	//These Objects here should only be initialized if needed, 
+	//an empty LinkedList thorws a ServiceInvokationTarget-Exception (makes no sense to me but it
+	//is the way in Axis2 1.3
+	private LinkedList<FilesObject> filesList;
+	private LinkedList<FoldersObject> foldersList;
+	private PresentationObject presentationObject;
+	private String error;
+	public LinkedList<FilesObject> getFilesList() {
+		return filesList;
+	}
+	public void setFilesList(LinkedList<FilesObject> filesList) {
+		this.filesList = filesList;
+	}
+	public LinkedList<FoldersObject> getFoldersList() {
+		return foldersList;
+	}
+	public void setFoldersList(LinkedList<FoldersObject> foldersList) {
+		this.foldersList = foldersList;
+	}
+	public PresentationObject getPresentationObject() {
+		return presentationObject;
+	}
+	public void setPresentationObject(PresentationObject presentationObject) {
+		this.presentationObject = presentationObject;
+	}
+	public String getError() {
+		return error;
+	}
+	public void setError(String error) {
+		this.error = error;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/file/LibraryPresenationThumbs.java b/src/db/java/org/apache/openmeetings/db/dto/file/LibraryPresenationThumbs.java
new file mode 100644
index 0000000..8c69846
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/file/LibraryPresenationThumbs.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.file;
+
+public class LibraryPresenationThumbs {
+
+	private String name = "";
+	private LibraryPresentationThumb[] thumbs = null;
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+	public LibraryPresentationThumb[] getThumbs() {
+		return thumbs;
+	}
+	public void setThumbs(LibraryPresentationThumb[] thumbs) {
+		this.thumbs = thumbs;
+	}
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/file/LibraryPresentation.java b/src/db/java/org/apache/openmeetings/db/dto/file/LibraryPresentation.java
new file mode 100644
index 0000000..02ab93f
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/file/LibraryPresentation.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.file;
+
+public class LibraryPresentation {
+
+	private LibraryPresentationFile originalDocument = null;
+	private LibraryPresentationFile pdfDocument = null;
+	private LibraryPresentationFile swfDocument = null;
+	private LibraryPresenationThumbs thumbs = null;
+	
+	public LibraryPresentationFile getOriginalDocument() {
+		return originalDocument;
+	}
+	public void setOriginalDocument(LibraryPresentationFile originalDocument) {
+		this.originalDocument = originalDocument;
+	}
+	public LibraryPresentationFile getPdfDocument() {
+		return pdfDocument;
+	}
+	public void setPdfDocument(LibraryPresentationFile pdfDocument) {
+		this.pdfDocument = pdfDocument;
+	}
+	public LibraryPresentationFile getSwfDocument() {
+		return swfDocument;
+	}
+	public void setSwfDocument(LibraryPresentationFile swfDocument) {
+		this.swfDocument = swfDocument;
+	}
+	public LibraryPresenationThumbs getThumbs() {
+		return thumbs;
+	}
+	public void setThumbs(LibraryPresenationThumbs thumbs) {
+		this.thumbs = thumbs;
+	}
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/file/LibraryPresentationFile.java b/src/db/java/org/apache/openmeetings/db/dto/file/LibraryPresentationFile.java
new file mode 100644
index 0000000..3b2ab2d
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/file/LibraryPresentationFile.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.file;
+
+public class LibraryPresentationFile {
+
+	private String name = null;
+	private String filename = null;
+	private String lastmod = null;
+	private Long size = null;
+	
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+	public String getFilename() {
+		return filename;
+	}
+	public void setFilename(String filename) {
+		this.filename = filename;
+	}
+	public String getLastmod() {
+		return lastmod;
+	}
+	public void setLastmod(String lastmod) {
+		this.lastmod = lastmod;
+	}
+	public Long getSize() {
+		return size;
+	}
+	public void setSize(Long size) {
+		this.size = size;
+	}
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/file/LibraryPresentationThumb.java b/src/db/java/org/apache/openmeetings/db/dto/file/LibraryPresentationThumb.java
new file mode 100644
index 0000000..2aa4e90
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/file/LibraryPresentationThumb.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.file;
+
+public class LibraryPresentationThumb {
+	
+	private String name = null;
+	private String filename = null;
+	private String lastmod = null;
+	private Long size = null;
+	
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+	public String getFilename() {
+		return filename;
+	}
+	public void setFilename(String filename) {
+		this.filename = filename;
+	}
+	public String getLastmod() {
+		return lastmod;
+	}
+	public void setLastmod(String lastmod) {
+		this.lastmod = lastmod;
+	}
+	public Long getSize() {
+		return size;
+	}
+	public void setSize(Long size) {
+		this.size = size;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/file/PresentationObject.java b/src/db/java/org/apache/openmeetings/db/dto/file/PresentationObject.java
new file mode 100644
index 0000000..b7bcfa1
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/file/PresentationObject.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.file;
+
+import java.util.LinkedList;
+/**
+ * Represents a Parsed Version of a Library-File-Converted Object
+ * @author sebastianwagner
+ *
+ */
+public class PresentationObject {
+	
+	private FilesObject originalDocument;
+	private FilesObject pdfDocument;
+	private FilesObject swfDocument;
+	LinkedList<FilesObject> thumbs;
+
+	public FilesObject getOriginalDocument() {
+		return originalDocument;
+	}
+	public void setOriginalDocument(FilesObject originalDocument) {
+		this.originalDocument = originalDocument;
+	}
+	public FilesObject getPdfDocument() {
+		return pdfDocument;
+	}
+	public void setPdfDocument(FilesObject pdfDocument) {
+		this.pdfDocument = pdfDocument;
+	}
+	public FilesObject getSwfDocument() {
+		return swfDocument;
+	}
+	public void setSwfDocument(FilesObject swfDocument) {
+		this.swfDocument = swfDocument;
+	}
+	public LinkedList<FilesObject> getThumbs() {
+		return thumbs;
+	}
+	public void setThumbs(LinkedList<FilesObject> thumbs) {
+		this.thumbs = thumbs;
+	}
+	
+	
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/file/RecordingContainerData.java b/src/db/java/org/apache/openmeetings/db/dto/file/RecordingContainerData.java
new file mode 100644
index 0000000..d6f5686
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/file/RecordingContainerData.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.file;
+
+import java.io.Serializable;
+
+public class RecordingContainerData implements Serializable {
+	
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -7211000652612571746L;
+	
+	private long userHomeSize;
+	private long publicFileSize;
+	
+	public long getUserHomeSize() {
+		return userHomeSize;
+	}
+	public void setUserHomeSize(long userHomeSize) {
+		this.userHomeSize = userHomeSize;
+	}
+	public long getPublicFileSize() {
+		return publicFileSize;
+	}
+	public void setPublicFileSize(long publicFileSize) {
+		this.publicFileSize = publicFileSize;
+	}
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/file/RecordingObject.java b/src/db/java/org/apache/openmeetings/db/dto/file/RecordingObject.java
new file mode 100644
index 0000000..963c712
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/file/RecordingObject.java
@@ -0,0 +1,335 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.file;
+
+import java.util.Date;
+
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+
+
+public class RecordingObject {
+
+	private long flvRecordingId;
+	
+	private String fileName;
+	private String alternateDownload;
+	private String fileHash;
+	private String comment;
+	
+	private Long parentFileExplorerItemId;
+	private Long room_id;
+	private Long ownerId;//OwnerID => only set if its directly root in Owner Directory, other Folders and Files
+	//maybe are also in a Home directory but just because their parent is
+	
+	private Boolean isFolder;
+	private Boolean isImage;
+	private Boolean isPresentation;
+	private Boolean isRecording;
+	
+	private Date recordStart;
+	private Date recordEnd;
+	
+	private Long insertedBy;
+	private Date inserted;
+	private Date updated;
+	private boolean deleted;
+	
+	private Integer width;
+	private Integer height;
+	
+	private Integer flvWidth;
+	private Integer flvHeight;
+	private String previewImage;
+	
+	private String duration;
+	
+	private String recorderStreamId;
+	private Long organization_id;
+	
+	private Boolean isInterview;
+	private Integer progressPostProcessing;
+	
+	public RecordingObject() {}
+	
+	public RecordingObject(FlvRecording customObject) {
+		this.flvRecordingId = customObject.getFlvRecordingId();
+		
+		this.fileName = customObject.getFileName();
+		this.alternateDownload = customObject.getAlternateDownload();
+		this.fileHash = customObject.getFileHash();
+		this.comment = customObject.getComment();
+		
+		this.parentFileExplorerItemId = customObject.getParentFileExplorerItemId();
+		this.room_id = customObject.getRoom_id();
+		this.ownerId = customObject.getOwnerId();//OwnerID => only set if its directly root in Owner Directory, other Folders and Files
+		//maybe are also in a Home directory but just because their parent is
+		
+		this.isFolder = customObject.isFolder();
+		this.isImage = customObject.getIsImage();
+		this.isPresentation = customObject.getIsPresentation();
+		this.isRecording = customObject.getIsRecording();
+		
+		this.recordStart = customObject.getRecordStart();
+		this.recordEnd = customObject.getRecordEnd();
+		
+		this.insertedBy = customObject.getInsertedBy();
+		this.inserted = customObject.getInserted();
+		this.updated = customObject.getUpdated();
+		this.deleted = customObject.getDeleted();
+		
+		this.width = customObject.getWidth();
+		this.height = customObject.getHeight();
+		
+		this.flvWidth = customObject.getFlvWidth();
+		this.flvHeight = customObject.getFlvHeight();
+		this.previewImage = customObject.getPreviewImage();
+		
+		this.duration = customObject.getDuration();
+		
+		this.recorderStreamId = customObject.getRecorderStreamId();
+		this.organization_id = customObject.getOrganization_id();
+		
+		this.isInterview = customObject.getIsInterview();
+		this.progressPostProcessing = customObject.getProgressPostProcessing();
+	}
+
+	public long getFlvRecordingId() {
+		return flvRecordingId;
+	}
+
+	public void setFlvRecordingId(long flvRecordingId) {
+		this.flvRecordingId = flvRecordingId;
+	}
+
+	public String getFileName() {
+		return fileName;
+	}
+
+	public void setFileName(String fileName) {
+		this.fileName = fileName;
+	}
+
+	public String getAlternateDownload() {
+		return alternateDownload;
+	}
+
+	public void setAlternateDownload(String alternateDownload) {
+		this.alternateDownload = alternateDownload;
+	}
+
+	public String getFileHash() {
+		return fileHash;
+	}
+
+	public void setFileHash(String fileHash) {
+		this.fileHash = fileHash;
+	}
+
+	public String getComment() {
+		return comment;
+	}
+
+	public void setComment(String comment) {
+		this.comment = comment;
+	}
+
+	public Long getParentFileExplorerItemId() {
+		return parentFileExplorerItemId;
+	}
+
+	public void setParentFileExplorerItemId(Long parentFileExplorerItemId) {
+		this.parentFileExplorerItemId = parentFileExplorerItemId;
+	}
+
+	public Long getRoom_id() {
+		return room_id;
+	}
+
+	public void setRoom_id(Long roomId) {
+		room_id = roomId;
+	}
+
+	public Long getOwnerId() {
+		return ownerId;
+	}
+
+	public void setOwnerId(Long ownerId) {
+		this.ownerId = ownerId;
+	}
+
+	public Boolean getIsFolder() {
+		return isFolder;
+	}
+
+	public void setIsFolder(Boolean isFolder) {
+		this.isFolder = isFolder;
+	}
+
+	public Boolean getIsImage() {
+		return isImage;
+	}
+
+	public void setIsImage(Boolean isImage) {
+		this.isImage = isImage;
+	}
+
+	public Boolean getIsPresentation() {
+		return isPresentation;
+	}
+
+	public void setIsPresentation(Boolean isPresentation) {
+		this.isPresentation = isPresentation;
+	}
+
+	public Boolean getIsRecording() {
+		return isRecording;
+	}
+
+	public void setIsRecording(Boolean isRecording) {
+		this.isRecording = isRecording;
+	}
+
+	public Date getRecordStart() {
+		return recordStart;
+	}
+
+	public void setRecordStart(Date recordStart) {
+		this.recordStart = recordStart;
+	}
+
+	public Date getRecordEnd() {
+		return recordEnd;
+	}
+
+	public void setRecordEnd(Date recordEnd) {
+		this.recordEnd = recordEnd;
+	}
+
+	public Long getInsertedBy() {
+		return insertedBy;
+	}
+
+	public void setInsertedBy(Long insertedBy) {
+		this.insertedBy = insertedBy;
+	}
+
+	public Date getInserted() {
+		return inserted;
+	}
+
+	public void setInserted(Date inserted) {
+		this.inserted = inserted;
+	}
+
+	public Date getUpdated() {
+		return updated;
+	}
+
+	public void setUpdated(Date updated) {
+		this.updated = updated;
+	}
+
+	public boolean getDeleted() {
+		return deleted;
+	}
+
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	public Integer getWidth() {
+		return width;
+	}
+
+	public void setWidth(Integer width) {
+		this.width = width;
+	}
+
+	public Integer getHeight() {
+		return height;
+	}
+
+	public void setHeight(Integer height) {
+		this.height = height;
+	}
+
+	public Integer getFlvWidth() {
+		return flvWidth;
+	}
+
+	public void setFlvWidth(Integer flvWidth) {
+		this.flvWidth = flvWidth;
+	}
+
+	public Integer getFlvHeight() {
+		return flvHeight;
+	}
+
+	public void setFlvHeight(Integer flvHeight) {
+		this.flvHeight = flvHeight;
+	}
+
+	public String getPreviewImage() {
+		return previewImage;
+	}
+
+	public void setPreviewImage(String previewImage) {
+		this.previewImage = previewImage;
+	}
+
+	public String getDuration() {
+		return duration;
+	}
+
+	public void setDuration(String duration) {
+		this.duration = duration;
+	}
+
+	public String getRecorderStreamId() {
+		return recorderStreamId;
+	}
+
+	public void setRecorderStreamId(String recorderStreamId) {
+		this.recorderStreamId = recorderStreamId;
+	}
+
+	public Long getOrganization_id() {
+		return organization_id;
+	}
+
+	public void setOrganization_id(Long organizationId) {
+		organization_id = organizationId;
+	}
+
+	public Boolean getIsInterview() {
+		return isInterview;
+	}
+
+	public void setIsInterview(Boolean isInterview) {
+		this.isInterview = isInterview;
+	}
+
+	public Integer getProgressPostProcessing() {
+		return progressPostProcessing;
+	}
+
+	public void setProgressPostProcessing(Integer progressPostProcessing) {
+		this.progressPostProcessing = progressPostProcessing;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/room/BrowserStatus.java b/src/db/java/org/apache/openmeetings/db/dto/room/BrowserStatus.java
new file mode 100644
index 0000000..5d707dd
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/room/BrowserStatus.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.room;
+
+public class BrowserStatus {
+	
+	private boolean browserInited = false;
+	private String currentURL = "";
+	
+	public boolean isBrowserInited() {
+		return browserInited;
+	}
+	public void setBrowserInited(boolean browserInited) {
+		this.browserInited = browserInited;
+	}
+	public String getCurrentURL() {
+		return currentURL;
+	}
+	public void setCurrentURL(String currentURL) {
+		this.currentURL = currentURL;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/room/Cliparts.java b/src/db/java/org/apache/openmeetings/db/dto/room/Cliparts.java
new file mode 100644
index 0000000..9035406
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/room/Cliparts.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.room;
+
+import java.util.List;
+
+public class Cliparts {
+
+	private String folderName;
+	private String[] generalList;
+	private List<Cliparts> subCategories;
+
+	public String[] getGeneralList() {
+		return generalList;
+	}
+
+	public void setGeneralList(String[] generalList) {
+		this.generalList = generalList;
+	}
+
+	public List<Cliparts> getSubCategories() {
+		return subCategories;
+	}
+
+	public void setSubCategories(List<Cliparts> subCategories) {
+		this.subCategories = subCategories;
+	}
+
+	public String getFolderName() {
+		return folderName;
+	}
+
+	public void setFolderName(String folderName) {
+		this.folderName = folderName;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/room/RoomDTO.java b/src/db/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
new file mode 100644
index 0000000..d8cae3d
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
@@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.room;
+
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.room.RoomType;
+
+public class RoomDTO {
+	private Long id;
+	private String name;
+	private String comment;
+	private RoomType roomtype;
+	private Long numberOfPartizipants = new Long(4);
+	private boolean appointment;
+	private String confno;
+	
+	public RoomDTO(Room r) {
+		id = r.getRooms_id();
+		name = r.getName();
+		comment = r.getComment();
+		roomtype = r.getRoomtype();
+		numberOfPartizipants = r.getNumberOfPartizipants();
+		appointment = r.getAppointment();
+		confno = r.getConfno();
+	}
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getComment() {
+		return comment;
+	}
+
+	public void setComment(String comment) {
+		this.comment = comment;
+	}
+
+	public RoomType getRoomtype() {
+		return roomtype;
+	}
+
+	public void setRoomtype(RoomType roomtype) {
+		this.roomtype = roomtype;
+	}
+
+	public Long getNumberOfPartizipants() {
+		return numberOfPartizipants;
+	}
+
+	public void setNumberOfPartizipants(Long numberOfPartizipants) {
+		this.numberOfPartizipants = numberOfPartizipants;
+	}
+
+	public boolean isAppointment() {
+		return appointment;
+	}
+
+	public void setAppointment(boolean appointment) {
+		this.appointment = appointment;
+	}
+
+	public String getConfno() {
+		return confno;
+	}
+
+	public void setConfno(String confno) {
+		this.confno = confno;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/room/RoomSearchResult.java b/src/db/java/org/apache/openmeetings/db/dto/room/RoomSearchResult.java
new file mode 100644
index 0000000..57ae324
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/room/RoomSearchResult.java
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.room;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.openmeetings.db.dto.basic.SearchResult;
+import org.apache.openmeetings.db.entity.room.Room;
+
+public class RoomSearchResult {
+	private String objectName;
+	private Long records;
+	private List<RoomDTO> result;
+	private Long errorId;
+
+	public RoomSearchResult(SearchResult<Room> copy) {
+		this.objectName = copy.getObjectName();
+		this.records = copy.getRecords();
+		this.result = new ArrayList<RoomDTO>(copy.getResult().size());
+		for (Room r : copy.getResult()) {
+			result.add(new RoomDTO(r));
+		}
+		this.errorId = copy.getErrorId();
+	}
+
+	public String getObjectName() {
+		return objectName;
+	}
+
+	public void setObjectName(String objectName) {
+		this.objectName = objectName;
+	}
+
+	public Long getRecords() {
+		return records;
+	}
+
+	public void setRecords(Long records) {
+		this.records = records;
+	}
+
+	public List<RoomDTO> getResult() {
+		return result;
+	}
+
+	public void setResult(List<RoomDTO> result) {
+		this.result = result;
+	}
+
+	public Long getErrorId() {
+		return errorId;
+	}
+
+	public void setErrorId(Long errorId) {
+		this.errorId = errorId;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/room/RoomStatus.java b/src/db/java/org/apache/openmeetings/db/dto/room/RoomStatus.java
new file mode 100644
index 0000000..441e812
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/room/RoomStatus.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.room;
+
+import java.util.List;
+
+import org.apache.openmeetings.db.entity.room.Client;
+
+public class RoomStatus {
+	
+	List<Client> clientList;
+	BrowserStatus browserStatus;
+	Boolean roomFull = false;
+	
+	public List<Client> getClientList() {
+		return clientList;
+	}
+	public void setClientList(List<Client> clientList) {
+		this.clientList = clientList;
+	}
+	public BrowserStatus getBrowserStatus() {
+		return browserStatus;
+	}
+	public void setBrowserStatus(BrowserStatus browserStatus) {
+		this.browserStatus = browserStatus;
+	}
+	public Boolean getRoomFull() {
+		return roomFull;
+	}
+	public void setRoomFull(Boolean roomFull) {
+		this.roomFull = roomFull;
+	}
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/room/WhiteboardObject.java b/src/db/java/org/apache/openmeetings/db/dto/room/WhiteboardObject.java
new file mode 100644
index 0000000..0466dde
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/room/WhiteboardObject.java
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.room;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class WhiteboardObject {
+
+	private Long whiteBoardId;
+	private Integer x = 0;
+	private Integer y = 0;
+	private Integer zoom = 100;
+	private Boolean fullFit = true;
+	@SuppressWarnings("rawtypes")
+	private Map<String, List> roomItems = new HashMap<String, List>();
+	private Date created = new Date();
+
+	public Long getWhiteBoardId() {
+		return whiteBoardId;
+	}
+
+	public void setWhiteBoardId(Long whiteBoardId) {
+		this.whiteBoardId = whiteBoardId;
+	}
+
+	public Integer getX() {
+		return x;
+	}
+
+	public void setX(Integer x) {
+		this.x = x;
+	}
+
+	public Integer getY() {
+		return y;
+	}
+
+	public void setY(Integer y) {
+		this.y = y;
+	}
+
+	@SuppressWarnings("rawtypes")
+	public Map<String, List> getRoomItems() {
+		return roomItems;
+	}
+
+	@SuppressWarnings("rawtypes")
+	public void setRoomItems(Map<String, List> roomItems) {
+		this.roomItems = roomItems;
+	}
+
+	public Date getCreated() {
+		return created;
+	}
+
+	public void setCreated(Date created) {
+		this.created = created;
+	}
+
+	public Integer getZoom() {
+		return zoom;
+	}
+
+	public void setZoom(Integer zoom) {
+		this.zoom = zoom;
+	}
+
+	public Boolean getFullFit() {
+		return fullFit;
+	}
+
+	public void setFullFit(Boolean fullFit) {
+		this.fullFit = fullFit;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/room/WhiteboardObjectList.java b/src/db/java/org/apache/openmeetings/db/dto/room/WhiteboardObjectList.java
new file mode 100644
index 0000000..1cbcac0
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/room/WhiteboardObjectList.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.room;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class WhiteboardObjectList {
+
+	private Long room_id;
+	private Map<Long,WhiteboardObject> whiteboardObjects = new HashMap<Long,WhiteboardObject>();
+	
+	public Long getRoom_id() {
+		return room_id;
+	}
+	public void setRoom_id(Long roomId) {
+		room_id = roomId;
+	}
+	public Map<Long, WhiteboardObject> getWhiteboardObjects() {
+		return whiteboardObjects;
+	}
+	public void setWhiteboardObjects(Map<Long, WhiteboardObject> whiteboardObjects) {
+		this.whiteboardObjects = whiteboardObjects;
+	}
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/room/WhiteboardSyncLockObject.java b/src/db/java/org/apache/openmeetings/db/dto/room/WhiteboardSyncLockObject.java
new file mode 100644
index 0000000..5b20c3c
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/room/WhiteboardSyncLockObject.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.room;
+
+import java.util.Date;
+
+public class WhiteboardSyncLockObject {
+
+	private String publicSID;
+	private boolean isInitialLoaded = false;
+	private boolean isCurrentLoadingItem = false;
+
+	private Date addtime;
+	private Date starttime;
+
+	public String getPublicSID() {
+		return publicSID;
+	}
+
+	public void setPublicSID(String publicSID) {
+		this.publicSID = publicSID;
+	}
+
+	public boolean isInitialLoaded() {
+		return isInitialLoaded;
+	}
+
+	public void setInitialLoaded(boolean isInitialLoaded) {
+		this.isInitialLoaded = isInitialLoaded;
+	}
+
+	public Date getStarttime() {
+		return starttime;
+	}
+
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+
+	public boolean isCurrentLoadingItem() {
+		return isCurrentLoadingItem;
+	}
+
+	public void setCurrentLoadingItem(boolean isCurrentLoadingItem) {
+		this.isCurrentLoadingItem = isCurrentLoadingItem;
+	}
+
+	public Date getAddtime() {
+		return addtime;
+	}
+
+	public void setAddtime(Date addtime) {
+		this.addtime = addtime;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/server/ClientSessionInfo.java b/src/db/java/org/apache/openmeetings/db/dto/server/ClientSessionInfo.java
new file mode 100644
index 0000000..1a375be
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/server/ClientSessionInfo.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.server;
+
+import org.apache.openmeetings.db.entity.room.Client;
+
+
+public class ClientSessionInfo {
+	
+	private Client rcl;
+	public Long serverId;
+	
+	public ClientSessionInfo(Client rcl, Long serverId) {
+		super();
+		this.rcl = rcl;
+		this.serverId = serverId;
+	}
+	
+	public Client getRcl() {
+		return rcl;
+	}
+	public void setRcl(Client rcl) {
+		this.rcl = rcl;
+	}
+	public Long getServerId() {
+		return serverId;
+	}
+	public void setServerId(Long serverId) {
+		this.serverId = serverId;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/server/ServerDTO.java b/src/db/java/org/apache/openmeetings/db/dto/server/ServerDTO.java
new file mode 100644
index 0000000..9352c9c9
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/server/ServerDTO.java
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.server;
+
+import org.apache.openmeetings.db.entity.server.Server;
+
+/**
+ * 
+ * Bean send to the client about the server he is going to use for the conference 
+ * session
+ * 
+ * @author sebawagner
+ *
+ */
+public class ServerDTO {
+
+	private Long id;
+	private String address;
+	private int port;
+	private String protocol;
+	private String webapp;
+
+	public ServerDTO(Server server) {
+		if (server == null) {
+			return;
+		}
+		id = server.getId();
+		address = server.getAddress();
+		port = server.getPort();
+		protocol = server.getProtocol();
+		webapp = server.getWebapp();
+	}
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getAddress() {
+		return address;
+	}
+
+	public void setAddress(String address) {
+		this.address = address;
+	}
+
+	public int getPort() {
+		return port;
+	}
+
+	public void setPort(int port) {
+		this.port = port;
+	}
+
+	public String getProtocol() {
+		return protocol;
+	}
+
+	public void setProtocol(String protocol) {
+		this.protocol = protocol;
+	}
+
+	public String getWebapp() {
+		return webapp;
+	}
+
+	public void setWebapp(String webapp) {
+		this.webapp = webapp;
+	}
+	
+	@Override
+	public String toString() {
+		return "id "+id+" address "+address+" port "+port+" protocol "+protocol;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/user/UserDTO.java b/src/db/java/org/apache/openmeetings/db/dto/user/UserDTO.java
new file mode 100644
index 0000000..740cd8c
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/user/UserDTO.java
@@ -0,0 +1,119 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.user;
+
+import org.apache.openmeetings.db.entity.user.Address;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.User.Type;
+
+public class UserDTO {
+	private Long id;
+	private String firstname;
+	private String lastname;
+	private Long level_id;
+	private String login;
+	private Long language_id;
+	private Address adresses;
+	private String timeZoneId;
+	private Type type = Type.user;
+
+	public UserDTO(User u) {
+		id = u.getUser_id();
+		firstname = u.getFirstname();
+		lastname = u.getLastname();
+		level_id = u.getLevel_id();
+		login = u.getLogin();
+		language_id = u.getLanguage_id();
+		adresses = u.getAdresses();
+		timeZoneId = u.getTimeZoneId();
+		type = u.getType();
+	}
+	
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getFirstname() {
+		return firstname;
+	}
+
+	public void setFirstname(String firstname) {
+		this.firstname = firstname;
+	}
+
+	public String getLastname() {
+		return lastname;
+	}
+
+	public void setLastname(String lastname) {
+		this.lastname = lastname;
+	}
+
+	public Long getLevel_id() {
+		return level_id;
+	}
+
+	public void setLevel_id(Long level_id) {
+		this.level_id = level_id;
+	}
+
+	public String getLogin() {
+		return login;
+	}
+
+	public void setLogin(String login) {
+		this.login = login;
+	}
+
+	public Long getLanguage_id() {
+		return language_id;
+	}
+
+	public void setLanguage_id(Long language_id) {
+		this.language_id = language_id;
+	}
+
+	public Address getAdresses() {
+		return adresses;
+	}
+
+	public void setAdresses(Address adresses) {
+		this.adresses = adresses;
+	}
+
+	public String getTimeZoneId() {
+		return timeZoneId;
+	}
+
+	public void setTimeZoneId(String timeZoneId) {
+		this.timeZoneId = timeZoneId;
+	}
+
+	public Type getType() {
+		return type;
+	}
+
+	public void setType(Type type) {
+		this.type = type;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/dto/user/UserSearchResult.java b/src/db/java/org/apache/openmeetings/db/dto/user/UserSearchResult.java
new file mode 100644
index 0000000..c11a40e
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/dto/user/UserSearchResult.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dto.user;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.openmeetings.db.dto.basic.SearchResult;
+import org.apache.openmeetings.db.entity.user.User;
+
+public class UserSearchResult {
+	private String objectName;
+	private Long records;
+	private List<UserDTO> result;
+	private Long errorId;
+	
+	public UserSearchResult(SearchResult<User> copy) {
+		this.objectName = copy.getObjectName();
+		this.records = copy.getRecords();
+		this.result = new ArrayList<UserDTO>(copy.getResult().size());
+		for (User u : copy.getResult()) {
+			result.add(new UserDTO(u));
+		}
+		this.errorId = copy.getErrorId();
+	}
+	
+	public String getObjectName() {
+		return objectName;
+	}
+
+	public void setObjectName(String objectName) {
+		this.objectName = objectName;
+	}
+
+	public Long getRecords() {
+		return records;
+	}
+
+	public void setRecords(Long records) {
+		this.records = records;
+	}
+
+	public List<UserDTO> getResult() {
+		return result;
+	}
+
+	public void setResult(List<UserDTO> result) {
+		this.result = result;
+	}
+
+	public Long getErrorId() {
+		return errorId;
+	}
+
+	public void setErrorId(Long errorId) {
+		this.errorId = errorId;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/IDataProviderEntity.java b/src/db/java/org/apache/openmeetings/db/entity/IDataProviderEntity.java
new file mode 100644
index 0000000..3375185
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/IDataProviderEntity.java
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity;
+
+public interface IDataProviderEntity {
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/basic/ChatMessage.java b/src/db/java/org/apache/openmeetings/db/entity/basic/ChatMessage.java
new file mode 100644
index 0000000..c7ad75a
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/basic/ChatMessage.java
@@ -0,0 +1,133 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.basic;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.Lob;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.user.User;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
+
+@Entity
+@NamedQueries({
+	@NamedQuery(name = "getChatMessageById", query = "SELECT c FROM ChatMessage c WHERE c.id = :id")
+	, @NamedQuery(name = "getChatMessagesByUser", query = "SELECT DISTINCT c FROM ChatMessage c WHERE c.fromUser.user_id = :userId OR c.toUser.user_id = :userId ORDER BY c.sent ASC")
+	, @NamedQuery(name = "getGlobalChatMessages", query = "SELECT DISTINCT c FROM ChatMessage c WHERE c.toUser IS NULL ORDER BY c.sent ASC")
+})@Table(name = "chat")
+@Root(name = "ChatMessage")
+public class ChatMessage implements Serializable, IDataProviderEntity {
+	private static final long serialVersionUID = 4248081997318897605L;
+
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "id")
+	@Element(name = "id", data = true)
+	private long id;
+
+	@ManyToOne
+	@JoinColumn(name = "from_user_id")
+	@Element(name = "fromUserId", data = true, required = false)
+	@ForeignKey(enabled = true)
+	private User fromUser;
+	
+	@ManyToOne
+	@JoinColumn(name = "to_room_id")
+	@Element(name = "toRoomId", data = true, required = false)
+	@ForeignKey(enabled = true)
+	private Room toRoom;
+	
+	@ManyToOne
+	@JoinColumn(name = "to_user_id")
+	@Element(name = "toUserId", data = true, required = false)
+	@ForeignKey(enabled = true)
+	private User toUser;
+
+	@Column(name = "message")
+	@Lob
+	@Element(name = "message", data = true, required = false)
+	private String message;
+	
+	@Column(name = "sent")
+	@Element(name = "sent", data = true, required = false)
+	private Date sent;
+
+	public long getId() {
+		return id;
+	}
+
+	public void setId(long id) {
+		this.id = id;
+	}
+
+	public User getFromUser() {
+		return fromUser;
+	}
+
+	public void setFromUser(User fromUser) {
+		this.fromUser = fromUser;
+	}
+
+	public Room getToRoom() {
+		return toRoom;
+	}
+
+	public void setToRoom(Room toRoom) {
+		this.toRoom = toRoom;
+	}
+
+	public User getToUser() {
+		return toUser;
+	}
+
+	public void setToUser(User toUser) {
+		this.toUser = toUser;
+	}
+
+	public String getMessage() {
+		return message;
+	}
+
+	public void setMessage(String message) {
+		this.message = message;
+	}
+
+	public Date getSent() {
+		return sent;
+	}
+
+	public void setSent(Date sent) {
+		this.sent = sent;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/basic/Configuration.java b/src/db/java/org/apache/openmeetings/db/entity/basic/Configuration.java
new file mode 100644
index 0000000..42e56bc
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/basic/Configuration.java
@@ -0,0 +1,161 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.basic;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.Lob;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.apache.openmeetings.db.entity.user.User;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
+
+@Entity
+@NamedQueries({
+		@NamedQuery(name = "forceGetConfigurationByKey", query = "SELECT c FROM Configuration c " 
+				+ "WHERE c.conf_key LIKE :conf_key"),
+		@NamedQuery(name = "getConfigurationsByKeys", query = "SELECT c FROM Configuration c "
+				+ "WHERE c.conf_key IN :conf_keys and c.deleted = false"),
+		@NamedQuery(name = "getNondeletedConfiguration", query = "SELECT c FROM Configuration c  "
+				+ "LEFT JOIN FETCH c.user WHERE c.deleted = false"),
+		@NamedQuery(name = "getConfigurationById", query = "SELECT c FROM Configuration c "
+				+ "LEFT JOIN FETCH c.user "
+				+ "WHERE c.configuration_id = :configuration_id and c.deleted = false"),
+		@NamedQuery(name = "countConfigurations", query = "SELECT COUNT(c) FROM Configuration c WHERE c.deleted = false")
+})
+@Table(name = "configuration")
+@Root(name = "config")
+public class Configuration implements Serializable, IDataProviderEntity {
+	private static final long serialVersionUID = -6129473946508963339L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "id")
+	@Element(name = "id", data = true)
+	private Long configuration_id;
+
+	@Column(name = "conf_key", unique = true)
+	@Element(name = "key", data = true, required = false)
+	private String conf_key;
+
+	@Column(name = "conf_value")
+	@Element(name = "value", data = true, required = false)
+	private String conf_value;
+
+	@Column(name = "starttime")
+	@Element(name = "created", data = true, required = false)
+	private Date starttime;
+
+	@Column(name = "updatetime")
+	@Element(name = "updated", data = true, required = false)
+	private Date updatetime;
+
+	@Lob
+	@Column(name = "comment_field", length = 2048)
+	@Element(data = true, required = false)
+	private String comment;
+
+	@Column(name = "deleted")
+	@Element(data = true)
+	private boolean deleted;
+
+	@ManyToOne(fetch = FetchType.LAZY)
+	@JoinColumn(name = "user_id")
+	@ForeignKey(enabled = true)
+	@Element(name = "user_id", data = true, required = false)
+	private User user;
+
+	public String getComment() {
+		return comment;
+	}
+
+	public void setComment(String comment) {
+		this.comment = comment;
+	}
+
+	public String getConf_key() {
+		return conf_key;
+	}
+
+	public void setConf_key(String conf_key) {
+		this.conf_key = conf_key;
+	}
+
+	public String getConf_value() {
+		return conf_value;
+	}
+
+	public void setConf_value(String conf_value) {
+		this.conf_value = conf_value;
+	}
+
+	public Long getConfiguration_id() {
+		return configuration_id;
+	}
+
+	public void setConfiguration_id(Long configuration_id) {
+		this.configuration_id = configuration_id;
+	}
+
+	public Date getStarttime() {
+		return starttime;
+	}
+
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+
+	public Date getUpdatetime() {
+		return updatetime;
+	}
+
+	public void setUpdatetime(Date updatetime) {
+		this.updatetime = updatetime;
+	}
+
+	public boolean isDeleted() {
+		return deleted;
+	}
+
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	public User getUser() {
+		return user;
+	}
+
+	public void setUser(User user) {
+		this.user = user;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/basic/ErrorType.java b/src/db/java/org/apache/openmeetings/db/entity/basic/ErrorType.java
new file mode 100644
index 0000000..5e0a349
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/basic/ErrorType.java
@@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.basic;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+@Entity
+@NamedQueries({
+	@NamedQuery(name = "getErrorTypes", query = "select c from ErrorType as c "
+					+ "WHERE c.deleted <> :deleted"),
+	@NamedQuery(name = "getErrorType", query = "select c from ErrorType as c "
+					+ "WHERE c.deleted <> :deleted AND c.errortype_id = :errortype_id")
+})
+@Table(name = "errortypes")
+public class ErrorType implements Serializable {
+	private static final long serialVersionUID = 1519570470483604258L;
+
+	@Id
+	@Column(name = "id")
+	private Long errortype_id;
+
+	@Column(name = "fieldvalues_id")
+	private Long fieldvalues_id;
+
+	@Column(name = "starttime")
+	private Date starttime;
+	
+	@Column(name = "updatetime")
+	private Date updatetime;
+	
+	@Column(name = "deleted")
+	private boolean deleted;
+
+	public Long getErrortype_id() {
+		return errortype_id;
+	}
+
+	public void setErrortype_id(Long errortype_id) {
+		this.errortype_id = errortype_id;
+	}
+
+	public Date getStarttime() {
+		return starttime;
+	}
+
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+
+	public Date getUpdatetime() {
+		return updatetime;
+	}
+
+	public void setUpdatetime(Date updatetime) {
+		this.updatetime = updatetime;
+	}
+
+	public boolean getDeleted() {
+		return deleted;
+	}
+
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	public Long getFieldvalues_id() {
+		return this.fieldvalues_id;
+	}
+
+	public void setFieldvalues_id(Long fieldvalues_id) {
+		this.fieldvalues_id = fieldvalues_id;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/basic/ErrorValue.java b/src/db/java/org/apache/openmeetings/db/entity/basic/ErrorValue.java
new file mode 100644
index 0000000..3bb8cea
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/basic/ErrorValue.java
@@ -0,0 +1,106 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.basic;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+@Entity
+@NamedQueries({
+	@NamedQuery(name = "getErrorValueById", query = "SELECT e FROM ErrorValue e WHERE e.errorvalues_id = :id AND e.deleted = false")
+})
+@Table(name = "errorvalue")
+public class ErrorValue implements Serializable {
+	private static final long serialVersionUID = -1892810463706968018L;
+
+	@Id
+	@Column(name = "id")
+	private Long errorvalues_id;
+	
+	@Column(name = "errortype_id")
+	private Long errortype_id;
+	
+	@Column(name = "fieldvalues_id")
+	private Long fieldvalues_id;
+	
+	@Column(name = "starttime")
+	private Date starttime;
+	
+	@Column(name = "updatetime")
+	private Date updatetime;
+	
+	@Column(name = "deleted")
+	private boolean deleted;
+
+	public Long getErrorvalues_id() {
+		return errorvalues_id;
+	}
+
+	public void setErrorvalues_id(Long errorvalues_id) {
+		this.errorvalues_id = errorvalues_id;
+	}
+
+	public Date getStarttime() {
+		return starttime;
+	}
+
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+
+	public Date getUpdatetime() {
+		return updatetime;
+	}
+
+	public void setUpdatetime(Date updatetime) {
+		this.updatetime = updatetime;
+	}
+
+	public boolean getDeleted() {
+		return deleted;
+	}
+
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+	
+	public Long getFieldvalues_id() {
+		return fieldvalues_id;
+	}
+
+	public void setFieldvalues_id(Long fieldvalues_id) {
+		this.fieldvalues_id = fieldvalues_id;
+	}
+
+	public Long getErrortype_id() {
+		//return errorType.getErrortype_id();
+		return errortype_id;
+	}
+
+	public void setErrortype_id(Long errortype_id) {
+		this.errortype_id = errortype_id;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/basic/MailMessage.java b/src/db/java/org/apache/openmeetings/db/entity/basic/MailMessage.java
new file mode 100644
index 0000000..ba569b0
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/basic/MailMessage.java
@@ -0,0 +1,196 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.db.entity.basic;

+

+import java.util.Calendar;

+

+import javax.persistence.Column;

+import javax.persistence.Entity;

+import javax.persistence.EnumType;

+import javax.persistence.Enumerated;

+import javax.persistence.GeneratedValue;

+import javax.persistence.GenerationType;

+import javax.persistence.Id;

+import javax.persistence.Lob;

+import javax.persistence.NamedQueries;

+import javax.persistence.NamedQuery;

+import javax.persistence.Table;

+

+import org.apache.openmeetings.db.entity.IDataProviderEntity;

+

+@Entity

+@NamedQueries({

+	@NamedQuery(name = "getMailMessageById", query = "SELECT m FROM MailMessage m WHERE m.id = :id")

+	, @NamedQuery(name = "getMailMessages"

+		, query = "SELECT m FROM MailMessage m WHERE m.status = :status ORDER BY m.updated, m.inserted")

+	, @NamedQuery(name = "countMailMessages", query = "SELECT COUNT(m) FROM MailMessage m WHERE m.status = :status")

+})

+@Table(name = "email_queue")

+public class MailMessage implements IDataProviderEntity {

+	public enum Status {

+		NONE

+		, SENDING

+		, ERROR

+		, DONE

+	}

+	

+	@Id

+	@GeneratedValue(strategy = GenerationType.IDENTITY)

+	@Column(name = "id")

+	private Long id;

+	

+	@Lob

+	@Column(name = "recipients")

+	private String recipients;

+	

+	@Column(name = "replyTo")

+	private String replyTo;

+	

+	@Column(name = "subject")

+	private String subject;

+	

+	@Lob

+	@Column(name = "body")

+	private String body;

+

+	@Lob

+	@Column(name = "ics")

+	private byte[] ics;

+

+	@Column(name = "status", nullable = false)

+	@Enumerated(EnumType.STRING)

+	private Status status = Status.NONE;

+

+	@Column(name = "inserted")

+	private Calendar inserted;

+	

+	@Column(name = "updated")

+	private Calendar updated;

+	

+	@Column(name = "error_count", nullable = false)

+	private int errorCount = 0;

+	

+	@Lob

+	@Column(name = "last_error")

+	private String lastError;

+

+	public MailMessage() {

+		this(null, null, null, null, null);

+	}

+	

+	public MailMessage(String recipients, String replyTo, String subject, String body) {

+		this(recipients, replyTo, subject, body, null);

+	}

+	

+	public MailMessage(String recipients, String replyTo, String subject, String body, byte[] ics) {

+		this.recipients = recipients;

+		this.replyTo = replyTo;

+		this.subject = subject;

+		this.body = body;

+		this.ics = ics;

+	}

+	

+	public Long getId() {

+		return id;

+	}

+

+	public void setId(Long id) {

+		this.id = id;

+	}

+

+	public String getRecipients() {

+		return recipients;

+	}

+

+	public void setRecipients(String recipients) {

+		this.recipients = recipients;

+	}

+

+	public String getReplyTo() {

+		return replyTo;

+	}

+

+	public void setReplyTo(String replyTo) {

+		this.replyTo = replyTo;

+	}

+

+	public String getSubject() {

+		return subject;

+	}

+

+	public void setSubject(String subject) {

+		this.subject = subject;

+	}

+

+	public String getBody() {

+		return body;

+	}

+

+	public void setBody(String body) {

+		this.body = body;

+	}

+

+	public Status getStatus() {

+		return status;

+	}

+

+	public void setStatus(Status status) {

+		this.status = status;

+	}

+

+	public Calendar getInserted() {

+		return inserted;

+	}

+

+	public void setInserted(Calendar inserted) {

+		this.inserted = inserted;

+	}

+

+	public Calendar getUpdated() {

+		return updated;

+	}

+

+	public void setUpdated(Calendar updated) {

+		this.updated = updated;

+	}

+

+	public byte[] getIcs() {

+		return ics;

+	}

+

+	public void setIcs(byte[] ics) {

+		this.ics = ics;

+	}

+

+	public int getErrorCount() {

+		return errorCount;

+	}

+

+	public void setErrorCount(int errorCount) {

+		this.errorCount = errorCount;

+	}

+

+	public String getLastError() {

+		return lastError;

+	}

+

+	public void setLastError(String lastError) {

+		this.lastError = lastError;

+	}

+}

diff --git a/src/db/java/org/apache/openmeetings/db/entity/basic/Naviglobal.java b/src/db/java/org/apache/openmeetings/db/entity/basic/Naviglobal.java
new file mode 100644
index 0000000..bf850c8
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/basic/Naviglobal.java
@@ -0,0 +1,249 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.basic;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.label.Fieldlanguagesvalues;
+
+@Entity
+@NamedQueries({
+		@NamedQuery(name = "getNavigation", query = "SELECT DISTINCT ng from Naviglobal ng " + "LEFT JOIN ng.mainnavi nm "
+				+ "WHERE nm.deleted = false " + "AND ng.level_id <= :level_id " + "AND nm.level_id <= :level_id "
+				+ "AND ng.deleted = false " + "order by ng.naviorder, nm.naviorder"),
+		@NamedQuery(name = "getNavigationById", query = "SELECT ng from Naviglobal ng WHERE ng.global_id = :global_id") })
+@Table(name = "naviglobal")
+public class Naviglobal implements Serializable {
+
+	private static final long serialVersionUID = 515828033813767719L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "id")
+	private Long global_id;
+
+	@Column(name = "name")
+	private String name;
+
+	@Column(name = "icon")
+	private String icon;
+
+	@Column(name = "isleaf")
+	private Boolean isleaf;
+
+	@Column(name = "isopen")
+	private Boolean isopen;
+
+	@Column(name = "action")
+	private String action;
+
+	@Column(name = "updatetime")
+	private Date updatetime;
+
+	@Column(name = "starttime")
+	private Date starttime;
+
+	@Column(name = "comment_field")
+	private String comment;
+
+	@Column(name = "naviorder")
+	private Integer naviorder;
+
+	@Column(name = "level_id")
+	private Long level_id;
+
+	@Column(name = "deleted")
+	private boolean deleted;
+
+	@Column(name = "fieldvalues_id")
+	private Long fieldvalues_id;
+
+	@Column(name = "tooltip_fieldvalues_id")
+	private Long tooltip_fieldvalues_id;
+
+	@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
+	@JoinColumn(name = "global_id")
+	@ForeignKey(enabled = true)
+	private List<Navimain> mainnavi;
+
+	@Transient
+	private Fieldlanguagesvalues label;
+
+	@Transient
+	private Fieldlanguagesvalues tooltip;
+
+	public String getAction() {
+		return action;
+	}
+
+	public void setAction(String action) {
+		this.action = action;
+	}
+
+	public String getComment() {
+		return comment;
+	}
+
+	public void setComment(String comment) {
+		this.comment = comment;
+	}
+
+	public Long getGlobal_id() {
+		return global_id;
+	}
+
+	public void setGlobal_id(Long global_id) {
+		this.global_id = global_id;
+	}
+
+	public String getIcon() {
+		return icon;
+	}
+
+	public void setIcon(String icon) {
+		this.icon = icon;
+	}
+
+	public Boolean getIsleaf() {
+		return isleaf;
+	}
+
+	public void setIsleaf(Boolean isleaf) {
+		this.isleaf = isleaf;
+	}
+
+	public Boolean getIsopen() {
+		return isopen;
+	}
+
+	public void setIsopen(Boolean isopen) {
+		this.isopen = isopen;
+	}
+
+	public Date getStarttime() {
+		return starttime;
+	}
+
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+
+	public Date getUpdatetime() {
+		return updatetime;
+	}
+
+	public void setUpdatetime(Date updatetime) {
+		this.updatetime = updatetime;
+	}
+
+	public boolean getDeleted() {
+		return deleted;
+	}
+
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Integer getNaviorder() {
+		return naviorder;
+	}
+
+	public void setNaviorder(Integer naviorder) {
+		this.naviorder = naviorder;
+	}
+
+	public Long getLevel_id() {
+		return level_id;
+	}
+
+	public void setLevel_id(Long level_id) {
+		this.level_id = level_id;
+	}
+
+	public List<Navimain> getMainnavi() {
+		return mainnavi;
+	}
+
+	public void setMainnavi(List<Navimain> mainnavi) {
+		this.mainnavi = mainnavi;
+	}
+
+	public Long getFieldvalues_id() {
+		return fieldvalues_id;
+	}
+
+	public void setFieldvalues_id(Long fieldvalues_id) {
+		this.fieldvalues_id = fieldvalues_id;
+	}
+
+	public Fieldlanguagesvalues getLabel() {
+		return label;
+	}
+
+	public void setLabel(Fieldlanguagesvalues label) {
+		this.label = label;
+	}
+
+	public Long getTooltip_fieldvalues_id() {
+		return tooltip_fieldvalues_id;
+	}
+
+	public void setTooltip_fieldvalues_id(Long tooltip_fieldvalues_id) {
+		this.tooltip_fieldvalues_id = tooltip_fieldvalues_id;
+	}
+
+	public Fieldlanguagesvalues getTooltip() {
+		return tooltip;
+	}
+
+	public void setTooltip(Fieldlanguagesvalues tooltip) {
+		this.tooltip = tooltip;
+	}
+
+	@Override
+	public String toString() {
+		return "Naviglobal [global_id=" + global_id + ", name=" + name + ", action=" + action + ", naviorder=" + naviorder + ", deleted="
+				+ deleted + ", fieldvalues_id=" + fieldvalues_id + ", tooltip_fieldvalues_id=" + tooltip_fieldvalues_id + "]";
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/basic/Navimain.java b/src/db/java/org/apache/openmeetings/db/entity/basic/Navimain.java
new file mode 100644
index 0000000..ff32fb9
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/basic/Navimain.java
@@ -0,0 +1,244 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.basic;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+
+import org.apache.openmeetings.db.entity.label.Fieldlanguagesvalues;
+
+@Entity
+@Table(name = "navimain")
+public class Navimain implements Serializable {
+	private static final long serialVersionUID = 1691787896183701877L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "id")
+	private Long main_id;
+
+	@Column(name = "global_id")
+	private Long global_id;
+
+	@Column(name = "name")
+	private String name;
+
+	@Column(name = "icon")
+	private String icon;
+
+	@Column(name = "isleaf")
+	private Boolean isleaf;
+
+	@Column(name = "isopen")
+	private Boolean isopen;
+
+	@Column(name = "action")
+	private String action;
+
+	@Column(name = "params")
+	private String params;
+
+	@Column(name = "updatetime")
+	private Date updatetime;
+
+	@Column(name = "starttime")
+	private Date starttime;
+
+	@Column(name = "comment_field")
+	private String comment;
+
+	@Column(name = "naviorder")
+	private Integer naviorder;
+
+	@Column(name = "level_id")
+	private Long level_id;
+
+	@Column(name = "fieldvalues_id")
+	private Long fieldvalues_id;
+
+	@Column(name = "deleted")
+	private boolean deleted;
+
+	@Transient
+	private Fieldlanguagesvalues label;
+
+	@Transient
+	private Fieldlanguagesvalues tooltip;
+
+	@Column(name = "tooltip_fieldvalues_id")
+	private Long tooltip_fieldvalues_id;
+
+	public String getAction() {
+		return action;
+	}
+
+	public void setAction(String action) {
+		this.action = action;
+	}
+
+	public Long getLevel_id() {
+		return level_id;
+	}
+
+	public void setLevel_id(Long level_id) {
+		this.level_id = level_id;
+	}
+
+	public Long getGlobal_id() {
+		return global_id;
+	}
+
+	public void setGlobal_id(Long global_id) {
+		this.global_id = global_id;
+	}
+
+	public String getComment() {
+		return comment;
+	}
+
+	public void setComment(String comment) {
+		this.comment = comment;
+	}
+
+	public Long getMain_id() {
+		return main_id;
+	}
+
+	public void setMain_id(Long main_id) {
+		this.main_id = main_id;
+	}
+
+	public String getIcon() {
+		return icon;
+	}
+
+	public void setIcon(String icon) {
+		this.icon = icon;
+	}
+
+	public Boolean getIsleaf() {
+		return isleaf;
+	}
+
+	public void setIsleaf(Boolean isleaf) {
+		this.isleaf = isleaf;
+	}
+
+	public Boolean getIsopen() {
+		return isopen;
+	}
+
+	public void setIsopen(Boolean isopen) {
+		this.isopen = isopen;
+	}
+
+	public Date getStarttime() {
+		return starttime;
+	}
+
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+
+	public Date getUpdatetime() {
+		return updatetime;
+	}
+
+	public void setUpdatetime(Date updatetime) {
+		this.updatetime = updatetime;
+	}
+
+	public boolean getDeleted() {
+		return deleted;
+	}
+
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Integer getNaviorder() {
+		return naviorder;
+	}
+
+	public void setNaviorder(Integer naviorder) {
+		this.naviorder = naviorder;
+	}
+
+	public Long getFieldvalues_id() {
+		return fieldvalues_id;
+	}
+
+	public void setFieldvalues_id(Long fieldvalues_id) {
+		this.fieldvalues_id = fieldvalues_id;
+	}
+
+	public Fieldlanguagesvalues getLabel() {
+		return label;
+	}
+
+	public void setLabel(Fieldlanguagesvalues label) {
+		this.label = label;
+	}
+
+	public Long getTooltip_fieldvalues_id() {
+		return tooltip_fieldvalues_id;
+	}
+
+	public void setTooltip_fieldvalues_id(Long tooltip_fieldvalues_id) {
+		this.tooltip_fieldvalues_id = tooltip_fieldvalues_id;
+	}
+
+	public Fieldlanguagesvalues getTooltip() {
+		return tooltip;
+	}
+
+	public void setTooltip(Fieldlanguagesvalues tooltip) {
+		this.tooltip = tooltip;
+	}
+
+	public String getParams() {
+		return params;
+	}
+
+	public void setParams(String params) {
+		this.params = params;
+	}
+
+	@Override
+	public String toString() {
+		return "Navimain [main_id=" + main_id + ", global_id=" + global_id + ", name=" + name + ", action=" + action + ", params=" + params
+				+ ", naviorder=" + naviorder + ", fieldvalues_id=" + fieldvalues_id + ", deleted=" + deleted + ", tooltip_fieldvalues_id="
+				+ tooltip_fieldvalues_id + "]";
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/calendar/Appointment.java b/src/db/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
new file mode 100644
index 0000000..9a302bf
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
@@ -0,0 +1,424 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.calendar;
+
+import java.io.Serializable;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+import java.util.TimeZone;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.Lob;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.user.User;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
+
+@Entity
+@Table(name = "appointments")
+@NamedQueries({
+    @NamedQuery(name="getAppointmentById", query="SELECT a FROM Appointment a WHERE a.deleted = false AND a.id = :id")
+    , @NamedQuery(name="appointmentsInRange",
+    	query="SELECT a FROM Appointment a "
+			+ "WHERE a.deleted = false "
+			+ "	AND ( "
+			+ "		(a.start BETWEEN :starttime AND :endtime) "
+			+ "		OR (a.end BETWEEN :starttime AND :endtime) "
+			+ "		OR (a.start < :starttime AND a.end > :endtime) "
+			+ "	)"
+			+ "	AND a.owner.user_id = :userId"
+    	)
+    , @NamedQuery(name="joinedAppointmentsInRange",
+		query="SELECT a FROM MeetingMember mm INNER JOIN mm.appointment a "
+			+ "WHERE mm.deleted = false AND mm.user.user_id <> a.owner.user_id AND mm.user.user_id = :userId "
+			+ "	AND a.id NOT IN (SELECT a.id FROM Appointment a WHERE a.owner.user_id = :userId)"
+			+ "	AND mm.connectedEvent = false " //TODO review: isConnectedEvent is set for the MeetingMember if event is created from "Private Messages", it is weird
+			+ "	AND ( "
+			+ "		(a.start BETWEEN :starttime AND :endtime) "
+			+ "		OR (a.end BETWEEN :starttime AND :endtime) "
+			+ "		OR (a.start < :starttime AND a.end > :endtime) "
+			+ "	)"
+    	)
+    , @NamedQuery(name="appointmentsInRangeRemind",
+		query="SELECT a FROM Appointment a "
+			//only ReminderType simple mail is concerned!
+			+ "WHERE a.deleted = false AND a.reminderEmailSend = false"
+			+ " AND (a.remind.typId = 2 OR a.remind.typId = 3) "
+			+ "	AND ( "
+			+ "		(a.start BETWEEN :starttime AND :endtime) "
+			+ "		OR (a.end BETWEEN :starttime AND :endtime) "
+			+ "		OR (a.start < :starttime AND a.end > :endtime) "
+			+ "	)"
+    	)
+    , @NamedQuery(name="getAppointmentByRoomId", query="SELECT a FROM Appointment a WHERE a.deleted = false AND a.room.rooms_id = :room_id")
+	//TODO this query returns duplicates if the user books an appointment with
+	//his own user as second meeting-member, swagner 19.02.2012
+    , @NamedQuery(name="appointmentsInRangeByUser",
+		query="SELECT a FROM MeetingMember mm, IN(mm.appointment) a "
+			+ "WHERE mm.deleted = false AND mm.user.user_id <> a.owner.user_id AND mm.user.user_id = :userId "
+			+ "	AND ( "
+			+ "		(a.start BETWEEN :starttime AND :endtime) "
+			+ "		OR (a.end BETWEEN :starttime AND :endtime) "
+			+ "		OR (a.start < :starttime AND a.end > :endtime) "
+			+ "	)"
+	    )
+    , @NamedQuery(name="appointedRoomsInRangeByUser",
+		query="SELECT a.room FROM MeetingMember mm, IN(mm.appointment) a "
+			+ "WHERE mm.deleted <> true AND mm.user.user_id <> a.owner.user_id AND mm.user.user_id = :userId "
+			+ "	AND ( "
+			+ "		(a.start BETWEEN :starttime AND :endtime) "
+			+ "		OR (a.end BETWEEN :starttime AND :endtime) "
+			+ "		OR (a.start < :starttime AND a.end > :endtime) "
+			+ "	)"
+	    )
+})
+@Root(name="appointment")
+public class Appointment implements Serializable {
+	private static final long serialVersionUID = 2016808778885761525L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "id")
+	@Element(name = "appointmentId", data = true)
+	private Long id;
+	
+	@Column(name = "appointmentname")
+	@Element(name="appointmentName", data=true, required=false)
+	private String title;
+	
+	@Column(name = "location")
+	@Element(name="appointmentLocation", data=true, required=false)
+	private String location;
+	
+	@Column(name = "appointment_starttime")
+	@Element(name="appointmentStarttime", data=true)
+	private Date start;
+	
+	@Column(name = "appointment_endtime")
+	@Element(name="appointmentEndtime", data=true)
+	private Date end;
+	
+	@Lob 
+	@Column(name = "description", length=2048)
+	@Element(name="appointmentDescription", data=true, required=false)
+	private String description;
+	
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "category_id", nullable = true)
+	@ForeignKey(enabled = true)
+	@Element(name="categoryId", data=true, required=false)
+	private AppointmentCategory category;
+	
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "user_id", nullable = true)
+	@ForeignKey(enabled = true)
+	@Element(name="users_id", data=true, required=false)
+	private User owner;
+
+	@Column(name = "starttime")
+	@Element(name="inserted", data=true, required=false)
+	private Date inserted;
+	
+	@Column(name = "updatetime")
+	@Element(name="updated", data=true, required=false)
+	private Date updated;
+	
+	@Column(name = "deleted")
+	@Element(data=true)
+	private boolean deleted;
+	
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "remind_id", nullable = true)
+	@ForeignKey(enabled = true)
+	@Element(name="typId", data=true, required=false)
+	private AppointmentReminderTyps remind;
+
+	@Column(name = "isdaily")
+	@Element(data=true, required = false)
+	private Boolean isDaily;
+	
+	@Column(name = "isweekly")
+	@Element(data=true, required = false)
+	private Boolean isWeekly;
+	
+	@Column(name = "ismonthly")
+	@Element(data=true, required = false)
+	private Boolean isMonthly;
+	
+	@Column(name = "isyearly")
+	@Element(data=true, required = false)
+	private Boolean isYearly;
+
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "room_id", nullable = true)
+	@ForeignKey(enabled = true)
+	@Element(name="room_id", data=true, required=false)
+	private Room room;
+
+	@Column(name = "icalId")
+	@Element(data=true, required=false)
+	private String icalId;
+
+	@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
+	@JoinColumn(name = "appointment_id")
+	private List<MeetingMember> meetingMembers;
+	
+	@Column(name = "language_id")
+	@Element(name="language_id", data=true, required=false)
+	private Long languageId;
+	
+	@Column(name = "is_password_protected")
+	@Element(name="isPasswordProtected", data=true, required=false)
+	private boolean passwordProtected;
+	
+	@Column(name = "password")
+	@Element(data=true, required=false)
+	private String password;
+
+	@Column(name = "is_connected_event")
+	private boolean connectedEvent;
+
+	@Column(name = "is_reminder_email_send")
+	private boolean reminderEmailSend;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public User getOwner() {
+		return owner;
+	}
+
+	public void setOwner(User owner) {
+		this.owner = owner;
+	}
+
+	public String getTitle() {
+		return title;
+	}
+
+	public void setTitle(String title) {
+		this.title = title;
+	}
+
+	public String getLocation() {
+		return location;
+	}
+
+	public void setLocation(String location) {
+		this.location = location;
+	}
+
+	public Date getStart() {
+		return start;
+	}
+
+	public Calendar startCalendar(TimeZone timeZone) {
+		Calendar cal = Calendar.getInstance(timeZone);
+		cal.setTime(start);
+		return cal;
+	}
+
+	public void setStart(Date start) {
+		this.start = start;
+	}
+
+	public Date getEnd() {
+		return end;
+	}
+
+	public Calendar endCalendar(TimeZone timeZone) {
+		Calendar cal = Calendar.getInstance(timeZone);
+		cal.setTime(end);
+		return cal;
+	}
+
+	public void setEnd(Date end) {
+		this.end = end;
+	}
+
+	public String getDescription() {
+		return description;
+	}
+
+	public void setDescription(String description) {
+		this.description = description;
+	}
+
+	public AppointmentCategory getCategory() {
+		return category;
+	}
+
+	public void setCategory(AppointmentCategory category) {
+		this.category = category;
+	}
+
+	public AppointmentReminderTyps getRemind() {
+		return remind;
+	}
+
+	public void setRemind(AppointmentReminderTyps remind) {
+		this.remind = remind;
+	}
+
+	public Date getInserted() {
+		return inserted;
+	}
+
+	public void setInserted(Date inserted) {
+		this.inserted = inserted;
+	}
+
+	public Date getUpdated() {
+		return updated;
+	}
+
+	public void setUpdated(Date updated) {
+		this.updated = updated;
+	}
+
+	public boolean isDeleted() {
+		return deleted;
+	}
+
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	public Boolean getIsWeekly() {
+		return isWeekly;
+	}
+
+	public void setIsWeekly(Boolean isWeekly) {
+		this.isWeekly = isWeekly;
+	}
+
+	public Boolean getIsMonthly() {
+		return isMonthly;
+	}
+
+	public void setIsMonthly(Boolean isMonthly) {
+		this.isMonthly = isMonthly;
+	}
+
+	public Boolean getIsYearly() {
+		return isYearly;
+	}
+
+	public void setIsYearly(Boolean isYearly) {
+		this.isYearly = isYearly;
+	}
+
+	public Boolean getIsDaily() {
+		return isDaily;
+	}
+
+	public void setIsDaily(Boolean isDaily) {
+		this.isDaily = isDaily;
+	}
+
+	public List<MeetingMember> getMeetingMembers() {
+		return meetingMembers;
+	}
+
+	public void setMeetingMembers(List<MeetingMember> meetingMembers) {
+		this.meetingMembers = meetingMembers;
+	}
+
+	public Room getRoom() {
+		return room;
+	}
+
+	public void setRoom(Room room) {
+		this.room = room;
+	}
+
+	public String getIcalId() {
+		return icalId;
+	}
+
+	public void setIcalId(String icalId) {
+		this.icalId = icalId;
+	}
+
+	public Long getLanguageId() {
+		return languageId;
+	}
+
+	public void setLanguageId(Long languageId) {
+		this.languageId = languageId;
+	}
+
+	public boolean isPasswordProtected() {
+		return passwordProtected;
+	}
+
+	public void setPasswordProtected(boolean isPasswordProtected) {
+		this.passwordProtected = isPasswordProtected;
+	}
+
+	public String getPassword() {
+		return password;
+	}
+
+	public void setPassword(String password) {
+		this.password = password;
+	}
+
+	public boolean isConnectedEvent() {
+		return connectedEvent;
+	}
+
+	public void setConnectedEvent(boolean isConnectedEvent) {
+		this.connectedEvent = isConnectedEvent;
+	}
+
+	public boolean isReminderEmailSend() {
+		return reminderEmailSend;
+	}
+
+	public void setReminderEmailSend(boolean isReminderEmailSend) {
+		this.reminderEmailSend = isReminderEmailSend;
+	}
+
+	@Override
+	public String toString() {
+		return "Appointment [id=" + id + ", title=" + title + ", start=" + start + ", end=" + end + ", owner=" + owner
+				+ ", deleted=" + deleted + ", icalId=" + icalId + "]";
+	}
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/calendar/AppointmentCategory.java b/src/db/java/org/apache/openmeetings/db/entity/calendar/AppointmentCategory.java
new file mode 100644
index 0000000..4d71c29
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/calendar/AppointmentCategory.java
@@ -0,0 +1,118 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.calendar;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.Lob;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.user.User;
+
+@Entity
+@Table(name = "appointmentcategory")
+public class AppointmentCategory implements Serializable {
+	private static final long serialVersionUID = 595713649933692774L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name="id")
+	private Long categoryId;
+	
+	@Column(name="name")
+	private String name;
+	
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name="user_id", nullable=true)
+	@ForeignKey(enabled = true)
+	private User user;
+	
+	@Column(name="starttime")
+	private Date starttime;
+	
+	@Column(name="updatetime")
+	private Date updatetime;
+	
+	@Column(name="deleted")
+	private boolean deleted;
+	
+	@Lob
+	@Column(name="comment_field", length=2048)
+	private String comment;
+	
+	public Long getCategoryId() {
+		return categoryId;
+	}
+	public void setCategoryId(Long categoryId) {
+		this.categoryId = categoryId;
+	}
+	
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+	
+	public User getUser() {
+		return user;
+	}
+	public void setUser(User user) {
+		this.user = user;
+	}
+	
+	public Date getStarttime() {
+		return starttime;
+	}
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+	
+	public Date getUpdatetime() {
+		return updatetime;
+	}
+	public void setUpdatetime(Date updatetime) {
+		this.updatetime = updatetime;
+	}
+	
+	public boolean getDeleted() {
+		return deleted;
+	}
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+	
+	public String getComment() {
+		return comment;
+	}
+	public void setComment(String comment) {
+		this.comment = comment;
+	}
+	
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/calendar/AppointmentReminderTyps.java b/src/db/java/org/apache/openmeetings/db/entity/calendar/AppointmentReminderTyps.java
new file mode 100644
index 0000000..1a2b38f
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/calendar/AppointmentReminderTyps.java
@@ -0,0 +1,130 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.calendar;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.label.Fieldlanguagesvalues;
+import org.apache.openmeetings.db.entity.user.User;
+import org.simpleframework.xml.Element;
+
+
+@Entity
+@Table(name = "appointmentremindertyps")
+public class AppointmentReminderTyps implements Serializable {
+	private static final long serialVersionUID = -6543593995706839669L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name="id")
+	private Long typId;
+	
+	@Column(name="name")
+	private String name;
+	
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name="user_id", nullable=true)
+	@ForeignKey(enabled = true)
+	private User user;
+	
+	@Column(name="starttime")
+	private Date starttime;
+	
+	@Column(name="updatetime")
+	private Date updatetime;
+	
+	@Column(name="deleted")
+	private boolean deleted;
+	
+	@Column(name="fieldvalues_id")
+	@Element(data=true, required=false)
+	private Long fieldvalues_id;
+	
+	@Transient
+	private Fieldlanguagesvalues label;
+	
+	public Long getTypId() {
+		return typId;
+	}
+	public void setTypId(Long typId) {
+		this.typId = typId;
+	}
+	
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+	
+	public User getUser() {
+		return user;
+	}
+	public void setUser(User user) {
+		this.user = user;
+	}
+	
+	public Date getStarttime() {
+		return starttime;
+	}
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+	
+	public Date getUpdatetime() {
+		return updatetime;
+	}
+	public void setUpdatetime(Date updatetime) {
+		this.updatetime = updatetime;
+	}
+	
+	public boolean getDeleted() {
+		return deleted;
+	}
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	public Long getFieldvalues_id() {
+		return fieldvalues_id;
+	}
+	public void setFieldvalues_id(Long fieldvalues_id) {
+		this.fieldvalues_id = fieldvalues_id;
+	}
+	
+	public Fieldlanguagesvalues getLabel() {
+		return label;
+	}
+
+	public void setLabel(Fieldlanguagesvalues label) {
+		this.label = label;
+	}	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/calendar/MeetingMember.java b/src/db/java/org/apache/openmeetings/db/entity/calendar/MeetingMember.java
new file mode 100644
index 0000000..1987956
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/calendar/MeetingMember.java
@@ -0,0 +1,166 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.calendar;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.room.Invitation;
+import org.apache.openmeetings.db.entity.user.User;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
+
+@Entity
+@Table(name = "meeting_members")
+@NamedQueries({
+    @NamedQuery(name="getMeetingMemberById"
+    		, query="SELECT mm FROM MeetingMember mm WHERE mm.deleted = false AND mm.id = :id")
+    , @NamedQuery(name="getMeetingMembers", query="SELECT mm FROM MeetingMember mm ORDER BY mm.id")
+    , @NamedQuery(name="getMeetingMemberIdsByAppointment"
+    		, query="SELECT mm.id FROM MeetingMember mm WHERE mm.deleted = false AND mm.appointment.id = :id")
+})
+@Root(name = "meetingmember")
+public class MeetingMember implements Serializable {
+	private static final long serialVersionUID = -3864571325368787524L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "id")
+	@Element(name = "meetingMemberId", data = true)
+	private Long id;
+
+	@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
+	@JoinColumn(name = "user_id", nullable = true)
+	@ForeignKey(enabled = true)
+	@Element(name = "userid", data = true, required = false)
+	private User user;
+
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "appointment_id", nullable = true)
+	@ForeignKey(enabled = true)
+	@Element(data = true, required = false)
+	private Appointment appointment;
+
+	@Column(name = "appointment_status")
+	@Element(data = true, required = false)
+	private String appointmentStatus; // status of the appointment denial, acceptance, wait.
+
+	@Column(name = "starttime")
+	private Date inserted;
+
+	@Column(name = "updatetime")
+	private Date updated;
+
+	@Column(name = "deleted")
+	@Element(data = true)
+	private boolean deleted;
+
+	@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
+	@JoinColumn(name = "invitation", nullable = true, insertable = false)
+	@ForeignKey(enabled = true)
+	private Invitation invitation;
+
+	@Column(name = "is_connected_event")
+	private boolean connectedEvent;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public User getUser() {
+		return user;
+	}
+
+	public void setUser(User user) {
+		this.user = user;
+	}
+
+	public String getAppointmentStatus() {
+		return appointmentStatus;
+	}
+
+	public void setAppointmentStatus(String appointmentStatus) {
+		this.appointmentStatus = appointmentStatus;
+	}
+
+	public Appointment getAppointment() {
+		return appointment;
+	}
+
+	public void setAppointment(Appointment appointment) {
+		this.appointment = appointment;
+	}
+
+	public Invitation getInvitation() {
+		return invitation;
+	}
+
+	public void setInvitation(Invitation invitation) {
+		this.invitation = invitation;
+	}
+
+	public Date getStarttime() {
+		return inserted;
+	}
+
+	public void setInserted(Date inserted) {
+		this.inserted = inserted;
+	}
+
+	public Date getUpdated() {
+		return updated;
+	}
+
+	public void setUpdated(Date updated) {
+		this.updated = updated;
+	}
+
+	public boolean isDeleted() {
+		return deleted;
+	}
+
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	public boolean isConnectedEvent() {
+		return connectedEvent;
+	}
+
+	public void setConnectedEvent(boolean connectedEvent) {
+		this.connectedEvent = connectedEvent;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/file/FileExplorerItem.java b/src/db/java/org/apache/openmeetings/db/entity/file/FileExplorerItem.java
new file mode 100644
index 0000000..1748299
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/file/FileExplorerItem.java
@@ -0,0 +1,301 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.file;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
+
+@Entity
+@NamedQueries({
+	@NamedQuery(name="getAllFiles", query="SELECT c FROM FileExplorerItem c ORDER BY c.fileExplorerItemId")
+    , @NamedQuery(name="getById", query="SELECT c FROM FileExplorerItem c WHERE c.fileExplorerItemId = :fileExplorerItemId")
+    , @NamedQuery(name="getByHash", query="SELECT c FROM FileExplorerItem c WHERE c.fileHash = :fileHash")
+})
+@Table(name = "fileexploreritem")
+@Root
+public class FileExplorerItem implements Serializable {
+	private static final long serialVersionUID = 242843782142620566L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name="id")
+	@Element(data=true)
+	private long fileExplorerItemId;
+	
+	@Column(name="filename")
+	@Element(data=true, required = false)
+	private String fileName;
+	
+	@Column(name="filehash")
+	@Element(data=true, required = false)
+	private String fileHash;
+	
+	@Column(name="parent_fileexploreritem_id")
+	@Element(data=true)
+	private Long parentFileExplorerItemId;
+	
+	@Column(name="room_id")
+	@Element(data=true, required=false)
+	private Long room_id;
+	
+	@Column(name="owner_id")
+	@Element(data=true, required=false)
+	private Long ownerId;//OwnerID => only set if its directly root in Owner Directory, other Folders and Files
+	//maybe are also in a Home directory but just because their parent is
+	
+	@Column(name="is_folder")
+	@Element(data=true)
+	private Boolean isFolder;
+	
+	@Column(name="is_image")
+	@Element(data=true)
+	private Boolean isImage;
+	
+	@Column(name="is_presentation")
+	@Element(data=true)
+	private Boolean isPresentation;
+	
+	@Column(name="is_video")
+	@Element(data=true, required=false)
+	private Boolean isVideo;
+	
+	@Column(name="inserted_by")
+	@Element(data=true)
+	private Long insertedBy;
+	
+	@Column(name="inserted")
+	@Element(data=true)
+	private Date inserted;
+	
+	@Column(name="updated")
+	@Element(data=true)
+	private Date updated;
+	
+	@Column(name="deleted")
+	@Element(data=true)
+	private boolean deleted;
+	
+	@Column(name="filesize")
+	@Element(data=true, required=false)
+	private Long fileSize;
+	
+	@Column(name="flv_width")
+	@Element(data=true, required=false)
+	private Integer flvWidth;
+	
+	@Column(name="flv_height")
+	@Element(data=true, required=false)
+	private Integer flvHeight;
+	
+	@Column(name="preview_image")
+	@Element(data=true, required = false)
+	private String previewImage;
+	
+	@Column(name="wml_file_path")
+	@Element(data=true, required = false)
+	private String wmlFilePath;
+	
+	@Column(name="is_stored_wml_file")
+	@Element(data=true, required = false)
+	private Boolean isStoredWmlFile;
+	
+	@Column(name="is_chart")
+	@Element(data=true, required = false)
+    private Boolean isChart;
+    
+	@Column(name="external_file_id")
+    private Long externalFileId;
+	
+	@Column(name="external_type")
+    private String externalType;
+
+		
+	public long getFileExplorerItemId() {
+		return fileExplorerItemId;
+	}
+	public void setFileExplorerItemId(long fileExplorerItemId) {
+		this.fileExplorerItemId = fileExplorerItemId;
+	}
+	
+	public String getFileName() {
+		return fileName;
+	}
+	public void setFileName(String fileName) {
+		this.fileName = fileName;
+	}
+	
+	public String getFileHash() {
+		return fileHash;
+	}
+	public void setFileHash(String fileHash) {
+		this.fileHash = fileHash;
+	}
+	
+	public Long getParentFileExplorerItemId() {
+		return parentFileExplorerItemId;
+	}
+	public void setParentFileExplorerItemId(Long parentFileExplorerItemId) {
+		this.parentFileExplorerItemId = parentFileExplorerItemId;
+	}
+	
+	public Long getOwnerId() {
+		return ownerId;
+	}
+	public void setOwnerId(Long ownerId) {
+		this.ownerId = ownerId;
+	}
+	
+	public Long getRoom_id() {
+		return room_id;
+	}
+	public void setRoom_id(Long room_id) {
+		this.room_id = room_id;
+	}
+	
+	public Boolean getIsFolder() {
+		return isFolder;
+	}
+	public void setIsFolder(Boolean isFolder) {
+		this.isFolder = isFolder;
+	}
+	
+	public Boolean getIsImage() {
+		return isImage;
+	}
+	public void setIsImage(Boolean isImage) {
+		this.isImage = isImage;
+	}
+	
+	public Boolean getIsVideo() {
+		return isVideo;
+	}
+	public void setIsVideo(Boolean isVideo) {
+		this.isVideo = isVideo;
+	}
+	
+	public Boolean getIsPresentation() {
+		return isPresentation;
+	}
+	public void setIsPresentation(Boolean isPresentation) {
+		this.isPresentation = isPresentation;
+	}
+	
+	public Long getInsertedBy() {
+		return insertedBy;
+	}
+	public void setInsertedBy(Long insertedBy) {
+		this.insertedBy = insertedBy;
+	}
+	
+	public Date getInserted() {
+		return inserted;
+	}
+	public void setInserted(Date inserted) {
+		this.inserted = inserted;
+	}
+
+	public boolean getDeleted() {
+		return deleted;
+	}
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+	
+	public Date getUpdated() {
+		return updated;
+	}
+	public void setUpdated(Date updated) {
+		this.updated = updated;
+	}
+	
+	public Long getFileSize() {
+		return fileSize;
+	}
+	public void setFileSize(Long fileSize) {
+		this.fileSize = fileSize;
+	}
+	
+	public Integer getFlvWidth() {
+		return flvWidth;
+	}
+	public void setFlvWidth(Integer flvWidth) {
+		this.flvWidth = flvWidth;
+	}
+
+	public Integer getFlvHeight() {
+		return flvHeight;
+	}
+	public void setFlvHeight(Integer flvHeight) {
+		this.flvHeight = flvHeight;
+	}
+
+	public String getPreviewImage() {
+		return previewImage;
+	}	
+	public void setPreviewImage(String previewImage) {
+		this.previewImage = previewImage;
+	}
+	
+	public String getWmlFilePath() {
+		return wmlFilePath;
+	}
+	public void setWmlFilePath(String wmlFilePath) {
+		this.wmlFilePath = wmlFilePath;
+	}
+	
+	public Boolean getIsStoredWmlFile() {
+		return isStoredWmlFile;
+	}
+	public void setIsStoredWmlFile(Boolean isStoredWmlFile) {
+		this.isStoredWmlFile = isStoredWmlFile;
+	}
+
+	public Boolean getIsChart() {
+        return isChart;
+    }
+    public void setIsChart(Boolean isChart) {
+        this.isChart = isChart;
+    }
+    
+	public Long getExternalFileId() {
+		return externalFileId;
+	}
+	public void setExternalFileId(Long externalFileId) {
+		this.externalFileId = externalFileId;
+	}
+	
+	public String getExternalType() {
+		return externalType;
+	}
+	public void setExternalType(String externalType) {
+		this.externalType = externalType;
+	}
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/label/FieldLanguage.java b/src/db/java/org/apache/openmeetings/db/entity/label/FieldLanguage.java
new file mode 100644
index 0000000..14b8771
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/label/FieldLanguage.java
@@ -0,0 +1,139 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.label;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.Hashtable;
+import java.util.Map;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+
+import org.apache.openmeetings.db.entity.IDataProviderEntity;
+@Entity
+@Table(name = "fieldlanguage")
+public class FieldLanguage implements Serializable, IDataProviderEntity {
+	private static final long serialVersionUID = 3501643212388395425L;
+	@Id
+	@Column(name="id")
+	private Long language_id;
+	
+	@Column(name="name")
+	private String name;
+	
+	@Column(name="starttime")
+	private Date starttime;
+	
+	@Column(name="updatetime")
+	private Date updatetime;
+	
+	@Column(name="deleted")
+	private boolean deleted;
+	
+	@Column(name="rtl")
+	private Boolean rtl;
+	
+	@Column(name="code")
+	private String code;
+	
+	@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
+	@JoinColumn(name = "language_id", insertable = true, updatable = true)
+	private Collection<Fieldlanguagesvalues> languageValues;
+	
+	public Long getLanguage_id() {
+		return language_id;
+	}
+	public void setLanguage_id(Long language_id) {
+		this.language_id = language_id;
+	}
+
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Date getStarttime() {
+		return starttime;
+	}
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+    
+	public Date getUpdatetime() {
+		return updatetime;
+	}
+	public void setUpdatetime(Date updatetime) {
+		this.updatetime = updatetime;
+	}
+	
+	public boolean getDeleted() {
+		return deleted;
+	}
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	public Boolean getRtl() {
+		return rtl;
+	}
+	public void setRtl(Boolean rtl) {
+		this.rtl = rtl;
+	}
+
+	public String getCode() {
+		return code;
+	}
+	public void setCode(String code) {
+		this.code = code;
+	}
+	
+	public Collection<Fieldlanguagesvalues> getLanguageValues() {
+		return languageValues == null ? new ArrayList<Fieldlanguagesvalues>() : languageValues;
+	}
+	public void setLanguageValues(Collection<Fieldlanguagesvalues> languageValues) {
+		if (languageValues != null) {
+			this.languageValues = languageValues;
+		}
+	}
+	public Map<Long, Fieldlanguagesvalues> getLanguageValuesMap() {
+		Collection<Fieldlanguagesvalues> langVals = getLanguageValues();
+		Map<Long, Fieldlanguagesvalues> result = new Hashtable<Long, Fieldlanguagesvalues>(langVals.size());
+		for (Fieldlanguagesvalues flv : langVals) {
+			result.put(flv.getFieldvalues().getFieldvalues_id(), flv);
+		}
+		return result;
+	}
+	
+	@Override
+	public String toString() {
+		return "FieldLanguage [id=" + language_id + ", name=" + name + ", deleted=" + deleted + ", rtl=" + rtl + ", code=" + code
+				+ "]";
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/label/Fieldlanguagesvalues.java b/src/db/java/org/apache/openmeetings/db/entity/label/Fieldlanguagesvalues.java
new file mode 100644
index 0000000..fd1038f
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/label/Fieldlanguagesvalues.java
@@ -0,0 +1,152 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.label;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.Lob;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.IDataProviderEntity;
+
+@Entity
+@NamedQueries({
+	@NamedQuery(name = "allFieldLanguageValues", query = "SELECT flv FROM Fieldlanguagesvalues flv "
+		+ "WHERE flv.deleted = false "
+		+ "		AND flv.fieldvalues.deleted = false "
+		+ "		AND flv.language_id = :language_id ORDER BY flv.fieldvalues_id ASC")
+	, @NamedQuery(name="allFieldValuesIds", query = "SELECT flv.fieldvalues_id FROM Fieldlanguagesvalues flv "
+		+ "WHERE flv.deleted = false "
+		+ "		AND flv.fieldvalues.deleted = false "
+		+ "		AND flv.language_id = :language_id")
+	, @NamedQuery(name="allNotTranslatedValues", query = "SELECT flv FROM Fieldlanguagesvalues flv "
+		+ "WHERE flv.deleted = false "
+		+ "		AND flv.fieldvalues.deleted = false "
+		+ "		AND flv.language_id = 1 AND flv.fieldvalues_id NOT IN (:id_list)")
+	, @NamedQuery(name="getFieldLanguagesValuesById"
+		, query = "SELECT f FROM Fieldlanguagesvalues f WHERE f.fieldlanguagesvalues_id = :id")
+	, @NamedQuery(name="getFieldLanguagesValuesByValueAndLang"
+		, query = "SELECT f FROM Fieldlanguagesvalues f WHERE f.fieldvalues_id = :fieldValuesId AND f.language_id = :lang AND f.deleted = false")
+})
+@Table(name = "fieldlanguagesvalues")
+public class Fieldlanguagesvalues implements Serializable, IDataProviderEntity {
+	private static final long serialVersionUID = 1965055047163639210L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name="id")
+	private Long fieldlanguagesvalues_id;
+	
+	@Column(name="fieldvalues_id")
+	private Long fieldvalues_id;
+	
+	@Column(name="language_id")
+	private Long language_id;
+	
+	@Column(name="starttime")
+	private Date starttime;
+	
+	@Column(name="updatetime")
+	private Date updatetime;
+	
+	@Column(name="deleted")
+	private boolean deleted;
+	
+	@Lob
+	@Column(name="value")
+	private String value;
+
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "fieldvalues_id")
+	@ForeignKey(enabled = true)
+	private Fieldvalues fieldvalues;
+	
+	public Fieldlanguagesvalues() {
+		super();
+	}
+	
+	public Long getFieldlanguagesvalues_id() {
+		return fieldlanguagesvalues_id;
+	}
+	public void setFieldlanguagesvalues_id(Long fieldlanguagesvalues_id) {
+		this.fieldlanguagesvalues_id = fieldlanguagesvalues_id;
+	}
+	
+	public Date getStarttime() {
+		return starttime;
+	}
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+    
+	public Date getUpdatetime() {
+		return updatetime;
+	}
+	public void setUpdatetime(Date updatetime) {
+		this.updatetime = updatetime;
+	}
+	
+	public boolean getDeleted() {
+		return deleted;
+	}
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+	
+	public Long getFieldvalues_id() {
+		return fieldvalues_id;
+	}
+	public void setFieldvalues_id(Long fieldvalues_id) {
+		this.fieldvalues_id = fieldvalues_id;
+	}
+
+	public Long getLanguage_id() {
+		return language_id;
+	}
+	public void setLanguage_id(Long language_id) {
+		this.language_id = language_id;
+	}
+
+	public String getValue() {
+		return value;
+	}
+	public void setValue(String value) {
+		this.value = value;
+	}
+
+	public Fieldvalues getFieldvalues() {
+		return fieldvalues;
+	}
+
+	public void setFieldvalues(Fieldvalues fieldvalues) {
+		this.fieldvalues = fieldvalues;
+	}
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/label/Fieldvalues.java b/src/db/java/org/apache/openmeetings/db/entity/label/Fieldvalues.java
new file mode 100644
index 0000000..cc433af
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/label/Fieldvalues.java
@@ -0,0 +1,124 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.label;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Set;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+
+import org.apache.openmeetings.db.entity.IDataProviderEntity;
+
+@Entity
+@NamedQueries({
+	@NamedQuery(name = "getFieldCount", query = "SELECT COUNT(fv) FROM Fieldvalues fv WHERE fv.deleted = false ")
+	, @NamedQuery(name = "getFieldByIdAndLanguage", query = "SELECT fv FROM Fieldvalues fv " +
+		"LEFT OUTER JOIN FETCH fv.fieldlanguagesvalues WHERE " +
+		"fv.fieldvalues_id = :id AND fv.deleted = false")
+	, @NamedQuery(name = "getFieldByLanguage", query = "SELECT fv FROM Fieldvalues fv WHERE fv.deleted = false") //FIXME no language yet
+})
+@Table(name = "fieldvalues")
+public class Fieldvalues implements Serializable, IDataProviderEntity {
+	private static final long serialVersionUID = -3439614511218028085L;
+	@Id
+	@Column(name="id")
+	private Long fieldvalues_id;
+	
+	@Column(name="name")
+	private String name;
+	
+	@Column(name="starttime")
+	private Date starttime;
+	
+	@Column(name="updatetime")
+	private Date updatetime;
+	
+	@Column(name="deleted")
+	private boolean deleted;
+
+	@OneToMany(fetch = FetchType.LAZY)
+	@JoinColumn(name="fieldvalues_id")
+	private Set<Fieldlanguagesvalues> fieldlanguagesvalues;
+	
+	@Transient
+	private Fieldlanguagesvalues fieldlanguagesvalue;
+	
+	public Fieldvalues() {
+		super();
+	}
+	
+	public Long getFieldvalues_id() {
+		return fieldvalues_id;
+	}
+	public void setFieldvalues_id(Long fieldvalues_id) {
+		this.fieldvalues_id = fieldvalues_id;
+	}	
+
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Date getStarttime() {
+		return starttime;
+	}
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+    
+	public Date getUpdatetime() {
+		return updatetime;
+	}
+	public void setUpdatetime(Date updatetime) {
+		this.updatetime = updatetime;
+	}
+	
+	public boolean getDeleted() {
+		return deleted;
+	}
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	public Set<Fieldlanguagesvalues> getFieldlanguagesvalues() {
+		return fieldlanguagesvalues;
+	}
+	public void setFieldlanguagesvalues(Set<Fieldlanguagesvalues> fieldlanguagesvalues) {
+		this.fieldlanguagesvalues = fieldlanguagesvalues;
+	}
+
+	public Fieldlanguagesvalues getFieldlanguagesvalue() {
+		return fieldlanguagesvalue;
+	}
+	public void setFieldlanguagesvalue(Fieldlanguagesvalues fieldlanguagesvalue) {
+		this.fieldlanguagesvalue = fieldlanguagesvalue;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/log/ConferenceLog.java b/src/db/java/org/apache/openmeetings/db/entity/log/ConferenceLog.java
new file mode 100644
index 0000000..5d83d77
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/log/ConferenceLog.java
@@ -0,0 +1,187 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.log;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+
+
+
+@Entity
+@Table(name = "conferencelog")
+public class ConferenceLog implements Serializable {
+	private static final long serialVersionUID = 147341496943518159L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name="id")
+	private long conferenceLogId;
+	
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name="conferencelogtype_id", updatable=true, insertable=true)
+	@ForeignKey(enabled = true)
+	private ConferenceLogType conferenceLogType;
+	
+	@Column(name="inserted")
+	private Date inserted;
+	
+	@Column(name="insertedby")
+	private long insertedby;
+	
+	//NULL means its a Guest/Invited User
+	@Column(name="user_id")
+	private Long userId;
+	
+	@Column(name="external_user_id")
+	private String externalUserId;
+	
+	@Column(name="external_user_type")
+	private String externalUserType;
+	
+	@Column(name="streamid")
+	private String streamid;
+	
+	@Column(name="room_id")
+	private Long room_id;
+	
+	@Column(name="userip")
+	private String userip;
+	
+	@Column(name="scopename")
+	private String scopeName;
+	
+	@Column(name="email")
+	private String email;
+	
+	@Column(name="firstname")
+	private String firstname;
+	
+	@Column(name="lastname")
+	private String lastname;
+	
+	public long getConferenceLogId() {
+		return conferenceLogId;
+	}
+	public void setConferenceLogId(long conferenceLogId) {
+		this.conferenceLogId = conferenceLogId;
+	}
+	
+	public ConferenceLogType getConferenceLogType() {
+		return conferenceLogType;
+	}
+	public void setConferenceLogType(ConferenceLogType conferenceLogType) {
+		this.conferenceLogType = conferenceLogType;
+	}
+	
+	public Date getInserted() {
+		return inserted;
+	}
+	public void setInserted(Date inserted) {
+		this.inserted = inserted;
+	}
+
+	public long getInsertedby() {
+		return insertedby;
+	}
+	public void setInsertedby(long insertedby) {
+		this.insertedby = insertedby;
+	}
+	
+	public Long getUserId() {
+		return userId;
+	}
+	public void setUserId(Long userId) {
+		this.userId = userId;
+	}
+	
+	public String getStreamid() {
+		return streamid;
+	}
+	public void setStreamid(String streamid) {
+		this.streamid = streamid;
+	}
+	
+	public Long getRoom_id() {
+		return room_id;
+	}
+	public void setRoom_id(Long room_id) {
+		this.room_id = room_id;
+	}
+	
+	public String getUserip() {
+		return userip;
+	}
+	public void setUserip(String userip) {
+		this.userip = userip;
+	}
+	
+	public String getScopeName() {
+		return scopeName;
+	}
+	public void setScopeName(String scopeName) {
+		this.scopeName = scopeName;
+	}
+	
+	public String getExternalUserId() {
+		return externalUserId;
+	}
+	public void setExternalUserId(String externalUserId) {
+		this.externalUserId = externalUserId;
+	}
+	
+	public String getExternalUserType() {
+		return externalUserType;
+	}
+	public void setExternalUserType(String externalUserType) {
+		this.externalUserType = externalUserType;
+	}
+	
+	public String getEmail() {
+		return email;
+	}
+	public void setEmail(String email) {
+		this.email = email;
+	}
+	
+	public String getFirstname() {
+		return firstname;
+	}
+	public void setFirstname(String firstname) {
+		this.firstname = firstname;
+	}
+	
+	public String getLastname() {
+		return lastname;
+	}
+	public void setLastname(String lastname) {
+		this.lastname = lastname;
+	}
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/log/ConferenceLogType.java b/src/db/java/org/apache/openmeetings/db/entity/log/ConferenceLogType.java
new file mode 100644
index 0000000..1d88b05
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/log/ConferenceLogType.java
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.log;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+@Entity
+@NamedQueries({
+	@NamedQuery(name = "getConferenceLogTypeByEventName", query = "select a from ConferenceLogType a " +
+					"WHERE a.eventType = :eventType")
+})
+@Table(name = "conferencelogtype")
+public class ConferenceLogType implements Serializable {
+	private static final long serialVersionUID = 4388958579350356294L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name="id")
+	private long conferenceLogTypeId;
+	
+	@Column(name="eventtype")
+	private String eventType;
+	
+	@Column(name="inserted")
+	private Date inserted;
+	
+	@Column(name="insertedby")
+	private long insertedby;
+	
+	public long getConferenceLogTypeId() {
+		return conferenceLogTypeId;
+	}
+	public void setConferenceLogTypeId(long conferenceLogTypeId) {
+		this.conferenceLogTypeId = conferenceLogTypeId;
+	}
+
+	public String getEventType() {
+		return eventType;
+	}
+	public void setEventType(String eventType) {
+		this.eventType = eventType;
+	}
+	
+	public Date getInserted() {
+		return inserted;
+	}
+	public void setInserted(Date inserted) {
+		this.inserted = inserted;
+	}
+	
+	public long getInsertedby() {
+		return insertedby;
+	}
+	public void setInsertedby(long insertedby) {
+		this.insertedby = insertedby;
+	}
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java b/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java
new file mode 100644
index 0000000..b7055d1
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecording.java
@@ -0,0 +1,493 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.record;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.user.User;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.ElementList;
+import org.simpleframework.xml.Root;
+
+/**
+ * An item in the file explorer in the recording section. Can be either:<br/>
+ * <ul>
+ * <li>a conference recording</li>
+ * <li>a interview recording</li>
+ * <li>a folder</li>
+ * </ul>
+ * 
+ * Recorded files are situated in: webapps/openmeetings/streams/hibernate.<br/>
+ * The raw recorded files are situated in:
+ * webapps/openmeetings/streams/$ROOM_ID.<br/>
+ * 
+ * @author sebawagner
+ * 
+ */
+@Entity
+@NamedQueries({ 
+	@NamedQuery(name = "getRecordingById", query = "SELECT f FROM FlvRecording f WHERE f.flvRecordingId = :id") 
+	, @NamedQuery(name = "getRecordingByHash", query = "SELECT f FROM FlvRecording f WHERE f.fileHash = :fileHash") 
+	, @NamedQuery(name = "getRecordingsByExternalUser", query = "SELECT NEW org.apache.openmeetings.db.dto.file.RecordingObject(c) "
+			+ "FROM FlvRecording c, User u "
+			+ "WHERE c.insertedBy = u.user_id AND u.externalUserId = :externalUserId  AND u.externalUserType = :externalUserType "
+			+ "AND c.deleted = false") 
+	, @NamedQuery(name = "getRecordingsPublic", query = "SELECT f FROM FlvRecording f WHERE f.deleted = false AND f.ownerId IS NULL "
+			+ "AND f.organization_id IS NULL AND (f.parentFileExplorerItemId IS NULL OR f.parentFileExplorerItemId = 0) "
+			+ "ORDER BY f.folder DESC, f.fileName")
+	, @NamedQuery(name = "getRecordingsByOrganization", query = "SELECT f FROM FlvRecording f WHERE f.deleted = false AND f.ownerId IS NULL "
+			+ "AND f.organization_id = :organization_id AND (f.parentFileExplorerItemId IS NULL OR f.parentFileExplorerItemId = 0) "
+			+ "ORDER BY f.folder DESC, f.fileName")
+	, @NamedQuery(name = "getRecordingsByOwner", query = "SELECT f FROM FlvRecording f WHERE f.deleted = false AND f.ownerId = :ownerId "
+			+ "AND (f.parentFileExplorerItemId IS NULL OR f.parentFileExplorerItemId = 0) "
+			+ "ORDER BY f.folder DESC, f.fileName ")
+	, @NamedQuery(name = "resetRecordingProcessingStatus", query = "UPDATE FlvRecording f SET f.status = :error WHERE f.status = :processing")
+})
+@Table(name = "flvrecording")
+@Root(name = "flvrecording")
+public class FlvRecording implements Serializable {
+	private static final long serialVersionUID = -2234874663310617072L;
+	
+	public enum Status {
+		NONE
+		, PROCESSING
+		, PROCESSED
+		, ERROR
+	}
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "id")
+	@Element(data = true)
+	private long flvRecordingId;
+
+	@Column(name = "filename")
+	@Element(data = true, required = false)
+	private String fileName;
+
+	@Column(name = "alternate_download")
+	@Element(data = true, required = false)
+	private String alternateDownload;
+
+	@Column(name = "filehash")
+	@Element(data = true, required = false)
+	private String fileHash;
+
+	@Column(name = "comment_field")
+	@Element(data = true, required = false)
+	private String comment;
+
+	@Column(name = "parent_fileexploreritem_id")
+	@Element(data = true, required = false)
+	private Long parentFileExplorerItemId;
+
+	@Column(name = "room_id")
+	@Element(data = true, required = false)
+	private Long room_id;
+
+	@Column(name = "owner_id")
+	@Element(data = true, required = false)
+	private Long ownerId;// OwnerID => only set if its directly root in Owner
+							// Directory, other Folders and Files
+							// maybe are also in a Home directory but just
+							// because their parent is
+
+	@Column(name = "is_folder")
+	@Element(data = true, required = false)
+	private boolean folder;
+
+	@Column(name = "is_image")
+	@Element(data = true, required = false)
+	private Boolean isImage;
+
+	@Column(name = "is_presentation")
+	@Element(data = true, required = false)
+	private Boolean isPresentation;
+
+	@Column(name = "is_recording")
+	@Element(data = true, required = false)
+	private Boolean isRecording;
+
+	@Column(name = "record_start")
+	@Element(data = true, required = false)
+	private Date recordStart;
+
+	@Column(name = "record_end")
+	@Element(data = true, required = false)
+	private Date recordEnd;
+
+	@Column(name = "inserted_by")
+	@Element(data = true, required = false)
+	private Long insertedBy;
+
+	@Column(name = "inserted")
+	@Element(data = true, required = false)
+	private Date inserted;
+
+	@Column(name = "updated")
+	private Date updated;
+
+	@Column(name = "deleted")
+	@Element(data = true, required = false)
+	private boolean deleted;
+
+	@Column(name = "width")
+	@Element(data = true, required = false)
+	private Integer width;
+
+	@Column(name = "height")
+	@Element(data = true, required = false)
+	private Integer height;
+
+	@Column(name = "flv_width")
+	@Element(data = true, required = false)
+	private Integer flvWidth;
+
+	@Column(name = "flv_height")
+	@Element(data = true, required = false)
+	private Integer flvHeight;
+
+	@Column(name = "preview_image")
+	@Element(data = true, required = false)
+	private String previewImage;
+
+	@Column(name = "duration")
+	@Element(data = true, required = false)
+	private String duration;
+
+	@Column(name = "recorder_stream_id")
+	@Element(data = true, required = false)
+	private String recorderStreamId;
+
+	@Column(name = "organization_id")
+	@Element(data = true, required = false)
+	private Long organization_id;
+
+	@Column(name = "is_interview")
+	@Element(data = true, required = false)
+	private Boolean isInterview;
+
+	@Column(name = "progress_post_processing")
+	@Element(data = true, required = false)
+	private Integer progressPostProcessing;
+
+	@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
+	@JoinColumn(name = "flvrecording_id")
+	@ElementList(name = "flvrecordingmetadatas", required = false)
+	private List<FlvRecordingMetaData> flvRecordingMetaData;
+
+	@Column(name = "status")
+	@Enumerated(value = EnumType.STRING)
+	@Element(data = true, required = false)
+	private Status status = Status.NONE;
+	
+	// Not Mapped
+	@Transient
+	private User creator;
+
+	@Transient
+	private Room room;
+
+	@Transient
+	private List<FlvRecordingLog> flvRecordingLog;
+
+	public long getFlvRecordingId() {
+		return flvRecordingId;
+	}
+
+	public void setFlvRecordingId(long flvRecordingId) {
+		this.flvRecordingId = flvRecordingId;
+	}
+
+	public String getFileName() {
+		return fileName;
+	}
+
+	public void setFileName(String fileName) {
+		this.fileName = fileName;
+	}
+
+	public String getComment() {
+		return comment;
+	}
+
+	public void setComment(String comment) {
+		this.comment = comment;
+	}
+
+	public String getFileHash() {
+		return fileHash;
+	}
+
+	public void setFileHash(String fileHash) {
+		this.fileHash = fileHash;
+	}
+
+	public Long getParentFileExplorerItemId() {
+		return parentFileExplorerItemId;
+	}
+
+	public void setParentFileExplorerItemId(Long parentFileExplorerItemId) {
+		this.parentFileExplorerItemId = parentFileExplorerItemId;
+	}
+
+	public Long getRoom_id() {
+		return room_id;
+	}
+
+	public void setRoom_id(Long room_id) {
+		this.room_id = room_id;
+	}
+
+	public Long getOwnerId() {
+		return ownerId;
+	}
+
+	public void setOwnerId(Long ownerId) {
+		this.ownerId = ownerId;
+	}
+
+	public boolean isFolder() {
+		return folder;
+	}
+
+	public void setFolder(boolean folder) {
+		this.folder = folder;
+	}
+
+	public Boolean getIsImage() {
+		return isImage;
+	}
+
+	public void setIsImage(Boolean isImage) {
+		this.isImage = isImage;
+	}
+
+	public Boolean getIsPresentation() {
+		return isPresentation;
+	}
+
+	public void setIsPresentation(Boolean isPresentation) {
+		this.isPresentation = isPresentation;
+	}
+
+	public Boolean getIsRecording() {
+		return isRecording;
+	}
+
+	public void setIsRecording(Boolean isRecording) {
+		this.isRecording = isRecording;
+	}
+
+	public Long getInsertedBy() {
+		return insertedBy;
+	}
+
+	public void setInsertedBy(Long insertedBy) {
+		this.insertedBy = insertedBy;
+	}
+
+	public Date getInserted() {
+		return inserted;
+	}
+
+	public void setInserted(Date inserted) {
+		this.inserted = inserted;
+	}
+
+	public boolean getDeleted() {
+		return deleted;
+	}
+
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	public Date getUpdated() {
+		return updated;
+	}
+
+	public void setUpdated(Date updated) {
+		this.updated = updated;
+	}
+
+	public String getDuration() {
+		return duration;
+	}
+
+	public void setDuration(String duration) {
+		this.duration = duration;
+	}
+
+	public Date getRecordStart() {
+		return recordStart;
+	}
+
+	public void setRecordStart(Date recordStart) {
+		this.recordStart = recordStart;
+	}
+
+	public Date getRecordEnd() {
+		return recordEnd;
+	}
+
+	public void setRecordEnd(Date recordEnd) {
+		this.recordEnd = recordEnd;
+	}
+
+	public String getRecorderStreamId() {
+		return recorderStreamId;
+	}
+
+	public void setRecorderStreamId(String recorderStreamId) {
+		this.recorderStreamId = recorderStreamId;
+	}
+
+	public Long getOrganization_id() {
+		return organization_id;
+	}
+
+	public void setOrganization_id(Long organization_id) {
+		this.organization_id = organization_id;
+	}
+
+	public List<FlvRecordingMetaData> getFlvRecordingMetaData() {
+		return flvRecordingMetaData;
+	}
+
+	public void setFlvRecordingMetaData(
+			List<FlvRecordingMetaData> flvRecordingMetaData) {
+		this.flvRecordingMetaData = flvRecordingMetaData;
+	}
+
+	public User getCreator() {
+		return creator;
+	}
+
+	public void setCreator(User creator) {
+		this.creator = creator;
+	}
+
+	public Room getRoom() {
+		return room;
+	}
+
+	public void setRoom(Room room) {
+		this.room = room;
+	}
+
+	public Integer getWidth() {
+		return width;
+	}
+
+	public void setWidth(Integer width) {
+		this.width = width;
+	}
+
+	public Integer getHeight() {
+		return height;
+	}
+
+	public void setHeight(Integer height) {
+		this.height = height;
+	}
+
+	public Integer getFlvWidth() {
+		return flvWidth;
+	}
+
+	public void setFlvWidth(Integer flvWidth) {
+		this.flvWidth = flvWidth;
+	}
+
+	public Integer getFlvHeight() {
+		return flvHeight;
+	}
+
+	public void setFlvHeight(Integer flvHeight) {
+		this.flvHeight = flvHeight;
+	}
+
+	public String getPreviewImage() {
+		return previewImage;
+	}
+
+	public void setPreviewImage(String previewImage) {
+		this.previewImage = previewImage;
+	}
+
+	public String getAlternateDownload() {
+		return alternateDownload;
+	}
+
+	public void setAlternateDownload(String alternateDownload) {
+		this.alternateDownload = alternateDownload;
+	}
+
+	public List<FlvRecordingLog> getFlvRecordingLog() {
+		return flvRecordingLog;
+	}
+
+	public void setFlvRecordingLog(List<FlvRecordingLog> flvRecordingLog) {
+		this.flvRecordingLog = flvRecordingLog;
+	}
+
+	public Boolean getIsInterview() {
+		return isInterview;
+	}
+
+	public void setIsInterview(Boolean isInterview) {
+		this.isInterview = isInterview;
+	}
+
+	public Integer getProgressPostProcessing() {
+		return progressPostProcessing;
+	}
+
+	public void setProgressPostProcessing(Integer progressPostProcessing) {
+		this.progressPostProcessing = progressPostProcessing;
+	}
+
+	public Status getStatus() {
+		return status;
+	}
+
+	public void setStatus(Status status) {
+		this.status = status;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecordingLog.java b/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecordingLog.java
new file mode 100644
index 0000000..bcc9b50
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecordingLog.java
@@ -0,0 +1,107 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.record;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.Lob;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+@Entity
+@NamedQueries({ 
+	@NamedQuery(name = "getRecordingLogsByRecording", query = "SELECT fl FROM FlvRecordingLog fl WHERE fl.flvRecording.flvRecordingId = :recId")
+	, @NamedQuery(name = "countErrorRecordingLogsByRecording", query = "SELECT COUNT(fl) FROM FlvRecordingLog fl WHERE fl.flvRecording.flvRecordingId = :recId AND fl.exitValue <> '0'")
+})
+@Table(name = "flvrecording_log")
+public class FlvRecordingLog implements Serializable {
+	private static final long serialVersionUID = -2577533628675416706L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name="id")
+	private long flvRecordingLogId;
+	
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name="flvrecording_id", nullable=true)
+	private FlvRecording flvRecording;
+	
+	@Column(name="inserted")
+	private Date inserted;
+	
+	@Column(name="msg_type")
+	private String msgType;
+	
+	@Lob
+	@Column(name="ful_message", length = 1 * 1024 * 1024)
+	private String fullMessage;
+	
+	@Column(name="exit_value")
+	private String exitValue;
+	
+	public long getFlvRecordingLogId() {
+		return flvRecordingLogId;
+	}
+	public void setFlvRecordingLogId(long flvRecordingLogId) {
+		this.flvRecordingLogId = flvRecordingLogId;
+	}
+	
+	public FlvRecording getFlvRecording() {
+		return flvRecording;
+	}
+	public void setFlvRecording(FlvRecording flvRecording) {
+		this.flvRecording = flvRecording;
+	}
+	
+	public Date getInserted() {
+		return inserted;
+	}
+	public void setInserted(Date inserted) {
+		this.inserted = inserted;
+	}
+	
+	public String getMsgType() {
+		return msgType;
+	}
+	public void setMsgType(String msgType) {
+		this.msgType = msgType;
+	}
+	
+	public String getFullMessage() {
+		return fullMessage;
+	}
+	public void setFullMessage(String fullMessage) {
+		this.fullMessage = fullMessage;
+	}
+	
+	public String getExitValue() {
+		return exitValue;
+	}
+	public void setExitValue(String exitValue) {
+		this.exitValue = exitValue;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecordingMetaData.java b/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecordingMetaData.java
new file mode 100644
index 0000000..48e94a9
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecordingMetaData.java
@@ -0,0 +1,294 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.record;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
+
+/**
+ * contains meta data about each stream, for example if it is a screen sharing or
+ * audio/video stream. There is also a {@link Status} value
+ * {@link #streamStatus}, as long as this variable is not set
+ * to {@link Status.STOPPED}, the recording process will not proceed and start to convert all
+ * input sources to a single recording file.
+ * 
+ * @author sebawagner
+ */
+@Entity
+@Table(name = "flvrecording_metadata")
+@Root(name = "flvrecordingmetadata")
+public class FlvRecordingMetaData implements Serializable {
+	private static final long serialVersionUID = 1L;
+	public enum Status {
+		NONE
+		, STARTED
+		, STOPPING
+		, STOPPED
+	}
+	
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "id")
+	@Element(data = true, required = false)
+	private long flvRecordingMetaDataId;
+
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "flvrecording_id", nullable = true)
+	@ForeignKey(enabled = true)
+	private FlvRecording flvRecording;
+
+	@Column(name = "record_start")
+	@Element(data = true)
+	private Date recordStart;
+
+	@Column(name = "record_end")
+	@Element(data = true, required = false)
+	private Date recordEnd;
+
+	@Column(name = "stream_name")
+	@Element(data = true)
+	private String streamName;
+
+	@Column(name = "free_text_user_name")
+	@Element(data = true)
+	private String freeTextUserName;
+
+	@Column(name = "is_audio_only")
+	@Element(data = true)
+	private Boolean isAudioOnly;
+
+	@Column(name = "is_video_only")
+	@Element(data = true)
+	private Boolean isVideoOnly;
+
+	@Column(name = "is_screen_data")
+	@Element(data = true, name = "isScreenData")
+	private boolean screenData;
+
+	@Column(name = "inserted_by")
+	@Element(data = true, required = false)
+	private Long insertedBy;
+
+	@Column(name = "inserted")
+	@Element(data = true)
+	private Date inserted;
+
+	@Column(name = "updated")
+	@Element(data = true, required = false)
+	private Date updated;
+
+	@Column(name = "deleted")
+	private boolean deleted;
+
+	@Column(name = "wav_audio_data")
+	@Element(data = true, required = false)
+	private String wavAudioData;
+
+	@Column(name = "full_wav_audio_data")
+	@Element(data = true, required = false)
+	private String fullWavAudioData;
+
+	@Column(name = "audio_is_valid")
+	@Element(data = true, required = false)
+	private Boolean audioIsValid;
+
+	@Column(name = "interiew_pod_id")
+	@Element(data = true, required = false)
+	private Integer interiewPodId;
+
+	@Column(name = "initial_gap_seconds")
+	@Element(data = true, required = false)
+	private Integer initialGapSeconds;
+
+	/**
+	 * this is only STOPPED when the asynchronous stream writer's have completed to write packets to the file.
+	 * @see BaseStreamWriter#closeStream()
+	 */
+	@Column(name = "stream_status")
+	@Enumerated(EnumType.STRING)
+	private Status streamStatus = Status.NONE;
+
+	public long getFlvRecordingMetaDataId() {
+		return flvRecordingMetaDataId;
+	}
+
+	public void setFlvRecordingMetaDataId(long flvRecordingMetaDataId) {
+		this.flvRecordingMetaDataId = flvRecordingMetaDataId;
+	}
+
+	public FlvRecording getFlvRecording() {
+		return flvRecording;
+	}
+
+	public void setFlvRecording(FlvRecording flvRecording) {
+		this.flvRecording = flvRecording;
+	}
+
+	public Date getRecordStart() {
+		return recordStart;
+	}
+
+	public void setRecordStart(Date recordStart) {
+		this.recordStart = recordStart;
+	}
+
+	public Date getRecordEnd() {
+		return recordEnd;
+	}
+
+	public void setRecordEnd(Date recordEnd) {
+		this.recordEnd = recordEnd;
+	}
+
+	public String getFreeTextUserName() {
+		return freeTextUserName;
+	}
+
+	public void setFreeTextUserName(String freeTextUserName) {
+		this.freeTextUserName = freeTextUserName;
+	}
+
+	public Boolean getIsAudioOnly() {
+		return isAudioOnly;
+	}
+
+	public void setIsAudioOnly(Boolean isAudioOnly) {
+		this.isAudioOnly = isAudioOnly;
+	}
+
+	public Boolean getIsVideoOnly() {
+		return isVideoOnly;
+	}
+
+	public void setIsVideoOnly(Boolean isVideoOnly) {
+		this.isVideoOnly = isVideoOnly;
+	}
+
+	public Long getInsertedBy() {
+		return insertedBy;
+	}
+
+	public void setInsertedBy(Long insertedBy) {
+		this.insertedBy = insertedBy;
+	}
+
+	public Date getInserted() {
+		return inserted;
+	}
+
+	public void setInserted(Date inserted) {
+		this.inserted = inserted;
+	}
+
+	public boolean getDeleted() {
+		return deleted;
+	}
+
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	public Date getUpdated() {
+		return updated;
+	}
+
+	public void setUpdated(Date updated) {
+		this.updated = updated;
+	}
+
+	public boolean isScreenData() {
+		return screenData;
+	}
+
+	public void setScreenData(boolean screenData) {
+		this.screenData = screenData;
+	}
+
+	public String getStreamName() {
+		return streamName;
+	}
+
+	public void setStreamName(String streamName) {
+		this.streamName = streamName;
+	}
+
+	public String getWavAudioData() {
+		return wavAudioData;
+	}
+
+	public void setWavAudioData(String wavAudioData) {
+		this.wavAudioData = wavAudioData;
+	}
+
+	public String getFullWavAudioData() {
+		return fullWavAudioData;
+	}
+
+	public void setFullWavAudioData(String fullWavAudioData) {
+		this.fullWavAudioData = fullWavAudioData;
+	}
+
+	public Boolean getAudioIsValid() {
+		return audioIsValid;
+	}
+
+	public void setAudioIsValid(Boolean audioIsValid) {
+		this.audioIsValid = audioIsValid;
+	}
+
+	public Integer getInteriewPodId() {
+		return interiewPodId;
+	}
+
+	public void setInteriewPodId(Integer interiewPodId) {
+		this.interiewPodId = interiewPodId;
+	}
+
+	public Integer getInitialGapSeconds() {
+		return initialGapSeconds;
+	}
+
+	public void setInitialGapSeconds(Integer initialGapSeconds) {
+		this.initialGapSeconds = initialGapSeconds;
+	}
+
+	public Status getStreamStatus() {
+		return streamStatus;
+	}
+
+	public void setStreamStatus(Status status) {
+		this.streamStatus = status;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecordingMetaDelta.java b/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecordingMetaDelta.java
new file mode 100644
index 0000000..452224d
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/record/FlvRecordingMetaDelta.java
@@ -0,0 +1,220 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.record;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+/**
+ * 
+ *
+ */
+@Entity
+@Table(name = "flvrecording_meta_delta")
+public class FlvRecordingMetaDelta implements Serializable {
+	private static final long serialVersionUID = -733483974696234137L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name="id")
+	private long flvRecordingMetaDeltaId;
+	
+	@Column(name="flvrecording_metadata_id")
+	private Long flvRecordingMetaDataId;
+	
+	@Column(name="time_stamp")
+	private Integer timeStamp;
+	
+	@Column(name="delta_time")
+	private Long deltaTime;
+	
+	@Column(name="last_time_stamp")
+	private Long lastTimeStamp;
+	
+	@Column(name="start_time")
+	private Date startTime;
+	
+	@Column(name="current_event_time")
+	private Date currentTime;
+	
+	@Column(name="delta_time_stamp")
+	private Long deltaTimeStamp;
+	
+	@Column(name="missing_time")
+	private Long missingTime;
+	
+	@Column(name="duration")
+	private Integer duration;
+	
+	@Column(name="start_time_stamp")
+	private Integer startTimeStamp;
+	
+	@Column(name="packet_time_stamp")
+	private Integer packetTimeStamp;
+	
+	@Column(name="wave_out_put_name")
+	private String waveOutPutName;
+	
+	@Column(name="data_length_packet")
+	private Integer dataLengthPacket;
+	
+	@Column(name="received_audio_data_length")
+	private Long receivedAudioDataLength;
+	
+	@Column(name="is_end_padding")
+	private Boolean isEndPadding;
+	
+	@Column(name="is_start_padding")
+	private Boolean isStartPadding;
+	
+	@Column(name="debug_status")
+	private String debugStatus;
+	
+	public long getFlvRecordingMetaDeltaId() {
+		return flvRecordingMetaDeltaId;
+	}
+	public void setFlvRecordingMetaDeltaId(long flvRecordingMetaDeltaId) {
+		this.flvRecordingMetaDeltaId = flvRecordingMetaDeltaId;
+	}
+	
+	public Long getFlvRecordingMetaDataId() {
+		return flvRecordingMetaDataId;
+	}
+	public void setFlvRecordingMetaDataId(Long flvRecordingMetaDataId) {
+		this.flvRecordingMetaDataId = flvRecordingMetaDataId;
+	}
+	
+	public Integer getTimeStamp() {
+		return timeStamp;
+	}
+	public void setTimeStamp(Integer timeStamp) {
+		this.timeStamp = timeStamp;
+	}
+	
+	public Long getDeltaTime() {
+		return deltaTime;
+	}
+	public void setDeltaTime(Long deltaTime) {
+		this.deltaTime = deltaTime;
+	}
+	
+	public Long getLastTimeStamp() {
+		return lastTimeStamp;
+	}
+	public void setLastTimeStamp(Long lastTimeStamp) {
+		this.lastTimeStamp = lastTimeStamp;
+	}
+	
+	public Long getDeltaTimeStamp() {
+		return deltaTimeStamp;
+	}
+	public void setDeltaTimeStamp(Long deltaTimeStamp) {
+		this.deltaTimeStamp = deltaTimeStamp;
+	}
+	
+	public Integer getPacketTimeStamp() {
+		return packetTimeStamp;
+	}
+	public void setPacketTimeStamp(Integer packetTimeStamp) {
+		this.packetTimeStamp = packetTimeStamp;
+	}
+	
+	public Integer getStartTimeStamp() {
+		return startTimeStamp;
+	}
+	public void setStartTimeStamp(Integer startTimeStamp) {
+		this.startTimeStamp = startTimeStamp;
+	}
+	
+	public Long getMissingTime() {
+		return missingTime;
+	}
+	public void setMissingTime(Long missingTime) {
+		this.missingTime = missingTime;
+	}
+	
+	public Integer getDuration() {
+		return duration;
+	}
+	public void setDuration(Integer duration) {
+		this.duration = duration;
+	}
+	
+	public Date getStartTime() {
+		return startTime;
+	}
+	public void setStartTime(Date startTime) {
+		this.startTime = startTime;
+	}
+	
+	public Date getCurrentTime() {
+		return currentTime;
+	}
+	public void setCurrentTime(Date currentTime) {
+		this.currentTime = currentTime;
+	}
+	
+	public Boolean getIsEndPadding() {
+		return isEndPadding;
+	}
+	public void setIsEndPadding(Boolean isEndPadding) {
+		this.isEndPadding = isEndPadding;
+	}
+	
+	public Boolean getIsStartPadding() {
+		return isStartPadding;
+	}
+	public void setIsStartPadding(Boolean isStartPadding) {
+		this.isStartPadding = isStartPadding;
+	}
+	
+	public String getDebugStatus() {
+		return debugStatus;
+	}
+	public void setDebugStatus(String debugStatus) {
+		this.debugStatus = debugStatus;
+	}
+	
+	public String getWaveOutPutName() {
+		return waveOutPutName;
+	}
+	public void setWaveOutPutName(String waveOutPutName) {
+		this.waveOutPutName = waveOutPutName;
+	}
+	
+	public Integer getDataLengthPacket() {
+		return dataLengthPacket;
+	}
+	public void setDataLengthPacket(Integer dataLengthPacket) {
+		this.dataLengthPacket = dataLengthPacket;
+	}
+	
+	public Long getReceivedAudioDataLength() {
+		return receivedAudioDataLength;
+	}
+	public void setReceivedAudioDataLength(Long receivedAudioDataLength) {
+		this.receivedAudioDataLength = receivedAudioDataLength;
+	}
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/room/Client.java b/src/db/java/org/apache/openmeetings/db/entity/room/Client.java
new file mode 100644
index 0000000..9211ddd
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/room/Client.java
@@ -0,0 +1,877 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.room;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.apache.openmeetings.db.entity.server.Server;
+import org.apache.openmeetings.util.CalendarPatterns;
+
+/**
+ * Can be configured to be stored in memory or in database
+ * 
+ * @author sebawagner
+ */
+@Entity
+@NamedQueries({
+	@NamedQuery(name = "deleteAll", query = "DELETE FROM Client"),
+	@NamedQuery(name = "deletedById", query = "DELETE FROM Client c WHERE c.id = :id"),
+	@NamedQuery(name = "deleteClientsByServer", query = "DELETE FROM Client c WHERE c.server = :server"),
+	@NamedQuery(name = "deletedByServerAndStreamId", query = "DELETE FROM Client c WHERE c.server = :server AND c.streamid LIKE :streamid"),
+	@NamedQuery(name = "countClients", query = "SELECT count(c.id) FROM Client c"),
+	@NamedQuery(name = "countClientsByServer", query = "SELECT count(c.id) FROM Client c WHERE c.server = :server"),
+	@NamedQuery(name = "countClientsByServerAndStreamId", query = "SELECT count(c.id) FROM Client c WHERE c.streamid LIKE :streamid AND c.server = :server"),
+	@NamedQuery(name = "getClientByServerAndStreamId", query = "SELECT c FROM Client c WHERE c.streamid LIKE :streamid AND c.server = :server"),
+	@NamedQuery(name = "getClientsByPublicSIDAndServer", query = "SELECT c FROM Client c WHERE c.publicSID LIKE :publicSID AND c.server = :server"),
+	@NamedQuery(name = "getClientsByPublicSID", query = "SELECT c FROM Client c WHERE c.publicSID LIKE :publicSID"),
+	@NamedQuery(name = "getClientsByServer", query = "SELECT c FROM Client c WHERE c.server = :server"),
+	@NamedQuery(name = "getClients", query = "SELECT c FROM Client c"),
+	@NamedQuery(name = "getClientsWithServer", query = "SELECT c FROM Client c LEFT JOIN FETCH c.server"),
+	@NamedQuery(name = "getClientsByUserId", query = "SELECT c FROM Client c WHERE c.server = :server AND c.user_id = :user_id"),
+	@NamedQuery(name = "getClientsByRoomId", query = "SELECT c FROM Client c WHERE c.room_id = :room_id"),
+	@NamedQuery(name = "getRoomsIdsByServer", query = "SELECT c.room_id FROM Client c WHERE c.server = :server GROUP BY c.room_id")
+})
+@Table(name = "client")
+public class Client implements IDataProviderEntity, Serializable {
+	private static final long serialVersionUID = -5980636447877077730L;
+	
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "id")
+	private long id;
+	
+	/**
+	 * @see Client#getUsername()
+	 */
+	@Column(name = "username")
+	private String username = "";
+	
+	/**
+	 * @see Client#getStreamid()
+	 */
+	@Column(name = "streamid")
+	private String streamid = "";
+	
+	/**
+	 * @see Client#getScope()
+	 */
+	@Column(name = "scope")
+	private String scope = "";
+	
+	/**
+	 * @see Client#getVWidth()
+	 */
+	@Column(name = "vwidth")
+	private int vWidth = 0;
+	
+	/**
+	 * @see Client#getVHeight()
+	 */
+	@Column(name = "vheight")
+	private int vHeight = 0;
+	
+	/**
+	 * @see Client#getVX()
+	 */
+	@Column(name = "vx")
+	private int vX = 0;
+	
+	/**
+	 * @see Client#getVY()
+	 */
+	@Column(name = "vy")
+	private int vY = 0;
+	
+	/**
+	 * @see Client#getStreamPublishName()
+	 */
+	@Column(name = "stream_publish_name")
+	private String streamPublishName = "";
+	
+	/**
+	 * @see Client#getPublicSID()
+	 */
+	@Column(name = "public_sid")
+	private String publicSID = "";
+	
+	/**
+	 * @see Client#getIsMod()
+	 */
+	@Column(name = "is_mod")
+	private Boolean isMod = false;
+	
+	/**
+	 * @see Client#getIsSuperModerator()
+	 */
+	@Column(name = "is_supermoderator")
+	private Boolean isSuperModerator = false;
+	
+	/**
+	 * @see Client#getCanDraw()
+	 */
+	@Column(name = "can_draw")
+	private Boolean canDraw = false;
+	
+	/**
+	 * @see Client#getCanShare()
+	 */
+	@Column(name = "can_share")
+	private Boolean canShare = false;
+	
+	/**
+	 * @see Client#getCanRemote()
+	 */
+	@Column(name = "can_remote")
+	private Boolean canRemote = false;
+	
+	/**
+	 * @see Client#getCanGiveAudio()
+	 */
+	@Column(name = "can_giveaudio")
+    private Boolean canGiveAudio = false;
+	
+    /**
+	 * @see Client#getConnectedSince()
+	 */
+	@Column(name = "connected_since")
+	private Date connectedSince;
+	
+	/**
+	 * @see Client#getFormatedDate()
+	 */
+	@Column(name = "formated_date")
+	private String formatedDate;
+	
+	/**
+	 * @see Client#getIsScreenClient()
+	 */
+	@Column(name = "is_screenclient")
+	private Boolean isScreenClient = false;
+	
+	/**
+	 * @see Client#getIsAVClient()
+	 */
+	@Column(name = "is_avclient")
+	private boolean isAVClient = false;
+	
+	/**
+	 * @see Client#getUsercolor()
+	 */
+	@Column(name = "usercolor")
+	private String usercolor;
+	
+	/**
+	 * @see Client#getUserpos()
+	 */
+	@Column(name = "userpos")
+	private Integer userpos;
+	
+	/**
+	 * @see Client#getUserip()
+	 */
+	@Column(name = "userip")
+	private String userip;
+	
+	/**
+	 * @see Client#getUserport()
+	 */
+	@Column(name = "userport")
+	private int userport;
+	
+	/**
+	 * @see Client#getRoom_id()
+	 */
+	@Column(name = "room_id")
+	private Long room_id;
+	
+	/**
+	 * @see Client#getRoomEnter()
+	 */
+	@Column(name = "room_enter")
+	private Date roomEnter = null;
+	
+	/**
+	 * @see Client#getBroadCastID()
+	 */
+	@Column(name = "broadcast_id")
+	private long broadCastID = -2;
+	
+	/**
+	 * @see Client#getUser_id()
+	 */
+	@Column(name = "user_id")
+	private Long user_id = null;
+	
+	/**
+	 * @see Client#getFirstname()
+	 */
+	@Column(name = "firstname")
+	private String firstname = "";
+	
+	/**
+	 * @see Client#getLastname()
+	 */
+	@Column(name = "lastname")
+	private String lastname = "";
+	
+	/**
+	 * @see Client#getMail()
+	 */
+	@Column(name = "mail")
+	private String mail;
+	
+	/**
+	 * @see Client#getLastLogin()
+	 */
+	@Column(name = "last_login")
+	private String lastLogin;
+	
+	/**
+	 * @see Client#getOfficial_code()
+	 */
+	@Column(name = "official_code")
+	private String official_code;
+	
+	/**
+	 * @see Client#getPicture_uri()
+	 */
+	@Column(name = "picture_uri")
+	private String picture_uri;
+	
+	/**
+	 * @see Client#getLanguage()
+	 */
+	@Column(name = "language")
+	private String language = "";
+	
+	/**
+	 * @see Client#getAvsettings()
+	 */
+	@Column(name = "avsettings")
+	private String avsettings = "";
+	
+	/**
+	 * @see Client#getSwfurl()
+	 */
+	// FIXME: Move to {@link ClientSession}
+	@Column(name = "swfurl")
+	private String swfurl;
+	
+	/**
+	 * @see Client#getIsRecording()
+	 */
+	@Column(name = "is_recording")
+	private Boolean isRecording = false;
+	
+	/**
+	 * @see Client#getRoomRecordingName()
+	 */
+	@Column(name = "room_recording_name")
+	private String roomRecordingName;
+	
+	/**
+	 * @see Client#getFlvRecordingId()
+	 */
+	@Column(name = "flvrecording_id")
+	private Long flvRecordingId;
+	
+	/**
+	 * @see Client#getFlvRecordingMetaDataId()
+	 */
+	@Column(name = "flvrecordingmetadata_id")
+	private Long flvRecordingMetaDataId;
+	
+	/**
+	 * @see Client#getOrganization_id()
+	 */
+	@Column(name = "organization_id")
+	private Long organization_id;
+	
+	/**
+	 * @see Client#isStartRecording()
+	 */
+	@Column(name = "start_recording")
+	private boolean startRecording = false;
+	
+	/**
+	 * @see Client#isStartStreaming()
+	 */
+	@Column(name = "start_streaming")
+	private boolean startStreaming = false;
+	
+	/**
+	 * @see Client#isScreenPublishStarted()
+	 */
+	@Column(name = "screen_publish_started")
+	private boolean screenPublishStarted = false;
+	
+	/**
+	 * @see Client#isStreamPublishStarted()
+	 */
+	@Column(name = "stream_publish_started")
+	private boolean streamPublishStarted = false;
+	
+	/**
+	 * @see Client#getIsBroadcasting()
+	 */
+	@Column(name = "is_broadcasting")
+	private Boolean isBroadcasting = false;
+	
+	/**
+	 * @see Client#getExternalUserId()
+	 */
+	@Column(name = "external_user_id")
+	private String externalUserId;
+	
+	/**
+	 * @see Client#getExternalUserType()
+	 */
+	@Column(name = "external_user_type")
+    private String externalUserType;
+	
+    /**
+	 * @see Client#getInterviewPodId()
+	 */
+	@Column(name = "interview_pod_id")
+    private Integer interviewPodId = null;
+	
+    /**
+	 * @see Client#getAllowRecording()
+	 */
+	@Column(name = "allow_recording")
+    private boolean allowRecording = true;
+	
+    /**
+	 * @see Client#getZombieCheckFlag()
+	 */
+	@Column(name = "zombie_check_flag")
+	private Boolean zombieCheckFlag = false;
+	
+	/**
+	 * @see Client#getMicMuted()
+	 */
+	@Column(name = "mic_muted")
+    private Boolean micMuted = false;
+	
+    /**
+	 * @see Client#isSipTransport()
+	 */
+	@Column(name = "sip_transport")
+    private boolean sipTransport = false;
+	
+	@ManyToOne(fetch = FetchType.LAZY)
+	@JoinColumn(name = "server_id")
+	private Server server;
+    
+    public Client() {
+    	
+    }
+    
+	public Client(String streamid, String publicSID, Long room_id,
+			Long user_id, String firstname, String lastname, boolean isAVClient,
+			String username, String connectedSince, String scope) {
+		super();
+		this.streamid = streamid;
+		this.publicSID = publicSID;
+		this.room_id = room_id;
+		this.user_id = user_id;
+		this.firstname = firstname;
+		this.lastname = lastname;
+		this.isAVClient = isAVClient;
+		this.username = username;
+		this.connectedSince = CalendarPatterns.parseDateWithHour(connectedSince);
+		this.scope = scope;
+	}
+
+	public void setUserObject(Long user_id, String username, String firstname, String lastname) {
+		this.user_id = user_id;
+		this.username = username;
+		this.firstname = firstname;
+		this.lastname = lastname;
+	}
+
+	public void setUserObject(String username, String firstname, String lastname) {
+		this.username = username;
+		this.firstname = firstname;
+		this.lastname = lastname;
+	}
+	
+	public long getId() {
+		return id;
+	}
+
+	public void setId(long id) {
+		this.id = id;
+	}
+
+	public Date getConnectedSince() {
+		return connectedSince;
+	}
+
+	public void setConnectedSince(Date connectedSince) {
+		this.connectedSince = connectedSince;
+	}
+
+	public Boolean getIsMod() {
+		return isMod;
+	}
+
+	public void setIsMod(Boolean isMod) {
+		this.isMod = isMod;
+	}
+	
+	public String getUsername() {
+		return username;
+	}
+
+	public void setUsername(String username) {
+		this.username = username;
+	}
+
+	public String getStreamid() {
+		return streamid;
+	}
+
+	public void setStreamid(String streamid) {
+		this.streamid = streamid;
+	}
+
+	public String getScope() {
+		return scope;
+	}
+
+	public void setScope(String scope) {
+		this.scope = scope;
+	}
+
+	public String getFormatedDate() {
+		return formatedDate;
+	}
+
+	public void setFormatedDate(String formatedDate) {
+		this.formatedDate = formatedDate;
+	}
+
+	public String getUsercolor() {
+		return usercolor;
+	}
+
+	public void setUsercolor(String usercolor) {
+		this.usercolor = usercolor;
+	}
+
+	public Integer getUserpos() {
+		return userpos;
+	}
+
+	public void setUserpos(Integer userpos) {
+		this.userpos = userpos;
+	}
+
+	public String getUserip() {
+		return userip;
+	}
+
+	public void setUserip(String userip) {
+		this.userip = userip;
+	}
+
+	public String getSwfurl() {
+		return swfurl;
+	}
+
+	public void setSwfurl(String swfurl) {
+		this.swfurl = swfurl;
+	}
+
+	public int getUserport() {
+		return userport;
+	}
+
+	public void setUserport(int userport) {
+		this.userport = userport;
+	}
+
+	public String getFirstname() {
+		return firstname;
+	}
+
+	public void setFirstname(String firstname) {
+		this.firstname = firstname;
+	}
+
+	public String getLanguage() {
+		return language;
+	}
+
+	public void setLanguage(String language) {
+		this.language = language;
+	}
+
+	public String getLastLogin() {
+		return lastLogin;
+	}
+
+	public void setLastLogin(String lastLogin) {
+		this.lastLogin = lastLogin;
+	}
+
+	public String getLastname() {
+		return lastname;
+	}
+
+	public void setLastname(String lastname) {
+		this.lastname = lastname;
+	}
+
+	public String getMail() {
+		return mail;
+	}
+
+	public void setMail(String mail) {
+		this.mail = mail;
+	}
+
+	public String getOfficial_code() {
+		return official_code;
+	}
+
+	public void setOfficial_code(String official_code) {
+		this.official_code = official_code;
+	}
+
+	public String getPicture_uri() {
+		return picture_uri;
+	}
+
+	public void setPicture_uri(String picture_uri) {
+		this.picture_uri = picture_uri;
+	}
+
+	public Long getUser_id() {
+		return user_id;
+	}
+
+	public void setUser_id(Long user_id) {
+		this.user_id = user_id;
+	}
+
+	public Long getRoom_id() {
+		return room_id;
+	}
+
+	public void setRoom_id(Long room_id) {
+		this.room_id = room_id;
+	}
+
+	public Date getRoomEnter() {
+		return roomEnter;
+	}
+
+	public void setRoomEnter(Date roomEnter) {
+		this.roomEnter = roomEnter;
+	}
+
+	public Boolean getIsRecording() {
+		return isRecording;
+	}
+
+	public void setIsRecording(Boolean isRecording) {
+		this.isRecording = isRecording;
+	}
+
+	public String getRoomRecordingName() {
+		return roomRecordingName;
+	}
+
+	public void setRoomRecordingName(String roomRecordingName) {
+		this.roomRecordingName = roomRecordingName;
+	}
+
+	public String getAvsettings() {
+		return avsettings;
+	}
+
+	public void setAvsettings(String avsettings) {
+		this.avsettings = avsettings;
+	}
+
+	public long getBroadCastID() {
+		return broadCastID;
+	}
+
+	public void setBroadCastID(long broadCastID) {
+		this.broadCastID = broadCastID;
+	}
+
+	public String getPublicSID() {
+		return publicSID;
+	}
+	
+	public void setPublicSID(String publicSID) {
+		this.publicSID = publicSID;
+	}
+
+	public Boolean getZombieCheckFlag() {
+		return zombieCheckFlag;
+	}
+	
+	public void setZombieCheckFlag(Boolean zombieCheckFlag) {
+		this.zombieCheckFlag = zombieCheckFlag;
+	}
+
+	public Boolean getMicMuted() {
+		return micMuted;
+	}
+
+	public void setMicMuted(Boolean micMuted) {
+		this.micMuted = micMuted;
+	}
+
+	public Boolean getCanDraw() {
+		return canDraw;
+	}
+
+	public void setCanDraw(Boolean canDraw) {
+		this.canDraw = canDraw;
+	}
+
+	public Boolean getIsBroadcasting() {
+		return isBroadcasting;
+	}
+
+	public void setIsBroadcasting(Boolean isBroadcasting) {
+		this.isBroadcasting = isBroadcasting;
+	}
+
+	public Boolean getCanShare() {
+		return canShare;
+	}
+
+	public void setCanShare(Boolean canShare) {
+		this.canShare = canShare;
+	}
+
+	public String getExternalUserId() {
+		return externalUserId;
+	}
+
+	public void setExternalUserId(String externalUserId) {
+		this.externalUserId = externalUserId;
+	}
+
+	public String getExternalUserType() {
+		return externalUserType;
+	}
+
+	public void setExternalUserType(String externalUserType) {
+		this.externalUserType = externalUserType;
+	}
+
+	public Boolean getIsSuperModerator() {
+		return isSuperModerator;
+	}
+
+	public void setIsSuperModerator(Boolean isSuperModerator) {
+		this.isSuperModerator = isSuperModerator;
+	}
+
+	public Boolean getIsScreenClient() {
+		return isScreenClient;
+	}
+
+	public void setIsScreenClient(Boolean isScreenClient) {
+		this.isScreenClient = isScreenClient;
+	}
+
+	public int getVWidth() {
+		return vWidth;
+	}
+
+	public void setVWidth(int width) {
+		vWidth = width;
+	}
+
+	public int getVHeight() {
+		return vHeight;
+	}
+
+	public void setVHeight(int height) {
+		vHeight = height;
+	}
+
+	public int getVX() {
+		return vX;
+	}
+
+	public void setVX(int vx) {
+		vX = vx;
+	}
+
+	public int getVY() {
+		return vY;
+	}
+
+	public void setVY(int vy) {
+		vY = vy;
+	}
+
+	public String getStreamPublishName() {
+		return streamPublishName;
+	}
+
+	public void setStreamPublishName(String streamPublishName) {
+		this.streamPublishName = streamPublishName;
+	}
+
+	public Long getFlvRecordingId() {
+		return flvRecordingId;
+	}
+
+	public void setFlvRecordingId(Long flvRecordingId) {
+		this.flvRecordingId = flvRecordingId;
+	}
+
+	public Long getFlvRecordingMetaDataId() {
+		return flvRecordingMetaDataId;
+	}
+
+	public void setFlvRecordingMetaDataId(Long flvRecordingMetaDataId) {
+		this.flvRecordingMetaDataId = flvRecordingMetaDataId;
+	}
+
+	public boolean isScreenPublishStarted() {
+		return screenPublishStarted;
+	}
+
+	public void setScreenPublishStarted(boolean screenPublishStarted) {
+		this.screenPublishStarted = screenPublishStarted;
+	}
+
+	public Long getOrganization_id() {
+		return organization_id;
+	}
+
+	public void setOrganization_id(Long organization_id) {
+		this.organization_id = organization_id;
+	}
+
+	public boolean isStartRecording() {
+		return startRecording;
+	}
+
+	public void setStartRecording(boolean startRecording) {
+		this.startRecording = startRecording;
+	}
+
+	public boolean isStartStreaming() {
+		return startStreaming;
+	}
+
+	public void setStartStreaming(boolean startStreaming) {
+		this.startStreaming = startStreaming;
+	}
+
+	public Integer getInterviewPodId() {
+		return interviewPodId;
+	}
+
+	public void setInterviewPodId(Integer interviewPodId) {
+		this.interviewPodId = interviewPodId;
+	}
+
+	public Boolean getCanRemote() {
+		return canRemote;
+	}
+
+	public void setCanRemote(Boolean canRemote) {
+		this.canRemote = canRemote;
+	}
+
+    public Boolean getCanGiveAudio() {
+		return canGiveAudio;
+	}
+
+	public void setCanGiveAudio(Boolean canGiveAudio) {
+		this.canGiveAudio = canGiveAudio;
+	}
+
+	public boolean getAllowRecording() {
+		return allowRecording;
+	}
+
+	public void setAllowRecording(boolean allowRecording) {
+		this.allowRecording = allowRecording;
+	}
+
+	public boolean getIsAVClient() {
+		return isAVClient;
+	}
+
+	public void setIsAVClient(boolean isAVClient) {
+		this.isAVClient = isAVClient;
+	}
+
+	public boolean isStreamPublishStarted() {
+		return streamPublishStarted;
+	}
+
+	public void setStreamPublishStarted(boolean streamPublishStarted) {
+		this.streamPublishStarted = streamPublishStarted;
+	}
+
+	public boolean isSipTransport() {
+		return sipTransport;
+	}
+
+	public void setSipTransport(boolean sipTransport) {
+		this.sipTransport = sipTransport;
+	}
+	
+	public Server getServer() {
+		return server;
+	}
+
+	public void setServer(Server server) {
+		this.server = server;
+	}
+
+	@Override
+	public String toString() {
+		return "Client [streamid=" + streamid + ", publicSID=" + publicSID + ", isScreenClient=" + isScreenClient
+				+ ", isAVClient=" + isAVClient + ", room_id=" + room_id + ", broadCastID=" + broadCastID + ", user_id="
+				+ user_id + ", avsettings=" + avsettings + ", isRecording=" + isRecording + ", flvRecordingId="
+				+ flvRecordingId + ", flvRecordingMetaDataId=" + flvRecordingMetaDataId + ", screenPublishStarted="
+				+ screenPublishStarted + ", interviewPodId=" + interviewPodId + ", server=" + server + "]";
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/room/Invitation.java b/src/db/java/org/apache/openmeetings/db/entity/room/Invitation.java
new file mode 100644
index 0000000..bf62c65
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/room/Invitation.java
@@ -0,0 +1,255 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.room;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.db.entity.user.User;
+
+@Entity
+@NamedQueries({
+	@NamedQuery(name = "getInvitationbyId", query = "SELECT i FROM Invitation i "
+					+ "WHERE i.deleted = false AND i.id = :invid"),
+	@NamedQuery(name = "getInvitationByHashCode", query = "SELECT i FROM Invitation i "
+					+ "where i.hash LIKE :hashCode AND i.deleted = false"),
+	@NamedQuery(name = "getInvitationByAppointment", query = "SELECT i FROM Invitation i "
+					+ "WHERE i.appointment.id = :appointmentId  ")
+})
+@Table(name = "invitations")
+public class Invitation implements Serializable {
+	private static final long serialVersionUID = 1153321347974705506L;
+
+	public enum Valid {
+		OneTime
+		, Period
+		, Endless;
+		
+		public static Valid fromInt(int valid) {
+			return valid == 1 ? Endless : (valid == 2 ? Period : OneTime);
+		}
+	}
+	
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "id")
+	private Long id;
+
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "invited_by", nullable = true)
+	@ForeignKey(enabled = true)
+	private User invitedBy;
+	
+	@Column(name = "inserted")
+	private Date inserted;
+	
+	@Column(name = "updated")
+	private Date updated;
+	
+	@Column(name = "deleted")
+	private boolean deleted;
+
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "room_id", nullable = true)
+	@ForeignKey(enabled = true)
+	private Room room;
+
+	// the hash for the link
+	@Column(name = "hash")
+	private String hash;
+	
+	@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
+	@JoinColumn(name = "invitee_id", nullable = true)
+	@ForeignKey(enabled = true)
+	private User invitee;
+
+	@Column(name = "password_protected")
+	private boolean passwordProtected;
+	
+	@Column(name = "password")
+	private String password;
+
+	// Invitations by Time are only valid between the validFrom validTo
+	// TimeStamp
+	@Column(name = "valid")
+	@Enumerated(EnumType.STRING)
+	private Valid valid = Valid.Period;
+	
+	@Column(name = "valid_from")
+	private Date validFrom;
+	
+	@Column(name = "valid_to")
+	private Date validTo;
+	
+	@Column(name = "was_used")
+	private boolean used;
+	
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "appointment_id", nullable = true)
+	@ForeignKey(enabled = true)
+	private Appointment appointment;
+
+	//variable used in Flash
+	private boolean allowEntry = true;
+	
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Room getRoom() {
+		return room;
+	}
+
+	public void setRoom(Room room) {
+		this.room = room;
+	}
+
+	public User getInvitedBy() {
+		return invitedBy;
+	}
+
+	public void setInvitedBy(User invitedBy) {
+		this.invitedBy = invitedBy;
+	}
+
+	public Date getInserted() {
+		return inserted;
+	}
+
+	public void setInserted(Date inserted) {
+		this.inserted = inserted;
+	}
+
+	public Date getUpdated() {
+		return updated;
+	}
+
+	public void setUpdated(Date updated) {
+		this.updated = updated;
+	}
+
+	public boolean getDeleted() {
+		return deleted;
+	}
+
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	public String getHash() {
+		return hash;
+	}
+
+	public void setHash(String hash) {
+		this.hash = hash;
+	}
+
+	public User getInvitee() {
+		return invitee;
+	}
+
+	public void setInvitee(User invitee) {
+		this.invitee = invitee;
+	}
+
+	public boolean isPasswordProtected() {
+		return passwordProtected;
+	}
+
+	public void setPasswordProtected(boolean passwordProtected) {
+		this.passwordProtected = passwordProtected;
+	}
+
+	public String getPassword() {
+		return password;
+	}
+
+	public void setPassword(String password) {
+		this.password = password;
+	}
+
+	public Date getValidFrom() {
+		return validFrom;
+	}
+
+	public void setValidFrom(Date validFrom) {
+		this.validFrom = validFrom;
+	}
+
+	public Date getValidTo() {
+		return validTo;
+	}
+
+	public void setValidTo(Date validTo) {
+		this.validTo = validTo;
+	}
+
+	public boolean isUsed() {
+		return used;
+	}
+
+	public void setUsed(boolean used) {
+		this.used = used;
+	}
+
+	public Appointment getAppointment() {
+		return appointment;
+	}
+
+	public void setAppointment(Appointment appointment) {
+		this.appointment = appointment;
+	}
+
+	public Valid getValid() {
+		return valid;
+	}
+
+	public void setValid(Valid valid) {
+		this.valid = valid;
+	}
+	
+	public boolean isAllowEntry() {
+		return allowEntry;
+	}
+
+	public void setAllowEntry(boolean allowEntry) {
+		this.allowEntry = allowEntry;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/room/PollType.java b/src/db/java/org/apache/openmeetings/db/entity/room/PollType.java
new file mode 100644
index 0000000..0ed70dc
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/room/PollType.java
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.room;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.label.Fieldvalues;
+
+@Entity
+@NamedQueries({
+	@NamedQuery(name = "getPollTypes", query = "SELECT pt FROM PollType pt"),
+	@NamedQuery(name = "getPollType", query = "SELECT pt FROM PollType pt " +
+			"WHERE pt.pollTypesId = :pollTypesId")		
+})
+@Table(name = "poll_types")
+public class PollType {
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "id")
+	private Long pollTypesId;
+	
+	@OneToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "fieldvalues_id")
+	@ForeignKey(enabled = true)
+	private Fieldvalues label;
+	
+	@Column(name = "numeric_answer")
+	private Boolean isNumericAnswer;
+	
+	/**
+	 * @return the pollTypesId
+	 */
+	public Long getPollTypesId() {
+		return pollTypesId;
+	}
+	/**
+	 * @param pollTypesId the pollTypesId to set
+	 */
+	public void setPollTypesId(Long pollTypesId) {
+		this.pollTypesId = pollTypesId;
+	}
+	/**
+	 * @return the isNumericAnswer
+	 */
+	public Boolean getIsNumericAnswer() {
+		return isNumericAnswer;
+	}
+	/**
+	 * @param isNumericAnswer the isNumericAnswer to set
+	 */
+	public void setIsNumericAnswer(Boolean isNumericAnswer) {
+		this.isNumericAnswer = isNumericAnswer;
+	}
+	/**
+	 * @return the pollTypeLabelid
+	 */
+	public Fieldvalues getLabel() {
+		return label;
+	}
+	/**
+	 * @param pollTypeLabelid the pollTypeLabelid to set
+	 */
+	public void setLabel(Fieldvalues label) {
+		this.label = label;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/room/Room.java b/src/db/java/org/apache/openmeetings/db/entity/room/Room.java
new file mode 100644
index 0000000..9dd43aa
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/room/Room.java
@@ -0,0 +1,589 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.room;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.Lob;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+
+import org.apache.openjpa.persistence.ElementDependent;
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.ElementList;
+import org.simpleframework.xml.Root;
+
+@Entity
+@NamedQueries({
+	@NamedQuery(name = "getNondeletedRooms", query = "SELECT r FROM Room r WHERE r.deleted = false"),
+	@NamedQuery(name = "getPublicRooms", query = "SELECT r from Room r "
+			+ "JOIN r.roomtype as rt "
+			+ "WHERE r.ispublic=:ispublic and r.deleted=:deleted and rt.roomtypes_id=:roomtypes_id"),
+	@NamedQuery(name = "getPublicRoomsWithoutType", query = "SELECT r from Room r " + "WHERE "
+						+ "r.ispublic = :ispublic and r.deleted <> :deleted "
+						+ "ORDER BY r.name ASC"),
+	@NamedQuery(name = "getAppointedMeetings", query = "SELECT r from Room r "
+			+ "JOIN r.roomtype as rt " + "WHERE "
+			+ "r.deleted=:deleted and r.appointment=:appointed"),	
+	@NamedQuery(name = "getRoomByOwnerAndTypeId", query = "select c from Room as c "
+					+ "where c.ownerId = :ownerId "
+					+ "AND c.roomtype.roomtypes_id = :roomtypesId "
+					+ "AND c.deleted <> :deleted"),	
+										
+	@NamedQuery(name = "selectMaxFromRooms", query = "select count(c.rooms_id) from Room c "
+			+ "where c.deleted <> true AND c.name LIKE :search "),
+	@NamedQuery(name = "getRoomByExternalId", query = "select c from Room as c JOIN c.roomtype as rt "
+			+ "where c.externalRoomId = :externalRoomId AND c.externalRoomType = :externalRoomType "
+			+ "AND rt.roomtypes_id = :roomtypes_id AND c.deleted <> :deleted"),
+	@NamedQuery(name = "getPublicRoomsOrdered", query = "SELECT r from Room r WHERE r.ispublic= true AND r.deleted= false AND r.appointment = false ORDER BY r.name ASC"),
+	@NamedQuery(name = "getRoomById", query = "SELECT r FROM Room r WHERE r.deleted = false AND r.rooms_id = :id"),
+	@NamedQuery(name = "getSipRoomIdsByIds", query = "SELECT r.rooms_id FROM Room r WHERE r.deleted = false AND r.sipEnabled = true AND r.rooms_id IN :ids"),
+	@NamedQuery(name = "countRooms", query = "SELECT COUNT(r) FROM Room r WHERE r.deleted = false"),
+	@NamedQuery(name = "getBackupRooms", query = "SELECT r FROM Room r LEFT JOIN FETCH r.moderators ORDER BY r.rooms_id"),
+	@NamedQuery(name = "getRoomsCapacityByIds", query = "SELECT SUM(r.numberOfPartizipants) FROM Room r WHERE r.deleted = false AND r.rooms_id IN :ids")
+	, @NamedQuery(name = "getOrganisationRooms", query = "SELECT DISTINCT c.room FROM RoomOrganisation c LEFT JOIN FETCH c.room "
+				+ "WHERE c.organisation.organisation_id = :orgId AND c.deleted = false AND c.room.deleted = false AND c.room.appointment = false "
+				+ "AND c.organisation.deleted = false ORDER BY c.room.name ASC")
+})
+@Table(name = "room")
+@Root(name = "room")
+public class Room implements Serializable, IDataProviderEntity {
+	private static final long serialVersionUID = -2860312283159251568L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "id")
+	@Element(data = true, required=false)
+	private Long rooms_id;
+
+	@Column(name = "name")
+	@Element(data = true, required=false)
+	private String name;
+
+	@Lob
+	@Column(name = "comment_field")
+	@Element(data = true, required = false)
+	private String comment;
+
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "roomtypes_id")
+	@ForeignKey(enabled = true)
+	@Element(name = "roomtypeId", data = true, required = false)
+	private RoomType roomtype;
+
+	@Column(name = "starttime")
+	private Date starttime;
+
+	@Column(name = "updatetime")
+	private Date updatetime;
+
+	@Column(name = "deleted")
+	@Element(data = true)
+	private boolean deleted;
+
+	@Column(name = "ispublic")
+	@Element(data = true, required = false)
+	private boolean ispublic;
+
+	@Column(name = "numberOfPartizipants")
+	@Element(data = true, required = false)
+	private Long numberOfPartizipants = new Long(4);
+
+	@Column(name = "appointment")
+	@Element(data = true, required = false)
+	private boolean appointment;
+
+	// Vars to simulate external Room
+	@Column(name = "externalRoomId")
+	@Element(data = true, required = false)
+	private Long externalRoomId;
+
+	@Column(name = "externalRoomType")
+	@Element(data = true, required = false)
+	private String externalRoomType;
+
+	@Column(name = "isdemoroom")
+	@Element(data = true, required = false)
+	private Boolean isDemoRoom;
+
+	@Column(name = "demo_time")
+	@Element(data = true, required = false)
+	private Integer demoTime; // In Seconds
+
+	// If this is true all participants of a meeting have to wait for the
+	// moderator to come into the room
+	@Column(name = "ismoderatedroom")
+	@Element(data = true, required = false)
+	private Boolean isModeratedRoom;
+
+	@Column(name = "allow_user_questions")
+	@Element(data = true, required = false)
+	private Boolean allowUserQuestions;
+
+	@Column(name = "is_audio_only")
+	@Element(data = true, required = false)
+	private Boolean isAudioOnly;
+	
+	@Column(name = "allow_font_styles", nullable = false)
+	@Element(data = true, required = false)
+	private boolean allowFontStyles = false;
+
+	@Column(name = "is_closed")
+	@Element(data = true, required = false)
+	private Boolean isClosed;
+
+	@Column(name = "redirect_url")
+	@Element(data = true, required = false)
+	private String redirectURL;
+
+	@Column(name = "owner_id")
+	@Element(name = "ownerid", data = true, required = false)
+	private Long ownerId; // Those are the rooms from the myrooms section
+
+	@Column(name = "wait_for_recording")
+	@Element(data = true, required = false)
+	private Boolean waitForRecording; // Show warning that user has to start
+										// recording
+
+	@Column(name = "allow_recording")
+	@Element(data = true, required = false)
+	private Boolean allowRecording; // Show or show not the recording option in
+									// a conference room
+	/**
+	 * Layout of Room
+	 */
+	@Column(name = "hide_top_bar")
+	@Element(data = true, required = false)
+	private Boolean hideTopBar = false;
+
+	@Column(name = "hide_chat")
+	@Element(data = true, required = false)
+	private Boolean hideChat = false;
+
+	@Column(name = "hide_activities_and_actions")
+	@Element(data = true, required = false)
+	private Boolean hideActivitiesAndActions = false;
+
+	@Column(name = "hide_files_explorer")
+	@Element(data = true, required = false)
+	private Boolean hideFilesExplorer = false;
+
+	@Column(name = "hide_actions_menu")
+	@Element(data = true, required = false)
+	private Boolean hideActionsMenu = false;
+
+	@Column(name = "hide_screen_sharing")
+	@Element(data = true, required = false)
+	private Boolean hideScreenSharing = false;
+
+	@Column(name = "hide_whiteboard")
+	@Element(data = true, required = false)
+	private Boolean hideWhiteboard = false;
+
+	@Column(name = "show_microphone_status")
+	@Element(data = true, required = false)
+	private Boolean showMicrophoneStatus = false;
+
+	@Column(name = "chat_moderated")
+	@Element(data = true, required = false)
+	private Boolean chatModerated = false;
+
+	@Column(name = "chat_opened")
+	@Element(data = true, required = false)
+	private boolean chatOpened = false;
+
+	@Column(name = "files_opened")
+	@Element(data = true, required = false)
+	private boolean filesOpened = false;
+
+	@Column(name = "auto_video_select")
+	@Element(data = true, required = false)
+	private boolean autoVideoSelect = false;
+
+	@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
+	@JoinColumn(name = "roomId")
+	@ForeignKey(enabled = true)
+	@ElementList(name = "room_moderators", required=false)
+	private List<RoomModerator> moderators;
+
+	@Column(name = "sip_enabled")
+	@Element(data = true, required = false)
+	private boolean sipEnabled;
+	
+	@Column(name = "confno")
+	@Element(data = true, required = false)
+	private String confno;
+	
+	@Column(name = "pin")
+	@Element(data = true, required = false)
+	private String pin;
+	
+	@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
+	@JoinColumn(name = "rooms_id", insertable = true, updatable = true)
+	@ElementDependent
+	@org.simpleframework.xml.Transient
+	private List<RoomOrganisation> roomOrganisations = new ArrayList<RoomOrganisation>();
+
+	@Transient
+	private List<Client> currentusers;
+
+	public String getComment() {
+		return comment;
+	}
+
+	public void setComment(String comment) {
+		this.comment = comment;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Long getRooms_id() {
+		return rooms_id;
+	}
+
+	public void setRooms_id(Long rooms_id) {
+		this.rooms_id = rooms_id;
+	}
+
+	public RoomType getRoomtype() {
+		return roomtype;
+	}
+
+	public void setRoomtype(RoomType roomtype) {
+		this.roomtype = roomtype;
+	}
+
+	public Date getStarttime() {
+		return starttime;
+	}
+
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+
+	public Date getUpdatetime() {
+		return updatetime;
+	}
+
+	public void setUpdatetime(Date updatetime) {
+		this.updatetime = updatetime;
+	}
+
+	public boolean getDeleted() {
+		return deleted;
+	}
+
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	public Boolean getIspublic() {
+		return ispublic;
+	}
+
+	public void setIspublic(Boolean ispublic) {
+		this.ispublic = ispublic;
+	}
+
+	public List<Client> getCurrentusers() {
+		return currentusers;
+	}
+
+	public void setCurrentusers(List<Client> currentusers) {
+		this.currentusers = currentusers;
+	}
+
+	public Long getNumberOfPartizipants() {
+		return numberOfPartizipants;
+	}
+
+	public void setNumberOfPartizipants(Long numberOfPartizipants) {
+		this.numberOfPartizipants = numberOfPartizipants;
+	}
+
+	public Boolean getAppointment() {
+		return appointment;
+	}
+
+	public void setAppointment(Boolean appointment) {
+		this.appointment = appointment;
+	}
+
+	public Boolean getIsDemoRoom() {
+		return isDemoRoom;
+	}
+
+	public void setIsDemoRoom(Boolean isDemoRoom) {
+		this.isDemoRoom = isDemoRoom;
+	}
+
+	public Integer getDemoTime() {
+		return demoTime;
+	}
+
+	public void setDemoTime(Integer demoTime) {
+		this.demoTime = demoTime;
+	}
+
+	public Boolean getIsModeratedRoom() {
+		return isModeratedRoom;
+	}
+
+	public void setIsModeratedRoom(Boolean isModeratedRoom) {
+		this.isModeratedRoom = isModeratedRoom;
+	}
+
+	public Long getExternalRoomId() {
+		return externalRoomId;
+	}
+
+	public void setExternalRoomId(Long externalRoomId) {
+		this.externalRoomId = externalRoomId;
+	}
+
+	public String getExternalRoomType() {
+		return externalRoomType;
+	}
+
+	public void setExternalRoomType(String externalRoomType) {
+		this.externalRoomType = externalRoomType;
+	}
+
+	public Boolean getAllowUserQuestions() {
+		return allowUserQuestions;
+	}
+
+	public void setAllowUserQuestions(Boolean allowUserQuestions) {
+		this.allowUserQuestions = allowUserQuestions;
+	}
+
+	public Boolean getIsAudioOnly() {
+		return isAudioOnly;
+	}
+
+	public void setIsAudioOnly(Boolean isAudioOnly) {
+		this.isAudioOnly = isAudioOnly;
+	}
+
+	public boolean getAllowFontStyles() {
+		return allowFontStyles;
+	}
+
+	public void setAllowFontStyles(boolean allowFontStyles) {
+		this.allowFontStyles = allowFontStyles;
+	}
+
+	public Boolean getIsClosed() {
+		return isClosed;
+	}
+
+	public void setIsClosed(Boolean isClosed) {
+		this.isClosed = isClosed;
+	}
+
+	public String getRedirectURL() {
+		return redirectURL;
+	}
+
+	public void setRedirectURL(String redirectURL) {
+		this.redirectURL = redirectURL;
+	}
+
+	public Long getOwnerId() {
+		return ownerId;
+	}
+
+	public void setOwnerId(Long ownerId) {
+		this.ownerId = ownerId;
+	}
+
+	public Boolean getWaitForRecording() {
+		return waitForRecording;
+	}
+
+	public void setWaitForRecording(Boolean waitForRecording) {
+		this.waitForRecording = waitForRecording;
+	}
+
+	public Boolean getAllowRecording() {
+		return allowRecording;
+	}
+
+	public void setAllowRecording(Boolean allowRecording) {
+		this.allowRecording = allowRecording;
+	}
+
+	public Boolean getHideTopBar() {
+		return hideTopBar;
+	}
+
+	public void setHideTopBar(Boolean hideTopBar) {
+		this.hideTopBar = hideTopBar;
+	}
+
+	public Boolean getHideChat() {
+		return hideChat;
+	}
+
+	public void setHideChat(Boolean hideChat) {
+		this.hideChat = hideChat;
+	}
+
+	public Boolean getHideActivitiesAndActions() {
+		return hideActivitiesAndActions;
+	}
+
+	public void setHideActivitiesAndActions(Boolean hideActivitiesAndActions) {
+		this.hideActivitiesAndActions = hideActivitiesAndActions;
+	}
+
+	public Boolean getHideFilesExplorer() {
+		return hideFilesExplorer;
+	}
+
+	public void setHideFilesExplorer(Boolean hideFilesExplorer) {
+		this.hideFilesExplorer = hideFilesExplorer;
+	}
+
+	public Boolean getHideActionsMenu() {
+		return hideActionsMenu;
+	}
+
+	public void setHideActionsMenu(Boolean hideActionsMenu) {
+		this.hideActionsMenu = hideActionsMenu;
+	}
+
+	public Boolean getHideScreenSharing() {
+		return hideScreenSharing;
+	}
+
+	public void setHideScreenSharing(Boolean hideScreenSharing) {
+		this.hideScreenSharing = hideScreenSharing;
+	}
+
+	public Boolean getHideWhiteboard() {
+		return hideWhiteboard;
+	}
+
+	public void setHideWhiteboard(Boolean hideWhiteboard) {
+		this.hideWhiteboard = hideWhiteboard;
+	}
+
+	public Boolean getShowMicrophoneStatus() {
+		return showMicrophoneStatus;
+	}
+
+	public void setShowMicrophoneStatus(Boolean showMicrophoneStatus) {
+		this.showMicrophoneStatus = showMicrophoneStatus;
+	}
+
+	public List<RoomModerator> getModerators() {
+		return moderators;
+	}
+
+	public void setModerators(List<RoomModerator> moderators) {
+		this.moderators = moderators;
+	}
+
+	public Boolean getChatModerated() {
+		return chatModerated;
+	}
+
+	public void setChatModerated(Boolean chatModerated) {
+		this.chatModerated = chatModerated;
+	}
+
+	public List<RoomOrganisation> getRoomOrganisations() {
+		return roomOrganisations;
+	}
+
+	public void setRoomOrganisations(List<RoomOrganisation> roomOrganisations) {
+		this.roomOrganisations = roomOrganisations;
+	}
+
+	public boolean isChatOpened() {
+		return chatOpened;
+	}
+
+	public void setChatOpened(boolean chatOpened) {
+		this.chatOpened = chatOpened;
+	}
+
+	public boolean isFilesOpened() {
+		return filesOpened;
+	}
+
+	public void setFilesOpened(boolean filesOpened) {
+		this.filesOpened = filesOpened;
+	}
+
+	public boolean isAutoVideoSelect() {
+		return autoVideoSelect;
+	}
+
+	public void setAutoVideoSelect(boolean autoVideoSelect) {
+		this.autoVideoSelect = autoVideoSelect;
+	}
+
+	public boolean isSipEnabled() {
+		return sipEnabled;
+	}
+
+	public void setSipEnabled(boolean sipEnabled) {
+		this.sipEnabled = sipEnabled;
+	}
+
+	public String getConfno() {
+		return confno;
+	}
+
+	public void setConfno(String confno) {
+		this.confno = confno;
+	}
+
+	public String getPin() {
+		return pin;
+	}
+
+	public void setPin(String pin) {
+		this.pin = pin;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/room/RoomModerator.java b/src/db/java/org/apache/openmeetings/db/entity/room/RoomModerator.java
new file mode 100644
index 0000000..583f76d
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/room/RoomModerator.java
@@ -0,0 +1,134 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.room;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.user.User;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
+
+@Entity
+@NamedQueries({
+	@NamedQuery(name = "getRoomModeratorById", query = "select c from RoomModerator as c " +
+			"where c.roomModeratorsId = :roomModeratorsId"),
+	@NamedQuery(name = "getRoomModeratorByRoomId", query = "select c from RoomModerator as c "
+			+ "where c.roomId = :roomId AND c.deleted <> :deleted"),
+	@NamedQuery(name = "getRoomModeratorByUserAndRoomId", query = "select c from RoomModerator as c "
+			+ "where c.roomId = :roomId "
+			+ "AND c.deleted <> :deleted "
+			+ "AND c.user.user_id = :user_id")
+})
+@Table(name = "rooms_moderator")
+@Root(name = "room_moderator")
+public class RoomModerator implements Serializable {
+	private static final long serialVersionUID = 5407758673591515018L;
+	
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name="id")
+	private long roomModeratorsId;
+	
+	@Column(name = "roomId")
+	private Long roomId;
+	
+	@Column(name="is_supermoderator")
+	@Element(name="is_supermoderator", data = true)
+	private Boolean isSuperModerator;
+	
+	@ManyToOne(fetch = FetchType.EAGER) 
+	@JoinColumn (name="user_id")
+	@ForeignKey(enabled = true)
+	@Element(name="user_id", data = true, required=false)
+	private User user;
+	
+	@Column(name = "starttime")
+	private Date starttime;
+	
+	@Column(name = "updatetime")
+	private Date updatetime;
+	
+	@Column(name = "deleted")
+	private boolean deleted;
+	
+	public long getRoomModeratorsId() {
+		return roomModeratorsId;
+	}
+	public void setRoomModeratorsId(long roomModeratorsId) {
+		this.roomModeratorsId = roomModeratorsId;
+	}
+	
+	public Boolean getIsSuperModerator() {
+		return isSuperModerator;
+	}
+	public void setIsSuperModerator(Boolean isSuperModerator) {
+		this.isSuperModerator = isSuperModerator;
+	}
+	
+	
+	public User getUser() {
+		return user;
+	}
+	public void setUser(User user) {
+		this.user = user;
+	}
+	
+	public Date getStarttime() {
+		return starttime;
+	}
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+	
+	public Date getUpdatetime() {
+		return updatetime;
+	}
+	public void setUpdatetime(Date updatetime) {
+		this.updatetime = updatetime;
+	}
+	
+	public boolean getDeleted() {
+		return deleted;
+	}
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+	
+	public Long getRoomId() {
+		return roomId;
+	}
+	public void setRoomId(Long roomId) {
+		this.roomId = roomId;
+	}
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/room/RoomOrganisation.java b/src/db/java/org/apache/openmeetings/db/entity/room/RoomOrganisation.java
new file mode 100644
index 0000000..d33d673
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/room/RoomOrganisation.java
@@ -0,0 +1,146 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.room;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.user.Organisation;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
+
+@Entity
+@NamedQueries({
+	@NamedQuery(name = "getAllRoomsOrganisations", query = "select ro from RoomOrganisation ro ORDER BY ro.rooms_organisation_id"),
+	@NamedQuery(name = "getRoomsOrganisationByOrganisationIdAndRoomType", query = "select c from RoomOrganisation as c "
+			+ "where c.room.roomtypes_id = :roomtypes_id "
+			+ "AND c.organisation.organisation_id = :organisation_id "
+			+ "AND c.deleted <> :deleted"),
+	@NamedQuery(name = "getRoomsOrganisationByOrganisationId", query = "SELECT c FROM RoomOrganisation c "
+			+ "LEFT JOIN FETCH c.room "
+			+ "WHERE c.organisation.organisation_id = :organisation_id "
+			+ "AND c.deleted <> :deleted AND c.room.deleted <> :deleted AND c.room.appointment = false "
+			+ "AND c.organisation.deleted <> :deleted "
+			+ "ORDER BY c.room.name ASC"),
+	@NamedQuery(name = "selectMaxFromRoomsByOrganisation", query = "select c from Rooms_Organisation as c "
+			+ "where c.organisation.organisation_id = :organisation_id "
+			+ "AND c.deleted <> :deleted"),
+	@NamedQuery(name = "getRoomsOrganisationByOrganisationIdAndRoomId", query = "select c from RoomOrganisation as c "
+			+ "where c.room.rooms_id = :rooms_id "
+			+ "AND c.organisation.organisation_id = :organisation_id "
+			+ "AND c.deleted <> :deleted"),
+	@NamedQuery(name = "getRoomsOrganisationByRoomsId", query = "select c from RoomOrganisation as c "
+			+ "where c.room.rooms_id = :rooms_id "
+			+ "AND c.deleted <> :deleted")
+})
+@Table(name = "rooms_organisation")
+@Root(name="room_organisation")
+public class RoomOrganisation implements Serializable {
+	private static final long serialVersionUID = 4153935045968138984L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name="id")
+	@Element(data=true)
+	private Long rooms_organisation_id;
+	
+	@ManyToOne(fetch = FetchType.LAZY)
+	@JoinColumn(name="rooms_id", nullable=true)
+	@ForeignKey(enabled = true)
+	@Element(name="rooms_id", data=true, required=false)
+	private Room room;
+	
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name="organisation_id", nullable=true)
+	@ForeignKey(enabled = true)
+	@Element(name="organisation_id", data=true, required=false)
+	private Organisation organisation;
+	
+	@Column(name = "starttime")
+	private Date starttime;
+	
+	@Column(name = "updatetime")
+	private Date updatetime;
+	
+	@Column(name = "deleted")
+	@Element(data=true)
+	private boolean deleted;
+
+	public RoomOrganisation(Organisation org) {
+		this.organisation = org;
+	}
+
+	public RoomOrganisation() {
+	}
+
+	public Organisation getOrganisation() {
+		return organisation;
+	}
+	public void setOrganisation(Organisation organisation) {
+		this.organisation = organisation;
+	}
+	
+	public Room getRoom() {
+		return room;
+	}
+	public void setRoom(Room room) {
+		this.room = room;
+	}
+
+	public Long getRooms_organisation_id() {
+		return rooms_organisation_id;
+	}
+	public void setRooms_organisation_id(Long rooms_organisation_id) {
+		this.rooms_organisation_id = rooms_organisation_id;
+	}
+    
+	public Date getStarttime() {
+		return starttime;
+	}
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+    
+	public Date getUpdatetime() {
+		return updatetime;
+	}
+	public void setUpdatetime(Date updatetime) {
+		this.updatetime = updatetime;
+	}	
+	
+	public boolean getDeleted() {
+		return deleted;
+	}
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/room/RoomPoll.java b/src/db/java/org/apache/openmeetings/db/entity/room/RoomPoll.java
new file mode 100644
index 0000000..5f87710
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/room/RoomPoll.java
@@ -0,0 +1,230 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.room;
+
+import java.util.Date;
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.OneToMany;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.user.User;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.ElementList;
+import org.simpleframework.xml.Root;
+
+@Entity
+@NamedQueries({
+	@NamedQuery(name = "closePoll", query = "UPDATE RoomPoll rp SET rp.archived = :archived " +
+			"WHERE rp.room.rooms_id = :rooms_id"),
+	@NamedQuery(name = "deletePoll", query = "DELETE FROM RoomPoll rp WHERE rp.roomPollId = :roomPollId"),
+	@NamedQuery(name = "getPoll", query = "SELECT rp FROM RoomPoll rp " +
+			"WHERE rp.room.rooms_id = :room_id AND rp.archived = :archived"),
+	@NamedQuery(name = "getPollListBackup", query = "SELECT rp FROM RoomPoll rp ORDER BY rp.roomPollId"),
+	@NamedQuery(name = "getArchivedPollList", query = "SELECT rp FROM RoomPoll rp " +
+			"WHERE rp.room.rooms_id = :room_id AND rp.archived = :archived"),
+	@NamedQuery(name = "hasPoll", query = "SELECT COUNT(rp) FROM RoomPoll rp " +
+			"WHERE rp.room.rooms_id = :room_id AND rp.archived = :archived")
+})
+@Table(name = "room_polls")
+@Root(name="roompoll")
+public class RoomPoll {
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "id")
+	private Long roomPollId;
+	
+	@Column(name = "poll_name")
+	@Element(name="pollname", data=true, required=false)
+	private String pollName;
+	
+	@Column(name = "poll_question")
+	@Element(name="pollquestion", data=true, required=false)
+	private String pollQuestion;
+	
+	@Column(name = "created")
+	@Element(data=true, required=false)
+	private Date created;
+	
+	@Column(name = "archived")
+	@Element(data=true, required=false)
+	private boolean archived;
+	
+	@OneToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "poll_type_id")
+	@ForeignKey(enabled = true)
+	@Element(name="polltypeid", data=true, required=false)
+	private PollType pollType;
+	
+	@OneToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "users_id")
+	@ForeignKey(enabled = true)
+	@Element(name="createdbyuserid", data=true, required=false)
+	private User createdBy;
+	
+	@OneToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "rooms_id")
+	@ForeignKey(enabled = true)
+	@Element(name="roomid", data=true, required=false)
+	private Room room;
+	
+	@OneToMany(fetch = FetchType.EAGER, cascade=CascadeType.ALL)
+	@JoinColumn(name = "room_poll_id")
+	@ElementList(name="roompollanswers", required=false)
+	private List<RoomPollAnswers> roomPollAnswerList;
+
+	/**
+	 * @return the createdBy
+	 */
+	public User getCreatedBy() {
+		return createdBy;
+	}
+
+	/**
+	 * @param createdBy
+	 *            the createdBy to set
+	 */
+	public void setCreatedBy(User createdBy) {
+		this.createdBy = createdBy;
+	}
+
+	/**
+	 * @return the created
+	 */
+	public Date getCreated() {
+		return created;
+	}
+
+	/**
+	 * @param created
+	 *            the created to set
+	 */
+	public void setCreated(Date created) {
+		this.created = created;
+	}
+
+	/**
+	 * @return the pollQuestion
+	 */
+	public String getPollQuestion() {
+		return pollQuestion;
+	}
+
+	/**
+	 * @param pollQuestion
+	 *            the pollQuestion to set
+	 */
+	public void setPollQuestion(String pollQuestion) {
+		this.pollQuestion = pollQuestion;
+	}
+
+	/**
+	 * @return the roomPollAnswerList
+	 */
+	public List<RoomPollAnswers> getRoomPollAnswerList() {
+		if (roomPollAnswerList == null) {
+			roomPollAnswerList = new LinkedList<RoomPollAnswers>();
+		}
+		return roomPollAnswerList;
+	}
+
+	/**
+	 * @param roomPollAnswerList
+	 *            the roomPollAnswerList to set
+	 */
+	public void setRoomPollAnswerList(List<RoomPollAnswers> roomPollAnswerList) {
+		this.roomPollAnswerList = roomPollAnswerList;
+	}
+
+	/**
+	 * @return the roomPollId
+	 */
+	public Long getRoomPollId() {
+		return roomPollId;
+	}
+
+	/**
+	 * @param roomPollId
+	 *            the roomPollId to set
+	 */
+	public void setRoomPollId(Long roomPollId) {
+		this.roomPollId = roomPollId;
+	}
+
+	/**
+	 * @return the pollTypeId
+	 */
+	public PollType getPollType() {
+		return pollType;
+	}
+
+	public void setPollType(PollType pollType) {
+		this.pollType = pollType;
+	}
+
+	public Room getRoom() {
+		return room;
+	}
+
+	public void setRoom(Room room) {
+		this.room = room;
+	}
+
+	/**
+	 * @return the archived
+	 */
+	public boolean isArchived() {
+		return archived;
+	}
+
+	/**
+	 * @param archived the archived to set
+	 */
+	public void setArchived(boolean archived) {
+		this.archived = archived;
+	}
+
+	/**
+	 * @return the pollName
+	 */
+	public String getPollName() {
+		return pollName;
+	}
+
+	/**
+	 * @param pollName the pollName to set
+	 */
+	public void setPollName(String pollName) {
+		this.pollName = pollName;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/room/RoomPollAnswers.java b/src/db/java/org/apache/openmeetings/db/entity/room/RoomPollAnswers.java
new file mode 100644
index 0000000..8ab0489
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/room/RoomPollAnswers.java
@@ -0,0 +1,153 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.room;
+
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.user.User;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
+
+@Entity
+@NamedQueries({
+	@NamedQuery(name = "hasVoted", query = "SELECT rpa FROM RoomPollAnswers rpa "
+				+ "WHERE rpa.roomPoll.room.rooms_id = :room_id " +
+				"AND rpa.votedUser.user_id = :userid AND rpa.roomPoll.archived = :archived")
+})
+@Table(name = "room_poll_answers")
+@Root(name="roompollanswer")
+public class RoomPollAnswers {
+	
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "id")
+	private Long id;
+	
+	@OneToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "users_id")
+	@ForeignKey(enabled = true)
+	@Element(name="voteduserid", data=false, required=false)
+	private User votedUser;
+	
+	@Column(name = "answer")
+	@Element(data=false, required=false)
+	private Boolean answer;
+	
+	@Column(name = "pointList")
+	@Element(name="pointlist", data=false, required=false)
+	private Integer pointList;
+	
+	@Column(name = "voteDate")
+	@Element(name="votedate", data=false)
+	private Date voteDate;
+	
+	@OneToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "room_poll_id")
+	private RoomPoll roomPoll;
+	
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	/**
+	 * @return the answer
+	 */
+	public Boolean getAnswer() {
+		return answer;
+	}
+
+	/**
+	 * @param answer
+	 *            the answer to set
+	 */
+	public void setAnswer(Boolean answer) {
+		this.answer = answer;
+	}
+
+	/**
+	 * @return the pointList
+	 */
+	public Integer getPointList() {
+		return pointList;
+	}
+
+	/**
+	 * @param pointList
+	 *            the pointList to set
+	 */
+	public void setPointList(Integer pointList) {
+		this.pointList = pointList;
+	}
+
+	/**
+	 * @return the voteDate
+	 */
+	public Date getVoteDate() {
+		return voteDate;
+	}
+
+	/**
+	 * @param voteDate
+	 *            the voteDate to set
+	 */
+	public void setVoteDate(Date voteDate) {
+		this.voteDate = voteDate;
+	}
+
+	/**
+	 * @return the votedClient
+	 */
+	public User getVotedUser() {
+		return votedUser;
+	}
+
+	/**
+	 * @param votedClient
+	 *            the votedClient to set
+	 */
+	public void setVotedUser(User votedUser) {
+		this.votedUser = votedUser;
+	}
+
+	public RoomPoll getRoomPoll() {
+		return roomPoll;
+	}
+
+	public void setRoomPoll(RoomPoll roomPoll) {
+		this.roomPoll = roomPoll;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/room/RoomType.java b/src/db/java/org/apache/openmeetings/db/entity/room/RoomType.java
new file mode 100644
index 0000000..a9b2b17
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/room/RoomType.java
@@ -0,0 +1,121 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.room;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+
+import org.apache.openmeetings.db.entity.label.Fieldlanguagesvalues;
+import org.simpleframework.xml.Element;
+
+@Entity
+@NamedQueries({
+	@NamedQuery(name = "getAllRoomTypes", query = "select c from RoomType as c where c.deleted <> :deleted"),
+	@NamedQuery(name = "getRoomTypesById", query = "select c from RoomType as c " +
+			"where c.roomtypes_id = :roomtypes_id AND c.deleted <> :deleted")
+})
+@Table(name = "roomtype")
+public class RoomType implements Serializable {
+	private static final long serialVersionUID = -4441029424324591356L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name="id")
+	private Long roomtypes_id;
+	
+	@Column(name = "starttime")
+	private Date starttime;
+	
+	@Column(name = "updatetime")
+	private Date updatetime;
+	
+	@Column(name="name")
+	private String name;
+	
+	@Column(name = "deleted")
+	private boolean deleted;
+	
+	@Column(name="fieldvalues_id")
+	@Element(data=true, required=false)
+	private Long fieldvalues_id;
+	
+	@Transient
+	private Fieldlanguagesvalues label;	
+
+    
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+    
+	public Long getRoomtypes_id() {
+		return roomtypes_id;
+	}
+	public void setRoomtypes_id(Long roomtypes_id) {
+		this.roomtypes_id = roomtypes_id;
+	}
+    
+	public Date getStarttime() {
+		return starttime;
+	}
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+    
+	public Date getUpdatetime() {
+		return updatetime;
+	}
+	public void setUpdatetime(Date updatetime) {
+		this.updatetime = updatetime;
+	}	
+	
+	public boolean getDeleted() {
+		return deleted;
+	}
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	public Long getFieldvalues_id() {
+		return fieldvalues_id;
+	}
+	public void setFieldvalues_id(Long fieldvalues_id) {
+		this.fieldvalues_id = fieldvalues_id;
+	}
+
+	public Fieldlanguagesvalues getLabel() {
+		return label;
+	}
+
+	public void setLabel(Fieldlanguagesvalues label) {
+		this.label = label;
+	}	
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/room/Whiteboard.java b/src/db/java/org/apache/openmeetings/db/entity/room/Whiteboard.java
new file mode 100644
index 0000000..17a274d
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/room/Whiteboard.java
@@ -0,0 +1,131 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.room;
+
+import java.util.Calendar;
+import java.util.Collection;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+
+import org.apache.openjpa.persistence.jdbc.ElementJoinColumn;
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+
+@Entity
+@Table(name = "whiteboard")
+public class Whiteboard {
+
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "id")
+	private long id;
+
+	@Column(name = "room_id")
+	private Integer roomId = 0;
+
+	@Column(name = "x")
+	private Integer x = 0;
+
+	@Column(name = "y")
+	private Integer y = 0;
+
+	@Column(name = "zoom")
+	private Integer zoom = 100;
+
+	@Column(name = "full_fit")
+	private Boolean fullFit;
+
+	@Column(name = "created")
+	private Calendar created;
+
+	@OneToMany
+	@ElementJoinColumn(name = "whiteboarditem_id", referencedColumnName = "id")
+	@ForeignKey(enabled = true)
+	private Collection<WhiteboardItem> roomItems;
+
+	public long getId() {
+		return id;
+	}
+
+	public void setId(long id) {
+		this.id = id;
+	}
+
+	public Integer getX() {
+		return x;
+	}
+
+	public void setX(Integer x) {
+		this.x = x;
+	}
+
+	public Integer getY() {
+		return y;
+	}
+
+	public void setY(Integer y) {
+		this.y = y;
+	}
+
+	public Integer getZoom() {
+		return zoom;
+	}
+
+	public void setZoom(Integer zoom) {
+		this.zoom = zoom;
+	}
+
+	public Boolean getFullFit() {
+		return fullFit;
+	}
+
+	public void setFullFit(Boolean fullFit) {
+		this.fullFit = fullFit;
+	}
+
+	public Calendar getCreated() {
+		return created;
+	}
+
+	public void setCreated(Calendar created) {
+		this.created = created;
+	}
+
+	public Integer getRoomId() {
+		return roomId;
+	}
+
+	public void setRoomId(Integer roomId) {
+		this.roomId = roomId;
+	}
+
+	public Collection<WhiteboardItem> getRoomItems() {
+		return roomItems;
+	}
+
+	public void setRoomItems(Collection<WhiteboardItem> roomItems) {
+		this.roomItems = roomItems;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/room/WhiteboardItem.java b/src/db/java/org/apache/openmeetings/db/entity/room/WhiteboardItem.java
new file mode 100644
index 0000000..fd97ac7
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/room/WhiteboardItem.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.room;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "whiteboard_item")
+public class WhiteboardItem {
+	
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "id")
+	private long id;
+	
+	@Column(name = "keyx")
+	private String key;
+	
+	@Column(name = "value")
+	private String value;
+
+	public long getId() {
+		return id;
+	}
+
+	public void setId(long id) {
+		this.id = id;
+	}
+
+	public String getKey() {
+		return key;
+	}
+
+	public void setKey(String key) {
+		this.key = key;
+	}
+
+	public String getValue() {
+		return value;
+	}
+
+	public void setValue(String value) {
+		this.value = value;
+	}
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/server/LdapConfig.java b/src/db/java/org/apache/openmeetings/db/entity/server/LdapConfig.java
new file mode 100644
index 0000000..daaa050
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/server/LdapConfig.java
@@ -0,0 +1,185 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.server;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.Lob;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.apache.openmeetings.db.entity.user.User;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
+
+@Entity
+@NamedQueries({
+	@NamedQuery(name="getNondeletedLdapConfigs", query="SELECT u FROM LdapConfig u WHERE u.deleted = false")
+	, @NamedQuery(name="getActiveLdapConfigs", query="SELECT c FROM LdapConfig c WHERE c.deleted = false AND c.isActive = :isActive ORDER BY c.ldapConfigId")
+})
+@Table(name = "ldapconfig")
+@Root(name="ldapconfig")
+public class LdapConfig implements Serializable, IDataProviderEntity {
+	private static final long serialVersionUID = 2839158519803993035L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name="id")
+	public long ldapConfigId = 0L;
+	
+	@Column(name="name")
+	@Element(data=true)
+	public String name;
+	
+	@Column(name="config_file_name")
+	@Element(data=true, required = false)
+	public String configFileName;
+	
+	@Column(name="add_domain_to_user_name")
+	@Element(data=true)
+	public boolean addDomainToUserName;
+	
+	@Column(name="domain")
+	@Element(data=true, required = false)
+	public String domain;
+	
+	@Column(name="is_active")
+	@Element(data=true)
+	public boolean isActive;
+	
+	@Column(name="inserted")
+	public Date inserted;
+	
+	@Column(name="updated")
+	public Date updated;
+	
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name="insertedby_id", updatable=true, insertable=true)
+	@ForeignKey(enabled = true)
+	public User insertedby;
+	
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name="updatedby_id", updatable=true, insertable=true)
+	@ForeignKey(enabled = true)
+	public User updatedby;
+	
+	@Column(name="deleted")
+	private boolean deleted;
+	
+	@Lob
+	@Column(name = "comment_field", length = 2048)
+	@Element(data = true, required = false)
+	private String comment;
+
+	public long getLdapConfigId() {
+		return ldapConfigId;
+	}
+	public void setLdapConfigId(long ldapConfigId) {
+		this.ldapConfigId = ldapConfigId;
+	}
+    
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+    
+	public String getConfigFileName() {
+		return configFileName;
+	}
+	public void setConfigFileName(String configFileName) {
+		this.configFileName = configFileName;
+	}
+    
+	public boolean getAddDomainToUserName() {
+		return addDomainToUserName;
+	}
+	public void setAddDomainToUserName(boolean addDomainToUserName) {
+		this.addDomainToUserName = addDomainToUserName;
+	}
+    
+	public String getDomain() {
+		return domain;
+	}
+	public void setDomain(String domain) {
+		this.domain = domain;
+	}
+    
+	public boolean getIsActive() {
+		return isActive;
+	}
+	public void setIsActive(boolean isActive) {
+		this.isActive = isActive;
+	}
+	
+	public Date getInserted() {
+		return inserted;
+	}
+	public void setInserted(Date inserted) {
+		this.inserted = inserted;
+	}
+	
+	public Date getUpdated() {
+		return updated;
+	}
+	public void setUpdated(Date updated) {
+		this.updated = updated;
+	}
+	
+	public User getInsertedby() {
+		return insertedby;
+	}
+	public void setInsertedby(User insertedby) {
+		this.insertedby = insertedby;
+	}
+	
+	public User getUpdatedby() {
+		return updatedby;
+	}
+	public void setUpdatedby(User updatedby) {
+		this.updatedby = updatedby;
+	}
+	
+	public boolean getDeleted() {
+		return deleted;
+	}
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	public String getComment() {
+		return comment;
+	}
+
+	public void setComment(String comment) {
+		this.comment = comment;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/server/OAuthServer.java b/src/db/java/org/apache/openmeetings/db/entity/server/OAuthServer.java
new file mode 100644
index 0000000..cbe01ad
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/server/OAuthServer.java
@@ -0,0 +1,267 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.server;
+
+import java.io.Serializable;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
+
+@Entity
+@Table(name = "oauth_servers")
+@NamedQueries({
+		@NamedQuery(name = "getEnabledOAuthServers", query = "select s from OAuthServer as s where s.enabled = true and s.deleted = false"),
+		@NamedQuery(name = "getOAuthServerById", query = "select s from OAuthServer as s where s.id = :id"),
+		@NamedQuery(name = "getAllOAuthServers", query = "SELECT s FROM OAuthServer s WHERE s.deleted = false ORDER BY s.id"),
+		@NamedQuery(name = "countOAuthServers", query = "select count(s) from OAuthServer s WHERE s.deleted = false") })
+@Root
+public class OAuthServer implements Serializable, IDataProviderEntity {
+
+	private static final long serialVersionUID = -9034438721147720175L;
+
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "id")
+	@Element(data = true)
+	private Long id;
+	
+	@Column(name = "name")
+	@Element(data = true)
+	private String name;
+	
+	@Column(name = "icon_url")
+	@Element(data = true)
+	private String iconUrl;
+	
+	@Column(name = "enabled")
+	@Element(data = true)
+	private boolean enabled;
+	
+	@Column(name = "client_id")
+	@Element(data = true)
+	private String clientId;
+	
+	@Column(name = "client_secret")
+	@Element(data = true)
+	private String clientSecret;
+	
+	@Column(name = "request_key_url")
+	@Element(data = true)
+	private String requestKeyUrl;
+	
+	@Column(name = "request_token_url")
+	@Element(data = true)
+	private String requestTokenUrl;
+	
+	@Column(name = "request_token_attributes")
+	@Element(data = true)
+	private String requestTokenAttributes;
+	
+	@Column(name = "request_method")
+	@Element(data = true)
+	private RequestMethod requestTokenMethod;
+	
+	@Column(name = "request_info_url")
+	@Element(data = true)
+	private String requestInfoUrl;
+	
+	@Column(name = "login_param_name")
+	@Element(data = true)
+	private String loginParamName;
+	
+	@Column(name = "email_param_name")
+	@Element(data = true, required = false)
+	private String emailParamName;
+	
+	@Column(name = "firstname_param_name")
+	@Element(data = true, required = false)
+	private String firstnameParamName;
+	
+	@Column(name = "lastname_param_name")
+	@Element(data = true, required = false)
+	private String lastnameParamName;
+	
+	@Column(name = "deleted")
+	@Element(data = true)
+	private boolean deleted;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getIconUrl() {
+		return iconUrl;
+	}
+
+	public void setIconUrl(String iconUrl) {
+		this.iconUrl = iconUrl;
+	}
+
+	public boolean isEnabled() {
+		return enabled;
+	}
+
+	public void setEnabled(boolean enabled) {
+		this.enabled = enabled;
+	}
+
+	public String getClientId() {
+		return clientId;
+	}
+
+	public void setClientId(String clientId) {
+		this.clientId = clientId;
+	}
+
+	public String getClientSecret() {
+		return clientSecret;
+	}
+
+	public void setClientSecret(String clientSecret) {
+		this.clientSecret = clientSecret;
+	}
+
+	public String getRequestKeyUrl() {
+		return requestKeyUrl;
+	}
+
+	public void setRequestKeyUrl(String requestKeyUrl) {
+		this.requestKeyUrl = requestKeyUrl;
+	}
+
+	public String getRequestTokenUrl() {
+		return requestTokenUrl;
+	}
+
+	public void setRequestTokenUrl(String requestTokenUrl) {
+		this.requestTokenUrl = requestTokenUrl;
+	}
+
+	public String getRequestTokenAttributes() {
+		return requestTokenAttributes;
+	}
+
+	public void setRequestTokenAttributes(String requestTokenAttributes) {
+		this.requestTokenAttributes = requestTokenAttributes;
+	}
+
+	public RequestMethod getRequestTokenMethod() {
+		return requestTokenMethod;
+	}
+
+	public void setRequestTokenMethod(RequestMethod requestTokenMethod) {
+		this.requestTokenMethod = requestTokenMethod;
+	}
+
+	public String getRequestInfoUrl() {
+		return requestInfoUrl;
+	}
+
+	public void setRequestInfoUrl(String requestInfoUrl) {
+		this.requestInfoUrl = requestInfoUrl;
+	}
+
+	public String getLoginParamName() {
+		return loginParamName;
+	}
+
+	public void setLoginParamName(String loginParamName) {
+		this.loginParamName = loginParamName;
+	}
+
+	public String getEmailParamName() {
+		return emailParamName;
+	}
+
+	public void setEmailParamName(String emailParamName) {
+		this.emailParamName = emailParamName;
+	}
+
+	public String getFirstnameParamName() {
+		return firstnameParamName;
+	}
+
+	public void setFirstnameParamName(String firstnameParamName) {
+		this.firstnameParamName = firstnameParamName;
+	}
+
+	public String getLastnameParamName() {
+		return lastnameParamName;
+	}
+
+	public void setLastnameParamName(String lastnameParamName) {
+		this.lastnameParamName = lastnameParamName;
+	}
+
+	public boolean isDeleted() {
+		return deleted;
+	}
+
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	@Override
+	public String toString() {
+		return "OAuthServer [id=" + id + ", name=" + name + ", iconUrl=" + iconUrl + ", enabled=" + enabled
+				+ ", clientId=" + clientId + ", clientSecret=" + clientSecret + ", requestKeyUrl=" + requestKeyUrl
+				+ ", requestTokenUrl=" + requestTokenUrl + ", requestTokenAttributes=" + requestTokenAttributes
+				+ ", requestTokenMethod=" + requestTokenMethod + ", requestInfoUrl=" + requestInfoUrl
+				+ ", loginParamName=" + loginParamName + ", emailParamName=" + emailParamName + ", firstnameParamName="
+				+ firstnameParamName + ", lastnameParamName=" + lastnameParamName + ", deleted=" + deleted + "]";
+	}
+
+	public enum RequestMethod {
+		POST("post"), GET("get");
+
+		private String name;
+
+		private RequestMethod(String name) {
+			this.name = name;
+		}
+
+		@Override
+		public String toString() {
+			return name;
+		}
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/server/RemoteSessionObject.java b/src/db/java/org/apache/openmeetings/db/entity/server/RemoteSessionObject.java
new file mode 100644
index 0000000..1ab500c
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/server/RemoteSessionObject.java
@@ -0,0 +1,162 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.server;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.io.StringReader;
+import java.io.StringWriter;
+
+import org.red5.logging.Red5LoggerFactory;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
+import org.simpleframework.xml.Serializer;
+import org.simpleframework.xml.core.Persister;
+import org.slf4j.Logger;
+
+/**
+ * This Class is marshaled as an XML-Object and stored as a String in the DB to make
+ * it more easy to extend it
+ * 
+ * @author sebastianwagner
+ *
+ */
+@Root
+public class RemoteSessionObject {
+	private static final Logger log = Red5LoggerFactory.getLogger(RemoteSessionObject.class, webAppRootKey);
+	@Element(required = false)
+	private String username;
+	@Element(required = false)
+	private String firstname;
+	@Element(required = false)
+	private String lastname;
+	@Element(required = false)
+	private String pictureUrl;
+	@Element(required = false)
+	private String email;
+	@Element
+	private String externalUserId;
+	@Element
+	private String externalUserType;
+	
+	public RemoteSessionObject() {
+	}
+	
+	public RemoteSessionObject(String username, String firstname, String lastname,
+			String pictureUrl, String email) {
+		this(username, firstname, lastname, pictureUrl, email, "0", "");
+	}
+	
+	
+	/**
+	 * @param username
+	 * @param firstname
+	 * @param lastname
+	 * @param pictureUrl
+	 * @param email
+	 * @param externalUserId
+	 * @param externalUserType
+	 *
+	 * 06.09.2009 17:05:48
+	 * sebastianwagner
+	 * 
+	 * 
+	 */
+	public RemoteSessionObject(String username, String firstname,
+			String lastname, String pictureUrl, String email,
+			String externalUserId, String externalUserType) {
+		super();
+		this.username = username;
+		this.firstname = firstname;
+		this.lastname = lastname;
+		this.pictureUrl = pictureUrl;
+		this.email = email;
+		this.externalUserId = externalUserId;
+		this.externalUserType = externalUserType;
+	}
+
+	public String getUsername() {
+		return username;
+	}
+	public void setUsername(String username) {
+		this.username = username;
+	}
+	public String getFirstname() {
+		return firstname;
+	}
+	public void setFirstname(String firstname) {
+		this.firstname = firstname;
+	}
+	public String getLastname() {
+		return lastname;
+	}
+	public void setLastname(String lastname) {
+		this.lastname = lastname;
+	}
+	public String getPictureUrl() {
+		return pictureUrl;
+	}
+	public void setPictureUrl(String pictureUrl) {
+		this.pictureUrl = pictureUrl;
+	}
+	public String getEmail() {
+		return email;
+	}
+	public void setEmail(String email) {
+		this.email = email;
+	}
+
+	public String getExternalUserId() {
+		return externalUserId;
+	}
+	public void setExternalUserId(String externalUserId) {
+		this.externalUserId = externalUserId;
+	}
+
+	public String getExternalUserType() {
+		return externalUserType;
+	}
+	public void setExternalUserType(String externalUserType) {
+		this.externalUserType = externalUserType;
+	}
+
+	public String toXml() throws Exception {
+		StringWriter sw = new StringWriter();
+		Serializer serializer = new Persister();
+		serializer.write(this, sw);
+		return sw.toString();
+	}
+
+	public static RemoteSessionObject fromXml(String xml) {
+		Serializer serializer = new Persister();
+		try {
+			return serializer.read(RemoteSessionObject.class, new StringReader(xml));
+		} catch (Exception e) {
+			log.error("Unexpected error while restoring object from XML: " + xml, e);
+		}
+		return null;
+	}
+	
+	@Override
+	public String toString() {
+		return "RemoteSessionObject [username=" + username + ", firstname=" + firstname + ", lastname=" + lastname
+				+ ", pictureUrl=" + pictureUrl + ", email=" + email + ", externalUserId=" + externalUserId
+				+ ", externalUserType=" + externalUserType + "]";
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java b/src/db/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
new file mode 100644
index 0000000..a74b46c
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
@@ -0,0 +1,187 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.server;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "soaplogin")
+public class SOAPLogin implements Serializable {
+	private static final long serialVersionUID = 5101010700038221434L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name="id")
+	private long soapLoginId;
+	
+	@Column(name="hash")
+	private String hash;
+	
+	@Column(name="room_id")
+	private Long room_id;
+	
+	@Column(name="session_hash")
+	private String sessionHash;
+	
+	@Column(name="created")
+	private Date created;
+	
+	@Column(name="used")
+	private boolean used;
+	
+	@Column(name="use_date")
+	private Date useDate;
+	
+	@Column(name="becomemoderator")
+	private boolean becomemoderator;
+	
+	@Column(name="showaudiovideotest")
+	private boolean showAudioVideoTest;
+	
+	@Column(name="allow_same_url_multiple_times")
+	private boolean allowSameURLMultipleTimes;
+	
+	@Column(name="show_nick_name_dialog")
+	private boolean showNickNameDialog;
+	
+	@Column(name="client_url")
+	private String clientURL;
+	
+	@Column(name="room_recording_id")
+	private Long roomRecordingId;
+	
+	@Column(name="landing_zone")
+	private String landingZone;
+	
+	@Column(name="allow_recording")
+	private boolean allowRecording;
+	
+	public long getSoapLoginId() {
+		return soapLoginId;
+	}
+	public void setSoapLoginId(long soapLoginId) {
+		this.soapLoginId = soapLoginId;
+	}
+	
+	public String getHash() {
+		return hash;
+	}
+	public void setHash(String hash) {
+		this.hash = hash;
+	}
+	
+	public Long getRoom_id() {
+		return room_id;
+	}
+	public void setRoom_id(Long room_id) {
+		this.room_id = room_id;
+	}
+	
+	public String getSessionHash() {
+		return sessionHash;
+	}
+	public void setSessionHash(String sessionHash) {
+		this.sessionHash = sessionHash;
+	}
+	
+	public Date getCreated() {
+		return created;
+	}
+	public void setCreated(Date created) {
+		this.created = created;
+	}
+	
+	public boolean getUsed() {
+		return used;
+	}
+	public void setUsed(boolean used) {
+		this.used = used;
+	}
+	
+	public Date getUseDate() {
+		return useDate;
+	}
+	public void setUseDate(Date useDate) {
+		this.useDate = useDate;
+	}
+	
+	public boolean getBecomemoderator() {
+		return becomemoderator;
+	}
+	public void setBecomemoderator(boolean becomemoderator) {
+		this.becomemoderator = becomemoderator;
+	}
+	
+	public boolean getShowAudioVideoTest() {
+		return showAudioVideoTest;
+	}
+	public void setShowAudioVideoTest(boolean showAudioVideoTest) {
+		this.showAudioVideoTest = showAudioVideoTest;
+	}
+	
+	public boolean getAllowSameURLMultipleTimes() {
+		return allowSameURLMultipleTimes;
+	}
+	public void setAllowSameURLMultipleTimes(boolean allowSameURLMultipleTimes) {
+		this.allowSameURLMultipleTimes = allowSameURLMultipleTimes;
+	}
+
+	public boolean getShowNickNameDialog() {
+		return showNickNameDialog;
+	}
+	public void setShowNickNameDialog(boolean showNickNameDialog) {
+		this.showNickNameDialog = showNickNameDialog;
+	}
+	
+	public String getClientURL() {
+		return clientURL;
+	}
+	public void setClientURL(String clientURL) {
+		this.clientURL = clientURL;
+	}
+	
+	public Long getRoomRecordingId() {
+		return roomRecordingId;
+	}
+	public void setRoomRecordingId(Long roomRecordingId) {
+		this.roomRecordingId = roomRecordingId;
+	}
+	
+	public String getLandingZone() {
+		return landingZone;
+	}
+	public void setLandingZone(String landingZone) {
+		this.landingZone = landingZone;
+	}
+	
+	public boolean getAllowRecording() {
+		return allowRecording;
+	}
+	public void setAllowRecording(boolean allowRecording) {
+		this.allowRecording = allowRecording;
+	}
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/server/Server.java b/src/db/java/org/apache/openmeetings/db/entity/server/Server.java
new file mode 100644
index 0000000..527f2df
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/server/Server.java
@@ -0,0 +1,290 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.db.entity.server;

+

+import java.io.Serializable;

+import java.util.Calendar;

+import java.util.Date;

+

+import javax.persistence.Column;

+import javax.persistence.Entity;

+import javax.persistence.FetchType;

+import javax.persistence.GeneratedValue;

+import javax.persistence.GenerationType;

+import javax.persistence.Id;

+import javax.persistence.JoinColumn;

+import javax.persistence.Lob;

+import javax.persistence.ManyToOne;

+import javax.persistence.NamedQueries;

+import javax.persistence.NamedQuery;

+import javax.persistence.Table;

+

+import org.apache.openjpa.persistence.jdbc.ForeignKey;

+import org.apache.openmeetings.db.entity.IDataProviderEntity;

+import org.apache.openmeetings.db.entity.user.User;

+import org.simpleframework.xml.Element;

+import org.simpleframework.xml.Root;

+

+@Entity

+@NamedQueries({

+		@NamedQuery(name = "getAllServers", query = "SELECT s FROM Server s WHERE s.deleted = false ORDER BY s.id"),

+		@NamedQuery(name = "getServerCount", query = "SELECT COUNT(s) FROM Server s WHERE s.deleted = false"),

+		@NamedQuery(name = "getServerById", query = "SELECT s FROM Server s LEFT JOIN FETCH s.insertedby LEFT JOIN FETCH s.updatedby WHERE s.deleted = false AND s.id = :id"),

+		@NamedQuery(name = "getServerByName", query = "SELECT s FROM Server s WHERE s.deleted = false AND s.name LIKE :name"),

+		@NamedQuery(name = "getServerByAddress", query = "SELECT s FROM Server s WHERE s.deleted = false AND s.address LIKE :address"),

+		@NamedQuery(name = "getServersWithNoUsers", query = "SELECT s FROM Server s WHERE s.deleted = false AND s.id NOT IN (SELECT u.server.id FROM User u where u.server.id IS NOT NULL)"),

+		@NamedQuery(name = "getServerWithMinimumUsers", query = "SELECT s.id, COUNT(u) AS cnt FROM User u JOIN u.server s WHERE s.deleted = false GROUP BY s.id ORDER BY cnt"),

+		@NamedQuery(name = "getActiveServers", query = "SELECT s FROM Server s WHERE s.deleted = false AND s.active = true") //

+})

+@Table(name = "server")

+@Root

+public class Server implements Serializable, IDataProviderEntity {

+

+	private static final long serialVersionUID = -6822732074549167727L;

+

+	@Id

+	@GeneratedValue(strategy = GenerationType.IDENTITY)

+	@Column(name = "id")

+	@Element(data = true)

+	private long id = 0;

+

+	@Column(name = "name")

+	@Element(data = true)

+	private String name;

+

+	@Column(name = "address")

+	@Element(data = true)

+	private String address;

+

+	@Column(name = "inserted")

+	public Date inserted;

+

+	@Column(name = "updated")

+	public Date updated;

+

+	@ManyToOne(fetch = FetchType.LAZY)

+	@JoinColumn(name = "insertedby_id", updatable = true, insertable = true)

+	@ForeignKey(enabled = true)

+	public User insertedby;

+

+	@ManyToOne(fetch = FetchType.LAZY)

+	@JoinColumn(name = "updatedby_id", updatable = true, insertable = true)

+	@ForeignKey(enabled = true)

+	public User updatedby;

+

+	@Lob

+	@Column(name = "comment_field", length = 2048)

+	@Element(data = true, required = false)

+	private String comment;

+

+	@Column(name = "last_ping", nullable = true)

+	@Element(data = true, required = false)

+	private Calendar lastPing;

+	

+	@Column(name = "port", nullable = true)

+	@Element(data = true, required = false)

+	private int port;

+

+	@Column(name = "protocol", nullable = true)

+	@Element(data = true, required = false)

+	private String protocol;

+

+	@Column(name = "webapp", nullable = true)

+	@Element(data = true, required = false)

+	private String webapp;

+

+	@Column(name = "login", nullable = true)

+	@Element(data = true, required = false)

+	private String user;

+

+	@Column(name = "pass", nullable = true)

+	@Element(data = true, required = false)

+	private String pass;

+

+	@Column(name = "active", nullable = true)

+	@Element(data = true, required = false)

+	private boolean active;

+	

+	@Column(name = "deleted", nullable = false)

+	@Element(data = true)

+	private boolean deleted = false;

+

+	public Long getId() {

+		return id;

+	}

+

+	public void setId(Long id) {

+		this.id = id;

+	}

+

+	public String getName() {

+		return name;

+	}

+

+	public void setName(String name) {

+		this.name = name;

+	}

+

+	public String getAddress() {

+		return address;

+	}

+

+	public void setAddress(String address) {

+		this.address = address;

+	}

+

+	public boolean isDeleted() {

+		return deleted;

+	}

+

+	public void setDeleted(boolean deleted) {

+		this.deleted = deleted;

+	}

+

+	public Date getInserted() {

+		return inserted;

+	}

+

+	public void setInserted(Date inserted) {

+		this.inserted = inserted;

+	}

+

+	public Date getUpdated() {

+		return updated;

+	}

+

+	public void setUpdated(Date updated) {

+		this.updated = updated;

+	}

+

+	public User getInsertedby() {

+		return insertedby;

+	}

+

+	public void setInsertedby(User insertedby) {

+		this.insertedby = insertedby;

+	}

+

+	public User getUpdatedby() {

+		return updatedby;

+	}

+

+	public void setUpdatedby(User updatedby) {

+		this.updatedby = updatedby;

+	}

+

+	public String getComment() {

+		return comment;

+	}

+

+	public void setComment(String comment) {

+		this.comment = comment;

+	}

+	

+	public Calendar getLastPing() {

+		return lastPing;

+	}

+

+	public void setLastPing(Calendar lastPing) {

+		this.lastPing = lastPing;

+	}

+

+	public int getPort() {

+		return port;

+	}

+

+	public void setPort(int port) {

+		this.port = port;

+	}

+

+	public String getProtocol() {

+		return protocol;

+	}

+

+	public void setProtocol(String protocol) {

+		this.protocol = protocol;

+	}

+

+	public String getWebapp() {

+		return webapp;

+	}

+

+	public void setWebapp(String webapp) {

+		this.webapp = webapp;

+	}

+

+	public String getUser() {

+		return user;

+	}

+

+	public void setUser(String user) {

+		this.user = user;

+	}

+

+	public String getPass() {

+		return pass;

+	}

+

+	public void setPass(String pass) {

+		this.pass = pass;

+	}

+

+	public void setId(long id) {

+		this.id = id;

+	}

+

+	public boolean isActive() {

+		return active;

+	}

+

+	public void setActive(boolean active) {

+		this.active = active;

+	}

+

+	@Override

+	public boolean equals(Object obj) {

+		if (obj == null) {

+			return false;

+		}

+		if (!(obj instanceof Server)) {

+			return false;

+		} else {

+			Server s = (Server)obj;

+			return s.id == id && ((s.address != null && s.address.equals(address)) || (s.address == null && s.address == address));

+		}

+	}

+	

+	@Override

+	public int hashCode() {

+		final int prime = 31;

+		int result = 1;

+		result = prime * result + (int)id + (address == null ? 0 : address.hashCode());

+		return result;

+	}

+	

+	@Override

+	public String toString() {

+		return "Server [id=" + id + ", name=" + name + ", address=" + address

+				+ ", port=" + port + ", user=" + user + ", pass=" + pass

+				+ ", protocol=" + protocol 

+				+ ", active=" + active + ", webapp=" + webapp + ", deleted="

+				+ deleted + "]";

+	}

+

+}

diff --git a/src/db/java/org/apache/openmeetings/db/entity/server/Sessiondata.java b/src/db/java/org/apache/openmeetings/db/entity/server/Sessiondata.java
new file mode 100644
index 0000000..f878e10
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/server/Sessiondata.java
@@ -0,0 +1,144 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.server;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Lob;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+@Entity
+@NamedQueries({
+	@NamedQuery(name = "getSessionById", query = "select c from Sessiondata as c "
+					+ "where c.session_id LIKE :session_id"),
+	@NamedQuery(name = "getSessionToDelete", query = "Select c from Sessiondata c "
+					+ "WHERE c.refresh_time < :refresh_time " + "AND ( "
+					+ "c.storePermanent IS NULL " + "OR "
+					+ "c.storePermanent = false " + ")")
+})
+@Table(name = "sessiondata")
+public class Sessiondata implements Serializable {
+	private static final long serialVersionUID = 1928177917452866750L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name="id")
+	private Long id;
+	
+	@Column(name="user_id")
+	private Long user_id;
+	
+	@Column(name="session_id")
+	private String session_id;
+	
+	@Column(name="starttermin_time")
+	private Date starttermin_time;
+	
+	@Column(name="refresh_time")
+	private Date refresh_time;
+	
+	@Lob
+	@Column(name="sessionXml")
+	private String sessionXml;
+	
+	@Column(name="storePermanent")
+	private Boolean storePermanent;
+	
+	@Column(name="language_id")
+	private Long language_id;
+	
+	@Column(name="organization_id")
+	private Long organization_id;
+	
+	public Sessiondata() {
+		super();
+		// TODO Auto-generated constructor stub
+	}
+    
+    public Long getId() {
+        return id;
+    }
+    public void setId(Long id) {
+        this.id = id;
+    }
+    
+    public Date getRefresh_time() {
+        return refresh_time;
+    }
+    public void setRefresh_time(Date refresh_time) {
+        this.refresh_time = refresh_time;
+    }
+    
+    public String getSession_id() {
+        return session_id;
+    }
+    public void setSession_id(String session_id) {
+        this.session_id = session_id;
+    }
+    
+    public Date getStarttermin_time() {
+        return starttermin_time;
+    }
+    public void setStarttermin_time(Date starttermin_time) {
+        this.starttermin_time = starttermin_time;
+    }
+    
+    public Long getUser_id() {
+        return user_id;
+    }
+    public void setUser_id(Long user_id) {
+        this.user_id = user_id;
+    }
+
+	public String getSessionXml() {
+		return sessionXml;
+	}
+	public void setSessionXml(String sessionXml) {
+		this.sessionXml = sessionXml;
+	}
+
+	public Boolean getStorePermanent() {
+		return storePermanent;
+	}
+	public void setStorePermanent(Boolean storePermanent) {
+		this.storePermanent = storePermanent;
+	}
+
+	public Long getLanguage_id() {
+		return language_id;
+	}
+	public void setLanguage_id(Long language_id) {
+		this.language_id = language_id;
+	}
+
+	public Long getOrganization_id() {
+		return organization_id;
+	}
+	public void setOrganization_id(Long organization_id) {
+		this.organization_id = organization_id;
+	}
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/user/Address.java b/src/db/java/org/apache/openmeetings/db/entity/user/Address.java
new file mode 100644
index 0000000..2886737
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/user/Address.java
@@ -0,0 +1,208 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.user;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.Lob;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
+
+@Entity
+@Table(name = "address")
+@Root(name="address")
+public class Address implements Serializable {
+
+	private static final long serialVersionUID = 1387576041912128161L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "id")
+	private Long adresses_id;
+	
+	@Column(name = "additionalname")
+	@Element(data=true, required=false)
+	private String additionalname;
+	
+	@Lob
+	@Column(name = "comment_field", length=2048)
+	@Element(data=true, required=false)
+	private String comment;
+	
+	@Column(name = "fax")
+	@Element(data=true, required=false)
+	private String fax;
+	
+	@Column(name = "starttime")
+	@Element(data=true, required=false)
+	private Date starttime;
+	
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "state_id")
+	@Element(name="state_id", data=true, required=false)
+	private State states;
+	
+	@Column(name = "street")
+	@Element(data=true, required=false)
+	private String street;
+	
+	@Column(name = "town")
+	@Element(data=true, required=false)
+	private String town;
+	
+	@Column(name = "updatetime")
+	private Date updatetime;
+	
+	@Column(name = "zip")
+	@Element(data=true, required=false)
+	private String zip;
+	
+	@Column(name = "deleted")
+	private boolean deleted;
+
+	@Column(name = "email")
+	@Element(name="mail", data=true, required=false)
+	private String email;
+	
+	@Column(name = "phone")
+	@Element(data=true, required=false)
+	private String phone;
+
+	public String getAdditionalname() {
+		return additionalname;
+	}
+
+	public void setAdditionalname(String additionalname) {
+		this.additionalname = additionalname;
+	}
+
+	public Long getAdresses_id() {
+		return adresses_id;
+	}
+
+	public void setAdresses_id(Long adresses_id) {
+		this.adresses_id = adresses_id;
+	}
+
+	public String getComment() {
+		return comment;
+	}
+
+	public void setComment(String comment) {
+		this.comment = comment;
+	}
+
+	public String getFax() {
+		return fax;
+	}
+
+	public void setFax(String fax) {
+		this.fax = fax;
+	}
+
+	public Date getStarttime() {
+		return starttime;
+	}
+
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+
+	public State getStates() {
+		return states;
+	}
+
+	public void setStates(State states) {
+		this.states = states;
+	}
+
+	public String getStreet() {
+		return street;
+	}
+
+	public void setStreet(String street) {
+		this.street = street;
+	}
+
+	public String getTown() {
+		return town;
+	}
+
+	public void setTown(String town) {
+		this.town = town;
+	}
+
+	public Date getUpdatetime() {
+		return updatetime;
+	}
+
+	public void setUpdatetime(Date updatetime) {
+		this.updatetime = updatetime;
+	}
+
+	public String getZip() {
+		return zip;
+	}
+
+	public void setZip(String zip) {
+		this.zip = zip;
+	}
+
+	public boolean getDeleted() {
+		return deleted;
+	}
+
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	public String getEmail() {
+		return email;
+	}
+
+	public void setEmail(String email) {
+		this.email = email;
+	}
+
+	public String getPhone() {
+		return phone;
+	}
+
+	public void setPhone(String phone) {
+		this.phone = phone;
+	}
+
+	@Override
+	public String toString() {
+		return "Address [adresses_id=" + adresses_id + ", states=" + states
+				+ ", street=" + street + ", town=" + town + ", zip=" + zip
+				+ ", deleted=" + deleted + ", email=" + email + ", phone="
+				+ phone + "]";
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/user/AsteriskSipUser.java b/src/db/java/org/apache/openmeetings/db/entity/user/AsteriskSipUser.java
new file mode 100644
index 0000000..f95e934
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/user/AsteriskSipUser.java
@@ -0,0 +1,264 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.user;
+
+import java.io.Serializable;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
+
+@Entity
+@Table(name = "sipusers")
+@Root(name="asterisksipuser")
+public class AsteriskSipUser implements Serializable {
+	private static final long serialVersionUID = -565831761546365623L;
+	public enum Type {
+		friend,
+		user,
+		peer
+	}
+
+	@Id
+	@Column(name = "id")
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Element(data = true)
+	private long id;
+
+	@Column(name = "type", nullable = false, length=6)
+	@Enumerated(EnumType.STRING)
+	@Element(data=true, required=false)
+	private Type type = Type.friend;
+	
+	@Column(name = "name", nullable = false, length=128)
+	@Element(data=true, required=false)
+	private String name = ""; //	Varchar 128
+	
+	@Column(name = "secret", length=128)
+	@Element(data=true, required = false)
+	private String secret; //	Varchar 128
+	
+	@Column(name = "context", length=128)
+	@Element(data=true, required = false)
+	private String context; //	Varchar 128
+	
+	@Column(name = "host", nullable = false, length=128)
+	@Element(data=true, required = false)
+	private String host = "dynamic"; //	Varchar 128
+	
+	@Column(name = "ipaddr", nullable = false, length=128)
+	@Element(data=true, required=false)
+	private String ipaddr = ""; //	Varchar 128
+	
+	@Column(name = "port", nullable = false, length=8)
+	@Element(data=true, required=false)
+	private Integer port = 0; //	mediumint(8)
+	
+	@Column(name = "regseconds", nullable = false)
+	@Element(data=true, required = false)
+	private Long regseconds = 0L; //	Bigint
+	
+	@Column(name = "defaultuser", nullable = true, length=128)
+	@Element(data=true, required = false)
+	private String defaultuser; //	Varchar 128
+	
+	@Column(name = "fullcontact", length=512)
+	@Element(data=true, required = false)
+	private String fullcontact;
+	
+	@Column(name = "regserver", nullable = true, length=128)
+	@Element(data=true, required = false)
+	private String regserver; //	Varchar 128
+	
+	@Column(name = "useragent", nullable = true, length=128)
+	@Element(data=true, required = false)
+	private String useragent; //	Varchar 128
+	
+	@Column(name = "lastms")
+	@Element(data=true, required = false)
+	private Integer lastms; //	Integer
+	
+	@Column(name = "md5secret")
+	@Element(data=true, required = false)
+	private String md5secret;
+
+	@Column(name = "nat", nullable=false)
+	@Element(data=true, required = false)
+	private String nat = "force_rport,comedia";
+	
+	@Column(name = "callbackextension", nullable=true, length=250)
+	@Element(data=true, required = false)
+	private String callbackextension;
+
+	@Column(name = "allow", nullable=false, length=100)
+	@Element(data=true, required = false)
+	private String allow = "ulaw;alaw;h264";
+
+	public long getId() {
+		return id;
+	}
+
+	public void setId(long id) {
+		this.id = id;
+	}
+
+	public Type getType() {
+		return type;
+	}
+
+	public void setType(Type type) {
+		this.type = type;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getSecret() {
+		return secret;
+	}
+
+	public void setSecret(String secret) {
+		this.secret = secret;
+	}
+
+	public String getContext() {
+		return context;
+	}
+
+	public void setContext(String context) {
+		this.context = context;
+	}
+
+	public String getHost() {
+		return host;
+	}
+
+	public void setHost(String host) {
+		this.host = host;
+	}
+
+	public String getIpaddr() {
+		return ipaddr;
+	}
+
+	public void setIpaddr(String ipaddr) {
+		this.ipaddr = ipaddr;
+	}
+
+	public Integer getPort() {
+		return port;
+	}
+
+	public void setPort(Integer port) {
+		this.port = port;
+	}
+
+	public Long getRegseconds() {
+		return regseconds;
+	}
+
+	public void setRegseconds(Long regseconds) {
+		this.regseconds = regseconds;
+	}
+
+	public String getDefaultuser() {
+		return defaultuser;
+	}
+
+	public void setDefaultuser(String defaultuser) {
+		this.defaultuser = defaultuser;
+	}
+
+	public String getFullcontact() {
+		return fullcontact;
+	}
+
+	public void setFullcontact(String fullcontact) {
+		this.fullcontact = fullcontact;
+	}
+
+	public String getRegserver() {
+		return regserver;
+	}
+
+	public void setRegserver(String regserver) {
+		this.regserver = regserver;
+	}
+
+	public String getUseragent() {
+		return useragent;
+	}
+
+	public void setUseragent(String useragent) {
+		this.useragent = useragent;
+	}
+
+	public Integer getLastms() {
+		return lastms;
+	}
+
+	public void setLastms(Integer lastms) {
+		this.lastms = lastms;
+	}
+
+	public String getMd5secret() {
+		return md5secret;
+	}
+
+	public void setMd5secret(String md5secret) {
+		this.md5secret = md5secret;
+	}
+
+	public String getNat() {
+		return nat;
+	}
+
+	public void setNat(String nat) {
+		this.nat = nat;
+	}
+
+	public String getCallbackextension() {
+		return callbackextension;
+	}
+
+	public void setCallbackextension(String callbackextension) {
+		this.callbackextension = callbackextension;
+	}
+
+	public String getAllow() {
+		return allow;
+	}
+
+	public void setAllow(String allow) {
+		this.allow = allow;
+	}
+}
\ No newline at end of file
diff --git a/src/db/java/org/apache/openmeetings/db/entity/user/Organisation.java b/src/db/java/org/apache/openmeetings/db/entity/user/Organisation.java
new file mode 100644
index 0000000..5e67809
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/user/Organisation.java
@@ -0,0 +1,129 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.user;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
+
+@Entity
+@NamedQueries({
+	@NamedQuery(name="getOrganisationById",
+		query="SELECT c FROM Organisation AS c WHERE c.organisation_id = :organisation_id AND c.deleted = :deleted")
+	, @NamedQuery(name="getAnyOrganisationById",
+		query="SELECT c FROM Organisation AS c WHERE c.organisation_id = :organisation_id")
+	, @NamedQuery(name="getOrganisationsByUserId",
+		query="SELECT ou.organisation FROM User u, IN(u.organisation_users) ou WHERE u.deleted = false AND u.user_id = :user_id")
+	, @NamedQuery(name="getNondeletedOrganisations", query="SELECT o FROM Organisation o WHERE o.deleted = false ORDER BY o.organisation_id")
+	, @NamedQuery(name="countOrganisations", query="SELECT COUNT(c) FROM Organisation AS c WHERE c.deleted = false")
+})
+@Table(name = "organisation")
+@Root(name="organisation")
+public class Organisation implements Serializable, IDataProviderEntity {
+	private static final long serialVersionUID = 99123580264065654L;
+	
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name="id")
+	@Element(data=true)
+	private Long organisation_id;
+	
+	@Column(name="name")
+	@Element(data=true)
+	private String name;
+	
+	@Column(name="insertedby")
+	private Long insertedby;
+	
+	@Column(name="updatedby")
+	private Long updatedby;
+	
+	@Column(name="starttime")
+	private Date starttime;
+	
+	@Column(name="updatetime")
+	private Date updatetime;
+	
+	@Column(name="deleted")
+	@Element(data=true)
+	private boolean deleted;
+	
+
+	public Long getInsertedby() {
+		return insertedby;
+	}
+	public void setInsertedby(Long insertedby) {
+		this.insertedby = insertedby;
+	}
+
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Long getOrganisation_id() {
+		return organisation_id;
+	}
+	public void setOrganisation_id(Long organisation_id) {
+		this.organisation_id = organisation_id;
+	}
+
+	public Long getUpdatedby() {
+		return updatedby;
+	}
+	public void setUpdatedby(Long updatedby) {
+		this.updatedby = updatedby;
+	}	
+	
+    
+	public Date getStarttime() {
+		return starttime;
+	}
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+    
+	public Date getUpdatetime() {
+		return updatetime;
+	}
+	public void setUpdatetime(Date updatetime) {
+		this.updatetime = updatetime;
+	}
+	
+	public boolean getDeleted() {
+		return deleted;
+	}
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/user/Organisation_Users.java b/src/db/java/org/apache/openmeetings/db/entity/user/Organisation_Users.java
new file mode 100644
index 0000000..2ee14e9
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/user/Organisation_Users.java
@@ -0,0 +1,193 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.user;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
+
+@Entity
+@NamedQueries({
+	@NamedQuery(name="getOrganisation_UserByUserAndOrganisation",
+		query="SELECT ou FROM User u, IN(u.organisation_users) ou WHERE u.deleted = false AND u.user_id = :user_id AND ou.organisation.organisation_id = :organisation_id")
+	, @NamedQuery(name="deleteUsersFromOrganisation", query="DELETE FROM Organisation_Users c WHERE c.organisation.organisation_id = :id")
+	, @NamedQuery(name="countOrganisationUsers", query="SELECT COUNT(c) FROM Organisation_Users c WHERE c.organisation.organisation_id = :id")
+	, @NamedQuery(name="getOrganisationUsersById", query="SELECT c FROM Organisation_Users c WHERE c.organisation_users_id = :id")
+	, @NamedQuery(name="getOrganisationUsersByOrgId", query="SELECT c FROM Organisation_Users c WHERE c.organisation.organisation_id = :id")
+	, @NamedQuery(name="isUserInOrganization", query="SELECT c FROM Organisation_Users c WHERE c.organisation.organisation_id = :orgId AND c.user.user_id = :userId")
+})
+@Table(name = "organisation_users")
+@Root(name="user_organisation")
+public class Organisation_Users implements Serializable, IDataProviderEntity {
+	private static final long serialVersionUID = 7206870465903375817L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "id")
+	private Long organisation_users_id;
+
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "organisation_id", insertable = true, updatable = true)
+	@ForeignKey(enabled = true)
+	@Element(name="organisation_id", required=false)
+	private Organisation organisation;
+
+	// FIXME: Does not get updated if a new relation is stored in the user
+	@Column(name = "user_id")
+	private Long user_id;
+
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "user_id", insertable = true, updatable = true)
+	@ForeignKey(enabled = true)
+	private User user;
+	
+	@Column(name = "starttime")
+	private Date starttime;
+	
+	@Column(name = "updatetime")
+	private Date updatetime;
+	
+	@Column(name = "deleted")
+	@Element(data=true)
+	private boolean deleted;
+	
+	@Column(name = "is_moderator")
+	@Element(data=true, required=false)
+	private Boolean isModerator;
+	
+	public Organisation_Users() {
+	}
+	
+	public Organisation_Users(Organisation organisation) {
+		this.organisation = organisation;
+	}
+	
+	public Organisation getOrganisation() {
+		return organisation;
+	}
+
+	public void setOrganisation(Organisation organisation) {
+		this.organisation = organisation;
+	}
+
+	public Long getOrganisation_users_id() {
+		return organisation_users_id;
+	}
+
+	public void setOrganisation_users_id(Long organisation_users_id) {
+		this.organisation_users_id = organisation_users_id;
+	}
+
+	public Long getUser_id() {
+		return user_id;
+	}
+
+	public void setUser_id(Long user_id) {
+		this.user_id = user_id;
+	}
+
+	public Date getStarttime() {
+		return starttime;
+	}
+
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+
+	public Date getUpdatetime() {
+		return updatetime;
+	}
+
+	public void setUpdatetime(Date updatetime) {
+		this.updatetime = updatetime;
+	}
+
+	public boolean getDeleted() {
+		return deleted;
+	}
+
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	public Boolean getIsModerator() {
+		return isModerator;
+	}
+
+	public void setIsModerator(Boolean isModerator) {
+		this.isModerator = isModerator;
+	}
+
+	@Override
+	public int hashCode() {
+		final int prime = 31;
+		int result = 1;
+		result = prime
+				* result
+				+ ((organisation_users_id == null) ? 0 : organisation_users_id
+						.hashCode());
+		return result;
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+		if (this == obj) {
+			return true;
+		}
+		if (obj == null) {
+			return false;
+		}
+		if (obj instanceof Organisation_Users) {
+			Organisation_Users other = (Organisation_Users) obj;
+			if (organisation_users_id == null) {
+				if (other.organisation_users_id != null) {
+					return false;
+				}
+			} else if (!organisation_users_id.equals(other.organisation_users_id)) {
+				return false;
+			}
+		} else {
+			return false;
+		}
+		return true;
+	}
+
+	public User getUser() {
+		return user;
+	}
+
+	public void setUser(User user) {
+		this.user = user;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java b/src/db/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java
new file mode 100644
index 0000000..3dc2312
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java
@@ -0,0 +1,273 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.user;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.Lob;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
+
+@Entity
+@NamedQueries({
+	@NamedQuery(name = "getPrivateMessages", query = "SELECT c FROM PrivateMessage c ORDER BY c.id"),
+	@NamedQuery(name = "getPrivateMessageById", query = "SELECT c FROM PrivateMessage c WHERE c.id = :id "),
+	@NamedQuery(name = "updatePrivateMessagesReadStatus", query = "UPDATE PrivateMessage c SET c.isRead = :isRead " +
+			"WHERE c.id IN (:ids) "),
+	@NamedQuery(name = "moveMailsToFolder", query = "UPDATE PrivateMessage c SET c.folderId = :folderId " +
+			"WHERE c.id IN (:ids) "),
+	@NamedQuery(name = "deletePrivateMessages", query = "DELETE FROM PrivateMessage c WHERE c.id IN (:ids) "),
+	@NamedQuery(name = "getPrivateMessagesByRoom", query = "SELECT c FROM PrivateMessage c WHERE c.room.rooms_id = :roomId ")
+})
+@Table(name = "private_message")
+@Root(name = "privatemessage")
+public class PrivateMessage implements Serializable, IDataProviderEntity {
+	private static final long serialVersionUID = 1L;
+	public final static long INBOX_FOLDER_ID = 0;
+	public final static long SENT_FOLDER_ID = -1;
+	public final static long TRASH_FOLDER_ID = -2;
+
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "id")
+	@Element(data = true, name = "privateMessageId")
+	private long id;
+
+	@Column(name = "subject")
+	@Element(data = true, required = false)
+	private String subject;
+
+	@Lob
+	@Column(name = "message")
+	@Element(data = true, required = false)
+	private String message;
+
+	@Column(name = "inserted")
+	@Element(data = true)
+	private Date inserted;
+
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "from_id")
+	@ForeignKey(enabled = true)
+	@Element(data = true, required = false)
+	private User from;
+
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "to_id")
+	@ForeignKey(enabled = true)
+	@Element(data = true, required = false)
+	private User to;
+
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "owner_id")
+	@ForeignKey(enabled = true)
+	@Element(data = true, required = false)
+	private User owner;
+
+	@Column(name = "booked_room")
+	@Element(data = true)
+	private boolean bookedRoom;
+
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "rooms_id")
+	@ForeignKey(enabled = true)
+	@Element(data = true, required = false)
+	private Room room;
+
+	@Column(name = "is_read")
+	@Element(data = true)
+	private boolean isRead;
+
+	@Element(data = true)
+	private boolean isTrash;
+
+	@Column(name = "parent_message_id")
+	@Element(data = true, required = false)
+	private Long parentMessage;
+
+	@Column(name = "private_message_folder_id")
+	@Element(data = true, name = "privateMessageFolderId")
+	private Long folderId;
+
+	@Column(name = "is_contact_request")
+	@Element(data = true)
+	private boolean isContactRequest;
+
+	@Column(name = "user_contact_id")
+	@Element(data = true, required = false)
+	private Long userContactId;
+
+	public PrivateMessage() {
+	}
+	
+	public PrivateMessage(PrivateMessage copy) {
+		subject = copy.subject;
+		message = copy.message;
+		from = copy.from;
+		to = copy.to;
+		owner = copy.owner;
+		bookedRoom = copy.bookedRoom;
+		room = copy.room;
+		isRead = copy.isRead;
+		parentMessage = copy.parentMessage;
+		folderId = copy.folderId;
+		isContactRequest = copy.isContactRequest;
+		userContactId = copy.userContactId;
+	}
+	
+	public long getId() {
+		return id;
+	}
+
+	public void setId(long id) {
+		this.id = id;
+	}
+
+	public String getSubject() {
+		return subject;
+	}
+
+	public void setSubject(String subject) {
+		this.subject = subject;
+	}
+
+	public String getMessage() {
+		return message;
+	}
+
+	public void setMessage(String message) {
+		this.message = message;
+	}
+
+	public Date getInserted() {
+		return inserted;
+	}
+
+	public void setInserted(Date inserted) {
+		this.inserted = inserted;
+	}
+
+	public User getFrom() {
+		return from;
+	}
+
+	public void setFrom(User from) {
+		this.from = from;
+	}
+
+	public User getTo() {
+		return to;
+	}
+
+	public void setTo(User to) {
+		this.to = to;
+	}
+
+	public User getOwner() {
+		return owner;
+	}
+
+	public void setOwner(User owner) {
+		this.owner = owner;
+	}
+
+	public boolean isBookedRoom() {
+		return bookedRoom;
+	}
+
+	public void setBookedRoom(boolean bookedRoom) {
+		this.bookedRoom = bookedRoom;
+	}
+
+	public Room getRoom() {
+		return room;
+	}
+
+	public void setRoom(Room room) {
+		this.room = room;
+	}
+
+	public Long getParentMessage() {
+		return parentMessage;
+	}
+
+	public void setParentMessage(Long parentMessage) {
+		this.parentMessage = parentMessage;
+	}
+
+	@Deprecated
+	public boolean getIsTrash() {
+		return TRASH_FOLDER_ID == folderId;
+	}
+
+	@Deprecated
+	public void setIsTrash(boolean isTrash) {
+		if (isTrash) {
+			folderId = TRASH_FOLDER_ID;
+		}
+	}
+
+	public Long getFolderId() {
+		return folderId;
+	}
+
+	public void setFolderId(Long folderId) {
+		this.folderId = folderId;
+	}
+
+	public Boolean getIsRead() {
+		return isRead;
+	}
+
+	public void setIsRead(Boolean isRead) {
+		this.isRead = isRead;
+	}
+
+	public Boolean getIsContactRequest() {
+		return isContactRequest;
+	}
+
+	public void setIsContactRequest(Boolean isContactRequest) {
+		this.isContactRequest = isContactRequest;
+	}
+
+	public Long getUserContactId() {
+		return userContactId;
+	}
+
+	public void setUserContactId(Long userContactId) {
+		this.userContactId = userContactId;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/user/PrivateMessageFolder.java b/src/db/java/org/apache/openmeetings/db/entity/user/PrivateMessageFolder.java
new file mode 100644
index 0000000..aa51e35
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/user/PrivateMessageFolder.java
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.user;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
+
+@Entity
+@Table(name = "private_messages_folder")
+@Root(name="privatemessagefolder")
+public class PrivateMessageFolder implements Serializable, IDataProviderEntity {
+	private static final long serialVersionUID = 3689814412815025816L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name="id")
+	@Element(data=true)
+	private long privateMessageFolderId;
+	
+	@Column(name="folder_name")
+	@Element(data=true)
+	private String folderName;
+	
+	@Column(name="user_id")
+	@Element(data=true)
+	private Long userId;
+	
+	@Column(name="inserted")
+	private Date inserted;
+	
+	@Column(name="updated")
+	private Date updated;
+	
+	public long getPrivateMessageFolderId() {
+		return privateMessageFolderId;
+	}
+	public void setPrivateMessageFolderId(long privateMessageFolderId) {
+		this.privateMessageFolderId = privateMessageFolderId;
+	}
+	
+	public String getFolderName() {
+		return folderName;
+	}
+	public void setFolderName(String folderName) {
+		this.folderName = folderName;
+	}
+	
+	public Long getUserId() {
+		return userId;
+	}
+	public void setUserId(Long userId) {
+		this.userId = userId;
+	}
+	
+	public Date getInserted() {
+		return inserted;
+	}
+	public void setInserted(Date inserted) {
+		this.inserted = inserted;
+	}
+	
+	public Date getUpdated() {
+		return updated;
+	}
+	public void setUpdated(Date updated) {
+		this.updated = updated;
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/user/Salutation.java b/src/db/java/org/apache/openmeetings/db/entity/user/Salutation.java
new file mode 100644
index 0000000..f8453ee
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/user/Salutation.java
@@ -0,0 +1,125 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.user;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+
+import org.apache.openmeetings.db.entity.label.Fieldlanguagesvalues;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
+
+@Entity
+@Table(name = "salutation")
+@NamedQueries({
+	@NamedQuery(name = "getSalutationById", query = "SELECT s FROM Salutation AS s WHERE s.salutations_id = :id")
+	, @NamedQuery(name = "getSalutations", query = "SELECT s FROM Salutation AS s")
+})
+@Root
+public class Salutation implements Serializable {
+	private static final long serialVersionUID = -5806449519074435223L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name="id")
+	@Element(name="id", data=true)
+	private Long salutations_id;
+	
+	@Column(name="name")
+	@Element(data=true, required=false)
+	private String name;
+	
+	@Column(name="starttime")
+	private Date starttime;
+	
+	@Column(name="updatetime")
+	private Date updatetime;
+	
+	@Column(name="deleted")
+	@Element(data=true, required=false)
+	private boolean deleted;
+	
+	@Column(name="fieldvalues_id")
+	@Element(data=true, required=false)
+	private Long fieldvalues_id;
+	
+	@Transient
+	private Fieldlanguagesvalues label;	
+
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+    
+	public Long getSalutations_id() {
+		return salutations_id;
+	}
+	public void setSalutations_id(Long salutations_id) {
+		this.salutations_id = salutations_id;
+	}
+
+    
+	public Date getStarttime() {
+		return starttime;
+	}
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+    
+	public Date getUpdatetime() {
+		return updatetime;
+	}
+	public void setUpdatetime(Date updatetime) {
+		this.updatetime = updatetime;
+	}
+	
+	public boolean getDeleted() {
+		return deleted;
+	}
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	public Long getFieldvalues_id() {
+		return fieldvalues_id;
+	}
+	public void setFieldvalues_id(Long fieldvalues_id) {
+		this.fieldvalues_id = fieldvalues_id;
+	}
+
+	public Fieldlanguagesvalues getLabel() {
+		return label;
+	}
+
+	public void setLabel(Fieldlanguagesvalues label) {
+		this.label = label;
+	}	
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/user/State.java b/src/db/java/org/apache/openmeetings/db/entity/user/State.java
new file mode 100644
index 0000000..b361f52
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/user/State.java
@@ -0,0 +1,122 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.user;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+@Entity
+@NamedQueries({
+	@NamedQuery(name = "getStateById", query = "select c from State as c " +
+			"where c.state_id = :state_id AND c.deleted <> :deleted"),
+	@NamedQuery(name = "getStates", query = "select c from State as c where c.deleted <> :deleted"),
+	@NamedQuery(name = "getStateByName", query = "select c from State as c " +
+			"where lower(c.name) LIKE :name AND c.deleted <> :deleted")
+})
+@Table(name = "state")
+public class State implements Serializable {
+	private static final long serialVersionUID = -1629546369219451403L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "id")
+	private Long state_id;
+	
+	@Column(name = "name")
+	private String name;
+	
+	@Column(name = "starttime")
+	private Date starttime;
+	
+	@Column(name = "updatetime")
+	private Date updatetime;
+	
+	@Column(name = "deleted")
+	private boolean deleted;
+	
+	@Column(name = "shortName")
+	private String shortName;
+	
+	@Column(name = "code")
+	private int code;
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Long getState_id() {
+		return state_id;
+	}
+
+	public void setState_id(Long state_id) {
+		this.state_id = state_id;
+	}
+
+	public Date getStarttime() {
+		return starttime;
+	}
+
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+
+	public Date getUpdatetime() {
+		return updatetime;
+	}
+
+	public void setUpdatetime(Date updatetime) {
+		this.updatetime = updatetime;
+	}
+
+	public boolean getDeleted() {
+		return deleted;
+	}
+
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	public String getShortName() {
+		return shortName;
+	}
+
+	public void setShortName(String shortName) {
+		this.shortName = shortName;
+	}
+
+	public int getCode() {
+		return code;
+	}
+
+	public void setCode(int code) {
+		this.code = code;
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/user/User.java b/src/db/java/org/apache/openmeetings/db/entity/user/User.java
new file mode 100644
index 0000000..c337f20
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/user/User.java
@@ -0,0 +1,613 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.user;
+
+import static org.apache.openmeetings.db.util.UserHelper.invalidPassword;
+
+import java.io.Serializable;
+import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.Basic;
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.OneToMany;
+import javax.persistence.OneToOne;
+import javax.persistence.PrimaryKeyJoinColumn;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+
+import org.apache.openjpa.persistence.ElementDependent;
+import org.apache.openjpa.persistence.FetchAttribute;
+import org.apache.openjpa.persistence.FetchGroup;
+import org.apache.openjpa.persistence.FetchGroups;
+import org.apache.openjpa.persistence.LoadFetchGroup;
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.apache.openmeetings.db.entity.server.Sessiondata;
+import org.apache.openmeetings.util.crypt.MD5;
+import org.apache.openmeetings.util.crypt.ManageCryptStyle;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.ElementList;
+import org.simpleframework.xml.Root;
+
+/**
+ * Entity to store user data, password field is {@link FetchType#LAZY}, so that
+ * is why there is an extra udpate statement at this moment
+ * 
+ * @author sebawagner, solomax
+ * 
+ */
+@Entity
+@FetchGroups({ @FetchGroup(name = "backupexport", attributes = { @FetchAttribute(name = "password") }) })
+@NamedQueries({
+	@NamedQuery(name = "getUserById", query = "select c from User c where c.user_id = :user_id"),
+	@NamedQuery(name = "checkUserLogin", query = "SELECT COUNT(u) FROM User u WHERE ((:id > 0 AND u.user_id <> :id) OR (:id = 0)) "
+			+ "AND u.login = :login AND u.deleted = false"),
+	@NamedQuery(name = "checkUserEmail", query = "SELECT COUNT(u) FROM User u WHERE ((:id > 0 AND u.user_id <> :id) OR (:id = 0)) "
+			+ "AND u.adresses.email = :email AND u.deleted = false AND u.type <> :type"),
+	@NamedQuery(name = "getUserByLogin", query = "SELECT u FROM User u WHERE u.deleted = false AND u.type = :type AND u.login = :login"),
+	@NamedQuery(name = "getUserByEmail", query = "SELECT u FROM User u WHERE u.deleted = false AND u.type = :type AND u.adresses.email = :email"),
+	@NamedQuery(name = "getUserByHash",  query = "SELECT u FROM User u WHERE u.deleted = false AND u.type = :type AND u.resethash = :resethash"),
+	@NamedQuery(name = "getContactByEmailAndUser", query = "SELECT u FROM User u WHERE u.deleted = false AND u.adresses.email = :email AND u.type = :type AND u.ownerId = :ownerId"), 
+	@NamedQuery(name = "selectMaxFromUsersWithSearch", query = "select count(c.user_id) from User c "
+			+ "where c.deleted = false " + "AND ("
+			+ "lower(c.login) LIKE :search "
+			+ "OR lower(c.firstname) LIKE :search "
+			+ "OR lower(c.lastname) LIKE :search )"),
+	@NamedQuery(name = "getAllUsers", query = "SELECT u FROM User u ORDER BY u.user_id"),
+	@NamedQuery(name = "checkPassword", query = "select count(c.user_id) from User c "
+			+ "where c.deleted = false " //
+			+ "AND c.user_id = :userId " //
+			+ "AND c.password LIKE :password"), //
+	@NamedQuery(name = "updatePassword", query = "UPDATE User u SET u.password = :password WHERE u.user_id = :userId"), //
+	@NamedQuery(name = "getNondeletedUsers", query = "SELECT u FROM User u WHERE u.deleted = false"),
+	@NamedQuery(name = "countNondeletedUsers", query = "SELECT COUNT(u) FROM User u WHERE u.deleted = false"),
+	@NamedQuery(name = "getUsersByOrganisationId", query = "SELECT u FROM User u WHERE u.deleted = false AND u.organisation_users.organisation.organisation_id = :organisation_id"), 
+	@NamedQuery(name = "getExternalUser", query = "SELECT u FROM User u WHERE u.deleted = false AND u.externalUserId LIKE :externalId AND u.externalUserType LIKE :externalType") 
+})
+@Table(name = "om_user")
+@Root(name = "user")
+public class User implements Serializable, IDataProviderEntity {
+	private static final long serialVersionUID = -2265479712596674065L;
+	
+	public enum Type {
+		user
+		, ldap //should we add it???
+		, external
+		, contact
+	}
+
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name = "id")
+	@Element(data = true)
+	private Long user_id;
+
+	@Column(name = "age")
+	@Element(data = true, required = false)
+	private Date age;
+
+	@Column(name = "availible")
+	@Element(data = true, required = false)
+	private Integer availible;
+
+	@Column(name = "firstname")
+	@Element(data = true, required = false)
+	private String firstname;
+
+	@Column(name = "lastlogin")
+	private Date lastlogin;
+
+	@Column(name = "lastname")
+	@Element(data = true, required = false)
+	private String lastname;
+
+	@Column(name = "lasttrans")
+	@Element(data = true, required = false)
+	private Long lasttrans;
+
+	@Column(name = "level_id")
+	@Element(data = true, required = false)
+	private Long level_id;
+
+	@Column(name = "login")
+	@Element(data = true, required = false)
+	private String login;
+
+	@Basic(fetch = FetchType.LAZY)
+	@Column(name = "password")
+	@LoadFetchGroup("backupexport")
+	@Element(name = "pass", data = true, required = false)
+	private String password;
+
+	@Column(name = "regdate")
+	@Element(data = true, required = false)
+	private Date regdate;
+
+	@Column(name = "status")
+	@Element(data = true, required = false)
+	private Integer status;
+
+	@Column(name = "salutations_id")
+	@Element(name = "title_id", data = true, required = false)
+	private Long salutations_id;
+
+	@Column(name = "starttime")
+	private Date starttime;
+
+	@Column(name = "updatetime")
+	private Date updatetime;
+
+	@Column(name = "pictureuri")
+	@Element(data = true, required = false)
+	private String pictureuri;
+
+	@Column(name = "deleted")
+	@Element(data = true, required = false)
+	private boolean deleted;
+
+	@Column(name = "language_id")
+	@Element(data = true, required = false)
+	private Long language_id;
+
+	@Column(name = "resethash")
+	@Element(data = true, required = false)
+	private String resethash;
+
+	@Column(name = "activatehash")
+	@Element(data = true, required = false)
+	private String activatehash;
+
+	@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
+	@JoinColumn(name = "adresses_id", insertable = true, updatable = true)
+	@ForeignKey(enabled = true)
+	@Element(name = "address", required = false)
+	private Address adresses;
+
+	@Transient
+	private Userlevel userlevel;
+
+	@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
+	@JoinColumn(name = "user_id", insertable = true, updatable = true)
+	@ElementList(name = "organisations", required = false)
+	@ElementDependent
+	private List<Organisation_Users> organisation_users = new ArrayList<Organisation_Users>();
+
+	@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
+	@PrimaryKeyJoinColumn(name="sip_user_id", referencedColumnName="id")
+	@Element(name = "sipUser", required = false)
+	private AsteriskSipUser sipUser;
+
+	// Vars to simulate external Users
+	@Column(name = "externalUserId")
+	@Element(data = true, required = false)
+	private String externalUserId;
+
+	@Column(name = "externalUserType")
+	@Element(data = true, required = false)
+	private String externalUserType;
+
+	/**
+	 * java.util.TimeZone Id
+	 */
+	@Column(name = "time_zone_id")
+	@Element(data = true, required = false)
+	private String timeZoneId;
+
+	@Transient
+	private Sessiondata sessionData;
+
+	@Column(name = "forceTimeZoneCheck")
+	@Element(data = true, required = false)
+	private Boolean forceTimeZoneCheck;
+
+	@Column(name = "sendSMS")
+	@Element(data = false, required = false)
+	private boolean sendSMS;
+
+	@Column(name = "user_offers")
+	@Element(data = true, required = false)
+	private String userOffers;
+
+	@Column(name = "user_searchs")
+	@Element(data = true, required = false)
+	private String userSearchs;
+
+	@Column(name = "show_contact_data")
+	@Element(data = true, required = false)
+	private Boolean showContactData;
+
+	@Column(name = "show_contact_data_to_contacts")
+	@Element(data = true, required = false)
+	private Boolean showContactDataToContacts;
+
+	@Column(name = "type")
+	@Element(data = true, required = false)
+	@Enumerated(EnumType.STRING)
+	private Type type = Type.user;
+
+	@Column(name = "owner_id")
+	@Element(data = true, required = false)
+	private Long ownerId;
+	
+	public Long getUser_id() {
+		return user_id;
+	}
+
+	public void setUser_id(Long user_id) {
+		this.user_id = user_id;
+	}
+
+	public Address getAdresses() {
+		return adresses;
+	}
+
+	public void setAdresses(Address adresses) {
+		this.adresses = adresses;
+	}
+
+	public void setAdresses(String street, String zip, String town,
+			State state, String additionalname, String comment, String fax,
+			String phone, String email) {
+		if (this.adresses == null) {
+			this.adresses = new Address();
+		}
+		this.adresses.setStreet(street);
+		this.adresses.setZip(zip);
+		this.adresses.setTown(town);
+		this.adresses.setStates(state);
+		this.adresses.setAdditionalname(additionalname);
+		this.adresses.setComment(comment);
+		this.adresses.setFax(fax);
+		this.adresses.setPhone(phone);
+		this.adresses.setEmail(email);
+	}
+
+	public Date getAge() {
+		return age;
+	}
+
+	public void setAge(Date age) {
+		this.age = age == null ? new Date() :age;
+	}
+
+	public Integer getAvailible() {
+		return availible;
+	}
+
+	public void setAvailible(Integer availible) {
+		this.availible = availible;
+	}
+
+	public String getFirstname() {
+		return firstname;
+	}
+
+	public void setFirstname(String firstname) {
+		this.firstname = firstname;
+	}
+
+	public Date getLastlogin() {
+		return lastlogin;
+	}
+
+	public void setLastlogin(Date lastlogin) {
+		this.lastlogin = lastlogin;
+	}
+
+	public String getLastname() {
+		return lastname;
+	}
+
+	public void setLastname(String lastname) {
+		this.lastname = lastname;
+	}
+
+	public Long getLasttrans() {
+		return lasttrans;
+	}
+
+	public void setLasttrans(Long lasttrans) {
+		this.lasttrans = lasttrans;
+	}
+
+	public Long getLevel_id() {
+		return level_id;
+	}
+
+	public void setLevel_id(Long level_id) {
+		this.level_id = level_id;
+	}
+
+	public String getLogin() {
+		return login;
+	}
+
+	public void setLogin(String login) {
+		this.login = login;
+	}
+
+	public void updatePassword(ConfigurationDao configDao, String pass) throws NoSuchAlgorithmException {
+		updatePassword(configDao, pass, false);
+	}
+	
+	public void updatePassword(ConfigurationDao configDao, String pass, boolean empty) throws NoSuchAlgorithmException {
+		if (!empty) {
+			if (invalidPassword(pass, configDao)) {
+				throw new RuntimeException("Password of invalid length is provided");
+			}
+		}
+		String sipEnabled = configDao.getConfValue("red5sip.enable", String.class, "no");
+        if("yes".equals(sipEnabled)) {
+        	if (getSipUser() == null) {
+        		setSipUser(new AsteriskSipUser());
+        	}
+        	AsteriskSipUser u = getSipUser();
+        	String defaultRoomContext = configDao.getConfValue("red5sip.exten_context", String.class, "rooms");
+        	u.setName(login);
+        	u.setDefaultuser(login);
+        	u.setMd5secret(MD5.do_checksum(login + ":asterisk:" + pass));
+        	u.setContext(defaultRoomContext);
+        	u.setHost("dynamic");
+        } else {
+        	setSipUser(null);
+        }
+		password = ManageCryptStyle.getInstanceOfCrypt().createPassPhrase(pass);
+	}
+	
+	public String getPassword() {
+		return password;
+	}
+
+	@Deprecated //should not be used directly (for bean usage only)
+	public void setPassword(String password) {
+		this.password = password;
+	}
+
+	public Date getRegdate() {
+		return regdate;
+	}
+
+	public void setRegdate(Date regdate) {
+		this.regdate = regdate;
+	}
+
+	public Integer getStatus() {
+		return status;
+	}
+
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+
+	public Long getSalutations_id() {
+		return salutations_id;
+	}
+
+	public void setSalutations_id(Long salutations_id) {
+		this.salutations_id = salutations_id;
+	}
+
+	public Userlevel getUserlevel() {
+		return userlevel;
+	}
+
+	public void setUserlevel(Userlevel userlevel) {
+		this.userlevel = userlevel;
+	}
+
+	public Date getStarttime() {
+		return starttime;
+	}
+
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+
+	public Date getUpdatetime() {
+		return updatetime;
+	}
+
+	public void setUpdatetime(Date updatetime) {
+		this.updatetime = updatetime;
+	}
+
+	public boolean getDeleted() {
+		return deleted;
+	}
+
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	public String getPictureuri() {
+		return pictureuri;
+	}
+
+	public void setPictureuri(String pictureuri) {
+		this.pictureuri = pictureuri;
+	}
+
+	public Long getLanguage_id() {
+		return language_id;
+	}
+
+	public void setLanguage_id(Long language_id) {
+		this.language_id = language_id;
+	}
+
+	public List<Organisation_Users> getOrganisation_users() {
+		return organisation_users;
+	}
+
+	public void setOrganisation_users(
+			List<Organisation_Users> organisation_users) {
+		if (organisation_users != null) {
+			this.organisation_users = organisation_users;
+		}
+	}
+
+	public String getResethash() {
+		return resethash;
+	}
+
+	public void setResethash(String resethash) {
+		this.resethash = resethash;
+	}
+
+	public String getActivatehash() {
+		return activatehash;
+	}
+
+	public void setActivatehash(String activatehash) {
+		this.activatehash = activatehash;
+	}
+
+	public String getExternalUserId() {
+		return externalUserId;
+	}
+
+	public void setExternalUserId(String externalUserId) {
+		this.externalUserId = externalUserId;
+	}
+
+	public String getExternalUserType() {
+		return externalUserType;
+	}
+
+	public void setExternalUserType(String externalUserType) {
+		this.externalUserType = externalUserType;
+	}
+
+	public Sessiondata getSessionData() {
+		return sessionData;
+	}
+
+	public void setSessionData(Sessiondata sessionData) {
+		this.sessionData = sessionData;
+	}
+
+	public AsteriskSipUser getSipUser() {
+		return sipUser;
+	}
+
+	public void setSipUser(AsteriskSipUser sipUser) {
+		this.sipUser = sipUser;
+	}
+
+	public String getTimeZoneId() {
+		return timeZoneId;
+	}
+	public void setTimeZoneId(String timeZoneId) {
+		this.timeZoneId = timeZoneId;
+	}
+
+	public Boolean getForceTimeZoneCheck() {
+		return forceTimeZoneCheck;
+	}
+
+	public void setForceTimeZoneCheck(Boolean forceTimeZoneCheck) {
+		this.forceTimeZoneCheck = forceTimeZoneCheck;
+	}
+
+	public boolean getSendSMS() {
+		return sendSMS;
+	}
+
+	public void setSendSMS(boolean sendSMS) {
+		this.sendSMS = sendSMS;
+	}
+
+	public String getUserOffers() {
+		return userOffers;
+	}
+
+	public void setUserOffers(String userOffers) {
+		this.userOffers = userOffers;
+	}
+
+	public String getUserSearchs() {
+		return userSearchs;
+	}
+
+	public void setUserSearchs(String userSearchs) {
+		this.userSearchs = userSearchs;
+	}
+
+	public Boolean getShowContactData() {
+		return showContactData;
+	}
+
+	public void setShowContactData(Boolean showContactData) {
+		this.showContactData = showContactData;
+	}
+
+	public Boolean getShowContactDataToContacts() {
+		return showContactDataToContacts;
+	}
+
+	public void setShowContactDataToContacts(Boolean showContactDataToContacts) {
+		this.showContactDataToContacts = showContactDataToContacts;
+	}
+
+	public String getPhoneForSMS() {
+		return getSendSMS() ? getAdresses().getPhone() : "";
+	}
+
+	public Type getType() {
+		return type;
+	}
+
+	public void setType(Type type) {
+		this.type = type;
+	}
+	
+	public Long getOwnerId(){
+		return ownerId;
+	}
+	
+	public void setOwnerId(Long ownerId){
+		this.ownerId = ownerId;
+	}
+
+	@Override
+	public String toString() {
+		return "User [user_id=" + user_id + ", firstname=" + firstname
+				+ ", lastname=" + lastname + ", login=" + login
+				+ ", pictureuri=" + pictureuri + ", deleted=" + deleted
+				+ ", language_id=" + language_id + ", adresses=" + adresses
+				+ ", externalUserId=" + externalUserId + ", externalUserType="
+				+ externalUserType + ", type=" + type + "]";
+	}
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/user/UserContact.java b/src/db/java/org/apache/openmeetings/db/entity/user/UserContact.java
new file mode 100644
index 0000000..0f7992d
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/user/UserContact.java
@@ -0,0 +1,169 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.user;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+
+import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.simpleframework.xml.Element;
+import org.simpleframework.xml.Root;
+
+@Entity
+@NamedQueries({
+	@NamedQuery(name = "deleteUserContact", query = "delete from UserContact u where u.userContactId = :userContactDeleteId"),
+	@NamedQuery(name = "deleteAllUserContacts", query = "delete from UserContact u where u.owner.user_id = :ownerId"),
+	@NamedQuery(name = "checkUserContacts", query = "select count(c.userContactId) from UserContact c " +
+			"where c.contact.user_id = :user_id AND c.owner.user_id = :ownerId "),
+	@NamedQuery(name = "getContactsByHash", query = "select c from UserContact c " +
+			"where c.hash like :hash "),
+	@NamedQuery(name = "getContactsByUserAndStatus", query = "select c from UserContact c " +
+			"where c.owner.user_id = :ownerId " +
+			"AND c.pending = :pending " +
+			"AND c.contact.deleted <> true"),
+	@NamedQuery(name = "getUserContactByShareCalendar", query = "select c from UserContact c "
+			+ "where c.contact.user_id = :userId "
+			+ "AND c.owner.user_id = :contactId "
+			+ "AND c.shareCalendar = :shareCalendar "
+			+ "AND c.contact.deleted <> true"),
+	@NamedQuery(name = "getContactsByShareCalendar", query = "select c from UserContact c " +
+			"where c.contact.user_id = :contactId " +
+			"AND c.shareCalendar = :shareCalendar " +
+			"AND c.contact.deleted <> true"),
+	@NamedQuery(name = "getContactRequestsByUserAndStatus", query = "select c from UserContact c " +
+			"where c.contact.user_id = :user_id " +
+			"AND c.pending = :pending " +
+			"AND c.contact.deleted <> true"),
+	@NamedQuery(name = "getContactsByUser", query = "SELECT c FROM UserContact c " +
+			"WHERE c.contact.user_id = :user_id " +
+			"AND c.contact.deleted <> true ORDER BY c.pending DESC"),
+	@NamedQuery(name = "countContactsByUser", query = "select COUNT(c) from UserContact c " +
+			"where c.contact.user_id = :user_id " +
+			"AND c.contact.deleted <> true"),
+	@NamedQuery(name = "getUserContactsById", query = "SELECT c FROM UserContact c WHERE c.userContactId = :userContactId"),
+	@NamedQuery(name = "getUserContacts", query = "SELECT c FROM UserContact c ORDER BY c.userContactId")
+})
+@Table(name = "user_contact")
+@Root(name="usercontact")
+public class UserContact implements Serializable {
+	private static final long serialVersionUID = 2391405538978996206L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name="id")
+	@Element(data=true)
+	private long userContactId;
+	
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name="user_id")
+	@Element(data=true, required=false)
+	private User contact;
+	
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name="owner_id")
+	@ForeignKey(enabled = true)
+	@Element(data=true, required=false)
+	private User owner;
+	
+	@Column(name="pending")
+	@Element(data=true)
+	private boolean pending;
+	
+	@Column(name="hash")
+	@Element(data=true, required = false)
+	private String hash;
+	
+	@Column(name="inserted")
+	private Date inserted;
+	
+	@Column(name="updated")
+	private Date updated;
+	
+	@Column(name="share_calendar")
+	@Element(data=true, required=false)
+	private boolean shareCalendar;
+	
+	public long getUserContactId() {
+		return userContactId;
+	}
+	public void setUserContactId(long userContactId) {
+		this.userContactId = userContactId;
+	}
+	
+	public User getContact() {
+		return contact;
+	}
+	public void setContact(User contact) {
+		this.contact = contact;
+	}
+	
+	public User getOwner() {
+		return owner;
+	}
+	public void setOwner(User owner) {
+		this.owner = owner;
+	}
+	
+	public boolean getPending() {
+		return pending;
+	}
+	public void setPending(boolean pending) {
+		this.pending = pending;
+	}
+	
+	public Date getInserted() {
+		return inserted;
+	}
+	public void setInserted(Date inserted) {
+		this.inserted = inserted;
+	}
+	
+	public Date getUpdated() {
+		return updated;
+	}
+	public void setUpdated(Date updated) {
+		this.updated = updated;
+	}
+	
+	public String getHash() {
+		return hash;
+	}
+	public void setHash(String hash) {
+		this.hash = hash;
+	}
+	
+	public boolean getShareCalendar() {
+		return shareCalendar;
+	}
+	public void setShareCalendar(boolean shareCalendar) {
+		this.shareCalendar = shareCalendar;
+	}
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/user/Userdata.java b/src/db/java/org/apache/openmeetings/db/entity/user/Userdata.java
new file mode 100644
index 0000000..4942482
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/user/Userdata.java
@@ -0,0 +1,122 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.user;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Lob;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "user_data")
+public class Userdata implements Serializable {
+	private static final long serialVersionUID = 8365799229794940172L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name="id")
+    private Long data_id;
+	
+	@Column(name="user_id")
+    private Long user_id;
+	
+	@Column(name="data_key")
+    private String data_key;
+	
+	@Column(name="data")
+    private String data;
+	
+	@Column(name = "starttime")
+	private Date starttime;
+	
+	@Column(name = "updatetime")
+	private Date updatetime;
+	
+	@Lob
+	@Column(name = "comment_field")
+    private String comment;
+	
+	@Column(name = "deleted")
+    private boolean deleted;
+
+	public String getComment() {
+		return comment;
+	}
+	public void setComment(String comment) {
+		this.comment = comment;
+	}
+
+	public String getData() {
+		return data;
+	}
+	public void setData(String data) {
+		this.data = data;
+	}
+
+	public String getData_key() {
+		return data_key;
+	}
+	public void setData_key(String data_key) {
+		this.data_key = data_key;
+	}
+    
+	public Long getData_id() {
+		return data_id;
+	}
+	public void setData_id(Long data_id) {
+		this.data_id = data_id;
+	}
+
+    
+	public Date getStarttime() {
+		return starttime;
+	}
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+    
+	public Date getUpdatetime() {
+		return updatetime;
+	}
+	public void setUpdatetime(Date updatetime) {
+		this.updatetime = updatetime;
+	}
+	
+	public boolean getDeleted() {
+		return deleted;
+	}
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+
+	public Long getUser_id() {
+		return user_id;
+	}
+	public void setUser_id(Long user_id) {
+		this.user_id = user_id;
+	}
+
+
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/entity/user/Userlevel.java b/src/db/java/org/apache/openmeetings/db/entity/user/Userlevel.java
new file mode 100644
index 0000000..29de363
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/entity/user/Userlevel.java
@@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.user;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "user_level")
+public class Userlevel implements Serializable {
+	private static final long serialVersionUID = -1779037202328443340L;
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	@Column(name="id")
+	private Long level_id;
+	
+	@Column(name="description")
+	private String description;
+	
+	@Column(name="statuscode")
+	private Integer statuscode;
+	
+	@Column(name="starttime")
+	private Date starttime;
+	
+	@Column(name="updatetime")
+	private Date updatetime;
+	
+	@Column(name="deleted")
+	private boolean deleted;
+	
+	public String getDescription() {
+		return description;
+	}
+	public void setDescription(String description) {
+		this.description = description;
+	}
+
+	public Long getLevel_id() {
+		return level_id;
+	}
+	public void setLevel_id(Long level_id) {
+		this.level_id = level_id;
+	}
+    
+    
+	public Date getStarttime() {
+		return starttime;
+	}
+	public void setStarttime(Date starttime) {
+		this.starttime = starttime;
+	}
+    
+	public Date getUpdatetime() {
+		return updatetime;
+	}
+	public void setUpdatetime(Date updatetime) {
+		this.updatetime = updatetime;
+	}
+	
+	public boolean getDeleted() {
+		return deleted;
+	}
+	public void setDeleted(boolean deleted) {
+		this.deleted = deleted;
+	}
+    
+	public Integer getStatuscode() {
+		return statuscode;
+	}
+	public void setStatuscode(Integer statuscode) {
+		this.statuscode = statuscode;
+	}
+	
+}
diff --git a/src/db/java/org/apache/openmeetings/db/util/TimezoneUtil.java b/src/db/java/org/apache/openmeetings/db/util/TimezoneUtil.java
new file mode 100644
index 0000000..70df99a
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/util/TimezoneUtil.java
@@ -0,0 +1,226 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.util;
+
+import static org.apache.openmeetings.util.OmFileHelper.getLanguagesDir;
+import static org.apache.openmeetings.util.OmFileHelper.nameOfTimeZoneFile;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.io.File;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.TimeZone;
+
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.util.CalendarPatterns;
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.Element;
+import org.dom4j.io.SAXReader;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TimezoneUtil {
+	private static final Logger log = Red5LoggerFactory.getLogger(TimezoneUtil.class, webAppRootKey);
+	private static final Map<String, String> ICAL_TZ_MAP = new Hashtable<String, String>();
+	private static final Map<Long, String> ID_TZ_MAP = new Hashtable<Long, String>();
+
+	private static void initTimeZones() {
+		SAXReader reader = new SAXReader();
+		Document document;
+		try {
+			ICAL_TZ_MAP.clear();
+			ID_TZ_MAP.clear();
+			document = reader.read(new File(getLanguagesDir(), nameOfTimeZoneFile));
+
+			Element root = document.getRootElement();
+
+			// HACK based on the fact timezones are not changed
+			long id = 1;
+			for (@SuppressWarnings("rawtypes")
+			Iterator it = root.elementIterator("timezone"); it.hasNext();) {
+				Element item = (Element) it.next();
+				String timeZoneName = item.attributeValue("name");
+				String iCal = item.attributeValue("iCal");
+				ICAL_TZ_MAP.put(timeZoneName, iCal);
+				ID_TZ_MAP.put(id++, iCal);
+			}
+		} catch (DocumentException e) {
+			log.error("Unexpected error while reading old time zone list", e);
+		}
+	}
+
+	@Autowired
+	private ConfigurationDao configurationDao;
+
+	/**
+	 * Parameters: ID - the ID for a TimeZone, either an abbreviation such as "PST", a full name such as
+	 * "America/Los_Angeles", or a custom ID such as "GMT-8:00". Note that the support of abbreviations is for JDK 1.1.x
+	 * compatibility only and full names should be used.
+	 * 
+	 * Returns: the specified TimeZone, or the GMT zone if the given ID cannot be understood. <br/>
+	 * <br/>
+	 * TODO: Fall-back mechanism and maybe a log output if the given timeZoneId is not found in the list of available
+	 * TimeZones of the current java.util.TimeZone package of the Java SDK the the user is running <br/>
+	 * 
+	 * @param timeZoneId
+	 * @return
+	 */
+
+	public TimeZone getTimeZone(String timeZoneId) {
+
+		if (timeZoneId == null || timeZoneId.equals("")) {
+			return getDefaultTimeZone();
+		}
+
+		// see TODO in comments
+
+		return TimeZone.getTimeZone(timeZoneId);
+	}
+
+	/**
+	 * @return The current server configured time zone in the table configuration key: "default.timezone"
+	 */
+	public TimeZone getDefaultTimeZone() {
+
+		String defaultTzName = configurationDao.getConfValue("default.timezone", String.class, "Europe/Berlin");
+
+		TimeZone timeZoneByOmTimeZone = TimeZone.getTimeZone(defaultTzName);
+
+		if (timeZoneByOmTimeZone != null) {
+			return timeZoneByOmTimeZone;
+		}
+
+		// If everything fails take the servers default one
+		log.error("There is no correct time zone set in the configuration of OpenMeetings for the key default.timezone or key is missing in table, using default locale!");
+		return TimeZone.getDefault();
+
+	}
+
+	/**
+	 * Returns the timezone based on the user profile, if not return the timezone from the server
+	 * 
+	 * @param user
+	 * @return
+	 */
+	public TimeZone getTimeZone(User user) {
+
+		if (user != null && user.getTimeZoneId() != null) {
+
+			TimeZone timeZone = TimeZone.getTimeZone(user.getTimeZoneId());
+
+			if (timeZone != null) {
+				return timeZone;
+			}
+
+		}
+
+		// if user has not time zone get one from the server configuration
+		return getDefaultTimeZone();
+	}
+
+	/**
+	 * Return the timezone based on our internal jName
+	 * 
+	 * @param jName
+	 * @return
+	 */
+	public TimeZone getTimezoneByInternalJName(String jName) {
+		if (ICAL_TZ_MAP.isEmpty()) {
+			initTimeZones();
+		}
+		String omTimeZone = ICAL_TZ_MAP.get(jName);
+
+		if (omTimeZone == null) {
+			String err = String.format("There is not omTimeZone for this jName: '%s'", jName);
+			log.error(err);
+			throw new RuntimeException(err);
+		}
+		
+		TimeZone timeZone = TimeZone.getTimeZone(omTimeZone);
+
+		if (timeZone != null) {
+			return timeZone;
+		}
+		// if user has not time zone get one from the server configuration
+		return getDefaultTimeZone();
+	}
+
+	/**
+	 * Return the timezone based Id from omTimeZone table
+	 * 
+	 * @param jName
+	 * @return
+	 */
+	public TimeZone getTimezoneByOmTimeZoneId(Long omtimezoneId) {
+		if (ID_TZ_MAP.isEmpty()) {
+			initTimeZones();
+		}
+		String omTimeZone = ID_TZ_MAP.get(omtimezoneId);
+
+		TimeZone timeZone = TimeZone.getTimeZone(omTimeZone);
+
+		if (timeZone != null) {
+			return timeZone;
+		}
+
+		// if user has not time zone get one from the server configuration
+		return getDefaultTimeZone();
+	}
+
+	/**
+	 * We ignore the fact that a Date Object is always in UTC internally and treat it as if it contains only dd.mm.yyyy
+	 * HH:mm:ss. We need to do this cause we cannot trust the Date Object send from the client. We have the timeZone
+	 * information additional to the Date, so we use it to transform it now to a Calendar Object.
+	 * 
+	 * @param dateTime
+	 * @param timezone
+	 * @return
+	 */
+	public static Calendar getCalendarInTimezone(String dateTimeStr, TimeZone timezone) {
+
+		Date dateTime = CalendarPatterns.parseImportDate(dateTimeStr);
+
+		Calendar calOrig = Calendar.getInstance();
+		calOrig.setTime(dateTime);
+
+		Calendar cal = Calendar.getInstance(timezone);
+		cal.set(Calendar.YEAR, calOrig.get(Calendar.YEAR));
+		cal.set(Calendar.MONTH, calOrig.get(Calendar.MONTH));
+		cal.set(Calendar.DATE, calOrig.get(Calendar.DATE));
+		cal.set(Calendar.HOUR_OF_DAY, calOrig.get(Calendar.HOUR_OF_DAY));
+		cal.set(Calendar.MINUTE, calOrig.get(Calendar.MINUTE));
+		cal.set(Calendar.SECOND, calOrig.get(Calendar.SECOND));
+		cal.set(Calendar.MILLISECOND, 0);
+
+		return cal;
+	}
+
+	public static long _getOffset(TimeZone timezone) {
+		Calendar cal = Calendar.getInstance();
+		cal.setTimeZone(timezone);
+		return cal.get(Calendar.ZONE_OFFSET) + cal.get(Calendar.DST_OFFSET);
+	}
+
+}
diff --git a/src/db/java/org/apache/openmeetings/db/util/UserHelper.java b/src/db/java/org/apache/openmeetings/db/util/UserHelper.java
new file mode 100644
index 0000000..9983b7f
--- /dev/null
+++ b/src/db/java/org/apache/openmeetings/db/util/UserHelper.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.util;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_LOGIN_MIN_LENGTH_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_PASS_MIN_LENGTH_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.USER_LOGIN_MINIMUM_LENGTH;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.USER_PASSWORD_MINIMUM_LENGTH;
+
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+
+public class UserHelper {
+	public static int getMinLoginLength(ConfigurationDao cfgDao) {
+		return cfgDao.getConfValue(CONFIG_LOGIN_MIN_LENGTH_KEY, Integer.class, "" + USER_LOGIN_MINIMUM_LENGTH);
+	}
+	
+	public static int getMinPasswdLength(ConfigurationDao cfgDao) {
+		return cfgDao.getConfValue(CONFIG_PASS_MIN_LENGTH_KEY, Integer.class, "" + USER_PASSWORD_MINIMUM_LENGTH);
+	}
+	
+	public static boolean invalidPassword(String pass, ConfigurationDao cfgDao) {
+		return (pass == null || pass.length() < getMinPasswdLength(cfgDao));
+	}
+}
diff --git a/src/doc/java/org/apache/openmeetings/doc/WebServiceDoclet.java b/src/doc/java/org/apache/openmeetings/doc/WebServiceDoclet.java
new file mode 100644
index 0000000..8223659
--- /dev/null
+++ b/src/doc/java/org/apache/openmeetings/doc/WebServiceDoclet.java
@@ -0,0 +1,112 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.doc;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.velocity.VelocityContext;
+import org.apache.velocity.app.Velocity;
+
+import com.sun.javadoc.ClassDoc;
+import com.sun.javadoc.RootDoc;
+import com.sun.javadoc.Tag;
+import com.sun.tools.doclets.standard.Standard;
+
+public class WebServiceDoclet extends Standard {
+	static final String baseTemplatePath = "xdocs";
+	static final String basePath = "docs";
+	static final String templateName = "ApiMethodsTemplate.vm";
+	static final String templateNameIndex = "ApiClassesTemplate.vm";
+
+	public static boolean start(RootDoc root) {
+
+		try {
+			
+			Velocity.init();
+			out("Start WebServiceDoclet templateNameNew " + templateName);
+			
+			ArrayList<Map<String,String>> classesParsed = new ArrayList<Map<String,String>>(root.classes().length);
+			
+			// iterate over all classes.
+			ClassDoc[] classes = root.classes();
+			for (int i = 0; i < classes.length; i++) {
+				// iterate over all methods and print their names.
+				
+				VelocityContext vContext = new VelocityContext();
+				vContext.put("className", classes[i].name());
+				vContext.put("classComment", classes[i].commentText());
+				
+				String defaultOutputName = classes[i].name();
+				for (Tag tag : classes[i].tags()) {
+					if (tag.name().equals("@webservice")) {
+						defaultOutputName = tag.text();
+					}
+				}
+				
+				vContext.put("webServiceName", defaultOutputName);
+				
+				HashMap<String,String> classItem = new HashMap<String,String>();
+				classItem.put("name",defaultOutputName);
+				classItem.put("comment",classes[i].commentText());
+				classesParsed.add(classItem);
+				
+				vContext.put("methods", classes[i].methods());
+				
+				FileWriter strWriter = new FileWriter(basePath
+						+ File.separatorChar + defaultOutputName + ".html");
+
+				Velocity.mergeTemplate(baseTemplatePath + File.separatorChar
+						+ templateName, "UTF-8", vContext, strWriter);
+				
+				strWriter.flush();
+				strWriter.close();
+
+			}
+			
+			
+			VelocityContext vIndexContext = new VelocityContext();
+			vIndexContext.put("classes", classesParsed);
+			
+			FileWriter newFileIndexWriter = new FileWriter(basePath
+					+ File.separatorChar + "WebserviceIndex.html");
+
+			Velocity.mergeTemplate(baseTemplatePath + File.separatorChar
+					+ templateNameIndex, "UTF-8", vIndexContext, newFileIndexWriter);
+			
+			newFileIndexWriter.flush();
+			newFileIndexWriter.close();
+			
+
+		} catch (Exception err) {
+			err.printStackTrace();
+		}
+
+		// No error processing done, simply return true.
+		return true;
+	}
+
+	private static void out(String msg) {
+		System.out.println(msg);
+	}
+
+}
diff --git a/src/install/java/org/apache/openmeetings/backup/AppointmentCategoryConverter.java b/src/install/java/org/apache/openmeetings/backup/AppointmentCategoryConverter.java
new file mode 100644
index 0000000..560b13f
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/backup/AppointmentCategoryConverter.java
@@ -0,0 +1,46 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.backup;

+

+import org.apache.openmeetings.db.dao.calendar.AppointmentCategoryDao;

+import org.apache.openmeetings.db.entity.calendar.AppointmentCategory;

+import org.simpleframework.xml.stream.InputNode;

+import org.simpleframework.xml.stream.OutputNode;

+

+public class AppointmentCategoryConverter  extends OmConverter<AppointmentCategory> {

+	private AppointmentCategoryDao appointmentCategoryDaoImpl;

+	

+	public AppointmentCategoryConverter() {

+		//default constructor is for export

+	}

+	

+	public AppointmentCategoryConverter(AppointmentCategoryDao appointmentCategoryDaoImpl) {

+		this.appointmentCategoryDaoImpl = appointmentCategoryDaoImpl;

+	}

+	

+	public AppointmentCategory read(InputNode node) throws Exception {

+		return appointmentCategoryDaoImpl.get(getlongValue(node));

+	}

+

+	public void write(OutputNode node, AppointmentCategory value)

+			throws Exception {

+		node.setData(true);

+		node.setValue(value == null ? "0" : "" + value.getCategoryId());

+	}

+}

diff --git a/src/install/java/org/apache/openmeetings/backup/AppointmentConverter.java b/src/install/java/org/apache/openmeetings/backup/AppointmentConverter.java
new file mode 100644
index 0000000..947d769
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/backup/AppointmentConverter.java
@@ -0,0 +1,53 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.backup;

+

+import java.util.Map;

+

+import org.apache.openmeetings.db.dao.calendar.AppointmentDao;

+import org.apache.openmeetings.db.entity.calendar.Appointment;

+import org.simpleframework.xml.stream.InputNode;

+import org.simpleframework.xml.stream.OutputNode;

+

+public class AppointmentConverter extends OmConverter<Appointment> {

+	private AppointmentDao appointmentDao;

+	private Map<Long, Long> idMap;

+	

+	public AppointmentConverter() {

+		//default constructor is for export

+	}

+	

+	public AppointmentConverter(AppointmentDao appointmentDao, Map<Long, Long> idMap) {

+		this.appointmentDao = appointmentDao;

+		this.idMap = idMap;

+	}

+	

+	public Appointment read(InputNode node) throws Exception {

+		long oldId = getlongValue(node);

+		long newId = idMap.containsKey(oldId) ? idMap.get(oldId) : oldId;

+		

+		Appointment a = appointmentDao.getAppointmentByIdBackup(newId);

+		return a == null ? new Appointment() : a;

+	}

+

+	public void write(OutputNode node, Appointment value) throws Exception {

+		node.setData(true);

+		node.setValue(value == null ? "0" : "" + value.getId());

+	}

+}
\ No newline at end of file
diff --git a/src/install/java/org/apache/openmeetings/backup/AppointmentReminderTypeConverter.java b/src/install/java/org/apache/openmeetings/backup/AppointmentReminderTypeConverter.java
new file mode 100644
index 0000000..62c7172
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/backup/AppointmentReminderTypeConverter.java
@@ -0,0 +1,45 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.backup;

+

+import org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypDao;

+import org.apache.openmeetings.db.entity.calendar.AppointmentReminderTyps;

+import org.simpleframework.xml.stream.InputNode;

+import org.simpleframework.xml.stream.OutputNode;

+

+public class AppointmentReminderTypeConverter extends OmConverter<AppointmentReminderTyps> {

+	private AppointmentReminderTypDao appointmentReminderTypDaoImpl;

+	

+	public AppointmentReminderTypeConverter() {

+		//default constructor is for export

+	}

+	

+	public AppointmentReminderTypeConverter(AppointmentReminderTypDao appointmentReminderTypDaoImpl) {

+		this.appointmentReminderTypDaoImpl = appointmentReminderTypDaoImpl;

+	}

+	

+	public AppointmentReminderTyps read(InputNode node) throws Exception {

+		return appointmentReminderTypDaoImpl.get(getlongValue(node));

+	}

+

+	public void write(OutputNode node, AppointmentReminderTyps value) throws Exception {

+		node.setData(true);

+		node.setValue(value == null ? "0" : "" + value.getTypId());

+	}

+}
\ No newline at end of file
diff --git a/src/install/java/org/apache/openmeetings/backup/BackupExport.java b/src/install/java/org/apache/openmeetings/backup/BackupExport.java
new file mode 100644
index 0000000..3bd89f5
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/backup/BackupExport.java
@@ -0,0 +1,584 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.backup;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.net.URI;
+import java.util.Date;
+import java.util.List;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.transaction.util.FileHelper;
+import org.apache.openmeetings.db.dao.basic.ChatDao;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
+import org.apache.openmeetings.db.dao.calendar.MeetingMemberDao;
+import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
+import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
+import org.apache.openmeetings.db.dao.room.PollDao;
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.room.RoomOrganisationDao;
+import org.apache.openmeetings.db.dao.server.LdapConfigDao;
+import org.apache.openmeetings.db.dao.server.OAuth2Dao;
+import org.apache.openmeetings.db.dao.server.ServerDao;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.dao.user.OrganisationDao;
+import org.apache.openmeetings.db.dao.user.PrivateMessageFolderDao;
+import org.apache.openmeetings.db.dao.user.PrivateMessagesDao;
+import org.apache.openmeetings.db.dao.user.UserContactsDao;
+import org.apache.openmeetings.db.entity.basic.ChatMessage;
+import org.apache.openmeetings.db.entity.basic.Configuration;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.db.entity.calendar.AppointmentCategory;
+import org.apache.openmeetings.db.entity.calendar.AppointmentReminderTyps;
+import org.apache.openmeetings.db.entity.file.FileExplorerItem;
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.openmeetings.db.entity.room.PollType;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.room.RoomPoll;
+import org.apache.openmeetings.db.entity.room.RoomType;
+import org.apache.openmeetings.db.entity.user.Organisation;
+import org.apache.openmeetings.db.entity.user.PrivateMessage;
+import org.apache.openmeetings.db.entity.user.State;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.util.AuthLevelUtil;
+import org.apache.openmeetings.util.CalendarPatterns;
+import org.apache.openmeetings.util.OmFileHelper;
+import org.red5.logging.Red5LoggerFactory;
+import org.simpleframework.xml.Serializer;
+import org.simpleframework.xml.convert.Registry;
+import org.simpleframework.xml.convert.RegistryStrategy;
+import org.simpleframework.xml.core.Persister;
+import org.simpleframework.xml.strategy.Strategy;
+import org.simpleframework.xml.stream.Format;
+import org.simpleframework.xml.stream.NodeBuilder;
+import org.simpleframework.xml.stream.OutputNode;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 
+ * @author sebastianwagner
+ * 
+ */
+public class BackupExport {
+	private static final Logger log = Red5LoggerFactory.getLogger(BackupExport.class, webAppRootKey);
+	private static final String BACKUP_COMMENT = 
+			"###############################################\n"
+			+ "This File is auto-generated by the Backup Tool \n"
+			+ "you should use the BackupPanel to modify or change this file \n"
+			+ "see http://openmeetings.apache.org/Upgrade.html for Details \n"
+			+ "###############################################\n";
+
+	@Autowired
+	private AppointmentDao appointmentDao;
+	@Autowired
+	private SessiondataDao sessiondataDao;
+	@Autowired
+	private FileExplorerItemDao fileExplorerItemDao;
+	@Autowired
+	private FlvRecordingDao flvRecordingDao;
+	@Autowired
+	private AdminUserDao usersDao;
+	@Autowired
+	private MeetingMemberDao meetingMemberDao;
+	@Autowired
+	private LdapConfigDao ldapConfigDao;
+	@Autowired
+	private PrivateMessagesDao privateMessagesDao;
+	@Autowired
+	private PrivateMessageFolderDao privateMessageFolderDao;
+	@Autowired
+	private UserContactsDao userContactsDao;
+	@Autowired
+	private PollDao pollManager;
+	@Autowired
+	private ConfigurationDao configurationDao;
+	@Autowired
+	private ChatDao chatDao;
+	@Autowired
+	private OAuth2Dao auth2Dao;
+	@Autowired
+	private ServerDao serverDao;
+	@Autowired
+	private OrganisationDao organisationDao;
+	@Autowired
+	private RoomDao roomDao;
+	@Autowired
+	private RoomOrganisationDao roomOrganisationDao;
+
+	public void performExport(File filePath, File backup_dir,
+			boolean includeFiles) throws Exception {
+
+		if (!backup_dir.exists()) {
+			backup_dir.mkdirs();
+		}
+		Serializer simpleSerializer = new Persister();
+		
+		/*
+		 * ##################### Backup Organizations
+		 */
+		writeList(simpleSerializer, backup_dir, "organizations.xml",
+				"organisations", organisationDao.get(0, Integer.MAX_VALUE));
+
+		/*
+		 * ##################### Backup Users
+		 */
+		exportUsers(backup_dir, usersDao.getAllUsersDeleted());
+
+		/*
+		 * ##################### Backup Room
+		 */
+		{
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			registry.bind(User.class, UserConverter.class);
+			registry.bind(RoomType.class, RoomTypeConverter.class);
+			
+			writeList(serializer, backup_dir, "rooms.xml", "rooms", roomDao.get());
+		}
+
+		/*
+		 * ##################### Backup Room Organizations
+		 */
+		{
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			registry.bind(Organisation.class, OrganisationConverter.class);
+			registry.bind(Room.class, RoomConverter.class);
+			
+			writeList(serializer, backup_dir, "rooms_organisation.xml",
+					"room_organisations", roomOrganisationDao.get());
+		}
+
+		/*
+		 * ##################### Backup Appointments
+		 */
+		{
+			List<Appointment> list = appointmentDao.getAppointments();
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			registry.bind(AppointmentCategory.class, AppointmentCategoryConverter.class);
+			registry.bind(User.class, UserConverter.class);
+			registry.bind(AppointmentReminderTyps.class, AppointmentReminderTypeConverter.class);
+			registry.bind(Room.class, RoomConverter.class);
+			if (list != null && list.size() > 0) {
+				registry.bind(list.get(0).getStart().getClass(), DateConverter.class);
+			}
+			
+			writeList(serializer, backup_dir, "appointements.xml", "appointments", list);
+		}
+
+		/*
+		 * ##################### Backup Meeting Members
+		 */
+		{
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			registry.bind(User.class, UserConverter.class);
+			registry.bind(Appointment.class, AppointmentConverter.class);
+			
+			writeList(serializer, backup_dir, "meetingmembers.xml",
+					"meetingmembers", meetingMemberDao.getMeetingMembers());
+		}
+
+		/*
+		 * ##################### LDAP Configs
+		 */
+		writeList(simpleSerializer, backup_dir, "ldapconfigs.xml",
+				"ldapconfigs", ldapConfigDao.getLdapConfigs());
+
+		/*
+		 * ##################### Cluster servers
+		 */
+		writeList(simpleSerializer, backup_dir, "servers.xml", "servers", serverDao.get(0, Integer.MAX_VALUE));
+
+		/*
+		 * ##################### OAuth2 servers
+		 */
+		writeList(simpleSerializer, backup_dir, "oauth2servers.xml", "oauth2servers", auth2Dao.get(0, Integer.MAX_VALUE));
+
+		/*
+		 * ##################### Private Messages
+		 */
+		{
+			List<PrivateMessage> list = privateMessagesDao.get(0, Integer.MAX_VALUE);
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			registry.bind(User.class, UserConverter.class);
+			registry.bind(Room.class, RoomConverter.class);
+			if (list != null && list.size() > 0) {
+				registry.bind(list.get(0).getInserted().getClass(), DateConverter.class);
+			}
+			
+			writeList(serializer, backup_dir, "privateMessages.xml",
+					"privatemessages", list);
+		}
+
+		/*
+		 * ##################### Private Message Folders
+		 */
+		writeList(simpleSerializer, backup_dir, "privateMessageFolder.xml",
+				"privatemessagefolders", privateMessageFolderDao.get(0, Integer.MAX_VALUE));
+
+		/*
+		 * ##################### User Contacts
+		 */
+		{
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			registry.bind(User.class, UserConverter.class);
+			
+			writeList(serializer, backup_dir, "userContacts.xml",
+					"usercontacts", userContactsDao.getUserContacts());
+		}
+
+		/*
+		 * ##################### File-Explorer
+		 */
+		{
+			List<FileExplorerItem> list = fileExplorerItemDao.getFileExplorerItems();
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			if (list != null && list.size() > 0) {
+				registry.bind(list.get(0).getInserted().getClass(), DateConverter.class);
+			}
+			
+			writeList(serializer, backup_dir, "fileExplorerItems.xml",
+					"fileExplorerItems", list);
+		}
+
+		/*
+		 * ##################### Recordings
+		 */
+		{
+			List<FlvRecording> list = flvRecordingDao.getAllFlvRecordings();
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			if (list != null && list.size() > 0) {
+				registry.bind(list.get(0).getInserted().getClass(), DateConverter.class);
+			}
+			
+			writeList(serializer, backup_dir, "flvRecordings.xml",
+					"flvrecordings", list);
+		}
+
+		/*
+		 * ##################### Polls
+		 */
+		{
+			List<RoomPoll> list = pollManager.getPollListBackup();
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			registry.bind(User.class, UserConverter.class);
+			registry.bind(Room.class, RoomConverter.class);
+			registry.bind(PollType.class, PollTypeConverter.class);
+			if (list != null && list.size() > 0) {
+				registry.bind(list.get(0).getCreated().getClass(), DateConverter.class);
+			}
+			
+			writeList(serializer, backup_dir, "roompolls.xml", "roompolls", list);
+		}
+
+		/*
+		 * ##################### Config
+		 */
+		{
+			List<Configuration> list = configurationDao.getConfigurations(
+					0, Integer.MAX_VALUE, "c.configuration_id", true);
+			Registry registry = new Registry();
+			registry.bind(State.class, StateConverter.class);
+			registry.bind(User.class, UserConverter.class);
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			if (list != null && list.size() > 0) {
+				registry.bind(list.get(0).getStarttime().getClass(), DateConverter.class);
+			}
+			
+			writeList(serializer, backup_dir, "configs.xml", "configs", list);
+		}
+		
+		/*
+		 * ##################### Chat
+		 */
+		{
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			registry.bind(User.class, UserConverter.class);
+			registry.bind(Room.class, RoomConverter.class);
+			List<ChatMessage> list = chatDao.get(0, Integer.MAX_VALUE);
+			if (list != null && list.size() > 0) {
+				registry.bind(list.get(0).getSent().getClass(), DateConverter.class);
+			}
+			
+			writeList(serializer, backup_dir, "chat_messages.xml", "chat_messages", list);
+		}
+		if (includeFiles) {
+			/*
+			 * ##################### Backup Room Files
+			 */
+			File targetRootDir = new File(backup_dir, "roomFiles");
+
+			if (!targetRootDir.exists()) {
+				targetRootDir.mkdir();
+			}
+
+			File sourceDir = OmFileHelper.getUploadDir();
+
+			File[] files = sourceDir.listFiles();
+			for (File file : files) {
+				if (file.isDirectory()) {
+					if (!file.getName().equals("backup")
+							&& !file.getName().equals("import")) {
+
+						log.debug("### " + file.getName());
+
+						FileHelper.copyRec(file, new File(targetRootDir, file.getName()));
+					}
+				}
+			}
+
+			/*
+			 * ##################### Backup Recording Files
+			 */
+			File targetDirRec = new File(backup_dir, "recordingFiles");
+
+			if (!targetDirRec.exists()) {
+				targetDirRec.mkdir();
+			}
+
+			File sourceDirRec = OmFileHelper.getStreamsHibernateDir();
+
+			FileHelper.copyRec(sourceDirRec, targetDirRec);
+		}
+
+		writeZipDir(backup_dir, filePath);
+		log.debug("---Done");
+	}
+	
+	private <T> void writeList(Serializer ser, File backup_dir,
+			String fileName, String listElement, List<T> list) throws Exception {
+		
+		FileOutputStream fos = new FileOutputStream(new File(backup_dir,
+				fileName));
+		writeList(ser, fos, listElement, list);
+	}
+	
+	private <T> void writeList(Serializer ser, OutputStream os, String listElement, List<T> list) throws Exception {
+		Format format = new Format("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+		OutputNode doc = NodeBuilder.write(new OutputStreamWriter(os, "UTF-8"), format);
+		OutputNode root = doc.getChild("root");
+		root.setComment(BACKUP_COMMENT);
+		OutputNode listNode = root.getChild(listElement);
+
+		if (list != null) {
+			for (T t : list) {
+				try {
+					ser.write(t, listNode);
+				} catch (Exception e) {
+					log.debug("Exception While writing node of type: " + t.getClass(), e);
+				}
+			}
+		}
+		root.commit();
+	}
+
+	public void exportUsers(File backup_dir, List<User> list) throws Exception {
+		FileOutputStream fos
+			= new FileOutputStream(new File(backup_dir, "users.xml"));
+		exportUsers(fos, list);
+	}
+	public void exportUsers(OutputStream os, List<User> list) throws Exception {
+		Registry registry = new Registry();
+		Strategy strategy = new RegistryStrategy(registry);
+		Serializer serializer = new Persister(strategy);
+
+		registry.bind(Organisation.class, OrganisationConverter.class);
+		registry.bind(State.class, StateConverter.class);
+		if (list != null && list.size() > 0) {
+			registry.bind(list.get(0).getRegdate().getClass(), DateConverter.class);
+		}
+		
+		writeList(serializer, os, "users", list);
+	}
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest
+	 * , javax.servlet.http.HttpServletResponse)
+	 */
+	public void service(HttpServletRequest httpServletRequest,
+			HttpServletResponse httpServletResponse, ServletContext servletCtx)
+			throws ServletException, IOException {
+
+		String sid = httpServletRequest.getParameter("sid");
+		if (sid == null) {
+			sid = "default";
+		}
+		log.debug("sid: " + sid);
+
+		Long users_id = sessiondataDao.checkSession(sid);
+		Long user_level = usersDao.get(users_id).getLevel_id();
+
+		log.debug("users_id: " + users_id);
+		log.debug("user_level: " + user_level);
+
+		if (AuthLevelUtil.checkAdminLevel(user_level)) {
+			// if (true) {
+
+			String includeFileOption = httpServletRequest
+					.getParameter("includeFileOption");
+			boolean includeFiles = includeFileOption == null || "yes".equals(includeFileOption);
+
+			String moduleName = httpServletRequest
+					.getParameter("moduleName");
+			if (moduleName == null) {
+				moduleName = "moduleName";
+			}
+			log.debug("moduleName: " + moduleName);
+
+			if (moduleName.equals("backup")) {
+
+				/*
+				 * ##################### Create Base Folder structure
+				 */
+
+				File working_dir = OmFileHelper.getUploadBackupDir();
+
+				String dateString = "backup_"
+						+ CalendarPatterns.getTimeForStreamId(new Date());
+
+				File backup_dir = new File(working_dir, dateString);
+				String requestedFile = dateString + ".zip";
+				File backupFile = new File(backup_dir, requestedFile);
+
+				try {
+					performExport(backupFile, backup_dir, includeFiles);
+
+					httpServletResponse.reset();
+					httpServletResponse.resetBuffer();
+					httpServletResponse
+					.setContentType("APPLICATION/OCTET-STREAM");
+					httpServletResponse.setHeader("Content-Disposition",
+							"attachment; filename=\"" + requestedFile + "\"");
+					httpServletResponse.setHeader("Content-Length",
+							"" + backupFile.length());
+
+					OutputStream out = httpServletResponse.getOutputStream();
+					OmFileHelper.copyFile(backupFile, out);
+
+					out.flush();
+					out.close();
+				} catch (Exception er) {
+					log.error("Error exporting: ", er);
+				}
+
+				if (backupFile.exists()) {
+					// log.debug("DELETE :1: "+backupFile.getCanonicalPath());
+					backupFile.delete();
+				}
+
+				FileHelper.removeRec(backup_dir);
+			}
+		} else {
+			log.debug("ERROR LangExport: not authorized FileDownload "
+					+ (new Date()));
+		}
+	}
+
+	private void writeZipDir(File directoryToZip, File zipFile) throws IOException {
+		FileOutputStream fos = null;
+		ZipOutputStream zos = null;
+		try {
+			fos = new FileOutputStream(zipFile);
+			zos = new ZipOutputStream(fos);
+			
+			writeZipDir(directoryToZip.toURI(), directoryToZip, zos, zipFile);
+		} finally {
+			if (zos != null) {
+				try {
+					zos.close();
+				} catch (IOException e) {
+					log.debug("Enexpected error while closing ZipOutputStream", e);
+				}
+			}
+			if (fos != null) {
+				try {
+					fos.close();
+				} catch (IOException e) {
+					log.debug("Enexpected error while closing FileOutputStream", e);
+				}
+			}
+		}
+	}
+	
+	private void writeZipDir(URI base, File dir, ZipOutputStream zos, File zipFile) throws IOException {
+		for (File file : dir.listFiles()) {
+			if (zipFile.equals(file)) {
+				continue;
+			}
+			if (file.isDirectory()) {
+				writeZipDir(base, file, zos, zipFile);
+			} else {
+				String path = base.relativize(file.toURI()).toString();
+				log.debug("Writing '" + path + "' to zip file");
+				ZipEntry zipEntry = new ZipEntry(path);
+				zos.putNextEntry(zipEntry);
+
+				OmFileHelper.copyFile(file, zos);
+				zos.closeEntry();
+			}
+		}
+	}
+}
diff --git a/src/install/java/org/apache/openmeetings/backup/BackupImport.java b/src/install/java/org/apache/openmeetings/backup/BackupImport.java
new file mode 100644
index 0000000..fa98207
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/backup/BackupImport.java
@@ -0,0 +1,991 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.backup;
+
+import static org.apache.commons.transaction.util.FileHelper.copyRec;
+import static org.apache.openmeetings.db.entity.user.PrivateMessage.INBOX_FOLDER_ID;
+import static org.apache.openmeetings.db.entity.user.PrivateMessage.SENT_FOLDER_ID;
+import static org.apache.openmeetings.db.entity.user.PrivateMessage.TRASH_FOLDER_ID;
+import static org.apache.openmeetings.db.util.UserHelper.getMinLoginLength;
+import static org.apache.openmeetings.util.OmFileHelper.getStreamsHibernateDir;
+import static org.apache.openmeetings.util.OmFileHelper.getUploadDir;
+import static org.apache.openmeetings.util.OmFileHelper.getUploadProfilesUserDir;
+import static org.apache.openmeetings.util.OmFileHelper.getUploadRoomDir;
+import static org.apache.openmeetings.util.OmFileHelper.profilesPrefix;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_CRYPT_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.apache.commons.transaction.util.FileHelper;
+import org.apache.openmeetings.db.dao.basic.ChatDao;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentCategoryDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypDao;
+import org.apache.openmeetings.db.dao.calendar.MeetingMemberDao;
+import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
+import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
+import org.apache.openmeetings.db.dao.room.PollDao;
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.room.RoomOrganisationDao;
+import org.apache.openmeetings.db.dao.room.RoomTypeDao;
+import org.apache.openmeetings.db.dao.server.LdapConfigDao;
+import org.apache.openmeetings.db.dao.server.OAuth2Dao;
+import org.apache.openmeetings.db.dao.server.ServerDao;
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.dao.user.OrganisationDao;
+import org.apache.openmeetings.db.dao.user.PrivateMessageFolderDao;
+import org.apache.openmeetings.db.dao.user.PrivateMessagesDao;
+import org.apache.openmeetings.db.dao.user.StateDao;
+import org.apache.openmeetings.db.dao.user.UserContactsDao;
+import org.apache.openmeetings.db.entity.basic.ChatMessage;
+import org.apache.openmeetings.db.entity.basic.Configuration;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.db.entity.calendar.AppointmentCategory;
+import org.apache.openmeetings.db.entity.calendar.AppointmentReminderTyps;
+import org.apache.openmeetings.db.entity.calendar.MeetingMember;
+import org.apache.openmeetings.db.entity.file.FileExplorerItem;
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.openmeetings.db.entity.record.FlvRecordingMetaData;
+import org.apache.openmeetings.db.entity.room.PollType;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.room.RoomModerator;
+import org.apache.openmeetings.db.entity.room.RoomOrganisation;
+import org.apache.openmeetings.db.entity.room.RoomPoll;
+import org.apache.openmeetings.db.entity.room.RoomPollAnswers;
+import org.apache.openmeetings.db.entity.room.RoomType;
+import org.apache.openmeetings.db.entity.server.LdapConfig;
+import org.apache.openmeetings.db.entity.server.OAuthServer;
+import org.apache.openmeetings.db.entity.server.Server;
+import org.apache.openmeetings.db.entity.user.Address;
+import org.apache.openmeetings.db.entity.user.Organisation;
+import org.apache.openmeetings.db.entity.user.PrivateMessage;
+import org.apache.openmeetings.db.entity.user.PrivateMessageFolder;
+import org.apache.openmeetings.db.entity.user.State;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.User.Type;
+import org.apache.openmeetings.db.entity.user.UserContact;
+import org.apache.openmeetings.db.util.TimezoneUtil;
+import org.apache.openmeetings.util.CalendarPatterns;
+import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.util.crypt.MD5Implementation;
+import org.red5.logging.Red5LoggerFactory;
+import org.simpleframework.xml.Serializer;
+import org.simpleframework.xml.convert.Registry;
+import org.simpleframework.xml.convert.RegistryStrategy;
+import org.simpleframework.xml.core.Persister;
+import org.simpleframework.xml.strategy.Strategy;
+import org.simpleframework.xml.stream.InputNode;
+import org.simpleframework.xml.stream.NodeBuilder;
+import org.simpleframework.xml.transform.RegistryMatcher;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
+
+public class BackupImport {
+	private static final Logger log = Red5LoggerFactory.getLogger(BackupImport.class, webAppRootKey);
+
+	@Autowired
+	private AppointmentDao appointmentDao;
+	@Autowired
+	private StateDao statemanagement;
+	@Autowired
+	private OrganisationDao orgDao;
+	@Autowired
+	private RoomDao roomDao;
+	@Autowired
+	private AppointmentCategoryDao appointmentCategoryDaoImpl;
+	@Autowired
+	private AppointmentReminderTypDao appointmentReminderTypDaoImpl;
+	@Autowired
+	private AdminUserDao usersDao;
+	@Autowired
+	private FlvRecordingDao flvRecordingDao;
+	@Autowired
+	private PrivateMessageFolderDao privateMessageFolderDao;
+	@Autowired
+	private PrivateMessagesDao privateMessagesDao;
+	@Autowired
+	private MeetingMemberDao meetingMemberDao;
+	@Autowired
+	private LdapConfigDao ldapConfigDao;
+	@Autowired
+	private FileExplorerItemDao fileExplorerItemDao;
+	@Autowired
+	private UserContactsDao userContactsDao;
+	@Autowired
+	private PollDao pollManager;
+	@Autowired
+	private ConfigurationDao configurationDao;
+	@Autowired
+	private TimezoneUtil tzUtil;
+	@Autowired
+	private ChatDao chatDao;
+	@Autowired
+	private ServerDao serverDao;
+	@Autowired
+	private OAuth2Dao auth2Dao;
+	@Autowired
+	private OrganisationDao organisationDao;
+	@Autowired
+	private RoomTypeDao roomTypeDao;
+	@Autowired
+	private RoomOrganisationDao roomOrganisationDao;
+
+	private final Map<Long, Long> usersMap = new HashMap<Long, Long>();
+	private final Map<Long, Long> organisationsMap = new HashMap<Long, Long>();
+	private final Map<Long, Long> appointmentsMap = new HashMap<Long, Long>();
+	private final Map<Long, Long> roomsMap = new HashMap<Long, Long>();
+	private final Map<Long, Long> messageFoldersMap = new HashMap<Long, Long>();
+	private final Map<Long, Long> userContactsMap = new HashMap<Long, Long>();
+	private final Map<String, Integer> userEmailMap = new HashMap<String, Integer>();
+
+	private enum Maps {
+		USERS, ORGANISATIONS, APPOINTMENTS, ROOMS, MESSAGEFOLDERS, USERCONTACTS
+	};
+
+	public void performImport(InputStream is) throws Exception {
+		File working_dir = OmFileHelper.getUploadImportDir();
+		if (!working_dir.exists()) {
+			working_dir.mkdir();
+		}
+		usersMap.clear();
+		organisationsMap.clear();
+		appointmentsMap.clear();
+		roomsMap.clear();
+		messageFoldersMap.clear();
+		userContactsMap.clear();
+		userEmailMap.clear();
+		messageFoldersMap.put(INBOX_FOLDER_ID, INBOX_FOLDER_ID);
+		messageFoldersMap.put(SENT_FOLDER_ID, SENT_FOLDER_ID);
+		messageFoldersMap.put(TRASH_FOLDER_ID, TRASH_FOLDER_ID);
+		File f = OmFileHelper.getNewDir(working_dir, "import_" + CalendarPatterns.getTimeForStreamId(new Date()));
+
+		log.debug("##### WRITE FILE TO: " + f);
+		
+		ZipInputStream zipinputstream = new ZipInputStream(is);
+		ZipEntry zipentry = zipinputstream.getNextEntry();
+		while (zipentry != null) {
+			String fName = zipentry.getName();
+			if (File.pathSeparatorChar != '\\' && fName.indexOf('\\') > -1) {
+				fName = fName.replace('\\', '/');
+			}
+			// for each entry to be extracted
+			File fentry = new File(f, fName);
+			File dir = fentry.isDirectory() ? fentry : fentry.getParentFile();
+			dir.mkdirs();
+			if (fentry.isDirectory()) {
+				zipentry = zipinputstream.getNextEntry();
+				continue;
+			}
+
+			FileHelper.copy(zipinputstream, fentry);
+			zipinputstream.closeEntry();
+			zipentry = zipinputstream.getNextEntry();
+
+		}
+		zipinputstream.close();
+
+		/*
+		 * ##################### Import Configs
+		 */
+		{
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			RegistryMatcher matcher = new RegistryMatcher(); //TODO need to be removed in the later versions
+			Serializer serializer = new Persister(strategy, matcher);
+
+			matcher.bind(Long.class, LongTransform.class);
+			registry.bind(Date.class, DateConverter.class);
+			registry.bind(User.class, new UserConverter(usersDao, usersMap));
+			
+			List<Configuration> list = readList(serializer, f, "configs.xml", "configs", Configuration.class, true);
+			for (Configuration c : list) {
+				if (c.getConf_key() == null || c.isDeleted()) {
+					continue;
+				}
+				Configuration cfg = configurationDao.forceGet(c.getConf_key());
+				if (cfg != null && !cfg.isDeleted()) {
+					log.warn("Non deleted configuration with same key is found! old value: {}, new value: {}", cfg.getConf_value(), c.getConf_value());
+				}
+				c.setConfiguration_id(cfg == null ? null : cfg.getConfiguration_id());
+				if (c.getUser() != null && c.getUser().getUser_id() == null) {
+					c.setUser(null);
+				}
+				if (CONFIG_CRYPT_KEY.equals(c.getConf_key())) {
+					try {
+						Class.forName(c.getConf_value());
+					} catch (ClassNotFoundException e) {
+						c.setConf_value(MD5Implementation.class.getCanonicalName());
+					}
+				}
+				configurationDao.update(c, null);
+			}
+		}
+
+		log.info("Configs import complete, starting organization import");
+		/*
+		 * ##################### Import Organizations
+		 */
+		Serializer simpleSerializer = new Persister();
+		{
+			List<Organisation> list = readList(simpleSerializer, f, "organizations.xml", "organisations", Organisation.class);
+			for (Organisation o : list) {
+				long oldId = o.getOrganisation_id();
+				o.setOrganisation_id(null);
+				o = organisationDao.update(o, null);
+				organisationsMap.put(oldId, o.getOrganisation_id());
+			}
+		}
+
+		log.info("Organizations import complete, starting user import");
+		/*
+		 * ##################### Import Users
+		 */
+		{
+			String jNameTimeZone = configurationDao.getConfValue("default.timezone", String.class, "Europe/Berlin");
+			List<User> list = readUserList(f, "users.xml", "users");
+			int minLoginLength = getMinLoginLength(configurationDao);
+			for (User u : list) {
+				if (u.getLogin() == null) {
+					continue;
+				}
+				if (u.getType() == Type.contact && u.getLogin().length() < minLoginLength) {
+					u.setLogin(UUID.randomUUID().toString());
+				}
+				//FIXME: OPENMEETINGS-750
+				//Convert old Backups with OmTimeZone to new schema
+				
+				String tz = u.getTimeZoneId();
+				if (tz == null) {
+					u.setTimeZoneId(jNameTimeZone);
+					u.setForceTimeZoneCheck(true);
+				} else {
+					u.setForceTimeZoneCheck(false);
+				}
+				
+				u.setStarttime(new Date());
+				long userId = u.getUser_id();
+				u.setUser_id(null);
+				if (u.getSipUser() != null && u.getSipUser().getId() != 0) {
+					u.getSipUser().setId(0);
+				}
+				usersDao.update(u, -1L);
+				usersMap.put(userId, u.getUser_id());
+			}
+		}
+
+		log.info("Users import complete, starting room import");
+		/*
+		 * ##################### Import Rooms
+		 */
+		{
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			RegistryMatcher matcher = new RegistryMatcher(); //TODO need to be removed in the later versions
+			Serializer serializer = new Persister(strategy, matcher);
+
+			matcher.bind(Long.class, LongTransform.class);
+			matcher.bind(Integer.class, IntegerTransform.class);
+			registry.bind(User.class, new UserConverter(usersDao, usersMap));
+			registry.bind(RoomType.class, new RoomTypeConverter(roomTypeDao));
+			
+			List<Room> list = readList(serializer, f, "rooms.xml", "rooms", Room.class);
+			for (Room r : list) {
+				Long roomId = r.getRooms_id();
+
+				// We need to reset ids as openJPA reject to store them otherwise
+				r.setRooms_id(null);
+				if (r.getModerators() != null) {
+					for (Iterator<RoomModerator> i = r.getModerators().iterator(); i.hasNext();) {
+						RoomModerator rm = i.next();
+						if (rm.getUser().getUser_id() == null) {
+							i.remove();
+						}
+					}
+				}
+				r = roomDao.update(r, null);
+				roomsMap.put(roomId, r.getRooms_id());
+			}
+		}
+
+		log.info("Room import complete, starting room organizations import");
+		/*
+		 * ##################### Import Room Organisations
+		 */
+		{
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			registry.bind(Organisation.class, new OrganisationConverter(orgDao, organisationsMap));
+			registry.bind(Room.class, new RoomConverter(roomDao, roomsMap));
+			
+			List<RoomOrganisation> list = readList(serializer, f, "rooms_organisation.xml", "room_organisations", RoomOrganisation.class);
+			for (RoomOrganisation ro : list) {
+				if (!ro.getDeleted()) {
+					// We need to reset this as openJPA reject to store them otherwise
+					ro.setRooms_organisation_id(null);
+					roomOrganisationDao.update(ro, null);
+				}
+			}
+		}
+
+		log.info("Room organizations import complete, starting chat messages import");
+		/*
+		 * ##################### Import Chat messages
+		 */
+		{
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			registry.bind(User.class, new UserConverter(usersDao, usersMap));
+			registry.bind(Room.class, new RoomConverter(roomDao, roomsMap));
+			
+			List<ChatMessage> list = readList(serializer, f, "chat_messages.xml", "chat_messages", ChatMessage.class, true);
+			for (ChatMessage m : list) {
+				chatDao.update(m);
+			}
+		}
+		
+		log.info("Chat messages import complete, starting appointement import");
+		/*
+		 * ##################### Import Appointements
+		 */
+		{
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			registry.bind(AppointmentCategory.class, new AppointmentCategoryConverter(appointmentCategoryDaoImpl));
+			registry.bind(User.class, new UserConverter(usersDao, usersMap));
+			registry.bind(AppointmentReminderTyps.class, new AppointmentReminderTypeConverter(appointmentReminderTypDaoImpl));
+			registry.bind(Room.class, new RoomConverter(roomDao, roomsMap));
+			registry.bind(Date.class, DateConverter.class);
+			
+			List<Appointment> list = readList(serializer, f, "appointements.xml", "appointments", Appointment.class);
+			for (Appointment a : list) {
+				Long appId = a.getId();
+
+				// We need to reset this as openJPA reject to store them otherwise
+				a.setId(null);
+				if (a.getOwner() != null && a.getOwner().getUser_id() == null) {
+					a.setOwner(null);
+				}
+				if (a.getRoom() != null && a.getRoom().getRooms_id() == null) {
+					a.setRoom(null);
+				}
+				Long newAppId = appointmentDao.addAppointmentObj(a);
+				appointmentsMap.put(appId, newAppId);
+			}
+		}
+
+		log.info("Appointement import complete, starting meeting members import");
+		/*
+		 * ##################### Import MeetingMembers
+		 * 
+		 * Reminder Invitations will be NOT send!
+		 */
+		{
+			List<MeetingMember> list = readMeetingMemberList(f, "meetingmembers.xml", "meetingmembers");
+			for (MeetingMember ma : list) {
+				meetingMemberDao.update(ma);
+			}
+		}
+
+		log.info("Meeting members import complete, starting ldap config import");
+		/*
+		 * ##################### Import LDAP Configs
+		 */
+		{
+			List<LdapConfig> list = readList(simpleSerializer, f, "ldapconfigs.xml", "ldapconfigs", LdapConfig.class, true);
+			for (LdapConfig c : list) {
+				ldapConfigDao.addLdapConfigByObject(c);
+			}
+		}
+
+		log.info("Ldap config import complete, starting cluster servers import");
+		/*
+		 * ##################### Cluster servers
+		 */
+		{
+			List<Server> list = readList(simpleSerializer, f, "servers.xml", "servers", Server.class, true);
+			for (Server s : list) {
+				serverDao.update(s, null);
+			}
+		}
+
+		log.info("Cluster servers import complete, starting OAuth2 servers import");
+		/*
+		 * ##################### OAuth2 servers
+		 */
+		{
+			List<OAuthServer> list = readList(simpleSerializer, f, "oauth2servers.xml", "oauth2servers", OAuthServer.class, true);
+			for (OAuthServer s : list) {
+				auth2Dao.update(s, null);
+			}
+		}
+
+		log.info("OAuth2 servers import complete, starting recordings import");
+		/*
+		 * ##################### Import Recordings
+		 */
+		{
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			RegistryMatcher matcher = new RegistryMatcher(); //TODO need to be removed in the later versions
+			Serializer serializer = new Persister(strategy, matcher);
+
+			matcher.bind(Long.class, LongTransform.class);
+			matcher.bind(Integer.class, IntegerTransform.class);
+			registry.bind(Date.class, DateConverter.class);
+			
+			List<FlvRecording> list = readList(serializer, f, "flvRecordings.xml", "flvrecordings", FlvRecording.class, true);
+			for (FlvRecording fr : list) {
+				fr.setFlvRecordingId(0);
+				if (fr.getRoom_id() != null) {
+					fr.setRoom_id(roomsMap.get(fr.getRoom_id()));
+				}
+				if (fr.getOwnerId() != null) {
+					fr.setOwnerId(usersMap.get(fr.getOwnerId()));
+				}
+				if (fr.getFlvRecordingMetaData() != null) {
+					for (FlvRecordingMetaData meta : fr.getFlvRecordingMetaData()) {
+						meta.setFlvRecordingMetaDataId(0);
+						meta.setFlvRecording(fr);
+					}
+				}
+				flvRecordingDao.update(fr);
+			}
+		}
+
+		log.info("FLVrecording import complete, starting private message folder import");
+		/*
+		 * ##################### Import Private Message Folders
+		 */
+		{
+			List<PrivateMessageFolder> list = readList(simpleSerializer, f, "privateMessageFolder.xml"
+				, "privatemessagefolders", PrivateMessageFolder.class, true);
+			for (PrivateMessageFolder p : list) {
+				Long folderId = p.getPrivateMessageFolderId();
+				PrivateMessageFolder storedFolder = privateMessageFolderDao.get(folderId);
+				if (storedFolder == null) {
+					p.setPrivateMessageFolderId(0);
+					Long newFolderId = privateMessageFolderDao.addPrivateMessageFolderObj(p);
+					messageFoldersMap.put(folderId, newFolderId);
+				}
+			}
+		}
+
+		log.info("Private message folder import complete, starting user contacts import");
+		/*
+		 * ##################### Import User Contacts
+		 */
+		{
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			registry.bind(User.class, new UserConverter(usersDao, usersMap));
+			
+			List<UserContact> list = readList(serializer, f, "userContacts.xml", "usercontacts", UserContact.class, true);
+			for (UserContact uc : list) {
+				Long ucId = uc.getUserContactId();
+				UserContact storedUC = userContactsDao.get(ucId);
+
+				if (storedUC == null && uc.getContact() != null && uc.getContact().getUser_id() != null) {
+					uc.setUserContactId(0);
+					if (uc.getOwner() != null && uc.getOwner().getUser_id() == null) {
+						uc.setOwner(null);
+					}
+					Long newId = userContactsDao.addUserContactObj(uc);
+					userContactsMap.put(ucId, newId);
+				}
+			}
+		}
+
+		log.info("Usercontact import complete, starting private messages item import");
+		/*
+		 * ##################### Import Private Messages
+		 */
+		{
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			registry.bind(User.class, new UserConverter(usersDao, usersMap));
+			registry.bind(Room.class, new RoomConverter(roomDao, roomsMap));
+			registry.bind(Date.class, DateConverter.class);
+			
+			List<PrivateMessage> list = readList(serializer, f, "privateMessages.xml", "privatemessages", PrivateMessage.class, true);
+			boolean oldBackup = true;
+			for (PrivateMessage p : list) {
+				if (p.getFolderId() < 0) {
+					oldBackup = false;
+					break;
+				}
+				
+			}
+			for (PrivateMessage p : list) {
+				p.setId(0);
+				p.setFolderId(getNewId(p.getFolderId(), Maps.MESSAGEFOLDERS));
+				p.setUserContactId(getNewId(p.getUserContactId(), Maps.USERCONTACTS));
+				if (p.getRoom() != null && p.getRoom().getRooms_id() == null) {
+					p.setRoom(null);
+				}
+				if (p.getTo() != null && p.getTo().getUser_id() == null) {
+					p.setTo(null);
+				}
+				if (p.getFrom() != null && p.getFrom().getUser_id() == null) {
+					p.setFrom(null);
+				}
+				if (p.getOwner() != null && p.getOwner().getUser_id() == null) {
+					p.setOwner(null);
+				}
+				if (oldBackup && p.getOwner() != null && p.getOwner().getUser_id() != null 
+						&& p.getFrom() != null && p.getFrom().getUser_id() != null 
+						&& p.getOwner().getUser_id() == p.getFrom().getUser_id())
+				{
+					p.setFolderId(SENT_FOLDER_ID);
+				}
+				privateMessagesDao.update(p, null);
+			}
+		}
+
+		log.info("Private message import complete, starting file explorer item import");
+		/*
+		 * ##################### Import File-Explorer Items
+		 */
+		{
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			RegistryMatcher matcher = new RegistryMatcher(); //TODO need to be removed in the later versions
+			Serializer serializer = new Persister(strategy, matcher);
+
+			matcher.bind(Long.class, LongTransform.class);
+			matcher.bind(Integer.class, IntegerTransform.class);
+			registry.bind(Date.class, DateConverter.class);
+			
+			List<FileExplorerItem> list = readList(serializer, f, "fileExplorerItems.xml", "fileExplorerItems", FileExplorerItem.class, true);
+			for (FileExplorerItem file : list) {
+				// We need to reset this as openJPA reject to store them otherwise
+				file.setFileExplorerItemId(0);
+				Long roomId = file.getRoom_id();
+				file.setRoom_id(roomsMap.containsKey(roomId) ? roomsMap.get(roomId) : null);
+				if (file.getOwnerId() != null) {
+					file.setOwnerId(usersMap.get(file.getOwnerId()));
+				}
+				fileExplorerItemDao.addFileExplorerItem(file);
+			}
+		}
+
+		log.info("File explorer item import complete, starting file poll import");
+		/*
+		 * ##################### Import Room Polls
+		 */
+		{
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			RegistryMatcher matcher = new RegistryMatcher(); //TODO need to be removed in the later versions
+			Serializer serializer = new Persister(strategy, matcher);
+	
+			matcher.bind(Integer.class, IntegerTransform.class);
+			registry.bind(User.class, new UserConverter(usersDao, usersMap));
+			registry.bind(Room.class, new RoomConverter(roomDao, roomsMap));
+			registry.bind(PollType.class, new PollTypeConverter(pollManager));
+			registry.bind(Date.class, DateConverter.class);
+			
+			List<RoomPoll> list = readList(serializer, f, "roompolls.xml", "roompolls", RoomPoll.class, true);
+			for (RoomPoll rp : list) {
+				if (rp.getRoom() == null || rp.getRoom().getRooms_id() == null) {
+					//room was deleted
+					continue;
+				}
+				if (rp.getCreatedBy() == null || rp.getCreatedBy().getUser_id() == null) {
+					rp.setCreatedBy(null);
+				}
+				for (RoomPollAnswers rpa : rp.getRoomPollAnswerList()) {
+					if (rpa.getVotedUser() == null || rpa.getVotedUser().getUser_id() == null) {
+						rpa.setVotedUser(null);
+					}
+				}
+				pollManager.savePollBackup(rp);
+			}
+		}
+		
+		log.info("Poll import complete, starting copy of files and folders");
+		/*
+		 * ##################### Import real files and folders
+		 */
+		importFolders(f);
+
+		log.info("File explorer item import complete, clearing temp files");
+		
+		FileHelper.removeRec(f);
+	}
+	
+	private <T> List<T> readList(Serializer ser, File baseDir, String fileName, String listNodeName, Class<T> clazz) throws Exception {
+		return readList(ser, baseDir, fileName, listNodeName, clazz, false);
+	}
+	
+	private <T> List<T> readList(Serializer ser, File baseDir, String fileName, String listNodeName, Class<T> clazz, boolean notThow) throws Exception {
+		List<T> list = new ArrayList<T>();
+		File xml = new File(baseDir, fileName);
+		if (!xml.exists()) {
+			final String msg = fileName + " missing";
+			if (notThow) {
+				log.debug(msg);
+			} else {
+				throw new Exception(msg);
+			}
+		} else {
+			InputNode root = NodeBuilder.read(new FileInputStream(xml));
+			InputNode listNode = root.getNext();
+			if (listNodeName.equals(listNode.getName())) {
+				InputNode item = listNode.getNext();
+				while (item != null) {
+					T o = ser.read(clazz, item, false);
+					list.add(o);
+					item = listNode.getNext();
+				}
+			}
+		}
+		return list;
+	}
+	
+	private Node getNode(Node doc, String name) {
+		NodeList nl = doc.getChildNodes();
+		for (int i = 0; i < nl.getLength(); ++i) {
+			Node node = nl.item(i);
+			if (node.getNodeType() == Node.ELEMENT_NODE && name.equals(node.getNodeName())) {
+				return node;
+			}
+		}
+		return null;
+	}
+	
+	public List<User> readUserList(InputStream xml, String listNodeName) throws Exception {
+		return readUserList(new InputSource(xml), listNodeName);
+	}
+	
+	public List<User> readUserList(File baseDir, String fileName, String listNodeName) throws Exception {
+		File xml = new File(baseDir, fileName);
+		if (!xml.exists()) {
+			throw new Exception(fileName + " missing");
+		}
+		
+		return readUserList(new InputSource(xml.toURI().toASCIIString()), listNodeName);
+	}
+	
+	//FIXME (need to be removed in later versions) HACK to add external attendees previously stored in MeetingMember structure
+	private List<MeetingMember> readMeetingMemberList(File baseDir, String filename, String listNodeName) throws Exception {
+		Registry registry = new Registry();
+		Strategy strategy = new RegistryStrategy(registry);
+		Serializer ser = new Persister(strategy);
+
+		registry.bind(User.class, new UserConverter(usersDao, usersMap));
+		registry.bind(Appointment.class, new AppointmentConverter(appointmentDao, appointmentsMap));
+		
+		File xml = new File(baseDir, filename);
+		if (!xml.exists()) {
+			throw new Exception(filename + " missing");
+		}
+		
+		DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+		Document doc = dBuilder.parse(new InputSource(xml.toURI().toASCIIString()));
+		
+		StringWriter sw = new StringWriter();
+		Transformer xformer = TransformerFactory.newInstance().newTransformer();
+        xformer.transform(new DOMSource(doc), new StreamResult(sw));
+        
+		List<MeetingMember> list = new ArrayList<MeetingMember>();
+		InputNode root = NodeBuilder.read(new StringReader(sw.toString()));
+		InputNode root1 = NodeBuilder.read(new StringReader(sw.toString())); //HACK to handle external attendee's firstname, lastname, email
+		InputNode listNode = root.getNext();
+		InputNode listNode1 = root1.getNext(); //HACK to handle external attendee's firstname, lastname, email
+		if (listNodeName.equals(listNode.getName())) {
+			InputNode item = listNode.getNext();
+			InputNode item1 = listNode1.getNext(); //HACK to handle external attendee's firstname, lastname, email
+			while (item != null) {
+				MeetingMember mm = ser.read(MeetingMember.class, item, false);
+
+				boolean needToSkip1 = true;
+				if (mm.getUser() == null) {
+					mm.setUser(new User());
+				}
+				if (mm.getUser().getUser_id() == null) {
+					//HACK to handle external attendee's firstname, lastname, email
+					boolean contactValid = false;
+					do {
+						if (Type.contact == mm.getUser().getType() && "firstname".equals(item1.getName())) {
+							mm.getUser().setFirstname(item1.getValue());
+						}
+						if (Type.contact == mm.getUser().getType() && "lastname".equals(item1.getName())) {
+							mm.getUser().setLastname(item1.getValue());
+						}
+						if ("email".equals(item1.getName())) {
+							String email = item1.getValue();
+							if (mm.getAppointment() != null && mm.getAppointment().getOwner() != null) {
+								mm.setUser(usersDao.getContact(email, mm.getAppointment().getOwner()));
+							}
+							contactValid = true;
+						}
+						item1 = listNode1.getNext(); //HACK to handle old om_time_zone
+					} while (item1 != null && !"meetingmember".equals(item1.getName()));
+					if (!contactValid) {
+						mm = null;
+					}
+					needToSkip1 = false;
+				}
+				if (needToSkip1) {
+					do {
+						item1 = listNode1.getNext(); //HACK to handle Address inside user
+					} while (item1 != null && !"meetingmember".equals(item1.getName()));
+				}
+				item = listNode.getNext();
+				if (mm != null && !mm.isDeleted() && mm.getUser() != null && mm.getAppointment() != null && mm.getAppointment().getId() != null) {
+					mm.setId(null);
+					list.add(mm);
+				}
+			}
+		}
+		return list;
+	}
+	
+	//FIXME (need to be removed in later versions) HACK to fix 2 deleted nodes in users.xml and inline Adresses and sipData
+	private List<User> readUserList(InputSource xml, String listNodeName) throws Exception {
+		Registry registry = new Registry();
+		Strategy strategy = new RegistryStrategy(registry);
+		Serializer ser = new Persister(strategy);
+
+		registry.bind(Organisation.class, new OrganisationConverter(orgDao, organisationsMap));
+		registry.bind(State.class, new StateConverter(statemanagement));
+		registry.bind(Date.class, DateConverter.class);
+
+		DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+		Document doc = dBuilder.parse(xml);
+		NodeList nl = getNode(getNode(doc, "root"), listNodeName).getChildNodes();
+		userEmailMap.clear();
+		//add existence email from database
+		List<User>  users = usersDao.getAllUsers();
+		for (User u : users){
+			if (u.getAdresses() == null || u.getAdresses().getEmail() == null) {
+				continue;
+			}
+			userEmailMap.put(u.getAdresses().getEmail(), -1);
+		}
+		// one of the old OM version created 2 nodes "deleted" this code block handles this
+		for (int i = 0; i < nl.getLength(); ++i) {
+			Node user = nl.item(i);
+			NodeList nl1 = user.getChildNodes();
+			boolean deletedFound = false;
+			for (int j = 0; j < nl1.getLength(); ++j) {
+				Node node = nl1.item(j);
+				if (node.getNodeType() == Node.ELEMENT_NODE && "deleted".equals(node.getNodeName())) {
+					if (deletedFound) {
+						user.removeChild(node);
+						break;
+					}
+					deletedFound = true;
+				}
+			}
+		}
+		
+		StringWriter sw = new StringWriter();
+		Transformer xformer = TransformerFactory.newInstance().newTransformer();
+        xformer.transform(new DOMSource(doc), new StreamResult(sw));
+        
+		List<User> list = new ArrayList<User>();
+		InputNode root = NodeBuilder.read(new StringReader(sw.toString()));
+		InputNode root1 = NodeBuilder.read(new StringReader(sw.toString())); //HACK to handle Address inside user
+		InputNode root2 = NodeBuilder.read(new StringReader(sw.toString())); //HACK to handle old om_time_zone
+		InputNode listNode = root.getNext();
+		InputNode listNode1 = root1.getNext(); //HACK to handle Address inside user
+		InputNode listNode2 = root2.getNext(); //HACK to handle old om_time_zone
+		if (listNodeName.equals(listNode.getName())) {
+			InputNode item = listNode.getNext();
+			InputNode item1 = listNode1.getNext(); //HACK to handle Address inside user
+			InputNode item2 = listNode2.getNext(); //HACK to handle old om_time_zone
+			while (item != null) {
+				User u = ser.read(User.class, item, false);
+				
+				boolean needToSkip1 = true;
+				//HACK to handle Address inside user
+				if (u.getAdresses() == null) {
+					Address a = ser.read(Address.class, item1, false);
+					u.setAdresses(a);
+					needToSkip1 = false;
+				}
+				if (needToSkip1) {
+					do {
+						item1 = listNode1.getNext(); //HACK to handle Address inside user
+					} while (item1 != null && !"user".equals(item1.getName()));
+				}
+				do {
+					if (u.getTimeZoneId() == null && "omTimeZone".equals(item2.getName())) {
+						String jName = item2.getValue();
+						u.setTimeZoneId(jName == null ? null : tzUtil.getTimezoneByInternalJName(jName).getID());
+					}
+					item2 = listNode2.getNext(); //HACK to handle old om_time_zone
+				} while (item2 != null && !"user".equals(item2.getName()));
+				// check that email is unique
+				if (u.getAdresses() != null && u.getAdresses().getEmail() != null) {
+					if (userEmailMap.containsKey(u.getAdresses().getEmail())) {
+						log.warn("Email is dublicated for user " + u.toString());
+						String updateEmail = "modified_by_import_<" + list.size() + ">" + u.getAdresses().getEmail();
+						u.getAdresses().setEmail(updateEmail);
+					}
+					userEmailMap.put(u.getAdresses().getEmail(), userEmailMap.size());
+				}
+				list.add(u);
+				item = listNode.getNext();
+			}
+		}
+		return list;
+	}
+	
+	private Long getProfileId(File f) {
+		String n = f.getName();
+		if (n.indexOf(profilesPrefix) > -1) {
+			return importLongType(n.substring(profilesPrefix.length()));
+		}
+		return null;
+	}
+	
+	private void importFolders(File importBaseDir) throws IOException {
+		// Now check the room files and import them
+		File roomFilesFolder = new File(importBaseDir, "roomFiles");
+
+		File uploadDir = getUploadDir();
+
+		log.debug("roomFilesFolder PATH " + roomFilesFolder.getCanonicalPath());
+
+		if (roomFilesFolder.exists()) {
+			for (File file : roomFilesFolder.listFiles()) {
+				if (file.isDirectory()) {
+					String fName = file.getName();
+					if ("profiles".equals(fName)) {
+						// profile should correspond to the new user id
+						for (File profile : file.listFiles()) {
+							Long oldId = getProfileId(profile);
+							Long id = oldId != null ? getNewId(oldId, Maps.USERS) : null;
+							if (id != null) {
+								copyRec(profile, getUploadProfilesUserDir(id));
+							}
+						}
+						continue;
+					} else {
+						// check if folder is room folder, store it under new id if necessary
+						Long oldId = importLongType(fName);
+						Long id = oldId != null ? getNewId(oldId, Maps.ROOMS) : null;
+						if (id != null) {
+							copyRec(file, getUploadRoomDir(id.toString()));
+							continue;
+						}
+					}
+					copyRec(file, new File(uploadDir, fName));
+				}
+			}
+		}
+
+		// Now check the recordings and import them
+
+		File sourceDirRec = new File(importBaseDir, "recordingFiles");
+
+		log.debug("sourceDirRec PATH " + sourceDirRec.getCanonicalPath());
+		if (sourceDirRec.exists()) {
+			copyRec(sourceDirRec, getStreamsHibernateDir());
+		}
+	}
+
+	private Long importLongType(String value) {
+		Long val = null;
+		try {
+			val = Long.valueOf(value);
+		} catch (Exception e) {
+			// no-op
+		}
+		return val;
+	}
+
+	private Long getNewId(Long oldId, Maps map) {
+		Long newId = oldId;
+		switch (map) {
+			case USERS:
+				if (usersMap.containsKey(oldId)) {
+					newId = usersMap.get(oldId);
+				}
+				break;
+			case ORGANISATIONS:
+				if (organisationsMap.containsKey(oldId)) {
+					newId = organisationsMap.get(oldId);
+				}
+				break;
+			case APPOINTMENTS:
+				if (appointmentsMap.containsKey(oldId)) {
+					newId = appointmentsMap.get(oldId);
+				}
+				break;
+			case ROOMS:
+				if (roomsMap.containsKey(oldId)) {
+					newId = roomsMap.get(oldId);
+				}
+				break;
+			case MESSAGEFOLDERS:
+				if (messageFoldersMap.containsKey(oldId)) {
+					newId = messageFoldersMap.get(oldId);
+				}
+				break;
+			case USERCONTACTS:
+				if (userContactsMap.containsKey(oldId)) {
+					newId = userContactsMap.get(oldId);
+				}
+				break;
+			default:
+				break;
+		}
+		return newId;
+	}
+}
diff --git a/src/install/java/org/apache/openmeetings/backup/DateConverter.java b/src/install/java/org/apache/openmeetings/backup/DateConverter.java
new file mode 100644
index 0000000..57ec4f9
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/backup/DateConverter.java
@@ -0,0 +1,39 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.backup;

+

+import java.util.Date;

+

+import org.apache.openmeetings.util.CalendarPatterns;

+import org.simpleframework.xml.convert.Converter;

+import org.simpleframework.xml.stream.InputNode;

+import org.simpleframework.xml.stream.OutputNode;

+

+public class DateConverter implements Converter<Date> {

+	public Date read(InputNode node) throws Exception {

+		String val = node.getValue();

+		return val == null || "null".equals(val) ? new Date() : CalendarPatterns.parseImportDate(val);

+	}

+

+	public void write(OutputNode node, Date value) throws Exception {

+		node.setAttribute("class", "java.util.Date");

+		node.setData(true);

+		node.setValue(value == null ? "0" : CalendarPatterns.getExportDate(value));

+	}

+}
\ No newline at end of file
diff --git a/src/install/java/org/apache/openmeetings/backup/InlineConverter.java b/src/install/java/org/apache/openmeetings/backup/InlineConverter.java
new file mode 100644
index 0000000..4ab9f24
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/backup/InlineConverter.java
@@ -0,0 +1,29 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.backup;

+

+import org.simpleframework.xml.stream.InputNode;

+

+public abstract class InlineConverter<T> extends OmConverter<T> {

+	

+	String getNextValue(InputNode parent, String name) throws Exception {

+		InputNode node = parent.getNext(name);

+		return node != null ? node.getValue() : null;

+	}

+}

diff --git a/src/install/java/org/apache/openmeetings/backup/IntegerTransform.java b/src/install/java/org/apache/openmeetings/backup/IntegerTransform.java
new file mode 100644
index 0000000..031c22f
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/backup/IntegerTransform.java
@@ -0,0 +1,32 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.backup;

+

+import org.simpleframework.xml.transform.Transform;

+

+public class IntegerTransform implements Transform<Integer>{

+	public Integer read(String value) throws Exception {

+		return OmConverter.getintValue(value, 0);

+	}

+

+	public String write(Integer value) throws Exception {

+		return "" + value;

+	}

+

+}

diff --git a/src/install/java/org/apache/openmeetings/backup/LanguageImport.java b/src/install/java/org/apache/openmeetings/backup/LanguageImport.java
new file mode 100644
index 0000000..da9b475
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/backup/LanguageImport.java
@@ -0,0 +1,100 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.backup;
+
+import java.io.InputStream;
+import java.util.Iterator;
+
+import org.apache.openmeetings.db.dao.label.FieldLanguageDao;
+import org.apache.openmeetings.db.dao.label.FieldLanguagesValuesDao;
+import org.apache.openmeetings.db.dao.label.FieldValueDao;
+import org.apache.openmeetings.db.entity.label.Fieldlanguagesvalues;
+import org.apache.openmeetings.db.entity.label.Fieldvalues;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.dom4j.Document;
+import org.dom4j.Element;
+import org.dom4j.io.SAXReader;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class LanguageImport {
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			LanguageImport.class, OpenmeetingsVariables.webAppRootKey);
+
+	@Autowired
+	private FieldValueDao fieldValueDao;
+	@Autowired
+	private FieldLanguagesValuesDao fieldLangValueDao;
+	@Autowired
+	private FieldLanguageDao fieldLanguageDaoImpl;
+
+	public Long addLanguageByDocument(Long language_id, InputStream is, long userId)
+			throws Exception {
+
+		// return null if no language availible
+		if (fieldLanguageDaoImpl.getFieldLanguageById(language_id) == null) {
+			return null;
+		}
+
+		SAXReader reader = new SAXReader();
+		Document document = reader.read(is);
+
+		Element root = document.getRootElement();
+
+		for (@SuppressWarnings("unchecked")
+		Iterator<Element> i = root.elementIterator(); i.hasNext();) {
+			Element itemObject = i.next();
+			Long fieldvalues_id = Long.valueOf(
+					itemObject.attribute("id").getText()).longValue();
+			String fieldName = itemObject.attribute("name").getText();
+			String value = itemObject.element("value").getText();
+			log.info("CHECK " + language_id + "," + fieldvalues_id + ","
+					+ fieldName + "," + value);
+			addFieldValueById(language_id, fieldvalues_id, fieldName, value, userId);
+		}
+
+		return null;
+	}
+
+	private void addFieldValueById(Long language_id, Long fieldvalues_id,
+			String fieldName, String value, long userId) throws Exception {
+
+		Fieldvalues fv = fieldValueDao.get(fieldvalues_id);
+
+		if (fv == null) {
+			fv = new Fieldvalues();
+			fv.setFieldvalues_id(fieldvalues_id);
+			fv.setName(fieldName);
+			fv = fieldValueDao.update(fv, userId);
+		}
+
+		Fieldlanguagesvalues flv = fieldLangValueDao.get(fieldvalues_id, language_id);
+		if (flv == null) {
+			flv = new Fieldlanguagesvalues();
+			flv.setFieldvalues(fv);
+			flv.setLanguage_id(language_id);
+			flv.setValue(value);
+		} else {
+			flv.setValue(value);
+		}
+		fieldLangValueDao.update(flv, userId);
+	}
+
+}
diff --git a/src/install/java/org/apache/openmeetings/backup/LongTransform.java b/src/install/java/org/apache/openmeetings/backup/LongTransform.java
new file mode 100644
index 0000000..f3238a8
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/backup/LongTransform.java
@@ -0,0 +1,32 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.backup;

+

+import org.simpleframework.xml.transform.Transform;

+

+public class LongTransform implements Transform<Long>{

+	public Long read(String value) throws Exception {

+		return OmConverter.getlongValue(value);

+	}

+

+	public String write(Long value) throws Exception {

+		return "" + value;

+	}

+

+}

diff --git a/src/install/java/org/apache/openmeetings/backup/OmConverter.java b/src/install/java/org/apache/openmeetings/backup/OmConverter.java
new file mode 100644
index 0000000..67a3d4c
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/backup/OmConverter.java
@@ -0,0 +1,52 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.backup;

+

+import org.simpleframework.xml.convert.Converter;

+import org.simpleframework.xml.stream.InputNode;

+

+public abstract class OmConverter<T> implements Converter<T> {

+	static long getlongValue(InputNode node) throws Exception {

+		return getlongValue(node.getValue());

+	}

+

+	static long getlongValue(String value) {

+		return getlongValue(value, 0);

+	}

+	

+	static long getlongValue(String value, long def) {

+		long result = def;

+		try {

+			result = Long.valueOf(value).longValue();

+		} catch (Exception e) {

+			//no op

+		}

+		return result;

+	}

+

+	static int getintValue(String value, int def) {

+		int result = def;

+		try {

+			result = Integer.valueOf(value).intValue();

+		} catch (Exception e) {

+			//no op

+		}

+		return result;

+	}

+}

diff --git a/src/install/java/org/apache/openmeetings/backup/OrganisationConverter.java b/src/install/java/org/apache/openmeetings/backup/OrganisationConverter.java
new file mode 100644
index 0000000..a0a8a4c
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/backup/OrganisationConverter.java
@@ -0,0 +1,53 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.backup;

+

+import java.util.Map;

+

+import org.apache.openmeetings.db.dao.user.OrganisationDao;

+import org.apache.openmeetings.db.entity.user.Organisation;

+import org.simpleframework.xml.stream.InputNode;

+import org.simpleframework.xml.stream.OutputNode;

+

+public class OrganisationConverter extends OmConverter<Organisation> {

+	private OrganisationDao orgDao;

+	private Map<Long, Long> idMap;

+	

+	public OrganisationConverter() {

+		//default constructor is for export

+	}

+	

+	public OrganisationConverter(OrganisationDao orgDao, Map<Long, Long> idMap) {

+		this.orgDao = orgDao;

+		this.idMap = idMap;

+	}

+	

+	public Organisation read(InputNode node) throws Exception {

+		long oldId = getlongValue(node);

+		long newId = idMap.containsKey(oldId) ? idMap.get(oldId) : oldId;

+		

+		Organisation o = orgDao.get(newId);

+		return o == null ? new Organisation() : o;

+	}

+

+	public void write(OutputNode node, Organisation value) throws Exception {

+		node.setData(true);

+		node.setValue(value == null ? "0" : "" + value.getOrganisation_id());

+	}

+}
\ No newline at end of file
diff --git a/src/install/java/org/apache/openmeetings/backup/PollTypeConverter.java b/src/install/java/org/apache/openmeetings/backup/PollTypeConverter.java
new file mode 100644
index 0000000..89e7e5f
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/backup/PollTypeConverter.java
@@ -0,0 +1,45 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.backup;

+

+import org.apache.openmeetings.db.dao.room.PollDao;

+import org.apache.openmeetings.db.entity.room.PollType;

+import org.simpleframework.xml.stream.InputNode;

+import org.simpleframework.xml.stream.OutputNode;

+

+public class PollTypeConverter extends OmConverter<PollType> {

+	private PollDao pollManager;

+	

+	public PollTypeConverter() {

+		//default constructor is for export

+	}

+	

+	public PollTypeConverter(PollDao pollManagement) {

+		this.pollManager = pollManagement;

+	}

+	

+	public PollType read(InputNode node) throws Exception {

+		return pollManager.getPollType(getlongValue(node));

+	}

+

+	public void write(OutputNode node, PollType value) throws Exception {

+		node.setData(true);

+		node.setValue(value == null ? "0" : "" + value.getPollTypesId());

+	}

+}
\ No newline at end of file
diff --git a/src/install/java/org/apache/openmeetings/backup/RoomConverter.java b/src/install/java/org/apache/openmeetings/backup/RoomConverter.java
new file mode 100644
index 0000000..e0f8eda
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/backup/RoomConverter.java
@@ -0,0 +1,53 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.backup;

+

+import java.util.Map;

+

+import org.apache.openmeetings.db.dao.room.RoomDao;

+import org.apache.openmeetings.db.entity.room.Room;

+import org.simpleframework.xml.stream.InputNode;

+import org.simpleframework.xml.stream.OutputNode;

+

+public class RoomConverter extends OmConverter<Room> {

+	private RoomDao roomDao;

+	private Map<Long, Long> idMap;

+	

+	public RoomConverter() {

+		//default constructor is for export

+	}

+	

+	public RoomConverter(RoomDao roomDao, Map<Long, Long> idMap) {

+		this.roomDao = roomDao;

+		this.idMap = idMap;

+	}

+	

+	public Room read(InputNode node) throws Exception {

+		long oldId = getlongValue(node);

+		long newId = idMap.containsKey(oldId) ? idMap.get(oldId) : oldId;

+

+		Room r = roomDao.get(newId);

+		return r == null ? new Room() : r;

+	}

+

+	public void write(OutputNode node, Room value) throws Exception {

+		node.setData(true);

+		node.setValue(value == null ? "0" : "" + value.getRooms_id());

+	}

+}
\ No newline at end of file
diff --git a/src/install/java/org/apache/openmeetings/backup/RoomTypeConverter.java b/src/install/java/org/apache/openmeetings/backup/RoomTypeConverter.java
new file mode 100644
index 0000000..5401722
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/backup/RoomTypeConverter.java
@@ -0,0 +1,46 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.backup;

+

+import org.apache.openmeetings.db.dao.room.RoomTypeDao;

+import org.apache.openmeetings.db.entity.room.RoomType;

+import org.simpleframework.xml.stream.InputNode;

+import org.simpleframework.xml.stream.OutputNode;

+

+public class RoomTypeConverter extends OmConverter<RoomType> {

+	private RoomTypeDao dao;

+	

+	public RoomTypeConverter() {

+		//default constructor is for export

+	}

+	

+	public RoomTypeConverter(RoomTypeDao dao) {

+		this.dao = dao;

+	}

+	

+	public RoomType read(InputNode node) throws Exception {

+		RoomType rt = dao.get(getlongValue(node));

+		return rt != null ? rt : dao.get(1); // conference type will be used in case of bad type

+	}

+

+	public void write(OutputNode node, RoomType value) throws Exception {

+		node.setData(true);

+		node.setValue(value == null ? "0" : "" + value.getRoomtypes_id());

+	}

+}
\ No newline at end of file
diff --git a/src/install/java/org/apache/openmeetings/backup/StateConverter.java b/src/install/java/org/apache/openmeetings/backup/StateConverter.java
new file mode 100644
index 0000000..9188089
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/backup/StateConverter.java
@@ -0,0 +1,45 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.backup;

+

+import org.apache.openmeetings.db.dao.user.StateDao;

+import org.apache.openmeetings.db.entity.user.State;

+import org.simpleframework.xml.stream.InputNode;

+import org.simpleframework.xml.stream.OutputNode;

+

+public class StateConverter extends OmConverter<State> {

+	private StateDao statemanagement;

+	

+	public StateConverter() {

+		//default constructor is for export

+	}

+	

+	public StateConverter(StateDao statemanagement) {

+		this.statemanagement = statemanagement;

+	}

+	

+	public State read(InputNode node) throws Exception {

+		return statemanagement.getStateById(getlongValue(node));

+	}

+

+	public void write(OutputNode node, State value) throws Exception {

+		node.setData(true);

+		node.setValue(value == null ? "0" : "" + value.getState_id());

+	}

+}
\ No newline at end of file
diff --git a/src/install/java/org/apache/openmeetings/backup/UserConverter.java b/src/install/java/org/apache/openmeetings/backup/UserConverter.java
new file mode 100644
index 0000000..073d0e0
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/backup/UserConverter.java
@@ -0,0 +1,53 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.backup;

+

+import java.util.Map;

+

+import org.apache.openmeetings.db.dao.user.AdminUserDao;

+import org.apache.openmeetings.db.entity.user.User;

+import org.simpleframework.xml.stream.InputNode;

+import org.simpleframework.xml.stream.OutputNode;

+

+public class UserConverter extends OmConverter<User> {

+	private AdminUserDao userDao;

+	private Map<Long, Long> idMap;

+	

+	public UserConverter() {

+		//default constructor is for export

+	}

+	

+	public UserConverter(AdminUserDao userDao, Map<Long, Long> idMap) {

+		this.userDao = userDao;

+		this.idMap = idMap;

+	}

+	

+	public User read(InputNode node) throws Exception {

+		long oldId = getlongValue(node);

+		long newId = idMap.containsKey(oldId) ? idMap.get(oldId) : oldId;

+		

+		User u = userDao.get(newId);

+		return u == null ? new User() : u;

+	}

+

+	public void write(OutputNode node, User value) throws Exception {

+		node.setData(true);

+		node.setValue(value == null ? "0" : "" + value.getUser_id());

+	}

+}
\ No newline at end of file
diff --git a/src/install/java/org/apache/openmeetings/cli/Admin.java b/src/install/java/org/apache/openmeetings/cli/Admin.java
new file mode 100644
index 0000000..9a49026
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/cli/Admin.java
@@ -0,0 +1,627 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.cli;
+
+import static org.apache.openmeetings.db.util.UserHelper.getMinPasswdLength;
+import static org.apache.openmeetings.db.util.UserHelper.invalidPassword;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.USER_LOGIN_MINIMUM_LENGTH;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.USER_PASSWORD_MINIMUM_LENGTH;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
+import java.util.Date;
+import java.util.Map;
+import java.util.TimeZone;
+
+import javax.mail.internet.AddressException;
+import javax.mail.internet.InternetAddress;
+import javax.servlet.ServletContextEvent;
+
+import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.OptionGroup;
+import org.apache.commons.cli.Options;
+import org.apache.commons.cli.ParseException;
+import org.apache.commons.cli.Parser;
+import org.apache.commons.cli.PosixParser;
+import org.apache.commons.transaction.util.FileHelper;
+import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
+import org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl;
+import org.apache.openjpa.jdbc.schema.SchemaTool;
+import org.apache.openjpa.lib.log.Log;
+import org.apache.openjpa.lib.log.LogFactoryImpl.LogImpl;
+import org.apache.openmeetings.backup.BackupExport;
+import org.apache.openmeetings.backup.BackupImport;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
+import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.entity.file.FileExplorerItem;
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.installation.ImportInitvalues;
+import org.apache.openmeetings.installation.InstallationConfig;
+import org.apache.openmeetings.installation.InstallationDocumentHandler;
+import org.apache.openmeetings.util.CalendarPatterns;
+import org.apache.openmeetings.util.ImportHelper;
+import org.apache.openmeetings.util.OMContextListener;
+import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.util.mail.MailUtil;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.springframework.scheduling.quartz.SchedulerFactoryBean;
+
+public class Admin {
+	private static final Logger log = Red5LoggerFactory.getLogger(Admin.class);
+	
+	private boolean verbose = false;
+	private InstallationConfig cfg = null;
+	private Options opts = null;
+	private CommandLine cmdl = null;
+	private ClassPathXmlApplicationContext ctx = null;
+	private final static String PERSISTENCE_NAME = "classes/META-INF/persistence.xml";
+
+	private Admin() {
+		cfg = new InstallationConfig();
+		opts = buildOptions();
+	}
+	
+	private Options buildOptions() {
+		Options options = new Options();
+		OptionGroup group = new OptionGroup()
+			.addOption(new OmOption("h", 0, "h", "help", false, "prints this message"))
+			.addOption(new OmOption("b", 1, "b", "backup", false, "Backups OM"))
+			.addOption(new OmOption("r", 2, "r", "restore", false, "Restores OM"))
+			.addOption(new OmOption("i", 3, "i", "install", false, "Fill DB table, and make OM usable"))
+			.addOption(new OmOption("l", 3, "l", "languages", false, "Reimport All language files into DB"))
+			.addOption(new OmOption("f", 4, "f", "files", false, "File operations - statictics/cleanup"));
+		group.setRequired(true); 
+		options.addOptionGroup(group);
+		//general
+		options.addOption(new OmOption(null, "v", "verbose", false, "verbose error messages"));
+		//backup/restore
+		options.addOption(new OmOption("b", null, "exclude-files", false, "should backup exclude files [default: include]", true));
+		options.addOption(new OmOption("b,r,i", "file", null, true, "file used for backup/restore/install", "b"));
+		//install
+		options.addOption(new OmOption("i", "user", null, true, "Login name of the default user, minimum " + USER_LOGIN_MINIMUM_LENGTH + " characters (mutually exclusive with 'file')"));
+		options.addOption(new OmOption("i", "email", null, true, "Email of the default user (mutually exclusive with 'file')"));
+		options.addOption(new OmOption("i", "group", null, true, "The name of the default user group (mutually exclusive with 'file')"));
+		options.addOption(new OmOption("i", "tz", null, true, "Default server time zone, and time zone for the selected user (mutually exclusive with 'file')"));
+		options.addOption(new OmOption("i", null, "password", true, "Password of the default user, minimum " + USER_PASSWORD_MINIMUM_LENGTH + " characters (will be prompted if not set)", true));
+		options.addOption(new OmOption("i", null, "system-email-address", true, "System e-mail address [default: " + cfg.mailReferer + "]", true));
+		options.addOption(new OmOption("i", null, "smtp-server", true, "SMTP server for outgoing e-mails [default: " + cfg.smtpServer + "]", true));
+		options.addOption(new OmOption("i", null, "smtp-port", true, "SMTP server for outgoing e-mails [default: " + cfg.smtpPort + "]", true));
+		options.addOption(new OmOption("i", null, "email-auth-user", true, "Email auth username (anonymous connection will be used if not set)", true));
+		options.addOption(new OmOption("i", null, "email-auth-pass", true, "Email auth password (anonymous connection will be used if not set)", true));
+		options.addOption(new OmOption("i", null, "email-use-tls", false, "Is secure e-mail connection [default: no]", true));
+		options.addOption(new OmOption("i", null, "skip-default-rooms", false, "Do not create default rooms [created by default]", true));
+		options.addOption(new OmOption("i", null, "disable-frontend-register", false, "Do not allow front end register [allowed by default]", true));
+
+		options.addOption(new OmOption("i", null, "db-type", true, "The type of the DB to be used", true));
+		options.addOption(new OmOption("i", null, "db-host", true, "DNS name or IP address of database", true));
+		options.addOption(new OmOption("i", null, "db-port", true, "Database port", true));
+		options.addOption(new OmOption("i", null, "db-name", true, "The name of Openmeetings database", true));
+		options.addOption(new OmOption("i", null, "db-user", true, "User with write access to the DB specified", true));
+		options.addOption(new OmOption("i", null, "db-pass", true, "Password of the user with write access to the DB specified", true));
+		options.addOption(new OmOption("i", null, "drop", false, "Drop database before installation", true));
+		options.addOption(new OmOption("i", null, "force", false, "Install without checking the existence of old data in the database.", true));
+		//languages
+		options.addOption(new OmOption("l", "lang", "language", true, "Single language to be imported (id or name)", true));
+		//files
+		options.addOption(new OmOption("f", null, "cleanup", false, "Should intermediate files be clean up", true));
+		
+		return options;
+	}
+	
+	private enum Command {
+		install
+		, backup
+		, restore
+		, languages
+		, files
+		, usage
+	}
+	
+	private void usage() {
+		OmHelpFormatter formatter = new OmHelpFormatter();
+		formatter.setWidth(100);
+		formatter.printHelp("admin", "Please specify one of the required parameters.", opts, "Examples:\n" +
+				"\t./admin.sh -b\n" +
+				"\t./admin.sh -i -v -file backup_31_07_2012_12_07_51.zip --drop\n" +
+				"\t./admin.sh -i -v -user admin -email someemail@gmail.com -tz \"Asia/Tehran\" -group \"yourgroup\" --db-type mysql --db-host localhost");
+	}
+	
+	private void handleError(String msg, Exception e) {
+		handleError(msg, e, false);
+	}
+	
+	private void handleError(String msg, Exception e, boolean printUsage) {
+		if (printUsage) {
+			usage();
+		}
+		if (verbose) {
+			log.error(msg, e);
+		} else {
+			log.error(msg + " " + e.getMessage());
+		}
+		System.exit(1);
+	}
+	
+	private ClassPathXmlApplicationContext getApplicationContext(final String ctxName) {
+		if (ctx == null) {
+			OMContextListener omcl = new OMContextListener();
+			omcl.contextInitialized(new ServletContextEvent(new DummyServletContext(ctxName)));
+			try {
+				ctx = new ClassPathXmlApplicationContext("openmeetings-applicationContext.xml");
+			} catch (Exception e) {
+				handleError("Unable to obtain application context", e);
+			}
+			SchedulerFactoryBean sfb = ctx.getBean(SchedulerFactoryBean.class);
+			try {
+				sfb.getScheduler().shutdown(false);
+			} catch (Exception e) {
+				handleError("Unable to shutdown schedulers", e);
+			}
+		}
+		return ctx;
+	}
+	
+	private void process(String[] args) {
+		String ctxName = System.getProperty("context", "openmeetings");
+		File home = new File(System.getenv("RED5_HOME"));
+		OmFileHelper.setOmHome(new File(new File(home, "webapps"), ctxName));
+		
+		Parser parser = new PosixParser();
+		try {
+			cmdl = parser.parse(opts, args);
+		} catch (ParseException e) {
+			System.out.println(e.getMessage());
+			usage();
+			System.exit(1);
+		}
+		verbose = cmdl.hasOption('v');
+
+		Command cmd = Command.usage;
+		if (cmdl.hasOption('i')) {
+			cmd = Command.install;
+		} else if (cmdl.hasOption('b')) {
+			cmd = Command.backup;
+		} else if (cmdl.hasOption('r')) {
+			cmd = Command.restore;
+		} else if (cmdl.hasOption('l')) {
+			cmd = Command.languages;
+		} else if (cmdl.hasOption('f')) {
+			cmd = Command.files;
+		}
+
+		String file = cmdl.getOptionValue("file", "");
+		switch(cmd) {
+			case install:
+				try {
+					if (cmdl.hasOption("file") && (cmdl.hasOption("user") || cmdl.hasOption("email") || cmdl.hasOption("group"))) {
+						System.out.println("Please specify even 'file' option or 'admin user'.");
+						System.exit(1);
+					}
+					boolean force = cmdl.hasOption("force");
+					if (cmdl.hasOption("skip-default-rooms")) {
+						cfg.createDefaultRooms = "0";
+					}
+					if (cmdl.hasOption("disable-frontend-register")) {
+						cfg.allowFrontendRegister = "0";
+					}
+					if (cmdl.hasOption("system-email-address")) {
+						cfg.mailReferer = cmdl.getOptionValue("system-email-address");
+					}
+					if (cmdl.hasOption("smtp-server")) {
+						cfg.smtpServer = cmdl.getOptionValue("smtp-server");
+					}
+					if (cmdl.hasOption("smtp-port")) {
+						cfg.smtpPort = Integer.valueOf(cmdl.getOptionValue("smtp-port"));
+					}
+					if (cmdl.hasOption("email-auth-user")) {
+						cfg.mailAuthName = cmdl.getOptionValue("email-auth-user");
+					}
+					if (cmdl.hasOption("email-auth-pass")) {
+						cfg.mailAuthPass = cmdl.getOptionValue("email-auth-pass");
+					}
+					if (cmdl.hasOption("email-use-tls")) {
+						cfg.mailUseTls = "1";
+					}
+					ConnectionProperties connectionProperties = new ConnectionProperties();
+					File conf = new File(OmFileHelper.getWebinfDir(), PERSISTENCE_NAME);
+					if (!conf.exists() || cmdl.hasOption("db-type") || cmdl.hasOption("db-host") || cmdl.hasOption("db-port") || cmdl.hasOption("db-name") || cmdl.hasOption("db-user") || cmdl.hasOption("db-pass")) {
+						String dbType = cmdl.getOptionValue("db-type", "derby");
+						File srcConf = new File(OmFileHelper.getWebinfDir(), "classes/META-INF/" + dbType + "_persistence.xml");
+						ConnectionPropertiesPatcher.getPatcher(dbType, connectionProperties).patch(
+								srcConf
+								, conf
+								, cmdl.getOptionValue("db-host", "localhost")
+								, cmdl.getOptionValue("db-port", null)
+								, cmdl.getOptionValue("db-name", null)
+								, cmdl.getOptionValue("db-user", null)
+								, cmdl.getOptionValue("db-pass", null)
+								);
+					} else {
+						//get properties from existent persistence.xml
+						connectionProperties = ConnectionPropertiesPatcher.getConnectionProperties(conf);
+					}
+					if (cmdl.hasOption("file")) {
+						File backup = checkRestoreFile(file);
+						dropDB(connectionProperties);
+						
+						ImportInitvalues importInit = getApplicationContext(ctxName).getBean(ImportInitvalues.class);
+						importInit.loadSystem(cfg, force); 
+						restoreOm(ctxName, backup);
+					} else {
+						checkAdminDetails(ctxName);
+						dropDB(connectionProperties);
+						
+						ImportInitvalues importInit = getApplicationContext(ctxName).getBean(ImportInitvalues.class);
+						importInit.loadAll(cfg, force);
+					}					
+					
+					InstallationDocumentHandler.createDocument(3);
+				} catch(Exception e) {
+					handleError("Install failed", e);
+				}
+				break;
+			case backup:
+				try {
+					File f;
+					if (!cmdl.hasOption("file")) {
+						file = "backup_" + CalendarPatterns.getTimeForStreamId(new Date()) + ".zip";
+						f = new File(home, file);
+						System.out.println("File name was not specified, '" + file + "' will be used");
+					} else {
+						f = new File(file);
+					}
+					boolean includeFiles = Boolean.parseBoolean(cmdl.getOptionValue("exclude-files", "true"));
+					File backup_dir = new File(OmFileHelper.getUploadTempDir(), "" + System.currentTimeMillis());
+					backup_dir.mkdirs();
+					
+					BackupExport export = getApplicationContext(ctxName).getBean(BackupExport.class);
+					export.performExport(f, backup_dir, includeFiles);
+					FileHelper.removeRec(backup_dir);
+					backup_dir.delete();
+				} catch (Exception e) {
+					handleError("Backup failed", e);
+				}
+				break;
+			case restore:
+				try {
+					restoreOm(ctxName, checkRestoreFile(file));
+				} catch (Exception e) {
+					handleError("Restore failed", e);
+				}
+				break;
+			case languages:
+				System.out.println("All language files will be reimported");
+				try {
+					ImportInitvalues importInit = getApplicationContext(ctxName).getBean(ImportInitvalues.class);
+					if (cmdl.hasOption("lang")) {
+						String lang = cmdl.getOptionValue("lang");
+						System.out.println("Only '" + lang + "' language will be reimported");
+						try {
+							int id = Integer.parseInt(lang);
+							importInit.loadLanguagesFile(id);
+						} catch (NumberFormatException e) {
+							importInit.loadLanguagesFile(lang);
+						}
+					} else {
+						System.out.println("All language files will be reimported");
+						importInit.loadLanguagesFiles();
+					}
+				} catch (Exception e) {
+					handleError("Language reimport failed", e);
+				}
+				break;
+			case files:
+				try {
+					boolean cleanup = cmdl.hasOption("cleanup");
+					if (cleanup) {
+						System.out.println("WARNING: all intermadiate files will be clean up!");
+					}
+					StringBuilder report = new StringBuilder();
+					report.append("Temporary files allocates: ").append(OmFileHelper.getHumanSize(OmFileHelper.getUploadTempDir())).append("\n");
+					{ //UPLOAD
+						long sectionSize = OmFileHelper.getSize(OmFileHelper.getUploadDir());
+						report.append("Upload totally allocates: ").append(OmFileHelper.getHumanSize(sectionSize)).append("\n");
+						//Profiles
+						File profiles = OmFileHelper.getUploadProfilesDir();
+						long invalid = 0;
+						long deleted = 0;
+						ClassPathXmlApplicationContext ctx = getApplicationContext(ctxName);
+						AdminUserDao udao = ctx.getBean(AdminUserDao.class);
+						for (File profile : profiles.listFiles()) {
+							long pSize = OmFileHelper.getSize(profile);
+							long userId = getUserIdByProfile(profile.getName());
+							User u = udao.get(userId);
+							if (profile.isFile() || userId < 0 || u == null) {
+								if (cleanup) {
+									FileHelper.removeRec(profile);
+								} else {
+									invalid += pSize;
+								}
+							} else if (u.getDeleted()) {
+								if (cleanup) {
+									FileHelper.removeRec(profile);
+								} else {
+									deleted += pSize;
+								}
+							}
+						}
+						long missing = 0;
+						for (User u : udao.getAllUsersDeleted()) {
+							if (!u.getDeleted() && u.getPictureuri() != null && !new File(OmFileHelper.getUploadProfilesUserDir(u.getUser_id()), u.getPictureuri()).exists()) {
+								missing++;
+							}
+						}
+						long size = OmFileHelper.getSize(profiles);
+						long restSize = sectionSize - size;
+						report.append("\t\tprofiles: ").append(OmFileHelper.getHumanSize(size)).append("\n");
+						report.append("\t\t\tinvalid: ").append(OmFileHelper.getHumanSize(invalid)).append("\n");
+						report.append("\t\t\tdeleted: ").append(OmFileHelper.getHumanSize(deleted)).append("\n");
+						report.append("\t\t\tmissing count: ").append(missing).append("\n");
+						size = OmFileHelper.getSize(OmFileHelper.getUploadImportDir());
+						restSize -= size;
+						report.append("\t\timport: ").append(OmFileHelper.getHumanSize(size)).append("\n");
+						size = OmFileHelper.getSize(OmFileHelper.getUploadBackupDir());
+						restSize -= size;
+						report.append("\t\tbackup: ").append(OmFileHelper.getHumanSize(size)).append("\n");
+						//Files
+						File files = OmFileHelper.getUploadFilesDir();
+						size = OmFileHelper.getSize(files);
+						restSize -= size;
+						FileExplorerItemDao fileDao = ctx.getBean(FileExplorerItemDao.class);
+						invalid = 0;
+						deleted = 0;
+						for (File f : files.listFiles()) {
+							long fSize = OmFileHelper.getSize(f);
+							FileExplorerItem item = fileDao.getFileExplorerItemsByHash(f.getName());
+							if (item == null) {
+								if (cleanup) {
+									FileHelper.removeRec(f);
+								} else {
+									invalid += fSize;
+								}
+							} else if (item.getDeleted()) {
+								if (cleanup) {
+									FileHelper.removeRec(f);
+								} else {
+									deleted += fSize;
+								}
+							}
+						}
+						missing = 0;
+						for (FileExplorerItem item : fileDao.getFileExplorerItems()) {
+							if (!item.getDeleted() && item.getFileHash() != null && !new File(files, item.getFileHash()).exists()) {
+								missing++;
+							}
+						}
+						report.append("\t\tfiles: ").append(OmFileHelper.getHumanSize(size)).append("\n");
+						report.append("\t\t\tinvalid: ").append(OmFileHelper.getHumanSize(invalid)).append("\n");
+						report.append("\t\t\tdeleted: ").append(OmFileHelper.getHumanSize(deleted)).append("\n");
+						report.append("\t\t\tmissing count: ").append(missing).append("\n");
+						report.append("\t\trest: ").append(OmFileHelper.getHumanSize(restSize)).append("\n");
+					}
+					{ //STREAMS
+						File streamsDir = OmFileHelper.getStreamsDir();
+						File hibernateDir = OmFileHelper.getStreamsHibernateDir();
+						if (cleanup) {
+							String hiberPath = hibernateDir.getCanonicalPath();
+							for (File f : streamsDir.listFiles()) {
+								if (!f.getCanonicalPath().equals(hiberPath)) {
+									FileHelper.removeRec(f);
+								}
+							}
+						}
+						long sectionSize = OmFileHelper.getSize(streamsDir);
+						report.append("Recordings allocates: ").append(OmFileHelper.getHumanSize(sectionSize)).append("\n");
+						long size = OmFileHelper.getSize(hibernateDir);
+						long restSize = sectionSize - size;
+						FlvRecordingDao recordDao = ctx.getBean(FlvRecordingDao.class);
+						long[] params = {0, 0}; // [0] == deleted [1] == missing
+						for (FlvRecording rec : recordDao.getAllFlvRecordings()) {
+							checkRecordingFile(hibernateDir, rec.getFileHash(), rec.getDeleted(), params, cleanup);
+							checkRecordingFile(hibernateDir, rec.getAlternateDownload(), rec.getDeleted(), params, cleanup);
+							checkRecordingFile(hibernateDir, rec.getPreviewImage(), rec.getDeleted(), params, cleanup);
+						}
+						long invalid = 0;
+						for (File f : hibernateDir.listFiles()) {
+							if (f.isFile() && f.getName().endsWith(".flv")) {
+								FlvRecording rec = recordDao.getRecordingByHash(f.getName());
+								if (rec == null) {
+									cleanUpFile(invalid, cleanup, f);
+									String name = f.getName().substring(0, f.getName().length() - 5);
+									cleanUpFile(invalid, cleanup, new File(hibernateDir, name + ".avi"));
+									cleanUpFile(invalid, cleanup, new File(hibernateDir, name + ".jpg"));
+									cleanUpFile(invalid, cleanup, new File(hibernateDir, name + ".flv.meta"));
+								}
+							}
+						}
+						report.append("\t\tfinal: ").append(OmFileHelper.getHumanSize(size)).append("\n");
+						report.append("\t\t\tinvalid: ").append(OmFileHelper.getHumanSize(invalid)).append("\n");
+						report.append("\t\t\tdeleted: ").append(OmFileHelper.getHumanSize(params[0])).append("\n");
+						report.append("\t\t\tmissing count: ").append(params[1]).append("\n");
+						report.append("\t\trest: ").append(OmFileHelper.getHumanSize(restSize)).append("\n");
+					}
+					System.out.println(report);
+				} catch (Exception e) {
+					handleError("Files failed", e);
+				}
+				break;
+			case usage:
+			default:
+				usage();
+				break;
+		}
+		
+		System.out.println("... Done");
+		System.exit(0);
+	}
+	
+	private long cleanUpFile(long invalid, boolean cleanup, File f) {
+		if (f.exists()) {
+			if (cleanup) {
+				FileHelper.removeRec(f);
+			} else {
+				invalid += f.length();
+			}
+		}
+		return invalid;
+	}
+	private void checkRecordingFile(File hibernateDir, String name, boolean deleted, long[] params, boolean cleanup) {
+		File flv = name != null ? new File(hibernateDir, name) : null;
+		if (flv != null) {
+			if (flv.exists() && flv.isFile()) {
+				if (deleted) {
+					params[0] += flv.length();
+					if (cleanup) {
+						FileHelper.removeRec(flv);
+					}
+				}
+			} else {
+				params[1]++;
+			}
+		}
+	}
+	
+	private long getUserIdByProfile(String name) {
+		long result = -1;
+		if (name.startsWith(OmFileHelper.profilesPrefix)) {
+			try {
+				result = Long.parseLong(name.substring(OmFileHelper.profilesPrefix.length()));
+			} catch (Exception e) {
+				//noop
+			}
+		}
+		return result;
+	}
+	
+	private void checkAdminDetails(String ctxName) throws Exception {
+		cfg.username = cmdl.getOptionValue("user");
+		cfg.email = cmdl.getOptionValue("email");
+		cfg.group = cmdl.getOptionValue("group");
+		if (cfg.username == null || cfg.username.length() < USER_LOGIN_MINIMUM_LENGTH) {
+			System.out.println("User login was not provided, or too short, should be at least " + USER_LOGIN_MINIMUM_LENGTH + " character long.");
+			System.exit(1);
+		}
+		
+		try {
+			if (cfg.email == null || !MailUtil.matches(cfg.email)) {
+			    throw new AddressException("Invalid address");
+			}
+			new InternetAddress(cfg.email, true);
+		} catch (AddressException ae) {
+			System.out.println("Please provide non-empty valid email: '" + cfg.email + "' is not valid.");
+			System.exit(1);
+		}
+		if (cfg.group == null || cfg.group.length() < 1) {
+			System.out.println("User group was not provided, or too short, should be at least 1 character long: " + cfg.group);
+			System.exit(1);
+		}
+		cfg.password = cmdl.getOptionValue("password");
+		ConfigurationDao cfgDao = getApplicationContext(ctxName).getBean(ConfigurationDao.class);
+		if (invalidPassword(cfg.password, cfgDao)) {
+			System.out.print("Please enter password for the user '" + cfg.username + "':");
+			cfg.password = new BufferedReader(new InputStreamReader(System.in)).readLine();
+			if (invalidPassword(cfg.password, cfgDao)) {
+				System.out.println("Password was not provided, or too short, should be at least " + getMinPasswdLength(cfgDao) + " character long.");
+				System.exit(1);
+			}
+		}
+		Map<String, String> tzMap = ImportHelper.getAllTimeZones(TimeZone.getAvailableIDs());
+		cfg.ical_timeZone = null;
+		if (cmdl.hasOption("tz")) {
+			cfg.ical_timeZone = cmdl.getOptionValue("tz");
+			cfg.ical_timeZone = tzMap.containsKey(cfg.ical_timeZone) ? cfg.ical_timeZone : null;
+		}
+		if (cfg.ical_timeZone == null) {
+			System.out.println("Please enter timezone, Possible timezones are:");
+			
+			for (String tzIcal : tzMap.keySet()) {
+				System.out.println(String.format("%1$-25s%2$s", "\"" + tzIcal + "\"", tzMap.get(tzIcal)));
+			}
+			System.exit(1);
+		}
+	}
+	
+	public static void dropDB() throws Exception {
+		File conf = new File(OmFileHelper.getWebinfDir(), PERSISTENCE_NAME);
+		ConnectionProperties connectionProperties = ConnectionPropertiesPatcher.getConnectionProperties(conf);
+		immediateDropDB(connectionProperties);
+	}
+	
+	private void dropDB(ConnectionProperties props) throws Exception {
+		if(cmdl.hasOption("drop")) {
+			immediateDropDB(props);
+		}
+	}
+	
+	private static LogImpl getLogImpl(JDBCConfiguration conf) {
+		return (LogImpl)conf.getLog(JDBCConfiguration.LOG_SCHEMA);
+	}
+
+	private static void immediateDropDB(ConnectionProperties props) throws Exception {
+    	JDBCConfigurationImpl conf = new JDBCConfigurationImpl();
+        try {
+        	conf.setPropertiesFile(new File(OmFileHelper.getWebinfDir(), PERSISTENCE_NAME));
+        	conf.setConnectionDriverName(props.getDriver());
+        	conf.setConnectionURL(props.getURL());
+        	conf.setConnectionUserName(props.getLogin());
+        	conf.setConnectionPassword(props.getPassword());
+    		//HACK to suppress all warnings
+    		getLogImpl(conf).setLevel(Log.INFO);
+    		SchemaTool st = new SchemaTool(conf, SchemaTool.ACTION_DROPDB);
+    		st.setIgnoreErrors(true);
+    		st.setOpenJPATables(true);
+    		st.setIndexes(false);
+    		st.setPrimaryKeys(false);
+    		st.run();
+        } finally {
+            conf.close();
+        }
+	}
+
+	private File checkRestoreFile(String file) {
+		File backup = new File(file);
+		if (!cmdl.hasOption("file") || !backup.exists() || !backup.isFile()) {
+			System.out.println("File should be specified, and point the existent zip file");
+			usage();
+			System.exit(1);
+		}
+		
+		return backup;
+	}
+	
+	private void restoreOm(String ctxName, File backup) {
+		try {
+			BackupImport importCtrl = getApplicationContext(ctxName).getBean(BackupImport.class);
+			importCtrl.performImport(new FileInputStream(backup));
+		} catch (Exception e) {
+			handleError("Restore failed", e);
+		}
+	}
+	
+	public static void main(String[] args) {
+		new Admin().process(args);
+	}
+}
diff --git a/src/install/java/org/apache/openmeetings/cli/ConnectionProperties.java b/src/install/java/org/apache/openmeetings/cli/ConnectionProperties.java
new file mode 100644
index 0000000..f3d3373
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/cli/ConnectionProperties.java
@@ -0,0 +1,82 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.cli;

+

+public class ConnectionProperties {

+	public enum DbType {

+		db2

+		, derby

+		, mssql

+		, mysql

+		, oracle

+		, postgresql

+	}

+

+	private String driver = "org.apache.derby.jdbc.ClientDriver";

+	private String url = "jdbc:derby:openmeetings";

+	private String login = "user";

+	private String password = "secret";

+	private DbType dbType = DbType.derby;

+

+	public String getDriver() {

+		return driver;

+	}

+

+	public void setDriver(String driverName) {

+		this.driver = driverName;

+	}

+

+	public String getURL() {

+		return url;

+	}

+

+	public void setURL(String connectionURL) {

+		this.url = connectionURL;

+	}

+

+	public String getLogin() {

+		return login;

+	}

+

+	public void setLogin(String connectionLogin) {

+		this.login = connectionLogin;

+	}

+

+	public String getPassword() {

+		return password;

+	}

+

+	public void setPassword(String connectionPass) {

+		this.password = connectionPass;

+	}

+

+	public DbType getDbType() {

+		return dbType;

+	}

+

+	public void setDbType(DbType dbType) {

+		this.dbType = dbType;

+	}

+	

+	@Override

+	public String toString() {

+		return "ConnectionProperties [type=" + dbType + ", driver=" + driver + ", url=" + url

+				+ ", login=" + login + ", password=" + password + "]";

+	}

+}

diff --git a/src/install/java/org/apache/openmeetings/cli/ConnectionPropertiesPatcher.java b/src/install/java/org/apache/openmeetings/cli/ConnectionPropertiesPatcher.java
new file mode 100644
index 0000000..d22d067
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/cli/ConnectionPropertiesPatcher.java
@@ -0,0 +1,190 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.cli;

+

+import java.io.File;

+

+import javax.xml.parsers.DocumentBuilder;

+import javax.xml.parsers.DocumentBuilderFactory;

+import javax.xml.transform.Transformer;

+import javax.xml.transform.TransformerFactory;

+import javax.xml.transform.dom.DOMSource;

+import javax.xml.transform.stream.StreamResult;

+import javax.xml.xpath.XPath;

+import javax.xml.xpath.XPathConstants;

+import javax.xml.xpath.XPathExpression;

+import javax.xml.xpath.XPathFactory;

+

+import org.apache.commons.lang3.StringEscapeUtils;

+import org.apache.commons.lang3.StringUtils;

+import org.apache.openmeetings.cli.ConnectionProperties.DbType;

+import org.w3c.dom.Attr;

+import org.w3c.dom.Document;

+import org.w3c.dom.Element;

+

+public abstract class ConnectionPropertiesPatcher {

+	protected static final String URL_PREFIX = "Url=";

+	protected ConnectionProperties connectionProperties;

+	

+	public static ConnectionPropertiesPatcher getPatcher(String _dbType, ConnectionProperties connectionProperties) {

+		DbType dbType = DbType.valueOf(_dbType);

+		ConnectionPropertiesPatcher patcher = null;

+		switch (dbType) {

+			case db2:

+				patcher = new Db2Patcher();

+				break;

+			case mssql:

+				patcher = new MssqlPatcher();

+				break;

+			case mysql:

+				patcher = new MysqlPatcher();

+				break;

+			case oracle:

+				patcher = new OraclePatcher();

+				break;

+			case postgresql:

+				patcher = new PostgresPatcher();

+				break;

+			case derby:

+			default:

+				patcher = new DerbyPatcher();

+				break;

+		}

+		patcher.connectionProperties = connectionProperties;

+		return patcher;

+	}

+	

+	static ConnectionProperties getConnectionProperties(File conf) throws Exception {

+		ConnectionProperties connectionProperties = new ConnectionProperties();

+		Document doc = getDocument(conf);

+		Attr attr = getConnectionProperties(doc);

+		String[] tokens = attr.getValue().split(",");

+		processBasicProperties(tokens, null, null, connectionProperties);

+		

+		return connectionProperties;

+	}

+	

+	private static Document getDocument(File xml) throws Exception {

+		DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();

+		//dbFactory.setNamespaceAware(true);

+		DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();

+		return dBuilder.parse(xml);

+	}

+	

+	private static Attr getConnectionProperties(Document doc) throws Exception {

+		XPath xPath = XPathFactory.newInstance().newXPath();

+		XPathExpression expr = xPath.compile("/persistence/persistence-unit/properties/property[@name='openjpa.ConnectionProperties']");

+

+		Element element = (Element)expr.evaluate(doc, XPathConstants.NODE);

+		return element.getAttributeNode("value");

+	}

+	

+	public void patch(File srcXml, File destXml, String host, String port, String db, String user, String pass) throws Exception {

+		Document doc = getDocument(srcXml);

+		

+		Attr val = getConnectionProperties(doc);

+		val = patchAttribute(val, host, port, db, user, pass);

+		

+		TransformerFactory transformerFactory = TransformerFactory.newInstance();

+		Transformer transformer = transformerFactory.newTransformer();

+		DOMSource source = new DOMSource(doc);

+		transformer.transform(source, new StreamResult(destXml.getCanonicalPath())); //this constructor is used to avoid transforming path to URI

+	}

+	

+	protected Attr patchAttribute(Attr attr, String host, String port, String db, String user, String pass) {

+		String[] tokens = attr.getValue().split(",");

+		processBasicProperties(tokens, user, pass, connectionProperties);

+		patchDb(tokens, host, port, db);

+		attr.setValue(StringUtils.join(tokens, ","));

+		return attr;

+	}

+

+	protected static void patchProp(String[] tokens, int idx, String name, String value) {

+		String prop = tokens[idx].trim();

+		if (prop.startsWith(name)) {

+			prop = name + "=" + StringEscapeUtils.escapeXml(value);

+			tokens[idx] = prop;

+		}

+	}

+	

+	private static void processBasicProperties(String[] tokens, String user,

+			String pass, ConnectionProperties connectionProperties) {

+		String prop;

+		for (int i = 0; i < tokens.length; ++i) {

+			prop = getPropFromPersistence(tokens, i, "DriverClassName");

+			if (prop != null) {

+				connectionProperties.setDriver(prop);

+			}

+			

+			if (user != null) {

+				patchProp(tokens, i, "Username", user);

+				connectionProperties.setLogin(user);

+			} else {

+				prop = getPropFromPersistence(tokens, i, "Username");

+				if (prop != null) {

+					connectionProperties.setLogin(prop);

+				}

+			}

+			

+			if (pass != null) {

+				patchProp(tokens, i, "Password", pass);

+				connectionProperties.setPassword(pass);

+			} else {

+				prop = getPropFromPersistence(tokens, i, "Password");

+				if (prop != null) {

+					connectionProperties.setPassword(prop);

+				}

+			}

+			prop = getPropFromPersistence(tokens, i, "Url");

+			if (prop != null) {

+				try {

+					//will try to "guess" dbType

+					String[] parts = prop.split(":");

+					connectionProperties.setDbType(DbType.valueOf(parts[1]));

+				} catch (Exception e) {

+					//ignore

+				}

+				connectionProperties.setURL(prop);

+			}

+		}

+	}

+	

+	protected static String getPropFromPersistence(String[] tokens, int idx, String name){

+		String prop = tokens[idx].trim();

+		if (prop.startsWith(name)) {

+			//From "Username=root" getting only "root"

+			return prop.substring(prop.indexOf("=") + 1);

+		}

+		return null;

+	}

+	

+	private void patchDb(String[] tokens, String host, String _port, String _db) {

+		for (int i = 0; i < tokens.length; ++i) {

+			String prop = tokens[i].trim();

+			if (prop.startsWith(URL_PREFIX)) {

+				String url = getUrl(prop.substring(URL_PREFIX.length()), host, _port, _db);

+				connectionProperties.setURL(url);

+				tokens[i] = URL_PREFIX + url;

+				break;

+			}

+		}

+	}

+	

+	protected abstract String getUrl(String url, String host, String port, String db);

+}

diff --git a/src/install/java/org/apache/openmeetings/cli/Db2Patcher.java b/src/install/java/org/apache/openmeetings/cli/Db2Patcher.java
new file mode 100644
index 0000000..b681979
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/cli/Db2Patcher.java
@@ -0,0 +1,28 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.cli;

+

+public class Db2Patcher extends ConnectionPropertiesPatcher {

+	@Override

+	protected String getUrl(String _url, String host, String _port, String _db) {

+		String port = (_port == null) ? "50000" : _port;

+		String db = (_db == null) ? "openmeet" : _db;

+		return "jdbc:db2://" + host + ":" + port + "/" + db; 

+	}

+}

diff --git a/src/install/java/org/apache/openmeetings/cli/DerbyPatcher.java b/src/install/java/org/apache/openmeetings/cli/DerbyPatcher.java
new file mode 100644
index 0000000..465d060
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/cli/DerbyPatcher.java
@@ -0,0 +1,33 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.cli;

+

+public class DerbyPatcher extends ConnectionPropertiesPatcher {

+	@Override

+	protected String getUrl(String _url, String host, String _port, String _db) {

+		String db = (_db == null) ? "openmeetings" : _db;

+		String suffix = _url.substring(_url.indexOf(';'));

+		

+		if (host != null && _port != null) {

+			return "jdbc:derby" + "://" + host + ":" + _port + "/" + db + suffix;

+		}

+		

+		return "jdbc:derby" + ":" + db + suffix; 

+	}

+}

diff --git a/src/install/java/org/apache/openmeetings/cli/DummyServletContext.java b/src/install/java/org/apache/openmeetings/cli/DummyServletContext.java
new file mode 100644
index 0000000..fe517e6
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/cli/DummyServletContext.java
@@ -0,0 +1,304 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.cli;

+

+import java.io.InputStream;

+import java.net.MalformedURLException;

+import java.net.URL;

+import java.util.Enumeration;

+import java.util.EventListener;

+import java.util.Map;

+import java.util.Set;

+

+import javax.servlet.Filter;

+import javax.servlet.FilterRegistration;

+import javax.servlet.RequestDispatcher;

+import javax.servlet.Servlet;

+import javax.servlet.ServletContext;

+import javax.servlet.ServletException;

+import javax.servlet.ServletRegistration;

+import javax.servlet.SessionCookieConfig;

+import javax.servlet.SessionTrackingMode;

+import javax.servlet.ServletRegistration.Dynamic;

+import javax.servlet.descriptor.JspConfigDescriptor;

+

+public class DummyServletContext implements ServletContext {

+	private String ctx;

+	

+	public DummyServletContext(String ctx) {

+		this.ctx = ctx;

+	}

+	

+	public ServletContext getContext(String uripath) {

+		// stab

+		return null;

+	}

+

+	public String getContextPath() {

+		return ctx;

+	}

+

+	public int getMajorVersion() {

+		// stab

+		return 0;

+	}

+

+	public int getMinorVersion() {

+		// stab

+		return 0;

+	}

+

+	public int getEffectiveMajorVersion() {

+		// stab

+		return 0;

+	}

+

+	public int getEffectiveMinorVersion() {

+		// stab

+		return 0;

+	}

+

+	public String getMimeType(String file) {

+		// stab

+		return null;

+	}

+

+	public Set<String> getResourcePaths(String path) {

+		// stab

+		return null;

+	}

+

+	public URL getResource(String path)

+			throws MalformedURLException {

+		// stab

+		return null;

+	}

+

+	public InputStream getResourceAsStream(String path) {

+		// stab

+		return null;

+	}

+

+	public RequestDispatcher getRequestDispatcher(String path) {

+		// stab

+		return null;

+	}

+

+	public RequestDispatcher getNamedDispatcher(String name) {

+		// stab

+		return null;

+	}

+

+	public Servlet getServlet(String name) throws ServletException {

+		// stab

+		return null;

+	}

+

+	public Enumeration<Servlet> getServlets() {

+		// stab

+		return null;

+	}

+

+	public Enumeration<String> getServletNames() {

+		// stab

+		return null;

+	}

+

+	public void log(String msg) {

+		// stab

+	}

+

+	public void log(Exception exception, String msg) {

+		// stab

+	}

+

+	public void log(String message, Throwable throwable) {

+		// stab

+	}

+

+	public String getRealPath(String path) {

+		// stab

+		return null;

+	}

+

+	public String getServerInfo() {

+		// stab

+		return null;

+	}

+

+	public String getInitParameter(String name) {

+		// stab

+		return null;

+	}

+

+	public Enumeration<String> getInitParameterNames() {

+		// stab

+		return null;

+	}

+

+	public boolean setInitParameter(String name, String value) {

+		// stab

+		return false;

+	}

+

+	public Object getAttribute(String name) {

+		// stab

+		return null;

+	}

+

+	public Enumeration<String> getAttributeNames() {

+		// stab

+		return null;

+	}

+

+	public void setAttribute(String name, Object object) {

+		// stab

+	}

+

+	public void removeAttribute(String name) {

+		// stab

+	}

+

+	public String getServletContextName() {

+		// stab

+		return null;

+	}

+

+	public Dynamic addServlet(String servletName, String className) {

+		// stab

+		return null;

+	}

+

+	public Dynamic addServlet(String servletName, Servlet servlet) {

+		// stab

+		return null;

+	}

+

+	public Dynamic addServlet(String servletName,

+			Class<? extends Servlet> servletClass) {

+		// stab

+		return null;

+	}

+

+	public <T extends Servlet> T createServlet(Class<T> c)

+			throws ServletException {

+		// stab

+		return null;

+	}

+

+	public ServletRegistration getServletRegistration(

+			String servletName) {

+		// stab

+		return null;

+	}

+

+	public Map<String, ? extends ServletRegistration> getServletRegistrations() {

+		// stab

+		return null;

+	}

+

+	public javax.servlet.FilterRegistration.Dynamic addFilter(

+			String filterName, String className) {

+		// stab

+		return null;

+	}

+

+	public javax.servlet.FilterRegistration.Dynamic addFilter(

+			String filterName, Filter filter) {

+		// stab

+		return null;

+	}

+

+	public javax.servlet.FilterRegistration.Dynamic addFilter(

+			String filterName, Class<? extends Filter> filterClass) {

+		// stab

+		return null;

+	}

+

+	public <T extends Filter> T createFilter(Class<T> c)

+			throws ServletException {

+		// stab

+		return null;

+	}

+

+	public FilterRegistration getFilterRegistration(

+			String filterName) {

+		// stab

+		return null;

+	}

+

+	public Map<String, ? extends FilterRegistration> getFilterRegistrations() {

+		// stab

+		return null;

+	}

+

+	public SessionCookieConfig getSessionCookieConfig() {

+		// stab

+		return null;

+	}

+

+	public void setSessionTrackingModes(

+			Set<SessionTrackingMode> sessionTrackingModes)

+			throws IllegalStateException, IllegalArgumentException {

+		// stab

+	}

+

+	public Set<SessionTrackingMode> getDefaultSessionTrackingModes() {

+		// stab

+		return null;

+	}

+

+	public Set<SessionTrackingMode> getEffectiveSessionTrackingModes() {

+		// stab

+		return null;

+	}

+

+	public void addListener(

+			Class<? extends EventListener> listenerClass) {

+		// stab

+	}

+

+	public void addListener(String className) {

+		// stab

+	}

+

+	public <T extends EventListener> void addListener(T t) {

+		// stab

+	}

+

+	public <T extends EventListener> T createListener(Class<T> c)

+			throws ServletException {

+		// stab

+		return null;

+	}

+

+	public void declareRoles(String... roleNames) {

+		// stab

+	}

+

+	public ClassLoader getClassLoader() {

+		// stab

+		return null;

+	}

+

+	public JspConfigDescriptor getJspConfigDescriptor() {

+		// stab

+		return null;

+	}

+}

diff --git a/src/install/java/org/apache/openmeetings/cli/MssqlPatcher.java b/src/install/java/org/apache/openmeetings/cli/MssqlPatcher.java
new file mode 100644
index 0000000..681331d
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/cli/MssqlPatcher.java
@@ -0,0 +1,28 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.cli;

+

+public class MssqlPatcher extends ConnectionPropertiesPatcher {

+	@Override

+	protected String getUrl(String _url, String host, String _port, String _db) {

+		String port = (_port == null) ? "1433" : _port;

+		String db = (_db == null) ? "openmeetings" : _db;

+		return "jdbc:sqlserver://" + host + ":" + port + ";databaseName=" + db;

+	}

+}

diff --git a/src/install/java/org/apache/openmeetings/cli/MysqlPatcher.java b/src/install/java/org/apache/openmeetings/cli/MysqlPatcher.java
new file mode 100644
index 0000000..163e710
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/cli/MysqlPatcher.java
@@ -0,0 +1,29 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.cli;

+

+public class MysqlPatcher extends ConnectionPropertiesPatcher {

+	@Override

+	protected String getUrl(String _url, String host, String _port, String _db) {

+		String port = (_port == null) ? "3306" : _port;

+		String db = (_db == null) ? "openmeetings" : _db;

+		String suffix = _url.substring(_url.indexOf('?'));

+		return "jdbc:mysql://" + host + ":" + port + "/" + db + suffix;

+	}

+}

diff --git a/src/install/java/org/apache/openmeetings/cli/OmHelpFormatter.java b/src/install/java/org/apache/openmeetings/cli/OmHelpFormatter.java
new file mode 100644
index 0000000..cffae53
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/cli/OmHelpFormatter.java
@@ -0,0 +1,206 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.cli;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.LinkedHashMap;
+import java.util.List;
+
+import org.apache.commons.cli.HelpFormatter;
+import org.apache.commons.cli.Option;
+import org.apache.commons.cli.OptionGroup;
+import org.apache.commons.cli.Options;
+
+public class OmHelpFormatter extends HelpFormatter {
+	private static String GENERAL_OPTION_GROUP = "";
+	private int maxPrefixLength = 0;
+	
+	@SuppressWarnings("unchecked")
+	private List<OmOption> getReqOptions(Options opts) {
+		//suppose we have only 1 group (for now)
+		OptionGroup g = ((List<OptionGroup>)opts.getRequiredOptions()).get(0);
+		List<OmOption> result = new ArrayList<OmOption>(g.getOptions());
+		Collections.sort(result, new Comparator<OmOption>() {
+			public int compare(OmOption o1, OmOption o2) {
+				return o1.getOrder() - o2.getOrder();
+			}
+		});
+		return result;
+	}
+	
+	@SuppressWarnings("unchecked")
+	private LinkedHashMap<String, List<OmOption>> getOptions(Options opts, int leftPad) {
+		final String longOptSeparator = " ";
+		final String lpad = createPadding(leftPad);
+		final String lpadParam = createPadding(leftPad + 2);
+		List<OmOption> reqOptions = getReqOptions(opts);
+		LinkedHashMap<String, List<OmOption>> map = new LinkedHashMap<String, List<OmOption>>(reqOptions.size());
+		map.put(GENERAL_OPTION_GROUP, new ArrayList<OmOption>());
+		for (OmOption o : reqOptions) {
+			map.put(o.getOpt(), new ArrayList<OmOption>());
+		}
+		for (OmOption o : (Collection<OmOption>)opts.getOptions()) {
+			//TODO need better check (required option should go first and should not be duplicated
+			boolean skipOption = map.containsKey(o.getOpt());
+			boolean mainOption = skipOption || o.getGroup() == null;
+			
+			// first create list containing only <lpad>-a,--aaa where
+			// -a is opt and --aaa is long opt; in parallel look for
+			// the longest opt string this list will be then used to
+			// sort options ascending
+			StringBuilder optBuf = new StringBuilder();
+			if (o.getOpt() == null) {
+				optBuf.append(mainOption ? lpad : lpadParam).append("   ").append(getLongOptPrefix())
+						.append(o.getLongOpt());
+			} else {
+				optBuf.append(mainOption ? lpad : lpadParam).append(getOptPrefix())
+						.append(o.getOpt());
+
+				if (o.hasLongOpt()) {
+					optBuf.append(',').append(getLongOptPrefix())
+							.append(o.getLongOpt());
+				}
+			}
+
+			if (o.hasArg()) {
+				String argName = o.getArgName();
+				if (argName != null && argName.length() == 0) {
+					// if the option has a blank argname
+					optBuf.append(' ');
+				} else {
+					optBuf.append(o.hasLongOpt() ? longOptSeparator : " ");
+					optBuf.append("<")
+							.append(argName != null ? o.getArgName()
+									: getArgName()).append(">");
+				}
+			}
+
+			o.setHelpPrefix(optBuf);
+			maxPrefixLength = Math.max(optBuf.length(), maxPrefixLength);
+			
+			if (skipOption) {
+				//TODO need better check (required option should go first and should not be duplicated
+				continue;
+			}
+			String grp = o.getGroup();
+			grp = grp == null ? GENERAL_OPTION_GROUP : grp;
+			String[] grps = grp.split(",");
+			for(String g : grps) {
+				map.get(g).add(o);
+			}
+		}
+		for (String _key : map.keySet()) {
+			final String key = _key;
+			List<OmOption> options = map.get(key);
+			Collections.sort(options, new Comparator<OmOption>(){
+				public int compare(OmOption o1, OmOption o2) {
+					boolean o1opt = !o1.isOptional(key);
+					boolean o2opt = !o2.isOptional(key);
+					return (o1opt && o2opt || !o1opt && !o2opt) ? (o1.getOpt() == null ? 1 : -1) : (o1opt ? -1 : 1);
+				}
+				
+			});
+			if (opts.hasOption(key)) {
+				options.add(0, (OmOption)opts.getOption(key));
+			}
+		}
+		return map;
+	}
+	
+	private StringBuilder getReqOptionsString(Options opts) {
+		String delim = "";
+		StringBuilder result = new StringBuilder();
+		for (Option o : getReqOptions(opts)) {
+			result.append(delim).append("-").append(o.getOpt());
+			delim = "|";
+		}
+		return result;
+	}
+	
+	@Override
+	protected StringBuffer renderOptions(StringBuffer sb, int width, Options options, int leftPad, int descPad) {
+		final String dpad = createPadding(descPad);
+		final String optional = "(optional) ";
+
+		LinkedHashMap<String, List<OmOption>> optList = getOptions(options, leftPad);
+
+		char[] delimiter = new char[width - 2];
+		Arrays.fill(delimiter, '-');
+
+		for (String key : optList.keySet()) {
+			if (GENERAL_OPTION_GROUP.equals(key)) {
+				sb.append("General options:").append(getNewLine());
+			}
+			for (OmOption option : optList.get(key)) {
+				StringBuilder optBuf = new StringBuilder(option.getHelpPrefix());
+
+				if (optBuf.length() < maxPrefixLength) {
+					optBuf.append(createPadding(maxPrefixLength - optBuf.length()));
+				}
+
+				optBuf.append(dpad);
+
+				int nextLineTabStop = maxPrefixLength + descPad;
+
+				if (option.isOptional(key)) {
+					optBuf.append(optional);
+				}
+				if (option.getDescription() != null) {
+					optBuf.append(option.getDescription());
+				}
+
+				renderWrappedText(sb, width, nextLineTabStop, optBuf.toString());
+
+				sb.append(getNewLine());
+			}
+			sb.append(delimiter).append(getNewLine());
+		}
+		return sb;
+	}
+
+	@Override
+	public void printHelp(PrintWriter pw, int width, String cmdLineSyntax,
+			String header, Options options, int leftPad, int descPad,
+			String footer, boolean autoUsage) {
+		if ((cmdLineSyntax == null) || (cmdLineSyntax.length() == 0)) {
+			throw new IllegalArgumentException("cmdLineSyntax not provided");
+		}
+
+		printUsage(pw, width, cmdLineSyntax, options);
+
+		if ((header != null) && (header.trim().length() > 0)) {
+			printWrapped(pw, width, header);
+		}
+
+		printOptions(pw, width, options, leftPad, descPad);
+
+		if ((footer != null) && (footer.trim().length() > 0)) {
+			printWrapped(pw, width, footer);
+		}
+	}
+    
+	public void printUsage(PrintWriter pw, int width, String app, Options opts) {
+		pw.println(String.format("usage: %1$s [%2$s] [options]", app, getReqOptionsString(opts)));
+	}
+}
diff --git a/src/install/java/org/apache/openmeetings/cli/OmOption.java b/src/install/java/org/apache/openmeetings/cli/OmOption.java
new file mode 100644
index 0000000..c9a15d0
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/cli/OmOption.java
@@ -0,0 +1,107 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.cli;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.cli.Option;
+
+public class OmOption extends Option {
+	private static final long serialVersionUID = -544426769898915573L;
+	private String group = null;
+	private Map<String, Boolean> optional = null;
+	private int order = 0;
+	private String helpPrefix = "";
+
+	public OmOption(String group, String opt, String longOpt, boolean hasArg,
+			String description, boolean optional) throws IllegalArgumentException {
+		this(group, 0, opt, longOpt, hasArg, description);
+		setOptional(optional);
+	}
+
+	public OmOption(String group, String opt, String longOpt, boolean hasArg,
+			String description, String optional) throws IllegalArgumentException {
+		this(group, 0, opt, longOpt, hasArg, description);
+		setOptional(optional);
+	}
+
+	public OmOption(String group, int order, String opt, String longOpt, boolean hasArg,
+			String description) throws IllegalArgumentException {
+		super(opt, longOpt, hasArg, description);
+		this.group = group;
+		this.setOrder(order);
+	}
+
+	public OmOption(String group, String opt, String longOpt, boolean hasArg,
+			String description) throws IllegalArgumentException {
+		this(group, 0, opt, longOpt, hasArg, description);
+	}
+
+	public String getGroup() {
+		return group;
+	}
+
+	public void setGroup(String group) {
+		this.group = group;
+	}
+
+	public boolean isOptional(String group) {
+		boolean result = false;
+		if (optional != null) {
+			String[] grps = group.split(",");
+			for(String g : grps) {
+				result |= optional.containsKey(g) ? optional.get(g) : false;
+			}
+		}
+		return result;
+	}
+
+	public void setOptional(boolean val) {
+		setOptional(group);
+	}
+	
+	public void setOptional(String group) {
+		String[] grps = group.split(",");
+		optional = new HashMap<String, Boolean>(grps.length);
+		for(String g : grps) {
+			optional.put(g, true);
+		}
+	}
+
+	public int getOrder() {
+		return order;
+	}
+
+	public void setOrder(int order) {
+		this.order = order;
+	}
+
+	public String getHelpPrefix() {
+		return helpPrefix;
+	}
+
+	public void setHelpPrefix(StringBuilder helpPrefix) {
+		this.helpPrefix = helpPrefix.toString();
+	}
+
+	public void setHelpPrefix(String helpPrefix) {
+		this.helpPrefix = helpPrefix;
+	}
+}
diff --git a/src/install/java/org/apache/openmeetings/cli/OraclePatcher.java b/src/install/java/org/apache/openmeetings/cli/OraclePatcher.java
new file mode 100644
index 0000000..6cc9428
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/cli/OraclePatcher.java
@@ -0,0 +1,28 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.cli;

+

+public class OraclePatcher extends ConnectionPropertiesPatcher {

+	@Override

+	protected String getUrl(String _url, String host, String _port, String _db) {

+		String port = (_port == null) ? "1521" : _port;

+		String db = (_db == null) ? "openmeetings" : _db;

+		return "jdbc:oracle:thin:@" + host + ":" + port + ":" + db; 

+	}

+}

diff --git a/src/install/java/org/apache/openmeetings/cli/PostgresPatcher.java b/src/install/java/org/apache/openmeetings/cli/PostgresPatcher.java
new file mode 100644
index 0000000..e1b885c
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/cli/PostgresPatcher.java
@@ -0,0 +1,28 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.cli;

+

+public class PostgresPatcher extends ConnectionPropertiesPatcher {

+	@Override

+	protected String getUrl(String _url, String host, String _port, String _db) {

+		String port = (_port == null) ? "5432" : _port;

+		String db = (_db == null) ? "openmeetings" : _db;

+		return "jdbc:postgresql://" + host + ":" + port + "/" + db; 

+	}

+}

diff --git a/src/install/java/org/apache/openmeetings/installation/ImportInitvalues.java b/src/install/java/org/apache/openmeetings/installation/ImportInitvalues.java
new file mode 100644
index 0000000..26649f6
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/installation/ImportInitvalues.java
@@ -0,0 +1,1004 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.installation;
+
+import static org.apache.openmeetings.db.dao.basic.ConfigurationDao.DEFAULT_MAX_UPLOAD_SIZE;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_APPLICATION_BASE_URL;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_APPOINTMENT_REMINDER_MINUTES;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_CRYPT_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_MYROOMS_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_RSS_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_LANDING_ZONE;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_LDAP_ID;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAUT_LANG_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FRONTEND_REGISTER_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_IGNORE_BAD_SSL;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_LOGIN_MIN_LENGTH_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_MAX_UPLOAD_SIZE_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_PASS_MIN_LENGTH_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REDIRECT_URL_FOR_EXTERNAL_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_RSS_FEED1_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_RSS_FEED2_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_SOAP_REGISTER_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.USER_LOGIN_MINIMUM_LENGTH;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.USER_PASSWORD_MINIMUM_LENGTH;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.basic.ErrorDao;
+import org.apache.openmeetings.db.dao.basic.NavigationDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentCategoryDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypDao;
+import org.apache.openmeetings.db.dao.label.FieldLanguageDao;
+import org.apache.openmeetings.db.dao.label.FieldValueDao;
+import org.apache.openmeetings.db.dao.room.PollDao;
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.room.RoomTypeDao;
+import org.apache.openmeetings.db.dao.room.SipDao;
+import org.apache.openmeetings.db.dao.server.OAuth2Dao;
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.dao.user.IUserManager;
+import org.apache.openmeetings.db.dao.user.OrganisationDao;
+import org.apache.openmeetings.db.dao.user.SalutationDao;
+import org.apache.openmeetings.db.dao.user.StateDao;
+import org.apache.openmeetings.db.dao.user.UserLevelDao;
+import org.apache.openmeetings.db.entity.label.FieldLanguage;
+import org.apache.openmeetings.db.entity.label.Fieldlanguagesvalues;
+import org.apache.openmeetings.db.entity.label.Fieldvalues;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.room.RoomOrganisation;
+import org.apache.openmeetings.db.entity.server.OAuthServer;
+import org.apache.openmeetings.db.entity.server.OAuthServer.RequestMethod;
+import org.apache.openmeetings.db.entity.user.Organisation;
+import org.apache.openmeetings.db.util.TimezoneUtil;
+import org.apache.openmeetings.util.OmFileHelper;
+import org.dom4j.Document;
+import org.dom4j.Element;
+import org.dom4j.io.SAXReader;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class ImportInitvalues {
+	private static final Logger log = Red5LoggerFactory.getLogger(ImportInitvalues.class, webAppRootKey);
+
+	@Autowired
+	private ConfigurationDao configurationDao;
+	@Autowired
+	private AdminUserDao usersDao;
+	@Autowired
+	private FieldLanguageDao fieldLanguageDaoImpl;
+	@Autowired
+	private FieldValueDao fieldValueDao;
+	@Autowired
+	private StateDao statemanagement;
+	@Autowired
+	private NavigationDao navimanagement;
+	@Autowired
+	private ErrorDao errorManagement;
+	@Autowired
+	private SalutationDao salutationmanagement;
+	@Autowired
+	private AppointmentCategoryDao appointmentCategoryDaoImpl;
+	@Autowired
+	private AppointmentReminderTypDao appointmentReminderTypDaoImpl;
+	@Autowired
+	private PollDao pollManager;
+	@Autowired
+	private SipDao sipDao;
+	@Autowired
+	private OAuth2Dao oauthDao;
+	@Autowired
+	private TimezoneUtil timezoneUtil;
+	@Autowired
+	private RoomTypeDao roomTypeDao;
+	@Autowired
+	private UserLevelDao userLevelDao;
+	@Autowired
+	private OrganisationDao organisationDao;
+	@Autowired
+	private IUserManager userManager;
+	@Autowired
+	private RoomDao roomDao;
+	
+	
+	private int progress = 0;
+
+	public int getProgress() {
+		return progress;
+	}
+	
+	public void loadUserLevels() {
+		userLevelDao.addUserLevel("User", 1);
+		userLevelDao.addUserLevel("Moderator", 2);
+		userLevelDao.addUserLevel("Admin", 3);
+		userLevelDao.addUserLevel("Web-Service (only access via SOAP)", 4);
+		log.debug("UserLevels ADDED");
+	}
+	
+	public void loadMainMenu() {
+		/*
+		 * ######################## Dashboard Menu Points
+		 */
+		navimanagement.addGlobalStructure("home", 1, 124, false, true, 1,
+				"home", false, 582L);
+		navimanagement.addMainStructure("dashboardModuleStartScreen", null, 1,
+				290, true, false, 1, "Dashboard Module", 1, false, 1450L);
+		navimanagement.addMainStructure("dashboardModuleCalendar", null, 2,
+				291, true, false, 1, "Module Calendar", 1, false, 1451L);
+
+		/*
+		 * ######################## Conference Menu Points
+		 */
+
+		navimanagement.addGlobalStructure("meetings", 2, 792, false, true, 1,
+				"List of Conference Rooms Global Navi", false, 793L);
+
+		navimanagement.addMainStructure("conferenceModuleRoomList",
+				"publicTabButton", 1, 777, true, false, 1,
+				"List of Conference Rooms Main Navi", 2, false, 1506L);
+
+		navimanagement.addMainStructure("conferenceModuleRoomList",
+				"privateTabButton", 2, 779, true, false, 1,
+				"List of Conference Rooms Main Navi", 2, false, 1507L);
+
+		navimanagement.addMainStructure("conferenceModuleRoomList",
+				"myTabButton", 3, 781, true, false, 1,
+				"List of Conference Rooms Main Navi", 2, false, 1508L);
+
+		/*
+		 * ######################## Recording Menu Points - disabled by default
+		 */
+
+		navimanagement.addGlobalStructure("record", 3, 395, false, true, 1,
+				"record", false, 583L);
+		navimanagement.addMainStructure("recordModule", null, 1, 395, true,
+				false, 1, "Module Recording Player", 3, false, 1452L);
+
+		/*
+		 * ######################## Event Menu Points
+		 */
+
+		navimanagement.addGlobalStructure("events", 4, 3, false, true, 1,
+				"List of Event Rooms Global Navi", true, 585L);
+
+		navimanagement
+				.addMainStructure("eventModuleRoomList", null, 1, 3, true,
+						false, 1, "List of Event Rooms Main Navi", 4, false,
+						null);
+
+		/*
+		 * ######################## Moderation Menu Points - disabled by default
+		 */
+		navimanagement.addGlobalStructure("moderate", 5, 649L, false, true, 2,
+				"Moderation Menu", true, 660L);
+
+		navimanagement.addMainStructure("moderatorModuleUser", null, 1, 650,
+				true, false, 1, "Moderate Users", 5, false, null);
+
+		navimanagement.addMainStructure("moderatorModuleRoom", null, 1, 651,
+				true, false, 1, "Moderate Rooms", 5, false, null);
+
+		/*
+		 * ######################## Administration Menu Points
+		 */
+
+		navimanagement.addGlobalStructure("admin", 6, 6, false, true, 3,
+				"Administration Menu", false, 586L);
+
+		navimanagement.addMainStructure("adminModuleUser", null, 14, 125, true,
+				false, 2, "Administration of Users", 6, false, 1454L);
+
+		navimanagement.addMainStructure("adminModuleConnections", null, 15,
+				597, true, false, 3, "Aministration of Connections", 6, false,
+				1455L);
+
+		navimanagement.addMainStructure("adminModuleOrg", null, 16, 127, true,
+				false, 3, "Administration of Organizations", 6, false, 1456L);
+
+		navimanagement.addMainStructure("adminModuleRoom", null, 17, 186, true,
+				false, 3, "Administration of Rooms", 6, false, 1457L);
+
+		navimanagement.addMainStructure("adminModuleConfiguration", null, 18,
+				263, true, false, 3, "Administration of Configuration", 6,
+				false, 1458L);
+
+		navimanagement.addMainStructure("adminModuleLanguages", null, 19, 348,
+				true, false, 3, "Administration of Languages", 6, false, 1459L);
+
+		navimanagement.addMainStructure("adminModuleLDAP", null, 20, 1103,
+				true, false, 3, "Administration of LDAP Configs", 6, false,
+				1460L);
+
+		navimanagement.addMainStructure("adminModuleOAuth", null, 21, 1571, 
+				true, false, 3, "Administration of OAuth2 servers", 6, false, 1572L);
+
+		navimanagement.addMainStructure("adminModuleBackup", null, 22, 367,
+				true, false, 3, "Administration of Backups", 6, false, 1461L);
+
+		navimanagement.addMainStructure("adminModuleServers", null, 23, 1498,
+				true, false, 3, "Administration of Servers", 6, false, 1499L);
+		log.debug("MainMenu ADDED");
+	}
+	
+	public void loadErrorTypes() {
+		errorManagement.addErrorType(new Long(1), new Long(322));
+		errorManagement.addErrorType(new Long(2), new Long(323));
+		log.debug("Error types ADDED");
+	}
+
+	public void loadErrorMappingsFromXML() throws Exception {
+		SAXReader reader = new SAXReader();
+		Document document = reader.read(new File(
+				OmFileHelper.getLanguagesDir(), OmFileHelper.nameOfErrorFile));
+
+		Element root = document.getRootElement();
+
+		for (@SuppressWarnings("unchecked")
+		Iterator<Element> it = root.elementIterator("row"); it.hasNext();) {
+
+			Element row = it.next();
+
+			Long errorvalues_id = null;
+			Long fieldvalues_id = null;
+			Long errortype_id = null;
+
+			for (@SuppressWarnings("unchecked")
+			Iterator<Element> itSub = row.elementIterator("field"); itSub
+					.hasNext();) {
+
+				Element field = itSub.next();
+
+				String name = field.attributeValue("name");
+				String text = field.getText();
+				// System.out.println("NAME | TEXT "+name+" | "+text);
+				if (name.equals("errorvalues_id"))
+					errorvalues_id = Long.valueOf(text).longValue();
+				if (name.equals("fieldvalues_id"))
+					fieldvalues_id = Long.valueOf(text).longValue();
+				if (name.equals("errortype_id"))
+					errortype_id = Long.valueOf(text).longValue();
+			}
+
+			errorManagement.addErrorValues(errorvalues_id, errortype_id,
+					fieldvalues_id);
+		}
+		log.debug("ErrorMappings ADDED");
+	}
+
+	public void loadSalutations() {
+		salutationmanagement.addUserSalutation("Mr", 261);
+		salutationmanagement.addUserSalutation("Ms", 262);
+		salutationmanagement.addUserSalutation("Mrs", 841);
+		salutationmanagement.addUserSalutation("Dr", 842);
+		salutationmanagement.addUserSalutation("Prof", 1464);
+		log.debug("Salutations ADDED");
+	}
+
+	public void loadConfiguration(InstallationConfig cfg) {
+		configurationDao
+				.add(
+						CONFIG_CRYPT_KEY,
+						cfg.cryptClassName,
+						null,
+						"This Class is used for Authentification-Crypting. "
+								+ "Be carefull what you do here! If you change it while "
+								+ "running previous Pass of users will not be workign anymore! "
+								+ "for more Information see http://openmeetings.apache.org/CustomCryptMechanism.html");
+
+		configurationDao.add(CONFIG_FRONTEND_REGISTER_KEY,
+				cfg.allowFrontendRegister, null, "Is user register available on login screen");
+		configurationDao.add(CONFIG_SOAP_REGISTER_KEY, "1", null, "Is user register available via SOAP/REST");
+		configurationDao.add("default_group_id", "1", null, "");
+
+		// this domain_id is the Organisation of users who register through the
+		// frontend
+		configurationDao.add("default_domain_id", "1", null, "");
+
+
+		configurationDao.add("smtp_server", cfg.smtpServer, null,
+				"this is the smtp server to send messages");
+
+		configurationDao.add("smtp_port", "" + cfg.smtpPort, null,
+				"this is the smtp server port normally 25");
+
+		configurationDao.add("system_email_addr", cfg.mailReferer,
+				null, "all send EMails by the system will have this address");
+
+		configurationDao.add("email_username", cfg.mailAuthName,
+				null, "System auth email username");
+
+		configurationDao.add("email_userpass", cfg.mailAuthPass,
+				null, "System auth email password");
+
+		configurationDao.add("mail.smtp.starttls.enable",
+				cfg.mailUseTls, null, "Enable TLS 1=true, 0=false");
+		
+		configurationDao.add("mail.smtp.connection.timeout", "30000", null,
+				"Socket connection timeout value in milliseconds. Default is infinite timeout.");
+		
+		configurationDao.add("mail.smtp.timeout", "30000", null,
+				"Socket I/O timeout value in milliseconds. Default is infinite timeout.");
+
+		configurationDao.add("application.name",
+				ConfigurationDao.DEFAULT_APP_NAME, null,
+				"Name of the Browser Title window");
+
+		// "1" == "EN"
+		configurationDao.add(CONFIG_DEFAUT_LANG_KEY, cfg.defaultLangId,
+				null, "Default System Language ID see languages.xml");
+
+		configurationDao.add("swftools_zoom", "" + cfg.swfZoom, null,
+				"dpi for conversion of PDF to SWF (should be an integer between 50 and  600 with a default value of 100 dpi)");
+
+		configurationDao.add("swftools_jpegquality",
+				"" + cfg.swfJpegQuality, null,
+				"compression quality for conversion of PDF to SWF (should be an integer between 1 and 100, with a default value of 85)");
+
+		configurationDao.add("swftools_path", cfg.swfPath, null,
+				"Path To SWF-Tools");
+
+		configurationDao.add("imagemagick_path",
+				cfg.imageMagicPath, null, "Path to ImageMagick tools");
+
+		configurationDao.add("sox_path", cfg.soxPath, null,
+				"Path To SoX-Tools");
+
+		configurationDao.add("ffmpeg_path", cfg.ffmpegPath, null,
+				"Path To FFMPEG");
+		configurationDao.add(
+						"office.path",
+						cfg.officePath,
+						null,
+						"The path to OpenOffice/LibreOffice (optional) please set this to the real path in case jodconverter is unable to find OpenOffice/LibreOffice installation automatically");
+		configurationDao.add(
+						"jod.path",
+						cfg.jodPath,
+						null,
+						"The path to JOD library (http://code.google.com/p/jodconverter), configure the path to point to the lib directory of JOD that contains also the jodconverter-core-version.jar");
+
+		configurationDao.add(CONFIG_RSS_FEED1_KEY, cfg.urlFeed, null,
+				"Feed URL");
+
+		configurationDao.add(CONFIG_RSS_FEED2_KEY, cfg.urlFeed2, null,
+				"Feed URL 2");
+
+		configurationDao.add("sendEmailAtRegister", cfg.sendEmailAtRegister,
+						null,
+						"User get a EMail with their Account data. Values: 0(No) or 1(Yes)");
+
+		configurationDao.add(
+						"sendEmailWithVerficationCode",
+						cfg.sendEmailWithVerficationCode,
+						null,
+						"User must activate their account by clicking on the "
+								+ "activation-link in the registering Email. Values: 0(No) or 1(Yes) "
+								+ "It makes no sense to make this(sendEmailWithVerficationCode) 1(Yes) while "
+								+ "sendEmailAtRegister is 0(No) cause you need"
+								+ "to send a EMail.");
+		configurationDao.add(
+						"default_export_font",
+						cfg.defaultExportFont,
+						null,
+						"The Name of the Font used for exporting/render Images from Whiteboard"
+								+ "The Font has to exist on the Server which runs Red5");
+
+		configurationDao.add("default.rpc.userid", "" + 1, null,
+				"The User-Id of the Control User in OpenMeetings");
+
+		configurationDao.add(CONFIG_APPLICATION_BASE_URL, cfg.baseUrl, null, "Base URL your OPenmeetings installation will be accessible at.");
+		
+		// ***************************************
+		// ***************************************
+		// red5SIP Integration Coniguration Values
+		// ***************************************
+
+		configurationDao.add("red5sip.enable", cfg.red5SipEnable,
+				null, "Enable to enable the red5SIP integration ");
+		configurationDao.add("red5sip.room_prefix",
+				cfg.red5SipRoomPrefix, null,
+				"Numerical prefix for OM rooms created inside the SIP");
+		configurationDao.add("red5sip.exten_context",
+				cfg.red5SipExtenContext, null,
+				"Enable to enable the red5SIP integration ");
+
+		// ***************************************
+		// ***************************************
+		// Timezone settings
+		// ***************************************
+
+		configurationDao.add("default.timezone",
+				cfg.ical_timeZone, null,
+				"This is the default timezone if nothing is specified");
+
+		// ***************************************
+		// ***************************************
+		// additional settings
+		// ***************************************
+
+		configurationDao.add("show.facebook.login", "" + 0, null,
+				"Show Facebook Login");
+
+		configurationDao
+				.add(
+						"default.quality.screensharing",
+						"1",
+						null,
+						"Default selection in ScreenSharing Quality:\n 0 - bigger frame rate, no resize\n 1 - no resize\n 2 - size == 1/2 of selected area\n 3 - size == 3/8 of selected area");
+
+		configurationDao.add("default.dashboard.tab", "0", null,
+				"Default selection in Dashboard tabs as tab-index-id");
+
+		configurationDao.add(CONFIG_DASHBOARD_SHOW_MYROOMS_KEY, "1", null, "Show My Rooms Tab");
+
+		configurationDao.add("dashboard.show.chat", "1", null, "Show Chat Tab");
+
+		configurationDao.add(CONFIG_DASHBOARD_SHOW_RSS_KEY, "0", null, "Show RSS Tab");
+
+		configurationDao
+				.add(
+						"show.whiteboard.draw.status",
+						"0",
+						null,
+						"Display name of the user who draw the current object (User Name auto-disapper after 3 seconds.");
+
+		configurationDao.add(CONFIG_MAX_UPLOAD_SIZE_KEY, ""
+				+ DEFAULT_MAX_UPLOAD_SIZE, null,
+				"Maximum size of upload file (bytes)"); // defaults to 1GB
+
+		configurationDao
+				.add(
+						CONFIG_APPOINTMENT_REMINDER_MINUTES,
+						"15",
+						null,
+						"The number of minutes before reminder emails are send. Set to 0 to disable reminder emails");
+
+		configurationDao.add(CONFIG_LOGIN_MIN_LENGTH_KEY, ""
+				+ USER_LOGIN_MINIMUM_LENGTH, null,
+				"Number of chars needed in a user login");
+
+		configurationDao.add(CONFIG_PASS_MIN_LENGTH_KEY, ""
+				+ USER_PASSWORD_MINIMUM_LENGTH, null,
+				"Number of chars needed in a user login");
+
+		configurationDao
+				.add("calendar.conference.rooms.default.size", "50",
+						null,
+						"Default number of participants conference room created via calendar");
+
+		configurationDao
+				.add(
+						"use.old.style.ffmpeg.map.option",
+						"0",
+						null,
+						"specify a 1 if you would like to use old FFMPEG -map option with 0.0 instead of 0:0");
+
+		// give exclusive audio key code
+		configurationDao
+				.add(
+						"exclusive.audio.keycode",
+						"123",
+						null,
+						"A hot key code for the 'give exclusive audio' functionality. Keycode 123 is F12");
+		// mute/unmute audio key code
+		configurationDao
+				.add(
+						"mute.keycode",
+						"118",
+						null,
+						"A hot key code for the 'mute/unmute audio' functionality. Keycode 118 is F7");
+		
+		// system-wide ldap params
+		configurationDao.add(CONFIG_DEFAULT_LDAP_ID, "0", null,
+				"Ldap domain selected by default in the login screen");
+
+		// set inviter's email address as ReplyTo in email invitations
+		configurationDao
+				.add(
+						"inviter.email.as.replyto",
+						cfg.replyToOrganizer,
+						null,
+						"Set inviter's email address as ReplyTo in email invitations (1 == set, 0 == NOT set)");
+
+		configurationDao.add(CONFIG_DEFAULT_LANDING_ZONE,
+				"user/dashboard"
+				, null
+				, "Area to be shown to the user after login. Possible values are: "
+					+ "user/dashboard, user/calendar, user/record, rooms/my, rooms/group, rooms/public, admin/user, admin/connection"
+					+ ", admin/group, admin/room, admin/config, admin/lang, admin/ldap, admin/backup, admin/server, admin/oauth2");
+		
+		// oauth2 params
+		configurationDao
+				.add(
+						CONFIG_IGNORE_BAD_SSL,
+						"no", 
+						null, 
+						"Set \"yes\" or \"no\" to enable/disable ssl certifications checking for OAuth2");
+
+		configurationDao.add(CONFIG_REDIRECT_URL_FOR_EXTERNAL_KEY, "", null,
+				"Users entered the room via invitationHash or secureHash will be redirected to this URL on connection lost");
+		
+		log.debug("Configurations ADDED");
+	}
+
+	public void loadRoomTypes() {
+		long conference_Id = roomTypeDao.addRoomType(
+				"conference", 1541, false);
+		log.debug("conference_Id: " + conference_Id);
+
+		// Audience room type is not in use anymore
+		roomTypeDao.addRoomType("audience", -1, true);
+
+		long restricted_Id = roomTypeDao.addRoomType(
+				"restricted", 1542, false);
+		log.debug("restricted_Id: " + restricted_Id);
+
+		long interview_Id = roomTypeDao.addRoomType(
+				"interview", 1543, false);
+		log.debug("interview_Id: " + interview_Id);
+
+		// Custom room type is not in use anymore
+		roomTypeDao.addRoomType("custom", -2, true);
+		log.debug("RoomTypes ADDED");
+	}
+
+	private Room createRoom(String name, long typeId, long capacity, boolean isPublic, Long orgId) {
+		Room r = new Room();
+		r.setName(name);
+		r.setComment("");
+		r.setStarttime(new Date());
+		r.setNumberOfPartizipants(capacity);
+		r.setRoomtype(roomTypeDao.get(typeId));
+		r.setIspublic(isPublic);
+		r.setAllowUserQuestions(true);
+		r.setIsAudioOnly(false);
+		r.setAllowFontStyles(true);
+
+		r.setAppointment(false);
+
+		r.setIsDemoRoom(false);
+		r.setDemoTime(null);
+
+		r.setIsModeratedRoom(false);
+		r.setHideTopBar(false);
+
+		r.setDeleted(false);
+
+		r.setIsClosed(false);
+		r.setRedirectURL(null);
+
+		r.setOwnerId(null);
+
+		r.setWaitForRecording(false);
+		r.setAllowRecording(true);
+		
+		r.setHideChat(false);
+		r.setHideActivitiesAndActions(false);
+		r.setHideActionsMenu(false);
+		r.setHideFilesExplorer(false);
+		r.setHideScreenSharing(false);	
+		r.setHideWhiteboard(false);
+		if (orgId != null) {
+			RoomOrganisation ro = new RoomOrganisation();
+			ro.setRoom(r);
+			ro.setOrganisation(organisationDao.get(orgId));
+			ro.setStarttime(new Date());
+		}
+		r = roomDao.update(r, null);
+		return r;
+	}
+	public void loadDefaultRooms(boolean createRooms) {
+		if (createRooms) {
+			// hardcoded IDs (they are not intended to be changed)
+			long conference_Id = 1;
+			long restricted_Id = 3;
+			long interview_Id = 4;
+
+			createRoom("public Interview Room", interview_Id, 16L, true, null);
+			createRoom("public Conference Room", conference_Id, 32L, true, null);
+			Room r = createRoom("public Video Only Room", conference_Id, 32L, true, null);
+			r.setHideWhiteboard(true);
+			roomDao.update(r, null);
+			createRoom("public Video And Whiteboard Room", conference_Id, 32L, true, null);
+			createRoom("public Restricted Room", restricted_Id, 100L, true, null);
+			r = createRoom("restricted room with micro option set", restricted_Id, 100L, true, null);
+			r.setShowMicrophoneStatus(true);
+			roomDao.update(r, null);
+
+			r = createRoom("conference room with micro option set", conference_Id, 32L, true, null);
+			r.setShowMicrophoneStatus(true);
+			roomDao.update(r, null);
+
+			createRoom("private Conference Room", conference_Id, 32L, false, 1L);
+		}
+	}
+
+	public void loadInitUserAndOrganisation(InstallationConfig cfg) throws Exception {
+		Long default_lang_id = Long.parseLong(cfg.defaultLangId);
+		if (default_lang_id == null) {
+			default_lang_id = 1L;
+		}
+
+		// Add default group
+		Organisation org = new Organisation();
+		org.setName(cfg.group);
+		org.setInsertedby(1L);
+		org.setDeleted(false);
+		org.setStarttime(new Date());
+		org = organisationDao.update(org, null);
+
+		Long user_id = userManager.registerUserInit(new Long(3), 3, 1,
+				1, cfg.username, cfg.password, "lastname", "firstname", cfg.email,
+				new java.util.Date(), "street", "no", "fax", "zip", 1,
+				"town", default_lang_id, false,
+				Arrays.asList(org.getOrganisation_id()), "phone", false, false,
+				timezoneUtil.getTimeZone(cfg.ical_timeZone),
+				false, "", "", false, true, null);
+
+		log.debug("Installation - User Added user-Id " + user_id);
+
+		if (user_id < 0) {
+			throw new Exception(
+					"Could not add user user returns a negative error message: "
+							+ user_id);
+		}
+	}
+
+	/**
+	 * import all language Names from the xml file
+	 * 
+	 * @param filePath
+	 * @throws Exception
+	 */
+	private void loadCountriesFiles() throws Exception {
+		SAXReader reader = new SAXReader();
+		Document document = reader.read(new File(
+				OmFileHelper.getLanguagesDir(),
+				OmFileHelper.nameOfCountriesFile));
+
+		Element root = document.getRootElement();
+
+		for (@SuppressWarnings("rawtypes")
+		Iterator it = root.elementIterator("country"); it.hasNext();) {
+			Element item = (Element) it.next();
+
+			statemanagement.addState(item.attributeValue("name"),
+					item.attributeValue("short"),
+					Integer.parseInt(item.attributeValue("code")));
+		}
+		log.debug("Countries ADDED");
+	}
+
+	/**
+	 * load all availible languages File names and language name's from the
+	 * config file
+	 * 
+	 * @param filePath
+	 * @return
+	 * @throws Exception
+	 */
+	public static Map<Integer, Map<String, Object>> getLanguageFiles() throws Exception {
+		Map<Integer, Map<String, Object>> languages = new LinkedHashMap<Integer, Map<String, Object>>();
+
+		SAXReader reader = new SAXReader();
+		Document document = reader
+				.read(new File(OmFileHelper.getLanguagesDir(),
+						OmFileHelper.nameOfLanguageFile));
+
+		Element root = document.getRootElement();
+
+		for (@SuppressWarnings("unchecked")
+		Iterator<Element> it = root.elementIterator("lang"); it.hasNext();) {
+			Element item = it.next();
+			String country = item.getText();
+			Integer id = Integer.valueOf(item.attribute("id").getValue())
+					.intValue();
+
+			String rtl = item.attribute("rightToLeft").getValue();
+			String code = item.attribute("code").getValue();
+
+			LinkedHashMap<String, Object> lang = new LinkedHashMap<String, Object>();
+			lang.put("id", id);
+			lang.put("name", country);
+			lang.put("rtl", rtl);
+			lang.put("code", code);
+			// log.error("getLanguageFiles "+country);
+			languages.put(id, lang);
+		}
+		log.debug("Language files are loaded");
+		return languages;
+	}
+
+	/**
+	 * @author o.becherer initial fillment of Appointmentcategories
+	 */
+	// ------------------------------------------------------------------------------
+	public void loadInitAppointmentCategories() {
+		log.debug("ImportInitValues.loadInitAppointmentCategories");
+
+		appointmentCategoryDaoImpl.addAppointmentCategory(new Long(-1),
+				"default", "default");
+	}
+
+	// ------------------------------------------------------------------------------
+
+	/**
+	 * @author o.becherer initial fillment of AppointMentReminderTypes
+	 */
+	// ------------------------------------------------------------------------------
+	public void loadInitAppointmentReminderTypes() {
+		log.debug("ImportInitValues.loadInitAppointmentReminderTypes");
+
+		appointmentReminderTypDaoImpl.addAppointmentReminderTyps(-1L,
+				"do not send notification", 1568);
+		appointmentReminderTypDaoImpl.addAppointmentReminderTyps(-1L,
+				"simple email", 1569);
+		appointmentReminderTypDaoImpl.addAppointmentReminderTyps(-1L,
+				"iCal email", 1570);
+	}
+
+	public void loadLanguagesFile(int langId) throws Exception {
+		Map<Integer, Map<String, Object>> listlanguages = getLanguageFiles();
+		loadLanguagesFile(listlanguages, new Hashtable<Long, Fieldvalues>(3000), langId);
+	}
+
+	public void loadLanguagesFile(String langName) throws Exception {
+		Map<Integer, Map<String, Object>> listlanguages = getLanguageFiles();
+		for (int langId : listlanguages.keySet()) {
+			Map<String, Object> langMap = listlanguages.get(langId);
+			if (langName.equals(langMap.get("name"))) {
+				loadLanguagesFile(listlanguages, new Hashtable<Long, Fieldvalues>(3000), langId);
+				break;
+			}
+		}
+	}
+
+	public void loadLanguagesFile(Map<Integer, Map<String, Object>> listlanguages, Map<Long, Fieldvalues> fieldCache, int langId)
+			throws Exception {
+		Map<String, Object> langMap = listlanguages.get(langId);
+		log.debug("loadInitLanguages lang: " + langMap);
+
+		String langName = (String) langMap.get("name");
+		String rtl = (String) langMap.get("rtl");
+		String code = (String) langMap.get("code");
+
+		log.debug("loadInitLanguages rtl from xml: " + rtl);
+
+		Boolean langRtl = false;
+
+		if (rtl != null && rtl.equals("true")) {
+			langRtl = true;
+		}
+
+		long ticks = System.currentTimeMillis();
+		FieldLanguage lang = fieldLanguageDaoImpl.addLanguage(langId, langName, langRtl, code);
+
+		SAXReader reader = new SAXReader();
+		Document document = reader.read(new File(
+				OmFileHelper.getLanguagesDir(), langName + ".xml"));
+
+		Element root = document.getRootElement();
+
+		Map<Long, Fieldlanguagesvalues> flvMap = lang.getLanguageValuesMap();
+		for (@SuppressWarnings("rawtypes")
+		Iterator it = root.elementIterator("string"); it.hasNext();) {
+			Element item = (Element) it.next();
+			// log.error(item.getName());
+
+			Long id = Long.valueOf(item.attributeValue("id")).longValue();
+			String name = item.attributeValue("name");
+			String value = "";
+
+			for (@SuppressWarnings("rawtypes")
+			Iterator t2 = item.elementIterator("value"); t2.hasNext();) {
+				Element val = (Element) t2.next();
+				value = val.getText();
+			}
+
+			// log.error("result: "+langFieldIdIsInited+" "+id+" "+name+" "+value);
+
+			if (flvMap.containsKey(id)) {
+				Fieldlanguagesvalues flv = flvMap.get(id);
+				flv.setUpdatetime(new Date());
+				flv.setValue(value);
+			} else {
+				Fieldvalues fv = null;
+				// Only do that for the first field-set
+				if (!fieldCache.containsKey(id)) {
+					fv = new Fieldvalues();
+					fv.setFieldvalues_id(id);
+					fv.setStarttime(new Date());
+					fv.setName(name);
+					fv.setDeleted(false);
+					fv = fieldValueDao.update(fv, null);
+					fieldCache.put(id, fv);
+				} else {
+					fv = fieldCache.get(id);
+				}
+				Fieldlanguagesvalues flv = new Fieldlanguagesvalues();
+				flv.setStarttime(new Date());
+				flv.setValue(value);
+				flv.setLanguage_id(lang.getLanguage_id());
+				flv.setFieldvalues(fv);
+				flv.setDeleted(false);
+				flvMap.put(id, flv);
+			}
+		}
+		lang.setLanguageValues(flvMap.values());
+		fieldLanguageDaoImpl.updateLanguage(lang);
+		log.debug("Lang ADDED: " + lang + "; seconds passed: " + (System.currentTimeMillis() - ticks) / 1000);
+	}
+	
+	public static void main(String... args) {
+		int pr = 22;
+		int progressDelta = 50 - pr;
+		
+		double deltaProgressPerLanguageFile = new Double(progressDelta)/new Double(34);
+		
+		pr += (2 * deltaProgressPerLanguageFile);
+		
+		System.err.println("deltaProgressPerLanguageFile: "+deltaProgressPerLanguageFile +" "+ pr);
+	}
+
+	public void loadLanguagesFiles() throws Exception {
+		Map<Integer, Map<String, Object>> listlanguages = getLanguageFiles();
+
+		Map<Long, Fieldvalues> fieldCache = new Hashtable<Long, Fieldvalues>(3000);
+		
+		int initProgress = progress;
+		int progressDelta = 76 - progress;
+		double deltaProgressPerLanguageFile = ((double)progressDelta) / listlanguages.size();
+		
+		/** Read all languages files */
+		for (int langId : listlanguages.keySet()) {
+			loadLanguagesFile(listlanguages, fieldCache, langId);
+			progress = (int)(initProgress + Math.round(deltaProgressPerLanguageFile * langId));
+		}
+		log.debug("All languages are imported");
+	}
+
+	public void loadInitialOAuthServers() throws Exception {
+		// Yandex
+		OAuthServer yandexServer = new OAuthServer();
+		yandexServer.setName("Yandex");
+		yandexServer.setIconUrl("http://yandex.st/morda-logo/i/favicon.ico");
+		yandexServer.setClientId("<put your client_id>");
+		yandexServer.setClientSecret("<put your client_secret>");
+		yandexServer.setEmailParamName("default_email");
+		yandexServer.setEnabled(false);
+		yandexServer.setLoginParamName("default_email");
+		yandexServer.setRequestInfoUrl("https://login.yandex.ru/info?format=json&oauth_token={$access_token}");
+		yandexServer.setRequestTokenUrl("https://oauth.yandex.ru/token");
+		yandexServer.setRequestKeyUrl("https://oauth.yandex.ru/authorize?response_type=code&client_id={$client_id}");
+		yandexServer.setRequestTokenAttributes("grant_type=authorization_code&code={$code}&client_id={$client_id}&client_secret={$client_secret}");
+		yandexServer.setRequestTokenMethod(RequestMethod.POST);
+		oauthDao.update(yandexServer, null);
+		
+		// Google
+		OAuthServer googleServer = new OAuthServer();
+		googleServer.setName("Google");
+		googleServer.setIconUrl("https://www.google.ru/images/google_favicon_128.png");
+		googleServer.setEnabled(false);
+		googleServer.setClientId("<put your client_id>");
+		googleServer.setClientSecret("<put your client_secret>");
+		googleServer.setRequestKeyUrl("https://accounts.google.com/o/oauth2/auth?redirect_uri={$redirect_uri}&response_type=code&client_id={$client_id}"
+				+ "&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile");
+		googleServer.setRequestTokenUrl("https://accounts.google.com/o/oauth2/token");
+		googleServer.setRequestTokenMethod(RequestMethod.POST);
+		googleServer.setRequestTokenAttributes("code={$code}&client_id={$client_id}&client_secret={$client_secret}&redirect_uri={$redirect_uri}&grant_type=authorization_code");
+		googleServer.setRequestInfoUrl("https://www.googleapis.com/oauth2/v1/userinfo?access_token={$access_token}");
+		googleServer.setLoginParamName("email");
+		googleServer.setEmailParamName("email");
+		googleServer.setFirstnameParamName("given_name");
+		googleServer.setLastnameParamName("family_name");
+		oauthDao.update(googleServer, null);
+		
+		// Facebook
+		OAuthServer facebookServer = new OAuthServer();
+		facebookServer.setName("Facebook");
+		facebookServer.setIconUrl("https://www.facebook.com/images/fb_icon_325x325.png");
+		facebookServer.setEnabled(false);
+		facebookServer.setClientId("<put your client_id>");
+		facebookServer.setClientSecret("<put your client_secret>");
+		facebookServer.setRequestKeyUrl("https://www.facebook.com/dialog/oauth?client_id={$client_id}&redirect_uri={$redirect_uri}&scope=email");
+		facebookServer.setRequestTokenUrl("https://graph.facebook.com/oauth/access_token");
+		facebookServer.setRequestTokenMethod(RequestMethod.POST);
+		facebookServer.setRequestTokenAttributes("client_id={$client_id}&redirect_uri={$redirect_uri}&client_secret={$client_secret}&code={$code}");
+		facebookServer.setRequestInfoUrl("https://graph.facebook.com/me?access_token={$access_token}&fields=username,first_name,last_name,email");
+		facebookServer.setLoginParamName("username");
+		facebookServer.setEmailParamName("email");
+		facebookServer.setFirstnameParamName("first_name");
+		facebookServer.setLastnameParamName("last_name");
+		oauthDao.update(facebookServer, null);
+	}
+	
+	// ------------------------------------------------------------------------------
+
+	/**
+	 * Loading initial Language from xml Files into database
+	 */
+	// ------------------------------------------------------------------------------
+	public void loadPollTypes() {
+		pollManager.addPollType(26L, false);
+		pollManager.addPollType(27L, true);
+	}
+
+	// ------------------------------------------------------------------------------
+
+	public void loadSystem(InstallationConfig cfg, boolean force) throws Exception {
+		// FIXME dummy check if installation was performed before
+		if (!force && usersDao.count() > 0) {
+			log.debug("System contains users, no need to install data one more time.");
+		}
+		sipDao.delete();
+		progress = 3;
+		loadUserLevels();
+		progress = 6;
+		loadMainMenu();
+		progress = 9;
+		loadErrorTypes();
+		progress = 12;
+		loadErrorMappingsFromXML();
+		progress = 15;
+		loadCountriesFiles();
+		progress = 22;
+		loadLanguagesFiles();
+		progress = 76;
+		loadSalutations();
+		progress = 78;
+		// AppointMent Categories
+		loadInitAppointmentCategories();
+		progress = 80;
+		// Appointment Reminder types
+		loadInitAppointmentReminderTypes();
+		progress = 82;
+		// Appointment poll types
+		loadPollTypes();
+		progress = 84;
+		loadRoomTypes();
+		progress = 86;
+
+		loadConfiguration(cfg);
+		progress = 88;
+		loadInitialOAuthServers();
+		progress = 91;
+	}
+
+	public void loadAll(InstallationConfig cfg, boolean force) throws Exception {
+		// FIXME dummy check if installation was performed before
+		if (!force && usersDao.count() > 0) {
+			log.debug("System contains users, no need to install data one more time.");
+			return;
+		}
+		loadSystem(cfg, force);
+		loadInitUserAndOrganisation(cfg);
+		progress = 94;
+
+		loadDefaultRooms("1".equals(cfg.createDefaultRooms));
+		progress = 100;
+	}
+}
diff --git a/src/install/java/org/apache/openmeetings/installation/InstallationConfig.java b/src/install/java/org/apache/openmeetings/installation/InstallationConfig.java
new file mode 100644
index 0000000..ca3ba68
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/installation/InstallationConfig.java
@@ -0,0 +1,93 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.installation;

+

+import static org.apache.openmeetings.util.OpenmeetingsVariables.DEFAULT_BASE_URL;

+

+import java.io.Serializable;

+

+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;

+import org.apache.openmeetings.util.crypt.MD5Implementation;

+

+public class InstallationConfig implements Serializable {

+	private static final long serialVersionUID = 1L;

+	

+	public String appName = ConfigurationDao.DEFAULT_APP_NAME;

+	public String username;

+	public String password;

+	public String email;

+	public String group;

+	public String allowFrontendRegister = "1";

+	public String createDefaultRooms = "1";

+	public String ical_timeZone = "Europe/Berlin";

+	

+	public String cryptClassName = MD5Implementation.class.getCanonicalName();

+	//email

+	public Integer smtpPort = 25;

+	public String smtpServer = "localhost";

+	public String mailAuthName = "";

+	public String mailAuthPass = "";

+	public String mailReferer = "noreply@openmeetings.apache.org";

+	public String mailUseTls = "0";

+	//paths

+	public Integer swfZoom = 100;

+	public Integer swfJpegQuality = 85;

+	public String swfPath = "";

+	public String imageMagicPath = "";

+	public String ffmpegPath = "";

+	public String soxPath = "";

+	public String jodPath = "/opt/jod/lib";

+	public String officePath = "";

+	

+	public String defaultLangId = "1";

+	public String sendEmailAtRegister = "0";

+	public String urlFeed = "http://mail-archives.apache.org/mod_mbox/openmeetings-user/?format=atom";

+	public String urlFeed2 = "http://mail-archives.apache.org/mod_mbox/openmeetings-dev/?format=atom";

+	public String sendEmailWithVerficationCode = "0";

+	public String defaultExportFont = "TimesNewRoman";

+    public String red5SipEnable = "no";

+    public String red5SipRoomPrefix = "400";

+    public String red5SipExtenContext = "rooms";

+    public String replyToOrganizer = "1";

+    public String baseUrl = DEFAULT_BASE_URL;

+    

+	@Override

+	public String toString() {

+		return "InstallationConfig [allowFrontendRegister="

+				+ allowFrontendRegister + ", createDefaultRooms="

+				+ createDefaultRooms + ", cryptClassName=" + cryptClassName

+				+ ", smtpPort=" + smtpPort + ", smtpServer=" + smtpServer

+				+ ", mailAuthName=" + mailAuthName + ", mailAuthPass="

+				+ mailAuthPass + ", mailReferer=" + mailReferer

+				+ ", mailUseTls=" + mailUseTls + ", swfZoom=" + swfZoom

+				+ ", swfJpegQuality=" + swfJpegQuality  + ", swfPath=" + swfPath

+				+ ", imageMagicPath=" + imageMagicPath + ", ffmpegPath="

+				+ ffmpegPath + ", soxPath=" + soxPath + ", jodPath=" + jodPath

+				+ ", defaultLangId=" + defaultLangId + ", sendEmailAtRegister="

+				+ sendEmailAtRegister + ", urlFeed=" + urlFeed + ", urlFeed2="

+				+ urlFeed2 + ", sendEmailWithVerficationCode="

+				+ sendEmailWithVerficationCode + ", defaultExportFont="

+				+ defaultExportFont + ", red5SipEnable="

+				+ red5SipEnable + ", red5SipRoomPrefix=" + red5SipRoomPrefix

+				+ ", red5SipExtenContext=" + red5SipExtenContext

+				+ ", replyToOrganizer=" + replyToOrganizer

+				+ ", ical_timeZone=" + ical_timeZone 

+				+ "]";

+	}

+}

diff --git a/src/install/java/org/apache/openmeetings/installation/InstallationDocumentHandler.java b/src/install/java/org/apache/openmeetings/installation/InstallationDocumentHandler.java
new file mode 100644
index 0000000..cd355ad
--- /dev/null
+++ b/src/install/java/org/apache/openmeetings/installation/InstallationDocumentHandler.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.installation;
+
+import java.io.FileWriter;
+
+import org.apache.openmeetings.util.OmFileHelper;
+import org.dom4j.Document;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+import org.dom4j.Node;
+import org.dom4j.io.SAXReader;
+import org.dom4j.io.XMLWriter;
+
+public class InstallationDocumentHandler {
+	public static void createDocument(Integer stepNo) throws Exception {
+		
+		Document document = DocumentHelper.createDocument();
+		
+		Element root = document.addElement( "install" );
+		Element step = root.addElement("step");
+		
+		step.addElement("stepnumber").addText(stepNo.toString());
+		step.addElement("stepname").addText("Step "+stepNo);
+		
+		XMLWriter writer = new XMLWriter(new FileWriter(OmFileHelper.getInstallFile()));
+        writer.write( document );
+        writer.close();
+		
+	}
+	
+	public static int getCurrentStepNumber() throws Exception{
+		
+	    SAXReader reader = new SAXReader();
+        Document document = reader.read(OmFileHelper.getInstallFile());
+        
+        Node node = document.selectSingleNode( "//install/step/stepnumber" );
+        
+        return Integer.valueOf(node.getText()).intValue();
+        
+	}
+	
+	
+}
diff --git a/src/main/java/org/apache/openmeetings/batik/beans/PrintBean.java b/src/main/java/org/apache/openmeetings/batik/beans/PrintBean.java
new file mode 100644
index 0000000..63b42f6
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/batik/beans/PrintBean.java
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.batik.beans;
+
+import java.util.List;
+
+public class PrintBean {
+
+	public String hash;
+	@SuppressWarnings("rawtypes")
+	public List map;
+	public int width;
+	public int height;
+
+	public PrintBean(String hash, @SuppressWarnings("rawtypes") List map,
+			int width, int height) {
+		super();
+		this.hash = hash;
+		this.height = height;
+		this.map = map;
+		this.width = width;
+	}
+
+	public String getHash() {
+		return hash;
+	}
+
+	public void setHash(String hash) {
+		this.hash = hash;
+	}
+
+	@SuppressWarnings("rawtypes")
+	public List getMap() {
+		return map;
+	}
+
+	@SuppressWarnings("rawtypes")
+	public void setMap(List map) {
+		this.map = map;
+	}
+
+	public int getWidth() {
+		return width;
+	}
+
+	public void setWidth(int width) {
+		this.width = width;
+	}
+
+	public int getHeight() {
+		return height;
+	}
+
+	public void setHeight(int height) {
+		this.height = height;
+	}
+
+}
diff --git a/src/main/java/org/apache/openmeetings/cluster/SlaveHTTPConnectionManager.java b/src/main/java/org/apache/openmeetings/cluster/SlaveHTTPConnectionManager.java
new file mode 100644
index 0000000..4a2fc86
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/cluster/SlaveHTTPConnectionManager.java
@@ -0,0 +1,102 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.cluster;

+

+import java.util.HashMap;

+import java.util.Map;

+

+import org.apache.openmeetings.cluster.sync.RestClient;

+import org.apache.openmeetings.db.entity.server.Server;

+import org.apache.openmeetings.util.OpenmeetingsVariables;

+import org.red5.logging.Red5LoggerFactory;

+import org.slf4j.Logger;

+

+/**

+ * Manages connections to the other nodes of the cluster.

+ * 

+ * Use-case: When you kick a user via the admin-panel, it is probably on anther server.

+ * So you need to perform a REST call to the node and let that node do the actual disconnect.

+ * 

+ * @author sebawagner

+ *

+ */

+public class SlaveHTTPConnectionManager {

+

+	private static Logger log = Red5LoggerFactory.getLogger(

+			SlaveHTTPConnectionManager.class, OpenmeetingsVariables.webAppRootKey);

+

+	/**

+	 * We store the list of RestClients in the memory, so that we can simply

+	 * call ping to get the load, without the need to get a new session Hash and

+	 * to login again. <br/>

+	 * There can be only one RestClient per server, so we use the primary key of

+	 * the server to store the RestClient.

+	 */

+	private static Map<Long, RestClient> restClientsSessionStore = new HashMap<Long, RestClient>();

+

+	/**

+	 * Synchronized, cause nobody should manipulate the object while another

+	 * process requests it, the scheduler could run several times and request

+	 * the same object, add or remove it.<br/>

+	 * If there is no object yet, create one.

+	 * 

+	 * @param server

+	 */

+	private synchronized RestClient getRestClient(Server server) {

+		RestClient restClient = restClientsSessionStore.get(server.getId());

+

+		// check if any values of the server have been changed,

+		// if yes, we need a new RestClient to make sure it will re-login to the

+		// changed server details

+		if (restClient != null && restClient.hasServerDetailsChanged(server)) {

+			log.debug("Server details changed, get new rest client");

+			restClient = null;

+		}

+

+		if (restClient == null) {

+			restClient = new RestClient(server);

+			restClientsSessionStore.put(server.getId(), restClient);

+		}

+		return restClient;

+	}

+

+	/**

+	 * Gets the current {@link RestClient} from the session store and then

+	 * performs a kickUser on that. It is not possible that there is no

+	 * {@link RestClient}, because if you want to kick a user from a slave, the

+	 * master <i>must</i> already have loaded the sessions from the slave, so

+	 * there logically <i>must</i> by a {@link RestClient} available that has an 

+	 * open connection to that slave / {@link Server}

+	 * 

+	 * @param serverId

+	 * @param publicSID

+	 */

+	public void kickSlaveUser(Server server, String publicSID) throws Exception {

+		

+		RestClient rClient = getRestClient(server);

+		

+		if (rClient == null) {

+			throw new Exception("No RestClient found for server " + server);

+		}

+		

+		rClient.kickUser(publicSID);

+		

+	}

+	

+}

diff --git a/src/main/java/org/apache/openmeetings/cluster/sync/RestClient.java b/src/main/java/org/apache/openmeetings/cluster/sync/RestClient.java
new file mode 100644
index 0000000..5f88693
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/cluster/sync/RestClient.java
@@ -0,0 +1,395 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.cluster.sync;
+
+import java.util.Iterator;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMNamespace;
+import org.apache.axis2.Constants;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.client.Options;
+import org.apache.axis2.client.ServiceClient;
+import org.apache.axis2.transport.http.HTTPConstants;
+import org.apache.openmeetings.db.entity.server.Server;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+/**
+ * 
+ * Performs call to the WebService Gateway to load the server load from the
+ * slave's of the cluster
+ * 
+ * @author sebawagner
+ * 
+ */
+public class RestClient {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			RestClient.class, OpenmeetingsVariables.webAppRootKey);
+	
+	private enum Action {
+		//kick the user from the server
+		KICK_USER,
+	}
+
+	private final String host;
+	private final int port;
+	private final String protocol;
+	private final String webapp;
+	private final String user;
+	private final String pass;
+
+	private boolean loginSuccess = false;
+	private String sessionId;
+	
+	private String publicSID;
+
+//	private static String nameSpaceForSlaveDto = "http://room.conference.openmeetings.apache.org/xsd";
+	
+	private static String NAMESPACE_PREFIX = "http://services.axis.openmeetings.apache.org";
+
+	private String getUserServiceEndPoint() {
+		return protocol + "://" + host + ":" + port + "/" + webapp
+				+ "/services/UserService";
+	}
+//
+//	private String getRoomServiceEndPoint() {
+//		return protocol + "://" + host + ":" + port + "/" + webapp
+//				+ "/services/RoomService";
+//	}
+
+	/**
+	 * The observerInstance will be notified whenever a ping was completed
+	 * 
+	 * @param observerInstance
+	 * @param host
+	 * @param port
+	 * @param protocol
+	 * @param webapp
+	 * @param user
+	 * @param pass
+	 */
+	public RestClient(Server server) {
+		//this.server = server;
+		this.host = server.getAddress();
+		this.port = server.getPort();
+		this.protocol = server.getProtocol();
+		this.webapp = server.getWebapp();
+		this.user = server.getUser();
+		this.pass = server.getPass();
+	}
+	
+	/**
+	 * Main method to perform tests
+	 * 
+	 * @param strings
+	 */
+	public static void main(String... strings) {
+		RestClient rClient = new RestClient("127.0.0.1", 5080, "http",
+				"openmeetings", "swagner", "qweqwe");
+		try {
+			rClient.loginUser(Action.KICK_USER);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * for simple testing this method provides a version of the constructor
+	 * without need for a server entity.<br/>
+	 * <br/>
+	 * There is no spring or JPA enhanced class in use here. This Object is
+	 * stored in session/memory
+	 * 
+	 * @param host
+	 * @param port
+	 * @param protocol
+	 * @param webapp
+	 * @param user
+	 * @param pass
+	 */
+	private RestClient(String host, int port, String protocol, String webapp,
+			String user, String pass) {
+		this.host = host;
+		this.port = port;
+		this.protocol = protocol;
+		this.webapp = webapp;
+		this.user = user;
+		this.pass = pass;
+	}
+
+	/**
+	 * compare if the details here and the one stored are still the same
+	 * 
+	 * @param server2
+	 * @return
+	 */
+	public boolean hasServerDetailsChanged(Server server2) {
+
+		if (!host.equals(server2.getAddress())) {
+			return true;
+		}
+		if (port != server2.getPort()) {
+			return true;
+		}
+		if (!user.equals(server2.getUser())) {
+			return true;
+		}
+		if (!pass.equals(server2.getPass())) {
+			return true;
+		}
+		if (!webapp.equals(server2.getWebapp())) {
+			return true;
+		}
+		if (!protocol.equals(server2.getProtocol())) {
+			return true;
+		}
+
+		return false;
+	}
+
+	/**
+	 * Login the user via REST
+	 * 
+	 * @throws Exception
+	 */
+	public void loginUser(Action action) throws Exception {
+
+		ServiceClient sender = createServiceClient(getUserServiceEndPoint());
+		
+		OMElement getSessionResult = sender
+				.sendReceive(getPayloadMethodGetSession());
+		sessionId = getSessionIdFromResult(getSessionResult);
+
+		OMElement loginUserResult = sender
+				.sendReceive(getPayloadMethodLoginUser());
+
+		loginSuccess = loginSuccessFromResult(loginUserResult);
+
+		switch (action) {
+			case KICK_USER:
+				kickUserInternl();
+				break;
+			default:
+				throw new Exception("No action defined");
+		}
+
+	}
+	
+	private ServiceClient createServiceClient(String serviceEndPoint) throws Exception {
+		ServiceClient sender = new ServiceClient();
+		sender.engageModule(new QName(Constants.MODULE_ADDRESSING)
+				.getLocalPart());
+		Options options = new Options();
+		options.setTo(new EndpointReference(serviceEndPoint));
+		options.setProperty(Constants.Configuration.ENABLE_REST,
+				Constants.VALUE_TRUE);
+		int timeOutInMilliSeconds = 2000;
+		// setting timeout to 2 second should be sufficient, if the server is
+		// not available within the 3 second interval you got a problem anyway
+		options.setTimeOutInMilliSeconds(timeOutInMilliSeconds);
+		options.setProperty(HTTPConstants.SO_TIMEOUT, timeOutInMilliSeconds);
+		options.setProperty(HTTPConstants.CONNECTION_TIMEOUT, timeOutInMilliSeconds);
+		sender.setOptions(options);
+		
+		return sender;
+	}
+	
+	private OMElement createOMElement(OMFactory fac, OMNamespace omNs, String name, String value) {
+		OMElement omElement = fac.createOMElement(name, omNs);
+		omElement.addChild(fac.createOMText(omElement, value));
+		return omElement;
+	}
+
+	/**
+	 * sets the publicSID and removes a user from a slave host by calling a REST service
+	 * 
+	 * @param publicSID
+	 */
+	public void kickUser(String publicSID) {
+		this.publicSID = publicSID;
+		kickUserInternl();
+	}
+	
+	private void kickUserInternl() {
+		try {
+			
+			if (!loginSuccess) {
+				loginUser(Action.KICK_USER);
+			}
+
+			ServiceClient sender = createServiceClient(getUserServiceEndPoint());
+			
+			OMElement kickUserByPublicSIDResult = sender
+					.sendReceive(getPayloadMethodKickUserByPublicSID());
+			Boolean result = kickUserByPublicSIDFromResult(kickUserByPublicSIDResult);
+			
+			if (!result) {
+				throw new Exception("Could not delete user from slave host");
+			}
+
+		} catch (Exception err) {
+			log.error("[kickUser failed]", err);
+		}
+	}
+
+	private Boolean kickUserByPublicSIDFromResult(OMElement result) throws Exception {
+		QName kickUserResult = new QName(NAMESPACE_PREFIX, "return");
+
+		@SuppressWarnings("unchecked")
+		Iterator<OMElement> elements = result.getChildrenWithName(kickUserResult);
+		if (elements.hasNext()) {
+			OMElement resultElement = elements.next();
+			if (resultElement.getText().equals("true")) {
+				return true;
+			} else {
+				throw new Exception("Could not delete user from slave host, returns: "
+						+ resultElement.getText());
+			}
+		} else {
+			throw new Exception("Could not parse kickUserByPublicSID result");
+		}
+	}
+
+	private OMElement getPayloadMethodKickUserByPublicSID() throws Exception {
+		OMFactory fac = OMAbstractFactory.getOMFactory();
+		OMNamespace omNs = fac.createOMNamespace(NAMESPACE_PREFIX, "pre");
+		OMElement method = fac.createOMElement("kickUserByPublicSID", omNs);
+		method.addChild(createOMElement(fac, omNs, "SID", sessionId));
+		method.addChild(createOMElement(fac, omNs, "publicSID", publicSID));
+		return method;
+	}
+
+	/**
+	 * Create the REST request to get a new session Id
+	 * 
+	 * @return
+	 */
+	private OMElement getPayloadMethodGetSession() throws Exception {
+		OMFactory fac = OMAbstractFactory.getOMFactory();
+		OMNamespace omNs = fac.createOMNamespace(NAMESPACE_PREFIX, "pre");
+		OMElement method = fac.createOMElement("getSession", omNs);
+		return method;
+	}
+
+	/**
+	 * Parse the session Id from the REST request
+	 * 
+	 * @param result
+	 * @return
+	 * @throws Exception
+	 */
+	private String getSessionIdFromResult(OMElement result) throws Exception {
+		QName sessionElements = new QName(null, "session_id");
+
+		@SuppressWarnings("unchecked")
+		Iterator<OMElement> elements = result.getFirstElement()
+				.getChildrenWithName(sessionElements);
+		if (elements.hasNext()) {
+			OMElement sessionElement = elements.next();
+			return sessionElement.getText();
+		} else {
+			throw new Exception("Could not find session id");
+		}
+	}
+
+	/**
+	 * create the payload to login to another OpenMeetings instance via REST
+	 * 
+	 * @return
+	 */
+	private OMElement getPayloadMethodLoginUser() throws Exception {
+		OMFactory fac = OMAbstractFactory.getOMFactory();
+		OMNamespace omNs = fac.createOMNamespace(NAMESPACE_PREFIX, "pre");
+		OMElement method = fac.createOMElement("loginUser", omNs);
+		method.addChild(createOMElement(fac, omNs, "SID", sessionId));
+		method.addChild(createOMElement(fac, omNs, "username", user));
+		method.addChild(createOMElement(fac, omNs, "userpass", pass));
+		return method;
+	}
+
+	/**
+	 * check the result of the REST request if the login was successful
+	 * 
+	 * @param result
+	 * @return
+	 * @throws Exception
+	 */
+	private boolean loginSuccessFromResult(OMElement result) throws Exception {
+
+		QName loginResult = new QName(NAMESPACE_PREFIX, "return");
+
+		@SuppressWarnings("unchecked")
+		Iterator<OMElement> elements = result.getChildrenWithName(loginResult);
+		if (elements.hasNext()) {
+			OMElement resultElement = elements.next();
+			if (resultElement.getText().equals("1")) {
+				return true;
+			} else {
+				throw new Exception("Could not login user at, error code is: "
+						+ resultElement.getText());
+			}
+		} else {
+			throw new Exception("Could not parse login result");
+		}
+
+	}
+
+	/**
+	 * Get and cast the element's text (if there is any)
+	 * 
+	 * @param resultElement
+	 * @param elementName
+	 * @param typeObject
+	 * @return
+	 */
+//	private <T> T getElementTextByName(OMElement resultElement, String elementName, Class<T> typeObject) {
+//		try {
+//			OMElement userIdElement = resultElement
+//					.getFirstChildWithName(new QName(nameSpaceForSlaveDto, elementName));
+//			if (userIdElement != null && userIdElement.getText() != null
+//					&& userIdElement.getText().length() > 0) {
+//				
+//				String defaultValue = userIdElement.getText();
+//				
+//				// Either this can be directly assigned or try to find a constructor
+//				// that handles it
+//				if (typeObject.isAssignableFrom(defaultValue.getClass())) {
+//					return typeObject.cast(defaultValue);
+//				}
+//				Constructor<T> c = typeObject.getConstructor(defaultValue
+//						.getClass());
+//				return c.newInstance(defaultValue);
+//				
+//			}
+//		} catch (Exception err) {
+//			//Catch any class cast exception, but log only
+//			log.error("[getElementTextByName]", err);
+//		}
+//		return null;
+//	}
+	
+	
+}
diff --git a/src/main/java/org/apache/openmeetings/converter/BaseConverter.java b/src/main/java/org/apache/openmeetings/converter/BaseConverter.java
new file mode 100644
index 0000000..771b05c
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/converter/BaseConverter.java
@@ -0,0 +1,328 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.converter;
+
+import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.OGG_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.getRecording;
+import static org.apache.openmeetings.util.OmFileHelper.getStreamsSubDir;
+import static org.apache.openmeetings.util.OmFileHelper.isRecordingExists;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.record.FlvRecordingMetaDataDao;
+import org.apache.openmeetings.db.dao.record.FlvRecordingMetaDeltaDao;
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.openmeetings.db.entity.record.FlvRecordingMetaData;
+import org.apache.openmeetings.db.entity.record.FlvRecordingMetaData.Status;
+import org.apache.openmeetings.db.entity.record.FlvRecordingMetaDelta;
+import org.apache.openmeetings.util.process.ConverterProcessResult;
+import org.apache.openmeetings.util.process.ProcessHelper;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public abstract class BaseConverter {
+	private static final Logger log = Red5LoggerFactory.getLogger(BaseConverter.class, webAppRootKey);
+
+	@Autowired
+	private ConfigurationDao configurationDao;
+	@Autowired
+	private FlvRecordingMetaDataDao metaDataDao;
+	@Autowired
+	private FlvRecordingMetaDeltaDao metaDeltaDao;
+
+	private String getPath(String key, String app) {
+		String path = configurationDao.getConfValue(key, String.class, "");
+		if (!"".equals(path) && !path.endsWith(File.separator)) {
+			path += File.separator;
+		}
+		path += app;
+		return path;
+	}
+	
+	public String getPathToFFMPEG() {
+		return getPath("ffmpeg_path", "ffmpeg");
+	}
+
+	protected String getPathToSoX() {
+		return getPath("sox_path", "sox");
+	}
+
+	protected String getPathToImageMagick() {
+		return getPath("imagemagick_path", "convert") + GenerateSWF.execExt;
+	}
+
+	protected boolean isUseOldStyleFfmpegMap() {
+		return "1".equals(configurationDao.getConfValue("use.old.style.ffmpeg.map.option", String.class, "0"));
+	}
+	
+	protected File getStreamFolder(FlvRecording flvRecording) {
+		return getStreamsSubDir(flvRecording.getRoom_id());
+	}
+	
+	protected String getDifference(Date from, Date to) {
+		long millis = from.getTime() - to.getTime();
+		long hours = TimeUnit.MILLISECONDS.toHours(millis);
+		millis -= TimeUnit.HOURS.toMillis(hours);
+		long minutes = TimeUnit.MILLISECONDS.toMinutes(millis);
+		millis -= TimeUnit.MINUTES.toMillis(minutes);
+		long seconds = TimeUnit.MILLISECONDS.toSeconds(millis);
+		millis -= TimeUnit.SECONDS.toMillis(seconds);
+		return String.format("%02d:%02d:%02d.%03d", hours, minutes, seconds, millis);
+	}
+
+	protected void updateDuration(FlvRecording r) {
+		r.setDuration(getDifference(r.getRecordEnd(), r.getRecordStart()));
+	}
+	
+	protected void deleteFileIfExists(String name) {
+		File f = new File(name);
+
+		if (f.exists()) {
+			f.delete();
+		}
+	}
+	
+	protected String[] mergeAudioToWaves(List<String> listOfFullWaveFiles, String outputFullWav) {
+		List<String> argv = new ArrayList<String>();
+		
+		argv.add(getPathToSoX());
+		argv.add("-m");
+		for (String arg : listOfFullWaveFiles) {
+			argv.add(arg);
+		}
+		argv.add(outputFullWav);
+		
+		return argv.toArray(new String[0]);
+	}
+	
+	protected void stripAudioFirstPass(FlvRecording flvRecording, List<ConverterProcessResult> returnLog,
+			List<String> listOfFullWaveFiles, File streamFolder)
+	{
+		stripAudioFirstPass(flvRecording, returnLog, listOfFullWaveFiles, streamFolder
+				, metaDataDao.getAudioMetaDataByRecording(flvRecording.getFlvRecordingId()));
+	}
+	
+	private String[] addSoxPad(List<ConverterProcessResult> returnLog, String job, double length, double position, String inFile, String outFile) {
+		//FIXME need to check this
+		if (length < 0 || position < 0) {
+			log.debug("::addSoxPad " + job + " Invalid parameters: "
+					+ " length = " + length + "; position = " + position + "; inFile = " + inFile);
+		}
+		length = length < 0 ? 0 : length;
+		position = position < 0 ? 0 : position;
+
+		String[] argv = new String[] { getPathToSoX(), inFile, outFile, "pad", "" + length, "" + position };
+
+		returnLog.add(ProcessHelper.executeScript(job, argv));
+		return argv;
+	}
+	
+	protected FlvRecordingMetaData waitForTheStream(long metaId) throws InterruptedException {
+		FlvRecordingMetaData metaData = metaDataDao.get(metaId);
+		if (metaData.getStreamStatus() != Status.STOPPED) {
+			log.debug("### meta Stream not yet written to disk " + metaId);
+			boolean doWait = true;
+			long counter = 0;
+			while(doWait) {
+				log.trace("### Stream not yet written Thread Sleep - " + metaId);
+				
+				metaData = metaDataDao.get(metaId);
+				
+				if (metaData.getStreamStatus() == Status.STOPPED) {
+					log.debug("### Stream now written Thread continue - " );
+					doWait = false;
+				} else if (++counter % 1000 == 0) {
+					log.debug(String.format("### Still waiting for the stream with id %s; current status: %s ", metaId, metaData.getStreamStatus()));
+					File metaDir = getStreamsSubDir(metaData.getFlvRecording().getRoom_id());
+					File metaFlv = new File(metaDir, metaData.getStreamName() + ".flv");
+					File metaSer = new File(metaDir, metaData.getStreamName() + ".flv.ser");
+					log.debug(String.format("### Still waiting:: Flv file [%s] exists ? %s; size: %s, lastModified: %s ", metaFlv.getPath(), metaFlv.exists(), metaFlv.length(), metaFlv.lastModified()));
+					log.debug(String.format("### Still waiting:: Ser file [%s] exists ? %s; size: %s, lastModified: %s ", metaSer.getPath(), metaSer.exists(), metaSer.length(), metaSer.lastModified()));
+				}
+				
+				Thread.sleep(100L);
+			}
+		}
+		return metaData;
+	}
+	
+	protected void stripAudioFirstPass(FlvRecording flvRecording,
+			List<ConverterProcessResult> returnLog,
+			List<String> listOfFullWaveFiles, File streamFolder,
+			List<FlvRecordingMetaData> metaDataList) {
+		try {
+			// Init variables
+			log.debug("### meta Data Number - " + metaDataList.size());
+			log.debug("###################################################");
+	
+			for (FlvRecordingMetaData metaData : metaDataList) {
+				long metaId = metaData.getFlvRecordingMetaDataId();
+				log.debug("### processing metadata: " + metaId);
+				if (metaData.getStreamStatus() == Status.NONE) {
+					log.debug("Stream has not been started, error in recording " + metaId);
+					continue;
+				}
+				
+				metaData = waitForTheStream(metaId);
+	
+				File inputFlvFile = new File(streamFolder, metaData.getStreamName() + ".flv");
+	
+				String hashFileName = metaData.getStreamName() + "_WAVE.wav";
+				String outputWav = new File(streamFolder, hashFileName).getCanonicalPath(); //FIXME
+	
+				metaData.setWavAudioData(hashFileName);
+	
+				
+				log.debug("FLV File Name: {} Length: {} ", inputFlvFile.getName(), inputFlvFile.length());
+	
+				metaData.setAudioIsValid(false);
+				if (inputFlvFile.exists()) {
+					String[] argv = new String[] {getPathToFFMPEG(), "-async", "1", "-i", inputFlvFile.getCanonicalPath(), outputWav};
+	
+					returnLog.add(ProcessHelper.executeScript("stripAudioFromFLVs", argv));
+	
+					// check if the resulting Audio is valid
+					File output_wav = new File(outputWav);
+	
+					if (output_wav.exists() && output_wav.length() != 0) {
+						metaData.setAudioIsValid(true);
+					}
+				}
+	
+				if (metaData.getAudioIsValid()) {
+					// Strip Wave to Full Length
+					String outputGapFullWav = outputWav;
+	
+					// Fix Start/End in Audio
+					List<FlvRecordingMetaDelta> flvRecordingMetaDeltas = metaDeltaDao.getFlvRecordingMetaDeltaByMetaId(metaId);
+	
+					int counter = 0;
+	
+					for (FlvRecordingMetaDelta metaDelta : flvRecordingMetaDeltas) {
+						String inputFile = outputGapFullWav;
+	
+						// Strip Wave to Full Length
+						String hashFileGapsFullName = metaData.getStreamName() + "_GAP_FULL_WAVE_" + counter + ".wav";
+						outputGapFullWav = new File(streamFolder, hashFileGapsFullName).getCanonicalPath();
+	
+						metaDelta.setWaveOutPutName(hashFileGapsFullName);
+	
+						String[] argv_sox = null;
+	
+						if (metaDelta.getDeltaTime() != null) {
+							if (metaDelta.getIsStartPadding() != null && metaDelta.getIsStartPadding()) {
+								double gapSeconds = ((double)metaDelta.getDeltaTime()) / 1000;
+								argv_sox = addSoxPad(returnLog, "fillGap", gapSeconds, 0, inputFile, outputGapFullWav);
+							} else if (metaDelta.getIsEndPadding() != null && metaDelta.getIsEndPadding()) {
+								double gapSeconds = ((double)metaDelta.getDeltaTime()) / 1000;
+								argv_sox = addSoxPad(returnLog, "fillGap", 0, gapSeconds, inputFile, outputGapFullWav);
+							}
+						}
+	
+						if (argv_sox != null) {
+							log.debug("START fillGap ################# Delta-ID :: " + metaDelta.getFlvRecordingMetaDeltaId());
+	
+							metaDeltaDao.updateFlvRecordingMetaDelta(metaDelta);
+							counter++;
+						} else {
+							outputGapFullWav = inputFile;
+						}
+					}
+	
+					// Strip Wave to Full Length
+					String hashFileFullName = metaData.getStreamName() + "_FULL_WAVE.wav";
+					String outputFullWav = new File(streamFolder, hashFileFullName).getCanonicalPath();
+	
+					// Calculate delta at beginning
+					long deltaTimeStartMilliSeconds = metaData.getRecordStart().getTime() - flvRecording.getRecordStart().getTime();
+	
+					double length = ((double)deltaTimeStartMilliSeconds) / 1000;
+	
+					// Calculate delta at ending
+					long deltaTimeEndMilliSeconds = flvRecording.getRecordEnd().getTime() - metaData.getRecordEnd().getTime();
+	
+					double endPadding = ((double)deltaTimeEndMilliSeconds) / 1000;
+	
+					addSoxPad(returnLog, "addStartEndToAudio", length, endPadding, outputGapFullWav, outputFullWav);
+	
+					// Fix for Audio Length - Invalid Audio Length in Recorded Files
+					// Audio must match 100% the Video
+					log.debug("############################################");
+					log.debug("Trim Audio to Full Length -- Start");
+					File aFile = new File(outputFullWav);
+	
+					if (!aFile.exists()) {
+						throw new Exception("Audio File does not exist , could not extract the Audio correctly");
+					}
+					metaData.setFullWavAudioData(hashFileFullName);
+	
+					// Finally add it to the row!
+					listOfFullWaveFiles.add(outputFullWav);
+				}
+	
+				metaDataDao.update(metaData);
+			}
+		} catch (Exception err) {
+			log.error("[stripAudioFirstPass]", err);
+		}
+	}
+	
+	public void convertToMp4(FlvRecording r, List<ConverterProcessResult> returnLog) throws IOException {
+		//TODO add faststart, move filepaths to helpers
+		if (!isRecordingExists(r.getFileHash())) {
+			return;
+		}
+		File file = getRecording(r.getFileHash());
+		String path = file.getCanonicalPath();
+		String mp4path = path + MP4_EXTENSION;
+		String[] argv = new String[] {
+				getPathToFFMPEG(), //
+				"-i", path,
+				"-c:v", "libx264",
+				"-crf", "24",
+				"-pix_fmt", "yuv420p",
+				"-preset", "medium",
+				"-profile:v", "baseline",
+				"-c:a", "libfaac",
+				"-c:a", "libfdk_aac", "-b:a", "32k", //FIXME add quality constants 
+				"-s", r.getFlvWidth() + "x" + r.getFlvHeight(), //
+				mp4path
+				};
+		returnLog.add(ProcessHelper.executeScript("generate MP4", argv));
+		
+		argv = new String[] {
+				getPathToFFMPEG(), //
+				"-i", mp4path,
+				"-vcodec", "libtheora",
+				"-acodec", "libvorbis",
+				path + OGG_EXTENSION
+				};
+
+		returnLog.add(ProcessHelper.executeScript("generate OGG", argv));
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/converter/FlvExplorerConverter.java b/src/main/java/org/apache/openmeetings/converter/FlvExplorerConverter.java
new file mode 100644
index 0000000..ee797ab
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/converter/FlvExplorerConverter.java
@@ -0,0 +1,153 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.converter;
+
+import static org.apache.openmeetings.util.OmFileHelper.getStreamsHibernateDir;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
+import org.apache.openmeetings.db.dao.record.FlvRecordingLogDao;
+import org.apache.openmeetings.db.entity.file.FileExplorerItem;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.openmeetings.util.process.ConverterProcessResult;
+import org.apache.openmeetings.util.process.ProcessHelper;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class FlvExplorerConverter extends BaseConverter {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			FlvExplorerConverter.class, OpenmeetingsVariables.webAppRootKey);
+
+	// Spring loaded Beans
+	@Autowired
+	private FileExplorerItemDao fileExplorerItemDaoImpl;
+	@Autowired
+	private FlvRecordingLogDao flvRecordingLogDaoImpl;
+	
+	private class FlvDimension {
+		public FlvDimension(int width, int height) {
+			this.width = width;
+			this.height = height;
+		}
+		public int width = 0;
+		public int height = 0;
+	}
+
+	public List<ConverterProcessResult> startConversion(Long fileExplorerItemId, String moviePath) {
+		List<ConverterProcessResult> returnLog = new ArrayList<ConverterProcessResult>();
+		try {
+			FileExplorerItem fileExplorerItem = fileExplorerItemDaoImpl.getFileExplorerItemsById(fileExplorerItemId);
+
+			log.debug("fileExplorerItem " + fileExplorerItem.getFileExplorerItemId());
+
+			//  Convert to FLV
+			return convertToFLV(fileExplorerItem, moviePath);
+
+			// Add empty pieces at the beginning and end of the wav
+			// FIXME: Is this really needed anymore?!
+
+		} catch (Exception err) {
+			log.error("[startConversion]", err);
+			returnLog.add(new ConverterProcessResult("startConversion", err.getMessage(), err));
+		}
+
+		return returnLog;
+	}
+
+	private List<ConverterProcessResult> convertToFLV(FileExplorerItem fileExplorerItem, String moviePath) {
+		List<ConverterProcessResult> returnLog = new ArrayList<ConverterProcessResult>();
+		try {
+			String name = "UPLOADFLV_" + fileExplorerItem.getFileExplorerItemId();
+			File outputFullFlv = new File(getStreamsHibernateDir(), name + ".flv");
+
+			fileExplorerItem.setIsVideo(true);
+
+			String[] argv_fullFLV = new String[] { getPathToFFMPEG(), "-i", moviePath,
+					"-ar", "22050", "-acodec", "libmp3lame", "-ab", "32k",
+					"-vcodec", "flv",
+					outputFullFlv.getCanonicalPath() };
+			// "-s", flvWidth + "x" + flvHeight, 
+
+			ConverterProcessResult returnMapConvertFLV = ProcessHelper.executeScript("uploadFLV ID :: "
+					+ fileExplorerItem.getFileExplorerItemId(), argv_fullFLV);
+			
+			//Parse the width height from the FFMPEG output
+			FlvDimension flvDimension = getFlvDimension(returnMapConvertFLV.getError());
+			int flvWidth = flvDimension.width;
+			int flvHeight = flvDimension.height;
+			
+			
+			fileExplorerItem.setFlvWidth(flvWidth);
+			fileExplorerItem.setFlvHeight(flvHeight);
+
+			returnLog.add(returnMapConvertFLV);
+
+			String hashFileFullNameJPEG = "UPLOADFLV_" + fileExplorerItem.getFileExplorerItemId() + ".jpg";
+			File outPutJpeg = new File(getStreamsHibernateDir(), name + ".jpg");
+
+			fileExplorerItem.setPreviewImage(hashFileFullNameJPEG);
+
+			String[] argv_previewFLV = new String[] { getPathToFFMPEG(), "-i",
+					outputFullFlv.getCanonicalPath(), "-vcodec", "mjpeg", "-vframes", "1", "-an",
+					"-f", "rawvideo", "-s", flvWidth + "x" + flvHeight,
+					outPutJpeg.getCanonicalPath() };
+
+			returnLog.add(ProcessHelper.executeScript("previewUpload ID :: "
+							+ fileExplorerItem.getFileExplorerItemId(),
+							argv_previewFLV));
+
+			fileExplorerItemDaoImpl.updateFileOrFolder(fileExplorerItem);
+
+			for (ConverterProcessResult returnMap : returnLog) {
+				flvRecordingLogDaoImpl.addFLVRecordingLog("generateFFMPEG", null, returnMap);
+			}
+		} catch (Exception err) {
+			log.error("[convertToFLV]", err);
+			returnLog.add(new ConverterProcessResult("convertToFLV", err.getMessage(), err));
+		}
+
+		return returnLog;
+	}
+	
+	private FlvDimension getFlvDimension(String txt) throws Exception {
+		
+		Pattern p = Pattern.compile("\\d{2,4}(x)\\d{2,4}");
+		
+		Matcher matcher = p.matcher(txt);
+		
+		while ( matcher.find() ) {
+			String foundResolution = txt.substring(matcher.start(), matcher.end());
+			
+			String[] resultions = foundResolution.split("x");
+			
+			return new FlvDimension(Integer.valueOf(resultions[0]).intValue(), Integer.valueOf(resultions[1]).intValue());
+			
+	    }
+		
+		return null;
+	}
+	
+}
diff --git a/src/main/java/org/apache/openmeetings/converter/FlvInterviewConverter.java b/src/main/java/org/apache/openmeetings/converter/FlvInterviewConverter.java
new file mode 100644
index 0000000..1b19de1
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/converter/FlvInterviewConverter.java
@@ -0,0 +1,311 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.converter;
+
+import static org.apache.openmeetings.util.OmFileHelper.getStreamsHibernateDir;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
+import org.apache.openmeetings.db.dao.record.FlvRecordingLogDao;
+import org.apache.openmeetings.db.dao.record.FlvRecordingMetaDataDao;
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.openmeetings.db.entity.record.FlvRecordingMetaData;
+import org.apache.openmeetings.util.process.ConverterProcessResult;
+import org.apache.openmeetings.util.process.ProcessHelper;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class FlvInterviewConverter extends BaseConverter {
+	private static final Logger log = Red5LoggerFactory.getLogger(FlvInterviewConverter.class, webAppRootKey);
+	private class ReConverterParams {
+		private int leftSideLoud = 1;
+		private int rightSideLoud = 1;
+		private Integer leftSideTime = 0;
+		private Integer rightSideTime = 0;
+	}
+
+	// Spring loaded Beans
+	@Autowired
+	private FlvRecordingDao recordingDao;
+	@Autowired
+	private FlvRecordingMetaDataDao metaDataDao;
+	@Autowired
+	private FlvRecordingLogDao logDao;
+	@Autowired
+	private GenerateThumbs generateThumbs;
+
+	public void startReConversion(Long flvRecordingId, Integer leftSideLoud, Integer rightSideLoud,
+			Integer leftSideTime, Integer rightSideTime) {
+
+		log.debug("++++++++++++ leftSideLoud :: " + leftSideLoud);
+		log.debug("++++++++++++ rightSideLoud :: " + rightSideLoud);
+
+		ReConverterParams rcv = new ReConverterParams();
+		rcv.leftSideLoud += leftSideLoud;
+		rcv.rightSideLoud += rightSideLoud;
+
+		rcv.leftSideTime = leftSideTime;
+		rcv.rightSideTime = rightSideTime;
+
+		log.debug("++++++++++++ this.leftSideLoud :: " + rcv.leftSideLoud);
+		log.debug("++++++++++++ this.rightSideLoud :: " + rcv.rightSideLoud);
+		log.debug("++++++++++++ this.leftSideTime :: " + rcv.leftSideTime);
+		log.debug("++++++++++++ this.rightSideTime :: " + rcv.rightSideTime);
+		startConversion(flvRecordingId, true, rcv);
+	}
+
+	private String[] mergeAudioToWaves(List<String> listOfFullWaveFiles, String outputFullWav,
+			List<FlvRecordingMetaData> metaDataList, ReConverterParams rcv) {
+		String[] argv_full_sox = new String[listOfFullWaveFiles.size() + 5];
+		argv_full_sox[0] = this.getPathToSoX();
+		argv_full_sox[1] = "-m";
+
+		int counter = 2;
+		for (int i = 0; i < listOfFullWaveFiles.size(); i++) {
+			for (FlvRecordingMetaData flvRecordingMetaData : metaDataList) {
+				String hashFileFullNameStored = flvRecordingMetaData.getFullWavAudioData();
+
+				String fullFilePath = listOfFullWaveFiles.get(i);
+				String fileNameOnly = new File(fullFilePath).getName();
+
+				if (hashFileFullNameStored.equals(fileNameOnly)) {
+					if (flvRecordingMetaData.getInteriewPodId() == 1) {
+						argv_full_sox[counter] = "-v " + rcv.leftSideLoud;
+						counter++;
+					}
+					if (flvRecordingMetaData.getInteriewPodId() == 2) {
+						argv_full_sox[counter] = "-v " + rcv.rightSideLoud;
+						counter++;
+					}
+				}
+			}
+			argv_full_sox[counter] = listOfFullWaveFiles.get(i);
+			counter++;
+		}
+
+		argv_full_sox[counter] = outputFullWav;
+
+		return argv_full_sox;
+	}
+
+	public void startConversion(Long flvRecordingId) {
+		startConversion(flvRecordingId, false, new ReConverterParams());
+	}
+
+	public void startConversion(Long flvRecordingId, boolean reconversion, ReConverterParams rcv) {
+		FlvRecording flvRecording = null;
+		try {
+			flvRecording = recordingDao.get(flvRecordingId);
+			log.debug("flvRecording " + flvRecording.getFlvRecordingId());
+
+			List<ConverterProcessResult> returnLog = new ArrayList<ConverterProcessResult>();
+			List<String> listOfFullWaveFiles = new LinkedList<String>();
+			File streamFolder = getStreamFolder(flvRecording);
+			List<FlvRecordingMetaData> metaDataList = metaDataDao.getAudioMetaDataByRecording(flvRecording.getFlvRecordingId());
+	
+			stripAudioFirstPass(flvRecording, returnLog, listOfFullWaveFiles, streamFolder, metaDataList);
+		
+			// Merge Wave to Full Length
+			File streamFolderGeneral = getStreamsHibernateDir();
+
+			String hashFileFullName = "INTERVIEW_" + flvRecording.getFlvRecordingId() + "_FINAL_WAVE.wav";
+			String outputFullWav = streamFolder.getAbsolutePath() + File.separatorChar + hashFileFullName;
+			deleteFileIfExists(outputFullWav);
+
+			if (listOfFullWaveFiles.size() == 1) {
+				outputFullWav = listOfFullWaveFiles.get(0);
+			} else if (listOfFullWaveFiles.size() > 0) {
+				String[] argv_full_sox;
+				if (reconversion) {
+					argv_full_sox = mergeAudioToWaves(listOfFullWaveFiles, outputFullWav, metaDataList, rcv);
+				} else {
+					argv_full_sox = mergeAudioToWaves(listOfFullWaveFiles, outputFullWav);
+				}
+
+				returnLog.add(ProcessHelper.executeScript("mergeAudioToWaves", argv_full_sox));
+			} else {
+				// create default Audio to merge it.
+				// strip to content length
+				File outputWav = new File(streamFolderGeneral, "one_second.wav");
+
+				// Calculate delta at beginning
+				Long deltaTimeMilliSeconds = flvRecording.getRecordEnd().getTime() - flvRecording.getRecordStart().getTime();
+				Float deltaPadding = (Float.parseFloat(deltaTimeMilliSeconds.toString()) / 1000) - 1;
+
+				String[] argv_full_sox = new String[] { getPathToSoX(), outputWav.getCanonicalPath(), outputFullWav, "pad", "0", deltaPadding.toString() };
+
+				returnLog.add(ProcessHelper.executeScript("generateSampleAudio", argv_full_sox));
+			}
+			// Default Image for empty interview video pods
+			final File defaultInterviewImageFile = new File(streamFolderGeneral, "default_interview_image.png");
+
+			if (!defaultInterviewImageFile.exists()) {
+				throw new Exception("defaultInterviewImageFile does not exist!");
+			}
+
+			final int flvWidth = 320;
+			final int flvHeight = 260;
+			final int frameRate = 25;
+			// Merge Audio with Video / Calculate resulting FLV
+
+			String[] pods = new String[2];
+			boolean found = false;
+			for (FlvRecordingMetaData meta : metaDataList) {
+				File flv = new File(streamFolder, meta.getStreamName() + ".flv");
+
+				Integer pod = meta.getInteriewPodId();
+				if (flv.exists() && pod != null && pod > 0 && pod < 3) {
+					String path = flv.getCanonicalPath();
+					/*
+					 * CHECK FILE:
+					 * ffmpeg -i rec_316_stream_567_2013_08_28_11_51_45.flv -v error -f null file.null
+					 */ 
+					String[] args = new String[] {getPathToFFMPEG()
+							, "-i", path
+							, "-an" // only input files with video will be treated as video sources
+							, "-v", "error"
+							, "-f", "null"
+							, "file.null"};
+					ConverterProcessResult r = ProcessHelper.executeScript("checkFlvPod_" + pod , args);
+					returnLog.add(r);
+					if ("".equals(r.getError())) {
+						pods[pod - 1] = path;
+					}
+					found = true;
+				}
+			}
+			if (!found) {
+				ConverterProcessResult r = new ConverterProcessResult();
+				r.setProcess("CheckFlvFilesExists");
+				r.setError("No valid pods found");
+				returnLog.add(r);
+				return;
+			}
+			boolean shortest = false;
+			List<String> args = new ArrayList<String>();
+			args.add(getPathToFFMPEG());
+			for (int i = 0; i < 2; ++i) {
+				/*
+				 * INSERT BLANK INSTEAD OF BAD PAD:
+				 * ffmpeg -loop 1 -i default_interview_image.jpg -i rec_316_stream_569_2013_08_28_11_51_45.flv -filter_complex '[0:v]scale=320:260,pad=2*320:260[left];[1:v]scale=320:260[right];[left][right]overlay=main_w/2:0' -shortest -y out4.flv
+				 *
+				 * JUST MERGE:
+				 * ffmpeg -i rec_316_stream_569_2013_08_28_11_51_45.flv -i rec_316_stream_569_2013_08_28_11_51_45.flv -filter_complex '[0:v]scale=320:260,pad=2*320:260[left];[1:v]scale=320:260[right];[left][right]overlay=main_w/2:0' -y out4.flv
+				 */
+				if (pods[i] == null) {
+					shortest = true;
+					args.add("-loop"); args.add("1");
+					args.add("-i"); args.add(defaultInterviewImageFile.getCanonicalPath());
+				} else {
+					args.add("-i"); args.add(pods[i]);
+				}
+			}
+			args.add("-i"); args.add(outputFullWav);
+			args.add("-ar"); args.add("22050");
+			args.add("-ab"); args.add("32k");
+			args.add("-filter_complex");
+			args.add(String.format("[0:v]scale=%1$d:%2$d,pad=2*%1$d:%2$d[left];[1:v]scale=%1$d:%2$d[right];[left][right]overlay=main_w/2:0%3$s"
+					, flvWidth, flvHeight, shortest ? ":shortest=1" : ""));
+			if (shortest) {
+				args.add("-shortest");
+			}
+			args.add("-map"); args.add("0:0");
+			args.add("-map"); args.add("1:0");
+			args.add("-map"); args.add("2:0");
+			args.add("-r"); args.add("" + frameRate);
+			args.add("-qmax"); args.add("1");
+			args.add("-qmin"); args.add("1");
+			args.add("-y");
+			String hashFileFullNameFlv = "flvRecording_" + flvRecording.getFlvRecordingId() + ".flv";
+			String outputFullFlv = new File(streamFolderGeneral, hashFileFullNameFlv).getCanonicalPath();
+			args.add(outputFullFlv);
+			// TODO additional flag to 'quiet' output should be added
+			returnLog.add(ProcessHelper.executeScript("generateFullBySequenceFLV", args.toArray(new String[]{})));
+
+			flvRecording.setFlvWidth(2 * flvWidth);
+			flvRecording.setFlvHeight(flvHeight);
+
+			flvRecording.setFileHash(hashFileFullNameFlv);
+
+			// Extract first Image for preview purpose
+			// ffmpeg -i movie.flv -vcodec mjpeg -vframes 1 -an -f rawvideo -s
+			// 320x240 movie.jpg
+
+			String hashFileFullNameJPEG = "flvRecording_" + flvRecording.getFlvRecordingId() + ".jpg";
+			String outPutJpeg = new File(streamFolderGeneral, hashFileFullNameJPEG).getCanonicalPath();
+			deleteFileIfExists(outPutJpeg);
+
+			flvRecording.setPreviewImage(hashFileFullNameJPEG);
+
+			String[] argv_previewFLV = new String[] { //
+					getPathToFFMPEG(), //
+					"-i", outputFullFlv, //
+					"-vcodec", "mjpeg", //
+					"-vframes", "100", "-an", //
+					"-f", "rawvideo", //
+					"-s", (2 * flvWidth) + "x" + flvHeight, //
+					outPutJpeg };
+
+			returnLog.add(ProcessHelper.executeScript("generateFullFLV", argv_previewFLV));
+
+			String alternateDownloadName = "flvRecording_" + flvRecording.getFlvRecordingId() + ".avi";
+			String alternateDownloadFullName = new File(streamFolderGeneral, alternateDownloadName).getCanonicalPath();
+			deleteFileIfExists(alternateDownloadFullName);
+
+			String[] argv_alternateDownload = new String[] { getPathToFFMPEG(), "-i", outputFullFlv, alternateDownloadFullName };
+
+			returnLog.add(ProcessHelper.executeScript("alternateDownload", argv_alternateDownload));
+
+			flvRecording.setAlternateDownload(alternateDownloadName);
+
+			updateDuration(flvRecording);
+			convertToMp4(flvRecording, returnLog);
+			flvRecording.setStatus(FlvRecording.Status.PROCESSED);
+
+			logDao.deleteByRecordingId(flvRecording.getFlvRecordingId());
+
+			for (ConverterProcessResult returnMap : returnLog) {
+				logDao.addFLVRecordingLog("generateFFMPEG", flvRecording, returnMap);
+			}
+
+			// Delete Wave Files
+			for (String fileName : listOfFullWaveFiles) {
+				File audio = new File(fileName);
+				if (audio.exists()) {
+					audio.delete();
+				}
+			}
+		} catch (Exception err) {
+			log.error("[startConversion]", err);
+			flvRecording.setStatus(FlvRecording.Status.ERROR);
+		}
+		recordingDao.update(flvRecording);
+	}
+
+	public ConverterProcessResult processImageWindows(String file1, String file2, String file3) {
+		return ProcessHelper.executeScriptWindows("processImageWindows", new String[] { getPathToImageMagick(), file1,
+				file2, "+append", file3 });
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/converter/FlvRecorderConverter.java b/src/main/java/org/apache/openmeetings/converter/FlvRecorderConverter.java
new file mode 100644
index 0000000..5bbc5b9
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/converter/FlvRecorderConverter.java
@@ -0,0 +1,205 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.converter;
+
+import static org.apache.openmeetings.util.OmFileHelper.getStreamsHibernateDir;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
+import org.apache.openmeetings.db.dao.record.FlvRecordingLogDao;
+import org.apache.openmeetings.db.dao.record.FlvRecordingMetaDataDao;
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.openmeetings.db.entity.record.FlvRecordingMetaData;
+import org.apache.openmeetings.db.entity.record.FlvRecordingMetaData.Status;
+import org.apache.openmeetings.util.process.ConverterProcessResult;
+import org.apache.openmeetings.util.process.ProcessHelper;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class FlvRecorderConverter extends BaseConverter {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(FlvRecorderConverter.class, webAppRootKey);
+
+	// Spring loaded Beans
+	@Autowired
+	private FlvRecordingDao recordingDao;
+	@Autowired
+	private FlvRecordingMetaDataDao metaDataDao;
+	@Autowired
+	private FlvRecordingLogDao logDao;
+
+	private String FFMPEG_MAP_PARAM = ":";
+
+	public void startConversion(Long flvRecordingId) {
+		FlvRecording flvRecording = null;
+		try {
+			if (isUseOldStyleFfmpegMap()) {
+				FFMPEG_MAP_PARAM = ".";
+			}
+
+			flvRecording = recordingDao.get(flvRecordingId);
+			log.debug("flvRecording " + flvRecording.getFlvRecordingId());
+
+			List<ConverterProcessResult> returnLog = new ArrayList<ConverterProcessResult>();
+			List<String> listOfFullWaveFiles = new LinkedList<String>();
+			File streamFolder = getStreamFolder(flvRecording);
+			
+			FlvRecordingMetaData screenMetaData = metaDataDao.getScreenMetaDataByRecording(flvRecording.getFlvRecordingId());
+
+			if (screenMetaData == null) {
+				throw new Exception("screenMetaData is Null FlvRecordingId " + flvRecording.getFlvRecordingId());
+			}
+
+			if (screenMetaData.getStreamStatus() == Status.NONE) {
+				throw new Exception("Stream has not been started, error in recording");
+			}
+
+			screenMetaData = waitForTheStream(screenMetaData.getFlvRecordingMetaDataId());
+
+			stripAudioFirstPass(flvRecording, returnLog, listOfFullWaveFiles, streamFolder);
+
+			// Merge Wave to Full Length
+			String streamFolderGeneralName = getStreamsHibernateDir().getCanonicalPath() + File.separator; // FIXME
+
+			String hashFileFullName = screenMetaData.getStreamName() + "_FINAL_WAVE.wav";
+			String outputFullWav = new File(streamFolder, hashFileFullName).getCanonicalPath();
+
+			if (listOfFullWaveFiles.size() == 1) {
+				outputFullWav = listOfFullWaveFiles.get(0);
+			} else if (listOfFullWaveFiles.size() > 0) {
+				String[] argv_full_sox = mergeAudioToWaves(listOfFullWaveFiles, outputFullWav);
+
+				returnLog.add(ProcessHelper.executeScript("mergeAudioToWaves", argv_full_sox));
+			} else {
+				// create default Audio to merge it. strip to content length
+				String outputWav = streamFolderGeneralName + "one_second.wav";
+
+				// Calculate delta at beginning
+				Long deltaTimeMilliSeconds = flvRecording.getRecordEnd().getTime() - flvRecording.getRecordStart().getTime();
+				Float deltaPadding = (Float.parseFloat(deltaTimeMilliSeconds.toString()) / 1000) - 1;
+
+				String[] argv_full_sox = new String[] { getPathToSoX(), outputWav, outputFullWav, "pad", "0", deltaPadding.toString() };
+
+				returnLog.add(ProcessHelper.executeScript("generateSampleAudio", argv_full_sox));
+			}
+			screenMetaData.setFullWavAudioData(hashFileFullName);
+			metaDataDao.update(screenMetaData);
+
+			// Merge Audio with Video / Calculate resulting FLV
+
+			String inputScreenFullFlv = new File(streamFolder, screenMetaData.getStreamName() + ".flv")
+					.getCanonicalPath();
+
+			String hashFileFullNameFlv = "flvRecording_" + flvRecording.getFlvRecordingId() + ".flv";
+			String outputFullFlv = streamFolderGeneralName + hashFileFullNameFlv;
+
+			// ffmpeg -vcodec flv -qscale 9.5 -r 25 -ar 22050 -ab 32k -s 320x240
+			// -i 65318fb5c54b1bc1b1bca077b493a914_28_12_2009_23_38_17_FINAL_WAVE.wav
+			// -i 65318fb5c54b1bc1b1bca077b493a914_28_12_2009_23_38_17.flv
+			// final1.flv
+
+			int flvWidth = flvRecording.getWidth();
+			int flvHeight = flvRecording.getHeight();
+
+			log.debug("flvWidth -1- " + flvWidth);
+			log.debug("flvHeight -1- " + flvHeight);
+
+			flvWidth = Double.valueOf((Math.floor(flvWidth / 16)) * 16).intValue();
+			flvHeight = Double.valueOf((Math.floor(flvHeight / 16)) * 16).intValue();
+
+			log.debug("flvWidth -2- " + flvWidth);
+			log.debug("flvHeight -2- " + flvHeight);
+
+			flvRecording.setFlvWidth(flvWidth);
+			flvRecording.setFlvHeight(flvHeight);
+
+			String[] argv_fullFLV = new String[] { getPathToFFMPEG(), //
+					"-itsoffset", getDifference(screenMetaData.getRecordStart(), screenMetaData.getFlvRecording().getRecordStart()),
+					"-i", inputScreenFullFlv, "-i", outputFullWav, "-ar", "22050", //
+					"-acodec", "libmp3lame", //
+					"-ab", "32k", //
+					"-s", flvWidth + "x" + flvHeight, //
+					"-vcodec", "flashsv", //
+					"-map", "0" + FFMPEG_MAP_PARAM + "0", //
+					"-map", "1" + FFMPEG_MAP_PARAM + "0", //
+					outputFullFlv };
+
+			returnLog.add(ProcessHelper.executeScript("generateFullFLV", argv_fullFLV));
+
+			flvRecording.setFileHash(hashFileFullNameFlv);
+
+			// Extract first Image for preview purpose
+			// ffmpeg -i movie.flv -vcodec mjpeg -vframes 1 -an -f rawvideo -s
+			// 320x240 movie.jpg
+
+			String hashFileFullNameJPEG = "flvRecording_" + flvRecording.getFlvRecordingId() + ".jpg";
+			String outPutJpeg = streamFolderGeneralName + hashFileFullNameJPEG;
+
+			flvRecording.setPreviewImage(hashFileFullNameJPEG);
+
+			String[] argv_previewFLV = new String[] { //
+					getPathToFFMPEG(), //
+					"-i", outputFullFlv, //
+					"-vcodec", "mjpeg", //
+					"-vframes", "1", "-an", //
+					"-f", "rawvideo", //
+					"-s", flvWidth + "x" + flvHeight, //
+					outPutJpeg };
+
+			returnLog.add(ProcessHelper.executeScript("previewFullFLV", argv_previewFLV));
+
+			String alternateDownloadName = "flvRecording_" + flvRecording.getFlvRecordingId() + ".avi";
+			String alternateDownloadFullName = streamFolderGeneralName + alternateDownloadName;
+
+			String[] argv_alternateDownload = new String[] { getPathToFFMPEG(), "-i", outputFullFlv, "-vcodec",
+					"copy", alternateDownloadFullName };
+
+			returnLog.add(ProcessHelper.executeScript("alternateDownload", argv_alternateDownload));
+
+			flvRecording.setAlternateDownload(alternateDownloadName);
+
+			updateDuration(flvRecording);
+			convertToMp4(flvRecording, returnLog);
+			flvRecording.setStatus(FlvRecording.Status.PROCESSED);
+
+			for (ConverterProcessResult returnMap : returnLog) {
+				logDao.addFLVRecordingLog("generateFFMPEG", flvRecording, returnMap);
+			}
+
+			// Delete Wave Files
+			for (String fileName : listOfFullWaveFiles) {
+				File audio = new File(fileName);
+				if (audio.exists()) {
+					audio.delete();
+				}
+			}
+
+		} catch (Exception err) {
+			log.error("[startConversion]", err);
+			flvRecording.setStatus(FlvRecording.Status.ERROR);
+		}
+		recordingDao.update(flvRecording);
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/converter/GenerateImage.java b/src/main/java/org/apache/openmeetings/converter/GenerateImage.java
new file mode 100644
index 0000000..dc2fdcc
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/converter/GenerateImage.java
@@ -0,0 +1,144 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.converter;
+
+import static org.apache.openmeetings.util.OmFileHelper.bigImagePrefix;
+import static org.apache.openmeetings.util.OmFileHelper.chatImagePrefix;
+import static org.apache.openmeetings.util.OmFileHelper.getUploadProfilesUserDir;
+import static org.apache.openmeetings.util.OmFileHelper.JPG_EXTENTION;
+import static org.apache.openmeetings.util.OmFileHelper.profileFileName;
+import static org.apache.openmeetings.util.OmFileHelper.profileImagePrefix;
+import static org.apache.openmeetings.util.OmFileHelper.thumbImagePrefix;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.io.IOException;
+
+import org.apache.commons.transaction.util.FileHelper;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.util.process.ConverterProcessResult;
+import org.apache.openmeetings.util.process.ConverterProcessResultList;
+import org.apache.openmeetings.util.process.ProcessHelper;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class GenerateImage extends BaseConverter {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(GenerateImage.class, webAppRootKey);
+
+	@Autowired
+	private UserDao usersDao;
+	@Autowired
+	private GenerateThumbs generateThumbs;
+
+	public ConverterProcessResultList convertImage(String fileName, String fileExt,
+			String roomName, String fileNameShort, boolean fullProcessing)
+			throws Exception {
+
+		ConverterProcessResultList returnMap = new ConverterProcessResultList();
+
+		File fileFullPath = new File(OmFileHelper.getUploadTempRoomDir(roomName), fileName + fileExt);
+
+		File destinationFile = OmFileHelper.getNewFile(OmFileHelper.getUploadRoomDir(roomName), fileName, ".jpg");
+
+		log.debug("##### convertImage destinationFile: " + destinationFile);
+
+		ConverterProcessResult processJPG = convertSingleJpg(fileFullPath.getCanonicalPath(), destinationFile);
+		ConverterProcessResult processThumb = generateThumbs.generateThumb(thumbImagePrefix, destinationFile, 50);
+
+		returnMap.addItem("processJPG", processJPG);
+		returnMap.addItem("processThumb", processThumb);
+
+		// Delete old one
+		fileFullPath.delete();
+
+		return returnMap;
+	}
+
+	public ConverterProcessResultList convertImageUserProfile(File file, Long users_id, boolean skipConvertion) throws Exception {
+		ConverterProcessResultList returnMap = new ConverterProcessResultList();
+		
+		// User Profile Update
+		for (File f : getUploadProfilesUserDir(users_id).listFiles(new FileFilter() {
+			public boolean accept(File pathname) {
+				return pathname.getName().endsWith(JPG_EXTENTION);
+			}
+		})) {
+			FileHelper.removeRec(f);
+		}
+		
+		File destinationFile = OmFileHelper.getNewFile(getUploadProfilesUserDir(users_id), profileFileName, JPG_EXTENTION);
+		if (!skipConvertion) {
+			returnMap.addItem("processJPG", convertSingleJpg(file.getCanonicalPath(), destinationFile));
+		} else {
+			FileHelper.copy(file, destinationFile);
+		}
+		returnMap.addItem("processThumb1", generateThumbs.generateThumb(chatImagePrefix, destinationFile, 40));
+		returnMap.addItem("processThumb2", generateThumbs.generateThumb(profileImagePrefix, destinationFile, 126));
+		returnMap.addItem("processThumb3", generateThumbs.generateThumb(bigImagePrefix, destinationFile, 240));
+
+		if (!skipConvertion) {
+			// Delete old one
+			file.delete();
+		}
+
+		String pictureuri = destinationFile.getName();
+		User us = usersDao.get(users_id);
+		us.setUpdatetime(new java.util.Date());
+		us.setPictureuri(pictureuri);
+		usersDao.update(us, users_id);
+
+		//FIXME: After uploading a new picture all other clients should refresh
+		//scopeApplicationAdapter.updateUserSessionObject(users_id, pictureuri);
+
+		return returnMap;
+	}
+
+	/**
+	 * -density 150 -resize 800
+	 * @throws IOException 
+	 * 
+	 */
+	private ConverterProcessResult convertSingleJpg(String inputFile, File outputfile) throws IOException {
+		String[] argv = new String[] { getPathToImageMagick(), inputFile, outputfile.getCanonicalPath() };
+
+		return ProcessHelper.executeScript("generateBatchThumbByWidth", argv);
+	}
+
+	public ConverterProcessResult convertImageByTypeAndSize(String inputFile,
+			String outputfile, int width, int height) {
+		String[] argv = new String[] { getPathToImageMagick(), "-size",
+				width + "x" + height, inputFile, outputfile };
+		return ProcessHelper.executeScript("convertImageByTypeAndSizeAndDepth", argv);
+	}
+
+	public ConverterProcessResult convertImageByTypeAndSizeAndDepth(
+			String inputFile, String outputfile, int width, int height,
+			int depth) {
+		String[] argv = new String[] { getPathToImageMagick(), "-size",
+				width + "x" + height, "-depth", Integer.toString(depth),
+				inputFile, outputfile };
+		return ProcessHelper.executeScript("convertImageByTypeAndSizeAndDepth", argv);
+	}
+
+}
diff --git a/src/main/java/org/apache/openmeetings/converter/GenerateSWF.java b/src/main/java/org/apache/openmeetings/converter/GenerateSWF.java
new file mode 100644
index 0000000..7ae7601
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/converter/GenerateSWF.java
@@ -0,0 +1,127 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.converter;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.util.process.ConverterProcessResult;
+import org.apache.openmeetings.util.process.ProcessHelper;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class GenerateSWF {
+
+	public static final Logger log = Red5LoggerFactory.getLogger(GenerateSWF.class, webAppRootKey);
+
+	@Autowired
+	private ConfigurationDao configurationDao;
+
+	public final static boolean isPosix = System.getProperty("os.name").toUpperCase().indexOf("WINDOWS") == -1;
+
+	public final static String execExt = isPosix ? "" : ".exe";
+
+	private String getPathToSwfTools() {
+		String pathToSWFTools = configurationDao.getConfValue("swftools_path", String.class, "");
+		// If SWFTools Path is not blank a File.separator at the end of the path
+		// is needed
+		if (!"".equals(pathToSWFTools) && !pathToSWFTools.endsWith(File.separator)) {
+			pathToSWFTools = pathToSWFTools + File.separator;
+		}
+		return pathToSWFTools;
+	}
+
+	private String getSwfZoom() {
+		String valueForSwfZoom = configurationDao.getConfValue("swftools_zoom", String.class, "");
+		// WARNING CODE NOT COMPLETE: If SWFTools zoom (dpi) should be an integer between 50 and  600 with a default value of 100 dpi
+		if ("".equals(valueForSwfZoom)) {
+			valueForSwfZoom = "72";
+		}
+		return valueForSwfZoom;
+	}
+
+	private String getSwfJpegQuality() {
+		String valueForSwfJpegQuality = configurationDao.getConfValue("swftools_jpegquality", String.class, "");
+		// WARNING CODE NOT COMPLETE: If SWFTools JPEG Quality should be an integer between 1 and 100, with a default value of 85
+		if ("".equals(valueForSwfJpegQuality)) {
+			valueForSwfJpegQuality = "85";
+		}
+		return valueForSwfJpegQuality;
+	}
+
+	public ConverterProcessResult generateSwf(File originalFolder, File destinationFolder, String fileNamePure) throws IOException {
+		
+		// Create the Content of the Converter Script (.bat or .sh File)
+		String[] argv = new String[] {
+				getPathToSwfTools() + "pdf2swf" + execExt, "-s",
+				"insertstop", // insert Stop command into every frame
+				"-s","poly2bitmap", //http://www.swftools.org/gfx_tutorial.html#Rendering_pages_to_SWF_files
+				"-i", // change draw order to reduce pdf complexity
+				"-j", "" + getSwfJpegQuality(), // JPEG Quality 
+				"-s", "zoom=" + getSwfZoom(), // set zoom dpi 
+				new File(originalFolder, fileNamePure + ".pdf").getCanonicalPath(),
+				new File(destinationFolder, fileNamePure + ".swf").getCanonicalPath() };
+
+		return ProcessHelper.executeScript("generateSwf", argv);
+	}
+
+	/**
+	 * Generates an SWF from the list of files.
+	 */
+	public ConverterProcessResult generateSwfByImages(List<String> images, String outputfile, int fps) {
+		List<String> argvList = Arrays.asList(new String[] {
+				getPathToSwfTools() + "png2swf" + execExt, "-s", 
+				"insertstop", // Insert Stop command into every frame
+				"-o", outputfile, "-r", Integer.toString(fps), "-z" });
+
+		argvList.addAll(images);
+		return ProcessHelper.executeScript("generateSwfByImages", argvList.toArray(new String[0]));
+	}
+
+	/**
+	 * Combines a bunch of SWFs into one SWF by concatenate.
+	 */
+	public ConverterProcessResult generateSWFByCombine(List<String> swfs, String outputswf, int fps) {
+		List<String> argvList = Arrays.asList(new String[] {
+				getPathToSwfTools() + "swfcombine" + execExt, "-s",
+				"insertstop", // Insert Stop command into every frame
+				"-o", outputswf, "-r", Integer.toString(fps), "-z", "-a" });
+
+		argvList.addAll(swfs);
+		return ProcessHelper.executeScript("generateSWFByCombine", argvList.toArray(new String[0]));
+	}
+
+	public ConverterProcessResult generateSWFByFFMpeg(String inputWildCard,
+			String outputswf, int fps, int width, int height) {
+		// FIXME: ffmpeg should be on the system path
+		String[] argv = new String[] { "ffmpeg" + execExt, "-r",
+				Integer.toString(fps), "-i", inputWildCard, "-s",
+				width + "x" + height, "-b", "750k", "-ar", "44100", "-y",
+				outputswf };
+
+		return ProcessHelper.executeScript("generateSWFByFFMpeg", argv);
+	}
+
+}
diff --git a/src/main/java/org/apache/openmeetings/converter/GenerateThumbs.java b/src/main/java/org/apache/openmeetings/converter/GenerateThumbs.java
new file mode 100644
index 0000000..2817b62
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/converter/GenerateThumbs.java
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.converter;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.openmeetings.util.process.ConverterProcessResult;
+import org.apache.openmeetings.util.process.ProcessHelper;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class GenerateThumbs extends BaseConverter {
+	private static final Logger log = Red5LoggerFactory.getLogger(GenerateThumbs.class, webAppRootKey);
+
+	public ConverterProcessResult generateThumb(String pre, File f, Integer thumbSize) throws IOException {
+		log.debug("generateThumb");
+		// Init variables
+		String name = f.getName();
+		File parent = f.getParentFile();
+
+		String[] argv = new String[] {
+			getPathToImageMagick()
+			, "-thumbnail"
+			, Integer.toString(thumbSize) + "x" + Integer.toString(thumbSize)
+			, f.getCanonicalPath()
+			, new File(parent, pre + name).getCanonicalPath()
+			};
+
+		return ProcessHelper.executeScript("generateBatchThumbByWidth", argv);
+	}
+
+	public ConverterProcessResult decodePDF(String inputfile, String outputfile) {
+		log.debug("decodePDF");
+		String[] argv = new String[] { getPathToImageMagick(), inputfile, outputfile };
+
+		return ProcessHelper.executeScript("generateBatchThumbByWidth", argv);
+	}
+
+	public ConverterProcessResult generateBatchThumb(File inputfile, File outputpath, Integer thumbSize, String pre) throws IOException {
+		log.debug("generateBatchThumbByWidth");
+		String[] argv = new String[] {
+			getPathToImageMagick()
+			, "-thumbnail" // FIXME
+			, Integer.toString(thumbSize)
+			, inputfile.getCanonicalPath()
+			, new File(outputpath, "_" + pre + "_page-%04d.jpg").getCanonicalPath()
+			};
+
+		return ProcessHelper.executeScript("generateBatchThumbByWidth", argv);
+	}
+
+	public ConverterProcessResult generateImageBatchByWidth(
+			String current_dir, String inputfile, String outputpath,
+			Integer thumbWidth, String pre) {
+		log.debug("generateImageBatchByWidth");
+
+		String[] argv = new String[] { getPathToImageMagick(),
+				"-resize", Integer.toString(thumbWidth), inputfile,
+				outputpath + "_" + pre + "_page.png" };
+
+		return ProcessHelper.executeScript("generateImageBatchByWidth", argv);
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/data/basic/FieldManager.java b/src/main/java/org/apache/openmeetings/data/basic/FieldManager.java
new file mode 100644
index 0000000..7922eb8
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/basic/FieldManager.java
@@ -0,0 +1,352 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.data.basic;
+
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.label.FieldLanguageDao;
+import org.apache.openmeetings.db.dao.label.FieldLanguagesValuesDao;
+import org.apache.openmeetings.db.entity.label.FieldLanguage;
+import org.apache.openmeetings.db.entity.label.Fieldlanguagesvalues;
+import org.apache.openmeetings.db.entity.label.Fieldvalues;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 
+ * @author sebastianwagner
+ * 
+ */
+@Transactional
+public class FieldManager {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			FieldManager.class, OpenmeetingsVariables.webAppRootKey);
+
+	@PersistenceContext
+	private EntityManager em;
+
+	@Autowired
+	private FieldLanguageDao fieldLanguageDaoImpl;
+
+	@Autowired
+	private FieldLanguagesValuesDao fieldLanguagesValuesDAO;
+
+	@Autowired
+	private ConfigurationDao configurationDaoImpl;
+	
+	public String getString(Long fieldvalues_id, Long language_id) {
+		String result = null;
+		Fieldlanguagesvalues flv = getFieldByIdAndLanguage(fieldvalues_id, language_id);
+		if (flv != null) {
+			result = performReplace(flv).getValue();
+		}
+		return result;
+	}
+	
+	public Fieldlanguagesvalues getFieldByIdAndLanguage(Long fieldvalues_id,
+			Long language_id) {
+		try {
+
+			String hql = "select f from Fieldlanguagesvalues as f "
+					+ "WHERE f.language_id = :language_id "
+					+ "AND f.fieldvalues_id = :fieldvalues_id";
+
+			Fieldlanguagesvalues flv = null;
+
+			TypedQuery<Fieldlanguagesvalues> query = em.createQuery(hql, Fieldlanguagesvalues.class);
+
+			query.setParameter("fieldvalues_id", fieldvalues_id);
+			query.setParameter("language_id", language_id);
+			List<Fieldlanguagesvalues> fList = query.getResultList();
+
+			if (fList.size() > 0) {
+				flv = fList.get(0); //replace should not be performed here to enable string editing via admin
+			}
+
+			return flv;
+		} catch (Exception ex2) {
+			log.error("[getFieldByIdAndLanguage]: ", ex2);
+		}
+		return null;
+	}
+
+	public List<Fieldlanguagesvalues> getAllFieldsByLanguage(Long language_id) {
+		try {
+
+			TypedQuery<Fieldlanguagesvalues> query = em
+					.createQuery("select f from Fieldlanguagesvalues f WHERE f.language_id = :language_id ", Fieldlanguagesvalues.class);
+			query.setParameter("language_id", language_id);
+			List<Fieldlanguagesvalues> returnList = performReplace(query.getResultList());
+
+			return returnList;
+		} catch (Exception ex2) {
+			log.error("[getConfKey]: " + ex2);
+		}
+		return null;
+	}
+
+	public List<Map<String, Object>> getLabelsByLanguage(Long language_id,
+			int start, int max) {
+		try {
+
+			String sql = "select f.fieldvalues.fieldvalues_id, f.value from Fieldlanguagesvalues as f "
+					+ "WHERE f.language_id = :language_id ";
+
+			TypedQuery<Object> query = em.createQuery(sql, Object.class);
+			query.setParameter("language_id", language_id);
+			query.setFirstResult(start);
+			query.setMaxResults(max);
+
+			String appName = configurationDaoImpl.getAppName();
+			List<Map<String, Object>> returnList = new LinkedList<Map<String, Object>>();
+			for (Object fl : query.getResultList()) {
+				Map<String, Object> map = new HashMap<String, Object>();
+				Object[] row = (Object[])fl;
+				map.put("id", row[0]);
+				map.put("value", performReplace((String)row[1], appName));
+				returnList.add(map);
+			}
+			FieldLanguage fieldLanguage = fieldLanguageDaoImpl
+					.getFieldLanguageById(language_id);
+
+			log.debug("Getting Labels for Language " + fieldLanguage.getName());
+
+			// Check for Right To Left Languages
+			if (fieldLanguage.getRtl()) {
+				log.debug("Language requieres RTL!");
+
+				List<Map<String, Object>> returnRtlList = new LinkedList<Map<String, Object>>();
+
+				for (Iterator<Map<String, Object>> iter = returnList.iterator(); iter
+						.hasNext();) {
+					Map<String, Object> remote = iter.next();
+
+					Map<String, Object> toAdd = new HashMap<String, Object>();
+					toAdd.put("id", remote.get("id"));
+
+					String value = remote.get("value").toString();
+
+					String[] splitted = value.split(" ");
+					String reverseOrder = "";
+					for (int i = splitted.length - 1; i >= 0; i--) {
+						reverseOrder += splitted[i];
+						if (splitted.length != 1) {
+							reverseOrder += " ";
+						}
+					}
+					log.debug("reverseOrder " + reverseOrder);
+					toAdd.put("value", value);
+
+					returnRtlList.add(toAdd);
+				}
+
+				return returnRtlList;
+			} else {
+				log.debug("Language doesnt requiere RTL!");
+
+				return returnList;
+
+			}
+
+		} catch (Exception ex2) {
+			log.error("[getLabelsByLanguage]: ", ex2);
+			ex2.printStackTrace();
+		}
+		return null;
+	}
+
+	public List<Fieldlanguagesvalues> getAllFieldsByLanguage(Long language_id,
+			int start, int max) {
+		try {
+
+			String sql = "select f from Fieldlanguagesvalues f WHERE f.language_id = :language_id "
+					+ "AND f.fieldvalues_id >= :start AND f.fieldvalues_id <  :max";
+
+			TypedQuery<Fieldlanguagesvalues> query = em.createQuery(sql, Fieldlanguagesvalues.class);
+			query.setParameter("language_id", language_id);
+			query.setParameter("start", start);
+			query.setParameter("max", start + max);
+
+			List<Fieldlanguagesvalues> returnList = performReplace(query.getResultList());
+			FieldLanguage fieldLanguage = fieldLanguageDaoImpl
+					.getFieldLanguageById(language_id);
+
+			log.debug("GEtting all fields by language : "
+					+ fieldLanguage.getName());
+
+			// Check for Right To Left Languages
+			if (fieldLanguage.getRtl()) {
+				log.debug("language : " + fieldLanguage.getName()
+						+ " requieres RTL");
+
+				List<Fieldlanguagesvalues> returnRtlList = new LinkedList<Fieldlanguagesvalues>();
+
+				for (Iterator<Fieldlanguagesvalues> iter = returnList
+						.iterator(); iter.hasNext();) {
+					Fieldlanguagesvalues remote = iter.next();
+					Fieldlanguagesvalues toAdd = new Fieldlanguagesvalues();
+					toAdd.setFieldlanguagesvalues_id(remote
+							.getFieldlanguagesvalues_id());
+					toAdd.setFieldvalues_id(remote.getFieldvalues_id());
+					toAdd.setLanguage_id(remote.getLanguage_id());
+
+					String[] splitted = remote.getValue().split(" ");
+					String reverseOrder = "";
+					for (int i = splitted.length - 1; i >= 0; i--) {
+						reverseOrder += splitted[i];
+						if (splitted.length != 1) {
+							reverseOrder += " ";
+						}
+					}
+					toAdd.setValue(reverseOrder);
+
+					returnRtlList.add(toAdd);
+				}
+
+				return returnRtlList;
+			} else {
+				log.debug("language : " + fieldLanguage.getName()
+						+ " requieres NO RTL");
+
+				return returnList;
+
+			}
+
+		} catch (Exception ex2) {
+			log.error("[getConfKey]: ", ex2);
+		}
+		return null;
+	}
+
+	public Long addFieldValueByFieldAndLanguage(Fieldvalues fv,
+			Long language_id, String fieldvalue) {
+		try {
+
+			Fieldlanguagesvalues flv = new Fieldlanguagesvalues();
+			flv.setStarttime(new Date());
+			flv.setValue(fieldvalue);
+			flv.setLanguage_id(language_id);
+			flv.setFieldvalues(fv);
+			flv.setDeleted(false);
+
+			flv = em.merge(flv);
+			Long fieldlanguagesvaluesId = flv.getFieldlanguagesvalues_id();
+
+			return fieldlanguagesvaluesId;
+		} catch (Exception ex2) {
+			log.error("[getConfKey]: ", ex2);
+		}
+		return null;
+	}
+
+	public void updateFieldValueByFieldAndLanguage(Fieldlanguagesvalues flv) {
+		try {
+
+			if (flv.getFieldlanguagesvalues_id() == null) {
+				em.persist(flv);
+			} else {
+				if (!em.contains(flv)) {
+					em.merge(flv);
+				}
+			}
+
+		} catch (Exception ex2) {
+			log.error("[updateFieldValueByFieldAndLanguage]: ", ex2);
+		}
+
+	}
+
+	public Fieldvalues addFieldById(String fieldName, Long fieldvalues_id) {
+		try {
+			Fieldvalues fl = new Fieldvalues();
+			fl.setFieldvalues_id(fieldvalues_id);
+			fl.setStarttime(new Date());
+			fl.setName(fieldName);
+			fl.setDeleted(false);
+
+			return em.merge(fl);
+		} catch (Exception ex2) {
+			log.error("[getConfKey]: ", ex2);
+		}
+		return null;
+	}
+
+	public long getNextFieldvaluesId() {
+		return fieldLanguagesValuesDAO.count() + 1;
+	}
+	
+	public Fieldvalues getFieldvaluesById(Long fieldvalues_id) {
+		String hql = "select f from Fieldvalues f WHERE f.fieldvalues_id = :fieldvalues_id ";
+		TypedQuery<Fieldvalues> query = em.createQuery(hql, Fieldvalues.class);
+		query.setParameter("fieldvalues_id", fieldvalues_id);
+		Fieldvalues fv = null;
+		try {
+			fv = query.getSingleResult();
+		} catch (NoResultException ex) {
+		}
+		return fv;
+	}
+
+	private Fieldlanguagesvalues performReplace(Fieldlanguagesvalues f) {
+		String appName = configurationDaoImpl.getAppName();
+		return performReplace(f, appName);
+	}
+	
+	private String performReplace(String val, String appName) {
+		return val == null ? val : val.replaceAll("\\$APP_NAME", appName);
+	}
+	
+	private Fieldlanguagesvalues performReplace(Fieldlanguagesvalues f, String appName) {
+		Fieldlanguagesvalues r = new Fieldlanguagesvalues();
+		r.setDeleted(f.getDeleted());
+		r.setFieldlanguagesvalues_id(f.getFieldlanguagesvalues_id());
+		r.setFieldvalues_id(f.getFieldvalues_id());
+		r.setLanguage_id(f.getLanguage_id());
+		r.setStarttime(f.getStarttime());
+		r.setUpdatetime(f.getUpdatetime());
+		r.setValue(performReplace(f.getValue(), appName));
+		return r;
+	}
+	
+	private <T extends Collection<Fieldlanguagesvalues>> T performReplace(T flv) {
+		String appName = configurationDaoImpl.getAppName();
+		
+		for (Fieldlanguagesvalues f : flv) {
+			performReplace(f, appName);
+		}
+		return flv;
+	}
+	
+}
diff --git a/src/main/java/org/apache/openmeetings/data/beans/rooms/RoomsList.java b/src/main/java/org/apache/openmeetings/data/beans/rooms/RoomsList.java
new file mode 100644
index 0000000..0228088
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/beans/rooms/RoomsList.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.data.beans.rooms;
+
+import org.apache.openmeetings.db.entity.room.Room;
+
+public class RoomsList {
+	
+	Room[] roomList = null;
+
+	public Room[] getRoomList() {
+		return roomList;
+	}
+	public void setRoomList(Room[] roomList) {
+		this.roomList = roomList;
+	}
+
+}
diff --git a/src/main/java/org/apache/openmeetings/data/calendar/management/AppointmentLogic.java b/src/main/java/org/apache/openmeetings/data/calendar/management/AppointmentLogic.java
new file mode 100644
index 0000000..88a31f7
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/calendar/management/AppointmentLogic.java
@@ -0,0 +1,357 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.data.calendar.management;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_APPLICATION_BASE_URL;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_APPOINTMENT_REMINDER_MINUTES;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.DEFAULT_BASE_URL;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+import java.util.TimeZone;
+
+import org.apache.openmeetings.data.basic.FieldManager;
+import org.apache.openmeetings.data.conference.InvitationManager;
+import org.apache.openmeetings.data.conference.RoomManager;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentCategoryDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypDao;
+import org.apache.openmeetings.db.dao.calendar.IInvitationManager.MessageType;
+import org.apache.openmeetings.db.dao.calendar.MeetingMemberDao;
+import org.apache.openmeetings.db.dao.room.InvitationDao;
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.room.RoomTypeDao;
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.db.entity.calendar.MeetingMember;
+import org.apache.openmeetings.db.entity.room.Invitation;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.util.TimezoneUtil;
+import org.apache.openmeetings.util.CalendarPatterns;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class AppointmentLogic {
+	private static final Logger log = Red5LoggerFactory.getLogger(AppointmentLogic.class, webAppRootKey);
+
+	@Autowired
+	private AppointmentDao appointmentDao;
+	@Autowired
+	private AppointmentCategoryDao appointmentCategoryDao;
+	@Autowired
+	private AppointmentReminderTypDao appointmentReminderTypDao;
+	@Autowired
+	private ConfigurationDao configurationDao;
+	@Autowired
+	private FieldManager fieldManager;
+	@Autowired
+	private RoomDao roomDao;
+	@Autowired
+	private InvitationManager invitationManager;
+	@Autowired
+	private TimezoneUtil timezoneUtil;
+	@Autowired
+	private InvitationDao invitationDao;
+	@Autowired
+	private RoomManager roomManager;
+	@Autowired
+	private AdminUserDao userDao;
+	@Autowired
+	private MeetingMemberDao meetingMemberDao;
+	@Autowired
+	private RoomTypeDao roomTypeDao;
+
+	private static int DEFAULT_MINUTES_REMINDER_SEND = 15;
+
+	public List<Appointment> getTodaysAppointmentsForUser(Long userId) {
+		try {
+			log.debug("getTodaysAppointmentsForUser");
+			List<Appointment> points = appointmentDao.getTodaysAppointmentsbyRangeAndMember(userId);
+			log.debug("Count Appointments for Today : " + points.size());
+			return points;
+		} catch (Exception err) {
+			log.error("[getTodaysAppointmentsForUser]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * @author o.becherer
+	 * @param room_id
+	 * @return
+	 */
+	// --------------------------------------------------------------------------------------------
+	public Appointment getAppointmentByRoom(Long room_id) throws Exception {
+		log.debug("getAppointmentByRoom");
+
+		Room room = roomDao.get(room_id);
+
+		if (room == null) {
+			throw new Exception("Room does not exist in database!");
+		}
+
+		if (!room.getAppointment()) {
+			throw new Exception("Room " + room.getName() + " isnt part of an appointed meeting");
+		}
+
+		return appointmentDao.getAppointmentByRoom(room_id);
+	}
+
+	// --------------------------------------------------------------------------------------------
+
+	// next appointment to current date
+	public Appointment getNextAppointment() {
+		try {
+			return appointmentDao.getNextAppointment(new Date());
+		} catch (Exception err) {
+			log.error("[getNextAppointmentById]", err);
+		}
+		return null;
+	}
+
+	public List<Appointment> searchAppointmentByName(String appointmentName) {
+		try {
+			return appointmentDao.searchAppointmentsByName(appointmentName);
+		} catch (Exception err) {
+			log.error("[searchAppointmentByName]", err);
+		}
+		return null;
+	}
+
+	private void sendReminder(User u, Appointment a) throws Exception {
+		Invitation i = new Invitation();
+		i.setInvitedBy(u);
+		i.setInvitee(u);
+		i.setAppointment(a);
+		sendReminder(u, a, i);
+	}
+	
+	private void sendReminder(User u, Appointment a, Invitation inv) throws Exception {
+		if (inv == null) {
+			log.error(String.format("Error retrieving Invitation for member %s in Appointment %s"
+					, u.getAdresses().getEmail(), a.getTitle()));
+			return;
+		}
+
+		TimeZone tZone = timezoneUtil.getTimeZone(u.getTimeZoneId());
+
+		long language_id = u.getLanguage_id();
+		// Get the required labels one time for all meeting members. The
+		// Language of the email will be the system default language
+		String labelid1158 = fieldManager.getString(1158L, language_id);
+		String labelid1153 = fieldManager.getString(1153L, language_id);
+		String labelid1154 = fieldManager.getString(1154L, language_id);
+
+		String subject = generateSubject(labelid1158, a, tZone);
+		String smsSubject = generateSMSSubject(labelid1158, a);
+
+		String message = generateMessage(labelid1158, a, language_id, labelid1153, labelid1154, tZone);
+
+		invitationManager.sendInvitionLink(inv, MessageType.Create, subject, message, false);
+
+		invitationManager.sendInvitationReminderSMS(u.getAdresses().getPhone(), smsSubject, language_id);
+		if (inv.getHash() != null) {
+			inv.setUpdated(new Date());
+			invitationDao.update(inv);
+		}
+	}
+	
+	/**
+	 * Sending Reminder in Simple mail format 5 minutes before Meeting begins
+	 */
+	// ----------------------------------------------------------------------------------------------
+	public void doScheduledMeetingReminder() throws Exception {
+		// log.debug("doScheduledMeetingReminder");
+
+		String baseUrl = configurationDao.getConfValue(CONFIG_APPLICATION_BASE_URL, String.class, DEFAULT_BASE_URL);
+		if (baseUrl == null || baseUrl.length() < 1) {
+			log.error("Error retrieving baseUrl for application");
+			return;
+		}
+		Integer minutesReminderSend = configurationDao.getConfValue(CONFIG_APPOINTMENT_REMINDER_MINUTES, Integer.class
+				, "" + DEFAULT_MINUTES_REMINDER_SEND);
+		if (minutesReminderSend == null) {
+			throw new Exception("minutesReminderSend is null!");
+		}
+
+		if (minutesReminderSend == 0) {
+			log.warn("minutesReminderSend is 0, disabling reminder scheduler");
+			return;
+		}
+
+		long milliseconds = (minutesReminderSend * 60 * 1000);
+		Calendar start = Calendar.getInstance();
+		if (milliseconds < 0) {
+			start.setTimeInMillis(start.getTimeInMillis() + milliseconds);
+		}
+		Calendar end = Calendar.getInstance();
+		if (milliseconds > 0) {
+			end.setTimeInMillis(end.getTimeInMillis() + milliseconds);
+		}
+
+		for (Appointment a : appointmentDao.getAppointmentsInRange(start, end)) {
+			// Prevent email from being send twice, even if the cycle takes
+			// very long to send each
+			if (a.isReminderEmailSend()) {
+				continue;
+			}
+			TimeZone ownerZone = timezoneUtil.getTimeZone(a.getOwner().getTimeZoneId());
+			Calendar aNow = Calendar.getInstance(ownerZone);
+			Calendar aStart = a.startCalendar(ownerZone);
+			aStart.add(Calendar.MINUTE, -minutesReminderSend);
+			if (aStart.after(aNow)) {
+				// to early to send reminder
+				continue;
+			}
+			// Update Appointment to not send invitation twice
+			a.setReminderEmailSend(true);
+			appointmentDao.updateAppointment(a);
+
+			List<MeetingMember> members = a.getMeetingMembers();
+
+			sendReminder(a.getOwner(), a);
+			if (members == null) {
+				log.debug("doScheduledMeetingReminder : no members in meeting!");
+				continue;
+			}
+			//TODO should we add reminder for the owner????
+
+			// Iterate through all MeetingMembers
+			for (MeetingMember mm : members) {
+				log.debug("doScheduledMeetingReminder : Member " + mm.getUser().getAdresses().getEmail());
+
+				Invitation inv = mm.getInvitation();
+
+				sendReminder(mm.getUser(), a, inv);
+			}
+		}
+	}
+
+	private String generateSubject(String labelid1158, Appointment ment, TimeZone timezone) {
+		StringBuilder message = new StringBuilder(labelid1158);
+		message.append(" ").append(ment.getTitle()).append(' ')
+			.append(CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(ment.getStart(), timezone))
+			.append(" - ").append(CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(ment.getEnd(), timezone));
+
+		return message.toString();
+
+	}
+
+	private String generateSMSSubject(String labelid1158, Appointment ment) {
+		String subj = configurationDao.getConfValue("sms.subject", String.class, null);
+		return subj == null || subj.length() == 0 ? 
+				labelid1158 + " " + ment.getTitle() : subj;
+	}
+	
+	/**
+	 * Generate a localized message including the time and date of the meeting
+	 * event
+	 * 
+	 * @param labelid1158
+	 * @param ment
+	 * @param language_id
+	 * @param labelid1153
+	 * @param jNameTimeZone
+	 * @param labelid1154
+	 * @return
+	 */
+	private String generateMessage(String labelid1158, Appointment ment, Long language_id,
+			String labelid1153, String labelid1154, TimeZone timezone) {
+		StringBuilder message = new StringBuilder(labelid1158);
+		message.append(" ").append(ment.getTitle());
+
+		if (ment.getDescription() != null && ment.getDescription().length() > 0) {
+			message.append(fieldManager.getString(1152L, language_id)).append(ment.getDescription());
+		}
+
+		message.append("<br/>").append(labelid1153).append(' ')
+			.append(CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(ment.getStart(), timezone))
+			.append("<br/>").append(labelid1154).append(' ')
+			.append(CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(ment.getEnd(), timezone))
+			.append("<br/>");
+
+		return message.toString();
+	}
+
+	public Appointment getAppointment(String appointmentName,
+			String appointmentLocation, String appointmentDescription,
+			Calendar appointmentstart, Calendar appointmentend,
+			Boolean isDaily, Boolean isWeekly, Boolean isMonthly,
+			Boolean isYearly, Long categoryId, Long remind, String[] mmClient,
+			Long roomType, Long languageId,
+			Boolean isPasswordProtected, String password, long roomId, Long users_id) {
+		Appointment a = new Appointment();
+		a.setTitle(appointmentName);
+		a.setLocation(appointmentLocation);
+		a.setDescription(appointmentDescription);
+		a.setStart(appointmentstart.getTime());
+		a.setEnd(appointmentend.getTime());
+		a.setIsDaily(isDaily);
+		a.setIsWeekly(isWeekly);
+		a.setIsMonthly(isMonthly);
+		a.setIsYearly(isYearly);
+		a.setCategory(appointmentCategoryDao.get(categoryId));
+		a.setRemind(appointmentReminderTypDao.get(remind));
+		if (roomId > 0) {
+			a.setRoom(roomDao.get(roomId));
+		} else {
+			a.setRoom(new Room());
+			a.getRoom().setComment(appointmentDescription);
+			a.getRoom().setName(appointmentName);
+			a.getRoom().setRoomtype(roomTypeDao.get(roomType));
+		}
+		a.setOwner(userDao.get(users_id));
+		a.setPasswordProtected(isPasswordProtected);
+		a.setPassword(password);
+		a.setMeetingMembers(new ArrayList<MeetingMember>());
+		for (String singleClient : mmClient) {
+			MeetingMember mm = getMeetingMember(users_id, languageId, singleClient);
+			mm.setAppointment(a);
+			a.getMeetingMembers().add(mm);
+		}
+		return a;
+	}
+
+	public MeetingMember getMeetingMember(Long userId, Long langId, String str) {
+		String[] params = str.split(",");
+		
+		try {
+			return meetingMemberDao.get(Long.valueOf(params[0]));
+		} catch (Exception e) {
+			//no-op
+		}
+		MeetingMember mm = new MeetingMember();
+		try {
+			mm.setUser(userDao.get(Long.valueOf(params[4])));
+		} catch (Exception e) {
+			//no-op
+		}
+		if (mm.getUser() == null) {
+			mm.setUser(userDao.getContact(params[3], params[1], params[2], langId, params[5], userId));
+		}
+		
+		return mm;
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/data/conference/InvitationManager.java b/src/main/java/org/apache/openmeetings/data/conference/InvitationManager.java
new file mode 100644
index 0000000..4f2f281
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/conference/InvitationManager.java
@@ -0,0 +1,514 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.data.conference;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.security.NoSuchAlgorithmException;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.TimeZone;
+import java.util.Vector;
+
+import org.apache.openmeetings.data.basic.FieldManager;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.calendar.IInvitationManager;
+import org.apache.openmeetings.db.dao.room.InvitationDao;
+import org.apache.openmeetings.db.entity.basic.MailMessage;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.db.entity.calendar.MeetingMember;
+import org.apache.openmeetings.db.entity.room.Invitation;
+import org.apache.openmeetings.db.entity.room.Invitation.Valid;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.User.Type;
+import org.apache.openmeetings.db.util.TimezoneUtil;
+import org.apache.openmeetings.mail.MailHandler;
+import org.apache.openmeetings.mail.SMSHandler;
+import org.apache.openmeetings.util.CalendarPatterns;
+import org.apache.openmeetings.util.LinkHelper;
+import org.apache.openmeetings.util.crypt.MD5;
+import org.apache.openmeetings.util.crypt.ManageCryptStyle;
+import org.apache.openmeetings.util.mail.IcalHandler;
+import org.apache.openmeetings.web.mail.template.InvitationTemplate;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 
+ * @author swagner
+ * 
+ */
+public class InvitationManager implements IInvitationManager {
+	private static final Logger log = Red5LoggerFactory.getLogger(InvitationManager.class, webAppRootKey);
+
+	@Autowired
+	private InvitationDao invitationDao;
+	@Autowired
+	private FieldManager fieldManager;
+	@Autowired
+	private MailHandler mailHandler;
+	@Autowired
+	private SMSHandler smsHandler;
+	@Autowired
+	private TimezoneUtil timezoneUtil;
+	@Autowired
+	private ConfigurationDao configDao;
+
+	/**
+	 * Sending invitation within plain mail
+	 * 
+	 * @param user_level
+	 * @param username
+	 * @param message
+	 * @param email
+	 * @param subject
+	 * @param rooms_id
+	 * @param conferencedomain
+	 * @param isPasswordProtected
+	 * @param invitationpass
+	 * @param valid
+	 * @param validFrom
+	 * @param validTo
+	 * @param createdBy
+	 * @return
+	 */
+	// ---------------------------------------------------------------------------------------------------------
+	public Invitation getInvitation(User inveetee, Room room
+			, boolean isPasswordProtected, String invitationpass, Valid valid,
+			User createdBy, Long language_id, Date gmtTimeStart, Date gmtTimeEnd
+			, Appointment appointment)
+	{
+		Invitation i = getInvitation(null, inveetee, room, isPasswordProtected, invitationpass, valid, createdBy
+				, language_id, gmtTimeStart, gmtTimeEnd, appointment);
+		i = invitationDao.update(i);
+		return i;
+	}
+	
+	public Invitation getInvitation(Invitation _invitation, User inveetee, Room room
+			, boolean isPasswordProtected, String invitationpass, Valid valid,
+			User createdBy, Long language_id, Date gmtTimeStart, Date gmtTimeEnd
+			, Appointment appointment) {
+		
+		Invitation invitation = _invitation;
+		if (null == _invitation) {
+			invitation = new Invitation();
+			String hashRaw = "HASH" + (System.currentTimeMillis());
+			try {
+				invitation.setHash(MD5.do_checksum(hashRaw));
+			} catch (NoSuchAlgorithmException e) {
+				log.error("Unexpected error while creating invitation", e);
+				throw new RuntimeException(e);
+			}
+		}
+
+		invitation.setPasswordProtected(isPasswordProtected);
+		if (isPasswordProtected) {
+			invitation.setPassword(ManageCryptStyle.getInstanceOfCrypt().createPassPhrase(invitationpass));
+		}
+
+		invitation.setUsed(false);
+		invitation.setValid(valid);
+		
+		// valid period of Invitation
+		switch (valid) {
+			case Period:
+				invitation.setValidFrom(new Date(gmtTimeStart.getTime() - (5 * 60 * 1000)));
+				invitation.setValidTo(gmtTimeEnd);
+				break;
+			case Endless:
+			case OneTime:
+			default:
+				break;
+		}
+
+		invitation.setDeleted(false);
+
+		invitation.setInvitedBy(createdBy);
+		invitation.setInvitee(inveetee);
+		if (language_id != null && Type.contact == invitation.getInvitee().getType()) {
+			invitation.getInvitee().setLanguage_id(language_id);
+		}
+		invitation.setRoom(room);
+		invitation.setInserted(new Date());
+		invitation.setAppointment(appointment);
+
+		return invitation;
+	}
+	
+	/**
+	 * @author vasya
+	 * 
+	 * @param member
+	 * @param a
+	 */
+	public void processInvitation(Appointment a, MeetingMember member, MessageType type) {
+		processInvitation(a, member, type, true);
+	}
+	
+	public void processInvitation(Appointment a, MeetingMember mm, MessageType type, boolean sendMail) {
+		if (a.getRemind() == null) {
+			log.error("Appointment doesn't have reminder set!");
+			return;
+		}
+		long remindType = a.getRemind().getTypId();
+		if (remindType < 2) {
+			log.error("MeetingMember should not have invitation!");
+			return;
+		}
+
+		log.debug(":::: processInvitation ..... " + remindType);
+
+		// appointment.getRemind().getTypId() == 1 will not receive emails
+		if (remindType > 1) {
+			log.debug("Invitation for Appointment : simple email");
+
+			try {
+				mm.setInvitation(getInvitation(mm.getInvitation()
+						, mm.getUser(), a.getRoom(), a.isPasswordProtected(), a.getPassword()
+						, Valid.Period, a.getOwner(), null, a.getStart(), a.getEnd(), a));
+				if (sendMail) {
+					sendInvitionLink(a, mm, type, remindType > 2);
+				}
+			} catch (Exception e) {
+				log.error("Unexpected error while setting invitation", e);
+			}
+		}
+	}
+
+	private String formatSubject(Long langId, Appointment a, TimeZone tz) {
+		String message = fieldManager.getString(1151L, langId) + " " + a.getTitle();
+
+		message += " "
+				+ CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getStart(), tz);
+
+		message += " - "
+				+ CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getEnd(), tz);
+
+		return message;
+	}
+
+	private String formatMessage(Long langId, Appointment a, TimeZone tz, String invitorName) {
+		String message = fieldManager.getString(1151L, langId) + " " + a.getTitle();
+
+		if (a.getDescription() != null &&  a.getDescription().length() != 0) {
+			message += fieldManager.getString(1152L, langId) + a.getDescription();
+		}
+
+		message += "<br/>"
+				+ fieldManager.getString(1153L, langId)
+				+ ' '
+				+ CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getStart(), tz)
+				+ "<br/>";
+
+		message += fieldManager.getString(1154L, langId)
+				+ ' '
+				+ CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getEnd(), tz) + "<br/>";
+
+		message += fieldManager.getString(1156L, langId) + invitorName + "<br/>";
+
+		return message;
+	}
+
+	private String formatCancelSubject(Long langId, Appointment a, TimeZone tz) {
+		String message = fieldManager.getString(1157L, langId) + a.getTitle();
+
+		message += " "
+				+ CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getStart(), tz)
+				+ " - "
+				+ CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getEnd(), tz);
+
+		return message;
+	}
+
+	private String formatCancelMessage(Long langId, Appointment a, TimeZone tz, String invitorName) {
+		try {
+			String message = fieldManager.getString(1157L, langId) + a.getTitle();
+
+			if (a.getDescription() != null && a.getDescription().length() != 0) {
+				message += fieldManager.getString(1152L, langId) + a.getDescription();
+			}
+
+			message += "<br/>"
+					+ fieldManager.getString(1153L, langId)
+					+ ' '
+					+ CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getStart(), tz)
+					+ "<br/>";
+
+			message += fieldManager.getString(1154L, langId)
+					+ ' '
+					+ CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getEnd(), tz)
+					+ "<br/>";
+
+			message += fieldManager.getString(1156L, langId) + invitorName + "<br/>";
+
+			return message;
+		} catch (Exception err) {
+			log.error("Could not format cancel message", err);
+			return "Error formatCancelMessage";
+		}
+	}
+
+	private String formatUpdateSubject(Long langId, Appointment a, TimeZone tz) {
+		String message = fieldManager.getString(1155L, langId) + " " + a.getTitle();
+
+		message += " "
+				+ CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getStart(), tz)
+				+ " - "
+				+ CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getEnd(), tz);
+
+		return message;
+	}
+
+	private String formatUpdateMessage(Long langId, Appointment a, TimeZone tz, String invitorName) {
+		try {
+			String message = fieldManager.getString(1155L, langId) + " " + a.getTitle();
+
+			if (a.getDescription().length() != 0) {
+				message += fieldManager.getString(1152L, langId) + a.getDescription();
+			}
+
+			message += "<br/>"
+					+ fieldManager.getString(1153L, langId)
+					+ ' '
+					+ CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getStart(), tz)
+					+ "<br/>";
+
+			message += fieldManager.getString(1154L, langId)
+					+ ' '
+					+ CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getEnd(), tz)
+					+ "<br/>";
+
+			message += fieldManager.getString(1156L, langId) + invitorName + "<br/>";
+
+			return message;
+		} catch (Exception err) {
+			log.error("Could not format update message", err);
+			return "Error formatUpdateMessage";
+		}
+	}
+
+	/**
+	 * @author vasya
+	 * 
+     * @param mm
+     * @param a
+     * @param message
+     * @param subject
+	 * @throws Exception 
+	 */
+	private void sendInvitionLink(Appointment a, MeetingMember mm, MessageType type, boolean ical) throws Exception	{
+		User owner = a.getOwner();
+		String invitorName = owner.getFirstname() + " " + owner.getLastname();
+		Long langId = mm.getUser().getLanguage_id();
+		TimeZone tz = timezoneUtil.getTimeZone(mm.getUser());
+		String subject = null;
+		String message = null;
+		switch (type) {
+			case Cancel:
+				subject = formatCancelSubject(langId, a, tz);
+				message = formatCancelMessage(langId, a, tz, invitorName);
+				break;
+			case Create:
+				subject = formatSubject(langId, a, tz);
+				message = formatMessage(langId, a, tz, invitorName);
+				break;
+			case Update:
+			default:
+				subject = formatUpdateSubject(langId, a, tz);
+				message = formatUpdateMessage(langId, a, tz, invitorName);
+				break;
+			
+		}
+		sendInvitionLink(mm.getInvitation(), type, subject, message, ical);
+	}
+	
+	public void sendInvitionLink(Invitation i, MessageType type, String subject, String message, boolean ical) throws Exception {
+		String invitation_link = LinkHelper.getInvitationLink(configDao.getBaseUrl(), i);
+		User owner = i.getInvitedBy();
+		
+		String invitorName = owner.getFirstname() + " " + owner.getLastname();
+		boolean isCanceled = (type==MessageType.Cancel); 
+		String template = InvitationTemplate.getEmail(i.getInvitee().getLanguage_id(), invitorName, message, invitation_link, isCanceled);
+		String email = i.getInvitee().getAdresses().getEmail();
+		String replyToEmail = owner.getAdresses().getEmail();
+		
+		if (ical) {
+			String username = i.getInvitee().getLogin();
+			boolean isOwner = owner.getUser_id() == i.getInvitee().getUser_id();
+			IcalHandler handler = new IcalHandler(MessageType.Cancel == type ? IcalHandler.ICAL_METHOD_CANCEL : IcalHandler.ICAL_METHOD_REQUEST);
+
+			HashMap<String, String> attendeeList = handler.getAttendeeData(email, username, isOwner);
+
+			Vector<HashMap<String, String>> atts = new Vector<HashMap<String, String>>();
+			atts.add(attendeeList);
+
+			// Defining Organizer
+
+			HashMap<String, String> organizerAttendee = handler.getAttendeeData(email, username, isOwner);
+			organizerAttendee = handler.getAttendeeData(replyToEmail, owner.getLogin(), isOwner);
+
+			Appointment a = i.getAppointment();
+			// Create ICal Message
+			//FIXME should be checked to generate valid time
+			String meetingId = handler.addNewMeeting(a.getStart(), a.getEnd(),
+					a.getTitle(), atts, invitation_link,
+					organizerAttendee, a.getIcalId(), timezoneUtil.getTimeZone(owner));
+
+			// Writing back meetingUid
+			if (a.getIcalId() == null || a.getIcalId().length() < 1) {
+				a.setIcalId(meetingId);
+				// TODO should it be saved ???
+			}
+
+			log.debug(handler.getICalDataAsString());
+			mailHandler.send(new MailMessage(email, replyToEmail, subject, template, handler.getIcalAsByteArray()));
+		} else {
+			mailHandler.send(email, replyToEmail, subject, template);
+		}
+	}
+
+	/**
+	 * This method sends invitation reminder SMS
+	 * @param phone user's phone
+	 * @param subject 
+	 * @return
+	 */
+	public boolean sendInvitationReminderSMS(String phone, String subject, long language_id) {
+		if (phone != null && phone.length() > 0) {
+			log.debug("sendInvitationReminderSMS to " + phone + ": " + subject);
+			try {
+				return smsHandler.sendSMS(phone, subject, language_id);
+			} catch (Exception e) {
+				log.error("sendInvitationReminderSMS", e);
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * 
+	 * @param hashCode
+	 * @param hidePass
+	 * @return
+	 */
+	public Object getInvitationByHashCode(String hashCode, boolean hidePass) {
+		try {
+			Invitation invitation = invitationDao.getInvitationByHashCode(hashCode, hidePass);
+
+			if (invitation == null) {
+				// already deleted or does not exist
+				return new Long(-31);
+			} else {
+				switch (invitation.getValid()) {
+					case OneTime:
+						// do this only if the user tries to get the Invitation, not
+						// while checking the PWD
+						if (hidePass) {
+							// one-time invitation
+							if (invitation.isUsed()) {
+								// Invitation is of type *only-one-time* and was
+								// already used
+								return new Long(-32);
+							} else {
+								// set to true if this is the first time / a normal
+								// getInvitation-Query
+								invitation.setUsed(true);
+								invitationDao.update(invitation);
+								// invitation.setInvitationpass(null);
+								invitation.setAllowEntry(true);
+							}
+						} else {
+							invitation.setAllowEntry(true);
+						}
+						break;
+					case Period:
+						TimeZone tz = timezoneUtil.getTimeZone(invitation.getInvitee());
+						Calendar now = Calendar.getInstance(tz);
+						Calendar start = Calendar.getInstance(tz);
+						start.setTime(invitation.getValidFrom());
+
+						Calendar end = Calendar.getInstance(tz);
+						end.setTime(invitation.getValidTo());
+						if (now.after(start) && now.before(end)) {
+							invitationDao.update(invitation);
+							// invitation.setInvitationpass(null);
+							invitation.setAllowEntry(true);
+						} else {
+
+							// Invitation is of type *period* and is not valid
+							// anymore, this is an extra hook to display the time
+							// correctly
+							// in the method where it shows that the hash code does
+							// not work anymore
+							invitation.setAllowEntry(false);
+						}
+						break;
+					case Endless:
+					default:
+						invitationDao.update(invitation);
+
+						invitation.setAllowEntry(true);
+						// invitation.setInvitationpass(null);
+						break;
+				}
+				return invitation;
+			}
+
+		} catch (Exception err) {
+			log.error("[getInvitationByHashCode]", err);
+		}
+		return new Long(-1);
+	}
+
+	/**
+	 * 
+	 * @param hashCode
+	 * @param pass
+	 * @return
+	 */
+	public Object checkInvitationPass(String hashCode, String pass) {
+		try {
+			Object obj = this.getInvitationByHashCode(hashCode, false);
+			log.debug("checkInvitationPass - obj: " + obj);
+			if (obj instanceof Invitation) {
+				Invitation invitation = (Invitation) obj;
+
+				// log.debug("invitationId "+invitation.getInvitations_id());
+				// log.debug("pass "+pass);
+				// log.debug("getInvitationpass "+invitation.getInvitationpass());
+
+				if (ManageCryptStyle.getInstanceOfCrypt().verifyPassword(pass, invitation.getPassword())) {
+					return new Long(1);
+				} else {
+					return new Long(-34);
+				}
+			} else {
+				return obj;
+			}
+		} catch (Exception ex2) {
+			log.error("[checkInvitationPass] ", ex2);
+		}
+		return new Long(-1);
+	}
+
+	
+}
diff --git a/src/main/java/org/apache/openmeetings/data/conference/RoomManager.java b/src/main/java/org/apache/openmeetings/data/conference/RoomManager.java
new file mode 100644
index 0000000..815e943
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/conference/RoomManager.java
@@ -0,0 +1,1407 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.data.conference;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Date;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+
+import org.apache.openmeetings.data.basic.FieldManager;
+import org.apache.openmeetings.data.user.OrganisationManager;
+import org.apache.openmeetings.db.dao.room.IRoomManager;
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.room.RoomModeratorsDao;
+import org.apache.openmeetings.db.dao.room.RoomTypeDao;
+import org.apache.openmeetings.db.dao.room.SipDao;
+import org.apache.openmeetings.db.dao.server.ISessionManager;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.dto.basic.SearchResult;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.room.RoomOrganisation;
+import org.apache.openmeetings.db.entity.user.Organisation_Users;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.util.AuthLevelUtil;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 
+ * @author swagner
+ * 
+ */
+@Transactional
+public class RoomManager implements IRoomManager {
+	private static final Logger log = Red5LoggerFactory.getLogger(RoomManager.class, webAppRootKey);
+
+	@PersistenceContext
+	private EntityManager em;
+
+	@Autowired
+	private OrganisationManager organisationManager;
+	@Autowired
+	private RoomModeratorsDao roomModeratorsDao;
+	@Autowired
+	private UserDao usersDao;
+	@Autowired
+	private ISessionManager sessionManager;
+	@Autowired
+	private FieldManager fieldManager;
+    @Autowired
+	private RoomDao roomDao;
+    @Autowired
+	private SipDao sipDao;
+    @Autowired
+	private RoomTypeDao roomTypeDao;
+
+	/**
+	 * get a room object if user level
+	 * 
+	 * @param user_level
+	 * @param rooms_id
+	 * @return
+	 */
+	public Room getRoomById(long user_level, long rooms_id) {
+		try {
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+				return roomDao.get(rooms_id);
+			} else
+				log.error("getRoombyId : Userlevel" + user_level
+						+ " not allowed");
+		} catch (Exception ex2) {
+			log.error("[getRoomById] ", ex2);
+		}
+		return null;
+	}
+
+	public Room getRoomWithCurrentUsersById(long user_level, long rooms_id) {
+		try {
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+				Room room = roomDao.get(rooms_id);
+
+				if (room != null) {
+					room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
+
+					return room;
+				}
+			}
+		} catch (Exception ex2) {
+			log.error("[getRoomWithCurrentUsersById] ", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * Get a Rooms-Object or NULL
+	 * 
+	 * @param externalRoomId
+	 * @return Rooms-Object or NULL
+	 */
+	public Room getRoomByExternalId(Long externalRoomId,
+			String externalRoomType, long roomtypes_id) {
+		log.debug("getRoombyExternalId : " + externalRoomId + " - "
+				+ externalRoomType + " - " + roomtypes_id);
+		try {
+			TypedQuery<Room> query = em.createNamedQuery("getRoomByExternalId", Room.class);
+			query.setParameter("externalRoomId", externalRoomId);
+			query.setParameter("externalRoomType", externalRoomType);
+			query.setParameter("roomtypes_id", roomtypes_id);
+			query.setParameter("deleted", true);
+			List<?> ll = query.getResultList();
+			if (ll.size() > 0) {
+				return (Room) ll.get(0);
+			} else {
+				log.error("Could not find room " + externalRoomId);
+			}
+		} catch (Exception ex2) {
+			log.error("[getRoomByExternalId] ", ex2);
+		}
+		return null;
+	}
+
+	public Room getRoomByExternalId(long user_level, Long externalRoomId,
+			String externalRoomType, long roomtypes_id) {
+		try {
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+				return this.getRoomByExternalId(externalRoomId,
+						externalRoomType, roomtypes_id);
+			} else
+				log.error("getRoombyExternalId : Userlevel" + user_level
+						+ " not allowed");
+		} catch (Exception ex2) {
+			log.error("[getRoomByExternalId] ", ex2);
+		}
+		return null;
+	}
+
+	public SearchResult<Room> getRooms(long user_level, int start, int max,
+			String orderby, boolean asc, String search) {
+		try {
+			if (AuthLevelUtil.checkAdminLevel(user_level)) {
+				SearchResult<Room> sResult = new SearchResult<Room>();
+				sResult.setRecords(this.selectMaxFromRooms(search));
+				sResult.setObjectName(Room.class.getName());
+				sResult.setResult(this.getRoomsInternatlByHQL(start, max,
+						orderby, asc, search));
+				return sResult;
+			}
+		} catch (Exception ex2) {
+			log.error("[getRooms] ", ex2);
+		}
+		return null;
+	}
+	
+	public SearchResult<Room> getRoomsWithCurrentUsers(long user_level, int start,
+			int max, String orderby, boolean asc) {
+		try {
+			if (AuthLevelUtil.checkAdminLevel(user_level)) {
+				SearchResult<Room> sResult = new SearchResult<Room>();
+				sResult.setRecords(this.selectMaxFromRooms(""));
+				sResult.setObjectName(Room.class.getName());
+
+				List<Room> rooms = this.getRoomsInternatl(start, max, orderby,
+						asc);
+
+				for (Room room : rooms) {
+					room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
+				}
+
+				sResult.setResult(rooms);
+				return sResult;
+			}
+		} catch (Exception ex2) {
+			log.error("[getRooms] ", ex2);
+		}
+		return null;
+	}
+
+	public List<Room> getRoomsWithCurrentUsersByList(long user_level,
+			int start, int max, String orderby, boolean asc) {
+		try {
+			if (AuthLevelUtil.checkAdminLevel(user_level)) {
+
+				List<Room> rooms = this.getRoomsInternatl(start, max, orderby,
+						asc);
+
+				for (Room room : rooms) {
+					room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
+				}
+
+				return rooms;
+
+			}
+		} catch (Exception ex2) {
+			log.error("[getRooms] ", ex2);
+		}
+		return null;
+	}
+
+	public List<Room> getRoomsWithCurrentUsersByListAndType(long user_level,
+			int start, int max, String orderby, boolean asc,
+			String externalRoomType) {
+		try {
+			if (AuthLevelUtil.checkAdminLevel(user_level)) {
+
+				List<Room> rooms = this.getRoomsInternatlbyType(start, max,
+						orderby, asc, externalRoomType);
+
+				for (Room room : rooms) {
+					room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
+				}
+
+				return rooms;
+
+			}
+		} catch (Exception ex2) {
+			log.error("[getRooms] ", ex2);
+		}
+		return null;
+	}
+
+	public Long selectMaxFromRooms(String search) {
+		try {
+			if (search.length() == 0) {
+				search = "%";
+			} else {
+				search = "%" + search + "%";
+			}
+			// get all users
+			TypedQuery<Long> query = em.createNamedQuery("selectMaxFromRooms", Long.class);
+			query.setParameter("search", search);
+			List<Long> ll = query.getResultList();
+			log.debug("Number of records" + ll.get(0));
+			return ll.get(0);
+		} catch (Exception ex2) {
+			log.error("[selectMaxFromRooms] ", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * gets a list of all availible rooms
+	 * 
+	 * @param user_level
+	 * @param start
+	 * @param max
+	 * @param orderby
+	 * @param asc
+	 * @return
+	 */
+	public List<Room> getRoomsInternatl(int start, int max, String orderby,
+			boolean asc) {
+		try {
+			CriteriaBuilder cb = em.getCriteriaBuilder();
+			CriteriaQuery<Room> cq = cb.createQuery(Room.class);
+			Root<Room> c = cq.from(Room.class);
+			Predicate condition = cb.equal(c.get("deleted"), false);
+			cq.where(condition);
+			cq.distinct(asc);
+			if (asc) {
+				cq.orderBy(cb.asc(c.get(orderby)));
+			} else {
+				cq.orderBy(cb.desc(c.get(orderby)));
+			}
+			TypedQuery<Room> q = em.createQuery(cq);
+			q.setFirstResult(start);
+			q.setMaxResults(max);
+			List<Room> ll = q.getResultList();
+			return ll;
+		} catch (Exception ex2) {
+			log.error("[getRooms ] ", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * gets a list of all availible rooms
+	 * 
+	 * @param user_level
+	 * @param start
+	 * @param max
+	 * @param orderby
+	 * @param asc
+	 * @return
+	 */
+	public List<Room> getRoomsInternatlByHQL(int start, int max,
+			String orderby, boolean asc, String search) {
+		try {
+
+			String hql = "select c from Room c "
+					+ "where c.deleted <> true AND c.name LIKE :search ";
+
+			if (search.length() == 0) {
+				search = "%";
+			} else {
+				search = "%" + search + "%";
+			}
+			if (orderby != null) {
+				hql += " ORDER BY " + (orderby.startsWith("c.") ? "" : "c.") + orderby;
+	
+				if (asc) {
+					hql += " ASC";
+				} else {
+					hql += " DESC";
+				}
+			}
+			TypedQuery<Room> query = em.createQuery(hql, Room.class);
+			query.setParameter("search", search);
+			query.setFirstResult(start);
+			query.setMaxResults(max);
+
+			return query.getResultList();
+
+		} catch (Exception ex2) {
+			log.error("[getRooms ] ", ex2);
+		}
+		return null;
+	}
+
+	public List<Room> getAllRooms() {
+		try {
+			CriteriaBuilder cb = em.getCriteriaBuilder();
+			CriteriaQuery<Room> cq = cb.createQuery(Room.class);
+			Root<Room> c = cq.from(Room.class);
+			Predicate condition = cb.equal(c.get("deleted"), false);
+			cq.where(condition);
+			TypedQuery<Room> q = em.createQuery(cq);
+			List<Room> ll = q.getResultList();
+			return ll;
+		} catch (Exception ex2) {
+			log.error("[getAllRooms]", ex2);
+		}
+		return null;
+	}
+
+	public List<Room> getRoomsInternatlbyType(int start, int max,
+			String orderby, boolean asc, String externalRoomType) {
+		try {
+			CriteriaBuilder cb = em.getCriteriaBuilder();
+			CriteriaQuery<Room> cq = cb.createQuery(Room.class);
+			Root<Room> c = cq.from(Room.class);
+			Predicate condition = cb.equal(c.get("deleted"), false);
+			Predicate subCondition = cb.equal(c.get("externalRoomType"),
+					externalRoomType);
+			cq.where(condition, subCondition);
+			cq.distinct(asc);
+			if (asc) {
+				cq.orderBy(cb.asc(c.get(orderby)));
+			} else {
+				cq.orderBy(cb.desc(c.get(orderby)));
+			}
+			TypedQuery<Room> q = em.createQuery(cq);
+			q.setFirstResult(start);
+			q.setMaxResults(max);
+			List<Room> ll = q.getResultList();
+			return ll;
+		} catch (Exception ex2) {
+			log.error("[getRooms ] ", ex2);
+		}
+		return null;
+	}
+
+	public List<RoomOrganisation> getOrganisationsByRoom(long user_level,
+			long rooms_id) {
+		try {
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+				String hql = "select c from RoomOrganisation as c "
+						+ "where c.room.rooms_id = :rooms_id "
+						+ "AND c.deleted <> :deleted";
+				TypedQuery<RoomOrganisation> q = em.createQuery(hql, RoomOrganisation.class);
+
+				q.setParameter("rooms_id", rooms_id);
+				q.setParameter("deleted", true);
+				List<RoomOrganisation> ll = q.getResultList();
+				return ll;
+			}
+		} catch (Exception ex2) {
+			log.error("[getOrganisationsByRoom] ", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * get all rooms which are availible for public
+	 * 
+	 * @param user_level
+	 * @param roomtypes_id
+	 * @return
+	 */
+	public List<Room> getPublicRooms(long user_level, long roomtypes_id) {
+		try {
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+				TypedQuery<Room> q = em.createNamedQuery("getPublicRooms", Room.class);
+				q.setParameter("ispublic", true);
+				q.setParameter("deleted", false);
+				q.setParameter("roomtypes_id", new Long(roomtypes_id));
+				List<Room> ll = q.getResultList();
+				return ll;
+			}
+		} catch (Exception ex2) {
+			log.error("[getRoomsByOrganisation] ", ex2);
+		}
+		return null;
+	}
+
+	public List<Room> getRoomsByIds(List<Integer> roomIds) {
+		try {
+			if (roomIds == null || roomIds.size() == 0) {
+				return new LinkedList<Room>();
+			}
+
+			String queryString = "SELECT r from Room r " + "WHERE ";
+
+			queryString += "(";
+
+			int i = 0;
+			for (Integer room_id : roomIds) {
+				if (i != 0) {
+					queryString += " OR ";
+				}
+				queryString += " r.rooms_id = " + room_id;
+				i++;
+			}
+
+			queryString += ")";
+
+			TypedQuery<Room> q = em.createQuery(queryString, Room.class);
+
+			List<Room> ll = q.getResultList();
+
+			return ll;
+
+		} catch (Exception ex2) {
+			log.error("[getRoomsByIds] ", ex2);
+		}
+		return null;
+	}
+
+	public List<Room> getPublicRoomsWithoutType(long user_level) {
+		try {
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+				TypedQuery<Room> q = em.createNamedQuery("getPublicRoomsWithoutType", Room.class);
+				q.setParameter("ispublic", true);
+				q.setParameter("deleted", true);
+				List<Room> ll = q.getResultList();
+				return ll;
+			}
+		} catch (Exception ex2) {
+			log.error("[getPublicRoomsWithoutType] ", ex2);
+			ex2.printStackTrace();
+		}
+		return null;
+	}
+
+	/**
+	 * Get Appointed Meetings
+	 */
+	// ---------------------------------------------------------------------------------------------
+	public List<Room> getAppointedMeetings(Long userid, Long user_level) {
+		log.debug("Roommanagement.getAppointedMeetings");
+
+		try {
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+				TypedQuery<Room> q = em.createNamedQuery("getAppointedMeetings", Room.class);
+				q.setParameter("appointed", true);
+				q.setParameter("deleted", false);
+				return q.getResultList();
+			}
+		} catch (Exception ex2) {
+			log.error("[getAppointedMeetings] ", ex2);
+		}
+		return null;
+
+	}
+
+	// ---------------------------------------------------------------------------------------------
+
+    /**
+     * Returns number of SIP conference participants
+     * @param rooms_id id of room
+     * @return number of participants
+     */
+    public Integer getSipConferenceMembersNumber(Long rooms_id) {
+    	Room r = roomDao.get(rooms_id);
+    	return r == null || r.getConfno() == null ? null : sipDao.countUsers(r.getConfno());
+    }
+
+	/**
+	 * adds a new Record to the table rooms
+	 * @param name
+	 * @param roomtypes_id
+	 * @param ispublic
+	 * @param hideActivitiesAndActions TODO
+	 * @param hideFilesExplorer TODO
+	 * @param hideActionsMenu TODO
+	 * @param hideScreenSharing TODO
+	 * @param hideWhiteboard TODO
+	 * @return id of the newly created room or NULL
+	 */
+	public Long addRoom(long user_level, String name, long roomtypes_id,
+			String comment, Long numberOfPartizipants, boolean ispublic,
+			List<Integer> organisations, Boolean appointment, Boolean isDemoRoom,
+			Integer demoTime, Boolean isModeratedRoom,
+			List<Map<String, Object>> roomModerators,
+			Boolean allowUserQuestions, Boolean isAudioOnly, Boolean allowFontStyles, Boolean isClosed,
+			String redirectURL, String conferencePin,
+			Long ownerId, Boolean waitForRecording, Boolean allowRecording,
+			Boolean hideTopBar, Boolean hideChat, Boolean hideActivitiesAndActions, Boolean hideFilesExplorer, 
+			Boolean hideActionsMenu, Boolean hideScreenSharing, Boolean hideWhiteboard,
+			Boolean showMicrophoneStatus, Boolean chatModerated, boolean chatOpened
+			, boolean filesOpened, boolean autoVideoSelect, boolean sipEnabled) {
+
+		try {
+			if (AuthLevelUtil.checkAdminLevel(user_level)) {
+
+				Room r = new Room();
+				r.setName(name);
+				r.setComment(comment);
+				r.setStarttime(new Date());
+				r.setNumberOfPartizipants(numberOfPartizipants);
+				r.setRoomtype(roomTypeDao.get(roomtypes_id));
+				r.setIspublic(ispublic);
+				r.setAllowUserQuestions(allowUserQuestions);
+				r.setIsAudioOnly(isAudioOnly);
+				r.setAllowFontStyles(allowFontStyles);
+
+				r.setAppointment(appointment);
+
+				r.setIsDemoRoom(isDemoRoom);
+				r.setDemoTime(demoTime);
+
+				r.setIsModeratedRoom(isModeratedRoom);
+				r.setHideTopBar(hideTopBar);
+
+				r.setDeleted(false);
+
+				r.setIsClosed(isClosed);
+				r.setRedirectURL(redirectURL);
+
+				r.setOwnerId(ownerId);
+
+				r.setWaitForRecording(waitForRecording);
+				r.setAllowRecording(allowRecording);
+				
+				r.setHideChat(hideChat);
+				r.setHideActivitiesAndActions(hideActivitiesAndActions);
+				r.setHideActionsMenu(hideActionsMenu);
+				r.setHideFilesExplorer(hideFilesExplorer);
+				r.setHideScreenSharing(hideScreenSharing);	
+				r.setHideWhiteboard(hideWhiteboard);
+				r.setShowMicrophoneStatus(showMicrophoneStatus);
+				r.setChatModerated(chatModerated);
+				r.setChatOpened(chatOpened);
+				r.setFilesOpened(filesOpened);
+				r.setAutoVideoSelect(autoVideoSelect);
+				r.setSipEnabled(sipEnabled);
+				r.setPin(conferencePin);
+				
+				r = roomDao.update(r, ownerId);
+
+				if (organisations != null) {
+					Long t = this.updateRoomOrganisations(organisations, r);
+					if (t == null)
+						return null;
+				}
+
+				if (roomModerators != null) {
+					roomModeratorsDao.addRoomModeratorByUserList(
+							roomModerators, r.getRooms_id());
+				}
+
+				return r.getRooms_id();
+			}
+		} catch (Exception ex2) {
+			log.error("[addRoom] ", ex2);
+		}
+		return null;
+	}
+
+	public Long addRoomByMod(long user_level, String name, long roomtypes_id,
+			String comment, Long numberOfPartizipants, boolean ispublic,
+			Long organisation_id, Boolean appointment, Boolean isDemoRoom,
+			Integer demoTime, Boolean isModeratedRoom,
+			List<Map<String, Object>> roomModerators, Boolean allowUserQuestions) {
+
+		log.debug("addRoom");
+
+		try {
+			if (AuthLevelUtil.checkModLevel(user_level)) {
+				Room r = new Room();
+				r.setName(name);
+				r.setComment(comment);
+				r.setStarttime(new Date());
+				r.setNumberOfPartizipants(numberOfPartizipants);
+				r.setRoomtype(roomTypeDao.get(roomtypes_id));
+				r.setIspublic(ispublic);
+
+				r.setAllowUserQuestions(allowUserQuestions);
+				r.setAppointment(appointment);
+
+				r.setIsDemoRoom(isDemoRoom);
+				r.setDemoTime(demoTime);
+
+				r.setIsModeratedRoom(isModeratedRoom);
+
+				r.setDeleted(false);
+				r = em.merge(r);
+				long returnId = r.getRooms_id();
+
+				this.addRoomToOrganisation(3, returnId, organisation_id);
+
+				if (roomModerators != null) {
+					roomModeratorsDao.addRoomModeratorByUserList(
+							roomModerators, r.getRooms_id());
+				}
+
+				return returnId;
+			}
+		} catch (Exception ex2) {
+			log.error("[addRoom] ", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * adds/check a new Record to the table rooms with external fields
+	 * 
+	 * @param name
+	 * @param roomtypes_id
+	 * @param ispublic
+	 * @return id of (the newly created) room or NULL
+	 */
+	public Long addExternalRoom(String name, long roomtypes_id, String comment,
+			Long numberOfPartizipants, boolean ispublic, List<Integer> organisations,
+			Boolean appointment, Boolean isDemoRoom, Integer demoTime,
+			Boolean isModeratedRoom, List<Map<String, Object>> roomModerators,
+			Long externalRoomId, String externalRoomType,
+			Boolean allowUserQuestions, Boolean isAudioOnly, Boolean allowFontStyles, Boolean isClosed,
+			String redirectURL, Boolean waitForRecording,
+			Boolean allowRecording, Boolean hideTopBar) {
+
+		log.debug("addExternalRoom");
+
+		try {
+			Room r = new Room();
+			r.setName(name);
+			r.setComment(comment);
+			r.setStarttime(new Date());
+			r.setNumberOfPartizipants(numberOfPartizipants);
+			r.setRoomtype(roomTypeDao.get(roomtypes_id));
+			r.setIspublic(ispublic);
+
+			r.setAllowUserQuestions(allowUserQuestions);
+			r.setIsAudioOnly(isAudioOnly);
+			r.setAllowFontStyles(allowFontStyles);
+
+			r.setAppointment(appointment);
+
+			r.setIsDemoRoom(isDemoRoom);
+			r.setDemoTime(demoTime);
+
+			r.setIsModeratedRoom(isModeratedRoom);
+
+			r.setDeleted(false);
+
+			r.setExternalRoomId(externalRoomId);
+			r.setExternalRoomType(externalRoomType);
+
+			r.setIsClosed(isClosed);
+			r.setRedirectURL(redirectURL);
+
+			r.setWaitForRecording(waitForRecording);
+			r.setAllowRecording(allowRecording);
+
+			r.setHideTopBar(hideTopBar);
+
+			r = em.merge(r);
+
+			long returnId = r.getRooms_id();
+
+			if (organisations != null) {
+				Long t = this.updateRoomOrganisations(organisations, r);
+				if (t == null)
+					return null;
+			}
+
+			if (roomModerators != null) {
+				roomModeratorsDao.addRoomModeratorByUserList(roomModerators,
+						r.getRooms_id());
+			}
+
+			return returnId;
+		} catch (Exception ex2) {
+			log.error("[addExternalRoom] ", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * adds a new record to the table rooms_organisation
+	 * 
+	 * @param rooms_id
+	 * @param organisation_id
+	 * @return the id of the newly created Rooms_Organisation or NULL
+	 */
+	public Long addRoomToOrganisation(long user_level, long rooms_id,
+			long organisation_id) {
+		try {
+			if (AuthLevelUtil.checkAdminLevel(user_level)) {
+				RoomOrganisation rOrganisation = new RoomOrganisation();
+				rOrganisation.setRoom(roomDao.get(rooms_id));
+				log.debug("addRoomToOrganisation rooms '"
+						+ rOrganisation.getRoom().getName() + "'");
+				rOrganisation.setStarttime(new Date());
+				rOrganisation.setOrganisation(organisationManager
+						.getOrganisationById(organisation_id));
+				rOrganisation.setDeleted(false);
+
+				rOrganisation = em.merge(rOrganisation);
+				long returnId = rOrganisation.getRooms_organisation_id();
+				return returnId;
+			}
+		} catch (Exception ex2) {
+			log.error("[addRoomToOrganisation] ", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 * @param rooms_organisation_id
+	 * @return
+	 */
+	public RoomOrganisation getRoomsOrganisationById(
+			long rooms_organisation_id) {
+		try {
+			CriteriaBuilder cb = em.getCriteriaBuilder();
+			CriteriaQuery<RoomOrganisation> cq = cb
+					.createQuery(RoomOrganisation.class);
+			Root<RoomOrganisation> c = cq.from(RoomOrganisation.class);
+			Predicate condition = cb.equal(c.get("rooms_organisation_id"),
+					rooms_organisation_id);
+			cq.where(condition);
+			TypedQuery<RoomOrganisation> q = em.createQuery(cq);
+			List<RoomOrganisation> ll = q.getResultList();
+
+			if (ll.size() > 0) {
+				return ll.get(0);
+			}
+		} catch (Exception ex2) {
+			log.error("[getRoomsByOrganisation] ", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * get List of Rooms_Organisation by organisation and roomtype
+	 * 
+	 * @param user_level
+	 * @param organisation_id
+	 * @param roomtypes_id
+	 * @return
+	 */
+	public List<RoomOrganisation> getRoomsOrganisationByOrganisationIdAndRoomType(
+			long user_level, long organisation_id, long roomtypes_id) {
+		try {
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+				TypedQuery<RoomOrganisation> q = em.
+						createNamedQuery("getRoomsOrganisationByOrganisationIdAndRoomType", RoomOrganisation.class);
+				q.setParameter("roomtypes_id", roomtypes_id);
+				q.setParameter("organisation_id", organisation_id);
+				q.setParameter("deleted", true);
+				return q.getResultList();
+			} else {
+				log.error("[notauthentificated] " + user_level);
+			}
+		} catch (Exception ex2) {
+			log.error("[getRoomsByOrganisation] ", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * Gets all rooms by an organisation
+	 * 
+	 * @param organisation_id
+	 * @return list of Rooms_Organisation with Rooms as Sub-Objects or null
+	 */
+	public List<RoomOrganisation> getRoomsOrganisationByOrganisationId(
+			long user_level, long organisation_id) {
+		try {
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				TypedQuery<RoomOrganisation> query = em.
+						createNamedQuery("getRoomsOrganisationByOrganisationId", RoomOrganisation.class);
+
+				query.setParameter("organisation_id", organisation_id);
+				query.setParameter("deleted", true);
+
+				List<RoomOrganisation> ll = query.getResultList();
+
+				return ll;
+			} else {
+				log.error("[notauthentificated] " + user_level);
+			}
+		} catch (Exception ex2) {
+			log.error("[getPublicRoomsWithoutType] ", ex2);
+			ex2.printStackTrace();
+		}
+		return null;
+	}
+
+	public SearchResult<RoomOrganisation> getRoomsOrganisationByOrganisationId(long user_level,
+			long organisation_id, int start, int max, String orderby,
+			boolean asc) {
+		try {
+			if (AuthLevelUtil.checkModLevel(user_level)) {
+
+				SearchResult<RoomOrganisation> sResult = new SearchResult<RoomOrganisation>();
+				sResult.setObjectName(RoomOrganisation.class.getName());
+				sResult.setRecords(this.selectMaxFromRoomsByOrganisation(
+						organisation_id).longValue());
+				sResult.setResult(this.getRoomsOrganisationByOrganisationId(
+						organisation_id, start, max, orderby, asc));
+				return sResult;
+			}
+		} catch (Exception ex2) {
+			log.error("[getRoomsByOrganisation] ", ex2);
+		}
+		return null;
+	}
+
+	public Integer selectMaxFromRoomsByOrganisation(long organisation_id) {
+		try {
+			// get all users
+			TypedQuery<RoomOrganisation> q = em.createNamedQuery("selectMaxFromRoomsByOrganisation", RoomOrganisation.class);
+
+			q.setParameter("organisation_id", organisation_id);
+			q.setParameter("deleted", true);
+			List<RoomOrganisation> ll = q.getResultList();
+
+			return ll.size();
+		} catch (Exception ex2) {
+			log.error("[selectMaxFromRooms] ", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 * @param organisation_id
+	 * @param start
+	 * @param max
+	 * @param orderby
+	 * @param asc
+	 * @return
+	 */
+	private List<RoomOrganisation> getRoomsOrganisationByOrganisationId(
+			long organisation_id, int start, int max, String orderby,
+			boolean asc) {
+		try {
+			String hql = "select c from RoomOrganisation as c "
+					+ "where c.organisation.organisation_id = :organisation_id "
+					+ "AND c.deleted <> :deleted";
+			if (orderby.startsWith("c.")) {
+				hql += "ORDER BY " + orderby;
+			} else {
+				hql += "ORDER BY " + "c." + orderby;
+			}
+			if (asc) {
+				hql += " ASC";
+			} else {
+				hql += " DESC";
+			}
+
+			TypedQuery<RoomOrganisation> q = em.createQuery(hql, RoomOrganisation.class);
+
+			q.setParameter("organisation_id", organisation_id);
+			q.setParameter("deleted", true);
+			q.setFirstResult(start);
+			q.setMaxResults(max);
+			List<RoomOrganisation> ll = q.getResultList();
+
+			return ll;
+		} catch (Exception ex2) {
+			log.error("[getRoomsByOrganisation] ", ex2);
+		}
+		return null;
+	}
+
+	public RoomOrganisation getRoomsOrganisationByOrganisationIdAndRoomId(
+			long organisation_id, long rooms_id) {
+		try {
+			TypedQuery<RoomOrganisation> q = em.
+					createNamedQuery("getRoomsOrganisationByOrganisationIdAndRoomId", RoomOrganisation.class);
+
+			q.setParameter("rooms_id", rooms_id);
+			q.setParameter("organisation_id", organisation_id);
+			q.setParameter("deleted", true);
+			List<RoomOrganisation> ll = q.getResultList();
+
+			if (ll.size() > 0) {
+				return ll.get(0);
+			}
+		} catch (Exception ex2) {
+			log.error("[getRoomsOrganisationByOrganisationIdAndRoomId] ", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 * @param organisation_id
+	 * @return
+	 */
+	public List<RoomOrganisation> getRoomsOrganisationByRoomsId(long rooms_id) {
+		try {
+			TypedQuery<RoomOrganisation> q = em.createNamedQuery("getRoomsOrganisationByRoomsId", RoomOrganisation.class);
+			q.setParameter("rooms_id", rooms_id);
+			q.setParameter("deleted", true);
+			return q.getResultList();
+		} catch (Exception ex2) {
+			log.error("[getRoomsByOrganisation] ", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 * @param user_id
+	 * @param rooms_id
+	 * @return
+	 */
+	private boolean checkUserOrgRoom(long user_id, long rooms_id) {
+		try {
+
+			User us = usersDao.get(user_id);
+			List<Organisation_Users> s = us.getOrganisation_users();
+
+			for (Iterator<Organisation_Users> it = s.iterator(); it.hasNext();) {
+				Organisation_Users orgUsers = it.next();
+				long organisation_id = orgUsers.getOrganisation()
+						.getOrganisation_id();
+				List<RoomOrganisation> ll = this
+						.getRoomsOrganisationByOrganisationId(3,
+								organisation_id);
+				for (Iterator<RoomOrganisation> it2 = ll.iterator(); it2
+						.hasNext();) {
+					RoomOrganisation roomOrg = it2.next();
+					if (roomOrg.getRoom().getRooms_id() == rooms_id) {
+						return true;
+					}
+				}
+			}
+
+		} catch (Exception ex2) {
+			log.error("[checkUserOrgRoom] ", ex2);
+		}
+		return false;
+	}
+
+	/**
+	 * 
+	 * @param user_id
+	 * @param user_level
+	 * @param rooms_id
+	 * @param roomtypes_id
+	 * @param name
+	 * @param ispublic
+	 * @param comment
+	 * @return
+	 */
+	public Room updateRoomsSelf(long user_id, long user_level, long rooms_id,
+			long roomtypes_id, String name, boolean ispublic, String comment) {
+		try {
+			if (AuthLevelUtil.checkModLevel(user_level)) {
+
+				if (this.checkUserOrgRoom(user_id, rooms_id)) {
+
+					Room r = roomDao.get(rooms_id);
+					r.setComment(comment);
+					r.setIspublic(ispublic);
+					r.setName(name);
+					r.setRoomtype(roomTypeDao.get(roomtypes_id));
+					r.setUpdatetime(new Date());
+
+					if (r.getRooms_id() == null) {
+						em.persist(r);
+					} else {
+						if (!em.contains(r)) {
+							em.merge(r);
+						}
+					}
+				}
+			}
+		} catch (Exception ex2) {
+			log.error("[updateRoom] ", ex2);
+		}
+		return null;
+	}
+
+	public Long updateRoomInternal(long rooms_id, long roomtypes_id,
+			String name, boolean ispublic, String comment,
+			Long numberOfPartizipants, List<Integer> organisations,
+			Boolean appointment, Boolean isDemoRoom, Integer demoTime,
+			Boolean isModeratedRoom, List<Map<String, Object>> roomModerators,
+			Boolean allowUserQuestions, Boolean isAudioOnly, Boolean allowFontStyles, Boolean isClosed,
+			String redirectURL, String conferencePin,
+			Long ownerId, Boolean waitForRecording, Boolean allowRecording,
+			Boolean hideTopBar, Boolean hideChat, Boolean hideActivitiesAndActions, Boolean hideFilesExplorer, 
+			Boolean hideActionsMenu, Boolean hideScreenSharing, Boolean hideWhiteboard, 
+			Boolean showMicrophoneStatus, Boolean chatModerated, boolean chatOpened, boolean filesOpened
+			, boolean autoVideoSelect, boolean sipEnabled) {
+		try {
+			log.debug("*** updateRoom numberOfPartizipants: "
+					+ numberOfPartizipants);
+			Room r = roomDao.get(rooms_id);
+			r.setComment(comment);
+
+			r.setIspublic(ispublic);
+			r.setNumberOfPartizipants(numberOfPartizipants);
+			r.setName(name);
+			r.setRoomtype(roomTypeDao.get(roomtypes_id));
+			r.setUpdatetime(new Date());
+			r.setAllowUserQuestions(allowUserQuestions);
+			r.setIsAudioOnly(isAudioOnly);
+			r.setAllowFontStyles(allowFontStyles);
+
+			r.setIsDemoRoom(isDemoRoom);
+			r.setDemoTime(demoTime);
+
+			r.setAppointment(appointment);
+
+			r.setIsModeratedRoom(isModeratedRoom);
+			r.setHideTopBar(hideTopBar);
+
+			r.setIsClosed(isClosed);
+			r.setRedirectURL(redirectURL);
+			r.setOwnerId(ownerId);
+			r.setWaitForRecording(waitForRecording);
+			r.setAllowRecording(allowRecording);
+			
+			r.setHideChat(hideChat);
+			r.setHideActivitiesAndActions(hideActivitiesAndActions);
+			r.setHideActionsMenu(hideActionsMenu);
+			r.setHideFilesExplorer(hideFilesExplorer);
+			r.setHideScreenSharing(hideScreenSharing);
+			r.setHideWhiteboard(hideWhiteboard);
+			r.setShowMicrophoneStatus(showMicrophoneStatus);
+			r.setChatModerated(chatModerated);
+			r.setChatOpened(chatOpened);
+			r.setFilesOpened(filesOpened);
+			r.setAutoVideoSelect(autoVideoSelect);
+			r.setPin(conferencePin);
+			r.setSipEnabled(sipEnabled);
+			roomDao.update(r, ownerId);
+
+			if (organisations != null) {
+				Long t = this.updateRoomOrganisations(organisations, r);
+				if (t == null)
+					return null;
+			}
+			if (roomModerators != null) {
+				roomModeratorsDao.updateRoomModeratorByUserList(roomModerators,
+						r.getRooms_id());
+			}
+
+			return r.getRooms_id();
+		} catch (Exception ex2) {
+			log.error("[updateRoom] ", ex2);
+		}
+		return null;
+	}
+
+	public Long updateRoomByMod(long user_level, long rooms_id,
+			long roomtypes_id, String name, boolean ispublic, String comment,
+			Long numberOfPartizipants, Long organisations, Boolean appointment,
+			Boolean isDemoRoom, Integer demoTime, Boolean isModeratedRoom,
+			List<Map<String, Object>> roomModerators, Boolean allowUserQuestions) {
+		try {
+			log.debug("*** updateRoom numberOfPartizipants: "
+					+ numberOfPartizipants);
+			if (AuthLevelUtil.checkModLevel(user_level)) {
+				Room r = roomDao.get(rooms_id);
+				r.setComment(comment);
+
+				r.setIspublic(ispublic);
+				r.setNumberOfPartizipants(numberOfPartizipants);
+				r.setName(name);
+				r.setRoomtype(roomTypeDao.get(roomtypes_id));
+				r.setUpdatetime(new Date());
+				r.setAllowUserQuestions(allowUserQuestions);
+
+				r.setIsDemoRoom(isDemoRoom);
+				r.setDemoTime(demoTime);
+
+				r.setAppointment(appointment);
+
+				r.setIsModeratedRoom(isModeratedRoom);
+
+				if (r.getRooms_id() == null) {
+					em.persist(r);
+				} else {
+					if (!em.contains(r)) {
+						em.merge(r);
+					}
+				}
+
+				// FIXME: Organizations will not be changed when you do an
+				// update as Moderator
+
+				if (roomModerators != null) {
+					roomModeratorsDao.updateRoomModeratorByUserList(
+							roomModerators, r.getRooms_id());
+				}
+
+				return r.getRooms_id();
+			}
+		} catch (Exception ex2) {
+			log.error("[updateRoom] ", ex2);
+		}
+		return null;
+	}
+
+	@SuppressWarnings("rawtypes")
+	private boolean checkRoomAlreadyInOrg(Long orgid, List organisations)
+			throws Exception {
+		for (Iterator it = organisations.iterator(); it.hasNext();) {
+			RoomOrganisation rOrganisation = (RoomOrganisation) it.next();
+			if (rOrganisation.getOrganisation().getOrganisation_id()
+					.equals(orgid))
+				return true;
+		}
+		return false;
+	}
+
+	private boolean checkRoomShouldByDeleted(long orgId, List<Integer> organisations) throws Exception {
+		for (Iterator<Integer> it = organisations.iterator(); it.hasNext();) {
+			Integer key = it.next();
+			Long storedOrgId = key.longValue();
+			if (storedOrgId.equals(orgId))
+				return true;
+		}
+		return false;
+	}
+
+	private Long updateRoomOrganisations(List<Integer> organisations, Room room)
+			throws Exception {
+		List<RoomOrganisation> roomOrganisations = this.getOrganisationsByRoom(3,
+				room.getRooms_id());
+
+		List<Long> roomsToAdd = new LinkedList<Long>();
+		List<Long> roomsToDel = new LinkedList<Long>();
+
+		for (Iterator<Integer> it = organisations.iterator(); it.hasNext();) {
+			Integer key = it.next();
+			Long orgIdToAdd = key.longValue();
+			if (!this.checkRoomAlreadyInOrg(orgIdToAdd, roomOrganisations))
+				roomsToAdd.add(orgIdToAdd);
+		}
+
+		for (Iterator<RoomOrganisation> it = roomOrganisations.iterator(); it.hasNext();) {
+			RoomOrganisation rOrganisation = it.next();
+			Long orgIdToDel = rOrganisation.getOrganisation()
+					.getOrganisation_id();
+			if (!this.checkRoomShouldByDeleted(orgIdToDel, organisations))
+				roomsToDel.add(orgIdToDel);
+		}
+
+		// log.error("updateRoomOrganisations roomsToAdd: "+roomsToAdd.size());
+		// log.error("updateRoomOrganisations roomsToDel: "+roomsToDel.size());
+
+		for (Iterator<Long> it = roomsToAdd.iterator(); it.hasNext();) {
+			Long orgIdToAdd = it.next();
+			this.addRoomToOrganisation(3, room.getRooms_id(), orgIdToAdd);
+		}
+		for (Iterator<Long> it = roomsToDel.iterator(); it.hasNext();) {
+			Long orgToDel = it.next();
+			this.deleteRoomFromOrganisationByRoomAndOrganisation(
+					room.getRooms_id(), orgToDel);
+		}
+
+		return new Long(1);
+	}
+
+	/**
+	 * delete all Rooms_Organisations and Room by a given room_id
+	 * 
+	 * @param rooms_id
+	 */
+	public Long deleteRoomById(long user_level, long rooms_id) {
+		try {
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				this.deleteAllRoomsOrganisationOfRoom(rooms_id);
+				roomDao.delete(roomDao.get(rooms_id), -1L);
+				return rooms_id;
+			}
+		} catch (Exception ex2) {
+			log.error("[deleteRoomById] ", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * delete all Rooms_Organisation by a rooms_id
+	 * 
+	 * @param rooms_id
+	 */
+	@SuppressWarnings("rawtypes")
+	public void deleteAllRoomsOrganisationOfRoom(long rooms_id) {
+		try {
+			List ll = this.getRoomsOrganisationByRoomsId(rooms_id);
+			for (Iterator it = ll.iterator(); it.hasNext();) {
+				RoomOrganisation rOrg = (RoomOrganisation) it.next();
+				this.deleteRoomsOrganisation(rOrg);
+			}
+		} catch (Exception ex2) {
+			log.error("[deleteAllRoomsOrganisationOfRoom] ", ex2);
+		}
+	}
+
+	/**
+	 * Delete all room of a given Organisation
+	 * 
+	 * @param organisation_id
+	 */
+	@SuppressWarnings("rawtypes")
+	public void deleteAllRoomsOrganisationOfOrganisation(long organisation_id) {
+		try {
+			List ll = this.getRoomsOrganisationByOrganisationId(3,
+					organisation_id);
+			for (Iterator it = ll.iterator(); it.hasNext();) {
+				RoomOrganisation rOrg = (RoomOrganisation) it.next();
+				this.deleteRoomsOrganisation(rOrg);
+			}
+		} catch (Exception ex2) {
+			log.error("[deleteAllRoomsOfOrganisation] ", ex2);
+		}
+	}
+
+	/**
+	 * Delete a Rooms_Organisation by its id
+	 * 
+	 * @param rooms_organisation_id
+	 */
+	public Long deleteRoomsOrganisationByID(long rooms_organisation_id) {
+		try {
+			RoomOrganisation rOrg = this
+					.getRoomsOrganisationById(rooms_organisation_id);
+			return this.deleteRoomsOrganisation(rOrg);
+		} catch (Exception ex2) {
+			log.error("[deleteRoomsOrganisationByID] ", ex2);
+		}
+		return null;
+	}
+
+	private Long deleteRoomFromOrganisationByRoomAndOrganisation(long rooms_id,
+			long organisation_id) {
+		try {
+			RoomOrganisation rOrganisation = this
+					.getRoomsOrganisationByOrganisationIdAndRoomId(
+							organisation_id, rooms_id);
+			return this.deleteRoomsOrganisation(rOrganisation);
+		} catch (Exception ex2) {
+			log.error("[deleteRoomFromOrganisationByRoomAndOrganisation] ", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * delete a Rooms_Organisation-Object
+	 * 
+	 * @param rOrg
+	 */
+	public Long deleteRoomsOrganisation(RoomOrganisation rOrg) {
+		try {
+			rOrg.setDeleted(true);
+			rOrg.setUpdatetime(new Date());
+			if (rOrg.getRooms_organisation_id() == null) {
+				em.persist(rOrg);
+			} else {
+				if (!em.contains(rOrg)) {
+					em.merge(rOrg);
+				}
+			}
+			return rOrg.getRooms_organisation_id();
+		} catch (Exception ex2) {
+			log.error("[deleteRoomsOrganisation] ", ex2);
+		}
+		return null;
+	}
+
+	// --------------------------------------------------------------------------------------------
+
+	public void closeRoom(Long rooms_id, Boolean status) {
+		try {
+
+			Room room = roomDao.get(rooms_id);
+
+			room.setIsClosed(status);
+
+			roomDao.update(room, -1L);
+
+		} catch (Exception e) {
+			log.error("Error updateRoomObject : ", e);
+		}
+	}
+
+	/**
+	 * Get a Rooms-Object or NULL
+	 * 
+	 * @param rooms_id
+	 * @return Rooms-Object or NULL
+	 */
+	public Room getRoomByOwnerAndTypeId(Long ownerId, Long roomtypesId, String roomName) {
+		try {
+
+			if (roomtypesId == null || roomtypesId == 0) {
+				return null;
+			}
+			log.debug("getRoomByOwnerAndTypeId : " + ownerId + " || " + roomtypesId);
+			Room room = null;
+			TypedQuery<Room> query = em.createNamedQuery("getRoomByOwnerAndTypeId", Room.class);
+			query.setParameter("ownerId", ownerId);
+			query.setParameter("roomtypesId", roomtypesId);
+			query.setParameter("deleted", true);
+			List<Room> ll = query.getResultList();
+			if (ll.size() > 0) {
+				room = ll.get(0);
+			}
+
+			if (room != null) {
+				return room;
+			} else {
+				log.debug("Could not find room " + ownerId + " || " + roomtypesId);
+				
+				Long rooms_id = this.addRoom(3L, roomName, roomtypesId,
+						"My Rooms of ownerId " + ownerId,
+						(roomtypesId == 1) ? 25L : 150L, // numberOfPartizipants
+						false, // ispublic
+						null, // organisations
+						false, // appointment
+						false, // isDemoRoom
+						null, // demoTime
+						false, // isModeratedRoom
+						null, // roomModerators
+						true, // allowUserQuestions
+						false, // isAudioOnly
+						true, // allowFontStyle
+						false, // isClosed
+						"", // redirectURL
+						"", // conferencePin
+						ownerId, null, null, 
+						false, // hideTopBar
+						false, // hideChat
+						false, // hideActivitiesAndActions
+						false, // hideFilesExplorer
+						false, // hideActionsMenu
+						false, // hideScreenSharing 
+						false, // hideWhiteboard
+						false, //showMicrophoneStatus
+						false, // chatModerated
+						false, //chatOpened
+						false, //filesOpened
+						false, //autoVideoSelect
+						false //sipEnabled
+						);
+
+				if (rooms_id != null) {
+					return roomDao.get(rooms_id);
+				}
+			}
+		} catch (Exception ex2) {
+			log.error("[getRoomByOwnerAndTypeId] ", ex2);
+		}
+		return null;
+	}
+
+}
diff --git a/src/main/java/org/apache/openmeetings/data/file/FileProcessor.java b/src/main/java/org/apache/openmeetings/data/file/FileProcessor.java
new file mode 100644
index 0000000..bf09ac0
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/file/FileProcessor.java
@@ -0,0 +1,182 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.data.file;
+
+import static org.apache.openmeetings.util.OmFileHelper.thumbImagePrefix;
+
+import java.io.File;
+import java.io.InputStream;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.commons.transaction.util.FileHelper;
+import org.apache.openmeetings.converter.FlvExplorerConverter;
+import org.apache.openmeetings.converter.GenerateImage;
+import org.apache.openmeetings.converter.GenerateThumbs;
+import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
+import org.apache.openmeetings.db.entity.file.FileExplorerItem;
+import org.apache.openmeetings.documents.GeneratePDF;
+import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.openmeetings.util.StoredFile;
+import org.apache.openmeetings.util.crypt.MD5;
+import org.apache.openmeetings.util.process.ConverterProcessResult;
+import org.apache.openmeetings.util.process.ConverterProcessResultList;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class FileProcessor {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(FileProcessor.class, OpenmeetingsVariables.webAppRootKey);
+
+	//Spring loaded Beans
+	@Autowired
+	private FlvExplorerConverter flvExplorerConverter;
+	@Autowired
+	private FileExplorerItemDao fileExplorerItemDao;
+	@Autowired
+	private GenerateImage generateImage;
+	@Autowired
+	private GenerateThumbs generateThumbs;
+	@Autowired
+	private GeneratePDF generatePDF;
+
+	public ConverterProcessResultList processFile(Long userId, Long room_id, 
+			boolean isOwner, InputStream is, Long parentFolderId, String fileSystemName, 
+			Long externalFileId, String externalType) throws Exception {
+		
+		ConverterProcessResultList returnError = new ConverterProcessResultList();
+		
+		int dotidx = fileSystemName.lastIndexOf('.');
+
+        // Generate a random string to prevent any problems with
+        // foreign characters and duplicates
+        Date d = new Date();
+        String newFileSystemName = MD5.do_checksum("FILE_" + d.getTime());
+
+        String newFileExtDot = fileSystemName.substring(dotidx, fileSystemName.length()).toLowerCase();
+        String newFileExt = newFileExtDot.substring(1);
+        log.debug("newFileExt: " + newFileExt);
+        StoredFile storedFile = new StoredFile(newFileSystemName, newFileExt); 
+
+        // Check variable to see if this file is a presentation
+        // check if this is a a file that can be converted by
+        // openoffice-service
+        boolean canBeConverted = storedFile.isConvertable();
+        boolean isPdf = storedFile.isPdf();
+        boolean isImage = storedFile.isImage();
+        boolean isChart = storedFile.isChart();
+        boolean isAsIs = storedFile.isAsIs();
+        boolean isVideo = storedFile.isVideo();
+
+        log.debug("isAsIs: " + isAsIs);
+
+        // add outputfolders for profiles
+        // if it is a presenation it will be copied to another place
+        if (!(canBeConverted || isPdf || isImage || isVideo || isAsIs)) {
+        	returnError.addItem("wrongType", new ConverterProcessResult("The file type cannot be converted"));
+            return returnError;
+        }
+
+        File completeName = new File(
+        	isAsIs ? OmFileHelper.getUploadFilesDir() : OmFileHelper.getUploadTempFilesDir()
+        	, newFileSystemName + newFileExtDot);
+        log.debug("writing file to: " + completeName);
+        FileHelper.copy(is, completeName);
+        is.close();
+
+        Long ownerId = null;
+        if (parentFolderId == -2) {
+            parentFolderId = 0L;
+            ownerId = userId;
+        }
+        if (isOwner) {
+            ownerId = userId;
+        }
+
+        String fileHashName = newFileSystemName + newFileExtDot;
+        Boolean isPresentation = false;
+        if (canBeConverted || isPdf) {
+            // In case of a presentation the hash is a folder-name
+            fileHashName = newFileSystemName;
+            isPresentation = true;
+        }
+        if (isImage) {
+            fileHashName = newFileSystemName + ".jpg";
+        }
+        if (isVideo) {
+            fileHashName = newFileSystemName + ".flv";
+        }
+
+        FileExplorerItem fileExplorerItem = fileExplorerItemDao.getFileExplorerItemsById(parentFolderId);
+
+        if (fileExplorerItem != null) {
+            if (fileExplorerItem.getIsFolder() == null
+                    || !fileExplorerItem.getIsFolder()) {
+                parentFolderId = 0L;
+            }
+        }
+
+        Long fileExplorerItemId = fileExplorerItemDao.add(
+                fileSystemName, fileHashName, // The Hashname of the file
+                parentFolderId, ownerId, room_id, userId, false, // isFolder
+                isImage, isPresentation, "", false, isChart, 
+                externalFileId, externalType);
+        log.debug("fileExplorerItemId: " + fileExplorerItemId);
+        
+        
+        
+        log.debug("canBeConverted: " + canBeConverted);
+        if (canBeConverted) {
+            // convert to pdf, thumbs, swf and xml-description
+            returnError = generatePDF.convertPDF(newFileSystemName, "files", true, completeName);
+        } else if (isPdf) {
+            // convert to thumbs, swf and xml-description
+            returnError = generatePDF.convertPDF(newFileSystemName, "files", false, completeName);
+        } else if (isChart) {
+            log.debug("uploaded chart file");
+        } else if (isImage && !isAsIs) {
+            // convert it to JPG
+            log.debug("##### convert it to JPG: ");
+            returnError = generateImage.convertImage(newFileSystemName, newFileExtDot, "files",
+                    newFileSystemName, false);
+        } else if (isAsIs) {
+        	ConverterProcessResult processThumb = generateThumbs.generateThumb(thumbImagePrefix, completeName, 50);
+            returnError.addItem("processThumb", processThumb);
+        } else if (isVideo) {
+        	List<ConverterProcessResult> returnList = flvExplorerConverter.startConversion(fileExplorerItemId, completeName.getCanonicalPath());
+        	
+        	int i=0;
+        	for (ConverterProcessResult returnMap : returnList) {
+        		returnError.addItem("processFLV "+i, returnMap);
+        	}
+        	
+        }
+        
+        // has to happen at the end, otherwise it will be overwritten
+        //cause the variable is new initialized
+        returnError.setCompleteName(completeName.getName());
+        returnError.setFileExplorerItemId(fileExplorerItemId);
+        
+		return returnError;
+		
+	}
+	
+}
diff --git a/src/main/java/org/apache/openmeetings/data/file/FileUtils.java b/src/main/java/org/apache/openmeetings/data/file/FileUtils.java
new file mode 100644
index 0000000..930299d
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/file/FileUtils.java
@@ -0,0 +1,127 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.data.file;
+
+import static org.apache.openmeetings.util.OmFileHelper.thumbImagePrefix;
+
+import java.io.File;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+
+import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
+import org.apache.openmeetings.db.entity.file.FileExplorerItem;
+import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class FileUtils {
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			FileProcessor.class, OpenmeetingsVariables.webAppRootKey);
+
+	@Autowired
+	private FileExplorerItemDao fileExplorerItemDao;
+
+	public long getSizeOfDirectoryAndSubs(FileExplorerItem fileExplorerItem) {
+		try {
+
+			long fileSize = 0;
+
+			File base = OmFileHelper.getUploadFilesDir();
+			if (fileExplorerItem.getIsImage()) {
+
+				File tFile = new File(base, fileExplorerItem.getFileHash());
+				if (tFile.exists()) {
+					fileSize += tFile.length();
+				}
+
+				File thumbFile = new File(base, thumbImagePrefix + fileExplorerItem.getFileHash());
+				if (thumbFile.exists()) {
+					fileSize += thumbFile.length();
+				}
+
+			}
+
+			if (fileExplorerItem.getIsPresentation()) {
+
+				File tFolder = new File(base, fileExplorerItem.getFileHash());
+
+				if (tFolder.exists()) {
+					fileSize += OmFileHelper.getSize(tFolder);
+				}
+
+			}
+
+			log.debug("calling [1] FileExplorerItemDaoImpl.updateFileOrFolder()");
+			fileExplorerItemDao.updateFileOrFolder(fileExplorerItem);
+
+			FileExplorerItem[] childElements = fileExplorerItemDao
+					.getFileExplorerItemsByParent(fileExplorerItem
+							.getFileExplorerItemId());
+
+			for (FileExplorerItem childExplorerItem : childElements) {
+
+				fileSize += this.getSizeOfDirectoryAndSubs(childExplorerItem);
+
+			}
+
+			return fileSize;
+
+		} catch (Exception err) {
+			log.error("[getSizeOfDirectoryAndSubs] ", err);
+		}
+		return 0;
+	}
+
+	public void setFileToOwnerOrRoomByParent(FileExplorerItem fileExplorerItem,
+			Long users_id, Long room_id) {
+		try {
+
+			fileExplorerItem.setOwnerId(users_id);
+			fileExplorerItem.setRoom_id(room_id);
+
+			log.debug("calling [2] FileExplorerItemDaoImpl.updateFileOrFolder()");
+			fileExplorerItemDao.updateFileOrFolder(fileExplorerItem);
+
+			FileExplorerItem[] childElements = fileExplorerItemDao
+					.getFileExplorerItemsByParent(fileExplorerItem
+							.getFileExplorerItemId());
+
+			for (FileExplorerItem childExplorerItem : childElements) {
+
+				this.setFileToOwnerOrRoomByParent(childExplorerItem, users_id,
+						room_id);
+
+			}
+
+		} catch (Exception err) {
+			log.error("[setFileToOwnerOrRoomByParent] ", err);
+		}
+	}
+
+	public String formatDate(Date date) {
+		SimpleDateFormat formatter;
+		String pattern = "dd/MM/yy H:mm:ss";
+		Locale locale = new Locale("en", "US");
+		formatter = new SimpleDateFormat(pattern, locale);
+		return formatter.format(date);
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/data/flvrecord/converter/FlvInterviewConverterTask.java b/src/main/java/org/apache/openmeetings/data/flvrecord/converter/FlvInterviewConverterTask.java
new file mode 100644
index 0000000..c6bb890
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/flvrecord/converter/FlvInterviewConverterTask.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.data.flvrecord.converter;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import org.apache.openmeetings.converter.FlvInterviewConverter;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.task.TaskExecutor;
+
+public class FlvInterviewConverterTask {
+	private static final Logger log = Red5LoggerFactory.getLogger(FlvInterviewConverterTask.class, webAppRootKey);
+
+	@Autowired
+	private TaskExecutor taskExecutor;
+	@Autowired
+	private FlvInterviewConverter flvInterviewConverter;
+
+	public void startConversionThread(final Long flvRecordingId) {
+		try {
+			log.debug("[-1-]" + taskExecutor);
+
+			taskExecutor.execute(new Runnable() {
+				public void run() {
+					flvInterviewConverter.startConversion(flvRecordingId);
+				}
+			});
+		} catch (Exception err) {
+			log.error("[startConversionThread]", err);
+		}
+	}
+
+}
diff --git a/src/main/java/org/apache/openmeetings/data/flvrecord/converter/FlvInterviewReConverterTask.java b/src/main/java/org/apache/openmeetings/data/flvrecord/converter/FlvInterviewReConverterTask.java
new file mode 100644
index 0000000..d9f679e
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/flvrecord/converter/FlvInterviewReConverterTask.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.data.flvrecord.converter;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import org.apache.openmeetings.converter.FlvInterviewConverter;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.task.TaskExecutor;
+
+public class FlvInterviewReConverterTask {
+	private static final Logger log = Red5LoggerFactory.getLogger(FlvInterviewReConverterTask.class, webAppRootKey);
+
+	@Autowired
+	private TaskExecutor taskExecutor;
+	@Autowired
+	private FlvInterviewConverter flvInterviewConverter;
+
+	public void startConversionThread(final Long flvRecordingId, final Integer leftSideLoud, final Integer rightSideLoud,
+			final Integer leftSideTime, final Integer rightSideTime) {
+		try {
+			log.debug("[-1-]" + taskExecutor);
+
+			taskExecutor.execute(new Runnable() {
+				public void run() {
+					flvInterviewConverter.startReConversion(flvRecordingId, leftSideLoud, rightSideLoud, leftSideTime, rightSideTime);
+				}
+			});
+		} catch (Exception err) {
+			log.error("[startConversionThread]", err);
+		}
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/data/flvrecord/converter/FlvRecorderConverterTask.java b/src/main/java/org/apache/openmeetings/data/flvrecord/converter/FlvRecorderConverterTask.java
new file mode 100644
index 0000000..05b85bd
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/flvrecord/converter/FlvRecorderConverterTask.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.data.flvrecord.converter;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import org.apache.openmeetings.converter.FlvRecorderConverter;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.task.TaskExecutor;
+
+public class FlvRecorderConverterTask {
+	private static final Logger log = Red5LoggerFactory.getLogger(FlvRecorderConverterTask.class, webAppRootKey);
+
+	@Autowired
+	private TaskExecutor taskExecutor;
+	@Autowired
+	private FlvRecorderConverter flvRecorderConverter;
+
+	public void startConversionThread(final Long flvRecordingId) {
+		try {
+			log.debug("[-1-]" + taskExecutor);
+
+			taskExecutor.execute(new Runnable() {
+				public void run() {
+					flvRecorderConverter.startConversion(flvRecordingId);
+				}
+			});
+		} catch (Exception err) {
+			log.error("[startConversionThread]", err);
+		}
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/data/flvrecord/listener/StreamListener.java b/src/main/java/org/apache/openmeetings/data/flvrecord/listener/StreamListener.java
new file mode 100644
index 0000000..917bc53
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/flvrecord/listener/StreamListener.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.data.flvrecord.listener;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Date;
+
+import org.apache.openmeetings.data.flvrecord.listener.async.BaseStreamWriter;
+import org.apache.openmeetings.data.flvrecord.listener.async.CachedEvent;
+import org.apache.openmeetings.data.flvrecord.listener.async.StreamAudioWriter;
+import org.apache.openmeetings.data.flvrecord.listener.async.StreamVideoWriter;
+import org.apache.openmeetings.db.dao.record.FlvRecordingMetaDataDao;
+import org.apache.openmeetings.db.dao.record.FlvRecordingMetaDeltaDao;
+import org.red5.logging.Red5LoggerFactory;
+import org.red5.server.api.scope.IScope;
+import org.red5.server.api.stream.IBroadcastStream;
+import org.red5.server.api.stream.IStreamListener;
+import org.red5.server.api.stream.IStreamPacket;
+import org.red5.server.net.rtmp.event.VideoData;
+import org.slf4j.Logger;
+
+public class StreamListener implements IStreamListener {
+	private static final Logger log = Red5LoggerFactory.getLogger(StreamListener.class, webAppRootKey);
+
+	private final BaseStreamWriter streamWriter;
+
+	public StreamListener(boolean isAudio, String streamName, IScope scope, Long metaDataId,
+			boolean isScreenData, boolean isInterview, FlvRecordingMetaDataDao metaDataDao
+			, FlvRecordingMetaDeltaDao metaDeltaDao) {
+		streamWriter = isAudio
+			? new StreamAudioWriter(streamName, scope, metaDataId, isScreenData, isInterview, metaDataDao, metaDeltaDao)
+			: new StreamVideoWriter(streamName, scope, metaDataId, isScreenData, isInterview, metaDataDao);
+	}
+
+	public void packetReceived(IBroadcastStream broadcastStream, IStreamPacket streampacket) {
+		try {
+			CachedEvent cachedEvent = new CachedEvent();
+			cachedEvent.setData(streampacket.getData().duplicate());
+			cachedEvent.setDataType(streampacket.getDataType());
+			cachedEvent.setTimestamp(streampacket.getTimestamp());
+			cachedEvent.setCurrentTime(new Date());
+			if (streampacket instanceof VideoData) {
+				cachedEvent.setFrameType(((VideoData) streampacket).getFrameType());
+			}
+
+			if (log.isTraceEnabled()) {
+				log.trace("Packet recieved. type: {} frame type: {}", cachedEvent.getDataType(), cachedEvent.getFrameType());
+			}
+			streamWriter.append(cachedEvent);
+		} catch (Exception e) {
+			log.error("[packetReceived]", e);
+		}
+	}
+
+	public void closeStream() {
+		streamWriter.stop();
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/BaseStreamWriter.java b/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/BaseStreamWriter.java
new file mode 100644
index 0000000..f44f75d
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/BaseStreamWriter.java
@@ -0,0 +1,185 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.data.flvrecord.listener.async;

+

+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;

+

+import java.io.File;

+import java.io.IOException;

+import java.util.Date;

+import java.util.concurrent.BlockingQueue;

+import java.util.concurrent.LinkedBlockingQueue;

+import java.util.concurrent.TimeUnit;

+

+import org.apache.openmeetings.db.dao.record.FlvRecordingMetaDataDao;

+import org.apache.openmeetings.db.entity.record.FlvRecordingMetaData;

+import org.apache.openmeetings.db.entity.record.FlvRecordingMetaData.Status;

+import org.apache.openmeetings.util.OmFileHelper;

+import org.red5.io.IStreamableFile;

+import org.red5.io.IStreamableFileFactory;

+import org.red5.io.IStreamableFileService;

+import org.red5.io.ITagWriter;

+import org.red5.io.StreamableFileFactory;

+import org.red5.logging.Red5LoggerFactory;

+import org.red5.server.api.scope.IScope;

+import org.red5.server.util.ScopeUtils;

+import org.slf4j.Logger;

+

+public abstract class BaseStreamWriter implements Runnable {

+	private static final Logger log = Red5LoggerFactory.getLogger(BaseStreamWriter.class, webAppRootKey);

+	protected int startTimeStamp = -1;

+	protected long initialDelta = 0;

+

+	// thread is running

+	private boolean running = false;

+	// thread is stopped

+	private boolean stopping = false;

+	// thread will be stopped as soon as the queue is empty

+	private boolean dostopping = false;

+

+	protected ITagWriter writer = null;

+

+	protected Long metaDataId = null;

+

+	protected Date startedSessionTimeDate = null;

+

+	protected File file;

+

+	protected IScope scope;

+

+	protected boolean isScreenData = false;

+

+	protected String streamName = "";

+	protected final FlvRecordingMetaDataDao metaDataDao;

+	private final BlockingQueue<CachedEvent> queue = new LinkedBlockingQueue<CachedEvent>();

+

+	public BaseStreamWriter(String streamName, IScope scope, Long metaDataId, boolean isScreenData, FlvRecordingMetaDataDao metaDataDao) {

+		startedSessionTimeDate = new Date();

+		this.isScreenData = isScreenData;

+		this.streamName = streamName;

+		this.metaDataId = metaDataId;

+		this.metaDataDao = metaDataDao;

+		this.scope = scope;

+		try {

+			init();

+		} catch (IOException ex) {

+			log.error("[BaseStreamWriter] Could not start Thread", ex);

+		}

+		open();

+

+		FlvRecordingMetaData metaData = metaDataDao.get(metaDataId);

+		metaData.setStreamStatus(Status.STARTED);

+		metaDataDao.update(metaData);

+	}

+

+	/**

+	 * Initialization

+	 * 

+	 * @throws IOException

+	 *             I/O exception

+	 */

+	private void init() throws IOException {

+		file = new File(OmFileHelper.getStreamsSubDir(scope.getName()), streamName + ".flv");

+

+		IStreamableFileFactory factory = (IStreamableFileFactory) ScopeUtils.getScopeService(scope, IStreamableFileFactory.class,

+				StreamableFileFactory.class);

+

+		if (!file.isFile()) {

+			// Maybe the (previously existing) file has been deleted

+			file.createNewFile();

+

+		} else if (!file.canWrite()) {

+			throw new IOException("The file is read-only");

+		}

+

+		IStreamableFileService service = factory.getService(file);

+		IStreamableFile flv = service.getStreamableFile(file);

+		writer = flv.getWriter();

+	}

+

+	private void open() {

+		running = true;

+		new Thread(this, "Recording " + file.getName()).start();

+	}

+

+	public void stop() {

+		dostopping = true;

+	}

+

+	public void run() {

+		while (!stopping) {

+			try {

+				CachedEvent item = queue.poll(100, TimeUnit.MICROSECONDS);

+				if (item != null) {

+					if (dostopping) {

+						log.trace("metadatId: {} :: Recording stopped but still packets to write to file!", metaDataId);

+					}

+

+					packetReceived(item);

+				} else if (dostopping) {

+					stopping = true;

+					closeStream();

+				}

+			} catch (InterruptedException e) {

+				log.error("[run]", e);

+			}

+		}

+	}

+

+	/**

+	 * Write the actual packet data to the disk and do calculate any needed additional information

+	 * 

+	 * @param streampacket

+	 */

+	public abstract void packetReceived(CachedEvent streampacket);

+

+	protected abstract void internalCloseStream();

+	/**

+	 * called when the stream is finished written on the disk

+	 */

+	public void closeStream() {

+		try {

+			writer.close();

+		} catch (Exception err) {

+			log.error("[closeStream, close writer]", err);

+		}

+		internalCloseStream();

+		// Write the complete Bit to the meta data, the converter task will wait for this bit!

+		try {

+			FlvRecordingMetaData metaData = metaDataDao.get(metaDataId);

+			log.debug("Stream Status was: {} has been written for: {}", metaData.getStreamStatus(), metaDataId);

+			metaData.setStreamStatus(Status.STOPPED);

+			metaDataDao.update(metaData);

+		} catch (Exception err) {

+			log.error("[closeStream, complete Bit]", err);

+		}

+	}

+

+	public void append(CachedEvent streampacket) {

+		if (!running) {

+			throw new IllegalStateException("Append called before the Thread was started!");

+		}

+		try {

+			queue.put(streampacket);

+		} catch (InterruptedException ignored) {

+			log.error("[append]", ignored);

+		}

+	}

+

+}

diff --git a/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/CachedEvent.java b/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/CachedEvent.java
new file mode 100644
index 0000000..6e160dd
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/CachedEvent.java
@@ -0,0 +1,73 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.data.flvrecord.listener.async;

+

+import java.util.Date;

+

+import org.apache.mina.core.buffer.IoBuffer;

+import org.red5.server.api.stream.IStreamPacket;

+import org.red5.server.net.rtmp.event.VideoData.FrameType;

+

+public class CachedEvent implements IStreamPacket {

+	private byte dataType;

+	private int timestamp; //this is the timeStamp, showing the time elapsed since the microphone was turned on

+	private IoBuffer data;

+	private Date currentTime; //this is the actually current timeStamp when the packet with audio data did enter the server

+	private FrameType frameType = FrameType.UNKNOWN;

+

+	public Date getCurrentTime() {

+		return currentTime;

+	}

+

+	public void setCurrentTime(Date currentTime) {

+		this.currentTime = currentTime;

+	}

+

+	public void setDataType(byte dataType) {

+		this.dataType = dataType;

+	}

+

+	public void setTimestamp(int timestamp) {

+		this.timestamp = timestamp;

+	}

+

+	public void setData(IoBuffer data) {

+		this.data = data;

+	}

+

+	public byte getDataType() {

+		return dataType;

+	}

+

+	public int getTimestamp() {

+		return timestamp;

+	}

+

+	public IoBuffer getData() {

+		return data;

+	}

+

+	public FrameType getFrameType() {

+		return frameType;

+	}

+

+	public void setFrameType(FrameType frameType) {

+		this.frameType = frameType;

+	}

+}

diff --git a/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamAudioWriter.java b/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamAudioWriter.java
new file mode 100644
index 0000000..0afd2e7
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamAudioWriter.java
@@ -0,0 +1,224 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.data.flvrecord.listener.async;

+

+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;

+import static org.red5.io.IoConstants.TYPE_AUDIO;

+import static org.red5.server.net.rtmp.event.VideoData.FrameType.KEYFRAME;

+

+import java.util.Date;

+

+import org.apache.mina.core.buffer.IoBuffer;

+import org.apache.openmeetings.db.dao.record.FlvRecordingMetaDataDao;

+import org.apache.openmeetings.db.dao.record.FlvRecordingMetaDeltaDao;

+import org.apache.openmeetings.db.entity.record.FlvRecordingMetaDelta;

+import org.red5.io.ITag;

+import org.red5.io.flv.impl.Tag;

+import org.red5.logging.Red5LoggerFactory;

+import org.red5.server.api.scope.IScope;

+import org.slf4j.Logger;

+

+public class StreamAudioWriter extends BaseStreamWriter {

+	private static final Logger log = Red5LoggerFactory.getLogger(StreamAudioWriter.class, webAppRootKey);

+

+	private int duration = 0;

+

+	private Integer lastTimeStamp = -1;

+	private Date lastcurrentTime = null;

+

+	private int lastStreamPacketTimeStamp = -1;

+

+	private long byteCount = 0;

+

+	// Autowire is not possible

+	protected final FlvRecordingMetaDeltaDao metaDeltaDao;

+

+	private boolean isInterview = false;

+

+	public StreamAudioWriter(String streamName, IScope scope, Long metaDataId, boolean isScreenData,

+			boolean isInterview, FlvRecordingMetaDataDao metaDataDao, FlvRecordingMetaDeltaDao metaDeltaDao) {

+		super(streamName, scope, metaDataId, isScreenData, metaDataDao);

+

+		this.metaDeltaDao = metaDeltaDao;

+		this.isInterview = isInterview;

+	}

+

+	@Override

+	public void packetReceived(CachedEvent streampacket) {

+		try {

+			// We only care about audio at this moment

+			if (isInterview || TYPE_AUDIO == streampacket.getDataType()) {

+				if (streampacket.getTimestamp() <= 0) {

+					log.warn("Negative TimeStamp");

+					return;

+				}

+				// we should not skip audio data in case it is Audio only interview

+				if (isInterview && isScreenData && startTimeStamp == -1 && KEYFRAME != streampacket.getFrameType()) {

+					//skip until keyframe

+					log.trace("no KEYFRAME, skipping");

+					return;

+				}

+				IoBuffer data = streampacket.getData().asReadOnlyBuffer();

+				if (data.limit() == 0) {

+					log.trace("data.limit() == 0 ");

+					return;

+				}

+

+				byteCount += data.limit();

+

+				lastcurrentTime = streampacket.getCurrentTime();

+				int timeStamp = streampacket.getTimestamp();

+				Date virtualTime = streampacket.getCurrentTime();

+

+				if (startTimeStamp == -1) {

+					// Calculate the delta between the initial start and the first audio-packet data

+

+					initialDelta = virtualTime.getTime() - startedSessionTimeDate.getTime();

+

+					FlvRecordingMetaDelta metaDelta = new FlvRecordingMetaDelta();

+

+					metaDelta.setDeltaTime(initialDelta);

+					metaDelta.setFlvRecordingMetaDataId(metaDataId);

+					metaDelta.setTimeStamp(0);

+					metaDelta.setDebugStatus("INIT AUDIO");

+					metaDelta.setIsStartPadding(true);

+					metaDelta.setIsEndPadding(false);

+					metaDelta.setDataLengthPacket(data.limit());

+					metaDelta.setReceivedAudioDataLength(byteCount);

+					metaDelta.setStartTime(startedSessionTimeDate);

+					metaDelta.setPacketTimeStamp(streampacket.getTimestamp());

+

+					Long deltaTimeStamp = virtualTime.getTime() - startedSessionTimeDate.getTime();

+

+					metaDelta.setDuration(0);

+

+					Long missingTime = deltaTimeStamp - 0;

+

+					metaDelta.setMissingTime(missingTime);

+

+					metaDelta.setCurrentTime(virtualTime);

+					metaDelta.setDeltaTimeStamp(deltaTimeStamp);

+					metaDelta.setStartTimeStamp(startTimeStamp);

+

+					metaDeltaDao.addFlvRecordingMetaDelta(metaDelta);

+

+					// That will be not bigger then long value

+					startTimeStamp = streampacket.getTimestamp();

+				}

+

+				lastStreamPacketTimeStamp = streampacket.getTimestamp();

+

+				timeStamp -= startTimeStamp;

+

+				// Offset at the beginning is calculated above

+				long deltaTime = lastTimeStamp == -1 ? 0 : timeStamp - lastTimeStamp;

+

+				Long preLastTimeStamp = Long.parseLong(lastTimeStamp.toString());

+

+				lastTimeStamp = timeStamp;

+

+				if (deltaTime > 75) {

+					FlvRecordingMetaDelta metaDelta = new FlvRecordingMetaDelta();

+

+					metaDelta.setDeltaTime(deltaTime);

+					metaDelta.setFlvRecordingMetaDataId(metaDataId);

+					metaDelta.setTimeStamp(timeStamp);

+					metaDelta.setDebugStatus("RUN AUDIO");

+					metaDelta.setIsStartPadding(false);

+					metaDelta.setLastTimeStamp(preLastTimeStamp);

+					metaDelta.setIsEndPadding(false);

+					metaDelta.setDataLengthPacket(data.limit());

+					metaDelta.setReceivedAudioDataLength(byteCount);

+					metaDelta.setStartTime(startedSessionTimeDate);

+					metaDelta.setPacketTimeStamp(streampacket.getTimestamp());

+

+					Date current_date = new Date();

+					Long deltaTimeStamp = current_date.getTime() - startedSessionTimeDate.getTime();

+

+					duration = Math.max(duration, timeStamp + writer.getOffset());

+					metaDelta.setDuration(duration);

+

+					Long missingTime = deltaTimeStamp - timeStamp;

+

+					metaDelta.setMissingTime(missingTime);

+

+					metaDelta.setCurrentTime(current_date);

+					metaDelta.setDeltaTimeStamp(deltaTimeStamp);

+					metaDelta.setStartTimeStamp(startTimeStamp);

+

+					metaDeltaDao.addFlvRecordingMetaDelta(metaDelta);

+				}

+

+				log.trace("timeStamp :: " + timeStamp);

+				ITag tag = new Tag();

+				tag.setDataType(streampacket.getDataType());

+

+				// log.debug("data.limit() :: "+data.limit());

+				tag.setBodySize(data.limit());

+				tag.setTimestamp(timeStamp);

+				tag.setBody(data);

+

+				writer.writeTag(tag);

+

+			}

+		} catch (Exception e) {

+			log.error("[packetReceived]", e);

+		}

+	}

+

+	@Override

+	protected void internalCloseStream() {

+		try {

+			// We do not add any End Padding or count the gaps for the

+			// Screen Data, cause there is no!

+

+			Date virtualTime = lastcurrentTime;

+			log.debug("virtualTime: " + virtualTime);

+			log.debug("startedSessionTimeDate: " + startedSessionTimeDate);

+

+			long deltaRecordingTime = virtualTime == null ? 0 : virtualTime.getTime()

+					- startedSessionTimeDate.getTime();

+

+			log.debug("lastTimeStamp :closeStream: " + lastTimeStamp);

+			log.debug("lastStreamPacketTimeStamp :closeStream: " + lastStreamPacketTimeStamp);

+			log.debug("deltaRecordingTime :closeStream: " + deltaRecordingTime);

+

+			long deltaTimePaddingEnd = deltaRecordingTime - lastTimeStamp - initialDelta;

+

+			log.debug("deltaTimePaddingEnd :: " + deltaTimePaddingEnd);

+

+			FlvRecordingMetaDelta metaDelta = new FlvRecordingMetaDelta();

+

+			metaDelta.setDeltaTime(deltaTimePaddingEnd);

+			metaDelta.setFlvRecordingMetaDataId(metaDataId);

+			metaDelta.setTimeStamp(lastTimeStamp);

+			metaDelta.setDebugStatus("END AUDIO");

+			metaDelta.setIsStartPadding(false);

+			metaDelta.setIsEndPadding(true);

+			metaDelta.setDataLengthPacket(null);

+			metaDelta.setReceivedAudioDataLength(byteCount);

+			metaDelta.setStartTime(startedSessionTimeDate);

+			metaDelta.setCurrentTime(new Date());

+

+			metaDeltaDao.addFlvRecordingMetaDelta(metaDelta);

+		} catch (Exception err) {

+			log.error("[internalCloseStream]", err);

+		}

+	}

+}

diff --git a/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamVideoWriter.java b/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamVideoWriter.java
new file mode 100644
index 0000000..92a0b66
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/flvrecord/listener/async/StreamVideoWriter.java
@@ -0,0 +1,109 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.data.flvrecord.listener.async;

+

+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;

+import static org.red5.server.net.rtmp.event.VideoData.FrameType.KEYFRAME;

+

+import java.util.Date;

+

+import org.apache.mina.core.buffer.IoBuffer;

+import org.apache.openmeetings.db.dao.record.FlvRecordingMetaDataDao;

+import org.apache.openmeetings.db.entity.record.FlvRecordingMetaData;

+import org.red5.io.ITag;

+import org.red5.io.flv.impl.Tag;

+import org.red5.logging.Red5LoggerFactory;

+import org.red5.server.api.scope.IScope;

+import org.slf4j.Logger;

+

+public class StreamVideoWriter extends BaseStreamWriter {

+	private static final Logger log = Red5LoggerFactory.getLogger(StreamVideoWriter.class, webAppRootKey);

+	private Date startedSessionScreenTimeDate = null;

+

+	public StreamVideoWriter(String streamName, IScope scope, Long metaDataId, boolean isScreenData,

+			boolean isInterview, FlvRecordingMetaDataDao metaDataDao) {

+

+		super(streamName, scope, metaDataId, isScreenData, metaDataDao);

+	}

+

+	@Override

+	public void packetReceived(CachedEvent streampacket) {

+		try {

+			int timeStamp = streampacket.getTimestamp();

+			log.trace("incoming timeStamp :: " + timeStamp);

+			if (startTimeStamp == -1 && KEYFRAME != streampacket.getFrameType()) {

+				//skip until keyframe

+				log.trace("no KEYFRAME, skipping ::" + streampacket.getFrameType());

+				return;

+			}

+			if (timeStamp <= 0) {

+				log.warn("Negative TimeStamp");

+				return;

+			}

+			IoBuffer data = streampacket.getData().asReadOnlyBuffer();

+			if (data.limit() == 0) {

+				log.trace("Data.limit() == 0");

+				return;

+			}

+			Date virtualTime = streampacket.getCurrentTime();

+

+			if (startedSessionScreenTimeDate == null) {

+				startedSessionScreenTimeDate = virtualTime;

+				// Calculate the delta between the initial start and the first packet data

+				initialDelta = startedSessionScreenTimeDate.getTime() - startedSessionTimeDate.getTime();

+

+				// This is important for the Interview Post Processing to get the time between starting the stream and

+				// the actual Access to the webcam by the Flash Security Dialog

+				metaDataDao.updateFlvRecordingMetaDataInitialGap(metaDataId, initialDelta);

+			}

+

+			if (startTimeStamp == -1) {

+				// That will be not bigger then long value

+				startTimeStamp = timeStamp;

+			}

+

+			timeStamp -= startTimeStamp;

+

+			log.trace("timeStamp :: " + timeStamp);

+			ITag tag = new Tag();

+			tag.setDataType(streampacket.getDataType());

+

+			tag.setBodySize(data.limit());

+			tag.setTimestamp(timeStamp);

+			tag.setBody(data);

+

+			writer.writeTag(tag);

+		} catch (Exception e) {

+			log.error("[packetReceived]", e);

+		}

+	}

+

+	@Override

+	protected void internalCloseStream() {

+		try {

+			// Add Delta in the beginning, this Delta is the Gap between the device chosen and when the User hits the

+			// button in the Flash Security Warning

+			FlvRecordingMetaData metaData = metaDataDao.get(metaDataId);

+			metaData.setRecordStart(new Date(metaData.getRecordStart().getTime() + initialDelta));

+			metaDataDao.update(metaData);

+		} catch (Exception err) {

+			log.error("[internalCloseStream]", err);

+		}

+	}

+}

diff --git a/src/main/java/org/apache/openmeetings/data/record/BatikMethods.java b/src/main/java/org/apache/openmeetings/data/record/BatikMethods.java
new file mode 100644
index 0000000..909fb6f
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/record/BatikMethods.java
@@ -0,0 +1,525 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.data.record;
+
+import java.awt.AlphaComposite;
+import java.awt.BasicStroke;
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.Graphics2D;
+import java.awt.geom.Ellipse2D;
+import java.awt.geom.GeneralPath;
+import java.awt.geom.Line2D;
+import java.awt.geom.Rectangle2D;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.swing.JTextArea;
+
+import org.apache.batik.dom.svg.SVGDOMImplementation;
+import org.apache.batik.svggen.SVGGraphics2D;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.openmeetings.util.geom.ArrowStyle;
+import org.apache.openmeetings.util.geom.GeomPoint;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public class BatikMethods {
+	
+	private static final Logger log = Red5LoggerFactory.getLogger(BatikMethods.class, OpenmeetingsVariables.webAppRootKey);
+	@Autowired
+	private ConfigurationDao configurationDao;
+
+	public void paintTextByWidthHeight(SVGGraphics2D g2d, int x1, int y1, int width, int height,
+			String text, int style, int size, Color fontColor) throws Exception {
+
+		//String default_export_font = Configurationmanagement.getInstance().getConfKey(3,"default_export_font").getConf_value();
+		
+		this.drawTextByJTextArea(g2d, x1, y1, width, height, text, "Verdana", style, size, fontColor);
+
+	}
+	
+	public void _paintTextByWidthHeight(SVGGraphics2D g2d, int x1, int y1, int width, int height,
+			String text, int style, int size, Color fontColor) throws Exception {
+
+		String default_export_font = configurationDao.getConfValue("default_export_font", String.class, "");
+		
+		this.drawTextByString(g2d, x1, y1, width, height, text, default_export_font, style, size, fontColor);
+
+	}
+	
+	@SuppressWarnings("rawtypes")
+	public void drawPointsObject(Graphics2D g2d, List pointsList, Color lineColor, int size, 
+			double xObj, double yObj, float alpha) throws Exception {
+		
+		for (Iterator iter = pointsList.iterator();iter.hasNext();) {
+			List point = (List) iter.next();
+			
+//			log.debug("POINT FROM TO :" +
+//					Double.valueOf(point.get(1).toString()).doubleValue()+","+
+//					Double.valueOf(point.get(2).toString()).doubleValue()+","+ 
+//					Double.valueOf(point.get(3).toString()).doubleValue()+","+
+//					Double.valueOf(point.get(4).toString()).doubleValue());
+			
+			this.drawThickLine2DPaint(g2d, Double.valueOf(point.get(1).toString()).doubleValue(), 
+					Double.valueOf(point.get(2).toString()).doubleValue(), 
+					Double.valueOf(point.get(3).toString()).doubleValue(), 
+					Double.valueOf(point.get(4).toString()).doubleValue(),  
+					size, lineColor, xObj, yObj, alpha);
+		}
+		
+		
+	}
+	
+	public void drawLine(Graphics2D g2d, Double x1, Double y1, Double x2, Double y2, Color lineColor, int size, 
+			double xObj, double yObj, float alpha) throws Exception {
+		
+		this.drawThickLine2D(g2d, x1, y1, x2, y2,  
+				size, lineColor, xObj, yObj, alpha);
+		
+	}
+	
+	public void paintEllipse2D(Graphics2D g2d, double x, double y, double width, double height, 
+			Color linecoler, int thickness, Color fillColor, float alpha) throws Exception {
+		
+		g2d.setStroke(new BasicStroke(thickness, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));
+		
+		int[] rules = new int[8]; 
+		
+		//all possible Compositing Rules:
+		rules[0] = AlphaComposite.SRC_OVER;
+		rules[1] = AlphaComposite.DST_OVER;
+		rules[2] = AlphaComposite.CLEAR;
+		rules[3] = AlphaComposite.SRC;
+		rules[4] = AlphaComposite.SRC_IN;
+		rules[5] = AlphaComposite.DST_IN;
+		rules[6] = AlphaComposite.SRC_OUT;
+		rules[7] = AlphaComposite.DST_OUT;
+		
+		g2d.setComposite( AlphaComposite.getInstance( AlphaComposite.SRC,alpha));
+		
+        //int x, int y, int width, int height
+        
+        if (linecoler != null) {
+	        g2d.setPaint(linecoler);
+	        g2d.draw(new Ellipse2D.Double(x,y,width,height));
+        }
+        
+        if (fillColor != null) {
+        	g2d.setPaint(fillColor);
+            g2d.fill(new Ellipse2D.Double(x,y,width,height));
+        }
+        
+    }
+	
+	public void paintRect2D(Graphics2D g2d, double x, double y, double width, double height, 
+			Color linecoler, int thickness, Color fillColor, float alpha) throws Exception {
+		
+		g2d.setStroke(new BasicStroke(thickness, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));
+		
+		int[] rules = new int[8]; 
+		
+		//all possible Compositing Rules:
+		rules[0] = AlphaComposite.SRC_OVER;
+		rules[1] = AlphaComposite.DST_OVER;
+		rules[2] = AlphaComposite.CLEAR;
+		rules[3] = AlphaComposite.SRC;
+		rules[4] = AlphaComposite.SRC_IN;
+		rules[5] = AlphaComposite.DST_IN;
+		rules[6] = AlphaComposite.SRC_OUT;
+		rules[7] = AlphaComposite.DST_OUT;
+		
+		g2d.setComposite( AlphaComposite.getInstance( AlphaComposite.SRC,alpha));
+		
+        //int x, int y, int width, int height
+        
+        if (linecoler != null) {
+	        g2d.setPaint(linecoler);
+	        g2d.draw(new Rectangle2D.Double(x,y,width,height));
+        }
+        
+        if (fillColor != null) {
+        	g2d.setPaint(fillColor);
+            g2d.fill(new Rectangle2D.Double(x,y,width,height));
+        }
+        
+    }
+	
+	public void paintRect(Graphics2D g2d, int x, int y, int width, int height, 
+			Color linecoler, int thickness, Color fillColor) throws Exception {
+		
+		//int x, int y, int width, int height
+        //g2d.fill(new Rectangle(x,y,width,height));
+        
+        g2d.setStroke(new BasicStroke(thickness));
+        
+        if (linecoler != null) {
+	        g2d.setPaint(linecoler);
+	        g2d.drawRect(x, y, width, height);
+        }
+        
+        if (fillColor != null) {
+        	g2d.setPaint(fillColor);
+	        g2d.fillRect(x, y, width, height);
+        }
+        
+    }
+	
+	public void paintLine(Graphics2D g2d, int x1, int y1, int x2, int y2, Color col) throws Exception {
+		g2d.setPaint(col);
+		g2d.drawLine(x1, y1, x2, y2);
+	}
+	
+	public void drawThickLine2DPaint(Graphics2D g2d, double x1, double y1, double x2, double y2, 
+			int width, Color c, double xObj, double yObj, float alpha) throws Exception {
+		g2d.setPaint(c);
+		
+		int[] rules = new int[8]; 
+		
+		//all possible Compositing Rules:
+		rules[0] = AlphaComposite.SRC_OVER;
+		rules[1] = AlphaComposite.DST_OVER;
+		rules[2] = AlphaComposite.CLEAR;
+		rules[3] = AlphaComposite.SRC;
+		rules[4] = AlphaComposite.SRC_IN;
+		rules[5] = AlphaComposite.DST_IN;
+		rules[6] = AlphaComposite.SRC_OUT;
+		rules[7] = AlphaComposite.DST_OUT;
+		
+		g2d.setComposite( AlphaComposite.getInstance( AlphaComposite.SRC,alpha));
+		g2d.setStroke(new BasicStroke(width, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL));
+		Line2D line = new Line2D.Double(x1, y1, x2, y2);
+	    g2d.draw(line);
+	}
+
+	
+	public void drawThickLine2D(Graphics2D g2d, double x1, double y1, double x2, double y2, 
+			int width, Color c, double xObj, double yObj, float alpha) throws Exception {
+		g2d.setPaint(c);
+		
+		int[] rules = new int[8]; 
+		
+		//all possible Compositing Rules:
+		rules[0] = AlphaComposite.SRC_OVER;
+		rules[1] = AlphaComposite.DST_OVER;
+		rules[2] = AlphaComposite.CLEAR;
+		rules[3] = AlphaComposite.SRC;
+		rules[4] = AlphaComposite.SRC_IN;
+		rules[5] = AlphaComposite.DST_IN;
+		rules[6] = AlphaComposite.SRC_OUT;
+		rules[7] = AlphaComposite.DST_OUT;
+		
+		g2d.setComposite( AlphaComposite.getInstance( AlphaComposite.SRC,alpha));
+		g2d.setStroke(new BasicStroke(width, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL));
+		Line2D line = new Line2D.Double(x1+xObj, y1+yObj, x2+xObj, y2+yObj);
+	    g2d.draw(line);
+	}
+
+	public void drawThickLine(Graphics2D g2d, int x1, int y1, int x2, int y2, int width, Color c) throws Exception {
+		g2d.setPaint(c);
+		g2d.setStroke(new BasicStroke(width, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL));
+	    g2d.drawLine(x1, y1, x2, y2);
+	}	
+	
+	public void paintTextByWidthHeightAndDocument(SVGGraphics2D g2d, int x1, int y1, int width, int height,
+			String text, int style, int size, Color fontColor, Document document) throws Exception {
+
+		// String default_export_font =
+		// Configurationmanagement.getInstance().getConfKey("default_export_font").getConf_value();
+		
+		this.drawText(g2d, x1, y1, width, height, text, "Verdana", style, size, fontColor, document);
+
+	}
+
+	public void drawText(SVGGraphics2D g2d, int x, int y, int width, int height, 
+			String text, String default_export_font, int style, int size, Color fontColor,
+			Document document) throws Exception {
+		
+//		g2d.setClip(x, y, width, height);
+//		g2d.setColor(Color.black);
+//		g2d.drawString(text, x, y+20);
+		
+		String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI;
+
+		// Get the root element (the 'svg' element).
+		Element svgRoot = document.getDocumentElement();
+
+		log.debug("svgNS DEBUG: "+svgNS);
+		
+		//Element textElement = g2d.getDOMFactory().createElementNS(svgNS,"text");
+		Element rectangle = document.createElementNS(svgNS, "rect");
+		rectangle.setAttributeNS(svgNS, "x", "10");
+		rectangle.setAttributeNS(svgNS, "y", "20");
+		rectangle.setAttributeNS(svgNS, "width", "100");
+		rectangle.setAttributeNS(svgNS, "height", "50");
+		rectangle.setAttributeNS(svgNS, "fill", "red");
+
+		// Attach the rectangle to the root 'svg' element.
+		svgRoot.appendChild(rectangle);
+
+
+	}
+	
+	public void drawTextByString(SVGGraphics2D g2d, int x, int y, int width, int height, 
+			String text, String default_export_font, int style, int size, Color fontColor) throws Exception {
+		
+		//g2d.setClip(x, y, width, height);
+		g2d.setColor(Color.black);
+		g2d.drawString(text, x, y);
+		
+		
+	}
+
+	public void drawTextByJTextArea(Graphics2D g2d, int x, int y, int width, int height, 
+			String text, String default_export_font, int style, int size, Color fontColor) throws Exception {
+		
+//		g2d.setClip(x, y, width, height);
+//		g2d.setColor(Color.black);
+//		g2d.drawString(text, x, y+20);
+		
+		//Font font = new Font("Verdana", Font.PLAIN, 11);
+		Font font = new Font(default_export_font, style, size);
+
+		String[] stringsText = text.split("\r");
+		//log.debug("TEXT: "+stringsText);
+		//log.debug("TEXT: "+stringsText.length);
+		
+		String newText = "";
+		
+		for (int i=0;i<stringsText.length;i++) {
+			newText += stringsText[i];
+			if (i+1<stringsText.length) {
+				newText += "\n";
+			}
+		}
+		
+		JTextArea n = new JTextArea( newText );
+		n.setFont(font);
+		n.setWrapStyleWord( true );
+		n.setLineWrap( true );
+		n.setForeground( fontColor );
+		
+		//log.debug("Text at: "+x+" "+y);
+			//int x, int y, int width, int height
+		n.setBounds( x, y , width, height );
+		n.setOpaque( false );
+		
+		//Text
+		SVGGraphics2D svgGenerator2 = (SVGGraphics2D) g2d.create(x, y, width, height);
+
+		//svgGenerator2.create(x, y, width, height);
+		//svgGenerator2.draw(.dra)
+		n.paint( svgGenerator2 );
+		
+	}
+	
+
+	public void drawArrow(SVGGraphics2D g2d,
+			GeomPoint start, GeomPoint end, float thickness, float alpha,
+			Color linecoler, Color fillColor) {
+		
+		if (start.equals(end)) return;
+		
+		
+//		(double edgeControlPosition, double edgeControlSize,
+//				double headLength, double headWidth, double shaftControlPosition,
+//				double shaftControlSize, float shaftPosition, double shaftThickness)
+		ArrowStyle arrowStyle = new ArrowStyle(0.5, 0.5, thickness*5, 
+				thickness*5, 0.5, 0.5, 0, thickness);
+		
+		GeomPoint fullVect = end.subtract(start);
+		double halfWidth = (arrowStyle.headWidth != -1) ? arrowStyle.headWidth/2 : arrowStyle.headLength/2; 
+		
+		//Figure out the line start/end points
+		GeomPoint startNorm = new GeomPoint();
+		startNorm.setLocation(fullVect.getY(),-fullVect.getX());
+		startNorm.normalize(arrowStyle.shaftThickness/2);
+		GeomPoint start1 = start.add(startNorm);
+		GeomPoint start2 = start.subtract(startNorm);
+		GeomPoint end1 = end.add(startNorm);
+		GeomPoint end2 = end.subtract(startNorm);
+				
+		//log.debug("startNorm: "+startNorm.toString());
+        //log.debug("start1: "+start1.toString());
+        //log.debug("start2: "+start2.toString());
+        //log.debug("end1: "+end1.toString());
+        //log.debug("end2: "+end2.toString());
+		
+		//figure out where the arrow head starts
+		GeomPoint headPnt = fullVect.clone();
+		//log.debug("headPnt 1: "+headPnt.toString());
+		//log.debug("headPnt.length 1: "+headPnt.length());
+		//log.debug("arrowStyle.headLength 1: "+arrowStyle.headLength);
+		headPnt.normalize(headPnt.length()-arrowStyle.headLength);
+		//log.debug("headPnt 2: "+headPnt.toString());
+		headPnt = headPnt.add(start);
+		//log.debug("headPnt 3: "+headPnt.toString());
+		
+		//calculate the arrowhead corners
+		GeomPoint headPntNorm = startNorm.clone();
+		//log.debug("headPntNorm ^^: "+headPntNorm.toString());
+		//log.debug("halfWidth ^^: "+halfWidth);
+		headPntNorm.normalize(halfWidth);
+		//log.debug("headPntNorm: "+headPntNorm.toString());
+		GeomPoint edge1 = headPnt.add(headPntNorm);
+		GeomPoint edge2 = headPnt.subtract(headPntNorm);
+		
+		//log.debug("edge1: "+edge1.toString());
+        //log.debug("edge2: "+edge2.toString());
+		
+		//Figure out where the arrow connects the the shaft, then calc the intersections
+		GeomPoint shaftCenter = GeomPoint.interpolate(end,headPnt,arrowStyle.shaftPosition);
+		//log.debug("end"+end.toString());
+		//log.debug("headPnt: "+headPnt.toString());
+		//log.debug("arrowStyle.shaftPosition: "+arrowStyle.shaftPosition);
+		//log.debug("shaftCenter: "+shaftCenter);
+		//log.debug("edge1: "+edge1);
+		//shaftCenter.setLocation(185.857864376269, 185.857864376269);
+		GeomPoint inter1 = GeomPoint.getLineIntersection(start1,end1,shaftCenter,edge1);
+		GeomPoint inter2 = GeomPoint.getLineIntersection(start2,end2,shaftCenter,edge2);
+		
+		//log.debug("inter1: "+inter1.toString());
+        //log.debug("inter2: "+inter2.toString());
+		
+		//Figure out the control points
+		GeomPoint edgeCenter = GeomPoint.interpolate(end,headPnt,(float) arrowStyle.edgeControlPosition);
+		GeomPoint edgeNorm = startNorm.clone();
+		edgeNorm.normalize(halfWidth*arrowStyle.edgeControlSize);
+		//log.debug("halfWidth*arrowStyle.edgeControlSize: "+(halfWidth*arrowStyle.edgeControlSize));
+		//log.debug("edgeNorm: "+edgeNorm.toString());
+		GeomPoint edgeCntrl1 = edgeCenter.add(edgeNorm);
+		GeomPoint edgeCntrl2 = edgeCenter.subtract(edgeNorm);
+		
+		//log.debug("edgeCntrl1: "+edgeCntrl1.toString());
+        //log.debug("edgeCntrl2: "+edgeCntrl2.toString());
+
+		g2d.setPaint(new Color(255,0,0));
+		
+//		graphics.moveTo(start1.x,start1.y);
+//		graphics.lineTo(inter1.x,inter1.y);
+//		graphics.lineTo(edge1.x,edge1.y);
+//		graphics.curveTo(edgeCntrl1.x,edgeCntrl1.y,end.x,end.y);
+//		graphics.curveTo(edgeCntrl2.x,edgeCntrl2.y,edge2.x,edge2.y);
+//		graphics.lineTo(inter2.x,inter2.y);
+//		graphics.lineTo(start2.x,start2.y);
+//		graphics.lineTo(start1.x,start1.y);
+		
+//		log.debug("moveTo"+start1.x+","+start1.y);
+//		log.debug("lineTo"+inter1.x+","+inter1.y);
+//		log.debug("lineTo"+edge1.x+","+edge1.y);
+//		log.debug("quadTo"+edgeCntrl1.x+","+edgeCntrl1.y+","+end.x+","+end.y);
+//		log.debug("quadTo"+edgeCntrl2.x+","+edgeCntrl2.y+","+edge2.x+","+edge2.y);
+//		log.debug("lineTo"+inter2.x+","+inter2.y);
+//		log.debug("lineTo"+start2.x+","+start2.y);
+//		log.debug("lineTo"+start1.x+","+start1.y);
+		
+		GeneralPath graphics = new GeneralPath();
+		graphics.moveTo(start1.x,start1.y);
+		graphics.lineTo(inter1.x,inter1.y);
+		graphics.lineTo(edge1.x,edge1.y);
+		graphics.quadTo(edgeCntrl1.x,edgeCntrl1.y,end.x,end.y);
+		graphics.quadTo(edgeCntrl2.x,edgeCntrl2.y,edge2.x,edge2.y);
+		graphics.lineTo(inter2.x,inter2.y);
+		graphics.lineTo(start2.x,start2.y);
+		graphics.lineTo(start1.x,start1.y);
+		graphics.closePath();
+		
+		int[] rules = new int[8]; 
+		
+		//all possible Compositing Rules:
+		rules[0] = AlphaComposite.SRC_OVER;
+		rules[1] = AlphaComposite.DST_OVER;
+		rules[2] = AlphaComposite.CLEAR;
+		rules[3] = AlphaComposite.SRC;
+		rules[4] = AlphaComposite.SRC_IN;
+		rules[5] = AlphaComposite.DST_IN;
+		rules[6] = AlphaComposite.SRC_OUT;
+		rules[7] = AlphaComposite.DST_OUT;
+		
+		g2d.setComposite( AlphaComposite.getInstance( AlphaComposite.SRC,alpha));
+		g2d.setStroke(new BasicStroke(1, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL));
+		
+		if (linecoler != null) {
+	        g2d.setPaint(linecoler);
+	        g2d.draw(graphics);
+        }
+        
+        if (fillColor != null) {
+        	g2d.setPaint(fillColor);
+	        g2d.fill(graphics);
+        }
+        
+	}
+	
+
+	
+	
+	
+	
+	
+	public String workAroundPixelErrorInSVG(String xmlDef) throws Exception {
+		String resultingString = "";
+        
+        boolean byPassedFirst = false;
+        
+        while (xmlDef.indexOf("font-size:") != -1) {
+        	
+        	log.debug("xmlDef "+xmlDef);
+        	int i = xmlDef.indexOf("font-size:");
+        	
+        	log.debug("Found i "+i);
+        	if (byPassedFirst) {
+        		log.debug("byPassedFirst DO PROCESS ");
+	        	String start = xmlDef.substring(0, i+10);
+	        	xmlDef = xmlDef.substring(i+10, xmlDef.length());
+	        	log.debug("byPassedFirst FIRST PART Process "+start);
+	        	log.debug("byPassedFirst END PART Process "+xmlDef);
+	        	
+	        	int firstSemicolon = xmlDef.indexOf(";");
+	        	log.debug("firstSemicolon "+firstSemicolon);
+	        	String fontSize = xmlDef.substring(0, firstSemicolon);
+	        	log.debug("fontSize "+fontSize);
+	        	
+	        	xmlDef = xmlDef.substring(firstSemicolon, xmlDef.length());
+	        	
+	        	resultingString += start + fontSize + "px";
+        	} else {
+        		log.debug("byPassedFirst DO NOT PROCESS ");
+        		String start = xmlDef.substring(0, i+10);
+        		log.debug("byPassedFirst FIRST PART "+start);
+        		xmlDef = xmlDef.substring(i+10, xmlDef.length());
+        		log.debug("byPassedFirst END PART "+xmlDef);
+        		resultingString += start;
+        		byPassedFirst = true;
+        	}
+        }
+        
+        resultingString += xmlDef;
+        
+        log.debug("###################### ");
+        log.debug("resultingString "+resultingString);
+        
+        return resultingString;
+	}
+	
+}
diff --git a/src/main/java/org/apache/openmeetings/data/record/WhiteboardMapToSVG.java b/src/main/java/org/apache/openmeetings/data/record/WhiteboardMapToSVG.java
new file mode 100644
index 0000000..080ee8e
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/record/WhiteboardMapToSVG.java
@@ -0,0 +1,305 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.data.record;
+
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.Image;
+import java.io.File;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.imageio.ImageIO;
+
+import org.apache.batik.svggen.SVGGraphics2D;
+import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.openmeetings.util.geom.GeomPoint;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class WhiteboardMapToSVG extends BatikMethods {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(WhiteboardMapToSVG.class, OpenmeetingsVariables.webAppRootKey);
+
+	private WhiteboardMapToSVG() {
+	}
+
+	private static WhiteboardMapToSVG instance = null;
+
+	public static synchronized WhiteboardMapToSVG getInstance() {
+		if (instance == null) {
+			instance = new WhiteboardMapToSVG();
+		}
+
+		return instance;
+	}
+	
+	@SuppressWarnings("rawtypes")
+	public SVGGraphics2D convertMapToSVG(SVGGraphics2D svgGenerator, List whiteBoardMap) throws Exception {
+		
+		//log.debug("convertMapToSVG: "+whiteBoardMap.size());
+		
+        for (Iterator iter = whiteBoardMap.iterator();iter.hasNext();) {
+        	
+        	List graphObject = (List) iter.next();
+        	
+        	String graphType = graphObject.get(0).toString();
+        	
+        	//log.debug("graphType: "+graphType);
+        	
+        	if (graphType.equals("paint")) {
+        		
+        		List pointsList = (List) graphObject.get(1);
+        		
+        		Integer lineWidth = Integer.valueOf(graphObject.get(3).toString()).intValue();
+        		Integer col = Integer.valueOf(graphObject.get(4).toString()).intValue();
+        		
+        		Float alpha = Float.valueOf(graphObject.get(5).toString()).floatValue();
+        		
+        		Double x = Double.valueOf(graphObject.get(graphObject.size()-5).toString()).doubleValue();
+        		Double y = Double.valueOf(graphObject.get(graphObject.size()-4).toString()).doubleValue();
+        		
+        		//log.debug("x,y,width,height: "+x+","+y+","+width+","+height);
+        		
+        		//Draw a Painting
+    	        SVGGraphics2D svgGenerator_temp = new SVGGraphics2D(svgGenerator);
+    	        //SVGGraphics2D svgGenerator2 = new SVGGraphics2D(document);
+    	         
+    	        log.debug("pointsList: "+pointsList);
+    	        this.drawPointsObject(svgGenerator_temp, pointsList, new Color(col), lineWidth, x, y, alpha);
+    	        
+        	} else if (graphType.equals("rectangle")) {
+        		
+        		/*actionObject[0] = 'rectangle';
+		        actionObject[1] = stroke;
+		        actionObject[2] = line;
+		        actionObject[3] = fill;
+		        actionObject[4] = strokeDis;
+		        actionObject[5] = fillDis;
+		        actionObject[6] = this.currentrectangleOpacity;*/
+        		
+        		Integer lineWidth = Integer.valueOf(graphObject.get(2).toString()).intValue();
+        		
+        		Integer stroke = Integer.valueOf(graphObject.get(1).toString()).intValue();
+        		Integer strokeDis= Integer.valueOf(graphObject.get(4).toString()).intValue();
+        		
+        		Color strokeColor = null;
+        		if (strokeDis != -1) {
+        			strokeColor = new Color(stroke);
+        		}
+        		
+        		Integer fill = Integer.valueOf(graphObject.get(3).toString()).intValue();
+        		Integer fillDis= Integer.valueOf(graphObject.get(5).toString()).intValue();
+        		
+        		Color fillColor = null;
+        		if (fillDis != -1) {
+        			fillColor = new Color(fill);
+        		}
+        		
+        		Float alpha = Float.valueOf(graphObject.get(6).toString()).floatValue();
+        		
+        		Double x = Double.valueOf(graphObject.get(graphObject.size()-5).toString()).doubleValue();
+        		Double y = Double.valueOf(graphObject.get(graphObject.size()-4).toString()).doubleValue();
+        		Double width = Double.valueOf(graphObject.get(graphObject.size()-3).toString()).doubleValue();
+        		Double height = Double.valueOf(graphObject.get(graphObject.size()-2).toString()).doubleValue();
+        	
+        		SVGGraphics2D svgGenerator_temp = new SVGGraphics2D(svgGenerator);
+        		this.paintRect2D(svgGenerator_temp, x, y, width, height, strokeColor, lineWidth, fillColor, alpha);
+        		
+        	} else if (graphType.equals("ellipse")) {
+        		
+        		Integer lineWidth = Integer.valueOf(graphObject.get(2).toString()).intValue();
+        		
+        		Integer stroke = Integer.valueOf(graphObject.get(1).toString()).intValue();
+        		Integer strokeDis= Integer.valueOf(graphObject.get(4).toString()).intValue();
+        		
+        		Color strokeColor = null;
+        		if (strokeDis != -1) {
+        			strokeColor = new Color(stroke);
+        		}
+        		
+        		Integer fill = Integer.valueOf(graphObject.get(3).toString()).intValue();
+        		Integer fillDis= Integer.valueOf(graphObject.get(5).toString()).intValue();
+        		
+        		Color fillColor = null;
+        		if (fillDis != -1) {
+        			fillColor = new Color(fill);
+        		}
+        		
+        		Float alpha = Float.valueOf(graphObject.get(6).toString()).floatValue();
+        		
+        		Double x = Double.valueOf(graphObject.get(graphObject.size()-5).toString()).doubleValue();
+        		Double y = Double.valueOf(graphObject.get(graphObject.size()-4).toString()).doubleValue();
+        		Double width = Double.valueOf(graphObject.get(graphObject.size()-3).toString()).doubleValue();
+        		Double height = Double.valueOf(graphObject.get(graphObject.size()-2).toString()).doubleValue();
+        	
+        		SVGGraphics2D svgGenerator_temp = new SVGGraphics2D(svgGenerator);
+        		this.paintEllipse2D(svgGenerator_temp, x, y, width, height, strokeColor, lineWidth, fillColor, alpha);
+        		
+        	} else if (graphType.equals("letter")) {
+        		
+        		String text = graphObject.get(1).toString();
+        		Color fontColor = new Color (Integer.valueOf(graphObject.get(2).toString()).intValue());
+        		Integer fontSize = Integer.valueOf(graphObject.get(3).toString()).intValue();
+        		
+        		String fontStyle = graphObject.get(4).toString();
+        		Integer style = null;
+        		if (fontStyle.equals("plain")) {
+        			style = Font.PLAIN;
+        		} else if (fontStyle.equals("bold")) {
+        			style = Font.BOLD;
+        		} else if (fontStyle.equals("italic")) {
+        			style = Font.ITALIC;
+        		} else if (fontStyle.equals("bolditalic")) {
+        			style = Font.ITALIC+Font.BOLD;
+        		}
+        		
+        		log.debug("fontStyle,style "+style+" fs: "+fontStyle);
+        		
+        		Double x = Double.valueOf(graphObject.get(graphObject.size()-5).toString()).doubleValue();
+        		Double y = Double.valueOf(graphObject.get(graphObject.size()-4).toString()).doubleValue();
+        		Double width = Double.valueOf(graphObject.get(graphObject.size()-3).toString()).doubleValue();
+        		Double height = Double.valueOf(graphObject.get(graphObject.size()-2).toString()).doubleValue();
+        		
+        		SVGGraphics2D svgGenerator_temp = new SVGGraphics2D(svgGenerator);
+        		this.paintTextByWidthHeight(svgGenerator_temp, (int) Math.round(x), (int) Math.round(y), (int) Math.round(width), 
+        					(int) Math.round(height), text, style, fontSize, fontColor);
+        		
+        	} else if (graphType.equals("drawarrow")) {
+        		
+        		Integer thickness = Integer.valueOf(graphObject.get(2).toString()).intValue();
+        		
+        		Integer stroke = Integer.valueOf(graphObject.get(1).toString()).intValue();
+        		Integer strokeDis= Integer.valueOf(graphObject.get(4).toString()).intValue();
+        		
+        		Color strokeColor = null;
+        		if (strokeDis != -1) {
+        			strokeColor = new Color(stroke);
+        		}
+        		
+        		Integer fill = Integer.valueOf(graphObject.get(3).toString()).intValue();
+        		Integer fillDis= Integer.valueOf(graphObject.get(5).toString()).intValue();
+        		
+        		Color fillColor = null;
+        		if (fillDis != -1) {
+        			fillColor = new Color(fill);
+        		}
+        		
+        		Float alpha = Float.valueOf(graphObject.get(6).toString()).floatValue();
+        		
+        		Double x = Double.valueOf(graphObject.get(graphObject.size()-5).toString()).doubleValue();
+        		Double y = Double.valueOf(graphObject.get(graphObject.size()-4).toString()).doubleValue();
+        		//Double width = Double.valueOf(graphObject.get(graphObject.size()-3).toString()).doubleValue();
+        		//Double height = Double.valueOf(graphObject.get(graphObject.size()-2).toString()).doubleValue();
+        		
+        		Double x1 = Double.valueOf(graphObject.get(7).toString()).doubleValue();
+        		Double y1 = Double.valueOf(graphObject.get(8).toString()).doubleValue();
+        		Double x2 = Double.valueOf(graphObject.get(9).toString()).doubleValue();
+        		Double y2 = Double.valueOf(graphObject.get(10).toString()).doubleValue();
+        		
+        		GeomPoint start = new GeomPoint();
+    	        start.setLocation(x+x1,y+y1);
+    	        GeomPoint end = new GeomPoint();
+    	        end.setLocation(x+x2,y+y2);
+    	        
+    	        SVGGraphics2D svgGenerator_temp = new SVGGraphics2D(svgGenerator);
+    	        this.drawArrow(svgGenerator_temp, start, end, thickness, alpha, strokeColor,fillColor);
+        	} else if (graphType.equals("image")) {
+        		
+        		//log.debug("graphObject image "+graphObject);
+        		//log.debug("",graphObject);
+        		
+        		String room = graphObject.get(6).toString();
+        		String parentPath = graphObject.get(5).toString();
+        		String fileItemName = graphObject.get(3).toString();
+        		
+        		File imageFile = new File(OmFileHelper.getUploadDir(), room);
+        		
+        		if (parentPath.length() > 1) {
+        			imageFile = new File(imageFile, parentPath);
+        		}
+        		
+        		//log.debug("fileItemName: "+fileItemName);
+        		
+        		File myFile = new File(imageFile, fileItemName);
+        		
+        		if (myFile.exists() && myFile.canRead()) {
+        			
+        			Image myImage = ImageIO.read(myFile);
+        			
+        			int x = (int) Math.round(Double.valueOf(graphObject.get(graphObject.size()-5).toString()).doubleValue());
+        			int y = (int) Math.round(Double.valueOf(graphObject.get(graphObject.size()-4).toString()).doubleValue());
+        			int width = (int) Math.round(Double.valueOf(graphObject.get(graphObject.size()-3).toString()).doubleValue());
+        			int height = (int) Math.round(Double.valueOf(graphObject.get(graphObject.size()-2).toString()).doubleValue());
+	        		
+	        		SVGGraphics2D svgGenerator_temp = new SVGGraphics2D(svgGenerator);
+	        		svgGenerator_temp.drawImage(myImage, x, y, width, height, null);
+        			
+        		} else {
+        			log.error("tried to inculde a non existing File into SVG/Image Export Path: " + myFile);
+        		}
+        		
+        	} else if(graphType.equals("line") || graphType.equals("uline")) {
+        		
+//        		actionObject[0] = 'line';
+//                actionObject[1] = stroke;
+//                actionObject[2] = line;
+//                actionObject[3] = opacity;
+//                actionObject[4] = x1  
+//                actionObject[5] = y1;  
+//                actionObject[6] = x2;    
+//                actionObject[7] = y2;    
+//                actionObject[8] = this.counter; 
+//                actionObject[9] = x;
+//                actionObject[10] = y;
+//                actionObject[11] = width;
+//                actionObject[12] = height;  
+//                actionObject[13] = newName;
+        		
+    			Integer lineWidth = Integer.valueOf(graphObject.get(2).toString()).intValue();
+        		
+        		Integer stroke = Integer.valueOf(graphObject.get(1).toString()).intValue();
+        		Color strokeColor = new Color(stroke);
+        		
+        		Float alpha = Float.valueOf(graphObject.get(3).toString()).floatValue();
+        		
+        		Double x = Double.valueOf(graphObject.get(graphObject.size()-5).toString()).doubleValue();
+        		Double y = Double.valueOf(graphObject.get(graphObject.size()-4).toString()).doubleValue();
+        		//Double width = Double.valueOf(graphObject.get(graphObject.size()-3).toString()).doubleValue();
+        		//Double height = Double.valueOf(graphObject.get(graphObject.size()-2).toString()).doubleValue();
+
+        		Double x1 = Double.valueOf(graphObject.get(4).toString()).doubleValue();
+        		Double y1 = Double.valueOf(graphObject.get(5).toString()).doubleValue();
+        		Double x2 = Double.valueOf(graphObject.get(6).toString()).doubleValue();
+        		Double y2 = Double.valueOf(graphObject.get(7).toString()).doubleValue();
+        		
+        		SVGGraphics2D svgGenerator_temp = new SVGGraphics2D(svgGenerator);
+        		this.drawLine(svgGenerator_temp, x1, y1, x2, y2, strokeColor, lineWidth, x, y, alpha);
+        		
+        	} else {
+        		log.error("tried to include a non supported Graph-Object graphType: "+graphType);
+        	}
+        	
+        }
+        
+        return svgGenerator;
+	}
+
+}
diff --git a/src/main/java/org/apache/openmeetings/data/user/EmailManager.java b/src/main/java/org/apache/openmeetings/data/user/EmailManager.java
new file mode 100644
index 0000000..b8d08fa
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/user/EmailManager.java
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.data.user;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.mail.MailHandler;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.mail.template.FeedbackTemplate;
+import org.apache.openmeetings.web.mail.template.RegisterUserTemplate;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * @author swagner
+ *
+ */
+public class EmailManager {
+	private static final Logger log = Red5LoggerFactory.getLogger(EmailManager.class, webAppRootKey);
+
+	@Autowired
+	private ConfigurationDao configurationDao;
+	@Autowired
+	private MailHandler mailHandler;
+
+	/**
+	 * sends a mail adress to the user with his account data
+	 * 
+	 * @param username
+	 * @param userpass
+	 * @param email
+	 * @return
+	 * @throws Exception
+	 */
+	public String sendMail(String username, String userpass, String email, String link, Boolean sendEmailWithVerficationCode) {
+		log.debug("sendMail:: username = {}, email = {}", username, email);
+		Integer sendEmailAtRegister = configurationDao.getConfValue("sendEmailAtRegister", Integer.class, "0");
+
+		if (sendEmailAtRegister == 1) {
+			mailHandler.send(email, WebSession.getString(512)
+				, RegisterUserTemplate.getEmail(username, userpass, email, sendEmailWithVerficationCode ? link : null));
+		}
+		return "success";
+	}
+
+	//FIXME, seems to be not used
+	public void sendFeedback(String username, String email, String message) {
+		mailHandler.send("user@openmeetings.apache.org", WebSession.getString(499), FeedbackTemplate.getEmail(username, email, message));
+	}
+	
+	public String addEmailCon(String EMail, int CONTACT_ID) {
+		String succ = "invalid email";
+		return succ;
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/data/user/OrganisationManager.java b/src/main/java/org/apache/openmeetings/data/user/OrganisationManager.java
new file mode 100644
index 0000000..90050e1
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/user/OrganisationManager.java
@@ -0,0 +1,614 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.data.user;
+
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+
+import org.apache.openmeetings.db.dao.user.OrganisationDao;
+import org.apache.openmeetings.db.dao.user.OrganisationUserDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.dto.basic.SearchResult;
+import org.apache.openmeetings.db.entity.user.Organisation;
+import org.apache.openmeetings.db.entity.user.Organisation_Users;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.util.AuthLevelUtil;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 
+ * @author swagner
+ * 
+ */
+@Transactional
+public class OrganisationManager {
+
+	private static Logger log = Red5LoggerFactory
+			.getLogger(OrganisationManager.class,
+					OpenmeetingsVariables.webAppRootKey);
+
+	@PersistenceContext
+	private EntityManager em;
+	@Autowired
+	private UserDao usersDao;
+	@Autowired
+	private OrganisationDao orgDao;
+	@Autowired
+	private OrganisationUserDao orgUserDao;
+
+	/**
+	 * adds a new organisation to the table organisation
+	 * 
+	 * @param titelname
+	 * @param user_id
+	 */
+	public Long addOrganisation(String orgname, long user_id) {
+		try {
+			Organisation org = new Organisation();
+			org.setName(orgname);
+			org.setInsertedby(new Long(user_id));
+			org.setDeleted(false);
+			org.setStarttime(new Date());
+			org = em.merge(org);
+
+			long id = org.getOrganisation_id();
+			return id;
+		} catch (Exception ex2) {
+			log.error("[addOrganisation]", ex2);
+		}
+		return null;
+	}
+
+	public Long addOrganisationObj(Organisation org) {
+		try {
+			org.setStarttime(new Date());
+			org = em.merge(org);
+			long id = org.getOrganisation_id();
+			return id;
+		} catch (Exception ex2) {
+			log.error("[addOrganisationObj]", ex2);
+		}
+		return null;
+	}
+
+	public List<Organisation> getOrganisations(Long user_level) {
+		try {
+			if (AuthLevelUtil.checkAdminLevel(user_level)) {
+				CriteriaBuilder cb = em.getCriteriaBuilder();
+				CriteriaQuery<Organisation> cq = cb
+						.createQuery(Organisation.class);
+				Root<Organisation> c = cq.from(Organisation.class);
+				Predicate condition = cb.equal(c.get("deleted"), false);
+				cq.where(condition);
+				TypedQuery<Organisation> q = em.createQuery(cq);
+				List<Organisation> ll = q.getResultList();
+				return ll;
+			} else {
+				log.error("[getOrganisations] noPremission");
+			}
+		} catch (Exception ex2) {
+			log.error("[getOrganisations]", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * checks if a user is already stored
+	 * 
+	 * @param userIdToAdd
+	 * @param usersStored
+	 * @return
+	 * @throws Exception
+	 */
+	private boolean checkUserAlreadyStored(Long userIdToAdd, List<?> usersStored)
+			throws Exception {
+		for (Iterator<?> it2 = usersStored.iterator(); it2.hasNext();) {
+			User us = (User) it2.next();
+			if (us.getUser_id().equals(userIdToAdd)) {
+				log.debug("userIdToAdd found: " + userIdToAdd);
+				return true;
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * 
+	 * @param user_id
+	 * @param usersToStore
+	 * @return
+	 * @throws Exception
+	 */
+	private boolean checkUserShouldBeStored(Long user_id,
+			@SuppressWarnings("rawtypes") LinkedHashMap usersToStore)
+			throws Exception {
+		for (Iterator<?> it2 = usersToStore.keySet().iterator(); it2.hasNext();) {
+			Integer key = (Integer) it2.next();
+			Long usersIdToCheck = Long
+					.valueOf(usersToStore.get(key).toString()).longValue();
+			log.debug("usersIdToCheck: " + usersIdToCheck);
+			if (user_id.equals(usersIdToCheck)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * TODO
+	 * 
+	 * @param org
+	 * @param users
+	 * @return
+	 */
+	@SuppressWarnings({ "unused", "rawtypes" })
+	private Long updateOrganisationUsersByHashMap(Organisation org,
+			LinkedHashMap users, long insertedby) {
+		try {
+			LinkedList<Long> usersToAdd = new LinkedList<Long>();
+			LinkedList<Long> usersToDel = new LinkedList<Long>();
+
+			List usersStored = this.getUsersByOrganisationId(org
+					.getOrganisation_id());
+
+			for (Iterator it = users.keySet().iterator(); it.hasNext();) {
+				Integer key = (Integer) it.next();
+				Long userIdToAdd = Long.valueOf(users.get(key).toString())
+						.longValue();
+				log.debug("userIdToAdd: " + userIdToAdd);
+				if (!this.checkUserAlreadyStored(userIdToAdd, usersStored))
+					usersToAdd.add(userIdToAdd);
+			}
+
+			for (Iterator it = usersStored.iterator(); it.hasNext();) {
+				User us = (User) it.next();
+				Long userIdStored = us.getUser_id();
+				log.debug("userIdStored: " + userIdStored);
+				if (!this.checkUserShouldBeStored(userIdStored, users))
+					usersToDel.add(userIdStored);
+			}
+
+			log.debug("usersToAdd.size " + usersToAdd.size());
+			log.debug("usersToDel.size " + usersToDel.size());
+
+			for (Iterator<Long> it = usersToAdd.iterator(); it.hasNext();) {
+				Long user_id = it.next();
+				this.addUserToOrganisation(user_id, org.getOrganisation_id(),
+						insertedby);
+			}
+
+			for (Iterator<Long> it = usersToDel.iterator(); it.hasNext();) {
+				Long user_id = it.next();
+				this.deleteUserFromOrganisation(new Long(3), user_id,
+						org.getOrganisation_id());
+			}
+
+		} catch (Exception err) {
+			log.error("updateOrganisationUsersByHashMap", err);
+		}
+		return null;
+	}
+
+	/**
+	 * Gets an organisation by its id
+	 * 
+	 * @param organisation_id
+	 * @return
+	 */
+	public Organisation getOrganisationById(long organisation_id) {
+		return orgDao.get(organisation_id);
+	}
+
+	public Organisation getOrganisationByIdBackup(long organisation_id) {
+		try {
+			TypedQuery<Organisation> query = em.createNamedQuery("getAnyOrganisationById", Organisation.class);
+			query.setParameter("organisation_id", organisation_id);
+			Organisation o = null;
+			try {
+				o = query.getSingleResult();
+			} catch (NoResultException e) {
+				// o = null;
+			}
+			return o;
+		} catch (Exception ex2) {
+			log.error("[getOrganisationById]", ex2);
+		}
+		return null;
+	}
+
+	public Organisation getOrganisationByIdAndDeleted(long organisation_id) {
+		return getOrganisationByIdBackup(organisation_id);
+	}
+
+	/**
+	 * Adds a user to a given organisation-unit
+	 * 
+	 * @param user_id
+	 * @param organisation_id
+	 * @param insertedby
+	 * @return
+	 */
+	public Long addUserToOrganisation(Long user_id, Long organisation_id,
+			Long insertedby) {
+		try {
+			if (this.getOrganisation_UserByUserAndOrganisation(user_id, organisation_id) == null) {
+				return addOrganisationUserObj(user_id,
+						getOrgUser(organisation_id, insertedby));
+			} else {
+				return -35L;
+			}
+		} catch (Exception ex2) {
+			log.error("[addUserToOrganisation]", ex2);
+		}
+		return null;
+	}
+	
+	public Organisation_Users getOrgUser(Long organisation_id, Long insertedby) {
+		
+		Organisation_Users orgUser = new Organisation_Users(
+				orgDao.get(organisation_id));
+		orgUser.setDeleted(false);
+		
+		return orgUser;
+	}
+	
+	public Long addOrganisationUserObj(Long user_id, Organisation_Users orgUser) {
+		try {
+			User u = usersDao.get(user_id);
+			
+			orgUser.setStarttime(new Date());
+			orgUser = em.merge(orgUser);
+
+			//user should be updated to have recent organisation_users list
+			List<Organisation_Users> l = u.getOrganisation_users();
+			l.add(orgUser);
+			u.setOrganisation_users(l);
+			usersDao.update(u, -1L);
+			
+			return orgUser.getOrganisation_users_id();
+		} catch (Exception ex2) {
+			log.error("[addUserToOrganisation]", ex2);
+		}
+		return null;
+	}
+
+	public Organisation_Users getOrganisation_UserByUserAndOrganisation(
+			long user_id, long organisation_id) {
+		try {
+			log.debug("getOrganisation_UserByUserAndOrganisation " + user_id
+					+ "  " + organisation_id);
+
+			TypedQuery<Organisation_Users> q = em.createNamedQuery("getOrganisation_UserByUserAndOrganisation", Organisation_Users.class);
+			q.setParameter("organisation_id", organisation_id);
+			q.setParameter("user_id", user_id);
+			List<Organisation_Users> oul = q.getResultList();
+			return oul.size() > 0 ? oul.get(0) : null;
+		} catch (Exception ex2) {
+			log.error("[getOrganisation_UserByUserAndOrganisation]", ex2);
+		}
+		return null;
+	}
+
+	public Long deleteUserFromOrganisation(Long user_level, long user_id,
+			long organisation_id) {
+		try {
+			if (AuthLevelUtil.checkAdminLevel(user_level)) {
+
+				log.error("deleteUserFromOrganisation " + user_id + "  "
+						+ organisation_id);
+				//user should be updated to have recent organisation_users list
+				Long id = null;
+				User u = usersDao.get(user_id);
+				List<Organisation_Users> l = u.getOrganisation_users();
+				for (Organisation_Users ou : l) {
+					if (ou.getOrganisation().getOrganisation_id().equals(organisation_id)) {
+						l.remove(ou);
+						id = ou.getOrganisation_users_id();
+						em.remove(ou);
+						break;
+					}
+				}
+				u.setOrganisation_users(l);
+				usersDao.update(u, -1L);
+
+				return id;
+			} else {
+				log.error("[deleteUserFromOrganisation] authorization required");
+			}
+		} catch (Exception ex2) {
+			log.error("[deleteuserFromOrganisation]", ex2);
+		}
+		return null;
+	}
+
+	public SearchResult<User> getUsersSearchResultByOrganisationId(
+			long organisation_id, int start, int max, String orderby,
+			boolean asc) {
+		try {
+
+			SearchResult<User> sResult = new SearchResult<User>();
+			sResult.setObjectName(User.class.getName());
+			sResult.setRecords(orgUserDao.count(organisation_id));
+			sResult.setResult(getUsersByOrganisationId(organisation_id,
+					start, max, orderby, asc));
+			return sResult;
+
+		} catch (Exception ex2) {
+			log.error("[getUsersSearchResultByOrganisationId]", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * get a list of all users of an organisation
+	 * 
+	 * @param user_level
+	 * @param organisation_id
+	 * @param start
+	 * @param max
+	 * @param orderby
+	 * @param asc
+	 * @return
+	 */
+	public List<User> getUsersByOrganisationId(long organisation_id, int start,
+			int max, String orderby, boolean asc) {
+		try {
+			String hql =
+				"SELECT c FROM "
+				+ "User c "
+				+ ", IN(c.organisation_users) ou "
+				+ "WHERE c.deleted = false AND ou.organisation.organisation_id = :organisation_id ";
+			if (orderby.startsWith("c.")) {
+				hql += "ORDER BY " + orderby;
+			} else {
+				hql += "ORDER BY " + "c." + orderby;
+			}
+			if (asc) {
+				hql += " ASC";
+			} else {
+				hql += " DESC";
+			}
+
+			TypedQuery<User> q = em.createQuery(hql, User.class);
+			q.setParameter("organisation_id", organisation_id);
+			q.setFirstResult(start);
+			q.setMaxResults(max);
+
+			List<User> userL = q.getResultList();
+			return userL;
+		} catch (Exception ex2) {
+			log.error("[getUsersByOrganisationId]", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 * @param organisation_id
+	 * @return
+	 */
+	public List<User> getUsersByOrganisationId(long organisation_id) {
+		try {
+
+			// get all users
+			TypedQuery<User> q = em.createNamedQuery("getUsersByOrganisationId", User.class);
+			q.setParameter("organisation_id", organisation_id);
+			List<User> userL = q.getResultList();
+			Collections.sort(userL, new UsersLoginComparator());
+			return userL;
+
+		} catch (Exception ex2) {
+			log.error("[getUsersByOrganisationId]", ex2);
+		}
+		return null;
+	}
+
+	class UsersLoginComparator implements Comparator<User> {
+		public int compare(User o1, User o2) {
+			if (o1 == null || o2 == null)
+				return 0;
+
+			return o1.getLogin().compareTo(o2.getLogin());
+		}
+	}
+
+	/**
+	 * Filter all Organisations by user TODO: Add sorting
+	 * 
+	 * @param user_level
+	 * @param users_id
+	 * @param start
+	 * @param max
+	 * @param orderby
+	 * @return
+	 */
+	public List<Organisation> getOrganisationsByUserId(long user_level,
+			long user_id, int start, int max, String orderby, boolean asc) {
+		try {
+			if (AuthLevelUtil.checkAdminLevel(user_level)) {
+				TypedQuery<Organisation> q = em.createNamedQuery("getOrganisationsByUserId", Organisation.class);
+				q.setParameter("user_id", user_id);
+				q.setFirstResult(start);
+				q.setMaxResults(max);
+
+				List<Organisation> userOrg = q.getResultList();
+
+				return userOrg;
+			}
+		} catch (Exception ex2) {
+			log.error("[getOrganisationsByUserId]", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 * @param user_level
+	 * @param user_id
+	 * @param start
+	 * @param max
+	 * @param orderby
+	 * @param asc
+	 * @return
+	 */
+	public List<Organisation> getRestOrganisationsByUserId(long user_level,
+			long user_id, int start, int max, String orderby, boolean asc) {
+		try {
+			if (AuthLevelUtil.checkAdminLevel(user_level)) {
+				String qSQL =
+					"SELECT o FROM Organisation AS o "
+					+ "WHERE o.organisation_id NOT IN ("
+					+ "	SELECT ou.organisation.organisation_id "
+					+ "	FROM User u, IN(u.organisation_users) ou WHERE u.deleted = false AND u.user_id = :user_id)";
+				TypedQuery<Organisation> q = em.createQuery(qSQL, Organisation.class);
+				q.setParameter("user_id", user_id);
+				q.setFirstResult(start);
+				q.setMaxResults(max);
+				return q.getResultList();
+			}
+		} catch (Exception ex2) {
+			log.error("[getRestOrganisationsByUserId]", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * checks if the orgId is in the list of orgIds which have been send as
+	 * organisations
+	 * 
+	 * @param orgId
+	 * @param org
+	 * @return
+	 * @throws Exception
+	 */
+	private boolean checkOrgInList(Long orgId, List<Long> org) throws Exception {
+		return org != null && org.contains(orgId);
+	}
+
+	/**
+	 * checks if an orgId is already stored in the Users Organisations Object
+	 * 
+	 * @param orgId
+	 * @param org
+	 * @return
+	 * @throws Exception
+	 */
+	private boolean checkOrgInStoredList(long orgId, List<Organisation_Users> org) throws Exception {
+		// log.debug("checkOrgInStoredList "+orgId);
+		for (Organisation_Users orgUsers : org) {
+			// log.debug("checkOrgInStoredList 2 "+orgUsers.getOrganisation().getOrganisation_id());
+			if (orgUsers.getOrganisation().getOrganisation_id().equals(orgId)) {
+				// log.debug("checkOrgInStoredList 3 found");
+				return true;
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * updates users-organisations by a given params
+	 * 
+	 * @param us
+	 * @param organisations
+	 * @return
+	 */
+	//FIXME need to refactor
+	public Long updateUserOrganisationsByUser(User us, List<Long> organisations) {
+		try {
+			LinkedList<Long> orgIdsToAdd = new LinkedList<Long>();
+			LinkedList<Long> orgIdsToDelete = new LinkedList<Long>();
+
+			if (us.getOrganisation_users() != null) {
+				for (Long orgIdToAdd : organisations) {
+					boolean isAlreadyStored = this.checkOrgInStoredList(
+							orgIdToAdd, us.getOrganisation_users());
+					if (!isAlreadyStored)
+						orgIdsToAdd.add(orgIdToAdd);
+				}
+
+				for (Organisation_Users orgUsers : us.getOrganisation_users()) {
+					Long orgIdStored = orgUsers.getOrganisation()
+							.getOrganisation_id();
+					// log.error("updateUserOrganisationsByUser check1 : "+orgIdStored);
+					boolean shouldBeStored = this.checkOrgInList(orgIdStored,
+							organisations);
+					if (!shouldBeStored)
+						orgIdsToDelete.add(orgIdStored);
+				}
+
+				// log.error("updateUserOrganisationsByUser size ADD: "+orgIdsToAdd.size());
+				for (Long orgToAdd : orgIdsToAdd) {
+					this.addUserToOrganisation(us.getUser_id(), orgToAdd,
+							us.getUser_id());
+				}
+
+				// log.error("updateUserOrganisationsByUser size DELETE: "+orgIdsToDelete.size());
+				for (Long orgToDel : orgIdsToDelete) {
+					this.deleteUserFromOrganisation(new Long(3),
+							us.getUser_id(), orgToDel);
+				}
+			}
+		} catch (Exception err) {
+			log.error("[updateUserOrganisationsByUser] ", err);
+		}
+		return null;
+	}
+
+	/**
+	 * adds all send organisations to this User-Object (for newly
+	 * registered/created Users)
+	 * 
+	 * @param us
+	 * @param org
+	 * @return
+	 */
+	@SuppressWarnings("rawtypes")
+	public Long addUserOrganisationsByHashMap(long us, List org) {
+		try {
+			if (org != null) {
+				for (Iterator it = org.iterator(); it.hasNext();) {
+					Integer key = (Integer) it.next();
+					Long newOrgId = key.longValue();
+					this.addUserToOrganisation(us, newOrgId, new Long(1));
+				}
+			}
+		} catch (Exception ex) {
+			log.error("addUserOrganisationsByHashMap", ex);
+		}
+		return null;
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/data/user/UserManager.java b/src/main/java/org/apache/openmeetings/data/user/UserManager.java
new file mode 100644
index 0000000..c1750b4
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/user/UserManager.java
@@ -0,0 +1,1164 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.data.user;
+
+import static org.apache.openmeetings.db.util.UserHelper.getMinLoginLength;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_SOAP_REGISTER_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.TimeZone;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.NonUniqueResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+
+import org.apache.openmeetings.data.basic.FieldManager;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.server.ISessionManager;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.dao.user.IUserManager;
+import org.apache.openmeetings.db.dao.user.StateDao;
+import org.apache.openmeetings.db.dto.basic.SearchResult;
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.db.entity.server.Sessiondata;
+import org.apache.openmeetings.db.entity.user.Address;
+import org.apache.openmeetings.db.entity.user.Organisation_Users;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.Userdata;
+import org.apache.openmeetings.db.entity.user.Userlevel;
+import org.apache.openmeetings.db.util.TimezoneUtil;
+import org.apache.openmeetings.mail.MailHandler;
+import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
+import org.apache.openmeetings.remote.util.SessionVariablesUtil;
+import org.apache.openmeetings.util.AuthLevelUtil;
+import org.apache.openmeetings.util.CalendarPatterns;
+import org.apache.openmeetings.util.DaoHelper;
+import org.apache.openmeetings.util.crypt.ManageCryptStyle;
+import org.red5.logging.Red5LoggerFactory;
+import org.red5.server.api.IClient;
+import org.red5.server.api.scope.IScope;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 
+ * @author swagner
+ * 
+ */
+@Transactional
+public class UserManager implements IUserManager {
+	private static final Logger log = Red5LoggerFactory.getLogger(UserManager.class, webAppRootKey);
+
+	@PersistenceContext
+	private EntityManager em;
+
+	@Autowired
+	private SessiondataDao sessiondataDao;
+	@Autowired
+	private ConfigurationDao configurationDao;
+	@Autowired
+	private FieldManager fieldManager;
+	@Autowired
+	private StateDao statemanagement;
+	@Autowired
+	private OrganisationManager organisationManager;
+	@Autowired
+	private AdminUserDao usersDao;
+	@Autowired
+	private EmailManager emailManagement;
+	@Autowired
+	private ScopeApplicationAdapter scopeApplicationAdapter;
+	@Autowired
+	private MailHandler mailHandler;
+	@Autowired
+	private ISessionManager sessionManager;
+	@Autowired
+	private TimezoneUtil timezoneUtil;
+
+	/**
+	 * query for a list of users
+	 * 
+	 * @param users_id
+	 * @param user_level
+	 * @param start
+	 * @param max
+	 * @param orderby
+	 * @return
+	 */
+	public SearchResult<User> getUsersList(long user_level, int start, int max,
+			String orderby, boolean asc) {
+		try {
+			if (AuthLevelUtil.checkAdminLevel(user_level)) {
+				SearchResult<User> sresult = new SearchResult<User>();
+				sresult.setObjectName(User.class.getName());
+				sresult.setRecords(usersDao.count());
+
+				// get all users
+				CriteriaBuilder cb = em.getCriteriaBuilder();
+				CriteriaQuery<User> cq = cb.createQuery(User.class);
+				Root<User> c = cq.from(User.class);
+				Predicate condition = cb.equal(c.get("deleted"), false);
+				cq.where(condition);
+				cq.distinct(asc);
+				if (asc) {
+					cq.orderBy(cb.asc(c.get(orderby)));
+				} else {
+					cq.orderBy(cb.desc(c.get(orderby)));
+				}
+				TypedQuery<User> q = em.createQuery(cq);
+				q.setFirstResult(start);
+				q.setMaxResults(max);
+				List<User> ll = q.getResultList();
+				sresult.setResult(ll);
+				return sresult;
+			}
+		} catch (Exception ex2) {
+			log.error("[getUsersList] " + ex2);
+		}
+		return null;
+	}
+
+	public SearchResult<User> getAllUserByRange(String search, int start, int max,
+			String orderby, boolean asc) {
+		try {
+			SearchResult<User> sresult = new SearchResult<User>();
+			sresult.setObjectName(User.class.getName());
+			sresult.setRecords(usersDao.count(search));
+
+			String sort = null;
+			if (orderby != null && orderby.length() > 0) {
+				sort = orderby;
+			}
+			if (asc) {
+				sort += " ASC ";
+			} else {
+				sort += " DESC ";
+			}
+			String hql = DaoHelper.getSearchQuery("User", "u", search, true, false, sort, AdminUserDao.searchFields);
+
+			log.debug("Show HQL: " + hql);
+
+			TypedQuery<User> query = em.createQuery(hql, User.class);
+			// query.setParameter("macomUserId", userId);
+
+			// query
+			// if (asc) ((Criteria) query).addOrder(Order.asc(orderby));
+			// else ((Criteria) query).addOrder(Order.desc(orderby));
+			query.setFirstResult(start);
+			query.setMaxResults(max);
+			List<User> ll = query.getResultList();
+
+			sresult.setResult(ll);
+
+			return sresult;
+
+		} catch (Exception ex2) {
+			log.error("[getAllUserByRange] ", ex2);
+			ex2.printStackTrace();
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 * @param user_level
+	 * @param user_id
+	 * @return
+	 */
+	public User checkAdmingetUserById(long user_level, long user_id) {
+		// FIXME: We have to check here for the User only cause the
+		// Org-Moderator otherwise cannot access it
+		if (AuthLevelUtil.checkUserLevel(user_level)) {
+			return usersDao.get(user_id);
+		}
+		return null;
+	}
+
+	public List<User> getUserByMod(Long user_level, long user_id) {
+		return null;
+	}
+
+	/**
+	 * login logic
+	 * 
+	 * @param SID
+	 * @param Username
+	 * @param Userpass
+	 * @return
+	 */
+	public Object loginUser(String SID, String userOrEmail, String userpass,
+			Client currentClient, IClient client, Boolean storePermanent) {
+		try {
+			log.debug("Login user SID : " + SID + " Stored Permanent: " + storePermanent);
+			String hql = "SELECT c from User AS c "
+					+ "WHERE "
+					+ "(c.login LIKE :userOrEmail OR c.adresses.email LIKE :userOrEmail  ) "
+					+ "AND c.deleted <> :deleted";
+
+			TypedQuery<User> query = em.createQuery(hql, User.class);
+			query.setParameter("userOrEmail", userOrEmail);
+			query.setParameter("deleted", true);
+
+			List<User> ll = query.getResultList();
+
+			log.debug("debug SIZE: " + ll.size());
+
+			if (ll.size() == 0) {
+				return new Long(-10);
+			} else {
+				User users = ll.get(0);
+
+				// Refresh User Object
+				users = refreshUserObject(users);
+
+				if (usersDao.verifyPassword(users.getUser_id(), userpass)) {
+					Boolean bool = sessiondataDao.updateUser(SID, users.getUser_id(), storePermanent, users.getLanguage_id());
+					if (bool == null) {
+						// Exception
+						return new Long(-1);
+					} else if (!bool) {
+						// invalid Session-Object
+						return new Long(-35);
+					}
+
+					// Check if activated
+					if (users.getStatus() != null && users.getStatus().equals(0)) {
+						return -41L;
+					}
+
+					users.setUserlevel(getUserLevel(users.getLevel_id()));
+					updateLastLogin(users);
+					// If invoked via SOAP this is NULL
+					if (currentClient != null) {
+						currentClient.setUser_id(users.getUser_id());
+						SessionVariablesUtil.setUserId(client, users.getUser_id());
+					}
+
+					log.debug("loginUser " + users.getOrganisation_users());
+					if (!users.getOrganisation_users().isEmpty()) {
+						log.debug("loginUser size " + users.getOrganisation_users().size());
+					} else {
+						throw new Exception("No Organization assigned to user");
+					}
+
+					return users;
+				} else {
+					return new Long(-11);
+				}
+			}
+
+		} catch (Exception ex2) {
+			log.error("[loginUser]: ", ex2);
+		}
+		return new Long(-1);
+	}
+
+	public User refreshUserObject(User us) {
+		try {
+
+			us = em.merge(us);
+			return us;
+		} catch (Exception ex2) {
+			log.error("[loginUser]: ", ex2);
+		}
+		return null;
+	}
+
+	public User loginUserByRemoteHash(String SID, String remoteHash) {
+		try {
+
+			Sessiondata sessionData = sessiondataDao
+					.getSessionByHash(remoteHash);
+
+			if (sessionData != null) {
+
+				User u = getUserById(sessionData.getUser_id());
+
+				sessiondataDao.updateUserWithoutSession(SID, u.getUser_id());
+
+				return u;
+			}
+
+		} catch (Exception ex2) {
+			log.error("[loginUserByRemoteHash]: ", ex2);
+		}
+		return null;
+	}
+
+	public Long logout(String SID, long USER_ID) {
+		sessiondataDao.updateUser(SID, 0, false, null);
+		return new Long(-12);
+	}
+
+	private void updateLastLogin(User us) {
+		try {
+			us.setLastlogin(new Date());
+			if (us.getUser_id() == null) {
+				em.persist(us);
+			} else {
+				if (!em.contains(us)) {
+					em.merge(us);
+				}
+			}
+		} catch (Exception ex2) {
+			log.error("updateLastLogin", ex2);
+		}
+	}
+
+	public List<Userdata> getUserdataDashBoard(Long user_id) {
+		if (user_id.longValue() > 0) {
+			try {
+				TypedQuery<Userdata> query = em
+						.createQuery("select c from Userdata as c where c.user_id = :user_id AND c.deleted <> :deleted", Userdata.class);
+				query.setParameter("user_id", user_id.longValue());
+				query.setParameter("deleted", true);
+				List<Userdata> ll = query.getResultList();
+				return ll;
+			} catch (Exception ex2) {
+				log.error("getUserdataDashBoard", ex2);
+			}
+		}
+		return null;
+	}
+
+	public Userdata getUserdataByKey(Long user_id, String DATA_KEY) {
+		Userdata userdata = new Userdata();
+		if (user_id.longValue() > 0) {
+			try {
+				TypedQuery<Userdata> query = em
+						.createQuery("select c from Userdata as c where c.user_id = :user_id AND c.data_key = :data_key AND c.deleted <> :deleted", Userdata.class);
+				query.setParameter("user_id", user_id.longValue());
+				query.setParameter("data_key", DATA_KEY);
+				query.setParameter("deleted", true);
+				for (Iterator<Userdata> it2 = query.getResultList().iterator(); it2
+						.hasNext();) {
+					userdata = it2.next();
+				}
+			} catch (Exception ex2) {
+				log.error("getUserdataByKey", ex2);
+			}
+		} else {
+			userdata.setComment("Error: No USER_ID given");
+		}
+		return userdata;
+	}
+
+	public String updateUserdata(int DATA_ID, long USER_ID, String DATA_KEY,
+			String DATA, String Comment) {
+		String res = "Fehler beim Update";
+		try {
+			String hqlUpdate = "update userdata set DATA_KEY= :DATA_KEY, USER_ID = :USER_ID, DATA = :DATA, updatetime = :updatetime, comment = :Comment where DATA_ID= :DATA_ID";
+			int updatedEntities = em.createQuery(hqlUpdate)
+					.setParameter("DATA_KEY", DATA_KEY)
+					.setParameter("USER_ID", USER_ID)
+					.setParameter("DATA", DATA)
+					.setParameter("updatetime", new Long(-1))
+					.setParameter("Comment", Comment)
+					.setParameter("DATA_ID", DATA_ID).executeUpdate();
+			res = "Success" + updatedEntities;
+		} catch (Exception ex2) {
+			log.error("updateUserdata", ex2);
+		}
+		return res;
+	}
+
+	public String updateUserdataByKey(Long USER_ID, String DATA_KEY,
+			String DATA, String Comment) {
+		String res = "Fehler beim Update";
+		try {
+			String hqlUpdate = "UPDATE Userdata set data = :data, updatetime = :updatetime, "
+					+ "comment = :comment where user_id= :user_id AND data_key = :data_key";
+			int updatedEntities = em.createQuery(hqlUpdate)
+					.setParameter("data", DATA)
+					.setParameter("updatetime", new Long(-1))
+					.setParameter("comment", Comment)
+					.setParameter("user_id", USER_ID.longValue())
+					.setParameter("data_key", DATA_KEY).executeUpdate();
+			res = "Success" + updatedEntities;
+		} catch (Exception ex2) {
+			log.error("updateUserdataByKey", ex2);
+		}
+		return res;
+	}
+
+	public String addUserdata(long USER_ID, String DATA_KEY, String DATA,
+			String Comment) {
+		String ret = "Fehler beim speichern der Userdata";
+		Userdata userdata = new Userdata();
+		userdata.setData_key(DATA_KEY);
+		userdata.setData(DATA);
+		userdata.setStarttime(new Date());
+		userdata.setUpdatetime(null);
+		userdata.setComment(Comment);
+		userdata.setUser_id(new Long(USER_ID));
+		userdata.setDeleted(false);
+		try {
+			userdata = em.merge(userdata);
+			ret = "success";
+		} catch (Exception ex2) {
+			log.error("addUserdata", ex2);
+		}
+		return ret;
+	}
+
+	private Userlevel getUserLevel(Long level_id) {
+		Userlevel userlevel = new Userlevel();
+		try {
+			TypedQuery<Userlevel> query = em
+					.createQuery("select c from Userlevel as c where c.level_id = :level_id AND c.deleted <> :deleted", Userlevel.class);
+			query.setParameter("level_id", level_id.longValue());
+			query.setParameter("deleted", true);
+			for(Iterator<Userlevel> it2 = query.getResultList().iterator(); it2
+					.hasNext();) {
+				userlevel = it2.next();
+			}
+		} catch (Exception ex2) {
+			log.error("[getUserLevel]", ex2);
+		}
+		return userlevel;
+	}
+
+	/**
+	 * get user-role 1 - user 2 - moderator 3 - admin
+	 * 
+	 * @param user_id
+	 * @return
+	 */
+	public Long getUserLevelByID(Long user_id) {
+
+		try {
+			if (user_id == null)
+				return new Long(0);
+			// For direct access of linked users
+			if (user_id == -1) {
+				return new Long(1);
+			}
+
+			TypedQuery<User> query = em
+					.createQuery("select c from User as c where c.user_id = :user_id AND c.deleted <> true", User.class);
+			query.setParameter("user_id", user_id);
+			User us = null;
+			try {
+				us = query.getSingleResult();
+			} catch (NoResultException e) {
+				// u=null}
+			}
+
+			if (us != null) {
+				return us.getLevel_id();
+			} else {
+				return -1L;
+			}
+		} catch (Exception ex2) {
+			log.error("[getUserLevelByID]", ex2);
+		}
+		return null;
+	}
+
+	public Long getUserLevelByIdAndOrg(Long user_id, Long organisation_id) {
+
+		try {
+			if (user_id == null)
+				return new Long(0);
+			// For direct access of linked users
+			if (user_id == -1) {
+				return new Long(1);
+			}
+
+			TypedQuery<User> query = em
+					.createQuery("select c from User as c where c.user_id = :user_id AND c.deleted <> true", User.class);
+			query.setParameter("user_id", user_id);
+			User us = null;
+			try {
+				us = query.getSingleResult();
+			} catch (NoResultException e) {
+				// u=null}
+			}
+
+			if (us != null) {
+
+				if (us.getLevel_id() > 2) {
+					return us.getLevel_id();
+				} else {
+
+					log.debug("user_id, organisation_id" + user_id + ", "
+							+ organisation_id);
+
+					Organisation_Users ou = organisationManager
+							.getOrganisation_UserByUserAndOrganisation(user_id,
+									organisation_id);
+
+					log.debug("ou: " + ou);
+
+					if (ou != null) {
+						if (ou.getIsModerator() != null && ou.getIsModerator()) {
+							return 2L;
+						} else {
+							return us.getLevel_id();
+						}
+					} else {
+						return us.getLevel_id();
+					}
+				}
+
+			} else {
+				return -1L;
+			}
+		} catch (Exception ex2) {
+			log.error("[getUserLevelByID]", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * Method to register a new User, User will automatically be added to the
+	 * default user_level(1) new users will be automatically added to the
+	 * Organisation with the id specified in the configuration value
+	 * default_domain_id
+	 * 
+	 * @param user_level
+	 * @param level_id
+	 * @param availible
+	 * @param status
+	 * @param login
+	 * @param Userpass
+	 * @param lastname
+	 * @param firstname
+	 * @param email
+	 * @param age
+	 * @param street
+	 * @param additionalname
+	 * @param fax
+	 * @param zip
+	 * @param states_id
+	 * @param town
+	 * @param language_id
+	 * @return
+	 */
+	public Long registerUser(String login, String Userpass, String lastname,
+			String firstname, String email, Date age, String street,
+			String additionalname, String fax, String zip, long states_id,
+			String town, long language_id, String phone, boolean sendSMS, boolean generateSipUserData, String jNameTimeZone) {
+		
+		String baseURL = configurationDao.getBaseUrl();
+		boolean sendConfirmation = baseURL != null
+				&& !baseURL.isEmpty()
+				&& 1 == configurationDao.getConfValue(
+						"sendEmailWithVerficationCode", Integer.class, "0");
+		
+		return registerUser(login, Userpass, lastname, firstname, email, age,
+				street, additionalname, fax, zip, states_id, town, language_id,
+				phone, sendSMS, generateSipUserData, jNameTimeZone, sendConfirmation);
+	}
+
+	public Long registerUserNoEmail(String login, String Userpass,
+			String lastname, String firstname, String email, Date age,
+			String street, String additionalname, String fax, String zip,
+			long states_id, String town, long language_id, String phone, boolean sendSMS, 
+			boolean generateSipUserData, String jNameTimeZone) {
+		
+		return registerUser(login, Userpass, lastname, firstname, email, age,
+				street, additionalname, fax, zip, states_id, town, language_id,
+				phone, sendSMS, generateSipUserData, jNameTimeZone, false);
+	}
+
+	private Long registerUser(String login, String Userpass, String lastname,
+			String firstname, String email, Date age, String street,
+			String additionalname, String fax, String zip, long states_id,
+			String town, long language_id, String phone, boolean sendSMS,
+			boolean generateSipUserData, String jNameTimeZone, Boolean sendConfirmation) {
+		try {
+			// Checks if FrontEndUsers can register
+			if ("1".equals(configurationDao.getConfValue(CONFIG_SOAP_REGISTER_KEY, String.class, "0"))) {
+				
+				// TODO: Read and generate SIP-Data via RPC-Interface Issue 1098
+
+				Long user_id = this.registerUserInit(3, 1, 0, 1, login,
+						Userpass, lastname, firstname, email, age, street,
+						additionalname, fax, zip, states_id, town, language_id,
+						true, Arrays.asList(configurationDao.getConfValue(
+								"default_domain_id", Long.class, null)), phone,
+						sendSMS, sendConfirmation, jNameTimeZone, false, "", "", false, true);
+
+				if (user_id > 0 && sendConfirmation) {
+					return new Long(-40);
+				}
+
+				return user_id;
+			}
+		} catch (Exception e) {
+			log.error("[registerUser]", e);
+		}
+		return null;
+	}
+
+	/**
+	 * Adds a user including his adress-data,auth-date,mail-data
+	 * 
+	 * @param user_level
+	 * @param level_id
+	 * @param availible
+	 * @param status
+	 * @param login
+	 * @param password
+	 * @param lastname
+	 * @param firstname
+	 * @param email
+	 * @param age
+	 * @param street
+	 * @param additionalname
+	 * @param fax
+	 * @param zip
+	 * @param states_id
+	 * @param town
+	 * @param language_id
+	 * @param phone
+	 * @return new users_id OR null if an exception, -1 if an error, -4 if mail
+	 *         already taken, -5 if username already taken, -3 if login or pass
+	 *         or mail is empty
+	 */
+	public Long registerUserInit(long user_level, long level_id, int availible,
+			int status, String login, String password, String lastname,
+			String firstname, String email, Date age, String street,
+			String additionalname, String fax, String zip, long states_id,
+			String town, long language_id, boolean sendWelcomeMessage,
+			List<Long> organisations, String phone, boolean sendSMS,
+			Boolean sendConfirmation, String iCalTz, Boolean forceTimeZoneCheck,
+			String userOffers, String userSearchs, Boolean showContactData,
+			Boolean showContactDataToContacts) throws Exception {
+		return registerUserInit(user_level, level_id, availible,
+				status, login, password, lastname,
+				firstname, email, age, street,
+				additionalname, fax, zip, states_id,
+				town, language_id, sendWelcomeMessage,
+				organisations, phone, sendSMS, sendConfirmation,
+				timezoneUtil.getTimeZone(iCalTz), 
+				forceTimeZoneCheck,
+				userOffers, userSearchs, showContactData,
+				showContactDataToContacts, null);
+	}
+	
+	/**
+	 * @param user_level
+	 * @param level_id
+	 * @param availible
+	 * @param status
+	 * @param login
+	 * @param password
+	 * @param lastname
+	 * @param firstname
+	 * @param email
+	 * @param age
+	 * @param street
+	 * @param additionalname
+	 * @param fax
+	 * @param zip
+	 * @param states_id
+	 * @param town
+	 * @param language_id
+	 * @param sendWelcomeMessage
+	 * @param organisations
+	 * @param phone
+	 * @param sendSMS
+	 * @param sendConfirmation
+	 * @param timezone
+	 * @param forceTimeZoneCheck
+	 * @param userOffers
+	 * @param userSearchs
+	 * @param showContactData
+	 * @param showContactDataToContacts
+	 * @return new users_id OR null if an exception, -1 if an error, -4 if mail
+	 *         already taken, -5 if username already taken, -3 if login or pass
+	 *         or mail is empty
+	 * @throws Exception
+	 */
+	public Long registerUserInit(long user_level, long level_id, int availible,
+			int status, String login, String password, String lastname,
+			String firstname, String email, Date age, String street,
+			String additionalname, String fax, String zip, long states_id,
+			String town, long language_id, boolean sendWelcomeMessage,
+			List<Long> organisations, String phone, boolean sendSMS, Boolean sendConfirmation,
+			TimeZone timezone, Boolean forceTimeZoneCheck,
+			String userOffers, String userSearchs, Boolean showContactData,
+			Boolean showContactDataToContacts, String activatedHash) throws Exception {
+		// TODO: make phone number persistent
+		// User Level must be at least Admin
+		// Moderators will get a temp update of there UserLevel to add Users to
+		// their Group
+		if (AuthLevelUtil.checkModLevel(user_level)) {
+			// Check for required data
+			if (login.length() >= getMinLoginLength(configurationDao)) {
+				// Check for duplicates
+				boolean checkName = usersDao.checkUserLogin(login, null);
+				boolean checkEmail = usersDao.checkUserEMail(email, null);
+				if (checkName && checkEmail) {
+
+					String link = configurationDao.getBaseUrl();
+					String hash = activatedHash;
+					if (hash == null){
+						hash = ManageCryptStyle.getInstanceOfCrypt().createPassPhrase(login
+								+ CalendarPatterns.getDateWithTimeByMiliSeconds(new Date()));
+					}
+					link += "activate?u=" + hash;
+
+					if (sendWelcomeMessage && email.length() != 0) {
+						String sendMail = emailManagement.sendMail(login,
+								password, email, link, sendConfirmation);
+						if (!sendMail.equals("success"))
+							return new Long(-19);
+					}
+					Address adr =  new Address();
+					adr.setStreet(street);
+					adr.setZip(zip);
+					adr.setTown(town);
+					adr.setStates(statemanagement.getStateById(states_id));
+					adr.setAdditionalname(additionalname);
+					adr.setComment("");
+					adr.setFax(fax);
+					adr.setPhone(phone);
+					adr.setEmail(email);
+
+					// If this user needs first to click his E-Mail verification
+					// code then set the status to 0
+					if (sendConfirmation) {
+						status = 0;
+					}
+
+					Long user_id = addUser(level_id, availible, status,
+							firstname, login, lastname, language_id, password,
+							adr, sendSMS, age, hash, timezone,
+							forceTimeZoneCheck, userOffers, userSearchs,
+							showContactData, showContactDataToContacts, organisations);
+					log.debug("Added user-Id " + user_id);
+					if (user_id == null) {
+						return new Long(-111);
+					}
+
+					/*
+					 * Long adress_emails_id =
+					 * emailManagement.registerEmail(email, address_id,""); if
+					 * (adress_emails_id==null) { return new Long(-112); }
+					 */
+
+					if (adr.getAdresses_id() > 0 && user_id > 0) {
+						return user_id;
+					} else {
+						return new Long(-16);
+					}
+				} else {
+					if (!checkName) {
+						return new Long(-15);
+					} else if (!checkEmail) {
+						return new Long(-17);
+					}
+				}
+			} else {
+				return new Long(-13);
+			}
+		}
+		return new Long(-1);
+	}
+
+	/**
+	 * @author swagner This Methdo adds a User to the User-Table
+	 * @param level_id
+	 *            The User Level, 1=User, 2=GroupAdmin/Moderator,
+	 *            3=SystemAdmin/Admin
+	 * @param availible
+	 *            The user is activated
+	 * @param status
+	 *            The user is not blocked by System admins
+	 * @param firstname
+	 * @param login
+	 *            Username for login
+	 * @param lastname
+	 * @param language_id
+	 * @param Userpass
+	 *            is MD5-crypted
+	 * @param Address adress
+	 * @return user_id or error null
+	 */
+	public Long addUser(long level_id, int availible, int status,
+			String firstname, String login, String lastname, long language_id,
+			String userpass, Address adress, boolean sendSMS, Date age, String hash,
+			TimeZone timezone,
+			Boolean forceTimeZoneCheck, String userOffers, String userSearchs,
+			Boolean showContactData, Boolean showContactDataToContacts, List<Long> orgIds) {
+		try {
+
+			User users = new User();
+			users.setFirstname(firstname);
+			users.setLogin(login);
+			users.setLastname(lastname);
+			users.setAge(age);
+			users.setAdresses(adress);
+			users.setSendSMS(sendSMS);
+			users.setAvailible(availible);
+			users.setLastlogin(new Date());
+			users.setLasttrans(new Long(0));
+			users.setLevel_id(level_id);
+			users.setStatus(status);
+			users.setSalutations_id(1L);
+			users.setStarttime(new Date());
+			users.setActivatehash(hash);
+			users.setTimeZoneId(timezone.getID());
+			users.setForceTimeZoneCheck(forceTimeZoneCheck);
+
+			users.setUserOffers(userOffers);
+			users.setUserSearchs(userSearchs);
+			users.setShowContactData(showContactData);
+			users.setShowContactDataToContacts(showContactDataToContacts);
+
+			// this is needed cause the language is not a needed data at
+			// registering
+			if (language_id != 0) {
+				users.setLanguage_id(language_id);
+			} else {
+				users.setLanguage_id(null);
+			}
+			users.updatePassword(configurationDao, userpass);
+			users.setRegdate(new Date());
+			users.setDeleted(false);
+			
+			//new user add organizations without checks
+			if (orgIds != null) {
+				List<Organisation_Users> orgList = users.getOrganisation_users();
+				for (Long orgId : orgIds) {
+					orgList.add(organisationManager.getOrgUser(orgId, null));
+				}
+			}
+			return addUser(users);
+
+		} catch (Exception ex2) {
+			log.error("[registerUser]", ex2);
+		}
+		return null;
+	}
+
+	public User getUserByExternalIdAndType(String externalUserId,
+			String externalUserType) {
+
+		try {
+
+			String hql = "select c from User as c "
+					+ "where c.externalUserId LIKE :externalUserId "
+					+ "AND c.externalUserType LIKE :externalUserType "
+					+ "AND c.deleted <> :deleted";
+
+			TypedQuery<User> query = em.createQuery(hql, User.class);
+			query.setParameter("externalUserId", externalUserId);
+			query.setParameter("externalUserType", externalUserType);
+			query.setParameter("deleted", true);
+
+			List<User> users = query.getResultList();
+
+			if (users.size() > 0) {
+				return users.get(0);
+			}
+
+		} catch (Exception ex2) {
+			log.error("[getUserByExternalIdAndType]", ex2);
+		}
+		return null;
+	}
+
+	public Long addUserWithExternalKey(long level_id, int availible,
+			int status, String firstname, String login, String lastname,
+			long language_id, boolean emptyPass, String userpass, Address address, Date age,
+			String hash, String externalUserId, String externalUserType,
+			boolean generateSipUserData, String email, String iCalTz,
+			String pictureuri) {
+		try {
+			User users = new User();
+			users.setFirstname(firstname);
+			users.setLogin(login);
+			users.setLastname(lastname);
+			users.setAge(age);
+
+			if (address != null) {
+				users.setAdresses(address);
+			} else {
+				users.setAdresses("", "", "", statemanagement.getStateById(1L), "", "", "", "", email);
+			}
+
+			users.setAvailible(availible);
+			users.setLastlogin(new Date());
+			users.setLasttrans(new Long(0));
+			users.setLevel_id(level_id);
+			users.setStatus(status);
+			users.setSalutations_id(1L);
+			users.setStarttime(new Date());
+			users.setActivatehash(hash);
+			users.setPictureuri(pictureuri);
+			users.setTimeZoneId(timezoneUtil.getTimeZone(iCalTz).getID());
+
+			users.setExternalUserId(externalUserId);
+			users.setExternalUserType(externalUserType);
+
+			// this is needed cause the language is not a needed data at
+			// registering
+			if (language_id != 0) {
+				users.setLanguage_id(new Long(language_id));
+			} else {
+				users.setLanguage_id(null);
+			}
+			users.updatePassword(configurationDao, userpass, emptyPass);
+			users.setRegdate(new Date());
+			users.setDeleted(false);
+
+			em.persist(users);
+
+			em.refresh(users);
+
+			// em.flush();
+
+			long user_id = users.getUser_id();
+
+			return user_id;
+
+		} catch (Exception ex2) {
+			log.error("[addUserWithExternalKey]", ex2);
+		}
+		return null;
+	}
+
+	public Long addUser(User usr) {
+		try {
+			em.persist(usr);
+			//em.refresh(usr);
+			em.flush();
+
+			return usr.getUser_id();
+		} catch (Exception ex2) {
+			log.error("[addUser]", ex2);
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 * Find User by Id
+	 */
+	// -----------------------------------------------------------------------------------------------------
+	public User getUserById(Long id) {
+		log.debug("Usermanagement.getUserById");
+
+		if (id == null || id <= 0) {
+			return null;
+		}
+		CriteriaBuilder cb = em.getCriteriaBuilder();
+		CriteriaQuery<User> cq = cb.createQuery(User.class);
+		Root<User> c = cq.from(User.class);
+		Predicate condition = cb.equal(c.get("deleted"), false);
+		Predicate subCondition = cb.equal(c.get("user_id"), id);
+		cq.where(condition, subCondition);
+		TypedQuery<User> q = em.createQuery(cq);
+		User u = null;
+		try {
+			u = q.getSingleResult();
+		} catch (NoResultException e) {
+			// u=null}
+		} catch (NonUniqueResultException ex) {
+		}
+
+		return u;
+	}
+
+	public User getUserByIdAndDeleted(Long id) throws Exception {
+		log.debug("Usermanagement.getUserById");
+
+		CriteriaBuilder cb = em.getCriteriaBuilder();
+		CriteriaQuery<User> cq = cb.createQuery(User.class);
+		Root<User> c = cq.from(User.class);
+		Predicate condition = cb.equal(c.get("user_id"), id);
+		cq.where(condition);
+		TypedQuery<User> q = em.createQuery(cq);
+		User u = null;
+		try {
+			u = q.getSingleResult();
+		} catch (NoResultException e) {
+			// u=null}
+		}
+
+		return u;
+
+	}
+
+	// -----------------------------------------------------------------------------------------------------
+
+	/**
+	 * @author o.becherer Find User by LoginName (test existence of a active
+	 *         user with login - name
+	 */
+	// -----------------------------------------------------------------------------------------------------
+	public User getUserByLogin(String login) throws Exception {
+		log.debug("Usermanagement.getUserByLogin : " + login);
+
+		CriteriaBuilder cb = em.getCriteriaBuilder();
+		CriteriaQuery<User> cq = cb.createQuery(User.class);
+		Root<User> c = cq.from(User.class);
+		Predicate condition = cb.equal(c.get("deleted"), false);
+		Predicate subCondition = cb.equal(c.get("login"), login);
+		cq.where(condition, subCondition);
+		TypedQuery<User> q = em.createQuery(cq);
+		User u = null;
+		try {
+			u = q.getSingleResult();
+		} catch (NoResultException e) {
+			// u=null}
+		}
+
+		return u;
+
+	}
+
+	// -----------------------------------------------------------------------------------------------------
+
+	/**
+	 * @author swagner Find User by LoginName or EMail (test existence of a
+	 *         active user with login - name
+	 */
+	// -----------------------------------------------------------------------------------------------------
+	public User getUserByLoginOrEmail(String userOrEmail) throws Exception {
+		// log.debug("Usermanagement.getUserByLoginOrEmail : " + userOrEmail);
+
+		String hql = "SELECT c from User AS c "
+				+ "WHERE "
+				+ "(c.login LIKE :userOrEmail OR c.adresses.email LIKE :userOrEmail  ) "
+				+ "AND c.externalUserId IS NULL " + "AND c.deleted <> :deleted";
+
+		TypedQuery<User> query = em.createQuery(hql, User.class);
+		query.setParameter("userOrEmail", userOrEmail);
+		query.setParameter("deleted", true);
+
+		List<User> ll = query.getResultList();
+
+		if (ll.size() > 1) {
+			log.error("ALERT :: There are two users in the database that have either same login or Email ");
+			return ll.get(0);
+			// throw new
+			// Exception("ALERT :: There are two users in the database that have either same login or Email ");
+		} else if (ll.size() == 1) {
+			return ll.get(0);
+		} else {
+			return null;
+		}
+
+	}
+
+	// -----------------------------------------------------------------------------------------------------
+
+	/**
+	 * @param admin
+	 * @param room_id
+	 * @return
+	 */
+	public Boolean kickUserByStreamId(String SID, Long room_id) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = getUserLevelByID(users_id);
+
+			// admins only
+			if (AuthLevelUtil.checkAdminLevel(user_level)) {
+
+				sessiondataDao.clearSessionByRoomId(room_id);
+
+				for (Client rcl : sessionManager.getClientListByRoom(room_id)) {
+					if (rcl == null) {
+						return true;
+					}
+					String scopeName = "hibernate";
+					if (rcl.getRoom_id() != null) {
+						scopeName = rcl.getRoom_id().toString();
+					}
+					IScope currentScope = scopeApplicationAdapter
+							.getRoomScope(scopeName);
+					scopeApplicationAdapter.roomLeaveByScope(rcl, currentScope, true);
+
+					HashMap<Integer, String> messageObj = new HashMap<Integer, String>();
+					messageObj.put(0, "kick");
+					scopeApplicationAdapter.sendMessageById(messageObj,
+							rcl.getStreamid(), currentScope);
+
+				}
+
+				return true;
+			}
+
+		} catch (Exception err) {
+			log.error("[kickUserByStreamId]", err);
+		}
+		return null;
+	}
+
+	public Boolean kickUserByPublicSID(String SID, String publicSID) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = getUserLevelByID(users_id);
+
+			// admins only
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+
+				Client rcl = sessionManager
+						.getClientByPublicSID(publicSID, false, null);
+
+				if (rcl == null) {
+					return true;
+				}
+
+				String scopeName = "hibernate";
+				if (rcl.getRoom_id() != null) {
+					scopeName = rcl.getRoom_id().toString();
+				}
+				IScope currentScope = scopeApplicationAdapter
+						.getRoomScope(scopeName);
+
+				HashMap<Integer, String> messageObj = new HashMap<Integer, String>();
+				messageObj.put(0, "kick");
+				scopeApplicationAdapter.sendMessageById(messageObj,
+						rcl.getStreamid(), currentScope);
+
+				scopeApplicationAdapter.roomLeaveByScope(rcl, currentScope, true);
+
+				return true;
+			}
+
+		} catch (Exception err) {
+			log.error("[kickUserByStreamId]", err);
+		}
+		return null;
+	}
+
+	public void updateUser(User user) {
+		usersDao.update(user, null);
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/data/whiteboard/EmoticonsManager.java b/src/main/java/org/apache/openmeetings/data/whiteboard/EmoticonsManager.java
new file mode 100644
index 0000000..ecda7f9
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/whiteboard/EmoticonsManager.java
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.data.whiteboard;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.util.LinkedList;
+
+import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.openmeetings.util.stringhandlers.ChatString;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.io.xml.XppDriver;
+
+/**
+ * Load the list of available emoticons from the XML file and store them in
+ * memory to load faster, {@link #loadEmot()} is only called once: during server
+ * startup
+ * 
+ * @author sebawagner
+ * 
+ */
+public class EmoticonsManager {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(EmoticonsManager.class, OpenmeetingsVariables.webAppRootKey);
+	
+	private LinkedList<LinkedList<String>> emotfilesList = new LinkedList<LinkedList<String>>();
+
+	@SuppressWarnings("unchecked")
+	public void loadEmot(){
+		try {
+			XStream xStream = new XStream(new XppDriver());
+			xStream.setMode(XStream.NO_REFERENCES);
+			BufferedReader reader = new BufferedReader(new FileReader(new File(OmFileHelper.getPublicEmotionsDir(), "emotes.xml")));
+		    String xmlString = "";
+		    while (reader.ready()) {
+		    	xmlString += reader.readLine();
+		    }
+		    reader.close();
+		    emotfilesList = ChatString.replaceAllRegExp((LinkedList<LinkedList<String>>) xStream.fromXML(xmlString));
+		    
+		    log.debug("##### loadEmot completed");
+		    
+		} catch (Exception err) {
+			log.error("[loadEmot]",err);
+		}
+	}
+	
+	public synchronized LinkedList<LinkedList<String>> getEmotfilesList() {
+		return emotfilesList;
+	}
+	
+	public synchronized void setEmotfilesList(LinkedList<LinkedList<String>> emotfilesListNew) {
+		emotfilesList = emotfilesListNew;
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/data/whiteboard/WhiteBoardObjectListManagerById.java b/src/main/java/org/apache/openmeetings/data/whiteboard/WhiteBoardObjectListManagerById.java
new file mode 100644
index 0000000..ee9c8ad
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/whiteboard/WhiteBoardObjectListManagerById.java
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.data.whiteboard;
+
+import java.util.HashMap;
+
+import org.apache.openmeetings.db.dto.room.WhiteboardObject;
+import org.apache.openmeetings.db.dto.room.WhiteboardObjectList;
+
+/**
+ * Memory based cache, configured as singleton in spring configuration
+ * 
+ * @author sebawagner
+ *
+ */
+public class WhiteBoardObjectListManagerById {
+	
+	private HashMap<Long,WhiteboardObjectList> whiteBoardObjectList = new HashMap<Long,WhiteboardObjectList>();
+	
+	private Long whiteboardId = 0L;
+	
+	public Long getNewWhiteboardId(Long room_id) throws Exception {
+		whiteboardId++;
+		this.setWhiteBoardObjectListRoomObjAndWhiteboardId(room_id, new WhiteboardObject(), whiteboardId);
+		return whiteboardId;
+	}
+	
+	/*
+	 * Room items a Whiteboard
+	 */
+	public synchronized WhiteboardObjectList getWhiteBoardObjectListByRoomId(Long room_id){
+		WhiteboardObjectList whiteboardObjectList = whiteBoardObjectList.get(room_id);
+		if (whiteboardObjectList == null) {
+			whiteboardObjectList = new WhiteboardObjectList();
+		}
+		return whiteboardObjectList;
+	}
+	
+	public synchronized WhiteboardObject getWhiteBoardObjectListByRoomIdAndWhiteboard(Long room_id, Long whiteBoardId){
+		WhiteboardObjectList whiteboardObjectList = whiteBoardObjectList.get(room_id);
+		if (whiteboardObjectList == null) {
+			whiteboardObjectList = new WhiteboardObjectList();
+		}
+		WhiteboardObject whiteboardObjects = whiteboardObjectList.getWhiteboardObjects().get(whiteBoardId);
+		if (whiteboardObjects == null) {
+			whiteboardObjects = new WhiteboardObject();
+		}
+		return whiteboardObjects;
+	}
+	
+	/*
+	 * Whiteboard Object List
+	 * 
+	 */
+	
+	public synchronized void setWhiteBoardObjectListRoomObj(Long room_id, WhiteboardObjectList whiteboardObjectList){
+		whiteBoardObjectList.put(room_id, whiteboardObjectList);
+	}
+	
+	public synchronized void setWhiteBoardObjectListRoomObjAndWhiteboardId(Long room_id, WhiteboardObject whiteboardObjects, Long whiteBoardId){
+		WhiteboardObjectList whiteboardObjectList = whiteBoardObjectList.get(room_id);
+		if (whiteboardObjectList == null) {
+			whiteboardObjectList = new WhiteboardObjectList();
+			whiteboardObjectList.setRoom_id(room_id);
+		}
+		whiteboardObjects.setWhiteBoardId(whiteBoardId);
+		whiteboardObjectList.getWhiteboardObjects().put(whiteBoardId, whiteboardObjects);
+		whiteBoardObjectList.put(room_id, whiteboardObjectList);
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/data/whiteboard/WhiteBoardObjectSyncManager.java b/src/main/java/org/apache/openmeetings/data/whiteboard/WhiteBoardObjectSyncManager.java
new file mode 100644
index 0000000..2f3e38c
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/whiteboard/WhiteBoardObjectSyncManager.java
@@ -0,0 +1,122 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.data.whiteboard;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.openmeetings.db.dto.room.WhiteboardSyncLockObject;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+/**
+ * Memory based, configured as singleton in spring configuration
+ * 
+ * @author sebawagner
+ *
+ */
+public class WhiteBoardObjectSyncManager {
+
+	private HashMap<Long, Map<String, WhiteboardSyncLockObject>> whiteBoardSyncList = new HashMap<Long, Map<String, WhiteboardSyncLockObject>>();
+
+	private HashMap<Long, Map<String, Map<String, WhiteboardSyncLockObject>>> whiteBoardObjectSyncList = new HashMap<Long, Map<String, Map<String, WhiteboardSyncLockObject>>>();
+
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			WhiteBoardObjectSyncManager.class,
+			OpenmeetingsVariables.webAppRootKey);
+
+	/*
+	 * Initial Sync Process
+	 */
+	public synchronized void setWhiteBoardSyncListByRoomid(Long room_id,
+			Map<String, WhiteboardSyncLockObject> mapObject) {
+		whiteBoardSyncList.put(room_id, mapObject);
+	}
+
+	public synchronized Map<String, WhiteboardSyncLockObject> getWhiteBoardSyncListByRoomid(
+			Long room_id) {
+		Map<String, WhiteboardSyncLockObject> roomList = whiteBoardSyncList
+				.get(room_id);
+		if (roomList == null) {
+			roomList = new HashMap<String, WhiteboardSyncLockObject>();
+		}
+		return roomList;
+	}
+
+	/*
+	 * Image Sync Process
+	 */
+	public synchronized void setWhiteBoardImagesSyncListByRoomid(Long room_id,
+			Map<String, Map<String, WhiteboardSyncLockObject>> mapObject) {
+		whiteBoardObjectSyncList.put(room_id, mapObject);
+	}
+
+	public synchronized void setWhiteBoardImagesSyncListByRoomAndObjectId(
+			Long room_id, String object_id,
+			Map<String, WhiteboardSyncLockObject> imageSyncList) {
+		Map<String, Map<String, WhiteboardSyncLockObject>> roomList = whiteBoardObjectSyncList
+				.get(room_id);
+		if (roomList == null) {
+			roomList = new HashMap<String, Map<String, WhiteboardSyncLockObject>>();
+		}
+		if (imageSyncList.size() == 0) {
+			roomList.remove(object_id);
+		} else {
+			roomList.put(object_id, imageSyncList);
+		}
+		setWhiteBoardImagesSyncListByRoomid(room_id, roomList);
+	}
+
+	public synchronized Map<String, Map<String, WhiteboardSyncLockObject>> getWhiteBoardObjectSyncListByRoomid(
+			Long room_id) {
+		Map<String, Map<String, WhiteboardSyncLockObject>> roomList = whiteBoardObjectSyncList
+				.get(room_id);
+		if (roomList == null) {
+			roomList = new HashMap<String, Map<String, WhiteboardSyncLockObject>>();
+		}
+		return roomList;
+	}
+
+	public synchronized Map<String, WhiteboardSyncLockObject> getWhiteBoardObjectSyncListByRoomAndObjectId(
+			Long room_id, String object_id) {
+		log.debug("getWhiteBoardImagesSyncListByRoomAndImageid room_id: "
+				+ room_id);
+		Map<String, Map<String, WhiteboardSyncLockObject>> roomList = whiteBoardObjectSyncList
+				.get(room_id);
+		if (roomList == null) {
+			roomList = new HashMap<String, Map<String, WhiteboardSyncLockObject>>();
+		}
+		log.debug("getWhiteBoardImagesSyncListByRoomAndImageid roomList: "
+				+ roomList);
+		log.debug("getWhiteBoardImagesSyncListByRoomAndImageid object_id: "
+				+ object_id);
+		if (roomList.size() == 1) {
+			log.debug("getWhiteBoardImagesSyncListByRoomAndImageid roomList Key image_id: "
+					+ roomList.keySet().iterator().next());
+		}
+		Map<String, WhiteboardSyncLockObject> imageSyncList = roomList
+				.get(object_id);
+		if (imageSyncList == null) {
+			imageSyncList = new HashMap<String, WhiteboardSyncLockObject>();
+		}
+		return imageSyncList;
+	}
+
+}
diff --git a/src/main/java/org/apache/openmeetings/data/whiteboard/WhiteboardManager.java b/src/main/java/org/apache/openmeetings/data/whiteboard/WhiteboardManager.java
new file mode 100644
index 0000000..964b23a
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/data/whiteboard/WhiteboardManager.java
@@ -0,0 +1,334 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.data.whiteboard;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.openmeetings.db.dto.room.WhiteboardObject;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class WhiteboardManager {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			WhiteboardManager.class, OpenmeetingsVariables.webAppRootKey);
+	
+	@Autowired
+	private WhiteBoardObjectListManagerById whiteBoardObjectListManagerById;
+
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public void addWhiteBoardObjectById(Long room_id, Map whiteboardObj,
+			Long whiteBoardId) {
+		try {
+			log.debug("addWhiteBoardObjectById: ", whiteboardObj);
+
+			// log.debug("whiteboardObj 0: Event: "+whiteboardObj.get(0));
+			// log.debug("whiteboardObj 1: Event: "+whiteboardObj.get(1));
+			// log.debug("whiteboardObj 2: Event: "+whiteboardObj.get(2));
+			// log.debug("whiteboardObj 3: Event: "+whiteboardObj.get(3));
+
+			// log.debug("whiteboardObj NUMB3: Event: "+whiteboardObj.get(3).getClass().getName());
+
+			// Date dateOfEvent = (Date) whiteboardObj.get(1);
+			String action = whiteboardObj.get(2).toString();
+
+			log.debug("action: " + action);
+			log.debug("actionObject: " + whiteboardObj.get(3));
+
+			List actionObject = (List) whiteboardObj.get(3);
+
+			if (action.equals("moveMap")) {
+				WhiteboardObject whiteboardObject = whiteBoardObjectListManagerById
+						.getWhiteBoardObjectListByRoomIdAndWhiteboard(room_id,
+								whiteBoardId);
+
+				whiteboardObject.setX(Integer.valueOf(
+						actionObject.get(1).toString()).intValue());
+				whiteboardObject.setY(Integer.valueOf(
+						actionObject.get(2).toString()).intValue());
+
+				whiteBoardObjectListManagerById
+						.setWhiteBoardObjectListRoomObjAndWhiteboardId(room_id,
+								whiteboardObject, whiteBoardId);
+			} else if (action.equals("draw") || action.equals("redo")) {
+				WhiteboardObject whiteboardObject = whiteBoardObjectListManagerById
+						.getWhiteBoardObjectListByRoomIdAndWhiteboard(room_id,
+								whiteBoardId);
+
+				// log.debug(actionObject);
+				// log.debug(actionObject.size()-1);
+				// log.debug(actionObject.get(actionObject.size()-1));
+				String objectType = actionObject.get(0).toString();
+				if (!objectType.equals("pointerWhiteBoard")) {
+					String objectOID = actionObject
+							.get(actionObject.size() - 1).toString();
+					log.debug("objectOID: " + objectOID);
+					whiteboardObject.getRoomItems()
+							.put(objectOID, actionObject);
+					whiteBoardObjectListManagerById
+							.setWhiteBoardObjectListRoomObjAndWhiteboardId(
+									room_id, whiteboardObject, whiteBoardId);
+				}
+			} else if (action.equals("clear")) {
+				WhiteboardObject whiteboardObject = whiteBoardObjectListManagerById
+						.getWhiteBoardObjectListByRoomIdAndWhiteboard(room_id,
+								whiteBoardId);
+				whiteboardObject.setRoomItems(new HashMap<String, List>());
+				whiteBoardObjectListManagerById
+						.setWhiteBoardObjectListRoomObjAndWhiteboardId(room_id,
+								whiteboardObject, whiteBoardId);
+			} else if (action.equals("delete") || action.equals("undo")) {
+				WhiteboardObject whiteboardObject = whiteBoardObjectListManagerById
+						.getWhiteBoardObjectListByRoomIdAndWhiteboard(room_id,
+								whiteBoardId);
+				String objectOID = actionObject.get(actionObject.size() - 1)
+						.toString();
+				String objectType = actionObject.get(0).toString();
+				log.debug("removal of objectOID: " + objectOID);
+
+				log.debug("removal of objectOID: " + objectOID);
+
+				// "ellipse"
+				// || this.baseactionobjectList[i][0] == "drawarrow"
+				// || this.baseactionobjectList[i][0] == "line"
+				// || this.baseactionobjectList[i][0] == "paint"
+				// || this.baseactionobjectList[i][0] == "rectangle"
+				// || this.baseactionobjectList[i][0] == "uline"
+				// || this.baseactionobjectList[i][0] == "image"
+				// || this.baseactionobjectList[i][0] == "letter"
+
+				// Re-Index all items in its zIndex
+				if (objectType.equals("ellipse")
+						|| objectType.equals("drawarrow")
+						|| objectType.equals("line")
+						|| objectType.equals("paint")
+						|| objectType.equals("rectangle")
+						|| objectType.equals("uline")
+						|| objectType.equals("image")
+						|| objectType.equals("letter")
+						|| objectType.equals("clipart")
+						|| objectType.equals("swf")
+						|| objectType.equals("mindmapnode")
+						|| objectType.equals("flv")) {
+
+					Integer zIndex = Integer.valueOf(
+							actionObject.get(actionObject.size() - 8)
+									.toString()).intValue();
+
+					log.debug("1|zIndex " + zIndex);
+					log.debug("2|zIndex "
+							+ actionObject.get(actionObject.size() - 8)
+									.toString());
+					log.debug("3|zIndex "
+							+ actionObject.get(actionObject.size() - 8));
+
+					int l = 0;
+					for (Iterator debugIter = actionObject.iterator(); debugIter
+							.hasNext();) {
+						log.debug("4|zIndex " + l + " -- " + debugIter.next());
+						l++;
+					}
+
+					for (Iterator<String> iter = whiteboardObject
+							.getRoomItems().keySet().iterator(); iter.hasNext();) {
+						String whiteboardObjKey = iter.next();
+						List actionObjectStored = whiteboardObject
+								.getRoomItems().get(whiteboardObjKey);
+
+						Integer zIndexStored = Integer.valueOf(
+								actionObjectStored.get(
+										actionObjectStored.size() - 8)
+										.toString()).intValue();
+
+						log.debug("zIndexStored|zIndex " + zIndexStored + "|"
+								+ zIndex);
+
+						if (zIndexStored >= zIndex) {
+							zIndexStored -= 1;
+							log.debug("new-zIndex " + zIndexStored);
+						}
+						actionObjectStored.set(actionObjectStored.size() - 8,
+								zIndexStored);
+
+						whiteboardObject.getRoomItems().put(whiteboardObjKey,
+								actionObjectStored);
+					}
+
+				}
+
+				whiteboardObject.getRoomItems().remove(objectOID);
+
+				whiteBoardObjectListManagerById
+						.setWhiteBoardObjectListRoomObjAndWhiteboardId(room_id,
+								whiteboardObject, whiteBoardId);
+			} else if (action.equals("size") || action.equals("editProp")
+					|| action.equals("editTextMindMapNode")
+					|| action.equals("editText") || action.equals("swf")
+					|| action.equals("flv")
+					|| action.equals("editTextMindMapColor")
+					|| action.equals("editTextMindMapFontColor")) {
+				WhiteboardObject whiteboardObject = whiteBoardObjectListManagerById
+						.getWhiteBoardObjectListByRoomIdAndWhiteboard(room_id,
+								whiteBoardId);
+				String objectOID = actionObject.get(actionObject.size() - 1)
+						.toString();
+				// List roomItem = roomList.get(objectOID);
+				List currentObject = whiteboardObject.getRoomItems().get(
+						objectOID);
+				if (actionObject.get(0).equals("paint")) {
+					actionObject.set(1, currentObject.get(1));
+				}
+				whiteboardObject.getRoomItems().put(objectOID, actionObject);
+
+				Map roomList = whiteboardObject.getRoomItems();
+
+				if (action.equals("swf")) {
+
+					log.debug("actionObject " + actionObject);
+
+					if (actionObject.get(0).equals("swf")) {
+
+						if (actionObject.get(8) != currentObject.get(8)) {
+
+							String baseObjectName = actionObject.get(
+									actionObject.size() - 1).toString();
+							Integer slidesNumber = Integer.valueOf(
+									actionObject.get(8).toString()).intValue();
+
+							log.debug("updateObjectsToSlideNumber :: "
+									+ baseObjectName + "," + slidesNumber);
+
+							for (Iterator<String> iter = roomList.keySet()
+									.iterator(); iter.hasNext();) {
+								String whiteboardObjKey = iter.next();
+								List actionObjectStored = (List) roomList
+										.get(whiteboardObjKey);
+
+								if (actionObjectStored.get(0).equals("ellipse")
+										|| actionObjectStored.get(0).equals(
+												"drawarrow")
+										|| actionObjectStored.get(0).equals(
+												"line")
+										|| actionObjectStored.get(0).equals(
+												"clipart")
+										|| actionObjectStored.get(0).equals(
+												"paint")
+										|| actionObjectStored.get(0).equals(
+												"rectangle")
+										|| actionObjectStored.get(0).equals(
+												"uline")
+										|| actionObjectStored.get(0).equals(
+												"image")
+										|| actionObjectStored.get(0).equals(
+												"letter")) {
+
+									Map swfObj = (Map) actionObjectStored
+											.get(actionObjectStored.size() - 7);
+									log.debug("swfObj :1: " + swfObj);
+
+									if (swfObj != null) {
+
+										if (swfObj.get("name").equals(
+												baseObjectName)) {
+
+											if (Integer.valueOf(
+													swfObj.get("slide")
+															.toString())
+													.intValue() == slidesNumber) {
+
+												swfObj.put("isVisible", true);
+
+												actionObjectStored.set(
+														actionObjectStored
+																.size() - 7,
+														swfObj);
+
+											} else {
+
+												swfObj.put("isVisible", false);
+
+												actionObjectStored.set(
+														actionObjectStored
+																.size() - 7,
+														swfObj);
+
+											}
+
+										}
+
+									}
+
+									log.debug("swfObj :1: " + swfObj);
+
+								}
+
+							}
+
+						}
+
+					}
+				}
+
+				whiteBoardObjectListManagerById
+						.setWhiteBoardObjectListRoomObjAndWhiteboardId(room_id,
+								whiteboardObject, whiteBoardId);
+			} else if (action.equals("clearSlide")) {
+
+				WhiteboardObject whiteboardObject = whiteBoardObjectListManagerById
+						.getWhiteBoardObjectListByRoomIdAndWhiteboard(room_id,
+								whiteBoardId);
+
+				Map roomList = whiteboardObject.getRoomItems();
+
+				for (String objectName : (List<String>) actionObject) {
+
+					roomList.remove(objectName);
+
+				}
+
+				whiteBoardObjectListManagerById
+						.setWhiteBoardObjectListRoomObjAndWhiteboardId(room_id,
+								whiteboardObject, whiteBoardId);
+			} else if (action.equals("whiteboardObj")) {
+				WhiteboardObject whiteboardObject = whiteBoardObjectListManagerById
+						.getWhiteBoardObjectListByRoomIdAndWhiteboard(room_id,
+								whiteBoardId);
+
+				whiteboardObject.setFullFit((Boolean) actionObject.get(1));
+				whiteboardObject.setZoom((Integer) actionObject.get(2));
+
+				whiteBoardObjectListManagerById
+				.setWhiteBoardObjectListRoomObjAndWhiteboardId(room_id,
+						whiteboardObject, whiteBoardId);
+			} else {
+				log.warn("Unkown Type: " + action + " actionObject: "
+						+ actionObject);
+			}
+
+		} catch (Exception err) {
+			log.error("[addWhiteBoardObject]", err);
+		}
+	}
+
+}
diff --git a/src/main/java/org/apache/openmeetings/documents/CreateLibraryPresentation.java b/src/main/java/org/apache/openmeetings/documents/CreateLibraryPresentation.java
new file mode 100644
index 0000000..4b8a6b7
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/documents/CreateLibraryPresentation.java
@@ -0,0 +1,110 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.documents;
+
+import static org.apache.openmeetings.util.OmFileHelper.thumbImagePrefix;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FilenameFilter;
+import java.util.Arrays;
+
+import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.util.process.ConverterProcessResult;
+import org.dom4j.Document;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+import org.dom4j.io.XMLWriter;
+
+public class CreateLibraryPresentation {
+	public static ConverterProcessResult generateXMLDocument(File targetDirectory, String originalDocument, 
+			String pdfDocument, String swfDocument){
+		ConverterProcessResult returnMap = new ConverterProcessResult();
+		returnMap.setProcess("generateXMLDocument");		
+		try {
+			
+	        Document document = DocumentHelper.createDocument();
+	        Element root = document.addElement( "presentation" );
+
+	        File file = new File(targetDirectory, originalDocument);
+	        root.addElement( "originalDocument" )
+				.addAttribute("lastmod", (new Long(file.lastModified())).toString())
+				.addAttribute("size", (new Long(file.length())).toString())	        
+	            .addText( originalDocument );
+	        
+	        if (pdfDocument!=null){
+	        	File pdfDocumentFile = new File(targetDirectory, pdfDocument);
+		        root.addElement( "pdfDocument" )
+					.addAttribute("lastmod", (new Long(pdfDocumentFile.lastModified())).toString())
+					.addAttribute("size", (new Long(pdfDocumentFile.length())).toString())	   		        
+		            .addText( pdfDocument );
+	        }
+	        
+	        if (swfDocument!=null){
+	        	File swfDocumentFile = new File(targetDirectory, originalDocument);
+		        root.addElement( "swfDocument" )
+					.addAttribute("lastmod", (new Long(swfDocumentFile.lastModified())).toString())
+					.addAttribute("size", (new Long(swfDocumentFile.length())).toString())	  		        
+	            	.addText( swfDocument );	  
+	        }
+	        
+	        Element thumbs = root.addElement( "thumbs" );
+	        
+			//Secoond get all Files of this Folder
+			FilenameFilter ff = new FilenameFilter() {
+			     public boolean accept(File b, String name) {
+			    	  File f = new File(b, name);
+			          return f.isFile();
+			     }
+			};	
+			
+			String[] allfiles = targetDirectory.list(ff);			
+			if(allfiles!=null){
+				Arrays.sort(allfiles);
+				for(int i=0; i<allfiles.length; i++){
+					File thumbfile = new File(targetDirectory, allfiles[i]);
+					if (allfiles[i].startsWith(thumbImagePrefix)){
+						thumbs.addElement( "thumb" )
+							.addAttribute("lastmod", (new Long(thumbfile.lastModified())).toString())
+							.addAttribute("size", (new Long(thumbfile.length())).toString())
+			            	.addText( allfiles[i] );
+					}
+				}
+			}
+	        
+	        // lets write to a file
+	        XMLWriter writer = new XMLWriter(
+	            new FileOutputStream(new File(targetDirectory, OmFileHelper.libraryFileName))
+	        );
+	        writer.write( document );
+	        writer.close();
+			
+	        returnMap.setExitValue("0");
+	        
+			return returnMap;
+		} catch (Exception err) {
+			err.printStackTrace();
+			returnMap.setError(err.getMessage());
+			returnMap.setExitValue("-1");
+			return returnMap;
+		}
+	}
+	
+	
+}
diff --git a/src/main/java/org/apache/openmeetings/documents/GeneratePDF.java b/src/main/java/org/apache/openmeetings/documents/GeneratePDF.java
new file mode 100644
index 0000000..a0bcd0c
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/documents/GeneratePDF.java
@@ -0,0 +1,161 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.documents;
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.util.ArrayList;
+
+import org.apache.commons.transaction.util.FileHelper;
+import org.apache.openmeetings.converter.GenerateSWF;
+import org.apache.openmeetings.converter.GenerateThumbs;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.openmeetings.util.process.ConverterProcessResult;
+import org.apache.openmeetings.util.process.ConverterProcessResultList;
+import org.apache.openmeetings.util.process.ProcessHelper;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class GeneratePDF {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			GeneratePDF.class, OpenmeetingsVariables.webAppRootKey);
+
+	@Autowired
+	private GenerateThumbs generateThumbs;
+	@Autowired
+	private GenerateSWF generateSWF;
+	@Autowired
+	private ConfigurationDao configurationDao;
+
+	public ConverterProcessResultList convertPDF(String fileName,
+			String roomName, boolean fullProcessing, File inFile)
+			throws Exception {
+
+		String inFileName = inFile.getName();
+		ConverterProcessResultList returnError = new ConverterProcessResultList();
+
+		File fileFullPath = new File(OmFileHelper.getUploadTempRoomDir(roomName), inFileName);
+		File destinationFolder = OmFileHelper.getNewDir(OmFileHelper.getUploadRoomDir(roomName), fileName);
+
+		log.debug("fullProcessing: " + fullProcessing);
+		if (fullProcessing) {
+			ConverterProcessResult processOpenOffice = doJodConvert(
+					fileFullPath, destinationFolder, fileName);
+			returnError.addItem("processOpenOffice", processOpenOffice);
+			ConverterProcessResult processThumb = generateThumbs
+					.generateBatchThumb(new File(destinationFolder, fileName + ".pdf"), destinationFolder, 80, "thumb");
+			returnError.addItem("processThumb", processThumb);
+			ConverterProcessResult processSWF = generateSWF
+					.generateSwf(destinationFolder, destinationFolder, fileName);
+			returnError.addItem("processSWF", processSWF);
+		} else {
+
+			log.debug("-- generateBatchThumb --");
+
+			ConverterProcessResult processThumb = generateThumbs
+					.generateBatchThumb(fileFullPath, destinationFolder, 80, "thumb");
+			returnError.addItem("processThumb", processThumb);
+
+			ConverterProcessResult processSWF = generateSWF.generateSwf(
+					fileFullPath.getParentFile(), destinationFolder, fileName);
+			returnError.addItem("processSWF", processSWF);
+		}
+
+		// now it should be completed so copy that file to the expected location
+		File fileWhereToMove = new File(destinationFolder, inFileName);
+		fileWhereToMove.createNewFile();
+		FileHelper.moveRec(inFile, fileWhereToMove);
+
+		if (fullProcessing) {
+			ConverterProcessResult processXML = CreateLibraryPresentation
+					.generateXMLDocument(destinationFolder,
+							inFileName, fileName + ".pdf",
+							fileName + ".swf");
+			returnError.addItem("processXML", processXML);
+		} else {
+			ConverterProcessResult processXML = CreateLibraryPresentation
+					.generateXMLDocument(destinationFolder,
+							inFileName, null, fileName + ".swf");
+			returnError.addItem("processXML", processXML);
+		}
+
+		return returnError;
+	}
+
+	/**
+	 * Generates PDF using JOD Library (external library)
+	 */
+	public ConverterProcessResult doJodConvert(File fileFullPath, File destinationFolder, String outputfile) {
+		try {
+
+			String jodPath = configurationDao.getConfValue("jod.path",
+					String.class, "./jod");
+			String officePath = configurationDao.getConfValue(
+					"office.path", String.class, "");
+
+			File jodFolder = new File(jodPath);
+			if (!jodFolder.exists() || !jodFolder.isDirectory()) {
+				throw new Exception("Path to JOD Library folder does not exist");
+			}
+
+			ArrayList<String> argv = new ArrayList<String>();
+			argv.add("java");
+
+			if (officePath.trim().length() > 0) {
+				argv.add("-Doffice.home=" + officePath);
+			}
+			String jodConverterJar = "";
+
+			for (String jar : jodFolder.list(new FilenameFilter() {
+				public boolean accept(File file1, String name) {
+					return name.endsWith(".jar");
+				}
+			})) {
+				argv.add("-cp");
+				if (jar.startsWith("jodconverter")) {
+					jodConverterJar = jar;
+				}
+				argv.add(new File(jodFolder, jar).getCanonicalPath());
+			}
+			if (jodConverterJar.length() == 0) {
+				throw new Exception(
+						"Could not find jodConverter JAR file in JOD folder");
+			}
+
+			argv.add("-jar");
+			argv.add(new File(jodFolder, jodConverterJar).getCanonicalPath());
+			argv.add(fileFullPath.getCanonicalPath());
+			argv.add(new File(destinationFolder, outputfile + ".pdf").getCanonicalPath());
+
+			return ProcessHelper.executeScript("doJodConvert",
+					argv.toArray(new String[argv.size()]));
+
+		} catch (Exception ex) {
+			log.error("doJodConvert", ex);
+			return new ConverterProcessResult("doJodConvert", ex.getMessage(), ex);
+		}
+	}
+
+	
+
+}
diff --git a/src/main/java/org/apache/openmeetings/documents/LibraryChartLoader.java b/src/main/java/org/apache/openmeetings/documents/LibraryChartLoader.java
new file mode 100644
index 0000000..0e6e955
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/documents/LibraryChartLoader.java
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.documents;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.util.ArrayList;
+
+import org.apache.openmeetings.util.Logger;
+
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.io.xml.XppDriver;
+
+public class LibraryChartLoader {
+
+    private static final Logger log = new Logger();
+
+    private static final String fileExt = ".xchart";
+
+    private static LibraryChartLoader instance;
+
+    private LibraryChartLoader() {
+    }
+
+    public static synchronized LibraryChartLoader getInstance() {
+        if (instance == null) {
+            instance = new LibraryChartLoader();
+        }
+        return instance;
+    }
+
+    @SuppressWarnings("rawtypes")
+	public ArrayList loadChart(File dir, String fileName) {
+        try {
+            File file = new File(dir, fileName + fileExt);
+
+            log.error("filepathComplete: " + file);
+
+            XStream xStream = new XStream(new XppDriver());
+            xStream.setMode(XStream.NO_REFERENCES);
+
+            BufferedReader reader = new BufferedReader(new FileReader(file));
+            String xmlString = "";
+            while (reader.ready()) {
+                xmlString += reader.readLine();
+            }
+            reader.close();
+            // lMap = (LinkedHashMap) xStream.fromXML(xmlString);
+            ArrayList lMapList = (ArrayList) xStream.fromXML(xmlString);
+
+            return lMapList;
+        } catch (Exception err) {
+            log.error(err);
+        }
+
+        return null;
+
+    }
+
+}
diff --git a/src/main/java/org/apache/openmeetings/documents/LibraryDocumentConverter.java b/src/main/java/org/apache/openmeetings/documents/LibraryDocumentConverter.java
new file mode 100644
index 0000000..a7cb531
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/documents/LibraryDocumentConverter.java
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.documents;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+
+import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.openmeetings.util.stringhandlers.StringComparer;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.io.xml.XppDriver;
+
+public class LibraryDocumentConverter {
+	private static final Logger log = Red5LoggerFactory.getLogger(LibraryDocumentConverter.class, OpenmeetingsVariables.webAppRootKey);
+	
+	private static final String fileExt = ".wml";
+	
+	public static String writeToLocalFolder(String fileName, @SuppressWarnings("rawtypes")ArrayList objList) {
+		try {
+			
+			log.debug("filePath: " + OmFileHelper.getUploadWmlDir().getCanonicalPath());
+			
+			String fileNameExtName = fileName.substring(fileName.length()-4,fileName.length());
+			if (fileNameExtName.equals(fileExt)){
+				fileName = StringComparer.getInstance().compareForRealPaths(fileName.substring(0, fileName.length()-4));
+			} else {
+				fileName = StringComparer.getInstance().compareForRealPaths(fileName.substring(0, fileName.length()));
+			}
+			
+			if (fileName.length()<=0){
+				//return new Long(-21);
+				return "-20";
+			}
+			//Add the Folder for the wmlFiles if it does not exist yet
+			File filePathComplete = new File(OmFileHelper.getUploadWmlDir(), fileName + fileExt);
+			
+			if (filePathComplete.exists()){
+				return "-20";
+			}		
+			
+			XStream xStream = new XStream(new XppDriver());
+			xStream.setMode(XStream.NO_REFERENCES);
+			String xmlString = xStream.toXML(objList);	
+			
+			log.debug("Write to "+filePathComplete);
+			
+			PrintWriter pw = new PrintWriter(new FileWriter(filePathComplete));
+		    pw.println(xmlString);
+		    pw.flush();
+		    pw.close();
+	    
+		    //return new Long(1);
+		    
+		    return filePathComplete.getCanonicalPath();
+		} catch (Exception err){
+			log.error("writeToLocalFolder",err);
+		}
+		
+		return null;
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/documents/LibraryDocuments.java b/src/main/java/org/apache/openmeetings/documents/LibraryDocuments.java
new file mode 100644
index 0000000..54d10ba
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/documents/LibraryDocuments.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.documents;
+
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class LibraryDocuments {
+	
+	private static final Logger log = Red5LoggerFactory.getLogger(LibraryDocuments.class, OpenmeetingsVariables.webAppRootKey);
+
+	private static LibraryDocuments instance;
+
+	private LibraryDocuments() {}
+
+	public static synchronized LibraryDocuments getInstance() {
+		if (instance == null) {
+			log.debug("instance created");
+			instance = new LibraryDocuments();
+		}
+		return instance;
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/documents/LibraryWmlLoader.java b/src/main/java/org/apache/openmeetings/documents/LibraryWmlLoader.java
new file mode 100644
index 0000000..b7f6f96
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/documents/LibraryWmlLoader.java
@@ -0,0 +1,252 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.documents;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+
+import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.dom4j.Element;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.io.xml.XppDriver;
+
+public class LibraryWmlLoader {
+	
+	private static final Logger log = Red5LoggerFactory.getLogger(LibraryWmlLoader.class, OpenmeetingsVariables.webAppRootKey);
+	
+	private static final String fileExt = ".wml";
+	
+	@SuppressWarnings({ "rawtypes" })
+	public ArrayList loadWmlFile(String fileName){
+		try {
+			String name = fileName;
+			if (!name.endsWith(fileExt)) {
+				name += fileExt;
+			}
+			File filepathComplete = new File(OmFileHelper.getUploadWmlDir(), name);
+			log.debug("filepathComplete: "+filepathComplete);
+			
+			XStream xStream = new XStream(new XppDriver());
+			xStream.setMode(XStream.NO_REFERENCES);
+			
+			BufferedReader reader = new BufferedReader(new FileReader(filepathComplete));
+		    String xmlString = "";
+		    while (reader.ready()) {
+		    	xmlString += reader.readLine();
+		    }
+		    reader.close();
+		    //lMap = (LinkedHashMap) xStream.fromXML(xmlString);
+		    ArrayList lMapList = (ArrayList) xStream.fromXML(xmlString);
+			
+			return lMapList;
+		} catch (Exception err){
+			log.error("loadWmlFile",err);
+		}
+		
+		return null;
+		
+	}
+	
+	/**
+	 * @deprecated
+	 * @param paintElement
+	 * @param subMap
+	 */
+	@SuppressWarnings({ "unused", "rawtypes" })
+	private void createListObjectPaintByNode(Element paintElement, LinkedHashMap<Integer,Object> subMap){
+		try {
+			
+			LinkedHashMap<Integer,LinkedHashMap> pointMap = new LinkedHashMap<Integer,LinkedHashMap>();
+			Element pointElements = paintElement.element("points");
+			Integer k = 0;
+			
+			for ( Iterator i = pointElements.elementIterator( "point" ); i.hasNext(); ) {
+				Element pointElement = (Element) i.next();
+				LinkedHashMap<Integer,Object> singlePoint = new LinkedHashMap<Integer,Object>();
+				singlePoint.put(0, pointElement.getName());
+				singlePoint.put(1, Integer.valueOf(pointElement.attribute("val1").getText()).intValue());
+				singlePoint.put(2, Integer.valueOf(pointElement.attribute("val2").getText()).intValue());
+				singlePoint.put(3, Integer.valueOf(pointElement.attribute("val3").getText()).intValue());
+				singlePoint.put(4, Integer.valueOf(pointElement.attribute("val4").getText()).intValue());
+				pointMap.put(k, singlePoint);
+				log.debug("createListObjectPaintByNode"+singlePoint);
+				k++;
+			}
+			subMap.put(1, pointMap);
+
+			subMap.put(2, paintElement.element("fillstyle").getText());
+			subMap.put(3, Integer.valueOf(paintElement.element("linewidth").getText()).intValue());
+			subMap.put(4, Integer.valueOf(paintElement.element("strokestyle").getText()).intValue());
+			subMap.put(5, Integer.valueOf(paintElement.element("counter").getText()).intValue());
+			subMap.put(6, Float.valueOf(paintElement.element("x").getText()).floatValue());
+			subMap.put(7, Float.valueOf(paintElement.element("y").getText()).floatValue());
+			subMap.put(8, Float.valueOf(paintElement.element("width").getText()).floatValue());
+			subMap.put(9, Float.valueOf(paintElement.element("height").getText()).floatValue());
+			subMap.put(10, paintElement.element("layername").getText());		
+			
+		} catch (Exception err) {
+			log.error("createListObjectPaintByNode",err);
+		}
+	}
+	
+	/**
+	 * @deprecated
+	 * @param paintElement
+	 * @param subMap
+	 */
+	public void createListObjectLetterByNode(Element paintElement, LinkedHashMap<Integer,Object> subMap){
+		try {
+
+			subMap.put(1, paintElement.element("textforfield").getText());
+			subMap.put(2, Integer.valueOf(paintElement.element("fgcolor").getText()).intValue());
+			subMap.put(3, Integer.valueOf(paintElement.element("fontsize").getText()).intValue());
+			subMap.put(4, paintElement.element("fontstyle").getText());
+			subMap.put(5, Integer.valueOf(paintElement.element("counter").getText()).intValue());
+			subMap.put(6, Float.valueOf(paintElement.element("x").getText()).floatValue());
+			subMap.put(7, Float.valueOf(paintElement.element("y").getText()).floatValue());			
+			subMap.put(8, Float.valueOf(paintElement.element("width").getText()).floatValue());		
+			subMap.put(9, Float.valueOf(paintElement.element("height").getText()).floatValue());		
+			subMap.put(10, paintElement.element("layername").getText());
+			
+		} catch (Exception err) {
+			log.error("createListObjectLetterByNode",err);
+		}
+	}	
+	
+	/**
+	 * @deprecated
+	 * @param paintElement
+	 * @param subMap
+	 */
+	public void createListObjectImageByNode(Element paintElement, LinkedHashMap<Integer,Object> subMap){
+		try {
+
+			subMap.put(1, paintElement.element("urlname").getText());
+			subMap.put(2, paintElement.element("baseurl").getText());
+			subMap.put(3, paintElement.element("filename").getText());
+			subMap.put(4, paintElement.element("modulename").getText());
+			subMap.put(5, paintElement.element("parentpath").getText());
+			subMap.put(6, paintElement.element("room").getText());
+			subMap.put(7, paintElement.element("domain").getText());
+			subMap.put(8, Integer.valueOf(paintElement.element("counter").getText()).intValue());
+			subMap.put(9, Float.valueOf(paintElement.element("x").getText()).floatValue());
+			subMap.put(10, Float.valueOf(paintElement.element("y").getText()).floatValue());
+			subMap.put(11, Float.valueOf(paintElement.element("width").getText()).floatValue());
+			subMap.put(12, Float.valueOf(paintElement.element("height").getText()).floatValue());
+			subMap.put(13, paintElement.element("layername").getText());		
+			
+		} catch (Exception err) {
+			log.error("createListObjectImageByNode",err);
+		}
+	}	
+	
+	/**
+	 * @deprecated
+	 * @param paintElement
+	 * @param subMap
+	 */
+	public void createListObjectObjecByNode(Element paintElement, LinkedHashMap<Integer,Object> subMap){
+		try {	
+			
+			subMap.put(1, paintElement.element("fillstyle").getText());
+			subMap.put(2, paintElement.element("linewidth").getText());
+			subMap.put(3, Integer.valueOf(paintElement.element("strokestyle").getText()).intValue());
+			subMap.put(4, Float.valueOf(paintElement.element("startx").getText()).floatValue());
+			subMap.put(5, Float.valueOf(paintElement.element("starty").getText()).floatValue());
+			subMap.put(6, Float.valueOf(paintElement.element("endx").getText()).floatValue());
+			subMap.put(7, Float.valueOf(paintElement.element("endy").getText()).floatValue());
+			subMap.put(8, Integer.valueOf(paintElement.element("counter").getText()).intValue());
+			subMap.put(9, Float.valueOf(paintElement.element("x").getText()).floatValue());
+			subMap.put(10, Float.valueOf(paintElement.element("y").getText()).floatValue());
+			subMap.put(11, Float.valueOf(paintElement.element("width").getText()).floatValue());
+			subMap.put(12, Float.valueOf(paintElement.element("height").getText()).floatValue());
+			subMap.put(13, paintElement.element("layername").getText());
+			
+		} catch (Exception err) {
+			log.error("createListObjectObjecByNode",err);
+		}
+	}		
+	
+	/**
+	 * @deprecated
+	 * @param paintElement
+	 * @param subMap
+	 */
+	public void createListObjectRectAndEllipseByNode(Element paintElement, LinkedHashMap<Integer,Object> subMap){
+		try {	
+			
+			subMap.put(1, Integer.valueOf(paintElement.element("stroke").getText()).intValue());
+			subMap.put(2, paintElement.element("line").getText());
+			subMap.put(3, Integer.valueOf(paintElement.element("counter").getText()).intValue());
+			subMap.put(4, Float.valueOf(paintElement.element("x").getText()).floatValue());		
+			subMap.put(5, Float.valueOf(paintElement.element("y").getText()).floatValue());
+			subMap.put(6, Float.valueOf(paintElement.element("width").getText()).floatValue());
+			subMap.put(7, Float.valueOf(paintElement.element("height").getText()).floatValue());
+			subMap.put(8, paintElement.element("layername").getText());
+
+		} catch (Exception err) {
+			log.error("createListObjectObjecByNode",err);
+		}
+	}
+	
+	/**
+	 * @deprecated
+	 * @param paintElement
+	 * @param subMap
+	 */
+	public void createListObjectSWFByNode(Element paintElement, LinkedHashMap<Integer,Object> subMap){
+		try {
+
+			subMap.put(1, paintElement.element("urlname").getText());
+			subMap.put(2, paintElement.element("baseurl").getText());
+			subMap.put(3, paintElement.element("filename").getText());
+			subMap.put(4, paintElement.element("modulename").getText());
+			subMap.put(5, paintElement.element("parentpath").getText());
+			subMap.put(6, paintElement.element("room").getText());
+			subMap.put(7, paintElement.element("domain").getText());
+			subMap.put(8, Integer.valueOf(paintElement.element("slideNumber").getText()).intValue());
+			subMap.put(9, Float.valueOf(paintElement.element("innerx").getText()).floatValue());
+			subMap.put(10, Float.valueOf(paintElement.element("innery").getText()).floatValue());
+			subMap.put(11, Float.valueOf(paintElement.element("innerwidth").getText()).floatValue());
+			subMap.put(12, Float.valueOf(paintElement.element("innerheight").getText()).floatValue());
+			subMap.put(13, Integer.valueOf(paintElement.element("zoomlevel").getText()).intValue());
+			subMap.put(14, Float.valueOf(paintElement.element("initwidth").getText()).floatValue());
+			subMap.put(15, Float.valueOf(paintElement.element("initheight").getText()).floatValue());
+			subMap.put(16, Integer.valueOf(paintElement.element("currentzoom").getText()).intValue());
+			subMap.put(17, Integer.valueOf(paintElement.element("counter").getText()).intValue());
+			subMap.put(18, Float.valueOf(paintElement.element("x").getText()).floatValue());
+			subMap.put(19, Float.valueOf(paintElement.element("y").getText()).floatValue());
+			subMap.put(20, Float.valueOf(paintElement.element("width").getText()).floatValue());
+			subMap.put(21, Float.valueOf(paintElement.element("height").getText()).floatValue());
+			subMap.put(22, paintElement.element("layername").getText());		
+			
+		} catch (Exception err) {
+			log.error("createListObjectImageByNode",err);
+		}
+	}		
+	
+}
diff --git a/src/main/java/org/apache/openmeetings/documents/LoadLibraryPresentation.java b/src/main/java/org/apache/openmeetings/documents/LoadLibraryPresentation.java
new file mode 100644
index 0000000..343417a
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/documents/LoadLibraryPresentation.java
@@ -0,0 +1,149 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.documents;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.util.Iterator;
+
+import org.apache.openmeetings.db.dto.file.LibraryPresenationThumbs;
+import org.apache.openmeetings.db.dto.file.LibraryPresentation;
+import org.apache.openmeetings.db.dto.file.LibraryPresentationFile;
+import org.apache.openmeetings.db.dto.file.LibraryPresentationThumb;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.dom4j.Document;
+import org.dom4j.Element;
+import org.dom4j.io.SAXReader;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class LoadLibraryPresentation {
+	private static final Logger log = Red5LoggerFactory.getLogger(LoadLibraryPresentation.class, OpenmeetingsVariables.webAppRootKey);
+	
+	public static LibraryPresentation parseLibraryFileToObject(File file){
+		try {
+			LibraryPresentation lPresentation = new LibraryPresentation();
+			
+	        SAXReader reader = new SAXReader();
+	        Document document = reader.read( new FileInputStream(file) );
+	        
+	        Element root = document.getRootElement();
+	        
+	        for ( @SuppressWarnings("unchecked")
+			Iterator<Element> i = root.elementIterator(); i.hasNext(); ) {
+	        	
+	            Element item = i.next();
+	            
+	            log.debug(item.getName());
+	            
+	            String nodeVal = item.getName();
+	            
+	            //LinkedHashMap<String,Object> subMap = new LinkedHashMap<String,Object>();
+	            
+	            //subMap.put("name", nodeVal);
+
+				if (nodeVal.equals("originalDocument")){
+					
+					lPresentation.setOriginalDocument(createListObjectLibraryByFileDocument(item));
+					
+				} else if (nodeVal.equals("pdfDocument")){
+					
+					lPresentation.setPdfDocument(createListObjectLibraryByFileDocument(item));
+					
+				} else if (nodeVal.equals("swfDocument")){
+					
+					lPresentation.setSwfDocument(createListObjectLibraryByFileDocument(item));
+					
+				} else if (nodeVal.equals("thumbs")) {
+					
+					lPresentation.setThumbs(createListObjectLibraryByFileDocumentThumbs(item));
+					
+				} else {
+					throw new Exception("Unkown Library type: "+nodeVal);
+				}
+	            
+	        }
+	        
+	        log.debug("Returning presentation file object");
+			
+			return lPresentation;
+		} catch (Exception err) {
+			log.error("parseLibraryFileToObject",err);
+			return null;
+		}
+	}
+	
+	public static LibraryPresentationFile createListObjectLibraryByFileDocument(Element fileElement){
+		try {
+			
+			log.info("createListObjectLibraryByFileDocument"+fileElement);
+			
+			LibraryPresentationFile libraryPresentationFile = new LibraryPresentationFile();
+			libraryPresentationFile.setName(fileElement.getName());
+			libraryPresentationFile.setFilename(fileElement.getText());
+			libraryPresentationFile.setLastmod(fileElement.attribute("lastmod").getText());
+			libraryPresentationFile.setSize(Long.valueOf(fileElement.attribute("size").getText()).longValue());
+			
+			return libraryPresentationFile;
+			
+		} catch (Exception err) {
+			log.error("createListObjectLibraryByFileDocument",err);
+		}
+		return null;
+	}		
+	
+	public static LibraryPresenationThumbs createListObjectLibraryByFileDocumentThumbs(Element fileElement){
+		try {
+			
+			LibraryPresenationThumbs thumbMap = new LibraryPresenationThumbs();
+			thumbMap.setName(fileElement.getName());
+			
+			Integer k = 0;
+			for ( @SuppressWarnings("unchecked")
+			Iterator<Element> i = fileElement.elementIterator(); i.hasNext(); i.next()) {
+				k++;
+			}
+			
+			thumbMap.setThumbs(new LibraryPresentationThumb[k]);
+			
+			
+			k = 0;
+			for ( @SuppressWarnings("unchecked")
+			Iterator<Element> i = fileElement.elementIterator(); i.hasNext(); ) {
+				Element thumbElement = i.next();
+				//log.info("createListObjectLibraryByFileDocumentThumbs"+thumbElement);
+				LibraryPresentationThumb singleThumb = new LibraryPresentationThumb();
+				singleThumb.setName(thumbElement.getName());
+				singleThumb.setFilename(thumbElement.getText());
+				singleThumb.setLastmod(thumbElement.attribute("lastmod").getText());
+				singleThumb.setSize(Long.valueOf(thumbElement.attribute("size").getText()).longValue());
+				thumbMap.getThumbs()[k] = singleThumb;
+				k++;
+			}
+			
+			
+			return thumbMap;
+			
+		} catch (Exception err) {
+			log.error("createListObjectLibraryByFileDocumentThumbs",err);
+		}
+		return null;
+	}	
+	
+}
diff --git a/src/main/java/org/apache/openmeetings/documents/LoadLibraryPresentationToObject.java b/src/main/java/org/apache/openmeetings/documents/LoadLibraryPresentationToObject.java
new file mode 100644
index 0000000..179bb0a
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/documents/LoadLibraryPresentationToObject.java
@@ -0,0 +1,126 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.documents;
+
+import java.util.Iterator;
+import java.util.LinkedList;
+
+import org.apache.openmeetings.db.dto.file.FilesObject;
+import org.apache.openmeetings.db.dto.file.PresentationObject;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.dom4j.Document;
+import org.dom4j.Element;
+import org.dom4j.io.SAXReader;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class LoadLibraryPresentationToObject {
+	
+	private static final Logger log = Red5LoggerFactory.getLogger(LoadLibraryPresentationToObject.class, OpenmeetingsVariables.webAppRootKey);
+	
+	private static LoadLibraryPresentationToObject instance;
+
+	private LoadLibraryPresentationToObject() {}
+
+	public static synchronized LoadLibraryPresentationToObject getInstance() {
+		if (instance == null) {
+			instance = new LoadLibraryPresentationToObject();
+		}
+		return instance;
+	}	
+	
+	public PresentationObject parseLibraryFileToObject(String filePath){
+		try {
+			PresentationObject lMap = new PresentationObject();
+			
+	        SAXReader reader = new SAXReader();
+	        Document document = reader.read(filePath);
+	        
+	        Element root = document.getRootElement();
+	        Integer k = 0;
+	        
+	        for (@SuppressWarnings("unchecked")
+			Iterator<Element> i = root.elementIterator(); i.hasNext(); ) {
+	            Element item = i.next();
+	            log.error(item.getName());
+	            
+	            String nodeVal = item.getName();
+	            
+				if (nodeVal.equals("originalDocument")){
+					lMap.setOriginalDocument(this.createListObjectLibraryByFileDocument(item));
+				} else if (nodeVal.equals("pdfDocument")){
+					lMap.setPdfDocument(this.createListObjectLibraryByFileDocument(item));
+				} else if (nodeVal.equals("swfDocument")) {
+					lMap.setSwfDocument(this.createListObjectLibraryByFileDocument(item));
+				} else if (nodeVal.equals("thumbs")) {
+					lMap.setThumbs(this.createListObjectLibraryByFileDocumentThumbs(item));
+				}
+	            
+	            k++;
+
+	        }
+			
+			return lMap;
+		} catch (Exception err) {
+			log.error("parseLibraryFileToObject",err);
+			return null;
+		}
+	}
+	
+	public FilesObject createListObjectLibraryByFileDocument(Element fileElement){
+		try {
+			
+			log.info("createListObjectLibraryByFileDocument"+fileElement);
+			FilesObject fileObject = new FilesObject();
+			fileObject.setFileName(fileElement.getText());
+			fileObject.setLastModified(fileElement.attribute("lastmod").getText());
+			fileObject.setFileBytes(fileElement.attribute("size").getText());
+			return fileObject;
+		} catch (Exception err) {
+			log.error("createListObjectLibraryByFileDocument",err);
+		}
+		return null;
+	}		
+	
+	public LinkedList<FilesObject> createListObjectLibraryByFileDocumentThumbs(Element fileElement){
+		try {
+
+			LinkedList<FilesObject> thumbMap = new LinkedList<FilesObject>();
+			
+			for (@SuppressWarnings("unchecked")
+			Iterator<Element> i = fileElement.elementIterator(); i.hasNext(); ) {
+				Element thumbElement = i.next();
+				log.info("createListObjectLibraryByFileDocumentThumbs"+thumbElement);
+				FilesObject singleThumb = new FilesObject();
+				singleThumb.setFileName(thumbElement.getName());
+				singleThumb.setFileNamePure(thumbElement.getText());
+				singleThumb.setLastModified(thumbElement.attribute("lastmod").getText());
+				singleThumb.setFileBytes(thumbElement.attribute("size").getText());
+				thumbMap.add(singleThumb);
+			}
+			
+			return thumbMap;
+			
+		} catch (Exception err) {
+			log.error("createListObjectLibraryByFileDocumentThumbs",err);
+		}
+		return null;
+	}	
+	
+}
diff --git a/src/main/java/org/apache/openmeetings/ldap/LdapAuthBase.java b/src/main/java/org/apache/openmeetings/ldap/LdapAuthBase.java
new file mode 100644
index 0000000..8cbc937
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/ldap/LdapAuthBase.java
@@ -0,0 +1,269 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.ldap;
+
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Properties;
+import java.util.Vector;
+
+import javax.naming.Context;
+import javax.naming.NamingEnumeration;
+import javax.naming.NamingException;
+import javax.naming.directory.Attribute;
+import javax.naming.directory.Attributes;
+import javax.naming.directory.DirContext;
+import javax.naming.directory.InitialDirContext;
+import javax.naming.directory.SearchControls;
+import javax.naming.directory.SearchResult;
+
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+
+/**
+ * 
+ * @author o.becherer
+ * 
+ * BaseClass for optional LDAP Authentification
+ *
+ */
+public class LdapAuthBase {
+	/** LdapConnectionUrl */
+	private String ldap_connection_url = "";
+	
+	/** LdapServer Login distinguished name */
+	private String ldap_admin_dn = "";
+	
+	/** LdapServer Passwd */
+	private String ldap_passwd = "";
+		
+	/** Security Authentification Type */
+	private String ldap_auth_type = "simple";
+	
+	/** Directory Context */
+	private DirContext authContext = null;
+	
+	/** ContextFactory */
+	private static final String CONTEXT_FACTORY = "com.sun.jndi.ldap.LdapCtxFactory";
+	
+	public static final String LDAP_AUTH_TYPE_SIMPLE = "simple";
+	public static final String LDAP_AUTH_TYPE_NONE = "none";
+	
+	private static final Logger log = Red5LoggerFactory.getLogger(LdapAuthBase.class, OpenmeetingsVariables.webAppRootKey);
+
+	
+	/**
+	 * Configuring LdapConnection
+	 * @param connectionUrl
+	 * @param admin
+	 * @param passwd
+	 * @param base
+	 * @param authType
+	 */
+	//------------------------------------------------------------------------------------------------------
+	public LdapAuthBase(String connectionUrl, String admin_dn, String passwd, String authType){
+		log.debug("LdapAuthBase");
+		
+		this.ldap_connection_url = connectionUrl;
+		this.ldap_admin_dn = admin_dn;
+		this.ldap_passwd = passwd;
+		this.ldap_auth_type = authType;
+	}
+	//------------------------------------------------------------------------------------------------------
+	
+	
+	/**
+	 * Autentificate User
+	 * @param username
+	 * @param passwd
+	 */
+	//-------------------------------------------------------------------------------------------------------
+	public boolean authenticateUser(String username, String passwd){
+		log.debug("authenticateUser");
+		
+		Properties ldapAuthenticateProperties = new Properties();
+	    ldapAuthenticateProperties.put(Context.PROVIDER_URL, ldap_connection_url);
+	    ldapAuthenticateProperties.put(Context.INITIAL_CONTEXT_FACTORY, CONTEXT_FACTORY);
+	    ldapAuthenticateProperties.put(Context.REFERRAL, "follow");
+	    ldapAuthenticateProperties.put(Context.SECURITY_AUTHENTICATION, ldap_auth_type);
+	    ldapAuthenticateProperties.put(Context.SECURITY_PRINCIPAL, username);
+	    ldapAuthenticateProperties.put(Context.SECURITY_CREDENTIALS, passwd);
+	    ldapAuthenticateProperties.put("java.naming.ldap.referral.bind", "true");
+		
+	    if(ldap_admin_dn == null) {
+	    	ldap_admin_dn = "";
+	    }
+	    
+	    if(!ldap_auth_type.equals(LDAP_AUTH_TYPE_NONE) && ldap_admin_dn.length() > 0){
+	    	log.debug("\n\nAuthentification to LDAP - Server start");
+	    	try {
+	    		loginToLdapServer();
+	    	
+	    		authContext = new InitialDirContext(ldapAuthenticateProperties);
+	    	} catch (Exception ae){
+	    		log.error("\n\nAuthentification on LDAP Server failed : " + ae.getMessage());
+	    		log.error("[Authentification on LDAP Server failed]",ae);
+	    		return false;
+	    	}
+	    }
+	    
+	    else{
+	    	log.debug("\n\nConnection to LDAP - Server start (without Server login)");
+	    	try{
+	    		authContext = new InitialDirContext(ldapAuthenticateProperties);
+	    	}catch(Exception e){
+	    		log.error("\n\nConnection to LDAP Server failed : " + e.getMessage());
+	    		log.error("[Connection to LDAP Server failed]",e);
+	    		return false;
+	    	}
+	    }
+	    
+	    return true;
+		
+	}
+	//-------------------------------------------------------------------------------------------------------
+	
+	
+	/**
+	 * Login to LdapServer
+	 */
+	//-------------------------------------------------------------------------------------------------------
+	private void loginToLdapServer() throws Exception{
+		log.debug("loginToLdapServer");
+		
+		Hashtable<String, String> env = new Hashtable<String, String>();
+		
+		env.put(Context.INITIAL_CONTEXT_FACTORY, CONTEXT_FACTORY);
+		env.put(Context.PROVIDER_URL, ldap_connection_url);
+		env.put(Context.SECURITY_AUTHENTICATION, ldap_auth_type);
+		env.put(Context.SECURITY_PRINCIPAL, ldap_admin_dn);
+		env.put(Context.SECURITY_CREDENTIALS, ldap_passwd);
+		
+		authContext = new InitialDirContext(env);
+		
+	}
+	//-------------------------------------------------------------------------------------------------------
+	
+	
+	 /**
+	  * @param searchScope LDAP Url to search within
+	  * @param filter LDAP Filter
+	  * @param attributes Attributes to extract from LDAP Search
+	  */
+	//-------------------------------------------------------------------------------------------------------
+	public Vector<HashMap<String, String>> getData(String searchScope, String filter, List<String> attributes){
+		log.debug("getData");
+		
+		// Searchparams
+		SearchControls constraints = new SearchControls();
+		 
+		// Recursive Search
+		constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
+
+		// Result
+		Vector<HashMap<String, String>>  result = new Vector<HashMap<String, String>>() ;
+		
+		try{
+			// search
+			NamingEnumeration<SearchResult> results = authContext.search(searchScope, filter, constraints);
+			
+			// Stepping through the data
+			while (results != null && results.hasMore()) {
+			     HashMap<String, String> innerMap = new HashMap<String, String>();
+			     
+				 // Next result
+			     SearchResult si = results.next();
+			     
+			     if(si == null){
+			    	 continue;
+			     }
+			     
+			     // Attribute
+			     javax.naming.directory.Attributes attrs = si.getAttributes();
+			     
+			     if(attrs != null){
+			    	 for(int i = 0; i < attributes.size(); i++){
+			    		 
+			    		 String key = attributes.get(i);
+			    		 String val = "";
+			    		
+			    		 Attribute but = attrs.get(key);
+			    		 
+			    		 if(but!= null){
+			    		 	 Object obj = but.get();
+				    		 
+				    		 if(obj != null)
+				    			 val = String.valueOf(obj);
+			    		 }
+			    		 innerMap.put(key,val );
+			    	 }
+			     }
+			     
+			     result.add(innerMap);
+			     
+			    
+			  }
+		}catch(Exception e){
+			log.error("Error occured on LDAP Search : " , e);
+		}
+		
+		return result;
+	}
+	
+	//-------------------------------------------------------------------------------------------------------
+
+	/**
+	 * @param searchBase Ldap base to begin de SUB scope search for the userDN
+	 * @param searchFilter Ldap filter to search only for the specified loginame while looking for the userDN
+	 * @param ldap_fieldname_user_principal ldap sttribute name that contains the user loginame
+	 * @return
+	 */
+	public HashMap<String, String> getUidCnHashMap(String searchBase, String searchFilter, String ldap_fieldname_user_principal) {
+		HashMap<String, String> uidCnDictionary = new HashMap<String, String>();
+
+		SearchControls searchCtls = new SearchControls();
+		searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
+		NamingEnumeration<SearchResult> results = null;
+		try {
+			results = authContext.search(searchBase, searchFilter,  searchCtls);
+			while (results.hasMore()) {
+				SearchResult searchResult = results.next();
+				// 'cn' gets the name of the entry relative to searchbase for instance: "uid=user,ou=people"
+				// The entry DN is found by appending the searchbase. For instance if searchbase 
+				// is (dc=mydomain,dc=org), then DN="uid=user,ou=people,dc=mydomain,dc=org"
+				String cn = searchResult.getName();
+				Attributes attributes = searchResult.getAttributes();
+				Attribute attrib = attributes.get(ldap_fieldname_user_principal);
+				
+				if (attrib != null) {
+					String uid = (String) attrib.get();
+					uidCnDictionary.put(uid, cn);
+				}
+			}
+		} catch (NamingException e) {
+			log.error("Error occured on LDAP Search : " + e.getMessage());
+			log.error("Error occured on LDAP Search : " , e);
+		}
+		return uidCnDictionary;
+	}
+	
+}
diff --git a/src/main/java/org/apache/openmeetings/ldap/LdapLoginManagement.java b/src/main/java/org/apache/openmeetings/ldap/LdapLoginManagement.java
new file mode 100644
index 0000000..b0f1207
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/ldap/LdapLoginManagement.java
@@ -0,0 +1,815 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.ldap;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAUT_LANG_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Random;
+import java.util.UUID;
+import java.util.Vector;
+
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.server.LdapConfigDao;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.ILdapLoginManagement;
+import org.apache.openmeetings.db.dao.user.StateDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.db.entity.server.LdapConfig;
+import org.apache.openmeetings.db.entity.user.State;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.User.Type;
+import org.apache.openmeetings.db.util.TimezoneUtil;
+import org.apache.openmeetings.ldap.config.ConfigReader;
+import org.apache.openmeetings.remote.util.SessionVariablesUtil;
+import org.apache.openmeetings.util.OmFileHelper;
+import org.red5.logging.Red5LoggerFactory;
+import org.red5.server.api.IClient;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * Management of optional LDAP Login
+ * 
+ * @author o.becherer
+ * 
+ */
+public class LdapLoginManagement implements ILdapLoginManagement {
+	private static final Logger log = Red5LoggerFactory.getLogger(LdapLoginManagement.class, webAppRootKey);
+
+	@Autowired
+	private SessiondataDao sessiondataDao;
+	@Autowired
+	private ConfigurationDao configurationDao;
+	@Autowired
+	private UserManager userManager;
+	@Autowired
+	private StateDao statemanagement;
+	@Autowired
+	private LdapConfigDao ldapConfigDao;
+	@Autowired
+	private UserDao usersDao;
+	@Autowired
+	private TimezoneUtil timezoneUtil;
+
+	// ConfigConstants
+	public static final String CONFIGKEY_LDAP_URL = "ldap_conn_url";
+	public static final String CONFIGKEY_LDAP_ADMIN_DN = "ldap_admin_dn";
+	public static final String CONFIGKEY_LDAP_ADMIN_PASSWD = "ldap_passwd";
+	public static final String CONFIGKEY_LDAP_SEARCH_SCOPE = "ldap_search_base";
+	public static final String CONFIGKEY_LDAP_SERVER_TYPE = "ldap_server_type"; // for OpenLDAP use only
+	public static final String CONFIGKEY_LDAP_AUTH_TYPE = "ldap_auth_type";
+
+	public static final String CONFIGKEY_LDAP_FIELDNAME_USER_PRINCIPAL = "field_user_principal";
+	public static final String CONFIGKEY_LDAP_SYNC_PASSWD_OM = "ldap_sync_password_to_om"; // 'yes' or 'no'
+
+	public static final String CONFIGKEY_LDAP_USE_LOWER_CASE = "ldap_use_lower_case";
+	
+	public static final String CONFIGKEY_LDAP_TIMEZONE_NAME = "ldap_user_timezone";
+	
+	/*
+	//for future use (lemeur)
+	public static final String CONFIGKEY_LDAP_USER_EXTRAFILTER = "ldap_user_extrafilter";
+	public static final String CONFIGKEY_LDAP_GROUP_FILTER_NUM = "ldap_group_filter_num";
+	public static final String CONFIGKEY_LDAP_GROUP_FILTER_NAME_PREFIX = "ldap_group_filter_name_";
+	public static final String CONFIGKEY_LDAP_GROUP_FILTER_BASE_PREFIX = "ldap_group_filter_base_";
+	public static final String CONFIGKEY_LDAP_GROUP_FILTER_TYPE_PREFIX = "ldap_group_filter_type_";
+	public static final String CONFIGKEY_LDAP_GROUP_FILTER_TEXT_PREFIX = "ldap_group_filter_text_";
+	*/
+	public static final String CONFIGKEY_LDAP_FILTER_ADD = "ldap_filter_add";
+
+	// LDAP default attributes mapping
+	public static final String LDAP_KEY_LASTNAME = "sn";
+	public static final String LDAP_KEY_FIRSTNAME = "givenName";
+	public static final String LDAP_KEY_MAIL = "mail";
+	public static final String LDAP_KEY_STREET = "streetAddress";
+	public static final String LDAP_KEY_ADDITIONAL_NAME = "description";
+	public static final String LDAP_KEY_FAX = "facsimileTelephoneNumber";
+	public static final String LDAP_KEY_ZIP = "postalCode";
+	public static final String LDAP_KEY_COUNTRY = "co";
+	public static final String LDAP_KEY_TOWN = "l";
+	public static final String LDAP_KEY_PHONE = "telephoneNumber";
+	public static final String LDAP_KEY_TIMEZONE = "timezone";
+	public static final String LDAP_KEY_PICTURE_URI = "pictureUri";
+
+	// LDAP custom attribute mapping keys
+	public static final String CONFIGKEY_LDAP_KEY_LASTNAME = "ldap_user_attr_lastname";
+	public static final String CONFIGKEY_LDAP_KEY_FIRSTNAME = "ldap_user_attr_firstname";
+	public static final String CONFIGKEY_LDAP_KEY_MAIL = "ldap_user_attr_mail";
+	public static final String CONFIGKEY_LDAP_KEY_STREET = "ldap_user_attr_street";
+	public static final String CONFIGKEY_LDAP_KEY_ADDITIONAL_NAME = "ldap_user_attr_additionalname";
+	public static final String CONFIGKEY_LDAP_KEY_FAX = "ldap_user_attr_fax";
+	public static final String CONFIGKEY_LDAP_KEY_ZIP = "ldap_user_attr_zip";
+	public static final String CONFIGKEY_LDAP_KEY_COUNTRY = "ldap_user_attr_country";
+	public static final String CONFIGKEY_LDAP_KEY_TOWN = "ldap_user_attr_town";
+	public static final String CONFIGKEY_LDAP_KEY_PHONE = "ldap_user_attr_phone";
+	public static final String CONFIGKEY_LDAP_PICTURE_URI = "ldap_user_picture_uri";
+
+	/**
+	 * Determine if is a supported Auth Type
+	 * 
+	 * @param authType
+	 */
+	// -------------------------------------------------------------------------------------------------------
+	public static boolean isValidAuthType(String authType) {
+		log.debug("isValidAuthType");
+
+		if (authType != null) {
+			if (!authType.isEmpty()) {
+				if (authType
+						.equalsIgnoreCase(LdapAuthBase.LDAP_AUTH_TYPE_SIMPLE))
+					return true;
+				if (authType.equalsIgnoreCase(LdapAuthBase.LDAP_AUTH_TYPE_NONE))
+					return true;
+			}
+		}
+
+		return false;
+
+	}
+
+	// -------------------------------------------------------------------------------------------------------
+
+	/**
+	 * Ldap Password Synch to OM DB set active ? defaults to true in case of
+	 * error so as to keep old behaviour
+	 */
+	public boolean getLdapPwdSynchStatus(Long ldapConfigId) { // TIBO
+		// Retrieve Configuration Data
+		HashMap<String, String> configData;
+
+		LdapConfig ldapConfig = ldapConfigDao.get(ldapConfigId);
+
+		try {
+			configData = getLdapConfigData(ldapConfig.getConfigFileName());
+		} catch (Exception e) {
+			log.error("Error on getLdapPwdSynchStatus : " + e.getMessage());
+			return true;
+		}
+
+		if (configData == null || configData.size() < 1) {
+			log.error("Error on getLdapPwdSynchStatus : Configurationdata couldnt be retrieved!");
+			return true;
+		}
+
+		// Connection URL
+		String ldap_synch_passwd_to_om = configData
+				.get(CONFIGKEY_LDAP_SYNC_PASSWD_OM);
+		if (ldap_synch_passwd_to_om.equals("no")) {
+			log.debug("getLdapPwdSynchStatus: returns FALSE (val="
+					+ ldap_synch_passwd_to_om + ")");
+			return false;
+		} else {
+			log.debug("getLdapPwdSynchStatus: returns TRUE (val="
+					+ ldap_synch_passwd_to_om + ")");
+			return true;
+		}
+	}
+
+	/**
+	 * Retrieving LdapData from Config
+	 */
+	// ----------------------------------------------------------------------------------------
+	public HashMap<String, String> getLdapConfigData(String ldapConfigfileName)
+			throws Exception {
+		log.debug("LdapLoginmanagement.getLdapConfigData");
+
+		return readConfig(new File(OmFileHelper.getConfDir(), ldapConfigfileName));
+	}
+
+	// ----------------------------------------------------------------------------------------
+
+	/**
+	 * Reading Ldap Config via ConfigReader
+	 */
+	// ----------------------------------------------------------------------------------------
+	private HashMap<String, String> readConfig(File config)
+			throws Exception {
+		log.debug("LdapLoginmanagement.readConfig : " + config);
+
+		if (!config.isFile())
+			return null;
+
+		ConfigReader reader = new ConfigReader();
+		reader.readConfig(config);
+
+		return reader.getConfigMap();
+
+	}
+
+	// ----------------------------------------------------------------------------------------
+
+	/**
+	 * Ldap Login
+	 * 
+	 * Connection Data is retrieved from ConfigurationFile
+	 * 
+	 */
+	// ----------------------------------------------------------------------------------------
+	public Object doLdapLogin(String user, String passwd,
+			Client currentClient, IClient client, String SID, String domain) {
+		log.debug("LdapLoginmanagement.doLdapLogin");
+
+		// Retrieve Configuration Data
+		HashMap<String, String> configData;
+
+		try {
+			configData = getLdapConfigData(domain);
+		} catch (Exception e) {
+			log.error("Error on LdapAuth : " + e.getMessage());
+			return null;
+		}
+
+		if (configData == null || configData.size() < 1) {
+			log.error("Error on LdapLogin : Configurationdata couldnt be retrieved!");
+			return null;
+		}
+
+		// Connection URL
+		String ldap_url = configData.get(CONFIGKEY_LDAP_URL);
+
+		// for OpenLDAP only
+		// LDAP SERVER TYPE to search accordingly
+		String ldap_server_type = configData.get(CONFIGKEY_LDAP_SERVER_TYPE);
+
+		// Username for LDAP SERVER himself
+		String ldap_admin_dn = configData.get(CONFIGKEY_LDAP_ADMIN_DN);
+
+		// Password for LDAP SERVER himself
+		String ldap_passwd = configData.get(CONFIGKEY_LDAP_ADMIN_PASSWD);
+
+		// SearchScope for retrievment of userdata
+		String ldap_search_scope = configData.get(CONFIGKEY_LDAP_SEARCH_SCOPE);
+
+		// FieldName for Users's Principal Name
+		String ldap_fieldname_user_principal = configData
+				.get(CONFIGKEY_LDAP_FIELDNAME_USER_PRINCIPAL);
+
+		// Wether or not we'll store Ldap passwd into OM db
+		boolean ldap_sync_passwd_to_om = "no".equals(configData.get(CONFIGKEY_LDAP_SYNC_PASSWD_OM));
+
+		/*
+		//for future use (lemeur)
+		// Ldap user filter to refine the search
+		String ldap_user_extrafilter = configData.get(CONFIGKEY_LDAP_USER_EXTRAFILTER);
+		
+		// Count of Ldap group filters 
+		String ldap_group_filter_num = configData.get(CONFIGKEY_LDAP_GROUP_FILTER_NUM);
+		
+		// Prefix name of Ldap group filter name
+		String ldap_group_filter_name_prefix = configData.get(CONFIGKEY_LDAP_GROUP_FILTER_NAME_PREFIX);
+		
+		// Prefix name of Ldap group filter base
+		String ldap_group_filter_base_prefix = configData.get(CONFIGKEY_LDAP_GROUP_FILTER_NAME_PREFIX);
+		
+		// Prefix name of Ldap group filter type
+		String ldap_group_filter_type_prefix = configData.get(CONFIGKEY_LDAP_GROUP_FILTER_TYPE_PREFIX);
+		
+		// Prefix name of Ldap group filter text
+		String ldap_group_filter_text_prefix = configData.get(CONFIGKEY_LDAP_GROUP_FILTER_TEXT_PREFIX);
+		*/
+
+		// Get custom Ldap attributes mapping
+		String ldap_user_attr_lastname = configData.get(CONFIGKEY_LDAP_KEY_LASTNAME);
+		String ldap_user_attr_firstname = configData.get(CONFIGKEY_LDAP_KEY_FIRSTNAME);
+		String ldap_user_attr_mail = configData.get(CONFIGKEY_LDAP_KEY_MAIL);
+		String ldap_user_attr_street = configData.get(CONFIGKEY_LDAP_KEY_STREET);
+		String ldap_user_attr_additional_name = configData.get(CONFIGKEY_LDAP_KEY_ADDITIONAL_NAME);
+		String ldap_user_attr_fax = configData.get(CONFIGKEY_LDAP_KEY_FAX);
+		String ldap_user_attr_zip = configData.get(CONFIGKEY_LDAP_KEY_ZIP);
+		String ldap_user_attr_country = configData.get(CONFIGKEY_LDAP_KEY_COUNTRY);
+		String ldap_user_attr_town = configData.get(CONFIGKEY_LDAP_KEY_TOWN);
+		String ldap_user_attr_phone = configData.get(CONFIGKEY_LDAP_KEY_PHONE);
+		String ldap_user_attr_timezone = configData.get(CONFIGKEY_LDAP_TIMEZONE_NAME);
+		String ldap_user_picture_uri = configData.get(CONFIGKEY_LDAP_PICTURE_URI);
+		String ldap_use_lower_case = configData.get(CONFIGKEY_LDAP_USE_LOWER_CASE);
+		String ldap_auth_type = configData.get(CONFIGKEY_LDAP_AUTH_TYPE);
+		String ldap_filter_add = configData.get(CONFIGKEY_LDAP_FILTER_ADD);
+		
+		if (ldap_use_lower_case != null && ldap_use_lower_case.equals("true")) {
+			user = user.toLowerCase();
+		}
+
+		if (ldap_user_attr_lastname == null) {
+			ldap_user_attr_lastname = LDAP_KEY_LASTNAME;
+		}
+		if (ldap_user_attr_firstname == null) {
+			ldap_user_attr_firstname = LDAP_KEY_FIRSTNAME;
+		}
+		if (ldap_user_attr_mail == null) {
+			ldap_user_attr_mail = LDAP_KEY_MAIL;
+		}
+		if (ldap_user_attr_street == null) {
+			ldap_user_attr_street = LDAP_KEY_STREET;
+		}
+		if (ldap_user_attr_additional_name == null) {
+			ldap_user_attr_additional_name = LDAP_KEY_ADDITIONAL_NAME;
+		}
+		if (ldap_user_attr_fax == null) {
+			ldap_user_attr_fax = LDAP_KEY_FAX;
+		}
+		if (ldap_user_attr_zip == null) {
+			ldap_user_attr_zip = LDAP_KEY_ZIP;
+		}
+		if (ldap_user_attr_country == null) {
+			ldap_user_attr_country = LDAP_KEY_COUNTRY;
+		}
+		if (ldap_user_attr_town == null) {
+			ldap_user_attr_town = LDAP_KEY_TOWN;
+		}
+		if (ldap_user_attr_phone == null) {
+			ldap_user_attr_phone = LDAP_KEY_PHONE;
+		}
+		if (ldap_user_attr_timezone == null) {
+			ldap_user_attr_timezone = LDAP_KEY_TIMEZONE;
+		}
+		if (ldap_auth_type == null) {
+			ldap_auth_type = "";
+		}
+		if (ldap_filter_add == null) {
+			ldap_filter_add = "";
+		}
+		
+		if (!isValidAuthType(ldap_auth_type)) {
+			log.error("ConfigKey in Ldap Config contains invalid auth type : '"
+					+ ldap_auth_type + "' -> Defaulting to "
+					+ LdapAuthBase.LDAP_AUTH_TYPE_SIMPLE);
+			ldap_auth_type = LdapAuthBase.LDAP_AUTH_TYPE_SIMPLE;
+		}
+
+		// Filter for Search of UserData
+		String ldap_search_filter = "(" + ldap_fieldname_user_principal + "=" + user + ")";
+		if (!"".equals(ldap_filter_add)) {
+			ldap_filter_add = ldap_filter_add.replaceAll(":", "=");
+			ldap_search_filter = "(&(" + ldap_filter_add + ")(" + ldap_fieldname_user_principal + "=" + user + "))";
+		}
+
+		log.debug("Searching userdata with LDAP Search Filter :" + ldap_search_filter);
+
+		// replace : -> in config = are replaced by : to be able to build valid
+		// key=value pairs
+		ldap_search_scope = ldap_search_scope.replaceAll(":", "=");
+		ldap_admin_dn = ldap_admin_dn.replaceAll(":", "=");
+
+		LdapAuthBase lAuth = new LdapAuthBase(ldap_url, ldap_admin_dn, ldap_passwd, ldap_auth_type);
+
+		log.debug("authenticating admin...");
+		lAuth.authenticateUser(ldap_admin_dn, ldap_passwd);
+
+		log.debug("Checking server type...");
+		// for OpenLDAP only
+		if (ldap_server_type.equalsIgnoreCase("OpenLDAP")) {
+			String ldapUserDN = user;
+			log.debug("LDAP server is OpenLDAP");
+			log.debug("LDAP search base: " + ldap_search_scope);
+			HashMap<String, String> uidCnDictionary = lAuth.getUidCnHashMap(
+					ldap_search_scope, ldap_search_filter, ldap_fieldname_user_principal);
+			if (uidCnDictionary.get(user) != null) {
+				ldapUserDN = uidCnDictionary.get(user) + "," + ldap_search_scope;
+				log.debug("Authentication with DN: " + ldapUserDN);
+			}
+			try {
+				if (!lAuth.authenticateUser(ldapUserDN, passwd)) {
+					log.error(ldapUserDN + " not authenticated.");
+					return new Long(-11);
+				}
+			} catch (Exception e) {
+				log.error("Error on LdapAuth : " + e.getMessage());
+				return null;
+			}
+		} else {
+			try {
+				if (!lAuth.authenticateUser(user, passwd)) {
+					return new Long(-11);
+				}
+			} catch (Exception e) {
+				log.error("Error on LdapAuth : " + e.getMessage());
+				return null;
+			}
+		}
+
+		// check if user already exists
+
+		User u = null;
+
+		try {
+			u = userManager.getUserByLogin(user);
+		} catch (Exception e) {
+			log.error("Error retrieving Userdata : " + e.getMessage());
+		}
+		
+		// Attributes to retrieve from ldap to either create or update the user
+		List<String> attributes = new ArrayList<String>();
+		attributes.add(ldap_user_attr_lastname); // Lastname
+		attributes.add(ldap_user_attr_firstname); // Firstname
+		attributes.add(ldap_user_attr_mail);// mail
+		attributes.add(ldap_user_attr_street); // Street
+		attributes.add(ldap_user_attr_additional_name); // Additional name
+		attributes.add(ldap_user_attr_fax); // Fax
+		attributes.add(ldap_user_attr_zip); // ZIP
+		attributes.add(ldap_user_attr_country); // Country
+		attributes.add(ldap_user_attr_town); // Town
+		attributes.add(ldap_user_attr_phone); // Phone
+		attributes.add(ldap_user_attr_timezone); // timezone
+		if (ldap_user_picture_uri != null) {
+			attributes.add(ldap_user_picture_uri); //picture uri
+		}
+		
+		HashMap<String, String> ldapAttrs = new HashMap<String, String>();
+		ldapAttrs.put("lastnameAttr", ldap_user_attr_lastname);
+		ldapAttrs.put("firstnameAttr", ldap_user_attr_firstname);
+		ldapAttrs.put("mailAttr", ldap_user_attr_mail);
+		ldapAttrs.put("streetAttr", ldap_user_attr_street);
+		ldapAttrs.put("additionalNameAttr", ldap_user_attr_additional_name);
+		ldapAttrs.put("faxAttr", ldap_user_attr_fax);
+		ldapAttrs.put("zipAttr", ldap_user_attr_zip);
+		ldapAttrs.put("countryAttr", ldap_user_attr_country);
+		ldapAttrs.put("townAttr", ldap_user_attr_town);
+		ldapAttrs.put("phoneAttr", ldap_user_attr_phone);
+		ldapAttrs.put("timezoneAttr", ldap_user_attr_timezone);
+		if (ldap_user_picture_uri != null) {
+			ldapAttrs.put("pictureUri", ldap_user_picture_uri);
+		}
+
+		Vector<HashMap<String, String>> result = lAuth.getData(
+				ldap_search_scope, ldap_search_filter, attributes);
+
+		if (result == null || result.size() < 1) {
+			log.error("Error on Ldap request - no result for user " + user);
+			return new Long(-10);
+		}
+		
+		if (result.size() > 1) {
+			log.error("Error on Ldap request - more than one result for user " + user);
+			return null;
+		}
+		
+		HashMap<String, String> userData = result.get(0);
+
+
+		// User not existant in local database -> take over data for referential
+		// integrity
+		if (u == null) {
+			log.debug("user doesnt exist local -> create new");
+
+			try {
+				// Create User with LdapData
+				Long userid;
+				if (ldap_sync_passwd_to_om) {
+					Random r = new Random();
+					String token = UUID.randomUUID().toString() + Long.toString(Math.abs(r.nextLong()), 36);
+					log.debug("Synching Ldap user to OM DB with RANDOM password: " + token);
+					userid = createUserFromLdapData(userData, token, user, ldapAttrs);
+				} else {
+					log.debug("Synching Ldap user to OM DB with password");
+					userid = createUserFromLdapData(userData, passwd, user, ldapAttrs);
+				}
+				log.debug("New User ID : " + userid);
+
+				// If invoked via SOAP this is NULL
+				if (currentClient != null) {
+					currentClient.setUser_id(userid);
+					SessionVariablesUtil.setUserId(client, userid);
+				}
+
+				// Update Session
+				Boolean bool = sessiondataDao.updateUser(SID, userid);
+
+				if (bool == null) {
+					// Exception
+					log.error("Error on Updating Session");
+					return new Long(-1);
+				} else if (!bool) {
+					// invalid Session-Object
+					log.error("Invalid Session Object");
+					return new Long(-35);
+				}
+
+				// Return UserObject
+				User u2 = userManager.getUserById(userid);
+
+				if (u2 == null) {
+					return new Long(-1);
+				}
+
+				u2.setType(Type.ldap);
+
+				// initialize lazy collection
+				userManager.refreshUserObject(u2);
+
+				log.debug("getUserbyId : " + userid + " : " + u2.getLogin());
+
+				return u2;
+			} catch (Exception e) {
+				log.error("Error on Working Userdata : ", e);
+				return new Long(-1);
+			}
+		} else {
+			// User exists, just update necessary values
+			log.debug("User already exists -> Update of current passwd");
+
+			// If invoked via SOAP this is NULL
+			if (currentClient != null) {
+				currentClient.setUser_id(u.getUser_id());
+			}
+
+			// Update Session
+			Boolean bool = sessiondataDao.updateUser(SID, u.getUser_id());
+
+			if (bool == null) {
+				// Exception
+				log.error("Error on Updating Session");
+				return new Long(-1);
+			} else if (!bool) {
+				// invalid Session-Object
+				log.error("Invalid Session Object");
+				return new Long(-35);
+			}
+
+			try {
+				// Update password (could have changed in LDAP)
+				if (ldap_sync_passwd_to_om) {
+					u.updatePassword(configurationDao, passwd);
+				}
+				
+				//update all other attributes in case ldap provides some and the parameter is configured
+				updateUserFromLdap(userData, ldapAttrs, u);
+
+				usersDao.update(u, null);
+			} catch (Exception e) {
+				log.error("Error updating user : " + e.getMessage());
+				return new Long(-1);
+			}
+
+			return u;
+
+		}
+	}
+	
+	// ----------------------------------------------------------------------------------------
+
+	/**
+	 * Creation on User with LDAP - Data AutoCreation of Country if does not exist
+	 * Added to default organization
+	 */
+	// ----------------------------------------------------------------------------------------
+	private Long createUserFromLdapData(HashMap<String, String> userdata,
+			String passwd, String login, HashMap<String, String> ldapAttrs)
+			throws Exception {
+		log.debug("LdapLoginmanagement.createUserFromLdapData");
+
+		// Retrieve Data from LDAP - Data
+
+		String lastname = "lastname";
+		if (userdata.containsKey(ldapAttrs.get("lastnameAttr"))
+				&& userdata.get(ldapAttrs.get("lastnameAttr")) != null)
+			lastname = userdata.get(ldapAttrs.get("lastnameAttr"));
+
+		String firstname = "firstname";
+		if (userdata.containsKey(ldapAttrs.get("firstnameAttr"))
+				&& userdata.get(ldapAttrs.get("firstnameAttr")) != null)
+			firstname = userdata.get(ldapAttrs.get("firstnameAttr"));
+
+		String email = "email";
+		if (userdata.containsKey(ldapAttrs.get("mailAttr"))
+				&& userdata.get(ldapAttrs.get("mailAttr")) != null)
+			email = userdata.get(ldapAttrs.get("mailAttr"));
+
+		String street = "street";
+		if (userdata.containsKey(ldapAttrs.get("streetAttr"))
+				&& userdata.get(ldapAttrs.get("streetAttr")) != null)
+			street = userdata.get(ldapAttrs.get("streetAttr"));
+
+		String additionalname = "additionalname";
+		if (userdata.containsKey(ldapAttrs.get("additionalNameAttr"))
+				&& userdata.get(ldapAttrs.get("additionalNameAttr")) != null)
+			additionalname = userdata.get(ldapAttrs.get("additionalNameAttr"));
+
+		String fax = "fax";
+		if (userdata.containsKey(ldapAttrs.get("faxAttr"))
+				&& userdata.get(ldapAttrs.get("faxAttr")) != null)
+			fax = userdata.get(ldapAttrs.get("faxAttr"));
+
+		String zip = "zip";
+		if (userdata.containsKey(ldapAttrs.get("zipAttr"))
+				&& userdata.get(ldapAttrs.get("zipAttr")) != null)
+			zip = userdata.get(ldapAttrs.get("zipAttr"));
+
+		long state_id = -1;
+		String state = null;
+		if (userdata.containsKey(ldapAttrs.get("countryAttr"))
+				&& userdata.get(ldapAttrs.get("countryAttr")) != null)
+			state = userdata.get(ldapAttrs.get("countryAttr"));
+		
+		if (state != null) {
+			// Lookup for states
+			State oneState = statemanagement.getStateByName(state);
+			if (oneState != null) {
+				state_id = oneState.getState_id();
+			}
+		}
+
+		// Create Country
+		if (state_id < 0) {
+			Long id = statemanagement.addState(state);
+			if (id != null)
+				state_id = id;
+
+		}
+		
+
+		String phone = "phone";
+		if (userdata.containsKey(ldapAttrs.get("phoneAttr"))
+				&& userdata.get(ldapAttrs.get("phoneAttr")) != null)
+			phone = userdata.get(ldapAttrs.get("phoneAttr"));
+		
+		String pictureUri = "pictureUri";
+		if (userdata.containsKey(ldapAttrs.get("pictureUri"))
+				&& userdata.get(ldapAttrs.get("pictureUri")) != null)
+			pictureUri = userdata.get(ldapAttrs.get("pictureUri"));
+
+		String iCalTz = "";
+		if (userdata.containsKey(ldapAttrs.get("timezoneAttr")) && userdata.get(ldapAttrs.get("timezoneAttr")) != null) {
+			iCalTz = userdata.get(ldapAttrs.get("timezoneAttr"));
+		}
+		
+		iCalTz = timezoneUtil.getTimeZone(iCalTz).getID();
+
+		String town = "town";
+		if (userdata.containsKey(ldapAttrs.get("townAttr"))
+				&& userdata.get(ldapAttrs.get("townAttr")) != null)
+			town = userdata.get(ldapAttrs.get("townAttr"));
+
+		Long newUserId = null;
+
+		try {
+
+			// Check if LDAP Users get a SIP Account Issue 1099
+
+			newUserId = userManager.registerUserInit(
+					2,// user_level
+					1,// level_id
+					1,// available
+					1,// status
+					login,// loginname
+					passwd,// passwd
+					lastname, firstname, email, 
+					new java.util.Date(), //age
+					street,
+					additionalname, fax, zip, state_id, town, 
+					configurationDao.getConfValue(CONFIG_DEFAUT_LANG_KEY, Long.class, "1"), // language_id
+					false, // sendWelcomeMessage
+					Arrays.asList(configurationDao.getConfValue(
+							"default_domain_id", Long.class, null)), // organozation
+																		// Ids
+					phone, 
+					false,
+					false,// send verification code
+					iCalTz, 
+					false, // forceTimeZoneCheck
+					"", //userOffers
+					"", //userSearchs
+					false, //showContactData
+					true //showContactDataToContacts
+					);
+			
+			User user = usersDao.get(newUserId);
+			user.setPictureuri(pictureUri);
+			usersDao.update(user, null);
+
+		} catch (Exception e) {
+			log.error("Error creating user : " + e.getMessage());
+		}
+
+		if (newUserId == -1) {
+			log.error("Error occured creating user");
+		} else if (newUserId == -15) {
+			log.error("Error creating user : username already exists!");
+		} else if (newUserId == -17) {
+			log.error("Error creating user : email already exists!");
+		} else if (newUserId == -3) {
+			log.error("Error creating user : missing values");
+		} else {
+			log.debug("User Created!");
+		}
+
+		return newUserId;
+	}
+
+	public void updateUserFromLdap(HashMap<String, String> userdata,
+				HashMap<String, String> ldapAttrs, User user)
+			throws Exception {
+		log.debug("LdapLoginmanagement.createUserFromLdapData");
+	
+		// Retrieve Data from LDAP - Data
+	
+		if (userdata.containsKey(ldapAttrs.get("lastnameAttr")) && userdata.get(ldapAttrs.get("lastnameAttr")) != null)
+			user.setLastname(userdata.get(ldapAttrs.get("lastnameAttr")));
+	
+		if (userdata.containsKey(ldapAttrs.get("firstnameAttr")) && userdata.get(ldapAttrs.get("firstnameAttr")) != null)
+			user.setFirstname(userdata.get(ldapAttrs.get("firstnameAttr")));
+	
+		if (userdata.containsKey(ldapAttrs.get("mailAttr")) && userdata.get(ldapAttrs.get("mailAttr")) != null) {
+			if (user.getAdresses() != null) {
+				user.getAdresses().setEmail(userdata.get(ldapAttrs.get("mailAttr")));
+			}
+		}
+			
+		if (userdata.containsKey(ldapAttrs.get("streetAttr")) && userdata.get(ldapAttrs.get("streetAttr")) != null) {
+			if (user.getAdresses() != null) { 
+				user.getAdresses().setStreet(userdata.get(ldapAttrs.get("streetAttr")));
+			}
+		}
+		
+		if (userdata.containsKey(ldapAttrs.get("additionalNameAttr")) && userdata.get(ldapAttrs.get("additionalNameAttr")) != null) {
+			if (user.getAdresses() != null) { 
+				user.getAdresses().setAdditionalname(userdata.get(ldapAttrs.get("additionalNameAttr")));
+			}
+		}
+	
+		if (userdata.containsKey(ldapAttrs.get("faxAttr")) && userdata.get(ldapAttrs.get("faxAttr")) != null) {
+			if (user.getAdresses() != null) {
+				user.getAdresses().setFax(userdata.get(ldapAttrs.get("faxAttr")));
+			}
+		}
+	
+		if (userdata.containsKey(ldapAttrs.get("zipAttr")) && userdata.get(ldapAttrs.get("zipAttr")) != null) {
+			if (user.getAdresses() != null) {
+				user.getAdresses().setZip(userdata.get(ldapAttrs.get("zipAttr")));
+			}
+		}
+	
+		long state_id = -1;
+		String state = null;
+		if (userdata.containsKey(ldapAttrs.get("countryAttr")) && userdata.get(ldapAttrs.get("countryAttr")) != null) {
+			state = userdata.get(ldapAttrs.get("countryAttr"));
+		}
+		
+		if (state != null) {
+			// Lookup for states
+			State oneState = statemanagement.getStateByName(state);
+			if (oneState != null) {
+				state_id = oneState.getState_id();
+			}
+		}
+		// Create Country if not found
+		if (state_id < 0) {
+			Long id = statemanagement.addState(state);
+			if (id != null) {
+				state_id = id;
+			}
+
+		}
+		if (user.getAdresses() != null && state_id > 0) {
+			user.getAdresses().setStates(statemanagement.getStateById(state_id));
+		}
+		
+		if (userdata.containsKey(ldapAttrs.get("townAttr")) && userdata.get(ldapAttrs.get("townAttr")) != null) {
+			if (user.getAdresses() != null) {
+				user.getAdresses().setTown(userdata.get(ldapAttrs.get("townAttr")));
+			}
+		}
+
+		if (userdata.containsKey(ldapAttrs.get("phoneAttr")) && userdata.get(ldapAttrs.get("phoneAttr")) != null) {
+			if (user.getAdresses() != null) {
+				user.getAdresses().setPhone(userdata.get(ldapAttrs.get("phoneAttr")));
+			}
+		}
+		
+		if (userdata.containsKey(ldapAttrs.get("pictureUri")) && userdata.get(ldapAttrs.get("pictureUri")) != null) {
+			user.setPictureuri(userdata.get(ldapAttrs.get("pictureUri")));
+		}
+	
+		String iCalTz = "";
+		if (userdata.containsKey(ldapAttrs.get("timezoneAttr")) && userdata.get(ldapAttrs.get("timezoneAttr")) != null) {
+			iCalTz = userdata.get(ldapAttrs.get("timezoneAttr"));
+		}
+		
+		iCalTz = timezoneUtil.getTimeZone(iCalTz).getID();
+		user.setTimeZoneId(iCalTz);	
+	}
+	
+}
diff --git a/src/main/java/org/apache/openmeetings/ldap/config/ConfigReader.java b/src/main/java/org/apache/openmeetings/ldap/config/ConfigReader.java
new file mode 100644
index 0000000..593c617
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/ldap/config/ConfigReader.java
@@ -0,0 +1,246 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.ldap.config;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.sql.Timestamp;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Vector;
+
+
+
+/**
+ * Reading ConfigFile (key=value pairs)
+ * 
+ * @author o.becherer
+ *
+ */
+public class ConfigReader {
+	
+	/** Divider between key - value - pairs*/
+	private String _divider = "=";
+	
+	/** Sign for comments */
+	private String _commentSign = "#";
+	
+	/** FilePath*/
+	private File _file;
+	
+	/** result hashmap */
+	private HashMap<String, String> _configMap = new HashMap<String, String>();
+	
+	/** Timestamp, config was read*/
+	private Timestamp _configRead;
+	
+	
+	/**
+	 * Defaultconstructor
+	 */
+	public ConfigReader(){
+		
+	}
+	
+	/**
+	 * Constructor with params
+	 * @param divider
+	 * @param commentSign
+	 */
+	public ConfigReader(String comment, String divider){
+		this._commentSign = comment;
+		this._divider = divider;
+	}
+	
+	
+	/**
+	 * Function for reading ConfigFile
+	 * @throws Exception
+	 */
+	//---------------------------------------------------------------------------------
+	public HashMap<String, String> readConfig(File config) throws Exception{
+		
+		_file = config;
+		
+		// Reading File into Vector
+		Vector<String> contentVec = readFileIntoVector(config);
+		
+		// Filtering Comments
+		contentVec = filterCommentsFromInput(contentVec);
+		
+		// Splitting data into hashmap
+		splitLinesIntoHashMap(contentVec);
+		
+		_configRead = new Timestamp(System.currentTimeMillis());
+		
+		return getConfigMap();
+		
+	}
+	//---------------------------------------------------------------------------------
+	
+	
+	/**
+	 * Filter Comments
+	 * @author o.becherer
+	 */
+	//---------------------------------------------------------------------------------
+	public Vector<String> filterCommentsFromInput(Vector<String> input){
+		
+		Vector<String> filtered = new Vector<String>(); 
+		
+		for(int i = 0; i < input.size(); i++){
+			String val = input.get(i);
+			
+			if(val.startsWith(_commentSign))
+				continue;
+			
+			filtered.add(val);
+		}
+		
+		return filtered;
+		
+	}
+	//---------------------------------------------------------------------------------
+	
+	
+	/**
+	 * Splitting lines into hashmap by divider
+	 * @author o.becherer
+	 */
+	//---------------------------------------------------------------------------------
+	public void splitLinesIntoHashMap(Vector<String> content) throws Exception{
+		
+		for(int i = 0; i < content.size(); i++){
+			String line = content.get(i);
+			
+			if(line==null|| line.length() < 1)
+				continue;
+			
+			if(!line.contains(_divider))
+				throw new Exception("ConfigReader: ConfigFile " + _file + " contains invalid line(" + i+1 + ") : " + line + ". No Divider " + _divider + " found");
+			
+			String[] splitted =  line.split(_divider);
+			
+			String key = splitted[0];
+			String val = splitted[1];
+			
+			_configMap.put(key, val);
+		}
+			
+	}
+	//---------------------------------------------------------------------------------
+	
+	/**
+	 * getting ConfigVal for key
+	 * @author o.becherer
+	 */
+	//---------------------------------------------------------------------------------
+	public String getConfigVal(String key, boolean forcereload) throws Exception{
+		
+		String notFound = "Config " + _file + "( read at " + _configRead.toString() + ", Servertime) doesnt contain key '" + key + "'";
+		
+		if(!getConfigMap().containsKey(key)){
+			if(!forcereload)
+				throw new Exception(notFound);
+			else{
+				readConfig(_file);
+				if(!getConfigMap().containsKey(key))
+					throw new Exception(notFound);
+			}
+				
+		
+		}
+		
+		return getConfigMap().get(key);
+	}
+	//---------------------------------------------------------------------------------
+	
+	
+	/**
+	 * Dumping Config to stdout
+	 * @author o.becherer
+	 */
+	//---------------------------------------------------------------------------------
+	public void dumpConfig(){
+		
+		Iterator<String> miter = getConfigMap().keySet().iterator();
+		
+		System.out.println("---Dumping configFile '" + _file + "' without comments---");
+		System.out.println("---------------------------------------------");
+		while(miter.hasNext()){
+			String key = miter.next();
+			System.out.println(key + _divider + getConfigMap().get(key));
+		}
+		
+
+		System.out.println("---------------------------------------------");
+		
+	}
+	//---------------------------------------------------------------------------------
+	
+	
+	/**
+	 * reads File into Vector
+	 * @author becherer
+	 * @param filePath
+	 */
+	//--------------------------------------------------------------------------------------
+	public static Vector<String> readFileIntoVector(File f) throws Exception{
+		
+		Vector<String> result = new Vector<String>();
+		
+		// File exists?
+        if (!f.exists())
+        	throw new Exception("Reader : File" + f.getCanonicalPath() + " not valid!");
+       
+
+        BufferedReader br = new BufferedReader(new FileReader(f));
+        
+        String line = "";
+        
+        while((line = br.readLine()) != null) {
+        	result.add(line);
+        }
+        br.close();
+        return result;
+	}
+	//--------------------------------------------------------------------------------------
+	
+	public String getDivider() {
+		return _divider;
+	}
+
+	public void setDivider(String divider) {
+		this._divider = divider;
+	}
+
+	public String getCommentSign() {
+		return _commentSign;
+	}
+
+	public void setCommentSign(String commentSign) {
+		this._commentSign = commentSign;
+	}
+	
+	public HashMap<String, String> getConfigMap(){
+		return _configMap;
+	}
+
+}
diff --git a/src/main/java/org/apache/openmeetings/mail/MailHandler.java b/src/main/java/org/apache/openmeetings/mail/MailHandler.java
new file mode 100644
index 0000000..ffeda85
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/mail/MailHandler.java
@@ -0,0 +1,267 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.mail;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+import java.util.Properties;
+
+import javax.activation.DataHandler;
+import javax.mail.BodyPart;
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.mail.Multipart;
+import javax.mail.Session;
+import javax.mail.Transport;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeBodyPart;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeMultipart;
+import javax.mail.util.ByteArrayDataSource;
+
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.basic.MailMessageDao;
+import org.apache.openmeetings.db.entity.basic.MailMessage;
+import org.apache.openmeetings.db.entity.basic.MailMessage.Status;
+import org.apache.openmeetings.util.mail.MailUtil;
+import org.apache.openmeetings.util.mail.SmtpAuthenticator;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.task.TaskExecutor;
+
+import com.sun.mail.util.MailSSLSocketFactory;
+
+/**
+ * 
+ * @author swagner
+ * 
+ * For a documentation about Javax mail please see fro example:
+ * http://connector.sourceforge.net/doc-files/Properties.html
+ * 
+ */
+public class MailHandler {
+	private static final Logger log = Red5LoggerFactory.getLogger(MailHandler.class, webAppRootKey);
+	private static final int MAIL_SEND_TIMEOUT = 60 * 60 * 1000; // 1 hour
+	private static final int MAXIMUM_ERROR_COUNT = 5;
+	
+	@Autowired
+	private ConfigurationDao cfgDao;
+	@Autowired
+	private TaskExecutor taskExecutor;
+	@Autowired
+	private MailMessageDao mailMessageDao;
+	private String smtpServer;
+	private String smtpPort;
+	private String from;
+	private String mailAuthUser;
+	private String mailAuthPass;
+	private boolean mailTls;
+	private boolean mailAddReplyTo;
+	private int smtpConnectionTimeOut;
+	private int smtpTimeOut;
+
+	private void init() {
+		smtpServer = cfgDao.getConfValue("smtp_server", String.class, null);
+		smtpPort = cfgDao.getConfValue("smtp_port", String.class, "25");
+		from = cfgDao.getConfValue("system_email_addr", String.class, null);
+		mailAuthUser = cfgDao.getConfValue("email_username", String.class, null);
+		mailAuthPass = cfgDao.getConfValue("email_userpass", String.class, null);
+		mailTls = "1".equals(cfgDao.getConfValue("mail.smtp.starttls.enable", String.class, "0"));
+		mailAddReplyTo = "1".equals(cfgDao.getConfValue("inviter.email.as.replyto", String.class, "1"));
+		smtpConnectionTimeOut = cfgDao.getConfValue("mail.smtp.connection.timeout", Integer.class, "30000");
+		smtpTimeOut = cfgDao.getConfValue("mail.smtp.timeout", Integer.class, "30000");
+	}
+	
+	protected MimeMessage appendIcsBody(MimeMessage msg, MailMessage m) throws Exception {
+		log.debug("setMessageBody for iCal message");
+		// -- Create a new message --
+		Multipart multipart = new MimeMultipart();
+
+		Multipart multiBody = new MimeMultipart("alternative");
+		BodyPart html = new MimeBodyPart();
+		html.setDataHandler(new DataHandler(new ByteArrayDataSource(m.getBody(), "text/html; charset=UTF-8")));
+		multiBody.addBodyPart(html);
+
+		BodyPart iCalContent = new MimeBodyPart();
+		iCalContent.addHeader("content-class", "urn:content-classes:calendarmessage");
+		iCalContent.setDataHandler(new DataHandler(new ByteArrayDataSource(new ByteArrayInputStream(m.getIcs()),
+				"text/calendar; charset=UTF-8; method=REQUEST")));
+		multiBody.addBodyPart(iCalContent);
+		BodyPart body = new MimeBodyPart();
+		body.setContent(multiBody);
+		multipart.addBodyPart(body);
+		
+		BodyPart iCalAttachment = new MimeBodyPart();
+		iCalAttachment.setDataHandler(new DataHandler(new ByteArrayDataSource(new ByteArrayInputStream(m.getIcs()),
+				"application/ics")));
+		iCalAttachment.removeHeader("Content-Transfer-Encoding");
+		iCalAttachment.addHeader("Content-Transfer-Encoding", "base64");
+		iCalAttachment.removeHeader("Content-Type");
+		iCalAttachment.addHeader("Content-Type", "application/ics");
+		iCalAttachment.setFileName("invite.ics");
+		multipart.addBodyPart(iCalAttachment);
+
+		msg.setContent(multipart);
+		return msg;
+	}
+	
+	private MimeMessage appendBody(MimeMessage msg, MailMessage m) throws MessagingException, IOException {
+		// -- Set the subject and body text --
+		msg.setDataHandler(new DataHandler(new ByteArrayDataSource(m.getBody(), "text/html; charset=\"utf-8\"")));
+
+		// -- Set some other header information --
+		msg.setHeader("X-Mailer", "XML-Mail");
+		msg.setSentDate(new Date());
+		
+		return msg;
+	}
+	
+	private MimeMessage getBasicMimeMessage() throws Exception {
+		log.debug("getBasicMimeMessage");
+		if (smtpServer == null) {
+			init();
+		}
+		Properties props = new Properties(System.getProperties());
+
+		props.put("mail.smtp.host", smtpServer);
+		props.put("mail.smtp.port", smtpPort);
+		
+		props.put("mail.smtp.connectiontimeout", smtpConnectionTimeOut); 
+		props.put("mail.smtp.timeout", smtpTimeOut);
+
+		if (mailTls) {
+			props.put("mail.smtp.starttls.enable", "true");
+			MailSSLSocketFactory sf = new MailSSLSocketFactory();
+		    sf.setTrustAllHosts(true);
+		    props.put("mail.smtp.ssl.socketFactory", sf);
+		}
+
+		// Check for Authentication
+		Session session = null;
+		if (mailAuthUser != null && mailAuthUser.length() > 0
+				&& mailAuthPass != null && mailAuthPass.length() > 0) {
+			// use SMTP Authentication
+			props.put("mail.smtp.auth", "true");
+			session = Session.getInstance(props, new SmtpAuthenticator(mailAuthUser, mailAuthPass));
+		} else {
+			// not use SMTP Authentication
+			session = Session.getInstance(props, null);
+		}
+
+		// Building MimeMessage
+		MimeMessage msg = new MimeMessage(session);
+		msg.setFrom(new InternetAddress(from));
+		return msg;
+	}
+	
+	private MimeMessage getMimeMessage(MailMessage m) throws Exception {
+		log.debug("getMimeMessage");
+		// Building MimeMessage
+		MimeMessage msg = getBasicMimeMessage();
+		msg.setSubject(m.getSubject(), "UTF-8");
+		String replyTo = m.getReplyTo();
+		if (replyTo != null && mailAddReplyTo) {
+			log.debug("setReplyTo " + replyTo);
+			if (MailUtil.matches(replyTo)) {
+				msg.setReplyTo(new InternetAddress[]{new InternetAddress(replyTo)});
+			}
+		}
+		msg.addRecipients(Message.RecipientType.TO, InternetAddress.parse(m.getRecipients(), false));
+		
+		return m.getIcs() == null ? appendBody(msg, m) : appendIcsBody(msg, m);
+	}
+	
+	public void send(String toEmail, String subj, String message) {
+		send(toEmail, null, subj, message);
+	}
+	
+	public void send(String toEmail, String replyTo, String subj, String message) {
+		send(new MailMessage(toEmail, replyTo, subj, message));
+	}
+	
+	public void send(MailMessage m) {
+		send(m, false);
+	}
+	
+	public void send(final MailMessage m, boolean send) {
+		if (send) {
+			if (m.getId() != null) {
+				m.setStatus(Status.SENDING);
+				mailMessageDao.update(m, null);
+			}
+			taskExecutor.execute(new Runnable() {
+				public void run() {
+					log.debug("Message sending in progress");
+					log.debug("  To: " + m.getRecipients());
+					log.debug("  Subject: " + m.getSubject());
+
+					// -- Send the message --
+					try {
+						Transport.send(getMimeMessage(m));
+						m.setLastError("");
+						m.setStatus(Status.DONE);
+					} catch (Exception e) {
+						log.error("Error while sending message", e);
+						m.setErrorCount(m.getErrorCount() + 1);
+						StringWriter sw = new StringWriter();
+						PrintWriter pw = new PrintWriter(sw);
+						e.printStackTrace(pw);
+						pw.close();
+						m.setLastError(sw.getBuffer().toString());
+						m.setStatus(m.getErrorCount() < MAXIMUM_ERROR_COUNT ? Status.NONE : Status.ERROR);
+					}
+					if (m.getId() != null) {
+						mailMessageDao.update(m, null);
+					}
+				}
+			});
+		} else {
+			m.setStatus(Status.NONE);
+			mailMessageDao.update(m, null);
+		}
+	}
+	
+	public void resetSendingStatus() {
+		log.debug("resetSendingStatus enter ...");
+		Calendar c = Calendar.getInstance();
+		c.add(Calendar.MILLISECOND, -MAIL_SEND_TIMEOUT);
+		mailMessageDao.resetSendingStatus(c);
+		log.debug("... resetSendingStatus done.");
+	}
+	
+	public void sendMails() throws Exception {
+		init();
+		log.debug("sendMails enter ...");
+		List<MailMessage> list = mailMessageDao.get(0, 1);
+		log.debug("Number of emails in init queue " + list.size());
+		while (!list.isEmpty()) {
+			send(list.get(0), true);
+			list = mailMessageDao.get(0, 1);
+		}
+		log.debug("... sendMails done.");
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/mail/SMSHandler.java b/src/main/java/org/apache/openmeetings/mail/SMSHandler.java
new file mode 100644
index 0000000..f78bfca
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/mail/SMSHandler.java
@@ -0,0 +1,117 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.mail;

+

+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;

+import org.apache.openmeetings.util.OpenmeetingsVariables;

+import org.red5.logging.Red5LoggerFactory;

+import org.slf4j.Logger;

+import org.smslib.Message.MessageEncodings;

+import org.smslib.OutboundMessage;

+import org.smslib.Service;

+import org.smslib.http.BulkSmsHTTPGateway;

+import org.springframework.beans.factory.annotation.Autowired;

+import org.springframework.core.task.TaskExecutor;

+

+/**

+ * 

+ * @author iarkh

+ * 

+ */

+

+public class SMSHandler {

+

+	private static final Logger log = Red5LoggerFactory.getLogger(

+			SMSHandler.class, OpenmeetingsVariables.webAppRootKey);

+

+	@Autowired

+	protected ConfigurationDao configurationDao;

+	@Autowired

+	protected TaskExecutor taskExecutor;

+

+	private BulkSmsHTTPGateway gateway = null;

+	

+	private boolean checkBalance() throws Exception {

+		if (gateway == null) {

+			String smsProvider = configurationDao.getConfValue("sms.provider", String.class, null);

+			String smsUsername = configurationDao.getConfValue("sms.username", String.class, null);

+			String smsUserpass = configurationDao.getConfValue("sms.userpass", String.class, null);

+

+			if (smsProvider == null || smsProvider.length() == 0 ||

+					smsUsername == null || smsUsername.length() == 0) {

+				log.error("SMS Provider is not configured properly!");

+				return false;

+			}

+			gateway = new BulkSmsHTTPGateway(smsProvider, smsUsername, smsUserpass);

+			gateway.setOutbound(true);

+			Service.getInstance().addGateway(gateway);

+			Service.getInstance().startService();

+		}

+		return gateway.queryBalance() >= 1; 

+	}

+	

+	public boolean sendSMS(String phone, String subj, long language_id) {

+		try {

+			taskExecutor.execute(new SMSSenderTask(phone, subj, language_id));

+			return true;

+		} catch (Exception ex) {

+			log.error("sendSMS", ex);

+			return false;

+		}

+	}

+	

+	protected class SMSSenderTask implements Runnable {

+		private final String phone;

+		private final String subject;

+		private long language_id;

+

+		public SMSSenderTask(String phone, String subject, long language_id) {

+			this.phone = phone;

+			this.subject = subject;

+			this.language_id = language_id;

+		}

+

+		public void run() {

+			this.send();

+		}

+

+		/**

+		 * Sending an SMS with the given values.

+		 * @return <code>true</code> if sms was sent successfully, <code>false</code> otherwise.

+		 */

+		public boolean send() {

+			try {

+				log.debug("SMS sending to: " + phone + ", subject is: " + subject);

+				if (checkBalance()) {

+					OutboundMessage msg = new OutboundMessage(phone, subject);

+					if (language_id != 1) {

+						msg.setEncoding(MessageEncodings.ENCUCS2);

+					}

+					return Service.getInstance().sendMessage(msg);

+				} else {

+					log.error("Error: insufficient funds on SMS provider account!");

+					return false; 

+				}

+			} catch (Exception ex) {

+				log.error("Error sending sms: ", ex);

+				return false;

+			} 

+		}

+	}

+}

diff --git a/src/main/java/org/apache/openmeetings/quartz/scheduler/MeetingReminderJob.java b/src/main/java/org/apache/openmeetings/quartz/scheduler/MeetingReminderJob.java
new file mode 100644
index 0000000..e62067a
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/quartz/scheduler/MeetingReminderJob.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.quartz.scheduler;
+
+
+import org.apache.openmeetings.data.calendar.management.AppointmentLogic;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class MeetingReminderJob {
+	private static Logger log = Red5LoggerFactory.getLogger(MeetingReminderJob.class, OpenmeetingsVariables.webAppRootKey);
+	@Autowired
+	private AppointmentLogic appointmentLogic;
+	
+	public void doIt() {
+		log.debug("MeetingReminderJob.execute");
+		try {
+			appointmentLogic.doScheduledMeetingReminder();
+		} catch (Exception err){
+			log.error("execute",err);
+		}
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/quartz/scheduler/SessionClearJob.java b/src/main/java/org/apache/openmeetings/quartz/scheduler/SessionClearJob.java
new file mode 100644
index 0000000..c1abc2b
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/quartz/scheduler/SessionClearJob.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.quartz.scheduler;
+
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+ 
+public class SessionClearJob {
+	private static Logger log = Red5LoggerFactory.getLogger(SessionClearJob.class, OpenmeetingsVariables.webAppRootKey);
+	@Autowired
+	private SessiondataDao sessiondataDao;
+
+	public void doIt() {
+		log.trace("SessionClearJob.execute");
+		try {
+			// TODO Generate report
+			sessiondataDao.clearSessionTable();
+		} catch (Exception err){
+			log.error("execute",err);
+		}
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/quartz/scheduler/TestSetupCleanupJob.java b/src/main/java/org/apache/openmeetings/quartz/scheduler/TestSetupCleanupJob.java
new file mode 100644
index 0000000..7e4d154
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/quartz/scheduler/TestSetupCleanupJob.java
@@ -0,0 +1,60 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.quartz.scheduler;

+

+import java.io.File;

+import java.io.FileFilter;

+

+import org.apache.openmeetings.util.OmFileHelper;

+import org.apache.openmeetings.util.OpenmeetingsVariables;

+import org.red5.logging.Red5LoggerFactory;

+import org.slf4j.Logger;

+

+public class TestSetupCleanupJob {

+	private static Logger log = Red5LoggerFactory.getLogger(TestSetupCleanupJob.class, OpenmeetingsVariables.webAppRootKey);

+	private long expirationInterval = 60 * 60 * 1000; // 1 hour

+

+	public void doIt() {

+		log.debug("TestSetupClearJob.execute");

+		try {

+			//FIXME need to move all these staff to helper

+			File[] folders = OmFileHelper.getStreamsDir().listFiles();

+			if (folders != null) {

+				for (File folder : folders) {

+					if (folder.isDirectory()) {

+						//TODO need to rework this and remove hardcodings

+						for (File file : folder.listFiles(new FileFilter() {

+							public boolean accept(File file) {

+								return file.getName().startsWith("TEST_SETUP_");

+							}

+						}))

+						{

+							if (file.isFile() && file.lastModified() + expirationInterval < System.currentTimeMillis()) {

+								log.debug("expired TEST SETUP found: " + file.getCanonicalPath());

+								file.delete();

+							}

+						}

+					}

+				}

+			}

+		} catch (Exception e) {

+			log.error("Unexpected exception while processing tests setup videous.", e);

+		}

+	}

+}

diff --git a/src/main/java/org/apache/openmeetings/remote/ChatService.java b/src/main/java/org/apache/openmeetings/remote/ChatService.java
new file mode 100644
index 0000000..f623699
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/remote/ChatService.java
@@ -0,0 +1,362 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.remote;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.data.whiteboard.EmoticonsManager;
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.server.ISessionManager;
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
+import org.apache.openmeetings.remote.util.SessionVariablesUtil;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.openmeetings.util.stringhandlers.ChatString;
+import org.red5.logging.Red5LoggerFactory;
+import org.red5.server.api.IClient;
+import org.red5.server.api.IConnection;
+import org.red5.server.api.Red5;
+import org.red5.server.api.service.IPendingServiceCall;
+import org.red5.server.api.service.IPendingServiceCallback;
+import org.red5.server.api.service.IServiceCapableConnection;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 
+ * @author sebawagner
+ *
+ */
+public class ChatService implements IPendingServiceCallback {
+	private static final Logger log = Red5LoggerFactory.getLogger(ChatService.class, OpenmeetingsVariables.webAppRootKey);
+	
+	@Autowired
+	private ScopeApplicationAdapter scopeApplicationAdapter;
+	@Autowired
+	private ISessionManager sessionManager = null;
+	@Autowired
+	private EmoticonsManager emoticonsManager;
+	@Autowired
+	private RoomDao roomDao;
+	@Autowired
+	private UserManager userManager;
+	
+	//number of items in the chat room history
+	private static final int chatRoomHistory = 50;
+	
+	private static LinkedHashMap<Long,List<HashMap<String,Object>>> myChats = new LinkedHashMap<Long,List<HashMap<String,Object>>>();
+	
+	private String parseDateAsTimeString() {
+		Calendar cal=Calendar.getInstance();
+		
+		int h = cal.get(Calendar.HOUR_OF_DAY);
+		int m = cal.get(Calendar.MINUTE);
+
+		String str_h,str_m;
+		if (h<10) 
+			str_h = "0"+Integer.toString(h);
+		else
+			str_h = Integer.toString(h);
+
+		if (m<10) 
+			str_m = "0"+Integer.toString(m);
+		else
+			str_m = Integer.toString(m);
+		
+		return str_h+':'+str_m;
+	}
+
+	/**
+	 * sends a Chat-Message
+	 * to all members of the Chatroom
+	 * and all additional users (waitng for a free entry for example)
+	 * 
+	 * @param newMessage
+	 * @return - 1 in case of success, -1 otherwise
+	 */
+	@SuppressWarnings("unchecked")
+	public int sendMessageWithClient(Object newMessage) {
+		try {
+			IConnection current = Red5.getConnectionLocal();
+			Client currentClient = this.sessionManager.getClientByStreamId(current.getClient().getId(), null);
+			Long room_id = currentClient.getRoom_id();			
+			log.debug("room_id: " + room_id);
+			
+			if (room_id == null) {
+				return 1; //TODO weird
+			}
+			Room room = roomDao.get(room_id);
+			@SuppressWarnings("rawtypes")
+			ArrayList messageMap = (ArrayList) newMessage;
+			// adding delimiter space, cause otherwise an emoticon in the last
+			// string would not be found
+			String messageText = messageMap.get(4) + " ";
+			LinkedList<String[]> parsedStringObjects = ChatString.parseChatString(messageText, emoticonsManager.getEmotfilesList(), room.getAllowFontStyles());
+			// log.error("parsedStringObjects"+parsedStringObjects.size());
+			log.debug("size:" + messageMap.size());
+			messageMap.add(parsedStringObjects);
+			newMessage = messageMap;			
+
+			boolean needModeration = Boolean.valueOf("" + messageMap.get(9));
+			List<HashMap<String, Object>> myChatList = myChats.get(room_id);
+			if (myChatList == null) myChatList = new LinkedList<HashMap<String, Object>>();
+			
+			HashMap<String, Object> hsm = new HashMap<String, Object>();
+			hsm.put("message", newMessage);
+			String publicSID = "" + messageMap.get(6);
+			if (!publicSID.equals(currentClient.getPublicSID())) {
+				hsm.put("client", sessionManager.getClientByPublicSID("" + messageMap.get(6), false, null));
+				//need to remove unconfirmed chat message if any
+				for (int i = myChatList.size() - 1; i > -1; --i) {
+					Client msgClient = (Client)myChatList.get(i).get("client");
+					@SuppressWarnings("rawtypes")
+					List msgList = (List)myChatList.get(i).get("message");
+					if (publicSID.equals(msgClient.getPublicSID())
+						&& ("" + msgList.get(4)).equals(messageMap.get(4))
+						&& ("" + msgList.get(1)).equals(messageMap.get(1))
+						&& Boolean.valueOf("" + msgList.get(9))) {
+						myChatList.remove(i);
+						break;
+					}
+				}
+				
+			} else {
+				// add server time
+				messageMap.set(1, parseDateAsTimeString());
+				hsm.put("client", currentClient);
+			}
+
+			if (myChatList.size() == chatRoomHistory) myChatList.remove(0);
+			myChatList.add(hsm);
+			myChats.put(room_id, myChatList);
+			log.debug("SET CHATROOM: " + room_id);
+
+			//broadcast to everybody in the room/domain
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
+				if (conn != null) {
+					if (conn instanceof IServiceCapableConnection) {
+						
+						Client rcl = this.sessionManager.getClientByStreamId(conn.getClient().getId(), null);
+						
+						if (rcl == null) {
+							continue;
+						}
+						if (rcl.getIsAVClient()) {
+							continue;
+						}
+						if (rcl.getIsScreenClient() != null && rcl.getIsScreenClient()) {
+    						continue;
+    					}
+						if (needModeration && Boolean.TRUE != rcl.getIsMod() && Boolean.TRUE != rcl.getIsSuperModerator()) {
+							continue;
+						}
+						((IServiceCapableConnection) conn).invoke("sendVarsToMessageWithClient",new Object[] { hsm }, this);
+    			 	}
+    			}
+			}
+			}
+		} catch (Exception err) {
+			log.error("[ChatService sendMessageWithClient] ",err);
+			return -1;
+		}
+		return 1;
+	}
+
+	//FIXME copy/past need to be removed
+	@SuppressWarnings("unchecked")
+	public int sendMessageWithClientByPublicSID(Object newMessage, String publicSID) {
+		try {
+			IConnection current = Red5.getConnectionLocal();
+			Client currentClient = this.sessionManager.getClientByStreamId(current.getClient().getId(), null);
+			Long room_id = currentClient.getRoom_id();
+			Room room = roomDao.get(room_id);
+			log.debug("room_id: " + room_id);
+
+			@SuppressWarnings("rawtypes")
+			ArrayList messageMap = (ArrayList) newMessage;
+			// adding delimiter space, cause otherwise an emoticon in the last
+			// string would not be found
+			String messageText = messageMap.get(4).toString() + " ";
+			// add server time
+			messageMap.set(1, parseDateAsTimeString());
+			LinkedList<String[]> parsedStringObjects = ChatString.parseChatString(messageText, emoticonsManager.getEmotfilesList(), room.getAllowFontStyles());
+			// log.error("parsedStringObjects"+parsedStringObjects.size());
+			log.debug("size:" + messageMap.size());
+			messageMap.add(parsedStringObjects);
+			newMessage = messageMap;
+
+			HashMap<String, Object> hsm = new HashMap<String, Object>();
+			hsm.put("client", currentClient);
+			hsm.put("message", newMessage);
+
+			// broadcast to everybody in the room/domain
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
+				if (conn != null) {
+					if (conn instanceof IServiceCapableConnection) {
+						IClient client = conn.getClient();
+						if (SessionVariablesUtil.isScreenClient(client)) {
+							// screen sharing clients do not receive events
+							continue;
+						} else if (SessionVariablesUtil.isAVClient(client)) {
+							// AVClients or potential AVClients do not receive events
+							continue;
+						}
+
+						if (SessionVariablesUtil.getPublicSID(client).equals(publicSID)
+								|| SessionVariablesUtil.getPublicSID(client).equals(
+										currentClient.getPublicSID())) {
+							((IServiceCapableConnection) conn).invoke(
+								"sendVarsToMessageWithClient",
+									new Object[] { hsm }, this);
+						}
+					}
+				}
+			}
+			}
+		} catch (Exception err) {
+			log.error("[ChatService sendMessageWithClient] ", err);
+			return -1;
+		}
+		return 1;
+	}
+
+	public List<HashMap<String,Object>> clearChat() {
+		try {
+			IConnection current = Red5.getConnectionLocal();
+			Client currentClient = this.sessionManager.getClientByStreamId(current.getClient().getId(), null);
+			Long room_id = currentClient.getRoom_id();
+			
+			Long chatroom = room_id;
+			log.debug("### GET CHATROOM: "+chatroom);
+			
+			List<HashMap<String,Object>> myChatList = myChats.get(chatroom);
+			myChatList = new LinkedList<HashMap<String,Object>>();
+			
+			myChats.put(chatroom,myChatList);
+			
+			HashMap<String,Object> hsm = new HashMap<String,Object>();
+			
+			scopeApplicationAdapter.syncMessageToCurrentScope("clearChatContent", hsm, true);
+			
+			return myChatList;
+			
+		} catch (Exception err) {
+			log.error("[clearChat] ",err);
+			return null;
+		}
+	}
+	
+	public List<HashMap<String,Object>> getRoomChatHistory() {
+		try {
+			IConnection current = Red5.getConnectionLocal();
+			Client currentClient = this.sessionManager.getClientByStreamId(current.getClient().getId(), null);
+			Long room_id = currentClient.getRoom_id();
+			
+			log.debug("GET CHATROOM: " + room_id);
+			
+			List<HashMap<String,Object>> myChatList = myChats.get(room_id);
+			if (myChatList==null) myChatList = new LinkedList<HashMap<String,Object>>();
+			
+			if (Boolean.TRUE != currentClient.getIsMod() && Boolean.TRUE != currentClient.getIsSuperModerator()) {
+				//current user is not moderator, chat history need to be filtered
+				List<HashMap<String,Object>> tmpChatList = new LinkedList<HashMap<String,Object>>(myChatList);
+				for (int i = tmpChatList.size() - 1; i > -1; --i) {
+					@SuppressWarnings("rawtypes")
+					List msgList = (List)tmpChatList.get(i).get("message");
+					if (Boolean.valueOf("" + msgList.get(9))) { //needModeration
+						tmpChatList.remove(i);
+					}
+				}
+				myChatList = tmpChatList;
+			}
+			
+			return myChatList;
+		} catch (Exception err) {
+			log.error("[getRoomChatHistory] ",err);
+			return null;
+		}
+	}
+	
+	/**
+	 * gets the chat history by string for non-conference-clients
+	 * 
+	 * @param room_id
+	 * @return - chat history of the room given, null in case of exception
+	 */
+	public List<HashMap<String,Object>> getRoomChatHistoryByString(Long room_id) {
+		try {
+			
+			Long chatroom = room_id;
+			log.debug("GET CHATROOM: "+chatroom);
+			
+			List<HashMap<String,Object>> myChatList = myChats.get(chatroom);
+			if (myChatList==null) myChatList = new LinkedList<HashMap<String,Object>>();	
+			
+			return myChatList;
+		} catch (Exception err) {
+			log.error("[getRoomChatHistory] ",err);
+			return null;
+		}
+	}	
+	
+	public void resultReceived(IPendingServiceCall arg0) {
+		// TODO Auto-generated method stub
+		log.error("resultReceived ChatService "+arg0);
+	}
+	
+	public LinkedList<LinkedList<String>> getAllPublicEmoticons(){
+		try {
+			LinkedList<LinkedList<String>> publicemotes = new LinkedList<LinkedList<String>>();
+			LinkedList<LinkedList<String>> allEmotes = emoticonsManager.getEmotfilesList();
+			for (Iterator<LinkedList<String>> iter = allEmotes.iterator();iter.hasNext();){
+				LinkedList<String> emot = iter.next();
+				LinkedList<String> emotPub = new LinkedList<String>();
+				if (emot.get((emot.size()-1)).equals("y")){
+					emotPub.add(emot.get(0));
+					emotPub.add(emot.get(1).replace("\\", ""));
+					if (emot.size()>4) {
+						emotPub.add(emot.get(2).replace("\\", ""));
+						emotPub.add(emot.get(3));
+						emotPub.add(emot.get(4));
+					} else {
+						emotPub.add(emot.get(2));
+						emotPub.add(emot.get(3));
+					}
+					publicemotes.add(emotPub);
+				}
+			}
+			return publicemotes;
+		} catch (Exception err) {
+			log.error("[getAllPublicEmoticons] ",err);
+			return null;
+		}
+	}
+	
+}
diff --git a/src/main/java/org/apache/openmeetings/remote/ConferenceLibrary.java b/src/main/java/org/apache/openmeetings/remote/ConferenceLibrary.java
new file mode 100644
index 0000000..06f7dbe
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/remote/ConferenceLibrary.java
@@ -0,0 +1,318 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.remote;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.commons.transaction.util.FileHelper;
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.data.whiteboard.WhiteboardManager;
+import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
+import org.apache.openmeetings.db.dao.server.ISessionManager;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dto.file.LibraryPresentation;
+import org.apache.openmeetings.db.entity.file.FileExplorerItem;
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.documents.LibraryChartLoader;
+import org.apache.openmeetings.documents.LibraryDocumentConverter;
+import org.apache.openmeetings.documents.LibraryWmlLoader;
+import org.apache.openmeetings.documents.LoadLibraryPresentation;
+import org.apache.openmeetings.util.AuthLevelUtil;
+import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.openmeetings.util.crypt.MD5;
+import org.red5.logging.Red5LoggerFactory;
+import org.red5.server.api.IConnection;
+import org.red5.server.api.Red5;
+import org.red5.server.api.service.IPendingServiceCall;
+import org.red5.server.api.service.IPendingServiceCallback;
+import org.red5.server.api.service.IServiceCapableConnection;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 
+ * @author swagner
+ * 
+ */
+public class ConferenceLibrary implements IPendingServiceCallback {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			ConferenceLibrary.class, OpenmeetingsVariables.webAppRootKey);
+
+	@Autowired
+	private ISessionManager sessionManager;
+	@Autowired
+	private SessiondataDao sessiondataDao;
+	@Autowired
+	private UserManager userManager;
+	@Autowired
+	private FileExplorerItemDao fileExplorerItemDao;
+	@Autowired
+	private LibraryWmlLoader libraryWmlLoader;
+	@Autowired
+	private WhiteboardManager whiteboardManagement;
+
+	public LibraryPresentation getPresentationPreviewFileExplorer(String SID,
+			String parentFolder) {
+
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			log.debug("#############users_id : " + users_id);
+			log.debug("#############user_level : " + user_level);
+
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				File working_dir = new File(OmFileHelper.getUploadFilesDir(), parentFolder);
+				log.debug("############# working_dir : " + working_dir);
+
+				File file = new File(working_dir, OmFileHelper.libraryFileName);
+
+				if (!file.exists()) {
+					throw new Exception(file.getCanonicalPath() + ": does not exist");
+				}
+
+				return LoadLibraryPresentation.parseLibraryFileToObject(file);
+
+			} else {
+				throw new Exception("not Authenticated");
+			}
+
+		} catch (Exception e) {
+			log.error("[getListOfFilesByAbsolutePath]", e);
+			return null;
+		}
+
+	}
+
+	/**
+	 * 
+	 * Save an Object to the library and returns the file-explorer Id
+	 * 
+	 * @param SID
+	 * @param room_id
+	 * @param fileName
+	 * @param tObjectRef
+	 * @return - file-explorer Id in case of success, -1 otherwise
+	 */
+	public Long saveAsObject(String SID, Long room_id, String fileName,
+			Object tObjectRef) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+				// LinkedHashMap tObject = (LinkedHashMap)t;
+				// ArrayList tObject = (ArrayList)t;
+
+				log.debug("saveAsObject :1: " + tObjectRef);
+				log.debug("saveAsObject :2: " + tObjectRef.getClass().getName());
+
+				@SuppressWarnings("rawtypes")
+				ArrayList tObject = (ArrayList) tObjectRef;
+
+				log.debug("saveAsObject" + tObject.size());
+
+				String localFileName = MD5.do_checksum(new Date().toString()) + ".wml";
+
+				LibraryDocumentConverter.writeToLocalFolder(localFileName, tObject);
+
+				// String wmlPath = current_dir + File.separatorChar+fileName
+				// +".xml";
+				// OwnerID == null
+				Long fileExplorerId = fileExplorerItemDao.add(fileName, "", 0L,
+						null, room_id, users_id, false, // isFolder
+						false, // isImage
+						false, // isPresentation
+						localFileName, // WML localFileName
+						true, // isStoredWML file
+						true, 0L, "");
+
+				return fileExplorerId;
+			}
+		} catch (Exception err) {
+			log.error("[saveAsObject] ", err);
+		}
+		return -1L;
+	}
+
+	/**
+	 * 
+	 * Loads a Object from the library into the whiteboard of all participant of
+	 * the current room
+	 * 
+	 * @param SID
+	 * @param room_id
+	 * @param fileExplorerItemId
+	 * @param whiteboardId
+	 */
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public void loadWmlObject(String SID, Long room_id,
+			Long fileExplorerItemId, Long whiteboardId) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				IConnection current = Red5.getConnectionLocal();
+				Client currentClient = this.sessionManager
+						.getClientByStreamId(current.getClient().getId(), null);
+
+				if (currentClient == null) {
+					return;
+				}
+
+				FileExplorerItem fileExplorerItem = fileExplorerItemDao
+						.getFileExplorerItemsById(fileExplorerItemId);
+
+				ArrayList roomItems = libraryWmlLoader.loadWmlFile(fileExplorerItem.getWmlFilePath());
+
+				Map whiteboardObjClear = new HashMap();
+				whiteboardObjClear.put(2, "clear");
+				whiteboardObjClear.put(3, null);
+
+				whiteboardManagement.addWhiteBoardObjectById(
+						room_id, whiteboardObjClear, whiteboardId);
+
+				for (int k = 0; k < roomItems.size(); k++) {
+
+					ArrayList actionObject = (ArrayList) roomItems.get(k);
+
+					Map whiteboardObj = new HashMap();
+					whiteboardObj.put(2, "draw");
+					whiteboardObj.put(3, actionObject);
+
+					whiteboardManagement.addWhiteBoardObjectById(
+							room_id, whiteboardObj, whiteboardId);
+
+				}
+
+				Map<String, Object> sendObject = new HashMap<String, Object>();
+				sendObject.put("id", whiteboardId);
+				sendObject.put("roomitems", roomItems);
+
+				// Notify all Clients of that Scope (Room)
+				for (Set<IConnection> conset : current.getScope().getConnections()) {
+				for (IConnection conn : conset) {
+					if (conn != null) {
+						if (conn instanceof IServiceCapableConnection) {
+							Client rcl = this.sessionManager
+									.getClientByStreamId(conn.getClient()
+											.getId(), null);
+							if ((rcl == null)
+									|| (rcl.getIsScreenClient() != null && rcl
+											.getIsScreenClient())) {
+								continue;
+							} else {
+								((IServiceCapableConnection) conn).invoke(
+										"loadWmlToWhiteboardById",
+										new Object[] { sendObject }, this);
+							}
+						}
+					}
+				}
+				}
+			}
+		} catch (Exception err) {
+			log.error("[loadWmlObject] ", err);
+		}
+	}
+
+	/**
+	 * 
+	 * Loads a chart object
+	 * 
+	 * @param SID
+	 * @param room_id
+	 * @param fileName
+	 * @return - chart object
+	 */
+	@SuppressWarnings("rawtypes")
+	public ArrayList loadChartObject(String SID, Long room_id, String fileName) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+				return LibraryChartLoader.getInstance().loadChart(OmFileHelper.getUploadRoomDir(room_id.toString()),
+						fileName);
+			}
+		} catch (Exception err) {
+			log.error("[loadChartObject] ", err);
+		}
+		return null;
+	}
+
+	/**
+	 * @param SID
+	 * @param flvFileExplorerId
+	 * @return 1 in case of success, -1 otherwise
+	 */
+	public Long copyFileToCurrentRoom(String SID, Long flvFileExplorerId) {
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				IConnection current = Red5.getConnectionLocal();
+				String streamid = current.getClient().getId();
+
+				Client currentClient = this.sessionManager
+						.getClientByStreamId(streamid, null);
+
+				Long room_id = currentClient.getRoom_id();
+
+				if (room_id != null) {
+					File outputFullFlvFile = new File(OmFileHelper.getStreamsHibernateDir()
+						, "UPLOADFLV_" + flvFileExplorerId + ".flv");
+
+					File targetFolder = OmFileHelper.getStreamsSubDir(room_id);
+
+					File targetFullFlvFile = new File(targetFolder
+						, "UPLOADFLV_" + flvFileExplorerId + ".flv");
+					if (outputFullFlvFile.exists() && !targetFullFlvFile.exists()) {
+						FileHelper.copy(outputFullFlvFile, targetFullFlvFile);
+					}
+
+					return 1L;
+				}
+
+			}
+
+		} catch (Exception err) {
+			log.error("[copyFileToCurrentRoom] ", err);
+		}
+		return -1L;
+	}
+
+	public void resultReceived(IPendingServiceCall arg0) {
+		// TODO Auto-generated method stub
+
+	}
+
+}
diff --git a/src/main/java/org/apache/openmeetings/remote/ConferenceService.java b/src/main/java/org/apache/openmeetings/remote/ConferenceService.java
new file mode 100644
index 0000000..3a30364
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/remote/ConferenceService.java
@@ -0,0 +1,634 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.remote;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAUT_LANG_KEY;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.TimeZone;
+
+import org.apache.openmeetings.data.calendar.management.AppointmentLogic;
+import org.apache.openmeetings.data.conference.RoomManager;
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.room.RoomModeratorsDao;
+import org.apache.openmeetings.db.dao.room.RoomTypeDao;
+import org.apache.openmeetings.db.dao.server.ISessionManager;
+import org.apache.openmeetings.db.dao.server.ServerDao;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dto.basic.SearchResult;
+import org.apache.openmeetings.db.dto.server.ServerDTO;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.room.RoomModerator;
+import org.apache.openmeetings.db.entity.room.RoomOrganisation;
+import org.apache.openmeetings.db.entity.room.RoomType;
+import org.apache.openmeetings.db.entity.server.Server;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.util.TimezoneUtil;
+import org.apache.openmeetings.util.AuthLevelUtil;
+import org.apache.openmeetings.util.CalendarPatterns;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.red5.server.api.IConnection;
+import org.red5.server.api.Red5;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 
+ * @author sebawagner
+ * 
+ */
+public class ConferenceService {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			ConferenceService.class, OpenmeetingsVariables.webAppRootKey);
+
+	@Autowired
+	private AppointmentLogic appointmentLogic;
+	@Autowired
+	private SessiondataDao sessiondataDao;
+	@Autowired
+	private UserManager userManager;
+	@Autowired
+	private RoomManager roomManager;
+	@Autowired
+	private RoomDao roomDao;
+	@Autowired
+	private RoomTypeDao roomTypeDao;
+	@Autowired
+	private RoomModeratorsDao roomModeratorsDao;
+	@Autowired
+	private TimezoneUtil timezoneUtil;
+	@Autowired
+	private ISessionManager sessionManager = null;
+	@Autowired
+	private ServerDao serverDao;
+	@Autowired
+	private ConfigurationDao cfgDao;
+
+	/**
+	 * ( get a List of all available Rooms of this organization
+	 * (non-appointments)
+	 * 
+	 * @param SID
+	 * @param organisation_id
+	 * @return - all available Rooms of this organization
+	 */
+	public List<RoomOrganisation> getRoomsByOrganisationAndType(String SID,
+			long organisation_id, long roomtypes_id) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			log.debug("getRoomsByOrganisationAndType");
+
+			if (user_level == null) {
+				return null;
+			}
+			List<RoomOrganisation> roomOrgsList = roomManager
+					.getRoomsOrganisationByOrganisationIdAndRoomType(
+							user_level, organisation_id, roomtypes_id);
+
+			List<RoomOrganisation> filtered = new ArrayList<RoomOrganisation>();
+
+			for (Iterator<RoomOrganisation> iter = roomOrgsList.iterator(); iter
+					.hasNext();) {
+				RoomOrganisation orgRoom = iter.next();
+
+				if (!orgRoom.getRoom().getAppointment()) {
+					orgRoom.getRoom().setCurrentusers(
+							this.getRoomClientsListByRoomId(orgRoom.getRoom()
+									.getRooms_id()));
+					filtered.add(orgRoom);
+				}
+			}
+			return filtered;
+		} catch (Exception err) {
+			log.error("[getRoomsByOrganisationAndType]", err);
+		}
+		return null;
+	}
+
+	public List<RoomOrganisation> getRoomsByOrganisationWithoutType(
+			String SID, long organisation_id) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			log.debug("getRoomsByOrganisationAndType");
+
+			if (user_level == null) {
+				return null;
+			}
+			List<RoomOrganisation> roomOrgsList = roomManager
+					.getRoomsOrganisationByOrganisationId(user_level,
+							organisation_id);
+			
+			for (RoomOrganisation roomOrg : roomOrgsList) {
+				roomOrg.getRoom().setCurrentusers(sessionManager.getClientListByRoom(roomOrg.getRoom().getRooms_id()));
+			}
+
+			return roomOrgsList;
+		} catch (Exception err) {
+			log.error("[getRoomsByOrganisationAndType]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * gets all rooms of an organization TODO:check if the requesting user is
+	 * also member of that organization
+	 * 
+	 * @param SID
+	 * @param organisation_id
+	 * @return - all rooms of an organization
+	 */
+	public SearchResult<RoomOrganisation> getRoomsByOrganisation(String SID,
+			long organisation_id, int start, int max, String orderby,
+			boolean asc) {
+
+		log.debug("getRoomsByOrganisation");
+
+		Long user_id = sessiondataDao.checkSession(SID);
+		Long user_level = userManager.getUserLevelByIdAndOrg(user_id,
+				organisation_id);
+
+		return roomManager.getRoomsOrganisationByOrganisationId(user_level,
+				organisation_id, start, max, orderby, asc);
+	}
+
+	/**
+	 * get a List of all public availible rooms (non-appointments)
+	 * 
+	 * @param SID
+	 * @param roomtypes_id
+	 * @return - public rooms with given type, null in case of the error
+	 */
+	public List<Room> getRoomsPublic(String SID, Long roomtypes_id) {
+		try {
+			log.debug("getRoomsPublic");
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long User_level = userManager.getUserLevelByID(users_id);
+			log.error("getRoomsPublic user_level: " + User_level);
+
+			List<Room> roomList = roomManager.getPublicRooms(User_level,
+					roomtypes_id);
+
+			// Filter : no appointed meetings
+			List<Room> filtered = new ArrayList<Room>();
+
+			for (Iterator<Room> iter = roomList.iterator(); iter.hasNext();) {
+				Room rooms = iter.next();
+
+				if (!rooms.getAppointment()) {
+					rooms.setCurrentusers(this.getRoomClientsListByRoomId(rooms
+							.getRooms_id()));
+					filtered.add(rooms);
+				}
+			}
+
+			return filtered;
+		} catch (Exception err) {
+			log.error("[getRoomsByOrganisationAndType]", err);
+		}
+		return null;
+	}
+
+	public List<Room> getRoomsPublicWithoutType(String SID) {
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			log.debug("getRoomsPublic user_level: " + user_level);
+
+			List<Room> roomList = roomDao.getPublicRooms();
+			
+			for (Room room : roomList) {
+				room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
+			}
+
+			return roomList;
+		} catch (Exception err) {
+			log.error("[getRoomsPublicWithoutType]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * retrieving ServerTime
+	 * 
+	 * @return - server time
+	 */
+	// --------------------------------------------------------------------------------------------
+	public Date getServerTime() {
+		log.debug("getServerTime");
+
+		return new Date(System.currentTimeMillis());
+
+	}
+
+	// --------------------------------------------------------------------------------------------
+
+	/**
+	 * 
+	 * retrieving Appointment for Room
+	 * 
+	 * @param room_id
+	 * @return - Appointment in case the room is appointment, null otherwise
+	 */
+	public Appointment getAppointMentDataForRoom(Long room_id) {
+		log.debug("getAppointMentDataForRoom");
+
+		Room room = roomDao.get(room_id);
+
+		if (room.getAppointment() == false)
+			return null;
+
+		try {
+			Appointment ment = appointmentLogic.getAppointmentByRoom(room_id);
+
+			return ment;
+		} catch (Exception e) {
+			log.error("getAppointMentDataForRoom " + e.getMessage());
+			return null;
+		}
+
+	}
+
+	// --------------------------------------------------------------------------------------------
+
+	public Map<String, Object> getAppointMentAndTimeZones(Long room_id) {
+		try {
+			log.debug("getAppointMentDataForRoom");
+			
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+	
+			log.debug("getCurrentRoomClient -2- " + streamid);
+	
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(streamid, null);
+	
+			Room room = roomDao.get(room_id);
+	
+			if (room.getAppointment() == false) {
+				throw new IllegalStateException("Room has no appointment");
+			}
+		
+			Appointment appointment = appointmentLogic
+					.getAppointmentByRoom(room_id);
+
+			Map<String, Object> returnMap = new HashMap<String, Object>();
+
+			returnMap.put("appointment", appointment);
+
+			User us = userManager.getUserById(currentClient.getUser_id());
+			TimeZone timezone = timezoneUtil.getTimeZone(us);
+
+			returnMap.put("appointment", appointment);
+
+			returnMap.put(
+					"start",
+					CalendarPatterns.getDateWithTimeByMiliSeconds(
+							appointment.getStart(), timezone));
+			returnMap.put(
+					"end",
+					CalendarPatterns.getDateWithTimeByMiliSeconds(
+							appointment.getEnd(), timezone));
+			returnMap.put("timeZone", timezone.getDisplayName());
+
+			return returnMap;
+		} catch (Exception e) {
+			log.error("getAppointMentAndTimeZones " , e );
+			return null;
+		}
+
+	}
+
+	/**
+	 * 
+	 */
+	// --------------------------------------------------------------------------------------------
+	public List<Room> getAppointedMeetings(String SID, Long room_types_id) {
+		log.debug("ConferenceService.getAppointedMeetings");
+
+		Long users_id = sessiondataDao.checkSession(SID);
+		Long user_level = userManager.getUserLevelByID(users_id);
+
+		if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+			List<Appointment> points = appointmentLogic
+					.getTodaysAppointmentsForUser(users_id);
+			List<Room> result = new ArrayList<Room>();
+
+			if (points != null) {
+				for (int i = 0; i < points.size(); i++) {
+					Appointment ment = points.get(i);
+
+					Long rooms_id = ment.getRoom().getRooms_id();
+					Room rooom = roomDao.get(rooms_id);
+
+					if (!rooom.getRoomtype().getRoomtypes_id()
+							.equals(room_types_id))
+						continue;
+
+					rooom.setCurrentusers(getRoomClientsListByRoomId(rooom
+							.getRooms_id()));
+					result.add(rooom);
+				}
+			}
+
+			log.debug("Found " + result.size() + " rooms");
+			return result;
+
+		} else {
+			return null;
+		}
+
+	}
+
+	// --------------------------------------------------------------------------------------------
+
+	public List<Room> getAppointedMeetingRoomsWithoutType(String SID) {
+		log.debug("ConferenceService.getAppointedMeetings");
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+				List<Appointment> appointments = appointmentLogic
+						.getTodaysAppointmentsForUser(users_id);
+				List<Room> result = new ArrayList<Room>();
+
+				if (appointments != null) {
+					for (int i = 0; i < appointments.size(); i++) {
+						Appointment ment = appointments.get(i);
+
+						Long rooms_id = ment.getRoom().getRooms_id();
+						Room rooom = roomDao.get(rooms_id);
+
+						rooom.setCurrentusers(this
+								.getRoomClientsListByRoomId(rooom.getRooms_id()));
+						result.add(rooom);
+					}
+				}
+
+				log.debug("Found " + result.size() + " rooms");
+				return result;
+			}
+		} catch (Exception err) {
+			log.error("[getAppointedMeetingRoomsWithoutType]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 * @param SID
+	 * @return - all room types available
+	 */
+	public List<RoomType> getRoomTypes(String SID) {
+		Long users_id = sessiondataDao.checkSession(SID);
+		Long user_level = userManager.getUserLevelByID(users_id);
+		if (AuthLevelUtil.checkUserLevel(user_level)) {
+			User user = userManager.getUserById(users_id);
+			return roomTypeDao.getAll(user == null
+					? cfgDao.getConfValue(CONFIG_DEFAUT_LANG_KEY, Long.class, "1") : user.getLanguage_id());
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 * @param SID
+	 * @param rooms_id
+	 * @return - room with the id given
+	 */
+	public Room getRoomById(String SID, long rooms_id) {
+		Long users_id = sessiondataDao.checkSession(SID);
+		Long user_level = userManager.getUserLevelByID(users_id);
+		return roomManager.getRoomById(user_level, rooms_id);
+	}
+
+	public Room getRoomWithCurrentUsersById(String SID, long rooms_id) {
+		Long users_id = sessiondataDao.checkSession(SID);
+		Long user_level = userManager.getUserLevelByID(users_id);
+		Room room = roomManager.getRoomById(user_level, rooms_id);
+		room.setCurrentusers(sessionManager.getClientListByRoom(room.getRooms_id()));
+		return room;
+	}
+
+	/**
+	 * 
+	 * @param SID
+	 * @param externalUserId
+	 * @param externalUserType
+	 * @param roomtypes_id
+	 * @return - room with the given external id
+	 */
+	public Room getRoomByExternalId(String SID, Long externalUserId,
+			String externalUserType, long roomtypes_id) {
+		Long users_id = sessiondataDao.checkSession(SID);
+		Long user_level = userManager.getUserLevelByID(users_id);
+		return roomManager.getRoomByExternalId(user_level, externalUserId,
+				externalUserType, roomtypes_id);
+	}
+
+	/**
+	 * gets a list of all available rooms
+	 * 
+	 * @param SID
+	 * @param start
+	 * @param max
+	 * @param orderby
+	 * @param asc
+	 * @return - list of rooms being searched
+	 */
+	public SearchResult<Room> getRooms(String SID, int start, int max,
+			String orderby, boolean asc, String search) {
+		log.debug("getRooms");
+
+		Long users_id = sessiondataDao.checkSession(SID);
+		Long user_level = userManager.getUserLevelByID(users_id);
+		return roomManager.getRooms(user_level, start, max, orderby, asc,
+				search);
+	}
+
+	public SearchResult<Room> getRoomsWithCurrentUsers(String SID, int start,
+			int max, String orderby, boolean asc) {
+		log.debug("getRooms");
+
+		Long users_id = sessiondataDao.checkSession(SID);
+		Long user_level = userManager.getUserLevelByID(users_id);
+		return roomManager.getRoomsWithCurrentUsers(user_level, start, max,
+				orderby, asc);
+	}
+
+	public List<RoomModerator> getRoomModeratorsByRoomId(String SID,
+			Long roomId) {
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				return roomModeratorsDao.getRoomModeratorByRoomId(roomId);
+
+			}
+
+		} catch (Exception err) {
+			log.error("[getRoomModeratorsByRoomId]", err);
+			err.printStackTrace();
+		}
+
+		return null;
+	}
+
+	/**
+	 * 
+	 * @param SID
+	 * @param rooms_id
+	 * @return - id of the room being deleted
+	 */
+	public Long deleteRoom(String SID, long rooms_id) {
+		Long users_id = sessiondataDao.checkSession(SID);
+		long user_level = userManager.getUserLevelByID(users_id);
+		return roomManager.deleteRoomById(user_level, rooms_id);
+	}
+	
+	/**
+	 * return all participants of a room
+	 * 
+	 * @param room_id
+	 * @return - true if room is full, false otherwise
+	 */
+	public boolean isRoomFull(Long room_id) {
+		try {
+			Room room = roomDao.get(room_id);
+			
+			if (room.getNumberOfPartizipants() <= this.sessionManager
+					.getClientListByRoom(room_id).size()) {
+				return true;
+			}
+			
+			return false;
+		} catch (Exception err) {
+			log.error("[isRoomFull]", err);
+		}
+		return true;
+	}
+
+	/**
+	 * return all participants of a room
+	 * 
+	 * @param room_id
+	 * @return - all participants of a room
+	 */
+	public List<Client> getRoomClientsListByRoomId(Long room_id) {
+		return sessionManager.getClientListByRoom(room_id);
+	}
+
+	public List<Room> getRoomsWithCurrentUsersByList(String SID, int start,
+			int max, String orderby, boolean asc) {
+		log.debug("getRooms");
+
+		Long users_id = sessiondataDao.checkSession(SID);
+		Long user_level = userManager.getUserLevelByID(users_id);
+		return roomManager.getRoomsWithCurrentUsersByList(user_level, start,
+				max, orderby, asc);
+	}
+
+	public List<Room> getRoomsWithCurrentUsersByListAndType(String SID,
+			int start, int max, String orderby, boolean asc,
+			String externalRoomType) {
+		log.debug("getRooms");
+
+		Long users_id = sessiondataDao.checkSession(SID);
+		Long user_level = userManager.getUserLevelByID(users_id);
+		return roomManager.getRoomsWithCurrentUsersByListAndType(user_level,
+				start, max, orderby, asc, externalRoomType);
+	}
+
+	public Room getRoomByOwnerAndType(String SID, Long roomtypesId,
+			String roomName) {
+		Long users_id = sessiondataDao.checkSession(SID);
+		Long user_level = userManager.getUserLevelByID(users_id);
+		if (AuthLevelUtil.checkUserLevel(user_level)) {
+			return roomManager.getRoomByOwnerAndTypeId(users_id,
+					roomtypesId, roomName);
+		}
+		return null;
+	}
+
+	/**
+	 * Gives a {@link Server} entity, in case there is a cluster configured
+	 * 
+	 * @param SID
+	 * @param roomId
+	 * @return null means the user should stay on the master, otherwise a
+	 *         {@link Server} entity is returned
+	 */
+	public ServerDTO getServerForSession(String SID, long roomId) {
+		Long users_id = sessiondataDao.checkSession(SID);
+		Long user_level = userManager.getUserLevelByID(users_id);
+		if (AuthLevelUtil.checkUserLevel(user_level)) {
+			List<Server> serverList = serverDao.getActiveServers();
+
+			long minimum = -1;
+			Server result = null;
+			HashMap<Server, List<Long>> activeRoomsMap = new HashMap<Server, List<Long>>();
+			for (Server server : serverList) {
+				List<Long> roomIds = sessionManager.getActiveRoomIdsByServer(server);
+				if (roomIds.contains(roomId)) {
+					// if the room is already opened on a server, redirect the user to that one,
+					log.debug("Room is already opened on a server " + server.getAddress());
+					return new ServerDTO(server);
+				}
+				activeRoomsMap.put(server, roomIds);
+			}
+			for (Server server : activeRoomsMap.keySet()) {
+				List<Long> roomIds = activeRoomsMap.get(server);
+				Long capacity = roomDao.getRoomsCapacityByIds(roomIds);
+				if (minimum < 0 || capacity < minimum) {
+					minimum = capacity;
+					result = server;
+				}
+				log.debug("Checking server: " + server + " Number of rooms " + roomIds.size() + " RoomIds: "
+						+ roomIds + " max(Sum): " + capacity);
+			}
+			return result == null ? null : new ServerDTO(result);
+		}
+
+		log.error("Could not get server for cluster session");
+		// Empty server object
+		return null;
+	}
+	
+}
diff --git a/src/main/java/org/apache/openmeetings/remote/ContactService.java b/src/main/java/org/apache/openmeetings/remote/ContactService.java
new file mode 100644
index 0000000..19a301b
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/remote/ContactService.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.remote;
+
+
+/**
+ * 
+ * @author swagner
+ *
+ */
+public class ContactService {
+	
+
+}
diff --git a/src/main/java/org/apache/openmeetings/remote/DocumentService.java b/src/main/java/org/apache/openmeetings/remote/DocumentService.java
new file mode 100644
index 0000000..456cd61
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/remote/DocumentService.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.remote;
+
+import java.util.List;
+
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+/**
+ * 
+ * @author swagner
+ * 
+ */
+public class DocumentService {
+
+	@SuppressWarnings("unused")
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			DocumentService.class, OpenmeetingsVariables.webAppRootKey);
+
+	public List<?> getUserFiles(String SID, String parentFolder) {
+
+		return null;
+	}
+
+}
diff --git a/src/main/java/org/apache/openmeetings/remote/ErrorService.java b/src/main/java/org/apache/openmeetings/remote/ErrorService.java
new file mode 100644
index 0000000..7b656fd
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/remote/ErrorService.java
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.remote;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import org.apache.openmeetings.db.dao.basic.ErrorDao;
+import org.apache.openmeetings.db.dao.label.FieldLanguagesValuesDao;
+import org.apache.openmeetings.db.dto.basic.ErrorResult;
+import org.apache.openmeetings.db.entity.basic.ErrorType;
+import org.apache.openmeetings.db.entity.basic.ErrorValue;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 
+ * @author swagner
+ * 
+ */
+public class ErrorService {
+	private static final Logger log = Red5LoggerFactory.getLogger(ErrorService.class, webAppRootKey);
+
+	@Autowired
+	private FieldLanguagesValuesDao labelDao;
+	@Autowired
+	private ErrorDao errorDao;
+
+	/**
+	 * Gets an Error-Object by its id TODO: add error-code-handlers -20
+	 * duplicate FileName -21 FileName too short (length = 0) and make the
+	 * persistent in the DataBase
+	 * 
+	 * @param SID
+	 * @param errorid
+	 * @return - ErrorResult object with the id given
+	 */
+	public ErrorResult getErrorByCode(String SID, Long errorid, Long langId) {
+		if (errorid < 0) {
+			log.debug("errorid, language_id: " + errorid + "|" + langId);
+			ErrorValue eValues = errorDao.get(-1 * errorid);
+			if (eValues != null) {
+				ErrorType eType = errorDao.getErrorType(eValues.getErrortype_id());
+				log.debug("eValues.getFieldvalues_id() = " + eValues.getFieldvalues_id());
+				log.debug("eValues.getErrorType() = " + eType);
+				String eValue = labelDao.getString(eValues.getFieldvalues_id(), langId);
+				String tValue = labelDao.getString(eType.getFieldvalues_id(), langId);
+				if (eValue != null) {
+					return new ErrorResult(errorid, eValue, tValue);
+				}
+			}
+		} else {
+			return new ErrorResult(errorid, "Error ... please check your input", "Error");
+		}
+		return null;
+	}
+
+}
diff --git a/src/main/java/org/apache/openmeetings/remote/FLVRecorderService.java b/src/main/java/org/apache/openmeetings/remote/FLVRecorderService.java
new file mode 100644
index 0000000..86cea3f
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/remote/FLVRecorderService.java
@@ -0,0 +1,571 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.remote;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.openmeetings.data.flvrecord.converter.FlvInterviewConverterTask;
+import org.apache.openmeetings.data.flvrecord.converter.FlvInterviewReConverterTask;
+import org.apache.openmeetings.data.flvrecord.converter.FlvRecorderConverterTask;
+import org.apache.openmeetings.data.flvrecord.listener.StreamListener;
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
+import org.apache.openmeetings.db.dao.record.FlvRecordingLogDao;
+import org.apache.openmeetings.db.dao.record.FlvRecordingMetaDataDao;
+import org.apache.openmeetings.db.dao.record.FlvRecordingMetaDeltaDao;
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.server.ISessionManager;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.openmeetings.db.entity.record.FlvRecordingMetaData;
+import org.apache.openmeetings.db.entity.record.FlvRecordingMetaData.Status;
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
+import org.apache.openmeetings.util.AuthLevelUtil;
+import org.apache.openmeetings.util.CalendarPatterns;
+import org.red5.logging.Red5LoggerFactory;
+import org.red5.server.api.IConnection;
+import org.red5.server.api.Red5;
+import org.red5.server.api.scope.IScope;
+import org.red5.server.api.service.IPendingServiceCall;
+import org.red5.server.api.service.IPendingServiceCallback;
+import org.red5.server.api.service.IServiceCapableConnection;
+import org.red5.server.api.stream.IStreamListener;
+import org.red5.server.stream.ClientBroadcastStream;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class FLVRecorderService implements IPendingServiceCallback {
+	private static final Logger log = Red5LoggerFactory.getLogger(FLVRecorderService.class, webAppRootKey);
+
+	/**
+	 * Stores a reference to all available listeners we need that reference, as the internal references stored with the
+	 * red5 stream object might be gone when the user closes the browser. But each listener has an asynchronous
+	 * component that needs to be closed no matter how the user leaves the application!
+	 */
+	private static final Map<Long, StreamListener> streamListeners = new ConcurrentHashMap<Long, StreamListener>();
+
+	// Spring Beans
+	@Autowired
+	private ISessionManager sessionManager;
+	@Autowired
+	private FlvRecordingDao flvRecordingDaoImpl;
+	@Autowired
+	private UserDao usersDaoImpl;
+	@Autowired
+	private RoomDao roomDao;
+	@Autowired
+	private FlvRecorderConverterTask flvRecorderConverterTask;
+	@Autowired
+	private FlvInterviewConverterTask flvInterviewConverterTask;
+	@Autowired
+	private FlvInterviewReConverterTask flvInterviewReConverterTask;
+	@Autowired
+	private FlvRecordingLogDao flvRecordingLogDaoImpl;
+	@Autowired
+	private FlvRecordingDao recordingDao;
+	@Autowired
+	private SessiondataDao sessiondataDao;
+	@Autowired
+	private UserManager userManager;
+	@Autowired
+	private ScopeApplicationAdapter scopeApplicationAdapter;
+	@Autowired
+	private FlvRecordingMetaDeltaDao metaDeltaDao;
+	@Autowired
+	private FlvRecordingMetaDataDao metaDataDao;
+
+	public void resultReceived(IPendingServiceCall arg0) {
+	}
+
+	public Client checkForRecording() {
+		try {
+
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+
+			log.debug("getCurrentRoomClient -2- " + streamid);
+
+			Client currentClient = sessionManager.getClientByStreamId(streamid, null);
+
+			for (Client rcl : sessionManager.getClientListByRoom(currentClient.getRoom_id())) {
+				if (rcl.getIsRecording()) {
+					return rcl;
+				}
+			}
+
+			return null;
+
+		} catch (Exception err) {
+			log.error("[checkForRecording]", err);
+		}
+		return null;
+	}
+	
+	private static String generateFileName(Long flvRecording_id, String streamid) throws Exception {
+		String dateString = CalendarPatterns.getTimeForStreamId(new Date());
+		return "rec_" + flvRecording_id + "_stream_" + streamid + "_" + dateString;
+	}
+
+	public String recordMeetingStream(String roomRecordingName, String comment, Boolean isInterview) {
+		try {
+			log.debug(":: recordMeetingStream ::");
+
+			IConnection current = Red5.getConnectionLocal();
+			Client currentClient = sessionManager.getClientByStreamId(current.getClient().getId(), null);
+			Long room_id = currentClient.getRoom_id();
+
+			Date now = new Date();
+
+			FlvRecording flvRecording = new FlvRecording();
+
+			flvRecording.setFileHash("");
+			flvRecording.setFileName(roomRecordingName);
+			flvRecording.setInsertedBy(currentClient.getUser_id());
+			flvRecording.setFolder(false);
+			flvRecording.setIsImage(false);
+			flvRecording.setIsPresentation(false);
+			flvRecording.setIsRecording(true);
+			flvRecording.setComment(comment);
+			flvRecording.setIsInterview(isInterview);
+
+			flvRecording.setRoom_id(room_id);
+			flvRecording.setRecordStart(now);
+
+			flvRecording.setWidth(currentClient.getVWidth());
+			flvRecording.setHeight(currentClient.getVHeight());
+
+			flvRecording.setOwnerId(currentClient.getUser_id());
+			flvRecording.setStatus(FlvRecording.Status.PROCESSING);
+			flvRecording = recordingDao.update(flvRecording);
+			// Receive flvRecordingId
+			Long flvRecordingId = flvRecording.getFlvRecordingId();
+
+			// Update Client and set Flag
+			currentClient.setIsRecording(true);
+			currentClient.setFlvRecordingId(flvRecordingId);
+			sessionManager.updateClientByStreamId(current.getClient().getId(), currentClient, false, null);
+
+			// get all stream and start recording them
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
+				if (conn != null) {
+					if (conn instanceof IServiceCapableConnection) {
+						Client rcl = sessionManager.getClientByStreamId(conn.getClient().getId(), null);
+
+						// Send every user a notification that the recording did start
+						if (!rcl.getIsAVClient()) {
+							((IServiceCapableConnection) conn).invoke("startedRecording", new Object[] { currentClient }, this);
+						}
+
+						// If its the recording client we need another type of Meta Data
+						if (rcl.getIsScreenClient()) {
+							if (rcl.getFlvRecordingId() != null && rcl.isScreenPublishStarted()) {
+								String streamName_Screen = generateFileName(flvRecordingId, rcl.getStreamPublishName().toString());
+
+								Long flvRecordingMetaDataId = metaDataDao.addFlvRecordingMetaData(
+										flvRecordingId, rcl.getFirstname() + " " + rcl.getLastname(), now, false,
+										false, true, streamName_Screen, rcl.getInterviewPodId());
+
+								// Start FLV Recording
+								recordShow(conn, rcl.getStreamPublishName(), streamName_Screen, flvRecordingMetaDataId, true, isInterview);
+
+								// Add Meta Data
+								rcl.setFlvRecordingMetaDataId(flvRecordingMetaDataId);
+
+								sessionManager.updateClientByStreamId(rcl.getStreamid(), rcl, false, null);
+							}
+						} else if (rcl.getIsAVClient()
+								&& (rcl.getAvsettings().equals("av") || rcl.getAvsettings().equals("a") || rcl.getAvsettings().equals("v"))) {
+							// if the user does publish av, a, v
+							// But we only record av or a, video only is not interesting
+							String streamName = generateFileName(flvRecordingId, String.valueOf(rcl.getBroadCastID()).toString());
+
+							// Add Meta Data
+							boolean isAudioOnly = false;
+							if (rcl.getAvsettings().equals("a")) {
+								isAudioOnly = true;
+							}
+
+							boolean isVideoOnly = false;
+							if (rcl.getAvsettings().equals("v")) {
+								isVideoOnly = true;
+							}
+
+							Long flvRecordingMetaDataId = metaDataDao.addFlvRecordingMetaData(flvRecordingId,
+									rcl.getFirstname() + " " + rcl.getLastname(), now, isAudioOnly, isVideoOnly, false, streamName,
+									rcl.getInterviewPodId());
+
+							rcl.setFlvRecordingMetaDataId(flvRecordingMetaDataId);
+
+							sessionManager.updateClientByStreamId(rcl.getStreamid(), rcl, false, null);
+
+							// Start FLV recording
+							recordShow(conn, String.valueOf(rcl.getBroadCastID()).toString(), streamName, flvRecordingMetaDataId, !isAudioOnly,
+									isInterview);
+						}
+					}
+				}
+			}
+			}
+			return roomRecordingName;
+
+		} catch (Exception err) {
+			log.error("[recordMeetingStream]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * Start recording the published stream for the specified broadcast-Id
+	 * 
+	 * @param conn
+	 * @param broadcastid
+	 * @param streamName
+	 * @param flvRecordingMetaDataId
+	 * @throws Exception
+	 */
+	private synchronized void recordShow(IConnection conn, String broadcastid, String streamName, Long flvRecordingMetaDataId,
+			boolean isScreenData, Boolean isInterview) throws Exception {
+		try {
+			log.debug("Recording show for: " + conn.getScope().getContextPath());
+			log.debug("Name of CLient and Stream to be recorded: " + broadcastid);
+			// log.debug("Application.getInstance()"+Application.getInstance());
+			log.debug("Scope " + conn);
+			log.debug("Scope " + conn.getScope());
+			// Get a reference to the current broadcast stream.
+			ClientBroadcastStream stream = (ClientBroadcastStream) scopeApplicationAdapter.getBroadcastStream(conn.getScope(), broadcastid);
+
+			if (stream == null) {
+				log.debug("Unable to get stream: " + streamName);
+				return;
+			}
+			// Save the stream to disk.
+			log.debug("### stream " + stream);
+			log.debug("### streamName " + streamName);
+			log.debug("### conn.getScope() " + conn.getScope());
+			log.debug("### flvRecordingMetaDataId " + flvRecordingMetaDataId);
+			log.debug("### isScreenData " + isScreenData);
+			log.debug("### isInterview " + isInterview);
+			StreamListener streamListener = new StreamListener(!isScreenData, streamName, conn.getScope(),
+					flvRecordingMetaDataId, isScreenData, isInterview, metaDataDao, metaDeltaDao);
+
+			streamListeners.put(flvRecordingMetaDataId, streamListener);
+
+			stream.addStreamListener(streamListener);
+			// Just for Debug Purpose
+			// stream.saveAs(streamName+"_DEBUG", false);
+		} catch (Exception e) {
+			log.error("Error while saving stream: " + streamName, e);
+		}
+	}
+
+	/**
+	 * Stops recording the publishing stream for the specified IConnection.
+	 * 
+	 * @param conn
+	 */
+	public synchronized void stopRecordingShow(IConnection conn, String broadcastId, Long flvRecordingMetaDataId) {
+		try {
+			if (flvRecordingMetaDataId == null) {
+				// this should be fixed, can be useful for debugging, after all this is an error
+				// but we don't want the application to completely stop the process
+				log.error("flvRecordingMetaDataId is null");
+			}
+
+			log.debug("** stopRecordingShow: " + conn);
+			log.debug("### Stop recording show for broadcastId: " + broadcastId + " || " + conn.getScope().getContextPath());
+
+			Object streamToClose = scopeApplicationAdapter.getBroadcastStream(conn.getScope(), broadcastId);
+
+			StreamListener listenerAdapter = streamListeners.get(flvRecordingMetaDataId);
+
+			log.debug("Stream Closing :: " + flvRecordingMetaDataId);
+
+			ClientBroadcastStream stream = (ClientBroadcastStream) streamToClose;
+
+			// the stream can be null if the user just closes the browser
+			// without canceling the recording before leaving
+			if (stream != null) {
+				// Iterate through all stream listeners and stop the appropriate
+				if (stream.getStreamListeners() != null) {
+					for (IStreamListener iStreamListener : stream.getStreamListeners()) {
+						stream.removeStreamListener(iStreamListener);
+					}
+				}
+			}
+
+			if (listenerAdapter == null) {
+				log.debug("Stream Not Found :: " + flvRecordingMetaDataId);
+				log.debug("Available Streams :: " + streamListeners.size());
+
+				for (Long entryKey : streamListeners.keySet()) {
+					log.debug("Stored flvRecordingMetaDataId in Map: " + entryKey);
+				}
+
+				// Manually call finish on the stream so that there is no endless loop waiting
+				// in the FlvRecorderConverter waiting for the stream to finish
+				// this would normally happen in the Listener
+				FlvRecordingMetaData metaData = metaDataDao.get(flvRecordingMetaDataId);
+				if (metaData.getStreamStatus() == Status.STARTED) {
+					metaData.setStreamStatus(Status.STOPPED);
+					metaDataDao.update(metaData);
+				}
+				throw new IllegalStateException("Could not find Listener to stop! flvRecordingMetaDataId " + flvRecordingMetaDataId);
+			} else {
+				FlvRecordingMetaData metaData = metaDataDao.get(flvRecordingMetaDataId);
+				metaData.setStreamStatus(Status.STOPPING);
+				metaDataDao.update(metaData);
+			}
+
+			listenerAdapter.closeStream();
+			streamListeners.remove(flvRecordingMetaDataId);
+
+		} catch (Exception err) {
+			log.error("[stopRecordingShow]", err);
+		}
+	}
+
+	public Long stopRecordAndSave(IScope scope, Client currentClient, Long storedFlvRecordingId) {
+		try {
+			log.debug("stopRecordAndSave " + currentClient.getUsername() + "," + currentClient.getUserip());
+
+			// get all stream and stop recording them
+			for (Set<IConnection> conset : scope.getConnections()) {
+			for (IConnection conn : conset) {
+				if (conn != null) {
+					if (conn instanceof IServiceCapableConnection) {
+						Client rcl = sessionManager.getClientByStreamId(conn.getClient().getId(), null);
+
+						if (rcl == null) {
+							continue;
+						}
+						log.debug("is this users still alive? stop it :" + rcl);
+
+						if (rcl.getIsScreenClient()) {
+							if (rcl.getFlvRecordingId() != null && rcl.isScreenPublishStarted()) {
+								// Stop FLV Recording
+								stopRecordingShow(conn, rcl.getStreamPublishName(), rcl.getFlvRecordingMetaDataId());
+
+								// Update Meta Data
+								metaDataDao.updateFlvRecordingMetaDataEndDate(rcl.getFlvRecordingMetaDataId(), new Date());
+							}
+						} else if (rcl.getIsAVClient()
+								&& (rcl.getAvsettings().equals("av") || rcl.getAvsettings().equals("a") || rcl.getAvsettings().equals("v"))) {
+
+							stopRecordingShow(conn, String.valueOf(rcl.getBroadCastID()).toString(), rcl.getFlvRecordingMetaDataId());
+
+							// Update Meta Data
+							metaDataDao.updateFlvRecordingMetaDataEndDate(rcl.getFlvRecordingMetaDataId(), new Date());
+						}
+					}
+				}
+			}
+			}
+			// Store to database
+			Long flvRecordingId = currentClient.getFlvRecordingId();
+
+			// In the Case of an Interview the stopping client does not mean
+			// that its actually the recording client
+			if (storedFlvRecordingId != null) {
+				flvRecordingId = storedFlvRecordingId;
+			}
+
+			if (flvRecordingId != null) {
+				flvRecordingDaoImpl.updateFlvRecordingEndTime(flvRecordingId, new Date(), currentClient.getOrganization_id());
+
+				// Reset values
+				currentClient.setFlvRecordingId(null);
+				currentClient.setIsRecording(false);
+
+				sessionManager.updateClientByStreamId(currentClient.getStreamid(), currentClient, false, null);
+				log.debug("flvRecorderConverterTask ", flvRecorderConverterTask);
+
+				FlvRecording flvRecording = flvRecordingDaoImpl.get(flvRecordingId);
+				if (flvRecording.getIsInterview() == null || !flvRecording.getIsInterview()) {
+					flvRecorderConverterTask.startConversionThread(flvRecordingId);
+				} else {
+					flvInterviewConverterTask.startConversionThread(flvRecordingId);
+				}
+			}
+		} catch (Exception err) {
+			log.error("[-- stopRecordAndSave --]", err);
+		}
+		return new Long(-1);
+	}
+
+	public Client checkLzRecording() {
+		try {
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+
+			log.debug("getCurrentRoomClient -2- " + streamid);
+
+			Client currentClient = sessionManager.getClientByStreamId(streamid, null);
+
+			log.debug("getCurrentRoomClient -#########################- " + currentClient.getRoom_id());
+
+			for (Client rcl : sessionManager.getClientListByRoomAll(currentClient.getRoom_id())) {
+				if (rcl.getIsRecording()) {
+					return rcl;
+				}
+			}
+
+		} catch (Exception err) {
+			log.error("[checkLzRecording]", err);
+		}
+		return null;
+	}
+
+	public void stopRecordingShowForClient(IConnection conn, Client rcl) {
+		try {
+			// this cannot be handled here, as to stop a stream and to leave a
+			// room is not
+			// the same type of event.
+			// StreamService.addRoomClientEnterEventFunc(rcl, roomrecordingName,
+			// rcl.getUserip(), false);
+			log.debug("### stopRecordingShowForClient: " + rcl);
+
+			if (rcl.getIsScreenClient()) {
+
+				if (rcl.getFlvRecordingId() != null && rcl.isScreenPublishStarted()) {
+
+					// Stop FLV Recording
+					// FIXME: Is there really a need to stop it manually if the
+					// user just
+					// stops the stream?
+					stopRecordingShow(conn, rcl.getStreamPublishName(), rcl.getFlvRecordingMetaDataId());
+
+					// Update Meta Data
+					metaDataDao.updateFlvRecordingMetaDataEndDate(rcl.getFlvRecordingMetaDataId(), new Date());
+				}
+
+			} else if (rcl.getIsAVClient()
+					&& (rcl.getAvsettings().equals("a") || rcl.getAvsettings().equals("v") || rcl.getAvsettings().equals("av"))) {
+
+				// FIXME: Is there really a need to stop it manually if the user
+				// just stops the stream?
+				stopRecordingShow(conn, String.valueOf(rcl.getBroadCastID()), rcl.getFlvRecordingMetaDataId());
+
+				// Update Meta Data
+				metaDataDao.updateFlvRecordingMetaDataEndDate(rcl.getFlvRecordingMetaDataId(), new Date());
+			}
+
+		} catch (Exception err) {
+			log.error("[stopRecordingShowForClient]", err);
+		}
+	}
+
+	public void addRecordingByStreamId(IConnection conn, String streamId, Client rcl, Long flvRecordingId) {
+		try {
+			FlvRecording flvRecording = flvRecordingDaoImpl.get(flvRecordingId);
+
+			Date now = new Date();
+
+			// If its the recording client we need another type of Meta Data
+			if (rcl.getIsScreenClient()) {
+				if (rcl.getFlvRecordingId() != null && rcl.isScreenPublishStarted()) {
+					String streamName_Screen = generateFileName(flvRecordingId, rcl.getStreamPublishName().toString());
+
+					log.debug("##############  ADD SCREEN OF SHARER :: " + rcl.getStreamPublishName());
+
+					Long flvRecordingMetaDataId = metaDataDao.addFlvRecordingMetaData(flvRecordingId, rcl.getFirstname()
+							+ " " + rcl.getLastname(), now, false, false, true, streamName_Screen, rcl.getInterviewPodId());
+
+					// Start FLV Recording
+					recordShow(conn, rcl.getStreamPublishName(), streamName_Screen, flvRecordingMetaDataId, true,
+							flvRecording.getIsInterview());
+
+					// Add Meta Data
+					rcl.setFlvRecordingMetaDataId(flvRecordingMetaDataId);
+
+					sessionManager.updateClientByStreamId(rcl.getStreamid(), rcl, false, null);
+				}
+			} else if (rcl.getIsAVClient()
+					&& (rcl.getAvsettings().equals("av") || rcl.getAvsettings().equals("a") || rcl.getAvsettings().equals("v"))) {
+				// if the user does publish av, a, v
+				// But we only record av or a, video only is not interesting
+
+				String streamName = generateFileName(flvRecordingId, String.valueOf(rcl.getBroadCastID()).toString());
+
+				// Add Meta Data
+				boolean isAudioOnly = false;
+				if (rcl.getAvsettings().equals("a")) {
+					isAudioOnly = true;
+				}
+				boolean isVideoOnly = false;
+				if (rcl.getAvsettings().equals("v")) {
+					isVideoOnly = true;
+				}
+
+				Long flvRecordingMetaDataId = metaDataDao.addFlvRecordingMetaData(flvRecordingId, rcl.getFirstname() + " "
+						+ rcl.getLastname(), now, isAudioOnly, isVideoOnly, false, streamName, rcl.getInterviewPodId());
+
+				// Start FLV recording
+				recordShow(conn, String.valueOf(rcl.getBroadCastID()).toString(), streamName, flvRecordingMetaDataId, false,
+						flvRecording.getIsInterview());
+
+				rcl.setFlvRecordingMetaDataId(flvRecordingMetaDataId);
+
+				sessionManager.updateClientByStreamId(rcl.getStreamid(), rcl, false, null);
+
+			}
+
+		} catch (Exception err) {
+			log.error("[addRecordingByStreamId]", err);
+		}
+	}
+
+	public Long restartConversion(String SID, Long flvRecordingId, Integer leftSideLoud, Integer rightSideLoud, Integer leftSideTime,
+			Integer rightSideTime) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				log.debug("updateFileOrFolderName " + flvRecordingId);
+
+				FlvRecording flvRecording = flvRecordingDaoImpl.get(flvRecordingId);
+
+				flvRecording.setPreviewImage(null);
+
+				flvRecording.setProgressPostProcessing(0);
+
+				flvRecordingDaoImpl.update(flvRecording);
+
+				if (flvRecording.getIsInterview() == null || !flvRecording.getIsInterview()) {
+					flvRecorderConverterTask.startConversionThread(flvRecordingId);
+				} else {
+					flvInterviewReConverterTask.startConversionThread(flvRecordingId, leftSideLoud, rightSideLoud, leftSideTime,
+							rightSideTime);
+				}
+			}
+		} catch (Exception err) {
+			log.error("[restartInterviewConversion] ", err);
+		}
+		return null;
+	}
+
+}
diff --git a/src/main/java/org/apache/openmeetings/remote/GroupService.java b/src/main/java/org/apache/openmeetings/remote/GroupService.java
new file mode 100644
index 0000000..4ffb584
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/remote/GroupService.java
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.remote;
+
+
+public class GroupService {
+}
diff --git a/src/main/java/org/apache/openmeetings/remote/InvitationService.java b/src/main/java/org/apache/openmeetings/remote/InvitationService.java
new file mode 100644
index 0000000..7971f7c
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/remote/InvitationService.java
@@ -0,0 +1,188 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.remote;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.TimeZone;
+
+import org.apache.openmeetings.data.conference.InvitationManager;
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.calendar.IInvitationManager.MessageType;
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.room.Invitation;
+import org.apache.openmeetings.db.entity.room.Invitation.Valid;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.util.TimezoneUtil;
+import org.apache.openmeetings.util.AuthLevelUtil;
+import org.red5.logging.Red5LoggerFactory;
+import org.red5.server.api.service.IPendingServiceCall;
+import org.red5.server.api.service.IPendingServiceCallback;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class InvitationService implements IPendingServiceCallback {
+	private static final Logger log = Red5LoggerFactory.getLogger(InvitationService.class, webAppRootKey);
+	@Autowired
+	private SessiondataDao sessiondataDao;
+	@Autowired
+	private ConfigurationDao configurationDao;
+	@Autowired
+	private UserDao userDao;
+	@Autowired
+	private UserManager userManager;
+	@Autowired
+	private InvitationManager invitationManager;
+	@Autowired
+	private TimezoneUtil timezoneUtil;
+	@Autowired
+	private RoomDao roomDao;
+
+	public void resultReceived(IPendingServiceCall arg0) {
+		log.debug("InvitationService resultReceived" + arg0);
+	}
+
+	/**
+	 * send an invitation to another user by Mail
+	 * 
+	 * @param SID
+	 * @param username
+	 * @param message
+	 * @param email
+	 * @param subject
+	 * @param room_id
+	 * @param conferencedomain
+	 * @param isPasswordProtected
+	 * @param invitationpass
+	 * @param valid
+	 * @param validFromDate
+	 * @param validFromTime
+	 * @param validToDate
+	 * @param validToTime
+	 * @param language_id
+     * @param iCalTz
+	 * @return - invitation object in case of success, "Sys - Error" string or null in case of error
+	 */
+	public Object sendInvitationHash(String SID, String firstname, String lastname,
+			String message, String email, String subject,
+			Long room_id, String conferencedomain, Boolean isPasswordProtected,
+			String invitationpass, Integer valid, Date validFromDate,
+			String validFromTime, Date validToDate, String validToTime,
+			Long language_id, String iCalTz, boolean sendMail) {
+
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+				log.debug("sendInvitationHash: ");
+	
+				Integer validFromHour = Integer.valueOf(
+						validFromTime.substring(0, 2)).intValue();
+				Integer validFromMinute = Integer.valueOf(
+						validFromTime.substring(3, 5)).intValue();
+	
+				Integer validToHour = Integer.valueOf(validToTime.substring(0, 2))
+						.intValue();
+				Integer validToMinute = Integer
+						.valueOf(validToTime.substring(3, 5)).intValue();
+	
+				log.info("validFromHour: " + validFromHour);
+				log.info("validFromMinute: " + validFromMinute);
+	
+				Calendar date = Calendar.getInstance();
+				date.setTime(validFromDate);
+				
+				TimeZone timeZone = timezoneUtil.getTimeZone(iCalTz);
+				
+				Calendar calFrom = Calendar.getInstance(timeZone);
+				calFrom.set(Calendar.YEAR, date.get(Calendar.YEAR));
+				calFrom.set(Calendar.MONTH, date.get(Calendar.MONTH));
+				calFrom.set(Calendar.DAY_OF_MONTH, date.get(Calendar.DAY_OF_MONTH));
+				calFrom.set(Calendar.HOUR_OF_DAY, validFromHour);
+				calFrom.set(Calendar.MINUTE, validFromMinute);
+				calFrom.set(Calendar.SECOND, 0);
+	
+				date.setTime(validToDate);
+				Calendar calTo = Calendar.getInstance(timeZone);
+				calTo.set(Calendar.YEAR, date.get(Calendar.YEAR));
+				calTo.set(Calendar.MONTH, date.get(Calendar.MONTH));
+				calTo.set(Calendar.DAY_OF_MONTH, date.get(Calendar.DAY_OF_MONTH));
+				calTo.set(Calendar.HOUR_OF_DAY, validToHour);
+				calTo.set(Calendar.MINUTE, validToMinute);
+				calTo.set(Calendar.SECOND, 0);
+	
+				Date dFrom = calFrom.getTime();
+				Date dTo = calTo.getTime();
+	
+				User invitee = userDao.getContact(email, firstname, lastname, users_id);
+				Invitation invitation = invitationManager.getInvitation(invitee, roomDao.get(room_id),
+								isPasswordProtected, invitationpass, Valid.fromInt(valid)
+								, userDao.get(users_id), language_id,
+								dFrom, dTo, null);
+
+				if (invitation != null) {
+					if (sendMail) {
+						invitationManager.sendInvitionLink(invitation, MessageType.Create, subject, message, false);
+					}
+
+					return invitation;
+				} else {
+					return "Sys - Error";
+				}
+			} else {
+				return "Need User Privileges to perfom the Action";
+			}
+
+		} catch (Exception err) {
+			log.error("[sendInvitationHash]", err);
+		}
+
+		return null;
+	}
+
+	public String sendInvitationByHash(String SID, String invitationHash, String message, String subject
+			, Long language_id) throws Exception {
+		Long users_id = sessiondataDao.checkSession(SID);
+		Long user_level = userManager.getUserLevelByID(users_id);
+
+		if (AuthLevelUtil.checkUserLevel(user_level)) {
+			Invitation inv = (Invitation)invitationManager.getInvitationByHashCode(invitationHash, true);
+			inv.getInvitee().setLanguage_id(language_id);
+			invitationManager.sendInvitionLink(inv, MessageType.Create, subject, message, false);
+		} else {
+			return "Need User Privileges to perfom the Action";
+		}
+		return "Success";
+	}
+	
+	public Object getInvitationByHash(String hashCode) {
+		return invitationManager.getInvitationByHashCode(
+				hashCode, true);
+	}
+
+	public Object checkInvitationPass(String hashCode, String pass) {
+		return invitationManager.checkInvitationPass(hashCode, pass);
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/remote/LanguageService.java b/src/main/java/org/apache/openmeetings/remote/LanguageService.java
new file mode 100644
index 0000000..95460bc
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/remote/LanguageService.java
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.remote;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAUT_LANG_KEY;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.openmeetings.data.basic.FieldManager;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.label.FieldLanguageDao;
+import org.apache.openmeetings.db.entity.label.FieldLanguage;
+import org.apache.openmeetings.db.entity.label.Fieldlanguagesvalues;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 
+ * @author sebastianwagner
+ * 
+ */
+public class LanguageService {
+	@Autowired
+	private ConfigurationDao configurationDao;
+	@Autowired
+	private FieldManager fieldManager;
+	@Autowired
+	private FieldLanguageDao fieldLanguageDaoImpl;
+
+	/**
+	 * @return - List of all available Languages
+	 */
+	public List<FieldLanguage> getLanguages() {
+		return fieldLanguageDaoImpl.getLanguages();
+	}
+
+	/**
+	 * get all fields of a given Language_id
+	 * 
+	 * @param language_id
+	 * @deprecated
+	 * @return - all fields of a given Language_id
+	 */
+	@Deprecated
+	public List<Fieldlanguagesvalues> getLanguageById(Long language_id) {
+		return fieldManager.getAllFieldsByLanguage(language_id);
+	}
+
+	public Integer getDefaultLanguage() {
+		return configurationDao.getConfValue(CONFIG_DEFAUT_LANG_KEY, Integer.class, "1");
+	}
+
+	/**
+	 * get all fields of a given Language_id by params
+	 * 
+	 * @param language_id
+	 * @return - all fields of a given Language_id in the range given
+	 */
+	public List<Map<String, Object>> getLanguageByIdAndMax(Long language_id,
+			int start, int max) {
+		return fieldManager.getLabelsByLanguage(language_id, start, max);
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/remote/MainService.java b/src/main/java/org/apache/openmeetings/remote/MainService.java
new file mode 100644
index 0000000..3ab6749
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/remote/MainService.java
@@ -0,0 +1,547 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.remote;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_MAX_UPLOAD_SIZE_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REDIRECT_URL_FOR_EXTERNAL_KEY;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TimeZone;
+
+import org.apache.openmeetings.data.conference.InvitationManager;
+import org.apache.openmeetings.data.conference.RoomManager;
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.log.ConferenceLogDao;
+import org.apache.openmeetings.db.dao.server.ISessionManager;
+import org.apache.openmeetings.db.dao.server.LdapConfigDao;
+import org.apache.openmeetings.db.dao.server.SOAPLoginDao;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.dao.user.StateDao;
+import org.apache.openmeetings.db.entity.basic.Configuration;
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.db.entity.server.RemoteSessionObject;
+import org.apache.openmeetings.db.entity.server.SOAPLogin;
+import org.apache.openmeetings.db.entity.server.Sessiondata;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.Userdata;
+import org.apache.openmeetings.ldap.LdapLoginManagement;
+import org.apache.openmeetings.mail.MailHandler;
+import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
+import org.apache.openmeetings.remote.util.SessionVariablesUtil;
+import org.apache.openmeetings.util.AuthLevelUtil;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.wicket.util.string.Strings;
+import org.red5.logging.Red5LoggerFactory;
+import org.red5.server.api.IConnection;
+import org.red5.server.api.Red5;
+import org.red5.server.api.service.IPendingServiceCall;
+import org.red5.server.api.service.IPendingServiceCallback;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 
+ * @author swagner
+ * 
+ */
+public class MainService implements IPendingServiceCallback {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(MainService.class, OpenmeetingsVariables.webAppRootKey);
+
+	@Autowired
+	private ISessionManager sessionManager;
+	@Autowired
+	private ScopeApplicationAdapter scopeApplicationAdapter;
+	@Autowired
+	private SessiondataDao sessiondataDao;
+	@Autowired
+	private ConfigurationDao configurationDao;
+	@Autowired
+	private UserManager userManager;
+	@Autowired
+	private StateDao statemanagement;
+	@Autowired
+	private RoomManager roomManager;
+	@Autowired
+	private ConferenceLogDao conferenceLogDao;
+	@Autowired
+	private AdminUserDao usersDao;
+	@Autowired
+	private LdapConfigDao ldapConfigDao;
+	@Autowired
+	private SOAPLoginDao soapLoginDao;
+	@Autowired
+	private InvitationManager invitationManager;
+	@Autowired
+	private LdapLoginManagement ldapLoginManagement;
+	@Autowired
+	private MailHandler mailHandler;
+
+	// External User Types
+	public static final String EXTERNAL_USER_TYPE_LDAP = "LDAP";
+
+
+	/**
+	 * gets a user by its SID
+	 * 
+	 * @param SID
+	 * @param USER_ID
+	 * @return - user with SID given
+	 */
+	public User getUser(String SID, int USER_ID) {
+		User users = new User();
+		Long users_id = sessiondataDao.checkSession(SID);
+		long user_level = userManager.getUserLevelByID(users_id);
+		if (user_level > 2) {
+			users = usersDao.get(new Long(USER_ID));
+		} else {
+			users.setFirstname("No rights to do this");
+		}
+		return users;
+	}
+
+	public Client getCurrentRoomClient(String SID) {
+		try {
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+
+			log.debug("getCurrentRoomClient -1- " + SID);
+			log.debug("getCurrentRoomClient -2- " + streamid);
+
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(streamid, null);
+			return currentClient;
+		} catch (Exception err) {
+			log.error("[getCurrentRoomClient]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * load this session id before doing anything else
+	 * 
+	 * @return a unique session identifier
+	 */
+	public Sessiondata getsessiondata() {
+		return sessiondataDao.startsession();
+	}
+
+	public Long setCurrentUserOrganization(String SID, Long organization_id) {
+		try {
+			sessiondataDao.updateUserOrg(SID, organization_id);
+			return 1L;
+		} catch (Exception err) {
+			log.error("[setCurrentUserOrganization]", err);
+		}
+		return -1L;
+	}
+
+	public User loginWicket(String SID, String wicketSID, Long wicketroomid) {
+		Long userId = sessiondataDao.checkSession(wicketSID);
+		User u = userId == null ? null : usersDao.get(userId);
+		if (u != null) {
+			IConnection current = Red5.getConnectionLocal();
+			String streamId = current.getClient().getId();
+			Client currentClient = sessionManager.getClientByStreamId(streamId, null);
+			
+			if (!u.getOrganisation_users().isEmpty()) {
+				u.setSessionData(sessiondataDao.getSessionByHash(wicketSID));
+				currentClient.setUser_id(u.getUser_id());
+				currentClient.setRoom_id(wicketroomid);
+				SessionVariablesUtil.setUserId(current.getClient(), u.getUser_id());
+			
+				currentClient.setUsername(u.getLogin());
+				currentClient.setFirstname(u.getFirstname());
+				currentClient.setLastname(u.getLastname());
+				currentClient.setPicture_uri(u.getPictureuri());
+				sessionManager.updateClientByStreamId(streamId, currentClient, false, null);
+				
+				scopeApplicationAdapter.syncMessageToCurrentScope("roomConnect", currentClient, false);
+				
+				return u;
+			}
+		}
+		return null;
+	}
+	
+	public Object secureLoginByRemote(String SID, String secureHash) {
+		try {
+
+			log.debug("############### secureLoginByRemote " + secureHash);
+			System.out.println("############### secureLoginByRemote " + secureHash);
+
+			String clientURL = Red5.getConnectionLocal().getRemoteAddress();
+
+			log.debug("swfURL " + clientURL);
+
+			SOAPLogin soapLogin = soapLoginDao.get(secureHash);
+
+			if (soapLogin.getUsed()) {
+
+				if (soapLogin.getAllowSameURLMultipleTimes()) {
+
+					if (!soapLogin.getClientURL().equals(clientURL)) {
+						log.debug("does not equal " + clientURL);
+						return -42L;
+					}
+
+				} else {
+					log.debug("Already used " + secureHash);
+					return -42L;
+				}
+			}
+
+			Long loginReturn = loginUserByRemote(soapLogin.getSessionHash());
+
+			IConnection current = Red5.getConnectionLocal();
+			String streamId = current.getClient().getId();
+			Client currentClient = sessionManager.getClientByStreamId(streamId, null);
+
+			if (currentClient.getUser_id() != null) {
+				sessiondataDao.updateUser(SID, currentClient.getUser_id());
+			}
+
+			currentClient.setAllowRecording(soapLogin.getAllowRecording());
+			sessionManager.updateClientByStreamId(streamId, currentClient, false, null);
+
+			if (loginReturn == null) {
+				log.debug("loginReturn IS NULL for SID: " + soapLogin.getSessionHash());
+
+				return -1L;
+			} else if (loginReturn < 0) {
+				log.debug("loginReturn IS < 0 for SID: " + soapLogin.getSessionHash());
+
+				return loginReturn;
+			} else {
+
+				soapLogin.setUsed(true);
+				soapLogin.setUseDate(new Date());
+
+				soapLogin.setClientURL(clientURL);
+
+				soapLoginDao.update(soapLogin);
+
+				// Create Return Object and hide the validated
+				// sessionHash that is stored server side
+				// this hash should be never thrown back to the user
+
+				SOAPLogin returnSoapLogin = new SOAPLogin();
+
+				returnSoapLogin.setRoom_id(soapLogin.getRoom_id());
+				returnSoapLogin.setBecomemoderator(soapLogin.getBecomemoderator());
+				returnSoapLogin.setShowAudioVideoTest(soapLogin.getShowAudioVideoTest());
+				returnSoapLogin.setRoomRecordingId(soapLogin.getRoomRecordingId());
+				returnSoapLogin.setShowNickNameDialog(soapLogin.getShowNickNameDialog());
+				returnSoapLogin.setLandingZone(soapLogin.getLandingZone());
+
+				return returnSoapLogin;
+			}
+
+		} catch (Exception err) {
+			log.error("[secureLoginByRemote]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * Function is called if the user loggs in via a secureHash and sets the
+	 * param showNickNameDialog in the Object SOAPLogin to true the user gets
+	 * displayed an additional dialog to enter his nickname
+	 * 
+	 * @param firstname
+	 * @param lastname
+	 * @param email
+	 * @return - 1 in case of success, -1 otherwise
+	 */
+	public Long setUserNickName(String firstname, String lastname, String email) {
+		try {
+
+			IConnection current = Red5.getConnectionLocal();
+			String streamId = current.getClient().getId();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(streamId, null);
+
+			currentClient.setFirstname(firstname);
+			currentClient.setLastname(lastname);
+			currentClient.setMail(email);
+
+			// Log the User
+			conferenceLogDao.addConferenceLog(
+					"nicknameEnter", currentClient.getUser_id(), streamId,
+					null, currentClient.getUserip(), currentClient.getScope(),
+					currentClient.getExternalUserId(),
+					currentClient.getExternalUserType(),
+					currentClient.getMail(), currentClient.getFirstname(),
+					currentClient.getLastname());
+
+			this.sessionManager.updateClientByStreamId(streamId,
+					currentClient, false, null);
+
+			return 1L;
+
+		} catch (Exception err) {
+			log.error("[setUserNickName] ", err);
+		}
+		return new Long(-1);
+	}
+
+	/**
+	 * Attention! This SID is NOT the default session id! its the Session id
+	 * retrieved in the call from the SOAP Gateway!
+	 * 
+	 * @param SID
+	 * @return - 1 in case of success, -1 otherwise
+	 */
+	public Long loginUserByRemote(String SID) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkWebServiceLevel(user_level)) {
+				Sessiondata sd = sessiondataDao.getSessionByHash(SID);
+				if (sd == null || sd.getSessionXml() == null) {
+					return new Long(-37);
+				} else {
+					RemoteSessionObject userObject = RemoteSessionObject.fromXml(sd.getSessionXml());
+
+					log.debug(userObject.toString());
+
+					IConnection current = Red5.getConnectionLocal();
+					String streamId = current.getClient().getId();
+					Client currentClient = sessionManager.getClientByStreamId(streamId, null);
+
+					// Check if this User is simulated in the OpenMeetings
+					// Database
+
+					if (!Strings.isEmpty(userObject.getExternalUserId())) {
+						// If so we need to check that we create this user in
+						// OpenMeetings and update its record
+
+						User user = userManager.getUserByExternalIdAndType(
+								userObject.getExternalUserId(),
+								userObject.getExternalUserType());
+
+						if (user == null) {
+							String iCalTz = configurationDao.getConfValue("default.timezone", String.class, "");
+
+							long userId = userManager
+									.addUserWithExternalKey(1, 0, 0,
+											userObject.getFirstname(),
+											userObject.getUsername(),
+											userObject.getLastname(), 1L,
+											true, "", // password is empty by default
+											null, null, "",
+											userObject.getExternalUserId(),
+											userObject.getExternalUserType(),
+											true, userObject.getEmail(),
+											iCalTz,
+											userObject.getPictureUrl());
+
+							currentClient.setUser_id(userId);
+							SessionVariablesUtil.setUserId(current.getClient(), userId);
+						} else {
+							user.setPictureuri(userObject.getPictureUrl());
+
+							userManager.updateUser(user);
+
+							currentClient.setUser_id(user.getUser_id());
+							SessionVariablesUtil.setUserId(current.getClient(), user.getUser_id());
+						}
+					}
+
+					log.debug("userObject.getExternalUserId() -2- " + currentClient.getUser_id());
+
+					currentClient.setUserObject(userObject.getUsername(), userObject.getFirstname(), userObject.getLastname());
+					currentClient.setPicture_uri(userObject.getPictureUrl());
+					currentClient.setMail(userObject.getEmail());
+
+					log.debug("UPDATE USER BY STREAMID " + streamId);
+
+					if (currentClient.getUser_id() != null) {
+						sessiondataDao.updateUser(SID, currentClient.getUser_id());
+					}
+
+					sessionManager.updateClientByStreamId(streamId, currentClient, false, null);
+
+					return new Long(1);
+				}
+			}
+		} catch (Exception err) {
+			log.error("[loginUserByRemote] ", err);
+		}
+		return new Long(-1);
+	}
+
+	/**
+	 * this function returns a user object with organization objects set only
+	 * the organization is not available for users that are using a HASH mechanism
+	 * cause the SOAP/REST API does not guarantee that the user connected to the HASH
+	 * has a valid user object set
+	 * 
+	 * @param SID
+	 */
+	public User markSessionAsLogedIn(String SID) {
+		try {
+			sessiondataDao.updateUserWithoutSession(SID, -1L);
+			
+			Long defaultRpcUserid = configurationDao.getConfValue(
+					"default.rpc.userid", Long.class, "-1");
+			User defaultRpcUser = userManager.getUserById(defaultRpcUserid);
+			
+			User user = new User();
+			user.setOrganisation_users(defaultRpcUser.getOrganisation_users());
+			
+			return user;
+			
+		} catch (Exception err) {
+			log.error("[markSessionAsLogedIn]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * clear this session id
+	 * 
+	 * @param SID
+	 * @return string value if completed
+	 */
+	public Long logoutUser(String SID) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			IConnection current = Red5.getConnectionLocal();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(current.getClient().getId(), null);
+			
+			scopeApplicationAdapter.roomLeaveByScope(currentClient,current.getScope(), false);
+			
+			currentClient.setUserObject(null, null, null, null);
+			
+			return userManager.logout(SID, users_id);
+		} catch (Exception err) {
+			log.error("[logoutUser]",err);
+		}
+		return -1L;
+	}
+
+	public String[] getTimeZones(int start, int count) {
+		String all[] = TimeZone.getAvailableIDs();
+		return Arrays.copyOfRange(all, start, Math.min(start + count, all.length));
+	}
+
+	public List<Configuration> getGeneralOptions(String SID) {
+		try {
+			return configurationDao.get("exclusive.audio.keycode", "red5sip.enable", CONFIG_MAX_UPLOAD_SIZE_KEY, "mute.keycode", CONFIG_REDIRECT_URL_FOR_EXTERNAL_KEY);
+		} catch (Exception err) {
+			log.error("[getGeneralOptions]",err);
+		}
+		return null;
+	}
+
+	/**
+	 * logs a user out and deletes his account
+	 * 
+	 * @param SID
+	 * @return - id of user being deleted, or error code
+	 */
+	public Long deleteUserIDSelf(String SID) {
+		Long users_id = sessiondataDao.checkSession(SID);
+		long user_level = userManager.getUserLevelByID(users_id);
+		if (user_level >= 1) {
+			userManager.logout(SID, users_id);
+			return usersDao.deleteUserID(users_id);
+		} else {
+			return new Long(-10);
+		}
+	}
+
+	public List<Userdata> getUserdata(String SID) {
+		Long users_id = sessiondataDao.checkSession(SID);
+		Long user_level = userManager.getUserLevelByID(users_id);
+		if (AuthLevelUtil.checkUserLevel(user_level)) {
+			return userManager.getUserdataDashBoard(users_id);
+		}
+		return null;
+	}
+
+	/**
+	 * TODO: Is this function in usage?
+	 * 
+	 * @deprecated
+	 * @param SID
+	 * @param domain
+	 * @return - empty map
+	 */
+	@Deprecated
+	public LinkedHashMap<Integer, Client> getUsersByDomain(String SID,
+			String domain) {
+		Long users_id = sessiondataDao.checkSession(SID);
+		Long user_level = userManager.getUserLevelByID(users_id);
+		if (AuthLevelUtil.checkUserLevel(user_level)) {
+			LinkedHashMap<Integer, Client> lMap = new LinkedHashMap<Integer, Client>();
+			// Integer counter = 0;
+			// for (Iterator<String> it =
+			// Application.getClientList().keySet().iterator();it.hasNext();) {
+			// RoomClient rc = Application.getClientList().get(it.next());
+			// //if (rc.getDomain().equals(domain)) {
+			// lMap.put(counter, rc);
+			// counter++;
+			// //}
+			// }
+			return lMap;
+		} else {
+			return null;
+		}
+	}
+
+	public int closeRoom(String SID, Long room_id, Boolean status) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				roomManager.closeRoom(room_id, status);
+
+				if (status) {
+					Map<String, String> message = new HashMap<String, String>();
+					message.put("message", "roomClosed");
+					this.scopeApplicationAdapter.sendMessageByRoomAndDomain(
+							room_id, message);
+				}
+
+				return 1;
+
+			}
+
+			return 1;
+		} catch (Exception err) {
+			log.error("[closeRoom]", err);
+		}
+		return -1;
+	}
+
+	public void resultReceived(IPendingServiceCall arg0) {
+		log.debug("[resultReceived]" + arg0);
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/remote/PollService.java b/src/main/java/org/apache/openmeetings/remote/PollService.java
new file mode 100644
index 0000000..7a6f658
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/remote/PollService.java
@@ -0,0 +1,284 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.remote;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.db.dao.room.PollDao;
+import org.apache.openmeetings.db.dao.server.ISessionManager;
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.db.entity.room.PollType;
+import org.apache.openmeetings.db.entity.room.RoomPoll;
+import org.apache.openmeetings.db.entity.room.RoomPollAnswers;
+import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.red5.server.api.IConnection;
+import org.red5.server.api.Red5;
+import org.red5.server.api.service.IPendingServiceCall;
+import org.red5.server.api.service.IPendingServiceCallback;
+import org.red5.server.api.service.IServiceCapableConnection;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 
+ * @author swagner
+ * 
+ */
+public class PollService implements IPendingServiceCallback {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			PollService.class, OpenmeetingsVariables.webAppRootKey);
+
+	@Autowired
+	private ISessionManager sessionManager;
+	@Autowired
+	private UserManager userManager;
+	@Autowired
+	private ScopeApplicationAdapter scopeApplicationAdapter;
+	@Autowired
+	private PollDao pollManager;
+
+	public String createPoll(String pollName, String pollQuestion, int pollTypeId) {
+		String returnValue = "";
+		try {
+			log.debug("createPoll: " + pollQuestion);
+
+			IConnection currentcon = Red5.getConnectionLocal();
+			Client rc = sessionManager.getClientByStreamId(currentcon
+					.getClient().getId(), null);
+
+			log.debug("rc: " + rc.getStreamid() + " " + rc.getUsername() + " "
+					+ rc.getIsMod());
+
+			if (rc.getIsMod()) {
+				// will move all existing polls to the archive
+				pollManager.closePoll(rc.getRoom_id());
+				
+				sendNotification(currentcon, "newPoll",
+						new Object[] { pollManager.createPoll(rc,
+								pollName, pollQuestion, (long) pollTypeId) });
+				returnValue = "200";
+			} else {
+				returnValue = "202";
+			}
+
+		} catch (Exception err) {
+			returnValue = "203";
+			log.error("[createPoll]", err);
+		}
+		return returnValue;
+	}
+
+	public boolean closePoll() {
+		try {
+			log.debug("closePoll: ");
+
+			IConnection currentcon = Red5.getConnectionLocal();
+			Client rc = sessionManager.getClientByStreamId(currentcon
+					.getClient().getId(), null);
+
+			log.debug("rc: " + rc.getStreamid() + " " + rc.getUsername() + " "
+					+ rc.getIsMod());
+
+			if (rc.getIsMod()) {
+				// will move all existing polls to the archive
+				return pollManager.closePoll(rc.getRoom_id());
+			}
+
+		} catch (Exception err) {
+			log.error("[closePoll]", err);
+		}
+		return false;
+	}
+
+	public boolean deletePoll(Long poll_id) {
+		try {
+			log.debug("closePoll: ");
+
+			IConnection currentcon = Red5.getConnectionLocal();
+			Client rc = sessionManager.getClientByStreamId(currentcon
+					.getClient().getId(), null);
+
+			log.debug("rc: " + rc.getStreamid() + " " + rc.getUsername() + " "
+					+ rc.getIsMod());
+
+			if (rc.getIsMod()) {
+				// will move all existing polls to the archive
+				return pollManager.deletePoll(poll_id);
+			}
+
+		} catch (Exception err) {
+			log.error("[closePoll]", err);
+		}
+		return false;
+	}
+
+	public void sendNotification(IConnection current, String clientFunction,
+			Object[] obj) throws Exception {
+		// Notify all clients of the same scope (room)
+		Client rc = this.sessionManager.getClientByStreamId(current.getClient().getId(), null);
+		for (Set<IConnection> conset : current.getScope().getConnections()) {
+		for (IConnection conn : conset) {
+			if (conn != null) {
+				if (conn instanceof IServiceCapableConnection) {
+					Client rcl = this.sessionManager
+							.getClientByStreamId(conn.getClient().getId(), null);
+					if (rcl.getIsScreenClient() != null
+							&& rcl.getIsScreenClient()) {
+						// continue;
+					} else {
+						if (rcl.getRoom_id() != null && rcl.getRoom_id().equals(rc.getRoom_id())
+								&& userManager.getUserById(rcl.getUser_id())!=null) {
+							((IServiceCapableConnection) conn).invoke(
+									clientFunction, obj,
+									scopeApplicationAdapter);
+							log.debug("sending " + clientFunction + " to "
+									+ conn + " " + conn.getClient().getId());
+						}
+					}
+				}
+			}
+		}
+		}
+	}
+
+	public List<PollType> getPollTypeList() {
+		return pollManager.getPollTypes();
+	}
+
+	public int vote(int pollvalue, int pollTypeId) {
+		int returnVal = 0;
+		try {
+			log.debug("PollService::vote: Enter");
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+			Client rc = sessionManager.getClientByStreamId(streamid, null);
+
+			if (rc == null) {
+				log.error("RoomClient IS NULL for ClientID: "
+						+ current.getClient().getId());
+				return -1;
+			}
+			long roomId = rc.getRoom_id();
+			if (!pollManager.hasPoll(roomId)) {
+				log.error("POLL IS NULL for RoomId: " + rc.getRoom_id());
+				return -1;
+			}
+			
+			if(userManager.getUserById(rc.getUser_id())==null){
+				log.debug("vote: Invited users can not vote");
+				return -1;
+			}
+			if (pollManager.hasVoted(roomId, rc.getUser_id())) {
+				log.debug("hasVoted: true");
+				return -1;
+			}
+			// get Poll
+			RoomPoll roomP = pollManager.getPoll(roomId);
+
+			log.debug("vote: " + pollvalue + " " + pollTypeId + " "
+					+ roomP.getPollQuestion());
+
+			log.debug("hasVoted: false");
+			RoomPollAnswers rpA = new RoomPollAnswers();
+			if (roomP.getPollType().getIsNumericAnswer()) {
+				log.debug("numeric");
+				rpA.setPointList(pollvalue);
+			} else {
+				log.debug("boolean");
+				// Is boolean Question
+				rpA.setAnswer(new Boolean(pollvalue == 1));
+			}
+			rpA.setVotedUser(userManager.getUserById(rc.getUser_id()));
+			rpA.setVoteDate(new Date());
+			rpA.setRoomPoll(roomP);
+			roomP.getRoomPollAnswerList().add(rpA);
+			pollManager.updatePoll(roomP);
+			return 1;
+		} catch (Exception err) {
+			log.error("[vote]", err);
+		}
+		return returnVal;
+	}
+
+	public RoomPoll getVotes() {
+		return getPoll();
+	}
+
+	public RoomPoll getPoll() {
+		try {
+			IConnection current = Red5.getConnectionLocal();
+			Client rc = this.sessionManager.getClientByStreamId(current
+					.getClient().getId(), null);
+
+			// get Poll
+			return pollManager.getPoll(rc.getRoom_id());
+		} catch (Exception err) {
+			log.error("[getPoll]", err);
+		}
+		return null;
+	}
+
+	public int checkHasVoted() {
+		try {
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+			Client rc = this.sessionManager
+					.getClientByStreamId(streamid, null);
+
+			long roomId = rc.getRoom_id();
+			if(userManager.getUserById(rc.getUser_id())==null){
+				log.debug("checkHasVoted: Invited users can not vote");
+				return -1;
+			}
+			if (pollManager.hasPoll(roomId)) {
+				return pollManager.hasVoted(roomId, rc.getUser_id()) ? -1 : 1;
+			} else {
+				return -2;
+			}
+		} catch (Exception err) {
+			log.error("[checkHasVoted]", err);
+		}
+		return 0;
+	}
+
+	public List<RoomPoll> getArchivedPollList() {
+		try {
+			IConnection current = Red5.getConnectionLocal();
+			Client rc = this.sessionManager.getClientByStreamId(current
+					.getClient().getId(), null);
+
+			// get Poll
+			return pollManager.getArchivedPollList(rc.getRoom_id());
+		} catch (Exception err) {
+			log.error("[getArchivedPollList]", err);
+		}
+		return null;
+	}
+
+	public void resultReceived(IPendingServiceCall arg0) {
+		// TODO Auto-generated method stub
+		
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/remote/PrintService.java b/src/main/java/org/apache/openmeetings/remote/PrintService.java
new file mode 100644
index 0000000..36b61c3
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/remote/PrintService.java
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.remote;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+
+import org.apache.openmeetings.batik.beans.PrintBean;
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.util.AuthLevelUtil;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.openmeetings.util.crypt.MD5;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class PrintService {
+
+
+	private static final Logger log = Red5LoggerFactory.getLogger(PrintService.class, OpenmeetingsVariables.webAppRootKey);	
+	
+	private static HashMap<String,PrintBean> currentExportList = new HashMap<String,PrintBean>();
+	@Autowired
+	private SessiondataDao sessiondataDao;
+    @Autowired
+    private UserManager userManager;
+	
+	/*
+	 * Export List
+	 * 
+	 */
+	
+	public String addPrintList(String SID, @SuppressWarnings("rawtypes") List map, int width, int height) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+	        Long user_level = userManager.getUserLevelByID(users_id);
+	        if (AuthLevelUtil.checkUserLevel(user_level)) {
+	        	String hashRaw = ""+new Date();
+	        	String hash = MD5.do_checksum(hashRaw);
+	        	PrintService.addPrintItembyMap(hash, map, width, height);
+	        	return hash;
+	        }
+		} catch (Exception err) {
+    		log.error("loginUser",err);
+    	}
+    	return null;
+	}
+	
+	public static synchronized PrintBean getPrintItemByHash(String hash) throws Exception {
+		PrintBean itemList = currentExportList.get(hash);
+//		if (itemList != null) {
+//			currentExportList.remove(hash);
+//		}
+		return itemList;
+	}
+	
+	public static synchronized void addPrintItembyMap(String hash, @SuppressWarnings("rawtypes") List map, int width, int height) throws Exception {
+		PrintBean pBean = new PrintBean(hash, map, width, height);
+		currentExportList.put(hash, pBean);
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/remote/UserService.java b/src/main/java/org/apache/openmeetings/remote/UserService.java
new file mode 100644
index 0000000..c1bf220
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/remote/UserService.java
@@ -0,0 +1,613 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.remote;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.TimeZone;
+
+import org.apache.openmeetings.cluster.SlaveHTTPConnectionManager;
+import org.apache.openmeetings.data.basic.FieldManager;
+import org.apache.openmeetings.data.conference.InvitationManager;
+import org.apache.openmeetings.data.conference.RoomManager;
+import org.apache.openmeetings.data.user.OrganisationManager;
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentCategoryDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
+import org.apache.openmeetings.db.dao.calendar.MeetingMemberDao;
+import org.apache.openmeetings.db.dao.label.FieldLanguagesValuesDao;
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.room.RoomTypeDao;
+import org.apache.openmeetings.db.dao.server.ISessionManager;
+import org.apache.openmeetings.db.dao.server.ServerDao;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.dao.user.IUserService;
+import org.apache.openmeetings.db.dao.user.PrivateMessageFolderDao;
+import org.apache.openmeetings.db.dao.user.PrivateMessagesDao;
+import org.apache.openmeetings.db.dao.user.SalutationDao;
+import org.apache.openmeetings.db.dao.user.UserContactsDao;
+import org.apache.openmeetings.db.dto.basic.SearchResult;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.db.entity.calendar.MeetingMember;
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.server.Server;
+import org.apache.openmeetings.db.entity.user.Organisation;
+import org.apache.openmeetings.db.entity.user.Salutation;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.UserContact;
+import org.apache.openmeetings.db.util.TimezoneUtil;
+import org.apache.openmeetings.mail.MailHandler;
+import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
+import org.apache.openmeetings.util.AuthLevelUtil;
+import org.apache.openmeetings.util.CalendarPatterns;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.openmeetings.web.util.ContactsHelper;
+import org.red5.logging.Red5LoggerFactory;
+import org.red5.server.api.scope.IScope;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * Provides method to manipulate {@link User}
+ * 
+ * @author sebawagner
+ * 
+ */
+public class UserService implements IUserService {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			UserService.class, OpenmeetingsVariables.webAppRootKey);
+
+	@Autowired
+	private ISessionManager sessionManager;
+	@Autowired
+	private ScopeApplicationAdapter scopeApplicationAdapter;
+	@Autowired
+	private AppointmentDao appointmentDao;
+	@Autowired
+	private AppointmentCategoryDao appointmentCategoryDao;
+	@Autowired
+	private SessiondataDao sessiondataDao;
+	@Autowired
+	private ConfigurationDao configurationDao;
+	@Autowired
+	private UserManager userManager;
+	@Autowired
+	private AdminUserDao userDao;
+	@Autowired
+	private FieldManager fieldManager;
+	@Autowired
+	private SalutationDao salutationmanagement;
+	@Autowired
+	private OrganisationManager organisationManager;
+	@Autowired
+	private RoomManager roomManager;
+	@Autowired
+	private RoomDao roomDao;
+	@Autowired
+	private MeetingMemberDao meetingMemberDao;
+	@Autowired
+	private PrivateMessagesDao privateMessagesDao;
+	@Autowired
+	private PrivateMessageFolderDao privateMessageFolderDao;
+	@Autowired
+	private AdminUserDao usersDao;
+	@Autowired
+	private UserContactsDao userContactsDao;
+	@Autowired
+	private MailHandler mailHandler;
+	@Autowired
+	private TimezoneUtil timezoneUtil;
+	@Autowired
+	private InvitationManager invitationManager;
+	@Autowired
+	private ServerDao serverDao;
+	@Autowired
+	private SlaveHTTPConnectionManager slaveHTTPConnectionManager;
+	@Autowired
+	private FieldLanguagesValuesDao fieldLanguagesValuesDao;
+	@Autowired
+	private RoomTypeDao roomTypeDao;
+
+	/**
+	 * get user by id, admin only
+	 * 
+	 * @param SID
+	 * @param user_id
+	 * @return User with the id given
+	 */
+	public User getUserById(String SID, long user_id) {
+		Long users_id = sessiondataDao.checkSession(SID);
+		Long user_level = userManager.getUserLevelByID(users_id);
+		return userManager.checkAdmingetUserById(user_level, user_id);
+	}
+
+	/**
+	 * refreshes the current SID
+	 * 
+	 * @param SID
+	 * @return "ok" string in case of success, "error" string in case of the error
+	 */
+	public String refreshSession(String SID) {
+		try {
+			sessiondataDao.checkSession(SID);
+			return "ok";
+		} catch (Exception err) {
+			log.error("[refreshSession]", err);
+		}
+		return "error";
+	}
+
+	/**
+	 * get all availible Salutations
+	 * 
+	 * @param SID
+	 * @return all availible Salutations
+	 */
+	public List<Salutation> getUserSalutations(String SID, long language_id) {
+		return salutationmanagement.getUserSalutations(language_id);
+	}
+
+	/**
+	 * get a list of all users of an organisation
+	 * 
+	 * @param SID
+	 * @param organisation_id
+	 * @param start
+	 * @param max
+	 * @param orderby
+	 * @param asc
+	 * @return list of all users of an organisation
+	 */
+	public List<User> getOrgUserList(String SID, long organisation_id,
+			int start, int max, String orderby, boolean asc) {
+		return organisationManager.getUsersByOrganisationId(organisation_id,
+				start, max, orderby, asc);
+	}
+
+	public List<User> getUserListByModForm(String SID) {
+		Long users_id = sessiondataDao.checkSession(SID);
+		Long user_level = userManager.getUserLevelByID(users_id);
+		return userManager.getUserByMod(user_level, users_id);
+	}
+
+	/**
+	 * get a list of all organisations of an user
+	 * 
+	 * @param SID
+	 * @param client_user
+	 * @param start
+	 * @param max
+	 * @param orderby
+	 * @param asc
+	 * @return list of all organisations of an user
+	 */
+	public List<Organisation> getOrganisationListByUser(String SID,
+			long client_user, int start, int max, String orderby, boolean asc) {
+		Long users_id = sessiondataDao.checkSession(SID);
+		long user_level = userManager.getUserLevelByID(users_id);
+		return organisationManager.getOrganisationsByUserId(user_level,
+				client_user, start, max, orderby, asc);
+	}
+
+	/**
+	 * gets a list of all not assigned organisations of a user
+	 * 
+	 * @param SID
+	 * @param client_user
+	 * @param start
+	 * @param max
+	 * @param orderby
+	 * @param asc
+	 * @return list of all not assigned organisations of a user
+	 */
+	public List<Organisation> getRestOrganisationListByUser(String SID,
+			long client_user, int start, int max, String orderby, boolean asc) {
+		Long users_id = sessiondataDao.checkSession(SID);
+		Long user_level = userManager.getUserLevelByID(users_id);
+		return organisationManager.getRestOrganisationsByUserId(user_level,
+				client_user, start, max, orderby, asc);
+	}
+
+	/**
+	 * gets a whole user-list(admin-role only)
+	 * 
+	 * @param SID
+	 * @param start
+	 * @param max
+	 * @param orderby
+	 * @return whole user-list
+	 */
+	public SearchResult<User> getUserList(String SID, int start, int max,
+			String orderby, boolean asc) {
+		Long users_id = sessiondataDao.checkSession(SID);
+		Long user_level = userManager.getUserLevelByID(users_id);
+		return userManager
+				.getUsersList(user_level, start, max, orderby, asc);
+	}
+
+	/**
+	 * kicks a user from the server, also from slaves if needed, this method is
+	 * only invoked by the connection administration UI
+	 * 
+	 * @param SID
+	 * @param streamid
+	 * @param serverId
+	 *            0 means the session is locally, otherwise we have to perform a
+	 *            REST call
+	 * @return - true if user has sufficient permissions, false otherwise
+	 */
+	public Boolean kickUserByStreamId(String SID, String streamid, long serverId) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			// admins only
+			if (AuthLevelUtil.checkAdminLevel(user_level)) {
+
+				if (serverId == 0) {
+
+					Client rcl = this.sessionManager
+							.getClientByStreamId(streamid, null);
+
+					if (rcl == null) {
+						return true;
+					}
+					String scopeName = "hibernate";
+					if (rcl.getRoom_id() != null) {
+						scopeName = rcl.getRoom_id().toString();
+					}
+					IScope currentScope = this.scopeApplicationAdapter
+							.getRoomScope(scopeName);
+
+					HashMap<Integer, String> messageObj = new HashMap<Integer, String>();
+					messageObj.put(0, "kick");
+					this.scopeApplicationAdapter.sendMessageById(messageObj,
+							streamid, currentScope);
+
+					this.scopeApplicationAdapter.roomLeaveByScope(rcl,
+							currentScope, true);
+
+					return true;
+
+				} else {
+
+					Server server = serverDao.get(serverId);
+					Client rcl = sessionManager.getClientByStreamId(
+							streamid, server);
+					slaveHTTPConnectionManager.kickSlaveUser(server, rcl.getPublicSID());
+					
+					// true means only the REST call is performed, it is no
+					// confirmation that the user is really kicked from the
+					// slave
+					return true;
+				}
+			}
+		} catch (Exception err) {
+			log.error("[kickUserByStreamId]", err);
+		}
+		return false;
+	}
+
+	public User updateUserSelfTimeZone(String SID, String jname) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			// users only
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				User us = userManager.getUserById(users_id);
+
+				us.setTimeZoneId(timezoneUtil.getTimezoneByInternalJName(jname).getID());
+				us.setForceTimeZoneCheck(false);
+				us.setUpdatetime(new Date());
+
+				userManager.updateUser(us);
+				
+				return us;
+
+			}
+		} catch (Exception err) {
+			log.error("[updateUserTimeZone]", err);
+		}
+		return null;
+	}
+
+	@Deprecated
+	public Long requestUserToContactList(String SID, Long userToAdd_id,
+			String domain, String port, String webapp) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			// users only
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+				return ContactsHelper.addUserToContactList(userToAdd_id);
+			}
+		} catch (Exception err) {
+			log.error("[requestuserToContactList]", err);
+		}
+		return null;
+	}
+
+	public List<UserContact> getPendingUserContacts(String SID) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			// users only
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				List<UserContact> uList = userContactsDao
+						.getContactRequestsByUserAndStatus(users_id, true);
+
+				return uList;
+			}
+
+		} catch (Exception err) {
+			log.error("[getPendingUserContact]", err);
+		}
+		return null;
+	}
+
+	public List<UserContact> getUserContacts(String SID) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			// users only
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				List<UserContact> uList = userContactsDao
+						.getContactsByUserAndStatus(users_id, false);
+
+				return uList;
+			}
+
+		} catch (Exception err) {
+			log.error("[getPendingUserContact]", err);
+		}
+		return null;
+	}
+
+	public Integer removeContactUser(String SID, Long userContactId) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			// users only
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				UserContact userContacts = userContactsDao
+						.get(userContactId);
+
+				if (userContacts == null) {
+					return -49;
+				}
+
+				return userContactsDao.deleteUserContact(userContactId);
+
+			}
+		} catch (Exception err) {
+			log.error("[removeContactUser]", err);
+		}
+		return null;
+	}
+
+	private Date createCalendarDate(TimeZone timezone, String dateOnly,
+			String time) {
+		Integer hour = Integer.valueOf(time.substring(0, 2)).intValue();
+		Integer minute = Integer.valueOf(time.substring(3, 5)).intValue();
+
+		log.info("createCalendar Hour: " + hour);
+		log.info("createCalendar Minute: " + minute);
+
+		Calendar cal = TimezoneUtil.getCalendarInTimezone(dateOnly, timezone);
+		cal.set(Calendar.HOUR_OF_DAY, hour);
+		cal.set(Calendar.MINUTE, minute);
+		cal.set(Calendar.SECOND, 0);
+		cal.set(Calendar.MILLISECOND, 0);
+
+		return cal.getTime();
+	}
+
+	public Long composeMail(String SID, List<String> recipients,
+			String subject, String message, Boolean bookedRoom,
+			String validFromDate, String validFromTime, String validToDate,
+			String validToTime, Long parentMessageId, Long roomtype_id,
+			String domain, String port, String webapp) {
+		try {
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			// users only
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+				User from = userManager.getUserById(users_id);
+				TimeZone timezone = timezoneUtil.getTimeZone(from);
+
+				Date start = createCalendarDate(timezone, validFromDate, validFromTime);
+				Date end = createCalendarDate(timezone, validToDate, validToTime);
+
+				log.info("validFromDate: " + CalendarPatterns.getDateWithTimeByMiliSeconds(start));
+				log.info("validToDate: " + CalendarPatterns.getDateWithTimeByMiliSeconds(end));
+
+				Appointment a = new Appointment();
+				a.setTitle(subject);
+				a.setDescription(message);
+				a.setStart(start);
+				a.setEnd(end);
+				a.setCategory(appointmentCategoryDao.get(1L));
+				a.setOwner(from);
+				if (bookedRoom) {
+					a.setRoom(new Room());
+					a.getRoom().setAppointment(true);
+					a.getRoom().setName(subject);
+					a.getRoom().setRoomtype(roomTypeDao.get(roomtype_id));
+					a.getRoom().setNumberOfPartizipants(100L);
+					a.getRoom().setAllowUserQuestions(true);
+					a.getRoom().setAllowFontStyles(true);
+				}
+				for (String email : recipients) {
+					MeetingMember mm = new MeetingMember();
+					mm.setAppointment(a);
+					mm.setUser(userDao.getContact(email, users_id));
+					a.getMeetingMembers().add(mm);
+				}
+				a = appointmentDao.update(a, users_id);
+				for (MeetingMember mm : a.getMeetingMembers()) {
+					User to = mm.getUser();
+					Room room = a.getRoom();
+					
+					//TODO should be reviewed
+					if (!to.getUser_id().equals(from.getUser_id())) {
+						// One message to the Send
+						privateMessagesDao.addPrivateMessage(subject,
+								message, parentMessageId, from, to, from,
+								bookedRoom, room, false, 0L);
+
+						// One message to the Inbox
+						privateMessagesDao.addPrivateMessage(subject,
+								message, parentMessageId, from, to, to,
+								bookedRoom, room, false, 0L);
+					}
+
+					// We do not send an email to the one that has created the
+					// private message
+					if (to != null && to.getUser_id().equals(from.getUser_id())) {
+						continue;
+					}
+
+					if (to.getAdresses() != null) {
+						String aLinkHTML = 	"<br/><br/>" + "<a href='" + ContactsHelper.getLink() + "'>"
+									+  fieldLanguagesValuesDao.get(1302, from.getLanguage_id()) + "</a><br/>";
+						
+						mailHandler.send(to.getAdresses().getEmail(),
+								fieldLanguagesValuesDao.get(1301, from.getLanguage_id()) + subject,
+								message.replaceAll("\\<.*?>", "") + aLinkHTML);
+					}
+				}
+			}
+
+		} catch (Exception err) {
+			log.error("[composeMail]", err);
+		}
+		return null;
+	}
+
+	public Boolean checkUserIsInContactList(String SID, Long user_id) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			// users only
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				List<UserContact> uList = userContactsDao
+						.getContactsByUserAndStatus(users_id, false);
+
+				for (UserContact userContact : uList) {
+
+					if (userContact.getContact().getUser_id().equals(user_id)) {
+						return true;
+					}
+
+				}
+
+				return false;
+
+			}
+
+		} catch (Exception err) {
+			log.error("[checkUserIsInContactList]", err);
+		}
+		return null;
+	}
+
+	public void shareCalendarUserContact(String SID, Long userContactId,
+			Boolean shareCalendar) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			// users only
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				UserContact userContacts = userContactsDao
+						.get(userContactId);
+
+				userContacts.setShareCalendar(shareCalendar);
+
+				userContactsDao.updateContact(userContacts);
+
+			}
+
+		} catch (Exception err) {
+			log.error("[shareCalendarUserContact]", err);
+		}
+	}
+
+	/**
+	 * Kick a user by its publicSID.<br/>
+	 * <br/>
+	 * <i>Note:</i>
+	 * This method will not perform a call to the slave, cause this call can only be 
+	 * invoked from inside the conference room, that means all clients are on the
+	 * same server, no matter if clustered or not.
+	 * 
+	 * @param SID
+	 * @param publicSID
+	 * @return - true in case user have sufficient permissions, null otherwise
+	 */
+	public Boolean kickUserByPublicSID(String SID, String publicSID) {
+		try {
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+			// users only
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				Client rcl = this.sessionManager.getClientByPublicSID(
+						publicSID, false, null);
+
+				if (rcl == null) {
+					return true;
+				}
+				String scopeName = "hibernate";
+				if (rcl.getRoom_id() != null) {
+					scopeName = rcl.getRoom_id().toString();
+				}
+				IScope currentScope = this.scopeApplicationAdapter
+						.getRoomScope(scopeName);
+
+				HashMap<Integer, String> messageObj = new HashMap<Integer, String>();
+				messageObj.put(0, "kick");
+
+				this.scopeApplicationAdapter.sendMessageById(messageObj,
+						rcl.getStreamid(), currentScope);
+
+				this.scopeApplicationAdapter.roomLeaveByScope(rcl,
+						currentScope, true);
+
+				return true;
+			}
+
+		} catch (Exception err) {
+			log.error("[kickUserByStreamId]", err);
+		}
+		return null;
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/remote/WhiteBoardService.java b/src/main/java/org/apache/openmeetings/remote/WhiteBoardService.java
new file mode 100644
index 0000000..08b3528
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/remote/WhiteBoardService.java
@@ -0,0 +1,665 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.remote;
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.Map;
+
+import org.apache.commons.collections.ComparatorUtils;
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.data.whiteboard.WhiteBoardObjectListManagerById;
+import org.apache.openmeetings.data.whiteboard.WhiteBoardObjectSyncManager;
+import org.apache.openmeetings.db.dao.server.ISessionManager;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dto.room.Cliparts;
+import org.apache.openmeetings.db.dto.room.WhiteboardObject;
+import org.apache.openmeetings.db.dto.room.WhiteboardObjectList;
+import org.apache.openmeetings.db.dto.room.WhiteboardSyncLockObject;
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
+import org.apache.openmeetings.util.AuthLevelUtil;
+import org.apache.openmeetings.util.OmFileHelper;
+import org.red5.logging.Red5LoggerFactory;
+import org.red5.server.api.IConnection;
+import org.red5.server.api.Red5;
+import org.red5.server.api.scope.IScope;
+import org.red5.server.api.service.IPendingServiceCall;
+import org.red5.server.api.service.IPendingServiceCallback;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 
+ * @author sebastianwagner
+ * 
+ */
+public class WhiteBoardService implements IPendingServiceCallback {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			WhiteBoardService.class, "openmeetings");
+	@Autowired
+	private UserManager userManager;
+	@Autowired
+	private final ScopeApplicationAdapter scopeApplicationAdapter = null;
+	@Autowired
+	private final ISessionManager sessionManager = null;
+	@Autowired
+	private final WhiteBoardObjectSyncManager whiteBoardObjectListManager = null;
+	@Autowired
+	private final WhiteBoardObjectListManagerById whiteBoardObjectListManagerById = null;
+	@Autowired
+	private SessiondataDao sessiondataDao;
+
+	public Long getNewWhiteboardId() {
+		try {
+
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(streamid, null);
+			Long room_id = currentClient.getRoom_id();
+
+			Long whiteBoardId = this.whiteBoardObjectListManagerById
+					.getNewWhiteboardId(room_id);
+
+			return whiteBoardId;
+
+		} catch (Exception err) {
+			log.error("[deleteWhiteboard]", err);
+		}
+		return null;
+	}
+
+	public Boolean deleteWhiteboard(Long whiteBoardId) {
+		try {
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(streamid, null);
+			Long room_id = currentClient.getRoom_id();
+
+			WhiteboardObjectList whiteboardObjectList = this.whiteBoardObjectListManagerById
+					.getWhiteBoardObjectListByRoomId(room_id);
+
+			for (Iterator<Long> iter = whiteboardObjectList
+					.getWhiteboardObjects().keySet().iterator(); iter.hasNext();) {
+				Long storedWhiteboardId = iter.next();
+
+				log.debug(" :: storedWhiteboardId :: " + storedWhiteboardId);
+
+				if (storedWhiteboardId.equals(whiteBoardId)) {
+					log.debug("Found Whiteboard to Remove");
+				}
+			}
+			Object returnValue = whiteboardObjectList.getWhiteboardObjects()
+					.remove(whiteBoardId);
+
+			log.debug(" :: whiteBoardId :: " + whiteBoardId);
+
+			this.whiteBoardObjectListManagerById
+					.setWhiteBoardObjectListRoomObj(room_id,
+							whiteboardObjectList);
+
+			if (returnValue != null) {
+				return true;
+			} else {
+				return false;
+			}
+
+		} catch (Exception err) {
+			log.error("[deleteWhiteboard]", err);
+		}
+		return null;
+	}
+
+	public WhiteboardObjectList getRoomItemsBy() {
+		try {
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(streamid, null);
+			Long room_id = currentClient.getRoom_id();
+
+			log.debug("getRoomItems: " + room_id);
+			WhiteboardObjectList whiteboardObjectList = this.whiteBoardObjectListManagerById
+					.getWhiteBoardObjectListByRoomId(room_id);
+
+			if (whiteboardObjectList.getWhiteboardObjects().size() == 0) {
+
+				Long whiteBoardId = this.whiteBoardObjectListManagerById
+						.getNewWhiteboardId(room_id);
+
+				this.whiteBoardObjectListManagerById
+						.setWhiteBoardObjectListRoomObjAndWhiteboardId(room_id,
+								new WhiteboardObject(), whiteBoardId);
+
+				log.debug("Init New Room List");
+
+				whiteboardObjectList = this.whiteBoardObjectListManagerById
+						.getWhiteBoardObjectListByRoomId(room_id);
+
+				return whiteboardObjectList;
+
+			} else {
+
+				return whiteboardObjectList;
+
+			}
+
+			// return completeList;
+		} catch (Exception err) {
+			log.error("[getRoomItemsBy]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * change the draw status of a user, allow disallow him to draw anybody
+	 * besides the Moderator to draw on the whiteboard, only a Moderator is
+	 * allowed to trigger this function
+	 * 
+	 * @param SID
+	 * @param publicSID
+	 * @param canDraw
+	 * @return null in case of success, false otherwise
+	 */
+	public Boolean setCanDraw(String SID, String publicSID, boolean canDraw) {
+		try {
+
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(streamid, null);
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				if (currentClient.getIsMod()) {
+					Client rcl = this.sessionManager
+							.getClientByPublicSID(publicSID, false, null);
+
+					if (rcl != null) {
+						rcl.setCanDraw(canDraw);
+						this.sessionManager.updateClientByStreamId(
+								rcl.getStreamid(), rcl, false, null);
+
+						HashMap<Integer, Object> newMessage = new HashMap<Integer, Object>();
+						newMessage.put(0, "updateDrawStatus");
+						newMessage.put(1, rcl);
+						this.scopeApplicationAdapter
+								.sendMessageWithClientWithSyncObject(newMessage, true);
+
+					} else {
+						return false;
+					}
+				} else {
+					return false;
+				}
+			}
+
+		} catch (Exception err) {
+			log.error("[setCanDraw]", err);
+		}
+		return null;
+	}
+
+	public Boolean setCanShare(String SID, String publicSID, boolean canShare) {
+		try {
+
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(streamid, null);
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				if (currentClient.getIsMod()) {
+					Client rcl = this.sessionManager
+							.getClientByPublicSID(publicSID, false, null);
+
+					if (rcl != null) {
+						rcl.setCanShare(canShare);
+						this.sessionManager.updateClientByStreamId(
+								rcl.getStreamid(), rcl, false, null);
+
+						HashMap<Integer, Object> newMessage = new HashMap<Integer, Object>();
+						newMessage.put(0, "updateDrawStatus");
+						newMessage.put(1, rcl);
+						this.scopeApplicationAdapter
+								.sendMessageWithClientWithSyncObject(newMessage, true);
+
+					} else {
+						return false;
+					}
+				} else {
+					return false;
+				}
+			}
+
+		} catch (Exception err) {
+			log.error("[setCanDraw]", err);
+		}
+		return null;
+	}
+
+	public Boolean setCanRemote(String SID, String publicSID, boolean canRemote) {
+		try {
+
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(streamid, null);
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+
+				if (currentClient.getIsMod()) {
+					Client rcl = this.sessionManager
+							.getClientByPublicSID(publicSID, false, null);
+
+					if (rcl != null) {
+						rcl.setCanRemote(canRemote);
+						this.sessionManager.updateClientByStreamId(
+								rcl.getStreamid(), rcl, false, null);
+
+						HashMap<Integer, Object> newMessage = new HashMap<Integer, Object>();
+						newMessage.put(0, "updateDrawStatus");
+						newMessage.put(1, rcl);
+						this.scopeApplicationAdapter
+								.sendMessageWithClientWithSyncObject(newMessage, true);
+
+					} else {
+						return false;
+					}
+				} else {
+					return false;
+				}
+			}
+
+		} catch (Exception err) {
+			log.error("[setCanDraw]", err);
+		}
+		return null;
+	}
+
+    public Boolean setCanGiveAudio(String SID, String publicSID, boolean canGiveAudio) {
+		try {
+            log.debug("[setCanGiveAudio] " + SID + ", " + publicSID + ", " + canGiveAudio);
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(streamid, null);
+
+			Long users_id = sessiondataDao.checkSession(SID);
+			Long user_level = userManager.getUserLevelByID(users_id);
+
+			if (AuthLevelUtil.checkUserLevel(user_level)) {
+				if (currentClient.getIsMod()) {
+					Client rcl = this.sessionManager
+							.getClientByPublicSID(publicSID, false, null);
+
+					if (rcl != null) {
+						rcl.setCanGiveAudio(canGiveAudio);
+				        this.sessionManager.updateClientByStreamId(
+				                rcl.getStreamid(), rcl, false, null);
+
+				        HashMap<Integer, Object> newMessage = new HashMap<Integer, Object>();
+				        newMessage.put(0, "updateGiveAudioStatus");
+				        newMessage.put(1, rcl);
+				        this.scopeApplicationAdapter
+				                .sendMessageWithClientWithSyncObject(newMessage, true);
+					} else {
+						return false;
+					}
+				} else {
+					return false;
+				}
+			}
+
+		} catch (Exception err) {
+			log.error("[setCanGiveAudio]", err);
+		}
+		return null;
+	}
+
+	public WhiteboardSyncLockObject startNewSyncprocess() {
+		try {
+
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(streamid, null);
+			Long room_id = currentClient.getRoom_id();
+
+			WhiteboardSyncLockObject wSyncLockObject = new WhiteboardSyncLockObject();
+			wSyncLockObject.setAddtime(new Date());
+			wSyncLockObject.setPublicSID(currentClient.getPublicSID());
+			wSyncLockObject.setInitialLoaded(true);
+
+			Map<String, WhiteboardSyncLockObject> syncListRoom = this.whiteBoardObjectListManager
+					.getWhiteBoardSyncListByRoomid(room_id);
+
+			wSyncLockObject.setCurrentLoadingItem(true);
+			wSyncLockObject.setStarttime(new Date());
+
+			syncListRoom.put(currentClient.getPublicSID(), wSyncLockObject);
+			this.whiteBoardObjectListManager.setWhiteBoardSyncListByRoomid(
+					room_id, syncListRoom);
+			
+			//Sync to clients
+			this.scopeApplicationAdapter.syncMessageToCurrentScope("sendSyncFlag", wSyncLockObject, true);
+
+			return wSyncLockObject;
+
+		} catch (Exception err) {
+			log.error("[startNewSyncprocess]", err);
+		}
+		return null;
+	}
+
+	public void sendCompletedSyncEvent() {
+		try {
+
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(streamid, null);
+			Long room_id = currentClient.getRoom_id();
+
+			Map<String, WhiteboardSyncLockObject> syncListRoom = this.whiteBoardObjectListManager
+					.getWhiteBoardSyncListByRoomid(room_id);
+
+			WhiteboardSyncLockObject wSyncLockObject = syncListRoom
+					.get(currentClient.getPublicSID());
+
+			if (wSyncLockObject == null) {
+				log.error("WhiteboardSyncLockObject not found for this Client "
+						+ syncListRoom);
+				return;
+			} else if (!wSyncLockObject.isCurrentLoadingItem()) {
+				log.warn("WhiteboardSyncLockObject was not started yet "
+						+ syncListRoom);
+				return;
+			} else {
+				syncListRoom.remove(currentClient.getPublicSID());
+				this.whiteBoardObjectListManager.setWhiteBoardSyncListByRoomid(
+						room_id, syncListRoom);
+
+				int numberOfInitial = this
+						.getNumberOfInitialLoaders(syncListRoom);
+
+				if (numberOfInitial == 0) {
+					this.scopeApplicationAdapter.syncMessageToCurrentScope("sendSyncCompleteFlag", wSyncLockObject, true);
+				} else {
+					return;
+				}
+			}
+
+		} catch (Exception err) {
+			log.error("[sendCompletedSyncEvent]", err);
+		}
+		return;
+	}
+
+	private int getNumberOfInitialLoaders(
+			Map<String, WhiteboardSyncLockObject> syncListRoom)
+			throws Exception {
+		int number = 0;
+		for (Iterator<String> iter = syncListRoom.keySet().iterator(); iter
+				.hasNext();) {
+			WhiteboardSyncLockObject lockObject = syncListRoom.get(iter.next());
+			if (lockObject.isInitialLoaded()) {
+				number++;
+			}
+		}
+		return number;
+	}
+
+	/*
+	 * Image Sync Sequence
+	 */
+
+	public void startNewObjectSyncProcess(String object_id, boolean isStarting) {
+		try {
+
+			log.debug("startNewObjectSyncprocess: " + object_id);
+
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(streamid, null);
+			Long room_id = currentClient.getRoom_id();
+
+			WhiteboardSyncLockObject wSyncLockObject = new WhiteboardSyncLockObject();
+			wSyncLockObject.setAddtime(new Date());
+			wSyncLockObject.setPublicSID(currentClient.getPublicSID());
+			wSyncLockObject.setStarttime(new Date());
+
+			Map<String, WhiteboardSyncLockObject> syncListImage = this.whiteBoardObjectListManager
+					.getWhiteBoardObjectSyncListByRoomAndObjectId(room_id,
+							object_id);
+			syncListImage.put(currentClient.getPublicSID(), wSyncLockObject);
+			this.whiteBoardObjectListManager
+					.setWhiteBoardImagesSyncListByRoomAndObjectId(room_id,
+							object_id, syncListImage);
+
+			// Do only send the Token to show the Loading Splash for the
+			// initial-Request that starts the loading
+			if (isStarting) {
+				this.scopeApplicationAdapter.syncMessageToCurrentScope("sendObjectSyncFlag", wSyncLockObject, true);
+			}
+
+		} catch (Exception err) {
+			log.error("[startNewObjectSyncProcess]", err);
+		}
+	}
+
+	public int sendCompletedObjectSyncEvent(String object_id) {
+		try {
+
+			log.debug("sendCompletedObjectSyncEvent: " + object_id);
+
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(streamid, null);
+			Long room_id = currentClient.getRoom_id();
+
+			Map<String, WhiteboardSyncLockObject> syncListImage = this.whiteBoardObjectListManager
+					.getWhiteBoardObjectSyncListByRoomAndObjectId(room_id,
+							object_id);
+
+			log.debug("sendCompletedObjectSyncEvent syncListImage: "
+					+ syncListImage);
+
+			WhiteboardSyncLockObject wSyncLockObject = syncListImage
+					.get(currentClient.getPublicSID());
+
+			if (wSyncLockObject == null) {
+				log.error("WhiteboardSyncLockObject not found for this Client "
+						+ currentClient.getPublicSID());
+				log.error("WhiteboardSyncLockObject not found for this syncListImage "
+						+ syncListImage);
+				return -2;
+
+			} else {
+
+				log.debug("sendCompletedImagesSyncEvent remove: "
+						+ currentClient.getPublicSID());
+
+				syncListImage.remove(currentClient.getPublicSID());
+				this.whiteBoardObjectListManager
+						.setWhiteBoardImagesSyncListByRoomAndObjectId(room_id,
+								object_id, syncListImage);
+
+				int numberOfInitial = this.whiteBoardObjectListManager
+						.getWhiteBoardObjectSyncListByRoomid(room_id).size();
+
+				log.debug("sendCompletedImagesSyncEvent numberOfInitial: "
+						+ numberOfInitial);
+
+				if (numberOfInitial == 0) {
+					scopeApplicationAdapter.syncMessageToCurrentScope("sendObjectSyncCompleteFlag", wSyncLockObject, true);
+					return 1;
+				} else {
+					return -4;
+				}
+			}
+
+		} catch (Exception err) {
+			log.error("[sendCompletedObjectSyncEvent]", err);
+		}
+		return -1;
+	}
+
+	public synchronized void removeUserFromAllLists(IScope scope,
+			Client currentClient) {
+		try {
+
+			Long room_id = currentClient.getRoom_id();
+
+			// TODO: Maybe we should also check all rooms, independent from the
+			// current room_id if there is any user registered
+			if (room_id != null) {
+
+				log.debug("removeUserFromAllLists this.whiteBoardObjectListManager: "
+						+ this.whiteBoardObjectListManager);
+				log.debug("removeUserFromAllLists room_id: " + room_id);
+
+				// Check Initial Loaders
+				Map<String, WhiteboardSyncLockObject> syncListRoom = this.whiteBoardObjectListManager
+						.getWhiteBoardSyncListByRoomid(room_id);
+
+				WhiteboardSyncLockObject wSyncLockObject = syncListRoom
+						.get(currentClient.getPublicSID());
+
+				if (wSyncLockObject != null) {
+					syncListRoom.remove(currentClient.getPublicSID());
+				}
+				this.whiteBoardObjectListManager.setWhiteBoardSyncListByRoomid(
+						room_id, syncListRoom);
+
+				int numberOfInitial = this
+						.getNumberOfInitialLoaders(syncListRoom);
+
+				log.debug("scope " + scope);
+
+				if (numberOfInitial == 0 && scope != null) {
+					
+					scopeApplicationAdapter.syncMessageToCurrentScope("sendSyncCompleteFlag", wSyncLockObject, false);
+					
+				}
+
+				// Check Image Loaders
+				Map<String, Map<String, WhiteboardSyncLockObject>> syncListRoomImages = this.whiteBoardObjectListManager
+						.getWhiteBoardObjectSyncListByRoomid(room_id);
+
+				for (Iterator<String> iter = syncListRoomImages.keySet()
+						.iterator(); iter.hasNext();) {
+					String object_id = iter.next();
+					Map<String, WhiteboardSyncLockObject> syncListImages = syncListRoomImages
+							.get(object_id);
+					WhiteboardSyncLockObject wImagesSyncLockObject = syncListImages
+							.get(currentClient.getPublicSID());
+					if (wImagesSyncLockObject != null) {
+						syncListImages.remove(currentClient.getPublicSID());
+					}
+					this.whiteBoardObjectListManager
+							.setWhiteBoardImagesSyncListByRoomAndObjectId(
+									room_id, object_id, syncListImages);
+				}
+
+				int numberOfImageLoaders = this.whiteBoardObjectListManager
+						.getWhiteBoardObjectSyncListByRoomid(room_id).size();
+
+				if (numberOfImageLoaders == 0 && scope != null) {
+					scopeApplicationAdapter.syncMessageToCurrentScope("sendImagesSyncCompleteFlag", new Object[] { "remove" }, true);
+				}
+
+			}
+
+		} catch (Exception err) {
+			log.error("[removeUserFromAllLists]", err);
+		}
+	}
+
+	public Cliparts getClipArtIcons() {
+		try {
+			File clipart_dir = OmFileHelper.getPublicClipartsDir();
+
+			FilenameFilter getFilesOnly = new FilenameFilter() {
+				public boolean accept(File b, String name) {
+					File f = new File(b, name);
+					return !f.isDirectory();
+				}
+			};
+
+			FilenameFilter getDirectoriesOnly = new FilenameFilter() {
+				public boolean accept(File b, String name) {
+					File f = new File(b, name);
+					return f.isDirectory() && !f.getName().equals("thumb");
+				}
+			};
+
+			Cliparts cl = new Cliparts();
+			cl.setFolderName("general");
+
+			String[] files_general = clipart_dir.list(getFilesOnly);
+			@SuppressWarnings("unchecked")
+			Comparator<String> comparator = ComparatorUtils.naturalComparator();
+			Arrays.sort(files_general, comparator);
+
+			cl.setGeneralList(files_general);
+			cl.setSubCategories(new LinkedList<Cliparts>());
+
+			for (File dir : clipart_dir.listFiles(getDirectoriesOnly)) {
+				Cliparts cl_sub = new Cliparts();
+				cl_sub.setFolderName("math");
+				String[] files = dir.list(getFilesOnly);
+				Arrays.sort(files, comparator);
+				cl_sub.setGeneralList(files);
+				cl.getSubCategories().add(cl_sub);
+			}
+
+			return cl;
+
+		} catch (Exception err) {
+			log.error("[getClipArtIcons]", err);
+		}
+		return null;
+	}
+
+	public void resultReceived(IPendingServiceCall arg0) {
+		log.debug("resultReceived: " + arg0);
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java b/src/main/java/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java
new file mode 100644
index 0000000..6d7a266
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java
@@ -0,0 +1,2708 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.remote.red5;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.openmeetings.data.calendar.management.AppointmentLogic;
+import org.apache.openmeetings.data.conference.RoomManager;
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.data.whiteboard.EmoticonsManager;
+import org.apache.openmeetings.data.whiteboard.WhiteboardManager;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.calendar.MeetingMemberDao;
+import org.apache.openmeetings.db.dao.log.ConferenceLogDao;
+import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.server.ISessionManager;
+import org.apache.openmeetings.db.dao.server.ServerDao;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.dto.room.BrowserStatus;
+import org.apache.openmeetings.db.dto.room.RoomStatus;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.db.entity.calendar.MeetingMember;
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.server.Server;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.remote.FLVRecorderService;
+import org.apache.openmeetings.remote.WhiteBoardService;
+import org.apache.openmeetings.remote.util.SessionVariablesUtil;
+import org.apache.openmeetings.util.CalendarPatterns;
+import org.apache.openmeetings.util.InitializationContainer;
+import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.openmeetings.util.Version;
+import org.apache.openmeetings.util.process.UploadCompleteMessage;
+import org.red5.logging.Red5LoggerFactory;
+import org.red5.server.adapter.ApplicationAdapter;
+import org.red5.server.api.IClient;
+import org.red5.server.api.IConnection;
+import org.red5.server.api.Red5;
+import org.red5.server.api.scope.IBasicScope;
+import org.red5.server.api.scope.IBroadcastScope;
+import org.red5.server.api.scope.IScope;
+import org.red5.server.api.scope.ScopeType;
+import org.red5.server.api.service.IPendingServiceCall;
+import org.red5.server.api.service.IPendingServiceCallback;
+import org.red5.server.api.service.IServiceCapableConnection;
+import org.red5.server.api.stream.IBroadcastStream;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class ScopeApplicationAdapter extends ApplicationAdapter implements IPendingServiceCallback {
+	private static final Logger log = Red5LoggerFactory.getLogger(ScopeApplicationAdapter.class, webAppRootKey);
+
+	@Autowired
+	private ISessionManager sessionManager;
+	@Autowired
+	private EmoticonsManager emoticonsManager;
+	@Autowired
+	private WhiteBoardService whiteBoardService;
+	@Autowired
+	private WhiteboardManager whiteboardManagement;
+	@Autowired
+	private FLVRecorderService flvRecorderService;
+	@Autowired
+	private ConfigurationDao configurationDao;
+	@Autowired
+	private AppointmentLogic appointmentLogic;
+	@Autowired
+	private SessiondataDao sessiondataDao;
+	@Autowired
+	private UserManager userManager;
+	@Autowired
+	private RoomManager roomManager;
+	@Autowired
+	private ConferenceLogDao conferenceLogDao;
+	@Autowired
+	private UserDao usersDao;
+	@Autowired
+	private RoomDao roomDao;
+	@Autowired
+	private FlvRecordingDao recordingDao;
+	@Autowired
+	private MeetingMemberDao meetingMemberDao;
+	@Autowired
+	private ServerDao serverDao;
+
+	public static String lineSeperator = System.getProperty("line.separator");
+
+	private static long broadCastCounter = 0;
+
+	public synchronized void resultReceived(IPendingServiceCall arg0) {
+		// TODO Auto-generated method stub
+	}
+
+	@Override
+	public synchronized boolean appStart(IScope scope) {
+		try {
+			OmFileHelper.setOmHome(scope.getResource("/").getFile());
+
+			log.debug("webAppPath : " + OmFileHelper.getOmHome());
+
+			// Only load this Class one time Initially this value might by empty, because the DB is empty yet
+			getCryptKey();
+
+			// init your handler here
+
+			// The scheduled Jobs did go into the Spring-Managed Beans, see schedulerJobs.service.xml
+
+			// Spring Definition does not work here, its too early, Instance is not set yet
+			emoticonsManager.loadEmot();
+
+			for (String scopeName : scope.getScopeNames()) {
+				log.debug("scopeName :: " + scopeName);
+			}
+			
+			InitializationContainer.initComplete = true;
+		    Version.logOMStarted();
+		    recordingDao.resetProcessingStatus(); //we are starting so all processing recordings are now errors
+		} catch (Exception err) {
+			log.error("[appStart]", err);
+		}
+		return true;
+	}
+
+	@Override
+	public boolean roomConnect(IConnection conn, Object[] params) {
+		log.debug("roomConnect : ");
+
+		try {
+
+			IServiceCapableConnection service = (IServiceCapableConnection) conn;
+			String streamId = conn.getClient().getId();
+			
+			boolean isAVClient = false;
+			if (params.length == 1) {
+				isAVClient = Boolean.valueOf("" + params[0]);
+			}
+
+			log.debug("### Client connected to OpenMeetings, register Client StreamId: "
+					+ streamId + " scope " + conn.getScope().getName()+ " isAVClient "+isAVClient);
+			log.debug("params "+params);
+
+			// Set StreamId in Client
+			service.invoke("setId", new Object[] { streamId }, this);
+
+			String swfURL = "";
+			if (conn.getConnectParams().get("swfUrl") != null) {
+				swfURL = conn.getConnectParams().get("swfUrl").toString();
+			}
+
+			Client rcm = this.sessionManager.addClientListItem(streamId,
+					conn.getScope().getName(), conn.getRemotePort(),
+					conn.getRemoteAddress(), swfURL, isAVClient, null);
+			
+			SessionVariablesUtil.initClient(conn.getClient(), isAVClient, rcm.getPublicSID());
+
+			// Log the User
+			conferenceLogDao.addConferenceLog("ClientConnect",
+					rcm.getUser_id(), streamId, null, rcm.getUserip(),
+					rcm.getScope(), rcm.getExternalUserId(),
+					rcm.getExternalUserType(), rcm.getMail(),
+					rcm.getFirstname(), rcm.getLastname());
+		} catch (Exception err) {
+			log.error("roomJoin", err);
+		}
+		return true;
+	}
+
+	public synchronized Map<String, String> screenSharerAction(Map<String, Object> map) {
+		try {
+			log.debug("-----------  screenSharerAction");
+			IConnection current = Red5.getConnectionLocal();
+
+			Client rc = sessionManager.getClientByStreamId(current.getClient().getId(), null);
+
+			Map<String, String> returnMap = new HashMap<String, String>();
+
+			if (rc != null) {
+				boolean changed = false;
+				if (Boolean.valueOf("" + map.get("stopStreaming")) && rc.isStartStreaming()) {
+					changed = true;
+					rc.setStartStreaming(false);
+					//Send message to all users
+					syncMessageToCurrentScope("stopScreenSharingMessage", rc, false);
+					
+					returnMap.put("result", "stopSharingOnly");
+				}
+				if (Boolean.valueOf("" + map.get("stopRecording")) && rc.getIsRecording()) {
+					changed = true;
+					rc.setStartRecording(false);
+					rc.setIsRecording(false);
+					
+					returnMap.put("result", "stopRecordingOnly");
+					//Send message to all users
+					syncMessageToCurrentScope("stopRecordingMessage", rc, false);
+
+					flvRecorderService.stopRecordAndSave(current.getScope(), rc, null);
+				}
+				if (Boolean.valueOf("" + map.get("stopPublishing")) && rc.isScreenPublishStarted()) {
+					changed = true;
+					rc.setScreenPublishStarted(false);
+					returnMap.put("result", "stopPublishingOnly");
+					
+					//Send message to all users
+					syncMessageToCurrentScope("stopPublishingMessage", rc, false);
+				}
+				
+				if (changed) {
+					sessionManager.updateClientByStreamId(rc.getStreamid(), rc, false, null);
+					
+					if (!rc.isStartStreaming() && !rc.isStartRecording() && !rc.isStreamPublishStarted()) {
+						returnMap.put("result", "stopAll");
+					}
+				}
+			}
+			return returnMap;
+		} catch (Exception err) {
+			log.error("[screenSharerAction]", err);
+		}
+		return null;
+	}
+
+	public List<Client> checkScreenSharing() {
+		try {
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+
+			log.debug("checkScreenSharing -2- " + streamid);
+
+			List<Client> screenSharerList = new LinkedList<Client>();
+
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(streamid, null);
+
+			for (Client rcl : sessionManager.getClientListByRoomAll(currentClient.getRoom_id())) {
+				if (rcl.isStartStreaming()) {
+					screenSharerList.add(rcl);
+				}
+			}
+
+			return screenSharerList;
+
+		} catch (Exception err) {
+			log.error("[checkScreenSharing]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 * @param map
+	 * @return returns key,value Map with multiple return values or null in case of exception
+	 * 
+	 */
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public synchronized Map setConnectionAsSharingClient(Map map) {
+		try {
+			log.debug("-----------  setConnectionAsSharingClient");
+			IConnection current = Red5.getConnectionLocal();
+
+			Client currentClient = sessionManager.getClientByStreamId(current.getClient().getId(), null);
+
+			if (currentClient != null) {
+				boolean startRecording = Boolean.valueOf("" + map.get("startRecording"));
+				boolean startStreaming = Boolean.valueOf("" + map.get("startStreaming"));
+				boolean startPublishing = Boolean.valueOf("" + map.get("startPublishing"))
+					&& (0 == sessionManager.getPublishingCount(currentClient.getRoom_id()));
+
+				currentClient.setRoom_id(Long.parseLong(current.getScope().getName()));
+
+				// Set this connection to be a RTMP-Java Client
+				currentClient.setIsScreenClient(true);
+				
+				SessionVariablesUtil.setIsScreenClient(current.getClient());
+				
+				currentClient.setUser_id(Long.parseLong(map.get("user_id").toString()));
+				SessionVariablesUtil.setUserId(current.getClient(), Long.parseLong(map.get("user_id").toString()));
+
+				boolean alreadyStreaming = currentClient.isStartStreaming();
+				if (startStreaming) {
+					currentClient.setStartStreaming(true);
+				}
+				boolean alreadyRecording = currentClient.isStartRecording();
+				if (startRecording) {
+					currentClient.setStartRecording(true);
+				}
+				if (startPublishing) {
+					currentClient.setStreamPublishStarted(true);
+				}
+
+				currentClient.setOrganization_id(Long.parseLong(map.get("organization_id").toString()));
+
+				sessionManager.updateClientByStreamId(current.getClient().getId(), currentClient, false, null);
+
+				Map returnMap = new HashMap();
+				returnMap.put("alreadyPublished", false);
+
+				// if is already started screen sharing, then there is no need
+				// to start it again
+				if (currentClient.isScreenPublishStarted()) {
+					returnMap.put("alreadyPublished", true);
+				}
+
+				currentClient.setVX(Integer.parseInt(map.get("screenX").toString()));
+				currentClient.setVY(Integer.parseInt(map.get("screenY").toString()));
+				currentClient.setVWidth(Integer.parseInt(map.get("screenWidth").toString()));
+				currentClient.setVHeight(Integer.parseInt(map.get("screenHeight").toString()));
+
+				log.debug("screen x,y,width,height " + currentClient.getVX()
+						+ " " + currentClient.getVY() + " "
+						+ currentClient.getVWidth() + " "
+						+ currentClient.getVHeight());
+
+				log.debug("publishName :: " + map.get("publishName"));
+
+				currentClient.setStreamPublishName(map.get("publishName").toString());
+
+				Client currentScreenUser = sessionManager.getClientByPublicSID(currentClient.getStreamPublishName(), false, null);
+
+				currentClient.setFirstname(currentScreenUser.getFirstname());
+				currentClient.setLastname(currentScreenUser.getLastname());
+
+				// This is duplicated, but its not sure that in the meantime
+				// somebody requests this Client Object Info
+				sessionManager.updateClientByStreamId(current.getClient().getId(), currentClient, false, null);
+
+				if (startStreaming) {
+					if (!alreadyStreaming) {
+						returnMap.put("modus", "startStreaming");
+	
+						log.debug("start streamPublishStart Is Screen Sharing ");
+						
+						//Send message to all users
+						syncMessageToCurrentScope("newScreenSharing", currentClient, false);
+					} else {
+						log.warn("Streaming is already started for the client id=" + currentClient.getId() + ". Second request is ignored.");
+					}
+				}
+				if (startRecording) {
+					if (!alreadyRecording) {
+						returnMap.put("modus", "startRecording");
+	
+						String recordingName = "Recording " + CalendarPatterns.getDateWithTimeByMiliSeconds(new Date());
+	
+						flvRecorderService.recordMeetingStream(recordingName, "", false);
+					} else {
+						log.warn("Recording is already started for the client id=" + currentClient.getId() + ". Second request is ignored.");
+					}
+				}
+				if (startPublishing) {
+					syncMessageToCurrentScope("startedPublishing", new Object[]{currentClient, "rtmp://" + map.get("publishingHost") + ":1935/"
+							+ map.get("publishingApp") + "/" + map.get("publishingId")}, false, true);
+					returnMap.put("modus", "startPublishing");
+				}
+
+				return returnMap;
+
+			} else {
+				throw new Exception("Could not find Screen Sharing Client " + current.getClient().getId());
+			}
+
+		} catch (Exception err) {
+			log.error("[setConnectionAsSharingClient]", err);
+		}
+		return null;
+	}
+
+    public synchronized List<Integer> listRoomBroadcast() {
+    	HashSet<Integer> broadcastList = new HashSet<Integer>();
+        IConnection current = Red5.getConnectionLocal();
+        String streamid = current.getClient().getId();
+        for (Set<IConnection> conset : current.getScope().getConnections()) {
+        for (IConnection conn : conset) {
+            if (conn != null) {
+                Client rcl = this.sessionManager
+                        .getClientByStreamId(conn
+                                .getClient().getId(), null);
+                if (rcl == null) {
+                    // continue;
+                } else if (rcl.getIsScreenClient() != null
+                        && rcl.getIsScreenClient()) {
+                    // continue;
+                } else {
+                    if (!streamid.equals(rcl.getStreamid())) {
+                        // It is not needed to send back
+                        // that event to the actuall
+                        // Moderator
+                        // as it will be already triggered
+                        // in the result of this Function
+                        // in the Client
+                    	Long id = Long.valueOf(rcl.getBroadCastID());
+                    	if (id != null && !broadcastList.contains(id)) {
+                    		broadcastList.add(id.intValue());
+                    	}
+                    }
+                }
+            }
+        }
+        }
+        return new ArrayList<Integer>(broadcastList);
+    }
+
+
+	/**
+	 * this function is invoked directly after initial connecting
+	 * 
+	 * @return publicSID of current client
+	 */
+	public synchronized String getPublicSID() {
+		log.debug("-----------  getPublicSID");
+		IConnection current = Red5.getConnectionLocal();
+		Client currentClient = this.sessionManager
+				.getClientByStreamId(current.getClient().getId(), null);
+		sessionManager.updateClientByStreamId(current.getClient().getId(),
+				currentClient, false, null);
+		return currentClient.getPublicSID();
+	}
+
+	/**
+	 * this function is invoked after a reconnect
+	 * 
+	 * @param newPublicSID
+	 */
+	public synchronized Boolean overwritePublicSID(String newPublicSID) {
+		try {
+			log.debug("-----------  overwritePublicSID");
+			IConnection current = Red5.getConnectionLocal();
+			IClient c = current.getClient();
+			Client currentClient = sessionManager.getClientByStreamId(c.getId(), null);
+			if (currentClient == null) {
+				return false;
+			}
+			SessionVariablesUtil.initClient(c, SessionVariablesUtil.isAVClient(c), newPublicSID);
+			currentClient.setPublicSID(newPublicSID);
+			sessionManager.updateClientByStreamId(c.getId(), currentClient, false, null);
+			return true;
+		} catch (Exception err) {
+			log.error("[overwritePublicSID]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * Logic must be before roomDisconnect cause otherwise you cannot throw a
+	 * message to each one
+	 * 
+	 */
+	@Override
+	public void roomLeave(IClient client, IScope room) {
+		try {
+			log.debug(String.format("roomLeave %s %s %s %s", client.getId(), room.getClients().size()
+					, room.getContextPath(), room.getName()));
+
+			Client currentClient = sessionManager.getClientByStreamId(client.getId(), null);
+
+			// The Room Client can be null if the Client left the room by using
+			// logicalRoomLeave
+			if (currentClient != null) {
+				log.debug("currentClient IS NOT NULL");
+				roomLeaveByScope(currentClient, room, true);
+			}
+		} catch (Exception err) {
+			log.error("[roomLeave]", err);
+		}
+	}
+
+	/**
+	 * this means a user has left a room but only logically, he didn't leave the
+	 * app he just left the room
+	 * 
+	 * FIXME: Is this really needed anymore if you re-connect to another scope?
+	 * 
+	 * Exit Room by Application
+	 * 
+	 */
+	public synchronized void logicalRoomLeave() {
+		log.debug("logicalRoomLeave ");
+		try {
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+
+			log.debug(streamid + " is leaving");
+
+			Client currentClient = sessionManager.getClientByStreamId(streamid, null);
+
+			roomLeaveByScope(currentClient, current.getScope(), true);
+		} catch (Exception err) {
+			log.error("[logicalRoomLeave]", err);
+		}
+	}
+
+	/**
+	 * Removes the Client from the List, stops recording, adds the Room-Leave
+	 * event to running recordings, clear Polls and removes Client from any list
+	 * 
+	 * This function is kind of private/protected as the client won't be able 
+	 * to call it with proper values.
+	 * 
+	 * @param currentClient
+	 * @param currentScope
+	 */
+	public synchronized void roomLeaveByScope(Client currentClient,
+			IScope currentScope, boolean removeUserFromSessionList) {
+		try {
+			log.debug("currentClient " + currentClient);
+
+			Long room_id = currentClient.getRoom_id();
+
+			// Log the User
+			conferenceLogDao.addConferenceLog("roomLeave",
+					currentClient.getUser_id(), currentClient.getStreamid(),
+					room_id, currentClient.getUserip(), "",
+					currentClient.getExternalUserId(),
+					currentClient.getExternalUserType(),
+					currentClient.getMail(), currentClient.getFirstname(),
+					currentClient.getLastname());
+
+			// Remove User from Sync List's
+			if (room_id != null) {
+				whiteBoardService.removeUserFromAllLists(currentScope, currentClient);
+			}
+
+			log.debug("removing USername " + currentClient.getUsername() + " "
+					+ currentClient.getConnectedSince() + " streamid: "
+					+ currentClient.getStreamid());
+
+			// stop and save any recordings
+			if (currentClient.getIsRecording()) {
+				log.debug("*** roomLeave Current Client is Recording - stop that");
+				if (currentClient.getInterviewPodId() != null) {
+					//interview, TODO need better check
+					stopInterviewRecording();
+				} else {
+					flvRecorderService.stopRecordAndSave(currentScope, currentClient, null);
+
+					// set to true and overwrite the default one cause otherwise no
+					// notification is send
+					currentClient.setIsRecording(true);
+				}
+			}
+
+			// Notify all clients of the same currentScope (room) with domain
+			// and room except the current disconnected cause it could throw an exception
+			log.debug("currentScope " + currentScope);
+
+			if (currentScope != null && currentScope.getConnections() != null) {
+				// Notify Users of the current Scope
+				for (Set<IConnection> conset : currentScope.getConnections()) {
+				for (IConnection cons : conset) {
+					if (cons != null && cons instanceof IServiceCapableConnection) {
+						log.debug("sending roomDisconnect to {}  client id {}", cons, cons.getClient().getId());
+
+						Client rcl = sessionManager.getClientByStreamId(cons.getClient().getId(), null);
+
+						/*
+						 * Check if the Client does still exist on the
+						 * list
+						 */
+						if (rcl == null) {
+							log.debug("For this StreamId: " + cons.getClient().getId() + " There is no Client in the List anymore");
+							continue;
+						}
+						
+						/*
+						 * Do not send back to sender, but actually
+						 * all other clients should receive this
+						 * message swagner 01.10.2009
+						 */
+						if (!currentClient.getStreamid().equals(rcl.getStreamid())) {
+							// add Notification if another user isrecording
+							log.debug("###########[roomLeave]");
+							if (rcl.getIsRecording()) {
+								log.debug("*** roomLeave Any Client is Recording - stop that");
+								flvRecorderService.stopRecordingShowForClient(cons, currentClient);
+							}
+							
+							//If the user was a avclient, we do not broadcast a message about that to everybody
+							if (currentClient.getIsAVClient()) {
+								continue;
+							}
+							
+							boolean isScreen = rcl.getIsScreenClient() != null && rcl.getIsScreenClient();
+							if (isScreen && currentClient.getPublicSID().equals(rcl.getStreamPublishName())) {
+								//going to terminate screen sharing started by this client
+								((IServiceCapableConnection) cons).invoke("stopStream", new Object[] { },this);
+								continue;
+							} else if (isScreen) {
+								// screen sharing clients do not receive events
+								continue;
+							} else if (rcl.getIsAVClient()) {
+								// AVClients or potential AVClients do not receive events
+								continue;
+							}
+							
+							// Send to all connected users
+							((IServiceCapableConnection) cons).invoke("roomDisconnect", new Object[] { currentClient },this);
+							log.debug("sending roomDisconnect to " + cons);
+						}
+					}
+				}
+				}
+			}
+
+			if (removeUserFromSessionList) {
+				this.sessionManager.removeClient(currentClient.getStreamid(), null);
+			}
+		} catch (Exception err) {
+			log.error("[roomLeaveByScope]", err);
+		}
+	}
+
+	/**
+	 * This method handles the Event after a stream has been added all connected
+	 * Clients in the same room will get a notification
+	 * 
+	 */
+	/* (non-Javadoc)
+	 * @see org.red5.server.adapter.MultiThreadedApplicationAdapter#streamPublishStart(org.red5.server.api.stream.IBroadcastStream)
+	 */
+	@Override
+	public synchronized void streamPublishStart(IBroadcastStream stream) {
+		try {
+			log.debug("-----------  streamPublishStart");
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(streamid, null);
+
+			//We make a second object the has the reference to the object 
+			//that we will use to send to all participents
+			Client clientObjectSendToSync = currentClient;
+			
+			// Notify all the clients that the stream had been started
+			log.debug("start streamPublishStart broadcast start: "
+					+ stream.getPublishedName() + " CONN " + current);
+
+			// In case its a screen sharing we start a new Video for that
+			if (currentClient.getIsScreenClient()) {
+
+				currentClient.setScreenPublishStarted(true);
+
+				this.sessionManager.updateClientByStreamId(current
+						.getClient().getId(), currentClient, false, null);
+			}
+			//If its an audio/video client then send the session object with the full 
+			//data to everybody
+			else if (currentClient.getIsAVClient()) {
+				clientObjectSendToSync = this.sessionManager.getClientByPublicSID(
+											currentClient.getPublicSID(), false, null);
+			}
+			
+			log.debug("newStream SEND: "+currentClient);
+
+			// Notify all users of the same Scope
+			// We need to iterate through the streams to catch if anybody is recording
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
+				if (conn != null) {
+					if (conn instanceof IServiceCapableConnection) {
+						
+						Client rcl = this.sessionManager
+								.getClientByStreamId(conn.getClient()
+										.getId(), null);
+						
+						if (rcl == null) {
+							log.debug("RCL IS NULL newStream SEND");
+							continue;
+						}
+						
+						log.debug("check send to "+rcl);
+						
+						if (rcl.getPublicSID() == "") {
+							log.debug("publicSID IS NULL newStream SEND");
+							continue;
+						}
+						if (rcl.getIsRecording()) {
+							log.debug("RCL getIsRecording newStream SEND");
+							flvRecorderService.addRecordingByStreamId(current, streamid, currentClient, rcl.getFlvRecordingId());
+						}
+						if (rcl.getIsAVClient()) {
+							log.debug("RCL getIsAVClient newStream SEND");
+							continue;
+						}
+						if (rcl.getIsScreenClient() == null || rcl.getIsScreenClient()) {
+							log.debug("RCL getIsScreenClient newStream SEND");
+							continue;
+						}
+						
+						if (rcl.getPublicSID().equals(currentClient.getPublicSID())) {
+							log.debug("RCL publicSID is equal newStream SEND");
+							continue;
+						}
+						
+						log.debug("RCL SEND is equal newStream SEND "+rcl.getPublicSID()+" || "+rcl.getUserport());
+							
+						((IServiceCapableConnection) conn).invoke("newStream", new Object[] { clientObjectSendToSync }, this);
+
+					}
+				}
+			}
+			}
+		} catch (Exception err) {
+			log.error("[streamPublishStart]", err);
+		}
+	}
+
+	public IBroadcastScope getBroadcastScope(IScope scope, String name) {
+		IBasicScope basicScope = scope.getBasicScope(ScopeType.BROADCAST, name);
+		if (!(basicScope instanceof IBroadcastScope)) {
+			return null;
+		} else {
+			return (IBroadcastScope) basicScope;
+		}
+	}
+
+	/**
+	 * This method handles the Event after a stream has been removed all
+	 * connected Clients in the same room will get a notification
+	 * 
+	 */
+	/* (non-Javadoc)
+	 * @see org.red5.server.adapter.MultiThreadedApplicationAdapter#streamBroadcastClose(org.red5.server.api.stream.IBroadcastStream)
+	 */
+	@Override
+	public synchronized void streamBroadcastClose(IBroadcastStream stream) {
+
+		// Notify all the clients that the stream had been closed
+		log.debug("start streamBroadcastClose broadcast close: "
+				+ stream.getPublishedName());
+		try {
+			IConnection current = Red5.getConnectionLocal();
+			Client rcl = sessionManager.getClientByStreamId(current.getClient().getId(), null);
+			sendClientBroadcastNotifications(stream, "closeStream", rcl);
+		} catch (Exception e) {
+			log.error("[streamBroadcastClose]", e);
+		}
+	}
+
+	/**
+	 * This method handles the notification room-based
+	 * 
+	 * @return void
+	 * 
+	 */
+	private synchronized void sendClientBroadcastNotifications(IBroadcastStream stream, String clientFunction, Client rc) {
+		try {
+			// Store the local so that we do not send notification to ourself back
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+			Client currentClient = sessionManager.getClientByStreamId(streamid, null);
+
+			if (currentClient == null) {
+
+				// In case the client has already left(kicked) this message
+				// might be thrown later then the RoomLeave
+				// event and the currentClient is already gone
+				// The second Use-Case where the currentClient is maybe null is
+				// if we remove the client because its a Zombie/Ghost
+
+				return;
+
+			}
+			// Notify all the clients that the stream had been started
+			log.debug("sendClientBroadcastNotifications: " + stream.getPublishedName());
+			log.debug("sendClientBroadcastNotifications : " + currentClient + " " + currentClient.getStreamid());
+
+			// Notify all clients of the same scope (room)
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
+				if (conn != null) {
+					if (conn instanceof IServiceCapableConnection) {
+						if (conn.equals(current)) {
+							// there is a Bug in the current implementation
+							// of the appDisconnect
+							if (clientFunction.equals("closeStream")) {
+								Client rcl = sessionManager.getClientByStreamId(conn.getClient().getId(), null);
+								if (clientFunction.equals("closeStream") && rcl.getIsRecording()) {
+									log.debug("*** stopRecordingShowForClient Any Client is Recording - stop that");
+									// StreamService.stopRecordingShowForClient(conn,
+									// currentClient,
+									// rcl.getRoomRecordingName(), false);
+									flvRecorderService.stopRecordingShowForClient(conn, currentClient);
+								}
+								// Don't notify current client
+								current.ping();
+							}
+							continue;
+						} else {
+							Client rcl = sessionManager.getClientByStreamId(conn.getClient().getId(), null);
+							if (rcl != null) {
+								if (rcl.getIsScreenClient() != null && rcl.getIsScreenClient()) {
+									// continue;
+								} else {
+									log.debug("is this users still alive? :" + rcl);
+									IServiceCapableConnection iStream = (IServiceCapableConnection) conn;
+									iStream.invoke(clientFunction, new Object[] { rc }, this);
+								}
+
+								log.debug("sending notification to " + conn + " ID: ");
+
+								// if this close stream event then stop the
+								// recording of this stream
+								if (clientFunction.equals("closeStream") && rcl.getIsRecording()) {
+									log.debug("***  +++++++ ######## sendClientBroadcastNotifications Any Client is Recording - stop that");
+									flvRecorderService.stopRecordingShowForClient(conn, currentClient);
+								}
+							}
+						}
+					}
+				}
+			}
+			}
+		} catch (Exception err) {
+			log.error("[sendClientBroadcastNotifications]", err);
+		}
+	}
+
+
+	/**
+	 * Adds a Moderator by its publicSID
+	 * 
+	 * @param publicSID
+	 * @return -1
+	 */
+	public synchronized Long addModerator(String publicSID) {
+		try {
+			log.debug("-----------  addModerator: " + publicSID);
+
+			Client currentClient = this.sessionManager
+					.getClientByPublicSID(publicSID, false, null);
+
+			if (currentClient == null) {
+				return -1L;
+			}
+			Long room_id = currentClient.getRoom_id();
+
+			currentClient.setIsMod(true);
+			// Put the mod-flag to true for this client
+			this.sessionManager.updateClientByStreamId(
+					currentClient.getStreamid(), currentClient, false, null);
+
+			List<Client> currentMods = this.sessionManager
+					.getCurrentModeratorByRoom(room_id);
+			
+			//Send message to all users
+			syncMessageToCurrentScope("setNewModeratorByList", currentMods, true);
+
+		} catch (Exception err) {
+			log.error("[addModerator]", err);
+		}
+		return -1L;
+	}
+
+	@SuppressWarnings("unchecked")
+	public void setNewCursorPosition(Object item) {
+		try {
+
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(streamid, null);
+
+			@SuppressWarnings("rawtypes")
+			Map cursor = (Map) item;
+			cursor.put("streamPublishName",
+					currentClient.getStreamPublishName());
+
+			// Notify all users of the same Scope
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
+				if (conn != null) {
+					if (conn instanceof IServiceCapableConnection) {
+						IClient client = conn.getClient();
+						if (SessionVariablesUtil.isScreenClient(client)) {
+							// screen sharing clients do not receive events
+							continue;
+						} else if (SessionVariablesUtil.isAVClient(client)) {
+							// AVClients or potential AVClients do not receive events
+							continue;
+						} if (client.getId().equals(
+									current.getClient().getId())) {
+							// don't send back to same user
+							continue;
+						}
+						((IServiceCapableConnection) conn).invoke("newRed5ScreenCursor", new Object[] { cursor }, this);
+					}
+				}
+			}
+			}
+		} catch (Exception err) {
+			log.error("[setNewCursorPosition]", err);
+		}
+	}
+
+	public synchronized Long removeModerator(String publicSID) {
+		try {
+			log.debug("-----------  removeModerator: " + publicSID);
+
+			IConnection current = Red5.getConnectionLocal();
+			// String streamid = current.getClient().getId();
+
+			Client currentClient = this.sessionManager
+					.getClientByPublicSID(publicSID, false, null);
+
+			if (currentClient == null) {
+				return -1L;
+			}
+			Long room_id = currentClient.getRoom_id();
+
+			currentClient.setIsMod(false);
+			// Put the mod-flag to true for this client
+			this.sessionManager.updateClientByStreamId(
+					currentClient.getStreamid(), currentClient, false, null);
+
+			List<Client> currentMods = this.sessionManager
+					.getCurrentModeratorByRoom(room_id);
+
+			// Notify all clients of the same scope (room)
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
+				if (conn != null) {
+					if (conn instanceof IServiceCapableConnection) {
+						IClient client = conn.getClient();
+						if (SessionVariablesUtil.isScreenClient(client)) {
+							// screen sharing clients do not receive events
+							continue;
+						} else if (SessionVariablesUtil.isAVClient(client)) {
+							// AVClients or potential AVClients do not receive events
+							continue;
+						}
+						((IServiceCapableConnection) conn).invoke(
+							"setNewModeratorByList",
+								new Object[] { currentMods }, this);
+					}
+				}
+			}
+			}
+		} catch (Exception err) {
+			log.error("[addModerator]", err);
+		}
+		return -1L;
+	}
+
+	public synchronized Long setBroadCastingFlag(String publicSID,
+			boolean value, Integer interviewPodId) {
+		try {
+			log.debug("-----------  setBroadCastingFlag: " + publicSID);
+
+			IConnection current = Red5.getConnectionLocal();
+			// String streamid = current.getClient().getId();
+
+            Client currentClient = sessionManager.getClientByPublicSID(publicSID, false, null);
+
+			if (currentClient == null) {
+				return -1L;
+			}
+
+			currentClient.setIsBroadcasting(value);
+			currentClient.setInterviewPodId(interviewPodId);
+
+            // Put the mod-flag to true for this client
+		    sessionManager.updateClientByStreamId(currentClient.getStreamid(), currentClient, false, null);
+		    
+			// Notify all clients of the same scope (room)
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
+				if (conn != null) {
+					if (conn instanceof IServiceCapableConnection) {
+						IClient client = conn.getClient();
+						if (SessionVariablesUtil.isScreenClient(client)) {
+							// screen sharing clients do not receive events
+							continue;
+						} else if (SessionVariablesUtil.isAVClient(client)) {
+							// AVClients or potential AVClients do not receive events
+							continue;
+						}
+					
+						((IServiceCapableConnection) conn).invoke(
+							"setNewBroadCastingFlag",
+								new Object[] { currentClient }, this);
+					}
+				}
+			}
+			}
+		} catch (Exception err) {
+			log.error("[setBroadCastingFlag]", err);
+		}
+		return -1L;
+	}
+
+	public synchronized Long giveExclusiveAudio(String publicSID) {
+		try {
+			log.debug("-----------  giveExclusiveAudio: " + publicSID);
+
+			IConnection current = Red5.getConnectionLocal();
+			// String streamid = current.getClient().getId();
+
+			Client currentClient = this.sessionManager
+					.getClientByPublicSID(publicSID, false, null);
+
+			if (currentClient == null) {
+				return -1L;
+			}
+
+			// Put the mod-flag to true for this client
+			currentClient.setMicMuted(false);
+			this.sessionManager.updateClientByStreamId(
+					currentClient.getStreamid(), currentClient, false, null);
+
+			// Notify all clients of the same scope (room)
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
+				if (conn != null) {
+					Client rcl = this.sessionManager
+							.getClientByStreamId(conn.getClient().getId(), null);
+					if (rcl == null) {
+						// continue;
+					} else if (rcl.getIsScreenClient() != null
+							&& rcl.getIsScreenClient()) {
+						// continue;
+					} else {
+						if (rcl != currentClient) {
+							rcl.setMicMuted(true);
+							this.sessionManager.updateClientByStreamId(
+									rcl.getStreamid(), rcl, false, null);
+						}
+						log.debug("Send Flag to Client: "
+								+ rcl.getUsername());
+						if (conn instanceof IServiceCapableConnection) {
+							((IServiceCapableConnection) conn).invoke(
+									"receiveExclusiveAudioFlag",
+									new Object[] { currentClient }, this);
+							log.debug("sending receiveExclusiveAudioFlag to "
+									+ conn);
+						}
+					}
+				}
+			}
+			}
+		} catch (Exception err) {
+			log.error("[giveExclusiveAudio]", err);
+		}
+		return -1L;
+	}
+
+	public synchronized Long switchMicMuted(String publicSID, boolean mute) {
+		try {
+			log.debug("-----------  switchMicMuted: " + publicSID);
+
+			Client currentClient = sessionManager.getClientByPublicSID(publicSID, false, null);
+			if (currentClient == null) {
+				return -1L;
+			}
+
+			currentClient.setMicMuted(mute);
+			sessionManager.updateClientByStreamId(currentClient.getStreamid(), currentClient, false, null);
+
+			HashMap<Integer, Object> newMessage = new HashMap<Integer, Object>();
+			newMessage.put(0, "updateMuteStatus");
+			newMessage.put(1, currentClient);
+			sendMessageWithClient(newMessage);
+		} catch (Exception err) {
+			log.error("[switchMicMuted]", err);
+		}
+		return 0L;
+	}
+
+    public synchronized Boolean getMicMutedByPublicSID(String publicSID) {
+        try {
+			Client currentClient = this.sessionManager.getClientByPublicSID(publicSID, false, null);
+			if (currentClient == null) {
+				return true;
+			}
+
+			//Put the mod-flag to true for this client
+            Boolean muted = currentClient.getMicMuted();
+            if (null == muted) {
+                muted = true;
+            }
+
+            return muted;
+        } catch (Exception err) {
+			log.error("[getMicMutedByPublicSID]",err);
+		}
+		return true;
+    }
+
+	/**
+	 * Invoked by a User whenever he want to become moderator this is needed,
+	 * cause if the room has no moderator yet there is no-one he can ask to get
+	 * the moderation, in case its a Non-Moderated Room he should then get the
+	 * Moderation without any confirmation needed
+	 * 
+	 * @return Long 1 => means get Moderation, 2 => ask Moderator for
+	 *         Moderation, 3 => wait for Moderator
+	 */
+	public synchronized Long applyForModeration(String publicSID) {
+		try {
+
+			Client currentClient = this.sessionManager
+					.getClientByPublicSID(publicSID, false, null);
+
+			List<Client> currentModList = this.sessionManager
+					.getCurrentModeratorByRoom(currentClient.getRoom_id());
+
+			if (currentModList.size() > 0) {
+				return 2L;
+			} else {
+				// No moderator in this room at the moment
+				Room room = roomDao.get(currentClient.getRoom_id());
+
+				if (room.getIsModeratedRoom()) {
+					return 3L;
+				} else {
+					return 1L;
+				}
+			}
+
+		} catch (Exception err) {
+			log.error("[applyForModeration]", err);
+		}
+		return -1L;
+	}
+
+	/**
+	 * there will be set an attribute called "broadCastCounter" this is the name
+	 * this user will publish his stream
+	 * 
+	 * @return long broadCastId
+	 */
+	public synchronized long getBroadCastId() {
+		try {
+			log.debug("-----------  getBroadCastId");
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(streamid, null);
+			currentClient.setBroadCastID(broadCastCounter++);
+			this.sessionManager.updateClientByStreamId(streamid,
+					currentClient, false, null);
+			return currentClient.getBroadCastID();
+		} catch (Exception err) {
+			log.error("[getBroadCastId]", err);
+		}
+		return -1;
+	}
+
+	/**
+	 * this must be set _after_ the Video/Audio-Settings have been chosen (see
+	 * editrecordstream.lzx) but _before_ anything else happens, it cannot be
+	 * applied _after_ the stream has started! avsettings can be: av - video and
+	 * audio a - audio only v - video only n - no a/v only static image
+	 * furthermore
+	 * 
+	 * @param avsettings
+	 * @param newMessage
+	 * @param vWidth
+	 * @param vHeight
+	 * @param room_id
+	 * @param publicSID
+	 * @param interviewPodId
+	 * @return RoomClient being updated in case of no errors, null otherwise
+	 */
+	public synchronized Client setUserAVSettings(String avsettings,
+			Object newMessage, Integer vWidth, Integer vHeight, 
+			long room_id, String publicSID, Integer interviewPodId) {
+		try {
+			IConnection current = Red5.getConnectionLocal();
+			IClient c = current.getClient();
+			String streamid = c.getId();
+			log.debug("-----------  setUserAVSettings {} {} {}", new Object[] {streamid, publicSID, avsettings, newMessage});
+			Client parentClient = sessionManager.getClientByPublicSID(publicSID, false, null);
+			Client currentClient = sessionManager.getClientByStreamId(streamid, null);
+			currentClient.setAvsettings(avsettings);
+			currentClient.setRoom_id(room_id);
+			currentClient.setPublicSID(publicSID);
+			currentClient.setVWidth(vWidth);
+			currentClient.setVHeight(vHeight);
+			currentClient.setInterviewPodId(interviewPodId);
+			currentClient.setUser_id(parentClient.getUser_id());
+			currentClient.setLastname(parentClient.getLastname());
+			currentClient.setFirstname(parentClient.getFirstname());
+			currentClient.setPicture_uri(parentClient.getPicture_uri());
+			sessionManager.updateAVClientByStreamId(streamid, currentClient, null);
+			SessionVariablesUtil.initClient(c, false, publicSID);
+
+			HashMap<String, Object> hsm = new HashMap<String, Object>();
+			hsm.put("client", currentClient);
+			hsm.put("message", newMessage);
+
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
+				if (conn != null) {
+					if (conn instanceof IServiceCapableConnection) {
+						IClient client = conn.getClient();
+						if (SessionVariablesUtil.isScreenClient(client)) {
+							// screen sharing clients do not receive events
+							continue;
+						} else if (SessionVariablesUtil.isAVClient(client)) {
+							// AVClients or potential AVClients do not receive events
+							continue;
+						}
+						((IServiceCapableConnection)conn).invoke("sendVarsToMessageWithClient", new Object[] { hsm }, this);
+					}
+				}
+			}
+			}
+			return currentClient;
+		} catch (Exception err) {
+			log.error("[setUserAVSettings]", err);
+		}
+		return null;
+	}
+
+	/*
+	 * checks if the user is allowed to apply for Moderation
+	 */
+	public synchronized Boolean checkRoomValues(Long room_id) {
+		try {
+
+			// appointed meeting or moderated Room?
+			Room room = roomDao.get(room_id);
+
+			// not really - default logic
+			if (room.getAppointment() == null || room.getAppointment() == false) {
+
+				if (room.getIsModeratedRoom()) {
+
+					// if this is a Moderated Room then the Room can be only
+					// locked off by the Moderator Bit
+					List<Client> clientModeratorListRoom = this.sessionManager
+							.getCurrentModeratorByRoom(room_id);
+
+					// If there is no Moderator yet and we are asking for it
+					// then deny it
+					// cause at this moment, the user should wait untill a
+					// Moderator enters the Room
+					if (clientModeratorListRoom.size() == 0) {
+						return false;
+					} else {
+						return true;
+					}
+
+				} else {
+					return true;
+				}
+
+			} else {
+
+				// FIXME: TODO: For Rooms that are created as Appointment we
+				// have to check that too
+				// but I don't know yet the Logic behind it - swagner 19.06.2009
+				return true;
+
+			}
+
+		} catch (Exception err) {
+			log.error("[checkRoomValues]", err);
+		}
+		return false;
+	}
+
+	/**
+	 * This function is called once a User enters a Room
+	 * 
+	 * It contains several different mechanism depending on what roomtype and
+	 * what options are available for the room to find out if the current user
+	 * will be a moderator of that room or not<br/>
+	 * <br/>
+	 * Some rules:<br/>
+	 * <ul>
+	 * <li>If it is a room that was created through the calendar, the user that
+	 * organized the room will be moderator, the param Boolean becomeModerator
+	 * will be ignored then</li>
+	 * <li>In regular rooms you can use the param Boolean becomeModerator to set
+	 * any user to become a moderator of the room</li>
+	 * </ul>
+	 * <br/>
+	 * If a new moderator is detected a Push Call to all current users of the
+	 * room is invoked "setNewModeratorByList" to notify them of the new
+	 * moderator<br/>
+	 * <br/>
+	 * At the end of the mechanism a push call with the new client-object
+	 * and all the informations about the new user is send to every user of the
+	 * current conference room<br/>
+	 * <br/>
+	 *
+	 * @param room_id - id of the room
+	 * @param becomeModerator - is user will become moderator
+	 * @param isSuperModerator - is user super moderator
+	 * @param organization_id - organization id of the user
+	 * @param colorObj - some color
+	 * @return RoomStatus object
+	 */
+	public synchronized RoomStatus setRoomValues(Long room_id,
+			Boolean becomeModerator, Boolean isSuperModerator,
+			Long organization_id, String colorObj) {
+		try {
+			log.debug("-----------  setRoomValues");
+			// Return Object
+			RoomStatus roomStatus = new RoomStatus();
+
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+			Client currentClient = sessionManager.getClientByStreamId(streamid, null);
+			currentClient.setRoom_id(room_id);
+			currentClient.setRoomEnter(new Date());
+			currentClient.setOrganization_id(organization_id);
+
+			currentClient.setUsercolor(colorObj);
+
+			// Inject externalUserId if nothing is set yet
+			if (currentClient.getExternalUserId() == null) {
+				if (currentClient.getUser_id() != null) {
+					User us = usersDao.get(currentClient.getUser_id());
+					if (us != null) {
+						currentClient.setExternalUserId(us.getExternalUserId());
+						currentClient.setExternalUserType(us.getExternalUserType());
+					}
+				}
+			}
+
+			// This can be set without checking for Moderation Flag
+			currentClient.setIsSuperModerator(isSuperModerator);
+
+			this.sessionManager.updateClientByStreamId(streamid,
+					currentClient, true, null);
+
+            Room room = roomDao.get(room_id);
+            if (room.getShowMicrophoneStatus()) {
+            	currentClient.setCanGiveAudio(true);
+            }
+
+			// Log the User
+			conferenceLogDao.addConferenceLog("roomEnter",
+					currentClient.getUser_id(), streamid, room_id,
+					currentClient.getUserip(), "",
+					currentClient.getExternalUserId(),
+					currentClient.getExternalUserType(),
+					currentClient.getMail(), currentClient.getFirstname(),
+					currentClient.getLastname());
+			
+			// Check for Moderation LogicalRoom ENTER
+			List<Client> clientListRoom = sessionManager.getClientListByRoom(room_id);
+
+			// appointed meeting or moderated Room? => Check Max Users first
+			if (room.getNumberOfPartizipants() != null
+					&& clientListRoom.size() > room.getNumberOfPartizipants()) {
+				roomStatus.setRoomFull(true);
+				return roomStatus;
+			}
+
+			// default logic for non regular rooms
+			if (room.getAppointment() == null || room.getAppointment() == false) {
+
+				if (room.getIsModeratedRoom()) {
+
+					// if this is a Moderated Room then the Room can be only
+					// locked off by the Moderator Bit
+					// List<RoomClient> clientModeratorListRoom =
+					// this.sessionManager.getCurrentModeratorByRoom(room_id);
+
+					// If there is no Moderator yet we have to check if the
+					// current User has the Bit set to true to
+					// become one, otherwise he won't get Moderation and has to
+					// wait
+					if (becomeModerator) {
+						currentClient.setIsMod(true);
+
+						// There is a need to send an extra Event here, cause at
+						// this moment there could be
+						// already somebody in the Room waiting
+
+						// Update the Client List
+						this.sessionManager.updateClientByStreamId(streamid,
+								currentClient, false, null);
+
+						List<Client> modRoomList = this.sessionManager
+								.getCurrentModeratorByRoom(currentClient.getRoom_id());
+						
+						//Sync message to everybody
+						syncMessageToCurrentScope("setNewModeratorByList", modRoomList, false);
+
+					} else {
+						// The current User is not a Teacher/Admin or whatever
+						// Role that should get the
+						// Moderation
+						currentClient.setIsMod(false);
+					}
+
+				} else {
+
+					// If this is a normal Room Moderator rules : first come,
+					// first draw ;-)
+					log.debug("setRoomValues : Room"
+							+ room_id
+							+ " not appointed! Moderator rules : first come, first draw ;-)");
+					if (clientListRoom.size() == 1) {
+						log.debug("Room is empty so set this user to be moderation role");
+						currentClient.setIsMod(true);
+					} else {
+						log.debug("Room is already somebody so set this user not to be moderation role");
+
+						if (becomeModerator) {
+							currentClient.setIsMod(true);
+
+							// Update the Client List
+							this.sessionManager.updateClientByStreamId(
+									streamid, currentClient, false, null);
+
+							List<Client> modRoomList = this.sessionManager
+									.getCurrentModeratorByRoom(currentClient
+											.getRoom_id());
+
+							// There is a need to send an extra Event here,
+							// cause at this moment there could be
+							// already somebody in the Room waiting -swagner check this comment, 20.01.2012
+							
+							//Sync message to everybody
+							syncMessageToCurrentScope("setNewModeratorByList", modRoomList, false);
+
+						} else {
+							// The current User is not a Teacher/Admin or
+							// whatever Role that should get the Moderation
+							currentClient.setIsMod(false);
+						}
+
+					}
+
+				}
+
+				// Update the Client List
+				this.sessionManager.updateClientByStreamId(streamid,
+						currentClient, false, null);
+
+			} else {
+
+				// If this is an Appointment then the Moderator will be set to
+				// the Invitor
+
+				Appointment ment = appointmentLogic.getAppointmentByRoom(room_id);
+
+				Long userIdInRoomClient = currentClient.getUser_id();
+
+				boolean found = false;
+				boolean moderator_set = false;
+
+				// Check if current user is set to moderator
+				for (MeetingMember member : ment.getMeetingMembers()) {
+
+					// only persistent users can schedule a meeting
+					// user-id is only set for registered users
+					if (member.getUser() != null) {
+						log.debug("checking user " + member.getUser().getFirstname()
+								+ " for moderator role - ID : "
+								+ member.getUser().getUser_id());
+
+						if (member.getUser().getUser_id().equals(userIdInRoomClient)) {
+							found = true;
+
+							if (ment.getOwner().getUser_id() == member.getUser().getUser_id()) {
+								log.debug("User "
+										+ userIdInRoomClient
+										+ " is moderator due to flag in MeetingMember record");
+								currentClient.setIsMod(true);
+
+								// Update the Client List
+								sessionManager.updateClientByStreamId(streamid, currentClient, false, null);
+
+								List<Client> modRoomList = this.sessionManager
+										.getCurrentModeratorByRoom(currentClient
+												.getRoom_id());
+
+								// There is a need to send an extra Event here, cause at this moment 
+								// there could be already somebody in the Room waiting
+
+								//Sync message to everybody
+								syncMessageToCurrentScope("setNewModeratorByList", modRoomList, false);
+
+								moderator_set = true;
+								this.sessionManager.updateClientByStreamId(
+										streamid, currentClient, false, null);
+								break;
+							} else {
+								log.debug("User "
+										+ userIdInRoomClient
+										+ " is NOT moderator due to flag in MeetingMember record");
+								currentClient.setIsMod(false);
+								this.sessionManager.updateClientByStreamId(
+										streamid, currentClient, false, null);
+								break;
+							}
+						}
+					}
+
+				}
+
+				if (!found) {
+					log.debug("User "
+							+ userIdInRoomClient
+							+ " could not be found as MeetingMember -> definitely no moderator");
+					currentClient.setIsMod(false);
+					sessionManager.updateClientByStreamId(streamid, currentClient, false, null);
+				} else {
+					// if current user is part of the member list, but moderator
+					// couldn't be retrieved : first come, first draw!
+					if (clientListRoom.size() == 1 && moderator_set == false) {
+						log.debug("");
+						currentClient.setIsMod(true);
+
+						// Update the Client List
+						sessionManager.updateClientByStreamId(streamid, currentClient, false, null);
+
+						List<Client> modRoomList = this.sessionManager
+								.getCurrentModeratorByRoom(currentClient
+										.getRoom_id());
+
+						// There is a need to send an extra Event here, cause at
+						// this moment there could be
+						// already somebody in the Room waiting
+
+						//Sync message to everybody
+						syncMessageToCurrentScope("setNewModeratorByList", modRoomList, false);
+						
+						this.sessionManager.updateClientByStreamId(streamid,
+								currentClient, false, null);
+					}
+				}
+
+			}
+			
+			//Sync message to everybody
+			syncMessageToCurrentScope("addNewUser", currentClient, false);
+
+			//Status object for Shared Browsing
+			BrowserStatus browserStatus = (BrowserStatus) current.getScope()
+					.getAttribute("browserStatus");
+
+			if (browserStatus == null) {
+				browserStatus = new BrowserStatus();
+			}
+
+			// RoomStatus roomStatus = new RoomStatus();
+
+			// FIXME: Rework Client Object to DTOs
+			roomStatus.setClientList(clientListRoom);
+			roomStatus.setBrowserStatus(browserStatus);
+
+			return roomStatus;
+		} catch (Exception err) {
+			log.error("[setRoomValues]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * This method is invoked when the user has disconnected and reconnects to
+	 * the Gateway with the new scope
+	 * 
+	 * @param SID
+	 * @param userId
+	 * @param username
+	 * @param firstname
+	 * @param lastname
+	 * @param picture_uri
+	 * @return client being updated in case of success, null otherwise
+	 */
+	public synchronized Client setUsernameReconnect(String SID,
+			Long userId, String username, String firstname, String lastname,
+			String picture_uri) {
+		try {
+			log.debug("-----------  setUsernameReconnect");
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(streamid, null);
+
+			currentClient.setUsername(username);
+			currentClient.setUser_id(userId);
+			SessionVariablesUtil.setUserId(current.getClient(), userId);
+			currentClient.setPicture_uri(picture_uri);
+			currentClient.setUserObject(userId, username, firstname, lastname);
+
+			// Update Session Data
+			sessiondataDao.updateUserWithoutSession(SID, userId);
+
+			// only fill this value from User-Record
+			// cause invited users have no associated User, so
+			// you cannot set the firstname,lastname from the UserRecord
+			if (userId != null) {
+				User us = usersDao.get(userId);
+				
+				if (us != null) {
+					currentClient.setExternalUserId(us.getExternalUserId());
+					currentClient.setExternalUserType(us.getExternalUserType());
+				}
+				if (us != null && us.getPictureuri() != null) {
+					// set Picture-URI
+					currentClient.setPicture_uri(us.getPictureuri());
+				}
+			}
+			this.sessionManager.updateClientByStreamId(streamid,
+					currentClient, false, null);
+			return currentClient;
+		} catch (Exception err) {
+			log.error("[setUsername]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * this is set initial directly after login/loading language
+	 * 
+	 * @param SID - id of the session
+	 * @param userId - id of the user being set
+	 * @param username - username of the user
+	 * @param firstname - firstname of the user
+	 * @param lastname - lastname of the user
+	 * @return RoomClient in case of everything is OK, null otherwise
+	 */
+	public synchronized Client setUsernameAndSession(String SID,
+			Long userId, String username, String firstname, String lastname) {
+		try {
+			log.debug("-----------  setUsernameAndSession");
+			IConnection current = Red5.getConnectionLocal();
+			String streamid = current.getClient().getId();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(streamid, null);
+
+			currentClient.setUsername(username);
+			currentClient.setUser_id(userId);
+			SessionVariablesUtil.setUserId(current.getClient(), userId);
+			currentClient.setUserObject(userId, username, firstname, lastname);
+
+			// Update Session Data
+			log.debug("UDPATE SESSION " + SID + ", " + userId);
+			sessiondataDao.updateUserWithoutSession(SID, userId);
+
+			User user = userManager.getUserById(userId);
+
+			if (user != null) {
+				currentClient.setExternalUserId(user.getExternalUserId());
+				currentClient.setExternalUserType(user.getExternalUserType());
+			}
+
+			// only fill this value from User-Record
+			// cause invited users have non
+			// you cannot set the firstname,lastname from the UserRecord
+			User us = usersDao.get(userId);
+			if (us != null && us.getPictureuri() != null) {
+				// set Picture-URI
+				currentClient.setPicture_uri(us.getPictureuri());
+			}
+			this.sessionManager.updateClientByStreamId(streamid,
+					currentClient, false, null);
+			return currentClient;
+		} catch (Exception err) {
+			log.error("[setUsername]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * used by the Screen-Sharing Servlet to trigger events
+	 * 
+	 * @param room_id
+	 * @param message
+	 * @return the list of room clients
+	 */
+	public synchronized HashMap<String, Client> sendMessageByRoomAndDomain(
+			Long room_id, Object message) {
+		HashMap<String, Client> roomClientList = new HashMap<String, Client>();
+		try {
+
+			log.debug("sendMessageByRoomAndDomain " + room_id);
+
+			IScope globalScope = getContext().getGlobalScope();
+			IScope webAppKeyScope = globalScope
+					.getScope(OpenmeetingsVariables.webAppRootKey);
+
+			log.debug("webAppKeyScope " + webAppKeyScope);
+
+			IScope scopeHibernate = webAppKeyScope.getScope(room_id.toString());
+
+			if (scopeHibernate != null) {
+
+				for (Set<IConnection> conset : webAppKeyScope.getScope(room_id.toString()).getConnections()) {
+				for (IConnection conn : conset) {
+					if (conn != null) {
+						if (conn instanceof IServiceCapableConnection) {
+							IClient client = conn.getClient();
+							if (SessionVariablesUtil.isScreenClient(client)) {
+								// screen sharing clients do not receive events
+								continue;
+							} else if (SessionVariablesUtil.isAVClient(client)) {
+								// AVClients or potential AVClients do not receive events
+								continue;
+							}
+							((IServiceCapableConnection) conn).invoke(
+									"newMessageByRoomAndDomain",
+									new Object[] { message }, this);
+						}
+					}
+				}
+				}
+			} else {
+				log.debug("sendMessageByRoomAndDomain servlet not yet started  - roomID : '"
+						+ room_id + "'");
+			}
+
+		} catch (Exception err) {
+			log.error("[getClientListBYRoomAndDomain]", err);
+		}
+		return roomClientList;
+	}
+
+	public synchronized List<Client> getCurrentModeratorList() {
+		try {
+			IConnection current = Red5.getConnectionLocal();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(current.getClient().getId(), null);
+			Long room_id = currentClient.getRoom_id();
+			return this.sessionManager.getCurrentModeratorByRoom(room_id);
+		} catch (Exception err) {
+			log.error("[getCurrentModerator]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * This Function is triggered from the Whiteboard
+	 * 
+	 * @param whiteboardObjParam - array of parameters being sended to whiteboard
+	 * @param whiteboardId - id of whiteboard parameters will be send to
+	 */
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public synchronized void sendVarsByWhiteboardId(
+			ArrayList whiteboardObjParam, Long whiteboardId) {
+		//
+		try {
+
+			Map whiteboardObj = new HashMap();
+			int i = 0;
+			for (Iterator iter = whiteboardObjParam.iterator(); iter.hasNext();) {
+				Object obj = iter.next();
+				// log.debug("obj"+obj);
+				whiteboardObj.put(i, obj);
+				i++;
+			}
+
+			// Check if this User is the Mod:
+			IConnection current = Red5.getConnectionLocal();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(current.getClient().getId(), null);
+
+			if (currentClient == null) {
+				return;
+			}
+
+			Long room_id = currentClient.getRoom_id();
+
+			// log.debug("***** sendVars: " + whiteboardObj);
+
+			// Store event in list
+			String action = whiteboardObj.get(2).toString();
+
+			if (action.equals("deleteMindMapNodes")) {
+
+				// Simulate Single Delete Events for z-Index
+				List actionObject = (List) whiteboardObj.get(3);
+
+				List<List> itemObjects = (List) actionObject.get(3);
+
+				Map whiteboardTempObj = new HashMap();
+				whiteboardTempObj.put(2, "delete");
+
+				for (List itemObject : itemObjects) {
+
+					List<Object> tempActionObject = new LinkedList<Object>();
+					tempActionObject.add("mindmapnode");
+					tempActionObject.add(itemObject.get(0)); // z-Index -8
+					tempActionObject.add(null); // simulate -7
+					tempActionObject.add(null); // simulate -6
+					tempActionObject.add(null); // simulate -5
+					tempActionObject.add(null); // simulate -4
+					tempActionObject.add(null); // simulate -3
+					tempActionObject.add(null); // simulate -2
+					tempActionObject.add(itemObject.get(1)); // Object-Name -1
+
+					whiteboardTempObj.put(3, tempActionObject);
+
+					whiteboardManagement.addWhiteBoardObjectById(
+							room_id, whiteboardTempObj, whiteboardId);
+
+				}
+
+			} else {
+
+				whiteboardManagement.addWhiteBoardObjectById(
+						room_id, whiteboardObj, whiteboardId);
+
+			}
+
+			Map<String, Object> sendObject = new HashMap<String, Object>();
+			sendObject.put("id", whiteboardId);
+			sendObject.put("param", whiteboardObjParam);
+
+			boolean showDrawStatus = getWhiteboardDrawStatus();
+
+			// Notify all Clients of that Scope (Room)
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
+				if (conn != null) {
+					if (conn instanceof IServiceCapableConnection) {
+						IClient client = conn.getClient();
+						if (SessionVariablesUtil.isScreenClient(client)) {
+							// screen sharing clients do not receive events
+							continue;
+						} else if (SessionVariablesUtil.isAVClient(client)) {
+							// AVClients or potential AVClients do not receive events
+							continue;
+						} if (client.getId().equals(
+								current.getClient().getId())) {
+							// don't send back to same user
+							continue;
+						}
+						((IServiceCapableConnection) conn).invoke(
+							"sendVarsToWhiteboardById",
+								new Object[] { showDrawStatus ? currentClient : null, sendObject }, 
+									this);
+					}
+				}
+			}
+			}
+		} catch (Exception err) {
+			log.error("[sendVarsByWhiteboardId]", err);
+		}
+	}
+
+	public synchronized int sendVarsModeratorGeneral(Object vars) {
+		log.debug("*..*sendVars: " + vars);
+		try {
+			IConnection current = Red5.getConnectionLocal();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(current.getClient().getId(), null);
+			// Long room_id = currentClient.getRoom_id();
+
+			log.debug("***** id: " + currentClient.getStreamid());
+
+			boolean ismod = currentClient.getIsMod();
+
+			if (ismod) {
+				log.debug("CurrentScope :" + current.getScope().getName());
+				// Send to all Clients of the same Scope
+				for (Set<IConnection> conset : current.getScope().getConnections()) {
+				for (IConnection conn : conset) {
+					if (conn != null) {
+						if (conn instanceof IServiceCapableConnection) {
+							IClient client = conn.getClient();
+							if (SessionVariablesUtil.isScreenClient(client)) {
+								// screen sharing clients do not receive events
+								continue;
+							} else if (SessionVariablesUtil.isAVClient(client)) {
+								// AVClients or potential AVClients do not receive events
+								continue;
+							} if (client.getId().equals(current.getClient().getId())) {
+								// don't send back to same user
+								continue;
+							}
+							((IServiceCapableConnection) conn).invoke("sendVarsToModeratorGeneral", new Object[] { vars },this);
+						}
+					}
+				}
+				}
+				return 1;
+			} else {
+				// log.debug("*..*you are not allowed to send: "+ismod);
+				return -1;
+			}
+		} catch (Exception err) {
+			log.error("[sendVarsModeratorGeneral]", err);
+		}
+		return -1;
+	}
+
+	public synchronized int sendMessage(Object newMessage) {
+		try {
+			
+			syncMessageToCurrentScope("sendVarsToMessage", newMessage, false);
+			
+		} catch (Exception err) {
+			log.error("[sendMessage]", err);
+		}
+		return 1;
+	}
+	
+	public synchronized int sendMessageAll(Object newMessage) {
+		try {
+			
+			syncMessageToCurrentScope("sendVarsToMessage", newMessage, true);
+			
+		} catch (Exception err) {
+			log.error("[sendMessage]", err);
+		}
+		return 1;
+	}
+
+	/**
+	 * send status for shared browsing to all members except self
+	 * @param newMessage
+	 * @return 1
+	 */
+	@SuppressWarnings({ "rawtypes" })
+	public synchronized int sendBrowserMessageToMembers(Object newMessage) {
+		try {
+			IConnection current = Red5.getConnectionLocal();
+
+			List newMessageList = (List) newMessage;
+
+			String action = newMessageList.get(0).toString();
+
+			BrowserStatus browserStatus = (BrowserStatus) current.getScope()
+					.getAttribute("browserStatus");
+
+			if (browserStatus == null) {
+				browserStatus = new BrowserStatus();
+			}
+
+			if (action.equals("initBrowser") || action.equals("newBrowserURL")) {
+				browserStatus.setBrowserInited(true);
+				browserStatus.setCurrentURL(newMessageList.get(1).toString());
+			} else if (action.equals("closeBrowserURL")) {
+				browserStatus.setBrowserInited(false);
+			}
+
+			current.getScope().setAttribute("browserStatus", browserStatus);
+			
+			syncMessageToCurrentScope("sendVarsToMessage", newMessage, false);
+
+		} catch (Exception err) {
+			log.error("[sendMessage]", err);
+		}
+		return 1;
+	}
+
+	/**
+	 * wrapper method
+	 * @param newMessage
+	 */
+	public synchronized void sendMessageToMembers(Object newMessage) {
+		//Sync to all users of current scope
+		syncMessageToCurrentScope("sendVarsToMessage", newMessage, false);
+	}
+	
+	/**
+	 * General sync mechanism for all messages that are send from within the 
+	 * scope of the current client, but:
+	 * <ul>
+	 * <li>optionally do not send to self (see param: sendSelf)</li>
+	 * <li>do not send to clients that are screen sharing clients</li>
+	 * <li>do not send to clients that are audio/video clients (or potentially ones)</li>
+	 * <li>do not send to connections where no RoomClient is registered</li>
+	 * </ul>
+	 *  
+	 * @param remoteMethodName The method to be called
+	 * @param newMessage parameters
+	 * @param sendSelf send to the current client as well
+	 */
+	public synchronized void syncMessageToCurrentScope(String remoteMethodName, Object newMessage, boolean sendSelf) {
+		syncMessageToCurrentScope(remoteMethodName, newMessage, sendSelf, false);
+	}
+	
+	/**
+	 * Only temporary for load test, with return argument for the client to have a result
+	 * 
+	 * @param remoteMethodName
+	 * @param newMessage
+	 * @param sendSelf
+	 * @return true
+	 */
+	@Deprecated
+	public synchronized boolean loadTestSyncMessage(String remoteMethodName, Object newMessage, boolean sendSelf) {
+		syncMessageToCurrentScope(remoteMethodName, newMessage, sendSelf, false);
+		return true;
+	}
+	
+	
+	/**
+	 * General sync mechanism for all messages that are send from within the 
+	 * scope of the current client, but:
+	 * <ul>
+	 * <li>optionally do not send to self (see param: sendSelf)</li>
+	 * <li>send to clients that are screen sharing clients based on parameter</li>
+	 * <li>do not send to clients that are audio/video clients (or potentially ones)</li>
+	 * <li>do not send to connections where no RoomClient is registered</li>
+	 * </ul>
+	 *  
+	 * @param remoteMethodName The method to be called
+	 * @param newMessage parameters
+	 * @param sendSelf send to the current client as well
+	 * @param sendScreen send to the current client as well
+	 */
+	public synchronized void syncMessageToCurrentScope(String remoteMethodName, Object newMessage, boolean sendSelf, boolean sendScreen) {
+		try {
+			IConnection current = Red5.getConnectionLocal();
+
+			// Send to all Clients of that Scope(Room)
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
+				if (conn != null) {
+					if (conn instanceof IServiceCapableConnection) {
+						IClient client = conn.getClient();
+						if (!sendScreen && SessionVariablesUtil.isScreenClient(client)) {
+							// screen sharing clients do not receive events
+							continue;
+						} else if (SessionVariablesUtil.isAVClient(client)) {
+							// AVClients or potential AVClients do not receive events
+							continue;
+						} else if (!sendSelf && client.getId().equals(
+								current.getClient().getId())) {
+							//Do not send back to self
+							continue;
+						}
+						((IServiceCapableConnection) conn).invoke(
+								remoteMethodName, new Object[] { newMessage }, this);
+						
+					}
+				}
+			}
+			}
+		} catch (Exception err) {
+			log.error("[syncMessageToCurrentScope]", err);
+		}
+	}
+
+	/**
+	 * wrapper method
+	 * @param newMessage
+	 * @return 1 in case of success, -1 otherwise
+	 */
+	public synchronized int sendMessageWithClient(Object newMessage) {
+		try {
+			sendMessageWithClientWithSyncObject(newMessage, true);
+
+		} catch (Exception err) {
+			log.error("[sendMessageWithClient] ", err);
+			return -1;
+		}
+		return 1;
+	}
+	
+	/**
+	 * wrapper method
+	 * @param newMessage
+	 * @param sync
+	 * @return 1 in case of success, -1 otherwise
+	 */
+	public synchronized int sendMessageWithClientWithSyncObject(Object newMessage, boolean sync) {
+		try {
+			IConnection current = Red5.getConnectionLocal();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(current.getClient().getId(), null);
+
+			HashMap<String, Object> hsm = new HashMap<String, Object>();
+			hsm.put("client", currentClient);
+			hsm.put("message", newMessage);
+			
+			//Sync to all users of current scope
+			syncMessageToCurrentScope("sendVarsToMessageWithClient", hsm, sync);
+
+		} catch (Exception err) {
+			log.error("[sendMessageWithClient] ", err);
+			return -1;
+		}
+		return 1;
+	}
+
+	/**
+	 * Function is used to send the kick Trigger at the moment, 
+	 * it sends a general message to a specific clientId
+	 * 
+	 * @param newMessage
+	 * @param clientId
+	 * @return 1 in case of success, -1 otherwise
+	 */
+	public synchronized int sendMessageById(Object newMessage, String clientId,
+			IScope scope) {
+		try {
+			log.debug("### sendMessageById ###" + clientId);
+
+			HashMap<String, Object> hsm = new HashMap<String, Object>();
+			hsm.put("message", newMessage);
+
+			// broadcast Message to specific user with id inside the same Scope
+			for (Set<IConnection> conset : scope.getConnections()) {
+			for (IConnection conn : conset) {
+				if (conn != null) {
+					if (conn instanceof IServiceCapableConnection) {
+						if (conn.getClient().getId().equals(clientId)) {
+							((IServiceCapableConnection) conn).invoke(
+									"sendVarsToMessageWithClient",
+									new Object[] { hsm }, this);
+						}
+					}
+				}
+			}
+			}
+		} catch (Exception err) {
+			log.error("[sendMessageWithClient] ", err);
+			return -1;
+		}
+		return 1;
+	}
+
+	/**
+	 * Sends a message to a user in the same room by its clientId
+	 * 
+	 * @param newMessage
+	 * @param clientId
+	 * @return 1 in case of no exceptions, -1 otherwise
+	 */
+	public synchronized int sendMessageWithClientById(Object newMessage,
+			String clientId) {
+		try {
+			IConnection current = Red5.getConnectionLocal();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(current.getClient().getId(), null);
+
+			HashMap<String, Object> hsm = new HashMap<String, Object>();
+			hsm.put("client", currentClient);
+			hsm.put("message", newMessage);
+
+			// broadcast Message to specific user with id inside the same Scope
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
+				if (conn.getClient().getId().equals(clientId)) {
+					((IServiceCapableConnection) conn).invoke(
+							"sendVarsToMessageWithClient",
+							new Object[] { hsm }, this);
+				}
+			}
+			}
+		} catch (Exception err) {
+			log.error("[sendMessageWithClient] ", err);
+			return -1;
+		}
+		return 1;
+	}
+	
+	public synchronized void sendUploadCompletMessageByPublicSID(UploadCompleteMessage message, String publicSID) {
+		try {
+			//if the upload is locally, just proceed to the normal function
+			//Search for RoomClient on current server (serverId == null means it will look on the master for the RoomClient)
+			Client currentClient = this.sessionManager
+								.getClientByPublicSID(publicSID, false, null);
+			
+			if (currentClient != null) {
+				sendMessageWithClientByPublicSID(message, publicSID);
+			} else {
+				throw new Exception(
+						"Could not Find RoomClient on List publicSID: "+ publicSID);
+			}
+			
+		} catch (Exception err) {
+			log.error("[sendUploadCompletMessageByPublicSID] ", err);
+		}
+	}
+	
+
+	public synchronized void sendMessageWithClientByPublicSID(Object message,
+			String publicSID) {
+		try {
+			// ApplicationContext appCtx = getContext().getApplicationContext();
+			IScope globalScope = getContext().getGlobalScope();
+
+			IScope webAppKeyScope = globalScope
+					.getScope(OpenmeetingsVariables.webAppRootKey);
+
+			// log.debug("webAppKeyScope "+webAppKeyScope);
+
+			// Get Room Id to send it to the correct Scope
+			Client currentClient = this.sessionManager
+					.getClientByPublicSID(publicSID, false, null);
+
+			if (currentClient == null) {
+				throw new Exception(
+						"Could not Find RoomClient on List publicSID: "
+								+ publicSID);
+			}
+			// default Scope Name
+			String scopeName = "hibernate";
+			if (currentClient.getRoom_id() != null) {
+				scopeName = currentClient.getRoom_id().toString();
+			}
+
+			IScope scopeHibernate = webAppKeyScope.getScope(scopeName);
+
+			// log.debug("scopeHibernate "+scopeHibernate);
+
+			if (scopeHibernate != null) {
+				// Notify the clients of the same scope (room) with user_id
+
+				for (Set<IConnection> conset : webAppKeyScope.getScope(scopeName).getConnections()) {
+				for (IConnection conn : conset) {
+					IClient client = conn.getClient();
+					if (SessionVariablesUtil.isScreenClient(client)) {
+						// screen sharing clients do not receive events
+						continue;
+					} else if (SessionVariablesUtil.isAVClient(client)) {
+						// AVClients or potential AVClients do not receive events
+						continue;
+					}
+					
+					if (SessionVariablesUtil.getPublicSID(client).equals(publicSID)) {
+						((IServiceCapableConnection) conn).invoke("newMessageByRoomAndDomain", new Object[] { message }, this);
+					}
+				}
+				}
+			} else {
+				// Scope not yet started
+			}
+		} catch (Exception err) {
+			log.error("[sendMessageWithClient] ", err);
+		}
+	}
+
+	public synchronized void sendMessageWithClientByPublicSIDOrUser(
+			Object message, String publicSID, Long user_id) {
+		try {
+			// ApplicationContext appCtx = getContext().getApplicationContext();
+
+			IScope globalScope = getContext().getGlobalScope();
+
+			IScope webAppKeyScope = globalScope
+					.getScope(OpenmeetingsVariables.webAppRootKey);
+
+			// log.debug("webAppKeyScope "+webAppKeyScope);
+
+			// Get Room Id to send it to the correct Scope
+			Client currentClient = this.sessionManager
+					.getClientByPublicSID(publicSID, false, null);
+
+			if (currentClient == null) {
+				currentClient = sessionManager.getClientByUserId(user_id);
+			}
+
+			Collection<Set<IConnection>> concolset = null;
+
+			if (currentClient == null) {
+				// Must be from a previous session, search for user in current
+				// scope
+				IConnection current = Red5.getConnectionLocal();
+				// Notify all Clients of that Scope (Room)
+				concolset = current.getScope().getConnections();
+			} else {
+				// default Scope Name
+				String scopeName = "hibernate";
+				if (currentClient.getRoom_id() != null) {
+					scopeName = currentClient.getRoom_id().toString();
+				}
+
+				IScope scopeHibernate = webAppKeyScope.getScope(scopeName);
+
+				if (scopeHibernate != null) {
+					concolset = webAppKeyScope.getScope(scopeName).getConnections();
+				}
+			}
+
+			// log.debug("scopeHibernate "+scopeHibernate);
+
+			// Notify the clients of the same scope (room) with user_id
+
+			for (Set<IConnection> conset : concolset) {
+			for (IConnection conn : conset) {
+				if (conn != null) {
+					
+					IClient client = conn.getClient();
+					if (SessionVariablesUtil.isScreenClient(client)) {
+						// screen sharing clients do not receive events
+						continue;
+					} else if (SessionVariablesUtil.isAVClient(client)) {
+						// AVClients or potential AVClients do not receive events
+						continue;
+					}
+					
+					if (SessionVariablesUtil.getPublicSID(client).equals(publicSID)) {
+						// log.debug("IS EQUAL ");
+						((IServiceCapableConnection) conn).invoke(
+								"newMessageByRoomAndDomain",
+								new Object[] { message }, this);
+						log.debug("sendMessageWithClientByPublicSID RPC:newMessageByRoomAndDomain"
+								+ message);
+					} else if (user_id != 0
+							&& SessionVariablesUtil.getUserId(client).equals(user_id)) {
+						((IServiceCapableConnection) conn).invoke(
+								"newMessageByRoomAndDomain",
+								new Object[] { message }, this);
+						log.debug("sendMessageWithClientByPublicSID RPC:newMessageByRoomAndDomain"
+								+ message);
+					}
+				}
+			}
+			}
+		} catch (Exception err) {
+			log.error("[sendMessageWithClient] ", err);
+		}
+	}
+
+	/**
+	 * @deprecated this method should be reworked to use a single SQL query in
+	 *             the cache to get any client in the current room that is
+	 *             recording instead of iterating through connections!
+	 * @return true in case there is recording session, false otherwise, null if any exception happend
+	 */
+	public synchronized Boolean getInterviewRecordingStatus() {
+		try {
+			IConnection current = Red5.getConnectionLocal();
+
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+				for (IConnection conn : conset) {
+					if (conn != null) {
+						Client rcl = sessionManager.getClientByStreamId(conn.getClient().getId(), null);
+	
+						if (rcl.getIsRecording() != null && rcl.getIsRecording()) {
+							return true;
+						}
+					}
+				}
+			}
+			return false;
+		} catch (Exception err) {
+			log.error("[getInterviewRecordingStatus]", err);
+		}
+
+		return null;
+	}
+
+	/**
+	 * @deprecated @see {@link ScopeApplicationAdapter#getInterviewRecordingStatus()}
+	 * @return - false if there were existing recording, true if recording was started successfully, null if any exception happens
+	 */
+	public synchronized Boolean startInterviewRecording() {
+		try {
+			log.debug("-----------  startInterviewRecording");
+			IConnection current = Red5.getConnectionLocal();
+
+			Collection<Set<IConnection>> concolset = current.getScope().getConnections();
+			for (Set<IConnection> conset : concolset) {
+				for (IConnection conn : conset) {
+					if (conn != null) {
+						Client rcl = sessionManager.getClientByStreamId(conn.getClient().getId(), null);
+	
+						if (rcl != null && rcl.getIsRecording() != null && rcl.getIsRecording()) {
+							return false;
+						}
+					}
+				}
+			}
+			Client current_rcl = sessionManager.getClientByStreamId(current.getClient().getId(), null);
+
+			// Also set the Recording Flag to Record all Participants that enter
+			// later
+			current_rcl.setIsRecording(true);
+			sessionManager.updateClientByStreamId(current.getClient().getId(), current_rcl, false, null);
+
+			Map<String, String> interviewStatus = new HashMap<String, String>();
+			interviewStatus.put("action", "start");
+
+			for (Set<IConnection> conset : concolset) {
+				for (IConnection conn : conset) {
+					if (conn != null) {
+						IClient client = conn.getClient();
+						if (SessionVariablesUtil.isScreenClient(client)) {
+							// screen sharing clients do not receive events
+							continue;
+						} else if (SessionVariablesUtil.isAVClient(client)) {
+							// AVClients or potential AVClients do not receive events
+							continue;
+						}
+	
+						((IServiceCapableConnection) conn).invoke(
+								"interviewStatus",
+								new Object[] { interviewStatus }, this);
+						log.debug("-- interviewStatus" + interviewStatus);
+					}
+				}
+			}
+			String recordingName = "Interview " + CalendarPatterns.getDateWithTimeByMiliSeconds(new Date());
+
+			flvRecorderService.recordMeetingStream(recordingName, "", true);
+
+			return true;
+		} catch (Exception err) {
+			log.debug("[startInterviewRecording]", err);
+		}
+		return null;
+	}
+
+	@SuppressWarnings({ "rawtypes" })
+	public synchronized Boolean sendRemoteCursorEvent(String streamid,
+			Map messageObj) {
+		try {
+
+			IConnection current = Red5.getConnectionLocal();
+
+			for (Set<IConnection> conset : current.getScope().getConnections()) {
+			for (IConnection conn : conset) {
+				if (conn != null) {
+					IClient client = conn.getClient();
+					if (SessionVariablesUtil.isScreenClient(client)) {
+						if (conn.getClient().getId().equals(streamid)) {
+							((IServiceCapableConnection) conn).invoke(
+									"sendRemoteCursorEvent",
+									new Object[] { messageObj }, this);
+						}
+					}
+				}
+			}
+			}
+		} catch (Exception err) {
+			log.debug("[sendRemoteCursorEvent]", err);
+		}
+		return null;
+	}
+
+	private Long checkRecordingClient(IConnection conn) {
+		Long flvRecordingId = null;
+		if (conn != null) {
+			Client rcl = sessionManager.getClientByStreamId(conn.getClient().getId(), null);
+			if (rcl != null && rcl.getIsRecording() != null && rcl.getIsRecording()) {
+				rcl.setIsRecording(false);
+				flvRecordingId = rcl.getFlvRecordingId();
+				rcl.setFlvRecordingId(null);
+
+				// Reset the Recording Flag to Record all
+				// Participants that enter later
+				sessionManager.updateClientByStreamId(conn.getClient().getId(), rcl, false, null);
+			}
+		}
+		return flvRecordingId;
+	}
+	
+	/**
+	 * Stop the recording of the streams and send event to connected users of scope
+	 * 
+	 * @return true if interview was found
+	 */
+	public synchronized Boolean stopInterviewRecording() {
+		try {
+			log.debug("-----------  stopInterviewRecording");
+			IConnection current = Red5.getConnectionLocal();
+
+			Long flvRecordingId = checkRecordingClient(current);
+
+			Collection<Set<IConnection>> concolset = current.getScope().getConnections();
+			for (Set<IConnection> conset : concolset) {
+				for (IConnection conn : conset) {
+					Long recordingId = checkRecordingClient(conn);
+					if (recordingId != null) {
+						flvRecordingId = recordingId;
+					}
+				}
+			}
+			if (flvRecordingId == null) {
+				log.debug("stopInterviewRecording:: unable to find recording client");
+				return false;
+			}
+
+			Client currentClient = sessionManager.getClientByStreamId(current.getClient().getId(), null);
+
+			flvRecorderService.stopRecordAndSave(scope, currentClient, flvRecordingId);
+
+			Map<String, String> interviewStatus = new HashMap<String, String>();
+			interviewStatus.put("action", "stop");
+
+			for (Set<IConnection> conset : concolset) {
+			for (IConnection conn : conset) {
+				if (conn != null) {
+					IClient client = conn.getClient();
+					if (SessionVariablesUtil.isScreenClient(client)) {
+						// screen sharing clients do not receive events
+						continue;
+					} else if (SessionVariablesUtil.isAVClient(client)) {
+						// AVClients or potential AVClients do not receive events
+						continue;
+					}
+					((IServiceCapableConnection) conn).invoke(
+							"interviewStatus",
+							new Object[] { interviewStatus }, this);
+				}
+			}
+			}
+			return true;
+
+		} catch (Exception err) {
+			log.debug("[stopInterviewRecording]", err);
+		}
+		return null;
+	}
+
+	/**
+	 * Get all ClientList Objects of that room and domain Used in
+	 * lz.applyForModeration.lzx
+	 * 
+	 * @return all ClientList Objects of that room
+	 */
+	public synchronized List<Client> getClientListScope() {
+		try {
+			IConnection current = Red5.getConnectionLocal();
+			Client currentClient = this.sessionManager
+					.getClientByStreamId(current.getClient().getId(), null);
+
+			return sessionManager.getClientListByRoom(currentClient.getRoom_id());
+
+		} catch (Exception err) {
+			log.debug("[getClientListScope]", err);
+		}
+		return new ArrayList<Client>();
+	}
+
+	private boolean getWhiteboardDrawStatus() {
+		return configurationDao.getWhiteboardDrawStatus();
+	}
+	
+	public String getCryptKey() {
+		return configurationDao.getCryptKey();
+	}
+
+	public synchronized IScope getRoomScope(String room) {
+		try {
+
+			IScope globalScope = getContext().getGlobalScope();
+			IScope webAppKeyScope = globalScope
+					.getScope(OpenmeetingsVariables.webAppRootKey);
+
+			String scopeName = "hibernate";
+			// If set then its a NON default Scope
+			if (room.length() != 0) {
+				scopeName = room;
+			}
+
+			IScope scopeHibernate = webAppKeyScope.getScope(scopeName);
+
+			return scopeHibernate;
+		} catch (Exception err) {
+			log.error("[getRoomScope]", err);
+		}
+		return null;
+	}
+
+    /*
+	 * SIP transport methods
+	 */
+
+	private List<Long> getVerifiedActiveRoomIds(Server s) {
+		List<Long> result = new ArrayList<Long>(sessionManager.getActiveRoomIdsByServer(s));
+		//verify
+		for (Iterator<Long> i = result.iterator(); i.hasNext();) {
+			Long id = i.next();
+			List<Client> rcs = sessionManager.getClientListByRoom(id);
+			if (rcs.size() == 0 || (rcs.size() == 1 && rcs.get(0).isSipTransport())) {
+				i.remove();
+			}
+		}
+		return result.isEmpty() ? result : roomDao.getSipRooms(result);
+	}
+	
+	public synchronized List<Long> getActiveRoomIds() {
+		List<Long> result = getVerifiedActiveRoomIds(null);
+		for (Server s : serverDao.getActiveServers()) {
+			result.addAll(getVerifiedActiveRoomIds(s));
+		}
+		return result.isEmpty() ? result : roomDao.getSipRooms(result);
+	}
+	
+	private String getSipTransportLastname(Long roomId) {
+		return getSipTransportLastname(roomId, roomManager.getSipConferenceMembersNumber(roomId));
+	}
+	
+	private String getSipTransportLastname(Long roomId, Integer c) {
+		return (c != null && c > 0) ? "(" + (c - 1) + ")" : "";
+	}
+	
+    public synchronized int updateSipTransport() {
+		log.debug("-----------  updateSipTransport");
+        IConnection current = Red5.getConnectionLocal();
+        String streamid = current.getClient().getId();
+        Client client = sessionManager.getClientByStreamId(streamid, null);
+        Long roomId = client.getRoom_id();
+        Integer count = roomManager.getSipConferenceMembersNumber(roomId); 
+        String newNumber = getSipTransportLastname(roomId, count);
+        log.debug("getSipConferenceMembersNumber: " + newNumber);
+        if (!newNumber.equals(client.getLastname())) {
+            client.setLastname(newNumber);
+            sessionManager.updateClientByStreamId(streamid, client, false, null);
+            log.debug("updateSipTransport: {}, {}, {}, {}, {}", new Object[]{client.getPublicSID(),
+                    client.getRoom_id(), client.getFirstname(), client.getLastname(), client.getAvsettings()});
+            sendMessageWithClient(new String[]{"personal",client.getFirstname(),client.getLastname()});
+        }
+        return count != null && count > 0 ? count - 1 : 0; 
+    }
+
+    /**
+     * Perform call to specified phone number and join to conference
+     * @param number to call
+     */
+	public synchronized void joinToConfCall(String number) {
+		IConnection current = Red5.getConnectionLocal();
+		String streamid = current.getClient().getId();
+		Client currentClient = sessionManager.getClientByStreamId(streamid, null);
+		try {
+			String sipNumber = getSipNumber(currentClient.getRoom_id());
+			log.debug("asterisk -rx \"originate Local/" + number + "@rooms-out extension " + sipNumber
+					+ "@rooms-originate\"");
+			Runtime.getRuntime().exec(
+					new String[] { "asterisk", "-rx",
+							"originate Local/" + number + "@rooms-out extension " + sipNumber + "@rooms-originate" });
+		} catch (IOException e) {
+			log.error("Executing asterisk originate error: ", e);
+		}
+	}
+
+    public synchronized String getSipNumber(Long room_id) {
+        Room r = roomDao.get(room_id);
+        if(r != null && r.getConfno() != null) {
+            log.debug("getSipNumber: room_id: {}, sipNumber: {}", new Object[]{room_id, r.getConfno()});
+            return r.getConfno();
+        }
+        return null;
+    }
+
+	public synchronized void setSipTransport(Long room_id, String publicSID, String broadCastId) {
+		log.debug("-----------  setSipTransport");
+		IConnection current = Red5.getConnectionLocal();
+		IClient c = current.getClient();
+		String streamid = c.getId();
+		// Notify all clients of the same scope (room)
+		Client currentClient = sessionManager.getClientByStreamId(streamid, null);
+		currentClient.setSipTransport(true);
+		currentClient.setRoom_id(room_id);
+		currentClient.setRoomEnter(new Date());
+		currentClient.setFirstname("SIP Transport");
+		currentClient.setLastname(getSipTransportLastname(room_id));
+		currentClient.setBroadCastID(Long.parseLong(broadCastId));
+		currentClient.setIsBroadcasting(true);
+		currentClient.setPublicSID(publicSID);
+		currentClient.setVWidth(120);
+		currentClient.setVHeight(90);
+		currentClient.setPicture_uri("phone.png");
+		sessionManager.updateClientByStreamId(streamid, currentClient, false, null);
+		SessionVariablesUtil.initClient(c, false, publicSID);
+
+		for (Set<IConnection> conset : current.getScope().getConnections()) {
+		for (IConnection conn : conset) {
+			if (conn != null) {
+				IClient client = conn.getClient();
+				if (SessionVariablesUtil.isScreenClient(client)) {
+					// screen sharing clients do not receive events
+					continue;
+				} else if (SessionVariablesUtil.isAVClient(client)) {
+					// AVClients or potential AVClients do not receive events
+					continue;
+				}
+
+				if (!client.getId().equals(current.getClient().getId())) {
+					// It is not needed to send back that event to the actual Moderator
+					// as it will be already triggered in the result of this Function in the Client
+					if (conn instanceof IServiceCapableConnection) {
+						((IServiceCapableConnection) conn).invoke("addNewUser", new Object[] { currentClient }, this);
+						log.debug("sending setSipTransport to " + conn);
+					}
+				}
+			}
+		}
+		}
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/remote/util/SessionVariablesUtil.java b/src/main/java/org/apache/openmeetings/remote/util/SessionVariablesUtil.java
new file mode 100644
index 0000000..642bd08
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/remote/util/SessionVariablesUtil.java
@@ -0,0 +1,105 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.remote.util;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import org.red5.logging.Red5LoggerFactory;
+import org.red5.server.api.IClient;
+import org.slf4j.Logger;
+
+public class SessionVariablesUtil {
+	private static final Logger log = Red5LoggerFactory.getLogger(SessionVariablesUtil.class, webAppRootKey);
+
+	private enum SESSION_VARIABLES {
+		isAVClient, // if the client connection is a audio-video only connection
+		isScreenClient, // if the client connection is from a Java Web-Start application
+		PUBLIC_SID, // the public SID of the client
+		USER_ID, // the userId of the user that is using this connection (if there is any)
+	}
+
+	public static void initClient(IClient client, boolean isAVClient, String publicSID) {
+		client.setAttribute(SESSION_VARIABLES.isAVClient.toString(), isAVClient);
+		client.setAttribute(SESSION_VARIABLES.PUBLIC_SID.toString(), publicSID);
+	}
+
+	public static boolean isAVClient(IClient client) {
+		try {
+			if (client.getAttribute(SESSION_VARIABLES.isAVClient.toString()) == null) {
+				throw new Exception("Connection has no publicSID client: " + client);
+			}
+			return (Boolean) client.getAttribute(SESSION_VARIABLES.isAVClient.toString());
+		} catch (Exception err) {
+			log.error("[isAVClient]", err);
+		}
+		return false;
+	}
+
+	public static String getPublicSID(IClient client) {
+		try {
+			if (client.getAttribute(SESSION_VARIABLES.PUBLIC_SID.toString()) == null) {
+				throw new Exception("Connection has no publicSID client: " + client);
+			}
+			return (String) client.getAttribute(SESSION_VARIABLES.PUBLIC_SID.toString());
+		} catch (Exception err) {
+			log.error("[getPublicSID]", err);
+		}
+		return null;
+	}
+
+	public static void setIsScreenClient(IClient client) {
+		client.setAttribute(SESSION_VARIABLES.isScreenClient.toString(), true);
+	}
+
+	public static boolean isScreenClient(IClient client) {
+		try {
+			if (client.getAttribute(SESSION_VARIABLES.isScreenClient.toString()) == null) {
+				return false;
+			}
+			if ((Boolean) client.getAttribute(SESSION_VARIABLES.isScreenClient.toString())) {
+				return true;
+			}
+		} catch (Exception err) {
+			log.error("[isScreenClient]", err);
+		}
+		return false;
+	}
+
+	public static void setUserId(IClient client, Long userId) {
+		client.setAttribute(SESSION_VARIABLES.USER_ID.toString(), userId);
+	}
+
+	/**
+	 * if there is no user id set, it will return Long.MIN_VALUE
+	 * 
+	 * @param client
+	 * @return - user id set or Long.MIN_VALUE or null if any exception happens
+	 */
+	public static Long getUserId(IClient client) {
+		try {
+			if (client.getAttribute(SESSION_VARIABLES.USER_ID.toString()) == null) {
+				return Long.MIN_VALUE;
+			}
+			return (Long) client.getAttribute(SESSION_VARIABLES.USER_ID.toString());
+		} catch (Exception err) {
+			log.error("[getUserId]", err);
+		}
+		return null;
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/rss/LoadAtomRssFeed.java b/src/main/java/org/apache/openmeetings/rss/LoadAtomRssFeed.java
new file mode 100644
index 0000000..17e8f5a
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/rss/LoadAtomRssFeed.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.rss;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class LoadAtomRssFeed {
+	private static final Logger log = Red5LoggerFactory.getLogger(LoadAtomRssFeed.class, webAppRootKey);
+
+	public static HttpURLConnection getFeedConnection(String _url) throws IOException {
+		log.debug("getFeedConnection:: " + _url);
+		
+		URL url = new URL(_url);
+
+		HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+
+		conn.setDoOutput(true);
+		conn.setDoInput(true);
+		conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)");
+		conn.setRequestProperty("Referer", "http://openmeetings.apache.org/");
+		return conn;
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/servlet/BaseHttpServlet.java b/src/main/java/org/apache/openmeetings/servlet/BaseHttpServlet.java
new file mode 100644
index 0000000..48d02b9
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/servlet/BaseHttpServlet.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.servlet;
+
+import java.io.IOException;
+import java.io.OutputStream;
+
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletResponse;
+
+public abstract class BaseHttpServlet extends HttpServlet {
+	private static final long serialVersionUID = -2713422496723115524L;
+	
+	private BeanUtil beanUtil = new BeanUtil();
+
+	protected <T> T getBean(Class<T> beanClass) throws ServerNotInitializedException {
+		return beanUtil.getBean(beanClass, getServletContext());
+	}
+	
+	protected void handleNotBooted(HttpServletResponse response) throws IOException {
+		OutputStream out = response.getOutputStream();
+
+		String msg = "Server is not booted yet";
+
+		out.write(msg.getBytes());
+
+		out.flush();
+		out.close();
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/servlet/BeanUtil.java b/src/main/java/org/apache/openmeetings/servlet/BeanUtil.java
new file mode 100644
index 0000000..2bbfb42
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/servlet/BeanUtil.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.servlet;
+
+import javax.servlet.ServletContext;
+
+import org.apache.openmeetings.util.InitializationContainer;
+import org.springframework.web.context.support.WebApplicationContextUtils;
+
+public class BeanUtil {
+	public <T> T getBean(Class<T> beanClass, ServletContext ctx) throws ServerNotInitializedException {
+		if (InitializationContainer.initComplete) {
+			return WebApplicationContextUtils.getWebApplicationContext(ctx).getBean(beanClass);
+		} else {
+			throw new ServerNotInitializedException("Server not yet initialized, retry in couple of seconds");
+		}
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/servlet/ServerNotInitializedException.java b/src/main/java/org/apache/openmeetings/servlet/ServerNotInitializedException.java
new file mode 100644
index 0000000..ec5d059
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/servlet/ServerNotInitializedException.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.servlet;
+
+public class ServerNotInitializedException extends Exception {
+	private static final long serialVersionUID = -7771909924751249321L;
+	
+	public ServerNotInitializedException(String msg) {
+		super(msg);
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/servlet/outputhandler/AbstractUploadController.java b/src/main/java/org/apache/openmeetings/servlet/outputhandler/AbstractUploadController.java
new file mode 100644
index 0000000..56e28ad
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/servlet/outputhandler/AbstractUploadController.java
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.servlet.outputhandler;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.util.AuthLevelUtil;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+
+public abstract class AbstractUploadController {
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			AbstractUploadController.class, OpenmeetingsVariables.webAppRootKey);
+	@Autowired
+	protected SessiondataDao sessiondataDao;
+	@Autowired
+	protected UserManager userManager;
+	@Autowired
+	protected ConfigurationDao configurationDao;
+	
+	protected class UploadInfo {
+		MultipartFile file;
+		Long userId;
+		String sid;
+		String publicSID;
+		String filename;
+	}
+	
+    protected UploadInfo validate(HttpServletRequest request, boolean admin) throws ServletException {
+    	UploadInfo info = new UploadInfo();
+		log.debug("Starting validate");
+		try {
+			String sid = request.getParameter("sid");
+			if (sid == null) {
+				throw new ServletException("SID Missing");
+			}
+			info.sid = sid;
+			log.debug("sid: " + sid);
+
+			Long userId = sessiondataDao.checkSession(sid);
+			Long userLevel = userManager.getUserLevelByID(userId);
+			log.debug("userId = " + userId + ", userLevel = " + userLevel);
+			info.userId = userId;
+
+			if ((admin && !AuthLevelUtil.checkAdminLevel(userLevel))
+					|| (!admin && userLevel <= 0)) {
+				throw new ServletException("Insufficient permissions "
+						+ userLevel);
+			}
+
+			String publicSID = request.getParameter("publicSID");
+			if (publicSID == null) {
+				// Always ask for Public SID
+				throw new ServletException("Missing publicSID");
+			}
+			log.debug("publicSID: " + publicSID);
+			info.publicSID= publicSID;
+
+			MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)request;
+			MultipartFile multipartFile = multipartRequest.getFile("Filedata");
+			//FIXME encoding HACK
+			info.filename = new String (multipartFile.getOriginalFilename().getBytes ("iso-8859-1"), "UTF-8");
+			long fileSize = multipartFile.getSize();
+			long maxSize = configurationDao.getMaxUploadSize();
+			log.debug("uploading " + fileSize + " bytes");
+			if (fileSize > maxSize) {
+				throw new ServletException("Maximum upload size: " + maxSize + " exceeded: " + fileSize);
+			}
+			info.file = multipartFile;
+		} catch (ServletException e) {
+			throw e;
+		} catch (Exception e) {
+			log.error("Exception during upload: ", e);
+			throw new ServletException(e);
+		}
+		return info;
+    }
+}
diff --git a/src/main/java/org/apache/openmeetings/servlet/outputhandler/DownloadHandler.java b/src/main/java/org/apache/openmeetings/servlet/outputhandler/DownloadHandler.java
new file mode 100644
index 0000000..bd455f0
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/servlet/outputhandler/DownloadHandler.java
@@ -0,0 +1,338 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.servlet.outputhandler;
+
+import static org.apache.openmeetings.util.OmFileHelper.bigImagePrefix;
+import static org.apache.openmeetings.util.OmFileHelper.chatImagePrefix;
+import static org.apache.openmeetings.util.OmFileHelper.defaultProfileImageName;
+import static org.apache.openmeetings.util.OmFileHelper.profileImagePrefix;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.entity.file.FileExplorerItem;
+import org.apache.openmeetings.servlet.BaseHttpServlet;
+import org.apache.openmeetings.servlet.ServerNotInitializedException;
+import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class DownloadHandler extends BaseHttpServlet {
+	
+	private static final long serialVersionUID = 7243653203578587544L;
+
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			DownloadHandler.class, OpenmeetingsVariables.webAppRootKey);
+
+	private static final String defaultImageName = "deleted.jpg";
+	private static final String defaultProfileImageNameBig = profileImagePrefix + defaultProfileImageName;
+	private static final String defaultChatImageName = chatImagePrefix + defaultProfileImageName;
+	private static final String defaultSWFName = "deleted.swf";
+
+	private void logNonExistentFolder(File f) {
+		if (!f.exists()) {
+			boolean c = f.mkdir();
+			if (!c) {
+				log.error("cannot write to directory");
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest
+	 * , javax.servlet.http.HttpServletResponse)
+	 */
+	@Override
+	protected void service(HttpServletRequest httpServletRequest,
+			HttpServletResponse httpServletResponse) throws ServletException,
+			IOException {
+
+		try {
+			httpServletRequest.setCharacterEncoding("UTF-8");
+
+			log.debug("\nquery = " + httpServletRequest.getQueryString());
+			log.debug("\n\nfileName = "
+					+ httpServletRequest.getParameter("fileName"));
+			log.debug("\n\nparentPath = "
+					+ httpServletRequest.getParameter("parentPath"));
+
+			String queryString = httpServletRequest.getQueryString();
+			if (queryString == null) {
+				queryString = "";
+			}
+
+			String sid = httpServletRequest.getParameter("sid");
+
+			if (sid == null) {
+				sid = "default";
+			}
+			log.debug("sid: " + sid);
+
+			Long users_id = getBean(SessiondataDao.class).checkSession(sid);
+			Long user_level = getBean(UserManager.class).getUserLevelByID(users_id);
+
+			if (user_level != null && user_level > 0) {
+				String room_id = httpServletRequest.getParameter("room_id");
+				if (room_id == null) {
+					room_id = "default";
+				}
+
+				String moduleName = httpServletRequest
+						.getParameter("moduleName");
+				if (moduleName == null) {
+					moduleName = "nomodule";
+				}
+
+				String parentPath = httpServletRequest
+						.getParameter("parentPath");
+				if (parentPath == null) {
+					parentPath = "nomodule";
+				}
+
+				String requestedFile = httpServletRequest
+						.getParameter("fileName");
+				if (requestedFile == null) {
+					requestedFile = "";
+				}
+				
+				String fileExplorerItemIdParam = httpServletRequest
+						.getParameter("fileExplorerItemId");
+				Long fileExplorerItemId = null;
+				if (fileExplorerItemIdParam != null) {
+					fileExplorerItemId = Long.parseLong(fileExplorerItemIdParam);
+				}
+				
+				
+
+				// make a complete name out of domain(organisation) + roomname
+				String roomName = room_id;
+				// trim whitespaces cause it is a directory name
+				roomName = StringUtils.deleteWhitespace(roomName);
+
+				// Get the current User-Directory
+
+				File working_dir;
+
+				// Add the Folder for the Room
+				if (moduleName.equals("lzRecorderApp")) {
+					working_dir = OmFileHelper.getStreamsHibernateDir();
+				} else if (moduleName.equals("videoconf1")) {
+					working_dir = OmFileHelper.getUploadRoomDir(roomName);
+					if (parentPath.length() != 0 && !parentPath.equals("/")) {
+						working_dir = new File(working_dir, parentPath);
+					}
+				} else if (moduleName.equals("userprofile")) {
+					working_dir = OmFileHelper.getUploadProfilesUserDir(users_id);
+					logNonExistentFolder(working_dir);
+				} else if (moduleName.equals("remoteuserprofile")) {
+					String remoteUser_id = httpServletRequest.getParameter("remoteUserid");
+					working_dir = OmFileHelper.getUploadProfilesUserDir(remoteUser_id == null ? "0" : remoteUser_id);
+					logNonExistentFolder(working_dir);
+				} else if (moduleName.equals("remoteuserprofilebig")) {
+					String remoteUser_id = httpServletRequest.getParameter("remoteUserid");
+					working_dir = OmFileHelper.getUploadProfilesUserDir(remoteUser_id == null ? "0" : remoteUser_id);
+					logNonExistentFolder(working_dir);
+					
+					requestedFile = getBigProfileUserName(working_dir);
+				} else if (moduleName.equals("chat")) {
+					String remoteUser_id = httpServletRequest.getParameter("remoteUserid");
+					working_dir = OmFileHelper.getUploadProfilesUserDir(remoteUser_id == null ? "0" : remoteUser_id);
+					logNonExistentFolder(working_dir);
+
+					requestedFile = getChatUserName(working_dir);
+				} else {
+					working_dir = OmFileHelper.getUploadRoomDir(roomName);
+				}
+
+				if (!moduleName.equals("nomodule")) {
+
+					log.debug("requestedFile: " + requestedFile
+							+ " current_dir: " + working_dir);
+
+					File full_path = new File(working_dir, requestedFile);
+
+					// If the File does not exist or is not readable show/load a
+					// place-holder picture
+
+					if (!full_path.exists() || !full_path.canRead()) {
+						if (!full_path.canRead()) {
+							log.debug("LOG DownloadHandler: The request file is not readable ");
+						} else {
+							log.debug("LOG DownloadHandler: The request file does not exist / has already been deleted");
+						}
+						log.debug("LOG ERROR requestedFile: " + requestedFile);
+						// replace the path with the default picture/document
+
+						if (requestedFile.endsWith(".jpg")) {
+							log.debug("LOG endsWith d.jpg");
+
+							log.debug("LOG moduleName: " + moduleName);
+
+							requestedFile = defaultImageName;
+							if (moduleName.equals("remoteuserprofile")) {
+								requestedFile = defaultProfileImageName;
+							} else if (moduleName.equals("remoteuserprofilebig")) {
+								requestedFile = defaultProfileImageNameBig;
+							} else if (moduleName.equals("userprofile")) {
+								requestedFile = defaultProfileImageName;
+							} else if (moduleName.equals("chat")) {
+								requestedFile = defaultChatImageName;
+							}
+						} else if (requestedFile.endsWith(".swf")) {
+							requestedFile = defaultSWFName;
+						} else {
+							requestedFile = defaultImageName;
+						}
+						full_path = new File(OmFileHelper.getDefaultDir(), requestedFile);
+					}
+
+					log.debug("full_path: " + full_path);
+
+					if (!full_path.exists() || !full_path.canRead()) {
+						if (!full_path.canRead()) {
+							log.debug("DownloadHandler: The request DEFAULT-file does not exist / has already been deleted");
+						} else {
+							log.debug("DownloadHandler: The request DEFAULT-file does not exist / has already been deleted");
+						}
+						// no file to handle abort processing
+						return;
+					}
+					// Requested file is outside OM webapp folder
+					File curDirFile = OmFileHelper.getOmHome();
+					if (!full_path.getCanonicalPath()
+							.startsWith(curDirFile.getCanonicalPath())) {
+						throw new Exception("Invalid file requested: f2.cp == "
+								+ full_path.getCanonicalPath() + "; curDir.cp == "
+								+ curDirFile.getCanonicalPath());
+					}
+
+					// Default type - Explorer, Chrome and others
+					int browserType = 0;
+
+					// Firefox and Opera browsers
+					if (httpServletRequest.getHeader("User-Agent") != null) {
+						if ((httpServletRequest.getHeader("User-Agent")
+								.contains("Firefox"))
+								|| (httpServletRequest.getHeader("User-Agent")
+										.contains("Opera"))) {
+							browserType = 1;
+						}
+					}
+
+					log.debug("Detected browser type:" + browserType);
+
+					httpServletResponse.reset();
+					httpServletResponse.resetBuffer();
+					OutputStream out = httpServletResponse.getOutputStream();
+
+					if (requestedFile.endsWith(".swf")) {
+						// trigger download to SWF => THIS is a workaround for
+						// Flash Player 10, FP 10 does not seem
+						// to accept SWF-Downloads with the Content-Disposition
+						// in the Header
+						httpServletResponse
+								.setContentType("application/x-shockwave-flash");
+						httpServletResponse.setHeader("Content-Length",
+								"" + full_path.length());
+					} else {
+						httpServletResponse
+								.setContentType("APPLICATION/OCTET-STREAM");
+						
+						String fileNameResult = requestedFile;
+						if (fileExplorerItemId != null && fileExplorerItemId > 0) {
+							FileExplorerItem fileExplorerItem = getBean(FileExplorerItemDao.class).getFileExplorerItemsById(fileExplorerItemId);
+							if (fileExplorerItem != null) {
+								
+								fileNameResult = fileExplorerItem.getFileName().substring(0, fileExplorerItem.getFileName().length()-4)
+													+ fileNameResult.substring(fileNameResult.length()-4, fileNameResult.length());
+								
+							}
+						}
+						
+						if (browserType == 0) {
+							httpServletResponse.setHeader(
+									"Content-Disposition",
+									"attachment; filename="
+											+ java.net.URLEncoder.encode(
+													fileNameResult, "UTF-8"));
+						} else {
+							httpServletResponse.setHeader(
+									"Content-Disposition",
+									"attachment; filename*=UTF-8'en'"
+											+ java.net.URLEncoder.encode(
+													fileNameResult, "UTF-8"));
+						}
+
+						httpServletResponse.setHeader("Content-Length",
+								"" + full_path.length());
+					}
+
+					OmFileHelper.copyFile(full_path, out);
+					out.flush();
+					out.close();
+				}
+			} else {
+				log.error("ERROR DownloadHandler: not authorized FileDownload ");
+			}
+
+		} catch (ServerNotInitializedException e) {
+			return;
+		} catch (Exception er) {
+			log.error("Error downloading: ", er);
+		}
+	}
+
+	private String getChatUserName(File f) throws Exception {
+		if (f.exists() && f.isDirectory()) {
+			String filesString[] = f.list();
+			for (int i = 0; i < filesString.length; i++) {
+				String fileName = filesString[i];
+				if (fileName.startsWith(chatImagePrefix))
+					return fileName;
+			}
+		}
+		return "_no.jpg";
+	}
+
+	private String getBigProfileUserName(File f) throws Exception {
+		if (f.exists() && f.isDirectory()) {
+			String filesString[] = f.list();
+			for (int i = 0; i < filesString.length; i++) {
+				String fileName = filesString[i];
+				if (fileName.startsWith(bigImagePrefix))
+					return fileName;
+			}
+		}
+		return "_no.jpg";
+	}
+
+}
diff --git a/src/main/java/org/apache/openmeetings/servlet/outputhandler/ExportToImage.java b/src/main/java/org/apache/openmeetings/servlet/outputhandler/ExportToImage.java
new file mode 100644
index 0000000..ee11d33
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/servlet/outputhandler/ExportToImage.java
@@ -0,0 +1,192 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.servlet.outputhandler;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Date;
+import java.util.List;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.batik.dom.GenericDOMImplementation;
+import org.apache.batik.dom.svg.SVGDOMImplementation;
+import org.apache.batik.svggen.SVGGraphics2D;
+import org.apache.batik.transcoder.TranscoderInput;
+import org.apache.batik.transcoder.TranscoderOutput;
+import org.apache.batik.transcoder.image.JPEGTranscoder;
+import org.apache.openmeetings.batik.beans.PrintBean;
+import org.apache.openmeetings.data.record.WhiteboardMapToSVG;
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.remote.PrintService;
+import org.apache.openmeetings.servlet.BaseHttpServlet;
+import org.apache.openmeetings.servlet.ServerNotInitializedException;
+import org.apache.openmeetings.util.CalendarPatterns;
+import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.w3c.dom.DOMImplementation;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public class ExportToImage extends BaseHttpServlet {
+	
+	private static final long serialVersionUID = -3535998254746084297L;
+	
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			ExportToImage.class, OpenmeetingsVariables.webAppRootKey);
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest
+	 * , javax.servlet.http.HttpServletResponse)
+	 */
+	@Override
+	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException,
+			IOException {
+
+		try {
+			String sid = request.getParameter("sid");
+			if (sid == null) {
+				sid = "default";
+			}
+			log.debug("sid: " + sid);
+
+			String hash = request.getParameter("hash");
+			if (hash == null) {
+				hash = "";
+			}
+			log.debug("hash: " + hash);
+
+			String fileName = request.getParameter("fileName");
+			if (fileName == null) {
+				fileName = "file_xyz";
+			}
+
+			String exportType = request.getParameter("exportType");
+			if (exportType == null) {
+				exportType = "svg";
+			}
+
+			Long users_id = getBean(SessiondataDao.class).checkSession(sid);
+			Long user_level = getBean(UserManager.class).getUserLevelByID(users_id);
+
+			log.debug("users_id: " + users_id);
+			log.debug("user_level: " + user_level);
+
+			if (user_level != null && user_level > 0 && hash != "") {
+
+				PrintBean pBean = PrintService.getPrintItemByHash(hash);
+
+				// Whiteboard Objects
+				@SuppressWarnings("rawtypes")
+				List whiteBoardMap = pBean.getMap();
+
+				// Get a DOMImplementation.
+				DOMImplementation domImpl = GenericDOMImplementation
+						.getDOMImplementation();
+
+				// Create an instance of org.w3c.dom.Document.
+				// String svgNS = "http://www.w3.org/2000/svg";
+				String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI;
+
+				Document document = domImpl.createDocument(svgNS, "svg", null);
+
+				// Get the root element (the 'svg' element).
+				Element svgRoot = document.getDocumentElement();
+
+				// Set the width and height attributes on the root 'svg'
+				// element.
+				svgRoot.setAttributeNS(null, "width", "" + pBean.getWidth());
+				svgRoot.setAttributeNS(null, "height", "" + pBean.getHeight());
+
+				log.debug("pBean.getWidth(),pBean.getHeight()"
+						+ pBean.getWidth() + "," + pBean.getHeight());
+
+				// Create an instance of the SVG Generator.
+				SVGGraphics2D svgGenerator = new SVGGraphics2D(document);
+
+				svgGenerator = WhiteboardMapToSVG.getInstance()
+						.convertMapToSVG(svgGenerator, whiteBoardMap);
+
+				// Finally, stream out SVG to the standard output using
+				// UTF-8 encoding.
+				boolean useCSS = true; // we want to use CSS style attributes
+
+				File uploadTempDir = OmFileHelper.getUploadTempDir();
+				log.debug("working_dir: " + uploadTempDir);
+				String reqFilePrefix = fileName + "_" + CalendarPatterns.getTimeForStreamId(new Date());
+				File svgFile = new File(uploadTempDir, reqFilePrefix + ".svg");
+				log.debug("exported svg file: " + svgFile.getCanonicalPath());
+				FileWriter out = new FileWriter(svgFile);
+				svgGenerator.stream(out, useCSS);
+				out.flush();
+				out.close();
+				File expFile = new File(uploadTempDir, reqFilePrefix + "." + exportType);
+				log.debug("exported file: " + expFile.getCanonicalPath());
+				if ("svg".equals(exportType)) {
+					outFile(response, expFile);
+				} else if ("jpg".equals(exportType)) {
+					JPEGTranscoder t = new JPEGTranscoder();
+			        t.addTranscodingHint(JPEGTranscoder.KEY_QUALITY, 1f);
+			        
+			        OutputStream ostream = new FileOutputStream(expFile);
+			        TranscoderOutput output = new TranscoderOutput(new FileOutputStream(expFile));
+
+			        // Perform the transcoding.
+			        t.transcode(new TranscoderInput(svgFile.toURI().toString()), output);
+			        ostream.flush();
+			        ostream.close();
+			        
+					outFile(response, expFile);
+				} else if (exportType.equals("png")
+						|| exportType.equals("gif") || exportType.equals("tif")
+						|| exportType.equals("pdf")) {
+						//TODO not implemented yet
+				}
+			}
+		} catch (ServerNotInitializedException e) {
+			return;
+		} catch (Exception er) {
+			log.error("Error exporting to image ", er);
+		}
+	}
+	
+	private void outFile(HttpServletResponse response, File f) throws IOException {
+		response.reset();
+		response.resetBuffer();
+		OutputStream outStream = response.getOutputStream();
+		response.setContentType("APPLICATION/OCTET-STREAM");
+		response.setHeader("Content-Disposition", "attachment; filename=\"" + f.getName() + "\"");
+		response.setHeader("Content-Length", "" + f.length());
+
+		OmFileHelper.copyFile(f, outStream);
+		outStream.close();
+	}
+	
+}
diff --git a/src/main/java/org/apache/openmeetings/servlet/outputhandler/NetworkTestingController.java b/src/main/java/org/apache/openmeetings/servlet/outputhandler/NetworkTestingController.java
new file mode 100644
index 0000000..5131df6
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/servlet/outputhandler/NetworkTestingController.java
@@ -0,0 +1,119 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.servlet.outputhandler;
+
+import java.io.IOException;
+import java.util.Arrays;
+
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+@Controller
+public class NetworkTestingController {
+
+    enum TestType {
+        UNKNOWN,
+        PING,
+        JITTER,
+        DOWNLOAD_SPEED,
+        UPLOAD_SPEED
+    }
+
+    private static final int PING_PACKET_SIZE = 64;
+    private static final int JITTER_PACKET_SIZE = 1024;
+    private static final int DOWNLOAD_PACKET_SIZE = 1024*1024;
+
+    private final byte[] pingData;
+    private final byte[] jitterData;
+    private final byte[] downloadData;
+
+    public NetworkTestingController() {
+        pingData = new byte[PING_PACKET_SIZE];
+        jitterData = new byte[JITTER_PACKET_SIZE];
+        downloadData = new byte[DOWNLOAD_PACKET_SIZE];
+
+        Arrays.fill(pingData, (byte) '0');
+        Arrays.fill(jitterData, (byte) '0');
+        Arrays.fill(downloadData, (byte) '0');
+    }
+
+    @RequestMapping(value = "/networktest.upload", method = RequestMethod.GET)
+	public void serviceGet(HttpServletRequest request, HttpServletResponse response, HttpSession session)
+			throws ServletException, IOException {
+        String typeStr = request.getParameter("testType");
+        TestType testType = this.getTypeByString(typeStr);
+
+        // choose data to send
+        byte[] data = null;
+        switch (testType) {
+            case UNKNOWN:
+                return;
+            case PING:
+                data = pingData;
+                break;
+            case JITTER:
+                data = jitterData;
+                break;
+            case DOWNLOAD_SPEED:
+                data = downloadData;
+                break;
+			case UPLOAD_SPEED:
+				break;
+			default:
+				break;
+        }
+
+        // set needed headers
+        response.setHeader("Cache-Control", "no-cache");
+        response.setHeader("Content-Length", String.valueOf(data.length));
+
+        // send data
+        ServletOutputStream outStream = response.getOutputStream();
+        outStream.write(data);
+        outStream.flush();
+    }
+
+    @RequestMapping(value = "/networktest.upload", method = RequestMethod.POST)
+	public void servicePost(HttpServletRequest request, HttpServletResponse response, HttpSession session)
+			throws ServletException, IOException {
+    }
+
+
+    private TestType getTypeByString(String typeString) {
+        if ("ping".equals(typeString)) {
+            return TestType.PING;
+        } else if ("jitter".equals(typeString)) {
+            return TestType.JITTER;
+        } else if ("download".equals(typeString)) {
+            return TestType.DOWNLOAD_SPEED;
+        } else if ("upload".equals(typeString)) {
+            return TestType.UPLOAD_SPEED;
+        }
+
+        return TestType.UNKNOWN;
+    }
+
+}
diff --git a/src/main/java/org/apache/openmeetings/servlet/outputhandler/ScreenController.java b/src/main/java/org/apache/openmeetings/servlet/outputhandler/ScreenController.java
new file mode 100644
index 0000000..fdd61a4
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/servlet/outputhandler/ScreenController.java
@@ -0,0 +1,280 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.servlet.outputhandler;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Properties;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.codec.binary.Hex;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.openmeetings.data.basic.FieldManager;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.server.ISessionManager;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.velocity.VelocityContext;
+import org.apache.velocity.app.VelocityEngine;
+import org.apache.velocity.context.Context;
+import org.apache.velocity.runtime.RuntimeConstants;
+import org.apache.velocity.runtime.log.Log4JLogChute;
+import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+@Controller
+public class ScreenController {
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			ScreenController.class, OpenmeetingsVariables.webAppRootKey);
+
+	@Autowired
+	private ISessionManager sessionManager;
+	@Autowired
+	public SessiondataDao sessiondataDao;
+	@Autowired
+	public ConfigurationDao configurationDao;
+	@Autowired
+	public FieldManager fieldManager;
+
+	private enum ConnectionType {
+		rtmp
+		, rtmps
+		, rtmpt
+	}
+	
+	private String getLabels(Long language_id, int ... ids) {
+		StringBuilder result = new StringBuilder();
+		boolean delim = false;
+		for (int id : ids) {
+			if (delim) {
+				result.append(';');
+			}
+			result.append(fieldManager.getFieldByIdAndLanguage((long)id, language_id).getValue());
+			delim = true;
+		}
+		return result.toString();
+	}
+	
+    @RequestMapping(value = "/screen.upload")
+	public void handleRequest(HttpServletRequest request,
+			HttpServletResponse response) {
+		try {
+			String sid = request.getParameter("sid");
+			Long users_id = sessiondataDao.checkSession(sid);
+			String publicSID = request.getParameter("publicSID");
+			if (publicSID == null) {
+				throw new Exception("publicSID is empty: " + publicSID);
+			}
+			if (users_id == 0) {
+				//checkSession will return 0 in case of invalid session
+				throw new Exception("Request from invalid user " + users_id);
+			}
+
+			String domain = request.getParameter("domain");
+			if (domain == null) {
+				throw new Exception("domain is empty: " + domain);
+			}
+
+			String languageAsString = request.getParameter("languageAsString");
+			if (languageAsString == null) {
+				throw new Exception("languageAsString is empty: " + languageAsString);
+			}
+			Long language_id = Long.parseLong(languageAsString);
+
+			String rtmphostlocal = request.getParameter("rtmphostlocal");
+			if (rtmphostlocal == null) {
+				throw new Exception("rtmphostlocal is empty: " + rtmphostlocal);
+			}
+			
+			String baseURL = request.getParameter("baseurl");
+			if (baseURL == null) {
+				throw new Exception("baseurl is empty: " + baseURL);
+			}
+			log.debug("language_id :: " + language_id);
+			String label_sharer = "Sharer";
+
+			try {
+				label_sharer = getLabels(language_id
+					,  730,  731,  732,  733,  734
+					,  735,  737,  738,  739,  740
+					,  741,  742,  844,  869,  870
+					,  871,  872,  878, 1089, 1090
+					, 1091, 1092, 1093, 1465, 1466
+					, 1467, 1468, 1469, 1470, 1471
+					, 1472, 1473, 1474, 1475, 1476
+					, 1477, 1589);
+			} catch (Exception e) {
+				log.error("Error resolving Language labels : ", e);
+			}
+			log.debug("Creating JNLP Template for TCP solution");
+
+			//libs
+			StringBuilder libs = new StringBuilder();
+			File screenShareDir = OmFileHelper.getScreenSharingDir();
+			for (File jar : screenShareDir.listFiles(new FileFilter() {
+				public boolean accept(File pathname) {
+					return pathname.getName().endsWith(".jar");
+				}
+			})) {
+				libs.append("\t\t<jar href=\"").append(jar.getName()).append("\"/>\n");
+			}
+			log.debug("RTMP Sharer labels :: " + label_sharer);
+
+			ConnectionType conType
+				= ConnectionType.valueOf(request.getParameter("connectionType"));
+
+			String startUpClass;
+			switch (conType) {
+			case rtmp:
+				startUpClass = "org.apache.openmeetings.screen.webstart.RTMPScreenShare";
+				break;
+			case rtmps:
+				startUpClass = "org.apache.openmeetings.screen.webstart.RTMPSScreenShare";
+				break;
+			case rtmpt:
+				startUpClass = "org.apache.openmeetings.screen.webstart.RTMPTScreenShare";
+				break;
+			default:
+				throw new Exception("Unknown connection type");
+			}
+
+			String orgIdAsString = request.getParameter("organization_id");
+			if (orgIdAsString == null) {
+				throw new Exception("orgIdAsString is empty could not start sharer");
+			}
+
+			String port = request.getParameter("port");
+			if (port == null) {
+				throw new Exception("port is empty: ");
+			}
+			Client rc = sessionManager.getClientByPublicSID(publicSID, false, null);
+			if (rc == null) {
+				throw new Exception("Port is empty");
+			}
+			Long roomId = rc.getRoom_id();
+			if (roomId == null) {
+				throw new Exception("Client has no room " + rc);
+			}
+			boolean allowRecording = rc.getAllowRecording() && (0 == sessionManager.getRecordingCount(roomId));
+			boolean allowPublishing = (0 == sessionManager.getPublishingCount(roomId));
+			
+			Context ctx = new VelocityContext();
+			ctx.put("APP_NAME", configurationDao.getAppName());
+			ctx.put("PUBLIC_SID", publicSID);
+			ctx.put("LABELSHARER", label_sharer);
+			addKeystore(ctx);
+			ctx.put("LIBRARIES", libs);
+			ctx.put("organization_id", orgIdAsString);
+			ctx.put("startUpClass", startUpClass);
+			ctx.put("codebase", baseURL + OmFileHelper.SCREENSHARING_DIR);
+			ctx.put("red5-host", rtmphostlocal);
+			ctx.put("red5-app", OpenmeetingsVariables.webAppRootKey + "/" + roomId);
+			ctx.put("default_quality_screensharing",
+					configurationDao
+						.getConfValue("default.quality.screensharing", String.class, "1"));
+			//invited guest does not have valid user_id (have user_id == -1)
+			ctx.put("user_id", users_id);
+			ctx.put("port", port);
+			ctx.put("allowRecording", allowRecording);
+			ctx.put("allowPublishing", allowPublishing);
+
+			String requestedFile = StringUtils.deleteWhitespace(domain + "_" + roomId) + ".jnlp";
+			response.setContentType("application/x-java-jnlp-file");
+			response.setCharacterEncoding("UTF-8");
+			response.setHeader("Content-Disposition",
+					"Inline; filename=\"" + requestedFile + "\"");
+
+			VelocityEngine ve = new VelocityEngine();
+			ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath"); 
+			ve.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
+			ve.setProperty(Log4JLogChute.RUNTIME_LOG_LOG4J_LOGGER, Log4JLogChute.class.getName()); 
+			
+			ve.mergeTemplate(
+				"screenshare.vm"
+				, "UTF-8"
+				, ctx
+				, response.getWriter());
+		} catch (Exception er) {
+			log.error("[ScreenController]", er);
+		}
+	}
+
+	private StringBuilder addArgument(StringBuilder sb, Object arg) {
+		return sb.append("\t\t<argument>").append(arg).append("</argument>\n");
+	}
+	
+	private void addKeystore(Context ctx) {
+		log.debug("RTMP Sharer Keystore :: start");
+		StringBuilder sb = new StringBuilder();
+		FileInputStream fis = null;
+		try {
+			File conf = new File(OmFileHelper.getRootDir(), "conf");
+
+			File keyStore = new File(conf, "keystore.screen");
+			if (keyStore.exists()) {
+				Properties red5Props = new Properties();
+				red5Props.load(new FileInputStream(new File(conf, "red5.properties")));
+				
+				byte keyBytes[] = new byte[(int)keyStore.length()];
+				fis = new FileInputStream(keyStore);
+				fis.read(keyBytes);
+				
+				sb = addArgument(addArgument(sb, Hex.encodeHexString(keyBytes)), red5Props.getProperty("rtmps.keystorepass"));
+				
+				/*
+				KeyStore ksIn = KeyStore.getInstance(KeyStore.getDefaultType());
+				ksIn.load(new FileInputStream(keyStore), red5Props.getProperty("rtmps.keystorepass").toCharArray());
+				ByteArrayInputStream bin = new ByteArrayInputStream()
+				
+				byte fileContent[] = new byte[(int)file.length()];
+				sb = addArgument(sb, Object arg)
+				ctx.put("$KEYSTORE", users_id);
+				/*
+				KeyStore ksOut = KeyStore.getInstance(KeyStore.getDefaultType());
+				for (Certificate cert : ksIn.getCertificateChain("red5")) {
+					PublicKey pub = cert.getPublicKey();
+					TrustedCertificateEntry tce = new TrustedCertificateEntry(cert);
+					tce.
+				}
+				*/
+			}
+		} catch (Exception e) {
+			//no op
+		} finally {
+			if (fis != null) {
+				try {
+					fis.close();
+				} catch (IOException e) {
+					// no op
+				}
+			}
+		}
+		ctx.put("KEYSTORE", sb);
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/servlet/outputhandler/UploadController.java b/src/main/java/org/apache/openmeetings/servlet/outputhandler/UploadController.java
new file mode 100644
index 0000000..525d937
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/servlet/outputhandler/UploadController.java
@@ -0,0 +1,370 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.servlet.outputhandler;
+
+import static org.apache.openmeetings.util.OmFileHelper.bigImagePrefix;
+import static org.apache.openmeetings.util.OmFileHelper.chatImagePrefix;
+import static org.apache.openmeetings.util.OmFileHelper.profileImagePrefix;
+import static org.apache.openmeetings.util.OmFileHelper.thumbImagePrefix;
+
+import java.io.File;
+import java.io.InputStream;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.transaction.util.FileHelper;
+import org.apache.openmeetings.converter.GenerateImage;
+import org.apache.openmeetings.converter.GenerateThumbs;
+import org.apache.openmeetings.data.file.FileProcessor;
+import org.apache.openmeetings.db.dao.file.FileExplorerItemDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.file.FileExplorerItem;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.documents.GeneratePDF;
+import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
+import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.openmeetings.util.StoredFile;
+import org.apache.openmeetings.util.process.ConverterProcessResultList;
+import org.apache.openmeetings.util.process.UploadCompleteMessage;
+import org.apache.openmeetings.util.stringhandlers.StringComparer;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.multipart.MultipartFile;
+
+@Controller
+public class UploadController extends AbstractUploadController {
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			UploadController.class, OpenmeetingsVariables.webAppRootKey);
+	
+	@Autowired
+	private UserDao usersDao;
+	@Autowired
+	private ScopeApplicationAdapter scopeApplicationAdapter;
+	@Autowired
+	private GeneratePDF generatePDF;
+	@Autowired
+	private GenerateThumbs generateThumbs;
+	@Autowired
+	private GenerateImage generateImage;
+	@Autowired
+	private FileProcessor fileProcessor;
+	@Autowired
+	private FileExplorerItemDao fileExplorerItemDao;
+
+	private String filesString[] = null;
+	
+    @RequestMapping(value = "/file.upload", method = RequestMethod.POST)
+    public void handleFileUpload(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws ServletException {
+    	UploadInfo info = validate(request, false);
+    	try {
+			String room_idAsString = request.getParameter("room_id");
+			if (room_idAsString == null) {
+				throw new ServletException("Missing Room ID");
+			}
+	
+			Long room_id_to_Store = Long.parseLong(room_idAsString);
+	
+			String isOwnerAsString = request.getParameter("isOwner");
+			if (isOwnerAsString == null) {
+				throw new ServletException("Missing isOwnerAsString");
+			}
+			boolean isOwner = false;
+			if (isOwnerAsString.equals("1")) {
+				isOwner = true;
+			}
+	
+			String parentFolderIdAsString = request
+					.getParameter("parentFolderId");
+			if (parentFolderIdAsString == null) {
+				throw new ServletException("Missing parentFolderId ID");
+			}
+			Long parentFolderId = Long.parseLong(parentFolderIdAsString);
+	
+			MultipartFile multipartFile = info.file;
+			InputStream is = multipartFile.getInputStream();
+			log.debug("fileSystemName: " + info.filename);
+	
+			ConverterProcessResultList returnError = fileProcessor
+					.processFile(info.userId, room_id_to_Store, isOwner, is,
+							parentFolderId, info.filename, 0L, ""); // externalFilesId, externalType
+	
+			UploadCompleteMessage uploadCompleteMessage = new UploadCompleteMessage();
+	    	uploadCompleteMessage.setUserId(info.userId);
+	
+			// Flash cannot read the response of an upload
+			// httpServletResponse.getWriter().print(returnError);
+	    	uploadCompleteMessage.setMessage("library");
+	    	uploadCompleteMessage.setAction("newFile");
+	    	
+	    	setFileExplorerItem(uploadCompleteMessage,
+					fileExplorerItemDao.getFileExplorerItemsById(
+							returnError.getFileExplorerItemId()));
+			
+			uploadCompleteMessage.setHasError(returnError.hasError());
+			//we only send the complete log to the client if there is really something 
+			//to show because of an error
+			if (returnError.hasError()) {
+				uploadCompleteMessage.setError(returnError.getLogMessage());
+			}
+			uploadCompleteMessage.setFileName(returnError.getCompleteName());
+			
+			sendMessage(info, uploadCompleteMessage);
+		} catch (ServletException e) {
+			throw e;
+		} catch (Exception e) {
+			log.error("Exception during upload: ", e);
+			throw new ServletException(e);
+    	}
+    }
+    
+	public void setFileExplorerItem(UploadCompleteMessage msg, FileExplorerItem fileExplorerItem) {
+		if (fileExplorerItem.getIsImage() != null) {
+			msg.setIsImage(fileExplorerItem.getIsImage());
+		}
+		if (fileExplorerItem.getIsVideo() != null) {
+			msg.setIsVideo(fileExplorerItem.getIsVideo());
+		}
+		if (fileExplorerItem.getIsPresentation() != null) {
+			msg.setIsPresentation(fileExplorerItem.getIsPresentation());
+		}
+		msg.setFileSystemName(fileExplorerItem.getFileName());
+		msg.setFileHash(fileExplorerItem.getFileHash());
+	}
+    
+    @RequestMapping(value = "/remotelog.upload", method = RequestMethod.POST)
+    public void handleRemoteLog(HttpServletRequest request, HttpServletResponse response) throws ServletException {
+    	String message = request.getParameter("message");
+    	String sid = request.getParameter("sid");
+    	if (sid == null || message == null) return;
+    	Long userId = sessiondataDao.checkSession(sid);
+    	if (userId != null && userId != 0) {
+    		log.debug("[CLIENT MESSAGE] " + message);
+    	}
+    }
+    
+    @RequestMapping(value = "/upload.upload", method = RequestMethod.POST)
+    public void handleFormUpload(HttpServletRequest request, HttpServletResponse response) throws ServletException {
+		try {
+	    	UploadInfo info = validate(request, false);
+	    	
+			String room_id = request.getParameter("room_id");
+			if (room_id == null) {
+				room_id = "default";
+			}
+			String roomName = StringUtils.deleteWhitespace(room_id);
+	
+			String moduleName = request.getParameter("moduleName");
+			if (moduleName == null) {
+				moduleName = "nomodule";
+			}
+			if (moduleName.equals("nomodule")) {
+				log.debug("module name missed");
+				return;
+			}
+			boolean userProfile = moduleName.equals("userprofile");
+	
+			MultipartFile multipartFile = info.file;
+			InputStream is = multipartFile.getInputStream();
+			String fileSystemName = info.filename;
+			fileSystemName = StringUtils.deleteWhitespace(fileSystemName);
+	
+			UploadCompleteMessage uploadCompleteMessage = new UploadCompleteMessage();
+	    	uploadCompleteMessage.setUserId(info.userId);
+			
+			// Flash cannot read the response of an upload
+			// httpServletResponse.getWriter().print(returnError);
+			uploadFile(request, userProfile, info.userId, roomName, is, fileSystemName, uploadCompleteMessage);
+			sendMessage(info, uploadCompleteMessage);
+		} catch (ServletException e) {
+			throw e;
+		} catch (Exception e) {
+			log.error("Exception during upload: ", e);
+			throw new ServletException(e);
+		}
+    }
+
+    
+    private void sendMessage(UploadInfo info, UploadCompleteMessage uploadCompleteMessage) {
+		scopeApplicationAdapter.sendUploadCompletMessageByPublicSID(
+				uploadCompleteMessage, info.publicSID);
+    }
+    
+	private void uploadFile(HttpServletRequest request, boolean userProfile, Long userId, String roomName,
+			InputStream is, String fileSystemName, UploadCompleteMessage uploadCompleteMessage)
+			throws Exception {
+		ConverterProcessResultList returnError = new ConverterProcessResultList();
+
+		// Check variable to see if this file is a presentation
+		int dotidx = fileSystemName.lastIndexOf('.');
+		String newFileName = StringComparer.getInstance().compareForRealPaths(
+				fileSystemName.substring(0, dotidx));
+		String newFileExtDot = fileSystemName.substring(dotidx,
+				fileSystemName.length()).toLowerCase();
+		String newFileExt = newFileExtDot.substring(1);
+
+		// trim long names cause cannot output that
+		final int MAX_FILE_NAME_LENGTH = 30;
+		if (newFileName.length() >= MAX_FILE_NAME_LENGTH) {
+			newFileName = newFileName.substring(0, MAX_FILE_NAME_LENGTH);
+		}
+		StoredFile storedFile = new StoredFile(newFileName, newFileExt);
+
+		// check if this is a a file that can be converted by
+		// openoffice-service
+		boolean canBeConverted = storedFile.isConvertable();
+		boolean isPdf = storedFile.isPdf();
+		boolean isImage = storedFile.isImage();
+		boolean isAsIs = storedFile.isAsIs();
+
+		File workingDir = null;
+		// add outputfolders for profiles
+		if (userProfile) {
+			// User Profile Update
+			this.deleteUserProfileFilesStoreTemp(userId);
+			newFileName = "profile"; //set unified file name to avoid any problems with national characters
+			workingDir = OmFileHelper.getUploadProfilesUserDir(userId);
+		}
+		// if it is a presenation it will be copied to another
+		// place
+		if (isAsIs) {
+			// check if this is a room file or UserProfile
+			if (!userProfile) {
+				workingDir = OmFileHelper.getUploadRoomDir(roomName);
+			}
+		} else if (canBeConverted || isPdf || isImage) {
+			workingDir = OmFileHelper.getUploadTempProfilesUserDir(userId);
+		} else {
+			return;
+		}
+
+		File completeName = OmFileHelper.getNewFile(workingDir, newFileName, newFileExtDot);
+
+		log.debug("write file to : " + completeName);
+
+		FileHelper.copy(is, completeName);
+		is.close();
+
+		log.debug("canBeConverted: " + canBeConverted);
+		if (canBeConverted) {
+			// convert to pdf, thumbs, swf and xml-description
+			returnError = generatePDF.convertPDF(newFileName, roomName, true, completeName);
+		} else if (isPdf) {
+			
+			boolean isEncrypted = true; 
+			
+			log.debug("isEncrypted :: " + isEncrypted);
+
+			if (isEncrypted) {
+				// Do convert pdf to other pdf first
+				File f_old = completeName;
+
+				completeName = OmFileHelper.appendSuffix(completeName, "_N_E");
+				newFileName += "_N_E";
+
+				generateThumbs.decodePDF(f_old.getCanonicalPath(), completeName.getCanonicalPath());
+
+				if (f_old.exists()) {
+					f_old.delete();
+				}
+
+			}
+
+			// convert to thumbs, swf and xml-description
+			returnError = generatePDF.convertPDF(newFileName, roomName, false, completeName);
+
+			// returnError.put("decodePDF", returnError2);
+
+		} else if (isImage && !isAsIs) {
+
+			log.debug("##### isImage! userProfilePic: " + userProfile);
+
+			if (userProfile) {
+				// convert it to JPG
+				returnError = generateImage.convertImageUserProfile(completeName, userId, true);
+			} else {
+				// convert it to JPG
+				log.debug("##### convert it to JPG: " + userProfile);
+				returnError = generateImage.convertImage(
+					newFileName, newFileExtDot, roomName, newFileName, false);
+			}
+		} else if (isAsIs) {
+			if (userProfile) {
+				// User Profile Update
+				this.deleteUserProfileFiles(userId);
+				// is UserProfile Picture
+				returnError.addItem("processThumb1", generateThumbs
+						.generateThumb(chatImagePrefix, completeName, 40));
+				returnError.addItem("processThumb2", generateThumbs
+						.generateThumb(profileImagePrefix, completeName, 126));
+				returnError.addItem("processThumb3", generateThumbs
+						.generateThumb(bigImagePrefix, completeName, 240));
+
+				String pictureuri = completeName.getName();
+				User us = usersDao.get(userId);
+				us.setUpdatetime(new java.util.Date());
+				us.setPictureuri(pictureuri);
+				usersDao.update(us, userId);
+
+				//FIXME: After updating the picture url all other users should refresh
+			} else {
+				returnError.addItem("processThumb", generateThumbs
+						.generateThumb(thumbImagePrefix, completeName, 50));
+			}
+		}
+
+		uploadCompleteMessage.setMessage("library");
+		uploadCompleteMessage.setAction("newFile");
+		
+		uploadCompleteMessage.setHasError(returnError.hasError());
+		
+		//we only send the complete log to the client if there is really something 
+		//to show because of an error
+		if (returnError.hasError()) {
+			uploadCompleteMessage.setError(returnError.getLogMessage());
+		}
+		uploadCompleteMessage.setFileName(completeName.getName());
+		
+	}
+
+	private void deleteUserProfileFilesStoreTemp(Long users_id) throws Exception {
+		File f = OmFileHelper.getUploadProfilesUserDir(users_id);
+		if (f.exists() && f.isDirectory()) {
+			this.filesString = f.list();
+		}
+	}
+
+	private void deleteUserProfileFiles(Long users_id) throws Exception {
+		File working_imgdir = OmFileHelper.getUploadProfilesUserDir(users_id);
+
+		for (int i = 0; i < this.filesString.length; i++) {
+			String fileName = filesString[i];
+			File subf = new File(working_imgdir, fileName);
+			subf.delete();
+		}
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/session/ServerUtil.java b/src/main/java/org/apache/openmeetings/session/ServerUtil.java
new file mode 100644
index 0000000..05ad507
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/session/ServerUtil.java
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.session;
+
+import org.apache.openmeetings.db.dao.server.ServerDao;
+import org.apache.openmeetings.db.entity.server.Server;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * Configures the current reference to the {@link Server} for this Tomcat/Web-Container.
+ * 
+ * It is a Spring Bean and configured as Singleton. There is only one instance of this 
+ * bean in the entire Web-Application.  
+ * 
+ * @author sebawagner
+ *
+ */
+public class ServerUtil {
+	protected static final Logger log = Red5LoggerFactory.getLogger(
+			ServerUtil.class, OpenmeetingsVariables.webAppRootKey);
+
+	@Autowired
+	private ServerDao serverDao;
+	
+	/**
+	 * Injected via Spring configuration
+	 * 
+	 * for cluster configuration, if only using one server (no cluster), serverId is null,
+	 * this is the current serverId of this Tomcat instance (null means no cluster is configured)
+	 */
+	private String serverId = null;
+	
+	/**
+	 * a reference of the current server in that Tomcat instance
+	 */
+	private Server currentServer;
+	
+	public String getServerId() {
+		return serverId;
+	}
+	
+	public void setServerId(String serverId) {
+		this.serverId = serverId;
+	}
+	
+	/**
+	 * 
+	 * @return the current server
+	 */
+	public Server getCurrentServer() {
+		if (serverId == null) {
+			return null;
+		}
+		if (currentServer != null && serverId.equals(currentServer.getId().toString())) {
+			return currentServer;
+		}
+		currentServer = serverDao.get(Long.parseLong(serverId));
+		if (currentServer == null) {
+			log.warn("You have configured a serverId that does not exist in your list of servers, serverId: "+serverId);
+		}
+		return currentServer;
+	}
+}
diff --git a/src/main/java/org/apache/openmeetings/session/SessionManager.java b/src/main/java/org/apache/openmeetings/session/SessionManager.java
new file mode 100644
index 0000000..0a5636c
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/session/SessionManager.java
@@ -0,0 +1,441 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.session;

+

+import java.math.BigInteger;

+import java.util.ArrayList;

+import java.util.Arrays;

+import java.util.Collection;

+import java.util.Date;

+import java.util.LinkedList;

+import java.util.List;

+import java.util.Map.Entry;

+import java.util.Random;

+

+import org.apache.openmeetings.db.dao.server.ISessionManager;

+import org.apache.openmeetings.db.dto.basic.SearchResult;

+import org.apache.openmeetings.db.dto.server.ClientSessionInfo;

+import org.apache.openmeetings.db.entity.room.Client;

+import org.apache.openmeetings.db.entity.server.Server;

+import org.apache.openmeetings.session.store.IClientPersistenceStore;

+import org.apache.openmeetings.util.OpenmeetingsVariables;

+import org.apache.openmeetings.util.crypt.ManageCryptStyle;

+import org.red5.logging.Red5LoggerFactory;

+import org.slf4j.Logger;

+import org.springframework.beans.factory.annotation.Autowired;

+

+/**

+ * Handle {@link Client} objects.

+ * 

+ * Use a kind of decorator pattern to inject the {@link Server} into every call.

+ * 

+ * @author sebawagner

+ * 

+ */

+public class SessionManager implements ISessionManager {

+	

+	protected static final Logger log = Red5LoggerFactory.getLogger(

+			SessionManager.class, OpenmeetingsVariables.webAppRootKey);

+	

+	@Autowired

+	private ServerUtil serverUtil;

+	

+	/**

+	 * Injected via Spring, needs a getter/setter because it can be configured

+	 * Autowired will not suit here as there are multiple implementations of the

+	 * {@link IClientPersistenceStore}

+	 */

+	private IClientPersistenceStore cache;

+	

+	public IClientPersistenceStore getCache() {

+		return cache;

+	}

+

+	public void setCache(IClientPersistenceStore cache) {

+		this.cache = cache;

+	}

+

+	private ISessionManager sessionManager = new ISessionManager() {

+		

+		public synchronized Client addClientListItem(String streamId,

+				String scopeName, Integer remotePort, String remoteAddress,

+				String swfUrl, boolean isAVClient, Server server) {

+			try {

+

+				// Store the Connection into a bean and add it to the HashMap

+				Client rcm = new Client();

+				rcm.setConnectedSince(new Date());

+				rcm.setStreamid(streamId);

+				rcm.setScope(scopeName);

+				long random = System.currentTimeMillis() + new BigInteger(256, new Random()).longValue();

+				

+				rcm.setPublicSID(ManageCryptStyle.getInstanceOfCrypt()

+						.createPassPhrase(String.valueOf(random).toString()));

+

+				rcm.setServer(server);

+				rcm.setUserport(remotePort);

+				rcm.setUserip(remoteAddress);

+				rcm.setSwfurl(swfUrl);

+				rcm.setIsMod(new Boolean(false));

+				rcm.setCanDraw(new Boolean(false));

+				rcm.setIsAVClient(isAVClient);

+

+				if (cache.containsKey(null, streamId)) {

+					log.error("Tried to add an existing Client " + streamId);

+					return null;

+				}

+

+				cache.put(rcm.getStreamid(), rcm);

+

+				return rcm;

+			} catch (Exception err) {

+				log.error("[addClientListItem]", err);

+			}

+			return null;

+		}

+

+		public synchronized Collection<Client> getClients() {

+			return cache.getClients();

+		}

+		

+		public synchronized Collection<Client> getClientsWithServer() {

+			return cache.getClientsWithServer();

+		}

+

+		public synchronized Client getClientByStreamId(String streamId, Server server) {

+			try {

+				if (!cache.containsKey(server, streamId)) {

+					log.debug("Tried to get a non existing Client " + streamId + " server " + server);

+					return null;

+				}

+				return cache.get(server, streamId);

+			} catch (Exception err) {

+				log.error("[getClientByStreamId]", err);

+			}

+			return null;

+		}

+

+		public Client getClientByPublicSID(String publicSID, boolean isAVClient, Server server) {

+			try {

+				for (Client rcl : cache.getClientsByPublicSID(server, publicSID)) {

+					if (rcl.getIsAVClient() != isAVClient) {

+						continue;

+					}

+					return rcl;

+				}

+			} catch (Exception err) {

+				log.error("[getClientByPublicSID]", err);

+			}

+			return null;

+		}

+		

+		public ClientSessionInfo getClientByPublicSIDAnyServer(String publicSID, boolean isAVClient) {

+			try {

+				for (Entry<Long,List<Client>> entry : cache.getClientsByPublicSID(publicSID).entrySet()) {

+					for (Client rcl : entry.getValue()) {

+						if (rcl.getIsAVClient() != isAVClient) {

+							continue;

+						}

+						return new ClientSessionInfo(rcl, entry.getKey());

+					}

+				}

+			} catch (Exception err) {

+				log.error("[getClientByPublicSIDAnyServer]", err);

+			}

+			return null;

+		}

+

+		public synchronized Client getClientByUserId(Long userId) {

+			try {

+				for (Client rcl : cache.getClientsByUserId(null, userId)) {

+					

+					if (rcl.getIsScreenClient() != null && rcl.getIsScreenClient()) {

+						continue;

+					}

+					

+					if (rcl.getIsAVClient()) {

+						continue;

+					}

+					

+					return rcl;

+				}

+			} catch (Exception err) {

+				log.error("[getClientByUserId]", err);

+			}

+			return null;

+		}

+

+		public synchronized Boolean updateAVClientByStreamId(String streamId, Client rcm, Server server) {

+			try {

+				// get the corresponding user session object and update the settings

+				Client rclUsual = getClientByPublicSID(rcm.getPublicSID(), false, server);

+				if (rclUsual != null) {

+					rclUsual.setBroadCastID(rcm.getBroadCastID());

+					rclUsual.setAvsettings(rcm.getAvsettings());

+					rclUsual.setVHeight(rcm.getVHeight());

+					rclUsual.setVWidth(rcm.getVWidth());

+					rclUsual.setVX(rcm.getVX());

+					rclUsual.setVY(rcm.getVY());

+					Client rclSaved = cache.get(server, rclUsual.getStreamid());

+					if (rclSaved != null) {

+						cache.put(rclUsual.getStreamid(), rclUsual);

+					} else {

+						log.debug("Tried to update a non existing Client " + rclUsual.getStreamid());

+					}

+				}

+

+				updateClientByStreamId(streamId, rcm, false, server);

+			} catch (Exception err) {

+				log.error("[updateAVClientByStreamId]", err);

+			}

+			return null;

+		}

+

+		public synchronized Boolean updateClientByStreamId(String streamId,

+				Client rcm, boolean updateRoomCount, Server server) {

+			try {

+				

+				Client rclSaved = cache.get(server, streamId);

+				

+				if (rclSaved != null) {

+					cache.put(streamId, rcm);

+					return true;

+				} else {

+					log.debug("Tried to update a non existing Client " + streamId);

+					return false;

+				}

+			} catch (Exception err) {

+				log.error("[updateClientByStreamId]", err);

+			}

+			return null;

+		}

+

+		public synchronized Boolean removeClient(String streamId, Server server) {

+			try {

+				if (cache.containsKey(server,streamId)) {

+					cache.remove(server,streamId);

+					return true;

+				} else {

+					log.debug("Tried to remove a non existing Client " + streamId);

+					return false;

+				}

+			} catch (Exception err) {

+				log.error("[removeClient]", err);

+			}

+			return null;

+		}

+

+		public synchronized ArrayList<Client> getClientListByRoom(Long roomId) {

+			ArrayList<Client> roomClientList = new ArrayList<Client>();

+			try {

+

+				for (Client rcl : cache.getClientsByRoomId(roomId)) {

+

+					if (rcl.getIsScreenClient() == null || rcl.getIsScreenClient()) {

+						continue;

+					}

+					if (rcl.getIsAVClient()) {

+						continue;

+					}

+

+					// Only parse really those users out that are really a full session object

+					// and no pseudo session object like the audio/video or screen

+					// sharing connection

+					roomClientList.add(rcl);

+				}

+			} catch (Exception err) {

+				log.error("[getClientListByRoom]", err);

+			}

+			return roomClientList;

+		}

+		

+		public synchronized Collection<Client> getClientListByRoomAll(Long roomId) {

+			try {

+				return cache.getClientsByRoomId(roomId);

+			} catch (Exception err) {

+				log.error("[getClientListByRoomAll]", err);

+			}

+			return null;

+		}

+

+		public synchronized List<Client> getCurrentModeratorByRoom(Long room_id) {

+			List<Client> rclList = new LinkedList<Client>();

+			List<Client> currentClients = this.getClientListByRoom(room_id);

+			for (Client rcl : currentClients) {

+				if (rcl.getIsMod()) {

+					rclList.add(rcl);

+				}

+			}

+

+			return rclList;

+		}

+

+		// FIXME not sorted

+		public synchronized SearchResult<Client> getListByStartAndMax(

+				int start, int max, String orderby, boolean asc) {

+			SearchResult<Client> sResult = new SearchResult<Client>();

+			sResult.setObjectName(Client.class.getName());

+			sResult.setRecords(Long.valueOf(cache.size()).longValue());

+			sResult.setResult(cache.getClientsWithServer());

+			return sResult;

+		}

+

+		public long getRecordingCount(long roomId) {

+			List<Client> currentClients = this.getClientListByRoom(roomId);

+			int numberOfRecordingUsers = 0;

+			for (Client rcl : currentClients) {

+				if (rcl.isStartRecording()) {

+					numberOfRecordingUsers++;

+				}

+			}

+			return numberOfRecordingUsers;

+		}

+

+		public long getPublishingCount(long roomId) {

+			List<Client> currentClients = this.getClientListByRoom(roomId);

+			int numberOfPublishingUsers = 0;

+			for (Client rcl : currentClients) {

+				if (rcl.isStreamPublishStarted()) {

+					numberOfPublishingUsers++;

+				}

+			}

+			return numberOfPublishingUsers;

+		}

+		

+		public List<Long> getActiveRoomIdsByServer(Server server) {

+			return cache.getRoomsIdsByServer(server);

+		}

+		

+		

+		public String getSessionStatistics() {

+			return cache.getDebugInformation(Arrays.asList(IClientPersistenceStore.DEBUG_DETAILS.SIZE));

+		}

+

+		public void sessionStart() {

+			// TODO Auto-generated method stub

+			

+		}

+		

+	};

+	

+	public Client addClientListItem(String streamId, String scopeName,

+			Integer remotePort, String remoteAddress, String swfUrl,

+			boolean isAVClient, Server server) {

+		if (server == null) {

+			server = serverUtil.getCurrentServer();

+		}

+		return sessionManager.addClientListItem(streamId, scopeName,

+				remotePort, remoteAddress, swfUrl, isAVClient, server);

+	}

+

+	public Collection<Client> getClients() {

+		return sessionManager.getClients();

+	}

+	

+	public Collection<Client> getClientsWithServer() {

+		return sessionManager.getClientsWithServer();

+	}

+

+	public Client getClientByStreamId(String streamId, Server server) {

+		if (server == null) {

+			server = serverUtil.getCurrentServer();

+		}

+		return sessionManager.getClientByStreamId(streamId, server);

+	}

+

+	public Client getClientByPublicSID(String publicSID, boolean isAVClient,

+			Server server) {

+		if (server == null) {

+			server = serverUtil.getCurrentServer();

+		}

+		return sessionManager.getClientByPublicSID(publicSID, isAVClient,

+				server);

+	}

+

+	public ClientSessionInfo getClientByPublicSIDAnyServer(String publicSID,

+			boolean isAVClient) {

+		return sessionManager.getClientByPublicSIDAnyServer(publicSID,

+				isAVClient);

+	}

+

+	public Client getClientByUserId(Long userId) {

+		return sessionManager.getClientByUserId(userId);

+	}

+

+	public Boolean updateAVClientByStreamId(String streamId, Client rcm, Server server) {

+		if (server == null) {

+			server = serverUtil.getCurrentServer();

+		}

+		return sessionManager.updateAVClientByStreamId(streamId, rcm, server);

+	}

+

+	public Boolean updateClientByStreamId(String streamId, Client rcm,

+			boolean updateRoomCount, Server server) {

+		if (server == null) {

+			server = serverUtil.getCurrentServer();

+		}

+		return sessionManager.updateClientByStreamId(streamId, rcm,

+				updateRoomCount, server);

+	}

+

+	public Boolean removeClient(String streamId, Server server) {

+		if (server == null) {

+			server = serverUtil.getCurrentServer();

+		}

+		return sessionManager.removeClient(streamId, server);

+	}

+

+	public List<Client> getClientListByRoom(Long room_id) {

+		return sessionManager.getClientListByRoom(room_id);

+	}

+

+	public Collection<Client> getClientListByRoomAll(Long room_id) {

+		return sessionManager.getClientListByRoomAll(room_id);

+	}

+

+	public List<Client> getCurrentModeratorByRoom(Long room_id) {

+		return sessionManager.getCurrentModeratorByRoom(room_id);

+	}

+

+	public SearchResult<Client> getListByStartAndMax(int start, int max,

+			String orderby, boolean asc) {

+		return sessionManager.getListByStartAndMax(start, max, orderby, asc);

+	}

+

+	public long getRecordingCount(long roomId) {

+		return sessionManager.getRecordingCount(roomId);

+	}

+

+	public long getPublishingCount(long roomId) {

+		return sessionManager.getPublishingCount(roomId);

+	}

+

+	public List<Long> getActiveRoomIdsByServer(Server server) {

+		return sessionManager.getActiveRoomIdsByServer(server == null ? serverUtil.getCurrentServer() : server);

+	}

+

+	public String getSessionStatistics() {

+		return sessionManager.getSessionStatistics();

+	}

+

+	public void sessionStart() {

+		sessionManager.sessionStart();

+	}

+	

+}

diff --git a/src/main/java/org/apache/openmeetings/session/store/DatabaseStore.java b/src/main/java/org/apache/openmeetings/session/store/DatabaseStore.java
new file mode 100644
index 0000000..9529ebd
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/session/store/DatabaseStore.java
@@ -0,0 +1,133 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.session.store;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.openmeetings.db.dao.room.ClientDao;
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.db.entity.server.Server;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class DatabaseStore implements IClientPersistenceStore {
+	
+	@Autowired
+	private ClientDao clientDao;
+	
+	public void clearCache() {
+		
+		//List<Server> serverList = serverDao.getActiveServers();
+		
+		//clientDao.cleanUpClientsWithoutReference();
+	}
+	
+	public void put(String streamId, Client rcl) {
+		if (rcl.getId() > 0) {
+			clientDao.update(rcl);
+		} else {
+			clientDao.add(rcl);
+		}
+	}
+
+	public boolean containsKey(Server server, String streamId) {
+		return clientDao.countClientsByServerAndStreamId(server, streamId) > 0;
+	}
+
+	public Client get(Server server, String streamId) {
+		return clientDao.getClientByServerAndStreamId(server, streamId);
+	}
+
+	public List<Client> getClientsByPublicSID(Server server, String publicSID) {
+		return clientDao.getClientsByPublicSIDAndServer(server, publicSID);
+	}
+
+	public Map<Long, List<Client>> getClientsByPublicSID(String publicSID) {
+		Map<Long, List<Client>> returnMap = new HashMap<Long, List<Client>>();
+		List<Client> clientList = clientDao.getClientsByPublicSID(publicSID);
+		for (Client cl : clientList) {
+			
+			if (cl.getServer() == null) {
+				List<Client> clList = returnMap.get(null);
+				if (clList == null) {
+					clList = new ArrayList<Client>();
+				}
+				clList.add(cl);
+				returnMap.put(null, clList);
+			} else {
+				List<Client> clList = returnMap.get(cl.getServer().getId());
+				if (clList == null) {
+					clList = new ArrayList<Client>();
+				}
+				clList.add(cl);
+				returnMap.put(cl.getServer().getId(), clList);
+			}
+		}
+		return returnMap;
+	}
+	
+	public Collection<Client> getClients() {
+		return clientDao.getClients();
+	}
+	
+	public Collection<Client> getClientsWithServer() {
+		return clientDao.getClientsWithServer();
+	}
+
+	public Collection<Client> getClientsByServer(Server server) {
+		return clientDao.getClientsByServer(server);
+	}
+
+	public List<Client> getClientsByUserId(Server server, Long userId) {
+		return clientDao.getClientsByUserId(server, userId);
+	}
+
+	public List<Client> getClientsByRoomId(Long roomId) {
+		return clientDao.getClientsByRoomId(roomId);
+	}
+
+	public void remove(Server server, String streamId) {
+		clientDao.removeClientByServerAndStreamId(server, streamId);
+	}
+
+	public int size() {
+		return clientDao.countClients();
+	}
+
+	public int sizeByServer(Server server) {
+		return clientDao.countClientsByServer(server);
+	}
+
+	public Collection<Client> values() {
+		return clientDao.getClients();
+	}
+
+	public String getDebugInformation(List<DEBUG_DETAILS> detailLevel) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public List<Long> getRoomsIdsByServer(Server server) {
+		return clientDao.getRoomsIdsByServer(server);
+	}
+
+}
diff --git a/src/main/java/org/apache/openmeetings/session/store/HashMapStore.java b/src/main/java/org/apache/openmeetings/session/store/HashMapStore.java
new file mode 100644
index 0000000..4adf20d
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/session/store/HashMapStore.java
@@ -0,0 +1,188 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.session.store;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.db.entity.server.Server;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+/**
+ * Stores the session in the memory.
+ * Is NOT designed to be clustered across multiple servers.
+ * 
+ * <ul>
+ * <li>client by streamid</li>
+ * <li>client by publicSID</li>
+ * <li>client by userId</li>
+ * <li>clients by roomId</li>
+ * <li>roomIds by server</li>
+ * </ul>
+ * 
+ * @author sebawagner
+ * 
+ */
+public class HashMapStore implements IClientPersistenceStore {
+	protected static final Logger log = Red5LoggerFactory.getLogger(
+			HashMapStore.class, OpenmeetingsVariables.webAppRootKey);
+	
+	
+	private LinkedHashMap<String, Client> clientsByStreamId = new LinkedHashMap<String, Client>();
+
+	public void clearCache() {
+		clientsByStreamId = new LinkedHashMap<String, Client>();
+	}
+	
+	public void put(String streamId, Client rcl) {
+		clientsByStreamId.put(rcl.getStreamid(), rcl);
+	}
+
+	public boolean containsKey(Server server, String streamId) {
+		return clientsByStreamId.containsKey(streamId);
+	}
+
+	public Client get(Server server, String streamId) {
+		return clientsByStreamId.get(streamId);
+	}
+	
+	public List<Client> getClientsByPublicSID(Server server, String publicSID) {
+		List<Client> clientList = new ArrayList<Client>();
+		for (Client cl : clientsByStreamId.values()) {
+			if (cl.getPublicSID().equals(publicSID)) {
+				clientList.add(cl);
+			}
+		}
+		return clientList;
+	}
+	
+	public Map<Long,List<Client>> getClientsByPublicSID(String publicSID) {
+		Map<Long,List<Client>> clientMapList = new HashMap<Long,List<Client>>();
+		List<Client> clientList = new ArrayList<Client>();
+		for (Client cl : clientsByStreamId.values()) {
+			if (cl.getPublicSID().equals(publicSID)) {
+				clientList.add(cl);
+			}
+		}
+		clientMapList.put(null, clientList);
+		return clientMapList;
+	}
+	
+	public Collection<Client> getClients() {
+		return clientsByStreamId.values();
+	}
+	
+	public Collection<Client> getClientsWithServer() {
+		//there is no server object to be loaded, memory cache means
+		//there is no cluster enabled
+		return getClients();
+	}
+	
+	public Collection<Client> getClientsByServer(Server server) {
+		return clientsByStreamId.values();
+	}
+	
+	public List<Client> getClientsByUserId(Server server, Long userId) {
+		List<Client> clientList = new ArrayList<Client>();
+		for (Client cl : clientsByStreamId.values()) {
+			if (cl.getUser_id().equals(userId)) {
+				clientList.add(cl);
+			}
+		}
+		return clientList;
+	}
+	
+	public  List<Client> getClientsByRoomId(Long roomId) {
+		List<Client> clientList = new ArrayList<Client>();
+		for (Client cl : clientsByStreamId.values()) {
+			if (cl.getRoom_id() != null && cl.getRoom_id().equals(roomId)) {
+				clientList.add(cl);
+			}
+		}
+		return clientList;
+	}
+
+	public void remove(Server server, String streamId) {
+		clientsByStreamId.remove(streamId);
+	}
+
+	public int size() {
+		return clientsByStreamId.size();
+	}
+	
+	public int sizeByServer(Server server) {
+		return clientsByStreamId.size();
+	}
+
+	public Collection<Client> values() {
+		return clientsByStreamId.values();
+	}
+	
+	public int getTotalNumberOfSessions() {
+		return clientsByStreamId.size();
+	}
+	
+	
+	/**
+	 * Print some session statistics to the debug out
+	 * 
+	 * @param detailLevel
+	 */
+	public void printDebugInformation(List<DEBUG_DETAILS> detailLevel) {
+		log.debug("Session Statistics Start ################## ");
+		log.debug(getDebugInformation(detailLevel));
+		log.debug("Session Statistics End ################## ");
+	}
+
+	public String getDebugInformation(List<DEBUG_DETAILS> detailLevel) {
+
+		StringBuilder statistics = new StringBuilder();
+
+		if (detailLevel.contains(DEBUG_DETAILS.SIZE)) {
+			addNewLine(statistics, "Number of sessions Total "
+					+ getTotalNumberOfSessions());
+		}
+
+		return statistics.toString();
+	}
+
+	private void addNewLine(StringBuilder strBuilder, String message) {
+		strBuilder.append(message + "\n\r");
+	}
+
+	public List<Long> getRoomsIdsByServer(Server server) {
+		HashSet<Long> rooms = new HashSet<Long>();
+		for (Client cl : clientsByStreamId.values()) {
+			Long roomId = cl.getRoom_id();
+			if (roomId != null && roomId > 0 && !rooms.contains(roomId)) {
+				rooms.add(roomId);
+			}
+		}
+		return new ArrayList<Long>(rooms);
+	}
+
+}
diff --git a/src/main/java/org/apache/openmeetings/session/store/IClientPersistenceStore.java b/src/main/java/org/apache/openmeetings/session/store/IClientPersistenceStore.java
new file mode 100644
index 0000000..9aa7e36
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/session/store/IClientPersistenceStore.java
@@ -0,0 +1,142 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.session.store;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.db.entity.server.Server;
+
+public interface IClientPersistenceStore {
+
+	public enum DEBUG_DETAILS {
+		SIZE
+	}
+	
+	/**
+	 * called upon start of the session cache
+	 */
+	public abstract void clearCache();
+
+	/**
+	 * 
+	 * @param streamId
+	 * @param rcl
+	 */
+	public abstract void put(String streamId, Client rcl);
+	
+	/**
+	 * 
+	 * @param server
+	 * @param streamId
+	 * @return
+	 */
+	public boolean containsKey(Server server, String streamId);
+
+	/**
+	 * by server and publicSID
+	 * 
+	 * @param server
+	 * @param streamId
+	 * @return will return null if the client does not exist in the list
+	 */
+	public abstract Client get(Server server, String streamId);
+
+	/**
+	 * 
+	 * @param server
+	 * @param publicSID
+	 * @return will return an empty list if nothing available
+	 */
+	public abstract List<Client> getClientsByPublicSID(Server server,
+			String publicSID);
+
+	/**
+	 * Searches for the publicSID across all servers
+	 * 
+	 * @param publicSID
+	 * @return will return a map with the serverId as key and the RoomClients as list in the value
+	 */
+	public abstract Map<Long, List<Client>> getClientsByPublicSID(
+			String publicSID);
+
+	public abstract Collection<Client> getClients();
+	
+	/**
+	 * get all clients by a specific {@link Server}
+	 * 
+	 * @param server
+	 * @return will return an empty map if nothing available
+	 */
+	public abstract Collection<Client> getClientsByServer(Server server);
+
+	/**
+	 * 
+	 * @param server
+	 * @param userId
+	 * @return will return an empty list if nothing available
+	 */
+	public abstract Collection<Client> getClientsByUserId(Server server, Long userId);
+
+	/**
+	 * 
+	 * We ignore the server here, cause ONE room can only be on ONE server and often we don't know where.
+	 * 
+	 * @param roomId
+	 * @return will return an empty map if nothing available
+	 */
+	public abstract List<Client> getClientsByRoomId(Long roomId);
+
+	public abstract void remove(Server server, String streamId);
+
+	public abstract int size();
+
+	public abstract int sizeByServer(Server server);
+
+	public abstract Collection<Client> values();
+	
+	/**
+	 * Get some session statistics
+	 * 
+	 * @param detailLevel
+	 * @return
+	 */
+	public abstract String getDebugInformation(List<DEBUG_DETAILS> detailLevel);
+
+	/**
+	 * returns a list of roomIds (unique) that are currently active on the given server
+	 * In case the session is stored in the memory (no-cluster setup) it will always 
+	 * return simply all active roomIds
+	 * 
+	 * @param server
+	 * @return
+	 */
+	public abstract List<Long> getRoomsIdsByServer(Server server);
+
+	/**
+	 * if database cache + cluster is enabled, the server object will be loaded 
+	 * into the client
+	 * 
+	 * @return
+	 */
+	public abstract Collection<Client> getClientsWithServer();
+
+}
\ No newline at end of file
diff --git a/src/main/java/org/apache/openmeetings/util/LinkHelper.java b/src/main/java/org/apache/openmeetings/util/LinkHelper.java
new file mode 100644
index 0000000..01613a2
--- /dev/null
+++ b/src/main/java/org/apache/openmeetings/util/LinkHelper.java
@@ -0,0 +1,46 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.util;

+

+import static org.apache.openmeetings.web.user.rooms.RoomEnterBehavior.getRoomUrlFragment;

+

+import org.apache.openmeetings.db.entity.room.Invitation;

+import org.apache.openmeetings.db.entity.user.User.Type;

+

+public class LinkHelper {

+	

+	public static String getInvitationLink(String baseUrl, Invitation i) {

+		String link = baseUrl;

+		if (link == null) {

+			return null;

+		}

+		if (i.getRoom() != null) {

+			if (i.getInvitee().getType() == Type.contact) {

+				link += "?invitationHash=" + i.getHash();

+		

+				if (i.getInvitee().getLanguage_id() > 0) {

+					link += "&language=" + i.getInvitee().getLanguage_id().toString();

+				}

+			} else {

+				link = getRoomUrlFragment(i.getRoom().getRooms_id()).getLink();

+			}

+		}

+		return link;

+	}

+}

diff --git a/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml b/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml
new file mode 100644
index 0000000..b75100b
--- /dev/null
+++ b/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!-- persistence.xml schema -->
+<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
+	version="2.0">
+	<persistence-unit name="openmeetings" transaction-type="RESOURCE_LOCAL">
+		<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+		<class>org.apache.openmeetings.db.entity.basic.Configuration</class>
+		<class>org.apache.openmeetings.db.entity.basic.ErrorType</class>
+		<class>org.apache.openmeetings.db.entity.basic.ErrorValue</class>
+		<class>org.apache.openmeetings.db.entity.server.LdapConfig</class>
+		<class>org.apache.openmeetings.db.entity.basic.MailMessage</class>
+		<class>org.apache.openmeetings.db.entity.basic.Naviglobal</class>
+		<class>org.apache.openmeetings.db.entity.basic.Navimain</class>
+		<class>org.apache.openmeetings.db.entity.server.Sessiondata</class>
+		<class>org.apache.openmeetings.db.entity.server.SOAPLogin</class>
+		<class>org.apache.openmeetings.db.entity.server.Server</class>
+		<class>org.apache.openmeetings.db.entity.calendar.Appointment</class>
+		<class>org.apache.openmeetings.db.entity.calendar.AppointmentCategory</class>
+		<class>org.apache.openmeetings.db.entity.calendar.AppointmentReminderTyps</class>
+		<class>org.apache.openmeetings.db.entity.calendar.MeetingMember</class>
+		<class>org.apache.openmeetings.db.entity.basic.ChatMessage</class>
+		<class>org.apache.openmeetings.db.entity.user.Organisation</class>
+		<class>org.apache.openmeetings.db.entity.user.Organisation_Users</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecording</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecordingLog</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecordingMetaData</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecordingMetaDelta</class>
+		<class>org.apache.openmeetings.db.entity.room.Invitation</class>
+		<class>org.apache.openmeetings.db.entity.label.FieldLanguage</class>
+		<class>org.apache.openmeetings.db.entity.label.Fieldlanguagesvalues</class>
+		<class>org.apache.openmeetings.db.entity.label.Fieldvalues</class>
+		<class>org.apache.openmeetings.db.entity.log.ConferenceLog</class>
+		<class>org.apache.openmeetings.db.entity.log.ConferenceLogType</class>
+		<class>org.apache.openmeetings.db.entity.room.PollType</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomPoll</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomPollAnswers</class>
+		<class>org.apache.openmeetings.db.entity.room.Client</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomModerator</class>
+		<class>org.apache.openmeetings.db.entity.room.Room</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomType</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomOrganisation</class>
+		<class>org.apache.openmeetings.db.entity.room.Whiteboard</class>
+		<class>org.apache.openmeetings.db.entity.room.WhiteboardItem</class>
+		<class>org.apache.openmeetings.db.entity.user.Address</class>
+		<class>org.apache.openmeetings.db.entity.user.State</class>
+		<class>org.apache.openmeetings.db.entity.user.PrivateMessage</class>
+		<class>org.apache.openmeetings.db.entity.user.PrivateMessageFolder</class>
+		<class>org.apache.openmeetings.db.entity.user.Salutation</class>
+		<class>org.apache.openmeetings.db.entity.user.UserContact</class>
+		<class>org.apache.openmeetings.db.entity.user.Userdata</class>
+		<class>org.apache.openmeetings.db.entity.user.Userlevel</class>
+		<class>org.apache.openmeetings.db.entity.user.User</class>
+		<class>org.apache.openmeetings.db.entity.file.FileExplorerItem</class>
+		<class>org.apache.openmeetings.db.entity.user.AsteriskSipUser</class>
+		<class>org.apache.openmeetings.db.entity.server.OAuthServer</class>
+		<exclude-unlisted-classes>false</exclude-unlisted-classes>
+		<properties>
+			<property name="openjpa.RuntimeUnenhancedClasses" value="unsupported" />
+			<property name="openjpa.ConnectionDriverName" value="org.apache.commons.dbcp.BasicDataSource" />
+			<property name="openjpa.ConnectionProperties"
+				value="DriverClassName=com.ibm.db2.jcc.DB2Driver
+					, Url=jdbc:db2://localhost:50000/openmeet
+					, MaxActive=100
+					, MaxWait=10000
+					, TestOnBorrow=true
+					, poolPreparedStatements=true
+					, Username=db2admin
+					, Password=admin" />
+			<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" />
+			<property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO" />
+			<property name="openjpa.DataCache" value="true" />
+			<property name="openjpa.QueryCache" value="true" />
+			<property name="openjpa.jdbc.DBDictionary" value="batchLimit=100" />
+			<property name="openjpa.jdbc.QuerySQLCache" value="false" />
+		</properties>
+	</persistence-unit>
+</persistence>
diff --git a/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml b/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
new file mode 100644
index 0000000..053588d
--- /dev/null
+++ b/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!-- persistence.xml schema -->
+<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
+	version="2.0">
+	<persistence-unit name="openmeetings" transaction-type="RESOURCE_LOCAL">
+		<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+		<class>org.apache.openmeetings.db.entity.basic.Configuration</class>
+		<class>org.apache.openmeetings.db.entity.basic.ErrorType</class>
+		<class>org.apache.openmeetings.db.entity.basic.ErrorValue</class>
+		<class>org.apache.openmeetings.db.entity.server.LdapConfig</class>
+		<class>org.apache.openmeetings.db.entity.basic.MailMessage</class>
+		<class>org.apache.openmeetings.db.entity.basic.Naviglobal</class>
+		<class>org.apache.openmeetings.db.entity.basic.Navimain</class>
+		<class>org.apache.openmeetings.db.entity.server.Sessiondata</class>
+		<class>org.apache.openmeetings.db.entity.server.SOAPLogin</class>
+		<class>org.apache.openmeetings.db.entity.server.Server</class>
+		<class>org.apache.openmeetings.db.entity.calendar.Appointment</class>
+		<class>org.apache.openmeetings.db.entity.calendar.AppointmentCategory</class>
+		<class>org.apache.openmeetings.db.entity.calendar.AppointmentReminderTyps</class>
+		<class>org.apache.openmeetings.db.entity.calendar.MeetingMember</class>
+		<class>org.apache.openmeetings.db.entity.basic.ChatMessage</class>
+		<class>org.apache.openmeetings.db.entity.user.Organisation</class>
+		<class>org.apache.openmeetings.db.entity.user.Organisation_Users</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecording</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecordingLog</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecordingMetaData</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecordingMetaDelta</class>
+		<class>org.apache.openmeetings.db.entity.room.Invitation</class>
+		<class>org.apache.openmeetings.db.entity.label.FieldLanguage</class>
+		<class>org.apache.openmeetings.db.entity.label.Fieldlanguagesvalues</class>
+		<class>org.apache.openmeetings.db.entity.label.Fieldvalues</class>
+		<class>org.apache.openmeetings.db.entity.log.ConferenceLog</class>
+		<class>org.apache.openmeetings.db.entity.log.ConferenceLogType</class>
+		<class>org.apache.openmeetings.db.entity.room.PollType</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomPoll</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomPollAnswers</class>
+		<class>org.apache.openmeetings.db.entity.room.Client</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomModerator</class>
+		<class>org.apache.openmeetings.db.entity.room.Room</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomType</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomOrganisation</class>
+		<class>org.apache.openmeetings.db.entity.room.Whiteboard</class>
+		<class>org.apache.openmeetings.db.entity.room.WhiteboardItem</class>
+		<class>org.apache.openmeetings.db.entity.user.Address</class>
+		<class>org.apache.openmeetings.db.entity.user.State</class>
+		<class>org.apache.openmeetings.db.entity.user.PrivateMessage</class>
+		<class>org.apache.openmeetings.db.entity.user.PrivateMessageFolder</class>
+		<class>org.apache.openmeetings.db.entity.user.Salutation</class>
+		<class>org.apache.openmeetings.db.entity.user.UserContact</class>
+		<class>org.apache.openmeetings.db.entity.user.Userdata</class>
+		<class>org.apache.openmeetings.db.entity.user.Userlevel</class>
+		<class>org.apache.openmeetings.db.entity.user.User</class>
+		<class>org.apache.openmeetings.db.entity.file.FileExplorerItem</class>
+		<class>org.apache.openmeetings.db.entity.user.AsteriskSipUser</class>
+		<class>org.apache.openmeetings.db.entity.server.OAuthServer</class>
+		<exclude-unlisted-classes>false</exclude-unlisted-classes>
+		<properties>
+			<property name="openjpa.RuntimeUnenhancedClasses" value="unsupported" />
+			<property name="openjpa.ConnectionDriverName" value="org.apache.commons.dbcp.BasicDataSource" />
+			<property name="openjpa.ConnectionProperties"
+				value="DriverClassName=org.apache.derby.jdbc.ClientDriver,
+                                  Url=jdbc:derby:openmeetings;create=true, 
+                                  create=true,
+                                  MaxActive=100, 
+                                  MaxWait=10000, 
+                                  TestOnBorrow=true, 
+                                  Username=user, 
+                                  Password=secret" />
+			<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" />
+			<property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO" />
+			<property name="openjpa.DataCache" value="true" />
+			<property name="openjpa.QueryCache" value="true" />
+			<property name="openjpa.jdbc.DBDictionary" value="batchLimit=100" />
+			<property name="openjpa.jdbc.QuerySQLCache" value="false" />
+		</properties>
+	</persistence-unit>
+</persistence>
diff --git a/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml b/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml
new file mode 100644
index 0000000..462c88c
--- /dev/null
+++ b/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!-- persistence.xml schema -->
+<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0">
+	<persistence-unit name="openmeetings" transaction-type="RESOURCE_LOCAL">
+		<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+		<class>org.apache.openmeetings.db.entity.basic.Configuration</class>
+		<class>org.apache.openmeetings.db.entity.basic.ErrorType</class>
+		<class>org.apache.openmeetings.db.entity.basic.ErrorValue</class>
+		<class>org.apache.openmeetings.db.entity.server.LdapConfig</class>
+		<class>org.apache.openmeetings.db.entity.basic.MailMessage</class>
+		<class>org.apache.openmeetings.db.entity.basic.Naviglobal</class>
+		<class>org.apache.openmeetings.db.entity.basic.Navimain</class>
+		<class>org.apache.openmeetings.db.entity.server.Sessiondata</class>
+		<class>org.apache.openmeetings.db.entity.server.SOAPLogin</class>
+		<class>org.apache.openmeetings.db.entity.server.Server</class>
+		<class>org.apache.openmeetings.db.entity.calendar.Appointment</class>
+		<class>org.apache.openmeetings.db.entity.calendar.AppointmentCategory</class>
+		<class>org.apache.openmeetings.db.entity.calendar.AppointmentReminderTyps</class>
+		<class>org.apache.openmeetings.db.entity.calendar.MeetingMember</class>
+		<class>org.apache.openmeetings.db.entity.basic.ChatMessage</class>
+		<class>org.apache.openmeetings.db.entity.user.Organisation</class>
+		<class>org.apache.openmeetings.db.entity.user.Organisation_Users</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecording</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecordingLog</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecordingMetaData</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecordingMetaDelta</class>
+		<class>org.apache.openmeetings.db.entity.room.Invitation</class>
+		<class>org.apache.openmeetings.db.entity.label.FieldLanguage</class>
+		<class>org.apache.openmeetings.db.entity.label.Fieldlanguagesvalues</class>
+		<class>org.apache.openmeetings.db.entity.label.Fieldvalues</class>
+		<class>org.apache.openmeetings.db.entity.log.ConferenceLog</class>
+		<class>org.apache.openmeetings.db.entity.log.ConferenceLogType</class>
+		<class>org.apache.openmeetings.db.entity.room.PollType</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomPoll</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomPollAnswers</class>
+		<class>org.apache.openmeetings.db.entity.room.Client</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomModerator</class>
+		<class>org.apache.openmeetings.db.entity.room.Room</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomType</class>
+		<class>org.apache.openmeetings.db.entity.room.Whiteboard</class>
+		<class>org.apache.openmeetings.db.entity.room.WhiteboardItem</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomOrganisation</class>
+		<class>org.apache.openmeetings.db.entity.user.Address</class>
+		<class>org.apache.openmeetings.db.entity.user.State</class>
+		<class>org.apache.openmeetings.db.entity.user.PrivateMessage</class>
+		<class>org.apache.openmeetings.db.entity.user.PrivateMessageFolder</class>
+		<class>org.apache.openmeetings.db.entity.user.Salutation</class>
+		<class>org.apache.openmeetings.db.entity.user.UserContact</class>
+		<class>org.apache.openmeetings.db.entity.user.Userdata</class>
+		<class>org.apache.openmeetings.db.entity.user.Userlevel</class>
+		<class>org.apache.openmeetings.db.entity.user.User</class>
+		<class>org.apache.openmeetings.db.entity.file.FileExplorerItem</class>
+		<class>org.apache.openmeetings.db.entity.user.AsteriskSipUser</class>
+		<class>org.apache.openmeetings.db.entity.server.OAuthServer</class>
+		<exclude-unlisted-classes>false</exclude-unlisted-classes>
+		<properties>
+			<property name="openjpa.RuntimeUnenhancedClasses" value="unsupported" />
+			<property name="openjpa.ConnectionDriverName" value="org.apache.commons.dbcp.BasicDataSource" />
+			<property name="openjpa.ConnectionProperties"
+				value="DriverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
+					, Url=jdbc:sqlserver://localhost:1433;databaseName=openmeetings
+					, Username=Username
+					, Password=Password" />
+			<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" />
+			<property name="openjpa.Log" value="DefaultLevel=WARN, Runtime=INFO" />
+			<property name="openjpa.DataCache" value="true" />
+			<!-- QueryCache disabled due to changes outside of JPA doesn't take effect with caching -->
+			<property name="openjpa.QueryCache" value="false" />
+			<property name="openjpa.jdbc.DBDictionary" value="batchLimit=100" />
+			<property name="openjpa.jdbc.QuerySQLCache" value="false" />
+		</properties>
+	</persistence-unit>
+</persistence>
diff --git a/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml b/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
new file mode 100644
index 0000000..8b70780
--- /dev/null
+++ b/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!-- persistence.xml schema -->
+<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
+	version="2.0">
+	<persistence-unit name="openmeetings" transaction-type="RESOURCE_LOCAL">
+		<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+		<class>org.apache.openmeetings.db.entity.basic.Configuration</class>
+		<class>org.apache.openmeetings.db.entity.basic.ErrorType</class>
+		<class>org.apache.openmeetings.db.entity.basic.ErrorValue</class>
+		<class>org.apache.openmeetings.db.entity.server.LdapConfig</class>
+		<class>org.apache.openmeetings.db.entity.basic.MailMessage</class>
+		<class>org.apache.openmeetings.db.entity.basic.Naviglobal</class>
+		<class>org.apache.openmeetings.db.entity.basic.Navimain</class>
+		<class>org.apache.openmeetings.db.entity.server.Sessiondata</class>
+		<class>org.apache.openmeetings.db.entity.server.SOAPLogin</class>
+		<class>org.apache.openmeetings.db.entity.server.Server</class>
+		<class>org.apache.openmeetings.db.entity.calendar.Appointment</class>
+		<class>org.apache.openmeetings.db.entity.calendar.AppointmentCategory</class>
+		<class>org.apache.openmeetings.db.entity.calendar.AppointmentReminderTyps</class>
+		<class>org.apache.openmeetings.db.entity.calendar.MeetingMember</class>
+		<class>org.apache.openmeetings.db.entity.basic.ChatMessage</class>
+		<class>org.apache.openmeetings.db.entity.user.Organisation</class>
+		<class>org.apache.openmeetings.db.entity.user.Organisation_Users</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecording</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecordingLog</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecordingMetaData</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecordingMetaDelta</class>
+		<class>org.apache.openmeetings.db.entity.room.Invitation</class>
+		<class>org.apache.openmeetings.db.entity.label.FieldLanguage</class>
+		<class>org.apache.openmeetings.db.entity.label.Fieldlanguagesvalues</class>
+		<class>org.apache.openmeetings.db.entity.label.Fieldvalues</class>
+		<class>org.apache.openmeetings.db.entity.log.ConferenceLog</class>
+		<class>org.apache.openmeetings.db.entity.log.ConferenceLogType</class>
+		<class>org.apache.openmeetings.db.entity.room.PollType</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomPoll</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomPollAnswers</class>
+		<class>org.apache.openmeetings.db.entity.room.Client</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomModerator</class>
+		<class>org.apache.openmeetings.db.entity.room.Room</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomType</class>
+		<class>org.apache.openmeetings.db.entity.room.Whiteboard</class>
+		<class>org.apache.openmeetings.db.entity.room.WhiteboardItem</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomOrganisation</class>
+		<class>org.apache.openmeetings.db.entity.user.Address</class>
+		<class>org.apache.openmeetings.db.entity.user.State</class>
+		<class>org.apache.openmeetings.db.entity.user.PrivateMessage</class>
+		<class>org.apache.openmeetings.db.entity.user.PrivateMessageFolder</class>
+		<class>org.apache.openmeetings.db.entity.user.Salutation</class>
+		<class>org.apache.openmeetings.db.entity.user.UserContact</class>
+		<class>org.apache.openmeetings.db.entity.user.Userdata</class>
+		<class>org.apache.openmeetings.db.entity.user.Userlevel</class>
+		<class>org.apache.openmeetings.db.entity.user.User</class>
+		<class>org.apache.openmeetings.db.entity.file.FileExplorerItem</class>
+		<class>org.apache.openmeetings.db.entity.user.AsteriskSipUser</class>
+		<class>org.apache.openmeetings.db.entity.server.OAuthServer</class>
+		<exclude-unlisted-classes>false</exclude-unlisted-classes>
+		<properties>
+			<property name="openjpa.RuntimeUnenhancedClasses" value="unsupported" />
+			<property name="openjpa.ConnectionDriverName" value="org.apache.commons.dbcp.BasicDataSource" />
+			<property name="openjpa.ConnectionProperties"
+				value="DriverClassName=com.mysql.jdbc.Driver
+					, Url=jdbc:mysql://localhost:3306/openmeetings?autoReconnect=true&amp;useUnicode=true&amp;createDatabaseIfNotExist=true&amp;characterEncoding=utf-8&amp;connectionCollation=utf8_general_ci&amp;cachePrepStmts=true&amp;cacheCallableStatements=true&amp;cacheServerConfiguration=true&amp;useLocalSessionState=true&amp;elideSetAutoCommits=true&amp;alwaysSendSetIsolation=false&amp;enableQueryTimeouts=false&amp;prepStmtCacheSize=3000&amp;prepStmtCacheSqlLimit=1000
+					, MaxActive=100
+					, MaxWait=10000
+					, TestOnBorrow=true
+					, poolPreparedStatements=true
+					, Username=root
+					, Password=" />
+			<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" />
+			<property name="openjpa.Log" value="DefaultLevel=WARN, Runtime=INFO" />
+			<property name="openjpa.DataCache" value="true" />
+			<!-- QueryCache disabled due to changes outside of JPA doesn't take effect with caching -->
+			<property name="openjpa.QueryCache" value="false" />
+			<property name="openjpa.jdbc.DBDictionary" value="batchLimit=100" />
+			<property name="openjpa.jdbc.QuerySQLCache" value="false" />
+		</properties>
+	</persistence-unit>
+</persistence>
diff --git a/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml b/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
new file mode 100644
index 0000000..790241b
--- /dev/null
+++ b/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!-- persistence.xml schema -->
+<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
+	version="2.0">
+	<persistence-unit name="openmeetings" transaction-type="RESOURCE_LOCAL">
+		<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+		<class>org.apache.openmeetings.db.entity.basic.Configuration</class>
+		<class>org.apache.openmeetings.db.entity.basic.ErrorType</class>
+		<class>org.apache.openmeetings.db.entity.basic.ErrorValue</class>
+		<class>org.apache.openmeetings.db.entity.server.LdapConfig</class>
+		<class>org.apache.openmeetings.db.entity.basic.MailMessage</class>
+		<class>org.apache.openmeetings.db.entity.basic.Naviglobal</class>
+		<class>org.apache.openmeetings.db.entity.basic.Navimain</class>
+		<class>org.apache.openmeetings.db.entity.server.Sessiondata</class>
+		<class>org.apache.openmeetings.db.entity.server.SOAPLogin</class>
+		<class>org.apache.openmeetings.db.entity.server.Server</class>
+		<class>org.apache.openmeetings.db.entity.calendar.Appointment</class>
+		<class>org.apache.openmeetings.db.entity.calendar.AppointmentCategory</class>
+		<class>org.apache.openmeetings.db.entity.calendar.AppointmentReminderTyps</class>
+		<class>org.apache.openmeetings.db.entity.calendar.MeetingMember</class>
+		<class>org.apache.openmeetings.db.entity.basic.ChatMessage</class>
+		<class>org.apache.openmeetings.db.entity.user.Organisation</class>
+		<class>org.apache.openmeetings.db.entity.user.Organisation_Users</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecording</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecordingLog</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecordingMetaData</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecordingMetaDelta</class>
+		<class>org.apache.openmeetings.db.entity.room.Invitation</class>
+		<class>org.apache.openmeetings.db.entity.label.FieldLanguage</class>
+		<class>org.apache.openmeetings.db.entity.label.Fieldlanguagesvalues</class>
+		<class>org.apache.openmeetings.db.entity.label.Fieldvalues</class>
+		<class>org.apache.openmeetings.db.entity.log.ConferenceLog</class>
+		<class>org.apache.openmeetings.db.entity.log.ConferenceLogType</class>
+		<class>org.apache.openmeetings.db.entity.room.PollType</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomPoll</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomPollAnswers</class>
+		<class>org.apache.openmeetings.db.entity.room.Client</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomModerator</class>
+		<class>org.apache.openmeetings.db.entity.room.Room</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomType</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomOrganisation</class>
+		<class>org.apache.openmeetings.db.entity.room.Whiteboard</class>
+		<class>org.apache.openmeetings.db.entity.room.WhiteboardItem</class>
+		<class>org.apache.openmeetings.db.entity.user.Address</class>
+		<class>org.apache.openmeetings.db.entity.user.State</class>
+		<class>org.apache.openmeetings.db.entity.user.PrivateMessage</class>
+		<class>org.apache.openmeetings.db.entity.user.PrivateMessageFolder</class>
+		<class>org.apache.openmeetings.db.entity.user.Salutation</class>
+		<class>org.apache.openmeetings.db.entity.user.UserContact</class>
+		<class>org.apache.openmeetings.db.entity.user.Userdata</class>
+		<class>org.apache.openmeetings.db.entity.user.Userlevel</class>
+		<class>org.apache.openmeetings.db.entity.user.User</class>
+		<class>org.apache.openmeetings.db.entity.file.FileExplorerItem</class>
+		<class>org.apache.openmeetings.db.entity.user.AsteriskSipUser</class>
+		<class>org.apache.openmeetings.db.entity.server.OAuthServer</class>
+		<exclude-unlisted-classes>false</exclude-unlisted-classes>
+		<properties>
+			<property name="openjpa.RuntimeUnenhancedClasses" value="unsupported" />
+			<property name="openjpa.ConnectionDriverName" value="org.apache.commons.dbcp.BasicDataSource" />
+			<property name="openjpa.ConnectionProperties"
+				value="DriverClassName=oracle.jdbc.driver.OracleDriver
+							, Url=jdbc:oracle:thin:@localhost:1521:openmeetings 
+							, create=true
+							, MaxActive=100 
+							, MaxWait=10000 
+							, TestOnBorrow=true 
+							, Username=SYSTEM 
+							, Password=admin" />
+			<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" />
+			<property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO" />
+			<property name="openjpa.DataCache" value="true" />
+			<property name="openjpa.QueryCache" value="true" />
+			<property name="openjpa.jdbc.DBDictionary" value="oracle(UseTriggersForAutoAssign=true, MaxAutoAssignNameLength=28, BatchLimit=100)" />
+			<property name="openjpa.jdbc.QuerySQLCache" value="false" />
+		</properties>
+	</persistence-unit>
+</persistence>
diff --git a/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml b/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml
new file mode 100644
index 0000000..c46b4fc
--- /dev/null
+++ b/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!-- persistence.xml schema -->
+<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
+	version="2.0">
+	<persistence-unit name="openmeetings" transaction-type="RESOURCE_LOCAL">
+		<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+		<class>org.apache.openmeetings.db.entity.basic.Configuration</class>
+		<class>org.apache.openmeetings.db.entity.basic.ErrorType</class>
+		<class>org.apache.openmeetings.db.entity.basic.ErrorValue</class>
+		<class>org.apache.openmeetings.db.entity.server.LdapConfig</class>
+		<class>org.apache.openmeetings.db.entity.basic.MailMessage</class>
+		<class>org.apache.openmeetings.db.entity.basic.Naviglobal</class>
+		<class>org.apache.openmeetings.db.entity.basic.Navimain</class>
+		<class>org.apache.openmeetings.db.entity.server.Sessiondata</class>
+		<class>org.apache.openmeetings.db.entity.server.SOAPLogin</class>
+		<class>org.apache.openmeetings.db.entity.server.Server</class>
+		<class>org.apache.openmeetings.db.entity.calendar.Appointment</class>
+		<class>org.apache.openmeetings.db.entity.calendar.AppointmentCategory</class>
+		<class>org.apache.openmeetings.db.entity.calendar.AppointmentReminderTyps</class>
+		<class>org.apache.openmeetings.db.entity.calendar.MeetingMember</class>
+		<class>org.apache.openmeetings.db.entity.basic.ChatMessage</class>
+		<class>org.apache.openmeetings.db.entity.user.Organisation</class>
+		<class>org.apache.openmeetings.db.entity.user.Organisation_Users</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecording</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecordingLog</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecordingMetaData</class>
+		<class>org.apache.openmeetings.db.entity.record.FlvRecordingMetaDelta</class>
+		<class>org.apache.openmeetings.db.entity.room.Invitation</class>
+		<class>org.apache.openmeetings.db.entity.label.FieldLanguage</class>
+		<class>org.apache.openmeetings.db.entity.label.Fieldlanguagesvalues</class>
+		<class>org.apache.openmeetings.db.entity.label.Fieldvalues</class>
+		<class>org.apache.openmeetings.db.entity.log.ConferenceLog</class>
+		<class>org.apache.openmeetings.db.entity.log.ConferenceLogType</class>
+		<class>org.apache.openmeetings.db.entity.room.PollType</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomPoll</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomPollAnswers</class>
+		<class>org.apache.openmeetings.db.entity.room.Client</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomModerator</class>
+		<class>org.apache.openmeetings.db.entity.room.Room</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomType</class>
+		<class>org.apache.openmeetings.db.entity.room.RoomOrganisation</class>
+		<class>org.apache.openmeetings.db.entity.room.Whiteboard</class>
+		<class>org.apache.openmeetings.db.entity.room.WhiteboardItem</class>
+		<class>org.apache.openmeetings.db.entity.user.Address</class>
+		<class>org.apache.openmeetings.db.entity.user.State</class>
+		<class>org.apache.openmeetings.db.entity.user.PrivateMessage</class>
+		<class>org.apache.openmeetings.db.entity.user.PrivateMessageFolder</class>
+		<class>org.apache.openmeetings.db.entity.user.Salutation</class>
+		<class>org.apache.openmeetings.db.entity.user.UserContact</class>
+		<class>org.apache.openmeetings.db.entity.user.Userdata</class>
+		<class>org.apache.openmeetings.db.entity.user.Userlevel</class>
+		<class>org.apache.openmeetings.db.entity.user.User</class>
+		<class>org.apache.openmeetings.db.entity.file.FileExplorerItem</class>
+		<class>org.apache.openmeetings.db.entity.user.AsteriskSipUser</class>
+		<class>org.apache.openmeetings.db.entity.server.OAuthServer</class>
+		<exclude-unlisted-classes>false</exclude-unlisted-classes>
+		<properties>
+			<property name="openjpa.RuntimeUnenhancedClasses" value="unsupported" />
+			<property name="openjpa.ConnectionDriverName" value="org.apache.commons.dbcp.BasicDataSource" />
+			<property name="openjpa.ConnectionProperties"
+				value="DriverClassName=org.postgresql.Driver
+					, Url=jdbc:postgresql://localhost:5432/openmeetings
+					, MaxActive=100
+					, MaxWait=10000
+					, TestOnBorrow=true
+					, poolPreparedStatements=true
+					, Username=postgres
+					, Password=1" />
+			<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" />
+			<property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO" />
+			<property name="openjpa.DataCache" value="true" />
+			<property name="openjpa.QueryCache" value="true" />
+			<property name="openjpa.jdbc.QuerySQLCache" value="false" />
+		</properties>
+	</persistence-unit>
+</persistence>
diff --git a/src/main/webapp/WEB-INF/classes/logback-config.xml b/src/main/webapp/WEB-INF/classes/logback-config.xml
new file mode 100644
index 0000000..b2dca86
--- /dev/null
+++ b/src/main/webapp/WEB-INF/classes/logback-config.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+
+<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+    xsi:noNamespaceSchemaLocation="logback.xsd">
+	<contextName>${current_openmeetings_context_name}</contextName>
+	
+	<jmxConfigurator contextName="${current_openmeetings_context_name}" />
+
+  <appender name="FLOG2" class="ch.qos.logback.core.FileAppender">
+		<File>log/${current_openmeetings_context_name}.log</File>
+		<Append>false</Append>
+		<Encoding>UTF-8</Encoding>
+		<BufferedIO>false</BufferedIO>
+		<ImmediateFlush>true</ImmediateFlush>
+		<layout class="ch.qos.logback.classic.PatternLayout">
+			<Pattern>
+				%5p %d{MM-dd HH:mm:ss.SSS } %c{15}:%L [%t] - %m%n
+			</Pattern>
+		</layout>
+  </appender>
+  <appender name="CONSOLE2" class="ch.qos.logback.core.ConsoleAppender">
+    <layout class="ch.qos.logback.classic.PatternLayout">
+      <pattern>%5p %d{MM-dd HH:mm:ss.SSS } %F %r %L %c [%t] - %m%n</pattern>
+    </layout>
+  </appender>
+  <logger name="org.apache.axis2">
+    <level value="ERROR"/>
+  </logger>
+  <logger name="com.mchange.v2">
+    <level value="ERROR"/>
+  </logger>
+  <logger name="org.apache.axiom">
+    <level value="ERROR"/>
+  </logger>
+  <logger name="org.apache.commons.httpclient">
+    <level value="ERROR"/>
+  </logger>
+  <logger name="de.hunsicker.jalopy.io">
+    <level value="ERROR"/>
+  </logger>
+  <logger name="org.apache.axis2.enterprise">
+    <level value="ERROR"/>
+  </logger>
+  <logger name="httpclient.wire.header">
+    <level value="ERROR"/>
+  </logger>
+  <root>
+    <level value="DEBUG"/>
+    <appender-ref ref="FLOG2"/>
+    <appender-ref ref="CONSOLE2"/>
+  </root>
+</configuration>
diff --git a/src/main/webapp/WEB-INF/classes/logback.xsd b/src/main/webapp/WEB-INF/classes/logback.xsd
new file mode 100644
index 0000000..c06e5a7
--- /dev/null
+++ b/src/main/webapp/WEB-INF/classes/logback.xsd
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

+  <xs:element name="configuration">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element ref="contextName"/>

+        <xs:element ref="jmxConfigurator"/>

+        <xs:element maxOccurs="unbounded" ref="appender"/>

+        <xs:element maxOccurs="unbounded" ref="logger"/>

+        <xs:element ref="root"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="contextName" type="xs:string"/>

+  <xs:element name="jmxConfigurator">

+    <xs:complexType>

+      <xs:attribute name="contextName" use="required"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="appender">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:sequence minOccurs="0">

+          <xs:element ref="File"/>

+          <xs:element ref="Append"/>

+          <xs:element ref="Encoding"/>

+          <xs:element ref="BufferedIO"/>

+          <xs:element ref="ImmediateFlush"/>

+        </xs:sequence>

+        <xs:element ref="layout"/>

+      </xs:sequence>

+      <xs:attribute name="class" use="required"/>

+      <xs:attribute name="name" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="File" type="xs:string"/>

+  <xs:element name="Append" type="xs:boolean"/>

+  <xs:element name="Encoding" type="xs:NCName"/>

+  <xs:element name="BufferedIO" type="xs:boolean"/>

+  <xs:element name="ImmediateFlush" type="xs:boolean"/>

+  <xs:element name="layout">

+    <xs:complexType>

+      <xs:choice>

+        <xs:element ref="Pattern"/>

+        <xs:element ref="pattern"/>

+      </xs:choice>

+      <xs:attribute name="class" use="required"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="Pattern" type="xs:string"/>

+  <xs:element name="pattern" type="xs:string"/>

+  <xs:element name="logger">

+    <xs:complexType>

+      <xs:complexContent>

+        <xs:extension base="level">

+          <xs:attribute name="name" use="required" type="xs:NCName"/>

+        </xs:extension>

+      </xs:complexContent>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="root">

+    <xs:complexType>

+      <xs:complexContent>

+        <xs:extension base="level">

+          <xs:sequence>

+            <xs:element maxOccurs="unbounded" ref="appender-ref"/>

+          </xs:sequence>

+        </xs:extension>

+      </xs:complexContent>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="appender-ref">

+    <xs:complexType>

+      <xs:attribute name="ref" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:complexType name="level">

+    <xs:sequence>

+      <xs:element ref="level"/>

+    </xs:sequence>

+  </xs:complexType>

+  <xs:element name="level">

+    <xs:complexType>

+      <xs:attribute name="value" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+</xs:schema>

diff --git a/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml b/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
new file mode 100644
index 0000000..70aa572
--- /dev/null
+++ b/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
@@ -0,0 +1,314 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc"
+	xmlns:context="http://www.springframework.org/schema/context"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
+		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
+		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
+	<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
+		<property name="persistenceUnitName" value="openmeetings" />
+	</bean>
+	<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
+		<property name="entityManagerFactory" ref="entityManagerFactory" />
+	</bean>
+
+	<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
+
+	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
+	<!-- Configures the @Controller programming model -->
+	<mvc:annotation-driven />
+
+	<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />
+	<context:annotation-config />
+	<context:component-scan base-package="org.apache.openmeetings" />
+
+	<!-- New Class for the Streaming Handlers -->
+	<bean id="web.handler" class="org.apache.openmeetings.remote.red5.ScopeApplicationAdapter" />
+
+	<!-- Session configuration start -->
+
+	<bean id="openmeetings.SessionManager" class="org.apache.openmeetings.session.SessionManager">
+		<property name="cache">
+			<ref bean="openmeetings.HashMapStore" />  <!-- Memory based session cache by default -->
+			<!-- The following section should be used in clustering mode
+			<ref bean="openmeetings.DatabaseStore" />
+			-->
+		</property>
+	</bean>
+	<bean id="openmeetings.EmoticonsManager" class="org.apache.openmeetings.data.whiteboard.EmoticonsManager" />
+
+	<!-- Singletons for memory based cache -->
+	<bean id="openmeetings.HashMapStore" scope="singleton" class="org.apache.openmeetings.session.store.HashMapStore" />
+	<bean id="whiteBoardObjectListManagerById" scope="singleton"
+		class="org.apache.openmeetings.data.whiteboard.WhiteBoardObjectListManagerById" />
+	<!-- WhiteBoardObjectSyncManager can stay in the memory, even on cluster! -->
+	<bean id="whiteBoardObjectSyncManager" scope="singleton" class="org.apache.openmeetings.data.whiteboard.WhiteBoardObjectSyncManager" />
+
+	<!-- Database cache -->
+	<bean id="openmeetings.DatabaseStore" class="org.apache.openmeetings.session.store.DatabaseStore" />
+
+	<bean id="openmeetings.ServerUtil" scope="singleton" class="org.apache.openmeetings.session.ServerUtil">
+		<!-- Need to be uncommented and set to the real ID if in cluster mode <property name="serverId" value="1" /> -->
+	</bean>
+
+	<!-- Cluster related config start -->
+
+	<!-- Start of Services -->
+	<bean id="xmlcrm.service" class="org.apache.openmeetings.remote.MainService" />
+	<bean id="printservice.service" class="org.apache.openmeetings.remote.PrintService" />
+	<bean id="pollservice.service" class="org.apache.openmeetings.remote.PollService" />
+	<bean id="languageservice.service" class="org.apache.openmeetings.remote.LanguageService" />
+	<bean id="invitationservice.service" class="org.apache.openmeetings.remote.InvitationService" />
+	<bean id="whiteboardservice.service" class="org.apache.openmeetings.remote.WhiteBoardService" />
+	<bean id="userservice.service" class="org.apache.openmeetings.remote.UserService" />
+	<bean id="fileservice.service" class="org.apache.openmeetings.remote.ConferenceLibrary" />
+	<bean id="openmeetings.FileProcessor" class="org.apache.openmeetings.data.file.FileProcessor" />
+	<bean id="openmeetings.FlvExplorerConverter" class="org.apache.openmeetings.converter.FlvExplorerConverter" />
+	<bean id="errorservice.service" class="org.apache.openmeetings.remote.ErrorService" />
+	<bean id="conferenceservice.service" class="org.apache.openmeetings.remote.ConferenceService" />
+	<bean id="chatservice.service" class="org.apache.openmeetings.remote.ChatService" />
+	<bean id="flvrecorderservice.service" class="org.apache.openmeetings.remote.FLVRecorderService" />
+	<bean id="openmeetings.FlvRecorderConverterTask" class="org.apache.openmeetings.data.flvrecord.converter.FlvRecorderConverterTask" />
+	<bean id="openmeetings.FlvInterviewConverterTask" class="org.apache.openmeetings.data.flvrecord.converter.FlvInterviewConverterTask" />
+	<bean id="openmeetings.FlvInterviewReConverterTask" class="org.apache.openmeetings.data.flvrecord.converter.FlvInterviewReConverterTask" />
+	<bean id="openmeetings.FlvInterviewConverter" class="org.apache.openmeetings.converter.FlvInterviewConverter" />
+	<bean id="openmeetings.FlvRecorderConverter" class="org.apache.openmeetings.converter.FlvRecorderConverter" />
+	<bean id="openmeetings.SlaveHTTPConnectionManager" class="org.apache.openmeetings.cluster.SlaveHTTPConnectionManager" />
+
+	<bean id="openmeetings.SessionClearJob" class="org.apache.openmeetings.quartz.scheduler.SessionClearJob" />
+	<bean id="sessionClearJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
+		<property name="targetObject">
+			<ref bean="openmeetings.SessionClearJob" />
+		</property>
+		<property name="targetMethod">
+			<value>doIt</value>
+		</property>
+		<property name="concurrent" value="false" />
+	</bean>
+	<bean id="triggerSessionClear" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
+		<property name="jobDetail">
+			<!-- see the example of method invoking job above -->
+			<ref bean="sessionClearJob" />
+		</property>
+		<property name="startDelay">
+			<!-- 5 seconds -->
+			<value>5000</value>
+		</property>
+		<property name="repeatInterval">
+			<!-- repeat every 300 seconds == 5 minutes -->
+			<value>300000</value>
+		</property>
+	</bean>
+
+	<bean id="openmeetings.MeetingReminderJob" class="org.apache.openmeetings.quartz.scheduler.MeetingReminderJob" />
+	<bean id="meetingReminderClear" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
+		<property name="targetObject">
+			<ref bean="openmeetings.MeetingReminderJob" />
+		</property>
+		<property name="targetMethod">
+			<value>doIt</value>
+		</property>
+		<property name="concurrent" value="false" />
+	</bean>
+	<bean id="triggerMeetingReminder" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
+		<property name="jobDetail">
+			<!-- see the example of method invoking job above -->
+			<ref bean="meetingReminderClear" />
+		</property>
+		<property name="startDelay">
+			<!-- 5 seconds -->
+			<value>5000</value>
+		</property>
+		<property name="repeatInterval">
+			<!-- repeat every 100 seconds -->
+			<value>100000</value>
+		</property>
+	</bean>
+	<bean id="testSetupCleanupJob" class="org.apache.openmeetings.quartz.scheduler.TestSetupCleanupJob" />
+	<bean id="testSetupCleanup" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
+		<property name="targetObject">
+			<ref bean="testSetupCleanupJob" />
+		</property>
+		<property name="targetMethod">
+			<value>doIt</value>
+		</property>
+		<property name="concurrent" value="false" />
+	</bean>
+	<bean id="triggerTestSetupCleanup" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
+		<property name="jobDetail">
+			<ref bean="testSetupCleanup" />
+		</property>
+		<property name="startDelay">
+			<value>1800000</value> <!-- 30 minutes -->
+		</property>
+		<property name="repeatInterval">
+			<value>1800000</value> <!-- 30 minutes -->
+		</property>
+	</bean>
+
+	<!-- Mail related jobs -->
+	<bean id="mailHandler" class="org.apache.openmeetings.mail.MailHandler" />
+	<bean id="resetSendingMailStatus" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
+		<property name="targetObject">
+			<ref bean="mailHandler" />
+		</property>
+		<property name="targetMethod">
+			<value>resetSendingStatus</value>
+		</property>
+		<property name="concurrent" value="false" />
+	</bean>
+	<bean id="triggerResetSendingMailStatus" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
+		<property name="jobDetail">
+			<ref bean="resetSendingMailStatus" />
+		</property>
+		<property name="startDelay">
+			<value>60000</value> <!-- 1 minute -->
+		</property>
+		<property name="repeatInterval">
+			<value>900000</value> <!-- 15 minutes -->
+		</property>
+	</bean>
+	<bean id="sendMails" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
+		<property name="targetObject">
+			<ref bean="mailHandler" />
+		</property>
+		<property name="targetMethod">
+			<value>sendMails</value>
+		</property>
+		<property name="concurrent" value="false" />
+	</bean>
+	<bean id="triggerSendMails" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
+		<property name="jobDetail">
+			<ref bean="sendMails" />
+		</property>
+		<property name="startDelay">
+			<value>60000</value> <!-- 1 minute -->
+		</property>
+		<property name="repeatInterval">
+			<value>60000</value> <!-- 1 minute -->
+		</property>
+	</bean>
+	
+	<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
+		<property name="triggers">
+			<list>
+				<ref local="triggerSessionClear" />
+				<ref local="triggerMeetingReminder" />
+				<ref local="triggerTestSetupCleanup" />
+				<ref local="triggerResetSendingMailStatus" />
+				<ref local="triggerSendMails" />
+			</list>
+		</property>
+	</bean>
+	<!-- End of Services -->
+
+	<!-- Interface Transactional -->
+	<bean id="appointmentReminderTypDaoImpl" class="org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypDao" />
+	<bean id="appointmentCategoryDaoImpl" class="org.apache.openmeetings.db.dao.calendar.AppointmentCategoryDao" />
+	<bean id="roommanagement" class="org.apache.openmeetings.data.conference.RoomManager" />
+	<bean id="roomDao" class="org.apache.openmeetings.db.dao.room.RoomDao"/>
+	<bean id="sipDao" class="org.apache.openmeetings.db.dao.room.SipDao">
+	<!--  Should be uncommented and updated with real values for Asterisk
+		<constructor-arg><value>127.0.0.1</value></constructor-arg>
+		<constructor-arg><value>5038</value></constructor-arg>
+		<constructor-arg><value>openmeetings</value></constructor-arg>
+		<constructor-arg><value>12345</value></constructor-arg>
+	 -->
+	</bean>
+	<bean id="invitationDao" class="org.apache.openmeetings.db.dao.room.InvitationDao" />
+	<bean id="organisationmanagement" class="org.apache.openmeetings.data.user.OrganisationManager" />
+	<bean id="organisationDao" class="org.apache.openmeetings.db.dao.user.OrganisationDao" />
+	<bean id="organisationUserDao" class="org.apache.openmeetings.db.dao.user.OrganisationUserDao" />
+	<bean id="salutationmanagement" class="org.apache.openmeetings.db.dao.user.SalutationDao" />
+	<bean id="errorManagement" class="org.apache.openmeetings.db.dao.basic.ErrorDao" />
+	<bean id="navimanagement" class="org.apache.openmeetings.db.dao.basic.NavigationDao" />
+	<bean id="pollManagement" class="org.apache.openmeetings.db.dao.room.PollDao" />
+	<bean id="statemanagement" class="org.apache.openmeetings.db.dao.user.StateDao" />
+	<bean id="fieldLanguageDaoImpl" class="org.apache.openmeetings.db.dao.label.FieldLanguageDao" />
+	<bean id="fieldValueDaoImpl" class="org.apache.openmeetings.db.dao.label.FieldValueDao" />
+	<bean id="fieldLanguagesValuesDAO" class="org.apache.openmeetings.db.dao.label.FieldLanguagesValuesDao" />
+	<bean id="fieldmanagment" class="org.apache.openmeetings.data.basic.FieldManager" />
+	<bean id="configurationDaoImpl" class="org.apache.openmeetings.db.dao.basic.ConfigurationDao" />
+	<bean id="appointmentDao" class="org.apache.openmeetings.db.dao.calendar.AppointmentDao" />
+	<bean id="appointmentLogic" class="org.apache.openmeetings.data.calendar.management.AppointmentLogic" />
+	<bean id="sessionManagement" class="org.apache.openmeetings.db.dao.server.SessiondataDao" />
+	<bean id="userManagement" class="org.apache.openmeetings.data.user.UserManager" />
+	<bean id="roomModeratorsDao" class="org.apache.openmeetings.db.dao.room.RoomModeratorsDao" />
+	<bean id="roomOrganisationDao" class="org.apache.openmeetings.db.dao.room.RoomOrganisationDao"/>
+	<bean id="roomTypeDao" class="org.apache.openmeetings.db.dao.room.RoomTypeDao" />
+	<bean id="conferenceLogDao" class="org.apache.openmeetings.db.dao.log.ConferenceLogDao" />
+	<bean id="conferenceLogTypeDao" class="org.apache.openmeetings.db.dao.log.ConferenceLogTypeDao" />
+	<bean id="emailManagement" class="org.apache.openmeetings.data.user.EmailManager" />
+	<bean id="fileExplorerItemDao" class="org.apache.openmeetings.db.dao.file.FileExplorerItemDao" />
+	<bean id="flvRecordingDao" class="org.apache.openmeetings.db.dao.record.FlvRecordingDao" />
+	<bean id="flvRecordingLogDao" class="org.apache.openmeetings.db.dao.record.FlvRecordingLogDao" />
+	<bean id="flvRecordingMetaDataDao" class="org.apache.openmeetings.db.dao.record.FlvRecordingMetaDataDao" />
+	<bean id="flvRecordingMetaDeltaDao" class="org.apache.openmeetings.db.dao.record.FlvRecordingMetaDeltaDao" />
+	<bean id="ldapConfigDao" class="org.apache.openmeetings.db.dao.server.LdapConfigDao" />
+	<bean id="invitationManagement" class="org.apache.openmeetings.data.conference.InvitationManager" />
+	<bean id="meetingMemberDao" class="org.apache.openmeetings.db.dao.calendar.MeetingMemberDao" />
+	<bean id="privateMessageFolderDao" class="org.apache.openmeetings.db.dao.user.PrivateMessageFolderDao" />
+	<bean id="privateMessagesDao" class="org.apache.openmeetings.db.dao.user.PrivateMessagesDao" />
+	<bean id="soapLoginDao" class="org.apache.openmeetings.db.dao.server.SOAPLoginDao" />
+	<bean id="userContactsDao" class="org.apache.openmeetings.db.dao.user.UserContactsDao" />
+	<bean id="dao" class="org.apache.openmeetings.db.dao.user.AbstractUserDao" />
+	<bean id="usersDao" class="org.apache.openmeetings.db.dao.user.UserDao" />
+	<bean id="adminUserDao" class="org.apache.openmeetings.db.dao.user.AdminUserDao" />
+	<bean id="userLevelDao" class="org.apache.openmeetings.db.dao.user.UserLevelDao" />
+	<bean id="serverDao" class="org.apache.openmeetings.db.dao.server.ServerDao" />
+	<bean id="chatDao" class="org.apache.openmeetings.db.dao.basic.ChatDao" />
+	<bean id="clientDao" class="org.apache.openmeetings.db.dao.room.ClientDao" />
+	<bean id="mailMessageDao" class="org.apache.openmeetings.db.dao.basic.MailMessageDao" />
+	<bean id="oauth2Dao" class="org.apache.openmeetings.db.dao.server.OAuth2Dao" />
+
+	<!-- No Interface -->
+	<bean id="generateImage" class="org.apache.openmeetings.converter.GenerateImage" />
+	<bean id="generateThumbs" class="org.apache.openmeetings.converter.GenerateThumbs" />
+	<bean id="generatePDF" class="org.apache.openmeetings.documents.GeneratePDF" />
+	<bean id="smsHandler" class="org.apache.openmeetings.mail.SMSHandler" />
+	<bean id="importInitvalues" class="org.apache.openmeetings.installation.ImportInitvalues" />
+	<bean id="languageImport" class="org.apache.openmeetings.backup.LanguageImport" />
+	<bean id="libraryWmlLoader" class="org.apache.openmeetings.documents.LibraryWmlLoader" />
+	<bean id="generateSWF" class="org.apache.openmeetings.converter.GenerateSWF" />
+	<bean id="fileUtils" class="org.apache.openmeetings.data.file.FileUtils" />
+	<bean id="ldapLoginManagement" class="org.apache.openmeetings.ldap.LdapLoginManagement" />
+	<bean id="timezoneUtil" class="org.apache.openmeetings.db.util.TimezoneUtil" />
+	<bean id="whiteboardManagement" class="org.apache.openmeetings.data.whiteboard.WhiteboardManager" />
+	<bean id="backupExport" class="org.apache.openmeetings.backup.BackupExport" />
+	<bean id="backupImport" class="org.apache.openmeetings.backup.BackupImport" />
+
+	<!-- Thread Executor -->
+	<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
+		<property name="corePoolSize" value="5" />
+		<property name="maxPoolSize" value="10" />
+		<property name="queueCapacity" value="25" />
+	</bean>
+
+	<!-- Axis2 Service Proxy's -->
+	<bean id="userWebService" class="org.apache.openmeetings.axis.services.UserWebService" />
+	<bean id="roomWebService" class="org.apache.openmeetings.axis.services.RoomWebService" />
+	<bean id="fileWebService" class="org.apache.openmeetings.axis.services.FileWebService" />
+	<bean id="calendarWebService" class="org.apache.openmeetings.axis.services.CalendarWebService" />
+	<bean id="jabberWebService" class="org.apache.openmeetings.axis.services.JabberWebService" />
+	<bean id="serverWebService" class="org.apache.openmeetings.axis.services.ServerWebService" />
+</beans>
diff --git a/src/main/webapp/WEB-INF/classes/rebel-remote.xml b/src/main/webapp/WEB-INF/classes/rebel-remote.xml
new file mode 100644
index 0000000..0dce654
--- /dev/null
+++ b/src/main/webapp/WEB-INF/classes/rebel-remote.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<rebel-remote>
+	<id>Openmeetings</id>
+	<url>http://localhost:5080/openmeetings/</url>
+</rebel-remote>
diff --git a/src/main/webapp/WEB-INF/classes/rebel.xml b/src/main/webapp/WEB-INF/classes/rebel.xml
new file mode 100644
index 0000000..a9a5149
--- /dev/null
+++ b/src/main/webapp/WEB-INF/classes/rebel.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com" xsi:schemaLocation="http://www.zeroturnaround.com http://www.zeroturnaround.com/alderaan/rebel-2_0.xsd">
+	<classpath>
+		<dir name="${project.root}/build/classes/eclipse"/>
+	</classpath>
+	<web>
+		<link target="/">
+			<dir name="${project.root}/main/webapp"/>
+		</link>
+	</web>
+</application>
diff --git a/src/main/webapp/WEB-INF/conf/axis2.xml b/src/main/webapp/WEB-INF/conf/axis2.xml
new file mode 100644
index 0000000..a6620f6
--- /dev/null
+++ b/src/main/webapp/WEB-INF/conf/axis2.xml
@@ -0,0 +1,531 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License. You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied. See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+
+<axisconfig name="AxisJava2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

+	xsi:noNamespaceSchemaLocation="axis2.xsd">
+    <!-- ================================================= -->
+    <!-- Parameters -->
+    <!-- ================================================= -->
+    <parameter name="hotdeployment">true</parameter>
+    <parameter name="hotupdate">false</parameter>
+    <parameter name="enableMTOM">false</parameter>
+    <parameter name="enableSwA">false</parameter>
+
+    <!--Uncomment if you want to enable file caching for attachments -->
+    <!--parameter name="cacheAttachments">true</parameter>
+    <parameter name="attachmentDIR"></parameter>
+    <parameter name="sizeThreshold">4000</parameter-->
+
+    <parameter name="EnableChildFirstClassLoading">false</parameter>
+
+    <!--
+    The exposeServiceMetadata parameter decides whether the metadata (WSDL, schema, policy) of
+    the services deployed on Axis2 should be visible when ?wsdl, ?wsdl2, ?xsd, ?policy requests
+    are received.
+    This parameter can be defined in the axi2.xml file, in which case this will be applicable
+    globally, or in the services.xml files, in which case, it will be applicable to the
+    Service groups and/or services, depending on the level at which the parameter is declared.
+    This value of this parameter defaults to true.
+    -->
+    <parameter name="exposeServiceMetadata">true</parameter>
+
+
+    <!--Uncomment if you want to plugin your own attachments lifecycle implementation -->
+    <!--<attachmentsLifecycleManager class="org.apache.axiom.attachments.lifecycle.impl.LifecycleManagerImpl"/>-->
+
+
+    <!--Uncomment if you want to enable the reduction of the in-memory cache of WSDL definitions -->
+    <!--In some server environments, the available memory heap is limited and can fill up under load -->
+    <!--Since in-memory copies of WSDL definitions can be large, some steps can be taken-->
+    <!--to reduce the memory needed for the cached WSDL definitions. -->
+    <!--parameter name="reduceWSDLMemoryCache">true</parameter-->
+
+    <!--This will give out the timout of the configuration contexts, in milliseconds-->
+    <parameter name="ConfigContextTimeoutInterval">30000</parameter>
+
+    <!--During a fault, stack trace can be sent with the fault message. The following flag will control -->
+    <!--that behavior.-->
+    <parameter name="sendStacktraceDetailsWithFaults">false</parameter>
+
+    <!--If there aren't any information available to find out the fault reason, we set the message of the exception-->
+    <!--as the faultreason/Reason. But when a fault is thrown from a service or some where, it will be -->
+    <!--wrapped by different levels. Due to this the initial exception message can be lost. If this flag-->
+    <!--is set, then Axis2 tries to get the first exception and set its message as the faultreason/Reason.-->
+    <parameter name="DrillDownToRootCauseForFaultReason">false</parameter>
+
+    <parameter name="userName">admin</parameter>
+    <parameter name="password">axis2</parameter>
+
+    <!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.-->
+    <!--ServicesDirectory only works on the following cases-->
+    <!---File based configurator and in that case the value should be a file URL (http:// not allowed)-->
+    <!---When creating URL Based configurator with URL file:// -->
+    <!--- War based configurator with expanded case , -->
+
+    <!--All the other scenarios it will be ignored.-->
+    <!--<parameter name="ServicesDirectory">service</parameter>-->
+    <!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path-->
+    <!--<parameter name="ModulesDirectory">modules</parameter>-->
+
+
+    <!--Following params will set the proper context paths for invocations. All the endpoints will have a commons context-->
+    <!--root which can configured using the following contextRoot parameter-->
+    <!--<parameter name="contextRoot">axis2</parameter>-->
+
+    <!--Our HTTP endpoints can handle both REST and SOAP. Following parameters can be used to distinguiush those endpoints-->
+    <!--In case of a servlet, if you change this you have to manually change the settings of your servlet container to map this -->
+    <!--context path to proper Axis2 servlets-->
+    <!--<parameter name="servicePath">services</parameter>-->
+    <!--<parameter name="restPath">rest</parameter>-->
+
+    <!-- Following parameter will completely disable REST handling in Axis2-->
+    <parameter name="disableREST" locked="false">false</parameter>
+
+    <!-- Following parameter will suppress generation of SOAP 1.2 bindings in auto-generated WSDL files -->
+    <parameter name="disableSOAP12" locked="true">false</parameter>
+
+    <!-- ================================================= -->
+    <!-- Deployers -->
+    <!-- ================================================= -->
+
+    <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
+    <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
+        <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
+        <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
+    </deployer>
+    
+    <!--POJO deployer , this will alow users to drop .class file and make that into a service-->
+    <deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>
+    <deployer extension=".jar" directory="servicejars"
+              class="org.apache.axis2.jaxws.framework.JAXWSDeployer"/>
+    <deployer extension=".jar" directory="transports"
+              class="org.apache.axis2.deployment.TransportDeployer"/>
+
+    <!--CORBA deployer , this will alow users to invoke remote CORBA services through Axis2-->
+    <!--<deployer extension=".xml" directory="corba" class="org.apache.axis2.corba.deployer.CorbaDeployer"/>-->
+
+    <!--<deployer extension=".jsa" directory="rmiservices" class="org.apache.axis2.rmi.deploy.RMIServiceDeployer"/>-->
+
+
+    <!-- Following parameter will set the host name for the epr-->
+    <!--<parameter name="hostname" locked="true">myhost.com</parameter>-->
+
+    <!-- If you have a front end host which exposes this webservice using a different public URL  -->
+    <!-- use this parameter to override autodetected url -->
+    <!--<parameter name="httpFrontendHostUrl">https://someotherhost/context</parameter>-->
+
+    <!--By default, JAXWS services are created by reading annotations. WSDL and schema are generated-->
+    <!--using a separate WSDL generator only when ?wsdl is called. Therefore, even if you engage-->
+    <!--policies etc.. to AxisService, it doesn't appear in the WSDL. By setting the following property-->
+    <!--to true, you can create the AxisService using the generated WSDL and remove the need for a-->
+    <!--WSDL generator. When ?wsdl is called, WSDL is generated in the normal way.-->
+    <parameter name="useGeneratedWSDLinJAXWS">false</parameter>
+
+    <!--    The way of adding listener to the system-->
+    <!--    <listener class="org.apache.axis2.ObserverIMPL">-->
+    <!--        <parameter name="RSS_URL">http://127.0.0.1/rss</parameter>-->
+    <!--    </listener>-->
+
+    <threadContextMigrators>
+        <threadContextMigrator listId="JAXWS-ThreadContextMigrator-List"
+                               class="org.apache.axis2.jaxws.addressing.migrator.EndpointContextMapMigrator"/>
+    </threadContextMigrators>
+
+    <!-- ================================================= -->
+    <!-- Message Receivers -->
+    <!-- ================================================= -->
+    <!--This is the default MessageReceiver for the system , if you want to have MessageReceivers for -->
+    <!--all the other MEP implement it and add the correct entry to here , so that you can refer from-->
+    <!--any operation -->
+    <!--Note : You can override this for a particular service by adding the same element with your requirement-->
+    <messageReceivers>        
+        <messageReceiver mep="http://www.w3.org/ns/wsdl/in-only"
+                         class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
+        <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
+                         class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+    </messageReceivers>
+
+    <!-- ================================================= -->
+    <!-- Message Formatter -->
+    <!-- ================================================= -->
+    <!--Following content type to message formatter mapping can be used to implement support for different message -->
+    <!--format  serialization in Axis2. These message formats are expected to be resolved based on the content type. -->
+    <messageFormatters>
+        <messageFormatter contentType="application/x-www-form-urlencoded"
+                          class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
+        <messageFormatter contentType="multipart/form-data"
+                          class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
+        <messageFormatter contentType="application/xml"
+                          class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
+        <messageFormatter contentType="text/xml"
+                          class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
+        <messageFormatter contentType="application/soap+xml"
+                          class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
+    </messageFormatters>
+
+    <!-- ================================================= -->
+    <!-- Message Builders -->
+    <!-- ================================================= -->
+    <!--Following content type to builder mapping can be used to implement support for different message -->
+    <!--formats in Axis2. These message formats are expected to be resolved based on the content type. -->
+    <messageBuilders>
+        <messageBuilder contentType="application/xml"
+                        class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
+        <messageBuilder contentType="application/x-www-form-urlencoded"
+                        class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
+        <messageBuilder contentType="multipart/form-data"
+                        class="org.apache.axis2.builder.MultipartFormDataBuilder"/>
+    </messageBuilders>
+
+    <!-- ================================================= -->
+    <!-- Transport Ins -->
+    <!-- ================================================= -->
+    <transportReceiver name="http"
+                       class="org.apache.axis2.transport.http.SimpleHTTPServer">
+        <parameter name="port">8080</parameter>
+        <!-- Here is the complete list of supported parameters (see example settings further below):
+            port: the port to listen on (default 6060)
+            hostname:  if non-null, url prefix used in reply-to endpoint references                                 (default null)
+            originServer:  value of http Server header in outgoing messages                                         (default "Simple-Server/1.1")
+            requestTimeout:  value in millis of time that requests can wait for data                                (default 20000)
+            requestTcpNoDelay:  true to maximize performance and minimize latency                                   (default true)
+                                false to minimize bandwidth consumption by combining segments
+            requestCoreThreadPoolSize:  number of threads available for request processing (unless queue fills up)  (default 25)
+            requestMaxThreadPoolSize:  number of threads available for request processing if queue fills up         (default 150)
+                                       note that default queue never fills up:  see HttpFactory
+            threadKeepAliveTime:  time to keep threads in excess of core size alive while inactive                  (default 180)
+                                  note that no such threads can exist with default unbounded request queue
+            threadKeepAliveTimeUnit:  TimeUnit of value in threadKeepAliveTime (default SECONDS)                    (default SECONDS)
+        -->
+        <!-- <parameter name="hostname">http://www.myApp.com/ws</parameter> -->
+        <!-- <parameter name="originServer">My-Server/1.1</parameter>           -->
+        <!-- <parameter name="requestTimeout">10000</parameter>                   -->
+        <!-- <parameter name="requestTcpNoDelay">false</parameter>                   -->
+        <!-- <parameter name="requestCoreThreadPoolSize">50</parameter>                      -->
+        <!-- <parameter name="requestMaxThreadPoolSize">100</parameter>                     -->
+        <!-- <parameter name="threadKeepAliveTime">240000</parameter>                  -->
+        <!-- <parameter name="threadKeepAliveTimeUnit">MILLISECONDS</parameter>            -->
+    </transportReceiver>
+
+    <!-- This is where you'd put custom transports.  See the transports project -->
+    <!-- for more.  http://ws.apache.org/commons/transport                      -->
+
+    <!-- ================================================= -->
+    <!-- Transport Outs -->
+    <!-- ================================================= -->
+
+    <transportSender name="local"
+                     class="org.apache.axis2.transport.local.LocalTransportSender"/>
+    <transportSender name="http"
+                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+        <parameter name="PROTOCOL">HTTP/1.1</parameter>
+        <parameter name="Transfer-Encoding">chunked</parameter>
+
+        <!-- If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages -->
+        <!--  <parameter name="OmitSOAP12Action">true</parameter>  -->
+    </transportSender>
+
+    <transportSender name="https"
+                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+        <parameter name="PROTOCOL">HTTP/1.1</parameter>
+        <parameter name="Transfer-Encoding">chunked</parameter>
+    </transportSender>
+
+    <!-- Please enable this if you need the java transport -->
+    <!-- <transportSender name="java"
+                     class="org.apache.axis2.transport.java.JavaTransportSender"/> -->
+
+    <!-- ================================================= -->
+    <!-- Global Modules  -->
+    <!-- ================================================= -->
+    <!-- Comment this to disable Addressing -->
+    <module ref="addressing"/>
+
+    <!--Configuring module , providing parameters for modules whether they refer or not-->
+    <!--<moduleConfig name="addressing">-->
+    <!--<parameter name="addressingPara">N/A</parameter>-->
+    <!--</moduleConfig>-->
+
+    <!-- ================================================= -->
+    <!-- Clustering  -->
+    <!-- ================================================= -->
+    <!--
+     To enable clustering for this node, set the value of "enable" attribute of the "clustering"
+     element to "true". The initialization of a node in the cluster is handled by the class
+     corresponding to the "class" attribute of the "clustering" element. It is also responsible for
+     getting this node to join the cluster.
+     -->
+    <clustering class="org.apache.axis2.clustering.tribes.TribesClusteringAgent" enable="false">
+
+        <!--
+           This parameter indicates whether the cluster has to be automatically initalized
+           when the AxisConfiguration is built. If set to "true" the initialization will not be
+           done at that stage, and some other party will have to explictly initialize the cluster.
+        -->
+        <parameter name="AvoidInitiation">true</parameter>
+
+        <!--
+           The membership scheme used in this setup. The only values supported at the moment are
+           "multicast" and "wka"
+
+           1. multicast - membership is automatically discovered using multicasting
+           2. wka - Well-Known Address based multicasting. Membership is discovered with the help
+                    of one or more nodes running at a Well-Known Address. New members joining a
+                    cluster will first connect to a well-known node, register with the well-known node
+                    and get the membership list from it. When new members join, one of the well-known
+                    nodes will notify the others in the group. When a member leaves the cluster or
+                    is deemed to have left the cluster, it will be detected by the Group Membership
+                    Service (GMS) using a TCP ping mechanism.
+        -->
+        <parameter name="membershipScheme">multicast</parameter>
+
+        <!--
+         The clustering domain/group. Nodes in the same group will belong to the same multicast
+         domain. There will not be interference between nodes in different groups.
+        -->
+        <parameter name="domain">wso2.carbon.domain</parameter>
+
+        <!--
+           When a Web service request is received, and processed, before the response is sent to the
+           client, should we update the states of all members in the cluster? If the value of
+           this parameter is set to "true", the response to the client will be sent only after
+           all the members have been updated. Obviously, this can be time consuming. In some cases,
+           such this overhead may not be acceptable, in which case the value of this parameter
+           should be set to "false"
+        -->
+        <parameter name="synchronizeAll">true</parameter>
+
+        <!--
+          The maximum number of times we need to retry to send a message to a particular node
+          before giving up and considering that node to be faulty
+        -->
+        <parameter name="maxRetries">10</parameter>
+
+        <!-- The multicast address to be used -->
+        <parameter name="mcastAddress">228.0.0.4</parameter>
+
+        <!-- The multicast port to be used -->
+        <parameter name="mcastPort">45564</parameter>
+
+        <!-- The frequency of sending membership multicast messages (in ms) -->
+        <parameter name="mcastFrequency">500</parameter>
+
+        <!-- The time interval within which if a member does not respond, the member will be
+         deemed to have left the group (in ms)
+         -->
+        <parameter name="memberDropTime">3000</parameter>
+
+        <!--
+           The IP address of the network interface to which the multicasting has to be bound to.
+           Multicasting would be done using this interface.
+        -->
+        <parameter name="mcastBindAddress">127.0.0.1</parameter>
+
+        <!-- The host name or IP address of this member -->
+        <parameter name="localMemberHost">127.0.0.1</parameter>
+
+        <!--
+        The TCP port used by this member. This is the port through which other nodes will
+        contact this member
+         -->
+        <parameter name="localMemberPort">4000</parameter>
+
+        <!--
+        Preserve message ordering. This will be done according to sender order.
+        -->
+        <parameter name="preserveMessageOrder">true</parameter>
+
+        <!--
+        Maintain atmost-once message processing semantics
+        -->
+        <parameter name="atmostOnceMessageSemantics">true</parameter>
+
+        <!--
+        Properties specific to this member
+        -->
+        <parameter name="properties">
+            <property name="backendServerURL" value="https://${hostName}:${httpsPort}/services/"/>
+            <property name="mgtConsoleURL" value="https://${hostName}:${httpsPort}/"/>
+        </parameter>
+
+        <!--
+           The list of static or well-known members. These entries will only be valid if the
+           "membershipScheme" above is set to "wka"
+        -->
+        <members>
+            <member>
+                <hostName>127.0.0.1</hostName>
+                <port>4000</port>
+            </member>
+            <member>
+                <hostName>127.0.0.1</hostName>
+                <port>4001</port>
+            </member>
+        </members>
+
+        <!--
+        Enable the groupManagement entry if you need to run this node as a cluster manager.
+        Multiple application domains with different GroupManagementAgent implementations
+        can be defined in this section.
+        -->
+        <groupManagement enable="false">
+            <applicationDomain name="apache.axis2.application.domain"
+                               description="Axis2 group"
+                               agent="org.apache.axis2.clustering.management.DefaultGroupManagementAgent"/>
+        </groupManagement>
+
+        <!--
+           This interface is responsible for handling management of a specific node in the cluster
+           The "enable" attribute indicates whether Node management has been enabled
+        -->
+        <nodeManager class="org.apache.axis2.clustering.management.DefaultNodeManager"
+                         enable="true"/>
+
+        <!--
+           This interface is responsible for handling state replication. The property changes in
+           the Axis2 context hierarchy in this node, are propagated to all other nodes in the cluster.
+
+           The "excludes" patterns can be used to specify the prefixes (e.g. local_*) or
+           suffixes (e.g. *_local) of the properties to be excluded from replication. The pattern
+           "*" indicates that all properties in a particular context should not be replicated.
+
+            The "enable" attribute indicates whether context replication has been enabled
+        -->
+        <stateManager class="org.apache.axis2.clustering.state.DefaultStateManager"
+                      enable="true">
+            <replication>
+                <defaults>
+                    <exclude name="local_*"/>
+                    <exclude name="LOCAL_*"/>
+                </defaults>
+                <context class="org.apache.axis2.context.ConfigurationContext">
+                    <exclude name="local_*"/>
+                </context>
+                <context class="org.apache.axis2.context.ServiceGroupContext">
+                    <exclude name="local_*"/>
+                </context>
+                <context class="org.apache.axis2.context.ServiceContext">
+                    <exclude name="local_*"/>
+                </context>
+            </replication>
+        </stateManager>
+    </clustering>
+
+    <!-- ================================================= -->
+    <!-- Phases  -->
+    <!-- ================================================= -->
+    <phaseOrder type="InFlow">
+        <!--  System predefined phases       -->
+        <phase name="Transport">
+            <handler name="RequestURIBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
+                <order phase="Transport"/>
+            </handler>
+            <handler name="SOAPActionBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
+                <order phase="Transport"/>
+            </handler>
+        </phase>
+        <phase name="Addressing">
+            <handler name="AddressingBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
+                <order phase="Addressing"/>
+            </handler>
+        </phase>
+        <phase name="Security"/>
+        <phase name="PreDispatch"/>
+        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
+            <handler name="RequestURIBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
+            <handler name="SOAPActionBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
+            <handler name="RequestURIOperationDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
+            <handler name="SOAPMessageBodyBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
+            <handler name="HTTPLocationBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
+            <handler name="GenericProviderDispatcher"
+                     class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>
+            <handler name="MustUnderstandValidationDispatcher"
+                     class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>
+        </phase>
+        <phase name="RMPhase"/>
+        <!--  System predefined phases       -->
+        <!--   After Postdispatch phase module author or service author can add any phase he want      -->
+        <phase name="OperationInPhase">
+            <handler name="MustUnderstandChecker"
+                     class="org.apache.axis2.jaxws.dispatchers.MustUnderstandChecker">
+                <order phase="OperationInPhase"/>
+            </handler>
+        </phase>
+        <phase name="soapmonitorPhase"/>
+    </phaseOrder>
+    <phaseOrder type="OutFlow">
+        <!--      user can add his own phases to this area  -->
+        <phase name="soapmonitorPhase"/>
+        <phase name="OperationOutPhase"/>
+        <!--system predefined phase-->
+        <!--these phase will run irrespective of the service-->
+        <phase name="RMPhase"/>
+        <phase name="PolicyDetermination"/>
+        <phase name="MessageOut"/>
+        <phase name="Security"/>
+    </phaseOrder>
+    <phaseOrder type="InFaultFlow">
+        <phase name="Addressing">
+            <handler name="AddressingBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
+                <order phase="Addressing"/>
+            </handler>
+        </phase>
+        <phase name="Security"/>
+        <phase name="PreDispatch"/>
+        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
+            <handler name="RequestURIBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
+            <handler name="SOAPActionBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
+            <handler name="RequestURIOperationDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
+            <handler name="SOAPMessageBodyBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
+            <handler name="HTTPLocationBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
+            <handler name="GenericProviderDispatcher"
+                     class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>
+            <handler name="MustUnderstandValidationDispatcher"
+                     class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>
+        </phase>
+        <phase name="RMPhase"/>
+        <!--      user can add his own phases to this area  -->
+        <phase name="OperationInFaultPhase"/>
+        <phase name="soapmonitorPhase"/>
+    </phaseOrder>
+    <phaseOrder type="OutFaultFlow">
+        <!--      user can add his own phases to this area  -->
+        <phase name="soapmonitorPhase"/>
+        <phase name="OperationOutFaultPhase"/>
+        <phase name="RMPhase"/>
+        <phase name="PolicyDetermination"/>
+        <phase name="MessageOut"/>
+        <phase name="Security"/>
+    </phaseOrder>
+</axisconfig>
+
diff --git a/src/main/webapp/WEB-INF/conf/axis2.xsd b/src/main/webapp/WEB-INF/conf/axis2.xsd
new file mode 100644
index 0000000..df95257
--- /dev/null
+++ b/src/main/webapp/WEB-INF/conf/axis2.xsd
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

+  <xs:element name="axisconfig">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:choice maxOccurs="unbounded">

+          <xs:element ref="parameter"/>

+          <xs:element ref="deployer"/>

+        </xs:choice>

+        <xs:element ref="threadContextMigrators"/>

+        <xs:element ref="messageReceivers"/>

+        <xs:element ref="messageFormatters"/>

+        <xs:element ref="messageBuilders"/>

+        <xs:element ref="transportReceiver"/>

+        <xs:element maxOccurs="unbounded" ref="transportSender"/>

+        <xs:element ref="module"/>

+        <xs:element ref="clustering"/>

+        <xs:element maxOccurs="unbounded" ref="phaseOrder"/>

+      </xs:sequence>

+      <xs:attribute name="name" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="deployer">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element minOccurs="0" maxOccurs="unbounded" ref="serviceBuilderExtension"/>

+      </xs:sequence>

+      <xs:attribute name="class" use="required"/>

+      <xs:attribute name="directory" use="required" type="xs:NCName"/>

+      <xs:attribute name="extension" use="required" type="xs:NMTOKEN"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="serviceBuilderExtension">

+    <xs:complexType>

+      <xs:attribute name="class" use="required"/>

+      <xs:attribute name="name" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="threadContextMigrators">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element ref="threadContextMigrator"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="threadContextMigrator">

+    <xs:complexType>

+      <xs:attribute name="class" use="required"/>

+      <xs:attribute name="listId" use="required"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="messageReceivers">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element maxOccurs="unbounded" ref="messageReceiver"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="messageReceiver">

+    <xs:complexType>

+      <xs:attribute name="class" use="required"/>

+      <xs:attribute name="mep" use="required" type="xs:anyURI"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="messageFormatters">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element maxOccurs="unbounded" ref="messageFormatter"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="messageFormatter">

+    <xs:complexType>

+      <xs:attribute name="class" use="required"/>

+      <xs:attribute name="contentType" use="required"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="messageBuilders">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element maxOccurs="unbounded" ref="messageBuilder"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="messageBuilder">

+    <xs:complexType>

+      <xs:attribute name="class" use="required"/>

+      <xs:attribute name="contentType" use="required"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="transportReceiver">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element ref="parameter"/>

+      </xs:sequence>

+      <xs:attribute name="class" use="required"/>

+      <xs:attribute name="name" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="transportSender">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element minOccurs="0" maxOccurs="unbounded" ref="parameter"/>

+      </xs:sequence>

+      <xs:attribute name="class" use="required"/>

+      <xs:attribute name="name" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="module">

+    <xs:complexType>

+      <xs:attribute name="ref" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="clustering">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element maxOccurs="unbounded" ref="parameter"/>

+        <xs:element ref="members"/>

+        <xs:element ref="groupManagement"/>

+        <xs:element ref="nodeManager"/>

+        <xs:element ref="stateManager"/>

+      </xs:sequence>

+      <xs:attribute name="class" use="required"/>

+      <xs:attribute name="enable" use="required" type="xs:boolean"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="members">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element maxOccurs="unbounded" ref="member"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="member">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element ref="hostName"/>

+        <xs:element ref="port"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="hostName" type="xs:NMTOKEN"/>

+  <xs:element name="port" type="xs:integer"/>

+  <xs:element name="groupManagement">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element ref="applicationDomain"/>

+      </xs:sequence>

+      <xs:attribute name="enable" use="required" type="xs:boolean"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="applicationDomain">

+    <xs:complexType>

+      <xs:attribute name="agent" use="required"/>

+      <xs:attribute name="description" use="required"/>

+      <xs:attribute name="name" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="nodeManager">

+    <xs:complexType>

+      <xs:attribute name="class" use="required"/>

+      <xs:attribute name="enable" use="required" type="xs:boolean"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="stateManager">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element ref="replication"/>

+      </xs:sequence>

+      <xs:attribute name="class" use="required"/>

+      <xs:attribute name="enable" use="required" type="xs:boolean"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="replication">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element ref="defaults"/>

+        <xs:element maxOccurs="unbounded" ref="context"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="defaults">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element maxOccurs="unbounded" ref="exclude"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="context">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element ref="exclude"/>

+      </xs:sequence>

+      <xs:attribute name="class" use="required"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="phaseOrder">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element maxOccurs="unbounded" ref="phase"/>

+      </xs:sequence>

+      <xs:attribute name="type" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="phase">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element minOccurs="0" maxOccurs="unbounded" ref="handler"/>

+      </xs:sequence>

+      <xs:attribute name="class"/>

+      <xs:attribute name="name" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="handler">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element minOccurs="0" ref="order"/>

+      </xs:sequence>

+      <xs:attribute name="class" use="required"/>

+      <xs:attribute name="name" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="order">

+    <xs:complexType>

+      <xs:attribute name="phase" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="parameter">

+    <xs:complexType mixed="true">

+      <xs:sequence>

+        <xs:element minOccurs="0" maxOccurs="unbounded" ref="property"/>

+      </xs:sequence>

+      <xs:attribute name="locked" type="xs:boolean"/>

+      <xs:attribute name="name" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="property">

+    <xs:complexType>

+      <xs:attribute name="name" use="required" type="xs:NCName"/>

+      <xs:attribute name="value" use="required"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="exclude">

+    <xs:complexType>

+      <xs:attribute name="name" use="required"/>

+    </xs:complexType>

+  </xs:element>

+</xs:schema>

diff --git a/src/main/webapp/WEB-INF/red5-web.properties b/src/main/webapp/WEB-INF/red5-web.properties
new file mode 100644
index 0000000..518301d
--- /dev/null
+++ b/src/main/webapp/WEB-INF/red5-web.properties
@@ -0,0 +1,17 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#  
+#      http://www.apache.org/licenses/LICENSE-2.0
+#    	  
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+webapp.virtualHosts=*,localhost, 127.0.0.1
diff --git a/src/main/webapp/WEB-INF/red5-web.xml b/src/main/webapp/WEB-INF/red5-web.xml
new file mode 100644
index 0000000..82b106f
--- /dev/null
+++ b/src/main/webapp/WEB-INF/red5-web.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:lang="http://www.springframework.org/schema/lang"
+    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd                            
+    http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-3.1.xsd">
+	
+	<bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+	    <property name="location" value="/WEB-INF/red5-web.properties" />
+	</bean>
+	
+	<bean id="web.context" class="org.red5.server.Context" autowire="byType" />
+	
+	<bean id="web.scope" class="org.red5.server.scope.WebScope" init-method="register">
+		<property name="server" ref="red5.server" />
+		<property name="parent" ref="global.scope" />
+		<property name="context" ref="web.context" />
+		<property name="handler" ref="web.handler" />
+		<property name="contextPath" value="${webapp.contextPath}" />
+		<property name="virtualHosts" value="${webapp.virtualHosts}" />
+	</bean>
+
+	<import resource="classes/openmeetings-applicationContext.xml" />
+</beans>
diff --git a/src/main/webapp/WEB-INF/services/version.aar b/src/main/webapp/WEB-INF/services/version.aar
new file mode 100644
index 0000000..4408130
--- /dev/null
+++ b/src/main/webapp/WEB-INF/services/version.aar
Binary files differ
diff --git a/src/main/webapp/WEB-INF/spring-mvc-servlet.xml b/src/main/webapp/WEB-INF/spring-mvc-servlet.xml
new file mode 100644
index 0000000..dc9e7e8
--- /dev/null
+++ b/src/main/webapp/WEB-INF/spring-mvc-servlet.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<beans	xmlns="http://www.springframework.org/schema/beans"
+		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+		xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd" 
+/>
+
diff --git a/src/main/webapp/WEB-INF/velocity.properties b/src/main/webapp/WEB-INF/velocity.properties
new file mode 100644
index 0000000..a885347
--- /dev/null
+++ b/src/main/webapp/WEB-INF/velocity.properties
@@ -0,0 +1,41 @@
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#  
+#      http://www.apache.org/licenses/LICENSE-2.0
+#    	  
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
+#
+# specify three resource loaders to use
+#
+resource.loader = file, class
+
+#
+# for the loader we call 'file', set the FileResourceLoader as the
+# class to use, turn off caching
+#
+file.resource.loader.description = Velocity File Resource Loader
+file.resource.loader.class = org.apache.velocity.runtime.resource.loader.FileResourceLoader
+file.resource.loader.path = ./classes
+file.resource.loader.cache = false
+file.resource.loader.modificationCheckInterval = 0
+
+input.encoding=UTF-8
+output.encoding=UTF-8
+
+#
+#  for the loader we call 'class', use the ClasspathResourceLoader
+#
+class.resource.loader.description = Velocity Classpath Resource Loader
+class.resource.loader.class = org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
+runtime.log.logsystem.log4j.logger = org.apache.velocity.runtime.log.Log4JLogChute
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..b1e5a28
--- /dev/null
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+    <context-param>
+        <param-name>globalScope</param-name>
+        <param-value>default</param-value>
+    </context-param>
+    
+    <!-- Custom logging like described in Paul Gregoire Patch: 
+    http://gregoire.org/2008/09/18/logging-work-around/
+    THIS WILL NOT WORK for us as we can hardly rewrite all logging statements of hibernate
+    
+    -->
+    <listener>
+        <listener-class>org.apache.openmeetings.util.OMContextListener</listener-class>
+    </listener>
+    
+    <filter>
+        <filter-name>LoggerContextFilter</filter-name>
+        <filter-class>org.red5.logging.LoggerContextFilter</filter-class>
+    </filter>
+    
+    <filter-mapping>
+        <filter-name>LoggerContextFilter</filter-name>
+        <url-pattern>/*</url-pattern>
+    </filter-mapping>   
+    
+	<filter>
+		<filter-name>OpenmeetingsApplication</filter-name>
+		<filter-class>org.apache.wicket.protocol.ws.tomcat7.Tomcat7WebSocketFilter</filter-class>
+		<init-param>
+			<param-name>applicationClassName</param-name>
+			<param-value>org.apache.openmeetings.web.app.Application</param-value>
+		</init-param>
+		<init-param>
+			<param-name>configuration</param-name>
+			<param-value>@wicket.mode@</param-value>
+		</init-param>
+		<init-param>
+			<param-name>ignorePaths</param-name>
+			<param-value>conf,css,default,docs,images,js,persistence,public,screensharing,streams,upload,uploadtemp,services,networktest.,file.,remotelog.,screen.,DownloadHandler</param-value>
+		</init-param>
+	</filter>
+	<filter-mapping>
+		<filter-name>OpenmeetingsApplication</filter-name>
+		<url-pattern>/*</url-pattern>
+	</filter-mapping>
+	 
+    <context-param>
+        <param-name>contextConfigLocation</param-name>
+        <param-value>/WEB-INF/red5-*.xml</param-value>
+    </context-param>
+    <context-param>
+        <param-name>locatorFactorySelector</param-name>
+        <param-value>red5.xml</param-value>
+    </context-param>
+    <context-param>
+        <param-name>parentContextKey</param-name>
+        <param-value>default.context</param-value>
+    </context-param>
+    
+    <!-- remove the following servlet tags if you want to disable remoting for this application -->
+	<servlet>
+		<servlet-name>spring-mvc</servlet-name>
+		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
+	</servlet>
+    <servlet>
+        <servlet-name>gateway</servlet-name>
+        <servlet-class>org.red5.server.net.servlet.AMFGatewayServlet</servlet-class>
+    </servlet>
+    <servlet>
+        <servlet-name>DownloadHandler</servlet-name>
+        <servlet-class>org.apache.openmeetings.servlet.outputhandler.DownloadHandler</servlet-class>
+    </servlet>
+    <servlet>
+        <servlet-name>ExportToImage</servlet-name>
+        <servlet-class>org.apache.openmeetings.servlet.outputhandler.ExportToImage</servlet-class>
+    </servlet>
+    <!-- Axis2 Settings -->
+    <servlet>
+        <servlet-name>AxisServlet</servlet-name>
+        <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+	
+	<servlet-mapping>
+		<servlet-name>spring-mvc</servlet-name>
+		<url-pattern>*.upload</url-pattern>
+	</servlet-mapping>
+    <servlet-mapping>
+        <servlet-name>DownloadHandler</servlet-name>
+        <url-pattern>/DownloadHandler</url-pattern>
+    </servlet-mapping>
+    <servlet-mapping>
+        <servlet-name>ExportToImage</servlet-name>
+        <url-pattern>/ExportToImage</url-pattern>
+    </servlet-mapping>
+    <!-- Axis2 -->
+    <servlet-mapping>
+        <servlet-name>AxisServlet</servlet-name>
+        <url-pattern>/services/*</url-pattern>
+    </servlet-mapping>
+    <mime-mapping>
+        <extension>inc</extension>
+        <mime-type>text/plain</mime-type>
+    </mime-mapping>
+     
+    <security-constraint>
+        <web-resource-collection>
+            <web-resource-name>Forbidden</web-resource-name>
+            <url-pattern>/streams/*</url-pattern>
+        </web-resource-collection>
+        <web-resource-collection>
+            <web-resource-name>Forbidden</web-resource-name>
+            <url-pattern>/conf/*</url-pattern>
+        </web-resource-collection>
+        <web-resource-collection>
+            <web-resource-name>Forbidden</web-resource-name>
+            <url-pattern>/upload/*</url-pattern>
+        </web-resource-collection>
+        <web-resource-collection>
+            <web-resource-name>Forbidden</web-resource-name>
+            <url-pattern>/uploadtemp/*</url-pattern>
+        </web-resource-collection>
+        <auth-constraint/>
+    </security-constraint>
+    <login-config>
+        <auth-method>BASIC</auth-method>
+    </login-config>
+</web-app>
diff --git a/src/main/webapp/conf/om_ldap.cfg b/src/main/webapp/conf/om_ldap.cfg
new file mode 100644
index 0000000..265a0be
--- /dev/null
+++ b/src/main/webapp/conf/om_ldap.cfg
@@ -0,0 +1,91 @@
+#

+# Licensed to the Apache Software Foundation (ASF) under one

+# or more contributor license agreements.  See the NOTICE file

+# distributed with this work for additional information

+# regarding copyright ownership.  The ASF licenses this file

+# to you under the Apache License, Version 2.0 (the

+# "License"); you may not use this file except in compliance

+# with the License.  You may obtain a copy of the License at

+# 

+#     http://www.apache.org/licenses/LICENSE-2.0

+#         

+# Unless required by applicable law or agreed to in writing,

+# software distributed under the License is distributed on an

+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+# KIND, either express or implied.  See the License for the

+# specific language governing permissions and limitations

+# under the License.

+# 

+#ConfigurationFile for LDAP Auth

+#ConfigKey 'ldap_config_path' must be set in DataBase Configration of OM and point to this file

+#o.becherer,14.01.2009

+

+#specify the LDAP Server type

+# This parameter specifies the type of LDAP server your are defining

+# 

+# Supported values are "OpenLDAP" and "AD" for Active Directory (defaults to AD).

+ldap_server_type=OpenLDAP

+

+#LDAP URL

+# This is the URL used to access your LDAP server.

+

+# can be a simple URL like: 

+#   ldap_conn_url=ldap://myldap.myorg.com

+# or a list of simple URL separated by a space as in: 

+#   ldap_conn_url=ldap://myldap.myorg.com ldap://myldap2.myorg.com 

+# if you want to use "ldaps://" links, please be aware that you need to import your CA certificate

+#  to a java keystore and add the -Djavax.net.ssl.keyStore, -Djavax.net.ssl.keyStorePassword,

+#  -Djavax.net.ssl.trustStore and -Djavax.net.ssl.trustStorePassword parameters to your 

+#  JAVA_OPT environment

+ldap_conn_url=ldap://dc2.medint.local:389

+

+#Login distinguished name (DN) for Authentification on LDAP Server - keep emtpy if not requiered

+# Use DN with with ":" instead of "=". The conversion will be done in OM

+ldap_admin_dn=CN:dummy,OU:external users,OU:Other,DC:medint,DC:local

+

+#Loginpass for Authentification on LDAP Server - keep emtpy if not requiered

+ldap_passwd=dummy07

+

+#base to search for userdata(of user, that wants to login)

+# Use DN with with ":" instead of "=". The conversion will be done in OM

+ldap_search_base=OU:Company,DC:medint,DC:local

+

+# Fieldnames (can differ between Ldap servers) 

+field_user_principal=uid

+

+# Ldap auth type(SIMPLE,NONE)

+#  When using SIMPLE a simple bind is performed on the LDAP server to check user authentication

+#  When using NONE, the Ldap server is not used for authentication

+ldap_auth_type=SIMPLE

+

+# Ldap-password synchronization to OM DB

+#  Set this to 'yes' if you want OM to synchronize the user Ldap-password to OM's internal DB

+#  This enables local login of users if the ldap server is offline.

+#  If you want to disable the feature, set this to 'no'.

+#  Defautl value is 'yes'

+ldap_sync_password_to_om=yes

+

+

+# Ldap user attributes mapping

+# Set the following internal OM user attributes to their corresponding Ldap-attribute

+ldap_user_attr_lastname=sn

+ldap_user_attr_firstname=givenName

+ldap_user_attr_mail=mail

+ldap_user_attr_street=streetAddress

+ldap_user_attr_additionalname=description

+ldap_user_attr_fax=facsimileTelephoneNumber

+ldap_user_attr_zip=postalCode

+ldap_user_attr_country=co

+ldap_user_attr_town=l

+ldap_user_attr_phone=telephoneNumber

+

+# optional, only absolute URLs make sense

+#ldap_user_picture_uri=picture_uri

+

+# optional

+# the timezone has to mach an entry in the OpenMeetings table "omtimezones" otherwise the user will get

+# the timezone defined in the value of the conf_key "default.timezone" in OpenMeetings "configurations" table

+#ldap_user_timezone=timezone

+

+# Ldap ignore upper/lower case, convert all input to lower case

+ldap_use_lower_case=false

diff --git a/src/main/webapp/conf/sample_openldap_om_ldap.cfg b/src/main/webapp/conf/sample_openldap_om_ldap.cfg
new file mode 100644
index 0000000..c448c8d
--- /dev/null
+++ b/src/main/webapp/conf/sample_openldap_om_ldap.cfg
@@ -0,0 +1,53 @@
+#

+# Licensed to the Apache Software Foundation (ASF) under one

+# or more contributor license agreements.  See the NOTICE file

+# distributed with this work for additional information

+# regarding copyright ownership.  The ASF licenses this file

+# to you under the Apache License, Version 2.0 (the

+# "License"); you may not use this file except in compliance

+# with the License.  You may obtain a copy of the License at

+# 

+#     http://www.apache.org/licenses/LICENSE-2.0

+#         

+# Unless required by applicable law or agreed to in writing,

+# software distributed under the License is distributed on an

+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+# KIND, either express or implied.  See the License for the

+# specific language governing permissions and limitations

+# under the License.

+# 

+#ConfigurationFile for LDAP Auth

+#ConfigKey 'ldap_config_path' must be set in DataBase Configration of OM and point to this file

+#o.becherer,14.01.2009

+

+#specify the LDAP Server type

+ldap_server_type=OpenLDAP

+

+#LDAP URL

+ldap_conn_url=ldap://dc2.medint.local:389

+

+#Login distinguished name (DN) for Authentification on LDAP Server - keep emtpy if not requiered

+ldap_admin_dn=CN:dummy,OU:external users,OU:Other,DC:medint,DC:local

+

+#Loginpass for Authentification on LDAP Server - keep emtpy if not requiered

+ldap_passwd=dummy07

+

+#base to search for userdata(of user, that wants to login

+ldap_search_base=OU:Company,DC:medint,DC:local

+

+# Fieldnames (can differ between Ldap servers) 

+field_user_principal=uid

+

+# Ldap auth type(SIMPLE,NONE)

+ldap_auth_type=SIMPLE

+

+# Ldap ignore upper/lower case, convert all input to lower case

+ldap_use_lower_case=false

+

+# optional

+# the timezone has to mach an entry in the OpenMeetings table "omtimezones" otherwise the user will get

+# the timezone defined in the value of the conf_key "default.timezone" in OpenMeetings "configurations" table

+#ldap_user_timezone=timezone

+

+# optional, only absolute URLs make sense

+#ldap_user_picture_uri=picture_uri

diff --git a/src/main/webapp/css/admin.css b/src/main/webapp/css/admin.css
new file mode 100644
index 0000000..b877010
--- /dev/null
+++ b/src/main/webapp/css/admin.css
@@ -0,0 +1,351 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+.adminPanel {
+	min-width: 1070px;
+}
+/* 
+    ################################
+    Column layout admin section
+    ################################
+ */
+.adminPanelColumnTable {
+	display: inline-block;
+	vertical-align: top;
+}
+
+table.adminListTable {
+	max-width: 518px;
+	min-width: 518px;
+}
+
+table.adminListTable tr:nth-child(odd), table.adminListTableSmall tr:nth-child(odd) {
+	opacity: .8;
+}
+
+table.adminListTable tr:hover, table.adminListTableSmall tr:hover {
+	/*SHOULD BE MANUALLY IN SYNC WITH THEME .ui-state-hover */
+	border: 1px solid #74b2e2;
+	background: #e4f1fb url(theme_om/images/ui-bg_glass_100_e4f1fb_1x400.png) 50% 50% repeat-x;
+	font-weight: normal;
+	color: #0070a3;
+}
+
+table.adminListTable th.two_column_layout_column1 {
+	width: 136px;
+}
+
+table.adminListTable th.two_column_layout_column2 {
+	width: 354px;
+}
+
+table.adminListTable td.two_column_layout_column1 {
+	width: 136px;
+}
+
+table.adminListTable td.two_column_layout_column2 {
+	width: 354px;
+}
+
+table.adminListTable td div.two_column_layout_divcolumn1 {
+	word-wrap: break-word;
+	width: 136px;
+}
+
+table.adminListTable td div.two_column_layout_divcolumn2 {
+	word-wrap: break-word;
+	width: 354px;
+}
+
+table.adminListTable th.three_column_layout_column1 {
+	width: 96px;
+}
+
+table.adminListTable th.three_column_layout_column2 {
+	width: 150px;
+}
+
+table.adminListTable th.three_column_layout_column3 {
+	width: 244px;
+}
+
+.rooms table.adminListTable th.three_column_layout_column1 {
+	width: 46px;
+}
+
+.rooms table.adminListTable th.three_column_layout_column2 {
+	width: 370px;
+}
+
+.rooms table.adminListTable th.three_column_layout_column3 {
+	width: 74px;
+}
+
+table.adminListTableSmall th.three_column_layout_column1 {
+	width: 50px;
+}
+
+table.adminListTableSmall th.three_column_layout_column2 {
+	width: 50px;
+}
+
+table.adminListTableSmall th.three_column_layout_column3 {
+	width: 218px;
+}
+table.adminListTableSmall th.three_column_layout_column4 {
+	width: 150px;
+}
+table.adminListTableSmall th.three_column_layout_column5 {
+	width: 50px;
+}
+
+table.adminListTable td.three_column_layout_column1 {
+	width: 96px;
+}
+
+table.adminListTable td.three_column_layout_column2 {
+	width: 150px;
+}
+
+table.adminListTable td.three_column_layout_column3 {
+	width: 244px;
+}
+
+table.adminListTableSmall td.three_column_layout_column1 {
+	width: 50px;
+}
+
+table.adminListTableSmall td.three_column_layout_column2 {
+	width: 50px;
+}
+
+table.adminListTableSmall td.three_column_layout_column3 {
+	width: 218px;
+}
+table.adminListTableSmall td.three_column_layout_column4 {
+	width: 150px;
+}
+table.adminListTableSmall td.three_column_layout_column5 {
+	width: 50px;
+}
+
+table.adminListTable td div.three_column_layout_divcolumn1 {
+	word-wrap: break-word;
+	width: 96px;
+}
+
+table.adminListTable td div.three_column_layout_divcolumn2 {
+	word-wrap: break-word;
+	width: 150px;
+}
+
+table.adminListTable td div.three_column_layout_divcolumn3 {
+	word-wrap: break-word;
+	width: 244px;
+}
+
+.rooms table.adminListTable td div.three_column_layout_divcolumn1 {
+	word-wrap: break-word;
+	width: 44px;
+}
+
+.rooms table.adminListTable td div.three_column_layout_divcolumn2 {
+	word-wrap: break-word;
+	width: 382px;
+}
+
+.rooms table.adminListTable td div.three_column_layout_divcolumn3 {
+	word-wrap: break-word;
+	width: 74px;
+}
+
+table.adminListTableSmall td div.three_column_layout_divcolumn1 {
+	width: 50px;
+}
+
+table.adminListTableSmall td div.three_column_layout_divcolumn2 {
+	width: 50px;
+}
+
+table.adminListTableSmall td div.three_column_layout_divcolumn3 {
+	width: 218px;
+}
+
+table.adminListTableSmall td div.three_column_layout_divcolumn4 {
+	width: 150px;
+}
+
+table.adminListTableSmall td div.three_column_layout_divcolumn5 {
+	width: 50px;
+}
+
+table.adminListTable th.four_column_layout_column1 {
+	width: 96px;
+}
+
+table.adminListTable th.four_column_layout_column2 {
+	width: 130px;
+}
+
+table.adminListTable th.four_column_layout_column3 {
+	width: 132px;
+}
+
+table.adminListTable th.four_column_layout_column4 {
+	width: 132px;
+}
+
+table.adminListTable td.four_column_layout_column1 {
+	width: 96px;
+}
+
+table.adminListTable td.four_column_layout_column2 {
+	width: 130px;
+}
+
+table.adminListTable td.four_column_layout_column3 {
+	width: 132px;
+}
+
+table.adminListTable td.four_column_layout_column4 {
+	width: 132px;
+}
+
+table.adminListTable td div.four_column_layout_divcolumn1 {
+	word-wrap: break-word;
+	width: 96px;
+}
+
+table.adminListTable td div.four_column_layout_divcolumn2 {
+	word-wrap: break-word;
+	width: 130px;
+}
+
+table.adminListTable td div.four_column_layout_divcolumn3 {
+	word-wrap: break-word;
+	width: 132px;
+}
+
+table.adminListTable td div.four_column_layout_divcolumn4 {
+	word-wrap: break-word;
+	width: 132px;
+}
+
+.adminPanelColumnForm {
+	display: inline-block;
+	vertical-align: top;
+	margin-top: 2px;
+}
+
+.adminPanelColumnForm div.scrollcontent {
+	vertical-align: top;
+	height: 500px;
+	overflow-y: scroll;
+}
+
+.adminForm {
+	
+}
+.adminForm .btn {
+	width: 280px;
+}
+.adminForm input {
+	display: block;
+	float: left;
+	font-size: 14px;
+	padding: 0px 0px;
+	border: solid 1px #aacfe4;
+	width: 280px;
+	height: 20px;
+	margin: 2px 2px;
+}
+.adminForm input[type=checkbox], .adminForm input[type=radio] {
+	width: auto;
+}
+.adminForm input.formcheckbox {
+	display: block;
+	float: left;
+	font-size: 14px;
+	padding: 0px 0px;
+	border: none;
+	width: 20px;
+	height: 20px;
+	margin: 2px 2px;
+}
+
+.adminForm fieldset {
+	margin-top: 4px;
+	padding: 4px;
+}
+
+.adminForm legend {
+	padding: 0.2em 0.5em;
+	margin: 0px 10px;
+	font-style: italic;
+	text-align: right;
+}
+
+.adminForm textarea {
+	display: block;
+	float: left;
+	font-size: 14px;
+	padding: 0px 0px;
+	border: solid 1px #aacfe4;
+	width: 280px;
+	height: 60px;
+	margin: 2px 2px;
+}
+
+.adminForm div.formelement {
+	display: block;
+	clear: both;
+	max-width: 490px;
+}
+
+.adminForm select {
+	float: left;
+	height: 20px;
+	font-size: 14px;
+	padding: 0px 0px;
+	border: solid 1px #aacfe4;
+	width: 282px;
+	margin: 2px 2px 2px;
+}
+
+.adminForm label {
+	display: block;
+	font-size: 14px;
+	font-weight: bold;
+	text-align: right;
+	width: 180px;
+	float: left;
+	margin: 4px 2px 2px;
+}
+
+.adminBackupForm div.formelement {
+    display: block;
+    clear: both;
+    max-width: 1240px;
+}
+.adminFormsFeedbackPanel {
+	position:absolute;
+	left:550px;
+	width: 480px;
+	bottom: 16px;
+	z-index:999;
+}
diff --git a/src/main/webapp/css/calendar.css b/src/main/webapp/css/calendar.css
new file mode 100644
index 0000000..1787b64
--- /dev/null
+++ b/src/main/webapp/css/calendar.css
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+.appointmentPopUp td {
+	vertical-align: top;
+}
+
+.appointmentPopUp input[name="appointmentName"] {
+	width: 420px;
+}
+
+.appointmentPopUp input[name="password"] {
+	width: 420px;
+}
+
+.appointmentPopUp input[name="appointmentLocation"] {
+	width: 420px;
+}
+
+.appointmentPopUp textarea[name="appointmentDescription"] {
+	width: 424px;
+	height: 80px;
+}
+
+.appointmentPopUp select[name="remind"] {
+	width: 426px;
+}
+
+.appointmentPopUp select[name="room.roomtype"] {
+	width: 426px;
+}
+
+.appointmentPopUp select[name="room"] {
+	width: 426px;
+}
+
+.appointmentPopUp .formNewButton {
+	float: left;
+}
+
+.appointmentPopUp .attendeeContainer {
+	background-color: #FFFFFF;
+	border: solid 1px #aacfe4;
+	width: 424px;
+	height: 100px;
+	overflow-x: scroll;
+	float: left;
+}
+
+.appointmentPopUp .attendeeContainer table td:FIRST-CHILD div {
+	width: 130px;
+	overflow: hidden;
+	text-overflow: ellipsis;
+	white-space: nowrap;
+}
+
+.appointmentPopUp .attendeeContainer table td:nth-child(2) div {
+	width: 260px;
+	overflow: hidden;
+	text-overflow: ellipsis;
+	white-space: nowrap;
+}
+
+.appointmentPopUp .attendeeContainer table td:nth-child(3) div {
+	width: 20px;
+}
+.appointment.attendees {
+	width: 100%;
+}
diff --git a/src/main/webapp/css/forms.css b/src/main/webapp/css/forms.css
new file mode 100644
index 0000000..d3fb7c9
--- /dev/null
+++ b/src/main/webapp/css/forms.css
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+div.formSaveBar {
+	width: 100%;
+	height: 22px;
+}
+ 
+div.formSaveButton input {
+	background: url(images/forms/disk.png) no-repeat;
+	float: left;
+	cursor: pointer;
+	width: 18px;
+	height: 18px;
+	border: none;
+	margin-left: 2px;
+	margin-top: 2px;
+}
+
+div.formNewButton input {
+	background: url(images/forms/plus_icon.png) no-repeat;
+	float: left;
+	cursor: pointer;
+	width: 18px;
+	height: 18px;
+	border: none;
+	margin-left: 2px;
+	margin-top: 2px;
+}
+
+div.formNewButton.disabled input {
+	background: url(images/forms/plus_icon_disabled.png) no-repeat;
+	float: left;
+	cursor: default;
+	width: 18px;
+	height: 18px;
+	border: none;
+	margin-left: 2px;
+	margin-top: 2px;
+}
+
+div.formRefreshButton input {
+	background: url(images/forms/arrow_refresh_small.png) no-repeat;
+	float: left;
+	cursor: pointer;
+	width: 18px;
+	height: 18px;
+	border: none;
+	margin-left: 2px;
+	margin-top: 2px;
+}
+
+div.formCancelButton input {
+	background: url(images/forms/cancel_icon.png) no-repeat;
+	float: left;
+	cursor: pointer;
+	width: 18px;
+	height: 18px;
+	border: none;
+	margin-left: 2px;
+	margin-top: 2px;
+}
\ No newline at end of file
diff --git a/src/main/webapp/css/history.css b/src/main/webapp/css/history.css
new file mode 100644
index 0000000..d78d4be
--- /dev/null
+++ b/src/main/webapp/css/history.css
@@ -0,0 +1,24 @@
+/*

+ *

+ *  Licensed to the Apache Software Foundation (ASF) under one or more

+ *  contributor license agreements.  See the NOTICE file distributed with

+ *  this work for additional information regarding copyright ownership.

+ *  The ASF licenses this file to You under the Apache License, Version 2.0

+ *  (the "License"); you may not use this file except in compliance with

+ *  the License.  You may obtain a copy of the License at

+ *

+ *      http://www.apache.org/licenses/LICENSE-2.0

+ *

+ *  Unless required by applicable law or agreed to in writing, software

+ *  distributed under the License is distributed on an "AS IS" BASIS,

+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+ *  See the License for the specific language governing permissions and

+ *  limitations under the License.

+ *

+ */

+/* This CSS stylesheet defines styles used by required elements in a flex application page that supports browser history */

+

+#ie_historyFrame { width: 0px; height: 0px; display:none }

+#firefox_anchorDiv { width: 0px; height: 0px; display:none }

+#safari_formDiv { width: 0px; height: 0px; display:none }

+#safari_rememberDiv { width: 0px; height: 0px; display:none }

diff --git a/src/main/webapp/css/images/add.png b/src/main/webapp/css/images/add.png
new file mode 100644
index 0000000..6332fef
--- /dev/null
+++ b/src/main/webapp/css/images/add.png
Binary files differ
diff --git a/src/main/webapp/css/images/arrow_down.png b/src/main/webapp/css/images/arrow_down.png
new file mode 100644
index 0000000..e5b352b
--- /dev/null
+++ b/src/main/webapp/css/images/arrow_down.png
Binary files differ
diff --git a/src/main/webapp/css/images/arrow_right.png b/src/main/webapp/css/images/arrow_right.png
new file mode 100644
index 0000000..3ef0b77
--- /dev/null
+++ b/src/main/webapp/css/images/arrow_right.png
Binary files differ
diff --git a/src/main/webapp/css/images/basket_put.png b/src/main/webapp/css/images/basket_put.png
new file mode 100644
index 0000000..be62faa
--- /dev/null
+++ b/src/main/webapp/css/images/basket_put.png
Binary files differ
diff --git a/src/main/webapp/css/images/bullet_green.png b/src/main/webapp/css/images/bullet_green.png
new file mode 100644
index 0000000..058ad26
--- /dev/null
+++ b/src/main/webapp/css/images/bullet_green.png
Binary files differ
diff --git a/src/main/webapp/css/images/bullet_red.png b/src/main/webapp/css/images/bullet_red.png
new file mode 100644
index 0000000..0cd8031
--- /dev/null
+++ b/src/main/webapp/css/images/bullet_red.png
Binary files differ
diff --git a/src/main/webapp/css/images/cross.png b/src/main/webapp/css/images/cross.png
new file mode 100644
index 0000000..1514d51
--- /dev/null
+++ b/src/main/webapp/css/images/cross.png
Binary files differ
diff --git a/src/main/webapp/css/images/email_add.png b/src/main/webapp/css/images/email_add.png
new file mode 100644
index 0000000..6c93368
--- /dev/null
+++ b/src/main/webapp/css/images/email_add.png
Binary files differ
diff --git a/src/main/webapp/css/images/email_delete.png b/src/main/webapp/css/images/email_delete.png
new file mode 100644
index 0000000..a9932b1
--- /dev/null
+++ b/src/main/webapp/css/images/email_delete.png
Binary files differ
diff --git a/src/main/webapp/css/images/email_go.png b/src/main/webapp/css/images/email_go.png
new file mode 100644
index 0000000..4a6c5d3
--- /dev/null
+++ b/src/main/webapp/css/images/email_go.png
Binary files differ
diff --git a/src/main/webapp/css/images/film.png b/src/main/webapp/css/images/film.png
new file mode 100644
index 0000000..b0ce7bb
--- /dev/null
+++ b/src/main/webapp/css/images/film.png
Binary files differ
diff --git a/src/main/webapp/css/images/film_error.png b/src/main/webapp/css/images/film_error.png
new file mode 100644
index 0000000..88f3d69
--- /dev/null
+++ b/src/main/webapp/css/images/film_error.png
Binary files differ
diff --git a/src/main/webapp/css/images/film_processing.png b/src/main/webapp/css/images/film_processing.png
new file mode 100644
index 0000000..fb09a02
--- /dev/null
+++ b/src/main/webapp/css/images/film_processing.png
Binary files differ
diff --git a/src/main/webapp/css/images/folder.png b/src/main/webapp/css/images/folder.png
new file mode 100644
index 0000000..784e8fa
--- /dev/null
+++ b/src/main/webapp/css/images/folder.png
Binary files differ
diff --git a/src/main/webapp/css/images/folder_add.png b/src/main/webapp/css/images/folder_add.png
new file mode 100644
index 0000000..529fe8f
--- /dev/null
+++ b/src/main/webapp/css/images/folder_add.png
Binary files differ
diff --git a/src/main/webapp/css/images/forms/arrow_refresh_small.png b/src/main/webapp/css/images/forms/arrow_refresh_small.png
new file mode 100644
index 0000000..d3087df
--- /dev/null
+++ b/src/main/webapp/css/images/forms/arrow_refresh_small.png
Binary files differ
diff --git a/src/main/webapp/css/images/forms/cancel_icon.png b/src/main/webapp/css/images/forms/cancel_icon.png
new file mode 100644
index 0000000..2d26062
--- /dev/null
+++ b/src/main/webapp/css/images/forms/cancel_icon.png
Binary files differ
diff --git a/src/main/webapp/css/images/forms/disk.png b/src/main/webapp/css/images/forms/disk.png
new file mode 100644
index 0000000..99d532e
--- /dev/null
+++ b/src/main/webapp/css/images/forms/disk.png
Binary files differ
diff --git a/src/main/webapp/css/images/forms/plus_icon.png b/src/main/webapp/css/images/forms/plus_icon.png
new file mode 100644
index 0000000..acec291
--- /dev/null
+++ b/src/main/webapp/css/images/forms/plus_icon.png
Binary files differ
diff --git a/src/main/webapp/css/images/forms/plus_icon_disabled.png b/src/main/webapp/css/images/forms/plus_icon_disabled.png
new file mode 100644
index 0000000..cfb4776
--- /dev/null
+++ b/src/main/webapp/css/images/forms/plus_icon_disabled.png
Binary files differ
diff --git a/src/main/webapp/css/images/house_link.png b/src/main/webapp/css/images/house_link.png
new file mode 100644
index 0000000..be2c271
--- /dev/null
+++ b/src/main/webapp/css/images/house_link.png
Binary files differ
diff --git a/src/main/webapp/css/images/information.png b/src/main/webapp/css/images/information.png
new file mode 100644
index 0000000..12cd1ae
--- /dev/null
+++ b/src/main/webapp/css/images/information.png
Binary files differ
diff --git a/src/main/webapp/css/images/refresh.gif b/src/main/webapp/css/images/refresh.gif
new file mode 100644
index 0000000..7aff1a9
--- /dev/null
+++ b/src/main/webapp/css/images/refresh.gif
Binary files differ
diff --git a/src/main/webapp/css/images/script_error.png b/src/main/webapp/css/images/script_error.png
new file mode 100644
index 0000000..0491954
--- /dev/null
+++ b/src/main/webapp/css/images/script_error.png
Binary files differ
diff --git a/src/main/webapp/css/images/tick.png b/src/main/webapp/css/images/tick.png
new file mode 100644
index 0000000..a9925a0
--- /dev/null
+++ b/src/main/webapp/css/images/tick.png
Binary files differ
diff --git a/src/main/webapp/css/images/trash.png b/src/main/webapp/css/images/trash.png
new file mode 100644
index 0000000..b92592b
--- /dev/null
+++ b/src/main/webapp/css/images/trash.png
Binary files differ
diff --git a/src/main/webapp/css/images/user.png b/src/main/webapp/css/images/user.png
new file mode 100644
index 0000000..79f35cc
--- /dev/null
+++ b/src/main/webapp/css/images/user.png
Binary files differ
diff --git a/src/main/webapp/css/images/user_go.png b/src/main/webapp/css/images/user_go.png
new file mode 100644
index 0000000..0468cf0
--- /dev/null
+++ b/src/main/webapp/css/images/user_go.png
Binary files differ
diff --git a/src/main/webapp/css/images/world_link.png b/src/main/webapp/css/images/world_link.png
new file mode 100644
index 0000000..b8edc12
--- /dev/null
+++ b/src/main/webapp/css/images/world_link.png
Binary files differ
diff --git a/src/main/webapp/css/jquery.ui.menubar.css b/src/main/webapp/css/jquery.ui.menubar.css
new file mode 100644
index 0000000..03e04af
--- /dev/null
+++ b/src/main/webapp/css/jquery.ui.menubar.css
@@ -0,0 +1,35 @@
+/*

+ * jQuery UI Menubar @VERSION

+ *

+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)

+ * Dual licensed under the MIT or GPL Version 2 licenses.

+ * http://jquery.org/license

+ */

+.ui-menubar {

+	list-style: none;

+	margin: 0; padding-left: 0;

+}

+

+.ui-menubar-item {

+	float: left;

+}

+

+.ui-menubar .ui-button {

+	float: left;

+	font-weight: bold;

+	border-top-width: 0 !important;

+	border-bottom-width: 0 !important;

+	margin: 0;

+	outline: none;

+}

+.ui-menubar .ui-menubar-link {

+	border-right: 1px dashed transparent;

+	border-left: 1px dashed transparent;

+}

+

+.ui-menubar .ui-menu {

+	width: 200px;

+	position: absolute;

+	z-index: 9999;

+	font-weight: normal;

+}

diff --git a/src/main/webapp/css/theme.css b/src/main/webapp/css/theme.css
new file mode 100644
index 0000000..1fd91d1
--- /dev/null
+++ b/src/main/webapp/css/theme.css
@@ -0,0 +1,580 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+html, body {
+	height: 100%;
+	margin: 0;
+	font-family: Arial, Helvetica, sans-serif;
+}
+#header {
+	font-size: 28px;
+	line-height: 40px;
+	font-weight: bold;
+	background-image: url(../public/themes/basic-theme/general/logo.png);
+	background-repeat: no-repeat;
+	padding-left: 150px;
+}
+#topLinks {
+	position: absolute;
+	top: 10px;
+	right: 10px;
+}
+
+#topLinks span {
+	padding-right: 5px;
+	padding-left: 5px;
+	border-right: 1px solid black;
+}
+
+#topLinks span:last-child {
+	border-right: none;
+}
+
+#menu {
+	background-color: #AFCBFB;
+	margin-top: 10px;
+}
+.ui-menubar .ui-menu {
+	width: 250px;
+}
+.ui-menu .ui-menu-item a {
+	line-height: 1.2em !important;
+	padding-bottom: 5px !important;
+}
+.menuName {
+	font-weight: bold;
+}
+.menuDesc {
+	font-size: smaller;
+	line-height: 1em !important;
+}
+
+#busy_indicator {
+	display: none;
+	float: right;
+	margin-top: 5px;
+	z-index: 1000;
+	width: 200px;
+	font-weight: bold;
+	text-align: center;
+	font-size: 1em;
+	color: #FF0000;
+}
+
+#chatPanel {
+	position: fixed;
+	z-index: 2000;
+	bottom: 0px;
+	right: 10px;
+	width: 600px;
+}
+#chatPanel #chat {
+	height: 10px;
+	background-color: #F2FAFF;
+}
+#chatPanel #chat #controlBlock {
+	background-color: #5294BB;
+}
+#chatPanel #chat #controlBlock:hover {
+	background-color: #2779aa;
+}
+#chatPanel #chat #controlBlock #control {
+	text-align: center;
+	margin-left: 50%;
+	margin-right: 50%;
+}
+#chatPanel #chat #messageArea .date {
+    margin-right: 5px;
+    font-style: italic;
+    font-size: smaller;
+}
+#chatPanel #chat #messageArea .from {
+	margin-left: 5px;
+    margin-right: 5px;
+	font-weight: bold;
+}
+#messageArea {
+	height: 165px;
+	overflow-y: auto;
+}
+#chatMessage .wysiwyg-editor {
+	height: 50px;
+	max-height: 50px;
+}
+.clickable {
+	cursor: pointer;
+}
+.dragbox-content .tableWrapper {
+	width: auto;
+	height: 100px;
+}
+.dragbox-content .tableWrapper .adminListTable {
+	max-width: none;
+	min-width: 0;
+}
+.help.support h3 {
+	margin-bottom: 5px;
+}
+div.tableWrapper {
+	background-color: #FFFFFF;
+	border: solid 1px #aacfe4;
+	width: 536px;
+	height: 500px;
+	overflow-y: scroll;
+}
+
+div.tableWrapperSmall {
+	background-color: #FFFFFF;
+	border: solid 1px #aacfe4;
+	width: 536px;
+	height: 100px;
+	overflow-y: scroll;
+}
+
+.formelementradiobox {
+	margin-left: 100px;
+}
+
+.formelementradiobox input {
+	margin: 0px 0px;
+	border: none;
+	width: 20px;
+}
+
+.formelementradiobox label {
+	width: 260px;
+	margin: 0px
+}
+
+.addLanguagePanel {
+	display: block;
+}
+
+.addLanguagePanel select {
+	padding: 0px 0px;
+	border: solid 1px #aacfe4;
+	width: 140px;
+	font-size: 12px;
+	margin-left: 2px;
+}
+
+.pagedEntityListPanel {
+	margin-left: 2px;
+	display: inline-block;
+}
+
+.searchForm {
+	display: inline-block;
+}
+
+.pagedEntityListPanel select {
+	padding: 0px 0px;
+	border: solid 1px #aacfe4;
+	width: 60px;
+	font-size: 12px;
+	display: inline;
+	float: none;
+}
+
+.pagedEntityListPanel input {
+	font-size: 14px;
+	padding: 0px 0px;
+	border: solid 1px #aacfe4;
+	width: 100px;
+	height: 20px;
+	margin: 2px 2px;
+	display: inline;
+	float: none;
+}
+
+.goto, .goto :link, .goto :hover {
+	font-size: 14px;
+	line-height: 14px;
+	text-decoration: none;
+	text-align: center;
+	vertical-align: middle;
+	min-width: 16px;
+}
+
+.goto.icon {
+    display: inline-block;
+    width: 16px;
+    height: 16px;
+    border: none;
+    margin: 0px;
+    padding: 0px;
+    zoom: 1.2;
+}
+
+.ui-dialog {
+	-moz-box-shadow: 3px 3px 4px #000;
+	-webkit-box-shadow: 3px 3px 4px #000;
+	/* For IE 8 */
+	-ms-filter:
+		"progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#000000')";
+	/* For IE 5.5 - 7 */
+	filter: progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135,
+		Color='#000000' );
+	box-shadow: 3px 3px 4px #000;
+}
+
+.sort-icon {
+	display: inline-block !important;
+	text-indent: 0px !important;
+}
+
+.start_step1, .start_step2, .start_step3, .start_step4  {
+	padding-left: 30px;
+	margin: 5px 0px 5px 0px; 
+	background-size: contain;
+	background-repeat: no-repeat;
+	display: inline-block;
+}
+.start_step1 {
+	background-image: url(../public/themes/basic-theme/dashboard/wizzard_button_1.png);
+}
+.start_step2 {
+	background-image: url(../public/themes/basic-theme/dashboard/wizzard_button_2.png);
+	margin-left: 20px;
+}
+.start_step3 {
+	background-image: url(../public/themes/basic-theme/dashboard/wizzard_button_3.png);
+	margin-left: 40px;
+}
+.start_step4 {
+	background-image: url(../public/themes/basic-theme/dashboard/wizzard_button_4.png);
+	margin-left: 60px;
+}
+.widget {
+	width: 100%;
+}
+.widget td {
+	min-width: 150px;
+}
+#contents .dragbox-content {
+	min-height: 300px;
+	max-height: 300px;
+}
+#feedcontainer {
+	overflow: auto;
+}
+.recording {
+	width: 100%;
+	display: inline-block;
+}
+.recording .files {
+	width: 250px;
+	border: 1px solid #ccc;
+}
+.recording .files .trees {
+	min-height: 400px;
+	max-height: 600px;
+	overflow-x: hidden;
+	overflow-y: auto;
+}
+.recording .files .sizes table, .recording .files .info table {
+	width: 100%;
+}
+.recording .files .info input {
+	width: 100%;
+	padding-right: 5px;
+	padding-left: 5px;
+}
+.recording .video .player {
+	width: 100%;
+	display: inline-block;
+	box-shadow: 0 0 10px 1px rgba(74, 137, 151, 0.5);
+}
+.recording .video .player video {
+	width: 100%;
+}
+.align-left {
+	float: left;
+}
+.align-right {
+	float: right;
+}
+.clear {
+	clear: both;
+}
+.om-icon {
+	background-repeat: no-repeat;
+	width: 18px;
+	height: 18px;
+	border: none;
+	margin-left: 2px;
+	margin-top: 2px;
+	display: inline-block !important;
+}
+.trees a.om-icon {
+	width: auto;
+}
+.trees a.om-icon span {
+	white-space: nowrap;
+	padding-right: 20px;
+}
+.cross.om-icon {
+	background-image: url(images/cross.png);
+}
+.tick.om-icon {
+	background-image: url(images/tick.png);
+}
+.add.om-icon {
+	background-image: url(images/add.png);
+}
+.new-email.om-icon {
+	background-image: url(images/email_add.png);
+}
+.user.om-icon {
+	background: url(images/user.png) no-repeat;
+}
+.refresh.om-icon {
+	background: url(images/refresh.gif) no-repeat;
+}
+.trash.om-icon {
+	background: url(images/trash.png) no-repeat;
+}
+.folder-create.om-icon {
+	background: url(images/folder_add.png) no-repeat;
+}
+.recording.om-icon {
+	padding-left: 18px;
+	background-image: url(images/film.png);
+	background-repeat: no-repeat;
+}
+.broken-recording.om-icon {
+	padding-left: 18px;
+	background-image: url(images/film_error.png);
+	background-repeat: no-repeat;
+}
+.processing-recording.om-icon {
+	padding-left: 18px;
+	background-image: url(images/film_processing.png);
+	background-repeat: no-repeat;
+}
+.my-recordings.om-icon {
+	padding-left: 18px;
+	background-image: url(images/house_link.png);
+	background-repeat: no-repeat;
+}
+.public-recordings.om-icon {
+	padding-left: 18px;
+	background-image: url(images/world_link.png);
+	background-repeat: no-repeat;
+}
+.selected .recording.item {
+	background-color: #0099FF;
+}
+.recording.item {
+	position: relative;
+}
+.recording.item .name {
+	color: black;
+}
+.recording.item .errors {
+	position: absolute;
+	right: 0px;
+	background-image: url(images/script_error.png);
+	width: 16px;
+	height: 16px;
+	background-repeat: no-repeat;
+	padding-right: 20px;
+}
+.recording.dialog.errors {
+	width: 600px;
+	height: 500px;
+	font-size: small;
+}
+.recording.dialog.errors .alert {
+	color: red;
+}
+.recording.dialog.errors .message {
+	display: block;
+    unicode-bidi: embed;
+    font-family: monospace;
+    white-space: pre;
+    margin: 0;
+}
+.online.om-icon {
+	background-image: url(images/bullet_green.png);
+}
+.offline.om-icon {
+	background-image: url(images/bullet_red.png);
+}
+.error {
+	color: red;
+}
+.message {
+    margin: 50px;
+    border: 1px solid black;
+    padding: 15px;
+    -webkit-border-radius: 8px;
+    border-radius: 8px;
+}
+.ui-progressbar div { 
+	text-align: center;
+	padding-top: 7px;
+	font-weight: bold;
+}
+table.messages {
+	width: 100%;
+	min-height: 500px;
+}
+table.messages td.side, table.messages td.main {
+	vertical-align: top;
+}
+table.messages td.side.left {
+	min-width: 150px;
+	overflow-x: hidden;
+}
+table.messages td.side.right {
+	min-width: 200px;
+	overflow-x: hidden;
+}
+table.messages td.main {
+	width: 100%;
+}
+.email {
+	padding-left: 25px;
+	background-repeat: no-repeat !important;
+	background-position: 5px 3px !important;
+	padding-top: 2px;
+	display: block;
+	text-align:left;
+}
+.email.new {
+	background-image: url(images/email_add.png);
+	font-weight: normal;
+}
+.email.new .ui-button-text, .email.newdir .ui-button-text {
+	padding: 0;
+}
+.email.inbox {
+	background-image: url(images/basket_put.png);
+}
+.email.sent {
+	background-image: url(images/email_go.png);
+}
+.email.trash {
+	background-image: url(images/email_delete.png);
+}
+.email.newdir {
+	background-image: url(images/folder_add.png);
+	font-weight: normal;
+}
+.email.folder {
+	background-image: url(images/folder.png);
+	font-weight: normal;
+	position: relative;
+}
+.email.folder .delete {
+	position:absolute;
+	right: 2px;
+	top: 2px;
+	background-image: url(images/cross.png);
+	font-weight: normal;
+	padding: 0;
+	display: inline-block;
+	background-position: 0;
+	width: 18px;
+	height: 18px;
+}
+.messages.column.label {
+	width: 20px;
+	min-height: inherit;
+}
+input[type="text"].messages.text, .messages.text.to {
+	width: 100%;
+}
+textarea.messages.body {
+	width: 100%;
+	height: 300px;
+}
+select.messages.selector {
+	width: 120px;
+}
+.info-text {
+	background-image: url(images/information.png);
+	background-repeat: no-repeat;
+	background-position: 2px 2px;
+	cursor: default;
+	border: none;
+	padding-left: 20px;
+	font-style: italic;
+}
+.invisible-form-component {
+	position: absolute;
+	top: -9999px;
+	width: 1px;
+	height: 1px;
+}
+#messagesTable tr.selected {
+	background-color: #d7ebf9;
+}
+#messagesTable tr.unread {
+	font-weight: bold;
+}
+.fht-tbody {
+	background-color: white;
+}
+#ui-datepicker-div{
+    z-index: 100 !important;
+}
+.room-list {
+	border-collapse: collapse;
+}
+.room-row {
+	background-color: rgb(248, 248, 248);
+	border-bottom: 5px solid white;
+}
+.select2-results .select2-result .select2-result-label .user.external
+, .select2-results .select2-result .select2-result-label .user.internal
+, .select2-choices .select2-search-choice .user.external
+, .select2-choices .select2-search-choice .user.internal {
+	padding-left: 18px;
+	background-repeat: no-repeat;
+	background-position: 0px 2px;
+}
+.select2-results .select2-result .select2-result-label .user.external
+, .select2-choices .select2-search-choice .user.external {
+	background-image: url(images/user_go.png);
+}
+.select2-results .select2-result .select2-result-label .user.internal
+, .select2-choices .select2-search-choice .user.internal {
+	background-image: url(images/user.png);
+}
+.page.recording {
+	padding-top: 40px;
+}
+.page.recording .video, .page.recording .info {
+	display: inline-block;
+	float: left;
+	padding-left: 20px;
+}
+.page.recording .video {
+	min-width: 400px;
+}
+.rooms.title {
+	font-weight: bold;
+	padding: 10px;
+	padding-bottom: 0;
+}
+.rooms.desc {
+	margin: 10px;
+	max-width: 900px;
+}
diff --git a/src/main/webapp/css/theme_om/images/animated-overlay.gif b/src/main/webapp/css/theme_om/images/animated-overlay.gif
new file mode 100644
index 0000000..d441f75
--- /dev/null
+++ b/src/main/webapp/css/theme_om/images/animated-overlay.gif
Binary files differ
diff --git a/src/main/webapp/css/theme_om/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png b/src/main/webapp/css/theme_om/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png
new file mode 100644
index 0000000..3d227f6
--- /dev/null
+++ b/src/main/webapp/css/theme_om/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png
Binary files differ
diff --git a/src/main/webapp/css/theme_om/images/ui-bg_flat_15_cd0a0a_40x100.png b/src/main/webapp/css/theme_om/images/ui-bg_flat_15_cd0a0a_40x100.png
new file mode 100644
index 0000000..4f7b7da
--- /dev/null
+++ b/src/main/webapp/css/theme_om/images/ui-bg_flat_15_cd0a0a_40x100.png
Binary files differ
diff --git a/src/main/webapp/css/theme_om/images/ui-bg_glass_100_e4f1fb_1x400.png b/src/main/webapp/css/theme_om/images/ui-bg_glass_100_e4f1fb_1x400.png
new file mode 100644
index 0000000..cdbffcd
--- /dev/null
+++ b/src/main/webapp/css/theme_om/images/ui-bg_glass_100_e4f1fb_1x400.png
Binary files differ
diff --git a/src/main/webapp/css/theme_om/images/ui-bg_glass_50_3baae3_1x400.png b/src/main/webapp/css/theme_om/images/ui-bg_glass_50_3baae3_1x400.png
new file mode 100644
index 0000000..06151c3
--- /dev/null
+++ b/src/main/webapp/css/theme_om/images/ui-bg_glass_50_3baae3_1x400.png
Binary files differ
diff --git a/src/main/webapp/css/theme_om/images/ui-bg_glass_80_d7ebf9_1x400.png b/src/main/webapp/css/theme_om/images/ui-bg_glass_80_d7ebf9_1x400.png
new file mode 100644
index 0000000..f45c2fd
--- /dev/null
+++ b/src/main/webapp/css/theme_om/images/ui-bg_glass_80_d7ebf9_1x400.png
Binary files differ
diff --git a/src/main/webapp/css/theme_om/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png b/src/main/webapp/css/theme_om/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png
new file mode 100644
index 0000000..86f4fab
--- /dev/null
+++ b/src/main/webapp/css/theme_om/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png
Binary files differ
diff --git a/src/main/webapp/css/theme_om/images/ui-bg_highlight-hard_70_000000_1x100.png b/src/main/webapp/css/theme_om/images/ui-bg_highlight-hard_70_000000_1x100.png
new file mode 100644
index 0000000..9462a93
--- /dev/null
+++ b/src/main/webapp/css/theme_om/images/ui-bg_highlight-hard_70_000000_1x100.png
Binary files differ
diff --git a/src/main/webapp/css/theme_om/images/ui-bg_highlight-soft_100_deedf7_1x100.png b/src/main/webapp/css/theme_om/images/ui-bg_highlight-soft_100_deedf7_1x100.png
new file mode 100644
index 0000000..5304e00
--- /dev/null
+++ b/src/main/webapp/css/theme_om/images/ui-bg_highlight-soft_100_deedf7_1x100.png
Binary files differ
diff --git a/src/main/webapp/css/theme_om/images/ui-bg_highlight-soft_25_ffef8f_1x100.png b/src/main/webapp/css/theme_om/images/ui-bg_highlight-soft_25_ffef8f_1x100.png
new file mode 100644
index 0000000..a58f8f0
--- /dev/null
+++ b/src/main/webapp/css/theme_om/images/ui-bg_highlight-soft_25_ffef8f_1x100.png
Binary files differ
diff --git a/src/main/webapp/css/theme_om/images/ui-icons_2694e8_256x240.png b/src/main/webapp/css/theme_om/images/ui-icons_2694e8_256x240.png
new file mode 100644
index 0000000..252bf0f
--- /dev/null
+++ b/src/main/webapp/css/theme_om/images/ui-icons_2694e8_256x240.png
Binary files differ
diff --git a/src/main/webapp/css/theme_om/images/ui-icons_2e83ff_256x240.png b/src/main/webapp/css/theme_om/images/ui-icons_2e83ff_256x240.png
new file mode 100644
index 0000000..84b601b
--- /dev/null
+++ b/src/main/webapp/css/theme_om/images/ui-icons_2e83ff_256x240.png
Binary files differ
diff --git a/src/main/webapp/css/theme_om/images/ui-icons_3d80b3_256x240.png b/src/main/webapp/css/theme_om/images/ui-icons_3d80b3_256x240.png
new file mode 100644
index 0000000..ff1c26f
--- /dev/null
+++ b/src/main/webapp/css/theme_om/images/ui-icons_3d80b3_256x240.png
Binary files differ
diff --git a/src/main/webapp/css/theme_om/images/ui-icons_72a7cf_256x240.png b/src/main/webapp/css/theme_om/images/ui-icons_72a7cf_256x240.png
new file mode 100644
index 0000000..9d07914
--- /dev/null
+++ b/src/main/webapp/css/theme_om/images/ui-icons_72a7cf_256x240.png
Binary files differ
diff --git a/src/main/webapp/css/theme_om/images/ui-icons_ffffff_256x240.png b/src/main/webapp/css/theme_om/images/ui-icons_ffffff_256x240.png
new file mode 100644
index 0000000..4f624bb
--- /dev/null
+++ b/src/main/webapp/css/theme_om/images/ui-icons_ffffff_256x240.png
Binary files differ
diff --git a/src/main/webapp/css/theme_om/jquery-ui-1.10.4.custom.css b/src/main/webapp/css/theme_om/jquery-ui-1.10.4.custom.css
new file mode 100644
index 0000000..76dd514
--- /dev/null
+++ b/src/main/webapp/css/theme_om/jquery-ui-1.10.4.custom.css
@@ -0,0 +1,1176 @@
+/*! jQuery UI - v1.10.4 - 2014-01-28
+* http://jqueryui.com
+* Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css, jquery.ui.theme.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial%2C%20Helvetica%2C%20sans-serif&fwDefault=normal&fsDefault=16px&cornerRadius=6px&bgColorHeader=%23deedf7&bgTextureHeader=highlight_soft&bgImgOpacityHeader=100&borderColorHeader=%23aed0ea&fcHeader=%23222222&iconColorHeader=%2372a7cf&bgColorContent=%23f2f5f7&bgTextureContent=highlight_hard&bgImgOpacityContent=100&borderColorContent=%23dddddd&fcContent=%23362b36&iconColorContent=%2372a7cf&bgColorDefault=%23d7ebf9&bgTextureDefault=glass&bgImgOpacityDefault=80&borderColorDefault=%23aed0ea&fcDefault=%232779aa&iconColorDefault=%233d80b3&bgColorHover=%23e4f1fb&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=%2374b2e2&fcHover=%230070a3&iconColorHover=%232694e8&bgColorActive=%233baae3&bgTextureActive=glass&bgImgOpacityActive=50&borderColorActive=%232694e8&fcActive=%23ffffff&iconColorActive=%23ffffff&bgColorHighlight=%23ffef8f&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=25&borderColorHighlight=%23f9dd34&fcHighlight=%23363636&iconColorHighlight=%232e83ff&bgColorError=%23cd0a0a&bgTextureError=flat&bgImgOpacityError=15&borderColorError=%23cd0a0a&fcError=%23ffffff&iconColorError=%23ffffff&bgColorOverlay=%23eeeeee&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=90&opacityOverlay=80&bgColorShadow=%23000000&bgTextureShadow=highlight_hard&bgImgOpacityShadow=70&opacityShadow=30&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px
+* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden {
+	display: none;
+}
+.ui-helper-hidden-accessible {
+	border: 0;
+	clip: rect(0 0 0 0);
+	height: 1px;
+	margin: -1px;
+	overflow: hidden;
+	padding: 0;
+	position: absolute;
+	width: 1px;
+}
+.ui-helper-reset {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	outline: 0;
+	line-height: 1.3;
+	text-decoration: none;
+	font-size: 100%;
+	list-style: none;
+}
+.ui-helper-clearfix:before,
+.ui-helper-clearfix:after {
+	content: "";
+	display: table;
+	border-collapse: collapse;
+}
+.ui-helper-clearfix:after {
+	clear: both;
+}
+.ui-helper-clearfix {
+	min-height: 0; /* support: IE7 */
+}
+.ui-helper-zfix {
+	width: 100%;
+	height: 100%;
+	top: 0;
+	left: 0;
+	position: absolute;
+	opacity: 0;
+	filter:Alpha(Opacity=0);
+}
+
+.ui-front {
+	z-index: 100;
+}
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled {
+	cursor: default !important;
+}
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	display: block;
+	text-indent: -99999px;
+	overflow: hidden;
+	background-repeat: no-repeat;
+}
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay {
+	position: fixed;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+}
+.ui-resizable {
+	position: relative;
+}
+.ui-resizable-handle {
+	position: absolute;
+	font-size: 0.1px;
+	display: block;
+}
+.ui-resizable-disabled .ui-resizable-handle,
+.ui-resizable-autohide .ui-resizable-handle {
+	display: none;
+}
+.ui-resizable-n {
+	cursor: n-resize;
+	height: 7px;
+	width: 100%;
+	top: -5px;
+	left: 0;
+}
+.ui-resizable-s {
+	cursor: s-resize;
+	height: 7px;
+	width: 100%;
+	bottom: -5px;
+	left: 0;
+}
+.ui-resizable-e {
+	cursor: e-resize;
+	width: 7px;
+	right: -5px;
+	top: 0;
+	height: 100%;
+}
+.ui-resizable-w {
+	cursor: w-resize;
+	width: 7px;
+	left: -5px;
+	top: 0;
+	height: 100%;
+}
+.ui-resizable-se {
+	cursor: se-resize;
+	width: 12px;
+	height: 12px;
+	right: 1px;
+	bottom: 1px;
+}
+.ui-resizable-sw {
+	cursor: sw-resize;
+	width: 9px;
+	height: 9px;
+	left: -5px;
+	bottom: -5px;
+}
+.ui-resizable-nw {
+	cursor: nw-resize;
+	width: 9px;
+	height: 9px;
+	left: -5px;
+	top: -5px;
+}
+.ui-resizable-ne {
+	cursor: ne-resize;
+	width: 9px;
+	height: 9px;
+	right: -5px;
+	top: -5px;
+}
+.ui-selectable-helper {
+	position: absolute;
+	z-index: 100;
+	border: 1px dotted black;
+}
+.ui-accordion .ui-accordion-header {
+	display: block;
+	cursor: pointer;
+	position: relative;
+	margin-top: 2px;
+	padding: .5em .5em .5em .7em;
+	min-height: 0; /* support: IE7 */
+}
+.ui-accordion .ui-accordion-icons {
+	padding-left: 2.2em;
+}
+.ui-accordion .ui-accordion-noicons {
+	padding-left: .7em;
+}
+.ui-accordion .ui-accordion-icons .ui-accordion-icons {
+	padding-left: 2.2em;
+}
+.ui-accordion .ui-accordion-header .ui-accordion-header-icon {
+	position: absolute;
+	left: .5em;
+	top: 50%;
+	margin-top: -8px;
+}
+.ui-accordion .ui-accordion-content {
+	padding: 1em 2.2em;
+	border-top: 0;
+	overflow: auto;
+}
+.ui-autocomplete {
+	position: absolute;
+	top: 0;
+	left: 0;
+	cursor: default;
+}
+.ui-button {
+	display: inline-block;
+	position: relative;
+	padding: 0;
+	line-height: normal;
+	margin-right: .1em;
+	cursor: pointer;
+	vertical-align: middle;
+	text-align: center;
+	overflow: visible; /* removes extra width in IE */
+}
+.ui-button,
+.ui-button:link,
+.ui-button:visited,
+.ui-button:hover,
+.ui-button:active {
+	text-decoration: none;
+}
+/* to make room for the icon, a width needs to be set here */
+.ui-button-icon-only {
+	width: 2.2em;
+}
+/* button elements seem to need a little more width */
+button.ui-button-icon-only {
+	width: 2.4em;
+}
+.ui-button-icons-only {
+	width: 3.4em;
+}
+button.ui-button-icons-only {
+	width: 3.7em;
+}
+
+/* button text element */
+.ui-button .ui-button-text {
+	display: block;
+	line-height: normal;
+}
+.ui-button-text-only .ui-button-text {
+	padding: .4em 1em;
+}
+.ui-button-icon-only .ui-button-text,
+.ui-button-icons-only .ui-button-text {
+	padding: .4em;
+	text-indent: -9999999px;
+}
+.ui-button-text-icon-primary .ui-button-text,
+.ui-button-text-icons .ui-button-text {
+	padding: .4em 1em .4em 2.1em;
+}
+.ui-button-text-icon-secondary .ui-button-text,
+.ui-button-text-icons .ui-button-text {
+	padding: .4em 2.1em .4em 1em;
+}
+.ui-button-text-icons .ui-button-text {
+	padding-left: 2.1em;
+	padding-right: 2.1em;
+}
+/* no icon support for input elements, provide padding by default */
+input.ui-button {
+	padding: .4em 1em;
+}
+
+/* button icon element(s) */
+.ui-button-icon-only .ui-icon,
+.ui-button-text-icon-primary .ui-icon,
+.ui-button-text-icon-secondary .ui-icon,
+.ui-button-text-icons .ui-icon,
+.ui-button-icons-only .ui-icon {
+	position: absolute;
+	top: 50%;
+	margin-top: -8px;
+}
+.ui-button-icon-only .ui-icon {
+	left: 50%;
+	margin-left: -8px;
+}
+.ui-button-text-icon-primary .ui-button-icon-primary,
+.ui-button-text-icons .ui-button-icon-primary,
+.ui-button-icons-only .ui-button-icon-primary {
+	left: .5em;
+}
+.ui-button-text-icon-secondary .ui-button-icon-secondary,
+.ui-button-text-icons .ui-button-icon-secondary,
+.ui-button-icons-only .ui-button-icon-secondary {
+	right: .5em;
+}
+
+/* button sets */
+.ui-buttonset {
+	margin-right: 7px;
+}
+.ui-buttonset .ui-button {
+	margin-left: 0;
+	margin-right: -.3em;
+}
+
+/* workarounds */
+/* reset extra padding in Firefox, see h5bp.com/l */
+input.ui-button::-moz-focus-inner,
+button.ui-button::-moz-focus-inner {
+	border: 0;
+	padding: 0;
+}
+.ui-datepicker {
+	width: 17em;
+	padding: .2em .2em 0;
+	display: none;
+}
+.ui-datepicker .ui-datepicker-header {
+	position: relative;
+	padding: .2em 0;
+}
+.ui-datepicker .ui-datepicker-prev,
+.ui-datepicker .ui-datepicker-next {
+	position: absolute;
+	top: 2px;
+	width: 1.8em;
+	height: 1.8em;
+}
+.ui-datepicker .ui-datepicker-prev-hover,
+.ui-datepicker .ui-datepicker-next-hover {
+	top: 1px;
+}
+.ui-datepicker .ui-datepicker-prev {
+	left: 2px;
+}
+.ui-datepicker .ui-datepicker-next {
+	right: 2px;
+}
+.ui-datepicker .ui-datepicker-prev-hover {
+	left: 1px;
+}
+.ui-datepicker .ui-datepicker-next-hover {
+	right: 1px;
+}
+.ui-datepicker .ui-datepicker-prev span,
+.ui-datepicker .ui-datepicker-next span {
+	display: block;
+	position: absolute;
+	left: 50%;
+	margin-left: -8px;
+	top: 50%;
+	margin-top: -8px;
+}
+.ui-datepicker .ui-datepicker-title {
+	margin: 0 2.3em;
+	line-height: 1.8em;
+	text-align: center;
+}
+.ui-datepicker .ui-datepicker-title select {
+	font-size: 1em;
+	margin: 1px 0;
+}
+.ui-datepicker select.ui-datepicker-month,
+.ui-datepicker select.ui-datepicker-year {
+	width: 49%;
+}
+.ui-datepicker table {
+	width: 100%;
+	font-size: .9em;
+	border-collapse: collapse;
+	margin: 0 0 .4em;
+}
+.ui-datepicker th {
+	padding: .7em .3em;
+	text-align: center;
+	font-weight: bold;
+	border: 0;
+}
+.ui-datepicker td {
+	border: 0;
+	padding: 1px;
+}
+.ui-datepicker td span,
+.ui-datepicker td a {
+	display: block;
+	padding: .2em;
+	text-align: right;
+	text-decoration: none;
+}
+.ui-datepicker .ui-datepicker-buttonpane {
+	background-image: none;
+	margin: .7em 0 0 0;
+	padding: 0 .2em;
+	border-left: 0;
+	border-right: 0;
+	border-bottom: 0;
+}
+.ui-datepicker .ui-datepicker-buttonpane button {
+	float: right;
+	margin: .5em .2em .4em;
+	cursor: pointer;
+	padding: .2em .6em .3em .6em;
+	width: auto;
+	overflow: visible;
+}
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
+	float: left;
+}
+
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi {
+	width: auto;
+}
+.ui-datepicker-multi .ui-datepicker-group {
+	float: left;
+}
+.ui-datepicker-multi .ui-datepicker-group table {
+	width: 95%;
+	margin: 0 auto .4em;
+}
+.ui-datepicker-multi-2 .ui-datepicker-group {
+	width: 50%;
+}
+.ui-datepicker-multi-3 .ui-datepicker-group {
+	width: 33.3%;
+}
+.ui-datepicker-multi-4 .ui-datepicker-group {
+	width: 25%;
+}
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
+	border-left-width: 0;
+}
+.ui-datepicker-multi .ui-datepicker-buttonpane {
+	clear: left;
+}
+.ui-datepicker-row-break {
+	clear: both;
+	width: 100%;
+	font-size: 0;
+}
+
+/* RTL support */
+.ui-datepicker-rtl {
+	direction: rtl;
+}
+.ui-datepicker-rtl .ui-datepicker-prev {
+	right: 2px;
+	left: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-next {
+	left: 2px;
+	right: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-prev:hover {
+	right: 1px;
+	left: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-next:hover {
+	left: 1px;
+	right: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-buttonpane {
+	clear: right;
+}
+.ui-datepicker-rtl .ui-datepicker-buttonpane button {
+	float: left;
+}
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
+.ui-datepicker-rtl .ui-datepicker-group {
+	float: right;
+}
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
+	border-right-width: 0;
+	border-left-width: 1px;
+}
+.ui-dialog {
+	overflow: hidden;
+	position: absolute;
+	top: 0;
+	left: 0;
+	padding: .2em;
+	outline: 0;
+}
+.ui-dialog .ui-dialog-titlebar {
+	padding: .4em 1em;
+	position: relative;
+}
+.ui-dialog .ui-dialog-title {
+	float: left;
+	margin: .1em 0;
+	white-space: nowrap;
+	width: 90%;
+	overflow: hidden;
+	text-overflow: ellipsis;
+}
+.ui-dialog .ui-dialog-titlebar-close {
+	position: absolute;
+	right: .3em;
+	top: 50%;
+	width: 20px;
+	margin: -10px 0 0 0;
+	padding: 1px;
+	height: 20px;
+}
+.ui-dialog .ui-dialog-content {
+	position: relative;
+	border: 0;
+	padding: .5em 1em;
+	background: none;
+	overflow: auto;
+}
+.ui-dialog .ui-dialog-buttonpane {
+	text-align: left;
+	border-width: 1px 0 0 0;
+	background-image: none;
+	padding: .3em 1em .5em .4em;
+}
+.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
+	float: right;
+}
+.ui-dialog .ui-dialog-buttonpane button {
+	cursor: pointer;
+}
+.ui-dialog .ui-resizable-se {
+	width: 12px;
+	height: 12px;
+	right: -5px;
+	bottom: -5px;
+	background-position: 16px 16px;
+}
+.ui-draggable .ui-dialog-titlebar {
+	cursor: move;
+}
+.ui-menu {
+	list-style: none;
+	padding: 2px;
+	margin: 0;
+	display: block;
+	outline: none;
+}
+.ui-menu .ui-menu {
+	margin-top: -3px;
+	position: absolute;
+}
+.ui-menu .ui-menu-item {
+	margin: 0;
+	padding: 0;
+	width: 100%;
+	/* support: IE10, see #8844 */
+	list-style-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
+}
+.ui-menu .ui-menu-divider {
+	margin: 5px -2px 5px -2px;
+	height: 0;
+	font-size: 0;
+	line-height: 0;
+	border-width: 1px 0 0 0;
+}
+.ui-menu .ui-menu-item a {
+	text-decoration: none;
+	display: block;
+	padding: 2px .4em;
+	line-height: 1.5;
+	min-height: 0; /* support: IE7 */
+	font-weight: normal;
+}
+.ui-menu .ui-menu-item a.ui-state-focus,
+.ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+
+.ui-menu .ui-state-disabled {
+	font-weight: normal;
+	margin: .4em 0 .2em;
+	line-height: 1.5;
+}
+.ui-menu .ui-state-disabled a {
+	cursor: default;
+}
+
+/* icon support */
+.ui-menu-icons {
+	position: relative;
+}
+.ui-menu-icons .ui-menu-item a {
+	position: relative;
+	padding-left: 2em;
+}
+
+/* left-aligned */
+.ui-menu .ui-icon {
+	position: absolute;
+	top: .2em;
+	left: .2em;
+}
+
+/* right-aligned */
+.ui-menu .ui-menu-icon {
+	position: static;
+	float: right;
+}
+.ui-progressbar {
+	height: 2em;
+	text-align: left;
+	overflow: hidden;
+}
+.ui-progressbar .ui-progressbar-value {
+	margin: -1px;
+	height: 100%;
+}
+.ui-progressbar .ui-progressbar-overlay {
+	background: url("images/animated-overlay.gif");
+	height: 100%;
+	filter: alpha(opacity=25);
+	opacity: 0.25;
+}
+.ui-progressbar-indeterminate .ui-progressbar-value {
+	background-image: none;
+}
+.ui-slider {
+	position: relative;
+	text-align: left;
+}
+.ui-slider .ui-slider-handle {
+	position: absolute;
+	z-index: 2;
+	width: 1.2em;
+	height: 1.2em;
+	cursor: default;
+}
+.ui-slider .ui-slider-range {
+	position: absolute;
+	z-index: 1;
+	font-size: .7em;
+	display: block;
+	border: 0;
+	background-position: 0 0;
+}
+
+/* For IE8 - See #6727 */
+.ui-slider.ui-state-disabled .ui-slider-handle,
+.ui-slider.ui-state-disabled .ui-slider-range {
+	filter: inherit;
+}
+
+.ui-slider-horizontal {
+	height: .8em;
+}
+.ui-slider-horizontal .ui-slider-handle {
+	top: -.3em;
+	margin-left: -.6em;
+}
+.ui-slider-horizontal .ui-slider-range {
+	top: 0;
+	height: 100%;
+}
+.ui-slider-horizontal .ui-slider-range-min {
+	left: 0;
+}
+.ui-slider-horizontal .ui-slider-range-max {
+	right: 0;
+}
+
+.ui-slider-vertical {
+	width: .8em;
+	height: 100px;
+}
+.ui-slider-vertical .ui-slider-handle {
+	left: -.3em;
+	margin-left: 0;
+	margin-bottom: -.6em;
+}
+.ui-slider-vertical .ui-slider-range {
+	left: 0;
+	width: 100%;
+}
+.ui-slider-vertical .ui-slider-range-min {
+	bottom: 0;
+}
+.ui-slider-vertical .ui-slider-range-max {
+	top: 0;
+}
+.ui-spinner {
+	position: relative;
+	display: inline-block;
+	overflow: hidden;
+	padding: 0;
+	vertical-align: middle;
+}
+.ui-spinner-input {
+	border: none;
+	background: none;
+	color: inherit;
+	padding: 0;
+	margin: .2em 0;
+	vertical-align: middle;
+	margin-left: .4em;
+	margin-right: 22px;
+}
+.ui-spinner-button {
+	width: 16px;
+	height: 50%;
+	font-size: .5em;
+	padding: 0;
+	margin: 0;
+	text-align: center;
+	position: absolute;
+	cursor: default;
+	display: block;
+	overflow: hidden;
+	right: 0;
+}
+/* more specificity required here to override default borders */
+.ui-spinner a.ui-spinner-button {
+	border-top: none;
+	border-bottom: none;
+	border-right: none;
+}
+/* vertically center icon */
+.ui-spinner .ui-icon {
+	position: absolute;
+	margin-top: -8px;
+	top: 50%;
+	left: 0;
+}
+.ui-spinner-up {
+	top: 0;
+}
+.ui-spinner-down {
+	bottom: 0;
+}
+
+/* TR overrides */
+.ui-spinner .ui-icon-triangle-1-s {
+	/* need to fix icons sprite */
+	background-position: -65px -16px;
+}
+.ui-tabs {
+	position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+	padding: .2em;
+}
+.ui-tabs .ui-tabs-nav {
+	margin: 0;
+	padding: .2em .2em 0;
+}
+.ui-tabs .ui-tabs-nav li {
+	list-style: none;
+	float: left;
+	position: relative;
+	top: 0;
+	margin: 1px .2em 0 0;
+	border-bottom-width: 0;
+	padding: 0;
+	white-space: nowrap;
+}
+.ui-tabs .ui-tabs-nav .ui-tabs-anchor {
+	float: left;
+	padding: .5em 1em;
+	text-decoration: none;
+}
+.ui-tabs .ui-tabs-nav li.ui-tabs-active {
+	margin-bottom: -1px;
+	padding-bottom: 1px;
+}
+.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
+.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
+.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
+	cursor: text;
+}
+.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
+	cursor: pointer;
+}
+.ui-tabs .ui-tabs-panel {
+	display: block;
+	border-width: 0;
+	padding: 1em 1.4em;
+	background: none;
+}
+.ui-tooltip {
+	padding: 8px;
+	position: absolute;
+	z-index: 9999;
+	max-width: 300px;
+	-webkit-box-shadow: 0 0 5px #aaa;
+	box-shadow: 0 0 5px #aaa;
+}
+body .ui-tooltip {
+	border-width: 2px;
+}
+
+/* Component containers
+----------------------------------*/
+.ui-widget {
+	font-family: Arial, Helvetica, sans-serif;
+	font-size: 16px;
+}
+.ui-widget .ui-widget {
+	font-size: 1em;
+}
+.ui-widget input,
+.ui-widget select,
+.ui-widget textarea,
+.ui-widget button {
+	font-family: Arial, Helvetica, sans-serif;
+	font-size: 1em;
+}
+.ui-widget-content {
+	border: 1px solid #dddddd;
+	background: #f2f5f7 url(images/ui-bg_highlight-hard_100_f2f5f7_1x100.png) 50% top repeat-x;
+	color: #362b36;
+}
+.ui-widget-content a {
+	color: #362b36;
+}
+.ui-widget-header {
+	border: 1px solid #aed0ea;
+	background: #deedf7 url(images/ui-bg_highlight-soft_100_deedf7_1x100.png) 50% 50% repeat-x;
+	color: #222222;
+	font-weight: bold;
+}
+.ui-widget-header a {
+	color: #222222;
+}
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default,
+.ui-widget-content .ui-state-default,
+.ui-widget-header .ui-state-default {
+	border: 1px solid #aed0ea;
+	background: #d7ebf9 url(images/ui-bg_glass_80_d7ebf9_1x400.png) 50% 50% repeat-x;
+	font-weight: normal;
+	color: #2779aa;
+}
+.ui-state-default a,
+.ui-state-default a:link,
+.ui-state-default a:visited {
+	color: #2779aa;
+	text-decoration: none;
+}
+.ui-state-hover,
+.ui-widget-content .ui-state-hover,
+.ui-widget-header .ui-state-hover,
+.ui-state-focus,
+.ui-widget-content .ui-state-focus,
+.ui-widget-header .ui-state-focus {
+	border: 1px solid #74b2e2;
+	background: #e4f1fb url(images/ui-bg_glass_100_e4f1fb_1x400.png) 50% 50% repeat-x;
+	font-weight: normal;
+	color: #0070a3;
+}
+.ui-state-hover a,
+.ui-state-hover a:hover,
+.ui-state-hover a:link,
+.ui-state-hover a:visited,
+.ui-state-focus a,
+.ui-state-focus a:hover,
+.ui-state-focus a:link,
+.ui-state-focus a:visited {
+	color: #0070a3;
+	text-decoration: none;
+}
+.ui-state-active,
+.ui-widget-content .ui-state-active,
+.ui-widget-header .ui-state-active {
+	border: 1px solid #2694e8;
+	background: #3baae3 url(images/ui-bg_glass_50_3baae3_1x400.png) 50% 50% repeat-x;
+	font-weight: normal;
+	color: #ffffff;
+}
+.ui-state-active a,
+.ui-state-active a:link,
+.ui-state-active a:visited {
+	color: #ffffff;
+	text-decoration: none;
+}
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight,
+.ui-widget-content .ui-state-highlight,
+.ui-widget-header .ui-state-highlight {
+	border: 1px solid #f9dd34;
+	background: #ffef8f url(images/ui-bg_highlight-soft_25_ffef8f_1x100.png) 50% top repeat-x;
+	color: #363636;
+}
+.ui-state-highlight a,
+.ui-widget-content .ui-state-highlight a,
+.ui-widget-header .ui-state-highlight a {
+	color: #363636;
+}
+.ui-state-error,
+.ui-widget-content .ui-state-error,
+.ui-widget-header .ui-state-error {
+	border: 1px solid #cd0a0a;
+	background: #cd0a0a url(images/ui-bg_flat_15_cd0a0a_40x100.png) 50% 50% repeat-x;
+	color: #ffffff;
+}
+.ui-state-error a,
+.ui-widget-content .ui-state-error a,
+.ui-widget-header .ui-state-error a {
+	color: #ffffff;
+}
+.ui-state-error-text,
+.ui-widget-content .ui-state-error-text,
+.ui-widget-header .ui-state-error-text {
+	color: #ffffff;
+}
+.ui-priority-primary,
+.ui-widget-content .ui-priority-primary,
+.ui-widget-header .ui-priority-primary {
+	font-weight: bold;
+}
+.ui-priority-secondary,
+.ui-widget-content .ui-priority-secondary,
+.ui-widget-header .ui-priority-secondary {
+	opacity: .7;
+	filter:Alpha(Opacity=70);
+	font-weight: normal;
+}
+.ui-state-disabled,
+.ui-widget-content .ui-state-disabled,
+.ui-widget-header .ui-state-disabled {
+	opacity: .35;
+	filter:Alpha(Opacity=35);
+	background-image: none;
+}
+.ui-state-disabled .ui-icon {
+	filter:Alpha(Opacity=35); /* For IE8 - See #6059 */
+}
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	width: 16px;
+	height: 16px;
+}
+.ui-icon,
+.ui-widget-content .ui-icon {
+	background-image: url(images/ui-icons_72a7cf_256x240.png);
+}
+.ui-widget-header .ui-icon {
+	background-image: url(images/ui-icons_72a7cf_256x240.png);
+}
+.ui-state-default .ui-icon {
+	background-image: url(images/ui-icons_3d80b3_256x240.png);
+}
+.ui-state-hover .ui-icon,
+.ui-state-focus .ui-icon {
+	background-image: url(images/ui-icons_2694e8_256x240.png);
+}
+.ui-state-active .ui-icon {
+	background-image: url(images/ui-icons_ffffff_256x240.png);
+}
+.ui-state-highlight .ui-icon {
+	background-image: url(images/ui-icons_2e83ff_256x240.png);
+}
+.ui-state-error .ui-icon,
+.ui-state-error-text .ui-icon {
+	background-image: url(images/ui-icons_ffffff_256x240.png);
+}
+
+/* positioning */
+.ui-icon-blank { background-position: 16px 16px; }
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-on { background-position: -96px -144px; }
+.ui-icon-radio-off { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-left,
+.ui-corner-tl {
+	border-top-left-radius: 6px;
+}
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-right,
+.ui-corner-tr {
+	border-top-right-radius: 6px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-left,
+.ui-corner-bl {
+	border-bottom-left-radius: 6px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-right,
+.ui-corner-br {
+	border-bottom-right-radius: 6px;
+}
+
+/* Overlays */
+.ui-widget-overlay {
+	background: #eeeeee url(images/ui-bg_diagonals-thick_90_eeeeee_40x40.png) 50% 50% repeat;
+	opacity: .8;
+	filter: Alpha(Opacity=80);
+}
+.ui-widget-shadow {
+	margin: -7px 0 0 -7px;
+	padding: 7px;
+	background: #000000 url(images/ui-bg_highlight-hard_70_000000_1x100.png) 50% top repeat-x;
+	opacity: .3;
+	filter: Alpha(Opacity=30);
+	border-radius: 8px;
+}
diff --git a/src/main/webapp/default/_big_profile_pic.jpg b/src/main/webapp/default/_big_profile_pic.jpg
new file mode 100644
index 0000000..07a1286
--- /dev/null
+++ b/src/main/webapp/default/_big_profile_pic.jpg
Binary files differ
diff --git a/src/main/webapp/default/_chat_profile_pic.jpg b/src/main/webapp/default/_chat_profile_pic.jpg
new file mode 100644
index 0000000..15df4e5
--- /dev/null
+++ b/src/main/webapp/default/_chat_profile_pic.jpg
Binary files differ
diff --git a/src/main/webapp/default/_profile_phone.png b/src/main/webapp/default/_profile_phone.png
new file mode 100644
index 0000000..9ed6449
--- /dev/null
+++ b/src/main/webapp/default/_profile_phone.png
Binary files differ
diff --git a/src/main/webapp/default/_profile_profile_pic.jpg b/src/main/webapp/default/_profile_profile_pic.jpg
new file mode 100644
index 0000000..3b63f01
--- /dev/null
+++ b/src/main/webapp/default/_profile_profile_pic.jpg
Binary files differ
diff --git a/src/main/webapp/default/_thumb_deleted.jpg b/src/main/webapp/default/_thumb_deleted.jpg
new file mode 100644
index 0000000..18f0895
--- /dev/null
+++ b/src/main/webapp/default/_thumb_deleted.jpg
Binary files differ
diff --git a/src/main/webapp/default/deleted.jpg b/src/main/webapp/default/deleted.jpg
new file mode 100644
index 0000000..932c9bd
--- /dev/null
+++ b/src/main/webapp/default/deleted.jpg
Binary files differ
diff --git a/src/main/webapp/default/deleted.odp b/src/main/webapp/default/deleted.odp
new file mode 100644
index 0000000..892044c
--- /dev/null
+++ b/src/main/webapp/default/deleted.odp
Binary files differ
diff --git a/src/main/webapp/default/deleted.pdf b/src/main/webapp/default/deleted.pdf
new file mode 100644
index 0000000..85ef078
--- /dev/null
+++ b/src/main/webapp/default/deleted.pdf
Binary files differ
diff --git a/src/main/webapp/default/deleted.swf b/src/main/webapp/default/deleted.swf
new file mode 100644
index 0000000..061df24
--- /dev/null
+++ b/src/main/webapp/default/deleted.swf
Binary files differ
diff --git a/src/main/webapp/default/deleted.xcf b/src/main/webapp/default/deleted.xcf
new file mode 100644
index 0000000..67b2f85
--- /dev/null
+++ b/src/main/webapp/default/deleted.xcf
Binary files differ
diff --git a/src/main/webapp/default/profile_pic.jpg b/src/main/webapp/default/profile_pic.jpg
new file mode 100644
index 0000000..3b63f01
--- /dev/null
+++ b/src/main/webapp/default/profile_pic.jpg
Binary files differ
diff --git a/src/main/webapp/images/ajax-loader.gif b/src/main/webapp/images/ajax-loader.gif
new file mode 100644
index 0000000..69b652d
--- /dev/null
+++ b/src/main/webapp/images/ajax-loader.gif
Binary files differ
diff --git a/src/main/webapp/images/calendar.gif b/src/main/webapp/images/calendar.gif
new file mode 100644
index 0000000..d0abaa7
--- /dev/null
+++ b/src/main/webapp/images/calendar.gif
Binary files differ
diff --git a/src/main/webapp/images/delete.gif b/src/main/webapp/images/delete.gif
new file mode 100644
index 0000000..b6922ac
--- /dev/null
+++ b/src/main/webapp/images/delete.gif
Binary files differ
diff --git a/src/main/webapp/images/down.png b/src/main/webapp/images/down.png
new file mode 100644
index 0000000..f070ea6
--- /dev/null
+++ b/src/main/webapp/images/down.png
Binary files differ
diff --git a/src/main/webapp/images/edit.png b/src/main/webapp/images/edit.png
new file mode 100644
index 0000000..2e2a1c4
--- /dev/null
+++ b/src/main/webapp/images/edit.png
Binary files differ
diff --git a/src/main/webapp/images/refresh.gif b/src/main/webapp/images/refresh.gif
new file mode 100644
index 0000000..7aff1a9
--- /dev/null
+++ b/src/main/webapp/images/refresh.gif
Binary files differ
diff --git a/src/main/webapp/images/up.png b/src/main/webapp/images/up.png
new file mode 100644
index 0000000..5d10417
--- /dev/null
+++ b/src/main/webapp/images/up.png
Binary files differ
diff --git a/src/main/webapp/js/history.js b/src/main/webapp/js/history.js
new file mode 100644
index 0000000..2cb34f8
--- /dev/null
+++ b/src/main/webapp/js/history.js
@@ -0,0 +1,696 @@
+/*

+ *

+ *  Licensed to the Apache Software Foundation (ASF) under one or more

+ *  contributor license agreements.  See the NOTICE file distributed with

+ *  this work for additional information regarding copyright ownership.

+ *  The ASF licenses this file to You under the Apache License, Version 2.0

+ *  (the "License"); you may not use this file except in compliance with

+ *  the License.  You may obtain a copy of the License at

+ *

+ *      http://www.apache.org/licenses/LICENSE-2.0

+ *

+ *  Unless required by applicable law or agreed to in writing, software

+ *  distributed under the License is distributed on an "AS IS" BASIS,

+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+ *  See the License for the specific language governing permissions and

+ *  limitations under the License.

+ *

+ */

+BrowserHistoryUtils = {

+    addEvent: function(elm, evType, fn, useCapture) {

+        useCapture = useCapture || false;

+        if (elm.addEventListener) {

+            elm.addEventListener(evType, fn, useCapture);

+            return true;

+        }

+        else if (elm.attachEvent) {

+            var r = elm.attachEvent('on' + evType, fn);

+            return r;

+        }

+        else {

+            elm['on' + evType] = fn;

+        }

+    }

+}

+

+BrowserHistory = (function() {

+    // type of browser

+    var browser = {

+        ie: false, 

+        ie8: false, 

+        firefox: false, 

+        safari: false, 

+        opera: false, 

+        version: -1

+    };

+

+    // Default app state URL to use when no fragment ID present

+    var defaultHash = '';

+

+    // Last-known app state URL

+    var currentHref = document.location.href;

+

+    // Initial URL (used only by IE)

+    var initialHref = document.location.href;

+

+    // Initial URL (used only by IE)

+    var initialHash = document.location.hash;

+

+    // History frame source URL prefix (used only by IE)

+    var historyFrameSourcePrefix = 'history/historyFrame.html?';

+

+    // History maintenance (used only by Safari)

+    var currentHistoryLength = -1;

+    

+    // Flag to denote the existence of onhashchange

+    var browserHasHashChange = false;

+

+    var historyHash = [];

+

+    var initialState = createState(initialHref, initialHref + '#' + initialHash, initialHash);

+

+    var backStack = [];

+    var forwardStack = [];

+

+    var currentObjectId = null;

+

+    //UserAgent detection

+    var useragent = navigator.userAgent.toLowerCase();

+

+    if (useragent.indexOf("opera") != -1) {

+        browser.opera = true;

+    } else if (useragent.indexOf("msie") != -1) {

+        browser.ie = true;

+        browser.version = parseFloat(useragent.substring(useragent.indexOf('msie') + 4));

+        if (browser.version == 8)

+        {

+            browser.ie = false;

+            browser.ie8 = true;

+        }

+    } else if (useragent.indexOf("safari") != -1) {

+        browser.safari = true;

+        browser.version = parseFloat(useragent.substring(useragent.indexOf('safari') + 7));

+    } else if (useragent.indexOf("gecko") != -1) {

+        browser.firefox = true;

+    }

+

+    if (browser.ie == true && browser.version == 7) {

+        window["_ie_firstload"] = false;

+    }

+

+    function hashChangeHandler()

+    {

+        currentHref = document.location.href;

+        var flexAppUrl = getHash();

+        //ADR: to fix multiple

+        if (typeof BrowserHistory_multiple != "undefined" && BrowserHistory_multiple == true) {

+            var pl = getPlayers();

+            for (var i = 0; i < pl.length; i++) {

+                pl[i].browserURLChange(flexAppUrl);

+            }

+        } else {

+            getPlayer().browserURLChange(flexAppUrl);

+        }

+    }

+

+    // Accessor functions for obtaining specific elements of the page.

+    function getHistoryFrame()

+    {

+        return document.getElementById('ie_historyFrame');

+    }

+

+    function getFormElement()

+    {

+        return document.getElementById('safari_formDiv');

+    }

+

+    function getRememberElement()

+    {

+        return document.getElementById("safari_remember_field");

+    }

+

+    // Get the Flash player object for performing ExternalInterface callbacks.

+    // Updated for changes to SWFObject2.

+    function getPlayer(id) {

+        var i;

+

+		if (id && document.getElementById(id)) {

+			var r = document.getElementById(id);

+			if (typeof r.SetVariable != "undefined") {

+				return r;

+			}

+			else {

+				var o = r.getElementsByTagName("object");

+				var e = r.getElementsByTagName("embed");

+                for (i = 0; i < o.length; i++) {

+                    if (typeof o[i].browserURLChange != "undefined")

+                        return o[i];

+                }

+                for (i = 0; i < e.length; i++) {

+                    if (typeof e[i].browserURLChange != "undefined")

+                        return e[i];

+                }

+			}

+		}

+		else {

+			var o = document.getElementsByTagName("object");

+			var e = document.getElementsByTagName("embed");

+            for (i = 0; i < e.length; i++) {

+                if (typeof e[i].browserURLChange != "undefined")

+                {

+                    return e[i];

+                }

+            }

+            for (i = 0; i < o.length; i++) {

+                if (typeof o[i].browserURLChange != "undefined")

+                {

+                    return o[i];

+                }

+            }

+		}

+		return undefined;

+	}

+    

+    function getPlayers() {

+        var i;

+        var players = [];

+        if (players.length == 0) {

+            var tmp = document.getElementsByTagName('object');

+            for (i = 0; i < tmp.length; i++)

+            {

+                if (typeof tmp[i].browserURLChange != "undefined")

+                    players.push(tmp[i]);

+            }

+        }

+        if (players.length == 0 || players[0].object == null) {

+            var tmp = document.getElementsByTagName('embed');

+            for (i = 0; i < tmp.length; i++)

+            {

+                if (typeof tmp[i].browserURLChange != "undefined")

+                    players.push(tmp[i]);

+            }

+        }

+        return players;

+    }

+

+	function getIframeHash() {

+		var doc = getHistoryFrame().contentWindow.document;

+		var hash = String(doc.location.search);

+		if (hash.length == 1 && hash.charAt(0) == "?") {

+			hash = "";

+		}

+		else if (hash.length >= 2 && hash.charAt(0) == "?") {

+			hash = hash.substring(1);

+		}

+		return hash;

+	}

+

+    /* Get the current location hash excluding the '#' symbol. */

+    function getHash() {

+       // It would be nice if we could use document.location.hash here,

+       // but it's faulty sometimes.

+       var idx = document.location.href.indexOf('#');

+       return (idx >= 0) ? document.location.href.substr(idx+1) : '';

+    }

+

+    /* Get the current location hash excluding the '#' symbol. */

+    function setHash(hash) {

+       // It would be nice if we could use document.location.hash here,

+       // but it's faulty sometimes.

+       if (hash == '') hash = '#'

+       document.location.hash = hash;

+    }

+

+    function createState(baseUrl, newUrl, flexAppUrl) {

+        return { 'baseUrl': baseUrl, 'newUrl': newUrl, 'flexAppUrl': flexAppUrl, 'title': null };

+    }

+

+    /* Add a history entry to the browser.

+     *   baseUrl: the portion of the location prior to the '#'

+     *   newUrl: the entire new URL, including '#' and following fragment

+     *   flexAppUrl: the portion of the location following the '#' only

+     */

+    function addHistoryEntry(baseUrl, newUrl, flexAppUrl) {

+

+        //delete all the history entries

+        forwardStack = [];

+

+        if (browser.ie) {

+            //Check to see if we are being asked to do a navigate for the first

+            //history entry, and if so ignore, because it's coming from the creation

+            //of the history iframe

+            if (flexAppUrl == defaultHash && document.location.href == initialHref && window['_ie_firstload']) {

+                currentHref = initialHref;

+                return;

+            }

+            if ((!flexAppUrl || flexAppUrl == defaultHash) && window['_ie_firstload']) {

+                newUrl = baseUrl + '#' + defaultHash;

+                flexAppUrl = defaultHash;

+            } else {

+                // for IE, tell the history frame to go somewhere without a '#'

+                // in order to get this entry into the browser history.

+                getHistoryFrame().src = historyFrameSourcePrefix + flexAppUrl;

+            }

+            setHash(flexAppUrl);

+        } else {

+

+            //ADR

+            if (backStack.length == 0 && initialState.flexAppUrl == flexAppUrl) {

+                initialState = createState(baseUrl, newUrl, flexAppUrl);

+            } else if(backStack.length > 0 && backStack[backStack.length - 1].flexAppUrl == flexAppUrl) {

+                backStack[backStack.length - 1] = createState(baseUrl, newUrl, flexAppUrl);

+            }

+

+            if (browser.safari && !browserHasHashChange) {

+                // for Safari, submit a form whose action points to the desired URL

+                if (browser.version <= 419.3) {

+                    var file = window.location.pathname.toString();

+                    file = file.substring(file.lastIndexOf("/")+1);

+                    getFormElement().innerHTML = '<form name="historyForm" action="'+file+'#' + flexAppUrl + '" method="GET"></form>';

+                    //get the current elements and add them to the form

+                    var qs = window.location.search.substring(1);

+                    var qs_arr = qs.split("&");

+                    for (var i = 0; i < qs_arr.length; i++) {

+                        var tmp = qs_arr[i].split("=");

+                        var elem = document.createElement("input");

+                        elem.type = "hidden";

+                        elem.name = tmp[0];

+                        elem.value = tmp[1];

+                        document.forms.historyForm.appendChild(elem);

+                    }

+                    document.forms.historyForm.submit();

+                } else {

+                    top.location.hash = flexAppUrl;

+                }

+                // We also have to maintain the history by hand for Safari

+                historyHash[history.length] = flexAppUrl;

+                _storeStates();

+            } else {

+                // Otherwise, just tell the browser to go there

+                setHash(flexAppUrl);

+            }

+        }

+        backStack.push(createState(baseUrl, newUrl, flexAppUrl));

+    }

+

+    function _storeStates() {

+        if (browser.safari) {

+            getRememberElement().value = historyHash.join(",");

+        }

+    }

+

+    function handleBackButton() {

+        //The "current" page is always at the top of the history stack.

+        var current = backStack.pop();

+        if (!current) { return; }

+        var last = backStack[backStack.length - 1];

+        if (!last && backStack.length == 0){

+            last = initialState;

+        }

+        forwardStack.push(current);

+    }

+

+    function handleForwardButton() {

+        //summary: private method. Do not call this directly.

+

+        var last = forwardStack.pop();

+        if (!last) { return; }

+        backStack.push(last);

+    }

+

+    function handleArbitraryUrl() {

+        //delete all the history entries

+        forwardStack = [];

+    }

+

+    /* Called periodically to poll to see if we need to detect navigation that has occurred */

+    function checkForUrlChange() {

+

+        if (browser.ie) {

+            if (currentHref != document.location.href && currentHref + '#' != document.location.href) {

+                //This occurs when the user has navigated to a specific URL

+                //within the app, and didn't use browser back/forward

+                //IE seems to have a bug where it stops updating the URL it

+                //shows the end-user at this point, but programatically it

+                //appears to be correct.  Do a full app reload to get around

+                //this issue.

+                if (browser.version < 7) {

+                    currentHref = document.location.href;

+                    document.location.reload();

+                } else {

+					if (getHash() != getIframeHash()) {

+						// this.iframe.src = this.blankURL + hash;

+						var sourceToSet = historyFrameSourcePrefix + getHash();

+						getHistoryFrame().src = sourceToSet;

+                        currentHref = document.location.href;

+					}

+                }

+            }

+        }

+

+        if (browser.safari && !browserHasHashChange) {

+            // For Safari, we have to check to see if history.length changed.

+            if (currentHistoryLength >= 0 && history.length != currentHistoryLength) {

+                //alert("did change: " + history.length + ", " + historyHash.length + "|" + historyHash[history.length] + "|>" + historyHash.join("|"));

+                var flexAppUrl = getHash();

+                if (browser.version < 528.16 /* Anything earlier than Safari 4.0 */)

+                {    

+                    // If it did change and we're running Safari 3.x or earlier, 

+                    // then we have to look the old state up in our hand-maintained 

+                    // array since document.location.hash won't have changed, 

+                    // then call back into BrowserManager.

+                currentHistoryLength = history.length;

+                    flexAppUrl = historyHash[currentHistoryLength];

+                }

+

+                //ADR: to fix multiple

+                if (typeof BrowserHistory_multiple != "undefined" && BrowserHistory_multiple == true) {

+                    var pl = getPlayers();

+                    for (var i = 0; i < pl.length; i++) {

+                        pl[i].browserURLChange(flexAppUrl);

+                    }

+                } else {

+                    getPlayer().browserURLChange(flexAppUrl);

+                }

+                _storeStates();

+            }

+        }

+        if (browser.firefox && !browserHasHashChange) {

+            if (currentHref != document.location.href) {

+                var bsl = backStack.length;

+

+                var urlActions = {

+                    back: false, 

+                    forward: false, 

+                    set: false

+                }

+

+                if ((window.location.hash == initialHash || window.location.href == initialHref) && (bsl == 1)) {

+                    urlActions.back = true;

+                    // FIXME: could this ever be a forward button?

+                    // we can't clear it because we still need to check for forwards. Ugg.

+                    // clearInterval(this.locationTimer);

+                    handleBackButton();

+                }

+                

+                // first check to see if we could have gone forward. We always halt on

+                // a no-hash item.

+                if (forwardStack.length > 0) {

+                    if (forwardStack[forwardStack.length-1].flexAppUrl == getHash()) {

+                        urlActions.forward = true;

+                        handleForwardButton();

+                    }

+                }

+

+                // ok, that didn't work, try someplace back in the history stack

+                if ((bsl >= 2) && (backStack[bsl - 2])) {

+                    if (backStack[bsl - 2].flexAppUrl == getHash()) {

+                        urlActions.back = true;

+                        handleBackButton();

+                    }

+                }

+                

+                if (!urlActions.back && !urlActions.forward) {

+                    var foundInStacks = {

+                        back: -1, 

+                        forward: -1

+                    }

+

+                    for (var i = 0; i < backStack.length; i++) {

+                        if (backStack[i].flexAppUrl == getHash() && i != (bsl - 2)) {

+                            arbitraryUrl = true;

+                            foundInStacks.back = i;

+                        }

+                    }

+                    for (var i = 0; i < forwardStack.length; i++) {

+                        if (forwardStack[i].flexAppUrl == getHash() && i != (bsl - 2)) {

+                            arbitraryUrl = true;

+                            foundInStacks.forward = i;

+                        }

+                    }

+                    handleArbitraryUrl();

+                }

+

+                // Firefox changed; do a callback into BrowserManager to tell it.

+                currentHref = document.location.href;

+                var flexAppUrl = getHash();

+                //ADR: to fix multiple

+                if (typeof BrowserHistory_multiple != "undefined" && BrowserHistory_multiple == true) {

+                    var pl = getPlayers();

+                    for (var i = 0; i < pl.length; i++) {

+                        pl[i].browserURLChange(flexAppUrl);

+                    }

+                } else {

+                    getPlayer().browserURLChange(flexAppUrl);

+                }

+            }

+        }

+    }

+

+    var _initialize = function () {

+        

+        browserHasHashChange = ("onhashchange" in document.body);

+        

+        if (browser.ie)

+        {

+            var scripts = document.getElementsByTagName('script');

+            for (var i = 0, s; s = scripts[i]; i++) {

+                if (s.src.indexOf("history.js") > -1) {

+                    var iframe_location = (new String(s.src)).replace("history.js", "historyFrame.html");

+                }

+            }

+            historyFrameSourcePrefix = iframe_location + "?";

+            var src = historyFrameSourcePrefix;

+

+            var iframe = document.createElement("iframe");

+            iframe.id = 'ie_historyFrame';

+            iframe.name = 'ie_historyFrame';

+            iframe.src = 'javascript:false;'; 

+

+            try {

+                document.body.appendChild(iframe);

+            } catch(e) {

+                setTimeout(function() {

+                    document.body.appendChild(iframe);

+                }, 0);

+            }

+        }

+

+        if (browser.safari && !browserHasHashChange)

+        {

+            var rememberDiv = document.createElement("div");

+            rememberDiv.id = 'safari_rememberDiv';

+            document.body.appendChild(rememberDiv);

+            rememberDiv.innerHTML = '<input type="text" id="safari_remember_field" style="width: 500px;">';

+

+            var formDiv = document.createElement("div");

+            formDiv.id = 'safari_formDiv';

+            document.body.appendChild(formDiv);

+

+            var reloader_content = document.createElement('div');

+            reloader_content.id = 'safarireloader';

+            var scripts = document.getElementsByTagName('script');

+            for (var i = 0, s; s = scripts[i]; i++) {

+                if (s.src.indexOf("history.js") > -1) {

+                    html = (new String(s.src)).replace(".js", ".html");

+                }

+            }

+            reloader_content.innerHTML = '<iframe id="safarireloader-iframe" src="about:blank" frameborder="no" scrolling="no"></iframe>';

+            document.body.appendChild(reloader_content);

+            reloader_content.style.position = 'absolute';

+            reloader_content.style.left = reloader_content.style.top = '-9999px';

+            iframe = reloader_content.getElementsByTagName('iframe')[0];

+

+            if (document.getElementById("safari_remember_field").value != "" ) {

+                historyHash = document.getElementById("safari_remember_field").value.split(",");

+            }

+        }

+

+        if (browserHasHashChange)        

+            document.body.onhashchange = hashChangeHandler;

+    }

+

+    return {

+        historyHash: historyHash, 

+        backStack: function() { return backStack; }, 

+        forwardStack: function() { return forwardStack }, 

+        getPlayer: getPlayer, 

+        initialize: function(src) {

+            _initialize(src);

+        }, 

+        setURL: function(url) {

+            document.location.href = url;

+        }, 

+        getURL: function() {

+            return document.location.href;

+        }, 

+        getTitle: function() {

+            return document.title;

+        }, 

+        setTitle: function(title) {

+            try {

+                backStack[backStack.length - 1].title = title;

+            } catch(e) { }

+            //if on safari, set the title to be the empty string. 

+            if (browser.safari) {

+                if (title == "") {

+                    try {

+                    var tmp = window.location.href.toString();

+                    title = tmp.substring((tmp.lastIndexOf("/")+1), tmp.lastIndexOf("#"));

+                    } catch(e) {

+                        title = "";

+                    }

+                }

+            }

+            document.title = title;

+        }, 

+        setDefaultURL: function(def)

+        {

+            defaultHash = def;

+            def = getHash();

+            //trailing ? is important else an extra frame gets added to the history

+            //when navigating back to the first page.  Alternatively could check

+            //in history frame navigation to compare # and ?.

+            if (browser.ie)

+            {

+                window['_ie_firstload'] = true;

+                var sourceToSet = historyFrameSourcePrefix + def;

+                var func = function() {

+                    getHistoryFrame().src = sourceToSet;

+                    window.location.replace("#" + def);

+                    setInterval(checkForUrlChange, 50);

+                }

+                try {

+                    func();

+                } catch(e) {

+                    window.setTimeout(function() { func(); }, 0);

+                }

+            }

+

+            if (browser.safari)

+            {

+                currentHistoryLength = history.length;

+                if (historyHash.length == 0) {

+                    historyHash[currentHistoryLength] = def;

+                    var newloc = "#" + def;

+                    window.location.replace(newloc);

+                } else {

+                    //alert(historyHash[historyHash.length-1]);

+                }

+                setInterval(checkForUrlChange, 50);

+            }

+            

+            

+            if (browser.firefox || browser.opera)

+            {

+                var reg = new RegExp("#" + def + "$");

+                if (window.location.toString().match(reg)) {

+                } else {

+                    var newloc ="#" + def;

+                    window.location.replace(newloc);

+                }

+                setInterval(checkForUrlChange, 50);

+            }

+

+        }, 

+

+        /* Set the current browser URL; called from inside BrowserManager to propagate

+         * the application state out to the container.

+         */

+        setBrowserURL: function(flexAppUrl, objectId) {

+            if (browser.ie && typeof objectId != "undefined") {

+                currentObjectId = objectId;

+            }

+           //fromIframe = fromIframe || false;

+           //fromFlex = fromFlex || false;

+           //alert("setBrowserURL: " + flexAppUrl);

+           //flexAppUrl = (flexAppUrl == "") ? defaultHash : flexAppUrl ;

+

+           var pos = document.location.href.indexOf('#');

+           var baseUrl = pos != -1 ? document.location.href.substr(0, pos) : document.location.href;

+           var newUrl = baseUrl + '#' + flexAppUrl;

+

+           if (document.location.href != newUrl && document.location.href + '#' != newUrl) {

+               currentHref = newUrl;

+               addHistoryEntry(baseUrl, newUrl, flexAppUrl);

+               currentHistoryLength = history.length;

+           }

+        }, 

+

+        browserURLChange: function(flexAppUrl) {

+            var objectId = null;

+            if (browser.ie && currentObjectId != null) {

+                objectId = currentObjectId;

+            }

+            

+            if (typeof BrowserHistory_multiple != "undefined" && BrowserHistory_multiple == true) {

+                var pl = getPlayers();

+                for (var i = 0; i < pl.length; i++) {

+                    try {

+                        pl[i].browserURLChange(flexAppUrl);

+                    } catch(e) { }

+                }

+            } else {

+                try {

+                    getPlayer(objectId).browserURLChange(flexAppUrl);

+                } catch(e) { }

+            }

+

+            currentObjectId = null;

+        },

+        getUserAgent: function() {

+            return navigator.userAgent;

+        },

+        getPlatform: function() {

+            return navigator.platform;

+        }

+

+    }

+

+})();

+

+// Initialization

+

+// Automated unit testing and other diagnostics

+

+function setURL(url)

+{

+    document.location.href = url;

+}

+

+function backButton()

+{

+    history.back();

+}

+

+function forwardButton()

+{

+    history.forward();

+}

+

+function goForwardOrBackInHistory(step)

+{

+    history.go(step);

+}

+

+//BrowserHistoryUtils.addEvent(window, "load", function() { BrowserHistory.initialize(); });

+(function(i) {

+    var u =navigator.userAgent;var e=/*@cc_on!@*/false; 

+    var st = setTimeout;

+    if(/webkit/i.test(u)){

+        st(function(){

+            var dr=document.readyState;

+            if(dr=="loaded"||dr=="complete"){i()}

+            else{st(arguments.callee,10);}},10);

+    } else if((/mozilla/i.test(u)&&!/(compati)/.test(u)) || (/opera/i.test(u))){

+        document.addEventListener("DOMContentLoaded",i,false);

+    } else if(e){

+    (function(){

+        var t=document.createElement('doc:rdy');

+        try{t.doScroll('left');

+            i();t=null;

+        }catch(e){st(arguments.callee,0);}})();

+    } else{

+        window.onload=i;

+    }

+})( function() {BrowserHistory.initialize();} );

diff --git a/src/main/webapp/js/jquery.ui.menubar.js b/src/main/webapp/js/jquery.ui.menubar.js
new file mode 100644
index 0000000..f241e5e
--- /dev/null
+++ b/src/main/webapp/js/jquery.ui.menubar.js
@@ -0,0 +1,317 @@
+/*

+ * jQuery UI Menubar @VERSION

+ *

+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)

+ * Dual licensed under the MIT or GPL Version 2 licenses.

+ * http://jquery.org/license

+ *

+ * http://docs.jquery.com/UI/Menubar

+ *

+ * Depends:

+ *	jquery.ui.core.js

+ *	jquery.ui.widget.js

+ *	jquery.ui.position.js

+ *	jquery.ui.menu.js

+ */

+(function( $ ) {

+

+// TODO when mixing clicking menus and keyboard navigation, focus handling is broken

+// there has to be just one item that has tabindex

+$.widget( "ui.menubar", {

+	version: "@VERSION",

+	options: {

+		autoExpand: false,

+		buttons: false,

+		items: "li",

+		menuElement: "ul",

+		menuIcon: false,

+		position: {

+			my: "left top",

+			at: "left bottom"

+		}

+	},

+	_create: function() {

+		var that = this;

+		this.menuItems = this.element.children( this.options.items );

+		this.items = this.menuItems.children( "button, a" );

+

+		this.menuItems

+			.addClass( "ui-menubar-item" )

+			.attr( "role", "presentation" );

+		// let only the first item receive focus

+		this.items.slice(1).attr( "tabIndex", -1 );

+

+		this.element

+			.addClass( "ui-menubar ui-widget-header ui-helper-clearfix" )

+			.attr( "role", "menubar" );

+		this._focusable( this.items );

+		this._hoverable( this.items );

+		this.items.siblings( this.options.menuElement )

+			.menu({

+				position: {

+					within: this.options.position.within

+				},

+				select: function( event, ui ) {

+					ui.item.parents( "ul.ui-menu:last" ).hide();

+					that._close();

+					// TODO what is this targetting? there's probably a better way to access it

+					$(event.target).prev().focus();

+					that._trigger( "select", event, ui );

+				},

+				menus: that.options.menuElement

+			})

+			.hide()

+			.attr({

+				"aria-hidden": "true",

+				"aria-expanded": "false"

+			})

+			.bind( "keydown.menubar", function( event ) {

+				var menu = $( this );

+				if ( menu.is( ":hidden" ) ) {

+					return;

+				}

+				switch ( event.keyCode ) {

+				case $.ui.keyCode.LEFT:

+					that.previous( event );

+					event.preventDefault();

+					break;

+				case $.ui.keyCode.RIGHT:

+					that.next( event );

+					event.preventDefault();

+					break;

+				}

+			});

+		this.items.each(function() {

+			var input = $(this),

+				// TODO menu var is only used on two places, doesn't quite justify the .each

+				menu = input.next( that.options.menuElement );

+

+			// might be a non-menu button

+			if ( menu.length ) {

+				input.bind( "click.menubar focus.menubar mouseenter.menubar", function( event ) {

+					// ignore triggered focus event

+					if ( event.type === "focus" && !event.originalEvent ) {

+						return;

+					}

+					event.preventDefault();

+					// TODO can we simplify or extractthis check? especially the last two expressions

+					// there's a similar active[0] == menu[0] check in _open

+					if ( event.type === "click" && menu.is( ":visible" ) && that.active && that.active[0] === menu[0] ) {

+						that._close();

+						return;

+					}

+					if ( ( that.open && event.type === "mouseenter" ) || event.type === "click" || that.options.autoExpand ) {

+						if( that.options.autoExpand ) {

+							clearTimeout( that.closeTimer );

+						}

+

+						that._open( event, menu );

+					}

+				})

+				.bind( "keydown", function( event ) {

+					switch ( event.keyCode ) {

+					case $.ui.keyCode.SPACE:

+					case $.ui.keyCode.UP:

+					case $.ui.keyCode.DOWN:

+						that._open( event, $( this ).next() );

+						event.preventDefault();

+						break;

+					case $.ui.keyCode.LEFT:

+						that.previous( event );

+						event.preventDefault();

+						break;

+					case $.ui.keyCode.RIGHT:

+						that.next( event );

+						event.preventDefault();

+						break;

+					}

+				})

+				.attr( "aria-haspopup", "true" );

+

+				// TODO review if these options (menuIcon and buttons) are a good choice, maybe they can be merged

+				if ( that.options.menuIcon ) {

+					input.addClass( "ui-state-default" ).append( "<span class='ui-button-icon-secondary ui-icon ui-icon-triangle-1-s'></span>" );

+					input.removeClass( "ui-button-text-only" ).addClass( "ui-button-text-icon-secondary" );

+				}

+			}

+

+			input

+				.addClass( "ui-button ui-widget ui-button-text-only ui-menubar-link" )

+				.attr( "role", "menuitem" )

+				.wrapInner( "<span class='ui-button-text'></span>" );

+

+			if ( that.options.buttons ) {

+				input.removeClass( "ui-menubar-link" ).addClass( "ui-state-default" );

+			}

+		});

+		that._on( {

+			keydown: function( event ) {

+				if ( event.keyCode === $.ui.keyCode.ESCAPE && that.active && that.active.menu( "collapse", event ) !== true ) {

+					var active = that.active;

+					that.active.blur();

+					that._close( event );

+					active.prev().focus();

+				}

+			},

+			focusin: function( event ) {

+				clearTimeout( that.closeTimer );

+			},

+			focusout: function( event ) {

+				that.closeTimer = setTimeout( function() {

+					that._close( event );

+				}, 150);

+			},

+			"mouseleave .ui-menubar-item": function( event ) {

+				if ( that.options.autoExpand ) {

+					that.closeTimer = setTimeout( function() {

+						that._close( event );

+					}, 150);

+				}

+			},

+			"mouseenter .ui-menubar-item": function( event ) {

+				clearTimeout( that.closeTimer );

+			}

+		});

+

+		// Keep track of open submenus

+		this.openSubmenus = 0;

+	},

+

+	_destroy : function() {

+		this.menuItems

+			.removeClass( "ui-menubar-item" )

+			.removeAttr( "role" );

+

+		this.element

+			.removeClass( "ui-menubar ui-widget-header ui-helper-clearfix" )

+			.removeAttr( "role" )

+			.unbind( ".menubar" );

+

+		this.items

+			.unbind( ".menubar" )

+			.removeClass( "ui-button ui-widget ui-button-text-only ui-menubar-link ui-state-default" )

+			.removeAttr( "role" )

+			.removeAttr( "aria-haspopup" )

+			// TODO unwrap?

+			.children( "span.ui-button-text" ).each(function( i, e ) {

+				var item = $( this );

+				item.parent().html( item.html() );

+			})

+			.end()

+			.children( ".ui-icon" ).remove();

+

+		this.element.find( ":ui-menu" )

+			.menu( "destroy" )

+			.show()

+			.removeAttr( "aria-hidden" )

+			.removeAttr( "aria-expanded" )

+			.removeAttr( "tabindex" )

+			.unbind( ".menubar" );

+	},

+

+	_close: function() {

+		if ( !this.active || !this.active.length ) {

+			return;

+		}

+		this.active

+			.menu( "collapseAll" )

+			.hide()

+			.attr({

+				"aria-hidden": "true",

+				"aria-expanded": "false"

+			});

+		this.active

+			.prev()

+			.removeClass( "ui-state-active" )

+			.removeAttr( "tabIndex" );

+		this.active = null;

+		this.open = false;

+		this.openSubmenus = 0;

+	},

+

+	_open: function( event, menu ) {

+		// on a single-button menubar, ignore reopening the same menu

+		if ( this.active && this.active[0] === menu[0] ) {

+			return;

+		}

+		// TODO refactor, almost the same as _close above, but don't remove tabIndex

+		if ( this.active ) {

+			this.active

+				.menu( "collapseAll" )

+				.hide()

+				.attr({

+					"aria-hidden": "true",

+					"aria-expanded": "false"

+				});

+			this.active

+				.prev()

+				.removeClass( "ui-state-active" );

+		}

+		// set tabIndex -1 to have the button skipped on shift-tab when menu is open (it gets focus)

+		var button = menu.prev().addClass( "ui-state-active" ).attr( "tabIndex", -1 );

+		this.active = menu

+			.show()

+			.position( $.extend({

+				of: button

+			}, this.options.position ) )

+			.removeAttr( "aria-hidden" )

+			.attr( "aria-expanded", "true" )

+			.menu("focus", event, menu.children( ".ui-menu-item" ).first() )

+			// TODO need a comment here why both events are triggered

+			.focus()

+			.focusin();

+		this.open = true;

+	},

+

+	next: function( event ) {

+		if ( this.open && this.active.data( "menu" ).active.has( ".ui-menu" ).length ) {

+			// Track number of open submenus and prevent moving to next menubar item

+			this.openSubmenus++;

+			return;

+		}

+		this.openSubmenus = 0;

+		this._move( "next", "first", event );

+	},

+

+	previous: function( event ) {

+		if ( this.open && this.openSubmenus ) {

+			// Track number of open submenus and prevent moving to previous menubar item

+			this.openSubmenus--;

+			return;

+		}

+		this.openSubmenus = 0;

+		this._move( "prev", "last", event );

+	},

+

+	_move: function( direction, filter, event ) {

+		var next,

+			wrapItem;

+		if ( this.open ) {

+			next = this.active.closest( ".ui-menubar-item" )[ direction + "All" ]( this.options.items ).first().children( ".ui-menu" ).eq( 0 );

+			wrapItem = this.menuItems[ filter ]().children( ".ui-menu" ).eq( 0 );

+		} else {

+			if ( event ) {

+				next = $( event.target ).closest( ".ui-menubar-item" )[ direction + "All" ]( this.options.items ).children( ".ui-menubar-link" ).eq( 0 );

+				wrapItem = this.menuItems[ filter ]().children( ".ui-menubar-link" ).eq( 0 );

+			} else {

+				next = wrapItem = this.menuItems.children( "a" ).eq( 0 );

+			}

+		}

+

+		if ( next.length ) {

+			if ( this.open ) {

+				this._open( event, next );

+			} else {

+				next.removeAttr( "tabIndex")[0].focus();

+			}

+		} else {

+			if ( this.open ) {

+				this._open( event, wrapItem );

+			} else {

+				wrapItem.removeAttr( "tabIndex")[0].focus();

+			}

+		}

+	}

+});

+

+}( jQuery ));

diff --git a/src/main/webapp/js/openmeetings_functions.js b/src/main/webapp/js/openmeetings_functions.js
new file mode 100644
index 0000000..6330bf7
--- /dev/null
+++ b/src/main/webapp/js/openmeetings_functions.js
@@ -0,0 +1,64 @@
+/*

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+*/

+/*

+ * Functions to be included in the HTML wrapper,

+ * see the templates dir (*.vm) for the include statements

+ *  

+ */ 

+

+function getBrowserInfo() {

+	//alert(navigator.userAgent);

+	document.getElementById("lzapp").getBrowserInfoCallback(navigator.userAgent);

+}

+

+function getBrowserLang() {

+	//alert(navigator.userAgent);

+	document.getElementById("lzapp").getBrowserLangCallback(navigator.language);

+}

+

+function redirectToUrl(url) {

+	//alert(navigator.userAgent);

+	window.location = url;

+	

+	document.getElementById("lzapp").redirectToUrlCallback("ok");

+}

+

+function loadingComplete() {

+	document.getElementById("swfloading").style.display = 'none';

+	var lzApp = document.getElementById("lzappContainer");

+	lzApp.style.width = '100%';

+	lzApp.style.height = '100%';

+}

+

+function getTimeZoneOffsetMinutes() {

+	var rightNow = new Date(), std_time_offset = -rightNow.getTimezoneOffset();

+	for (var i = 0; i < 12; ++i) {

+		var d = new Date(rightNow.getFullYear(), i, 1, 0, 0, 0, 0), offset = -d.getTimezoneOffset();

+		if (offset < std_time_offset) {

+			std_time_offset = offset;

+			break;

+		}

+	}

+    return std_time_offset;

+}

+

+function getTimeZoneOffset() {

+    document.getElementById("lzapp").getTimeZoneOffsetCallback(getTimeZoneOffsetMinutes()/60);

+}

diff --git a/src/main/webapp/languages/arabic.xml b/src/main/webapp/languages/arabic.xml
new file mode 100644
index 0000000..747bbc7
--- /dev/null
+++ b/src/main/webapp/languages/arabic.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>المؤتمر</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>اجتماع</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>الاحداث</value>
+  </string>
+  <string id="4" name="settings">
+    <value>أماكن</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>نبذة</value>
+  </string>
+  <string id="6" name="admin">
+    <value>الادارة</value>
+  </string>
+  <string id="7" name="stop">
+    <value>توقف</value>
+  </string>
+  <string id="8" name="record">
+    <value>سجل</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>لا ملف متاحة</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>سجل قبل المعلمين</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>ترتبط المستخدمين :</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>بدء المؤتمر</value>
+  </string>
+  <string id="13" name="myname">
+    <value>اسمي</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>الفيديو</value>
+  </string>
+  <string id="15" name="import">
+    <value>تحميل الملفات</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>تحديث قائمة</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>الى الملف الرئيسي</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>استطلاع جديد</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>استطلاع جديد للمؤتمر.</value>
+  </string>
+  <string id="20" name="question">
+    <value>السؤال :</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>نوع من استطلاع للرأي يؤكد :</value>
+  </string>
+  <string id="22" name="create">
+    <value>خلق</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>معلومات : كل صلة يتلقى المستخدم رسالة مع استطلاع جديد.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>انشاء استطلاع</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>الغاء</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>نعم / لا</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>عددي 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>استطلاع الرأى</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>لا بد من وسيط لتهيئة السؤال</value>
+  </string>
+  <string id="30" name="vote">
+    <value>تصويتك مسجلة.</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>حسابك قد صوتت بالفعل في هذا الاستطلاع.</value>
+  </string>
+  <string id="32" name="voting">
+    <value>تصويت!</value>
+  </string>
+  <string id="33" name="answer">
+    <value>ردكم :</value>
+  </string>
+  <string id="34" name="yes">
+    <value>نعم</value>
+  </string>
+  <string id="35" name="no">
+    <value>لا</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>وسوف wissen :</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>نتائج الاستطلاع</value>
+  </string>
+  <string id="38" name="question">
+    <value>السؤال :</value>
+  </string>
+  <string id="39" name="results">
+    <value>النتائج :</value>
+  </string>
+  <string id="40" name="answers">
+    <value>الاجوبه :</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>لا الاستطلاعات قد بدأت.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>تصويت!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>الاجتماع (ماكس 4 مقاعد)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>المؤتمر (ماكس 50 مقعدا)</value>
+  </string>
+  <string id="45" name="type">
+    <value>النوع</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>المقاعد الاخرى</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>بالفعل اختارت</value>
+  </string>
+  <string id="48" name="enter">
+    <value>أدخل</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>الوسيط قد غادر الجلسة.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>نظام المعلومات</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>اختيار جهاز</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>اختيار كاميرا ويب :</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>اختيار الجزئي :</value>
+  </string>
+  <string id="54" name="ok">
+    <value>الموافقة</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>الغاء</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>انت بحاجة الى اعادة وصل.</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>تحرير الاعداد.</value>
+  </string>
+  <string id="58" name="course">
+    <value>وبطبيعة الحال :</value>
+  </string>
+  <string id="59" name="language">
+    <value>اللغة :</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>الموافقة</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>الغاء</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>بيضاء واضحة</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>هل تريد أن تكون لوحة جديدة قبل ان افرغوا الصورة المضافه؟</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>لا أسأل مرة اخرى</value>
+  </string>
+  <string id="65" name="no">
+    <value>لا</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>تحرير الاعداد</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>تأكيد طلب قبل افراغ بيضاء.</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>معلومات مستخدم</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>واضح drawarea</value>
+  </string>
+  <string id="70" name="undo">
+    <value>الغاء</value>
+  </string>
+  <string id="71" name="redo">
+    <value>أعادة</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>اختر جسم</value>
+  </string>
+  <string id="73" name="text">
+    <value>النص</value>
+  </string>
+  <string id="74" name="paint">
+    <value>الطلاء</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>استرعى الخط</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>إبراز أوجه</value>
+  </string>
+  <string id="77" name="rect">
+    <value>مستطيل</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>بيضوي</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>السهم</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>اختار حذف البند</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>طلب للحصول على الاعتدال</value>
+  </string>
+  <string id="82" name="apply">
+    <value>تطبيق</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>الغاء</value>
+  </string>
+  <string id="84" name="mod">
+    <value>لتصبح مشرف</value>
+  </string>
+  <string id="85" name="close">
+    <value>وثيق</value>
+  </string>
+  <string id="86" name="italic">
+    <value>مائل</value>
+  </string>
+  <string id="87" name="bold">
+    <value>اجترئ</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>انتظار</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>مستخدم يريد ان يطبق لالاعتدال :</value>
+  </string>
+  <string id="90" name="accept">
+    <value>يقبل</value>
+  </string>
+  <string id="91" name="reject">
+    <value>نرفض</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>الغاء</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>إرسال طلب الى المستخدمين التالية</value>
+  </string>
+  <string id="94" name="accept">
+    <value>مقبول</value>
+  </string>
+  <string id="95" name="reject">
+    <value>رفض</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>تغيير وسيط</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>انت لا اعتدال هذا بالطبع!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>رئيس الجلسة :</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>هذه الغرفة بالكامل. عفوا يرجى اعادة المحاوله لاحقا.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>بيضوي</value>
+  </string>
+  <string id="101" name="close">
+    <value>وثيق</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>خطأ في البيانات المدخله</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>اسم المستخدم يجب ان تكون على الأقل 4 احرف</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>Userpass يجب أن تكون على الأقل 4 احرف</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>اسم المستخدم مأخوذ من قبل</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>البريد الالكتروني هو ما سبق تسجيله</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>خطأ في النظام الرجاء الاتصال منظومة المشرفون</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>تسجيل الدخول</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>مستخدم :</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>المرور :</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>اللغة</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>تسجيل الدخول</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>اشترك</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>مستخدم :</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>المرور :</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>قلت :</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Firstname :</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Lastname :</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>البريد :</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>البلد :</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>سجل</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>الغاء</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>سجل</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>البيت</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>المستعملون</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>المجموعات</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>المنظمات</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>- غرف الاجتماع</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>الجمهور</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>منظمة</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>أدخل</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>تسجيل الدخول</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>كلمة السر</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>حروف</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Firstname</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Lastname</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>بريد</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>عيد الميلاد</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>الشارع / لا</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>الرمز البريدي / المدينة</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>البلاد</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Adress - معلومات</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Userdata</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>انقاذ</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>انقاذ</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>- رقم تعريف المستخدم</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>تسجيل الدخول</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>Firstname</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>Lastname</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>وتبين المقبل</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>وتظهر قبل</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>حذف سجل</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>الغاء</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>حذف</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>قياسيه جديدة</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>تجديد السجل</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>حذف سجل</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>المركز</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>فاقد الاهليه</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>مكن</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>المنظمات</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>التقويم</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>وثيق</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>منظمة معرف</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>الاسم</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>مستعمل</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>وزارة الدفاع</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>الادارة</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>Userlevel</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>منظمة</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>الاسم</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>تضيف منظمة</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>تضيف منظمة</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>الغاء</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>اضف</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>ازالة منظمة</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>مستعمل</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>اضافة مستخدم</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>حذف المستخدم</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>اضافة مستخدم</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>البحث المستخدم</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>البحث</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>مستعمل</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>منظمة</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>أدخل</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Conferencerooms</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Conferencerooms</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>الهوية</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>الاسم</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>الجمهور</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>المنظمات</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Meetingrooms</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>الاسم</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>النوع</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>الجمهور</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>التعليق</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>انقاذ</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>حمل</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>باستثناء ما ورد</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>اسم الملف</value>
+  </string>
+  <string id="201" name="files">
+    <value>اسم الملف</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>الغاء</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>انقاذ</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>خطأ</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>التحميل</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>الاشياء المحمله</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>Snychronizing العملاء والزبائن على الانتظار :</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>التحميل imagedata</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>Snychronizing العملاء والزبائن على الانتظار :</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>واضح drawarea</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>Drawarea واضحة ، وجميع البيانات المتعلقة وحة ستضيع</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>تأكد قبل التحميل الملف</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>ارسال دعوة</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>ارسال دعوة</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>الموضوع</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>المتلقيه</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>رسالة</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>أرسل</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>الغاء</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>أرسل</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Userdata</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>الاسم المستعار الخاص بك لهذا المؤتمر</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>نيك</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>Firstname</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>Lastname</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>البريد الالكتروني</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>اللغة</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>أدخل</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>التحميل</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>بيانات التحميل ، يرجى الانتظار!</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>خطأ كلمة السر</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>الرجاء ادخال كلمات السر متطابقه مع اثنين على الاقل 4 احرف</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>البريد الخطأ</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>لقد قمت بادخال غير صالحة للبريد - Adress</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>التسجيل الكامل</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>لقد تم انشاء حسابك. يمكنك الان تسجيل الدخول.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>لا يمكنك حصة الشاشه في تلك اللحظة. شخص آخر بالفعل السهم دورته الشاشه.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>تقاسم ممنوع</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>حصة الشاشه</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>سيئة عرض النطاق الترددى : انك لم تتمكن من syncronize الشاشه. اطر سيتم صرف النظر عنها. اذا كان هذا التحذير هو مبين في كثير من الاحيان يمكن لك ان تطلب من وسيط الى خفض نوعية.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>من الشاشه :</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>الطلاء</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>الوثيقة</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>الدردشه</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>ملفات</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>الاعضاء</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>تنزيل الوثيقة الاصليه</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>تنزيل قوات الدفاع الشعبي وثيقة</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>حمل عرض لوحة</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>التشكيل</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>أسحب هذا الوجه من وجوه</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>لتغيير هذا الوجه من وجوه</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>٪</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>من</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>اذهب الى الصفحه الاولى</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>اذهب الى الصفحه السابقة</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>اذهب الى الصفحه التالية</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>اذهب الى الصفحه الاخيرة</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>تكبير --</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>تكبير</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>السيد</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>السيدة</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>التشكيل</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>الهوية</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>مفتاح</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>التشكيل</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>مفتاح</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>آخر تحديث</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>Updatedby</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>التعليق</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>مفتاح</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>من</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>المستعملون</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>حذف المستخدم من المنظمه</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>حذف</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>هذا المستخدم هو بالفعل عضو في هذه المنظمه.</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>اخبار</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Quicklinks</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>جوتو المؤتمر</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>قاعة جوتو</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>مساعدة ودعم</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>تقرير أ بقة!</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>أكثر</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>مشروع شبكى (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>مستخدم قائمة بريديه (http://openmeetings.apache.org/mail-lists.html - مستخدم)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>نتذكر تسجيل الدخول</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>المحتوى</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>صفحتي الرئيسية</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>بلدي الجلسات المقررة</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>بلادي المقرر الاحداث</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>الجلسات العلنيه</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>الجلسات السرية</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>المناسبات العامة</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>المناسبات الخاصة</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>الجمهور محتوى</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>المحتوى الخاص</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>الشخصيه المحتوى</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>الاعتدال</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>طلب للحصول على الاعتدال</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>استطلاعات الرأي</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>اختر ملف</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>أماكن</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>كأم التابعة لهيئة التصنيع العسكرى والاعدادات</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>لوح الاعدادات</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>خروج</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>عودة الى غرف</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>خروج</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Desktop Viewer</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>start Desktop Viewer</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>صوت و صورة</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>دردشة</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>لوح أبيض</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>(إعادة) بدء صوت / صورة أو تغيير إعدادات الجهاز</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>ملفات</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>مستخدمين</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>إستطلاعات</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>هذا الإسم لا يعود إلى أي مستخدم</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>لقد تم إرسال بريد يتضمن رابط خاص إلى بريدك الإلكتروني، الرجاء تفحص صندوق البريد. إذا لم تحصل بعد على بريد إلكتروني، الرجاء تعديل إعدادات البريد المزعج و قم بإعادة إرسال البريد الإلكتروني الخاص بالتأكيد.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>خطأ</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>رسالة</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>مزيج غير صالح. ليس هناك أي مستخدم.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>إستعادة كلمة المرور</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>تسجيل الدخول</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>تغيير كلمة المرور</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>كلمة مرور جديدة</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>إعادة إدخال كلمة المرور</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>كلمات المرور التي أدخلتها ليست متطابقة</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>أربع أحرف أو أكثر</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>تم تسجيل كلمة المرور. يمكنك الآن تسجيل الدخول</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>خطأ غير معروف. الرجاء إبلاغ فريق الخدمة</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>إسم المستخدم غير موجود</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>كلمة مرور غير صحيحة</value>
+  </string>
+  <string id="337" name="logout">
+    <value>تم تسجيل الخروج بنجاح</value>
+  </string>
+  <string id="338" name="registration">
+    <value>تم إلغاء التسجيل السابق.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>بريد إلكتروني غير صحيح</value>
+  </string>
+  <string id="340" name="registration">
+    <value>إسم ملف مكرر. الرجاء إختيار إسماً آخراً</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>إسم الملف قصير</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>لا يمكن حفظ العنوان</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>تمت إضافة المستخدم لكن يجب إنساب هذا المستخدم إلى تنظيم و إلا لن يمكنه تسجيل الدخول.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>سجل جديد</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>ليس هناك أي حقل يحمل هذا Id.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>ليس هناك إسم لهذه الرقعة.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>المطلوب إذن المشرف</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>محرر اللغة</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>لغة</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>معرف الرقعة</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>إسم الرقعة</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>قيمة</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>حقل القيم</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>إسم الرقعة</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>قيمة الرقعة</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>معرف الرقعة</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>لقد حذفت الرقعة ليس الحقل! لا يمكنك حذف الحقل. يمكن أن يكون له رقع في لغات أخرى.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>رقعة غير صالح ةid. لا يمكن إيجاد The FieldLanguagesvalues_Id في قاعدة البيانات.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>لا يمكنك حذف هذا الحقل. يمكنك فقط حذف رقعات لا حلقات. ليس هناك أي رقعات محملة في هذه الأثناء، سواء لم تختر أي حقل أو ليس هناك أي رقعة معرفة لهذه اللغة لهذا الحقل.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>تصدير</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>يجب أن تخرج لرؤية التغييرات.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>إضافة لغة جديدة</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>delete language</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>حذف لغة</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>إسم</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>إضافة لغة</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>نسخ إحتياطي</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>القفز إلى الأول</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>القفز إلى السابق</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>القفز إلى التالي</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>القفز إلى الأخير</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>المستخدم يتكلم</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>تشغيل/إيقاف الصوت</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>نظام</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>إعداداتك</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>مرحباً،</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>إضافة ملف التعريف</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>رسائل جديدة:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>إيداع صور جديدة</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>بيانات المستخدم - تصدير</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>يجب أن تكون المنظمات موجودة!</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>بدء التصدير</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>عن طريق المنظمة</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>بدء التصدير</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>بيانات المستخدم - إستيراد</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>إختر users.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>إستيراد</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Export to XML - These files can be used to: - Contribute to the project - Import into another System - Backup - Customization - Put it into the language-directory for your next installation</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Choose a language file to import. Choose the right Langauge from the Combobox! No matter what the name of the file is, it will be imported into this language!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>إستيراد - إختر ملف</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>حفظ بإسم</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>إسم:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>تعليق:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>حفظ</value>
+  </string>
+  <string id="395" name="record">
+    <value>تسجيلات</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>مشاهدين التسجيلات</value>
+  </string>
+  <string id="397" name="record">
+    <value>تسجيلات الغرف العامة و الخاصة</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>مستخدمين:</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>إنضم:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>المستخدمين في هذه الغرفة:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>تحديث</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>هذه الغرفة ممتلئة. حاول بعد بضع دقائق مرة أخرى.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>إضغط على الغرفة للحصول على تفاصيل</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>دردشة مع المستخدمين في هذه الغرفة:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>غرفة:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>مستخدمين في هذه الغرفة:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>منذ:</value>
+  </string>
+  <string id="409" name="record">
+    <value>شغل التسجيل</value>
+  </string>
+  <string id="410" name="record">
+    <value>الطول:</value>
+  </string>
+  <string id="411" name="record">
+    <value>التاريخ:</value>
+  </string>
+  <string id="412" name="record">
+    <value>أسلوب المسجل! لا يمكنك تغيير القيم، هذا ملف مسجل!</value>
+  </string>
+  <string id="413" name="record">
+    <value>شغل هذا المسجل</value>
+  </string>
+  <string id="414" name="record">
+    <value>تشغيل/إيقاف</value>
+  </string>
+  <string id="415" name="record">
+    <value>بدء التسجيل</value>
+  </string>
+  <string id="416" name="record">
+    <value>إيقاف التسجيل</value>
+  </string>
+  <string id="417" name="record">
+    <value>تسجيل:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>هناك شخص آخر يقوم بالتسجيل في هذه الأثناء:</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>تسجيل! عن طريق المستخدم:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>إلغاء</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>سيتم إلغاء التسجيل دون حفظه.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>إستئناف</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>اقفل النافذة و إستأنف التسجيل</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>تغيير لون الخط</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>إختر اللون</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>تمكين/تعطيل لون الخط</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>تغيير ملء اللون</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>تعطيل / تشغيل ملء اللون</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>تغيير عرض الخط</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>غلق</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>تغيير حجم الحروف</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>حذف التسجيل</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>ضيف</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>عند:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>إسم</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>غرفة</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>تاريخ</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>إلغاء</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>بدء</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>إسم</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>تاريخ</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>حذف server-chatlog</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>دردشة</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>إرسال رسالة</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>رموز</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>رموز</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>إختر الأجهزة المنشورة</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>صوت و صورة</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>صوت فقط</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>صورة فقط</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>لا صورة/صوت (صورة ثابتة)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>لا صوت/صورة ستنشر من جهازك، بدلاً من هذا ستظهر صورة من ملفك. إختر هذه الإعدادات إذا كان لديك مشاكل مع عرض النطاق الترددي أو إذا كان إتصالك بالإنترنت بطيئاً.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>الإثنين</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>الثلاثاء</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>الأربعاء</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>الخميس</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>الجمعة</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>السبت</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>الأحد</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>الإثنين</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>الثلثاء</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>الأربعاء</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>الخميس</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>الجمعة</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>السبت</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>الأحد</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>التقويم الأسبوعي</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>التقويم الأسبوعي</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>كانون الثاني(يناير)</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>شباط(فبراير)</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>آذار(مارس)</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>نيسان(أبريل)</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>أيار(مايو)</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>حزيران(يونيو)</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>تموز(يوليو)</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>آب(أغسطس)</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>أيلول(سبتمبر)</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>تشرين أول(أكتوبر)</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>تشرين ثاني(نوفمبر)</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>كانون أول(ديسمبر)</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>تقويم</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>المشاركون</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>عرض إعدادات التصميم</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>عرض | طول</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>صندوق الفيديو</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>صندوق الإدارة</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>صندوق اللوح</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>ممكن</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>عرض | طول</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>صندوق - ملفات،دردشة،مشاركين</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>ممكن</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>عرض | طول</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>لقد ترك رئيس الجلسة الغرفة. ليس هناك أي رئيس للجلسة في هذه الأثناء. يمكنك التقدم لرئاسة الجلسة أو الإنتظار.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>ليس هناك أي رئيس للجلسة في هذه الغرفة، و لكن هناك بعد المشاركين. عليك التقدم لرئاسة الجلسة أو الإنتظار.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>ملاحظات $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - دعوات</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>رسالة من المستخدم:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>رسالة:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>أنقر على هذا الرابط للمشاركة في الإجتماعات:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>أنقر هنا لدخول الغرفة:</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>إذا واجهتك مشاكل مع الرابط، الرجاء نسخه و من ثم لصقه في المتصفح:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>تسجيل $APP_NAME</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>بياناتك:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>تسجيل الدخول:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>كلمة المرور:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>البريد الإلكتروني:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>فريق - OpenMeeting</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>إنشاء حساب OpenMeeting</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>إعادة ضبط كلمة مرور - OpenMeeting</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>انقر على هذا الرابط من أجل إدخال كلمة مرور جديدة:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>انقر على هنا من أجل إدخال كلمة مرور جديدة</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>إذا واجهتك مشاكل مع هذا الرابط، الرجاء نسخه و لصقه في المتصفح:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>إعادة ضبط كلمة مرور OpenMeeting</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>الرجاء إدخال تاريخ صالح 24.12.2001 (يوم، شهر، سنة)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>الرجاء إدخال بريد إلكتروني صالح، مثلاً name@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>الرجاء إدخال عدد من أعداد الفاصلة العائمة، مثلاً 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>الرجاء إدخال عدد صحيح، مثلاً 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>الرجاء إدخال رقم هاتف صحيح، مثلاً ++49 0123 123123</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>الرجاء إدخال وقت صالح، مثلاً 12:23 (hh:mm)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>محمي عن طريق كلمة مرور</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>كلمة المرور</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>مدة الصلاحية</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>أبدي</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>مدة</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>وقت واحد</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>صالح من:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>صالح لغاية:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>دعوة إلى To $APP_NAME</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>ليس هناك دعوة متوفرة لرمز الدعوة هذا</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>هذه الدعوة استخدمت من قبل. لا يمكن إعادة إستخدام هذا النوع من الدعوات.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>رمز الدعوة هذا ليس صالح.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>كلمة المرور:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>إفحص كلمة المرور</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>كلمة مرور غير صحيحة!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>متصفح</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>مزامنة الصوت/الصورة</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>تسجيل الدخول صحيح لكن الجلسة التي إخترتها معطلة أو مخزنة في الخادوم. تحتاج أن تحصل على ID-جلسة جديد و تسجل الدخول من جديد.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>ID-جلسة لم تسجل الدخول أو ليس لديها حقوق المسؤول. The SOAP Gateway يحتاج إلى مستخدم لديه حقوق مسؤول ليتضمن مستخدمين جدد.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>ليس لدى هذه الجلسة إتصال ب-Remoteuser-Data. سواء لم تصل ب- SOAP-Gateway قبل البدء بالإستعمال أو أنك تستخدم جلسة-ID خاطئة.</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>يكون التسجيل حالياً Beta!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>x-axis</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>y-axis</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>ع</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>عرض</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>ط</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>طول</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>تغيير الشفافية</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>فتح المتصفح</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>إغلاق المتصفح</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>لقد تم فقدان الإتصال بالخادوم. عليك تحديث الطلب أو تفحص الشبكة.</value>
+  </string>
+  <string id="557" name="557">
+    <value>المؤشر</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>المزامنة</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>مزامنة المستخدمين، الرجاء الإنتظار</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Download as SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Download as PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Download as JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Download as PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Download as TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>مذكرة:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>فئة:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>التكرار:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>لا أحد</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>موقع:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>بداية</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>نهاية</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>عنوان:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>تعليق:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>دعوة ناس</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>يومي</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>شهري</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>سنوي</value>
+  </string>
+  <string id="578" name="alert">
+    <value>نهاية الموعد بعد بداية الموعد!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>الرجاء إدخال عنوان!</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>قم بتشغيل هذا إن كنت تستخدم لغة تكتب من اليمن إلى اليسار (ترتيب كلمات معكوس)</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>لوحة أجهزة القياس</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>مشاهدة الإجتماعات أو الاحداث المسجلة</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>إجتماع - قم بتشكيل مؤتمر مع 4 (حتى 16) مستخدمين&lt;br/&gt;يحصل الجميع على صوت و صورة</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>حدث - قم بتشكيل مؤتمر مع إلى 200 مشارك&lt;br/&gt;رئيس المؤتمر فقط يكون لديه صوت و صورة</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>قم بخلق مستخدمين، غرف، منظمات&lt;br/&gt; + تغيير الترتيبات</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>المستخدمين في هذه الغرفة في الوقت الحالي</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>تسجيل الدخول</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>تحمل وثائق. التجاء الإنتظار حتى يتم مزامنة كل العملاء.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>تم الإيداع، تحويل الوثيقة ...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>بدء الإيداع</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>إيداع و إستيراد الحوار. الرجاء إختيار ملف من الإسطوانة.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>إلغاء</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>إختيار الملف</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>إتصالات</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>قيمة</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Streamid</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>تسجيل الدخول</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>متصل منذ</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>غرفة / إطار</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>رمي المستخدم</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>رمي المستخدم</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>هل تريد فعلاً أن ترمي العميل خارج الإتصال؟&lt;br/&gt; هذا سوف يقوم فقط بإخراج الزبون من الغرفة الحالية. يمكن للزبون أن يدخل مرة أخرى.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>لقد تم إغلاق جلستك عن طريق المسؤول أو رئيس الجلسة.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>هاتف</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>المستخدم هو الرئيس في هذه الغرفة.</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>يسمح للمستخدم الرسم على اللوح.</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(إعادة) بدء صوت / صورة أو تغيير إعدادات الجهاز</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>السماح لهذا المستخدم بالرسم على اللوح</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>إلغاء قدرة الرسم على اللوح</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>المستخدمين</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>الملفات</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>اللوح</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>دردشة</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>حسابك يعود إلى عدة منظمات. الرجاء إختيار واحدة لهذه الجلسة.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>هذه الغرفة مليئة في هذه الأثناء. الرجاء المحاولة لاحقاً.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>نوع الغرفة.</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>غرفة المواعيد</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>وقت الخادوم.</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>مذكرة - OpenMeeting</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>رسالة من المستخدم:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>رسالة:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>أنقر على هذا الرابط للمشاركة في الإجتماع:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>أنقر هنا لدخول الغرفة</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>إذا كان لديك مشاكل مع الرابط، الرجاء نسخه و لصقه في المتصفح:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>البحث في الداخل</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>مستخدم خارجي</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>إسم الكنية</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>إسم</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>بريد إلكتروني</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>أكد الخروج</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>هل أنت متأكد أنك تريد تسجيل الخروج؟</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>النشاطات</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>غرفة تجريبية</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>وقت تجريبي</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>عداد الإجتماع</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>هذه الغرفة هي غرفة تجربة. لتعطيل هذه التحذير عليك الحصول على غرفة خاصة للإستخدام الخاص أو إنشاء خادم خاص. سوف يتم إخراجك فوراً في:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>مدار</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>الرجاء إنتظار دخول المدير الغرفة. يمكن أن يكون المدير معلم، مسؤول أو منشئ هذه الغرفة.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Ok</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>وصول مشاركة الشاشة</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>هناك مشارك شاشة قادمة من المستخدم:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>بدء المشاركة</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>إضافة لقاء جديد</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>غرفة الإجتماع</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>غرفة الحدث</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>إدارة</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>المستخدمين المدراء</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>الغرف المدارة</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>هل تريد تغيير هذا المستخدم و جعله مدير هذه المنظمة؟</value>
+  </string>
+  <string id="654" name="error message">
+    <value>الرجاء إختيار المنظمة قبل محاول إضافة مستخدم إليها!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>منظمة - مدير</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>هل تريد بالفعل حذف هذا المستخدم من المنظمة؟</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>هذا المستخدم هو مدير</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>هذا المستخدم ليس مديراً</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>هل تريد أن لا يكون هذا المستخدم مدير هذه المنظمة؟</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>إضافة أو حذف مستخدمين أو غرف ضمن منظمتك</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>هل تريد حقاً حذف هذا التسجيل؟</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>هل تريد حقاً حذف هذا المستخدم من منظمتك؟ سوف يتم فقط حذف الإتصال بين المستخدم و منظمتك، من أجل حذف المستخدم يجب أن تدخل لوحة المسؤول.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>لا يمكنك حذف مستخدمك!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>لتنفيذ هذه الطريقة تحتاج لحساب مسؤول!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>ليس هناك أي جلسة ترتبط ب- ID هذا.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>هذا حساب مسؤول أو مدير. يمكن تحرير هذا الحساب عن طريق لوحة المسؤول.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>لإكمال التسجيل الرجاء النقر على الرابط التالي. أو نسخ URL إلى المتصفح.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>أنقر من أجل التحقق من بريدك الإلكتروني</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>ليس هناك أي مستخدم لهذا الخليط.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>هذا المستخدم معطل!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>لقد تم تفعيل حسابك بنجاح!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>تسجيل الدخول الآن</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>حسابك ليس شغال. إستخدم أولاً الرابط في البريد الإلكتروني الذي حصلت عليه خلال التسجيل.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>لقد تم فتح حسابك بنجاح. لقد تم إرسال بريد إلكتروني مع رمز تحقق إلى بريدك. الرجاء التحقق من بريدك الإلكتروني.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>إزالة دور الإدارة من هذا المستخدم</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>منح هذا المستخدم حق الإدارة</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>مستخدم</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>مدخل إلى اللوح</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>مدير</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>إدارة: الرجاء إختيار أي مستخدم على القائمة لمنحه مدخل إلى اللوح، الإدارة أو الفيديو.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>هذا المستخدم هو مدير، لهذا لديه تلقائياً الحق في الرسم على اللوح.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>هذا أنت! لا يمكنك إزالة حقوق الإدارة من نفسك.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>السماح لهذا المستخدم نشر صوت / صورة</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>حذف صوت / صورة من هذا المستخدم</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>أود أن أدير هذه الغرفة</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>أود أن أرسم على اللوح</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>أو أن أشارك صوت / صورة</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>أنت مدير هذه الغرفة</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>لديك حق الرسم على اللوح</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>لديك حق مشاركة صوت / صورة</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>رسالة إلى المدير</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>المستخدم</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>يود أن يحصل على الإدارة. إستخدم أيقونات الحالات جانب المستخدم في قائمة المستخدمين لإضافة أو حذف الإدارة.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>يود أن يرسم على اللوح. إستخدم أيقونات الحالات جانب المستخدم في قائمة المستخدمين لإضافة أو حذف حق الرسم على اللوح.</value>
+  </string>
+  <string id="695" name="695">
+    <value>يود أن يتشارك الصوت/الصورة. إستخدم أيقونات الحالات جانب المستخدم في قائمة المستخدمين لإضافة أو حذف حق المشاركة صوت/صورة لأي مستخدم.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>عليك إنتظار المدير حتى يدخل الغرفة.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>إلغاء</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>حفظ</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>يوم</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>شهر</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>سنة</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>إيداع ملف</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>إضافة مجلد</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>تحديث</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>قمامة</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>ملفاتي (Home Drive)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>غرفة الملفات (Public Drive)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>إضافة ملف</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>إضافة مجلد</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>حذف مجلد</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>تحرير إسم</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>مجلد جديد</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>هل أنت متأكد أنك تريد حذف هذا البند؟</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>بحث</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>بحث</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>فتح وثيقة</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>إظهار كل الملفات (Tree View)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>إغلاق وثيقة</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>حذف ملف</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>لا يسمح لك بالرسم على هذا اللوح. تحتاج أن تكون مديراً أو أن تحصل على الأقل على حق تحرير لوح. يجب أن تسأل مديراً للحصول على هذا الحق.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>خصائص الوثيقة</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>بدأ العميل (external)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>بدأ العميل (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>مسخدم يود تقاسم شاشته. هل تريد رؤيتها؟</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>أنت تتشارك سطح مكتبك في هذه الأثناء. لإيقاف جلسة المشاركة الرجاء النقر زر توقف في عميل المشاركة.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>جلسة المشاركة</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>أنت تتشارك سطح مكتبك!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>مشاهد سطح المكتب</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>خروج</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>مقاسم سطح المكتب</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>أنقر على إبدأ لنشر شاشتك</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>بدء المشاركة</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>إيقاف المشاركة</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>إختر نطاق شاشتك:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>تغيير العرض</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>إنتهى المشارك من هذه الجلسة!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>تغيير الطول</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-Offset</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-Offset</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>العرض:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>الطول:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>قطع الإتصال من الخادوم</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>إلغاء</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>بدء الخارجي</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>إذا أقفلت هذه الجلسة كلياً لن يعد بإمكانك البدء من جديد بالمشاهد لهذه الجلسة.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>تأكيد إقفال جسلة المشاهد</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>مشاركة الشاشةShare Screen</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>تسجيل الجلسةRecord Session</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Co-Browsing</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Ooops, ... Firefox on Windows does not show clear Co-Browsing. Please use another Browser for using the Co-Browsing feature.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>السابقPrevious</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>التالي</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>تحديث</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Home</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>شحن</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>إجعل هذه الصفحة صفحة ملفك الإفتراضية.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>فحص الإعداد</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>إفحص إعدادات الميكروفون و الكاميرا قبل دخولك الغرفة عن طريق التسجيل لبضع ثوان. يمكنك بعدها رؤية التسجيل لفحص الصوت و الصورة.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>لا تظهر هذا الإختبار بعد الآن</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>إلغاء</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>بدء المؤتمر</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>لا تسأل مجدداً</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>يمكنك المتابعة دون الفحص إذا لا تريد نشر صورتك و صوتك. يمكن للمشاركين دون صوت و صورة متابعة إستخدام اللوح، مشاركة سطح المكتب أو كتابة رسائل دردشة.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>توقف</value>
+  </string>
+  <string id="767" name="test setup">
+    <value>مقياس المستوى</value>
+  </string>
+  <string id="768" name="start view">
+    <value>إضغط على البداية</value>
+  </string>
+  <string id="769" name="start view">
+    <value>بدء المؤتمر</value>
+  </string>
+  <string id="770" name="start view">
+    <value>بدء الحدث</value>
+  </string>
+  <string id="771" name="start view">
+    <value>إختر غرفة</value>
+  </string>
+  <string id="772" name="start view">
+    <value>فحص الإعدادات</value>
+  </string>
+  <string id="773" name="start view">
+    <value>بدء المؤتمر</value>
+  </string>
+  <string id="774" name="start view">
+    <value>الطريق إلى المؤتمر:</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>بدء التسجيل</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>لا تظهر فحص صوت / صورة (تسجيل) قبل دخول المؤتمر</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Public Rooms</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Public Rooms are accessible for all Users.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Private Rooms</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Private Rooms are only accessible for users of the same organization.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>My Rooms</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Rooms in this section are created for personal usage. There are some standard rooms plus the ones that are created through the calendar and have a start and an end date. The rooms created via the calendar are only listed in this section as long as they are valid.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>You have to be moderator to do this.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Apply for moderation</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Apply for whiteboard access</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Apply for camera/microphone access</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>This Session Hash was already used. You cannot use it twice.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>START</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>EXIT</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Do you really want to exit? You might should clear uploaded documents, whiteboard and the chat history.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Exit conference</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Rooms</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Choose a room for a meeting</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>There is an unsaved Event in the Calendar. Please either save it or remove it.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Please add at least one attendee for your meeting!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Do you really want to delete this Event?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Warning</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Add Event</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>Day</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>Week</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>Month</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Description</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Attendees</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, your Web Conferencing Platform. Either follow the Instructions, press the start button to start to conference immediatelly or you goto the Calendar and set up a Conference for the future.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Plan a Meeting</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>To set up a conference you can add a new Event in the Calendar.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Need help?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Restricted</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Search</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Add</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>There is no User selected. Please select an item from the list first and then hit add.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Add Attendee</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Save</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Delete</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Event Details</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Default Moderators</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Name</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>E-Mail</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Add new default Moderator</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Is Super Moderator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>If the Room is moderated, User with Level Moderator or Administrator are automatically Moderator if they enter the Room. If you don't want to specify that and only want a certain User to become Moderator use the Default Moderator option.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>A Super Moderator is always a Moderator when he enters a Room, and nobody can remove the Moderation Flag from him</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Apply Super-Moderation to User</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Remove Super Moderation from User</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>If you add an Organization to the room only users of that Organization have access to it (This is only valid if the isPublic flag is set to false!)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderation</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitations</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organization</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Are you sure?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Do you really want to delete this Item? You have to press the save button to store the changes!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>There is no User selected. Please select first before you add it!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Add new Default Moderator</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Do you want to add the Super Moderation Flag for this User? A Super Moderator is not only Moderator of a Room, but also no other Moderator can remove the Moderation Flag for this User. You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Do you want to remove the Super Moderation Flag for this User? You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>This User is a Super-Moderator. You cannot remove the Moderation flag from a Super-Moderator!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Do you really want to delete this File/Folder?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Delete File/Folder?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Mrs.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Properties</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Show mouse position to viewers</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Share Audio with SIP Applet</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Share Audio with SIP and Video with Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Full-Fit</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>View Screen</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>The user</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>wants to share its screen. Do you want to see it?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Close</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>The Session was closed by the sharing User!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>New Screen Sharing</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimize</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximize</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Recording Timeline</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>My Recordings</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Public Recordings</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Name</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Length</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Date</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>By</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>PLAY</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Main - Video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Recording</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>You may record and share your screen at the same time. To enable others to see your screen just hit the start button on the top. To only record the Session it is sufficient to click start recording.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Start Recording</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Stop Recording</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download the FLV-File</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Room</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Play</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>User has microphone on</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Allow User Questions</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Turn this off to prevent that any user is disturbing you in this room. Effect is that the Button to ask for Moderation ("I have a question") is not visible.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rights</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Download as AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Audio only</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>The have been errors while processing the Recording.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>The Recording is not yet ready for watching. Please retry in a couple of minutes again.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Recorder Message</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP Applet is not Ready</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP-Account Settings</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP settings for each user. You can turn on or off SIP via the Administration &gt; Configuration (Key: enable_sip). The SIP data for each user should be created automatically. You can re-create the data by checking "Re-generate SIP Data"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-User</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Pass</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. You should check the authentification data of your SIP-Provider and the SIP-Account Data for each User. As Administrator you are still able to login and check the Configuration. As User or Moderator you will be blocked from any interaction.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. Contact your Service Team!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Show Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log messages from post recorder process</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Applet Message</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>The SIP-Applet is not ready. Accept the Applet please and click ok!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Get Moderation</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Save Appointment Changes</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointement has been changed. Do you want to save those changes? &lt;br/&gt;&lt;br/&gt;All attendees of the appointment will receive a EMail with the updated date and time (depending on the notification type of this appointment).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>To access other recordings you have to login the $APP_NAME Application.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Choose the User for this Video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available Users for this Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>You are a Moderator in this Interview. You can decide who is speaking in this interview and you can start / stop the recording of the Session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Start Recording</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Stop Recording</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>The recording of the Interview is already started.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>The recording is already stopped or not been started yet.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>The recording for this interview is already started!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Clear objects on current slide only!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the Status bar is send to participants!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make Team-Rooms [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new Team-Room!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new Conference Room ("Team Room") for them. The chosen users will automatically switch to the new Team-Room or get a notification. Team-Room Moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a Moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Username</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new Team-Room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create Team-Room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the Team-Room!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from Team-Room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Roomtype</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the System. The Backup includes all User generated data. The configuration is not included as well as the language labels. Because those values are imported with the System Installer. To update your System, export your old system (1) re-install into a new database the new package (2) and import the Backup file again (3). The Backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share Screen/Record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is Moderator, he can do anything!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/Deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose "Insert" from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about Copy and Paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Kick user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/bulgarian.xml b/src/main/webapp/languages/bulgarian.xml
new file mode 100644
index 0000000..4ef95e5
--- /dev/null
+++ b/src/main/webapp/languages/bulgarian.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Конференция</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Среща</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Класна стая</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Настройки</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Профил</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Администриране</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Стоп</value>
+  </string>
+  <string id="8" name="record">
+    <value>Запис</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>Няма наличен файл</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Запис от учител</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Свързани потребители</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Започване на конференция</value>
+  </string>
+  <string id="13" name="myname">
+    <value>Моето име</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>Видеоконференция</value>
+  </string>
+  <string id="15" name="import">
+    <value>Качване на файл</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Опресняване на списъка</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>Към главната папка</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>Нова анкета</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>Нова анкета за конференцията.</value>
+  </string>
+  <string id="20" name="question">
+    <value>Въпрос:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Тип анкета:</value>
+  </string>
+  <string id="22" name="create">
+    <value>Създаване</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Инфо: Всеки свързан потребител получава съобщение за новата анкета.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Създаване на анкета</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Отказ</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Да/Не</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Числов 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Анкета</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Трябва да сте модератор, за да добавите нов въпрос</value>
+  </string>
+  <string id="30" name="vote">
+    <value>Гласът Ви е отчетен.</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Вече сте гласували в анкетата.</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Гласуване</value>
+  </string>
+  <string id="33" name="answer">
+    <value>Вашият отговор:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Да</value>
+  </string>
+  <string id="35" name="no">
+    <value>Не</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>иска да знае:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Резултати от анкетата</value>
+  </string>
+  <string id="38" name="question">
+    <value>Въпрос:</value>
+  </string>
+  <string id="39" name="results">
+    <value>Резултати:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Отговори:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>Не са започнати анкети.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Гласуване</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Среща (макс. 4 места)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Конференция (макс. 50 места)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Тип</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Оставащи места</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Вече избран</value>
+  </string>
+  <string id="48" name="enter">
+    <value>вход</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>Модераторът е напуснал срещата.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Системна информация</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Избор на устройства</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Избор на уебкамера:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Избор на микрофон:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>ОК</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>Отказ</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Трябва да се свържете отново.</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Редактиране на настройките</value>
+  </string>
+  <string id="58" name="course">
+    <value>Курс:</value>
+  </string>
+  <string id="59" name="language">
+    <value>Език:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>ОК</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>Отказ</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Изчистване на дъската</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Искате ли дъската да се изчиства, преди да бъде добавена нова снимка?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>Не питай отново</value>
+  </string>
+  <string id="65" name="no">
+    <value>не</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Редактиране на настройките</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Потвърждение преди изчистването на дъската</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Информация за потребител</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Изчистване на зоната за рисуване</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Стъпка назад</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Стъпка напред</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Маркиране на обект</value>
+  </string>
+  <string id="73" name="text">
+    <value>Текст</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Рисуване</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Чертаене на линия</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Подчертаване</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Правоъгълник</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Елипса</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Стрелка</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>Изтриване на маркирания обект</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Искане на права на модератор</value>
+  </string>
+  <string id="82" name="apply">
+    <value>Искане</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>Отказ</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Получаване на права на модератор</value>
+  </string>
+  <string id="85" name="close">
+    <value>Затвори</value>
+  </string>
+  <string id="86" name="italic">
+    <value>курсив</value>
+  </string>
+  <string id="87" name="bold">
+    <value>получер</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>Изчакване...</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>Потребител иска права на модератор. Може да му дадете права само за рисуване върху дъската или напълно да му предадете правата на модератор.</value>
+  </string>
+  <string id="90" name="accept">
+    <value>приемане</value>
+  </string>
+  <string id="91" name="reject">
+    <value>отхвърляне</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>отказ</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Изпращане на молба към следните потребители</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Прието</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Отхвърлено</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Смяна на модератор</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Вие нямате права на модератор за този курс!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Модератор:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>Стаята е пълна. Моля, опитайте отново по-късно.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Елипса</value>
+  </string>
+  <string id="101" name="close">
+    <value>затваряне</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>грешка във входните данни</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>4 или повече знака; големите букви имат значение</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>паролата трябва да е поне 4 знака</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>потребителското име е заето</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>E-mail адресът е зает</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>Грешка в системата, потърсете системния администратор.</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Вход</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Име или e-mail:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Парола:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Език</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Вход</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Форма за регистрация</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Потребителско име:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Парола:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Парола отново:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Име:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Фамилия:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>E-mail:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>Държава:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Регистрация</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>Отказ</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Нямате регистрация?</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>Начало</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Потребители</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Групи</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Организации</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Стаи</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>публични</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>Организация</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>Вход</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Потребителско име</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Парола</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Парола отново</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Име</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Фамилия</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>E-mail</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Рожденна дата</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Улица/Но.</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>Град</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>Държава</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Адрес</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Данни за потребителя</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>Запис</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Запис</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>ID</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>Потребител. име</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>Име</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>Фамилия</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>Напред</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>Назад</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>Изтриване на запис</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>Отказ</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>Изтриване</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>Нов запис</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>Опресняване на записа</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>Изтриване на запис</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>Статус</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>изключен</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>включен</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>Организации</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>Календар</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>Затваряне</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>Организация ID</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>Име</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>Потребител</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>Модератор</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>Администратор</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>Ниво потребител</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>Организация</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>име</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>Добавяне на организация</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>Добавяне на организация</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>Отказ</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>Добавяне</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>Изтриване</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>Потребител</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>добавяне потребител</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>изтриване потребител</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>Добавяне на потребител към огранизация</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>Търсене на потребител</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>Търсене</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>Потребител</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>Организация</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>Вход</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Стаи за конференции</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Стаи за конференции</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>id</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Име</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>публична</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>Организации</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Стаи за срещи</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>Име</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>Тип</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>публична</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>Коментар</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>запазване и експорт</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>зареждане</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>запазване като</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>Файл</value>
+  </string>
+  <string id="201" name="files">
+    <value>файл</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>отказ</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>запазване</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>Грешка</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>зареждане...</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>обектите са заредени</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>синхронизация на клиентите, чакащи клиенти:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Зареждане на изображение</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>синхронизация на клиентите, чакащи клиенти:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>изчистване на полето за рисуване</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>Изчистване на полето? Цялата информация на дъската ще бъде изгубена.</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Потвърждение преди зареждане на файл</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Изпращане на покана</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Изпращане на покана</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Тема</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Получател</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Съобщение</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Изпрати</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>отказ</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>изпрати</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Данни за потребител</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>Вашият ник за тази конференция</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>Ник</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>Име</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>Фамилия</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>E-mail</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>Език</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>вход</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Зареждане</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Зареждане на данни, моля изчакайте!</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Грешна парола</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Моля въведете две еднакви пароли от поне 6 знака</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Грешен e-mail</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Въвели сте грешен e-mail адрес</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>Регистрацията е завършена</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Акаунтът е създаден. Може да влезете в системата.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>В момента не може да споделяте екрана си. Някой друг вече споделя своя екран.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Споделянето е забранено.</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Споделяне на екран</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Слаба Интернет връзка: нямате възможност за синхронизация на екрана. Ще има изпускане на кадри. Ако това съобщение се показва често, може да помолите модератора да намали качеството.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Екран на:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Рисуване</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Документ</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Чат</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Файлове</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Членове</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Сваляне на оригиналния документ</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>Сваляне на PDF</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Зареждане на презентацията на дъската</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Конфигурация</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Влачене на обект</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Промяна размерите на обект</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>от</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>Към първа страница</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>Към предишната страница</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>Към следващата страница</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>Към последна страница</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Мащаб --</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Мащаб ++</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Г-н</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Г-жа</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Конфигурация</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Ключ</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Конфигурация</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>ключ</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>последна промяна</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>променен от</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>коментар</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>Стойност</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>от</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Потребители</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>изтриване на потребител от организация</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>D</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>Потребителят вече е член на организацията.</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>Новини</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Бързи връзки</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Към конференция</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Към аудитория</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Помощ</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Бъг репорт!</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>повече</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Сайт на проекта (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>Потребителски мейлинг лист (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Запомни ме</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Съдържание</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>Начална страница</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>График на срещите</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>График на събитията</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Публични срещи</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Частни срещи</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Публични събития</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Частни събития</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Публично съдържание</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Частно съдържание</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Лично съдържание</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Права на модератор</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Искане права на модератор</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Анкети</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Избор на файл</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Настройки</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Камера и микрофон</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Настройки на дъската</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Изход</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Назад към стаите</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Изход</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Забравена парола?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Нова парола</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>По E-mail</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>По потребителско име</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>E-mail</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Потребителско име</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Изпращане на E-mail с линк за нова парола</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>Не е намерен такъв e-mail.</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Моля, въведете E-mail или потребителско име.</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>Не е намерено такова потребителско име.</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>Изпратен е e-mail, съдържащ линк за нова парола.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Грешка</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Съобщение</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Не е намерен такъв потребител.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Нова парола</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Потребителско име</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>промяна на паролата</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>нова парола</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>нова парола отново</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>Въведените пароли не са еднакви.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>4 или повече знака; главните букви имат значение!</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Паролата е настроена, вече може да влезете в системата.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>ОК</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Грешка. Докладвайте за бъг!</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Потребителското име не е намерено.</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Невалидна парола</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Успешен изход от системата</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Забранена е регистрацията на нови потребители.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>Невалиден e-mail</value>
+  </string>
+  <string id="340" name="registration">
+    <value>дублиране на името на файла, изберете друго име</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>името на файла е много кратко</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Не може да се запази адреса</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>Потребителят е добавен, но трябва да се добави към Организация, за да може да влезе в системата.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Нов запис</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>Не е намерено поле с такова полеID</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>Не е намерен етикет на това поле</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Необходима е ауторизация като администратор</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Редактор на език</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Език</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>Етикет-ID</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Име на етикета</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Стойност</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Стойности на полето</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>Име на етикета</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>Стойност на етикета</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>Етикет-ID</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>Може да изтриете само етикета, но НЕ и полето! Не може да изтриете полето, защото то съдържа етикети на други езици.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>Невалидно Етикет-ID.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Не може да изтриете това поле.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>експорт</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Трябва да излезете от системата, за да видите промените.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Добавяне на нов език</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>изтриване на език</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Добавяне на нов език</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Име</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>добавяне на език</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Бекъп</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>първа страница</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>предишна страница</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>следваща страница</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>последна страница</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>потребителят говори (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>изкл./вкл. на звука</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>Система</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Вашите настройки</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>Здравейте,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Редакт.на профил</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Нови съобщения:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Качи нова снимка</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Данни на потребител - експорт</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>Всички организации трябва вече да съществуват!</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>старт на експорт</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>По организация</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>старт на експорт</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Данни на потребител - импорт</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>choose-users.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>импорт</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Експорт в XML - Тези файлове може да се използват в: &amp;lt;br/&amp;gt; - Помощ за проекта - Импорт в друга система &amp;lt;br/&amp;gt; - Бекъп - Настройки&amp;lt;br/&amp;gt; - Сложете файла в папката language на новата инсталация.</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Изберете XML файл за импорт на език. &amp;lt;br/&amp;gt; Изберете правилния език от падащото меню! &amp;lt;br/&amp;gt; Без значение от името на файла, &amp;lt;br/&amp;gt; той ще бъде импортнат в този език!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>импорт - изберете файл</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Запазване като</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Име:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Коментар:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>запазване</value>
+  </string>
+  <string id="395" name="record">
+    <value>Записи</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Преглед на записи</value>
+  </string>
+  <string id="397" name="record">
+    <value>Записи от публични и частни стаи</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Потребители:</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Включили се:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Потребители в тази стая:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>опресняване</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>Тази стая е пълна. Пробвайте отново след няколко минути.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>натиснете върху стая за детайли</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Чат с потребителите от тази стая:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Стая:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Потребители в тази стая:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>от:</value>
+  </string>
+  <string id="409" name="record">
+    <value>плейване на запис</value>
+  </string>
+  <string id="410" name="record">
+    <value>Дължина:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Дата:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Режим на запис! Не може да променяте стойности, това е записан файл!</value>
+  </string>
+  <string id="413" name="record">
+    <value>Плейване на този запис</value>
+  </string>
+  <string id="414" name="record">
+    <value>Плей / Пауза</value>
+  </string>
+  <string id="415" name="record">
+    <value>Старт запис</value>
+  </string>
+  <string id="416" name="record">
+    <value>Стоп запис</value>
+  </string>
+  <string id="417" name="record">
+    <value>Запис:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>В момента друг потребител прави запис.</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Запис! От потребител:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>отказ</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>Записът ще бъде отказан и няма да бъде запаметен.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>подновяване</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Затворете този прозорец за подновяване на записа.</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>смяна на цвета на линията</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Избор на цвят</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Изкл./Вкл. цвят на линия</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>смяна на цвета на запълването</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Изкл./Вкл. цвят на запълване</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>смяна ширината на линията</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>затваряне</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>смяна на размера на шрифта</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Изтриване на запис</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Гост</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>От:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Име</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Стая</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Дата</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>отказ</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>старт</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Име</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Дата</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Изтриване на чат история</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Чат</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>изпращане на съобщение</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Емотикони</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Емотикони</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Избор на устройства</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Аудио и Видео</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Само Аудио</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Само Видео</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>без Аудио/Видео (статично изображение)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>Няма да се показва никакво Аудио/Видео от Вашето PC, вместо това ще се показва статично изображение. Може да изберете тази настройка, ако имате бавна Интернет връзка.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>ПОН</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>ВТ</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>СР</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>ЧЕТ</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>ПЕТ</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>СЪБ</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>НЕД</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Понеделник</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Вторник</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Сряда</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Четвъртък</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Петък</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Събота</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Неделя</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>седм</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Седмица</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>Януари</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>Февруари</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>Март</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>Април</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>Май</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>Юни</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>Юли</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>Август</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>Септември</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>Октомври</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>Ноември</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>Декември</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Календар</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Участници</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Показване настройки на изгледа</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Ширина | Височина</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Видео-контейнер</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Модерация-контейнер</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Дъска-контейнер</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Включен</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Ширина | Височина</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Файлове,Чат,Участници-контейнер</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Включен</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Ширина | Височина</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>Модераторът е напуснал стаята и никой не присъства в момента. Може да поискате права на модаратор или да изчакате.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>Няма модератор в стаята, но има други участници. Може да поискате права на модаратор или да изчакате.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Обратна връзка с $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Покана</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Съобщение от потребител:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Съобщение:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Натиснете линка, за да участвате в срещата:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Натиснете тук, за вход в стаята</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>Ако имате проблеми с линка, копирайте го и го вмъкнете в браузъра:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>Регистрация в $APP_NAME</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Потребителски данни:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Потребителско име:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Парола:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>E-mail:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>Екип на $APP_NAME</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>Регистрация в $APP_NAME</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>Нова парола за $APP_NAME</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Натиснете линка, за да въведете нова парола.</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Натиснете тук, за да въведете нова парола.</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>Ако имате проблеми с линка, копирайте го и го вмъкнете в браузъра:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>Нова парола за $APP_NAME</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Въведете валидна дата, например 24.11.2001 (дд.мм.гггг)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Въведете валиден e-mail, например name@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Въведете десетично число, например 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Въведете цяло число, например 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Въведете валиден телефон, например +359 888 123456</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Въведете валидно време, например 12:23 (чч:мм)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Защита с парола</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Парола</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Период на валидност</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Безкраен</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Период</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Един път</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Валидност от:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Валидност до:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Покана за $APP_NAME</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Няма покана на раположение, за този код.</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>Поканата вече е използвана. Този тип покани не могат да се използват повторно.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>Кодът за покана не е валиден.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Парола</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Проверка на парола</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Грешна парола</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Аудио/Видео</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Синхронизация на Аудио/Видео</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Входът в системата е коректен, но сесията Ви не е активна. Трябва да опитате повторен вход в системата.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>Грешна сесия или липса на админ права. Трябва да имате админ права, за да добавяте нови потребители.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>Сесията не може да се свърже с отдалечения потребител.</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>Рекордерът е в момента в БЕТА-версия!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>x-ос</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>y-ос</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>шир</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>ширина</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>вис</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>височина</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Промяна прозрачност</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Отваряне браузър</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Затваряне браузър</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>Връзката със сървъра е прекъсната. Трябва да заредите наново приложението или да проверите мрежата си.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Указател</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Синхронизация</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Синхронизация на потребители, моля изчакайте</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&amp;lt;u&amp;gt;Сваляне в SVG&amp;lt;/u&amp;gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&amp;lt;u&amp;gt;Сваляне в PNG&amp;lt;/u&amp;gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&amp;lt;u&amp;gt;Сваляне в JPG&amp;lt;/u&amp;gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&amp;lt;u&amp;gt;Сваляне в PDF&amp;lt;/u&amp;gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&amp;lt;u&amp;gt;Сваляне в TIF&amp;lt;/u&amp;gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Напомняне:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Категория:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Повтаряне:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>няма</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Място:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Начало</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>Край</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Заглавие:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Коментар:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Покана</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Всеки ден</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Всеки месец</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Всяка година</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Краят на събитието е след началото му!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Въведете заглавие!</value>
+  </string>
+  <string id="580" name="580">
+    <value>Отдясно наляво</value>
+  </string>
+  <string id="581" name="581">
+    <value>Активирайте, ако искате да пишете на език отдясно наляво (обратен ред на думите)</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Табло</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Гледане на записани срещи</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Среща - създава конференция с 4 (до 16) потребители&amp;lt;br/&amp;gt;като всички имат аудио + видео достъп</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Събитие - създава конференция с до 200 потребители&amp;lt;br/&amp;gt;като само Модераторът има аудио + видео достъп</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Създаване на потребители, стаи, организации&amp;lt;br/&amp;gt;+ промяна на конфигурациите</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Потребители в стаята в момента</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Логин</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Зареждане на документ. Моля изчакайте докато всички клиенти бъдат синхронизирани.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Качването е завършено, конвертиране на документа...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Старт качване</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Моля изберете файл от диска.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Отказ</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Избор на файл</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Връзки</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Стойност</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>СтриймID</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Логин</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Свързан от</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Стая / Обхват</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Кик потребител</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Кик потребител</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Наистина ли искате кик на потребителя?&amp;lt;br/&amp;gt;Това само ще махне клиента от стаята, и след това той може да се логне наново.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Сесията Ви е приключена от Администратор или Модератор.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Телефон</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>Потребителят е Модератор в тази стая</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>Потребителят има право да рисува на дъската.</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>Ре(старт) на Аудио/Видео или промяна на настройките</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Позволяване на потребителя да рисува на дъската</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Премахва правото за рисуване на дъската</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Потребители</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Файлове</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Бяла дъска</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Чат</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Вашият акаунт е свързан с повече от 1 организация. Моля, изберете една за текущата сесия.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>Стаята е пълна в момента. Моля, пробвайте отново по-късно.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Тип стая</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Уговорена среща</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Време на сървъра</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>Напомняне</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Съобщение от потребител:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Съобщение:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Натиснете тук за участие в срещата</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Натиснете тук за вход в стаята</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>Ако имате проблеми с този линк, моля копирайте и го вмъкнете в браузъра:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>вътр. търсене</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>Добавяне външни</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>Име</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>Фамилия</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>Е-майл</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Потвърждаване изход</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Искате ли да излезете сега?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Дейности</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Демо стая</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Демо време</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Таймер на срещата</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>Тази стая е Демо стая. За да изключите това предупреждение, трябва да влезете в частна стая или да настроите собствен сървър.</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Модериран</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Моля изчакайте докато Модераторът влезе в стаята. Модераторът може да е учител, администратор или създател на стаята.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>OK</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Споделен екран</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>Има нов споделен екран от потребител:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Старт на споделяне</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Добавяне на среща</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Стая за среща</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Стая за събитие</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Модерация</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Модерация на потребители</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Модерация на стаи</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>М</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Искате ли този потребител да стане Модератор на тази организация?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Моля изберете първо организация!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Организация - Модератор</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Искате ли да изтриете потребителя от организацията?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>Потребителят е Модератор</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>Потребителят не е Модератор</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Искате ли този потребител да не бъде Модератор на тази организация?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Добавяне/премахване на потребители и стаи от организацията</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Наистина ли искате да изтриете този запис?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Наистина ли искате да изтриете потребителя от организацията? Това само ще прекъсне връзката между потребителя и организацията, за да изтриете потребителя изцяло трябва да влезете в Администраторския панел.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>Не може да изтриете своя потребител!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>Тази операция изисква Администраторски акаунт!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>Няма сесия свързана с това ID.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>Това е Администраторски или Модераторски акаунт. Може да редактирате този акаунт само през Административния панел.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>За да приключите регистрацията, натиснете следния линк или копирайте адреса в браузъра си.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Натиснете, за да потвърдите е-майла.</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Не беше намерен такъв потребител.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Този потребител вече е активиран.</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Успешно активирахте акаунта си!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Вход сега</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Вашият акаунт не е активиран. Използвайте линка за потвърждение в изпратения мейл.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>Успешна регистрация! Изпратен е мейл за потвърждение на регистрацията и активиране на акаунта. Моля проверете мейла си.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Изтриване на Модераторска роля за този потребител</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Даване на Модераторски права на този потребител</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>Потребител</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Достъп до дъската</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Модератор</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Модерация: моля изберете потребител от списъка за даване на права до дъската, модерация или видео.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>Този потребител вече е Модератор, затова той има достъп до дъската.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>Не може да премахнете Модераторските права от своя потребител!</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Позволяване на потребителя да публикува своето Аудио/Видео.</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Изтриване на Аудио/Видео за този потребител</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>Искам права на Модератор за тази стая.</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>Искам права за рисуване върху дъската.</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>Искам права за споделяне на Аудио/Видео.</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>Вие сте Модератор на тази стая.</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>Вие имате права за рисуване върху дъската.</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>Вие имате права за споделяне на Аудио/Видео.</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Съобщение към Модератор</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>Потребителят</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>иска права на Модератор. Използвайте статус иконите, за даване/премахване на правата.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>иска права за рисуване върху дъската. Използвайте статус иконите, за даване/премахване на правата.</value>
+  </string>
+  <string id="695" name="695">
+    <value>иска права за споделяне на Аудио/Видео. Използвайте статус иконите, за даване/премахване на правата.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>Трябва да изчакате, докато Модераторът влезе в стаята.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Отказ</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Запазване</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Ден</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Месец</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Година</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Качване на файл</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Нова папка</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Опресняване</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Кошче</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>Моите файлове (home)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Файлове за стаята</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Нов файл</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Нова папка</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Изтриване на папка</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Редактиране на име</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>Нова папка</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Сигурни ли сте, че искате да изтриете този елемент?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Търсене</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Търсене</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Отваряне на документ</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Показване на всички файлове (дървовиден изглед)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Затваряне на документ</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Изтриване на файл</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>Нямате права за рисуване върху дъската. Може да поискате това право от Модератор.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Свойства на документ</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Старт клиент (външен)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Старт клиент (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>Потребител иска да сподели своя екран. Искате ли да го видите?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>В момента споделяте своя екран. За да спрете споделянето, натиснете бутона Stop.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Сесия за споделяне</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>В момента споделяте своя екран!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Десктоп преглед</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Изход</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Десктоп споделяне</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Натиснете Start, за да публикувате своя екран.</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Старт на споделяне</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Стоп на споделяне</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Избор на част от екрана:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Промяна на ширина</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>Сесията на споделяне е приключила!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Промяна на височина</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-изместване</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-изместване</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Ширина:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Височина:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Връзката е затворена от сървъра</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Отказ</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Старт външен</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>Ако затворите сесията изцяло, няма да може да възстановите прегледа на тази сесия.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Потвърждаване затваряне на сесията за преглед</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Споделяне на екран</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Запис на сесия</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Общ браузър</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Firefox на Windows не позволява чисто общо браузване. Моля изберете друг браузър.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Предишен</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Следващ</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Презареждане</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Начало</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Зареждане</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Добавяне на сайт като сайт по подразбиране за този профил.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Тест на настройките</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Проверете настройките на микрофона и камерата си. След това може да пуснете записа за проверка на гласа и картината.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Не показвай повече този тест</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Отказ</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Старт конференция</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Не питай повече</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>Може да продължите без тест, ако не планирате да публикувате видео/аудио. Участниците без Аудио/Видео могат да използват дъската, да споделят екрана си и да пишат чат съобщения.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="767">
+    <value>Височина</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Натиснете Start</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Старт конференция</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Старт събитие</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Избор на стая</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Проба настройки</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Старт конференция</value>
+  </string>
+  <string id="774" name="start view">
+    <value>Тип конференция:</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Начало запис</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Не показвай Аудио/Видео тест запис, преди влизане в конференцията.</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Публични стаи</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>До публичните стаи имат достъп всички потребители.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Частни стаи</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>До частните стаи имат достъп само потребителите от същата организация.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>Моите стаи</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Стаите в тази секция са създадени за лично ползване. Те са създадени от календара и имат начална и крайна дата. Те се описват в тази секция, докато са валидни.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>Трябва да сте Модератор за това действие.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Искане за Модератор</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Искане за рисуване върху дъската</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Искане достъп до камера/микрофон</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>Сесията вече се използва - не може да я използвате повторно.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>СТАРТ</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>ИЗХОД</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Наистина ли искате да излезете? Може би трябва да изчистите дъската, качените документи и чат историята.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Изход конференция</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Стаи</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Изберете стая за срещата</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>Има незапазено събитие в календара. Моля, запазете го или го изтрийте.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Моля добавете поне 1 присъстващ на срещата!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Наистина ли искате да изтриете това събитие?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Предупреждение</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Добавяне събитие</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>ден</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>седмица</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>месец</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Описание</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Присъстващи</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>Моля, следвайте инструкциите и натиснете бутона Start, за да започнете конференция веднага или отидете в календара, за да планирате бъдеща конференция.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Планиране среща</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>За да планирате среща, добавете събитие към каледара. За всяко събитие в каледара ще бъде автоматично създадена стая за конференция. Вие и всички присъстващи ще получат мейл с линк към стаята&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; Може да изберете различни типове стаи с различен тип модерация.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Нужда от помощ?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Ограничен</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Търсене</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Добавяне</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>Не е избран потребител. Моля изберете елемент от списъка и го добавете.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Добавяне на присъстващ</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Запазване</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Изтриване</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Детайли за събитието</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Модератори по подразбиране</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Супер</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Име</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>Е-майл</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Добавяне на нов Модератор по подразбиране</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>е Супер Модератор</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>Ако стаята е модерирана, Модератор или Администратор автоматично са с права на Модератор. Ако искате определен потребител да бъде Модератор, използвайте опцията Модератор по подразбиране.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>Супер Модератор винаги е Модератор при вход в стаята и никой не може да премахне тези негови права.</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Прилагане права на Супер Модератор</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Премахване права на Супер Модератор</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>Ако добавите организация към стаята, само потребителите от тази организация ще виждат стаята.</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Модерация</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Ограничения</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Организация</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Сигурни ли сте?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Наистина ли искате да изтриете този елемент? Трябва да натиснете бутона Save, за запазване на промените!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>Не е избран потребител. Моля изберете потребител, преди да го добавите!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Добавяне на нов Модератор по подразбиране</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Искате ли да дадете права на Супер Модератор на този потребител? Супер Модератор винаги е Модератор при вход в стаята и никой не може да премахне тези негови права. Трябва да запазите стаята, за да запазите настройките!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Искате ли да премахнете правата на Супер Модератор от този потребител? Трябва да запазите стаята, за да запазите настройките!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>Потребителят е Супер Модератор и никой не може да премахне тези негови права!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Наистина ли искате да изтриете този файл/папка?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Изтриване на файл/папка?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Г-жа</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Д-р</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Свойства</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Показване позицията на мишката на гледащите</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Share Audio with SIP Applet</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Share Audio with SIP and Video with Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Full-Fit</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>View Screen</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>The user</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>wants to share its screen. Do you want to see it?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Close</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>The Session was closed by the sharing User!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>New Screen Sharing</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimize</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximize</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Recording Timeline</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>My Recordings</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Public Recordings</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Name</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Length</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Date</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>By</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>PLAY</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Main - Video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Recording</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>You may record and share your screen at the same time. To enable others to see your screen just hit the start button on the top. To only record the Session it is sufficient to click start recording.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Start Recording</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Stop Recording</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download the FLV-File</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Room</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Play</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>User has microphone on</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Allow User Questions</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Turn this off to prevent that any user is disturbing you in this room. Effect is that the Button to ask for Moderation ("I have a question") is not visible.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rights</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Download as AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Audio only</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>The have been errors while processing the Recording.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>The Recording is not yet ready for watching. Please retry in a couple of minutes again.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Recorder Message</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP Applet is not Ready</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP-Account Settings</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP settings for each user. You can turn on or off SIP via the Administration &gt; Configuration (Key: enable_sip). The SIP data for each user should be created automatically. You can re-create the data by checking "Re-generate SIP Data"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-User</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Pass</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. You should check the authentification data of your SIP-Provider and the SIP-Account Data for each User. As Administrator you are still able to login and check the Configuration. As User or Moderator you will be blocked from any interaction.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. Contact your Service Team!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Show Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log messages from post recorder process</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Applet Message</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>The SIP-Applet is not ready. Accept the Applet please and click ok!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Get Moderation</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Save Appointment Changes</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointement has been changed. Do you want to save those changes? &lt;br/&gt;&lt;br/&gt;All attendees of the appointment will receive a EMail with the updated date and time (depending on the notification type of this appointment).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>To access other recordings you have to login the $APP_NAME Application.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Choose the User for this Video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available Users for this Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>You are a Moderator in this Interview. You can decide who is speaking in this interview and you can start / stop the recording of the Session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Start Recording</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Stop Recording</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>The recording of the Interview is already started.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>The recording is already stopped or not been started yet.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>The recording for this interview is already started!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Clear objects on current slide only!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the Status bar is send to participants!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make Team-Rooms [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new Team-Room!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new Conference Room ("Team Room") for them. The chosen users will automatically switch to the new Team-Room or get a notification. Team-Room Moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a Moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Username</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new Team-Room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create Team-Room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the Team-Room!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from Team-Room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Roomtype</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the System. The Backup includes all User generated data. The configuration is not included as well as the language labels. Because those values are imported with the System Installer. To update your System, export your old system (1) re-install into a new database the new package (2) and import the Backup file again (3). The Backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share Screen/Record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is Moderator, he can do anything!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/Deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose "Insert" from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about Copy and Paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Kick user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/catalan.xml b/src/main/webapp/languages/catalan.xml
new file mode 100644
index 0000000..9066e3f
--- /dev/null
+++ b/src/main/webapp/languages/catalan.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Conferència</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Videoconferència</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Auditories</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Configuració</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Usuari</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Administració</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Aturar</value>
+  </string>
+  <string id="8" name="record">
+    <value>Grabar</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>No s'ha seleccionat ningun fitxer</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Gravació pel professor</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Usuaris conectats:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Iniciar conferència</value>
+  </string>
+  <string id="13" name="myname">
+    <value>El meu nom</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>Videoconferència</value>
+  </string>
+  <string id="15" name="import">
+    <value>Importar fitxer</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Actualitzar llista de fitxers</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>Selecciona un fitxer com a principal</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>Nova enquesta</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>Nova enquesta per la conferència</value>
+  </string>
+  <string id="20" name="question">
+    <value>Pregunta:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Tipus d'enquesta</value>
+  </string>
+  <string id="22" name="create">
+    <value>Crear</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Informació: descripció d'enquesta.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Crear enquesta</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Cancel·lar</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Sí/No</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Valor numèric [1-10]</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Enquesta</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>És necessita ser moderador per crear una enquesta.</value>
+  </string>
+  <string id="30" name="vote">
+    <value>El seu vot ha sigut registrat</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Ja a respòs a la enquesta prèviament</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Votar</value>
+  </string>
+  <string id="33" name="answer">
+    <value>La seva resposta:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Sí</value>
+  </string>
+  <string id="35" name="no">
+    <value>No</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>Vol saber:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Resultats</value>
+  </string>
+  <string id="38" name="question">
+    <value>Pregunta:</value>
+  </string>
+  <string id="39" name="results">
+    <value>Resultats:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Respostes:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>No hi ha enquestes</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Votar</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Reunió (màx 4 llocs)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Conferència (máx 50 llocs)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Tipus</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Altres llocs</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Ja ha seleccionat.</value>
+  </string>
+  <string id="48" name="enter">
+    <value>Entrar</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>El moderador a deixat la reunió.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Informació del sistema</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Seleccionar el dispositiu</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Seleccionar camara:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Seleccionar micròfon:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>OK</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>Cancelar</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Necessita reconectar-se</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Editar configuració</value>
+  </string>
+  <string id="58" name="course">
+    <value>Curso:</value>
+  </string>
+  <string id="59" name="language">
+    <value>Idioma:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>OK</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>cancelar</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Eliminar pissarra</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Vols netejar la pissarra abans de afegir una nova imatge?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>No tornar a preguntar</value>
+  </string>
+  <string id="65" name="no">
+    <value>no</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Editar la configuració</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Requerix confirmació abans de netejar la pissarra</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Informació del usuari</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Netejar l'àrea de dibuix</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Desfer</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Refer</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Seleccionar un objecte</value>
+  </string>
+  <string id="73" name="text">
+    <value>Text</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Pintar</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Traçar una línia</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Subratllar</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Rectangle</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>El·lipse</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Data</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>Esborrar l'ítem escollit</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Solicitar la moderació</value>
+  </string>
+  <string id="82" name="apply">
+    <value>Aplicar</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>Cancel·lar</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Convertir-se en moderador</value>
+  </string>
+  <string id="85" name="close">
+    <value>Tancar</value>
+  </string>
+  <string id="86" name="italic">
+    <value>Itálica</value>
+  </string>
+  <string id="87" name="bold">
+    <value>Negreta</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>En espera...</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>Un usuari sol·licita la moderació:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>Aceptar</value>
+  </string>
+  <string id="91" name="reject">
+    <value>Denegar</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>Cancel·lar</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Envian la sol·licitud als següents usuaris</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Aceptat</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Rebutjat</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Cambiar el moderador</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Voste no és moderador</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Moderador:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>Ho sentim, però aquesta sala està plena. Intenti'l més tard</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Elipse</value>
+  </string>
+  <string id="101" name="close">
+    <value>tancar</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>error en la introducció de dades</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>el nom d'usuari ha de contenir almenys 4 caràcters</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>la clau d'usuari ha de contenir almenys 4 caràcters</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>Aquest nombre d'usuari ja existeix</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>Aquest email ja està registrat</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>Error, per favor contacti amb l'administrador del sistema</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Entrar</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Usuari:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Contrasenya:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Idioma</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Entrar</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Registrar-se</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Usuari:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Contrasenya:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Contrasenya (un altre vegada):</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Nom:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Cognoms:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>Correu electronic:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>País:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Registrar-se</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>Cancel·lar</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Registrar</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>Inici</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Usuaris</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Grups</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Organitzacions</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Sales de conferèncias</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>Públic</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>Organització</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>Entrar</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Usuari</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Contrasenya</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Escriure de nou</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Nom</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Cognoms</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>Correu Electrónic</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Data de neixement</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Direcció</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>Població</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>País</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Més informació</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Dades de usuari</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>Guardar</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Guardar</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>ID</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>Usuari</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>nom</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>cognoms</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>mostrar següent</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>mostrar anterior</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>eliminar registre</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>cancel·lar</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>borrar</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>Nou registre</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>Actualitzar registre</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>Esborrar registre</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>Estat</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>no actiu</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>actiu</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>Organitzacions</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>calendari</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>tancar</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>ID</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>Nom</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>Usuari</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>moderador</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>administrador</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>Rol de usuari</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>organització</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>nom</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>afegir organització</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>afegir organització</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>cancel·lar</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>afegir</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>eliminar organització</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>usuari</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>afegir usuari</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>eliminar usuari</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>afegir usuari</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>buscar usuari</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>buscar</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>usuari</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>organització</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>ingressar</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Sales</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Sales de conferència</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>id</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Nom</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>pública</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>Organitzacions</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Sales de conferència</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>Nom</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>Tipus</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>Pública</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>Comentari</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>guardar</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>carregar</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>guardar com</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>fitxer</value>
+  </string>
+  <string id="201" name="files">
+    <value>fitxer</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>cancel·lar</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>guardar</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>error</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>carregan</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>objectes carregats</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>sincronitzant clients, esperi un moment.</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Carregant dades d'imatge.</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>sincronitzant clients, esperi un moment.</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>netejar l'àrea de dibuix</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>netejar l'àrea de dibuix, tota la informació de la pissarra s'esborrarà</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Confirmar abans de carregar un arxiu</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Enviar invitació</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Enviar invitació</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Tema</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Destinatari</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Missatge</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Enviar</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>cancel·lar</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>enviar</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Dades d'usuari</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>El seu pseudònim per a aquesta conferència</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>nom que es mostrarà</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>nom</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>cognoms</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>email</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>idioma</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>ingressar</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Carregan</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Carregant dades, espere un moment</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Contrasenya errònia</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Per favor introdueixi dues vegades les mateixa contrasenya amb un mínim de 6 caràcters</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Correu invàlid</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Vostè ha introduït una adreça no vàlida de correu electrònic</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>El registre s'ha completat amb èxit</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>El seu compte ha estat creada, pot ingressar des d'aquest moment</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>No pot compartir el seu escriptori en aquest moment. Algú més ja està compartint el seu escriptori.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Compartició prohibida</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Compartir escriptori</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Problemes de connexió: La seva ample de banda és insuficient i es perdrà la informació. Si el missatge es repeteix amb freqüència sol·liciti al moderador reduir la qualitat d'imatge i àudio.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Escriptori de:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Dibuixar</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Document</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Chat</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Fitxers</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Membres</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Descarregar el document original</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>Descarregar el document en pdf</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Pujar un arxiu a la pissarra</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Configuració</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Arrossegar aquest objecte</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Ajustar el tamany del objete</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>de</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>Anar a la primera pàgina</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>Anar a la pàgina anterior</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>Anar a la pàgina següent</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>Anar a l'última pàgina</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Disminuir Zoom</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Aumentar Zoom</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Sr.</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Sra.</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Configuració</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Clau</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Configuració</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Clau</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>última actualizació</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>actualitzat per</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>comentar</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>clau</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>de</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Usuaris</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>Eliminar usuari de l'organització</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>Eliminar</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>Aquest usuari ja és membre de l'organització</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>Noticies</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Enllaços ràpids</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Anar a la videoconferència</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Anar a l'auditori</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Ajuda i support tecnic</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Enviar "bug"</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>més</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Web del Projecte (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>Llista de correus del Projecto (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Recordar</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Contingut</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>La meva pàgina d'inici</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>Reunions programades</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>Events programats</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Reunion publiques</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Reunions privades</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Events publics</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Events privats</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Contingut public</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Contingut privat</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Contenido personal</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value>...</value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Moderació</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Sol·licitar la moderació</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Enquestes</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Seleccioni un fitxer</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Configuració</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Càmera i micròfon</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Configuració de la pissarra</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Sortir</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Regressar a les sales</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Sortir</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Ha oblidat la seva contrasenya?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Resetear contrasenya</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>Audi i Video</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Chat</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>Pissarra</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Moderació</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Fitxers</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>Usuaris</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Enquestes</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>No hi ha ningú connectat amb aquest nom d'usuari</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>El email conté un enllaç especial que ha estat enviat al seu correu. Si no apareix aquest correu revisi la configuració de filtres de spam del seu servidor i reenvée aquest correu novament.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Error</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Missatge</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>No es va trobar a l'usuari (mètode de generació de claus incorrecte).</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Generar contrasenya</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Entrar</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>cambiar contrasenya</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>nova contrasenya</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>torni a escriure la contrasenya</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>Les contrasenyes introduïdes no són iguals.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>Escrigui 4 o més caràcters. Distingeix majúscules de minúscules</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>La contrasenya ha estat canviada, ara pot iniciar sessió.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Error desconegut. Enviï aquesta informació a l'administrador del sistema.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>No es va trobar a l'usuari</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Contrasenya incorrecta</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Ha sortit del sistema</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Es troba deshabilitada l'opció de registre.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>Correu incorrecte</value>
+  </string>
+  <string id="340" name="registration">
+    <value>fitxer duplicat, per favor seleccioni un altre</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>el nom de l'arxiu és massa curt</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>No es va poder guardar l'adreça</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>L'usuari va ser afegit, no obstant això haurà d'estar almenys en una organització per a poder iniciar la sessió.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Nova gravació</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>No es va trobar un camp en aquest FieldId.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>No es va trobar una etiqueta per a aquest camp.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Es necessita autorització de l'administrador</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Editor d'idiomes</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Idioma</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>Etiqueta-ID</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Etiqueta-Nom</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Valor</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Valor dels camps</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>Nom</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>Valor de l'etiqueta</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>ID de l'etiqueta</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>Ha eliminat l'etiqueta però no el camp. No es pot eliminar un camp ja que pot tenir etiquetes en altres idiomes.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>Labelid incorrecte. El seu FieldLanguagesvaluesAneu no es va trobar en la base de dades.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Vostè no pot eliminar aquest camp, només les etiquetes. No hi ha una etiqueta carregada de moment o no es troba seleccionada cap (pot ser que no existeixi en l'idioma seleccionat).</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>exportar</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Necessita tancar la sessió per a veure els canvis.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Afegir nou idioma</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>eliminar idioma</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Afegir nou idioma</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Nom</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>afegir idioma</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Copia de seguretat</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>anar a l'inici</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>anterior</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>sigüente</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>anar al final</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>l'usuari parla (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>encendre o apagar so</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>Sistema</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>La seva configuració</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>Salutacions,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Editar perfil</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Nous missatges:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Pujar imatge</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Exportació de dades d'usuari</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>¡Han d'existir totes les organitzacions!</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>Exportar usuaris</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>Exportar per organizació</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>Iniciar procés d'exportació</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Importació de dades d'usuari</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>Seleccionar fitxer xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>importar</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Exportar a XML - Aquests fitxers poden ser usats per a: - Contribuir en el projecte - Importar-los en altre sistema - Copia de Respatller - Personalització - Col·locar-lo en el directori d'idiomes per a la pròxima instal·lació.</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Seleccioni un arxiu d'idioma que s'importarà. Configuri correctament l'idioma en el menú desplegable (no importa el nom que tingui l'arxiu ja que serà importat de tots les maneres).</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>importar - seleccionar fitxer</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Guardar com...</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Nom:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Comentari:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>guardar</value>
+  </string>
+  <string id="395" name="record">
+    <value>Grabacions</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Visor de grabacions</value>
+  </string>
+  <string id="397" name="record">
+    <value>Grabacions de salas publiques i privades</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Usuaris:</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>En el sistema:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Usuaris en la sala:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>actualitzar</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>La sala esta plena. Per favor, intenti'l més tard.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>Premi sobre una sala per a veure els detalls</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Escriure als usuaris d'aquesta sala:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Sala:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Usuaris en aquesta sala:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>desde:</value>
+  </string>
+  <string id="409" name="record">
+    <value>reproduir gravació</value>
+  </string>
+  <string id="410" name="record">
+    <value>Duració:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Data:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Manera d'enregistrament: no pot canviar cap valor ja que es tracta d'un arxiu gravat.</value>
+  </string>
+  <string id="413" name="record">
+    <value>Reproduir aquesta gravació</value>
+  </string>
+  <string id="414" name="record">
+    <value>Reproducir / Pausa</value>
+  </string>
+  <string id="415" name="record">
+    <value>Iniciar gravació</value>
+  </string>
+  <string id="416" name="record">
+    <value>Parar gravació</value>
+  </string>
+  <string id="417" name="record">
+    <value>Gravació:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>Actualmente algú es troba graban:</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Gravant per l'usuari:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>cancel·lar</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>La gravació serà cancel·lada i no es guardarà.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>reprendre</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Tancar finestra i reprendre la gravació</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>Canviar el color de línia</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Seleccionar color</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Deshabilitar / Habilitar color de línia</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>canviar color de fons</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Deshabilitar / Habilitar color de fons</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>canviar grossor de línia</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>tancar</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>canviar grandària de lletra</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Eliminar gravació</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Invitat</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>Per:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Nom</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Sala</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Data</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>cancel·lar</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>iniciar</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Nom</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Data</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Eliminar registre (log) de xat en el servidor</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Xat</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>enviar un missatge</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Emoticones</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Emoticones</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Seleccionar dispositius</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Àudio i Vídeo</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Només Àudio</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Només Vídeo</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>Sense Àudio/Vídeo (Imatge fixa)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>No es transmetrà Àudio/Vídeo des del seu equip. En el seu lloc es mostrarà la imatge del seu perfil. Seleccioni aquesta configuració si té problemes amb l'ample de banda d'internet.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>DL</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>DM</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>MC</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>DJ</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>DV</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>DS</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>DG</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Dilluns</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Dimarts</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Dimecres</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Dijous</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Divendres</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Disabte</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Diumenge</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>S#</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Nombre de setmana de calendari</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>Gener</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>Febrer</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>Març</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>Abril</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>Maig</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>Juny</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>Juliol</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>Agost</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>Setembre</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>Octubre</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>Novembre</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>Desembre</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Calendari</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Participants</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Mostrar la configuració</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Ample | Alt</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Contenidor: vídeo</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Contenidor: moderació</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Contenidor: pissarra</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Habilitat</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Ample | Alt</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Contenidor: Fitxer,Xat,Participants</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Habilitat</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Ample | Alt</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>El moderador s'ha retirat pel que ningú està realitzant una presentació en aquests moments. Pot sol·licitar la moderació o esperar.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>No hi ha moderador en aquesta sala, però si participants. Pot sol·licitar la moderació o esperar.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Comentari de $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Invitació</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Missatge del usuari:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Missatge:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Premi en aquest enllaç per a poder participar en la conferència:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Premi aquí per a entrar a la sala</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>Si té problemes amb l'enllaç, li vam suggerir que copiï i pegui el següent text en el seu navegador:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>Registre $APP_NAME</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>La seva informació d'usuari:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Usuari:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Contrasenya:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>Correu:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>Equip-$APP_NAME</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME - Registre</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - Resetear contrasenya</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Premi en el següent enllaç per a sol·licitar una nova contrasenya:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Premi aquí per a introduir una nova contrasenya</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>Si té problemes amb l'enllaç, li vam suggerir que copiï i pegui el següent text en el seu navegador:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME - Nova Contrasenya</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Per favor, introdueixi una data vàlida amb el format dd.mm.yyyy Exemple: 24.12.2008.</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Per favor, introdueixi una adreça de correu vàlida</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Per favor, introdueixi un nombre decimal. Exemple: 1.00 (usi punt i no la coma)</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Per favor, introdueixi un nombre sencer</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Per favor, introdueixi un nombre de telèfon vàlid. Exemple: +593 947 225 200.</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Per favor introdueixi una hora vàlida en el format hh:mm. Exemple: 12:23.</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Contrasenya protegida</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Contrasenya</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Període de validesa</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Sense límit</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Període</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Una vegada</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Des de:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Fins a:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Invitació a $APP_NAME</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>No existeix una invitació disponible amb aquest codi.</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>Aquesta invitació ja va ser usada i no pot tornar-se a utilitzar.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>El codi d'invitació no és vàlid.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Contrasenya:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Verificar contrasenya</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Contrasenya incorrecta</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Navegador</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Sincronitzar Àudio/Vídeo</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>El login és correcte, però la sessió en la qual intenta entrar no està activa o no va ser guardada en el servidor. Ha d'iniciar una nova sessió.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>La SessionId is not loggedin or has no Admin rights. The SOAP Gateway needs an User with Admin-Rights to embed new Users.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>This Session has no Remoteuser-Data connected. Wether you did not call the SOAP-Gateway before accessing the Application or you are usnig a wrong Session-ID</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>El grabador actualment està en fase beta</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>eix -x</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>eix-y</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>a</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>amplària</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>h</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>altura</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Canviar Transparència</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Navegador Obrir</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Navegador Tancar</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>S'ha perdut la connexió amb el servidor. Necessita recarregar l'aplicació i/o comprovar la seva Xarxa.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Punter</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Sincronitzant</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Sincronitzant usuaris. Per favor, esperi.</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Descarregar com SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Descarregar com PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Descarregar com JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Descarregar com PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Descarregar com TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Recordi:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Categoria:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Repetició:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>ningú</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Localització:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Inici</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>Final</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Títol:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Comentari:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Convidar a persones</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Diàriament</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Mensualment</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Anualment</value>
+  </string>
+  <string id="578" name="alert">
+    <value>La cita final va després de la cita d'inici</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Per favor, posi un títol</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Activi aquesta opció si l'escriptura del seu idioma va de dreta a esquerra</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Eines</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Veure esdeveniments o trobades gravades</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Videoconferència - Reuneixi's amb 4 o més (fins a 16) usuaris\ntots tindran accés d'àudio i vídeo.</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Auditori - Reuneixi's amb fins a 200 participants&lt;br/&gt;només el moderador tindrà àudio i/o vídeo</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Crear usuaris, sales, organitzacions&lt;br/&gt; + canvis en la configuració</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Usuaris en la Sala</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Login</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Carregant Arxiu. Esperi fins que tots els clients hagin estat sincronitzats.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Pujada completa. Convertint l'arxiu...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Iniciar Pujada</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Pujar i importar conversa. Per favor, seleccioni un arxiu del seu disc.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Cancel·lar</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Seleccionar Arxiu</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Conexions</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Valor</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Streamid</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Login</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Conectat des de</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Sala / Àmbit</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Expulsar a l'usuari</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Expulsar</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Està segur de voler expulsar a aquest client de la connexió?\n El client serà expulsat de la Sala, però podrà tornar a autenticar-se de nou.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>La seva sessió ha estat tancada per l'administrador o el moderador.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Telèfon</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>L'usuari és el moderador d'aquesta Sala</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>L'usuari té permisos per a dibuixar en la pissarra</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Re) Iniciar Àudio/Vídeo o canviar la configuració de dispositius</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Permetre a aquest usuari dibuixar en la pissarra</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Llevar permisos per a dibuixar en la pissarra</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Usuaris</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Fitxers</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Pissarra</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Xat</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>El seu compte està assignada a diverses organitzacions. Seleccioni aquella amb la qual vulgui entrar en aquesta sessió.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>Aquesta sala està completa. Intenti'l més tard.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Tipus de sala</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Sala per a citar-se</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Hora del servidor</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - Recordatori</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Missatge de l'usuari:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Missatge:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Premi en l'enllaç per a participar en la (Vídeo)Conferència:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Premi aquí per a entrar en la sala</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>Si té problemes, copiï i pegui aquest enllaç en el seu navegador:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>recerca interna:</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>usarios externs</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>nom</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>cognoms</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>E-mail</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Confirmar Sortir</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Està segur que desitja sortir?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Accions</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Sala Demo</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Hora Demo</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Temporitzador de trobades</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>Aquesta Sala és demo. Per a desactivar aquest avís, hauria d'aconseguir una sala privada per a ús propi o bé configurar el seu propi Servidor. Serà desconnectat automàticament en:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Amb moderador</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Per favor, esperi fins que el moderador entre en la sala. El moderador pot ser un professor, l'administrador o el creador d'aquesta sala.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Ok</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Escriptori compartit iniciant-se</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>Està iniciant-se un escriptori compartit de l'usuari:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Començar a compartir</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Afegir una nova trobada</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Sala de trobades</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Sala d'esdeveniments</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderació</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Moderar Usuaris</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Moderar Sales</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Desitja convertir a aquest usuari en Moderador d'aquesta Organització?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Per favor, seleccioni una Organització abans d'intentar incloure a un usuari en la mateixa.</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organització - Moderador</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Realment desitja esborrar a aquest usuari de l'Organització?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>Aquest usuari és Moderador</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>Aquest usuari no és Moderador</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Desitja que aquest usuari deixi de ser Moderador d'aquesta Organització?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Afegir o esborrar Usuaris i/o Sales en la seva Organització</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Realment vol esborrar aquest registre?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Realment vol esborrar a aquest usuari de la seva organització? Només s'esborrarà la connexió entre l'usuari i la seva organització. En realitat, per a esborrar a l'usuari ha d'ingressar al Panell d'Administració.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>¡Vd no pot esborrar-se a si mateix!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>¡Aquest mètode necessita un compte d'Administració per a poder ser utilitzat!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>No hi ha cap sessió associada a aquest ID.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>Aquesta és un compte d'Administrador o de Moderador. Només pot editar aquest compte utilitzant el Panell d'Administració.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>Per a completar el seu registre, faci el favor de prémer en el següent enllaç. Altra opció és copiar la URL en la barra del seu navegador.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Premi per a verificar el seu E-Mail</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>No s'ha trobat un usuari per a aquest algorisme Hash.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>¡Aquest usuari ja va ser activat!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>¡Ud ha activat el seu compte amb èxit!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Ingressi ara</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>El seu compte no està activada. Utilitzi en primer lloc l'enllaç que hi ha en correu rebut al finalitzar el procés de registre.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>Ud s'ha registrat amb èxit. Li hem enviat un correu amb un codi de verificació. Per favor, revisi el seu compte de correu.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Llevar el rol de Moderador a aquest usuari</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Donar permisos de Moderació a aquest usuari</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>Usuari</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Accés a la pissarra</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderador</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Moderació: Per favor, seleccioni qualsevol usuari de la llista per a donar-li accés a la Pissarra, Moderació o Vídeo.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>Aquest usuari ja és Moderador, així que automàticament té permisos per a dibuixar.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>Aquest és Ud! No pot llevar-se els permisos de Moderació a si mateix.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Permetre a aquest usuari Publicar el seu Àudio/Vídeo</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Esborrar l'Àudio/Vídeo d'aquest usuari</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>M'agradaria ser moderador d'aquesta sala</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>M'agradaria utilitzar la pissarra</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>Desitjaria compartir el meu Àudio/Vídeo</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>Vè. és el moderador d'aquesta sala</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>Té permisos per a dibuixar en la pissarra</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>Té permís per a compartir el seu Àudio/Video</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Missatge al Moderador</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>L'usuari</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>Desitjaria ser Moderador. Usi les icones d'estat pròxims a l'usuari en la Llista d'Usuaris per a agregar o remoure el permís de Moderació.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>desitjaria utilitzar la pissarra. Utilitzi les icones que hi ha al costat del nom de l'usuari (en la Llista d'Usuaris) per a agregar o llevar els permisos corresponents.</value>
+  </string>
+  <string id="695" name="695">
+    <value>desitjaria compartir el seu Àudio/Vídeo. Usi les icones que hi ha al costat del nom d'usuari (en la Llista d'Usuaris) per a agregar o llevar els permisos per a compartir Àudio/Video.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>Ha d'esperar fins que un Moderador ingressi a la sala.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Cancel·lar</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Guardar</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Dia</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Mes</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Any</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Pujar fitxer</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Fitxer carpeta</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Actualizar</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Papelera</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>Els meus Arxius (Dispositiu personal)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Arxius de la Sala (Dispositiu públic)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Afegir fitxer</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>AfegirCarpeta</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Borrar Carpeta</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Editar nom</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>Nova Carpeta</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Està segur que vol esborrar aquest ítem?)</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Buscar</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Buscar</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Obrir document</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Mostrar tots els arxius (Vista d'arbre)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Tancar document</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Esborrar fitxer</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>No té permisos per a escriure o dibuixar en la pissarra. Ha de ser moderador o, almenys, tenir permisos d'edició de la pissarra. Sol·liciti-l'hi a un Moderador.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Propietats</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Iniciar Client (extern)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Iniciar Client (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>Un usuari desitja compartir la seva pantalla. Desitja visualitzar-lo?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>Actualment està compartint el seu escriptori. Per a deixar de fer-lo, premi en el botó Stop en el client utilitzat.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Compartint sessió</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>¡Ja està compartint el seu Escriptori!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Visor d'Escriptori</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Sortir</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Compartint l'Escriptori</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Premi Iniciar per a publicar la seva pantalla</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Iniciar el compartir escriptori</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Finalitzar el compartir escriptori</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Seleccioni l'àrea de la seva pantalla:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Canviar amplària</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>!Ha finalitzat aquesta sessió!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Canviar altura</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>Desplaçament eix X</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Desplaçament eix Y</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Amplària:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Altura:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>La connexió ha estat tancada pel servidor</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Cancel·lar</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Iniciar Externa</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>Si tanca aquesta sessió completament, no serà possible reiniciar el visor durant aquesta sessió.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Confirmar el tancament de la sessió</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Compartir pantalla</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Grabar sessió</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Co-Navegació</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Hum... Firefox en windows no mostra la co-navegació amb claredat. Per favor, utilitzi altre navegador o tancament aquesta funcionalitat.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Previ</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Sigüent</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Recarregar</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Inici</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Carregar</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Configurar en el seu perfil aquest lloc com la pàgina web per defecte.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Provar configuració</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Comprovi la configuració del seu micròfon i/o càmera abans d'entrar en la sala. Per a això gravi durant alguns segons i reprodueixi'l.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>No tornar a mostrar aquest test</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Cancel·lar</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Iniciar</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>No demanar de nou</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>Pot continuar sense fer la comprovació si no desitja publicar la imatge i/o el so. Els participants sense àudio o sense vídeo poden en tot cas utilitzar la pissarra, compartir el seu escriptori o enviar missatges utilitzant el xat.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="767">
+    <value>Medidor de Nivell</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Pressioni Iniciar</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Iniciar Conferència</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Iniciar Esdeveniment</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Anar a la Sala</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Comprovar Config.</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Iniciar Conferen.</value>
+  </string>
+  <string id="774" name="start view">
+    <value>Instruccions Conferència:</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Iniciar Gravació</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>No mostrar el test de gravació d'àudio /vídeo abans d'entrar en una Conferència</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Salas públiques</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Les sales públiques són accessibles per a tots els usuaris.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Salas privades</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Les sales privades són accessibles només per als usuaris de la mateixa organització.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>Les meves sales</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Les sales en aquesta secció són per a ús personal. Es creen utilitzant el calendari i tenen una data d'inici i de finalització. Només es mostren en aquesta secció durant l'interval temporal de validesa.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>Ha de ser moderador per a executar aquesta acció.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Sol·licitar la moderació</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Sol·licitar accés a la pissarra</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Sol·licitar accés a la càmera/micròfon</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>L'autenticació d'aquesta sessió ja ha estat utilitzada. No pot fer-se dues vegades.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>INICIAR</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>SORTIR</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>¿Desitja realment sortir? És convenient que abans esborri els documents pujats, la pissarra o l'historial del xat.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Sortir de la conferència</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Sales</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Seleccioni una sala</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>Hi ha un esdeveniment sense guardar en el calendari. Per favor, guardi'l o bé esborri'l.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>¡Per favor, afegexi almenys a un participant!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>¿Realment desitja esborrar aquest esdeveniment?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Avis</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>afegir event</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>dia</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>setmana</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>mes</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Descripció</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Asistents</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, la seva Plataforma Web de Videoconferència. Només segueixi les instruccions, pressioni el botó per a iniciar immediatament o vagi al Calendari per a programar una Trobada més endavant.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Progr. Trobada</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>Per a planificar una conferència, afegeixi un nou Esdeveniment en el Calendari. Per a cada Esdeveniment es crearà automàticament una Sala de (vídeo)conferència. Vostè i la resta d'assistents rebran un correu amb un enllaç de la sala. &lt;br/&gt;&lt;br/&gt;Pot escollir entre diferents tipus de sales amb diferents dissenys i sistemes de moderació. També pot escollir entre diferents tipus de notificació de correu que s'envien en cada esdeveniment del calendari.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>¿Necessita ajuda?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Restringit</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Buscar</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Afegir</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>No hi ha cap usuari seleccionat. Seleccioni primer un ítem de la llista i premi a Afegir.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Afegir asistent</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Guardar</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Esborrar</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Detalls de l'Esdeveniment</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Moderadors per defecte</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Nom</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>Email</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Afegir nou Moderador per defecte</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>¿És supermoderador</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>Si la sala està moderada, qui sigui ja moderador seguirà sent-lo. Si no desitja que sigui així, i només vol que determinat usuari sigui el moderador, utilitzi l'opció de Moderador per defecte.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>Un supermoderador és sempre el moderador d'una sala quan entra en ella. A més, ningú pot llevar-li la marca de moderació</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Aplicar supermoderación a l'usuari</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Llevar supermoderación a l'usuari</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>Si afegix una organització a la sala, només els usuaris d'aquesta organització tindran accés a la mateixa (això només és vàlid si la marca de Pública està configurada com falsa)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderació</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitacions</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organització</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>¿Està Vè. segur?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Realment desitja esborrar aquest ítem? Ha de prémer en el botó de guardar per a emmagatzemar els canvis!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>No hi ha cap usuari seleccionat. Per favor, seleccioni'l primer.</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Afegir un nou moderador per defecte</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>¿Desitja afegir una marca de supermoderador a aquest usuari? Recordi que un supermoderador no només és el moderador d'una sala, sinó que a més cap altre moderador podrà esborrar la marca de moderació. Necessita guardar l'objecte sala per a emmagatzemar aquestes configuracions.</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>¿Desitja eliminar la marca de supermoderador a aquest usuari? Necessita guardar l'objecte sala per a emmagatzemar aquestes configuracions.</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>Aquest usuari té el rol de supermoderador. No pot llevar-li la marca de moderació a un supermoderador.</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>¿Realment desitja esborrar aquest Fitxer/Directori?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>¿Esborrar Fitxer/Directori ?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Sra.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>D.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Propietats</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Mostrar la posició del ratolí als participants</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Compartir Àudio amb el applet SIP</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Compartir Àudio amb SIP i Vídeo amb Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Pantalla completa</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>Veure pantalla</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>El usuari</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>desitja compartir la seva pantalla. Desitja visualitzar-la?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Tancar</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>La sessió ha estat tancada per qui compartia pantalla</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pausa</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>Compartir pantalla</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimitzar</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximitzar</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Vídeo</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Línia temporal de gravació</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>Les meves grabacions</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Grabacions públics</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Nom</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Longitud</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Data</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>Per</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>PLAY</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Vídeo - Principal</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Gravació</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>Pot grabar i compartir la seva pantalla alhora. Per a permetre que uns altres vegin la seva pantalla, premi en el botó -iniciar- de la part superior. Per a gravar la sessió, és suficient amb prémer a iniciar enregistrament.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Iniciar Gravació</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Parar Gravació</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Descarregar l'arxiu FLV</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Sala</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Play</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>L'usuari té el micròfon activat</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Detenir compartir</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Permetre preguntes de l'usuari</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Desactivi això per a impedir que cap usuari li molesti en aquesta sala. Al fer-lo, el botó per a sol·licitar la moderació no serà visible.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Permissos</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Descarregar com AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Només audio</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>Hi ha hagut errors mentre es processava gravació.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>La gravació encara no aquesta llista. Intenti'l de nou en un parell de minuts.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Missatge del grabador:</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>El applet SIP no està llest</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>Configuració del compte SIP</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>Configuración SIP para cada usuario. Puede activar o desactivar SIP desde Administración &gt; Configuración (Key: enable_sip). Los datos SIP de cada usuario deberían crearse automáticamente.</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>Usuari SIP</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Contrasenya SIP</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>ID Aut-SIP</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>L'autenticació SIP ha fallat. Hauria de comprovar les dades d'autenticació del seu proveïdor SIP i del compte SIP de cada usuari. Com administrador, podrà autenticar-se i comprovar la configuració. Si entra com usuari o com moderador, qualsevol intent d'interacció serà bloquejat.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>L'autenticació SIP ha fallat. Contacti amb el servei tècnic.</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Autenticant en la porta d'enllaç SIP...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Autenticant en la porta d'enllaç SIP...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Mostrar Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Missatges Log del procés de postgravación</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>Missatge de applet SIP</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>El applet SIP no està llest. Per favor, accepti el applet i premi OK.</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Sol·licitar la moderació</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Guardar canvis de la cita</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>La cita ha estat canviada. Desitja guardar aquests canvis? Tots els participants implicats rebran un correu amb la data i hora actualitzades (depenent del tipus de notificació d'aquesta cita).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>Per accedir a les gravacions que tingui per entrar en l'aplicació $APP_NAME.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Seleccioneu l'usuari d'aquest vídeo</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Usuaris disponibles per aquesta POD</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>Vostè és un moderador en aquesta entrevista. Pots decidir qui parla en aquesta entrevista i vostè pot començar / aturar la gravació de la sessió.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Començar la gravació</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Aturar la gravació</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>La gravació de l'entrevista ja ha començat.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>La gravació s'ha aturat o no han iniciat encara.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>La gravació d'aquesta entrevista ja s'ha iniciat!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Clear objects on current slide only!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the Status bar is send to participants!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make Team-Rooms [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new Team-Room!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new Conference Room ("Team Room") for them. The chosen users will automatically switch to the new Team-Room or get a notification. Team-Room Moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a Moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Username</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new Team-Room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create Team-Room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the Team-Room!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from Team-Room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Roomtype</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the System. The Backup includes all User generated data. The configuration is not included as well as the language labels. Because those values are imported with the System Installer. To update your System, export your old system (1) re-install into a new database the new package (2) and import the Backup file again (3). The Backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share Screen/Record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is Moderator, he can do anything!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/Deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose "Insert" from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about Copy and Paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Kick user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/chinese simplified.xml b/src/main/webapp/languages/chinese simplified.xml
new file mode 100644
index 0000000..8b22bad
--- /dev/null
+++ b/src/main/webapp/languages/chinese simplified.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>会议</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>会议</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>演讲</value>
+  </string>
+  <string id="4" name="settings">
+    <value>设置</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>用户</value>
+  </string>
+  <string id="6" name="admin">
+    <value>管理</value>
+  </string>
+  <string id="7" name="stop">
+    <value>停止</value>
+  </string>
+  <string id="8" name="record">
+    <value>记录</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>文件不存在</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>由讲师记录</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>已连接用户</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>开始会议</value>
+  </string>
+  <string id="13" name="myname">
+    <value>我的名称</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>视频会议</value>
+  </string>
+  <string id="15" name="import">
+    <value>导入演示</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>刷新列表</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>转到主主文件</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>新建投票</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>新会议投票.</value>
+  </string>
+  <string id="20" name="question">
+    <value>问题:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>投票类型:</value>
+  </string>
+  <string id="22" name="create">
+    <value>创建</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>提示:每个连接用户将收到一个新投票的消息提示.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>创建投票</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>取消</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>是/否</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>数字 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>投票</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>主持人才能提问</value>
+  </string>
+  <string id="30" name="vote">
+    <value>已您的投票.</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>您已经投过这个票.</value>
+  </string>
+  <string id="32" name="voting">
+    <value>投票 !</value>
+  </string>
+  <string id="33" name="answer">
+    <value>你的回答:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>是</value>
+  </string>
+  <string id="35" name="no">
+    <value>否</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>想要提问:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>投票结果</value>
+  </string>
+  <string id="38" name="question">
+    <value>提问:</value>
+  </string>
+  <string id="39" name="results">
+    <value>结果:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>回答:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>还未开始投票.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>投票!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>会议 (最大4用户)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>会议 (最大50用户)</value>
+  </string>
+  <string id="45" name="type">
+    <value>类型</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>其他座位</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>已经选择</value>
+  </string>
+  <string id="48" name="enter">
+    <value>进入</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>主持人已经离开.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>系统信息</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>请选择设备</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>请选择摄像头:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>请选择话筒:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>确定</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>取消</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>需要从新连接.</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>编辑设置.</value>
+  </string>
+  <string id="58" name="course">
+    <value>课题:</value>
+  </string>
+  <string id="59" name="language">
+    <value>语言:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>确定</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>取消</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>清除白板</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>新图片加入后清除白板?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>不再询问</value>
+  </string>
+  <string id="65" name="no">
+    <value>否</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>编辑设置</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>清除白板前确认.</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>用户信息</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>清除画板</value>
+  </string>
+  <string id="70" name="undo">
+    <value>取消</value>
+  </string>
+  <string id="71" name="redo">
+    <value>重做</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>选择对象</value>
+  </string>
+  <string id="73" name="text">
+    <value>文本</value>
+  </string>
+  <string id="74" name="paint">
+    <value>绘画</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>画线</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>下划线</value>
+  </string>
+  <string id="77" name="rect">
+    <value>矩形</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>椭圆</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>箭头</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>删除已选项</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>接受主持</value>
+  </string>
+  <string id="82" name="apply">
+    <value>应用</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>取消</value>
+  </string>
+  <string id="84" name="mod">
+    <value>成为主持</value>
+  </string>
+  <string id="85" name="close">
+    <value>关闭</value>
+  </string>
+  <string id="86" name="italic">
+    <value>斜体</value>
+  </string>
+  <string id="87" name="bold">
+    <value>粗体</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>等待中</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>用户想申请为主持:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>接受</value>
+  </string>
+  <string id="91" name="reject">
+    <value>拒绝</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>取消</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>向下列用户发送请求</value>
+  </string>
+  <string id="94" name="accept">
+    <value>接受</value>
+  </string>
+  <string id="95" name="reject">
+    <value>拒绝</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>更换主持</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>你不是这个课题的主持!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>主持:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>房间已满.请稍后再试.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>椭圆</value>
+  </string>
+  <string id="101" name="close">
+    <value>关闭</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>输入错误</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>用户名必须长于4个字符</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>用户密码必须长于4个字符</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>用户名已存在</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>邮件地址已注册</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>系统错误,请联系管理员</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>登录</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>用户:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>密码:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>语言</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>登录</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>注册</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>登录账号:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>密码:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>再次输入:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>姓:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>名:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>邮件:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>国家:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>注册</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>取消</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>注册</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>首页</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>用户管理</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>群组管理</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>组织管理</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>会议室</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>公开会议</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>组织</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>进入</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>登录</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>密码</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>再次输入</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>姓</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>名</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>邮件</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>生日</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>地址</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>邮编</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>国家</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>详细地址</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>用户数据</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>保存</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>保存</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>用户编号</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>登录</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>姓</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>名</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>显示下一个</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>显示前一个</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>删除记录</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>取消</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>删除</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>新记录</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>刷新记录</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>删除记录</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>状态</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>禁止</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>允许</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>组织管理</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>日历</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>关闭</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>组织编号</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>名称</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>用户</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>主持</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>管理员</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>用户级别</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>组织</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>名称</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>添加组织</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>添加组织</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>取消</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>添加</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>删除组织</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>用户</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>添加用户</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>删除用户</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>添加用户</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>搜索用户</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>搜索</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>用户</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>组织</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>进入</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>会议室</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>会议室</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>编号</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>名称</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>公开</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>组织</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>会议室</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>名称</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>类型</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>公开</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>备注</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>保存</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>载入</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>另存为</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>文件名</value>
+  </string>
+  <string id="201" name="files">
+    <value>文件名</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>取消</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>保存</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>错误</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>读取中</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>对象已载入</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>同步用户中, 用户请等待:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>载入图像</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>同步用户中, 用户请等待:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>清除绘画</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>清除绘画, 绘画数据将丢失</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>载入文件前请确认</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>发送邀请</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>发送邀请</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>主题</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>收信人</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>消息</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>发送</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>取消</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>发送</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>用户数据</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>会议昵称</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>昵称</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>姓</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>名</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>邮件</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>语言</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>进入</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>载入中</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>数据载入,请等待!</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>错误的密码</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>密码不得少于6个字符</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>邮件有误</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>非法邮件地址</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>注册成功</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>用户已建立. 请登录.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>现在不能共享屏幕. 屏幕已使用.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>禁止共享</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>共享屏幕</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>传输有误: 不能同步屏幕. 当前窗口将丢失. 请联系主持人降低画质.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>屏幕:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>绘画</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>文档</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>讨论</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>文件</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>成员</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>下载原始文档</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>下载PDF文档</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>载入演示到白板</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>设置</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>拖动这个对象</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>缩放这个对象</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>之</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>转到第一页</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>转到前一页</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>转到后一页</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>转到最后一页</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>缩小</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>放大</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>先生.</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>女士.</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>配置信息</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>序号</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>关键字</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>配置信息</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>关键字</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>最新更新</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>更新者</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>注释</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>关键字</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>的</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>用户</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>从组织中删除用户</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>删除</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>此组织中已存在该用户.</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>新闻</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>快速链接</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>会议室导航</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>观众室导航</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>服务与支持</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>软件问题反馈</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>更多</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>项目主页 (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>用户邮件列表 (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>记录登录</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>内容</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>我的主页</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>我的会议日程</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>我的事件日程</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>开放会议</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>私人会议</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>开放事件</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>私人事件</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>开放内容</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>私人内容</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>个人内容</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>主持人</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>申请为主持人</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>投票</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>选择文件</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>设置</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>视频音频设置</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>白板设置</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>退出</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>回到房间</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>注销</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>桌面查看器</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>启动桌面查看器</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>视频和音频</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>讨论</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>白板</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>主持人</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>文件</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>用户</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>投票</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>没有此用户名</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>一封包含特殊链接的邮件已发送至你的信箱,请查收.如果没有收到,请检查和调整你的邮箱垃圾邮件设置,重新发送认证邮件.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>错误</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>消息</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>无效的哈希值,没有该用户.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>重置你的密码</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>登录</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>更改密码</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>新密码</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>重新输入密码</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>密码不一致.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>4个或更多的字符,注意大小写!</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>密码设置完毕,你可以登录.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>完成</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>未知错误.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>未发现该用户名</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>无效密码</value>
+  </string>
+  <string id="337" name="logout">
+    <value>注销成功</value>
+  </string>
+  <string id="338" name="registration">
+    <value>禁止前端注册.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>无效邮件地址</value>
+  </string>
+  <string id="340" name="registration">
+    <value>文件名重复, 请选择另一文件名</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>文件名太短</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>无法保存地址</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>用户已增加,但你必须将该用户与一个组织关联,否则他可能无法登录.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>新纪录</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>与此字段编号没有对应的字段</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>没有发现该标签对应的字段</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>需要管理员权限</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>语言编辑器</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>语言</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>标识号</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>标识名称</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>标识值</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>字段值</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>标签名</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>标签值</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>标签号</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>您只删除了标签而没删除字段,因为字段可能被其它标签所使用。</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>无效的标签号,FieldLanguagesvalues_Id在数据库中缺失.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>您不能删除该字段。只能删除标签。当前没有载入该字段的标签,可能是对应的字段的标签缺失的缘故</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>导出</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>你必须注销才能看到变化.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>增加新的语言</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>删除语言</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>增加新的语言</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>名称</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>增加语言</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>备份</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>到首页</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>到前一页</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>到下一页</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>到最后一页</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>用户发言</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>声音 开/关</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>系统</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>你的设置</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>你好,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>编辑你的信息</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>新消息:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>上传新图片</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>用户数据 - 导出</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>所有的组织必须事先存在!</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>开始导出</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>由组织</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>开始导出</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>用户数据 - 导入</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>选择 users.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>导入</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>导出为 XML - 这些文件能用于: - 创建项目 - 导入到另一个系统 - 备份 - 自定义 - 放入language 目录,可以在下一次安装使用</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>选择一个语言文件导入. 在下拉框中选择正确的语言! 不管文件的名称是什么, 将覆盖当前的语言!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>导入 - 选择文件</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>另存为</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>名称:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>注释</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>保存</value>
+  </string>
+  <string id="395" name="record">
+    <value>记录</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>记录查看器</value>
+  </string>
+  <string id="397" name="record">
+    <value>开放和私人房间记录</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>用户 :</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>已参加:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>此房间的用户:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>刷新</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>此房间已满. 请稍后再试.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>点击房间获取详细信息</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>与此房间内的用户讨论:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>房间:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>此房间内的用户:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>自从:</value>
+  </string>
+  <string id="409" name="record">
+    <value>播放记录</value>
+  </string>
+  <string id="410" name="record">
+    <value>长度:</value>
+  </string>
+  <string id="411" name="record">
+    <value>日期:</value>
+  </string>
+  <string id="412" name="record">
+    <value>记录模式! 你不能更改任何信息, 这是一个记录文件!</value>
+  </string>
+  <string id="413" name="record">
+    <value>播放此记录</value>
+  </string>
+  <string id="414" name="record">
+    <value>播放 / 暂停</value>
+  </string>
+  <string id="415" name="record">
+    <value>开始记录</value>
+  </string>
+  <string id="416" name="record">
+    <value>停止记录</value>
+  </string>
+  <string id="417" name="record">
+    <value>记录中:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>现在已经有人在记录:</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>记录中! 记录用户:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>取消</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>记录将被取消且不被保存.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>继续</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>关闭此窗口并且继续记录</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>修改线条颜色</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>选择颜色</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>禁止 / 允许 线条颜色</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>修改填充颜色</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>禁止 / 允许 填充颜色</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>修改 线宽</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>关闭</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>修改 字体大小</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>删除记录</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>客人</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>由:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>名称</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>房间</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>日期</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>取消</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>开始</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>名称</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>日期</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>删除服务器端讨论记录</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>讨论</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>发送消息</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>表情</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>表情</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>选择发布设备</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>音频和视频</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>只有音频</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>只有视频</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>无 音频/视频 (静态图片)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>你的个人电脑上将不会有 音频/视频 发布, 而用你个人信息里的图片代替显示. 如果你遇到带宽问题或者速度过慢, 请选择这些设置.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>一</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>二</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>三</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>四</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>五</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>六</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>日</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>星期一</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>星期二</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>星期三</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>星期四</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>星期五</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>星期六</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>星期日</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>星期</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>星期日历</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>一月</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>二月</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>三月</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>四月</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>五月</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>六月</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>七月</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>八月</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>九月</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>十月</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>十一月</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>十二月</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>日历</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>参与者</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>显示布局设置</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>宽 | 高</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>视频-容器</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>主持人-容器</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>白板-容器</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>允许</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>宽 | 高</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>文件,讨论,参与者 - Container</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>允许</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>宽 | 高</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>主持人已离开房间. 现在无人演示. 你可以申请为主持人或者等待.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>此房间没有主持人, 但是有参与者. 你可以申请为主持人或者等待.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>反馈给$APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME——邀请</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>消息发自:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>消息:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>点击此链接来参与会议:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>点击此处进入房间</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>如果你在此链接遇到问题, 请拷贝并粘贴此链接到浏览器中:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME——注册</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>你的用户数据:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>登录:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>密码:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>邮件:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME——团队</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME——注册</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME——重置密码</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>点击此链接并键入新密码:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>点击此处键入新密码</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>如果你在此链接遇到问题, 请拷贝并粘贴此链接到浏览器中:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME系统重置密码</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>请输入一个有效的日期, 比如 24.12.2001 (天.月.年)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>请输入一个有效的邮件地址, 比如 name@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>请输入一个浮点数, 比如 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>请输入一个整数, 比如 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>请输入一个有效的电话号码, 比如 ++86 010 12312123</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>请输入一个有效的时间, 比如 12:23 (小时:分钟)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>密码保护</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>密码</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>有效期</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>没有结束</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>时期</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>以前</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>从:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>到:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>邀请参加$APP_NAME的讨论</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>没有此邀请码对应的有效邀请</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>此邀请已被使用. 此种类型邀请不能重用.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>此邀请码无效.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>密码:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>检查密码</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>无效密码!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>浏览</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>同步 音频/视频</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>登录有效, 但是会话没有激活或保存在服务器上. 你必须重新登录获取新的会话.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>用户没有登录或没有管理员权限. SOAP网关必须要有管理员权限才可以添加新用户.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>此会话没有远端数据连接. 在访问应用程序之前你可能没有调用SOAP网关或者你使用了错误的Session-ID</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>记录功能测试之中!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>x轴</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>y轴</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>w</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>宽</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>h</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>高</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>改变透明度</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>浏览器打开</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>浏览器关闭</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>与服务器的连接已丢失. 你需要重新载入程序或检查网络.</value>
+  </string>
+  <string id="557" name="557">
+    <value>指针</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>同步</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>正在同步用户, 请等待</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;下载为 SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;下载为 PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;下载为 JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;下载为 PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;下载为 TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>提醒:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>类别:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>重复:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>无</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>位置:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>开始</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>结束</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>标题:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>注释:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>邀请</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>每日</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>每月</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>每年</value>
+  </string>
+  <string id="578" name="alert">
+    <value>约会结束日期必须晚于开始日期!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>请插入一个标题!</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>如果您所用的语言是自右向左的,请激活此选项(反转字母顺序)</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>仪表板</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>观看已记录的会议或事件</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>会议 - 创建一个4人会议(最多16人)&lt;br/&gt;每个人都有音频+视频权限</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>事件 - 创建一个最多有200个听众的会议&lt;br/&gt;只有主持人拥有音频/视频</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>创建用户, 房间, 组织&lt;br/&gt; + 修改配置</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>目前有用户在此房间中</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>身份识别</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>登录</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>载入文档中. 所有用户正在同步,请稍等.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>上传结束, 正在转换文档 ...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>开始上传</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>上传,导入对话框. 请从硬盘上选择一个文件.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>取消</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>选择文件</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>连接</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>值</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>流编号</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>登录</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>已连接 从</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>房间 / 范围</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>踢出用户</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>踢出用户</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>你确认从此连接断开用户?&lt;br/&gt; 仅将用户从此房间踢出.用户可以重新连入.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>你的会话已经被管理员或主持人关闭.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>电话</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>用户是此房间的主持人</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>用户被允许在白板上画画</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Re) 启动音频/视频 或者修改设备配置</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>允许此用户在白板上画画</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>移除在白板画画功能</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>用户</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>文件</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>白板</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>讨论</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>你的帐号已与多个组织关联. 请为当前会话选择一个组织.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>会议室当前满员,请稍后再试</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>会议室类型</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>指定会议室</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>服务器时间</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME会议系统——提醒</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>用户信息:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>消息:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>点击此链接参加会议</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>点击进入会议室</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>如果下面的链接无法点击,请将此链接地址复制到浏览器中进行访问:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>搜索</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>外部用户</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>头衔</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>姓名</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>邮件地址</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>确认注销</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>您确定要注销吗?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>操作</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>演示会议室</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>演示时间</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>会议室计时器</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>此会议室只是一个演示。如果不想此警告出现,可以创建一个私人会议室或者设置您自己的服务器。您的登录将会在如下时间内被自动注销:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>主持</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>会议室需要一个主持人,主持人可以是讲座人、管理员或会议室创建者。</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>确定</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>新的屏幕共享</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>屏幕共享,来自用户</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>开始广播</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>添加新会议</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>会议室</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>活动室</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>主持人</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>主持的用户</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>主持的会议室</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>确定要将此用户设置为部门的主持人?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>在添加用户前请先选择一个部门</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>部门-主持人</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>确定要将此用户从部门中删除?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>此用户是主持人</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>此用户不是主持人</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>确定要取消该用户的支持人身份?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>在部门中添加或删除用户、会议室</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>确定要删除此记录?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>确定要将此用户从部门删除?您只能删除用户与部门之间的关联,如果要删除此用户信息,请登录到管理单元进行操作</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>您不能删除自己!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>此操作只能由管理员进行!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>没有与此ID关联的会话</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>这是管理员或主持人帐户,您只能在管理模块中进行设置.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>要完成注册,请点击下面的链接,或将链接复制到地址栏中进行访问</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>点击此处验证您的邮箱</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>未找到此用户</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>此用户已经激活!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>您已经成功激活帐户!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>正在登录</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>您的帐户没有激活,请先使用注册时发送给您的邮件中的链接进行激活。</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>注册成功!已经将验证码发送到您的邮箱,请查收。</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>移除此用户的主持人角色</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>赋予该用户主持的权限</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>用户</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>使用演示板</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>主持人</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>主持:请从列表中选择用户以赋予其使用演示版、主持或视频的权限</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>此用户是主持人,已经自动拥有书写的权限</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>您不能取消自己的主持人角色</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>允许该用户发布声音或视频</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>禁止该用户发布声音或视频</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>我需要成为此会议室的主持人</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>我需要在演示板上进行书写</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>我需要共享声音和视频</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>您是会议室的主持人</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>您可以在演示板上进行书写了</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>您可以接收声音和视频了</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>主持人消息</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>用户</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>如果要成为主持人,请在用户列表中,通过该用户的状态图标进行设置</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>如果要在演示板上书写,请在用户列表中,通过该用户的状态图标添加或删除此用户的书写权限。</value>
+  </string>
+  <string id="695" name="695">
+    <value>如果要共享声音和视频,请在用户列表中,通过该用户的状态图标设置是否共享此用户的声音和图像。</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>会议室中必需有一个主持人</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>取消</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>保存</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>日</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>月</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>年</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>上载文件</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>新建目录</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>刷新</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>回收站</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>我的文件(Home Drive)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>会议室文件 (Public Drive)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>新建文件</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>新建文件夹</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>删除文件夹</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>编辑文件名</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>新建文件夹</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>您确定要删除此项目?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>搜索</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>搜索</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>打开文档</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>显示所有文件 (Tree View)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>关闭文档</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>删除文件</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>你没有绘画白板的权限。你必须是版主,或赋予你绘画白板的权利。你可以向版主申请绘画白板的权利。</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>文档属性</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>启动Java</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>启动Flash</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>用户希望分享他的屏幕。你想看到它吗?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>你正在分享你的屏幕。点击停止按钮可以中止分享会话。</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>分享会话</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>你正在分享你的屏幕!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>桌面浏览器</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>停止分享</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>桌面共享器</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>单击开始发布您的屏幕</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>开始分享</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>暂停分享</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>选择你的屏幕区域:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>改变宽度</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>共享器已经结束会话!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>改变高度</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>横向偏移</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>纵向偏移</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>宽:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>高:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>连接被服务器关闭</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>取消</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>启动Java</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>如果你关闭本次会话,你将不能再重启本次会话的共享浏览器!</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>确认关闭浏览会话</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>分享屏幕</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>录制会话</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>分享浏览器</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Windows下火狐浏览器的分享浏览功能不太清晰,请使用其它浏览器来使用该功能</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>前一页</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>后一页</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>重新载入</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>首页</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>载入</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>将本页设为默认首页</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>测试音频视频配置</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>你在进入会议室前,可以使用音频视频测试来录制几秒钟的声音图像。然后通过回放你的录像录音来检查你的声音图像是否正常。</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>下次不要再显示这个测试对话框</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>取消</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>开始进入会议室</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>不要再次询问</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>录制</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>播放</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>如果你不打算发表你的声音或图片,你可以不进行测试。没有音频或视频的参与者仍然可以使用白板,分享他们的屏幕或发布讨论消息。</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>停止</value>
+  </string>
+  <string id="767" name="767">
+    <value>声音电平表</value>
+  </string>
+  <string id="768" name="start view">
+    <value>按下开始</value>
+  </string>
+  <string id="769" name="start view">
+    <value>开始会议</value>
+  </string>
+  <string id="770" name="start view">
+    <value>开始演讲</value>
+  </string>
+  <string id="771" name="start view">
+    <value>选择会议室</value>
+  </string>
+  <string id="772" name="start view">
+    <value>检查音频视频设置</value>
+  </string>
+  <string id="773" name="start view">
+    <value>开始会议</value>
+  </string>
+  <string id="774" name="start view">
+    <value>参加视频会议的步骤如下:</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>开始录制</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>下次进入会议前不要再显示视频音频测试(录制)对话框</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>公共会议室</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>公共会议室--所有用户都能访问。</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>私有会议室</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>私有会议室--只允许同组织的用户访问。</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>个人会议室</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>个人会议室只供个人使用。 通过日历来设置会议的开始和结束日期时间。它们仅仅在有效期内罗列在此。</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>这个操作需要主持人权限。</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>申请成为主持人</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>申请使用白板权限</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>申请使用音频视频权限</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>本次会话Hash已经使用,你不能同时使用两次。</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>开始</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>退出</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>你真的退出会议吗?建议你清除你上载的文件、白板和讨论记录。</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>退出会议</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>会议室</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>选择会议室</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>日历中存在未有保存的事件。请选择保存它或删除它。</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>请为你的会议添加至少一名与会者。</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>你真的要删除你的事件?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>警告</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>添加事件</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>日</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>周</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>月</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>描述</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>与会者</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>本远程视频会议系统是一个用来召开远程视频会议、培训演讲、审查文件的平台。按照上面的指引,按下开始按钮可以马上进入会议。或者进入日历预约一个会议计划</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>预约会议</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>要建立一个会议,您可以添加日历上的一个新的事件。对于每个日历事件将自动创建一个会议室。你和每一个与会者将获得一个到房间链接的电子邮件。&lt;br/&gt;&lt;br/&gt;您可以选择不同的房间类型有不同的布局和适度系统。您也可以为每日历事件选择不同的电子邮件通知发送类型</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>需要帮助吗?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>受限制</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>搜索</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>添加</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>没有选择用户。请从列表中选择一个项目,然后点击添加。</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>添加与会者</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>保存</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>删除</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>活动详情</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>默认主持人</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>超级用户</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>用户号</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>姓名</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>邮件地址</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>添加一个新的默认主持人</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>是超级主持人</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>如果房间拥有主持配置,那么拥有主持权限或管理员权限的人进入会议室后,将自动获取这个会议室的主持权。如果你不希望这样,而且你希望指定一个用户主持这个会议室,请使用默认主持人选项。</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>一个超级主持人进入房间时,他将自动获取这个会议室的主持权限。没有人能取消他的主持权限。</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>为用户申请超级主持权限</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>取消超级主持权限</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>如果为会议室添加专属组织,那么只有该组织成员才能进入该会议室。(仅仅对公共会议室有效!)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>主持</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>限制数</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>单位</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>你确认吗?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>你真的确认需要删除这个项目吗?你需要点击保存按钮来保存更改!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>没有用户被选择。添加前你必须先选择用户!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>添加新的默认主持人</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>你确认要赋予该用户超级主持人权限吗?注意:其他主持人是无法取消超级主持人权限的。你需要保存房间对象来保存这些设置!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>你确认要取消该用户的超级主持人权限吗? 你需要保存房间对象来保存这些设置!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>这个是超级主持人!你不能取消一个超级主持人的权限!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>你真的要删除这个文件/文件夹?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>删除文件/文件夹?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>女士</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>先生</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>属性</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>在共享器中显示鼠标位置</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>使用SIP小应用程序共享音频</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>使用SIP小应用程序共享音频,用flash共享视频</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>满屏</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>显示屏幕</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>用户</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>想分享他的屏幕。你想看到它吗?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>关闭</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>缩放</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>本次会话已经被发布分享用户关闭!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>暂停</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>新的屏幕分享</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>最小化</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>最大化</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>视频</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>录制时间线</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>私有会议记录</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>公开会议记录</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>信息</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>名称</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>长度</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>日期</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>用/以</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>下载</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>主 - 视频</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>录制</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>你可以同时录制和分享你的屏幕。你可以点击上面的开始按钮来让其他与会者看到你的屏幕。如果仅仅是录制会话,那点击开始录制按钮就足够了。</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>开始录制</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>停止录制</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>下载 FLV 格式文件</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>会议室</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>播放</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>停止</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>用户打开麦克风</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>停止分享</value>
+  </string>
+  <string id="879" name="room config">
+    <value>允许所有用户发问</value>
+  </string>
+  <string id="880" name="room config">
+    <value>关闭这个功能可以防止任何用户在你会议室捣乱。影响效果是向主持人发问的按钮是不可见的。</value>
+  </string>
+  <string id="881" name="room config">
+    <value>权利</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>下载 AVI 格式文件</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV格式</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI格式</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>原始屏幕视频</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>只用音频</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>在处理记录时出错</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>记录未准备好,请过几分钟再试</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>日志:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>消息日志</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>确认</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP控件没有准备好</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>设置SIP账户</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>每个用户的SIP设置。可以通过管理员打开或者关闭SIP。 &gt; 配置键值(enable_sip)。每个用户的SIP数据是自动产生的,可以通过“重新生成SIP数据”选项重新生成。</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP用户</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip密码</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip授权号</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>登录到SIP网关失败,需要检查SIP供应商以及用户账号的授权。如果是管理员,还可以登录和检查配置,其它用户和主持人将不能进行任何操作。</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>登录到SIP网关失败,请联系系统维护人员。</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>正在登录SIP网关 ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>正在登录SIP网关 ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>显示日志</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>会后记录日志</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP小应用程序的消息</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>SIP控件没有准备好,请点击确认按钮允许控件的使用!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>申请成为主持人</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>保存更改</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>约定的会议已经更改了,您是否象保存这些更改?&lt;br/&gt;&lt;br/&gt;所有的参会人员都会受到时间更改后的会议通知邮件</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>如需都区其它记录,请先登陆系统</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>会议人员邀请</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>会议可邀请的人员</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>您是这次会议的主持人,您可以决定会议中谁可以发言,您也可以控制启动和停止会议的视频录制。</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>开始录制</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>结束录制</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>会议视频录制已经开始</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>视频录制已经停止,也可能还没开始</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>会议视频录制已经开始d!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>取消</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>录制的视频后续处理每1分钟时间需5分钟时间来处理,正在转码处理的录制视频是:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>您必须重新输入密码</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>重新产生SIP数据</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>您不能将文件或者文件夹移入自己所在的子目录!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>私有记录文件大小</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>公共记录文件大小</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>授权设置</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>在授权时您可以把用户设置为有效期过期或者设置最大的使用时间数</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>检查授权</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>费率</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>过期时间</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>剩余的秒数</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>总共时间</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>您的授权已经过期,需要重新购买使用权</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>点击购买</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>账号上剩余的时间</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>用户授权信息</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>信息</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>关闭</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>您的授权已经过期,需要重新购买使用权</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>授权设置</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>您可以购买分钟数时间来召开会议,&lt;br/&gt;&lt;br/&gt; 或者使用3-12个月的费率折扣来购买,&lt;br/&gt;&lt;br/&gt;发送邀请函(直接进入会议室的外部链接)或者通过日历来创建会议是只能有包月的用户使用的</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>9.99欧元购买60分钟(0.16欧元每分钟)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>19.99欧元购买5小时(0.06欧元每分钟)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>29.99欧元购买3个月(9.99欧元每个月)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>39.99欧元每6个月(6.66欧元每个月)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>按分钟数付费</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>按语音流量付费</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>您的授权永不过期</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>您的授权即将在以下日期过期:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>您购买了分钟付费服务,您还有:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>购买新的信用卡!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>需要您自己的服务器?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>您如果想拥有自己的$APP_NAME会议服务器或者集成到已有的应用中去,5000元每次!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>或者给我们发送信息</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>回复:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>消息:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>发送</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>点此获取联系人信息</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>信用卡详情</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>名</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>姓</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>信用卡类型</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA卡</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>主卡</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>快递</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>信用卡号</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>过期日期</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>卡号验证码</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>账单寄送地址</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>地址</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>城市</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>国家</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>省</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>邮编</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>数量</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>提交</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>步骤1: 支付单</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>邮件地址</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>点击‘payola付款’,接受visa卡,master卡,discover卡或美国运通卡。无需签入payola。德国居民也可通过借记卡付款(Per Lastschrift-Einzug)。</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>感谢购买OpenMeetings。款项收到后您的帐户会被更新。您会在邮件中收到pdf格式的发票。您也可以在个人设置中查询过往交易。关闭此浏览窗口以回到OpenMeetings。</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>点击购买</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>点击购买</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>步骤3: $APP_NAME系统支付 - 检查订单及付款!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>姓名</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>付款已经收到</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>您好,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>已经收到您的付款,并已经更新了您的用户设置。所有以往的付款信息都能够在您的用户配置中下载</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>感谢您使用$APP_NAME系统!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>$APP_NAME系统已经收到您的付款-</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>支付状态</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>支付随机号</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>分钟数</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>约数</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>状态</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>支付单</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>您需要购买语音容量的费率才可以发送邀请或者通过日历创建会议。使用按分钟付费的方式就可以访问系统了,您也可以让第三方访问会议</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>该邮件地址已经被其他用户使用</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP设置</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>会议号是自动创建的</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP号</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>清除此片子中的所有对象</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>只有在状态栏中输入的URL地址才会发到参会者</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>创建团队会议室</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>为团队创建新的会议室!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>您可以创建一新的会议室并选择参会人员。所有被选择的人员将自动的移动新的会议室,或者是接受到通知信。团队会议室的主持人可以获取所有会议室的列表,并在各会议室之间来回切换,方便各会议室的即时问题需要</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>用户名</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>登录</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>新团队会议室的所有成员:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>创建团队会议室</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>取消</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>至少为团队会议室选择一个用户</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>为团队增加用户</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>从团队会议室中移除该用户</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>用户是团队会议室的主持人(他可以管理所有的团体会议并可以接受所管理的团队会议室的邀请)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>会议类型</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>如果您选择“强制所有用户都移动新的会议室”,则所有选中的成员将自动的移到新创建的团队会议室中,否则他们会得到移到新会议室的通知按钮,用户可以自由选择是否进入新团队会议室。</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>管理团队成员</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>作为主持人,您可以游走在所有的团队会议室间,团队参会者可以发送消息给你,如:可以邀请您参与到他们的会议室中帮助他们。您也可以终止所有的团队会议,这样所有的用户将退出系统。</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>强制所有用户都移动新的会议室</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>姓名</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>被创建</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>参会的人员</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>使用加号从左边增加会议成员,或者从右边移除参会人员</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) 团队会议室设置</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) 将用户加入到团队会议室中</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>团队会议室名称</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>团队会议室</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>切换到该会议室中</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>切换到该团队会议室中</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>关闭团队会议室并让所有的用户退出</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>新的团队会议室</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>您有新的团队会议室可用</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>切换到团队会议室中</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>团队会议室动作</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>您可以通过主菜单中的“动作”菜单重新打开该窗口!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>发送消息给团队会议室主持人</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>新建团队会议室</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>有新的会议室可用,您可以切入到该会议室中去。团队会议室就像有一群会议室,所有会议室有一个超级主持人可以请求帮助。在“我的会议室”中您可以看到团队会议室。</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>切换到团队会议室</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>创建者:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>团队会议室名称:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>如果您离开本会议室,窗口仍旧会保留!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>本团会议室成员</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3)其它您可以切入的团队会议室</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>如果碰到问题,请发送一条消息给团队会议室的主持人。</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>发送</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2)邀请至这个团队会议室的所有用户</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>是否团队会议室主持人</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>所有的用户被主持人邀请至这个会议室</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>此刻团队会议室没有主持人!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>请输入一条消息</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>请求帮助,我们在团队会议室中遇到了麻烦</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>一个团队会议室成员请求您的帮助</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>团队会议室请求帮助p</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>消息:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>从:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>您不属于任何团队的会议室,但您可以加入到任何团队的会议室中</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>备份系统,包括所有用户产生的数据,不过不包括语言配置,这是由于语言的配置是有系统安装时候导入的。如果需要更新您的系统,需要导出旧系统然后,1)重新生成数据库;2)导入备份的文件;3)在系统产生任何数据前先导入备份的文件。</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>系统备份</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>允许用户共享屏幕</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>D禁止用户共享屏幕</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>用户是主持人,可以做任何动作!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>想共享屏幕</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>您可以共享屏幕了</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>请求共享屏幕</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>允许/禁止共享屏幕</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>T关闭声音</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>打开声音</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>只有音频</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>勾选此项可以使得会议室只能有音频功能有利于节省带宽</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>在共享屏幕期间允许远程控制</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>在共享屏幕期间禁止远程控制</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>请求在共享屏幕期间允许远程控制</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>您被允许在共享屏幕期间允许远程控制</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>想远程控制</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>用户是主持人,他可以操控任何功能! [远程桌面控制]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>允许/禁止使用远程桌面控制的屏幕 (在屏幕共享时)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) 从您的计算机到远程计算机:从本机的剪切板拷贝和粘贴到远程控制计算机中,首先在屏幕上点一下,然后在文本框中右键点击,选择“插入”。2)从远程计算机到您的计算机:从远程计算机拷贝文本到您的计算机中,首先高亮选择远程计算机的文本,然后右键点击屏幕选择拷贝高亮文本即可。</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>在您的计算和远程计算机间拷贝和粘贴文本</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>拷贝高亮文本</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>如何拷贝和粘贴</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>共享屏幕的质量:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>超高清晰</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>高清晰</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>一般清晰</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>低清晰度</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>键盘:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>关闭网络会议!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>会议已经关闭,您将重定向到其它网址</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>关闭会议室</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>关闭后展示给用户的地址URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>会议室关闭设置</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>如果会议室关闭则用户会被重定位到相应的地址中去</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>编号</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>名称</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>配置文件</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap配置</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>名称</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>是否有效</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>被插入</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>插入者</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>被更新</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>更新者</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>配置文件需要与hibernate.cfg.xml文件在同一目录中,您需要手工的将配置文件上传到该文件夹中,对该文件的任何修改都会即刻在系统中反应出来。</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>配置文件名称</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>如果您勾选了“增加域选项”,则在登录界面中将出现“域”选择下拉框选项。这项功能在LDAP目录服务的配置中是非常有用的。如:如果用户使用hans@localhost.com作为ldap目录服务的登录名,则在用户名中只需要输入hans,而域选项则选择localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>在用户名后加入域名</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>域名</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>插入</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>拷贝高亮文本</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>远程粘贴板中的文本</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>显示远程粘贴板</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>不要再显示</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>在此拷贝文本 ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>您需要远程控制的权限或者是作为主持人才能进行拷贝和粘贴的操作</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>编辑默认配置...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>不要在远程控制中显示拷贝和粘贴的信息框</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>保存</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>移除</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>取消</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>邀请用户参与会议</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>选择一个会议室,被邀请者会受到一条您的名字和进入会议室的链接</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>连接时间:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>邀请后进入会议室</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>邀请</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>消息</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>想请您加入会议室:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>邀请信</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>发送邀请</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>不希望收到您的邀请!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>同意</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>拒绝</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>时区</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>事件详情</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>姓名</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>详细描述</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>创建者</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>时区信息</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>勾选“时区”选项使得用户在下次登录时可以让他们更新用户资料信息</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>请查核您所在的时区.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>新会议:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>详细情况&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>开始时间:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>结束时间:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>会议变更:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>主持人:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>会议取消:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>会议提醒:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>社区设置</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>联系信息对于任何人都可见</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>添加个人专长以便其他人方便找到您,用逗号分隔多个专长</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>供职单位</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>个人兴趣</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>姓名</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>时区</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>个人特长</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>联系信息</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>只给自己的联系人显示联系信息</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>不开放个人联系信息</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>个人简介</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>设置</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>查找用户</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>您的简介可被其它人查看</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>编辑个人信息</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>查找其它人员</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>查找</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>供职单位</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>其它信息</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>关键字</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>姓名</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>时区</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>供职</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>搜索</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>搜索返回结果</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>动作</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>增加为联系人</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>发送消息</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>联系人及消息</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>被禁止的用户</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>接受</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>拒绝</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>您好,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>想把您添加为联系人.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>检查您的联系人请求消息,通过点击链接来接受或者拒绝请求</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>该用户已经在您的联系人表中,或者该用户收到您的邀请后没有处理</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>联系人列表</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>编辑联系人及消息,处理还未处理的请求!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>已经确认了您的请求!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>查看 /拷贝讨论日志</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>讨论日志</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>来自</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>主题</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>发送</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>消息</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>新的邮件</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>给所有联系人发送新消息</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>撰写新消息</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>发送给:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>主题:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>使用满屏功能将使白板根据参会人员的屏幕分辨率调整可见性</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>踢出用户</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>您不能将自己踢出,如果想离开,请关闭浏览器或者退出点击按钮</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>您确信将该用户踢出会议室吗?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>确认...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>您不能将超级主持人踢出会议室!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>预订会议室</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>开始</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>结束</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>在会议请求消息中增加其他内容,该请求事件会添加到所有的参会人员的日历中</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>收件箱</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>发送箱</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>回收站</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>您不能把自己加入为联系人</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>用户已经拒绝请求!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>用户已经接受请求!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>用户请求已经失效!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>用户已经加入到联系人列表!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>用户已经拒绝联系人请求,并从未处理联系人中移除!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>没有这样的联系人!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>您确实想移除该联系人马?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>移除确认</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>从联系人单中删除联系人</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>用户简介</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>显示用户资料</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>消息</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>查找</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>全部选择</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>全部取消</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>选择未阅读的</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>选择已阅读的</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>移动到文件夹...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>增加新文件夹...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>删除</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>删除的邮件仍旧在垃圾箱中!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>标记未阅读的</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>标记已阅的</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>回复</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>给所有人回复</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>转发</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>动作...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>发送私人消息</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>没有选择任何消息!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>移入收件箱</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>彻底删除</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>不可撤销的动作!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>增加文件夹</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>增加文件夹并整理消息!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>增加文件夹</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>增加</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>删除文件夹</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>您不能删除该文件夹,文件夹中还有消息,首先删除消息或者移动到其它文件夹中</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>编辑姓名</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>您确信要删除该文件夹吗?删除后不可撤销</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>您的请求已发送到用户,对方会收到一条接受或者拒绝的通知,只有被接受了的用户才会出现在您的联系人中</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>消息</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>用户没有共享个人信息</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>用户只对他的联系人共享信息</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>地址 &amp; 电话</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>邀请编码已经失效,该码只有一段时间的有效期</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>此事件与日历中的几个其他用户相关联,您的更改同时会更新其他用户的日历,您确实需要更新吗?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>确认更新</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>允许其他用户查看日历</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>不共享日历</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>日历中的联系人</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>您需要得到确认才可以查看其他用户的日历</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>您不能删除他人的日历!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>只显示自己的日历!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>此事件与日历中的几个其他用户相关联,您删除同时会删除其他用户的日历,您确实需要删除吗?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>确认删除</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>进入会议室</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>访问会议室</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>此消息中包含预订会议室的消息</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>您需要首先保存事件!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>会议室不存在,日历中的事件已经被取消</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>选择您的昵称</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>名</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>姓</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>邮件地址</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>确认</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>最少4个字符,需要姓和名。</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>请输入有效的邮件地址!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>使用Facebook账号登录</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>成为成员的时间</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>您已经使用Facebook账号登录,您需要使用正确的邮箱地址更新您的资料,如果邮箱不正确,您将不能从其他联系人中收到邀请。</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>消息</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>不再显示简介更新的消息</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>更多的显示选项...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>新的私人消息:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>点此查看简介以及全部的消息</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>回复</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>会议室及讨论</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>会议室</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>在线会议室(1-16人)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>在线研讨会(1-120人)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>成员号</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>请输入密码</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>您需要账号</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (通过SOAP访问)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>直接载入到白板</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>您是否真的想删除白板?此动作不可逆!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>载入到白板</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>不用忘记录制,一个用户一个会是室的情况经常需要录制</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>开支录制</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>箭头</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>圆</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>直线</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>矩形</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>三角形</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>文本/便签</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>剪贴画</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>自有绘制</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>选择/移动</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>绘制形状</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>剪切/移动</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>缩小/放大</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>打印</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>撤销</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>回收站</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>增加网格</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>共享文件</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>形状选取</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>点击选取</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>拷贝</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>剪切</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>粘贴</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>删除</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>您是否真的想删除白板中的所有内容?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>直接载入到白板</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>参与者</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>考勤管理员</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>出席</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>远程控制</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>弹出</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>讨论</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>邀请参与人员</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>通过邮件</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>用户是主持人</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>用户将摄像头打开了</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>关闭以形状方式填充</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>激活以形状方式填充</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>自动按网格排列</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>允许录制</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>等待录制</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>掩藏顶栏</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>播放视频</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>确定删除当前幻灯片的内容?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>接受并且授予用户权限</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>拒绝</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>活动</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>移除白板</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>您需要主持人权限操作白板</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>不允许</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>离开了会议室.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>数学符号</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>未分类</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>配色方案</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>质量</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>域</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>访问</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>橙色</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>浅绿色</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>浅蓝色</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>深蓝色</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>金黄色</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>银灰色</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>自定义</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>最佳体验</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>上行</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>适中</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>静音</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>开启麦克风</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>给予独家音频</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>已被主持人设置为全场静音,不可本人解除</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>是否设置本人为全场静音?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>是否确认设置本人为全场静音?其他用户将无法听到你。</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>是否设置其他用户为静音?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>是否确认设置此麦克风为静音?仅限于此屏幕设置。其他用户不受影响。仅主持人可设置全场静音</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>设置其他用户为全场静音?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>是否确认设置此用户为全场静音?其他用户将无法听到他/她</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>声音已打开。单击此处将请求主持人设置本人为全场(本会议室)静音</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>声音已关闭。单击此处将请求主持人解除本人全场(本会议室)静音设置</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>请求主持人设置本人为全场静音</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>请求主持人解除本人全场静音设置</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>请求主持人解除自身静音设置</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>请求主持人设置自身为静音</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>解除静音。单击此处将设置该用户为全场静音</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>设置静音。单击此处将解除该用户全场静音设置</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>该用户已被主持人设置为全场静音。你无法解除静音设置</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>设置本人为全场静音</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>解除本人全场静音设置</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>设置为静音</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>解除静音设置</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>设置为全场设置</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>解除全场静音设置</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>仅限主持人可设置/解除任一用户全场静音设置。设置本人静音:请使用你视频中的麦克风图标。</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>调查名称</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>调查人</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>存档的调查</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>活跃</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>简单图表</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>饼图</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>请输入邮箱</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>新信息</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>关闭调查</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>确定要关闭此调查?其他人将无法投票。</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>删除调查</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>确定要删除此调查?调查结果也将会被删除。</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>语言ISO码</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>允许/拒绝提供独家音频的权利</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>允许用户提供独家音频</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>拒绝用户提供独家音频</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>希望被允许独家音频</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>希望主持人允许本人提供独家音频</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>允许提供独家音频</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>摄像头像素</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>更改像素会影响频宽,较大的图片需要较高频宽</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>你无权给予自己或其他人独家音频。需要向主持人申请该权利或申请得到独家音频。</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>希望得到独家音频的权利</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>赋予我独家音频(或点击你的视频,或点击F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>麦克风已打开</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>麦克风已被静音</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>隐藏对话</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>隐藏活动</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>隐藏档案总管</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>隐藏操作菜单</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>隐藏屏幕共享</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>隐藏白板</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>显示视频中麦克风状态</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>布局选项</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>新事件</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>密码保护是当你保存日历事件时发送给参与者的会议链接,而非会议室。如果多次用不同密码保存事件,每个参与者会收到一个新链接和新密码,但之前发出的链接仍将适用。</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>编辑详情</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>显示sip拨号</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>拨打</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>显示联系人的日历事件</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>你的主页</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>安排你的会议</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>观看录音及访问</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>选择及启动网络会议</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>管理用户及权利</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>管理连接及踢除用户</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>管理用户组</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>管理会议室</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>管理系统设置</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>管理标签及文字</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>管理LDAP及ADS配置</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>输出/输入系统备份</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>需要主持人或被赋予权利以在白板上绘图,上传,添加,删除或加载文件及文件夹。</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>编辑内容</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>教授</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/chinese traditional.xml b/src/main/webapp/languages/chinese traditional.xml
new file mode 100644
index 0000000..929eadc
--- /dev/null
+++ b/src/main/webapp/languages/chinese traditional.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>视訊會議</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>會議</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>會議廳</value>
+  </string>
+  <string id="4" name="settings">
+    <value>設定</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>用戶</value>
+  </string>
+  <string id="6" name="admin">
+    <value>管理</value>
+  </string>
+  <string id="7" name="stop">
+    <value>停止</value>
+  </string>
+  <string id="8" name="record">
+    <value>記錄</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>沒有資料</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>老師記錄</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>連接用戶 :</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>啟動會議</value>
+  </string>
+  <string id="13" name="myname">
+    <value>我的名字</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>视訊會議</value>
+  </string>
+  <string id="15" name="import">
+    <value>輸入演示</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>刷新列表</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>回到主要檔案</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>新的民意</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>一項新的民意測驗給這會議</value>
+  </string>
+  <string id="20" name="question">
+    <value>問題:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>民調類型 :</value>
+  </string>
+  <string id="22" name="create">
+    <value>建立</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>信息:每個接入用戶收到新的民意信息</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>創造一個新的民調</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>取诮</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>是/否</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>數字的 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>民調</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>必須是主持人能提出問題</value>
+  </string>
+  <string id="30" name="vote">
+    <value>你的投票己登記</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>你已經投票在本次民調中</value>
+  </string>
+  <string id="32" name="voting">
+    <value>投票!</value>
+  </string>
+  <string id="33" name="answer">
+    <value>你的回應 :</value>
+  </string>
+  <string id="34" name="yes">
+    <value>是</value>
+  </string>
+  <string id="35" name="no">
+    <value>否</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>知道事情的立場:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>投票結果</value>
+  </string>
+  <string id="38" name="question">
+    <value>問題:</value>
+  </string>
+  <string id="39" name="results">
+    <value>結果:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>答案:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>民調還沒開始</value>
+  </string>
+  <string id="42" name="votings">
+    <value>投票!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>會議 (最多4席)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>會議 (最多50席)</value>
+  </string>
+  <string id="45" name="type">
+    <value>類型</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>其他席位</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>已選定</value>
+  </string>
+  <string id="48" name="enter">
+    <value>進入</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>主持人已經離開了會議 .</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>系統信息</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>選擇裝置</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>選擇攝像机 :</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>選擇麥克風 :</value>
+  </string>
+  <string id="54" name="ok">
+    <value>设定好了</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>取消</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>你需要重新連接 .</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>編輯設定 .</value>
+  </string>
+  <string id="58" name="course">
+    <value>課程 :</value>
+  </string>
+  <string id="59" name="language">
+    <value>語言 :</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>设定好了</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>取消</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>清掉電子白板</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>你想要在加圖片之前先清掉白板嗎?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>不要再問</value>
+  </string>
+  <string id="65" name="no">
+    <value>否</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>編輯設定</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>請求確認清掉白板</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>用户資料</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>清掉畫圖</value>
+  </string>
+  <string id="70" name="undo">
+    <value>撤消</value>
+  </string>
+  <string id="71" name="redo">
+    <value>重做</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>選擇對象</value>
+  </string>
+  <string id="73" name="text">
+    <value>全文</value>
+  </string>
+  <string id="74" name="paint">
+    <value>繪畫</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>畫線</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>畫強洞底線</value>
+  </string>
+  <string id="77" name="rect">
+    <value>長方形</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>橢圓形</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>箭頭</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>刪除選定項目</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>申請成為主持人</value>
+  </string>
+  <string id="82" name="apply">
+    <value>應用</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>取消</value>
+  </string>
+  <string id="84" name="mod">
+    <value>成為主持人</value>
+  </string>
+  <string id="85" name="close">
+    <value>關閉</value>
+  </string>
+  <string id="86" name="italic">
+    <value>斜體字</value>
+  </string>
+  <string id="87" name="bold">
+    <value>粗體字</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>等待</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>有用户想申請成為主持人</value>
+  </string>
+  <string id="90" name="accept">
+    <value>接受</value>
+  </string>
+  <string id="91" name="reject">
+    <value>拒绝</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>取诮</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>送出請求到以下的用戶</value>
+  </string>
+  <string id="94" name="accept">
+    <value>接受</value>
+  </string>
+  <string id="95" name="reject">
+    <value>拒绝</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>改變主持人</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>你不是這課程的主持人!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>主持人:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>這個房間已滿 . 對不起 ,請捎後再試</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>橢圓形</value>
+  </string>
+  <string id="101" name="close">
+    <value>關閉</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>輸入資料有誤</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>用戶名必須至少4個字符</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>用戶密碼必須至少4個字符</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>用戶台已被姶用</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>這電子郵件已註冊过了</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>系統錯誤 ,請聯繫系統管理員</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>登錄</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>用戶 :</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>密碼 :</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>語言</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>註冊登錄</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>報名</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>用戶 :</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>密碼 :</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>重打:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>名稱:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>姓氏:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>郵件 :</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>國家 :</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>登記</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>取消</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>登記</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>首頁</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>用戶管理</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>團體管理</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>組織管理</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>會議室</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>公開會議</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>組織</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>進入</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>登錄</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>密碼</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>重打</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>名稱</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>姓氏</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>郵件</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>生日</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>街名/號碼</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>郵編 /城市</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>國家</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>地址-信息</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>用户资料</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>保存</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>保存</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>用户-ID</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>登錄</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>名稱</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>姓氏</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>顯示下一個</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>顯示前一個</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>刪除紀錄</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>取消</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>刪除</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>新紀錄</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>刷新紀錄</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>刪除紀錄</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>狀態</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>關閉</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>啟動</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>組織</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>日曆</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>關閉</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>組織 -ID</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>名稱</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>用戶</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>主持</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>管理</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>用戶級別</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>組織</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>名稱</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>增加組織</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>增加組織</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>取消</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>增加</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>移除組織</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>用戶</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>增加用戶</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>移除用戶</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>增加用戶</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>尋找用戶</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>尋找</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>用戶</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>組織</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>進入</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>會議室</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>會議室</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>身份證</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>名字</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>公開</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>組織</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>會議室</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>名字</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>類型</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>公開</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>評論</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>保存</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>輸入</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>另存為</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>文件名稱</value>
+  </string>
+  <string id="201" name="files">
+    <value>文件名稱</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>取消</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>保存</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>錯誤</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>輸入中</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>主題輸入</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>正在同步客戶 ,客戶請诮等</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>載入圖檔</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>正在同步客戶 ,客戶請诮等</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>清除畫圖區</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>清除畫圖區,所有资料會不見!</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>確認後再載入檔案</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>發送邀請</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>發送邀請</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>主題</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>受邀者</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>信息</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>送出</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>取消</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>送出</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>用戶資料</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>你這次會議的別名</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>別名</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>名稱</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>姓名</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>電子郵件</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>語言</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>進入</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>載入</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>资料正在載入, 請诮等!</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>密碼錯誤</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>請輸入兩個相同的密碼最少6個字符</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>錯的郵件</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>你輸入了一個無效的郵件地址</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>註冊完成</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>你的賬戶已經建立. 你現在以可登錄</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>己有別人在共用這电子白板, 你现在暫時無法再分享。</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>嚴禁共享</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>分享你的屏幕</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>如果看到這項警告,顯示你的频寬不夠造成無法同步屏幕. 您可以問主持人降低寬頻標準 .</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>畫面用户:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>畫圖</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>文件</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>聊天</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>檔案</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>會員</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>下載原始文件</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>下載 pdf 文件</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>把演示放到白板</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>设定</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>拖這影象</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>調整大小</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>的</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>到第–頁</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>到前一頁</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>到下一頁</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>到最後一頁</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>縮小 --</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>放大 ++</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>先生</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>女士</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>配置</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>编号</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>關鍵</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>配置</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>關鍵</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>最後更新</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>更新</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>評論t</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>關鍵</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>的</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>用戶</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>刪除用戶,從組織</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>刪除</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>此用戶已經是這個組織的會員</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>新聞</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>連結</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>進入會議</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>進入課堂</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>幫助和支持</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>告訴我們問題!</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>更多</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Project Website (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>User Mailing List (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>記住登錄</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>內容</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>我的首頁</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>我安排的會議</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>我的預定活動</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>公開會議</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>私人會議</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>公開活動</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>私人活動</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>公開內容</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>私人內容</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>各人內容</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>主持</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>申請成為主持</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>民調</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>選擇一個文件</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>設定</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>攝像机和麥克風设定</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>白板設定</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>退出</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>回到房間</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>登出</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>桌面瀏覽</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>啟動桌面瀏覽</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>視頻和音頻</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>聊天</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>白板</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>主持</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>文件</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>用戶</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>民調</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>有沒有用戶連接到該用戶名</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>該電郵載有一個特殊的聯繫已被發送到您的電子郵件地址,請檢查您的信箱。如果您還沒有收到郵件,請調整你的垃圾郵件設置,並重新發送確認郵件</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>錯误</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>訊息</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>無效散列。找不到用戶.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>重置密碼</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>登錄</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>修改密碼</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>新密碼</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>重新輸入密碼</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>你所輸入的密碼並不相同</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>4或更多個字符;大寫有分!</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>密碼設定。您可以立即登錄。</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>未知錯誤。請告知您的服務團隊</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>用戶名找不到</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>密碼無效</value>
+  </string>
+  <string id="337" name="logout">
+    <value>成功登出</value>
+  </string>
+  <string id="338" name="registration">
+    <value>前端登記禁用</value>
+  </string>
+  <string id="339" name="registration">
+    <value>無效電子郵件</value>
+  </string>
+  <string id="340" name="registration">
+    <value>重複的文件名,請選擇另一個文件名</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>文件名太短</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>不能儲存地址</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>用戶添加,但你需要设定此用戶屬於一個組織,否則他將無法登錄。</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>新紀錄</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>沒有發現這一個ID.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>內容的標籤無法出现.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>管理者 授權要求</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>語言-編者</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>語言</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>標籤-ID</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>標籤-名稱</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>價值</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>內容價值</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>標籤-名稱</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>標籤價值</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>標籤-ID</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>你只刪除標籤,而不是領域!您不能刪除領域,它可能已在標籤上的其他語言。</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>無效標籤id 。該fieldlanguagesvalues_id不能找到在數據庫</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>您不能刪除這一領域。你只能刪除標籤並非領域。有無標籤裝在此時或者它是沒有選中的任何領域,或者有沒有商標,這門語言會成為這一領域的設定。</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>出口</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>你需要登出看到有任何變化.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>添加新的語言</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>刪除語言</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>添加新的語言</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>姓名</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>添加新的語言</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>備份</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>到第–頁</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>到前一頁</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>到下一頁</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>最後一頁</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>用戶说话 (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>把聲音開/關</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>系統</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>您的設置</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>hi,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>編輯您的檔案</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>新訊息:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>上傳新形象</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>用戶數據 - 出口</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>所有組織都必須已存在的</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>開始出口</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>由組織</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>開始 出口</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>用戶數據 - 進口</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>選擇用戶.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>進口</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>出口到XML -這些檔案可用於: -為該項目做貢獻 -導入到另一個系統 -備份 -個性化 -把它納入語文目錄,為你的下一次安裝</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>選擇一種語言的文件輸入。選擇正確的語言從組合框中! 無論是什麼名稱的文件,它都將匯入這語言!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>進口-選擇文件</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>另存為</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>姓名:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>評論:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>保存</value>
+  </string>
+  <string id="395" name="record">
+    <value>錄影</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>錄影觀眾</value>
+  </string>
+  <string id="397" name="record">
+    <value>公共和私人會議室的錄影</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>用戶 :</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>加入:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>用戶在這個房間:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>刷新</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>這個房間己滿,在數分鐘再試一次.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>點擊一個房間獲得細節</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>和這個會議室的用户聊天:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>房間:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>用戶在這個房間:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>從何時:</value>
+  </string>
+  <string id="409" name="record">
+    <value>播放錄影</value>
+  </string>
+  <string id="410" name="record">
+    <value>總計時間:</value>
+  </string>
+  <string id="411" name="record">
+    <value>日期:</value>
+  </string>
+  <string id="412" name="record">
+    <value>錄影儀模式!你不能改變,這是一個錄影文件!</value>
+  </string>
+  <string id="413" name="record">
+    <value>播放這個錄影</value>
+  </string>
+  <string id="414" name="record">
+    <value>播放/暫停</value>
+  </string>
+  <string id="415" name="record">
+    <value>開始錄影</value>
+  </string>
+  <string id="416" name="record">
+    <value>停止錄影</value>
+  </string>
+  <string id="417" name="record">
+    <value>錄影:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>現在已經有人在錄影:</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>錄影!按用戶:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>取消</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>錄影將被取消,並不會被保存</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>恢復</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>關閉此窗口,並恢復錄影</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>改變線的顏色</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>選擇顏色</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>禁用/使用 線顏色</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>改變補色</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>禁止/使用補色</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>改變線寬</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>關閉</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>改變文字大小</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>刪除記錄</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>客戶</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>由:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>姓名</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>房間</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>日期</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>取消</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>開始</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>姓名</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>日期</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>刪除服務器 聊天記錄</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>聊天</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>發送消息</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>表情符號</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>表情符號</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>選擇播放裝置</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>音頻和視頻</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>僅音頻</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>僅視頻</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>沒有音頻/視頻(靜態影像)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>沒有音頻/視頻從你的個人電腦將會公佈,而不是一個圖片從你的檔案就會顯示。選擇這些設置,如果您有問題,與你的帶寬還是一個非常緩慢的互聯網連接。</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>MO</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>TU</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>WE</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>TH</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>FR</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>SA</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>SU</value>
+  </string>
+  <string id="460" name="calendar_dayname_MondayLabel">
+    <value>週一</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>週二</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>週三</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>週四</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>週五</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>週六</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>週日</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>CW</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>日曆週</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>1月</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>2月</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>3月</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>4月</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>5月</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>6月</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>7月</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>8月</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>9月</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>10月</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>11月</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>12月</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>日曆</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>參加者</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>顯示佈局設置</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Width | Height</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>視頻-集裝箱</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>主持-集裝箱</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>白板-集裝箱</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>啟用</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>寬度|高度</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>檔案,聊天,參加者-集裝箱</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>啟用</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>寬度|高度</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>主持人離開了房間。在時刻沒有人介紹,你可以申請成為主持或等待</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>在這個房間裡是沒有主持人,有一些人參加。你要申請成主持或等待</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>反饋 $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - 邀請</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>用戶訊息:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>訊息:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>點擊此鏈接,參加會議:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>點擊這裡進入房間</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>如果您有問題連接,請複製並貼到你的瀏覽器上:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME - 註冊</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>你的用戶數據:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>登錄:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>密碼:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>郵箱:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME-團隊</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME - 註冊</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - 重設密碼</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>點擊這個鏈接進入設定新的密碼:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>點擊這裡設定新的密碼</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>如果您有問題連接,請複製並貼到你的瀏覽器上:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME 密碼重設</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>請輸入有效日期,例如 24.12.2001 (dd.mm.yyyy)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>請輸入一個有效的電子郵件, 例如 name@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>請輸入一個浮點數號碼, 例如 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>請輸入一個號碼 (Integer), 例如 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>請輸入有效的電話號碼, 例如++49 0123 123123</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>請輸入有效的時候,例如 12:23 (hh:mm)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>密碼保護</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>密碼</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>有效期</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>無限期</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>期限</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>一次性</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>有效期從:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>有效期至:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>I邀請到 $APP_NAME</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>沒有這一邀請碼</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>該邀請已經使用。這種類型的邀請,不能再使用。</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>This Invitation-Code is not valid.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>密碼:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>核對密碼</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>密碼無效!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Browser</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Syncronize Audio/Video</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Login was correct, but the Session you tried is not active or stored on the Server. You have to get a new SessionId and retry login.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>The SessionId is not loggedin or has no Admin rights. The SOAP Gateway needs an User with Admin-Rights to embed new Users.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>This Session has no Remoteuser-Data connected. Wether you did not call the SOAP-Gateway before accessing the Application or you are usnig a wrong Session-ID</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>The recorder is currently Beta!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>x-axis</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>y-axis</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>w</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>width</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>h</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>height</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Change Transparency</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Browser Open</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Browser Close</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>The Connection to the Server is lost. You need to reload the Application or/and check your Network.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Pointer</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Synchronizing</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Synchronizing Users, please wait</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Download as SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Download as PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Download as JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Download as PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Download as TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Reminder:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Category:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Repetition:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>none</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Location:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Start</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>End</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Title:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Comment:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Invite People</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Daily</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Monthly</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Yearly</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Appointment-end is after of appointment-start!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Please insert a title!</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Active this if you write in a right to left language (inverse word order)</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Dashboard</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Watch recorded Meetings or Events</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Meeting - Make a conference with 4 (up to 16) Users&lt;br/&gt;everybody will have audio + video access</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Event - Make a conference with up to 200 participents&lt;br/&gt;Only the Moderator will have audio/video</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Create users, rooms, organizations&lt;br/&gt; + change configuration</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Users in this Room now</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Login</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Loading Document. Please wait untill all Client have been synchronized.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Upload complete, converting Document ...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Start Upload</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Upload and Import Dialog. Please select a File from your Disk.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Cancel</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Select File</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Connections</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Value</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Streamid</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Login</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Connected since</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Room / Scope</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Kick User</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Kick User</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Do you really want to kick this Client from the Connection?&lt;br/&gt; This does only remove the Client from the current Room.The Client could re-login again.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Your session has been closed by an Administrator or Moderator.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Phone</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>User is the Moderator of this Room</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>User is allowed to draw on the Whiteboard</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Re) Start Audio/Video or change Device Settings</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Allow this User to draw on the Whiteboard</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Remove ability to draw on whiteboard</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Users</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Files</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Whiteboard</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Chat</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Your account is assigned to multiple Organizations. Please choose one for this Session.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>This room is full at the moment. Please try again later.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Room Type</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Appointment Room</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Server Time</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - Reminder</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Message from User:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Message:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Click this link to participate in the Meetings:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Click here to enter room</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>if you have problems with the link, please copy and paste this to your browser:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>search intern</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>extern users</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>pre name</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>name</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>E-mail</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Confirm logout</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Are you sure you want to logout now?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Actions</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Demo Room</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Demo Time</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Meeting Timer</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>This Room is a Demo Room. To disable this warning you either should get a private meeting room for your personal usage or set up an own Server. You will be automatically logged off in:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Moderated</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Please wait untill the Moderator has entered the Room. The Moderator can be either a Teacher, Admin or the creator of this Room.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Ok</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Incoming Screen Sharing</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>There is a new Screen Sharing incoming from the User:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Start Sharing</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Add new Meeting</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Meeting Room</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Event Room</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderation</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Moderate Users</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Moderate Rooms</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Do you want to change this User to become a Moderator of that Organization?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Please choose an Organization before you try to add a User to it!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organization - Moderator</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Do you really want to delete this User from the Organization?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>This User is Moderator</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>This User is No-Moderator</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Do you want this User to be not a Moderator of this Organization?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Add or delete Users or Rooms within your Organization</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Do you really want to delete this record?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Do you really want to delete this user from your organization? You will only delete the connection between the user and your organization, to really delete the user itself you have to login into the Administration-Panel.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>You cannot delete your own User!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>This Method needs a Adminstration Account to be invoked!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>There was no Session associated with this ID.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>This is an Administrator or Moderator account. You can only edit this account through the Administration Panel.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>To complete your registration please click on the following link. Or copy the URL to your browser bar.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Click to verify your E-Mail</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>No user was found for this Hash.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>This user is already activated!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>You did successfully activate your account!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Login Now</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Your account is not activated. First use the link in the Email you've received during registration.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>You successfully signed up. We've send an EMail with a verification Code to your Mail. Please check your Inbox.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Remove Moderation Role from this User</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Grant Moderation Rights to this User</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>User</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Access to whiteboard</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderator</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Moderation: Please choose any User on the List to grant him access to the Whiteboard, Moderation or Video.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>This User is already Moderator, so he has automatically the right to draw.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>This is you! You cannot remove the Moderation rights from yourself.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Allow this User to Publish his Audio / Video</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Remove Audio/Video of this User</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>I would like to get the moderation of this room</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>I would like to draw on whiteboard</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>I would like to share my Audio/Video</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>You are moderator of this room</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>You are allowed to draw on whiteboard</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>You are allowed to share your Audio/Video</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Message to Moderator</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>The User</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>would like to get the Moderation. Use the status Icons next to the user in the List of Users to add or remove the Moderation.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>would like to draw on whiteboard. Use the status Icons next to the user in the List of Users to add or remove the right to draw anything on the whiteboard.</value>
+  </string>
+  <string id="695" name="695">
+    <value>would like to share his Audio/Video. Use the status Icons next to the user in the List of Users to add or remove the right to share Audio/Video for any User.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>You have to wait untill a Moderator enters the room.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Cancel</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Save</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Day</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Month</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Year</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Upload File</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Refresh</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Trash (Drag and Drop item here)</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>My Files (Home Drive)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Room Files (Public Drive)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Add File</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Delete Folder</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Edit Name</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>New Folder</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Are you sure you want to delete this Item?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Open Document</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Show all Files (Tree View)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Close Document</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Delete File</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>You are not allowed to draw anything on the Whiteboard. You have to become Moderator or at least get the Right to edit Whiteboard. You may ask a Moderator to give you that right.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Document Properties</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Start Client (external)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Start Client (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>A user want to share his screen. Do you want to see it?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>You are currently sharing your Desktop. For stopping the Sharing Session please hit the Stop button in the Sharing Client.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Sharing Session</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>You are already sharing your desktop!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Desktop Viewer</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Exit</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Desktop Sharer</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Click Start to publish your screen</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Start Sharing</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Select your screen area:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Change width</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>The Sharer has finished this session!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Change height</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-Offset</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-Offset</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Width:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Height:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Connection was closed by Server</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Cancel</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Start External</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>If you close this session completely you are not able to restart the viewer for this session.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Confirm Closing Viewer Session</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Share Screen</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Record Session</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Co-Browsing</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Ooops, ... Firefox on Windows does not show clear Co-Browsing. Please use another Browser for using the Co-Browsing feature.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Previous</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Next</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Reload</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Home</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Load</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Add this website as Default website to your Profile.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Test Setup</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Check you Microphone and Camera setup before you enter a room by recording some seconds. You can then replay your recording to check your voice and picture.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Don't show this test anymore</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Cancel</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Start Conference</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Do not ask again</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>You may proceed without testing if you do not plan to publish your voice or picture. Participants without Audio or Video can still use the Whiteboard, share their Desktop or write Chat messages.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="test setup">
+    <value>Level-Meter</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Press Start</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Start Event</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Choose Room</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Check Setup</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="774" name="start view">
+    <value>How to conference</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Start Recording</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Do not show Audio / Video Test (Recording) before entering a Conference</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Public Rooms</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Public Rooms are accessible for all Users.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Private Rooms</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Private Rooms are only accessible for users of the same organization.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>My Rooms</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Rooms in this section are created for personal usage. There are some standard rooms plus the ones that are created through the calendar and have a start and an end date. The rooms created via the calendar are only listed in this section as long as they are valid.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>You have to be moderator to do this.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Apply for moderation</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Apply for whiteboard access</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Apply for camera/microphone access</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>This Session Hash was already used. You cannot use it twice.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>START</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>EXIT</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Do you really want to exit? You might should clear uploaded documents, whiteboard and the chat history.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Exit conference</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Rooms</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Choose a room for a meeting</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>There is an unsaved Event in the Calendar. Please either save it or remove it.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Please add at least one attendee for your meeting!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Do you really want to delete this Event?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Warning</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Add Event</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>Day</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>Week</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>Month</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Description</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Attendees</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, your Web Conferencing Platform. Either follow the Instructions, press the start button to start to conference immediatelly or you goto the Calendar and set up a Conference for the future.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Plan a Meeting</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>To set up a conference you can add a new Event in the Calendar.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Need help?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Restricted</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Search</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Add</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>There is no User selected. Please select an item from the list first and then hit add.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Add Attendee</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Save</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Delete</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Event Details</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Default Moderators</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Name</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>E-Mail</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Add new default Moderator</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Is Super Moderator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>If the Room is moderated, User with Level Moderator or Administrator are automatically Moderator if they enter the Room. If you don't want to specify that and only want a certain User to become Moderator use the Default Moderator option.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>A Super Moderator is always a Moderator when he enters a Room, and nobody can remove the Moderation Flag from him</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Apply Super-Moderation to User</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Remove Super Moderation from User</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>If you add an Organization to the room only users of that Organization have access to it (This is only valid if the isPublic flag is set to false!)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderation</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitations</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organization</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Are you sure?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Do you really want to delete this Item? You have to press the save button to store the changes!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>There is no User selected. Please select first before you add it!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Add new Default Moderator</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Do you want to add the Super Moderation Flag for this User? A Super Moderator is not only Moderator of a Room, but also no other Moderator can remove the Moderation Flag for this User. You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Do you want to remove the Super Moderation Flag for this User? You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>This User is a Super-Moderator. You cannot remove the Moderation flag from a Super-Moderator!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Do you really want to delete this File/Folder?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Delete File/Folder?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Mrs.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Properties</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Show mouse position to viewers</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Share Audio with SIP Applet</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Share Audio with SIP and Video with Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Full-Fit</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>View Screen</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>The user</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>wants to share its screen. Do you want to see it?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Close</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>The Session was closed by the sharing User!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>New Screen Sharing</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimize</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximize</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Recording Timeline</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>My Recordings</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Public Recordings</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Name</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Length</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Date</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>By</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>PLAY</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Main - Video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Recording</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>You may record and share your screen at the same time. To enable others to see your screen just hit the start button on the top. To only record the Session it is sufficient to click start recording.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Start Recording</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Stop Recording</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download the FLV-File</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Room</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Play</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>User has microphone on</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Allow User Questions</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Turn this off to prevent that any user is disturbing you in this room. Effect is that the Button to ask for Moderation ("I have a question") is not visible.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rights</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Download as AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Audio only</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>The have been errors while processing the Recording.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>The Recording is not yet ready for watching. Please retry in a couple of minutes again.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Recorder Message</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP Applet is not Ready</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP-Account Settings</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP settings for each user. You can turn on or off SIP via the Administration &gt; Configuration (Key: enable_sip). The SIP data for each user should be created automatically. You can re-create the data by checking "Re-generate SIP Data"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-User</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Pass</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. You should check the authentification data of your SIP-Provider and the SIP-Account Data for each User. As Administrator you are still able to login and check the Configuration. As User or Moderator you will be blocked from any interaction.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. Contact your Service Team!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Show Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log messages from post recorder process</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Applet Message</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>The SIP-Applet is not ready. Accept the Applet please and click ok!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Get Moderation</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Save Appointment Changes</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointement has been changed. Do you want to save those changes? &lt;br/&gt;&lt;br/&gt;All attendees of the appointment will receive a EMail with the updated date and time (depending on the notification type of this appointment).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>To access other recordings you have to login the $APP_NAME Application.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Choose the User for this Video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available Users for this Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>You are a Moderator in this Interview. You can decide who is speaking in this interview and you can start / stop the recording of the Session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Start Recording</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Stop Recording</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>The recording of the Interview is already started.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>The recording is already stopped or not been started yet.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>The recording for this interview is already started!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Clear objects on current slide only!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the Status bar is send to participants!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make Team-Rooms [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new Team-Room!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new Conference Room ("Team Room") for them. The chosen users will automatically switch to the new Team-Room or get a notification. Team-Room Moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a Moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Username</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new Team-Room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create Team-Room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the Team-Room!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from Team-Room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Roomtype</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the System. The Backup includes all User generated data. The configuration is not included as well as the language labels. Because those values are imported with the System Installer. To update your System, export your old system (1) re-install into a new database the new package (2) and import the Backup file again (3). The Backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share Screen/Record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is Moderator, he can do anything!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/Deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose "Insert" from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about Copy and Paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Kick user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/countries.xml b/src/main/webapp/languages/countries.xml
new file mode 100644
index 0000000..5b3b393
--- /dev/null
+++ b/src/main/webapp/languages/countries.xml
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!-- 
+	This list is complete and up-to-date as of 18 February 2007. 
+	from United Nations
+	United Nations Statistics Division- Standard Country and Area Codes Classifications (M49)
+	http://unstats.un.org/unsd/methods/m49/m49alpha.htm
+	
+	28.07.2007 add Taiwan, Republic of China country code 157, short ROC
+	 -->
+<countries xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+    xsi:noNamespaceSchemaLocation="countries.xsd">
+	<country code="004" name="Afghanistan" short="AFG" />
+	<country code="248" short="ALA" name="Åland Islands" />
+	<country code="008" short="ALB" name="Albania" />
+	<country code="012" short="DZA" name="Algeria" />
+	<country code="016" short="ASM" name="American Samoa"/>
+	<country code="020" short="AND" name="Andorra"/>
+	<country code="024" short="AGO" name="Angola"/>
+	<country code="660" short="AIA" name="Anguilla"/>
+	<country code="028" short="ATG" name="Antigua and Barbuda"/>
+	<country code="032" short="ARG" name="Argentina"/>
+	<country code="051" short="ARM" name="Armenia"/>
+	<country code="533" short="ABW" name="Aruba"/>
+	<country code="036" short="AUS" name="Australia"/>
+	<country code="040" short="AUT" name="Austria"/>
+	<country code="031" short="AZE" name="Azerbaijan"/>
+	<country code="044" short="BHS" name="Bahamas"/>
+	<country code="048" short="BHR" name="Bahrain"/>
+	<country code="050" short="BGD" name="Bangladesh"/>
+	<country code="052" short="BRB" name="Barbados"/>
+	<country code="112" short="BLR" name="Belarus"/>
+	<country code="056" short="BEL" name="Belgium"/>
+	<country code="084" short="BLZ" name="Belize"/>
+	<country code="204" short="BEN" name="Benin"/>
+	<country code="060" short="BMU" name="Bermuda"/>
+	<country code="064" short="BTN" name="Bhutan"/>
+	<country code="068" short="BOL" name="Bolivia"/>
+	<country code="070" short="BIH" name="Bosnia and Herzegovina"/>
+	<country code="072" short="BWA" name="Botswana"/>
+	<country code="076" short="BRA" name="Brazil"/>
+	<country code="092" short="VGB" name="British Virgin Islands"/>
+	<country code="096" short="BRN" name="Brunei Darussalam"/>
+	<country code="100" short="BGR" name="Bulgaria"/>
+	<country code="854" short="BFA" name="Burkina Faso"/>
+	<country code="108" short="BDI" name="Burundi"/>
+	<country code="116" short="KHM" name="Cambodia"/>
+	<country code="120" short="CMR" name="Cameroon"/>
+	<country code="124" short="CAN" name="Canada"/>
+	<country code="132" short="CPV" name="Cape Verde"/>
+	<country code="136" short="CYM" name="Cayman Islands"/>
+	<country code="140" short="CAF" name="Central African Republic"/>
+	<country code="148" short="TCD" name="Chad"/>
+	<country code="830" short="" name="Channel Islands"/>
+	<country code="152" short="CHL" name="Chile"/>
+	<country code="156" short="CHN" name="China"/>
+	<country code="344" short="HKG" name="Hong Kong Special Administrative Region of China"/>
+	<country code="446" short="MAC" name="Macao Special Administrative Region of China"/>
+	<country code="170" short="COL" name="Colombia"/>
+	<country code="174" short="COM" name="Comoros"/>
+	<country code="178" short="COG" name="Congo"/>
+	<country code="184" short="COK" name="Cook Islands"/>
+	<country code="188" short="CRI" name="Costa Rica"/>
+	<country code="384" short="CIV" name="Côte d'Ivoire"/>
+	<country code="191" short="HRV" name="Croatia"/>
+	<country code="192" short="CUB" name="Cuba"/>
+	<country code="196" short="CYP" name="Cyprus"/>
+	<country code="203" short="CZE" name="Czech Republic"/>
+	<country code="408" short="PRK" name="Democratic People's Republic of Korea"/>
+	<country code="180" short="COD" name="Democratic Republic of the Congo"/>
+	<country code="208" short="DNK" name="Denmark"/>
+	<country code="262" short="DJI" name="Djibouti"/>
+	<country code="212" short="DMA" name="Dominica"/>
+	<country code="214" short="DOM" name="Dominican Republic"/>
+	<country code="218" short="ECU" name="Ecuador"/>
+	<country code="818" short="EGY" name="Egypt"/>
+	<country code="222" short="SLV" name="El Salvador"/>
+	<country code="226" short="GNQ" name="Equatorial Guinea"/>
+	<country code="232" short="ERI" name="Eritrea"/>
+	<country code="233" short="EST" name="Estonia"/>
+	<country code="231" short="ETH" name="Ethiopia"/>
+	<country code="234" short="FRO" name="Faeroe Islands"/>
+	<country code="238" short="FLK" name="Falkland Islands (Malvinas)"/>
+	<country code="242" short="FJI" name="Fiji"/>
+	<country code="246" short="FIN" name="Finland"/>
+	<country code="250" short="FRA" name="France"/>
+	<country code="254" short="GUF" name="French Guiana"/>
+	<country code="258" short="PYF" name="French Polynesia"/>
+	<country code="266" short="GAB" name="Gabon"/>
+	<country code="270" short="GMB" name="Gambia"/>
+	<country code="268" short="GEO" name="Georgia"/>
+	<country code="276" short="DEU" name="Germany"/>
+	<country code="288" short="GHA" name="Ghana"/>
+	<country code="292" short="GIB" name="Gibraltar"/>
+	<country code="300" short="GRC" name="Greece"/>
+	<country code="304" short="GRL" name="Greenland"/>
+	<country code="308" short="GRD" name="Grenada"/>
+	<country code="312" short="GLP" name="Guadeloupe"/>
+	<country code="316" short="GUM" name="Guam"/>
+	<country code="320" short="GTM" name="Guatemala"/>
+	<country code="831" short="CGY" name="Guernsey"/>
+	<country code="324" short="GIN" name="Guinea"/>
+	<country code="624" short="GNB" name="Guinea-Bissau"/>
+	<country code="328" short="GUY" name="Guyana"/>
+	<country code="332" short="HTI" name="Haiti"/>
+	<country code="336" short="VAT" name="Holy See"/>
+	<country code="340" short="HND" name="Honduras"/>
+	<country code="348" short="HUN" name="Hungary"/>
+	<country code="352" short="ISL" name="Iceland"/>
+	<country code="356" short="IND" name="India"/>
+	<country code="360" short="IDN" name="Indonesia"/>
+	<country code="364" short="IRN" name="Iran, Islamic Republic of"/>
+	<country code="368" short="IRQ" name="Iraq"/>
+	<country code="372" short="IRL" name="Ireland"/>
+	<country code="833" short="IMN" name="Isle of Man"/>
+	<country code="376" short="ISR" name="Israel"/>
+	<country code="380" short="ITA" name="Italy"/>
+	<country code="388" short="JAM" name="Jamaica"/>
+	<country code="392" short="JPN" name="Japan"/>
+	<country code="832" short="JEY" name="Jersey"/>
+	<country code="400" short="JOR" name="Jordan"/>
+	<country code="398" short="KAZ" name="Kazakhstan"/>
+	<country code="404" short="KEN" name="Kenya"/>
+	<country code="296" short="KIR" name="Kiribati"/>
+	<country code="414" short="KWT" name="Kuwait"/>
+	<country code="417" short="KGZ" name="Kyrgyzstan"/>
+	<country code="418" short="LAO" name="Lao People's Democratic Republic"/>
+	<country code="428" short="LVA" name="Latvia"/>
+	<country code="422" short="LBN" name="Lebanon"/>
+	<country code="426" short="LSO" name="Lesotho"/>
+	<country code="430" short="LBR" name="Liberia"/>
+	<country code="434" short="LBY" name="Libyan Arab Jamahiriya"/>
+	<country code="438" short="LIE" name="Liechtenstein"/>
+	<country code="440" short="LTU" name="Lithuania"/>
+	<country code="442" short="LUX" name="Luxembourg"/>
+	<country code="450" short="MDG" name="Madagascar"/>
+	<country code="454" short="MWI" name="Malawi"/>
+	<country code="458" short="MYS" name="Malaysia"/>
+	<country code="462" short="MDV" name="Maldives"/>
+	<country code="466" short="MLI" name="Mali"/>
+	<country code="470" short="MLT" name="Malta"/>
+	<country code="584" short="MHL" name="Marshall Islands"/>
+	<country code="474" short="MTQ" name="Martinique"/>
+	<country code="478" short="MRT" name="Mauritania"/>
+	<country code="480" short="MUS" name="Mauritius"/>
+	<country code="175" short="MYT" name="Mayotte"/>
+	<country code="484" short="MEX" name="Mexico"/>
+	<country code="583" short="FSM" name="Micronesia, Federated States of"/>
+	<country code="492" short="MCO" name="Monaco"/>
+	<country code="496" short="MNG" name="Mongolia"/>
+	<country code="499" short="MNE" name="Montenegro"/>
+	<country code="500" short="MSR" name="Montserrat"/>
+	<country code="504" short="MAR" name="Morocco"/>
+	<country code="508" short="MOZ" name="Mozambique"/>
+	<country code="104" short="MMR" name="Myanmar"/>
+	<country code="516" short="NAM" name="Namibia"/>
+	<country code="520" short="NRU" name="Nauru"/>
+	<country code="524" short="NPL" name="Nepal"/>
+	<country code="528" short="NLD" name="Netherlands"/>
+	<country code="530" short="ANT" name="Netherlands Antilles"/>
+	<country code="540" short="NCL" name="New Caledonia"/>
+	<country code="554" short="NZL" name="New Zealand"/>
+	<country code="558" short="NIC" name="Nicaragua"/>
+	<country code="562" short="NER" name="Niger"/>
+	<country code="566" short="NGA" name="Nigeria"/>
+	<country code="570" short="NIU" name="Niue"/>
+	<country code="574" short="NFK" name="Norfolk Island"/>
+	<country code="580" short="MNP" name="Northern Mariana Islands"/>
+	<country code="578" short="NOR" name="Norway"/>
+	<country code="275" short="PSE" name="Occupied Palestinian Territory"/>
+	<country code="512" short="OMN" name="Oman"/>
+	<country code="586" short="PAK" name="Pakistan"/>
+	<country code="585" short="PLW" name="Palau"/>
+	<country code="591" short="PAN" name="Panama"/>
+	<country code="598" short="PNG" name="Papua New Guinea"/>
+	<country code="600" short="PRY" name="Paraguay"/>
+	<country code="604" short="PER" name="Peru"/>
+	<country code="608" short="PHL" name="Philippines"/>
+	<country code="612" short="PCN" name="Pitcairn"/>
+	<country code="616" short="POL" name="Poland"/>
+	<country code="620" short="PRT" name="Portugal"/>
+	<country code="630" short="PRI" name="Puerto Rico"/>
+	<country code="634" short="QAT" name="Qatar"/>
+	<country code="410" short="KOR" name="Republic of Korea"/>
+	<country code="498" short="MDA" name="Republic of Moldova"/>
+	<country code="638" short="REU" name="Réunion"/>
+	<country code="642" short="ROU" name="Romania"/>
+	<country code="643" short="RUS" name="Russian Federation"/>
+	<country code="646" short="RWA" name="Rwanda"/>
+	<country code="654" short="SHN" name="Saint Helena"/>
+	<country code="659" short="KNA" name="Saint Kitts and Nevis"/>
+	<country code="662" short="LCA" name="Saint Lucia"/>
+	<country code="666" short="SPM" name="Saint Pierre and Miquelon"/>
+	<country code="670" short="VCT" name="Saint Vincent and the Grenadines"/>
+	<country code="882" short="WSM" name="Samoa"/>
+	<country code="674" short="SMR" name="San Marino"/>
+	<country code="678" short="STP" name="Sao Tome and Principe"/>
+	<country code="682" short="SAU" name="Saudi Arabia"/>
+	<country code="686" short="SEN" name="Senegal"/>
+	<country code="688" short="SRB" name="Serbia"/>
+	<country code="690" short="SYC" name="Seychelles"/>
+	<country code="694" short="SLE" name="Sierra Leone"/>
+	<country code="702" short="SGP" name="Singapore"/>
+	<country code="703" short="SVK" name="Slovakia"/>
+	<country code="705" short="SVN" name="Slovenia"/>
+	<country code="090" short="SLB" name="Solomon Islands"/>
+	<country code="706" short="SOM" name="Somalia"/>
+	<country code="710" short="ZAF" name="South Africa"/>
+	<country code="724" short="ESP" name="Spain"/>
+	<country code="144" short="LKA" name="Sri Lanka"/>
+	<country code="736" short="SDN" name="Sudan"/>
+	<country code="740" short="SUR" name="Suriname"/>
+	<country code="744" short="SJM" name="Svalbard and Jan Mayen Islands"/>
+	<country code="748" short="SWZ" name="Swaziland"/>
+	<country code="752" short="SWE" name="Sweden"/>
+	<country code="756" short="CHE" name="Switzerland"/>
+	<country code="760" short="SYR" name="Syrian Arab Republic"/>
+	<country code="157" short="ROC" name="Taiwan, Republic of China"/>
+	<country code="762" short="TJK" name="Tajikistan"/>
+	<country code="764" short="THA" name="Thailand"/>
+	<country code="807" short="MKD" name="The former Yugoslav Republic of Macedonia"/>
+	<country code="626" short="TLS" name="Timor-Leste"/>
+	<country code="768" short="TGO" name="Togo"/>
+	<country code="772" short="TKL" name="Tokelau"/>
+	<country code="776" short="TON" name="Tonga"/>
+	<country code="780" short="TTO" name="Trinidad and Tobago"/>
+	<country code="788" short="TUN" name="Tunisia"/>
+	<country code="792" short="TUR" name="Turkey"/>
+	<country code="795" short="TKM" name="Turkmenistan"/>
+	<country code="796" short="TCA" name="Turks and Caicos Islands"/>
+	<country code="798" short="TUV" name="Tuvalu"/>
+	<country code="800" short="UGA" name="Uganda"/>
+	<country code="804" short="UKR" name="Ukraine"/>
+	<country code="784" short="ARE" name="United Arab Emirates"/>
+	<country code="826" short="GBR" name="United Kingdom of Great Britain and Northern Ireland"/>
+	<country code="834" short="TZA" name="United Republic of Tanzania"/>
+	<country code="840" short="USA" name="United States of America"/>
+	<country code="850" short="VIR" name="United States Virgin Islands"/>
+	<country code="858" short="URY" name="Uruguay"/>
+	<country code="860" short="UZB" name="Uzbekistan"/>
+	<country code="548" short="VUT" name="Vanuatu"/>
+	<country code="862" short="VEN" name="Venezuela (Bolivarian Republic of)"/>
+	<country code="704" short="VNM" name="Viet Nam"/>
+	<country code="876" short="WLF" name="Wallis and Futuna Islands"/>
+	<country code="732" short="ESH" name="Western Sahara"/>
+	<country code="887" short="YEM" name="Yemen"/>
+	<country code="894" short="ZMB" name="Zambia"/>
+	<country code="716" short="ZWE" name="Zimbabwe"/>
+</countries>
diff --git a/src/main/webapp/languages/countries.xsd b/src/main/webapp/languages/countries.xsd
new file mode 100644
index 0000000..98b3017
--- /dev/null
+++ b/src/main/webapp/languages/countries.xsd
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

+  <xs:element name="countries">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element maxOccurs="unbounded" ref="country"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="country">

+    <xs:complexType>

+      <xs:attribute name="code" use="required" type="xs:integer"/>

+      <xs:attribute name="name" use="required"/>

+      <xs:attribute name="short" use="required"/>

+    </xs:complexType>

+  </xs:element>

+</xs:schema>

diff --git a/src/main/webapp/languages/czech.xml b/src/main/webapp/languages/czech.xml
new file mode 100644
index 0000000..302711c
--- /dev/null
+++ b/src/main/webapp/languages/czech.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Konference</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Schůzka</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Posluchárna</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Nastavení</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Profil</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Administrace</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Stop</value>
+  </string>
+  <string id="8" name="record">
+    <value>Záznam</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>Žádný soubor není dostupný</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Záznam učitele</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Připojení uživatelé:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Start konference</value>
+  </string>
+  <string id="13" name="myname">
+    <value>Mé jméno</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>VideoKonference</value>
+  </string>
+  <string id="15" name="import">
+    <value>Nahrej soubor</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Aktualizuj</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>Můj soubor</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>Nová anketa</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>Nová anketa pro konferenci.</value>
+  </string>
+  <string id="20" name="question">
+    <value>Otázka:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Typ ankety:</value>
+  </string>
+  <string id="22" name="create">
+    <value>Vytvoř</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Info: Všichni připojení uživatelé obdrželi zprávu o nové anketě.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Vytvoř anketu</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Zrušit</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Ano/Ne</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Čísla 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Anketa</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Pro vytvoření otázky musíte být moderátor</value>
+  </string>
+  <string id="30" name="vote">
+    <value>Vaše hlasování bylo uloženo.</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>V této anketě jste již hlasoval.</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Hlasuj !</value>
+  </string>
+  <string id="33" name="answer">
+    <value>Vaše otpověď:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Ano</value>
+  </string>
+  <string id="35" name="no">
+    <value>Ne</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>will wissen:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Výsledek ankety</value>
+  </string>
+  <string id="38" name="question">
+    <value>Otázka:</value>
+  </string>
+  <string id="39" name="results">
+    <value>Výsledek:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Odpověď:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>Nejsou dostupné žádné ankety.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Hlasuj!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Schůzka (max 4 sedění)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Konference (max 50 sedění)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Typ</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Jiné sedění</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Vybráno</value>
+  </string>
+  <string id="48" name="enter">
+    <value>vstup</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>Moderátor opustil schůzku.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Systémové informace</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Vyber zařízení</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Vyber webcam:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Vyber mikrofon:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>ok</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>zruš</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Musíte se znovu připojit.</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Uprav nastavení.</value>
+  </string>
+  <string id="58" name="course">
+    <value>Cesta:</value>
+  </string>
+  <string id="59" name="language">
+    <value>Jazyk:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>ok</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>zruš</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Smaž tabuli</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Chcete aby tabule byla prázdná před přidáním nového obrázku?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>Žádné další dotazy</value>
+  </string>
+  <string id="65" name="no">
+    <value>ne</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Uprav nastavení</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Potvrzovací dotaz před smazáním tabule.</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Informace o uživateli</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Smaž kreslící oblast</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Krok zpět</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Krok vpřed</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Vyber Objekt</value>
+  </string>
+  <string id="73" name="text">
+    <value>Text</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Kreslení</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Kresli čáru</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Kresli podtržení</value>
+  </string>
+  <string id="77" name="rect">
+    <value>čtyřúhelník</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Elipsa</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Šipka</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>smaž vybranou položku</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Použít pro moderování</value>
+  </string>
+  <string id="82" name="apply">
+    <value>použij</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>zruš</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Stát se moderátorem</value>
+  </string>
+  <string id="85" name="close">
+    <value>zavřít</value>
+  </string>
+  <string id="86" name="italic">
+    <value>italic</value>
+  </string>
+  <string id="87" name="bold">
+    <value>tlustě</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>ČEKÁM</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>Uživatel chce použít pro moderování:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>akceptuj</value>
+  </string>
+  <string id="91" name="reject">
+    <value>odmítni</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>zruš</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Odeslat dotaz následujícím uživatelům</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Akceptováno</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Odmítnuto</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Změna moderátora</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Nemůžete moderovat tento kurz!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Moderator:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>Místnost je plná. Omlováme se příjďte jindy.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Elipsa</value>
+  </string>
+  <string id="101" name="close">
+    <value>zavři</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>chyba vstupních dat</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>4 nebo více znaků; záleží na velkých písmenkách!</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>heslo musí mít minimálně 4 znaky</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>Uživatel již existuje</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>Email je již registrován</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>Systémová chyba, kontaktujte správce sítě!</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Přihlášení</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Uživatel:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Heslo:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Jazyk</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Přihlásit</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Registrace:</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Uživatel:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Heslo:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Znovu:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Jméno:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Příjmení:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>Mail:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>Země:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Registrace</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>Zruš</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Nejsi členem?</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>Domů</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Uživatelé</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Skupiny</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Organizace</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Jednací místnost</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>veřejné</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>Organizace</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>vstup</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Uživatelské jméno</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Heslo</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Znovu</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Jméno</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Příjmení</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>Mail</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Datum narození</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Ulice</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>PSČ/Město</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>Stát</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Info o adrese</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Uživatelská data</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>ulož</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Ulož</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>USER-ID</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>Login</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>Jméno</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>Příjmení</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>ukaž další</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>ukaž předchozí</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>smaž záznam</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>zruš</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>smaž</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>nový záznam</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>aktualizuj záznam</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>smaž záznam</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>stav</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>zakázáno</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>povoleno</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>Organizace</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>kalendář</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>zavři</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>ID organizace</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>Název</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>Uživatel</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>Moderator</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>Admin</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>uživatelská úroveň</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>Organizace</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>název</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>přidej organizaci</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>přidej organizaci</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>zruš</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>přidej</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>zruš organizaci</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>uživatel</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>přidej uživatele</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>zruš uživatele</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>přidej uživatele</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>hledej uživatele</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>hledej</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>uživatel</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>Organizace</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>vstup</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Konferenční místnost</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Konferenční místnost</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>id</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Jméno</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>veřejné</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>Organizace</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Zasedací místnost</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>Název</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>Typ</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>Veřejné</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>Komentář</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>ulož a exportuj</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>nahrej</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>ulož jako</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>Název souboru</value>
+  </string>
+  <string id="201" name="files">
+    <value>název souboru</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>zruš</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>ulož</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>Chyba</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>nahrávám</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>objekt nahrán</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>synchronizace klientů; čekající klienti:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Nahrávám obrázek</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>synchronizace klientů; čekající klienti:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>smaž kreslící oblast</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>smaž kreslící oblast, všechna data z tabule budou ztracena</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Potvrzení před nahrátím souboru</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Zaslat pozvání</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Zaslat pozvání</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Předmět</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Příjemce</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Zpráva</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Odeslat</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>zruš</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>odeslat</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Uživatelská data</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>Vaše přezdívka v této konferenci</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>Přezdívka</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>Jméno</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>Příjmení</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>Email</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>Jazyk</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>vstup</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Nahrávám</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Data se nahrávají, čekejte prosím</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Špatné heslo</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Zadejte prosím stejné heslo minimálně se 6 znaky</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Špatný mail</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Zadali jste špatnou emailovou adresu</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>Registrace je kompletní</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Váš uživatelský účet byl vytvořen. Můžete se přihlásit.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>Nyní nemůžete sdílet obrazovku. Někdo jiný již sdílí svou obrazovku.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Sdílení zakázáno</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Sdílej svou obrazovku</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Špatná šířka pásma: Nemůžete synchronizovat svou obrazovku. Snímek byl zahozen. Pokud se toto varování objeví, domluvte se s moderátorem na snížení kvality přenosu obrazovky.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Obrazovka vypnuta:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Kreslení</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Dokument</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Pokec</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Soubory</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Členové</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Nahrej originální dokument</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>Nahrej PDF dokument</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Nahrej prezentaci na tabuli</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Konfigurace</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Přesun objektu</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Změna velikosti objektu</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>z</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>První strana</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>Předchozí strana</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>Další strana</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>Poslední strana</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Zmenši --</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Zvětši ++</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Pan</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Paní/slečna</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Konfigurace</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Klíč</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Konfigurace</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Klíč</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>poslední aktualizace</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>aktualizoval</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>komentář</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>Hodnota</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>z</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Uživatelé</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>smaž uživatele z organizace</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>smaž</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>Tentu uživatel již je členem organizace.</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>Zprávy</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Rychlá navigace</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Schůzky</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Posluchárna</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Nápověda a podpora</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Nahlášení chyb!</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>více</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Stránky projektu</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>Archiv uživatelské korespondence</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Zapamatuj si přihlášení</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Obsah</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>Má domovská stránka</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>Mé plánované schůzky</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>Mé plánované přednášky</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Veřejné schůzky</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Soukromé schůzky</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Veřejné přednáška</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Soukromé přednáška</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Veřejný obsah</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Soukromý obsah</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Uživatelský obsah</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Moderace</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Požadavek na moderaci</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Ankety</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Vyber soubor</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Nastavení</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Nastavení kamery a mikrofonu</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Nastavení tabule</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Odchod</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Zpět do výběru místností</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Odhlásit</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Zapměli jste heslo?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Reset hesla</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>Mailem</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Přihlášením</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>Váš email</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Vaše uživatelské jméno</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Odeslán mail s odkazem na reset hesla</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>Emailová adresa nenalezena. Použíjte stejnou adresu jako při zakládání uživatelského účtu.</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Zadejte prosím mail, nebo uživatelské jméno</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>Takový uživatelský účet neexistuje</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>Email obsahuje speciální odkaz, skontrolujte Vaši schránku. Pokud jste mail neobdrželi, skontrolujte nastavení antispamového filtru a pošlete mail znovu.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Chyba</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Zpráva</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Špatný Hash. Uživatel nenalezen.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Reset Vašeho hesla</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Login</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>změna hesla</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>nové heslo</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>znovu heslo</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>Hesla nejsou stejná.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>4 nebo více znaků; záleží na velikosti písmen!</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Heslo nastaveno. Můžete se přihlásit.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Neznámá chyba. Nahlaste ji servisnímu týmu.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Uživatelský účet nenalezen</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Špatné heslo</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Byli jste vpořádku odhlášeni</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Registrace uživatelů zakázána.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>Špatný mail</value>
+  </string>
+  <string id="340" name="registration">
+    <value>soubor již existuje, vyberte jiný název souboru</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>název souboru je krátký</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Nemohu uložit adresu</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>Uživatel přidán, ale musíte jej přiřadit k organizaci, jinak se nebude moci přihlásit.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Nový záznam</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>Pole nenalezeno v FieldId.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>Pro toto pole nexistuje název.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Vyžadovány práva administrátora</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Lokalizace</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Jazyk</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>ID pole</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Název pole</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Hodnota</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Hodnoty pole</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>Název pole</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>Hodnota pole</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>ID pole</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>Smazali jste pouze název pole, ne pole! Nemůžete smazat pole, používá se v ostatních jazycích.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>Špatné ID pole. ID pole nenalezeno v databázi.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Nemůžete smazat toto pole. Můžete smazat pouze názvy polí. Není nahrán žádný název pole, protože jste nevybrali žádné pole, nebo není pro toto pole název definován.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>export</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Odhlaste se a pak uvidíte změny.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Přidej nový jazyk</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>smaž jazyk</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Přidej nový jazyk</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Název</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>přidej jazyk</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Záloha</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>jdi na první</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>jdi na předchozí</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>jdi na další</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>jdi na poslední</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>uživatel mluví (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>Vpnout/Zapnout zvuk</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>Systém</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Vaše nastavení</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>Dobrý den,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Uprav svůj profil</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Nové zprávy:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Nahrej nový obrázek</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Export uživatelských dat</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>AVšechny organizace musí existovat!</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>start export</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>Dle organizace</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>start export</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Import uživatelských dat</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>vyber uživatel.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>import</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Export do XML - Tento soubor může být použit pro: - Přispění k projektu - Import do jiného systému - Zálohu - Úpravy - Vložení do adresáře jazyků a použití pro další instalaci</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Vyberte soubor s překladem k importu.Vyberte správný jazyk ve výběru! Nezáleží na názvu souboru!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>import - vyber soubor</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Ulož jako</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Název:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Popis:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>ulož</value>
+  </string>
+  <string id="395" name="record">
+    <value>Záznamy</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Prohlížeč záznamů</value>
+  </string>
+  <string id="397" name="record">
+    <value>Záznamy z veřejných a soukromých místností</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Uživatelé:</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Joined:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Uživatelé v této místnosti:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>aktualizuj</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>Místnost je plná. Zkuste to za pár minut.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>Pro získání detalů klikněte na místnost</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Pokec uživatelů v této místnosti:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Mistnost:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Uživatelé v této místnosti:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>od:</value>
+  </string>
+  <string id="409" name="record">
+    <value>přehrej záznam</value>
+  </string>
+  <string id="410" name="record">
+    <value>Délka:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Datum:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Mód záznamu! Nemůžete měnit žádné hodnoty, toto je pouze záznam!</value>
+  </string>
+  <string id="413" name="record">
+    <value>Přehrej záznam</value>
+  </string>
+  <string id="414" name="record">
+    <value>Přehrej / Pozastav</value>
+  </string>
+  <string id="415" name="record">
+    <value>Začátek záznamu</value>
+  </string>
+  <string id="416" name="record">
+    <value>konec záznamu</value>
+  </string>
+  <string id="417" name="record">
+    <value>Záznam:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>Zde jsou dostupné záznamy:</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Zaznamenáno! Uživatelem:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>zruš</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>Záznam byl ukončen a neuložen.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>opakovat</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Zavřete toto okno a zopakujte nahrávání</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>změna barvy čáry</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Vyber barvu</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Zakaž / Povol změnu barvy čáry</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>změň barvu výplně</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Zakaž / Povol změnu barvy výplně</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Změň tloušťku čáry</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>zavři</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>změň velikost písma</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Smaž nahrávku</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Host</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>Zaznamenal:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Název</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Místnost</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Datum</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>zruš</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>start</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Název</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Datum</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Smaž záznam pokecu na serveru</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Pokec</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>zaslat zprávu</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Emoticons</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Emoticons</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Vyber zveřejněné zařízení</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Zvuk a obraz</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Pouze zvuk</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Pouze obraz</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>Bez zvuku a obrazu (statický obrázek)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>Zvuk a Obraz z Vašeho PC není zveřejněno, bude zobrazen pouze obrázek z Vašeho profilu.Pokud máte problémy zkontrolujte Vaše nastavení, nebo máte velmi pomalé připojení k internetu.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>Po</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>Út</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>St</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>Čt</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>Pá</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>So</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>Ne</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Pondělí</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Úterý</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Středa</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Čtvrtek</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Pátek</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Sobota</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Neděle</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>Týden</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Týdenní kalendář</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>Leden</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>Únor</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>Březen</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>Duben</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>Květen</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>Červen</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>Červenec</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>Srpen</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>Září</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>Říjen</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>Listopad</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>Prosinec</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Kalendář</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Účastníci</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Ukaž nastavení zobrazení</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Šířka | Výška</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Video-okno</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Moderation-okno</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Tabule-okno</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Povoleno</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Šířka | Výška</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Soubory,Pokec,Účastníci - okno</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Povoleno</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Šířka | Výška</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>Moderátor opustil místnost. Není v tento moment přítomen. Můžete se stát moderátorem, nebo čekat.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>V této místnosti není moderátor, ale jsou zde účastníci. Můžete se stát moderátorem, nebo čekat.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Feedback $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Pozvánka</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Zpráva od uživatele:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Zpráva:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Klikněte sem a podílejte se na konferenci:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Klikněte sem pro vstup do místnosti</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>pokud máte problém s tímto odkazem, nakopírujte jej a vložte do prohlížeče:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME Registrace</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Vaše uživatelská data:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Uživatelské jméno:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Heslo:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>EMail:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME-Tým</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME Registrace</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - Reset hesla</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Klikněte na tento odkaz a zadejte nové heslo:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Klkněte sem a zadejte nové heslo</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>pokud máte problém s tímto odkazem, nakopírujte jej a vložte do prohlížeče:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME heslo resetováno</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Zadejte správné datum, například 24.12.2001 (dd.mm.yyyy)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Zadejte správný email, například name@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Zadejte desitinné číslo, například 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Zadejte celé číslo, například 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Zadejte správné tel. číslo, například +49 0123 123123</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Zadejte správný čas, například 12:23 (hh:mm)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Heslo zabezpečeno</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Heslo</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Platnost opakování</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Nekonečně</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Opakovaně</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Jen jednou</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Platí od:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Platí do:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Pozvánka do $APP_NAME</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Pro tento kód pozvánky není žádná pozvánka dostupná</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>Pozvánka byla použita. Tento typ pozvánky nemůže být znovu použit.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>Tento kód pozvánky je špatný.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Heslo:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Zkontrolujte heslo</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Špatné heslo!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Zvuk_Obraz</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Synchronizuji Zvuk/Obraz</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Už. účet v pořádku, ale připojení není aktivní, nebo registrované na serveru. Musíte se znovu přihlásit.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>Sezení není přihlášeno, nebo nemáte administrátorská práva. SOAP brána vyžaduje práva administrátora pro založení uživatele.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>Sezení nemá spojení na vzdálené uživatelské data. Nemůžete přistupovat k SOAP bráně před vstupem do aplikace, nebo používáte špatné ID sezení</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>Záznamy jsou pouze beta verze!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>osa x</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>osa y</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>š</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>šířka</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>v</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>výška</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Změna průhlednosti</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Průzkumník otevřen</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Průzkumník uzavřen</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>Spojení se serverem bylo přerušeno. Musíte znovunahrát aplikaci (zkontrolujte Vaši síť).</value>
+  </string>
+  <string id="557" name="557">
+    <value>Ukazovátko</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Synchronizuji</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Synchronizuji uživatele, čekejte prosím</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Načti jako SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Načti jako PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Načti jako JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Načti jako PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Načti jako TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Připomínka:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Kategorie:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Opakování:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>none</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Umístění:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Začátek</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>Konec</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Titul:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Komentář:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Invite People</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Denně</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Měsíčně</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Ročně</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Schůzka končí pouze pokud schůzka začala!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Zadejte prosím nadpis!</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Aktivujte pouze pokud píšete z prava do leva</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Rychlá navigace</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Záznamy z konferencí</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Schůzka - Vytvořte konference se 4 (max 16) účastníky&lt;br/&gt;všichni mohou používat zvuk a obraz</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Přednáška - Vytvořte konferenci až s 200 účastníky&lt;br/&gt;Pouze moderátor může používat zvuk a obraz</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Tvorba uživatelů, místností, organizací&lt;br/&gt; + změna konfigurace</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Uživatelé v této místnosti teď</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Login</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Nahrávám dokument. Poškejte prosím na synchronizaci všech uživatelů.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Nahráno, konvertuji dokument ...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Odešli</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Vyberte soubor z Vašeho disku.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Zruš</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Vyber soubor</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Připojení</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Hodnota</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Streamid</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Login</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Připojeni poté</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Místnost / Možnosti</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Odpojit uživatele</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Odpojit uživatele</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Opravdu chcete odpojit uživatele?&lt;br/&gt; Toto pouze odpojí uživatele od dané místnosti. Uživatel se může opět přihlásit.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Vaše sezení bylo ukončeno administrátorem, nebo moderátorem.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Telefon</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>Uživatel je moderátor této místnosti</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>Uživatel má povoleno kreslit na tabuli</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Re) Start Zvuk/Obraz, nebo změna nastavení zařízení</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Povolit tomuto uživateli kreslit na tabuli</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Odejmout možnost kreslení na tabuli</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Uživatelé</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Soubory</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Tabule</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Pokec</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Váš uživatelský účet je přiřazen do více organizací. Pro toto sezení vyberte jednu z nich.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>This room is full at the moment. Please try again later.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Room Type</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Appointment Room</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Server Time</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - Reminder</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Message from User:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Message:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Click this link to participate in the Meetings:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Click here to enter room</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>if you have problems with the link, please copy and paste this to your browser:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>search intern</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>extern users</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>pre name</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>name</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>E-mail</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Confirm logout</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Are you sure you want to logout now?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Actions</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Demo Room</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Demo Time</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Meeting Timer</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>This Room is a Demo Room. To disable this warning you either should get a private meeting room for your personal usage or set up an own Server. You will be automatically logged off in:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Moderated</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Please wait untill the Moderator has entered the Room. The Moderator can be either a Teacher, Admin or the creator of this Room.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Ok</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Incoming Screen Sharing</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>There is a new Screen Sharing incoming from the User:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Start Sharing</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Add new Meeting</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Meeting Room</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Event Room</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderation</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Moderate Users</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Moderate Rooms</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Do you want to change this User to become a Moderator of that Organization?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Please choose an Organization before you try to add a User to it!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organization - Moderator</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Do you really want to delete this User from the Organization?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>This User is Moderator</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>This User is No-Moderator</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Do you want this User to be not a Moderator of this Organization?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Add or delete Users or Rooms within your Organization</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Do you really want to delete this record?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Do you really want to delete this user from your organization? You will only delete the connection between the user and your organization, to really delete the user itself you have to login into the Administration-Panel.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>You cannot delete your own User!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>This Method needs a Adminstration Account to be invoked!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>There was no Session associated with this ID.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>This is an Administrator or Moderator account. You can only edit this account through the Administration Panel.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>To complete your registration please click on the following link. Or copy the URL to your browser bar.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Click to verify your E-Mail</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>No user was found for this Hash.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>This user is already activated!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>You did successfully activate your account!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Login Now</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Your account is not activated. First use the link in the Email you've received during registration.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>You successfully signed up. We've send an EMail with a verification Code to your Mail. Please check your Inbox.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Remove Moderation Role from this User</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Grant Moderation Rights to this User</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>User</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Access to whiteboard</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderator</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Moderation: Please choose any User on the List to grant him access to the Whiteboard, Moderation or Video.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>This User is already Moderator, so he has automatically the right to draw.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>This is you! You cannot remove the Moderation rights from yourself.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Allow this User to Publish his Audio / Video</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Remove Audio/Video of this User</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>I would like to get the moderation of this room</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>I would like to draw on whiteboard</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>I would like to share my Audio/Video</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>You are moderator of this room</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>You are allowed to draw on whiteboard</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>You are allowed to share your Audio/Video</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Message to Moderator</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>The User</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>would like to get the Moderation. Use the status Icons next to the user in the List of Users to add or remove the Moderation.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>would like to draw on whiteboard. Use the status Icons next to the user in the List of Users to add or remove the right to draw anything on the whiteboard.</value>
+  </string>
+  <string id="695" name="695">
+    <value>would like to share his Audio/Video. Use the status Icons next to the user in the List of Users to add or remove the right to share Audio/Video for any User.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>You have to wait untill a Moderator enters the room.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Cancel</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Save</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Day</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Month</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Year</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Upload File</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Refresh</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Trash (Drag and Drop item here)</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>My Files (Home Drive)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Room Files (Public Drive)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Add File</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Delete Folder</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Edit Name</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>New Folder</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Are you sure you want to delete this Item?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Open Document</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Show all Files (Tree View)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Close Document</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Delete File</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>You are not allowed to draw anything on the Whiteboard. You have to become Moderator or at least get the Right to edit Whiteboard. You may ask a Moderator to give you that right.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Document Properties</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Start Client (external)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Start Client (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>A user want to share his screen. Do you want to see it?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>You are currently sharing your Desktop. For stopping the Sharing Session please hit the Stop button in the Sharing Client.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Sharing Session</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>You are already sharing your desktop!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Desktop Viewer</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Exit</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Desktop Sharer</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Click Start to publish your screen</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Start Sharing</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Select your screen area:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Change width</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>The Sharer has finished this session!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Change height</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-Offset</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-Offset</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Width:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Height:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Connection was closed by Server</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Cancel</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Start External</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>If you close this session completely you are not able to restart the viewer for this session.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Confirm Closing Viewer Session</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Share Screen</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Record Session</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Co-Browsing</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Ooops, ... Firefox on Windows does not show clear Co-Browsing. Please use another Browser for using the Co-Browsing feature.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Previous</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Next</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Reload</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Home</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Load</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Add this website as Default website to your Profile.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Test Setup</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Check you Microphone and Camera setup before you enter a room by recording some seconds. You can then replay your recording to check your voice and picture.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Don't show this test anymore</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Cancel</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Start Conference</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Do not ask again</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>You may proceed without testing if you do not plan to publish your voice or picture. Participants without Audio or Video can still use the Whiteboard, share their Desktop or write Chat messages.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="test setup">
+    <value>Level-Meter</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Press Start</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Start Event</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Choose Room</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Check Setup</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="774" name="start view">
+    <value>How to conference</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Start Recording</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Do not show Audio / Video Test (Recording) before entering a Conference</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Public Rooms</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Public Rooms are accessible for all Users.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Private Rooms</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Private Rooms are only accessible for users of the same organization.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>My Rooms</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Rooms in this section are created for personal usage. There are some standard rooms plus the ones that are created through the calendar and have a start and an end date. The rooms created via the calendar are only listed in this section as long as they are valid.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>You have to be moderator to do this.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Apply for moderation</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Apply for whiteboard access</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Apply for camera/microphone access</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>This Session Hash was already used. You cannot use it twice.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>START</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>EXIT</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Do you really want to exit? You might should clear uploaded documents, whiteboard and the chat history.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Exit conference</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Rooms</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Choose a room for a meeting</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>There is an unsaved Event in the Calendar. Please either save it or remove it.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Please add at least one attendee for your meeting!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Do you really want to delete this Event?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Warning</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Add Event</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>Day</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>Week</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>Month</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Description</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Attendees</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, your Web Conferencing Platform. Either follow the Instructions, press the start button to start to conference immediatelly or you goto the Calendar and set up a Conference for the future.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Plan a Meeting</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>To set up a conference you can add a new Event in the Calendar.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Need help?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Restricted</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Search</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Add</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>There is no User selected. Please select an item from the list first and then hit add.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Add Attendee</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Save</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Delete</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Event Details</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Default Moderators</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Name</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>E-Mail</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Add new default Moderator</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Is Super Moderator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>If the Room is moderated, User with Level Moderator or Administrator are automatically Moderator if they enter the Room. If you don't want to specify that and only want a certain User to become Moderator use the Default Moderator option.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>A Super Moderator is always a Moderator when he enters a Room, and nobody can remove the Moderation Flag from him</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Apply Super-Moderation to User</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Remove Super Moderation from User</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>If you add an Organization to the room only users of that Organization have access to it (This is only valid if the isPublic flag is set to false!)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderation</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitations</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organization</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Are you sure?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Do you really want to delete this Item? You have to press the save button to store the changes!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>There is no User selected. Please select first before you add it!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Add new Default Moderator</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Do you want to add the Super Moderation Flag for this User? A Super Moderator is not only Moderator of a Room, but also no other Moderator can remove the Moderation Flag for this User. You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Do you want to remove the Super Moderation Flag for this User? You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>This User is a Super-Moderator. You cannot remove the Moderation flag from a Super-Moderator!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Do you really want to delete this File/Folder?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Delete File/Folder?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Mrs.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Properties</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Show mouse position to viewers</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Share Audio with SIP Applet</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Share Audio with SIP and Video with Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Full-Fit</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>View Screen</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>The user</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>wants to share its screen. Do you want to see it?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Close</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>The Session was closed by the sharing User!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>New Screen Sharing</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimize</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximize</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Recording Timeline</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>My Recordings</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Public Recordings</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Name</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Length</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Date</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>By</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>PLAY</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Main - Video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Recording</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>You may record and share your screen at the same time. To enable others to see your screen just hit the start button on the top. To only record the Session it is sufficient to click start recording.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Start Recording</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Stop Recording</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download the FLV-File</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Room</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Play</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>User has microphone on</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Allow User Questions</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Turn this off to prevent that any user is disturbing you in this room. Effect is that the Button to ask for Moderation ("I have a question") is not visible.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rights</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Download as AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Audio only</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>The have been errors while processing the Recording.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>The Recording is not yet ready for watching. Please retry in a couple of minutes again.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Recorder Message</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP Applet is not Ready</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP-Account Settings</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP settings for each user. You can turn on or off SIP via the Administration &gt; Configuration (Key: enable_sip). The SIP data for each user should be created automatically. You can re-create the data by checking "Re-generate SIP Data"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-User</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Pass</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. You should check the authentification data of your SIP-Provider and the SIP-Account Data for each User. As Administrator you are still able to login and check the Configuration. As User or Moderator you will be blocked from any interaction.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. Contact your Service Team!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Show Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log messages from post recorder process</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Applet Message</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>The SIP-Applet is not ready. Accept the Applet please and click ok!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Get Moderation</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Save Appointment Changes</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointement has been changed. Do you want to save those changes? &lt;br/&gt;&lt;br/&gt;All attendees of the appointment will receive a EMail with the updated date and time (depending on the notification type of this appointment).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>To access other recordings you have to login the $APP_NAME Application.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Choose the User for this Video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available Users for this Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>You are a Moderator in this Interview. You can decide who is speaking in this interview and you can start / stop the recording of the Session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Start Recording</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Stop Recording</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>The recording of the Interview is already started.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>The recording is already stopped or not been started yet.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>The recording for this interview is already started!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Clear objects on current slide only!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the Status bar is send to participants!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make Team-Rooms [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new Team-Room!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new Conference Room ("Team Room") for them. The chosen users will automatically switch to the new Team-Room or get a notification. Team-Room Moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a Moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Username</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new Team-Room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create Team-Room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the Team-Room!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from Team-Room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Roomtype</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the System. The Backup includes all User generated data. The configuration is not included as well as the language labels. Because those values are imported with the System Installer. To update your System, export your old system (1) re-install into a new database the new package (2) and import the Backup file again (3). The Backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share Screen/Record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is Moderator, he can do anything!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/Deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose "Insert" from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about Copy and Paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Kick user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/danish.xml b/src/main/webapp/languages/danish.xml
new file mode 100644
index 0000000..8ffb0c9
--- /dev/null
+++ b/src/main/webapp/languages/danish.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Konference</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Møde</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Auditorium</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Indstillinger</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Profil</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Administration</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Stop</value>
+  </string>
+  <string id="8" name="record">
+    <value>Optag</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>Ingen fil tilgængelig</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Indspillet af lærer/instruktør</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Tilsluttede brugere:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Start en konference</value>
+  </string>
+  <string id="13" name="myname">
+    <value>Mit navn</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>Videokonference</value>
+  </string>
+  <string id="15" name="import">
+    <value>Importer præsentation</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Opdater liste</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>Til hovedfil</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>Ny afstemning</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>En ny afstemning før konferencen</value>
+  </string>
+  <string id="20" name="question">
+    <value>Spørgsmål:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Afstemningstype:</value>
+  </string>
+  <string id="22" name="create">
+    <value>Opret</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>INFO: Alle tilsluttede brugere får tilsendt en meddelelse med den nye afstemning.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Opret afstemning</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Annuller</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Ja/Nej</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Numerisk 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Stem</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Du skal vare moderator for at kunne oprette en afstemning</value>
+  </string>
+  <string id="30" name="vote">
+    <value>Din afstemning er accepteret</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Du har allerede stemt i denne afstemning.</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Stem!</value>
+  </string>
+  <string id="33" name="answer">
+    <value>Dit svar:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Ja</value>
+  </string>
+  <string id="35" name="no">
+    <value>Nej</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>Vil vide:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Afstemningsresultat</value>
+  </string>
+  <string id="38" name="question">
+    <value>Spørg:</value>
+  </string>
+  <string id="39" name="results">
+    <value>Resultat:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Svar:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>Ingen nye afsteminger er startet.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Stem!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Møde (max 4 pladser)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Konference (max 50 pladser)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Type</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Andre pladser</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Allerede valgt</value>
+  </string>
+  <string id="48" name="enter">
+    <value>Kom ind</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>Moderatoren har forladt mødet.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Systeminformation</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Vælg setup</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Vælg webcam:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Vælg mikrofon:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>ok</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>Afbryd</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Tilslut igen.</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Ændre setup.</value>
+  </string>
+  <string id="58" name="course">
+    <value>Kursus:</value>
+  </string>
+  <string id="59" name="language">
+    <value>Sprog:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>Ok</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>Afbryd</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Rens skrivebordet</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Ønsker du at skrivebordet skal renses inden du uploader til et nyt billede?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>Spørg ikke igen</value>
+  </string>
+  <string id="65" name="no">
+    <value>Nej</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Ændre setup</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Spørg inden skrivebordet tømmes?.</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Brugerinfo</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Rens tegneområdet</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Fortryd</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Klar</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Vælg et objekt</value>
+  </string>
+  <string id="73" name="text">
+    <value>Tekst</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Mal/tegn</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Tegn linie</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Tegn understregning</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Rektangel</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Ellipse</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Pil</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>Slet valgt objekt</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Læg til før moderation</value>
+  </string>
+  <string id="82" name="apply">
+    <value>Læg til</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>Afbryd</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Bliv moderator</value>
+  </string>
+  <string id="85" name="close">
+    <value>Luk</value>
+  </string>
+  <string id="86" name="italic">
+    <value>italic</value>
+  </string>
+  <string id="87" name="bold">
+    <value>fed</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>VENTER</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>En bruger venter på at blive moderator:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>Accepter</value>
+  </string>
+  <string id="91" name="reject">
+    <value>Afvis</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>Annuller</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Send spørgsmål til følgende brugere</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Accepteret</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Afvist</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Ændre moderator</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Du er ikke moderator på dette kursus!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Moderator:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>Rummet er optaget. Prøv igen senere.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Ellipse</value>
+  </string>
+  <string id="101" name="close">
+    <value>Luk</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>Forkerte data angivet</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>Brugernavnet skal indeholde mindst 4 tegn</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>Adgangskoden skal indeholde mindst 4 tegn</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>Brugernavnet anvendes i forvejen</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>Emailadressen anvendes i forvejen</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>Systemfejl, kontakt systemadministrator</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Login</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Brugernavn:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Adgangskode:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Sprog</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Login</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Registrering</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Brugernavn:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Adgangskode:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Adgangskode igen:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Fornavn:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Efternavn:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>Email:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>Land:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Registrer</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>Annuller</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Registrer</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>Forside</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Brugere</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Grupper</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Organisationer</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Konferencerum</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>Offentlig</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>Organisation</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>Log ind</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Login</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Adgangskode</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Adgangskode igen</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Fornavn</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Efternavn</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>Email</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Fødselsdato</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Vej/nr</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>Postnr./By</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>Land</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Adresse-Info</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Brugerdata</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>Gem</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Gem</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>Bruger-ID</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>Login</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>Fornavn</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>Efternavn</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>Vis næste</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>Vis forrige</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>Slet indhold</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>Annuller</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>Slet</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>Nyt indhold</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>Opdater indhold</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>Slet indhold</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>Status</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>Ikke tilgængelig</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>Tilgængelig</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>Organisation</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>Kalender</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>Luk</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>Organisation-ID</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>Navn</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>Bruger</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>Moderator</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>Admin</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>Brugerniveau</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>Organisation</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>Navn</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>Gem til organisation</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>Gem til organisation</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>Annuller</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>Gem</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>Fjern organisation</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>Brugere</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>Gem til brugere</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>Slet brugere</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>Gem til brugere</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>Søg brugere</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>søg</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>Brugere</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>Organisation</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>Log ind</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Konferencerum</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Konferencerum</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>Id</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Navn</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>Offentlig</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>Organisationer</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Konferencerum</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>Navn</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>Type</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>Offentlig</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>Kommentar</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>Gem og eksport</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>Upload</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>Gem som</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>Filnavn</value>
+  </string>
+  <string id="201" name="files">
+    <value>Filnavn</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>Annuller</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>Gem</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>Fejl</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>Gemmer</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>Objekter indlæst</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>Synkroniserer, vent:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Indlæser billeddata</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>Synkroniserer, vent:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>Rens tegneområde</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>Rens tegneområde, alle data mistes</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Spørg inden indlæsning af fil</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Send invitation</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Send invitation</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Emne</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Modtagere</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Meddelelser</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Send</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>Annuller</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>Send</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Brugerdata</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>Dit alias i denne konference</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>Alias</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>Fornavn</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>Efternavn</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>Email</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>Sprog</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>Log ind</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Indlæser</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Indlæser data, vent!</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Forkert adgangskode</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>2 identiske adgangskoder med mindst 4 tegn, tak!</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Forkert emailadresse</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Du har angivet en forkert emailadresse</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>Registrering er fuldført</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Din konto er oprettet. Du kan nu logge ind.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>Du kan ikke dele din skærm lige nu. En anden bruger funktionen lige nu.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Deling forbudt</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Del din skærm</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Ringe båndbredde: Du kan ikke synkronisere din skærm. Frames bliver droppet. Hvis denne advarsel vises ofte kan du bede moderatoren om at sænke kvaliteten.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Skærm af:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Male/tegne</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Dokument</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Chat</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Filer</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Medlemmer</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Download originalt dokument</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>Download PDF-dokument</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Indlæs præsentationen til whiteboard</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Konfiguration</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Træk dette objekt</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Ændre størrelse på dette objekt</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>af</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>Gå til første side</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>Gå til foregående side</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>Gå til næste side</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>Gå til sidste side</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Zoom --</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Zoom ++</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Hr.</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Fr.</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Konfiguration</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Nøgle</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Konfiguration</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Nøgle</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>sidste opdatering</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>opdateret af</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>kommentar</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>nøgle</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>af</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Brugere</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>slet brugere fra organisationen</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>slet</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>Denne bruger er allerede medlem af organisationen.</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>Nyheder</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Hurtige genveje</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Gå til Konference</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Gå til Auditorium</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Hjælp og support</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Anmeld bugs</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>mere</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Projekt Webside (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>Bruger mailliste (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Husk dit login</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Indhold</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>Min forside</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>Mine skemalagte møder</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>Mine planlagte Auditorier</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Offentlige møder</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Private møder</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Offentlige Auditorier</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Private Auditorier</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Offentligt indhold</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Privat indhold</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Personligt indhold</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Moderering</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Anmod om moderering</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Afstemning</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Vælg en fil</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Indstillinger</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Cam. &amp; Mik. Indstil.</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Whiteboard Indstillinger</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Afslut</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Forlad rummet</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Log af</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Glemt din adgangskode?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Nulstil adgangskode</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>Via email</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Via brugernavn</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>Din emailadresse</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Dit brugernavn</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Send email med aktiveringslink</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>Brugere</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Indsæt venligst emailadresse eller brugernavn</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>Ingen bruger er forbundet med dette brugernavn</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>Emailen med det specielle link er blevet sendt til din emailadresse. Kontroller venligst din indbakke. Hvis du ikke har modtaget en email, bedes du kontrollere dint SPAM-filter og genfremsende emailen fra systemet.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Fejl</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Meddelelse</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Forkert HASH. Ingen bruger fundet.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Nulstil din adgangskode</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Login</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>Ændre adgangskode</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>Ny adgangskode</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>Adgangskode igen</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>Adgangskoderne du har angivet er ikke identiske.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>4 tegn eller mere; forskel på små og store bogstaver!</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Adgangskode valgt. Du kan logge ind nu.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Ukendt fejl. Rapporter venligst til dine support muligheder.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Brugernavnet blev ikke fundet.</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Ugyldig adgangskode.</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Du er nu logget ud.</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Registrering via loginside (frontend) er inaktiveret.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>Ugyldig emailadresse.</value>
+  </string>
+  <string id="340" name="registration">
+    <value>Filnavnet eksisterer i forvejen. Vælg venligst et andet filnavn.</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>Filnavnet er for kort.</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Kunne ikke gemme adressen.</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>Bruger oprettet, men skal tildeles til en organisation for at kunne logge ind.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Nyt felt</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>Der er ikke fundet et felt med dette feltID.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>Der er ikke fundet en etiket til dette felt.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Admin autorisation er krævet.</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Sprogeditor</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Sprog</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>Etiket-ID</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Etiket-Navn</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Værdi</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Feltværdi</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>EtiketNavn</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>EtiketVærdi</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>Etiket-ID</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>Du slettede kun etiketten, IKKE Feltet! Du kan ikke slettet feltet, det indeholder måske etiketter på andre sprog.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>Ugyldig Etiket-ID. FieldLanguagesvalues_Id kan ikke findes i databasen.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Du kan ikke slette dette felt. Du kan kun slette etiketter, IKKE Felt. I øjeblikket er der ikke indlæst etiketter, dette kan skyldes, at ingen etiket er valgt eller defineret for dette felt og sproget.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>Eksporter</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Du skal logge ud for at kunne se ændringer.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Tilføj nyt sprog</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>Fjern sprog</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Tilføj nyt sprog</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Navn</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>Tilføj sprog</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Sikkerhedskopier</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>Gå til første</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>Gå til foregående</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>Gå til næste</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>Gå til sidste</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>Bruger taler (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>LYD til/fra</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>System</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Dine indstillinger</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>Hej,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Rediger profil</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Nye meddelelser:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Indlæs nyt billede</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Brugerdata - Exporter</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>Alla organisationer skal eksistere i forvejen!</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>Start eksporteringen</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>Ifølge organisation</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>Start eksporteringen</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Brugerdata - Importer</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>Vælg users.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>Importer</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Eksporter til XML - Disse filer kan bruges til: - Bidrage til projektet - Importere til et andet system - Lave sikkerhedskopier - Skræddersy programmet - Lægge i language-mappen for kommende installationer</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Vælg en sprogfil du vil importere. Husk at vælge den rigtige sprogfil fra combokoksen! Sprog filen vil blive importeret til dette sprog uafhængigt af navnet på filen.</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>Importer - vælg fil</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Gem som</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Navn:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Kommentar:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>Gem</value>
+  </string>
+  <string id="395" name="record">
+    <value>Optagelser</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Optagelser/fremviser</value>
+  </string>
+  <string id="397" name="record">
+    <value>Optagelser fra offentlige og private rum</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Brugere:</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Tlsluttede:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Brugere i dette rum:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>Opdater</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>Dette rum er optaget. Forsøg igen om nogle få minutter.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>Klik på et rum for at få flere detaljer</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Chat med brugere i dette rum:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Rum:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Brugere i dette rum:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>Siden:</value>
+  </string>
+  <string id="409" name="record">
+    <value>Afspil optagelse</value>
+  </string>
+  <string id="410" name="record">
+    <value>Længde:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Dato:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Optagelsestilstand! Du kan ikke ændre nogen værdier. Dette er en indspillet fil!</value>
+  </string>
+  <string id="413" name="record">
+    <value>Afspil denne optagelse</value>
+  </string>
+  <string id="414" name="record">
+    <value>Afspil / Pause</value>
+  </string>
+  <string id="415" name="record">
+    <value>Påbegynd optagelse</value>
+  </string>
+  <string id="416" name="record">
+    <value>Stop optagelse</value>
+  </string>
+  <string id="417" name="record">
+    <value>Optagelse:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>Der er allerede nogen der optager i øjeblikket:</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Optagelse! Af bruger:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>Annuller</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>Optagelsen vil blive afbrudt og gemmes ikke.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>Genoptag</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Luk dette vindue og genoptag optagelsen</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>Ændre linjefarve</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Vælg farve</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Inaktiver / aktiver linjefarve</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>Ændre fyldfarve</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Inaktiver / aktiver fyldfarve</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Ændre linjebredde</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>Luk</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>Ændre font størrelse</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Slet optagelse</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Gæst</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>Af:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Navn</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Rum</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Dato</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>Annuller</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>Start</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Navn</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Dato</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Slet serverens Chat-log</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Chat</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>Send meddelelse</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Emotikoner</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Emotikoner</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Vælg enheder</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Lyd og video</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Kun lyd</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Kun video</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>Ingen lyd/video (statisk billede)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>Ingen Lyd/Video vil blive publiceret. I stedet vil et billede fra din profil blive vist. Vælg denne indstilling, hvis du har en dårlig båndbredde.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>MA</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>TI</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>ON</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>TO</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>FR</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>LØ</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>SØ</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Mandag</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Tirsdag</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Onsdag</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Torsdag</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Fredag</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Lørdag</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Søndag</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>KU</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Kalender uge</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>Januar</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>Februar</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>Marts</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>April</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>Maj</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>Juni</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>Juli</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>August</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>September</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>Oktober</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>November</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>December</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Kalender</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Deltagere</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Vis Layout indstillinger</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Bredde | Højde</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Video-container</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Moderator-container</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Whiteboard-container</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Aktiveret</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Bredde | Højde</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Filer, Chat, Deltagere - container</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Aktiveret</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Bredde | Højde</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>Moderatoren har forladt rummet. I øjeblikket er der ikke nogen som præsenterer noget. Du kan ansøge om at blive moderator eller vente.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>Der er ikke nogen moderator i dette rum, men der er nogen deltagere. Du kan ansøge om at blive moderator eller vente.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Feedback $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Invitation</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Meddelelse fra bruger:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Meddelelse:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Klik på dette link for at deltage i mødet:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Klik her for at gå til rummet.</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>Hvis du har problemer med at åbne genvejen (link), bedes du kopiere genvejen og indsætte denne i din webbrowser:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME registrering</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Dine brugerdata:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Login:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Adgangskode:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>Email:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME - Teamet</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME registrering</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - Nulstil adgangskode</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Klik på den her genvej (link) for at indsætte ny adgangskode:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Klik her for at angive ny adgangskode</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>Hvis du har problemer med at åbne genvejen (link), bedes du kopiere genvejen og indsætte denne i din webbrowser:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME nulstilling af adgangskode</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Angiv venligst en gyldig dato, f.eks. 24.12.2009 (dd.mm.åååå)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Angiv venligst en gyldig emailadresse, f.eks navn@mail.dk</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Angiv venligst et gyldigt flydende nummer, f.eks. 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Angiv venligst et gyldigt nummer (Integer), f.eks. 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Angiv venligst et gyldigt telefonnummer, f.eks. +45 39151515</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Angiv venligst en gyldig tid, f.eks. 12:23 (tt:mm)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Adgangskodebeskyttet</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Adgangskode</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Gyldighedsstid</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Uendelig</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Periode</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Engangs</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Gyldig fra og med:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Gyldig til:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Invitation til $APP_NAME</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Ingen invitation tilgængelig med denne invitationskode.</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>Invitationen anvendes allerede. Den her type invitationer kan ikke genanvendes.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>Invitationskoden er ikke gyldig udenfor mødets start og slut tidspunkt. Kontroller venligst tidspunktet i den tilsendte mødeindkaldelse (email)</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Adgangskode:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Kontroller Adgangskode</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Ugyldig adgangskode!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Webbrowser</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Synkroniser lyd/video</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Indlogningen var korrekt, men sessionen er ikke længere aktiv eller lagret på serveren. Prøv at logge ind igen efter du har fået et nyt SessionId.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>SessionId er ikke logget ind eller har ikke nogen administrationsrettigheder. SOAP Gateway kræver en bruger med administrationsrettigheder for at tilkoble nye brugere.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>Den her session er ikke koplet til nogen Remoteuser-Data. Enten blev den såkaldte SOAP-Gateway ikke indlæst før applikationen blev kørt eller der er anvendt et fejlagtigt Session-ID.</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>Optageren er fortsat i Beta-stadie!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>x-aksel</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>y-aksel</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>b</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>bredde</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>h</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>højde</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Ændre gennemsigtghed (transparent)</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Åben browseren</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Luk browseren</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>Forbindelsen til serveren er er gået tabt. Du skal indlæse applikationen igen eller/og kontrollere din netværksforbindelse.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Peger</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Synkroniserer</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Synkroniserer brugere, vent venligst</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Dovnload som SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Download som PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Download som JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Download som PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Download som TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Påmindelse:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Kategori:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Repetition:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>ingen</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Placering:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Start</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>Slut</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Titel:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Kommentar:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Inviter deltagere</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Daglig</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Måndelig</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Årlig</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Mødets sluttidspunkt skal være efter dets begyndelse!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Tilføj en titel, tak!</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Aktiver det her hvis du skriver på et højre til venstre sprog</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Skrivebord (Forside)</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Se optagelser fra møder og auditorier</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Møde - Opret en konference med 4 (op til 16) deltagere &lt;br&gt; alle vil have tilgang til lyd + video.</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Auditorium - Opret en konference med op til 200 deltagare&lt;br/&gt;Her er det kun moderatoren som har tilgang til lyd + video.</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Opret brugere, rum, organisationer&lt;br/&gt; + ændre konfigurationer</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Brugere i dette rum lige nu</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Login</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Indlæser dokument. Vent venligst til alle klienter er synkroniserede.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Indlæsning færdig, konverterer dokument...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Start indlæsning</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Dialog indlæsning og importering. Vælg venligst en fil fra din harddisk.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Annuller</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Vælg fil</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Forbindelser</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Værdi</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Streamid</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Login</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Tilsluttet siden</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Rum</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Udeluk bruger</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Udeluk brugere</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Vil du virkelig udelukke denne klient?&lt;br/&gt; Det her udelukker kun klienten fra det aktuelle rum. Vedkommende kan tilslutte sig igen.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Din session er blevet lukket af administratoren eller moderatoren.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Telefon</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>Brugeren er moderator i dette rum</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>Brugeren har tilladelse til at tegne på whiteboardet</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>Genstart lyd/video eller ændre indstillinger</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Tillad denne bruger at tegne på whiteboardet</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Fjern muligheden for at tegne på whiteboardet</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Brugere</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Filer</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Whiteboard</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Chat</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Din konto er tildelt til flere organisationer. Vælg venligst en til denne session.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>Dette rum er optaget i øjeblikket. Forsøg venligst igen senere.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Rumtyper</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Tidsbooket rum</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Servertid</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - Påmindelse</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Meddelelse fra bruger:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Meddelelse:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Klik på denne genvej (link) for at deltage i mødet:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Klik her for at gå ind i rummet</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>Hvis du har problemer med genvejen, bedes du kopiere denne genvej i stedet og indsætte i din webbrowser:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>Søg internt</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>eksterne brugere</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>fornavn</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>navn</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>email</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Bekræft at du logger af</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Er du sikker på at du vil logge af?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Aktioner</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Demo Rum</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Demo Tid</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Mødetimer</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>Dette rum er et demo rum. For at fjerne denne advarsel, skal du enten oprette et privat møderum eller sætte et op på din egen server. Du bliver automatisk loget ud om:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Modereret</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Vent venligst indtil moderatoren har tilsluttet sig rummet. Moderatoren kan enten være en lærer, instruktør, administrator eller den bruger som har oprettet rummet.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Ok</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Indkommende skærmdeling</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>En ny skærmdeling vil blive påbegyndt af brugeren:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Start deling</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Tilføj et nyt møde</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Møderum</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Auditorium</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderering</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Moderer brugere</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Moderer rum</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Vil du ændre denne bruger til at være moderator af denne organisation?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Vælg venligst en organisation før du forsøger at tilføje en bruger til den!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organisation - Moderator</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Vil du virkelig fjerne denne bruger fra organisationen?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>Denne bruger er moderator</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>Denne bruger er ikke moderator</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Vil du fjerne denne bruger som moderator fra organisationen?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Tilføj eller fjern brugere eller rum i din organisation</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Vil du virkelig fjerne denne?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Vil du virkelig fjerne denne bruger fra organisationen? Du vil kun fjerne tilslutningen mellem brugeren og organisationen. For at fjerne brugeren helt, skal du logge ind i administrationspanelet.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>Du kan ikke fjerne din egen bruger!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>Denne funktion/metode kræver en administrationskonto for at kunne kaldes!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>Der findes ingen session associeret med dette ID.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>Dette er en administrations- eller moderatorkonto. Du kan kun ændre denne konto via administrationspanelet.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>Klik venligst på flg. link eller kopier adressen til din webbrowsers adressefelt for at fuldføre registreringen.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Klik her for at verificere din emailadresse.</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Ingen brugere fundet med denne Hash-kode.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Denne bruger er allerede aktiveret!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Du har aktiveret din konto!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Log ind nu</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Din konto er ikke aktiveret. Anvend genvejen (link) i den email du modtog, da du registrerede dig.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>Du har nu registreret dig til systemet. Du har fået tilsendt en email med din verificeringskode. Kontroller venligst din indbakke.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Fjern denne bruger som moderator</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Tildel moderator rettigheder til denne bruger</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>Brugere</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Adgang til whiteboard</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderator</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Moderation: Vælg venligst en bruger fra listen for at give vedkommende adgang til whiteboard, moderation eller video.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>Denne bruger er allerede moderator, så han har automatiskt ret til at tegne.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>Dette er dig! Du kan ikke fjerne moderator rettighederne fra dig selv.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Tillad denne bruger at publicere lyd/video</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Fjern lyd/video fra denne bruger</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>Jeg vil være moderator for dette rum</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>Jeg vil tegne på whiteboardet</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>Jeg vil dele lyd/video</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>Du er moderator for dette rum</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>Du har tilladelse til at tegne på whiteboardet</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>Du har tilladelse til at publicere audio/video</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Meddelelse til moderatoren</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>Brugeren</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>vil have moderator rettigheder. Brug status ikonerne i brugerlisten for at tildele eller fjerne moderator rettigheder.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>vil tegne på whiteboardet. Brug status ikonerne i brugerlisten for at tildele eller fjerne rettigheder til at tegne på whiteboardet.</value>
+  </string>
+  <string id="695" name="695">
+    <value>vil publicere lyd/video. Brug status ikonerne i brugerlisten for at tildele eller fjerne rettigheder til publicering af lyd/video.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>Du skal vente til en moderator er trådt ind i rummet.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Annuller</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Gem</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Dag</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Måned</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>År</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Indlæs fil</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Tilføj mappe</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Opdater</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Papirkurv</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>Mine filer (Privat drev)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Rum filer (Offentligt drev)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Tilføj fil</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Tilføj mappe</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Slet mappe</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Ret navn</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>Ny mappe</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Er du sikker på at du vil slette dette emne?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Søg</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Søg</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Åben dokument</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Vis alle filer (Træstruktur)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Luk dokument</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Slet fil</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>Du har ikke tilladelse til at tegne på whiteboardet. Du skal være moderator eller som min. have rettigheder til at redigere Wwhiteboardet. Du må spørge moderatoren om han vil give dig rettigheder.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Dokument egenskaber</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Start klient (ekstern)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Start klient (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>En bruger vil dele sin skærm. Vil du se vedkommendes skærm?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>Du deler din skærm i øjeblikket. For at stoppe denne funktion (session) skal du klikke på stop knappen i klient programmet til deling af skærm.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>deling af skærm session</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>Du deler allerede din skærm!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Fremviser til deling af skærm</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Luk</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Fremviser til deling af skærm</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Klik på start for at dele din skærm</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Start deling af skærm</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Stop deling af skærm</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Vælg skærm område:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Ændre bredde</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>Deling af skærm sessionen er afsluttet!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Ændre højde</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-Offset</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-Offset</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Bredde:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Højde:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Forbindelsen blev lukket af serveren</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Annuller</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Start ekstern</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>Hvis du lukker denne session helt vil du ikke være i stand til at genstarte fremviseren for denne session.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Bekræft lukning af fremviser sessionen.</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Del skærm</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Optag session</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Co-Browsing</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Ups, ... Firefox på Windows viser ikke Co-Browsing så godt. Brug venligst en anden browser for at bruge denne mulighed.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Forrige</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Næste</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Indlæs igen</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Hjem</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Indlæs</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Tilføj denne hjemmeside som standard hjemmeside i tilknytning til din profil.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Test indstillinger</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Kontroller mikrofon og kameraindstillinger inden du går ind i et rum ved at optage i et par sek. Du kan efterflg. se din optagelse for at kontrollere din lyd samt dit kamerabillede.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Vis ikke denne test igen</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Annuller</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Start konference</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Spørg ikke igen</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>OPTAG</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>AFSPIL</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>Du kan fortsætte uden at teste, hvis du ikke planlægger at publicere lyd og billede. Deltagere uden lyd og video kan stadig bruge whiteboard, dele skærm eller skrive chat meddelelser.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="767">
+    <value>Niveau (visning)</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Klik på start</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Start konference</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Start event</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Vælg rum</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Kontroller Setup</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Start konference</value>
+  </string>
+  <string id="774" name="start view">
+    <value>Sådan gør du:</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Start optagelse</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Vis ikke Audio / Video Test (optagelse) før du deltager i en konference</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Offentlige Rum</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Offentlige Rum er tilgængelige for alle brugere.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Private Rum</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Private Rum er kun tilgængelige for brugere i samme organisation.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>Mine rum</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Rum i dette afsnit er oprettet til privat brug. De er oprettet via kalenderen og har en start og slut dato. De vises kun i dette afsnit mens de er aktive (gyldige).</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>Du skal være moderator for at kunne gøre dette.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Ansøg om moderation</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Ansøg om whiteboard adgang</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Ansøg om kamera/mikrofon adgang</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>Denne sessions Hash-kode er allerede brugt. Du kan ikke bruge den 2 gange.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>START</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>LUK</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Vil du virkelg lukke? Du skal måske slette indlæste dokumenter, whiteboard og chat historie først.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Luk konference</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Rum</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Vælg rum til et møde</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>Der er en event i kalenderen som ikke er gemt. Gem den først eller fjern den.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Tilføj venligst min. 1 deltager til dit møde!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Vil du virkelig slette denne event?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Advarsel</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Tilføj event</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>dag</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>uge</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>måned</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Beskrivelse</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Deltagere</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME konferenceplatform. Klik på startknappen for at starte en konference med det samme eller gå til din kalender for at planlægge et møde.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Planlæg et møde</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>For at sætte en konference op, kan du tilføje en event i din kalender. For hver event der oprettes, vil der automatisk blive oprettet et konferencerum. Alle deltagere samt dig selv, vil få tilsendt en email med en genvej (link) til det pågældende konferencerum.&lt;br/&gt;&lt;br/&gt;Du kan vælge mellem forskellige rumtyper med forskellig layout og funktionalitet. Du kan også vælge mellem forskellige notificeringsmuligheder (email), som sendes for hver kalender event.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Behov for hjælp?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Begrænset</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Søg</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Tilføj</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>Ingen bruger valgt. Vælg venligst et emne fra listen først og klik på tilføj efterfølgende.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Tilføj deltager</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Gem</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Slet</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Event detaljer</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Default moderatorer</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Navn</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>Email</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Tilføj ny default moderator</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Er Super moderator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>Hvis rummet er modereret, vil brugere med moderator eller administrator niveau automatisk blive moderator hvis de går ind i rummet. Såfremt du ikke vil angive dette og kun vil lade en bestemt bruger blive moderator, skal du anvende default moderator valgmuligheden.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>En Super moderator er altid moderator, når vedkommende går ind i et rum og ingen kan fjerne moderator flaget fra vedkommende.</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Tildel Super moderator funk. til en bruger</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Fjern Super moderator funk. fra en bruger</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>Såfremt du tilføjer en organisation til et rum, er det kun brugere som er medlem af organisationen, som kan få adgang til pågældende rum (Dette er kun gyldigt hvis hvis isPublic flaget er sat til false!).</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderation</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Begrænsninger</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organisation</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Er du sikker?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Vil du virkelig slette dette emne? Du skal klikke på Gem knappen for at gemme ændringerne!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>Ingen bruger er valgt. Vælg først inden du tilføjer!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Tilføj ny default moderator</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Vil du tilføje Super moderator flaget for denne bruger? En Super moderator er ikke kun moderator i et rum, hvilket betyder at ingen andre moderatorer kan fjerne moderator flaget for denne bruger. Du mangler at gemme rum objektet for at gemme disse indstillinger!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Vil du fjerne Super moderator flaget for denne bruger?? Du mangler at gemme rum objektet for at gemme disse indstillinger!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>Denne bruger er en Super moderator. Du kan ikke fjerne moderator flaget fra en Super moderator!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Vil du virkelig slette denne fil/mappe?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Slet fil/mappe?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Fr.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Hr.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Egenskaber</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Vis musens position for brugerne</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Del lyd med SIP Appletten</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Del lyd med SIP og video med Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Fyldig</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>Se skærm</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>Brugeren</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>ønsker at dele sin skærm. Vil du se?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Luk</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>Sessionen blev lukket at den delende bruger!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>Ny deling af skærm</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimer</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximer</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Optagelse tidslinie</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>Mine optagelser</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Offentlige optagelser</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>INFO</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Navn</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Længde</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Dato</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>Af</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>Download</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>MAIN - Video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Optager</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>Du kan optage og dele din skærm samtidigt. For at gøre det muligt for andre at se din skærm, skal du bare klikke på Start knappen i toppen. For kun at optage sessionen er det nok at klikke på Start optagelse.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Start optagelse</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Stop optagelse</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download FLV-filen</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Rum</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Afspil</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>Brugeren har mikrofonen tilsluttet</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Stop deling</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Tillad bruger spørgsmål</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Slå fra for at forhindre at brugere kan forstyrre dig i dette rum. Effekten er, at knappen som anvendes til moderation ("Jeg har et spørgsmål") ikke vil være synlig.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rettigheder</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Download som AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Rå skærmvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Kun lyd</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>Der har været fejl under processionen af optagelsen.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>Optagelsen er ikke klar til at blive set. Prøv venligst igen om et par minutter.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Optager meddelelse</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP Applet er ikke klar</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP-konto indstillinger</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP for hver enkelt bruger. Du kan tilslutte eller afslutte SIP via administration &gt; konfiguration (Nøgle: enable_sip). SIP data for hver enkelt bruger bør blive oprettet automatisk.</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-Bruger</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Adgangskode</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>Login til SIP Gateway har fejlet. Du bør kontrollere autentifikations data fra din SIP-udbyder og SIP-onto data for hver enkelt bruger. Som administrator har du stadig mulighed for at logge ind og kontrollere konfigurationen. Som bruger eller moderator vil du blive blokeret med hensyn til interaktion.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>Login til SIP Gateway har fejlet. Kontakt support!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logger ind til SIP-Gateway ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logger ind til SIP-Gateway ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Vis Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log meddelelser fra sendingen af optagelses processen</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Applet meddelelse</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>SIP-Appletten er ikke klar. Accepter appletten og klik på OK!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Anmod om at blive moderator</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Gem møde ændringer</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>Mødet har været ændret. Vil du gemme disse ændringer? &lt;br/&gt;&lt;br/&gt;Alle deltagere til dette møde vil modtage en email med den opdaterede dato og tid (afhængig af notifikationstypen for dette møde).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>For at få adgang til andre optagelser skal du logge ind i $APP_NAME applikationen.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Vælg bruger for denne video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Bruge tilgængelige for denne Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>Du er moderator i dette interview. Du kan bestemme hvem der taler i dette interview og du kan starte / stoppe optagelsen af denne session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Start optagelse</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Stop optagelse</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>Optagelsen af interviewet er allerede startet.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>Optagelsen er allerede stoppet eller er ikke startet endnu.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>Optagelsen af dette interview er allerede startet!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Clear objects on current slide only!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the Status bar is send to participants!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make Team-Rooms [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new Team-Room!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new Conference Room ("Team Room") for them. The chosen users will automatically switch to the new Team-Room or get a notification. Team-Room Moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a Moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Username</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new Team-Room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create Team-Room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the Team-Room!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from Team-Room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Roomtype</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>This is a Team-Room, you can send the Team-Moderator a message if you need help. You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>1) Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the System. The Backup includes all User generated data. The configuration is not included as well as the language labels. Because those values are imported with the System Installer. To update your System, export your old system (1) re-install into a new database the new package (2) and import the Backup file again (3). The Backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share Screen/Record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is Moderator, he can do anything! [Screen Sharing]</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/Deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose "Insert" from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about Copy and Paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Kick user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git "a/src/main/webapp/languages/deutsch \050studIP\051.xml" "b/src/main/webapp/languages/deutsch \050studIP\051.xml"
new file mode 100644
index 0000000..fc8e9a6
--- /dev/null
+++ "b/src/main/webapp/languages/deutsch \050studIP\051.xml"
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Konferenz</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Meeting</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Event</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Einstellungen</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Profil</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Administration</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Stop</value>
+  </string>
+  <string id="8" name="record">
+    <value>Aufnahme</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>Keine Datei vorhanden</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Aufnahme nur für Moderatoren verfügbar</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>verbundene Teilnehmer:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Konferenz starten</value>
+  </string>
+  <string id="13" name="myname">
+    <value>Mein Name</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>Videokonferenz</value>
+  </string>
+  <string id="15" name="import">
+    <value>Datei importieren</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Liste neu laden</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>Zum Hauptverzeichnis</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>Neue Umfrage</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>Neue Umfrage für die Sitzung.</value>
+  </string>
+  <string id="20" name="question">
+    <value>Frage:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Umfragenart:</value>
+  </string>
+  <string id="22" name="create">
+    <value>Anlegen</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Info: Jeder Teilnehmer erhält eine Nachricht mit der neuen Umfrage.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Umfrage anlegen</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Abbrechen</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Ja/Nein</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Numerisch 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Umfrage</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Sie müssen Moderator dieser Sitzung sein, um eine Umfrage anzulegen.</value>
+  </string>
+  <string id="30" name="vote">
+    <value>Ihr Stimme wurde abgegeben.</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Sie haben für diese Umfrage bereits ihr Votum abgegeben.</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Abstimmen!</value>
+  </string>
+  <string id="33" name="answer">
+    <value>Ihre Antwort:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Ja</value>
+  </string>
+  <string id="35" name="no">
+    <value>Nein</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>will wissen:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Umfrageergebnisse</value>
+  </string>
+  <string id="38" name="question">
+    <value>Frage:</value>
+  </string>
+  <string id="39" name="results">
+    <value>Antworten:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Ergebnis:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>Zur Zeit liegen keine offenen Umfragen vor.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Abstimmen!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Meeting (max 4 Plätze)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Konferenz (max 50 Plätze)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Modus</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>verbleibende Plätze</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Bereits vergeben</value>
+  </string>
+  <string id="48" name="enter">
+    <value>Eintreten</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>Der Moderator hat den Raum verlassen.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Systemnachricht</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Geräteauswahl</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Kamera wählen:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Mikrofon wählen:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>Ok</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>Abbrechen</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Sie müssen sich erneut verbinden damit die Änderungen wirksam werden.</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Einstellungen ändern.</value>
+  </string>
+  <string id="58" name="course">
+    <value>Kurs:</value>
+  </string>
+  <string id="59" name="language">
+    <value>Kurssprache:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>Ok</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>Abbrechen</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Zeichenbrett leeren</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Zeichenbrett leeren, bevor ein neues Bild hinzugefügt wird.</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>Nicht nochmal fragen</value>
+  </string>
+  <string id="65" name="no">
+    <value>Nein</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Einstellungen bearbeiten</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Bestätigung anfordern, bevor das Zeichenbrett geleert wird.</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Profil</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Zeichenbrett leeren</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Rückgängig</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Wiederherstellen</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Markieren</value>
+  </string>
+  <string id="73" name="text">
+    <value>Text</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Frei zeichnen</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Linien zeichnen</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Unterstreichen</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Rechteck</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Kreis</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Pfeil</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>Löschen</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Moderationsrecht beantragen</value>
+  </string>
+  <string id="82" name="apply">
+    <value>Beantragen</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>Abbrechen</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Moderator werden</value>
+  </string>
+  <string id="85" name="close">
+    <value>Schließen</value>
+  </string>
+  <string id="86" name="italic">
+    <value>Kursiv</value>
+  </string>
+  <string id="87" name="bold">
+    <value>Fett</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>Warte</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>Ein Teilnehmer erbittet Moderationsrechte.</value>
+  </string>
+  <string id="90" name="accept">
+    <value>Annehmen</value>
+  </string>
+  <string id="91" name="reject">
+    <value>Ablehnen</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>Abbrechen</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Sende Anfrage an folgende Teilnehmer</value>
+  </string>
+  <string id="94" name="accept">
+    <value>bestätigt</value>
+  </string>
+  <string id="95" name="reject">
+    <value>abgelehnt</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Ändere Moderator</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Sie sind nicht der Moderator dieser Sitzung</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Moderator:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>Dieser Raum ist voll. Bitte versuchen Sie es zu einem späteren Zeitpunkt nochmals.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Kreis</value>
+  </string>
+  <string id="101" name="close">
+    <value>Schließen</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>Eingabefehler</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>Der Benutzername muss mindestens 4 Zeichen lang sein</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>Das Passwort muss mindestens 4 Zeichen lang sein</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>Der Benutzername ist bereits vergeben</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>Die E-Mail ist bereits registriert</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>Ein Fehler ist aufgetreten. Bitte kontaktieren Sie den Administrator.</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Login</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Benutzer/E-Mail:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Passwort:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Sprache</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Einloggen</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Registrieren</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Teilnehmer:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Passwort:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Wiederhole:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Vorname:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Nachname:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>E-Mail:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>Land:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Registrieren</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>Abbrechen</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Registrieren</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>Home</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Teilnehmer</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Gruppen</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Organisationen</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Konferenzräume</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>Öffentlich</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>Organisation</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>Betreten</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Teilnehmer</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Passwort</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Wiederholen</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Vorname</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Nachname</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>E-Mail</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Geburtstag</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Straße/Nr.</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>PLZ/Stadt</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>Land</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Adressinfo</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Benutzerdaten</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>Speichern</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Speichervorgang</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>Benutzer-ID</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>Login</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>Vorname</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>Nachname</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>Vorwärts</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>Zurück</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>Datensatz entfernen</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>Abbrechen</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>Enfernen</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>Datensatz anlegen</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>Datensatz neu laden</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>Datensatz entfernen</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>Status</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>gesperrt</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>aktiv</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>Organisationen</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>Kalender</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>Schließen</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>Organisations-ID</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>Name</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>Teilnehmer</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>Moderator</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>Admin</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>Rechtegruppe</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>Organisation</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>Name</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>Organisation hinzufügen</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>Organisation hinzufügen</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>Abbrechen</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>Hinzufügen</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>Organisation entfernen</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>Teilnehmer</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>Teilnehmer hinzufügen</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>Teilnehmer entfernen</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>Teilnehmer hinzufügen</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>Teilnehmer suchen</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>Suchen</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>Teilnehmer</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>Organisation</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>Auswählen</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Konferenzräume</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Konferenzräume</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>ID</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Name</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>öffentlich</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>Organisationen</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Konferenzräume</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>Name</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>Typ</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>Öffentlich</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>Kommentar</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>Speichern</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>Öffnen</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>Speichern unter</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>Dateiname</value>
+  </string>
+  <string id="201" name="files">
+    <value>Dateiname</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>Abbrechen</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>Speichern</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>Fehler</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>Laden</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>Objekte geladen</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>Synchronisiere Teilnehmer. Restliche Teilnehmer:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Lade Bilddaten</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>Synchronisiere Teilnehmer. Restliche Teilnehmer:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>Zeichenbrett leeren</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>Zeichenbrett leeren. Alle bisherigen Änderungen gehen damit verloren!</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Bestätigung vor dem Laden einer Datei anfordern.</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Einladung versenden</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Einladung versenden</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Betreff</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Empfänger</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Nachricht</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Abschicken</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>Abbrechen</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>Senden</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Benutzerdaten</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>Nickname für diese Konferenz</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>Spitzname/Alias</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>Vorname</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>Nachname</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>E-Mail</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>Sprache</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>Absenden</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Laden</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Daten werden geladen. Bitte warten!</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Falsches Passwort</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Bitte geben Sie das Passwort zweimal ein. Länge: mindestens 6 Buchstaben.</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Ungültige E-Mail</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Die angegebene E-Mail-Adresse ist ungültig</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>Registration abgeschlossen</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Ihr Zugang wurde angelegt. Sie können sich nun einloggen.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>Sie können Ihren Bildschirm im Moment nicht freigeben. Diese Funktion wird aktuell bereits von einem anderen Sitzungsteilnehmer genutzt.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Veröffentlichung abgelehnt</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Desktop freigeben</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Schlechte Bandbreite. Es war nicht möglich alle Bilder des Bildschirms zu laden. Tritt dieser Fehler häufiger auf können Sie den Moderator darum bitten, die Qualität zur verringern.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Bildschirm von:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Zeichnen</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Dokumente</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Chat</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Dateien</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Teilnehmer</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Orginaldatei herunterladen</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>PDF-Dokument herunterladen</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Präsentation in Zeichenbrett laden</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Konfiguration</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Objekt verschieben</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Objekt vergrößern/verkleinern</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>von</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>zur ersten Seite springen</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>zur vorherigen Seite springen</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>zur nächsten Seite springen</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>zur letzten Seite springen</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Zoom --</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Zoom ++</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Herr</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Frau</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Konfiguration</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Schlüssel</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Konfiguration</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Schlüssel</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>Zuletzt bearbeitet</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>Bearbeitet von</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>Kommentar</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>Schlüssel</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>von</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Teilnehmer</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>Teilnehmer aus Organisation entfernen</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>Löschen</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>Dieser Teilnehmer ist bereits Teil dieser Organisation.</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>Neuigkeiten</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Quicklinks</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Zu den Konferenzräumen (max. 4 Teilnehmer)</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Zu den Eventräumen (unbegrenzte Zuschauer)</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Hilfe und Support</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Fehler melden!</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>Mehr</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Projekt im Netz (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>Mailing Liste Teilnehmer (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Login merken</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Dateien</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>Meine Übersicht</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>Meetings planen</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>Meine Events</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Öffentliche Meetings</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Private Meetings</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Öffentliche Events</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Private Events</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Öffentliche Dateien</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Private Dateien</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Persönliche Dateien</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Moderation</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Moderationsrecht anfordern</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Umfrage</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Datei auswählen</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Einstellungen</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Kamera-/Mikrofon-Einstellungen</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Zeichenbrett-Einstellungen</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Verlassen</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Zurück zur Raum-Übersicht</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Abmelden</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Passwort zurücksetzten?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Passwort zurücksetzen</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>Bei E-Mail</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Bei Login</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>E-Mail</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Login</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Dateien</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>E-Mail mit Reset-Link versenden</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Geben Sie bitte entweder eine E-Mail oder einen Login an.</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>Es existiert kein Teilnehmer mit diesem Namen.</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>Die E-Mail mit dem dazugehörigen Link wurde an Ihre E-Mail-Adresse gesandt. Bitte überprüfen Sie Ihren Posteingang. Falls Sie immer noch keine E-Mail erhalten haben, korrigieren Sie bitte Ihre Spam-Einstellungen und senden Sie die E-Mail nochmals.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Fehler!</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Nachricht</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Ungültiger Hash.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Passwort zurücksetzen</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Login</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>Passwort ändern</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>Neues Passwort</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>Passwort wiederholen</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>Die von Ihnen angegebenen Passwörter sind nicht identisch.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>4 oder mehr Buchstaben. Groß- und Kleinschreibung beachten!</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Passwort gespeichert. Sie können sich nun damit einloggen.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Fehler! Bitte wenden Sie sich an die Mitarbeiter der Koordinationsstelle E-Learning unter elearning@uni-trier.de.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Benutzername nicht gefunden</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Ungültiges Passwort</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Erfolgreich ausgeloggt</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Registrierung ist ausgeschaltet.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>Ungültige E-Mail-Adresse</value>
+  </string>
+  <string id="340" name="registration">
+    <value>Dieser Dateiname wird schon verwendet. Bitte geben Sie einen anderen an.</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>Dateiname zu kurz</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Adresse konnte nicht gespeichert werden.</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>Benutzer hinzugefügt. Vergessen Sie nicht diesem Benutzer auch eine Organisation hinzuzufügen. Benutzer ohne Organisation können sich nicht einloggen.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Neuer Datensatz</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>Es konnte kein Feld zu dieser ID ermittelt werden.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>Es konnte kein Label für diese ID ermittelt werden.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Sie müssen Administrator sein, um diese Aktion auszuführen.</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Sprach-Editor</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Sprache</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>Label-ID</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Label-Name</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Wert</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Feldwerte</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>LabelName</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>LabelWert</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>Label-ID</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>Sie haben nur das Label gelöscht nicht das Feld! Das Feld könnte noch Referenzen in anderen Sprachen beinhalten.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>Ungültige Labelid. FieldLanguagesvalues_Id kann in der Datenbank nicht gefunden werden.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Sie können dieses Feld nicht löschen. Sie können nur Labels, nicht aber Felder löschen. Zur Zeit ist kein Label geladen, entweder ist kein Feld ausgewählt oder es gibt kein Label in dieser Sprache für das Feld.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>Exportieren</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Sie müssen sich neu anmelden, um Änderungen zu sehen.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Neue Sprache anlegen</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>Sprache löschen</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Neue Sprache anlegen</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Name</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>Sprache anlegen</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Sicherung</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>Zum Ersten</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>Zum Letzten</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>Zum Nächsten</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>Zum Letzten</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>Teilnehmer spricht (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>Sound an/ausschalten</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>Übersicht</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Ihr Profil</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>Hallo,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Profil bearbeiten</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Ungelesene Nachrichten:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Bild ändern</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Benutzerdaten - Exportieren</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>Alle Organisationen müssen bereits vorhanden sein!</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>Starte Export</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>Nach Organisation</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>Starte Export</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Benutzerdaten - Import</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>Wählen Sie users.xml aus</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>importiere</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Exportiere als XML - Diese Dateien können benutzt werden als: Beitrag zum Projekt - Import in ein anderes System - Sicherung - kundenspezifische Anpassung - Ablage im Sprachverzeichnins für Ihre nächste Installation.</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Wählen Sie eine Sprachdatei für den Import aus. Wählen Sie die passende Sprache aus der Combobox! Egal welchen Namen die Datei hat, sie wird in diese Sprache importiert!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>Import - Wählen Sie eine Datei aus</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Speichern unter</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Name:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Kommentar:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>Speichern</value>
+  </string>
+  <string id="395" name="record">
+    <value>Aufnahmen</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Aufnahmen ansehen</value>
+  </string>
+  <string id="397" name="record">
+    <value>Aufnahmen aus allen Räumen</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Teilnehmer:</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Mitglied seit:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Teilnehmer in diesem Raum:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>Neu laden</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>Dieser Raum ist voll. Bitte versuchen Sie es später noch einmal.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>Wählen Sie einen Raum aus, um Details zu erhalten.</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Chatten Sie mit Teilnehmern in diesem Raum:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Raum:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Teilnehmer in diesem Raum:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>Seit:</value>
+  </string>
+  <string id="409" name="record">
+    <value>Aufnahme abspielen</value>
+  </string>
+  <string id="410" name="record">
+    <value>Länge:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Datum:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Aufnahme! Sie können hier nichts mehr ändern ...</value>
+  </string>
+  <string id="413" name="record">
+    <value>Aufnahme abspielen</value>
+  </string>
+  <string id="414" name="record">
+    <value>Abspielen / Pause</value>
+  </string>
+  <string id="415" name="record">
+    <value>Aufnahme starten</value>
+  </string>
+  <string id="416" name="record">
+    <value>Aufnahme beenden</value>
+  </string>
+  <string id="417" name="record">
+    <value>Aufnahmen:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>Die Aufnahme ist bereits gestartet.</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Aufnahme gestartet! Von Teilnehmer:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>Abbrechen</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>Aufnahme wird abgebrochen und nicht gespeichert.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>Fortsetzen</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Aufnahme fortsetzen</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>Linienfarbe ändern</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Farbe auswählen</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Randfarbe de/aktivieren</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>Füllfarbe ändern</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Füllfarbe de/aktivieren</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Linienstärke ändern</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>Schließen</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>Schriftgröße anpassen</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Aufnahme löschen</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Gäste</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>Von:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Name</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Raum</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Datum</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>Abbrechen</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>Start</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Name</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Datum</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Chatlog löschen</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Chat</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>Nachricht abschicken</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Emoticons</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Emoticons</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Wählen Sie die Geräte aus:</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Ton und Video</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>nur Ton(Mikrofon)</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>nur Video(Webcam)</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>kein Video/Ton (nur Profil-Bild)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>Kein Video/Ton veröffentlichen. Wählen Sie diese Einstellung wenn die verfügbare Bandbreite sehr niedrig ist.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>MO</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>DI</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>MI</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>DO</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>FR</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>SA</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>SO</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Montag</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Dienstag</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Mittwoch</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Donnerstag</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Freitag</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Samstag</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Sonntag</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>KW</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Kalenderwoche</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>Januar</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>Februar</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>März</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>April</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>Mai</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>Juni</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>Juli</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>August</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>September</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>Oktober</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>November</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>Dezember</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Kalender</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Teilnehmerzahl</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Zeige Layouteinstellungen</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Breite | Höhe</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Video-Container</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Moderations-Container</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Whiteboard-Container</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Enabled</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Breite | Höhe</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Dateien-, Chat-, Teilnehmer-Container</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Aktiv</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Breite | Höhe</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>Der Moderator hat den Raum verlassen. Sie müssen die Moderation beantragen wenn Sie auf das Zeichenbrett zeichnen wollen.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>Es gibt momentan keinen Moderator in diesen Raum. Sie müssen die Moderation beantragen oder warten.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Feedback $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Einladung</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Nachricht von Teilnehmer:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Nachricht:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Klicken Sie auf diesen Link, um in den Raum zu gelangen:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Klicken Sie hier</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>Wenn der Link fehlerhaft dargestellt wird, kopieren Sie bitte folgenden Link in die Adresszeile ihres Browsers:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME Registrierung</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Ihre Benutzerdaten:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Login:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Pass:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>E-Mail:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME-Team</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME Registrierung</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - Passwort zurücksetzen</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Klicken Sie hier, um ein neues Passwort einzugeben:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Klicken Sie hier</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>Wenn der Link fehlerhaft dargestellt wird, kopieren Sie bitte folgenden Link in die Adresszeile Ihres Browsers:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME Password Reset</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Bitte geben Sie ein gültiges Datum an, zum Beispiel 24.12.2001 (dd.mm.yyyy)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Bitte geben Sie eine gültige E-Mail an, zum Beispiel name@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Bitte geben Sie eine Fließkommazahl an, zum Beispiel 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Bitte geben Sie eine Ganzzahl an, zum Beispiel 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Bitte geben Sie eine gültige Telefon-Nummer an, zum Beispiel ++49 0123 123123</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Bitte geben Sie eine gültige Uhrzeit an, zum Beispiel 12:23 (hh:mm)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Passwort geschützt</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Passwort</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Gültigkeit</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Immer</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Zeitspanne</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Einmalig</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Gültig ab:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Gültig bis:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Einladung für diese Konferenz</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Keine Einladung für diesen Code</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>Die Einladung ist nicht mehr gültig.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>Die Einladung ist nicht mehr gültig.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Passwort:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Passwort überprüfen</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Falsches Passwort!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Browser</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Ton/Video neu starten</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Sitzung abgelaufen oder ungültig.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>SessionId ist nicht eingeloggt oder hat keine Administratorrechte. Das SOAP Gateway benötigt einen Benutzer mit Admin-Rechten um einen neuen Nutzer einzubetten.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>Diese Sitzung steht mit keiner Remoteuser-Data in Verbindung. Entweder haben Sie das SOAP-Gateway vor dem Zugriff auf die Anwendung nicht gerufen oder Sie benutzen die falsche Sitzungs-ID</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>Die Aufnahme von Meetings ist noch Beta!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>x-Achse</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>y-Achse</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>w</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>Breite</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>h</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>Höhe</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Transparenz ändern</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Browser offen</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Browser geschlossen</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>Die Verbindung zum Server ist abgebrochen. Prüfen Sie ihre Netzwerk-Verbindung und starten Sie die Anwendung neu.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Pointer</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Synchronisiere</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Teilnehmer werden synchronisiert, bitte warten Sie!</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Download als SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Download als PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Download als JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Download als PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Download als TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Erinnerung</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Kategorie</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Wiederholung</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>Keine</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Ort:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Start</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>Ende</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Titel:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Kommentar:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Jemanden einladen</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>täglich</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>monatlich</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>jährlich</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Terminstart muss vor Terminende liegen!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Bitte geben Sie einen Titel an!</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Aktivieren Sie die falls es sich um eine Eingabe einer Rechts-Nach-Links Sprache (arabisch, persich, hebräisch) handelt.</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Start</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Aufgenommene Konferenzen betrachten</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Meeting - Eröffnen Sie eine Konferenz&lt;br/&gt;</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Event</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Benutzer, Konfiguration und Verwaltung</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Teilnehmer in diesem Raum</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Einloggen</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Dokument wird geladen. Bitte warten Sie bis alle Teilnehmer synchronisiert wurden.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Dokument hochgeladen. Bitte warten Sie ab bis es importiert wurde ...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Starte Upload</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Wählen Sie zum Hochladen eine Datei von Ihrem PC aus. Zugelassene Dateiformate: .pdf, .jpg, .gif</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Abbrechen</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Datei auswählen</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Verbindungen</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Wert</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Streamid</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Login</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Verbunden seit</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Raum / Bereich</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Ausloggen</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Teilnehmeranbindung trennen</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Wollen Sie diesen Teilnehmer wirklich von dieser Verbingung trennen?&lt;br/&gt; Diese Maßnahme entfernt den Teilnehmer lediglich aus dem Raum. Der Teilnehmer kann sich wieder einloggen.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Ihre Sitzung wurde beendet.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Telefon</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>Teilnehmer ist Moderator dieses Raumes.</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>Teilnehmer hat keine Zugriffsrechte zum Zeichenbrett</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>Neu starten von Ton/Video oder Einstellungen ändern</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Diesem Teilnehmer den Zugang zum Zeichenbrett gewähren.</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Diesem Teilnehmer den Zugang zum Zeichenbrett verwehren.</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Teilnehmer</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Dateien</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Zeichenbrett</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Chat</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Ihr Benutzer-Profil ist Mitglied in mehreren Organisationen. Bitte wählen Sie eine für diese Sitzung.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>Der Raum ist im Moment voll. Bitte versuchen Sie es später noch einmal.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Raumtyp</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Termin Raum</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Server Zeit</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - Erinnerung</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Nachricht von Teilnehmer:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Nachricht:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Klicken Sie auf diesen Link um in den Raum zu gelangen:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Klicken Sie hier</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>Wenn der Link fehlerhaft dargestellt wird, kopieren Sie bitte folgenden Link in die Adresszeile Ihres Browsers:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>Suche intern</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>Externe Teilnehmer eingeben</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>Vorname</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>Name</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>E-Mail</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Abmeldung bestätigen</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Wollen Sie sich wirklich ausloggen?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Aktionen</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Demoraum</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Demo Zeit</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Meeting Zeitmesser</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>Dies ist ein Demo-Raum. Um diesen Hinweis abzuschalten sollten Sie entweder einen privaten Meeting-Raum für Ihren persönlichen Zweck aufsuchen oder Ihren eigenen Server anlegen. Sie werden automatisch ausgeloggt in:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Moderiert</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Bitte warten Sie, bis der Moderator dieser Sitzung den Raum betreten hat.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Ok</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Anfrage Bildschirmfreigabe</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>Eingehende Bildschirmfreigabe von Teilnehmer:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Starte Bildschirmfreigabe</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Füge ein neues Meeting hinzu</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Meeting Raum</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Event Room</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderation</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Moderiere Teilnehmer</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Moderiere Räume</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Wollen Sie diesem Teilnehmer die Moderationsrechte für die Organisation übertragen?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Bitte wählen Sie zuerst die Organisation aus bevor Sie einen Benutzer hinzufügen wollen!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organisation - Moderator</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Sind Sie Sicher, dass Sie diesen Teilnehmer aus der Organisation löschen möchten?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>Dieser Teilnehmer verfügt über Moderationsrechte</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>Dieser Teilnehmer verfügt über keine Moderationsrechte</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Wollen Sie diesem Teilnehmer die Moderationsrechte entziehen?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Räume innerhalb der Organisation hinzufügen oder löschen</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Wollen Sie diese Aufnahme wirklich löschen?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Wollen Sie diesen Teilnehmer aus Ihrer Organisation wirklich entfernen? Sie können nur die Verbindung zwischen dem Teilnehmer und Ihrer Organisation löschen , um den Teilnehmer zu löschen benötigen Sie Administrator-Rechte.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>Sie können Ihren eigenen Nutzeraccount nicht löschen!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>Diese Methode benötigt ein Administrator-Account um aufgerufen zu werden.</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>Es ist keine Sitzung mit dieser ID verbungen.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>Dies ist ein Administrator- oder Moderator-Account. Dieses Account können Sie nur mittels eines Administrator-Tableau bearbeiten.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>Um Ihre Registration abzuschließen klicken Sie bitte auf den folgenden Link. Oder kopieren Sie die URL(Link) in Ihre Browser-Adressleiste.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Klicken Sie um Ihre E-Mail zu bestätigen</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Es wurde kein Benutzer für diesen Hash gefunden.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Dieser Benutzer ist bereits aktiviert!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Sie haben Ihr Account erfolgreich aktiviert!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Jetzt einloggen</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Ihr Account ist nicht aktiviert. Benutzen Sie zuerst den Link in der E-Mail die Sie während der Registrierung erhalten haben.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>Sie haben sich erfolgreich angemeldet. Wir haben eine E-Mail mit einem Verifizierungscode an Ihre E-Mail-Adresse geschickt. Bitte überprüfen Sie Ihren Posteingang.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Diesem Teilnehmer die Moderationsrechte entziehen.</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Diesem Teilnehmer Moderatoionsrechte übertragen</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>Teilnehmer</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Zugang zum Zeichenbrett</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderator</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Zum Ändern der Bearbeitungsrechte wählen Sie den jeweiligen Teilnehmer bitte in der Liste aus.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>Dieser Teilnehmer besitzt Moderationsrechte, somit hat er auch bereits Zugriff auf das Zeichenbrett.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>Das sind Sie! Sie können Ihre eigenen Moderatorrechte nicht entfernen.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Audio-/Video-Beitrag dieses Teilnehmers zulassen.</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Audio/Video dieses Teilnehmers entfernen.</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>Ich würde gerne die Moderation dieses Raumes übernehmen.</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>Ich würde gerne auf dem Zeichenbrett zeichnen.</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>Ich würde gerne mein Audio/Video mit anderen teilen</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>Sie sind der Moderator dieses Raumes</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>Ihnen ist es erlaubt, auf dem Zeichenbrett zu zeichnen</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>Ihnen ist es erlaubt, Ihr Audio/Video mit anderen zu teilen</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Nachricht an den Moderator</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>Der Teilnehmer</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>würde gerne die Moderation übernehmen. Bitte benutzen Sie zur Rechtevergabe das entsprechende Symbol neben dem Benutzernamen in der Teilnehmerliste.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>würde gerne auf das Zeichenbrett zugreifen. Bitte benutzen Sie zur Rechtevergabe das Stift-Symbol neben dem Benutzernamen in der Teilnehmerliste.</value>
+  </string>
+  <string id="695" name="695">
+    <value>würde gerne sein Audio/Video mit anderen teilen. Benutzen Sie die Status-Symbole neben der Benutzerliste, um das Recht mit anderen Video/Audio zu teilen zu vergeben oder zu verwehren.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>Sie müssen warten bis der Moderator den Raum betritt.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Abbruch</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Speichern</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Tag</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Monat</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Jahr</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Datei hochladen</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Ordner hinzufügen</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Aktualisieren</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Papierkorb</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>Meine Dateien (persönliches Laufwerk)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Konferenzdokumente (öffentliches Laufwerk)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Datei hinzufügen</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Ordner hinzufügen</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Ordner löschen</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Name bearbeiten</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>Neuer Ordner</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Sind Sie sicher, dass Sie dieses Element löschen wollen?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Suche</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Suche</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Dokument öffnen</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Zeige alle Dateien (Baum Ansicht)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Dokument schließen</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Datei löschen</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>Es ist Ihnen nicht gestattet auf dem Zeichenbrett zu zeichnen. Sie müssen Moderator sein oder zumindest das Recht besitzen das Zeichenbrett zu bearbeiten. Sie können den Moderator nach den Rechten fragen.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Dokumenteigenschaften</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Starte Client (extern)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Starte Client (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>Ein Teilnehmer will seinen Desktop freigeben. Wollen Sie dies zulassen?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>Sie haben Ihren Desktop freigegeben. Wenn Sie die Freigabe beenden wollen drücken Sie die Anhalten-Schaltfläche im Desktop Sharer.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Geteilte Sitzung</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>Sie haben Ihren Desktop bereits freigegeben!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Desktop-Betrachter</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Beenden</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Desktop-Teiler</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Drücken Sie Start, um Ihren Desktop freizugeben</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Start</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Anhalten</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Wählen Sie einen Bildschirmbereich aus:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Breite ändern</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>Die Bildschirmfreigabe wurde beendet!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Höhe ändern</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-Abstand</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-Abstand</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Breite:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Höhe:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Die Verbindung wurde vom Server abgebrochen.</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Abbrechen</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Extern starten</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>Wenn Sie diese Session schließen, können Sie die Session nicht wieder starten.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Sitzung wirklich schließen?</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Bildschirm freigeben</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Sitzung aufnehmen</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Geteiltes surfen</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Upsa, ... Firefox unter Windows ist nicht in der Lage, mangelfreies Co-Browsing zu gewährleisten. Bitte benutzen Sie einen anderen Browser um die Co-Browsing-Funktion zu nutzen.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Vorherige</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Nächste</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Nachladen</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Heim</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Laden</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Diese Webseite als vorgegebene Webseite zu meinem Profil hinzufügen.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Kamera und Mikrofoneinstellungen testen</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Überprüfen Sie Ihre Mikrofon- und Kameraeinstellungen bevor Sie einen Raum betreten und Aufzeichnungen durchführen. Sie können Ihre Aufnahmen im Nachhinein abspielen.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Dieses Fenster nicht wieder anzeigen</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Abbrechen</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Raum betreten</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Nicht wieder fragen</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>Aufnahme</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>Abspielen</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>Sie können auch ohne einen Test fortfahren, falls Sie beabsichtigen Audio und Video nicht in der Sitzung einzusetzen. In diesem Fall haben Sie dennoch Zugriff auf das Zeichenbrett, können ihren Desktop für andere freigeben oder die Chatfunktion nutzen.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>Stop</value>
+  </string>
+  <string id="767" name="767">
+    <value>Lautstärke</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Start drücken</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Konferenz starten</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Event starten</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Raum wählen</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Prüfe Setup</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Konferenz starten</value>
+  </string>
+  <string id="774" name="start view">
+    <value>Wie starte ich eine Konferenz</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Testaufnahme</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Audio-/Video-Test (Aufnahme) vor dem Betreten einer Konferenz nicht zeigen</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Öffentliche Räume</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Öffentliche Räume können von allen Teilnehmern betreten werden.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Gruppenräume</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Private Räume sind nur für Teilnehmer in der selben Organisation verfügbar.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>Private Räume</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Räume in diesem Bereich sind für den persönlichen Bedarf. Die Räume haben ein Start und Enddatum und stehen nur in diesem Zeitraum zur Verfügung.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>Sie müssen Moderator sein, um diese Aktion auszuführen.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Moderation beantragen</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Zeichenbrett beantragen</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Video/Mikrofon beantragen</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>Dieser SessionHasgh wird bereits genutzt. Er kann nicht zweifach vergeben werden.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>START</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>EXIT</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Wollen Sie die Konferenz wirklich verlassen? Vielleicht sollten Sie zuerst Dokumente, Zeichenbrett und Chat History leeren. Andernfalls werden die Dateien einfach in diesem Raum bis zu Ihrem nächsten Besuch bleiben.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Konferenz beenden</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Räume</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Wählen Sie einen Raum für die Konferenz aus</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>Es ist ein nicht gespeichertes Event im Kalender. Speichern Sie es oder löschen Sie es wieder.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Bitte fügen Sie mindestens einen Teilnehmer zum Event.</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Soll dieses Event wirklich aus dem Kalender gelöscht werden?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Warnung</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Neuer Event</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>Tag</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>Woche</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>Monat</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Beschreibung</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Teilnehmer</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, Ihre Web Konferenz Plattform. Entweder starten Sie sofort ein Meeting indem Sie den 1-2-3 Anweisungen folgen oder Sie benutzen den Kalender um eine Konferenz zu planen.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Konferenz planen</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>Um eine Konferenz zu planen können Sie einen Event im Kalender hinzufügen.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Brauchen Sie Hilfe?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Eingeschränkt</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Suche</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Ok</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>Es ist kein Benutzer ausgewählt. Wählen Sie zuerst einen Benutzer und drücken dann Ok.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Teilnehmer hinzufügen</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Speichern</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Löschen</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Event Details</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Default Moderators</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Name</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>E-Mail</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Neuen Default-Moderator hinzufügen</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Ist Super-Moderator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>In einem moderierten Raum sind Teilnehmer mit den Rollen Level-Moderator oder Administrator beim Betreten des Raums automatisch Moderatoren. Um dies abzuschalten, verwenden Sie die Funktion Default-Moderator.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>Der Super-Moderator ist beim Betreten eines Raums immer Moderator. Das Recht kann ihm im Raum nicht genommen werden.</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Nutzer Super-Moderatorrechte zuweisen</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Nutzer Super-Moderatorrechte aberkennen</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>Wenn eine Organisation einen Raum zugewiesen wird, haben nur Mitglieder der Organisation Zugang. (Dies gilt nur wenn die Einstellung isPublic auf false gesetzt wurde!)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderation</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Begrenzungen</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organisation</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Sind Sie sicher?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Wollen Sie den Wert wirklich löschen? Mit dem Speichern-Button ändern Sie die Einträge!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>Es wurde noch kein Teilnehmer ausgewählt. Sie müssen zuerst eine Person auswählen, um sie hinzufügen zu können.</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Neuen Default-Moderator hinzufügen</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Soll dieser Nutzer Super-Moderation werden? Super-Moderatorenrechte können nicht gelöscht werden. Zum Speichern der Einstellungen muss das Raumobjekt gespeichert werden!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Sollen die Super-Moderatorenrechte für diesen Nutzer aufgehoben werden? Zum Speichern der Einstellungen muss das Raumobjekt gespeichert werden!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>Dies ist ein Super-Moderator. Sie können die Moderationsrechte dem Nutzer nicht entziehen!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Wollen Sie wirklich diese Datei oder Ordner löschen?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Datei/Ordner löschen?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Fräulein</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Eigenschaften</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Teilnehmern Mauszeiger anzeigen</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Share Audio with SIP Applet</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Share Audio with SIP and Video with Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Vollbild</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>Bildschirm zeigen</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>Der Teilnehmer</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>möchte seinen Desktop veröffentlichen. Stimmen Sie dem zu?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Schließen</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>Die Bildschirmfreigabe wurde beendet!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>Neuer Desktop verfügbar</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimieren</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximieren</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Video Zeitspur</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>Meine Aufnahmen</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Öffentliche Aufnahmen</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Name</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Länge</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Datum</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>Von</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>Download</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Haupt - Video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Aufnahmen</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>Sie können eine Bildschirmfreigabe starten oder die aktuelle Sitzung aufzeichnen. Sofern Sie Ihren Bildschirm nur für andere Teilnehmer freigeben wollen genügt es, den obigen Start-Button zu betätigen.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Aufnahme starten</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Aufnahme stoppen</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download FLV-File</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Raum</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Play</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>Teilnehmer hat das Mikrofon an</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Bildschirmfreigabe beenden</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Fragen von Teilnehmern zulassen</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Wenn Sie diese Option aktivieren ist die Schaltfläche zum beantragen der Moderation für andere Teilnehmer nicht sichtbar und Sie werden nicht in ihrem Vortrag gestört.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rechte</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>AVI runterladen</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Audio only</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>The have been errors while processing the Recording.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>The Recording is not yet ready for watching. Please retry in a couple of minutes again.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Recorder Message</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP Applet is not Ready</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP-Account Settings</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP settings for each user. You can turn on or off SIP via the Administration &gt; Configuration (Key: enable_sip). The SIP data for each user should be created automatically. You can re-create the data by checking "Re-generate SIP Data"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-User</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Pass</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. You should check the authentification data of your SIP-Provider and the SIP-Account Data for each User. As Administrator you are still able to login and check the Configuration. As User or Moderator you will be blocked from any interaction.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. Contact your Service Team!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Show Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log messages from post recorder process</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Applet Message</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>The SIP-Applet is not ready. Accept the Applet please and click ok!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Moderation beantragen</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Save Appointment Changes</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointement has been changed. Do you want to save those changes? &lt;br/&gt;&lt;br/&gt;All attendees of the appointment will receive a EMail with the updated date and time (depending on the notification type of this appointment).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>To access other recordings you have to login the $APP_NAME Application.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Choose the User for this Video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available Users for this Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>You are a Moderator in this Interview. You can decide who is speaking in this interview and you can start / stop the recording of the Session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Start Recording</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Stop Recording</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>The recording of the Interview is already started.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>The recording is already stopped or not been started yet.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>The recording for this interview is already started!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Löscht die Objekte der aktuellen Folie</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the Status bar is send to participants!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make Team-Rooms [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new Team-Room!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new Conference Room ("Team Room") for them. The chosen users will automatically switch to the new Team-Room or get a notification. Team-Room Moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a Moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Username</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new Team-Room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create Team-Room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the Team-Room!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from Team-Room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Roomtype</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the System. The Backup includes all User generated data. The configuration is not included as well as the language labels. Because those values are imported with the System Installer. To update your System, export your old system (1) re-install into a new database the new package (2) and import the Backup file again (3). The Backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Bildschirmfreigabe erlauben</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>Teilnehmer ist Moderator und verfügt somit über alle Bearbeitungsfunktionen</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>möchte gerne den Bildschirm freigeben.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>Sie haben die Berechtigung zur Bildschirmfreigabe.</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Bildschirmfreigabe beantragen</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Berechtigung zur Bildschirmfreigabe.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose "Insert" from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Bearbeite Einstellungen</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Zeige keine Info-Box in der Remote Control über Kopieren und Einfügen</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Aktiviere Größenanpassung, sodass auf das ganze Whiteboard gezoomt wird&lt;br/&gt;und der Benutzer alle Dokumente sieht.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>entferne Benutzer</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Gesendet</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Gelöscht</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid for a period of time.</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Zeige Profil-Update-Nachricht nicht noch einmal</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Aktivitäten und Aktionen</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Lösche Whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Bitte geben Sie eine EMail an</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>Neue Nachricht(en)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Kamera-Auflösung</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Die Kamera-Auslösung hat einen direkten Einfluss auf die verbrauchte Upload-Bandbreite!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/deutsch.xml b/src/main/webapp/languages/deutsch.xml
new file mode 100644
index 0000000..30fd7af
--- /dev/null
+++ b/src/main/webapp/languages/deutsch.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Konferenz</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Meeting</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Event</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Einstellungen</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Profil</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Administration</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Stop</value>
+  </string>
+  <string id="8" name="record">
+    <value>Aufnahme</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>Keine Datei vorhanden</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Aufnahme nur für Lehrer verfügbar</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>verbundene Benutzer:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Konferenz starten</value>
+  </string>
+  <string id="13" name="myname">
+    <value>Mein Name</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>Videokonferenz</value>
+  </string>
+  <string id="15" name="import">
+    <value>Datei importieren</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Liste neu laden</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>Zum Hauptverzeichnis</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>Neue Umfrage</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>Eine neue Umfrage für die Konferenz.</value>
+  </string>
+  <string id="20" name="question">
+    <value>Frage:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Umfragenart:</value>
+  </string>
+  <string id="22" name="create">
+    <value>Anlegen</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Info: Jeder verbundene Benutzer erhält eine Nachricht mit der neuen Umfrage.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Umfrage anlegen</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Abbrechen</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Ja/Nein</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Numerisch 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Umfrage</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Sie müssen Moderator/Lehrer in diesem Raum sein, um eine Umfrage anzulegen.</value>
+  </string>
+  <string id="30" name="vote">
+    <value>Ihr Stimme wurde abgegeben.</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Sie haben für diese Umfrage bereits ihr Votum abgegeben.</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Abstimmen!</value>
+  </string>
+  <string id="33" name="answer">
+    <value>Ihre Antwort:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Ja</value>
+  </string>
+  <string id="35" name="no">
+    <value>Nein</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>will wissen:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Umfrageergebnisse</value>
+  </string>
+  <string id="38" name="question">
+    <value>Frage:</value>
+  </string>
+  <string id="39" name="results">
+    <value>Antworten:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Ergebnis:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>Es gibt zur Zeit keine Umfrage.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Abstimmen!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Meeting (max 4 Plätze)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Konferenz (max 50 Plätze)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Modus</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>verbleibende Plätze</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Bereits vergeben</value>
+  </string>
+  <string id="48" name="enter">
+    <value>Eintreten</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>Der Moderator/Lehrer hat den Raum verlassen.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Systemnachricht</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Geräteauswahl</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Kamera wählen:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Mikrofon wählen:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>Ok</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>Abbrechen</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Sie müssen sich erneut verbinden damit die Änderungen wirksam werden.</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Einstellungen ändern.</value>
+  </string>
+  <string id="58" name="course">
+    <value>Kurs:</value>
+  </string>
+  <string id="59" name="language">
+    <value>Kurssprache:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>Ok</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>Abbrechen</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Zeichenbrett leeren</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Soll das Zeichenbrett geleert werden bevor ein neues Bild hinzugefügt wird?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>Nicht nochmal fragen</value>
+  </string>
+  <string id="65" name="no">
+    <value>Nein</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Einstellungen bearbeiten</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Bestätigung anfordern bevor das Zeichenbrett geleert wird.</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Profil</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Zeichenbrett leeren</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Rückgängig</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Wiederherstellen</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Markieren</value>
+  </string>
+  <string id="73" name="text">
+    <value>Text</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Frei zeichnen</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Linien zeichnen</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Unterstreichen</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Rechteck</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Kreis</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Pfeil</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>Löschen</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Moderation beantragen</value>
+  </string>
+  <string id="82" name="apply">
+    <value>Beantragen</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>Abbrechen</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Moderator werden</value>
+  </string>
+  <string id="85" name="close">
+    <value>Schließen</value>
+  </string>
+  <string id="86" name="italic">
+    <value>Kursiv</value>
+  </string>
+  <string id="87" name="bold">
+    <value>Fett</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>Warte</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>Ein Benutzer möchte die Moderation übernehmen:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>Annehmen</value>
+  </string>
+  <string id="91" name="reject">
+    <value>Ablehnen</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>Abbrechen</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Sende Anfrage an folgende Nutzer</value>
+  </string>
+  <string id="94" name="accept">
+    <value>bestätigt</value>
+  </string>
+  <string id="95" name="reject">
+    <value>abgelehnt</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Ändere Moderator</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Sie sind nicht der Moderator dieser Konferenz!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Moderator:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>Dieser Raum ist voll. Bitte versuchen Sie es zu einem späteren Zeitpunkt nochmals.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Kreis</value>
+  </string>
+  <string id="101" name="close">
+    <value>Schließen</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>Eingabefehler</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>Der Benutzername muss mindestens 4 Zeichen lang sein</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>Das Passwort muss mindestens 4 Zeichen lang sein</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>Der Benutzername ist bereits vergeben</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>Die E-Mail ist bereits registriert</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>Ein Fehler trat auf. Bitte kontaktieren Sie den Administrator</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Login</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Benutzer/E-Mail:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Passwort:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Sprache</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Einloggen</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Registrieren</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Benutzer:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Passwort:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Wiederhole:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Vorname:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Nachname:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>E-Mail:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>Land:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Registrieren</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>Abbrechen</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Registrieren</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>Home</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Benutzer</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Gruppen</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Organisationen</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Konferenzräume</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>Öffentlich</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>Organisation</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>Betreten</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Benutzer</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Passwort</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Wiederholen</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Vorname</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Nachname</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>E-Mail</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Geburtstag</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Straße/Nr.</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>PLZ/Stadt</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>Land</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Adressinfo</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Benutzerdaten</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>Speichern</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Speichervorgang</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>Benutzer-ID</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>Login</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>Vorname</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>Nachname</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>Vorwärts</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>Zurück</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>Datensatz entfernen</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>Abbrechen</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>Enfernen</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>Datensatz anlegen</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>Datensatz neu laden</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>Datensatz entfernen</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>Status</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>gesperrt</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>aktiv</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>Organisationen</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>Kalender</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>Schließen</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>Organisations-ID</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>Name</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>Benutzer</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>Moderator</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>Admin</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>Benutzerrolle</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>Organisation</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>Name</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>Organisation hinzufügen</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>Organisation hinzufügen</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>Abbrechen</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>Hinzufügen</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>Organisation entfernen</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>Benutzer</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>Benutzer hinzufügen</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>Benutzer entfernen</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>Benutzer hinzufügen</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>Benutzer suchen</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>Suchen</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>Benutzer</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>Organisation</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>Auswählen</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Konferenzräume</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Konferenzräume</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>ID</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Name</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>öffentlich</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>Organisationen</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Konferenzräume</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>Name</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>Typ</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>Öffentlich</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>Kommentar</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>Speichern</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>Öffnen</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>Speichern unter</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>Dateiname</value>
+  </string>
+  <string id="201" name="files">
+    <value>Dateiname</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>Abbrechen</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>Speichern</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>Fehler</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>Laden</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>Objekte geladen</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>Synchronisiere Benutzer. Restliche Benutzer:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Lade Bilddaten</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>Synchronisiere Benutzer. Restliche Benutzer:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>Zeichenbrett leeren</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>Zeichenbrett leeren. Alle bisherigen Änderungen gehen damit verloren!</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Bestätigung anfordern vor dem Laden einer Datei</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Einladung versenden</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Einladung versenden</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Betreff</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Empfänger</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Nachricht</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Abschicken</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>Abbrechen</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>Senden</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Benutzerdaten</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>Nickname für diese Konferenz</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>Spitzname/Alias</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>Vorname</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>Nachname</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>E-Mail</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>Sprache</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>Absenden</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Laden</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Daten werden geladen. Bitte warten!</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Falsches Passwort</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Bitte geben Sie ihr Passwort zweimal ein. Länge: mindestens 6 Buchstaben.</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Ungültige E-Mail</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Die angegebene E-Mail-Adresse ist ungültig</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>Registration abgeschlossen</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Ihr Benutzer wurde angelegt. Sie können sich nun einloggen.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>Sie können Ihren Bildschirm im Moment nicht veröffentlichen, da dies bereits ein anderer Benutzer in diesem Konferenzraum tut.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Veröffentlichung abgelehnt</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Desktop veröffentlichen</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Schlechte Bandbreite. Es war nicht möglich alle Bilder des Bildschirms zu laden. Tritt dieser Fehler häufiger auf können Sie den Moderator darum bitten, die Qualität zur verringern.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Bildschirm von:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Zeichnen</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Dokumente</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Chat</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Dateien</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Benutzer</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Orginaldatei herunterladen</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>PDF-Dokument herunterladen</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Präsentation in Zeichenbrett laden</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Konfiguration</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Objekt verschieben</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Objekt vergrößern/verkleinern</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>von</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>zur ersten Seite springen</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>zur vorherigen Seite springen</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>zur nächsten Seite springen</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>zur letzten Seite springen</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Zoom --</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Zoom ++</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Herr</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Frau</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Konfiguration</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Schlüssel</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Konfiguration</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Schlüssel</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>Zuletzt bearbeitet</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>Bearbeitet von</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>Kommentar</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>Schlüssel</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>von</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Benutzer</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>Benutzer aus Organisation entfernen</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>Löschen</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>Dieser Benutzer ist bereits Teil dieser Organisation.</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>Neuigkeiten</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Quicklinks</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Zu den Konferenzräumen (max. 50 Teilnehmer)</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Zu den Eventräumen (unbegrenzte Zuschauer)</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Hilfe und Support</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org//</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Fehler melden!</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>Mehr</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Projekt im Netz (http://openmeetings.apache.org/)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>Benutzer Mailing Liste (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Login merken</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Dateien</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>Meine Übersicht</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>Meetings planen</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>Meine Events</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Öffentliche Meetings</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Private Meetings</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Öffentliche Events</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Private Events</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Öffentliche Dateien</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Private Dateien</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Persönliche Dateien</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Moderation</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Moderation anfordern</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Umfrage</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Datei auswählen</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Einstellungen</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Kamera-/Mikro-Einstellungen</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Zeichenbrett-Einstellungen</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Verlassen</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Zurück zur Raum-Übersicht</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Abmelden</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Passwort zurücksetzen?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Passwort zurücksetzen</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>Bei E-Mail</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Bei Login</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>E-Mail</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Login</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Dateien</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>E-Mail mit Reset-Link versenden</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Geben Sie bitte entweder eine E-Mail oder einen Login an.</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>Es gibt keinen Benutzer mit diesem Benutzernamen.</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>Die E-Mail mit dem dazugehörigen Link wurde an Ihre E-Mail-Adresse gesandt. Bitte überprüfen Sie Ihren Posteingang. Falls Sie immer noch keine E-Mail erhalten haben, korrigieren Sie bitte Ihre Spam-Einstellungen und senden Sie die E-Mail nochmals.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Fehler!</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Nachricht</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Ungültiger Hash.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Passwort zurücksetzen</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Login</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>Passwort ändern</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>Neues Passwort</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>Passwort wiederholen</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>Die von Ihnen angegebenen Passwörter sind nicht identisch.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>Benutzername oder Passwort sind zu kurz, bitte geben Sie mindestens folgende Anzahl an Zeichen für Benutzername / Passwort ein:</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Passwort gespeichert. Sie können sich nun damit einloggen.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Unbekannter Fehler. Bitte melden Sie das dem Service-Team.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Benutzername nicht gefunden</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Ungültiges Passwort</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Erfolgreich ausgeloggt</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Registrierung ist ausgeschaltet.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>Ungültige E-Mail-Adresse</value>
+  </string>
+  <string id="340" name="registration">
+    <value>Dieser Dateiname wird schon verwendet. Bitte geben Sie einen anderen an.</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>Dateiname zu kurz</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Adresse konnte nicht gespeichert werden.</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>Benutzer hinzugefügt. Vergessen Sie nicht diesem Benutzer auch eine Organisation hinzuzufügen. Benutzer ohne Organisation können sich nicht einloggen.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Neuer Datensatz</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>Es konnte kein Feld zu dieser ID ermittelt werden.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>Es konnte kein Label für diese ID ermittelt werden.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Sie müssen Administrator sein, um diese Aktion auszuführen.</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Sprach-Editor</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Sprache</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>Label-ID</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Label-Name</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Wert</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Feldwerte</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>LabelName</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>LabelWert</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>Label-ID</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>Sie haben nur das Label gelöscht nicht das Feld! Das Feld könnte noch Referenzen in anderen Sprachen beinhalten.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>Ungültige Labelid. FieldLanguagesvalues_Id kann in der Datenbank nicht gefunden werden.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Sie können dieses Feld nicht löschen. Sie können nur Labels, nicht aber Felder löschen. Zur Zeit ist kein Label geladen, entweder ist kein Feld ausgewählt oder es gibt kein Label in dieser Sprache für das Feld.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>Exportieren</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Sie müssen sich neu anmelden, um Änderungen zu sehen.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Neue Sprache anlegen</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>Sprache löschen</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Neue Sprache anlegen</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Name</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>Sprache anlegen</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Sicherung</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>Zum Ersten</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>Zum Letzten</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>Zum Nächsten</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>Zum Letzten</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>Benutzer spricht (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>Sound an/ausschalten</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>Übersicht</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Ihr Profil</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>Hallo,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Profil bearbeiten</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Ungelesene Nachrichten:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Bild ändern</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Benutzerdaten - Exportieren</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>Alle Organisationen müssen bereits vorhanden sein!</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>Starte Export</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>Nach Organisation</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>Starte Export</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Benutzerdaten - Import</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>Wählen Sie users.xml aus</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>importiere</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Exportiere als XML - Diese Dateien können benutzt werden als: Beitrag zum Projekt - Import in ein anderes System - Sicherung - kundenspezifische Anpassung - Ablage im Sprachverzeichnins für Ihre nächste Installation.</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Wählen Sie eine Sprachdatei für den Import aus. Wählen Sie die passende Sprache aus der Combobox! Egal welchen Namen die Datei hat, sie wird in diese Sprache importiert!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>Import - Wählen Sie eine Datei aus</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Speichern unter</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Name:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Kommentar:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>Speichern</value>
+  </string>
+  <string id="395" name="record">
+    <value>Aufnahmen</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Aufnahmen ansehen</value>
+  </string>
+  <string id="397" name="record">
+    <value>Aufnahmen aus allen Räumen</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Benutzer:</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Mitglied seit:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Benutzer in diesem Raum:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>Neu laden</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>Dieser Raum ist voll. Bitte versuchen Sie es später noch einmal.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>Wählen Sie einen Raum aus, um Details zu erhalten.</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Chatten Sie mit Benutzern in diesem Raum:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Raum:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Benutzer in diesem Raum:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>Seit:</value>
+  </string>
+  <string id="409" name="record">
+    <value>Aufnahme abspielen</value>
+  </string>
+  <string id="410" name="record">
+    <value>Länge:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Datum:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Aufnahme! Sie können hier nichts mehr ändern ...</value>
+  </string>
+  <string id="413" name="record">
+    <value>Aufnahme abspielen</value>
+  </string>
+  <string id="414" name="record">
+    <value>Abspielen / Pause</value>
+  </string>
+  <string id="415" name="record">
+    <value>Aufnahme starten</value>
+  </string>
+  <string id="416" name="record">
+    <value>Aufnahme beenden</value>
+  </string>
+  <string id="417" name="record">
+    <value>Aufnahmen:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>Die Aufnahme ist bereits gestartet.</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Aufnahme gestartet von Benutzer:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>Abbrechen</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>Aufnahme wird abgebrochen und nicht gespeichert.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>Fortsetzen</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Aufnahme fortsetzen</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>Linienfarbe ändern</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Farbe auswählen</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Randfarbe de/aktivieren</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>Füllfarbe ändern</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Füllfarbe de/aktivieren</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Linienstärke ändern</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>Schließen</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>Schriftgröße anpassen</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Aufnahme löschen</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Gäste</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>Von:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Name</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Raum</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Datum</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>Abbrechen</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>Start</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Name</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Datum</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Chatlog löschen</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Chat</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>Nachricht abschicken</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Emoticons</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Emoticons</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Wählen Sie die Geräte aus:</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Ton und Video</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>nur Ton (Mikrophon)</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>nur Video (Webcam)</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>kein Video/Ton (nur Profil-Bild)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>Kein Video/Ton veröffentlichen. Wählen Sie diese Einstellung wenn die verfügbare Bandbreite sehr niedrig ist.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>MO</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>DI</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>MI</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>DO</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>FR</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>SA</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>SO</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Montag</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Dienstag</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Mittwoch</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Donnerstag</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Freitag</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Samstag</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Sonntag</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>KW</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Kalenderwoche</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>Januar</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>Februar</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>März</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>April</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>Mai</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>Juni</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>Juli</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>August</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>September</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>Oktober</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>November</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>Dezember</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Kalender</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Teilnehmerzahl</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Zeige Layouteinstellungen</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Breite | Höhe</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Video-Container</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Moderations-Container</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Whiteboard-Container</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Aktiviert</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Breite | Höhe</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Dateien-, Chat-, Teilnehmer-Container</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Aktiv</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Breite | Höhe</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>Der Moderator hat den Raum verlassen. Sie müssen die Moderation beantragen wenn Sie auf das Zeichenbrett zeichnen wollen.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>Es gibt momentan keinen Moderator in diesen Raum. Sie müssen die Moderation beantragen oder warten.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Feedback $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Einladung</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Nachricht von Benutzer:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Nachricht:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Klicken Sie auf diesen Link, um in den Raum zu gelangen:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Klicken Sie hier</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>Wenn der Link fehlerhaft dargestellt wird, kopieren Sie bitte folgenden Link in die Adresszeile ihres Browsers:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME Registrierung</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Ihre Benutzerdaten:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Login:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Pass:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>E-Mail:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME-Team</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME Registrierung</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - Passwort zurücksetzen</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Klicken Sie hier, um ein neues Passwort einzugeben:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Klicken Sie hier</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>Wenn der Link fehlerhaft dargestellt wird, kopieren Sie bitte folgenden Link in die Adresszeile Ihres Browsers:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME Password Reset</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Bitte geben Sie ein gültiges Datum an, zum Beispiel 24.12.2001 (dd.mm.yyyy)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Bitte geben Sie eine gültige E-Mail an, zum Beispiel name@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Bitte geben Sie eine Dezimalzahl an, zum Beispiel 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Bitte geben Sie eine Ganzzahl an, zum Beispiel 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Bitte geben Sie eine gültige Telefon-Nummer an, zum Beispiel ++49 0123 123123</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Bitte geben Sie eine gültige Uhrzeit an, zum Beispiel 12:23 (hh:mm)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Passwort geschützt</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Passwort</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Gültigkeit</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Immer</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Zeitspanne</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Einmalig</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Gültig ab:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Gültig bis:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Einladung für diese Konferenz</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Keine Einladung für diesen Code</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>Die Einladung ist nicht mehr gültig.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>Die Einladung ist nicht mehr gültig.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Passwort:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Überprüfen Sie das Passwort</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Falsches Passwort!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Browser</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Ton/Video neu starten</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Sitzung abgelaufen oder ungültig.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>SessionId ist nicht eingeloggt oder hat keine Administratorrechte. Das SOAP Gateway benötigt einen Benutzer mit Admin-Rechten um einen neuen Nutzer einzubetten.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>Diese Sitzung steht mit keiner Remoteuser-Data in Verbindung. Entweder haben Sie das SOAP-Gateway vor dem Zugriff auf die Anwendung nicht gerufen oder Sie benutzen die falsche Sitzungs-ID</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>Die Aufnahme von Meetings ist noch Beta!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>x-Achse</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>y-Achse</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>w</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>Breite</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>h</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>Höhe</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Transparenz ändern</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Browser offen</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Browser geschlossen</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>Die Verbindung zum Server ist abgebrochen. Prüfen Sie ihre Netzwerk-Verbindung und starten Sie die Anwendung neu.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Pointer</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Synchronisiere</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Synchroniziere Benutzer, bitte warten Sie</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Download als SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Download als PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Download als JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Download als PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Download als TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Erinnerung</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Kategorie</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Wiederholung</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>Keine</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Ort:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Start</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>Ende</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Titel:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Kommentar:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Jemanden einladen</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>täglich</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>monatlich</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>jährlich</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Terminstart muss vor Terminende liegen!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Bitte geben Sie einen Titel an!</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Aktivieren Sie die falls es sich um eine Eingabe einer Rechts-Nach-Links Sprache (arabisch, persich, hebräisch) handelt.</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Start</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Aufgenommene Konferenzen betrachten</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Meeting - Machen Sie eine Konferenz&lt;br/&gt;</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Event</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Benutzer, Konfiguration und Verwaltung</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Benutzer in diesem Raum</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Einloggen</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Lade Dokument. Bitte warten Sie bis alle Benutzer synchonisiert wurden.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Dokument hochgeladen. Konvertiere ...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Starte Upload</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Hochladen und importieren. Bitte wählen Sie eine Datei aus.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Abbrechen</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Datei auswählen</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Verbindungen</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Wert</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Streamid</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Login</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Verbunden seit</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Raum / Bereich</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Ausloggen</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Benutzeranbindung ausloggen</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Wollen Sie diesen Benutzer wirklich von dieser Verbingung ausschließen?&lt;br/&gt; Diese Maßnahme entfernt den Benutzer lediglich aus dem Raum. Der Benutzer kann sich wieder einloggen.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Ihre Sitzung wurde beendet.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Telefon</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>Benutzer ist Moderator dieses Raumes.</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>Benutzer darf nicht auf dem Zeichenbrett zeichnen</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>Neu starten von Ton/Video oder Einstellungen ändern</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Diesem Benutzer den Zugang zum Zeichenbrett gewähren.</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Diesem Benutzer den Zugang zum Zeichenbrett verwehren.</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Benutzer</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Dateien</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Zeichenbrett</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Chat</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Ihr Benutzer-Profil ist Mitglied in mehreren Organisationen. Bitte wählen Sie eine für diese Sitzung.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>Der Raum ist im Moment voll. Bitte versuchen Sie es später noch einmal.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Raumtyp</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Termin Raum</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Server Zeit</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - Erinnerung</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Nachricht von Benutzer:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Nachricht:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Klicken Sie auf diesen Link um in den Raum zu gelangen [Der Link funktioniert erst 15 Minuten vor dem Meeting!]:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Klicken Sie hier</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>Wenn der Link fehlerhaft dargestellt wird, kopieren Sie bitte folgenden Link in die Adresszeile Ihres Browsers:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>Suche intern</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>Externe Benutzer eingeben</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>Vorname</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>Name</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>E-Mail</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Abmeldung bestätigen</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Wollen Sie sich wirklich ausloggen?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Aktionen</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Demoraum</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Demo Zeit</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Meeting Zeitmesser</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>Dies ist ein Demo-Raum. Um diesen Hinweis abzuschalten sollten Sie entweder einen privaten Meeting-Raum für Ihren persönlichen Zweck aufsuchen oder Ihren eigenen Server anlegen. Sie werden automatisch ausgeloggt in:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Moderiert</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Bitte warten Sie bis der Moderator den Raum betreten hat. Der Moderator kann ein Lehrer, ein Administrator oder der Erschaffer dieses Raumes sein.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Ok</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Einkommende Bildteilung</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>Es gibt eine neue ankommende Bildteilung vom Benutzer:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Beginne Teilung</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Füge ein neues Meeting hinzu</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Meeting Raum</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Event Raum</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderation</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Moderiere Benutzer</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Moderiere Räume</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Wollen Sie diesen Benutzer zum Moderator der Organisation ernennen?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Bitte wählen Sie zuerst die Organisation aus bevor Sie einen Benutzer hinzufügen wollen!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organisation - Moderator</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Wollen Sie diesen Benutzer aus der Organisation wirklich löschen?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>Dieser Benutzer ist ein Moderator</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>Dieser Benutzer ist kein Moderator</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Wollen Sie diesem Benutzer die Funktion des Moderators entziehen?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Räume innerhalb der Organisation hinzufügen oder löschen</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Wollen Sie diese Aufnahme wirklich löschen?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Wollen Sie diesen Benutzer aus Ihrer Organisation wirklich löschen? Sie werden nur die Verbindung zwischen dem Benutzer und Ihrer Organisation löschen können, um den Benutzer wirklich zu löschen brauchen Sie Administrator-Rechte.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>Sie können Ihren eigenen Nutzeraccount nicht löschen!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>Diese Methode benötigt ein Administrator-Account um aufgerufen zu werden.</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>Es ist keine Sitzung mit dieser ID verbungen.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>Dies ist ein Administrator- oder Moderator-Account. Dieses Account können Sie nur mittels eines Administrator-Tableau bearbeiten.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>Um Ihre Registration abzuschließen klicken Sie bitte auf den folgenden Link. Oder kopieren Sie die URL(Link) in Ihre Browser-Adressleiste.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Klicken Sie um Ihre E-Mail zu bestätigen</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Es wurde kein Benutzer für diesen Hash gefunden.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Dieser Benutzer ist bereits aktiviert!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Sie haben Ihr Account erfolgreich aktiviert!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Jetzt einloggen</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Ihr Account ist nicht aktiviert. Benutzen Sie zuerst den Link in der E-Mail die Sie während der Registrierung erhalten haben.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>Sie haben sich erfolgreich angemeldet. Wir haben eine E-Mail mit einem Verifizierungscode an Ihre E-Mail-Adresse geschickt. Bitte überprüfen Sie Ihren Posteingang.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Diesem Benutzer die Moderationsrechte entziehen.</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Diesem Benutzer Moderatoionsrechte übertragen</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>Benutzer</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Zugang zum Zeichenbrett</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderator</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Moderation: Wählen Sie einen Benutzer aus der Liste um ihm den Zugriff auf Zeichenbrett, Moderation oder Video zu ermöglichen.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>Dieser Benutzer ist bereits Moderator. Er hat automatisch das Recht zu zeichnen.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>Das sind Sie! Sie können Ihre eigenen Moderatorrechte nicht entfernen.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Erlaube diesem Benutzer sein Video/ Audio zu veröffentlichen</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Audio/Video von diesem Benutzer entfernen</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>Ich würde gerne die Moderation dieses Raumes übernehmen.</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>Ich würde gerne auf dem Zeichenbrett zeichnen.</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>Ich würde gerne mein Audio/Video mit anderen teilen</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>Sie sind der Moderator dieses Raumes</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>Ihnen ist es erlaubt, auf dem Zeichenbrett zu zeichnen</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>Ihnen ist es erlaubt, Ihr Audio/Video mit anderen zu teilen</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Nachricht an den Moderator</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>Der Benutzer</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>würde gerne die Moderation übernehmen.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>würde gerne auf dem Zeichenbrett zeichnen.</value>
+  </string>
+  <string id="695" name="695">
+    <value>würde gerne sein Audio/Video mit anderen teilen.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>Sie müssen warten bis der Moderator den Raum betritt.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Abbruch</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Speichern</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Tag</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Monat</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Jahr</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Datei hochladen</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Ordner hinzufügen</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Aktualisieren</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Papierkorb (Ziehen Sie eine Datei mit der Maus hierher)</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>Meine Dateien (persönliches Laufwerk)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Konferenzdokumente (öffentliches Laufwerk)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Datei hinzufügen</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Ordner hinzufügen</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Ordner löschen</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Name bearbeiten</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>Neuer Ordner</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Sind Sie sicher, dass Sie dieses Element löschen wollen?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Suche</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Suche</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Dokument öffnen</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Zeige alle Dateien (Baum Ansicht)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Dokument schließen</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Datei löschen</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>Es ist Ihnen nicht gestattet auf dem Zeichenbrett zu zeichnen. Sie müssen Moderator sein oder zumindest das Recht besitzen das Zeichenbrett zu bearbeiten. Sie können den Moderator nach den Rechten fragen.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Dokumenteigenschaften</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Starte Client (extern)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Starte Client (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>Ein Benutzer will seinen Desktop freigeben. Wollen Sie ihn sehen?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>Sie haben ihren Desktop freigegeben. Wenn Sie die Freigabe beenden wollen drücken Sie die Anhalten-Schaltfläche im Desktop Sharer.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Geteilte Sitzung</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>Sie haben Ihren Desktop bereits freigegeben!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Desktop-Betrachter</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Beenden</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Desktop-Teiler</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Drücken Sie Start, um ihren Desktop freizugeben</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Start</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Anhalten</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Wählen Sie einen Bildschirmbereich aus:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Breite ändern</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>Die Freigabe wurde beendet!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Höhe ändern</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-Abstand</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-Abstand</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Breite:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Höhe:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Die Verbindung wurde vom Server abgebrochen.</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Abbrechen</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Extern starten</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>Wenn Sie diese Session schließen, können Sie die Session nicht wieder starten.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Sitzung wirklich schließen?</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Bildschirm teilen</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Sitzung aufnehmen</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Geteiltes surfen</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Upsa, ... Firefox unter Windows ist nicht in der Lage, mangelfreies Co-Browsing zu gewährleisten. Bitte benutzen Sie einen anderen Browser um die Co-Browsing-Funktion zu nutzen.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Vorherige</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Nächste</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Nachladen</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Heim</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Laden</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Diese Webseite als vorgegebene Webseite zu meinem Profil hinzufügen.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Teste Setup</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Überprüfen Sie Ihre Mikrofon- und Kameraeinstellungen bevor Sie einen Raum betreten und Aufzeichnungen durchführen. Sie können Ihre Aufnahmen im Nachhinein abspielen.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Dieses Fenster nicht wieder anzeigen</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Abbrechen</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Beginne Konferenz</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Nicht wieder fragen</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>Aufnahme</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>Abspielen</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>Sie können auch ohne einen Test fortfahren, falls Sie beabsichtigen Ihre Stimme oder Ihr Bild nicht zu veröffentlichen. Kursteilnehmer ohne Video oder Audio können dennoch das Zeichenbrett benutzen, ihren Desktop mit anderen teilen oder am Chat teilnehmen.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>Stop</value>
+  </string>
+  <string id="767" name="767">
+    <value>Lautstärke</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Start drücken</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Konferenz starten</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Event starten</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Raum wählen</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Prüfe Setup</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Starte Konferenz</value>
+  </string>
+  <string id="774" name="start view">
+    <value>Wie starte ich eine Konferenz</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Starte Aufnahme</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Audio-/Video-Test (Aufnahme) vor dem Betreten einer Konferenz nicht zeigen</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Öffentliche Räume</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Öffentliche Räume können von allen Benutzern benutzt werden.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Gruppenräume</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Private Räume sind nur für Benutzer in der selben Organisation verfügbar.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>Private Räume</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Räume in diesem Bereich sind für den persönlichen Bedarf. Die Räume haben ein Start und Enddatum und stehen nur in diesem Zeitraum zur Verfügung.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>Sie müssen Moderator sein, um diese Aktion auszuführen.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Moderation beantragen</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Zeichenbrett beantragen</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>WebCam/Mikrofon beantragen</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>Dieser SessionHasgh wird bereits genutzt. Er kann nicht zweifach vergeben werden.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>START</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>EXIT</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Wollen Sie die Konferenz wirklich verlassen? Vielleicht sollten Sie zuerst Dokumente, Zeichenbrett und Chat History leeren. Andernfalls werden die Dateien einfach in diesem Raum bis zu Ihrem nächsten Besuch bleiben.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Konferenz beenden</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Räume</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Wählen Sie einen Raum für die Konferenz aus</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>Es ist ein nicht gespeichertes Event im Kalender. Speichern Sie es oder löschen Sie es wieder.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Bitte fügen Sie mindestens einen Teilnehmer zum Event.</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Soll dieses Event wirklich aus dem Kalender gelöscht werden?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Warnung</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Neues Event</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>Tag</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>Woche</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>Monat</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Beschreibung</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Teilnehmer</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, Ihre Web Konferenz Plattform. Entweder starten Sie sofort ein Meeting indem Sie den 1-2-3 Anweisungen folgen oder Sie benutzen "Meetings planen" um eine Konferenz zu planen.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Konferenz planen</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>Um eine Konferenz zu planen können Sie einen Event im Kalender hinzufügen.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Brauchen Sie Hilfe?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Webinar</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Suche</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Ok</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>Es ist kein Benutzer ausgewählt. Wählen Sie zuerst einen Benutzer und drücken dann Ok.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Teilnehmer hinzufügen</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Speichern</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Löschen</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Event Details</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Default Moderatoren</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Name</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>E-Mail</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Neuen Default-Moderator hinzufügen</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Ist Super-Moderator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>In einem moderierten Raum sind Nutzer mit den Rollen Level-Moderator oder Administrator beim Betreten des Raums automatisch Moderatoren. Um dies abzuschalten, verwenden Sie die Funktion Default-Moderator.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>Der Super-Moderator ist beim Betreten eines Raums immer Moderator. Das Recht kann ihm im Raum nicht genommen werden.</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Nutzer Super-Moderatorrechte zuweisen</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Nutzer Super-Moderatorrechte aberkennen</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>Wenn eine Organisation einen Raum zugewiesen wird, haben nur Mitglieder der Organisation Zugang. (Dies gilt nur wenn die Einstellung isPublic auf false gesetzt wurde!)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderation</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Begrenzungen</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organisation</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Sind Sie sicher?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Wirklich löschen? Diese Aktion kann nicht wiederufen werden.</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>Es wurde kein Nutzer ausgewählt. Bitte erst auswählen, um ihn hinzuzufügen!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Neuen Default-Moderator hinzufügen</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Soll dieser Nutzer Super-Moderation werden? Super-Moderatorenrechte können nicht gelöscht werden. Zum Speichern der Einstellungen muss das Raumobjekt gespeichert werden!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Sollen die Super-Moderatorenrechte für diesen Nutzer aufgehoben werden? Zum Speichern der Einstellungen muss das Raumobjekt gespeichert werden!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>Dies ist ein Super-Moderator. Sie können die Moderationsrechte dem Nutzer nicht entziehen!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Wollen Sie wirklich diese Datei oder Ordner löschen?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Datei/Ordner löschen?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Fräulein</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Einstellungen</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Teilnehmern Mauszeiger anzeigen</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Audio mit SIP Applet übertragen</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Audio mit SIP aud Video mit Flash übertragen</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Vollformat</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>Bildschirm zeigen</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>Der Nutzer</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>möchte den Bildschirm übertragen. Wollen Sie ihn sehen?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Schließen</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>Die Sitzung wurde vom übertragenden Nutzer geschlossen!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>Neuer Desktop verfügbar</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimieren</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximieren</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Video Zeitspur</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>Meine Aufnahmen</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Öffentliche Aufnahmen</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Name</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Länge</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Datum</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>Von</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>Download</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Haupt - Video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Aufnahmen</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>Sie können gleichzeitig ihren Bildschirm teilen ode die komplette Session aufnehmen. Wenn Sie nur den Bildschirm teilen wollen genügt esauf Start zu drücken. Die fertige Aufnahme befindet sich bei den anderen Aufnahmen im öffentlichen Ordner.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Aufnahme starten</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Aufnahme stoppen</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download FLV-Datei</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Raum</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Abspielen</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stopp</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>Teilnehmer hat das Mikrofon an</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Bildschirm teilen stoppen</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Benutzerfragen erlauben</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Wenn Sie diese Option aktivieren ist die Schaltfläche zum beantragen der Moderation für andere Teilnehmer nicht sichtbar und Sie werden nicht in ihrem Vortrag gestört.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rechte</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Download AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Nur Audio nur</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>Es gab Fehler beim Verarbeiten der Aufzeichnung.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>Die Aufzeichnung ist noch nicht zur Wiedergabe bereit. Versuchen Sie es in einigen Minuten erneut.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Recorder Nachricht</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP Applet ist nicht bereit</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP-Account Einstellungen</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP Einstellungen für jeden Nutzer. De-Aktivieren Sie SIP über Administration &gt; Konfiguration (Key: enable_sip). Die SIP Daten für jeden Nutzer sollten automatisch generiert werden. Sie können diese neu erstellen lassen über die Funktion "Re-Generate/Wieder Herstellen der SIP Daten"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-Nutzer</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Passwort</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>Der Login zum SIP Gateway ist fehlgeschlagen. Prüfen Sie die Authentifizierungsdaten zum SIP-Provider und die SIP-Account Daten für jeden Nutzer. Als Administrator können Sie sich enloggen und die Konfiguration überprüfen. Nur Nutzer und Moderatoren sind derzeit von den Aktionen ausgeschlossen.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>Der Login zum SIP Gateway ist fehlgeschlagen. Kontakten Sie das SerrviceTeam.</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Am SIP-Gateway einloggen...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Am SIP-Gateway einloggen ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Log anzeigen</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log-Mitteilungen früherer Aufzeichnungen</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Applet Mitteilungen</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>Das SIP-Applet ist nicht bereit. Applet bitte bestätigen und dann 'OK' klicken.</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Moderation bekommen</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Terminänderungen speichern</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>Der Termin wurde geändert. Wollen Sie die Änderungen nun speichern? &lt;br/&gt;&lt;br/&gt;Alle Teilnehmer des Termins erhalten nun eine Benachrichtigung per E-Mail mit den neuen Daten (abhängig vom Benachrichtigungstyp).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>Zugriff zu anderen Aufzeichnungen über $APP_NAME Application.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Nutzer für dieses Video auswählen</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Verfügbare Nutzer für dieses Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>Sie sind Moderator dieses Interview. Sie legen die Sprecher fest und können die Aufzeichnung starten und stoppen.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Aufzeichnung starten</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Aufzeichnung stoppen</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>Die Interviewaufzeichung wurde bereits gestartet.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>Die Aufzeichung wurde bereits gestoppt oder noch nicht gestartet.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>Die Aufzeichnung des Interviews wurde bereits gestartet.</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Abbrechen</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>Die Nachbearbeitung eines Interview benötigt fünf Minuten für jede aufgezeichnete Minute. Die Anzeige zeigt den Fortschritt:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>Sie müssen das Passwort erneut eingeben, um SIP Daten automatisch zu erzeugen.</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>SIP Daten neu erzeugen</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>Sie können die Datei oder Ordner nicht in einen eigenen Unterordner verschieben.</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Größe Homeverzeichnis</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Größe öffentliches Verzeichnis</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>Lizenzeinstellungen</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>Mit der Lizenzaktivierung können Sie ein Ablaufdatum oder eine Höchstnutzungszeit (Minuten) für Nutzer festlegen.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Lizenz prüfen</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Ablaufdatum</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Verbrauchte Sekunden</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Gesamtzeit</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Ihre Lizenz ist abgelaufen. Sie können weitere Minuten ((Pay-per-minute) oder eine Flatate erwerben.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click-and-buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Restzeit für Account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>Nutzerlizenzinformation</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Schließen</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Ihre Lizenz ist abgelaufen. Sie können weitere Minuten ((Pay-per-minute) oder eine Flatate erwerben.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>Lizenzeinstellungen</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>Sie können entweder Nutzungszeit für Webkonferenzen (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; oder eine Volumenflatrate für 3-12 Monate erwerben. &lt;br/&gt;&lt;br/&gt;Der Versand von Einladungen mit direktem Link zum Konferenzraum oder dasErstellen von Konferenzräumen mittels Kalender für externe Nutzer ist nur mit einer Volumenflatrate zulässig.</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>60 Minuten 9,99 EURO (16 Cent pro Minute) kaufen</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>5 Stunden 19,99 EURO (6 Cent pro Minute) kaufen</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>3 Monate für 29,99 EURO (9,99 Euro pro Monat) kaufen</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>6 Monate fürr 39,99 EURO (6,66 Euro pro Monat) kaufen</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volumenflatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>Sie haben eine unbegrenzte Lizenz</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Ablaufdatum Ihrer Lizenz:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>Sie nutzen das Pay-per-minute-Modell. Sie haben noch:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Neue einkaufen!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Wollen Sie einen eigenen Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>Sie wünschen $APP_NAME als eigenständige Installation oder integriert in Moodle, SugarCRM, Website oder Intranet? Beginnen Sie ab 500 Euro.</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Oder senden Sie uns eine Nachricht</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Antwort an:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Nachricht:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Senden</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Kontaktinformationen und Preise? Klicken Sie hier</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Kreditkartendetails</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Vorname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Nachname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Kreditkartentyp</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Karte</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Kreditkartennummer</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Ablaufdatum</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Kartenprüfnummer</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Rechnungsanschrift</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Adresse</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>Stadt</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Land</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>Staat (nur US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>PLZ</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Betrag</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Abschicken</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Schritt 1: $APP_NAME - Zahlungsformular</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>E-Mail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Klicken Sie auf "Zahlen mit Paypal".&lt;br/&gt; Paypal akzeptiert VISA, MasterCard, Discover oder American Express. &lt;br/&gt;Sie müssen sich dazu nicht bei Paypal registrieren. &lt;br/&gt;Nutzer aus Deutschland können auch per Lastschrift-Einzug zahlen.</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Vielen Dank für Ihren Einkauf von $APP_NAME. &lt;br/&gt; &lt;br/&gt; Sobald die Zahlung bei uns eingetroffen ist wird Ihr Account aktualisiert.&lt;br/&gt; Sie erhalten eine E-Mail mit Ihrer Rechnung als PDF.&lt;br/&gt;Die aktuelle und frühere Transaktionen sind in Ihren Profileinstellungen dokumentiert.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Sie können dieses browserfenster/den Tab nun schließen und zu $APP_NAME zurückkehren.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Abschicken Kauf bestätigen.</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Schritt: $APP_NAME Bezahlung - Bestellung prüfen und kaufen.</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Zahlung erhalten.</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Guten Tag,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value></value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Vielen Dank für die Nutzung von $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Zahlung erhalten $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Zahlungen und Transaktionsstatus</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transaktions-Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minuten</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Monate</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Rechnung</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>Zum Versand von Einladungen oder zur Erstellung von Sitzungen über den Kalender benötigen Sie eine Volumenflatrate. Mit Pay-per-minute Tarifen können Sie selber das Angebot von $APP_NAME nutzen, nicht aber Dritte zur Teilnahme an einem Meeting einladen.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>Diese E-Mail-Adresse wird bereits durch einen anderen Nutzer verwandt.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Einstellungen</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>Die Konferenznummer und PIN ist automatisch über das OpenXG RPC-Gateway erstellt worden.</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Nummer</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Nur auf aktueller Seite löschen.</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Nur die URL der Statusanzeige wird an Teilnehmer versandt.</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Teamräume [Breakout session] erstellen</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Nutzer für neuen Teamraum auswählen</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>Sie können nun Teilnehmer auswählen und für diese einen Konferenzraum (Teamraum) anlegen. Die ausgewählten Teilnehmer werden direkt in den Raum verschoben oder benachrichtigt. Moderateoren in den Teamräumen erhalten eine Liste ihrer aktuellen Räume, um zwischen diesen zu wechseln falls ein Moderator benötigt wird.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Nutzername</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Nutzer für neuen Teamrraum:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Teamraum anlegen</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Abbrechen</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Wählen Sie zumindest einen Nutzer für den Teamraum</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>In Team einfügen</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Aus Teamraum austragen</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>Nutzer hat Moderatorenrolle im Teamraum. Er ist zur Verwaltung des Teamraums berechtigt und kann Teilnehmer zulassen.</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Raumtyp</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>Wenn Sie "Wechseln in neuen Teamraum erzwingen" anklicken erden alle Nutzer automatisch in diesen Raum übertragen. Andernfalls erhalten sie eine Benachrichtigung mit einem Button und &lt;i&gt;können&lt;/i&gt; wählen, ob sie in den neuen Raum wechseln wollen. Teammoderatoren haben immer die Wahl zu entscheiden,ob sie wechseln wollen.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Teamräume verwalten</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>Als Teamraummoderator können Sie zwischen allen Räumen wechseln, denen Sie zugewiesen wurden. Teilnehmer in Teamräumen können Ihnen eine Nachricht senden, uz.B. um Sie zu bitten Ihnen behilflich zu sein. Sie können die Teamräume auch beschränken und Nutzer ausloggen.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Wechseln in neuen Teamraum erzwingen</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Erstellt</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Verfügbare Nutzer</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Mit Pluszeichen Nutzer hinzufügen; mit Kreuz austragen.</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1. Teamraumeinstellungen</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2. Nutzer zu Teamraum hinzufügen</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Titel Teamraum</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Teamraum</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>In Raum wechseln</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>In diesen Teamraum wechseln</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Teamraum schließen und alle Nutzer ausloggen</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>Neuer Teamraum</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>Ein neuer Teamraum wurde für Sie angelegt.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>In Teamraum wechseln</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Teamraumaktionen</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>Sie können dieses Fenster erneut öffnen über das Hauptmenu &gt; Aktionen.</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Mitteilung an Teamraummoderator versenden</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>Neuer Teamraum</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>Ein neuer Teamraum steht zur Verfügung. Sie können nun in diesen Raum wechseln. Teamräume sind Bereiche für Arbeitsgruppen. Sie haben zusätzlich die Möglichkeit, einen Moderator um Hilfe zu bitten. Der Teamraum wird ihnen auch in der Übersicht "Meine Meetings" angezeigt.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>In Teamraum wechseln</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Erstelltvon:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Name des Teamraums:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>Dieses Fenster bleibt offen auch wenn Sie den Teamraum verlassen.</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Nutzer dieses Teamraums</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3. Andere Teamräume auf die Sie Zugriff haben</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Teammoderator Nachricht senden. Nutzen Sie diese Möglichkeit falls Sie Hilfe benötigen oder eine Frage haben.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Senden</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2. Eingeladene Nutzer für diesen Teamraum</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>ist Teamraummoderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>Alle vom Moderator eingeladenen Nutzer für diesen Teamraum.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>Zur Zeit ist kein Teammoderator eingeloggt.</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Bitte Nachricht eintragen</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Bitte helfen Sie uns. Wir haben ein Problem im Teamraum.</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>Ein Nutzer des Teamraums bittet Sie um Unterstützung.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Teamraum Unterstützungsanfrage</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Mitteilung:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>Von:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>Sie befinden sich derzeit in keinem Teamraum. Von hier aus können Sie in jeden Teamraum wechseln auf den Sie Zugriff haben.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Systembackup. Das Backup schließt alle von Nutzern erzeugten Daten ein. Die Konfiguration wird nicht ins Backup einbezogen, da diese Daten mit der Systeminstallation erstellt werden. Zum Update des Systems exportieren Sie das alte System (1), installieren Sie das neue Systempaket in eine neue Datenbank (2) und imporieren Sie das Backup des alten Systems (3). Achten Sie darauf, das Backup vorzunehmen, bevor im neuen System neue Daten erzeugt werden.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>Systembackup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Bildschirm teilen/Aufzeichnung Nutzern erlauben</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Bildschirm teilen/aufzeichnen Nutzern untersagen</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>Nutzer ist Moderator. Er kann alles tun.</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>möchte Bildschirm zeigen/aufzeichnen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>Sie können den Bildschirm teilen /aufzeichnen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Anfrage zum Teilen/Aufzeichnen des Bildschirms.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Erlauben/untersagen Bildschirm zu teilen/aufzuzeichnen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Ton abschalten</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Ton anschalten</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Raum nur mit Audio</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Mit dieser Funktion erlauben Sie im Raum nur Audioübertragung und schalten Video ab. Dies kann sinnvoll sein, um Bandbreite zu reduzieren.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Remote Control erlauben (während Bildschirmübertragung)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Remote Control untersagen (während Bildschirmübertragung)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Remote Control Screen-Berechtigung anfragen (während Bildschirmübertragung)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>Sie sind berechtigt zu Remote Control Screen (während Übertragung)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>bittet um Zugriff auf remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>Nutzer ist Moderator. Er kann alles tun. [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Erlauben/untersagen Recht auf Remote Control Screen (Während Bildschirmübertragung)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1. Ihr PC an Remote-PC: Klicken Sie auf den Bildschirm um Text aus Zwischenablage in Remote Screen einzufügen. Machen Sie dann einen Rechtsklick im Textfeld und wählen 'Einfügen' im Kontextmenu&lt;br&gt;&lt;br&gt;2. Vom Remote PC auf Ihren PC: Um Text vom Remote PC auf ihren PC zu übertragen markieren Sie zunächst am Remote PC mit der Maus. Klicken sie dort mit der rechten Maustaste auf den Text und wählen Sie &lt;i&gt;Kopieren des markierten Texts&lt;/i&gt; im Kontextmenu. Auf Ihrem PC nutzen Sie die Funktion 'einfügen'.</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Kopieren und Einfügen von Text zwischen Remote PC und eigenem PC.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Kopieren des markierten Texts</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>Kopieren und Einfügen</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Qualität der Übertragung:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Sehr hohe Qualität</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>Hohe Qualität</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Mittlere Qualität</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Niedrige Qualität</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Tastatur:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Webinar beenden</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>Das Webinar ist bereits beendet. Weitere interessante Angebote befinden sich in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Raum schließen</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Ausgang (URL)</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Einstellungen für Raumbeschränkung (zeitlich)</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>Wenn der Raum geschlossen wird, werden die Teilnehmer zum Ausgang (URL) geleitet.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>LDAP</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Configurationsdatei</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>LDAP Konfiguration</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Aktiviert</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Eingefügt</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Eingefügt von</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Aktualisiert</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Aktualisiert von</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>Die Konfigurationsdateien liegen im gleichen Ordner wie webapps/openmeetings/conf. Die Dateien müssen manuell in den Ordner kopiert werden. Änderungen an der Konfigurationsdatei sind direkt online wirksam.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Name der Konfigurationsdatei</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>Wenn Sie "Domain zum Nutzernamen hinzufügen" aktivieren wird der Eingabe des Nutzers beim Login derim Feld 'Domain' hinterlegte Wert hinzugefügt. Dies ist sinnvoll wenn in einem LDAP System der Nutzer mit einer Domainangabe geführt wird. Beispiel. Der Nutzer gibt beim Login 'Hans' ein. Die Domain ist mit 'localhost.com' eingetragen. Im LDAP wird hans@localhost.com geprüft.</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Domain zum Nutzernamen hinzufügen</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Einfügen</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Markierten Text kopieren</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Text aus Remote Zwischenablage</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Remote Zwischenablage anzeigen</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Nicht noch einmal anzeigen</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Text hier einfügen ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>Sie benötigen Remote Control-Rechte (oder Moderationsrechte)um das kopieren und Enfügen auf dem Remote Screen auszuführen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Grundeinstellungen bearbeiten ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Infofeld zum Kopieren/Einfügen nicht in Remote Control anzeigen</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Speichern</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Entfernen</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Abbrechen</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Nutzer in Konferenzraum einladen</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Konferenzraum auswählen. Die eingeladenen Nutzer erhalten eine Nachricht mit Ihrem Namen und dem Link zum Raum.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Verbunden seit:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Nach Einladungsversand Raum betreten</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Einladen</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Nachricht</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>möchte Sie in den Konferenzraum einladen:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Einladung</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Einladung versenden</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>nimmt Ihre Einladung &lt;b&gt;nichtt&lt;/b&gt; an.</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Annehmen</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Ablehnen</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Zeitzone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Beschreibung</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Erstellt von</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>Hinweis zur Zeitzone</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>"Hinweis zur Zeitzone" geben wenn Nutzer sich das nächste Mal einloggt, damit diese das Nutzerprofil aktualisieren.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Bitte prüfen Sie die eingestellte Zeitzone in Ihrem Nutzerprofil.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>Neue $APP_NAME Konferenz:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>Ende:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>$APP_NAME Konferenz geändert:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organisation durch:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>$APP_NAME Konferenz abgesagt:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>Erinnerung an $APP_NAME Konferenz:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community-Einstellungen</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Kontaktdaten für alle sichtbar</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Interessenfelder eingeben, um ebenfalls interessierte Partner für Konferenz zu finden. Werte durch Komma trennen (z.B.: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>Meine Angebote</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>Meine Interessen</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Zeitzone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Interessenfelder</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Kontaktinformationen</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Meine Kontaktdaten nur persönlichen Kontakten anzeigen</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Niemanden meine Kontaktdaten anzeigen</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>Mein Profil</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Einstellungen bearbeiten</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Nutzer suchen</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Profilvorschau</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Einstellungen bearbeiten; z.B: Interessen eingeben, um gefunden zu werden</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Andere Nutzer suchen und Netzwerk erweitern</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Suchen</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>Nutzer bietet an</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>Nutzer sucht</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freitext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Zeitzone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Angebote</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Gesuche</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Suchergebnis</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Aktionen</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Als Kontakt hinzufügen</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Nachricht senden</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Kontakte und Nachrichten</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Wartende Kontakte</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Akzeptiern</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Ablehnen</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Guten Tag,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>ich würde Sie gerne als Kontakt hinzufügen.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Prüfen Sie Ihre Kontaktanfragen in $APP_NAME oder klicken Sie auf die Links zum Akzeptieren oder Ablehnen der Anfragen.</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>Der Nutzer ist bereits in Ihrer Kontaktliste oder hat von Ihnen eine Benachrichtigung erhalten, die noch nicht beantwortet wurde.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Ihre Kontaktliste</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Kontakte und Nachrichten bearbeiten,&lt;br/&gt; wartende Kontakte bearbeiten</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>hat Sie als Kontakt bestätigt</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Chat Log anzeigen/kopieren</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>Von</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Thema</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Senden</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Nachrichten</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>Neue Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Neue Nachricht an meine Kontakte schreiben</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Neue Nachricht schreiben</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>An:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Thema:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Vollansicht: das Whiteboard wird in der größtmöglichen Ansicht &lt;br/&gt; gezeigt. Darstellung ist abhängig von der&lt;br/&gt;Bildschirmauflösung der Nutzer.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Nutzer entfernen</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>Sie können sich nicht selbst aus dem Konferenzraum entfernen. Wenn Sie den Konferenzraum verlassen wollen, schließen Sie das Browserfenster oder nutzen Sie den Ausgang-Button.</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Wollen Sie den Nutzer tatsächlich aus diesem Konferenzraum entfernen?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Aktion bestätigen....</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>Sie können den Super-Moderator nicht aus dem Raum ausschließen</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Konferenzraum buchen</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>Ende</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Erstellen Sie einen Konferenzraum und eine optionale Teilnahmeanfrage zum Meeting. Der Termin wird in die Kalender aller Teilnehmer eingetragen.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Eingang</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Gesendet</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Gelöscht</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>Sie können sich nicht selbst als Kontakt einfügen.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>Der Nutzer wurde bereits abgelehnt.</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>Der Nutzer wurde bereits bestätigt.</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>Nutzerkontakt Hash-Wert ist ungültig</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>Nutzer wurde zu Kontaktliste hinzugefügt.</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>Kontakt für Nutzer abgelehnt und von Warteliste entfernt.</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>Kein Kontakt gefunden.</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Wollen Sie den Kontakt tatsächlich entfernen?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Kontakt entfernen bestätigen</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Kontakt von Liste entfernen</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>Nutzerprofile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Nutzerprofile anzeigen</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Nachrichten</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Suche</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Alle auswählen</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Keine auswählen</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Ungelesene auswählen</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Gelesene auswählen</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>In Ordner verschieben ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Neuen Ordner anlegen ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Löschen</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Gelöschte Mails liegen im Papierkorb.</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Ungelesene markieren</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Gelesene markieren</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Antwort</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Antwort an alle</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Weiterleiten</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Aktionen ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Private Nachricht senden</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nichts ausgewählt</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>In Eingang verschieben</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Löschen (endgültig)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>Diese Aktion kann nicht rückgängig gemacht werden.</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Ordner hinzufügen</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Ordner hinzufügen und Nachrichten verwalten.</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Ordner hinzufügen</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Hinzufügen</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Ordner löschen</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>Löschen oder verschieben Sie erst die Nachrichten in dem Ordner. Danach kann der Ordner gelöscht werden.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Name bearbeiten</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Wollen Sie den Ordner wirklich löschen? Der Vorgang kann nicht rückgängig gemacht werden.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Ihre Anfrage wurde an den Nutzer gesandt. Er kann die Benachrichtigung annhmen oder ablehnen. Nur angenommene Anfragen erscheinen in Ihrer Kontaktliste.</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Nachricht</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>Der Nutzer veröffentlicht die persönlichen Kontaktdaten nicht.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>Der Nutzer zeigt die persönlichen Kontaktdaten nur seinen bestätigten Kontakten.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Adresse &amp; Telefon</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>Ihr Einladungscode ist ungültig. Er kann nur im angegebenen Zeitraum genutzt werden:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>Der Termin ist in den Kalendern anderer Nutzer eingetragen. Die Änderungen werden auch dort vorgenommen. Wollen Sie den Termine wirklich aktualisieren?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Aktualisierung bestätigen</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Dieser Kontakt darfen meinen Kalender einsehen (nur Ansicht)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Kalender nicht veröffentlichen</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Kalender meiner Kontakte</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Erste wenn die Kontakte bestätigt wurden besteht Zugriff auf die Kalender.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>Sie können nur in Ihrem eigenen Kalender Termine speichern oder löschen.</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Meinen eigenen Kalender anzeigen.</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>Der Termin ist in den Kalendern anderer Nutzer eingetragen. Soll der Termin wirklich überall gelöscht werden?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Aktion bestätigen</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Raum betreten</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Zugang zum Konferenzraum</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>Ein Konferenzraum und Termin ist durch diese private Nachricht gebucht worden.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>DerTermin muß erst noch gespeichert werden.</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>Der Termin und der gebuchte Raum wurden inzwischen gelöscht. Der Raum steht nicht zur Verfügung.</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Spitznamen wählen</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Vorname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Nachname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>E-Mail</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Mindestens 4 Zeichen für Vor- und Nachname eingeben.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Bitte geben Sie eine gültige Mail-Adresse ein.</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login mit Ihrem Facebook-Account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Mitglied seit</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>Sie sind über Ihren Facebook-Account eingeloggt. Aktualisieren Sie in Ihrem Profil Ihre E-Mailadresse. Sie erhalten sonst keine Einladungen zu Sitzungen odr Nachrichten von Ihren Kontakten.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Nachricht</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Mitteilung zur Profilaktualisierung künftig nicht anzeigen.</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>weitere Anzeigemöglichkeiten ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>Neue private Nachrichten:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Klicken Sie auf Ihr Profil um die ganze Nachricht zu sehen....</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Anworten</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Räume und Chat</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>Meine Räume</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>Mein Konferenzraum (für 1-16 Benutzer)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>Mein Webinarraum (für 1-120 Benutzer)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Eigne ID</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Bitte Passwort eingeben</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>Sie benötigen einen Nutzeraccount als Teilnehmer, Moderator oder Administrator</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (nur SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Direkt auf Whiteboard ablegen</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Soll dieses Whiteboard wirklich entfernt werden? Die Aktion kann nicht rückgängig gemacht werden.</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>In Whiteboard laden</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Vergessen Sie nicht die Aufzeichnung zu starten. Ein Nutzer des Raum muß die Aufzeichnung starten, damit diese anschließend zur Verfügung steht.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Aufzeichnung starten</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Pfeil</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Kreis</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Linie</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Rechteck</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Dreieck</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Notiz</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Frei Zeichnen</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Auswählen/Verschieben</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Form zeichnen</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Ausschneiden/verschieben</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Drucken</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Rückgängig</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Löschen</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Raster einfügen</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Datei bereitstellen</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Form auswählen</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Clipart auswählen</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Kopieren</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Ausschneide</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Einfügen</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Löschen</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Wollen Sie wirklich den gesamten Inhalt der Whiteboard löschen?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Direkt auf Whiteboard ablegen.</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Teilnehmer</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Teilnehmerverwaltung</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Anwesend</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Control</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Austragen</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Teilnehmer einladen</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>Per E-Mail</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>Nutzer ist Moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>Nutzer hat Webcam aktiviert</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Form ausfüllen deaktivieren</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Form ausfüllen aktivieren</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Einrasten</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Aufzeichnung erlauben</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Warten auf Aufzeichnung</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Topbar verbergen</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Video abspielen</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Wollen Sie wirklich den Inhalt der aktuellen Folie löschen?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Nutzerrechte akzeptieren/gewähren</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Ablehnen</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Aktivitäten und Aktionen</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Whiteboard entfernen</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>Um Whiteboards zu entfernen benötigen Sie Moderations- oder Schreibrechte für die Whiteboards.</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Nicht erlaubt</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>hat den Raum verlassen.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Mathematische Zeichen</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>Keine Kategorie</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Farbstil</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Qualität</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>besuche</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>rot-orange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mittel seegrün</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>stahlblau</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>hellstahlblau</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>rotgold</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silbergrau</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>nutzerdefiniert</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>beste</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>Upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>mittlere</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mikrofone für alle stumm schalten</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Mikrofone für alle aktivieren</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mikrofone für andere stumm schalten</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>Der Moderator hat ihr Mikrofon stumm geschaltet. Sie können dies nicht selber ändern.</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mikrofon für alle stumm schalten?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Wollen Sie Ihr Mikrofon wirklich stumm schalten? Niemand wird Sie dann hören können.</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mikrofon für alle stumm schalten?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Wollen Sie dieses Mikrofon wirklich stumm schalten? Sie hören danach den Nutzer nicht mehr. Dies hat keine Auswirkung ob andere Nutzer es noch hören. Nur Moderatoren können Mikrofone für alle abschalten.</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mikrofon für alle stumm schalten?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Wenn Sie dieses Mikrofon für alle stumm schalten wird kein Nutzer es mehr hören können.</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Ihr Ton ist aktiv. Klicken Sie hier, um dem Moderator eine Nachricht zu senden, Ihr Mikrofon für alle Nutzer im Konferenzraum stummzuschalten.</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Ihr Ton ist stummgeschaltet. Klicken Sie hier, um dem Moderator eine Nachricht zu senden, Ihr Mikrofon für alle Nutzer im Konferenzraum anzuschalten.</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>bittet den Moderator das eigene Mikrofon für alle Nutzer des Raums stummzuschalten.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>bittet den Moderator das eigene Mikrofon für alle Nutzer des Raums anzuschalten.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>bittet den Moderator sein/ihr Mikrofon anzuschalten.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>bittet den Moderator sein/ihr Mikrofon stummzuschalten.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Mikrofon anschalten. Hier klicken, um das Mikrofon für alle Nutzer des Raums stummzuschalten.</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mikrofon stummschalten. Hier klicken, um das Mikrofon für alle Nutzer des Raums anzuschalten.</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>Mikrofon des Nutzers ist vom Moderator für alle stummgeschaltet. Sie können es nicht reaktivieren.</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mein Mikrofon für alle stummschalten.</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Mein Mikrofon für alle anschalten.</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mikrofon stummschalten</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Mikrofon anschalten</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mikrofon für alle abschalten</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Mikrofon für alle anschalten</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Nur Moderatoren können Mikrofone für alle an/abschalten. Sie können Ihr eigenes Mikrofon mit dem Mikrofon-Icon abschalten.</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Titel der Abstimmung</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>Sie</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archivierte Abstimmungen</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>aktiv</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Einfache Grafik</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Tortengrafik</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Bitte geben Sie eine E-Mail-Adresse an</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>Neue Nachricht(en)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Abstimmung schließen</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Wollen Sie die Abstimmung wirklich schließen? Danach kann sich niemand mehr beteiligen.</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Abstimmung löschen</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Wollen Sie die Abstimmung wirklich löschen? Damit werden auch alle Ergebnisse gelöscht.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Sprache: ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Recht für exklusiven Audiozugriff vergeben/entziehen.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Nutzer erhält Recht für exklusives Audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Recht für exklusives Audio für Nutzer entziehen</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>bittet um Recht für exklusives Audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>bittet den Moderator darum ihm exklusives Audio-Recht zu geben.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Recht für exklusives Audio geben.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Kamera-Auflösung</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Die Kamera-Auflösung hat einen direkten Einfluss auf die verbrauchte Upload-Bandbreite!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>Sie verfügen nicht über das Recht sich selbst oder anderen exklusives Audiorecht zu geben. Sie können jedoch den Moderator bitten, Ihnen diese Berechtigung zuzuweisen.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>Ich würde gerne das Recht auf exklusives Audio erhalten.</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Mir exklusives Rederecht geben (alternativ: klick auf Video Pod oder F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Mikrofon ist an</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Mikrofon ist abgeschaltet</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Chat verbergen</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Aktivitäten verbergen</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Dateiverwaltung verbergen</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Aktionenmenü verbergen</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Screen Sharing verbergen</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Whiteboard verbergen</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Mikrofonstatus in Video anzeigen</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout Optionen</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>Neuer Termin</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Passwortgeschützt ist nicht der Raum sondern die Einladungen die an die Teilnehmer verschickt werden! D.h. wenn Sie einen Termin mehrmals mit unterschiedlichem Passwort speichern wird jedesmal ein Link per mail zum Konferenzraum an alle Teilnehmer verschickt mit dem jeweiligem Passwort. Bereits versendete Einladungen funktionieren weiterhin!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Termin ändern</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Zeige sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Anrufen</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Zeige Kalender Einträge</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Startseite</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Ihr Terminkalender</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Aufnahmen ansehen und verwalten</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Konferenzraum beitreten</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Benutzerrechte verwalten</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Verbindungen verwalten</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Benutzergruppen verwalten</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Konferenzräume verwalten</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>System-Einstellungen verwalten</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Sprachen verwalten</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>LDAP und ADS Konfiguration</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import von Systemsicherungen</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>Sie verfügen nicht über die erforderlichen Berechtigungen für diese Funktion</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Text bearbeiten</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Veröffentlichen</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduzieren Sie die Breite des Sharing-Screens, bevor Sie versuchen ihn nach links zu verschieben.</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduzieren Sie die Höhe des Sharing-Screens, bevor Sie versuchen ihn nach unten zu verschieben,</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduzieren Sie x des Sharing-Screens, bevor Sie versuchen ihn zu erweitern weiter,</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduzieren Sie y des Sharing-Screens, bevor Sie versuchen die Höhe zu verändern.</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Tragen Sie hier die Einstellungen zu Ihren Bildschirmdaten für Drittanbeiter wie justin.tv ein</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Bitte starten Sie Screen-Sharing, um in der Lage zu sein, ihn zu veröffentlichen</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator Berechtigung erforderliche, um die Aufnahme zu starten</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>Sie haben keine Berechtigung, um jedem Teilnehmer Audio-Rechte zu gewähren. Sie müssen Rolle Moderator besitzen oder das Recht Audio für jedes Mikrofon einzuschalten.</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>neue Datei in Datei-Explorer hochladen</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Öffne neuen Dialog mit Sharing-Einstellungen</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>Ein existierender Moderator muss dies genehmigen</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Fragen Sie den Moderator, um Ihr/e Webcam/Mikro zu teilen</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Feedback sammeln, indem sie eine Umfrage starten</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Vergangene und gegenwärtige Umfrage-Ergebnisse als Diagramme</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Stimmen Sie ab, wenn es eine Umfrage für diesen Konferenzraum gibt</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Bearbeiten der Webcam und Mikrofon-Einstellungen</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Bestätigen und verlassen des Raumes</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Rufen Sie externe Personen über VoIP/SIP an</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Senden Sie eine E-Mail mit einem direkten Link zu diesem Raum</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Ändern Sie Ihre Whiteboard-Einstellungen</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Maximal Upload-Größe</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Fragen Sie den Moderator, um Ihr Whiteboard teilen</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>Alle</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>Sie können nicht mit sichselbst einen privaten Chat starten.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>Sie haben bereits einen privaten Chat mit diesem Teilnehmer gestartet.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Wollen Sie wirklich diesen privaten Chat löschen?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Server</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Beteiligten Server im Cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server-Addresse</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server-Details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Sende SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Veröffentlichen. Nutzer:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>Um Zeit und Internet-Verkehr sparen, können Sie den Befehl admin für Backup/Wiederherstellen/Aktualisieren verwenden. &lt;ol&gt; &lt;li&gt;Gehen sie zum OM-Installationspfad (z.b. /opt/red5)&lt;/li&gt; &lt;li&gt;Stopen Sie OM (z.b. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/heute_om_backup.zip (Backup vom bestehenden OM erstellen)&lt;/li&gt; &lt;li&gt;Laden Sie die neue Version OM herunter&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (kopieren Sie die existierende OM-Version für den Fall :))&lt;/li&gt; &lt;li&gt;Entpacken Sie die heruntergeladene OM-Version nach /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/heute_om_backup.zip (or './admin.sh -i -file ~/heute_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass', für den Fall, dass Sie eine Nicht-Standard-DB verwenden)&lt;/li&gt; &lt;li&gt;Starten Sie OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>gemeinsame Räume für alle Benutzer</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>gemeinsame Räume für die aktuelle Benutzer-Gruppe</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Räume des aktuellen Benutzers</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Erstellen/Ändern Termin spezieller Raum</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>Sie können mehrere Adressen im folgenden Format angeben: vorname1 nachname1 &lt;email1&gt;,"vorname2 nachname2" &lt;email2&gt;,'vorname nachname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Stream-Volumen anpassen</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Mikrofon-Volumen anpassen</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Chat ist moderiert</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Erlaube Nachrichten</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat-Feld standardmäßig geöffnet</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Dateien-Fenster standardmäßig geöffnet</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>letzter ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Jeder Slave sendet alle 3 Sekunden einen Ping an den Master (konfigurierbar). Der lastPing des Slave muss kleiner sein als 1 Minute, so dass der Master den Slave verwendet.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>Benutzer (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Passwort</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapplikations-Pfad</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protokoll</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>ping läuft</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>URL generieren</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Netzwerk testen</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auswahl Interview Video Pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>unterstreichen</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Schriftart</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Schriftarten erlauben</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Schriftfarbe</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Session-Statistiken anzeigen</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Details zur Session</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System Import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>beinhaltet hochgeladene Dateien und Aufnahmen im Backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Aktivieren Sie SIP-Verkehr im Raum</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Wollen Sie wirklich diesem Benutzer exklusive Audiorechte geben?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/dutch.xml b/src/main/webapp/languages/dutch.xml
new file mode 100644
index 0000000..4f27c9b
--- /dev/null
+++ b/src/main/webapp/languages/dutch.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Overleg</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Afspraak</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Evenementen</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Instellingen</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Profiel</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Beheer</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Stop</value>
+  </string>
+  <string id="8" name="record">
+    <value>Opnemen</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>Geen bestand beschikbaar</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Opnamen door Presentator</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Aanwezige gebruikers:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Start een overleg</value>
+  </string>
+  <string id="13" name="myname">
+    <value>Mijn Naam</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>Video Overleg</value>
+  </string>
+  <string id="15" name="import">
+    <value>Bestand Importeren</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Lijst vernieuwen</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>Naar hoofd bestand</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>nieuwe stembus</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>Een nieuwe stembus.</value>
+  </string>
+  <string id="20" name="question">
+    <value>Vraag:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Soort stembus:</value>
+  </string>
+  <string id="22" name="create">
+    <value>Aanmaken</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Informatie: Iedere gebruiker krijgt een bericht over de stembus.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Stembus aanmaken</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Annuleren</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Ja/Nee</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Getal 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Stembus</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Je moet een organisator zijn om een vraag aan te maken</value>
+  </string>
+  <string id="30" name="vote">
+    <value>Jouw stem is geregistreerd.</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Je hebt al gestemd op deze stembus.</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Stem!</value>
+  </string>
+  <string id="33" name="answer">
+    <value>Jouw Antwoord:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Ja</value>
+  </string>
+  <string id="35" name="no">
+    <value>Nee</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>Wil weten:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Stembus resultaat</value>
+  </string>
+  <string id="38" name="question">
+    <value>Vraag:</value>
+  </string>
+  <string id="39" name="results">
+    <value>Resultaat:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Antwoorden:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>Er is geen stembus.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Stem!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Overleg (max 4 plekken)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Overleg (max 50 plekken)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Soort</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Andere plekken</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Reeds gekozen</value>
+  </string>
+  <string id="48" name="enter">
+    <value>deelnemen</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>De organisator heeft het overleg verlaten.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Systeem informatie</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Gekozen apparaat</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Gekozen webcam:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Gekozen microfoon:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>OK</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>Annuleren</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Je moet opnieuw verbinding maken.</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Wijzig instellingen.</value>
+  </string>
+  <string id="58" name="course">
+    <value>Cursus:</value>
+  </string>
+  <string id="59" name="language">
+    <value>Taal:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>OK</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>Annuleren</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Tekenbord schoonmaken</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Wil je dat het tekenbord schoon wordt gemaakt bij het toevoegen van een nieuw plaatje?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>Niet weer vragen</value>
+  </string>
+  <string id="65" name="no">
+    <value>Nee</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Wijzig instellingen</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Bevestiging vragen voor het schoonmaken van het tekenbord.</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Gebruikers Informatie</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Tekenbord schoonmaken</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Ongedaan maken</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Opnieuw maken</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Selecteer een object</value>
+  </string>
+  <string id="73" name="text">
+    <value>Tekst</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Verf</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Lijn Trekken</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Onderstrepen</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Rechthoek</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Ellipse</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Pijl</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>Verwijder het geselecteerde object</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Toepassen voor aanpassing</value>
+  </string>
+  <string id="82" name="apply">
+    <value>Toepassen</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>Annuleren</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Organisator worden</value>
+  </string>
+  <string id="85" name="close">
+    <value>Afsluiten</value>
+  </string>
+  <string id="86" name="italic">
+    <value>italic</value>
+  </string>
+  <string id="87" name="bold">
+    <value>bold</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>WACHTEN</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>Een gebruiker wil organisator worden, je kunt hem toegang geven tot het whiteboard of ook organisator maken. Gebruiker:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>Accepteren</value>
+  </string>
+  <string id="91" name="reject">
+    <value>Afwijzen</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>Annuleren</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Verstuur verzoek naar de volgende gebruikers</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Geaccepteerd</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Afgewezen</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Verander organisator</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Je bent geen organisator!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Organisator:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>Dit overleg is vol. Probeer het later nogmaals.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Ellipse</value>
+  </string>
+  <string id="101" name="close">
+    <value>Sluiten</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>input data foutmelding</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>Gebruikersnaam moet minimaal 4 karakters zijn en is hoofdletter gevoelig!</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>Wachtwoord moet minimaal 4 karakters zijn</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>Deze gebruikersnaam is al gebruikt</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>Dit e-mail adres is al geregistreerd</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>Systeem fout neem contact op met een Systeem beheerder</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Inloggen</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Inlognaam/E-mail</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Wachtwoord</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Taal</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Inloggen</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Inschrijven</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Inlognaam</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Wachtwoord</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Nogmaals</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Voornaam</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Achternaam</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>E-mail</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>Land</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Registreer</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>Annuleren</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Geen lid?</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>Start</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Gebruikers</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Groepen</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Organisaties</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Vergaderruimtes</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>Openbaar</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>Organisatie</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>Deelnemen</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Inlognaam</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Wachtwoord</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Wachtwoord</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Voornaam</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Achternaam</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>E-mail</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Geboortedatum</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Straat en nummer</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>Postcode en Plaats</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>Land</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Meer gegevens</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Gebruikersgegevens</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>Opslaan</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Opslaan</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>USER-ID</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>Loginnaam</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>Voornaam</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>Achternaam</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>Volgende tonen</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>Vorige tonen</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>Verwijder</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>Annuleren</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>Verwijderen</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>Toevoegen</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>Vernieuwen</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>Verwijderen</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>Status</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>Blokkeren</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>Vrijgeven</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>Organisatie(s)</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>Kalender</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>Sluiten</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>ID</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>Naam</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>Gebruiker</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>Organisator</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>Beheerder</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>Toegangsniveau</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>Organisatie</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>Naam</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>Organisatie toevoegen</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>Organisatie toevoegen</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>Annuleren</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>Toevoegen</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>Verwijder organisatie</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>Gebruiker</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>Gebruiker toevoegen</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>Gebruiker verwijderen</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>Gebruiker aan organisatie toevoegen</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>Zoek gebruiker</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>Zoek</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>Gebruiker</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>Organisatie</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>Deelnemen</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Kamers</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Kamer</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>ID</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Naam</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>Openbaar</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>Organisaties</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Kamers</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>Naam</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>Soort</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>Openbaar</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>Toelichting</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>Opslaan en exporteren</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>laden</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>Opslaan als</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>Bestandsnaam</value>
+  </string>
+  <string id="201" name="files">
+    <value>bestandsnaam</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>Annuleren</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>Opslaan</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>Foutmelding</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>Laden</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>Objecten geladen</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>Wachten op synchronisatie van gebruikers:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Laden van afbeelding</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>Wachten op synchronisatie van gebruikers:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>Tekenbord Leegmaken</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>Tekenbord leegmaken, gegevens op tekenbord gaan verloren</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Bevestiging voor het laden van een bestand</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Uitnodiging versturen</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Verstuur uitnodiging</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Onderwerp</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>E-mail geadresseerde</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Bericht</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Verstuur</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>annuleren</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>Verstuur</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Gebruikersgegevens</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>Je naam voor dit overleg</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>Naam</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>Voornaam</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>Achternaam</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>E-mail</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>Taal</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>deelnemen</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Laden</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Laden, even wachten aub!</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Verkeerde wachtwoord</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Please enter two identical passwords with at least 6 characters</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Foutmelding</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Dit is geen geldig E-mail adres</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>Registratie Afgerond</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Je gebruikersaccount is nu aangemaakt. Je nu kunt inloggen.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>Je kunt je scherm op dit moment niet delen. Iemand anders is al een scherm aan het delen.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Delen is verboden</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Delen van scherm</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Slechts netwerk: Synchronisatie van het scherm lukt niet. Als je deze melding vaker krijgt, kun je de beheerder vragen of hij de quality van beeld wil verminderen.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Scherm van:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Verf</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Document</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Chat</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Bestanden</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Leden</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Orginele document downloaden</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>PDF document downloaden</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Zet presentatie op tekenbord</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Instellingen</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Verplaats dit object</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Verander de grote</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>van</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>Na naar de eerste pagina</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>Ga naar de vorige pagina</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>Na gaan de volgende pagina</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>Ga naar de laatste pagina</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Uitzoomen</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Inzoomen</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Dhr.</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Mevr.</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Instellingen</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Instelling</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Instellingen</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Instelling</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>Laatste update</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>Bijwerkt door</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>Toelichting</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>Waarde</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>van</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Gebruikers</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>haal gebruiker uit organisatie</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>D</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>Deze gebruiker zit al in deze organisatie.</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>Nieuws</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Snelkoppelingen</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Ga naar overleg</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Ga luisteren</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Help en Hulp</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Meld probleem!</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>meer</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Project Webside (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>User Mailing List (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Inloggegevens onthouden</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Inhoud</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>Mijn Start Pagina</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>Mijn geplande overleggen</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>Mijn geplande evenementen</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Openbare overleggen</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Prive overleggen</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Openbare evenementen</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Prive evenementen</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Openbare inhoud</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Prive inhoud</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Persoonlijke inhoud</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Nakijken</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Nalaten kijken</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Stembussen</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Kies een bestand</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Instellingen</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Beeld/Geluid instellingen</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Tekenbord instellingen</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Verlaten</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Terug naar kamers</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Uitloggen</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Wachtwoord vergeten?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Wachtwoord opnieuw instellen</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>Via E-mail</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Via inlognaam</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>Je E-mail</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Je loginnaam</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Verstuur E-mail met een Link</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>Dit E-mail adres is niet gevonden. Geeft E-mail adres waar ook het account mee gemaakt is.</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Geeft inlognaam of E-mail adres</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>Er is geen gebruiker met deze inlognaam</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>Een E-mail met een link is naar je toegestuurd, controller je Postvak-In. Als je dan nog steeds niets hebt ontvangen bekijk je E-mail spam instellingen.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Foutmelding</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Bericht</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Er is geen gebruiker met deze gegevens.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Wachtwoord opnieuw instellen</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Inlognaam</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>Verander wachtwoord</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>wachtwoord invoeren</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>wachtwoord opnieuw invoeren</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>De wachtwoorden zijn niet gelijk.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>Minimaal 4 karakters en hoofdlettergevoelig!</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Wachtwoord ingesteld. Je kunt nu inloggen.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Onbekende Foutmelding. Geef dit door aan de beheerder.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Inlognaam niet gevonden</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Verkeerd wachtwoord</value>
+  </string>
+  <string id="337" name="logout">
+    <value>U bent uitgelogd</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Registratie is uitgezet.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>Verkeerd E-mail adres</value>
+  </string>
+  <string id="340" name="registration">
+    <value>een bestand met deze naam is al aanwezig, kies een andere naam</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>bestandsnaam te kort</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Kan bestand niet opslaan</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>Gebruiker toegevoegd. Account moet nog wel worden toegevoegd aan een organisatie.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Nieuw item</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>Geen veld gevonden met dit veld ID.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>Geen label gevonden voor dat veld.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Beheer authorisatie is vereist.</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Taal Bewerker</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Taal</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>Label-ID</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Label naam</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Label tekst</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Display tekst</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>Label naam</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>Label tekst</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>Label-ID</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>Je hebt alleen het label verwijderd en niet het veld! Je kunt dit veld niet verwijderen omdat het gebruikt worden in andere talen.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>Onjuist Label-ID. De 'FieldLanguagesvalues_Id' kan niet worden gevonden in de database.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Je kunt alleen labels verwijderen en geen velden.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>Exporteren</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Je moet opnieuw aanmelden om de veranderingen te zien.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Nieuwe taal toevoegen</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>Taal verwijderen</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Nieuwe taal toevoegen</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Naam</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>Taal toevoegen</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Backup</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>ga naar het begin</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>vorige</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>volgende</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>ga naar de laatste</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>Gebruiker spreekt (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>Geluid aan/uit</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>Systeem</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Jouw instellingen</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>Hallo,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Profiel bijwerken</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Nieuw bericht:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Pasfoto uploaden</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Gebruikersdata exporteren</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>Om per organisatie een backup te maken, moeten organisatie aanwezig zijn.</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>Backup</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>Backup een organisatie</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>Backup</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Gebruikersdata importeren</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>Restore</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>Importeren</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Exporteren naar XML - Deze bestanden kunnen gebruikt worden voor:&lt;br/&gt; - Bijdrage aan het project - Importeren in een ander systeem&lt;br/&gt; - Backup - Optimalisatie&lt;br/&gt; - Plaats het in de 'openmeeting/language' directory voor de volgende installatie</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Kies een taal bestand om te importeren. &lt;br/&gt;Opletten! Kies de juiste taal uit de selectie lijst! &lt;br/&gt;Het maakt niet uit wat de naam van het bestand is, &lt;br/&gt;het zal worden geimporteerd in deze taal!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>importeren - kies een bestand</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Opslaan als</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Naam:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Toelichting:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>Opslaan</value>
+  </string>
+  <string id="395" name="record">
+    <value>Opnames</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Opnames bekijken</value>
+  </string>
+  <string id="397" name="record">
+    <value>Opnames van openbare en prive kamers</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Gebruikers:</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Aanwezig:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Active deelnemers:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>vernieuwen</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>Dit overleg is vol. Probeer het later nogmaals.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>Klik op een kamer voor meer informatie</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Chat met deelnemers:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Overleg:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Active deelnemers:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>Vanaf:</value>
+  </string>
+  <string id="409" name="record">
+    <value>Bekijk opname</value>
+  </string>
+  <string id="410" name="record">
+    <value>Duur:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Datum:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Opname bekijken! Je kunt niets wijzigen. Dit is een opgenomen overleg!</value>
+  </string>
+  <string id="413" name="record">
+    <value>Start deze opname</value>
+  </string>
+  <string id="414" name="record">
+    <value>Play / Pause</value>
+  </string>
+  <string id="415" name="record">
+    <value>Neem dit overleg op</value>
+  </string>
+  <string id="416" name="record">
+    <value>Stop opname</value>
+  </string>
+  <string id="417" name="record">
+    <value>Opname:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>Dit overleg wordt al opgenomen door een andere gebruiker!</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Opgenomen! Door gebruiker:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>Annuleren</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>De opname wordt gestopt en wordt niet bewaard.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>hetvatten</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Sluit dit scherm en blijf opnemen</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>Verander lijnkleur</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Kies een kleur</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Uizetten/Aanzetten lijnkleur</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>Verander opvulkleur</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Uitzetten/Aanzetten opvulkleur</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Verander lijn dikte</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>Afsluiten</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>Verander lettertype</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Verwijder opname</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Gast</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>Door:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Naam</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Overleg</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Datum</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>Annuleren</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>Start</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Naam</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Datum</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Verwijder Server-Chatlog</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Chat</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>Verstuur bericht</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Emoticons</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Emoticons</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Choose Published Devices</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Beeld en Geluid</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Alleen geluid</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Alleen beeld</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>Geen beeld/geluid (pasfoto afbeelden)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>Als er netwerk problemen zijn, kies dan voor pasfoto afbeelden. Je profiel pasfoto wordt hiervoor gebruikt.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>Ma</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>Di</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>Wo</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>Do</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>Vr</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>Za</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>Zo</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Maandag</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Dinsdag</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Woensdag</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Donderdag</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Vrijdag</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Zaterdag</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Zondag</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>WK</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Kalender Week</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>Januari</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>Februari</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>Maart</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>April</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>Mei</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>Juni</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>Juli</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>Augustus</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>September</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>Oktober</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>November</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>December</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Kalender</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Aantal Deelnemers</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Toon opmaak instellingen</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Breedte | Hoogte</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Beeld-Container</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Organisator-Container</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Tekenbord-Container</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Aanzetten</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Breedte | Hoogte</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Bestanden, chat en deelnemers - Container</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Aanzetten</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Breedte | Hoogte</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>De organisator heeft het overleg verlaten. Niemand is aan het presenteren. Je kunt organisator worden of wachten.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>Er zijn deelnemers maar nog geen organisator. Je kunt Organisator worden of wachten.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Terugkoppeling $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Uitnodiging</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Bericht van gebruiker:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Bericht:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Klik op deze link om deel te nemen aan dit overleg:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Klik hier om deel te nemen aan dit overleg</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>Als je problemen ondervindt met de link, kopieer en plak deze in een internet browser:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME registeren</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Je gebruikersgegevens:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Inlognaam:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Wachtwoord:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>E-mail:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME-Team</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME Registeren</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - Wachtwoord Reset</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Klik op deze link voor een nieuw wachtwoord:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Klik hier voor een nieuw wachtwoord</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>Als je problemen ondervindt met de link, kopieer en plak deze in een internet browser:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME wachtwoord reset</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Geef een juiste datum (dd.mm.yyyy)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Geef een juist E-mail adres (voorbeeld naam@domein.nl)</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Geef een Float-Number (voorbeeld 1.00)</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Geef een Integer (voorbeeld 100)</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Geef een juist telefoonnummer (voorbeeld +31 0123 456789</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Geef een juiste tijd (hh:mm)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Beveiligd door wachtwoord</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Wachtwoord</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Geldigheidsduur</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Altijd</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Periode</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Eenmalig</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Geldig van:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Geldig tot:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Uitnodiging van $APP_NAME</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Geen uitnodiging beschikbaar met deze code</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>Deze is uitnodiging is eenmalig en al eens gebruikt.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>Deze uitnodigingscode is onjuist.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Wachtwoord:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Controleer wachtwoord</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Verkeerd wachtwoord!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Beeld_Geluid</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Synchronisatie van beeld en geluid</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Login was correct, but the Session you tried is not active or stored on the Server. You have to get a new SessionId and retry login.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>The SessionId is not loggedin or has no Admin rights. The SOAP Gateway needs an User with Admin-Rights to embed new Users.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>This Session has no Remoteuser-Data connected. Wether you did not call the SOAP-Gateway before accessing the Application or you are usnig a wrong Session-ID</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>De recorder functie is Beta!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>x-as</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>y-as</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>b</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>breedte</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>h</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>hoogte</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Verander doorzichtigheid</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Open browser</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Sluit browser</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>De is geen verbinding met de server meer. Start de applicatie opnieuw of controleer je netwerk verbinding.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Aanwijzer</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Synchronisatie</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Aan het synchroniseren. Even geduld aub</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Opslaan als SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Opslaan als PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Opslaan als JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Opslaan als PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Opslaan als TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Herinnering:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Categorie:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Herhaling:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>Geen</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Lokatie:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Begin</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>Einde</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Onderwerp:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Toelichting:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Gebruikers uitnodigen</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Dagelijks</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Maandelijks</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Jaarlijks</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Opmerking: Het einde van het overleg moet altijd later zijn dan het begin!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Geef een onderwerp!</value>
+  </string>
+  <string id="580" name="580">
+    <value>RnL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Zet deze functie aan als je taal van Rechts naar Links wordt geschreven</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Instrumentenbord</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Bekijk opgenomen overleg of evenement</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Overleg - Organiseer een overleg met 4 tot 16 personen.&lt;br/&gt;Iedereen heeft mogelijkheid tot beeld en geluid.</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Evenement - Organiseer een overleg met maximaal 200 personen.&lt;br/&gt;Alleen de organisator heeft beeld en geluid.</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Beheer gebruikers, kamers, organisaties&lt;br/&gt; of verander de instellingen</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Active deelnemers</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Inlognaam</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Document aan het laden. Even wachten tot alle gebruikers zijn gesynchroniseerd.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Importeren gelukt, nu aan het converteren...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Begin importeren</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Importeer scherm. Zoek en selecteer een bestand.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Annuleren</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Selecteer bestand</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Active sessies</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Waarde</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Streamid</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Inlognaam</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Verbonden sinds</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Kamer / bereik</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Uitloggen</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Uitloggen</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Weet je zeker dat je deze gebruiker wilt uitloggen?&lt;br/&gt;De gebruiker zal uit dit overleg worden gehaald. De gebruiker kan wel weer opnieuw deelnemen.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Je bent door een organisator of beheerder uit het overleg gehaald.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Telefoon</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>Gebruiker is organisator in dit overleg</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>Gebruiker mag tekenen op het tekenbord</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Her) Start beeld/geluid of verander instellingen</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Geef gebruiker toestemming om op het tekenbord te tekenen</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Ontneem gebruiker toestemming om op het tekenbord te tekenen</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Gebruikers</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Bestanden</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Tekenbord</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Chat</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Jouw account heeft meerdere organsiaties toegewezen gekregen. Selecteer een organisatie voor dit overleg.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>Dit overleg is vol. Probeer het later nogmaals.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Kamer soort</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Afspraak kamer</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Server tijd</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - herinnering</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Bericht van:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Bericht:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Klik op deze link om deel te nemen aan dit overleg:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Klik om deel te nemen aan dit overleg</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>Als je problemen ondervindt met de link, kopieer en plak deze in een internet browser:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>Zoek intern</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>Externe toevoegen</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>Voornaam</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>Achternaam</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>E-mail adres</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Uitloggen bevestigen</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Weet je zeker dat je wilt uitloggen?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Acties</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Demo kamer</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Demo tijd (sec)</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Overleg tijd</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>Dit is een demonstratie kamer. Je wordt automatisch uitlogd in :</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Toezichthouder</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>De organisator, beheerder of planner van dit overleg is nog niet aanwezig. Even wachten aub.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>OK</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Scherm delen</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>Er wordt een scherm gedeelte door gebruiker:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Start met delen</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Nieuw overleg toevoegen</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Kamers</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Evenement kamer</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Organisator</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Beheer de gebruikers</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Beheer de kamers</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Wil je deze gebruiker organisator maken van deze organisatie?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Je kunt pas een gebruiker toevoegen als je een organisatie hebt gekozen!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organisatie - organisatoren</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Wil je deze gebruiker echt uit deze organisatie halen?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>Deze gebruiker is organisator</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>Deze gebruiker is geen organisator</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Deze gebruiker geen organisator?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Toevoegen of verwijderen van gebruikers of kamers in je organisatie</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Wil je dit item echt verwijderen?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Wil je deze gebruiker echt uit je organisatie verwijderen? Het gebruikersaccount blijft wel bestaan.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>Je kunt je eigen gebruikersaccount niet verwijderen!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>Dit kan alleen een beheerder doen!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>Er zijn geen sessie gekoppeld aan dit ID.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>Dit is een beheeraccount. Je kunt dit account bewerken in het beheer Beheer/Gebruikers gedeelte.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>Klik op de link om de registratie af te ronden. Mocht dit niet lukken, kopieer en plak deze in een internet browser.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Klik om je E-mail adres te controleren</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Er is geen gebruiker met deze gegevens.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Deze gebruiker is al actief!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Het account is succesvol geactiveerd!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Nu inloggen</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Het account is nog niet actief. Gebruik eerste de link in de E-mail die je hebt gekregen tijdens de registratie.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>In inschrijven is nu volledig. Er is een E-mail gestuurd met een verificatie link. Controlleer je Postvak-In.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Verwijder organisator rol van gebruiker</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Geef organisator rol aan deze gebruiker</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>Gebruiker</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Toegang tot tekenbord</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Organisator</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Moderation: Selecteer een gebruiker om deze tekenbord en/of organisator toegang te geven.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>Deze gebruiker is al organisator en heeft dus toegang tot het tekenbord.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>Dit ben je zelf! Je kunt jezelf geen organisator rechten ontnemen.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Geef deze gebruiker beeld en geluid</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Ontneem deze gebruiker beeld en geluid</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>Ik zou graag organisator van dit overleg worden</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>Ik zou graag willen tekenen op het tekenbord</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>Ik zou graag mijn beeld en geluid delen</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>Je bent organisator van deze kamer</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>Je mag tekenen op het tekenbord</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>Je mag je beeld en geluid delen</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Bericht van de organisator</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>De gebruiker</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>wil graag organisator worden. Gebruik de status iconen naast de gebruiker om dit in te stellen.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>wil graag tekenen op het tekenbord. Gebruik de status iconen naast de gebruiker om dit in te stellen.</value>
+  </string>
+  <string id="695" name="695">
+    <value>wil graag beeld en geluid delen. Gebruik de status iconen naast de gebruiker om dit in te stellen.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>Je moet wachten totdat de organisator er is.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Annuleren</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Opslaan</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Dag</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Maand</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Jaar</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Bestand uploaden</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Directory toevoegen</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Vernieuwen</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Vuilnisbak</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>Mijn bestanden</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Bestanden in de kamer</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Bestand toevoegen</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Directory toevoegen</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Directory verwijderen</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Naam wijzigen</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>Nieuwe directory</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Weet je zeker dat je dit wilt verwijderen?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Zoek</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Zoek</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Open document</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Toon alle bestanden (Tree View)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Sluit Document</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Verwijder bestand</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>Je mag niet tekenen op het tekenbord. Je dient organisator te zijn of toestemming hiervoor te krijgen. Je kunt de organisator vragen voor toestemming.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Document eigenschappen</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Start Java</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Start Flash</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>Een gebruiker wil een scherm met je delen. Wil je deze zien?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>Op dit momenn deel je een scherm. Klik op de Stop knop om dit te beeidingen.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Gegevens delen</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>Je scherm wordt al getoond aan andere gebruikers!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Desktop Viewer</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Stop Delen</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Scherm deler</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Klik op Start om je scherm te delen</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Start delen</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Pause delen</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Selecteer het gebied op je scherm:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Breedte veranderen</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>Het scherm delen is beindigd!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Hoogte veranderen</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-afstand</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-afstand</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Breedte:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Hoogte:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Verbinding is beindigd door de server</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Annuleren</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Start Java</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>Als je deze sessie volledig beindigd, kun je hem niet opnieuw bekijken.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Bevestiging van het sluiten van deze sessie</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Deel scherm</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Neem sessie op</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Samen browsen</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Firefox op Windows geeft soms problemen met samen browsen.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Vorige</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Volgende</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Opnieuw laden</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Begin</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Laden</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Maak deze website je default website.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Test Setup</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Test beeld en geluid voordat je aan een overleg begint.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Laat deze test niet weer zien</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Annuleren</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Start Overleg</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Niet opnieuw vragen</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>Wil je doorgaan zonder test? Je bent dan nog steeds in staan om te chatten en te teken op het tekenbord.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="767">
+    <value>Niveau meter</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Kies Begin</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Begin direct een overleg</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Begin evenement</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Kies Kamer</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Wijzig Instellingen</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Begin Overleg</value>
+  </string>
+  <string id="774" name="start view">
+    <value>Start wizard:</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Start Opname</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Beeld en geluid iedere keer testen</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Openbare kamers</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Openbare kamers zijn toegankelijk voor alle gebruikers!</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Prive kamers</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Prive kamers zijn alleen toegankelijk voor gebruikers van dezelfde organisatie.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>Mijn kamers</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Deze kamers zijn voor persoonlijk gebruik en aangemaakt middels de kalender. Ze hebben een start en eind datum. Ze staan hier zolang ze nog geldig zijn.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>Je dient organisator te zijn om dit te doen.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Toegang aanvragen</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Toegang aanvragen</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Vragen voor beeld en geluid deelname</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>Deze sessie is al gebruikt en kun je niet nogmaals gebruiken.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>BEGIN</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>EINDE</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Wil je dit overleg echt verlaten? Het is raadzaam bestanden, tekenbord en chat historie op te schonen!</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Verlaat overleg</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Kamers</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Kies een kamer voor een overleg</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>Er is een niet opgeslagen evenement in de kalender. Bewaar of verwijder deze.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Je dient minimaal 1 persooon uit te nodigen!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Weet je zeker of je dit evenement wilt verwijderen?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Waarschuwing</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Evenement toevoegen</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>dag</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>Week</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>maand</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Omschrijving</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Deelnemers</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>Kies voor BEGIN om meteen een overleg te starten of ga naar de kalendar om iets te plannen.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Plan een overleg</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>Om een overleg te plannen, dien je een evenement aan de kalender toe te voegen. Voor ieder evenement zal automatisch een kamer aangemaakt worden. Iedere deelnemer zal E-mail ontvangen met een link naar de kamer.&lt;br/&gt;&lt;br/&gt;Er is keuze in verschillende soorten kamers. Tevens kan iedere kamer een eigen layout krijgen.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Hulp nodig?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Beperkt</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Zoek</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Toevoegen</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>Er is geen gebruiker geselecteerd. Kies eerst een item en klik dan op toevoegen.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Nieuwe deelnemer</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Opslaan</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Verwijderen</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Evenement details</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Standaard organisators</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Hoofd</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Naam</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>E-mail adres</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Nieuwe standaard organisator toevoegen</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Is hoofd-organisator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>Als de kamer voorzien is van organisatoren, worden gebruikers met deze rol automatisch organisator als ze het overleg betreden. Als je dit niet wilt, stel dan een standaard organisator in.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>A Super Moderator is always a Moderator when he enters a Room, and nobody can remove the Moderation Flag from him</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Geef hoofd-organisator rol</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Ontneem hoofd-organisator rol</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>Als je een organisatie toevoegd aan een kamer, kunnen alleen gebruikers van die organisatie de kamer betreden (letop: dat de kamer niet openbaar is!)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Organisatoren</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Conditie</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organisatie</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Weet je het zeker?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Weet je zeker dat je dit object wilt verwijderen? Kies voor opslaan om dit te bewaren!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>Er is geen gebruiker geselecteerd!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Nieuwe standaard organisator toevoegen</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Wil je deze gebruiker hoofd-organisator maken? Een hoofd-organisator is organisator en niemand kan deze organisator rol terugdraaienn. Kies voor opslaan om dit te bewaren!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Wil je de rol hoofd-organisator weghalen voor de gebruiker? Kies kamer opslaan om dit door te voeren!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>Dit een een hoofd-organisator. Je kunt een organisator rol niet verwijderen van een hoofd-organisator!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Weet je zeker dat dit bestand/directory verwijder kan worden?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Verwijder bestand/directory?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Mevrouw</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Meneer</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Eigenschappen</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Toon muis positie aan kijkers</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Deel geluid middels SIP</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Deel geluid middels SIP en beeld via flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Beeldvullend</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>Toon scherm</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>De gebruiker</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>wil zijn scherm delen, wil je dit zien?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Sluiten</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>Deze sessie is beindigd door de gebruiker die aan het delen was!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>Opnieuw scherm delen</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimaliseren</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximaliseren</value>
+  </string>
+  <string id="858" name="858">
+    <value>Beeld</value>
+  </string>
+  <string id="859" name="">
+    <value>Opname tijdlijn</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>Mijn opnames</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Openbare opnames</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Informatie</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Naam</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Lengte</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Datum</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>Door</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>Download</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Hoofd - Beeld</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Opnemen</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>Opnemen en scherm delen kan op hetzelfde moment. Om je scherm te delen, kies voor scherm delen.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Begin opnemen</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Stop opnemen</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download FLV-bestand</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Kamer</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Afspelen</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>Gebruiker heeft de microfoon aan</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Allow User Questions</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Turn this off to prevent that any user is disturbing you in this room. Effect is that the Button to ask for Moderation ("I have a question") is not visible.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rights</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Download as AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Audio only</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>The have been errors while processing the Recording.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>The Recording is not yet ready for watching. Please retry in a couple of minutes again.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Recorder Message</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP Applet is not Ready</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP-Account Settings</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP settings for each user. You can turn on or off SIP via the Administration &gt; Configuration (Key: enable_sip). The SIP data for each user should be created automatically. You can re-create the data by checking "Re-generate SIP Data"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-User</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Pass</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. You should check the authentification data of your SIP-Provider and the SIP-Account Data for each User. As Administrator you are still able to login and check the Configuration. As User or Moderator you will be blocked from any interaction.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. Contact your Service Team!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Show Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log messages from post recorder process</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Applet Message</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>The SIP-Applet is not ready. Accept the Applet please and click ok!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Get Moderation</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Save Appointment Changes</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointement has been changed. Do you want to save those changes? &lt;br/&gt;&lt;br/&gt;All attendees of the appointment will receive a EMail with the updated date and time (depending on the notification type of this appointment).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>To access other recordings you have to login the $APP_NAME Application.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Choose the User for this Video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available Users for this Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>You are a Moderator in this Interview. You can decide who is speaking in this interview and you can start / stop the recording of the Session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Start Recording</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Stop Recording</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>The recording of the Interview is already started.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>The recording is already stopped or not been started yet.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>The recording for this interview is already started!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Clear objects on current slide only!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the Status bar is send to participants!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make Team-Rooms [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new Team-Room!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new Conference Room ("Team Room") for them. The chosen users will automatically switch to the new Team-Room or get a notification. Team-Room Moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a Moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Username</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new Team-Room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create Team-Room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the Team-Room!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from Team-Room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Roomtype</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the System. The Backup includes all User generated data. The configuration is not included as well as the language labels. Because those values are imported with the System Installer. To update your System, export your old system (1) re-install into a new database the new package (2) and import the Backup file again (3). The Backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share Screen/Record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is Moderator, he can do anything!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/Deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose "Insert" from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about Copy and Paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Kick user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/english.xml b/src/main/webapp/languages/english.xml
new file mode 100644
index 0000000..b6f323a
--- /dev/null
+++ b/src/main/webapp/languages/english.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Conference</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Meeting</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Events</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Settings</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Profile</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Administration</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Stop</value>
+  </string>
+  <string id="8" name="record">
+    <value>Record</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>No file available</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Record by teacher</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Connected users</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Start a conference</value>
+  </string>
+  <string id="13" name="myname">
+    <value>My name</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>Video conference</value>
+  </string>
+  <string id="15" name="import">
+    <value>File upload</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Refresh list</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>To main file</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>new poll</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>A new poll for the conference</value>
+  </string>
+  <string id="20" name="question">
+    <value>Question</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Type of poll</value>
+  </string>
+  <string id="22" name="create">
+    <value>Create</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Each connected user receives a message with the new poll</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Create a poll</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Cancel</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Yes/No</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Numeric 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Poll</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>You must be a moderator to create a question</value>
+  </string>
+  <string id="30" name="vote">
+    <value>Your vote has been registered</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Your have already voted in this poll</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Vote</value>
+  </string>
+  <string id="33" name="answer">
+    <value>Your response</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Yes</value>
+  </string>
+  <string id="35" name="no">
+    <value>No</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>wants to know</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Poll results</value>
+  </string>
+  <string id="38" name="question">
+    <value>Question</value>
+  </string>
+  <string id="39" name="results">
+    <value>Results</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Answers</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>No polls have been started</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Vote</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Meeting (max 4 seats)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Conference (max 50 seats)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Type</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Other seats</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Already chosen</value>
+  </string>
+  <string id="48" name="enter">
+    <value>enter</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>The moderator has left the meeting</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>System information</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Choose device</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Choose webcam</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Choose micro</value>
+  </string>
+  <string id="54" name="ok">
+    <value>OK</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>Cancel</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>You need to reconnect</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Edit setup</value>
+  </string>
+  <string id="58" name="course">
+    <value>Course</value>
+  </string>
+  <string id="59" name="language">
+    <value>Language</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>OK</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>Cancel</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Clear whiteboard</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Do you want to empty the whiteboard before a new picture is added?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>Don't ask again</value>
+  </string>
+  <string id="65" name="no">
+    <value>No</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Edit setup</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Confirm request to empty the whiteboard</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>User info</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Clear whiteboard</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Undo</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Redo</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Select an object</value>
+  </string>
+  <string id="73" name="text">
+    <value>Text</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Paint</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Draw line</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Draw underline</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Rectangle</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Ellipse</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Arrow</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>Delete</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Apply to be a moderator</value>
+  </string>
+  <string id="82" name="apply">
+    <value>Apply</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>Cancel</value>
+  </string>
+  <string id="84" name="mod">
+    <value>I have a question</value>
+  </string>
+  <string id="85" name="close">
+    <value>Close</value>
+  </string>
+  <string id="86" name="italic">
+    <value>italic</value>
+  </string>
+  <string id="87" name="bold">
+    <value>bold</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>WAITING</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>A user has applied to be a moderator, you can either grant them only access to the whiteboard or completely switch the moderation role. User:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>Accept</value>
+  </string>
+  <string id="91" name="reject">
+    <value>Reject</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>Cancel</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Sending the request to the following users</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Accepted</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Rejected</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Change moderator</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>You are not the moderator of this course</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Moderator</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>This room is full</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Ellipse</value>
+  </string>
+  <string id="101" name="close">
+    <value>Close</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>input data error</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>Password and or login is too short</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>Password and or login is too short</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>The username is already used</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>The mail address is already registered</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>System error please contact the administrator</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Login</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Username or mail address</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Password</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Language</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Sign in</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Sign up</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Username</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Password</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Re-enter password</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>First name</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Surname</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>Email address</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>Country</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Register</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>Cancel</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Not a member?</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>Home</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Users</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Groups</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Usergroups</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Conference rooms</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>Public</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>Usergroups</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>Enter</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Login</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Password</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Re-enter password</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Title/first name</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Last name</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>Email address</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Birthday</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Street/No</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>Post code/Town</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>Country</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Address</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>User details</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>Save</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Save</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>User ID</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>Login</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>First name</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>Last name</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>Show next</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>Show previous</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>Delete record</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>Cancel</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>Delete</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>New record</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>Refresh record</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>Delete record</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>Status</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>Disabled</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>Enabled</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>Usergroup</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>Calendar</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>Close</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>Usergroup ID</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>Name</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>User</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>Moderator</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>Admin</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>User level</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>Usergroup</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>Name</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>Add usergroup</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>Add usergroup</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>Cancel</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>Add</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>Remove usergroup</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>User</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>Add user</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>Delete user</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>Add user to usergroup</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>Search user</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>Search</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>User</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>Usergroup</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>Enter</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Conference rooms</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Conference rooms</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>ID</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Name</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>Public</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>Usergroups</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Conference rooms</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>Name</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>Type</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>Public</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>Comment</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>Save and export</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>Load</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>Save as</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>Filename</value>
+  </string>
+  <string id="201" name="files">
+    <value>Filename</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>Cancel</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>Save</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>Error</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>Loading</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>Objects loaded</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>Synchronizing, please wait</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Loading image</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>Synchronizing, please wait</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>Clear whiteboard</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>Clear whiteboard, all data on the whiteboard will be lost</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Confirm before loading a file</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Send invitation</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Send invitation</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Subject</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Recipient</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Message</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Send</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>Cancel</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>Send</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>User details</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>Your nickname for this conference</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>Nick</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>First name</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>Last name</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>Email</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>Language</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>Enter</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Loading</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Loading data, please wait</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Wrong password</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Please enter two identical passwords</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Wrong email</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>You have entered an invalid email address</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>Registration complete</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Your account has been created. You can now login.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>Someone is already sharing their screen</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Sharing forbidden</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Share/record screen</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Unable to syncronize the screen. If this warning is shown often you should ask the moderator to reduce the quality.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Screen of:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Paint</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Document</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Chat</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Files</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Members</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Download original document</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>Download PDF document</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Load presentation to whiteboard</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Configuration</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Drag this object</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Resize this object</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>of</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>Go to first page</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>Go to previous page</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>Go to next page</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>Go to last page</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Zoom --</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Zoom ++</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Mr</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Ms</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Configuration</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Key</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Configuration</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Key</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>Last update</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>Updated by</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>Comment</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>Value</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>of</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Users</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>Delete user from usergroup</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>D</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>This user is already a member of this usergroup</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>News</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Quick links</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Go to conference</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Goto auditorium</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Help and support</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Report a bug</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>more</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Project website (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>User mailing list (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Remember login</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Content</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>Dashboard</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>Calendar</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>My scheduled events</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Public meetings</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Private meetings</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Public events</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Private events</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Public content</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Private content</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Personal content</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Moderation</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>I have a question</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Polls</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Choose a file</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Settings</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Camera and mic settings</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Whiteboard settings</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Exit</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Back to rooms</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Logout</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Forgotten your password?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Reset password</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>Using email address</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Using login</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>Your email address</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Your login</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Send email with a reset link</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>No such email address was found. Make sure you entered the same email address you used to create your account.</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Please enter either an email address or a user name</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>There is no user connected to this username</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>The email containing a special link has been sent to your email address</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Error</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Message</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>No user found</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Reset your password</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Login</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>Change password</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>New password</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>Re-enter password</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>The passwords you entered weren't identical</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>Password and or username too short, required minimum length for user name / password are:</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Password set. You can now login.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Unknown error. Please report this to the administrator.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Username not found</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Invalid password</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Successfully logged out</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Registration disabled</value>
+  </string>
+  <string id="339" name="registration">
+    <value>Invalid email address</value>
+  </string>
+  <string id="340" name="registration">
+    <value>Duplicate file name, please enter another</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>File name too short</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Could not save the address</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>User added but you need to assign this user to an usergroup, otherwise they won't be able to log in</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>New record</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>No field found for the ID</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>No label found</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Admin authorization required</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Language editor</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Language</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>Label ID</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Label name</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Value</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Field values</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>Label name</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>Label value</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>Label ID</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>You have deleted the label</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>Invalid label ID</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>You cannot delete this field</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>Export</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>You need to logout for any changes to update</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Add new language</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>Delete language</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Add new language</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Name</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>Add language</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Backup</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>goto first</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>goto previous</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>goto next</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>goto last</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>user speaks (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>turn sound on/off</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>System</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Your settings</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>Hello</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Edit your profile</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Unread messages</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Upload new image</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Export user data</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>All usergroups must already exist</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>Start export</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>By usergroup</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>Start export</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Import user data</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>Choose users.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>Import</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Export to XML</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Choose a language file to import</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>Import</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Save as</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Name</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Comment</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>Save</value>
+  </string>
+  <string id="395" name="record">
+    <value>Recordings</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Recordings viewer</value>
+  </string>
+  <string id="397" name="record">
+    <value>Recordings of public and private rooms</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Users</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Joined</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Users in this room</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>Refresh</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>This room is full</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>Click on a room to get the room details</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Chat with the users in this room</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Room</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Users in this room</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>since</value>
+  </string>
+  <string id="409" name="record">
+    <value>Play recording</value>
+  </string>
+  <string id="410" name="record">
+    <value>Length</value>
+  </string>
+  <string id="411" name="record">
+    <value>Date</value>
+  </string>
+  <string id="412" name="record">
+    <value>Recorder mode</value>
+  </string>
+  <string id="413" name="record">
+    <value>Play this recording</value>
+  </string>
+  <string id="414" name="record">
+    <value>Play/Pause</value>
+  </string>
+  <string id="415" name="record">
+    <value>Record this meeting</value>
+  </string>
+  <string id="416" name="record">
+    <value>Stop recording</value>
+  </string>
+  <string id="417" name="record">
+    <value>Recording</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>Someone is already recording this meeting</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Recording. User:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>Cancel</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>Recording will be canceled and not saved</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>resume</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Close this window and resume recording</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>Change line colour</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Choose colour</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Disable/enable line colour</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>Change fill colour</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Disable/enable fill colour</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Change line width</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>Close</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>Change font size</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Delete recording</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Guest</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>By:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Name</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Room</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Date</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>Cancel</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>Start</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Name</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Date</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Delete server chat log</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Chat</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>Send message</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Emoticons</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Emoticons</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Choose published devices</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Audio and video</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Audio only</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Video only</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>No audio/video (static image)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>No audio/video from your PC will be published, your profile picture will be shown</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>MO</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>TU</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>WE</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>TH</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>FR</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>SA</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>SU</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Monday</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Tuesday</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Wednesday</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Thursday</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Friday</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Saturday</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Sunday</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>CW</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Calendar week</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>January</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>February</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>March</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>April</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>May</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>June</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>July</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>August</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>September</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>October</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>November</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>December</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Calendar</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Participants</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Show layout settings</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Width | height</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Video container</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Moderation container</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Whiteboard container</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Enabled</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Width | height</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Files, chat, participants container</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Enabled</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Width | height</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>The moderator has left the room. No one is presenting at the moment.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>There is no moderator in this room, but there are some participants. You have to apply to be the moderator or wait.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Feedback $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Invitation</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Message from user:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Message:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Click this link to participate in the conference [The link may only work for a certain period.]:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Click here to enter room</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>If you have problems with the link, please copy and paste this to your browser:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME Account Details</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Your account details</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Login</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Pass</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>Email</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME-Team</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>Your $APP_NAME account details</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - Reset Password</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Click on this link to enter a new password</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Click here to enter a new password</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>If you have problems with the link, please copy and paste this to your browser:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME password reset</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Please enter a valid date, for example 24.12.2001 (dd.mm.yyyy)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Please enter a valid email address, for example name@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Please enter a float-number, for example 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Please enter an integer number, for example 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Please enter a valid phone number, for example ++49 0123 123123</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Please enter a valid time, for example 12:23 (hh:mm)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Password protected</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Password</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Validity period</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Endless</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Period</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>One time</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Valid from</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Valid to</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Invitation to $APP_NAME</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>No invitation available for this invitation code</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>This invitation was already used</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>The invitation code is invalid</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Password</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Check password</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Invalid password</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Audio/video</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Syncronize audio/video</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Login was correct, but the session is not active or stored on the server</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>The session ID is not logged in or has no admin rights. The SOAP gateway needs a user with admin rights to embed new users.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>This session has no remoteuser-data connected. You did not call the SOAP gateway before accessing the application or you are using a wrong session ID</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>The recorder is currently beta</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>x-axis</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>y-axis</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>w</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>width</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>h</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>height</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Change transparency</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Open browser</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Close browser</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>The connection to the server has been lost</value>
+  </string>
+  <string id="557" name="557">
+    <value>Pointer</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Synchronizing</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Synchronizing, please wait</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Download as SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Download as PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Download as JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Download as PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Download as TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Notification type</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Category</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Repetition</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>none</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Location</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Start</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>End</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Title</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Comment</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Invite People</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Daily</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Monthly</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Yearly</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Appointment end is after of appointment start</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Please insert a title</value>
+  </string>
+  <string id="580" name="580">
+    <value>Right to left</value>
+  </string>
+  <string id="581" name="581">
+    <value>Activate this if you write in a right to left language</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Dashboard</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Watch recorded meetings or events</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Meeting - make a conference with between 4 and 25 users&lt;br/&gt;and everybody will have audio and video access</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Event - make a conference with up to 200 participants&lt;br/&gt;but only the moderator will have audio and video access</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Create users, rooms, usergroups&lt;br/&gt; and change configuration</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Users in this room</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Login</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Loading document. Please wait until all clients have been synchronized.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Upload complete, converting document</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Start upload</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Upload and import dialog. Please select a file.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Cancel</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Select file</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Connections</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Value</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Stream ID</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Login</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Connected since</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Room / Scope</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Unenrole user</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Unenrole user</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Do you really want to unenrole this client from the room?</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Your session has been closed by an administrator or moderator.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Phone</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>User is the moderator of this room</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>User is allowed to draw on the whiteboard</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Re) Start audio/video or change device settings</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Allow this user to draw on the whiteboard</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Remove ability to draw on whiteboard</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Users</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Files</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Whiteboard</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Chat</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Your account is assigned to multiple usergroups. Please choose one for this session.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>This room is full</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Room type</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Appointment room</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Server time</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - reminder</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Message from user:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Message:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Click this link to participate in the conference [The link does only work 15 minutes before the meeting starts.]:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Click here to enter room</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>if you have problems with the link, please copy and paste this to your browser:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>search intern</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>Add external</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>First name</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>Surname</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>Email</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Confirm logout</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Are you sure you want to logout?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Actions</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Demo room</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Demo time</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Meeting timer</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>This room is a demo room. You will be automatically logged off in:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Moderated</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Please wait until the moderator has entered the room</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>OK</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Incoming screen sharing</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>There is a new screen sharing incoming from the User:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Start sharing</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Add new meeting</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Meeting room</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Event room</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderation</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Moderate users</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Moderate rooms</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Do you want to change this user to be a moderator of that organisation?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Please choose an organisation before you try to add a user to it</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organisation - moderator</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Do you really want to delete this user from the organisation?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>This user is a moderator</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>This user is not a moderator</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Do you not want this user to be a moderator of this organisation?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Add or delete users or rooms within your organisation</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Do you really want to delete this record?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Do you really want to delete this user from your organisation?</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>You cannot delete your own user</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>This method needs an adminstration account to be invoked</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>There was no session associated with this ID</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>This is an administrator or moderator account. You can only edit this account through the administration panel.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>To complete your registration please click on the following link</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Click to verify your email</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>No user was found for this hash</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>This user is already activated</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>You successfully activated your account</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Login now</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Your account is not activated. Please use the link in the email you received during registration.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>You have successfully signed up. An email with a verification code will be sent to your mailbox.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Remove moderator role from this user</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Grant moderator rights to this user</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>User</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Access to whiteboard</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderator</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Please choose any user on the list to make them a moderator or to grant them access to the whiteboard or video</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>This user is already a moderator</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>You cannot remove the moderator rights for yourself</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Allow this user to publish their audio/video</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Remove audio/video of this user</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>I have a question</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>I would like to draw on the whiteboard</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>I would like to share my audio/video</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>You are the moderator of this room</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>You are allowed to draw on the whiteboard</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>You are allowed to share your audio/video</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Message to moderator</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>The user</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>would like to ask a question</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>would like to draw on whiteboard</value>
+  </string>
+  <string id="695" name="695">
+    <value>would like to share his audio/video</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>You have to wait until a moderator enters the room</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Cancel</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Save</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Day</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Month</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Year</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Upload file</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Add folder</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Refresh</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Trash (drag and drop item here)</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>My files (home drive)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Room files (public drive)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Add file</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Add folder</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Delete folder</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Edit name</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>New folder</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Are you sure you want to delete this item?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Open document</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Show all files (tree view)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Close document</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Delete file</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>You are not allowed to draw anything on the whiteboard</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Document properties</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Start Java</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Start Flash</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>A user wants to share their screen. Do you want to see it?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>You are currently sharing your desktop</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Sharing session</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>You are already sharing your desktop</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Desktop viewer</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Stop sharing</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Desktop sharer</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Click Start to publish your screen</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Start sharing</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Pause sharing</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Select your screen area:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Change width</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>The sharer has finished this session</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Change height</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-Offset</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-Offset</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Width:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Height:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Connection was closed by server</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Cancel</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Start Java</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>If you close this session completely you will not be able to restart the viewer for this session</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Confirm closing viewer session</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Share screen</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Record session</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Co-Browsing</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Please use Internet Explorer and not Firefox for Windows</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Previous</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Next</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Reload</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Home</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Load</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Add this website as the default website to your profile</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Test setup</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Use audio or video setup before you enter a room by recording for a few seconds. You can then replay your recording to check your voice and picture.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Don't show this test anymore</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Cancel</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Start conference</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Do not ask again</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>You may proceed without testing if you do not plan to publish your voice or picture. Participants without audio or video can still use the whiteboard, share their desktop or write chat messages.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="767">
+    <value>Level-meter</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Press start</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Start conference</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Start event</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Choose room</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Check setup</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Start conference</value>
+  </string>
+  <string id="774" name="start view">
+    <value>How to conference</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Start recording test</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Do not show audio/video test before entering a conference</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Public rooms</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Public rooms are accessible for all users</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Private rooms</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Private rooms are only accessible for users of the same usergroup</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>My rooms</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Rooms in this section are created for personal usage. There are some standard rooms plus the ones that are created through the calendar and have a start and an end date. The rooms created via the calendar are only listed in this section as long as they are valid.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>You have to be moderator to do this</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Apply to be moderator</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Apply for whiteboard access</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Apply for audio/video access</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>This session hash has already been used</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>START</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>EXIT</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Do you really want to exit?</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Exit conference</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Rooms</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Choose a room for a meeting</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>There is an unsaved event in the "Event details" on the right. Please save, remove or cancel and edit the details before adding another event.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Please add at least one attendee for your meeting</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Do you really want to delete this event?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Warning</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Add event</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>Day</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>Week</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>Month</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Description</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Attendees</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, your web conferencing platform. You can either follow the 1-2-3 steps to enter a conference room directly or you choose the Calendar to set up and plan a meeting.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Plan a meeting</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>To setup a conference you can add a new event in the calendar</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Need help?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Restricted</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Search</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Add</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>There is no user selected</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Add attendee</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Save</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Delete</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Event details</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Default moderators</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Name</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>Email</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Add new default moderator</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Is super moderator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>If the room is moderated, any users with a moderator or administrator level access are automatically set to moderator when they enter the room</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>A super moderator is always a moderator when they enter a room</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Make user a super moderator</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Remove super moderator from user</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>If you add an usergroup to the room only users of that usergroup have access to it</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderation</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitations</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Usergroup</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Are you sure?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Do you really want to delete this item?</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>There is no user selected</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Add new default moderator</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Do you want to add the super moderation flag for this user?</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Do you want to remove the super moderation flag for this user? You need to save the room object to save these settings.</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>This user is a super moderator. You cannot remove the moderation flag.</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Do you really want to delete this file/folder?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Delete file/folder?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Mrs</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Properties</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Show mouse position to viewers</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Share audio with SIP applet</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Share audio with SIP and video with Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Full-Fit</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>View screen</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>The user</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>wants to share their screen. Do you want to see it?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Close</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>The Session was closed by the sharing user</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>New screen sharing</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimize</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximize</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Recording timeline</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>My recordings</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Public recordings</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Name</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Length</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Date</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>By</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>Download</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Main - video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Recording</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>You may record and share your screen at the same time. To enable others to see your screen just hit the start button on the top.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Start recording</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Stop recording</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download as FLV</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Room</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Play</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>User has microphone on</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Close</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Allow user questions</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Turn this off to prevent any user from disturbing you in this room</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rights</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Download as AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw screen video</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Audio only</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>The have been errors while processing the recording</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>The recording is not yet ready for watching</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Recorder message</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>OK</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP applet is not ready</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP account settings</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP settings for each user</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP user</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>SIP password</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>SIP auth ID</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>The login to the SIP gateway has failed</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>The login to the SIP gateway has failed. Contact the administrator.</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logging onto the SIP gateway...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logging onto the SIP gateway...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Show log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log messages from post recorder process</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP applet message</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>The SIP applet is not ready. Accept the applet and click OK</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Get moderation</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Save appointment changes</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointment has been changed. Do you want to save these changes?</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>To access other recordings you have to login to the $APP_NAME application</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Choose the user for this video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available users for this pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>You are a moderator in this interview. You can decide who is speaking in this interview and you can start/stop the recording of the session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Start recording</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Stop recording</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>The recording of the Interview is already started.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>The recording is already stopped or not been started yet.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>The recording for this interview is already started.</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder.</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your license has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User license Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make web-conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into conference rooms) or creating conference rooms via the calendar with external users is only allowed with a volume flatrate.</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited license</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit.</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per installation.</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact info and prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Typec</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (with Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and buy.</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and buy.</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy.</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received.</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your invoice. The invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME.</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and transaction status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th parties to access a meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This email is already used by another user.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The conference number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Clear objects on current slide only.</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the status bar is send to participants.</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make team rooms [breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new team-room.</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new conference room ("Team room") for them. The chosen users will automatically switch to the new team-room or get a notification. Team room moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>User name</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new team room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create team room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the team room.</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from team room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is team room moderator (He is able to manage team rooms and users of the team room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Room type</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new team room" all chosen users will automatically switch to the newly created team room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-moderators always have the free choice to manage the team rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage team rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all team rooms that you are assigned as team room moderator. Users inside the team room can send you a message, for example to ask you to come to their room and help them. You can also terminate the team room and all users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new team room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right.</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the team room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team room name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this team room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate team room and logout all users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New team room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new team room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to team room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team room actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>This is a team room, you can send the team moderator a message if you need help. You can re-open this window via the main menu in the "Actions" section.</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>1) Send message to team room moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New team room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new team room available. You can switch to that room. Team rooms are like "Workgroups" with additionally possibilities to ask the team room moderator for help. Your team rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to team room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This window will stay open even if you leave the room.</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this team room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other team rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the team room moderators. For example if you need help in moderating the Rroom or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this team room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is team room moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this team room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no team moderator logged in at the moment.</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our team room.</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a team room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any team room. But you can switch here to all team rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the system. The backup includes all user generated data. The configuration is not included as well as the language labels. Because those values are imported with the system installer. To update your system, export your old system (1) re-install into a new database the new package (2) and import the backup file again (3). The backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share screen/record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share screen/record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is moderator, he can do anything. [screen sharing]</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this flag on and the users will have only the audio option and no video in a conference room. This can bee good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (during screen sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (during screen sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (during screen sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (during screen sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything.</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (during screen sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose &lt;i&gt;Insert&lt;/i&gt; from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;&lt;br/&gt;&lt;br/&gt;&lt;u&gt;&lt;FONT color='#0000CC'&gt;&lt;A HREF="http://www.youtube.com/watch?v=Ukqa01O48uI" TARGET="_BLANK"&gt;watch the demo&lt;/A&gt;&lt;/FONT&gt;&lt;/u&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and paste text from your PC to remote PC and vice versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy and paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the screen share:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close webinar.</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>LDAP</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config file</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>LDAP Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to user name" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the login in the LDAP is stored including the domain name. Example: user enters "hans" domain is specified as "localhost.com", login that is verified against LDAP is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add domain to user name</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote clipboard text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about copy and paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation.</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>Timezone message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "Timezone message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the timezone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Free text</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Search result</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts.</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact.</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show /copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Unenrole user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot unenrole yourself out of the conference room. If you want to leave it close the browser or use the exit button.</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot unenrole a super moderator out of a room.</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you. You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied.</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved.</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid.</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list.</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list.</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact.</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder.</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected.</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone.</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages.</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside. Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course.</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is not valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own.</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again.</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first.</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted.</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nick name</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>First name</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Last name</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars. For both, first name and last name.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email.</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner ID</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with user level user, moderator or admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Webservice (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Load directly to the Whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone.</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget to 'Start recording', if you want have the meeting recorded."</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom in/out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Show grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share file</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny and remove message</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards.</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>user defined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others. Give exclusive audio to me (You can also press F12)</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself.</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore.</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally.</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore.</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off.</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on.</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally.</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally.</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him.</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally. To mute your own microphone: Please use the microphone icon in your video pod.</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this poll? No one will be able to vote.</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>would like to have permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith.</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>You have the right to give exclusive audio. Click here to make yourself exclusive audio (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need to be a Moderator or have the 'draw on whiteboard' rights to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="main_loading">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/errorvalues.xml b/src/main/webapp/languages/errorvalues.xml
new file mode 100644
index 0000000..2db93d2
--- /dev/null
+++ b/src/main/webapp/languages/errorvalues.xml
@@ -0,0 +1,471 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<ROOT xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+    xsi:noNamespaceSchemaLocation="errorvalues.xsd">
+    <row>
+      <field name="errorvalues_id">1</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">334</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">2</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">319</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">3</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">320</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">4</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">321</field>
+      <field name="errortype_id">2</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">5</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">324</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">6</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">330</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">7</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">331</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">8</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">332</field>
+      <field name="errortype_id">2</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">9</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">318</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">10</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">335</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">11</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">336</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">12</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">337</field>
+      <field name="errortype_id">2</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">13</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">103</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">14</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">338</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">15</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">105</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">16</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">107</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">17</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">106</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">18</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">236</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">19</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">339</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">20</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">340</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">21</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">341</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">22</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">342</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">23</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">343</field>
+      <field name="errortype_id">2</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">24</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">345</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">25</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">346</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">26</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">347</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">27</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">358</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">28</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">357</field>
+      <field name="errortype_id">2</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">29</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">358</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">30</field>
+      <field name="starttime">2007-12-06 19:01:07</field>
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">403</field>
+      <field name="errortype_id">2</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">31</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">533</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">32</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">534</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">33</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">535</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">34</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">538</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">35</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">276</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">36</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">664</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">37</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">665</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">38</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">663</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">39</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">666</field>
+      <field name="errortype_id">1</field>
+    </row>	
+    <row>
+      <field name="errorvalues_id">40</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">674</field>
+      <field name="errortype_id">2</field>
+    </row>  
+    <row>
+      <field name="errorvalues_id">41</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">673</field>
+      <field name="errortype_id">1</field>
+    </row>  	
+    <row>
+      <field name="errorvalues_id">42</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">787</field>
+      <field name="errortype_id">1</field>
+    </row>  
+    <row>
+      <field name="errorvalues_id">43</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">920</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">44</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">1000</field>
+      <field name="errortype_id">1</field>
+    </row> 	
+    <row>
+      <field name="errorvalues_id">45</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">1195</field>
+      <field name="errortype_id">1</field>
+    </row> 
+    <row>
+      <field name="errorvalues_id">46</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">1226</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">47</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">1227</field>
+      <field name="errortype_id">1</field>
+    </row>		
+    <row>
+      <field name="errorvalues_id">48</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">1228</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">49</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">1231</field>
+      <field name="errortype_id">1</field>
+    </row>	
+    <row>
+      <field name="errorvalues_id">50</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">1271</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">51</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">1309</field>
+      <field name="errortype_id">1</field>
+    </row>   	
+    <row>
+      <field name="errorvalues_id">52</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">1310</field>
+      <field name="errortype_id">1</field>
+    </row> 	
+    <row>
+      <field name="errorvalues_id">53</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">1416</field>
+      <field name="errortype_id">1</field>
+    </row> 	
+    <row>
+      <field name="errorvalues_id">54</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">1431</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">55</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">1540</field>
+      <field name="errortype_id">1</field>
+    </row>
+    <row>
+      <field name="errorvalues_id">56</field>
+      <field name="starttime" />
+      <field name="updatetime" />
+      <field name="deleted">false</field>
+      <field name="fieldvalues_id">1544</field>
+      <field name="errortype_id">1</field>
+    </row>
+</ROOT>
diff --git a/src/main/webapp/languages/errorvalues.xsd b/src/main/webapp/languages/errorvalues.xsd
new file mode 100644
index 0000000..66f06d1
--- /dev/null
+++ b/src/main/webapp/languages/errorvalues.xsd
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

+  <xs:element name="ROOT">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element maxOccurs="unbounded" ref="row"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="row">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element maxOccurs="unbounded" ref="field"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="field">

+    <xs:complexType mixed="true">

+      <xs:attribute name="name" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+</xs:schema>

diff --git a/src/main/webapp/languages/finnish.xml b/src/main/webapp/languages/finnish.xml
new file mode 100644
index 0000000..731bc45
--- /dev/null
+++ b/src/main/webapp/languages/finnish.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Konferenssi</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Kokous</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Tapahtumat</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Asetukset</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Profiili</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Ylläpito</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Pysäytä</value>
+  </string>
+  <string id="8" name="record">
+    <value>Nauhoita</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>Ei tiedostoa saatavilla</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Opettajan nauhoitus</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Aktiiviset käyttäjät:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Aloita konferenssi</value>
+  </string>
+  <string id="13" name="myname">
+    <value>Oma nimi</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>Videokonferenssi</value>
+  </string>
+  <string id="15" name="import">
+    <value>Lähetä tiedosto</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Päivitä lista</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>Päätiedostoon</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>uusi kysely</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>Uusi kysely konferenssiin.</value>
+  </string>
+  <string id="20" name="question">
+    <value>Kysymys:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Kyselyn tyyppi:</value>
+  </string>
+  <string id="22" name="create">
+    <value>Luo</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Tiedoksi: Jokainen paikalla oleva käyttäjä vastaanottaa viestin kyselystä.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Luo kysely</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Peruuta</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Kyllä/Ei</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Numeerinen 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Kysely</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Sinun täytyy olla moderaattori luodaksesi kysymyksen.</value>
+  </string>
+  <string id="30" name="vote">
+    <value>Äänesi on rekisteröity.</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Olet jo äänestänyt tässä kysymyksessä.</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Äänestä!</value>
+  </string>
+  <string id="33" name="answer">
+    <value>Vastauksesi:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Kyllä</value>
+  </string>
+  <string id="35" name="no">
+    <value>Ei</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>haluaa tietää:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Kyselyn tulokset</value>
+  </string>
+  <string id="38" name="question">
+    <value>Kysymys:</value>
+  </string>
+  <string id="39" name="results">
+    <value>Tulokset:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Vastaukset:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>Kyselyitä ei ole aloitettu.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Äänestä!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Kokous (enintään 4 osanottajaa)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Konferenssi (enintään 50 osanottajaa)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Tyyppi</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Vapaita paikkoja</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>On jo valittu</value>
+  </string>
+  <string id="48" name="enter">
+    <value>astu sisään</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>Moderaattori on lähtenyt kokouksesta.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Järjestelmän viesti</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Valitse laite</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Valitse web-kamera:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Valitse mikrofoni:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>ok</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>peruuta</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Sinun täytyy yhdistä uudelleen.</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Muokkaa asetuksia.</value>
+  </string>
+  <string id="58" name="course">
+    <value>Kurssi:</value>
+  </string>
+  <string id="59" name="language">
+    <value>Kieli:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>ok</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>peruuta</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Tyhjää kirjoitustaulu</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Haluatko tyhjentää kirjoitustaulun ennen uuden kuvan lisäämistä?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>Älä kysy uudestaan</value>
+  </string>
+  <string id="65" name="no">
+    <value>ei</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Muokkaa asetuksia</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Kysy varmistus ennen kirjoitustaulun tyhjäystä.</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Käyttäjätiedot</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Tyhjää piirtoalue</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Peru</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Tee uudestaan</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Valitse objekti</value>
+  </string>
+  <string id="73" name="text">
+    <value>Teksti</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Piirrä</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Piirrä viiva</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Alleviivaa</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Suorakaide</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Ellipsi</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Nuoli</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>poista valittu kohde</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Pyydä moderaattorin oikeutta</value>
+  </string>
+  <string id="82" name="apply">
+    <value>aseta</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>peruuta</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Muutu moderaattoriksi</value>
+  </string>
+  <string id="85" name="close">
+    <value>sulje</value>
+  </string>
+  <string id="86" name="italic">
+    <value>kursivointi</value>
+  </string>
+  <string id="87" name="bold">
+    <value>lihavointi</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>ODOTTAA</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>Käyttäjä hakee moderaattorin oikeutta:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>hyväksy</value>
+  </string>
+  <string id="91" name="reject">
+    <value>hylkää</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>peruuta</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Sending request to following Users</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Hyväksytty</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Hylätty</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Vaihda moderaattoria</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Et ole tämän kurssin moderaattori!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Moderaattori:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>Tämä huone on täynnä. Yritä myöhemmin uudestaan.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Ellipsi</value>
+  </string>
+  <string id="101" name="close">
+    <value>sulje</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>syötevirhe</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>vähintään 4 merkkiä; isoilla kirjaimilla on merkitystä!</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>salasanan täytyy olla vähintään 4 merkkiä pitkä</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>Tunnus on jo varattu</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>Sähköpostiosoite on jo rekisteröity</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>Järjestelmävirhe, ota yhteyttä ylläpitoon</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Kirjautuminen</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Käyttäjä:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Salasana:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Kieli</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Kirjaudu</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Rekisteröinti</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Käyttäjätunnus:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Salasana:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Uudestaan:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Etunimi:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Sukunimi:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>Sähköposti:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>Maa:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Rekisteröidy</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>Peruuta</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Etkö ole jäsen?</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>Koti</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Users</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Ryhmät</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Organisaatiot</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Kokoushuoneet</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>julkinen</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>Organisaatio</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>astu sisään</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Tunnus</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Salasana</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Uudestaan</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Etunimi</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Sukunimi</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>Sähköposti</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Synnyinaika</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Katuosoite</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>Postinumero/Toimipaikka</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>Maa</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Osoitteen lisätieto</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Käyttäjätieto</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>tallenna</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Tallenna</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>USER-ID</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>Tunnus</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>Etunimi</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>Sukunimi</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>näytä seuraava</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>näytä edellinen</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>poista tietue</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>peruuta</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>poista</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>uusi tietue</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>päivitä tietue</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>poista tietue</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>tila</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>pois käytöstä</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>käytössä</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>Organisaatiot</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>kalenteri</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>sulje</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>Organisaatio-ID</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>Nimi</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>Käyttäjä</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>Moderaattori</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>Ylläpitäjä</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>käyttäjätaso</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>Organisaatio</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>nimi</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>uusi organisaatio</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>uusi organisaatio</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>peruuta</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>lisää</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>poista organisaatio</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>käyttäjä</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>uusi käyttäjä</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>poista käyttäjä</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>uusi käyttäjä</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>etsi käyttäjää</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>haku</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>käyttäjä</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>Organisaatio</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>hyväksy</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Konferenssihuoneet</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Konferenssihuoneet</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>id</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Nimi</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>julkinen</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>Organisaatiot</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Kokoushuoneet</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>Nimi</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>Tyyppi</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>Julkinen</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>Kommentti</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>tallenna ja vie</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>lataa</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>tallenna nimellä</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>Tiedostonimi</value>
+  </string>
+  <string id="201" name="files">
+    <value>tiedostonimi</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>peruuta</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>tallenna</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>Virhe</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>ladataan</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>objektia ladattu</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>synkronisoidaan, odottavat asiakkaat:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Ladataan kuvadataa</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>synkronisoidaan, odottavat asiakkaat:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>tyhjää piirtoalue</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>tyhjää piirtoalue, koko piirtoalue tyhjennetään</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Varmista ennen tiedoston lataamista</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Lähetä kutsu</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Lähetä kutsu</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Aihe</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Vastaanottaja</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Viesti</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Lähetä</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>peruuta</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>lähetä</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Käyttäjätieto</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>Lempinimesi tähän konferenssiin</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>Lempinimi</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>Etunimi</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>Sukunimi</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>Sähköposti</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>Kieli</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>lisää</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Ladataan</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Ladataan, ole hyvä ja odota!</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Väärä salasana</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Anna kaksi samaa salasanaa joissa vähintään 6 merkkiä</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Epäkelpo sähköposti</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Annoit epäkelvon sähköpostiosoitteen</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>Rekisteröinti onnistui</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Tilisi on luotu, voit kirjautua sisään.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>Et voi jakaa ruutua tällä hetkellä, koska joku muu jakaa jo omaa ruutuaan.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Jakaminen kielletty</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Jaa ruutusi</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Kaistanleveys ei riitä: Et pysty synkronisoimaan ruutua. Ruudunpäivityksiä saattaa jäädä pois. Jos tämä ilmoitus toistuu usein, voit pyytää moderaattoria pienentämään kuvan laatua.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Käyttäjän ruutu:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Maalaa</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Dokumentti</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Keskustelu</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Tiedostot</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Jäsenet</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Lataa alkuperäinen dokumentti</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>Lataa pdf-dokumentti</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Lataa esitys piirtoalueelle</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Asetukset</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Raaha tätä objektia</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Muuta objektin kokoa</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>of</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>Mene ensimmäiselle sivulle</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>Mene edelliselle sivulle</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>Mene seuraavalle sivulle</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>Mene viimeiselle sivulle</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Zoom --</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Zoom ++</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Herra</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Rouva</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Asetukset</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Avain</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Asetukset</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Avain</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>edellinen päivitys</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>päivityksen tekijä</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>kommentti</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>Arvo</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>/</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Käyttäjät</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>poista käyttäjä organisaatiosta</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>poista</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>Käyttäjä on jo tämän organisaation jäsen.</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>Uutiset</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Pikalinkit</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Mene konferenssiin</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Mene auditorioon</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Apua ja tukea</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Ilmoita bugi!</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>lisää</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Projektin web-sivut (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>Käyttäjien postituslista (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Muista kirjautuminen</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Sisältö</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>Oma sivu</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>Tulevat kokoukset</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>Omat tulevat kokoukset</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Julkiset kokoukset</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Yksityiset kokoukset</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Julkiset tapahtumat</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Yksityiset tapahtumat</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Julkinen sisältö</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Yksityinen sisältö</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Henkilökohtainen sisältö</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Moderointi</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Hae moderointioikeutta</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Kyselyt</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Valitse tiedosto</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Asetukset</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Kamera ja mikrofoni</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Piirtoalueen asetukset</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Poistu</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Takaisin huoneisiin</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Poistu</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Unohditko salasanasi?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Nollaa salasana</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>Sähköpostilla</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Käyttäjätunnuksella</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>Sähköpostisi</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Tunnuksesi</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Lähetä sähköposti nollauslinkillä</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>Sähköpostiosoitetta ei löytynyt. Varmista että annoit saman osoitteen kuin mitä käytit rekisteröityessäsi.</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Anna sähköpostiosoite tai käyttäjätunnus</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>Käyttäjätunnusta ei ole</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>Linkin sisältävä sähköposti on lähetetty osoitteeseesi, ole hyvä ja tarkista sähköpostisi. Jos et ole vielä vastaanottanut viestiä, tarkista roskapostiasetuksesi ja yritä uudestaan.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Virhe</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Viesti</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Epäkelpo hash. Käyttäjää ei löydy.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Nollaa salasanasi</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Kirjaudu</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>vaihda salasana</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>uusi salasana</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>salasana uudestaan</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>Antamasi salasanat eivät täsmänneet.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>4 merkkiä tai pidempi; isoilla kirjaimilla on merkitystä!</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Salasana asetettu. Voit nyt kirjautua sisään.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Tuntematon virhe. Ole hyvä ja ilmoita virheestä tukitiimillesi.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Käyttäjää ei löydy</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Epäkelpo salasana</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Uloskirjautuminen onnistui</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Rekisteröinti on poissa käytöstä.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>Epäkelpo sähköposti</value>
+  </string>
+  <string id="340" name="registration">
+    <value>saman niminen tiedosto on jo olemassa, valitse toinen nimi</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>tiedostonimi liian lyhyt</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Ei voitu tallentaa osoitetta</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>Käyttäjä lisätty, mutta sinun täytyy lisätä tämä käyttäjä johonkin organisaatioon jotta hän voi kirjautua sisään.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Uusi tietue</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>Kenttää ei löytynyt kentän id:llä.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>Kentälle ei löydy kuvausta.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Ylläpitäjän oikeudet tarvitaan.</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Kielien muokkaus</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Kieli</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>Nimi-ID</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Kuvaus-Nimi</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Arvo</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Kentän arvot</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>Kuvaus</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>Arvo</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>Kuvaus-ID</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>Poistit pelkän kuvauksen etkä kenttää! Et voi poistaa kenttää, sillä voi olla kuvauksia muilla kielillä.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>Epäkelpo kuvaus-ID. Kenttää FieldLanguagesvalues_Id ei löydy tietokannasta.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Et voi poistaa tätä kenttää. Voit ainostaa poistaa kuvauksia, et kenttiä. Kuvausta ei ole ladattuna nyt, joko sitä ei ole valittuna mistään kentästä tai tälle kielelle ei ole määritelty kuvauksen mukaista kenttää.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>vie</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Sinun täytyy kirjaudua uudestaan nähdäksesi muutokset.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Lisää kieli</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>poista kieli</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Lisää kieli</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Nimi</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>lisää kieli</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Varmuuskopiointi</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>mene alkuun</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>edellinen</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>seuraava</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>viimeinen</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>käyttäjä puhuu (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>ääni päälle/pois</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>Järjestelmä</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Asetuksesi</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>hei,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Muokkaa profiiliasi</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Uudet viestit:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Lataa uusi kuva</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Käyttäjädata - Vie</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>Organisaatioiden täytyy olla jo olemassa!</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>aloita vienti</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>Organisaation mukaan</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>aloita vienti</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Käyttäjädata - Tuo</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>valitse users.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>tuo</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Vie XML-tiedostoksi - Näitä tiedostoja voidaan käyttää: Projektiin osallistuminen - Toiseen järjestelmään vienti - Varmuuskopiointi - Mukautus - Laita se hakemistoon language seuraavaa asennustasi varten.</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Valitse kielitiedosto tuotavaksi. Valitse oikea kieli valintalistalta! Tämä määrää asetettavan kielen tiedoston nimestä riippumatta!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>tuonti - valitse tiedosto</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Tallenna nimellä</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Nimi:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Kommentti:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>tallenna</value>
+  </string>
+  <string id="395" name="record">
+    <value>Nauhoitukset</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Nauhoitusten katselu</value>
+  </string>
+  <string id="397" name="record">
+    <value>Julkisten ja yksityisten huoneiden nauhoitukset</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Käyttäjät :</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Liittynyt:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Käyttäjiä huoneessa:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>päivitä</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>Tämä huone on täynnä. Yritä uudestaan muutaman minuutin kuluttua.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>klikkaa huonetta saadaksesi lisätietoja</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Keskustele tämän huoneen käyttäjien kanssa:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Huone:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Käyttäjät huoneessa:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>since:</value>
+  </string>
+  <string id="409" name="record">
+    <value>toista nauhoitus</value>
+  </string>
+  <string id="410" name="record">
+    <value>Pituus:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Päivämäärä:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Nauhoitustila! Et voi muuttaa arvoja, tämä on nauhoitettu tiedosto!</value>
+  </string>
+  <string id="413" name="record">
+    <value>Toista nauhoitus</value>
+  </string>
+  <string id="414" name="record">
+    <value>Toista / Keskeytä</value>
+  </string>
+  <string id="415" name="record">
+    <value>Aloita nauhoitus</value>
+  </string>
+  <string id="416" name="record">
+    <value>pysäytä nauhoitus</value>
+  </string>
+  <string id="417" name="record">
+    <value>Nauhoittaa:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>Joku on jo nauhoittamassa tällä hetkellä:</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Nauhoitetaan! Käyttäjä:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>peruuta</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>Nauhoitus peruutetaan ja sitä ei tallenneta.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>palaa</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Sulje ikkuna ja jatka nauhoitusta</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>muuta viivan väriä</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Valitse väri</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Viivan väri päälle/pois</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>muuta täytön väriä</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>täyttöväri päälle/pois</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Muuta viivan leveyttä</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>sulje</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>muuta fontin kokoa</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Poista nauhoitus</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Vieras</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>Tehnyt:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Nimi</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Huone</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Aika</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>peruuta</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>aloita</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Nimi</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Päivämäärä</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Poista palvelimen keskusteluloki</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Keskustelu</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>lähetä viesti</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Hymiöt</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Hymiöt</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Valitse julkaistavat laitteet</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Ääni ja video</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Vain ääni</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Vain video</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>Ei ääntä/videota (kiinteä kuva)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>Ääntä/kuvaa tietokoneelta ei julkaista. Profiilikuvasi näytetään sen sijaan. Valitse tämä asetus jos sinulla on ongelmia yhteytesi kanssa tai yhteytesi on erittäin hidas.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>MA</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>TI</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>KE</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>TO</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>PE</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>LA</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>SU</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Maanantai</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Tiistai</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Keskiviikko</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Torstai</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Perjantai</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Lauantai</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Sunnuntai</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>KV</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Kalenteriviikko</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>Tammikuu</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>Helmikuu</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>Maaliskuu</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>Huhtikuu</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>Toukokuu</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>Kesäkuu</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>Heinäkuu</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>Elokuu</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>Syyskuu</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>Lokakuu</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>Marraskuu</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>Joulukuu</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Kalenteri</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Osanottajat</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Näytä asettelun asetukset</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Leveys | Korkeus</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Video-Säiliö</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Moderaatio-Säiliö</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Piirtoalue-Säiliö</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Päällä</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Leveys | Korkeus</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Tiedostot,Keskustelu,Osanottajat - Säiliö</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Päällä</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Leveys | Korkeus</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>Moderaattori on lähtenyt huoneesta, kukaan ei ole esittäjänä tällä hetkellä. Voit hakea moderaattorin oikeuksia tai odottaa.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>Tässä huoneessa on muutama osanottaja mutta ei moderaattoria. Voit hakea moderaattorin oikeuksia tai odottaa.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>$APP_NAME palaute</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Kutsu</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Viesti käyttäjältä:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Viesti:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Käytä tätä linkkiä ottaaksesi osaa kokoukseen:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Klikkaa tästä liittyäksesi huoneeseen</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>jos linkin kanssa on ongelmia, ole hyvä ja kopioi se selaimesi osoiteriville:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME Rekisteröinti</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Käyttäjätietosi:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Tunnus:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Salasana:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>Sähköposti:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME-Tiimi</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME Rekisteröinti</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - Salasanan nollaus</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Käytä tätä linkkiä syöttääksesi uuden salasanan:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Klikkaa tästä syöttääksesi uuden salasanan</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>jos linkin kanssa on ongelmia, ole hyvä ja kopioi se selaimesi osoiteriville:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME Salasanan nollaus</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Anna päivämäärä muodossa pp.kk.vvvv (esim. 24.12.2009)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Anna toimiva sähköpostiosoite, muodossa nimi@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Anna liukuluku, esim. 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Anna kokonaisluku, esim. 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Anna puhelinnumero, esim. +358501234567</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Anna kellonaika, esim. 12:23 (tt:mm)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Salasanasuojaus</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Salasana</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Voimassaoloaika</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Päättymätön</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Aikaväli</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Kertakäyttöinen</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Voimassa alkaen:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Voimassa kunnes:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Kutsu $APP_NAMEiin</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Kutsua ei ole saatavilla antamallesi kutsukoodille</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>Kutsu on jo käytetty. Kutsua ei voi uudelleenkäyttää.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>Kutsu ei ole kelvollinen.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Salasana:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Tarkista salasana</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Väärä salasana!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Ääni_Kuva</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Synkronisoi ääni/kuva</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Kirjautuminen onnistu, mutta haluamasi istunto ei ole aktiivinen tai ei ole tallennettu palvelimelle. Sinun täytyy hankkia uusi istunto-id ja yrittää kirjautumista uudelleen.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>Istunnon id ei ole kirjautunut tai sillä ei ole ylläpitäjän oikeuksia. SOAP-yhdyskäytävä tarvitsee ylläpitokäyttäjän oikeudet lisätäkseen käyttäjiä.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>Tällä istunnolla ei ole etäkäyttäjän tietoja. Joko kutsuit SOAP-yhdyskäytävää ennen ohjelman käyttämistä tai käytät väärää istunnon id:tä</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>Nauhoittaminen on vielä Beta-asteella!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>x-akseli</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>y-akseli</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>l</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>leveys</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>k</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>korkeus</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Muuta läpinäkyvyyttä</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Avaa selain</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Sulje selain</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>Yhteys palvelimeen menetettiin. Sinun täytyy käynnistää sovellus uudelleen ja/tai tarkistaa verkkoyhteytesi.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Osoitin</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Synkronisoidaan</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Synkronisoidaan käyttäjiä, ole hyvä ja odota</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Lataa SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Lataa PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Lataa JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Lataa PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Lataa TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Muistutus:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Kategoria:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Toisto:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>tyhjä</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Sijainti:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Alku</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>Loppu</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Otsikko:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Kommentti:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Kutsu ihmisiä</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Päivittäinen</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Kuukausittainen</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Vuosittainen</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Tapaamisen loppuaika on ennen alkuaikaa!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Anna otsikko!</value>
+  </string>
+  <string id="580" name="580">
+    <value>Oikea-Vasen</value>
+  </string>
+  <string id="581" name="581">
+    <value>Käytä tätä jos tarvitset käänteistä sanajärjestystä (oikealta vasemmalle)</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Paneeli</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Katsele nauhoitettuja kokouksia tai tapahtumia</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Kokous - Perusta konferenssi neljälle käyttäjälle (korkeintaan 16) &lt;br/&gt;kaikilla on oikeus ääneen + kuvaan</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Tapahtuma - Luo konferenssi enintään 200 osanottajalle. &lt;br/&gt;Vain moderaattorilla on kuva ja ääni</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Luo käyttäjiä, huoneita, organisaatioita &lt;br/&gt; + muokkaa asetuksia</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Käyttäjät tällä hetkellä tässä huoneessa</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Tunnis</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Ladataan dokumenttia. Ole hyvä ja odota kunnes kaikki asiakkaat ovat synkronisoineet.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Lähetys valmis, muunnetaan dokumenttia ...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Aloita lähetys</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Tiedoston lähetys ja tuonti-ikkuna. Ole hyvä ja valitse tiedosto koneeltasi.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Peruuta</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Valitse tiedosto</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Yhteydet</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Arvo</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Stream id</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Kirjaudu</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Yhdistetty alkaen</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Huone / Laajuus</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Poista käyttäjä</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Poista käyttäjä</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Haluatko varmasti katkaista tämän asiakkaan yhteyden?&lt;br/&gt; Tämä vain poistaa asiakkaan huoneesta. Asiakas voi kirjautua aina uudestaan.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Istuntosi on lopetettu ylläpitäjän tai moderaattorin toimesta.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Puhelin</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>Käyttäjä on tämän huoneen moderaattori</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>Käyttäjä voi piirtää piirtoalueelle</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Re) Käynnistä Ääni/Kuva tai muuta laitteiden asetuksia</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Salli tämän käyttäjän piirtää piirtoalueelle</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Estä käyttäjän piirtäminen piirtoalueelle</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Käyttäjät</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Tiedostot</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Piirtoalue</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Keskustelu</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Tunnuksesi on liitetty useampaan organisaatioon. Ole hyvä ja valitse yksi tätä istuntoa varten.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>Tämä huone on täynnä. Ole hyvä ja yritä myöhemmin uudestaan.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Huoneen tyyppi</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Tapaamishuone</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Palvelimen aika</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - Muistutus</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Viesti käyttäjältä:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Viesti:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Klikkaa tätä linkkiä osallistuaksesi kokoukseen:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Klikkaa tästä liittyäksesi huoneeseen</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>jos linkin kanssa on ongelmia, ole hyvä ja kopioi se selaimesi osoiteriville:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>hae sisäisiä</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>ulkoiset käyttäjät</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>nimen etuliite</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>nimi</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>Sähköposti</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Varmista poistuminen</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Haluatko varmasti kirjautua ulos?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Toiminnot</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Esittelyhuone</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Esittelyaika</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Kokousajastin</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>Tämä on esittelyhuone. Poistaaksesi tämän varoituksen voit hankkia oman yksityishuoneesi tai perustaa oman palvelimen. Sinut kirjataan ulos automaattisesti hetken kuluttua:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Moderoitu</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Ole hyvä ja odota kunnes moderaattori on liittynyt huoneeseen. Moderaattori voi olla joko opettaja, ylläpitäjä tai tämän huoneen tekijä.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Ok</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Incoming Screen Sharing</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>Uusi ruudun jako on tulossa käyttäjältä:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Aloita jakaminen</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Lisää uusi kokous</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Kokoushuone</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Tapahtumahuone</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderointi</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Moderoi käyttäjiä</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Moderoi huoneita</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Haluatko asettaa tämän käyttäjän moderaattoriksi tälle organisaatiolle?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Ole hyvä ja valitse organisaatio ennenkuin yrität lisätä siihen käyttäjiä!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organisaatio - Moderaattori</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Haluatko poistaa käyttäjän organisaatiosta?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>Tämä käyttäjä on Moderaattori</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>Tämä käyttäjä ei ole moderaattori</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Haluatko että käyttäjä ei ole moderaattori tälle organisaatiolle?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Lisää tai poista käyttäjiä tai huoneita organisaatiossasi</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Haluatko poistaa tämän tietueen?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Haluatko todella poistaa käyttäjän organisaatiostasi? Tämä poistaa pelkästään linkin käyttäjän ja organisaation välillä, jos haluat poistaa käyttäjän niin joudut kirjautumaan ylläpitopaneeliin.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>Et voi poistaa itseäsi!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>Tämä toiminto vaatii ylläpitäjän oikeudet!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>Tälle ID-numerolle ei ole määritelty istuntoa.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>Tämä on ylläpitäjän tai moderaattorin tili. Voit muokata tiliä vain ylläpitopaneelin kautta.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>Klikkaa seuraavaa linkkiä viimeistelläksesi rekisteröintisi tai kopioi osoite selaimesi osoiteriville.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Klikkaa varmistaaksesi sähköpostiosoitteesi</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Käyttäjää ei löytynyt annetulla tunnuksella</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Käyttäjä on jo aktivoitu!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Käyttäjätunnuksesi aktivoitiin onnistuneesti!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Kirjaudu nyt</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Käyttäjätunnustasi ei ole aktivoitu. Muista käyttää varmistussähköpostin mukana tullutta linkkiä ennen uutta yritystä.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>Olen rekisteröitynyt onnistuneesti. Lähetimme sinulle sähköpostin jossa on varmistuskoodi. Ole hyvä ja tarkista sähköpostilaatikkosi.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Poista käyttäjän moderointioikeus</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Anna moderointioikeus tälle käyttäjälle</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>Käyttäjä</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Käyttöoikeus piirtopöydälle</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderaattori</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Moderointi: Ole hyvä ja valitse käyttäjä listalta antaaksesi hänelle oikeuden piirtopöydälle, moderointiin tai videoon.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>Tämä käyttäjä on jo moderaattori, joten hänellä on aina oikeus piirtää.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>Et voi poistaa moderointioikeutta itseltäsi!</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Salli tämän käyttäjän julkaista ääntä / kuvaa</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Poista ääni/kuva tältä käyttäjältä</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>Haluaisin saada moderointioikeuden tähän huoneeseen</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>Haluan piirtää piirtoalueelle</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>Haluan jakaa ääntä/kuvaa</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>Olet tämän huoneen moderaattori</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>Sinulla on oikeus piirtää piirtoalueelle</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>Sinulla on oikeus jakaa ääntä/kuvaa</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Lähetä viesti moderaattorille</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>Käyttäjä</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>pyytää moderointioikeutta. Käytä kuvakkeita listassa käyttäjän vieressä salliaksesi tai poistaaksesi oikeuden.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>pyytää oikeutta piirtää piirtoalueelle. Käytä kuvakkeita listassa käyttäjän vieressä salliaksesi tai poistaaksesi oikeuden.</value>
+  </string>
+  <string id="695" name="695">
+    <value>pyytää oikeutta jakaa ääntä/kuvaa. Käytä kuvakkeita listassa käyttäjän vieressä salliaksesi tai poistaaksesi oikeuden.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>Sinun täytyy odottaa kunnes moderaattori liittyy huoneeseen.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Peruuta</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Tallenna</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Päivä</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Kuukausi</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Vuosi</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Upload File</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Refresh</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Trash (Drag and Drop item here)</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>My Files (Home Drive)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Room Files (Public Drive)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Add File</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Delete Folder</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Edit Name</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>New Folder</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Are you sure you want to delete this Item?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Open Document</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Show all Files (Tree View)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Close Document</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Delete File</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>You are not allowed to draw anything on the Whiteboard. You have to become Moderator or at least get the Right to edit Whiteboard. You may ask a Moderator to give you that right.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Document Properties</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Start Client (external)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Start Client (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>A user want to share his screen. Do you want to see it?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>You are currently sharing your Desktop. For stopping the Sharing Session please hit the Stop button in the Sharing Client.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Sharing Session</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>You are already sharing your desktop!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Desktop Viewer</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Exit</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Desktop Sharer</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Click Start to publish your screen</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Start Sharing</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Select your screen area:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Change width</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>The Sharer has finished this session!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Change height</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-Offset</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-Offset</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Width:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Height:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Connection was closed by Server</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Cancel</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Start External</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>If you close this session completely you are not able to restart the viewer for this session.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Confirm Closing Viewer Session</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Share Screen</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Record Session</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Co-Browsing</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Ooops, ... Firefox on Windows does not show clear Co-Browsing. Please use another Browser for using the Co-Browsing feature.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Previous</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Next</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Reload</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Home</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Load</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Add this website as Default website to your Profile.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Test Setup</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Check you Microphone and Camera setup before you enter a room by recording some seconds. You can then replay your recording to check your voice and picture.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Don't show this test anymore</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Cancel</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Start Conference</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Do not ask again</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>You may proceed without testing if you do not plan to publish your voice or picture. Participants without Audio or Video can still use the Whiteboard, share their Desktop or write Chat messages.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="test setup">
+    <value>Level-Meter</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Press Start</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Start Event</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Choose Room</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Check Setup</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="774" name="start view">
+    <value>How to conference</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Start Recording</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Do not show Audio / Video Test (Recording) before entering a Conference</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Public Rooms</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Public Rooms are accessible for all Users.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Private Rooms</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Private Rooms are only accessible for users of the same organization.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>My Rooms</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Rooms in this section are created for personal usage. There are some standard rooms plus the ones that are created through the calendar and have a start and an end date. The rooms created via the calendar are only listed in this section as long as they are valid.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>You have to be moderator to do this.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Apply for moderation</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Apply for whiteboard access</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Apply for camera/microphone access</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>This Session Hash was already used. You cannot use it twice.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>START</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>EXIT</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Do you really want to exit? You might should clear uploaded documents, whiteboard and the chat history.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Exit conference</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Rooms</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Choose a room for a meeting</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>There is an unsaved Event in the Calendar. Please either save it or remove it.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Please add at least one attendee for your meeting!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Do you really want to delete this Event?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Warning</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Add Event</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>Day</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>Week</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>Month</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Description</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Attendees</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, your Web Conferencing Platform. Either follow the Instructions, press the start button to start to conference immediatelly or you goto the Calendar and set up a Conference for the future.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Plan a Meeting</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>To set up a conference you can add a new Event in the Calendar.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Need help?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Restricted</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Search</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Add</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>There is no User selected. Please select an item from the list first and then hit add.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Add Attendee</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Save</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Delete</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Event Details</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Default Moderators</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Name</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>E-Mail</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Add new default Moderator</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Is Super Moderator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>If the Room is moderated, User with Level Moderator or Administrator are automatically Moderator if they enter the Room. If you don't want to specify that and only want a certain User to become Moderator use the Default Moderator option.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>A Super Moderator is always a Moderator when he enters a Room, and nobody can remove the Moderation Flag from him</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Apply Super-Moderation to User</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Remove Super Moderation from User</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>If you add an Organization to the room only users of that Organization have access to it (This is only valid if the isPublic flag is set to false!)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderation</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitations</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organization</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Are you sure?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Do you really want to delete this Item? You have to press the save button to store the changes!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>There is no User selected. Please select first before you add it!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Add new Default Moderator</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Do you want to add the Super Moderation Flag for this User? A Super Moderator is not only Moderator of a Room, but also no other Moderator can remove the Moderation Flag for this User. You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Do you want to remove the Super Moderation Flag for this User? You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>This User is a Super-Moderator. You cannot remove the Moderation flag from a Super-Moderator!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Do you really want to delete this File/Folder?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Delete File/Folder?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Mrs.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Properties</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Show mouse position to viewers</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Share Audio with SIP Applet</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Share Audio with SIP and Video with Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Full-Fit</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>View Screen</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>The user</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>wants to share its screen. Do you want to see it?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Close</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>The Session was closed by the sharing User!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>New Screen Sharing</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimize</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximize</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Recording Timeline</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>My Recordings</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Public Recordings</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Name</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Length</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Date</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>By</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>PLAY</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Main - Video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Recording</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>You may record and share your screen at the same time. To enable others to see your screen just hit the start button on the top. To only record the Session it is sufficient to click start recording.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Start Recording</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Stop Recording</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download the FLV-File</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Room</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Play</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>User has microphone on</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Allow User Questions</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Turn this off to prevent that any user is disturbing you in this room. Effect is that the Button to ask for Moderation ("I have a question") is not visible.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rights</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Download as AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Audio only</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>The have been errors while processing the Recording.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>The Recording is not yet ready for watching. Please retry in a couple of minutes again.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Recorder Message</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP Applet is not Ready</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP-Account Settings</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP settings for each user. You can turn on or off SIP via the Administration &gt; Configuration (Key: enable_sip). The SIP data for each user should be created automatically. You can re-create the data by checking "Re-generate SIP Data"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-User</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Pass</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. You should check the authentification data of your SIP-Provider and the SIP-Account Data for each User. As Administrator you are still able to login and check the Configuration. As User or Moderator you will be blocked from any interaction.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. Contact your Service Team!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Show Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log messages from post recorder process</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Applet Message</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>The SIP-Applet is not ready. Accept the Applet please and click ok!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Get Moderation</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Save Appointment Changes</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointement has been changed. Do you want to save those changes? &lt;br/&gt;&lt;br/&gt;All attendees of the appointment will receive a EMail with the updated date and time (depending on the notification type of this appointment).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>To access other recordings you have to login the $APP_NAME Application.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Choose the User for this Video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available Users for this Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>You are a Moderator in this Interview. You can decide who is speaking in this interview and you can start / stop the recording of the Session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Start Recording</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Stop Recording</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>The recording of the Interview is already started.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>The recording is already stopped or not been started yet.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>The recording for this interview is already started!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Clear objects on current slide only!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the Status bar is send to participants!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make Team-Rooms [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new Team-Room!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new Conference Room ("Team Room") for them. The chosen users will automatically switch to the new Team-Room or get a notification. Team-Room Moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a Moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Username</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new Team-Room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create Team-Room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the Team-Room!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from Team-Room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Roomtype</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the System. The Backup includes all User generated data. The configuration is not included as well as the language labels. Because those values are imported with the System Installer. To update your System, export your old system (1) re-install into a new database the new package (2) and import the Backup file again (3). The Backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share Screen/Record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is Moderator, he can do anything!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/Deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose "Insert" from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about Copy and Paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Kick user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/french.xml b/src/main/webapp/languages/french.xml
new file mode 100644
index 0000000..35725a6
--- /dev/null
+++ b/src/main/webapp/languages/french.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Conférence</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Réunion</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Conférence</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Paramètres</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Profil</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Administration</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Stop</value>
+  </string>
+  <string id="8" name="record">
+    <value>Enregistrer</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>Aucun fichier disponible</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Enregistrement par le professeur</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Utilisateurs connectés :</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Commencer une conférence</value>
+  </string>
+  <string id="13" name="myname">
+    <value>Mon nom</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>Vidéoconférence</value>
+  </string>
+  <string id="15" name="import">
+    <value>Nouvelle présentation</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Charger à nouveau la liste</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>Retour à la liste des fichiers</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>Nouveau sondage</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>Un nouveau sondage pour la conférence.</value>
+  </string>
+  <string id="20" name="question">
+    <value>Question :</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Type de sondage :</value>
+  </string>
+  <string id="22" name="create">
+    <value>Créer</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Info : Chaque utilisateur reçoit le nouveau sondage.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Créer un sondage</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Annuler</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Oui/Non</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Numérique 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Sondage</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Vous devez être modérateur pour créer un sondage.</value>
+  </string>
+  <string id="30" name="vote">
+    <value>Votre vote est enregistré.</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Vous avez déjà voté pour ce sondage.</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Voter !</value>
+  </string>
+  <string id="33" name="answer">
+    <value>Votre réponse :</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Oui</value>
+  </string>
+  <string id="35" name="no">
+    <value>Non</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>Question posée :</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Résultats des votes</value>
+  </string>
+  <string id="38" name="question">
+    <value>Question :</value>
+  </string>
+  <string id="39" name="results">
+    <value>Résultats :</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Réponses :</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>Aucun sondage n'est en cours.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Voter !</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Réunion (max. 4 places)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Conférence (max. 50 places)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Mode</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Autres places</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Déjà choisi</value>
+  </string>
+  <string id="48" name="enter">
+    <value>Entrer</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>L'animateur a quitté la réunion.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Information du système</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Choix du périphérique</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Choix de la caméra :</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Choix du micro :</value>
+  </string>
+  <string id="54" name="ok">
+    <value>Ok</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>Annuler</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Vous devez vous reconnecter</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Edition des réglages</value>
+  </string>
+  <string id="58" name="course">
+    <value>Cours :</value>
+  </string>
+  <string id="59" name="language">
+    <value>Langue :</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>Ok</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>Annuler</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Nettoyer le tableau blanc</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Voulez-vous nettoyer le tableau blanc avant d'ajouter une nouvelle image ?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>Ne pas redemander</value>
+  </string>
+  <string id="65" name="no">
+    <value>Non</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Modifier les réglages</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Demander confirmation avant de nettoyer le tableau blanc</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Information sur l'utilisateur</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Effacer tableau blanc</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Annuler</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Refaire</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Sélectionner un objet</value>
+  </string>
+  <string id="73" name="text">
+    <value>Texte</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Dessiner</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Tracer une ligne</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Surligner</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Rectangle</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Ellipse</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Flèche</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>Supprimer l'élément sélectionné</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Demander la modération</value>
+  </string>
+  <string id="82" name="apply">
+    <value>Appliquer</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>Annuler</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Devenir modérateur</value>
+  </string>
+  <string id="85" name="close">
+    <value>Fermer</value>
+  </string>
+  <string id="86" name="italic">
+    <value>Italique</value>
+  </string>
+  <string id="87" name="bold">
+    <value>Gras</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>En attente...</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>Un utilisateur souhaite devenir modérateur :</value>
+  </string>
+  <string id="90" name="accept">
+    <value>Accepter</value>
+  </string>
+  <string id="91" name="reject">
+    <value>Rejeter</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>Annuler</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Envoi aux autres utilisateurs</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Accepté</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Rejeté</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Changer de modérateur</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Vous n'êtes pas le modérateur de ce cours !</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Modérateur :</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>Cette salle est pleine. Merci de revenir plus tard.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Ellipse</value>
+  </string>
+  <string id="101" name="close">
+    <value>Fermer</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>Erreur de formulaire</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>Le nom d'utilisateur doit contenir au moins 4 caractères</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>Le mot de passe doit contenir au moins 4 caractères</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>Le nom d'utilisateur existe déjà</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>Cette adresse e-mail est déjà utilisée</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>Erreur système, merci de contacter l'administrateur</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Connexion</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Utilisateur :</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Mot de passe :</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Langue :</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Se connecter</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>S'enregistrer</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Utilisateur :</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Mot de passe :</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Retapez :</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Prénom :</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Nom :</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>E-mail :</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>Pays :</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Enregistrer</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>Annuler</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Inscription</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>Accueil</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Utilisateurs</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Groupes</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Organisations</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Salles</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>Publique</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>Organisation</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>Entrer</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Identifiant</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Mot de passe</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Confirmez</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Prénom</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Nom</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>E-mail</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Date de naissance</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Rue et N°</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>Code postal/Ville</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>Pays</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Commentaires</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Détails sur l'utilisateur</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>Sauvegarder</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Sauvegarder</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>ID</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>Login</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>Prénom</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>Nom</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>Suivant</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>Précédent</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>Effacer l'enregistrement</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>Annuler</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>Effacer</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>Nouvel enregistrement</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>Actualiser l'enregistrement</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>Effacer l'enregistrement</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>Statut</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>Désactivé</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>Activé</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>Organisations</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>Calendrier</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>Fermer</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>ID Organisation</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>Nom</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>Utilisateur</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>Modérateur</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>Admin</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>Type d'utilisateur</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>Organisation</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>Nom</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>Ajouter une organisation</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>Ajouter une organisation</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>Annuler</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>Ajouter</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>Effacer organisation</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>Utilisateur</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>Ajouter utilisateur</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>Effacer utilisateur</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>Ajouter utilisateur</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>Rechercher un utilisateur</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>Rechercher</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>Utilisateur</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>Organisation</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>Entrer</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Salles</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Salles</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>ID</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Nom</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>Publique</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>Organisations</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Salle de conférence</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>Nom</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>Type</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>Publique</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>Commentaire :</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>Enregistrer</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>Charger</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>Enregistrer sous</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>Nom du fichier</value>
+  </string>
+  <string id="201" name="files">
+    <value>Nom du fichier</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>Annuler</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>Sauvegarder</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>Erreur</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>Chargement</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>Objets chargés</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>Synchronisation des clients, patientez...</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Chargement des données</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>Synchronisation des clients, patientez...</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>Effacer la zone de dessin</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>Effacer la zone de dessin, toutes les données sur le tableau blanc seront perdues</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Confirmer avant de charger un fichier</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Envoyer invitation</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Envoyer invitation</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Sujet</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Destinataire</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Message</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Envoyer</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>Annuler</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>Envoyer</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Détails sur l'utilisateur</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>Votre pseudonyme pour cette conférence</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>Pseudo</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>Prénom</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>Nom</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>E-mail</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>Langue</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>Entrer</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Chargement</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Sélectionnez votre langue</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Mot de passe erroné</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Merci de mettre deux mots de passes identiques avec 6 caractères minimum</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Adresse e-mail erronée</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Vous avez utilisé une adresse E-mail non valide</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>Enregistrement effectué</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Votre compte a été créé. Vous pouvez maintenant vous connecter</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>Vous ne pouvez pas partager votre écran car un autre utilisateur utilise déjà cette fonctionnalité</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Partage annulé</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Partager votre écran</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Mauvaise bande passante : Vous ne pouvez pas synchroniser votre écran. Des images seront supprimées.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Ecran de :</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Dessiner</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Document</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>T'chat</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Fichiers</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Membres</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Télécharger le document original</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>Télécharger le document PDF</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Chargement de la présentation sur le tableau blanc</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Configuration</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Déplacer cet objet</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Redimensionner cet objet</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>de</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>Aller à la première page</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>Aller à la page précédente</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>Aller à la page suivante</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>Aller à la dernière page</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Zoom --</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Zoom ++</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>M.</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Mme.</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Configuration</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Clé</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Configuration</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Clé</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>Dernière MAJ</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>Mis à jour par</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>Commentaire</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>Clé</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>de</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Utilisateurs</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>Effacer l'organisation</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>Effacer</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>Cet utilisateur est déjà membre de l'organisation</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>Nouvelles</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Raccourcis</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Aller à la réunion</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Aller à la conférence</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Aide et support</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Un bug !</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>Détail</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Site du projet (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>Liste de diffusion pour les utilisateurs (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Se souvenir de moi</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Contenu</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>Ma page personnelle</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>Mes réunions programmées</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>Mes conférences programmées</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Réunions publiques</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Réunions privées</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Auditorium public</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Auditorium privé</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Contenu public</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Contenu privé</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Contenu personnel</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Modération</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Demander la modération</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Sondage</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Choisir un fichier</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Configuration</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Choix micro/caméra</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Config. du tableau blanc</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Sortir</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Retour aux salles</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Quitter</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Mot de passe oublié ?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Réinitialiser votre mot de passe</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>Par e-mail</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Par login</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>Votre e-mail</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Votre login</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Envoyer un e-mail de réinitialisation</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>Aucune adresse trouvée. Soyez sûr d'avoir entré la même adresse que durant l'inscription.</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Entrez votre e-mail ou nom d'utilisateur</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>Il n'y a pas d'utilisateur avec ce nom</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>Un e-mail contenant un lien vous a été envoyé. Si vous n'avez pas reçu d'e-mail, vérifiez votre antispam et redemandez une confirmation.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Quitter</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Message</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Hachage non valide. Pas d'utilisateur trouvé.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Changez votre mot de passe</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Login</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>Changez votre mot de passe</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>Nouveau mot de passe</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>Retapez votre mot de passe</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>Les mots de passe que vous avez entrés ne sont pas identiques.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>4 caractères ou plus ; la casse a de l'importance !</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Mot de passe changé. Vous pouvez vous connecter.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Erreur inconnue. Veuillez le signaler à votre équipe support.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Nom d'utilisateur inconnu</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Mot de passe non valide</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Déconnecté avec succès</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Enregistrement depuis la page d'accueil désactivé.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>E-mail non valide</value>
+  </string>
+  <string id="340" name="registration">
+    <value>Nom de fichier identique, veuillez choisir un autre nom de fichier</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>Nom de fichier trop court</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Impossible de sauvegarder l'adresse</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>Utilisateur ajouté. Si vous ne l'avez pas assigné à une organisation, veuillez le faire sans quoi il ne pourra pas se connecter.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Nouvel enregistrement</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>Pas de champ trouvé avec cet ID.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>Pas d'étiquette trouvée pour ce champ.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Requière l'autorisation de l'administrateur</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Editeur de langue</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Langue</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>Label-ID</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Label-Nom</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Label-Valeur</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Champs</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>Label-Nom</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>Label-Valeur</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>Label-ID</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>Vous avez effacé le label, pas le champ ! Vous ne pouvez pas effacer le champ, il peut contenir des labels pour d'autres langues.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>ID du label non valide. Le FieldLanguagesvalues_Id n'est pas dans la base de données.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Vous ne pouvez pas supprimer ce champ, seulement les labels. Il n'y a pas de labels pour le moment ou il n'y a pas de labels pour ce langage.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>Exporter</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Vous devez vous déconnecter pour voir les changements.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Ajouter un langage</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>Effacer un langage</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Ajouter un langage</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Nom</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>Ajouter un langage</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Sauvegarde</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>Retour au début</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>Précédent</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>Suivant</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>Aller au dernier</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>L'utilisateur parle</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>Son marche/arrêt</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>Système</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Votre configuration</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>Bonjour,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Editez votre profil</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Nouveau(x) Message(s) :</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Nouvelle image</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Détails utilisateurs</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>Choisissez votre organisation</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>Commencer l'export</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>Tous les utilisateurs</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>Commencer l'export</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Importer détails utilisateurs</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>Choisissez users.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>Importer</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Export en XML - Ces fichiers peuvent être utilisés pour : - Contribuer au projet - Importation sur un autre système - Sauvegarde - Personnalisation - Mettez-le dans le dossier des langues pour votre prochaine installation</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Choisissez un fichier de langue à importer. Choisissez le bon langage depuis la boite déroulante ! Peu importe le nom du fichier, il sera importé pour ce langage</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>Import - Choisir un fichier</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Enregistrer sous</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Nom :</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Commentaire :</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>Sauvegarde</value>
+  </string>
+  <string id="395" name="record">
+    <value>Enregistrements</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Lecteur d'enregistrements</value>
+  </string>
+  <string id="397" name="record">
+    <value>Enregistrement des salles privées et publiques</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Utilisateurs :</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Inscrits :</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Utilisateur dans la salle :</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>Rafraichir</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>Cette salle est pleine. Réessayez dans quelques minutes.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>Infos : Cliquez sur une salle</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Discutez avec les utilisateurs de cette salle :</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Salle :</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Utilisateurs dans cette salle :</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>Depuis :</value>
+  </string>
+  <string id="409" name="record">
+    <value>Lire l'enregistrement</value>
+  </string>
+  <string id="410" name="record">
+    <value>Durée :</value>
+  </string>
+  <string id="411" name="record">
+    <value>Date :</value>
+  </string>
+  <string id="412" name="record">
+    <value>Mode enregistrement ! Vous ne pouvez rien modifier, ceci est un document enregistré !</value>
+  </string>
+  <string id="413" name="record">
+    <value>Lire cet enregistrement</value>
+  </string>
+  <string id="414" name="record">
+    <value>Lecture/Pause</value>
+  </string>
+  <string id="415" name="record">
+    <value>Commencer l'enregistrement</value>
+  </string>
+  <string id="416" name="record">
+    <value>Stopper l'enregistrement</value>
+  </string>
+  <string id="417" name="record">
+    <value>Enregistrement :</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>Quelqu'un est déjà en train d'enregistrer cette session :</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Enregistrement par :</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>Annuler</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>Si vous annulez l'enregistrement, il ne sera pas sauvegardé.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>Reprendre</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Fermer cette fenêtre et reprendre l'enregistrement</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>Changer la couleur de ligne</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Choisir une couleur</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Désactiver/Activer la couleur de ligne</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>changer la couleur de remplissage</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Désactiver / Activer couleur de remplissage</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Changer la largeur de ligne</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>Fermer</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>Changer la taille de la police</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Effacer l'enregistrement</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Invité</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>Par :</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Nom</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Salle</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Date</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>Annuler</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>Démarrer</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Nom</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Date</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Effacer l'historique du t'chat</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>T'chat</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>Envoyer message</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Emoticônes</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Emoticônes</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Choisissez le périphérique</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Audio et Vidéo</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Audio seulement</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Vidéo seulement</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>Pas d'audio ni de vidéo (image statique)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>Aucun flux Audio/Vidéo ne sera émis, à la place l'image de votre profil sera affichée. Choisissez cette configuration en cas de problème de bande passante ou si votre connexion internet est lente.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>LU</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>MA</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>ME</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>JE</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>VE</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>SA</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>DI</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Lundi</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Mardi</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Mercredi</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Jeudi</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Vendredi</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Samedi</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Dimanche</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>CS</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Calendrier semaine</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>Janvier</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>Février</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>Mars</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>Avril</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>Mai</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>Juin</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>Juillet</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>Août</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>Septembre</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>Octobre</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>Novembre</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>Décembre</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Calendrier</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Participants</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Montrer la disposition</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Largeur | Hauteur</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Conteneur-vidéo</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Conteneur-modération</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Conteneur-tableau blanc</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Activé</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Largeur | Hauteur</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Conteneur Fichier,t'chat,participants</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Activé</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Largeur | Hauteur</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>Le modérateur a quitté la salle. Personne n'est présent actuellement. Vous pouvez demander la modération ou attendre.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>Il n'y a pas de modérateur dans cette salle, mais il reste des participants. Vous pouvez demander la modération ou attendre.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Sentiments sur $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Invitation</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Message de :</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Message :</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Cliquez sur le lien pour participer à la conférence :</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Cliquez pour entrer dans la salle</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>Si ce lien ne fonctionne pas, copier/coller-le dans votre navigateur.</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>Inscription $APP_NAME</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Vos données utilisateur :</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Login:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Mot de passe :</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>E-mail :</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>Equipe-$APP_NAME</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>Inscription $APP_NAME</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - Réinitialiser mot de passe</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Cliquez sur le lien pour saisir un nouveau mot de passe :</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Cliquez ici pour saisir un nouveau mot de passe</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>Si ce lien ne fonctionne pas, copier/coller-le dans votre navigateur.</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME nouveau mot de passe</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Entrez une date valide, par exemple 24.12.2001 (jj.mm.aaaa)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Entrez un e-mail valide, par exemple name@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Entrez un nombre décimal valide, par exemple 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Entrez un entier valide, par exemple 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Entrez un numéro de téléphone valide, par exemple 01 02 03 04 05</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Entrez une heure valide, par exemple 12:23 (hh:mm)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Protégé par mot de passe</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Mot de passe</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Période de validité</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Indéfinie</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Temporaire</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Une connexion</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Valide à partir de :</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Valide jusqu'à :</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Invitation à une conférence $APP_NAME</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Pas d'invitation disponible pour ce code</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>L'invitation est déjà utilisé. Impossible d'accéder à la réunion/conférence.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>Ce code d'invitation n'est pas valide.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Mot de passe:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Vérification du mot de passe</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Mot de passe non valide !</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Navigateur</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Synchroniser Audio/Vidéo</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Votre mot de passe est correct mais la session est inactive. Vous devez récupérer une nouvelle ID de session et vous reconnecter.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>L'ID de session n'est pas connecté ou ne possède pas les droits d'administration. La passerelle SOAP nécessite un utilisateur ayant les droits d'administration pour intégrer de nouveaux utilisateurs.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>Cette session n'a pas d'utilisateur distant connecté. Soit vous n'avez pas appelé la passerelle SOAS avant d'accéder à l'application, soit vous utilisez une mauvaise ID de session.</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>L'enregistrement est en construction...</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>axe-x</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>axe-y</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>w</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>Largeur</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>h</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>Hauteur</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Modifier la transparence</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Navigateur ouvert</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Navigateur fermé</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>La connexion avec le serveur est interrompue. Vérifiez le réseau ou contactez l'adminitrateur.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Pointeur</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Synchronisation</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Synchronisation des utilisateurs, patientez s'il vous plait...</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Télécharger en SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Télécharger en PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Télécharger en JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Télécharger en PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Télécharger en TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Rappel :</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Catégorie:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Répétition:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>Nul</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Lieu :</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Début</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>Fin</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Titre :</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Commentaire :</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Inviter</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Jour</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Mois</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Année</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Fin de rendez-vous est après début de rendez-vous !</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Indiquez un titre s'il vous plait</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Cochez cette case pour écrire de droite à gauche</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Tableau de bord</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Visionner vos réunions ou conférences</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Accéder aux réunions en cours&lt;br/&gt;Tout le monde pourra parler et entendre l'ensemble des conversations.</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Accéder aux conférences en cours&lt;br/&gt;Le droit de parole est réservée au conférencier. Vous ne pourrez qu'écouter.</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Créer un utilisateur, une réunion, une organisation.&lt;br/&gt; + changer la configuration</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Utilisateurs actuellement dans cette réunion :</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Login</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Document en chargement. Attendez que tous les utilisateurs soient synchronisés.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Téléchargement ok, conversion en cours...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Démarrer l'importation</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Sélectionnez un fichier sur votre disque :</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Quitter</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Sélectionner un fichier</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Connexions</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Valeur</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Streamid</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Login</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Connecté depuis</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Salle / Limite</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Sortir utilisateur</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Sortir utilisateur</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Voulez-vous vraiment sortir cet utilisateur ?&lt;br/&gt; Cela supprimera le client de la réunion actuelle mais il pourra se reconnecter.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Votre session a été interrompue par l'administrateur ou le modérateur.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Téléphone</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>Modérateur de cette réunion</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>Autoriser/Refuser le droit de dessiner sur le tableau blanc</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Re) Démarrer audio/vidéo ou changer les paramètres</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Autoriser cet utilisateur à dessiner sur le tableau blanc</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Retirer le droit de dessiner sur le tableau blanc.</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Utilisateurs</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Fichiers</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Tableau blanc</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>T'chat</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Votre compte est assigné à plusieurs organisations. Choisissez-en une pour cette session.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>Le nombre max. d'utilisateurs est atteint. Veuillez réessayez plus tard.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Type de salle</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Salle temporaire</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Heure serveur</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - Rappel</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Message de l'utilisateur :</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Message :</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Cliquez sur ce lien pour participer à la réunion :</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Cliquez ici pour entrer dans la salle</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>Si vous avez un problème avec le lien, copier-coller-le dans votre navigateur s.v.p. :</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>recherche interne</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>Ajouter un utilisateur extérieur</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>Prénom</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>Nom</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>E-mail</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Confirmer la sortie</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Etes-vous sûr de vouloir quitter ?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Actions</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Salle Démo</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Heure Démo</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Temps de réunion</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>C'est une salle de Démo. Pour désactiver ce message vous devez utiliser une réunion privée pour votre usage personnel ou avoir votre propre serveur. Vous allez être automatiquement déconnecté dans :</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Modération</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>S.V.P. attendez que le modérateur rejoigne la salle.&lt;br/&gt;Le modérateur peut-être un enseignant,&lt;br/&gt;l'administrateur ou le créateur de&lt;br/&gt; cette réunion.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Ok</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Nouveau partage d'écran</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>C'est un nouveau partage d'écran de cet utilisateur:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Démarrer le partage</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Ajouter une nouvelle réunion</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Salle de réunion</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Salle de conférence</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Modération</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Modérer les utilisateurs</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Salles modérées</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Voulez-vous que cet utilisateur devienne un modérateur de cette organisation ?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Choisissez une organisation avant de lui ajouter un utilisateur s.v.p. !</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organisation - Modérateur</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Voulez-vous réellement supprimer cet utilisateur de cette organisation?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>Cet utilisateur est un modérateur</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>Cet utilisateur n'est pas un modérateur</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Voulez-vous que cet utilisateur ne soit pas un modérateur de cette organisation ?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Ajouter ou supprimer des utilisateurs ou des salles de votre organisation</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Voulez-vous réellement supprimer cet enregistrement ?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Voulez-vous réellement supprimer cet utilisateur de votre organisation ? Vous supprimez seulement le lien entre cet utilisateur et votre organisation, pour supprimer réellement cet utilisateur vous devez aller dans l'onglet d'administration.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>Vous ne pouvez pas vous supprimer !</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>Cette méthode nécessite des droits d'administration.</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>Il n'y a pas de session associée à cet ID.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>C'est un compte d'administration ou de modérateur. Vous ne pouvez l'éditer qu'à travers l'onglet d'administration.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>Pour terminer votre enregistrement veuillez cliquer sur le lien suivant. Ou copier l'URL dans la barre d'adresse de votre navigateur.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Cliquez pour vérifier votre E-mail</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Aucun utilisateur pour ce hachage.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Cet utilisateur est déjà activé !</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Vous avez activé votre compte avec succès !</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Se connecter maintenant</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Votre compte n'est pas actif. Utilisez le lien dans l'e-mail que vous avez reçu pour l'enregistrement.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>Vous êtes enregistré. Nous vous avons envoyé un e-mail avec un code de vérification. Regardez votre boite de messagerie.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Enlever le rôle de modérateur à cet utilisateur</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Donner les droits de modération à cet utilisateur</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>Utilisateur</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Accès au tableau blanc</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Modérateur</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Modération : Choisissez un utilisateur de cette liste pour lui donner accès au tableau blanc, à la modération ou à la vidéo.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>Cet utilisateur est déjà modérateur, donc il a le droit de dessiner.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>Il s'agit de vous ! Vous ne pouvez pas vous retirer &lt;br/&gt;les droits de modération.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Autoriser cet utilisateur à publier son Audio/Vidéo</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Supprimer l'Audio/Vidéo de cet utilisateur</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>Je souhaiterais obtenir le modération de cette salle.</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>Je souhaiterais dessiner sur le tableau blanc</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>Je souhaiterais partager mon audio/vidéo</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>Vous êtes le modérateur de cette salle</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>Vous êtes autorisé à dessiner sur le tableau blanc</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>Vous êtes autorisé à partager votre Audio/Vidéo.</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Message au modérateur</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>L'utilisateur</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>&lt;br/&gt;demande la modération. Utilisez l'icône dans la liste des utilisateurs pour ajouter ou enlever la modération.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>&lt;br/&gt;demande l'accès au tableau blanc. Utilisez l'icône dans la liste des utilisateurs pour ajouter ou enlever le droit de dessiner sur le tableau blanc.</value>
+  </string>
+  <string id="695" name="695">
+    <value>&lt;br/&gt;demande le partage audio/vidéo. Utilisez l'icône dans la liste des utilisateurs pour ajouter ou enlever le droit de partager l'audio/vidéo.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>Vous devez attendre qu'un modérateur entre dans la salle.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Annuler</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Sauver</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Jour</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Mois</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Année</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Ajouter un fichier</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Ajouter un dossier</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Rafraichir</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Poubelle</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>Mes fichiers personnels</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Les fichiers de la salle (Public)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Ajouter un fichier</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Ajouter un dossier</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Supprimer un dossier</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Modifier le nom</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>Nouveau dossier</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Etes-vous sûr de vouloir supprimer cet item ?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Recherche</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Recherche</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Ouvrir le document</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Montrer tous les fichiers (Arborescence)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Fermer le document</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Supprimer le fichier</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>Tableau blanc non autorisé.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Propriétés Document</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>+net +long</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>conseillé</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>Un utilisateur souhaite partager son écran. Voulez-vous le voir ?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>Vous partagez actuellement votre écran. Pour arrêter ce partage, cliquez sur le bouton Sortie de la fenêtre de partage.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Session de partage</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>Vous partagez déjà votre écran !</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Vue d'écran</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Sortie</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Partage d'écran</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Cliquez sur Partager pour publier votre écran</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Partager</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Arrêter</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Sélectionner la partie d'écran :</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Changer la largeur</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>La session de partage est terminée !</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Changer la hauteur</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>Marge-X</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Marge-Y</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Largeur :</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Hauteur :</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>La connection a été fermée par le serveur</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Annuler</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>+ net</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>Si vous fermez cette session vous ne pourrez plus redemarrer le partage pour cette session.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Confirmez la fermeture de cette session de partage</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Ecran partage</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Enregistrement de la session</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Navigation collaborative</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Oups... Firefox et Windows ne permettent pas une bonne navigation collaborative. Veuillez utiliser un autre navigateur pour utiliser cette fonction.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Précédent</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Suivant</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Rechargement</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Accueil</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Chargement</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Ajouter ce site web comme site par défaut pour votre profil</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Test Setup</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Testez votre micro et votre caméra avant d'entrer dans la réunion en enregistrant quelques secondes. Vous pourrez alors rejouer votre enregistrement pour vérification.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Ne plus montrer ce test (modifiable dans le profil)</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Annuler</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Début de réunion</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Ne plus poser cette question</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>Vous pouvez continuer sans tester si vous ne pensez pas publier votre voix ou votre vidéo. Les participants sans audio ou vidéo peuvent utiliser le tableau blanc, partager leur écran ou écrire des messages.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="767">
+    <value>Niveau</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Cliquer sur Début</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Commencer la réunion</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Commencer la conférence</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Choisir la salle</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Auto-test</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Commencer la réunion</value>
+  </string>
+  <string id="774" name="start view">
+    <value>Chronologie d'emploi :</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Début d'enreg.</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Ne pas montrer le test audio/vidéo (Enregistrement) avant d'entrer en réunion.</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Salles publiques</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Les salles publiques sont accessibles à tous les utilisateurs.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Salles privées</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Les salles privées ne sont accessibles qu'aux utilisateurs de l'organisation pour laquelle elles ont été créées.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>Mes salles</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Ici les salles sont créées pour un usage personnel. Elles sont créées par le calendrier et ont une date de début et de fin. Elles ne sont listées ici que tant qu'elles sont valides dans le jour J (aujourd'hui).</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>Vous devez être modérateur pour faire cela.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Demander la modération</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Demander l'accès au tableau blanc</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Demander l'accès à caméra/micro</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>Ce hachage est déjà utilisé. Vous ne pouvez l'utiliser deux fois.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>DEBUT</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>Sortie</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Voulez-vous réellement sortir ? Vous devriez peut-être préalablement nettoyer les documents chargés, le tableau blanc ou les messages instantanés.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Sortie de réunion</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Salles</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Choisir une salle pour la réunion</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>Il y a un évènement non sauvegardé dans le calendrier. S.V.P. sauvegardez-le ou supprimez-le.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>S.V.P. ajoutez au moins un participant à votre réunion</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Voulez-vous réellement supprimer cet évènement ?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Attention</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Ajouter un évènement</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>jour</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>semaine</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>mois</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Description</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Participants</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, votre plateforme de conférence web. Suivez les instructions.&lt;br/&gt;Cliquez sur le bouton 'Début' pour commencer une réunion immédiatement ou allez au calendrier pour planifier une réunion.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Planifier</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>Pour planifier une réunion vous pouvez créer un événement dans le calendrier.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Besoin d'aide ?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Accès réservé</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Recherche</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Ajouter</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>Il n'y a pas d'utilisateur sélectionné. S.V.P. choisissez un utilisateur dans la liste.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Ajouter un participant</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Sauvegarde</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Supprimer</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Détails de l'évènement</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Modérateurs par défaut</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Nom</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>E-mail</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Ajouter un nouveau modérateur par défaut</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>C'est le super modérateur</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>Si la salle est modérée, un utilisateur avec le niveau modérateur ou administrateur est automatiquement modérateur s'il participe à la réunion. Si vous ne voulez pas de ce fonctionnement et que voulez qu'un certain utilisateur devienne modérateur, utilisez l'option modérateur par défaut.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>Un super modérateur est toujours modérateur quand il participe à une réunion, et personne ne peut lui retirer ce droit</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Appliquer la super-modération à cet utilisateur</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Retirer la super-modération à cet utilisateur</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>Si vous spécifiez une organisation pour la réunion, seuls les utilisateurs qui appartiennent à cette organisation y ont accès (S'il ne s'agit pas d'une réunion publique !)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderation</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitations</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organisation</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Etes-vous sûr ?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Voulez-vous réellement supprimer cet item ? Vous devez utiliser le bouton Sauvegarde pour garder les modifications !</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>Aucun utilisateur sélectionné. S.V.P. sélectionnez en un avant de l'ajouter !</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Ajouter un nouveau modérateur par défaut</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Voulez-vous que cet utilisateur soit super-modérateur ? Un super-modérateur n'est pas seulement modérateur de la réunion, son rôle ne peut de plus être enlevé par aucun autre modérateur. Vous devez sauvegarder la salle pour sauvegarder ces paramètres !</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Voulez-vous retirer la super-modération à cet utilisateur ? Vous devez sauvegarder la salle pour sauvegarder ces paramètres !</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>Cet utilisateur est un super-modérateur. Vous ne pouvez pas enlever la modération à un super-modérateur !</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Voulez-vous réellement supprimer ce fichier/dossier ?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Supprimer Fichier/Dossier ?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Mlle.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Propriétés</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Montrer la souris sur l'écran</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Partager l'audio avec l'applet SIP</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Partager l'audio avec SIP et la vidéo avec Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Zoom 100%</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>Voir écran</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>L'utilisateur</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>souhaite partager son écran. Voulez-vous le voir ?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Fermer</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>La session a été fermée par l'utilisateur qui partageait son écran!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>Nouveau partage d'écran</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Réduire</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximiser</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Vidéo</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Chronologie de l'enregistrement</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>Mes enregistrements</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Enregistrements publics</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Nom</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Durée</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Date</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>par</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>PLAY</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Main - Video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Enregistrement</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>Vous pouvez enregistrer et partager votre écran en même temps. Pour permettre aux autres de voir votre écran, cliquez le bouton Partager en haut. Pour seulement enregistrer la session, il suffit de cliquer sur Démarrer l'enregistrement.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Démarrer l'enregistrement</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Arrêter l'enregistrement</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Télécharger le fichier FLV</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Salle</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Jouer</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>L'utilisateur a son micro activé</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Arrêter le partage</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Accepter les questions</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Désactivez ceci pour éviter que les utilisateurs ne vous disturbent dans la salle. Cela a pour effet de masquer le bouton permettant de demander la modération.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Droits</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Télécharger le fichier AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Ecran vidéo brut</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Audio seulement</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>Il y a eu des erreurs durant le traitement de l'enregistrement.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>L'enregistrement n'est pas encore prêt à être visionné. Veuillez réessayer dans quelques minutes.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log :</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Message de l'enregistreur</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>L'applet SIP n'est pas prêt</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>Paramètre compte SIP</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>Paramètres SIP pour chaque utilisateur. Vous pouvez activer ou désactiver SIP via Administration &gt; Configuration (Champ : enable_sip). Les données SIP pour chaque utilisateur devraient être créées automatiquement. Vous pouvez recréer les données en cochant "Regénérer les données SIP"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-User</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Pass</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>La connexion à la passerelle SIP a échoué. Vous devrier vérifier les données d'autentification de votre fournisseur SIP et les données des comptes SIP de chaque utilisateur. En tant qu'administrateur vous pouvez toujours vous connecter et vérifier la configuration. En tant qu'utilisateur ou modérateur vous ne pourrez pas interragir.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>La connexion à la passerelle SIP a échoué. Veuiller contacter votre équipe de support !</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Connexion à la passerelle SIP...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Connexion à la passerelle SIP...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Montrer le journal</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Journaliser les messages de post traitement de l'enregistreur</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>Message de l'applet SIP</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>L'applet SIP n'est pas prêt. Acceptez l'applet et cliquez ok !</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Obtenir la modération</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Sauvegarder les modifications de la réunion</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>La réunion a été modifiée. Voulez-vous sauvegarder les changements ? &lt;br/&gt;&lt;br/&gt;Tous les participants à la réunion recevront un e-mail avec la date et l'heure mises à jour (cela dépend du type de notification pour cette réunion).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>Pour accéder à d'autres enregistrements vous devez vous connecter à l'application $APP_NAME Application.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Choisissez l'utilisateur pour cette vidéo</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Utilisateurs disponibles pour ce conteneur</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>Vous êtes un modérateur dans cette salle d'interview. Vous pouvez décider de qui parle et vous pouvez démarrer/arrêter l'enregistrement de la session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Démarrer l'enregistr.</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Arrêter l'enregistr.</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>L'enregisrement de l'interview est déjà démarré.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>L'enregistrement est déjà arrêté ou n'a pas encore démarré.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>L'enregistrement pour cette interview a déjà démarré !</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Annuler</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>Le post traitement d'une interview dure 5 minutes par minute d'interview. L'avancement actuel du post traitement est :</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>Vous devez entrer votre mot de passe à nouveau pour créer automatiquement les données SIP</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Regénérer les données</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>Vous ne pouvez déplacer ce fichier ou dossier dans son propre sous-dossier !</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Taille du disque local</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Taille du disque public</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>Paramètres de la licence</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>Vous pouvez soit lier l'utilisateur à une date d'expiration ou à un nombre de minutes lorsque vous activez la licence.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Vérifier la licence</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Forfait</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Date d'expiration</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Secondes restantes</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Temps total</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Votre licence a expiré. Vous devez soit acheter des minutes (paiement à la minute) soit un volume forfaitaire.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Cliquez et achetez</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Temps restant sur votre compte :</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>Information licence utilisateur</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Fermer</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Votre licence a expiré. Vous devez soit acheter des minutes (paiement à la minute) soit un volume forfaitaire</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>Paramètres de la licence</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>Vous pouvez soit acheter des minutes pour faire des conférences en ligne (paiement à la minute).&lt;br/&gt;&lt;br/&gt; Ou acheter un volume forfaitaire de 3-12 mois.&lt;br/&gt;&lt;br/&gt;Envoyer des invitations (liens directs vers les salles de conférences) ou créer des salles de conférences via le calendrier pour des utilisateurs externes est seulement possible avec un volume forfaitaire !</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Acheter 60 minutes 9,99 euros (16 cents par minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Acheter 5 heures 19,99 euros (6 cents par minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Acheter 3 mois pour 29,99 euros (9,99 euros par mois)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Acheter 6 mois pour 39,99 euros (6,66 euros par mois)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Paiement à la minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume forfaitaire</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>Vous avez une licence illimitée</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Votre licence expirera à :</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>Vous avez effectué un paiement à la minute. Il vous reste :</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Acheter un nouveau crédit !</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Voulez-vous votre propre serveur ?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>Vous voudriez avoir $APP_NAME installé sur votre serveur ou intégré dans Moodle, SugarCRM, votre site web ou intranet ? Les prix commencent à 500 euros par installation !</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Ou envoyez-nous un message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Répondre à :</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message :</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Envoyer</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Cliquez ici pour obtenir des infos et les prix</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Détails de la carte de crédit</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Prénom</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Nom</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Type de carte de crédit</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>Carte VISA</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Numéro de carte</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Date d'expiration</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Numéro de vérification</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Adresse de facturation</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Adresse</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>Ville</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Pays</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>Etat (seulement USA)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>Code postal</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Montant</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Soumettre</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Etape 1: $APP_NAME - Formulaire de paiement</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>E-mail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Cliquez "Régler avec Paypal" pour payer.&lt;br/&gt; Paypal accepte VISA, MasterCard, Discover ou American Express. &lt;br/&gt;Il ne faut pas s'inscrire chez Paypal. &lt;br/&gt;Les citoyens allemands peuvent aussi payer avec un débit direct (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Merci d'avoir acheté $APP_NAME. &lt;br/&gt; &lt;br/&gt; Dès que nous aurons reçu le paiement, votre compte sera mis à jour.&lt;br/&gt; Vous recevrez un e-mail avec votre facture en PDF.&lt;br/&gt;Vous pouvez également vérifier les transactions passées et actuelles dansd votre profil.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Vous pouvez fermer cette fenêtre maintenant et retourner à $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Soumettre et acheter !</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Cliquer et acheter !</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Etape 3 : Paiement $APP_NAME - Vérifier la commande et acheter !</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Nom</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Paiement reçu !</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Bonjour,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>Nous avons reçu votre paiement. Votre profil utilisateur a été mis-à-jour. Voir votre facture ci-attachée. La facture ansi que toutes les factures passées peuvent être téléchargées dans votre profil utilisateur.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Merci d'utiliser $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Paiement $APP_NAME reçu-</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Statut des paiements et transactions</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Hachage de transaction</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Mois</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Statut</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Facture</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>Vous devez acheter un volume forfaitaire pour pouvoir envoyer des invitations ou créer des réunions via le calendrier. Avec un paiement à la minute il ne vous est possible que d'accéder à $APP_NAME. Vous ne pouvez pas permettre à des tiers de participer à une réunion.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>Cette adresse e-mail est déjà utilisée par un autre utilisateur.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>Paramètres SIP</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>Le numéro de conférence et PIN sont créés automatiquement via la passerelle OpenXG RPC</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>Numéro SIP</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Supprimer les objets sur le document actuel seulement !</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Seule l'URL entrée dans la barre de statut est envoyée aux participants !</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Créer des groupes de travail [Groupes restreints]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choisir les utilisateurs pour un nouveau groupe de travail !</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>Vous pouvez choisir les utilisateurs ici et créer une nouvelle salle de conférence ("Groupe de travail") pour eux. Les utilisateurs choisis seront automatiquement transférés dans la nouvelle salle ou recevront une notification. Les modérateurs des groupes de travail recevront en plus une liste des salles actuelles afin qu'ils puissent changer de salle si nécessaire.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Nom d'utilisateur</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Utilisateurs pour le nouveau groupe de travail :</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Créer un groupe de travail</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Annuler</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choisissez au moins un utilisateur pour le groupe de travail !</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Ajouter utilisateur au groupe</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Supprimer utilisateur du groupe de travail</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>L'utilisateur est modérateur du groupe de travail (Il peut gérer les groupes de travail et les utilisateurs des groupes de travail peuvent lui demander de venir dans la salle)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Type de salle</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>Si vous cochez "Forcer utilisateur à changer de groupe de travail", tous les utilisateurs choisis seront automatiquement transférés vers la nouvelle salle. Autrement ils recevront une notification avec un bouton afin qu'ils &lt;i&gt;puissent&lt;/i&gt; aller dans la nouvelle salle. Les modérateurs de groupes de travail ont toujours la possibilité de gérer les groupes de travail et de passer de l'un à l'autre.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Gérer les groupes de travail</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>Vous pouvez ici passer d'un groupe de travail à l'autre pour lesquels vous êtes modérateur. Les utilisateurs dans les groupes de travail peuvent vous envoyer un message, par exemple pour vous demander de passer les aider. Vous pouvez également terminer un groupe de travil et tous les utilisateurs seront alors déconnectés.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Forcer utilisateur à passer dans un nouveau groupe de travail</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Nom</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Créé</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Utilisateurs disponibles</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Ajouter un utilisateur avec le 'plus' à gauche ou le supprimer avec la croix à droite !</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Paramètres du groupe de travail</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Ajouter des utilisateurs au groupe de travail</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Nom du groupe de travail</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Groupe de travail</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Aller dans la salle</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Changer pour ce groupe de travail</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminer le groupe de travail et déconnecter tous les utilisateurs</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>Nouveau groupe de travail</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>Il y a un nouveau groupe de travail disponible pour vous.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Aller dans le groupe de travail</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Actions du groupe de travail</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>Vous pouvez réouvrir cette fenêtre via le menu principal dans la sedction "Actions" !</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Envoyer un message au modérateur du groupe de travail</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>Nouveau groupe de travail</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>Il y a un nouveau groupe de travail disponible. Vous pouvez passer dans cette salle. Les groupes de travail sont des groupes restreints avec la possibilité de demander de l'aide au modérateur. Votre groupe de travail est également accessible dans la section 'Mes réunions'.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Aller au groupe de travail</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Créé par :</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Nom du groupe de travail :</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>Cette fenêtre restera ouverte même si vous quittez la salle !</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Utilisateurs pour ce groupe de travail</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Autres groupes de travail auxquels vous avez accès</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Envoyer un message au modérateur du groupe de travail. Par exemple si vous devez modérer la salle ou si vous avez une question particulière.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Envoyer</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Utilisateurs invités à ce groupe de travail</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Est modérateur du groupe de travail</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>Voici tous les utilisateurs qui ont été invités à ce groupe de travail par le modérateur.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>Il n'y a pas de modérateur connecté pour le moment !</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Veuillez entrer un message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Veuillez venir nous aider, nous avons un problème dans notre groupe de travail !</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>Un utilisateur d'un groupe de travail a besoin de votre aide.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Groupe de travail demande de l'aide</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message :</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>De :</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>Vous n'êtes pour le moment dans aucun groupe de travail. Mais vous pouvez accéder ici à tous les groupes de travail auxquels vous avez accès.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Sauvegarder le système. La sauvegarde inclut toutes les données générées par les utilisateurs. La configuration n'est pas inclue ainsi que les étiquettes des langues car ces données sont importées avec l'installateur du système. Pour mettre votre système à jour, exportez votre système (1) réinstallez la nouvelle version dans une nouvelle base de données (2) et importez la sauvegarde (3). La sauvegarde devrait être importée avant de générer de nouvelles données avec le nouveau système.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>Sauvegarde système</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Permettre à l'utilisateur de partager/enregistrer son écran</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Refuser à l'utilisateur de partager/enregistrer son écran</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>L'utilisateur est modérateur, il peut tout faire !</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>voudrait partager/enregistrer son écran.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>Vous avez la permission de partager/enregistrer votre écran</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Demander le droit de partager/enregistrer l'écran.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Autoriser/Refuser le droit de partager/enregistrer l'écran</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Couper le son</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Mettre le son</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Salle audio seulement</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Activez ce champ et les utilisateurs auront seulement l'option audio et non vidéo dans une salle de conférence. Ceci peut-être bon pour économiser de la bande passante.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Permettre le contrôle à distance (Durant un partage d'écran)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Refuser le contrôle à distance (Durant un partage d'écran)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Demander le droit de contrôler à distance (Durant un partage d'écran)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>Vous avez le droit de contrôler à distance (Durant un partage d'écran)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>souhaite contrôler à distance.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>L'utilisateur est modérateur, il peut tout faire (Contôle du bureau à distance)</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Autoriser/Refuser le droit au contrôle à distance (Durant un partage d'écran)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Pour copier et coller du texte de votre presse-papier vers l'écran du PC distant, cliquez sur l'écran, ensuite cliquez avec le bouton droit dans le champ de texte et choisissez "Insérer" du menu contextuel.&lt;br/&gt;&lt;br/&gt;2) Pour copier du texte depuis le PC distant vers le presse-papier de votre PC, mettez le texte en surbrillance sur l'écran du PC distant, ensuite cliquez avec le bouton droit et choisissez &lt;i&gt;Copier le texte en surbrillancet&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copier et coller du texte de votre PC vers un PC distant et vice-versa..</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copier le texte en surbrillance</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>Comment copier-coller</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Qualité du partage d'écran :</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>très haute qualité</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>Haute qualité</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Qualité moyenne</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Basse qualité</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Clavier :</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Fermer le Webinar !</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>Le Webinar est déjà fermé, vous allez être redirigé vers une offre intéressante dans</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Fermer la salle</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>URL de sortie</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Paramètres de fermeture</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>Si la salle est fermée les utilisateurs seront redirigés vers l'URL de sortie.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Nom</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Fichier de configuration</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Configuration Ldap</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Nom</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Activé</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inséré</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inséré par</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Mis à jour</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Mis à jour par</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>Les fichiers de configuration sont dans le répertoire webapps/openmeetings/conf. Vous devez charger manuellement les fichiers vers ce répertoire. Les modifications dans le fichier de configuration sont en ligne immédiatement.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Nom du fichier</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>Si vous activez "Ajouter le domaine au nom d'utilisateur" la veleur du champ "domaine" sera ajoutée à chaque login entré dans la fenêtre de login. Ceci peut-être utile si le login dans le Ldap est enregistré en incluant le nom de domaine. Par exemple : un utilisateur entre "hans" le domaine spécifié étant "localhost.com", le login vérifié avec Ldap sera : hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Ajouter le domaine</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domaine</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insérer</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copier le texte en surbrillance</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Texte du presse-papier distant</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Montrer le presse-papier distant</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Ne plus montrer</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copier le texte ici...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>Vous devez avoir le droit de contôler à distance (ou avoir la modération) pour copier et coller du texte de ou vers l'écran distant.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Editer les paramètres par défaut...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Ne pas montrer la boite d'info dans le contrôle à distance à propos du copier-coller</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Sauver</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Enlever</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Annuler</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Inviter l'utilisateur dans la salle de conférence</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choisissez une salle de conférence. L'utilisateur invité recevra un message avec votre nom et un lien vers la salle.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connecté depuis :</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Entrer dans la salle après l'envoi de l'invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Inviter</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>souhaite vous inviter dans la salle de conférence :</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Message d'invitation</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Envoyer invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>n'a &lt;b&gt;pas&lt;/b&gt; accepté votre invitation !</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accepter</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Refuser</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Fus. horaire</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Détails de l'événement</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Nom</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Créé par</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>Message du fus. hor.</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Vérifiez "le message du fuseau horaire" pour transmettre aux utilisateurs un message la fois prochaine qu'ils se connectent.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Veuillez vérifier le fuseau horaire dans votre profil utilisateur.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>Nouvelle conférence $APP_NAME :</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Détails :</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Début :</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>Fin :</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Conférence $APP_NAME modifiée :</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organisateur :</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Conférence $APP_NAME annulée :</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>Rappel conférence $APP_NAME :</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Paramètres communautaires</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Montrer les données de contact à tout le monde</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Ajoutez des champs d'intérêt que vous avez ou que vous cherchez afin de trouver des partenaires intéressants pour une conférence. Séparez les termes par des virgules.</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>Mes intérêts</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>Je cherche</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Nom</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Fus. horaire</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Centres d'intérêt</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Information de contact</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Montrer les données de contact aux contacts seulement</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Ne montrer les données de contact à personne</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>Mon profil</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Editer les paramètres</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Chercher des utilisateurs</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Voir votre profil comme les autres le voient</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Editer vos paramètres, ajouter vos centres d'intérêts</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Chercher d'autres utilisateurs et étendre votre réseau</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Chercher</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>Utilisateur offre</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>Utilisateur cherche</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Texte libre</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Nom</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Fus. horaire</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offres</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Recherches</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Résultat :</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Ajouter à vos contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Envoyer un message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts et Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Contacts en attente</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accepter</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Refuser</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Bonjour,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>souhaite vous ajouter à sa liste de contacts.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Vérifiez vos demandes de contact dans $APP_NAME ou cliquez sur les liens pour accepter ou refuser les demandes</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>cet utilisateur est déjà dans vos contacts ou a reçu une invitation à votre liste de contact à laquelle il n'a pas encore répondu.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Votre liste de contacts</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Editez vos contacts et messages,&lt;br/&gt; gérez vos contacts en attente !</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>vous a confirmé comme contact !</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Afficher/Copier le journal du t'chat</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Journal du t'chat</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>De</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Sujet</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Envoyer</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>Nouveau mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Cliquez pour écrire un nouveau message à n'importe quel de vos contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Ecrire un nouveau message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>A :</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Sujet:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Activez le zoom 100% et le tableau blanc zoomera de telle sorte que tous les&lt;br/&gt;documents seront visibles suivant la résolution d'écran de chaque participant.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Ejecter l'utilisateur</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>Vous ne pouvez pas vous éjecter vous-même de la salle de conférence ! Si vous désirez sortir, fermez votre navigateur ou utilisez le bouton de sortie !</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Voulez-vous vraiment déconnecter cet utilisateur de cette salle de conférence ?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirmez l'action...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>Vous ne pouvez pas éjecter un super-modérateur d'une salle !</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Réserver une salle de conférence</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Début</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>Fin</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Ajouter une requête opionnelle pour la réunion et créer la salle. L'événement sera alors copié dans le calendrier de chaque participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Boite de réception</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Envoyé</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Poubelle</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>C'est vous ! Vous ne pouvez pas vous ajouter vous-même à vos propres contacts.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>L'utilisateur a déjà été refusé !</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>L'utilisateur a déjà été approuvé !</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>Le hachage de ce contact n'est pas valide !</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>Utilisateur ajouté à la liste de contact !</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>Utilisateur refusé comme contact et supprimé de la liste des contacts en attente !</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>Il n'y a pas un tel contact !</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Vous voulez vraiment supprimer ce contact ?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirmez la suppression du contact</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Supprimer le contact de la liste</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>Profil utilisateur</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Afficher le profil utilisateur</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Chercher</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Tout sélectionner</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Sélectionner aucun</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Sélectionner non lus</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Sélectionner lus</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Déplacer vers répertoire...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Ajouter nouveau répertoire...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Supprimer</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Des mails effacés se trouvent toujours dans votre poubelle !</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Marquer non lu</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Marquer lu</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Répondre</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Répondre à tous</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Faire suivre</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Envoyer un message privé</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Rien de sélectionné !</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Déplacer dans la boite de réception</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Supprimer (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>Cette action ne peut être annulée !</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Créer dossier</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Ajouter des dossiers et organiser vos messages !</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Ajouter un dossier</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Ajouter</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Supprimer un dossier</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>Vous ne pouvez supprimer ce dossier, il contient toujours des messages ! Supprimez-les d'abord ou déplacez-les vers un autre dossier.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Editer le nom</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Voulez-vous vraiment supprimer ce dossier ? Il n'est pas possible d'annuler cette action par la suite.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Votre demande a été envoyée à l'utilisateur. L'utilisateur va recevoir une notification pour accepter ou refuser votre demande. Bien évidemment, seules les demandes acceptées se trouvent dans vore liste de contacts !</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>L'utilisateur ne partage pas ses données personnelles de contact.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>L'utilisateur ne partage ses données personnelles de contact qu'avec ses contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Adresse &amp; tél.</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>Votre code d'invitation n'est pas valide, le code n'est valide que durant cette date et heure spécifiques :</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>Cet événement est connecté à plusieurs calendriers d'autres utilisateurs. Vos modifications seront également mises-à-jour dans leurs calendriers. Voulez*-vous vraiment mettre à jour l'événement ?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirmez la mise à jour</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Permettre au contact de voir le calendrier (voir seulement)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Ne pas partager le calendrier</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendriers des contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Vos contacts doivent vous approuver d'abord avant que vous ne puissiez voir leurs calendriers.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>Vous ne pouvez pas enregistrer ou supprimer des événements d'un autre calendrier que le vôtre !</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Montrer mon propre calendrier à nouveau !</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>Cet événement est connecté à plusieurs calendriers d'autres utilisateurs. Votre action va également supprimer l'événement de leurs calendriers. Voulez-vous vraiment supprimer cet événement ?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirmez l'action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Entrer dans la salle</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Accéder à la salle de conférence</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>Il y a un événement et une salle de conférence liée à ce message privé.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>Vous devez enregistrer l'événement d'abord !</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>Il n'y a pas de telle salle libre. L'événement dans le calendrier et de la salle associée a déjà été supprimé !</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choisissez votre pseudo</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Prénom</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Nom</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>E-mail</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Longueur minimum de 4 caractères pour le prénom et le nom.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Veuillez entrer un e-mail valide !</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Vous connecter avec votre login Facebook</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Date inscr.</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>Vous êtes connecté avec votre compte Facebook. Vous devriez mettre à jour votre profil avec l'e-mail correct. Sans quoi vous ne recevrez pas les invitations et messages privés des autres utilisateurs.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Ne plus montrer le message de mise à jour du profil</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>plus d'options d'affichage...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>Nouveau message privé :</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Cliquez ici pour aller dans votre profil et voir le message complet...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Répondre</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Salles et t'chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>Mes salles</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>Ma salle de conférence (pour 1-16 utilisateurs)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>Ma salle webinar (pour 1-120 utilisateurs)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Id du propriétaire</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Veuillez entrer un mot de passe</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>Vous devez avoir un compte de niveau Utilisateur, Modérateur ou Administrateur</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Service-Web (accessible seulement via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Charger directement sur le tableau blanc</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Voulez-vous vraiment supprimer ce tableau blanc ? Cette action ne peut être annulée !</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Charger sur le tableau blanc</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>N'oubliez pas de commencer l'enregistrement ! Un utilisateur par salle doit toujours le commencer si vous souhaitez avoir l'enregistrement par la suite.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Commencer l'enregistrement</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Flèche</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Cercle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Ligne</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Carré</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Texte/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Dessin libre</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Sélectionner/Déplacer</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Dessiner Formes</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Couper/Déplacer</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom +/-</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Imprimer</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Défaire</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Poubelle</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Ajouter Grille</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Partager Fichier</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Sélectionner Forme</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Sélectionner Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copier</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Couper</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Coller</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Effacer</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Voulez-vous vraiment effacer le contenu entier du tableau blanc ?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Charger directement sur le tableau blanc</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Participants</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Gestionnaire de participants</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Présent</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Contrôle à distance</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Ejecter</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>T'chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Inviter Participants</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>Par e-mail</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>L'utilisateur est modérateur</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>L'utilisateur a sa webcam connectée</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Désactiver le remplissage de forme</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activer le remplissage de forme</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Aimanter à la grille</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Autoriser l'enregistrement</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Attendre l'enregistrement</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Cacher la barre supérieure</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Jouer la vidéo</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Voulez-vous vraiment supprimer le contenu du document actif ?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accepter et donner le droit à l'utilisateur</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Refuser</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>Je</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activités et actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Supprimer le tableau blanc</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>Vous devez avoir la modération ou le droit de dessiner sur le tableau blanc pour supprimer un tableau blanc !</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Pas permis</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>a quitté la salle.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Icônes mathématiques</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>Pas de catégorie</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Style de couleurs</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Qualité</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domaine</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>Aller à</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>rouge-orange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>vert océan</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>bleu acier</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>bleu acier clair</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>rouge doré</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>gris argent</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>défini par l'utilisateur</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>meilleur</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>charger/déposer</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>moyen</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Couper le micro globalement</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Activer le micro globalement</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Couper le micro des autres</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>Votre micro a été globalement coupé par le modérateur. Vous ne pouvez pas l'activer vous-même !</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Couper le micro globalement ?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Voulez-vous vraiment couper votre propre micro globalement ? Plus personne ne pourra plus vous entendre !</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Couper le micro localement ?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Voulez-vous vraiment couper ce micro ? Vous ne pouvez le couper que localement sur votre écran. Cela n'a pas d'effet sur les autres utilisateurs. Seuls les modérateurs peuvent couper un micro globalement !</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Couper le micro globalement ?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Voulez-vraiment couper le micro de cet utilisateur globalement ? Plus personne ne pourra l'entendre !</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Votre micro est allumé. Cliquez ici pour envoyer un message au modérateur afin qu'il coupe votre micro globalement (dans toute la salle) !</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Votre micro est coupé. Cliquez ici pour envoyer un message au modérateur afin qu'il active votre micro globalement (dans toute la salle) !</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>souhaite que le modérateur coupe mon micro globalement.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>souhaite que le modérateur active mon micro globalement.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>souhaite que le modérateur active son micro.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>souhaite que le modérateur coupe son micro.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Activer micro. Cliquez ici pour couper son micro globalement !</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Couper micro. Cliquez ici pour activer son micro globalement !</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>Le micro de cet utilisateur est coupé globalement par le modérateur. Vous ne pouvez pas l'activer !</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Couper votre micro globalement</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Activer votre micro globalement</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Couper micro</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Activer micro</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Couper le micro globalement</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Activer micro globalement</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Seuls les modérateurs peuvent couper ou activer le micro d'un utilisateur globalement ! Pour couper votre propre micro : veuillez utiliser l'icône microphone sur votre fenêtre vidéo !</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Nom du sondage</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>Vous</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Sondages</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>actif</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple graphique</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Graphique camembert</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Veuillez entrer e-mail</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>Nouveau(x) message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Clôturer</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Etes-vous sûr de vouloir clore ce sondage ? Plus personne ne pourra plus voter.</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Supprimer</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Etes-vous sûr de vouloir supprimer ce sondage ? Les résultats seront supprimés également.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Code IS de la langue</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Autoriser/Refuser le droit de donner l'audio exclusif</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Autoriser l'utilisateur à donner l'audio exclusif</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Refuser à l'utilisateur de donner l'audio exclusif</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>souhaite avoir la permission d'avoir l'audio exclusif.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>souhaite que le modérateur me donne la permission d'audio exclusif.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Donner une permission d'audio exclusif.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Résolution caméra</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changer la résolution affecte la bande passante, une image plus grande à besoin de plus de bande passante !</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>Vous n'avez pas l'autorisation de vous donner à vous ou aux autres l'audio exclusif. Vous devez demander cette autorisation au modérateur ou lui demander de le faire.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>Je souhaite avoir le droit d'avoir l'audio exclusif</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Me donne l'audio exclusif (alternativement cliquez sur votre fenêtre vidéo ou appuyez sur F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone est allumé !</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone est coupé !</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Cacher le t'chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Cacher les activités</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Cacher l'explorateur de fichiers</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Cacher le menu actions</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Cacher le partage d'écran</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Cacher le tableau blanc</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Afficher le statut du micro</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Options de disposition</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>Nouvel événement</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Les liens envoyés aux participants pour une conférence lorsque vous sauvez le calendrier sont protégés par mot de passe, pas la salle ! Cela signifie que si vous sauvez l'événement plusieurs fois avec un mot de passe différent, chaque participant recevra un nouveau lien avec un mot de passe différent. Les anciens liens sont toujours valables une fois envoyés !</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Editer les détails</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Afficher composeur SIP</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Appeler</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Afficher les événements du contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Votre page d'accueil</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Organiser les réunions</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Regarder les enregistrements et les interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choisir et démarrer une conférence</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Gérer les utilisateurs et les droits</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Gérer les connections et éjecter des utilisateurs</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Gérer les groupes d'utilisateurs</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Gérer les salles de conférences</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Gérer les paramètres système</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Gérer les étiquettes et les formulations</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Gérer les configurations LDAP et ADS</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Exporter/Importer les sauvegardes système</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>Vous devez être modérateur ou avoir le droit d'accéder au tableau blanc pour pouvoir déposer ou télécharger des fichiers ou pour ajouter ou supprimer des dossiers.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Editer texte</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publier</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Commencer la diffusion</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Arrêter la diffusion</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Hôte</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>ID</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Réduisez la largeur de l'écran avant de le déplacer</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Réduisez la hauteur de l'écran avant de le déplacer</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Réduisez 'x' avant d'agrandir</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Réduisez 'y' avant d'agrandir</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Complétez ces paramètres pour diffuser votre écran vers un site tiers.</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Veuillez démarrer le partage d'écran pour pouvoir le diffuser</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>La permission du modérateur est requise pour enregistrer</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>Vous n'avez pas la permission de donner l'audio exclusif à un participant. Vous devez être modérateur ou avoir le droit de donner l'audio exclusif.</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Charger un fichier</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Ouvre la fenêtre des paramètres du partage d'écran</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>Un modérateur existant doit l'approuver</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Demander au modérateur de pouvoir partager votre micro/caméra</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Proposez aux utilisateurs de voter en répondant à un sondage</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Les résultats graphiques des sondages</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Voter s'il existe un sondage activé dans cette salle</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Editer les paramètres de la caméra et du micro</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirmer et quitter la salle</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Appeler une personne extérieure via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Envoyer un mail avec un lien direct vers cette salle</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Changer les paramètres de votre tableau blanc</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Taille maximum</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Demander au modérateur le droit de partager votre tableau blanc</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Démarrer t'chat privé</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>Tous</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>Vous ne pouvez pas démarrer un t'chat privé avec vous-même.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>Vous avez déjà démarré un t'chat privé avec ce participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Voulez-vous vraiment supprimer ce t'chat privé ?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Serveurs</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Serveurs dans le groupe</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Nom du serveur</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Adresse du serveur</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Détails du serveur</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Envoyer SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publier. Utilisateur :</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>Pour économiser du temps et de la bande passante vous pouvez utiliser la ligne de commande pour sauvegarder/restaurer/mettre à niveau votre système &lt;ol&gt; &lt;li&gt;Aller dans le répertoire d'installation d'OM (par ex. /opt/red5)&lt;/li&gt; &lt;li&gt;Arrêter OM (par ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/nom_du_backup.zip (créer la sauvegarde d'OM)&lt;/li&gt; &lt;li&gt;télécharger la nouvelle version d'OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (déplacer la version d'OM qui fonctionne par sécurité.)&lt;/li&gt; &lt;li&gt;extraire la nouvelle version d'OM dans /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (ou './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' dans le cas d'une BD qui n'est pas celle par défaut )&lt;/li&gt; &lt;li&gt;Démarrer OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Salles pour tous les utilisateurs</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Salles pour les utilisateurs du groupe actuel</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Salles de l'utilisateur</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Créer/Modifier salle particulière</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>Vous pouvez entrer plusieurs adresses sous le format : prénom1 nom1 &lt;e-mail1&gt;,"prénom2 nom2" &lt;e-mail2&gt;,'prénom3 nom3' &lt;e-mail3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Ajuster le volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Ajuster le volume du micro</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>T'chat est-t-il modéré</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Autoriser les messages</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Panneau de t'chat ouvert par défaut</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Panneau des fichiers ouvert par défaut</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Dernier ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Chaque 'esclave' envoie un ping au maitre toutes les 3 secondes (configurable). Le dernier ping doit être inférieur à 1 minute pour que le maitre utilise l'esclave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>Port HTTP</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>Utilisateur (Accès SOAP)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Mot de passe</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Chemin vers Webapp</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocole</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Actif</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Générer URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Test réseau</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Sélection auto de la fenêtre vidéo de l'interview</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Souligné</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Style de police</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Autoriser les styles de police</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Couleur de police</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlien</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Montrer les statistiques de session</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Détails de session</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>Importer Système</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Inclure les fichiers uploadés et les enregistrements dans le backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Activer le transport SIP dans la salle</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Voulez-vous vraiment donner l'audio exclusif à cet utilisateur ?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Veuillez spécifier votre fuseau horaire</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conférence (1-25 utilisateurs)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restreint (1-150 utilisateurs)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 réunion avec enregistrement)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Une configuration avec cette clé existe déjà, veuillez spécifier une autre clé ou éditer la configuration existante</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Sauvegarde, veuillez patienter.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Bienvenue</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget affichant les infos de base des utilisateurs et les liens pour le support</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/galician.xml b/src/main/webapp/languages/galician.xml
new file mode 100644
index 0000000..d424013
--- /dev/null
+++ b/src/main/webapp/languages/galician.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Conferencia</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Xuntanza</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Eventos</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Axustes</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Perfíl</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Administración</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Parar</value>
+  </string>
+  <string id="8" name="record">
+    <value>Gravar</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>Non hai ningín ficheiro dispoñíbel</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Gravado polo profesor</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Usuarios conectados:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Iniciar unha conferencia</value>
+  </string>
+  <string id="13" name="myname">
+    <value>O meu nome</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>Vídeo conferencia</value>
+  </string>
+  <string id="15" name="import">
+    <value>Enviar un ficheiro</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Actualizar a lista</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>Marcar como ficheiro principal</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>Nova enquisa</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>Nova enquisa para a conferencia</value>
+  </string>
+  <string id="20" name="question">
+    <value>Pregunta:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Tipo de enquisa:</value>
+  </string>
+  <string id="22" name="create">
+    <value>Crear</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Información: Cada usuario conectado recibe unha mensaxe coa nova enquisa.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Crear unha enquisa</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Cancelar</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Sí/Non</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Valor numérico 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Enquisa</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Precisase ser moderador para crear unha enquisa.</value>
+  </string>
+  <string id="30" name="vote">
+    <value>O seu voto foi rexistrado</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Xa respostou á enquisa previamente</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Votar!</value>
+  </string>
+  <string id="33" name="answer">
+    <value>A súa resposta:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Sí</value>
+  </string>
+  <string id="35" name="no">
+    <value>Non</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>desexa coñecer:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Resultados da enquisa</value>
+  </string>
+  <string id="38" name="question">
+    <value>Pregunta:</value>
+  </string>
+  <string id="39" name="results">
+    <value>Resultados:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Respostas:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>Non hai enquisas</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Votar!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Reunión (max 4 postos)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Conferencia (max 50 postos)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Tipo</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Outros postos</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Xa foi seleccionado</value>
+  </string>
+  <string id="48" name="enter">
+    <value>Entrar</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>O moderador abandonou a reunión.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Información do sistema</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Seleccionar un dispositivo</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Seleccionar a cámara:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Seleccionar o micrófono:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>Aceptar</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>Cancelar</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Precisa volverse conectar</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Editar a configuración</value>
+  </string>
+  <string id="58" name="course">
+    <value>Curso:</value>
+  </string>
+  <string id="59" name="language">
+    <value>Idioma:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>Aceptar</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>Cancelar</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Borrar o taboleiro</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Desexa limpar o taboleiro antes de engadir outro gráfico?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>Non volver preguntar</value>
+  </string>
+  <string id="65" name="no">
+    <value>non</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Editar a configuración</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Requirir confirmación antes de limpar o taboleiro</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Información do usuario</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Limpar o taboleiro</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Desfacer</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Refacer</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Seleccionar un obxeto</value>
+  </string>
+  <string id="73" name="text">
+    <value>Texto</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Pintar</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Debuxar unha liña</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Debuxar un subraiado</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Rectángulo</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Elipse</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Frecha</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>Borrar o elemento escollido</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Solicitar ser moderador</value>
+  </string>
+  <string id="82" name="apply">
+    <value>Solicitar</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>Cancelar</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Teño unha pregunta</value>
+  </string>
+  <string id="85" name="close">
+    <value>Pechar</value>
+  </string>
+  <string id="86" name="italic">
+    <value>Cursiva</value>
+  </string>
+  <string id="87" name="bold">
+    <value>Negriña</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>ESPERANDO</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>Un usuario desexa facerse moderador, pode concederlle acceso só ao taboleiro ou cambiar por completo o rol da moderación. Usuario:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>Aceptar</value>
+  </string>
+  <string id="91" name="reject">
+    <value>Rexeitar</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>Cancelar</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Enviando solicitudes aos seguintes usuarios</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Aceptado</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Rexeitado</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Cambiar de moderador</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Vostede non é moderador deste curso!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Moderador:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>Sentimolo pero esta aula está completa. Ténteo máis tarde</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Elipse</value>
+  </string>
+  <string id="101" name="close">
+    <value>Pechado</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>erro na entrada de datos</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>o nome de usuario debe conter alo menos 4 caracteres</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>o contrasinal de usuario debe conter alo menos 4 caracteres</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>Este nome de usuario xa existe</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>Este correo-e xa está rexistrado</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>Erro do sistema, por favor contacte co administrador do sistema</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Inicio de sesión</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Usuario ou correo-e:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Contrasinal:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Idioma</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Conectarse</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Rexistrarse</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Usuario:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Contrasinal:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Contrasinal (de novo):</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Nome:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Apelido(s):</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>Correo Electrónico:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>País:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Rexistrarse</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>Cancelar</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Non está rexistrado?</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>Inicio</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Usuarios</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Grupos</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Organizacións</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Salas de xuntanzas</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>público</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>Organización</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>Entrar</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Inicio de sesión</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Contrasinal</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Contrasinal (de novo)</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Nome</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Apelido(s)</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>Correo Electrónico</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Data de nacemento</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Enderezo</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>Código postal</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>País</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Información adicional</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Datos do usuario</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>Gardar</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Gardar</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>ID do usuario</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>Inicio de sesión</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>Nome</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>Apelido(s)</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>Mostrar o seguinte</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>Mostrar o anterior</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>Eliminar o rexistro</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>Cancelar</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>Eliminar</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>Novo rexistro</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>Actualizar o rexistro</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>Eliminar o rexistro</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>Estado</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>desactivado</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>activado</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>Organizacións</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>Calendario</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>Pechar</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>ID da organización</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>Nome</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>Usuario</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>Moderador</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>Administrador</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>Nivel de usuario</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>Organización</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>nome</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>Engadir unha organización</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>Engadir unha organización</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>Cancelar</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>Engadir</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>Eliminar unha organización</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>Usuario</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>Engadir un usuario</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>Eliminar un usuario</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>Engadir un usuario á organización</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>Buscar un usuario</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>Buscar</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>Usuario</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>Organización</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>Entrar</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Salas de conferencias</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Salas de conferencia</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>ID</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Nome</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>pública</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>Organizacións</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Salas de xuntanzas</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>Nome</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>Tipo</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>Pública</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>Comentario</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>Gardar e exportar</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>cargar</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>Gardar como</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>Nome do ficheiro</value>
+  </string>
+  <string id="201" name="files">
+    <value>nome do ficheiro</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>Cancelar</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>Gardar</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>Erro</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>Cargando</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>Obxetos cargados</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>Sincronizando, usuarios en espera:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Cargando datos de imaxe</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>Sincronizando, usuarios en espera:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>Limpar o taboleiro</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>limpiar o taboleiro, perderase toda a información do taboleiro</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Confirmar antes de cargar un ficheiro</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Enviar convite</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Enviar convite</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Asunto</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Destinatario</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Mensaxe</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Enviar</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>cancelar</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>enviar</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Datos do usuario</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>O seu alcume para esta conferencia</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>Alcume</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>Nome</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>Apelido(s)</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>Correo-e</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>Idioma</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>entrar</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Cargando</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Cargando datos, espere un momento</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Contrasinal incorrecto</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Por favor introduza dúas veces o mesmo contrasinal con un mínimo de 6 caracteres</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Correo incorrecto</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Vostede introduciu un enderezo de correo electrónico incorrecto</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>O rexistro completouse satisfactoriamente</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>A súa conta foi creada, a partires deste momento xa pode iniciar unha sesión</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>Vostede non pode compartir o seu escritorio neste momento. Alguén está xa a compartir o seu escritorio neste momento.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Compartición non permitida</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Compartir/gravar o seu escritorio</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Problemas de conexión: O seu largo de banda non é abondo e perderase información. Si a mensaxe se repite con frecuencia solicitelle ao moderador que reduza a calidade.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Escritorio de:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Debuxar</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Documento</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Conversa</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Ficheiros</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Membros</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Descargar o documento orixinal</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>Descargar o documento en pdf</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Cargar unha presentación no taboleiro</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Configuración</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Arrastrar este obxecto</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Axustar o tamaño do obxecto</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>de</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>Ir á primeira páxina</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>Ir á páxina anterior</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>Ir á páxina seguinte</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>Ir á última páxina</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Diminuir Zoom</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Aumentar Zoom</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Sr.</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Sra.</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Configuración</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Chave</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Configuración</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Chave</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>última actualización</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>actualizado por</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>comentar</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>Valor</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>de</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Usuarios</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>Eliminar un usuario da organización</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>E</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>Este usuario xa é membro da organización</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>Novas</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Ligazóns rápidas</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Ir á conferencia</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Ir ao auditorio</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Axuda e asistencia</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Informar dun fallo!</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>máis</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Sitio web do proxecto (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>Lista de correo do Proxecto (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Lembrar o inicio de sesión</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Contido</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>A miña páxina de inicio</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>As miñas xuntanzas programadas</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>Os meus eventos programados</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Xuntanzas públicas</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Xuntanzas privadas</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Eventos públicos</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Eventos privados</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Contido público</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Contido privado</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Contido persoal</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value>...</value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Moderación</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Teño unha pregunta</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Enquisas</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Seleccione un ficheiro</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Axustes</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Axustes de cámara e micrófono</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Configuración do taboleiro</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Saír</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Volver ás salas</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Saír</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Esqueceu o seu contrasinal?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Restablecer o contrasinal</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>Por correo-e</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Por inicio de sesión</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>O seu correo-e</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>O seu inicio de seción</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Enviar correo-e con ligazón de restablecemento</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>Nose atopou o enderezo de correo electrónico. Asegúrese de introducir o mesmo enderezo de correo electrónico que utilizou para crear a súa conta.</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Escriba o seu correo-e ou o nome de usuario</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>Non hai ningun usuario con este nome</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>Enviouselle un correo-e cunha ligazón especial, revise a súa bandexa de entrada de correo. Se non atopa este correo revise a configuración de spam do seu servidor e reenvie o correo de confirmación.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Erro</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Mensaxe</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Non se atopou ó usuario (hash incorrecto).</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Xerar contrasinal</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Inicio de sesión</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>cambiar o contrasinal</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>novo contrasinal</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>volva a escribir o contrasinal</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>Os contrasinais introducidos non son identicos.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>Escriba 4 ou máis caracteres. Diferéncianse as maiúsculas</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Cambiouse o contrasinal, agora pode a iniciar sesión.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>Aceptar</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Erro descoñecido. Informe ao administradores.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Non se atopou o nome de usuario</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Contrasinal incorrecto</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Vostede saiu do sistema</value>
+  </string>
+  <string id="338" name="registration">
+    <value>A ferramenta de rexistro está desactivada.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>Correo-e incorrecto</value>
+  </string>
+  <string id="340" name="registration">
+    <value>nome de ficheiro duplicado, por favor elixa outro</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>o nome de ficheiro é moi curto</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Non se puido gardar o enderezo</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>O usuario foi engadido, máis deberá engadilo a unha organización, ou non poderá conectarse.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Nova gravación</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>Non se atopou un campo neste FieldId.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>Non se atopou unha etiqueta para este campo.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Precisase autorización do administrador</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Editor de idioma.</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Idioma</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>ID da etiqueta</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Nome da etiqueta</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Valor</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Valores do campo</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>Nome da etiqueta</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>Valor da etiqueta</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>ID da etiqueta</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>Vostede só eliminou a etiqueta pero NON o campo! Non se pode eliminar un campo, é probábel que existan etiquetas noutros idiomas.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>ID de etiqueta incorrecto. O seu FieldLanguagesvalues_Id non se atopou na base de datos.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Vostede non pode eliminar este campo, só pode eliminar etiquetas, NON campos. Non hai unha etiqueta cargada polo momento, ou non hai ningún campo seleccionado, ou non é unha etiqueta para este idioma para o campo definido.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>exportar</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Precisa pechar a sesión para ver os cambio.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Engadir un novo idioma</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>eliminar un idioma</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Engadir un novo idioma</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Nome</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>engadir un idioma</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Copia de seguranza</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>ir ao inicio</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>ir á anterior</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>ir á seguinte</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>ir ao final</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>o usuario fala (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>acender ou apagar o son</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>Sistema</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Os seus axustes</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>ola!</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Editar o seu perfil</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Novas mensaxes:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Cargar unha nova imaxe</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Datos do usuario - Exportar</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>Todas as organizacións deben existir previamente!</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>iniciar a exportación</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>Por organización</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>iniciar a exportación</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Datos do usuario - Importar</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>elixa users.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>importar</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Exportar a XML - Estos ficheiros poden ser usados para:&lt;br/&gt; - Contribuir ao proxecto - Importalos a outro sistema&lt;br/&gt; - Copia de seguranza - Personalización&lt;br/&gt; - Colocalo no directorio de idiomas para a próxima instalación.</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Seleccione un ficheiro de idioma a importar. &lt;br/&gt;Seleccione correctamente o idioma no selector! &lt;br/&gt;non importa cal sexa o nome do ficheiro, &lt;br/&gt;será importado a ese idioma!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>importar - escoller ficheiro</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Gardar como...</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Nome:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Comentario:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>gardar</value>
+  </string>
+  <string id="395" name="record">
+    <value>Gravacións</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Visor de gravacións</value>
+  </string>
+  <string id="397" name="record">
+    <value>Gravacións de salas públicas e privadas</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Usuarios:</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Unido:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Usuarios na sala:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>actualizar</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>A sala está chea, por favor tenteo nuns minutos.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>prema nunha sala para ver os detalles</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Conversar cos usuarios desta sala:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Sala:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Usuarios nesta sala:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>desde:</value>
+  </string>
+  <string id="409" name="record">
+    <value>reproducir a gravación</value>
+  </string>
+  <string id="410" name="record">
+    <value>Duración:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Data:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Modo de gravación! Non pode cambiar ningún valor xa que se trata dun ficheiro gravado.</value>
+  </string>
+  <string id="413" name="record">
+    <value>Reproducir esta gravación</value>
+  </string>
+  <string id="414" name="record">
+    <value>Reproducir / Pausa</value>
+  </string>
+  <string id="415" name="record">
+    <value>Gravar esta xuntanza</value>
+  </string>
+  <string id="416" name="record">
+    <value>parar a gravación</value>
+  </string>
+  <string id="417" name="record">
+    <value>Gravación:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>Alguén esta a gravar agora esta xuntanza:</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Gravando! Polo usuario:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>cancelar</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>A gravación será cancelada e non gardada.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>reanudar</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Pechar esta fiestra e reanudar a gravación</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>Cambiar a liña de cor</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Seleccionar cor</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Desactivar / activar a liña de cor</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>cambiar a cor de recheo</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Desactivar / activar o recheo de cor</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Cambiar o groso da liña</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>Pechar</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>cambiar tamaño de letra</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Eliminar a gravación</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Convidado</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>Por:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Nome</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Sala</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Data</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>cancelar</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>iniciar</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Nome</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Data</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Eliminar o rexistro da conversa no servidor</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Conversa</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>enviar a mensaxe</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Emoticonas</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Emoticonas</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Escolla os dispositivos</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Són e vídeo</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Só son</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Só vídeo</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>Sen son/vídeo (imáxe fixa)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>Non se enviará son/vídeo desde o seu computador, no seu lugar mostrarase a imáxe do seu perfil. Seleccione esta configuración se vostede tén problemas co seu largo de banda ou unha conexión de Internet lenta.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>LU</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>MA</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>ME</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>XO</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>VE</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>SA</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>DO</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Lúns</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Martes</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Mércores</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Xoves</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Venres</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Sábado</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Domingo</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>S</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Número de semana do calendario</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>Xaneiro</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>Febreiro</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>Marzo</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>Abril</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>Maio</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>Xuño</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>Xullo</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>Agosto</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>Setembro</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>Outubro</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>Novembro</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>Decembro</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Calendario</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Participantes</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Mostrar os axustes de deseño</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Largo | Alto</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Contedor de video</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Contedor de moderación</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Contedor de taboleiro</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Activado</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Largo | Alto</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Contedor de ficheiros, conversas, participantes</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Activado</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Largo | Alto</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>O moderador retirouse, polo que ninguén está a realizar unha presentación actualmente. Vostede pode agardar ou solicitar ser moderador.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>Non hai moderador nesta sala, pero si participantes. Vostede pode esperar ou solicitar ser moderador.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Comentario de $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Convite</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Mensaxe do usuario:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Mensaxe:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Prema nesta ligazón para poder participar na xuntanza:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Prema aquí para entrar á sala</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>Se ten problemas coa ligazón, suxerímoslle que copie e pegue o seguinte texto no seu navegador:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME, rexistro</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Os seus datos de usuario:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Iniciar sesión:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Contrasinal:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>Correo-e:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME - Equipo</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME, rexistro</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - Restablecer o contrasinal</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Prema na seguiente ligazón para introducir un novo contrasinal:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Prema aquí para introducir un novo contrasinal</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>Se ten problemas coa ligazón, suxerimoslle que copie e pegue o seguinte texto no seu navegador:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME, restablecer o contrasinal</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Por favor introduza unha data correcta no formato dd.mm.aaaa, p.ex. 24.12.2001</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Por favor introduza un enderezo de correo-e corecto</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Por favor introduza un número decimal, p.ex. 1.00 (use punto e non coma)</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Por favor introduza un número enteiro, p.ex. 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Por favor introduza un número de teléfono correcto, p.ex +34 999 111 111</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Por favor introduza unha hora válida no formato hh:mm, p.ex. 12:34</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Contrasinal protexido</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Contrasinal</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Período de validez</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Interminable</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Período</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Unha vez</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Válido desde:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Válido até:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Convite a $APP_NAME</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Non existe un convite dispoñíbel para este código.</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>Este convite xa foi usado e non pode utilizarse de novo.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>O código do convite é incorrecto. O convite ao través de ligazón ten validez só no momento da xuntanza! vostede non pode acceder á sala antes ou despois da reunión a través desa ligazón!</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Contrasinal:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Verificar o contrasinal</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Contrasinal incorrecto!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Navegador</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Sincronizar son/vídeo</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>O acceso é correcto, pero a sesión non está activa ou gardada no servidor.Vostede ten que conseguir un novo identificador de sesión e volver a acceder.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>O identificador de sesión non está iniciado ou non ten permisos de Administración. A pasarela SOAP precisa un usuario con dereitos de administrador para engadir novos usuarios.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>Esta sesión non ten datos do usuario remoto conectado. Quizais non chamou á pasarela SOAP antes de acceder ao aplicativo ou está usando un identificador de sesión incorrecto</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>O gravador aínda está en fase Beta!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>eixo-x</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>eixo-y</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>l</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>largo</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>a</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>alto</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Cambiar transparencia</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Abrir o navegador</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Pechar o navegador</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>Perdeuse a conexión co servidor. Vostede precisa reiniciar o aplicativo e/ou comprobar a súa rede.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Punteiro</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Sincronizando</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Sincronizando, por favor agarde</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Descargar como SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Descargar como PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Descargar como JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Descargar como PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Descargar como TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Lembranza:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Categoría:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Repetición:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>nada</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Ubicación:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Comeza</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>Remata</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Título:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Comentario:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Convidar xente</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Diario</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Mensual</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Anual</value>
+  </string>
+  <string id="578" name="alert">
+    <value>A data de fin é despois da data de comezo!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Por favor, insira un título!</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Active isto se vostede escribe nunha lingua de dereita a esquerda (orde inversa de palabras)</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Panel de control</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Ver eventos ou xuntanzas gravadas</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Xuntanza - Facer unha conferencia con 4 (ata 16) Usuarios&lt;br/&gt;todos terán acceso de son + vídeo</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Evento - Facer unha conferencia con ata 200 participantes&lt;br/&gt;Só o moderador terá son/video</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Crear usuarios, salas, organizacións&lt;br/&gt; + cambiar a configuración</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Usuarios nesta sala agora</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Inicio de sesión</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Cargando o documento. Por favor agarde ata que todos os clientes estean sincronizados.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Carga completa, convertindo Documento ...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Comezar carga</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Dialogo de cargar e importar. Por favor escolla un ficheiro do seu disco.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Cancelar</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Seleccionar ficheiro</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Conexións</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Valor</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Identificador de fluxo</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Iniciar sesión</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Conectado desde</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Sala / Alcance</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Expulsar usuario</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Expulsar a un usuario</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Realmente quere expulsar este cliente da conexión?&lt;br/&gt; Isto só borra ao cliente da sala actual. O cliente pode volver a acceder de novo.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>A súa sesión foi pechada por un administrador ou un moderador.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Teléfono</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>O usuario é moderador desta sala</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>O usuario está autorizado a escribir no taboleiro</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Re)iniciar o son/vídeo ou cambiar a configuración dos dispositivos</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Autorizar a este usuario a debuxar no taboleiro</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Denegar o permiso a debuxar no taboleiro</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Usuarios</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Filtros</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Taboleiro</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Conversa</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>A súa conta está asignada a multiples organizacións. Por favor escolla unha para esta sesión.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>Esta sala atópase completa neste momento. Por favor, ténteo de novo máis tarde.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Tipo de sala</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Nomeado da sala</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Hora do servidor</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - Lembranza</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Mensaxe do usuario:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Mensaxe:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Prema nesta ligazón para participar na xuntanza:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Prema aquí para entrar na sala</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>se ten problemas coa ligazón, por favor copie e pegue no seu navegador:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>busca interna</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>Engadir externos</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>Nome</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>Apelido(s)</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>Correo-e</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Confirme a saída</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Ten a certeza de querer saír agora?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Acccións</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Sala de demostración</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Hora da demostración</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Horario da xuntanza</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>Esta é unha sala de demostración. Para desactivar esta advertencia debería conseguir unha sala privada para o seu uso persoal ou obter un servidor propio. Será automaticamente redirixido dentro:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Moderado</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Por favor, agarde ata que o moderador entre na sala. O moderador pode ser un profesor, administrador, ou o creador desta sala.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Aceptar</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Recibindo o escritorio compartida</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>Hai unha nova recepción de escritorio compartido do usuario:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Iniciar a compartición do escritorio</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Engadir nova xuntanza</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Sala de xuntanzas</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Sala de eventos</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderación</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Moderar usuarios</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Moderar salas</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Desexa que este usuario se convirta en moderador desa organización?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Por favor, escolla unha organización antes de tentar engadir un usuario a ela!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organización - Moderador</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Ten a certeza de que desexa eliminar este usuario da organización?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>Este usuario é moderador</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>Este usuario non é moderador</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Desexa que este usuario non sexa moderador desta organización?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Engadir ou eliminar usuarios ou salas na súa organización</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Desexa elmininar este rexistro?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Relmente desexa eliminar este usuario da súa organización? Só eliminará a relación entre o usuario e a organización, para eliminar definitivamente ao usuario ten que entrar no menú de administración.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>Non pode eliminar o seu propio usuario!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>Para usar este método precisa dunha conta de administrador!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>Non hai unha sesión asociada con este ID.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>Esta é unha conta de administrador ou moderador. Só pode editar esta conta a través do panel de administración.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>Para completar o seu rexistro, por favor prema na seguinte ligazón. Ou copie o URL na barra de navegación do seu navegador.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Prema para verificar o seu correo-e</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Non se atopou un usuario para este Hash.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Este usuario xa está activado!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>A súa conta foi activada satisfactoriamente!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Iniciar sesión agora</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>A súa conta non está activada. Antes use a ligazón do correo-e que recebiu durante o rexistro.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>Rexistrouse correctamente. Enviamoslle un correo-e cun código de verificación. Por favor, comprobe a súa bandexa de entrada de correo.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Eliminar o rol de moderador deste usuario</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Dar dereitos de moderador a este usuario</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>Usuario</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Acceso ao taboleiro</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderador</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Moderación: Por favor escolla un usuario da lista para darlle acceso ao taboleiro, moderación ou video.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>Este usuario xa é moderador, ten automáticamente acceso para debuxar.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>Este é vostede! Non é posíbel quitarse dereitos de moderador a un mesmo.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Permitir a este usuario enviar o seu son / vídeo</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Eliminar son/vídeo deste usuario</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>Teño unha pregunta</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>Gustarialle debuxar no taboleiro</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>Gustarialle compartir o meu son/vídeo</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>Vostede é moderador desta sala</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>Vostede ten acceso a debuxar no taboleiro</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>Non lle está permitido compartir o seu son/vídeo</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Mensaxe ao moderador</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>O usuario</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>gustarialle facer unha pregunta.&lt;br/&gt;&lt;br/&gt; &lt;i&gt;(Use as iconas de estado cerca do usuario na lista de usuarios para engadir ou eliminar dereitos de moderación.)&lt;7i&gt;</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>gustarialle debuxar no taboleiro. Use as iconas de estado cerca do usuario na lista de usuarios para engadir ou eliminar dereitos de debuxo no taboleiro.</value>
+  </string>
+  <string id="695" name="695">
+    <value>gustarialle compartir o seu son/vídeo. Use os iconos de estado preto do usuario na lista de usuarios para dar ou quitar dereitos de Audio/vídeo para calquera usuario.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>Ten que agardar até que un moderador entre na sala.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Cancelar</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Gardar</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Día</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Mes</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Ano</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Cargar un ficheiro</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Engadir un ficheiro</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Actualizar</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Lixo</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>Meus ficheiros Files (Dispositivo personal)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Ficheiros da sala (Dispositivo público)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Engadir ficheiro</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Engadir cartafol</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Borrar cartafol</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Editar o nome</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>Novo cartafol</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Ten a certeza de que desexa eliminar este elemento?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Buscar</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Buscar</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Abrir o documento</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Mostrar todos os ficheiro (Vista en árbore)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Pechar o documento</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Borrar o ficheiro</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>Non ten permisos para escribir ou debujar no taboleiro. Debe ser moderador ou, alo menos, ter permisos de edición do taboleiro. Solicítello a un moderador.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Propiedades do documento</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Iniciar Java</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Iniciar Flash</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>Un usuario desexa compartir o seu escritorio. Quere visualizala?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>Actualmente está compartindo o seu escritorio. Para deixar de facelo, prema no botón Parar no cliente de compartición.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Compartindo a sesión</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>Xa está compartindo o seu escritorio!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Visor de escritorio</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Parar a compartición</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Compartición de escritorio</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Pulse Iniciar para publicar o seu escritorio</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Iniciar a compartición</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Pausa na compartición</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Seleccione un área da pantalla:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Cambiar a largura</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>Rematou a sesión de compartición!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Cambiar a altura</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>Desprazamento-X</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Desprazamento-Y</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Largo:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Alto:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>O servidor pechou a conexión</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Cancelar</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Iniciar Java</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>Se pecha completamente esta sesión, non será posíbel reiniciar o visor durante esta sesión.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Confirme o peche da sesión do visor</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Compartir escritorio</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Gravar a sesión</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Co-navegación</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Umm... Firefox en windows non mostra a co-navegación con claridade. Por favor, utilice outro navegador ou peche esta funcionalidade.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Anterior</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Seguinte</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Recargar</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Inicio</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Cargar</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Engadir este sitio ao seu perfil como sitio predeterminado.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Probar a configuración</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Comprobe a configuración do seu micrófono e/ou cámara antes de entrar na sala. Para el grave durante algúns segundos e reprodúzao, deberá escoitar a súa voz e ver a súa imaxe.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Non volver a mostrar esta proba</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Cancelar</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Iniciar unha conferencia</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Non volver a preguntar</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>Pode continuar sen facer a comprobación se non desexa publicar a imaxe e/ou o son. Os participantes sen son ou sen vídeo poden en todo caso utilizar o taboleiro, compartir o seu escritorio ou enviar mensaxes utilizando a liña de conversas.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="767">
+    <value>Medidor de niveis</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Prema en Iniciar</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Iniciar a conferencia</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Iniciar o evento</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Elixir a sala</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Probar a config.</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Iniciar a conferencia</value>
+  </string>
+  <string id="774" name="start view">
+    <value>Instruccións «Conferencia»:</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Iniciar a gravación</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Non mostrar a proba de son /vídeo antes de entrar nunha conferencia</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Salas públicas</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>As salas públicas son accesíbeis para todos os usuarios.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Salas privadas</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>As salas privadas son accesíbeis só para os usuarios da mesma organización.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>As miñas salas</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>As salas nesta sección son para uso persoal. Creanse utilizando o calendario e teñen unha data de inicio e de final. Só están listadas nesta sección durante o período de tempo en que teñen validez.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>Ten que ser moderador para poder facer isto.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Solicitar a moderación</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Solicitar acceso ao taboleiro</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Solicitar acceso á cámara/micrófono</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>A autenticación Hash desta sesión xa foi usada. Non pode facerse dúas veces.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>INICIAR</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>SAÍR</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Ten a certeza de que desexa saír? Sería convinte que antes limpe os documentos cargados, o taboleiro e o historial de conversas.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Saír da conferencia</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Salas</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Elixa unha sala para a xuntanza</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>Hai un evento sen gardar no calendario. Gardeo ou elimineo.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Engada, polo menos, un participante!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Ten a certeza de que desexa eliminar este evento?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Aviso</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Engadir un evento</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>día</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>semana</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>mes</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Descrición</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Asistentes</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, a súa Plataforma Web de Videoconferencia. Tan só ten que segir as instruccións, prema no botón para iniciar unha conferencia inmediatamente ou vaia ao calendario para planificar unha conferencia para o futuro.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Planificar</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>Para planificar unha conferencia, engada un novo evento no calendario. Para cada evento crearase automaticamente unha sala. Vostede e o resto de asistentes recibirán un correo-e cunha ligazón á sala.&lt;br/&gt;&lt;br/&gt;Pode escoller entre diferentes tipos de salas con diferentes deseños e sistemas de moderación. Tamén pode escoller entre diferentes tipos de notificación de correo-e que se envíen en cada evento do calendario.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Necesita axuda?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Restrinxido</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Buscar</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Engadir</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>Non hai ningún usuario seleccionado. Seleccione primero un ítem da lista e prema en Engadir.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Engadir un asistente</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Gardar</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Borar</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Detalles do evento</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Moderadores predeterminados</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Nome</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>Correo-e</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Engadir novo moderador predeterminado</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>É supermoderadorrator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>Se a sala está moderada, sexa quen sexa xa o moderador seguirá a selo. Se non desexa que sexa así, e quere que só determinado usuario sexa o moderador, utilice a opción de moderador predeterminado.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>Un supermoderador é sempre o moderador dunha sala cando entra nela. Ademáis, naide pode quitarlle a marca de moderación</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Aplicar a supermoderación ao usuario</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Eliminar a supermoderación ao usuario</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>Se engade unha organización á sala, só os usuarios de dita organización terán acceso á mesma (isto só é así se a marca de Pública está configurada como falsa!)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderación</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitacións</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organización</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Ten certeza?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Ten a certeza de que desexa borar este elemento? Ten que premer no botón Gardar para almacenar os cambios!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>Non hai ningún usuario seleccionado. Seleccióneo antes para engadilo!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Engadir un novo moderaror predeterminado</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Ten a certeza de que desexa engadir unha marca de supermoderador a este usuario? Lembre que un supermoderador non só é o moderador dunha sala, senon que ademáis ningún outro moderador poderá borrar a marca de moderación. Necesita gardar o obxecto sala para almacenar estas configuracións!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Ten a certeza de que desexa eliminar a marca de supermoderador a este usuario? Necesita gardar o obxecto sala para almacenar estas configuracións!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>Este usuario é supermoderador. Non pode quitarlle a marca de moderación a un supermoderador!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Ten a certeza de que desexa borrar este ficheiro/cartafol?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Borrar un ficheiro/cartafol?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Dna.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>D.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Propiedades</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Mostrar a posición do rato aos participantes</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Compartir o son co miniaplicativo SIP</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Compartir o son con SIP e o vídeo con Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Pantalla completa</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>Ver o escritorio</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>O usuario</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>desexa compartir o seu escritorio. Desexa visualizalo?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Pechar</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>A sesión foi pechada por quen compartia o escritorio!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pausa</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>Nona compartición de escritorio</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimizar</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximizar</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Vídeo</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Liña temporal da gravación</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>As miñas gravacións</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Gravacións públicas</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Información</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Nome</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Lonxitude</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Data</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>Por</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>Descarga</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Principal - Vídeo</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Gravación</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>Pode gravar e compartir o escritorio de vez. Para permitir que outros veaan o seu escritorio prema no botón Iniciar na parte superior. Para só gravar a sesión, é abondo que prema en Iniciar a grabación.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Iniciar a gravación</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Parar a gravación</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Descargar o ficheiro FLV</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Sala</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Reproducir</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Parar</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>O usuario ten o micrófono activado</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Parar a compartición</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Permitir as preguntas do usuario</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Desactive esta opción para evitar que calquera usuario o moleste nesta sala. Facendoo o boton para solicitar a moderación («Teño unha pregunta») non é visible.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Permisos</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Descargar como AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Só son</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>Houbo algún erro mentres de procesaba a gravación.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>La grabación no está aínda preparada para ver. Tenteo de novo dentro dun par de minutos.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Rexistro:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Mensaxe do gravador</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>O miniaplicativo SIP non está preparado</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>Axustes da conta SIP</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP settings for each user. You can turn on or off SIP via the Administration &gt; Configuration (Key: enable_sip). The SIP data for each user should be created automatically. You can re-create the data by checking "Re-generate SIP Data"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-User</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Pass</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. You should check the authentification data of your SIP-Provider and the SIP-Account Data for each User. As Administrator you are still able to login and check the Configuration. As User or Moderator you will be blocked from any interaction.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. Contact your Service Team!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Show Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log messages from post recorder process</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Applet Message</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>The SIP-Applet is not ready. Accept the Applet please and click ok!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Get Moderation</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Save Appointment Changes</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointement has been changed. Do you want to save those changes? &lt;br/&gt;&lt;br/&gt;All attendees of the appointment will receive a EMail with the updated date and time (depending on the notification type of this appointment).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>To access other recordings you have to login the $APP_NAME Application.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Choose the User for this Video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available Users for this Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>You are a Moderator in this Interview. You can decide who is speaking in this interview and you can start / stop the recording of the Session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Start Recording</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Stop Recording</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>The recording of the Interview is already started.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>The recording is already stopped or not been started yet.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>The recording for this interview is already started!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Clear objects on current slide only!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the Status bar is send to participants!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make Team-Rooms [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new Team-Room!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new Conference Room ("Team Room") for them. The chosen users will automatically switch to the new Team-Room or get a notification. Team-Room Moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a Moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Username</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new Team-Room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create Team-Room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the Team-Room!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from Team-Room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Roomtype</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the System. The Backup includes all User generated data. The configuration is not included as well as the language labels. Because those values are imported with the System Installer. To update your System, export your old system (1) re-install into a new database the new package (2) and import the Backup file again (3). The Backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share Screen/Record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is Moderator, he can do anything!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/Deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose "Insert" from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about Copy and Paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Kick user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/greek.xml b/src/main/webapp/languages/greek.xml
new file mode 100644
index 0000000..074c91d
--- /dev/null
+++ b/src/main/webapp/languages/greek.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Συνδιάσκεψη</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Συνάντηση</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Γεγονότα</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Ρυθμίσεις</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Προφίλ</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Διαχείριση</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Διακοπή</value>
+  </string>
+  <string id="8" name="record">
+    <value>Εγγραφή</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>Το αρχείο δεν βρέθηκε!</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Εγγραφή κατά Δάσκαλο</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Συνδεδεμένοι Χρήστες:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Έναρξη Συνδιάσκεψης</value>
+  </string>
+  <string id="13" name="myname">
+    <value>Το Όνομά Μου</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>ΒιντεοΣυνδιάσκεψη</value>
+  </string>
+  <string id="15" name="import">
+    <value>Φόρτωση Αρχείου</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Ανανέωση Λίστας</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>Στο Βασικό Αρχείο</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>Νέα Ψηφοφορία</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>Νέα Ψηφοφορία Συνδιάσκεψης.</value>
+  </string>
+  <string id="20" name="question">
+    <value>Ερώτηση:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Τύπος Ψηφοφορίας:</value>
+  </string>
+  <string id="22" name="create">
+    <value>Δημιουργία</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Ενημέρωση: Κάθε συνδεδεμένος Χρήστης λαμβάνει ένα μήνυμα με τη νέα Ψηφοφορία.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Δημιουργία Ψηφοφορίας</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Ακύρωση</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Ναι/Όχι</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Αριθμός 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Ψηφοφορία</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Μόνο ο Συντονιστής μπορεί να δημιουργεί Ερωτήσεις!</value>
+  </string>
+  <string id="30" name="vote">
+    <value>Η Ψήφος σας καταχωρήθηκε.</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Έχετε ήδη συμμετάσχει σε αυτήν την Ψηφοφορία.</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Ψηφίστε!</value>
+  </string>
+  <string id="33" name="answer">
+    <value>Η Απάντησή Σας:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Ναι</value>
+  </string>
+  <string id="35" name="no">
+    <value>Όχι</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>θέλει να ξέρει:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Αποτελέσματα Ψηφοφορίας</value>
+  </string>
+  <string id="38" name="question">
+    <value>Ερώτηση:</value>
+  </string>
+  <string id="39" name="results">
+    <value>Αποτελέσματα:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Απαντήσεις:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>Δεν έχει ξεκινήσει καμία Ψηφοφορία.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Ψηφίστε!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Συνάντηση (μέγιστο 4 θέσεις)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Συνδιάσκεψη (μέγιστο 50 θέσεις)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Τύπος</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Άλλες Θέσεις</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Ήδη Επιλεγμένη</value>
+  </string>
+  <string id="48" name="enter">
+    <value>Είσοδος</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>Ο Συντονιστής εγκατέλειψε τη Συνάντηση.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Πληροφορίες Συστήματος</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Επιλογή Συσκευής</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Επιλογή Web Κάμερας:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Επιλογή Μικροφώνου:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>Εντάξει</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>Ακύρωση</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Πρέπει να συνδεθείτε ξανά!</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Τροποποίηση Εγκατάστασης.</value>
+  </string>
+  <string id="58" name="course">
+    <value>Μάθημα:</value>
+  </string>
+  <string id="59" name="language">
+    <value>Γλώσσα:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>Εντάξει</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>Ακύρωση</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Εκκαθάριση Πίνακα</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Να αδειάζει ο Πίνακας πριν από την προσθήκη Νέας Εικόνας</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>Να μην ερωτηθώ ξανά!</value>
+  </string>
+  <string id="65" name="no">
+    <value>Όχι</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Ρύθμιση Εγκατάστασης</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Να ζητείται Επιβεβαίωση πριν από την εκκαθάριση του Πίνακα</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Πληροφορίες Χρήστη</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Εκκαθάριση Περιοχής Σχεδίασης</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Αναίρεση</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Επαναφορά</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Επιλογή Αντικειμένου</value>
+  </string>
+  <string id="73" name="text">
+    <value>Κείμενο</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Ζωγραφική</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Σχεδίαση Γραμμής</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Σχεδίαση Υπογράμμισης</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Ορθογώνιο</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Έλλειψη</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Βέλος</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>Διαγραφή Επιλεγμένου Στοιχείου</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Αίτηση για Συντονισμό</value>
+  </string>
+  <string id="82" name="apply">
+    <value>Αίτηση</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>Ακύρωση</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Γίνετε Συντονιστής</value>
+  </string>
+  <string id="85" name="close">
+    <value>Κλείσιμο</value>
+  </string>
+  <string id="86" name="italic">
+    <value>Italic</value>
+  </string>
+  <string id="87" name="bold">
+    <value>Bold</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>Σε Αναμονή</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>Κάποιος Χρήστης θέλει να κάνει Αίτηση για Συντονισμό. Μπορείτε να του παραχωρήσετε πρόσβαση μόνο στον Πίνακα ή να μεταστρέψετε πλήρως το ρόλο Συντονισμού. Χρήστης:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>Αποδοχή</value>
+  </string>
+  <string id="91" name="reject">
+    <value>Απόρριψη</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>Ακύρωση</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Αποστολή Αιτήματος στους ακόλουθους Χρήστες:</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Αποδεκτό</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Μη Αποδεκτό</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Αλλαγή Συντονιστή</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Δεν συντονίζετε εσείς αυτό το Μάθημα!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Συντονιστής:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>Αυτό το Δωμάτιο είναι πλήρες. Παρακαλούμε δοκιμάστε ξανά αργότερα.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Έλλειψη</value>
+  </string>
+  <string id="101" name="close">
+    <value>Κλείσιμο</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>Σφάλμα Δεδομένων Εισόδου</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>4 ή Περισσότεροι Χαρακτήρες: Προβλήματα Καταχώρησης με Κεφαλαία Γράμματα!</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>Ο Κωδικός Χρήστη πρέπει να περιέχει τουλάχιστον 4 Χαρακτήρες!</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>Το συγκεκριμένο Όνομα Χρήστη έχει επιλεγεί ήδη!</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>Το συγκεκριμένο Email έχει καταχωρηθεί ήδη!</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>Σφάλμα Συστήματος: Παρακαλούμε επικοινωνήστε με τους Διαχειριστές Συστήματος!</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Login</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Χρήστης ή Email:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Κωδικός:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Γλώσσα</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Σύνδεση</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Εγγραφή</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Χρήστης:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Κωδικός:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Επαν. Κωδικού:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Όνομα:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Επώνυμο:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>Email:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>Χώρα:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Καταχώρηση</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>Ακύρωση</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Δεν είστε Μέλος;</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>Αρχική Σελίδα</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Χρήστες</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Ομάδες</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Οργανισμοί</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Δωμάτια Συναντήσεων</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>Κοινό</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>Οργανισμός</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>Είσοδος</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Login</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Κωδικός</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Επαν. Κωδικού</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Όνομα</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Επώνυμο</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>Email</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Γενέθλια</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Οδός/Αριθμός</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>Τ.Κ./Πόλη</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>Χώρα</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Διεύθυνση</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Στοιχεία Χρήστη</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>Αποθήκευση</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Αποθήκευση</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>ID</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>Login</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>Όνομα</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>Επώνυμο</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>Επόμενο</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>Προηγούμενο</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>Διαγραφή Εγγραφής</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>Ακύρωση</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>Διαγραφή</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>Νέα Εγγραφή</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>Ανανέωση Εγγραφής</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>Διαγραφή Εγγραφής</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>Κατάσταση</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>Απενεργοποιημένη</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>Ενεργοποιημένη</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>Οργανισμοί</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>Ημερολόγιο</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>Κλείσιμο</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>ID</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>Όνομα</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>Χρήστης</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>Συντονιστής</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>Διαχειριστής</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>Επίπεδο Χρήστη</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>Οργανισμός</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>Όνομα</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>Προσθήκη Οργανισμού</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>Προσθήκη Οργανισμού</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>Ακύρωση</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>Προσθήκη</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>Αφαίρεση Οργανισμού</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>Χρήστης</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>Προσθήκη Χρήστη</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>Διαγραφή Χρήστη</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>Προσθήκη Χρήστη σε Οργανισμό</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>Εύρεση Χρήστη</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>Εύρεση</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>Χρήστης</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>Οργανισμός</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>Είσοδος</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Δωμάτια Συνδιασκέψεων</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Δωμάτιο Συνδιάσκέψεων</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>Αριθμός</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Όνομα</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>Δημόσιο</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>Οργανισμοί</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Δωμάτια Συναντήσεων</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>Όνομα</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>Τύπος</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>Δημόσιο</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>Σχόλιο</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>Αποθήκευση και Εξαγωγή</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>Φόρτωση</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>Αποθήκευση ως</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>Όνομα Αρχείου</value>
+  </string>
+  <string id="201" name="files">
+    <value>Όνομα Αρχείου</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>Ακύρωση</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>Αποθήκευση</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>Μήνυμα</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>Φόρτωση</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>Τα Αντικείμενα Φορτώθηκαν με Επιτυχία</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>Συγχρονισμός πελατών. Πελάτες προς Αναμονή:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Φόρτωση Δεδομένων Εικόνας</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>Συγχρονισμός πελατών. Πελάτες προς Αναμονή:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>Εκκαθάριση Περιοχής Σχεδίασης</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>Εκκαθάριση Περιοχής Σχεδίασης: Όλα τα δεδομένα του Πίνακα θα χαθούν!</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Να ζητείται Επιβεβαίωση πριν από την Φόρτωση Αρχείου</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Αποστολή Πρόσκλησης</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Αποστολή Πρόσκλησης</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Θέμα</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Παραλήπτης</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Μήνυμα</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Αποστολή</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>Ακύρωση</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>Aποστολή</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Στοιχεία Χρήστη</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>Ψευδώνυμο για αυτήν τη Συνδιάσκεψη</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>Ψευδώνυμο</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>Όνομα</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>Επώνυμο</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>Email</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>Γλώσσα</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>Είσοδος</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Φόρτωση</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Φόρτωση Δεδομένων: Παρακαλούμε περιμένετε!</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Λάθος Κωδικός</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Παρακαλούμε εισάγετε δύο πανομοιότυπους Κωδικούς τουλάχιστον 6 Χαρακτήρων!</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Λάθος Email</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Μη Έγκυρη Διεύθυνση Email!</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>Η Kαταχώρηση Oλοκληρώθηκε</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Ο Λογαριασμός σας δημιουργήθηκε με επιτυχία. Τώρα μπορείτε να συνδεθείτε.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>Δεν μπορείτε να μοιραστείτε την Οθόνη σας αυτή τη στιγμή! Κάποιος άλλος μοιράζεται ήδη την δική του.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Διαμοίραση Απαγορευμένη</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Διαμοίραση Οθόνης</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Κακό Bandwidth: Δεν μπορέσατε να συγχρονίσετε την Οθόνη. Κάποια πλαίσια θα χαθούν. Αν αυτή η ειδοποίηση εμφανίζεται συχνά μπορείτε να ζητήσετε στο συντονιστή να μειώσει την Ποιότητα.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Οθόνη του:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Ζωγραφική</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Έγγραφα</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Συνομιλία</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Αρχεία</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Μέλη</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Αποθήκευση Γνήσιου Εγγράφου</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>Αποθήκευση pdf Εγγράφου</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Φόρτωση Παρουσίασης στον Πίνακα</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Διαμόρφωση</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Σύρετε το Αντικείμενο</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Αλλάξτε το μέγεθος του Αντικειμένου</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>από</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>Μεταφορά στην Πρώτη Σελίδα</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>Μεταφορά στην Προηγούμενη Σελίδα</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>Μεταφορά στην Επόμενη Σελίδα</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>Μεταφορά στην Τελευταία Σελίδα</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Εστίαση --</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Εστίαση ++</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Κος</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Κα</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Διαμόρφωση</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Κλειδί</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Διαμόρφωση</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Κλειδί</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>Τελευταία Τροποποίηση</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>Τροποποιημένο από</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>Σχόλιο</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>Τιμή</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>από</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Χρήστες</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>Διαγραφή Χρήστη από Οργανισμό</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>Δ</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>Ο Χρήστης είναι ήδη Μέλος του συγκεκριμένου Οργανισμού!</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>Νέα</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Γρήγοροι Σύνδεσμοι</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Συνδιάσκεψη</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Αμφιθέατρο</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Βοήθεια και Υποστήριξη</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Αναφορά Bug!</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>Περισσότερα</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Project Website (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>Λίστα με Email Χρηστών (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Υπενθύμιση Login</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Περιεχόμενο</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>Η Αρχική Μου Σελίδα</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>Προγραμματισμένες Συναντήσεις</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>Προγραμματισμένα Συμβάντα</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Δημόσιες Συναντήσεις</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Ιδιωτικές Συναντήσεις</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Δημόσια Συμβάντα</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Ιδιωτικά Συμβάντα</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Δημόσιο Περιεχόμενο</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Ιδιωτικό Περιεχόμενο</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Προσωπικό Περιεχόμενο</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Συντονισμός</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Αίτηση για Συντονισμό</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Ψηφοφορίες</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Επιλογή Αρχείου</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Ρυθμίσεις</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Κάμερα &amp; Μικρόφωνο</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Πίνακας</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Έξοδος</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Πίσω στα Δωμάτια</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Logout</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Ξεχάσατε τον Κωδικό σας?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Αλλάξτε Κωδικό</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>Μέσω Email</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Μέσω Login</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>To Email Σας</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Το Login Σας</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Αποστολή Email με Σύνδεσμο εκ νέου ρύθμισης (reset)</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>Η διεύθυνση Email δεν βρέθηκε! Εισάγετε την ίδια διεύθυνση Email με εκείνην που χρησιμοποιήσατε για τη δημιουργία του Λογαριασμού σας.</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Παρακαλούμε εισάγετε Διεύθυνση Email ή Όνομα Χρήστη</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>Δεν βρέθηκε Χρήστης που να αντιστοιχεί στο συγκεκριμένο Όνομα Χρήστη!</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>Ένα mail με Ειδικό Σύνδεσμο έχει σταλεί στη διεύθυνση Email σας. Παρακαλούμε ελέγξτε το ταχυδρομείο σας. Αν δεν έχετε λάβει ακόμα mail, παρακαλούμε προσαρμόστε τις ρυθμίσεις spam του ταχυδρομείου σας και επαναλάβατε την αποστολή του mail Επιβεβαίωσης.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Μήνυμα</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Μήνυμα</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Μη Έγκυρη Τιμή Hash! Δεν βρέθηκαν Χρήστες.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Αλλάξτε τον Κωδικό σας</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Login</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>Αλλαγή Κωδικού</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>Νέος Κωδικός</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>Επανάληψη Κωδικού</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>Οι Κωδικοί που πληκτρολογήσατε δεν είναι ίδιοι!</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>4 ή Περισσότεροι Χαρακτήρες: Προβλήματα Καταχώρησης με Κεφαλαία Γράμματα!</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Ο Κωδικός ρυθμίστηκε. Τώρα μπορείτε να συνδεθείτε.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>Εντάξει</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Άγνωστο Σφάλμα: Παρακαλούμε να το αναφέρετε στην Ομάδα Εξυπηρέτησής σας.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Το Όνομα Χρήστη δεν βρέθηκε.</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Μη Έγκυρος Κωδικός</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Επιτυχής Αποσύνδεση</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Frontend Εγγραφές Απενεργοποιημένες.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>Μη Έγκυρο Email</value>
+  </string>
+  <string id="340" name="registration">
+    <value>Επανάληψη Ονόματος Αρχείου: Παρακαλούμε επιλέξτε διαφορετικό Όνομα Αρχείου!</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>Πολύ μικρό Όνομα Αρχείου!</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Αδυναμία Αποθήκευσης Διεύθυνσης</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>Ο Χρήστης προστέθηκε επιτυχώς, αλλά πρέπει να τοποθετηθεί σε κάποιον Οργανισμό, αλλιώς δεν θα μπορεί να συνδεθεί!</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Νέα Εγγραφή</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>Δεν βρέθηκε Πεδίο με το συγκεκριμένο ID (Κωδικό Αριθμό) Πεδίου!</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>Δεν βρέθηκε Ετικέτα για το συγκεκριμένο Πεδίο!</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Απαιτείται Εξουσιοδότηση από το Διαχειριστή!</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Σύνταξη Γλώσσας</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Γλώσσα</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>ID Ετικέτας</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Όνομα Ετικέτας</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Τιμή</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Τιμές Πεδίου</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>Όνομα Ετικέτας:</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>Τιμή Ετικέτας:</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>Αριθμός Ετικέτας:</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>Διαγράψατε μόνο την Ετικέτα και ΟΧΙ το Πεδίο! Δεν μπορείτε να διαγράψετε το Πεδίο, διότι ενδέχεται να περιέχει Ετικέτες σε άλλες Γλώσσες.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>Μη Έγκυρο ID (Κωδικός Αριθμός) Ετικέτας! Δεν βρέθηκε καταχωρημένο στη Βάση Δεδομένων.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Δεν μπορείτε να διαγράψετε το συγκεκριμένο Πεδίο! Μπορείτε να διαγράφετε Ετικέτες αλλά ΟΧΙ Πεδία. Αυτή τη στιγμή δεν έχει επιλεγεί κάποια Ετικέτα. Είτε δεν έγινε επιλογή Ετικέτας από κανένα Πεδίο, είτε δεν υπάρχει Ετικέτα για την συγκεκριμένη Γλώσσα και το συγκεκριμένο Πεδίο.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>Εξαγωγή</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Πρέπει να αποσυνδεθείτε για να δείτε τις αλλαγές!</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Προσθήκη Νέας Γλώσσας</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>Διαγραφή Γλώσσας</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Προσθήκη Νέας Γλώσσας</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Όνομα</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>Προσθήκη Γλώσσας</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Αντίγραφα Ασφαλείας</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>Αρχή</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>Προηγούμενο</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>Επόμενο</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>Τέλος</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>Ο Χρήστης μιλάει (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>Ανοιγμα/Κλείσιμο Ήχου</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>Σύστημα</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Οι Ρυθμίσεις Σας</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>Γειά σας,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Επεξεργασία Προφίλ</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Νέα Μηνύματα:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Αλλαγή Εικόνας</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Δεδομένα Χρήστη - Εξαγωγή</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>Όλοι οι Oργανισμοί πρέπει να είναι ήδη υπάρχοντες!</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>Εκκίνηση Εξαγωγής</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>Κατά Οργανισμό</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>Εκκίνηση Εξαγωγής</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Δεδομένα Χρήστη - Εισαγωγή</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>Επιλογή users.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>Εισαγωγή</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Εξαγωγή σε XML Αρχείο. Το Αρχείο αυτό μπορεί να χρησιμοποιηθεί για:&lt;br/&gt; - Συνεισφορά στο Project &lt;br/&gt; - Εισαγωγή σε άλλο Σύστημα&lt;br/&gt; - Αντίγραφο Ασφαλείας &lt;br/&gt; - Εξατομίκευση&lt;br/&gt; - Εισαγωγή στο φάκελο Γλωσσών για επόμενη Εγκατάσταση</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Επιλογή Αρχείου Γλώσσας για Εισαγωγή. &lt;br/&gt;ΠΡΟΣΟΧΗ: Επιλέξτε τη σωστή Γλώσσα από τη λίστα! &lt;br/&gt;Όποιο και να είναι το όνομα του αρχείου&lt;br/&gt;θα εισαχθεί στην επιλεγμένη γλώσσα!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>Εισαγωγή - Επιλογή Αρχείου</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Αποθήκευση ως</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Όνομα:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Σχόλιο:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>Αποθήκευση</value>
+  </string>
+  <string id="395" name="record">
+    <value>Μαγνητοσκοπήσεις</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Προβολέας Μαγνητοσκοπήσεων</value>
+  </string>
+  <string id="397" name="record">
+    <value>Μαγνητοσκοπήσεις Δημοσίων και Ιδιωτικών Δωματίων.</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Χρήστες :</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Συνδεδεμένοι:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Χρήστες σε αυτό το Δωμάτιο:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>Ανανέωση</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>Αυτό το Δωμάτιο είναι πλήρες! Δοκιμάστε ξανά σε μερικά λεπτά.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>Επιλέξτε ένα Δωμάτιο για να δείτε Λεπτομέρειες.</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Συνομιλήστε με τους Χρήστες σε αυτό το Δωμάτιο:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Δωμάτιο:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Χρήστες σε αυτό το Δωμάτιο:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>Από:</value>
+  </string>
+  <string id="409" name="record">
+    <value>Αναπαραγωγή Μαγνητοσκόπησης</value>
+  </string>
+  <string id="410" name="record">
+    <value>Μήκος:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Ημερομηνία:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Λειτουργία Μαγνητοσκόπησης! Δεν μπορείτε να μεταβάλλετε καμία Τιμή. Πρόκειται για ένα μαγνητοσκοπημένο Αρχείο!</value>
+  </string>
+  <string id="413" name="record">
+    <value>Αναπαραγωγή</value>
+  </string>
+  <string id="414" name="record">
+    <value>Αναπαραγωγή / Παύση</value>
+  </string>
+  <string id="415" name="record">
+    <value>Έναρξη Μαγνητοσκόπησης</value>
+  </string>
+  <string id="416" name="record">
+    <value>Λήξη Μαγνητοσκόπησης</value>
+  </string>
+  <string id="417" name="record">
+    <value>Μαγνητοσκόπηση:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>Κάποιος άλλος μαγνητοσκοπεί ήδη αυτή τη στιγμή:</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Μαγνητοσκόπηση! Από τον Χρήστη:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>Ακύρωση</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>Ακύρωση Μαγνητοσκόπησης χωρίς Αποθήκευση!</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>Συνέχεια</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Κλείσιμο Παραθύρου και Συνέχεια Μαγνητοσκόπησης.</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>Αλλαγή Χρώματος Γραμμής</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Επιλογή Χρώματος</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Απενεργοποίηση / Ενεργοποίηση Χρώματος Γραμμής</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>Αλλαγή Χρώματος Γεμίσματος</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Απενεργοποίηση / Ενεργοποίηση Χρώματος Γεμίσματος</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Αλλαγή Πλάτους Γραμμής</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>Κλείσιμο</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>Αλλαγή Μεγέθους Γραμματοσειράς</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Διαγραφή Μαγνητοσκόπησης</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Επισκέπτης</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>Από:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Όνομα</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Δωμάτιο</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Ημερομηνία</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>Ακύρωση</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>Έναρξη</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Όνομα</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Ημερομηνία</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Διαγραφή Chatlog από το Διακομιστή</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Συνομιλία</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>Aποστολή Μηνύματος</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Emoticons</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Emoticons</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Επιλογή Δημοσιευμένων Συσκευών</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Ήχος και Βίντεο</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Ήχος μόνο</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Βίντεο μόνο</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>Χωρίς Ηχό/Βίντεο (Στατική Εικόνα)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>Δεν θα δημοσιεύεται ούτε Ήχος ούτε Βίντεο από το PC σας. Αντί αυτού θα εμφανίζεται η Εικόνα του Προφίλ σας. Επιλέξτε αυτήν τη ρύθμιση αν έχετε προβλήματα με το bandwidth σας ή μια πολύ αργή Σύνδεση Internet.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>ΔΕΥ</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>ΤΡΙ</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>ΤΕΤ</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>ΠΕΜ</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>ΠΑΡ</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>ΣΑΒ</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>ΚΥΡ</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Δευτέρα</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Τρίτη</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Τετάρτη</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Πέμπτη</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Παρασκευή</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Σάββατο</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Κυριακή</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>ΗΕ</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Ημερολογιακή Εβδομάδα</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>Ιανουάριος</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>Φεβρουάριος</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>Μάρτιος</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>Απρίλιος</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>Μάιος</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>Ιούνιος</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>Ιούλιος</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>Αύγουστος</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>Σεπτέμβριος</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>Οκτώβριος</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>Νοέμβριος</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>Δεκέμβριος</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Ημερολόγιο</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Συμμετέχοντες</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Εμφάνιση Ρυθμίσεων Διάταξης</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Πλάτος | Ύψος</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Χώρος Βίντεο</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Χώρος Συντονισμού</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Χώρος Πίνακα</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Ενεργοποιημένος</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Πλάτος | Ύψος</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Χώρος Αρχείων, Συνομιλιών και Συμμετεχόντων</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Ενεργοποιημένος</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Πλάτος | Ύψος</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>Ο Συντονιστής εγκατέλειψε το Δωμάτιο. Κανείς δεν παρουσιάζει αυτήν τη στιγμή. Μπορείτε να κάνετε αίτηση για Συντονισμό ή να περιμένετε.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>Δεν υπάρχει Συντονιστής σε αυτό το Δωμάτιο, αλλά υπάρχουν κάποιοι Συμμετέχοντες. Πρέπει να κάνετε αίτηση για Συντονισμό ή να περιμένετε.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>$APP_NAME - Ανάδραση</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Πρόσκληση</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Μήνυμα από το Χρήστη:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Μήνυμα:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Κάντε κλικ σε αυτόν το Σύνδεσμο για να συμμετάσχετε στις Συναντήσεις:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Κάντε κλικ εδώ για να μπείτε σε κάποιο Δωμάτιο.</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>Αν έχετε προβλήματα με το Σύνδεσμο, παρακαλούμε αντιγράψτε και επικολλήστε αυτό στο Φυλλομετρητή σας:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>Εγγραφή στο $APP_NAME</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Τα Στοιχεία Σας:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Login:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Κωδικός:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>Email:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME - Ομάδα</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME - Εγγραφή Μέλους</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - Αλλαγή Κωδικού</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Κάντε κλικ σε αυτόν το Σύνδεσμο για να εισάγετε έναν νέο Κωδικό:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Κάντε κλικ εδώ για να εισάγετε έναν νέο Κωδικό.</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>Αν έχετε προβλήματα με το Σύνδεσμο, παρακαλούμε αντιγράψτε και επικολλήστε αυτό στο Φυλλομετρητή σας:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME - Αλλαγή Κωδικού</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Παρακαλούμε εισάγετε μια έγκυρη Ημερομηνία, για παράδειγμα: 24.12.2001 (ΗΗ.ΜΜ.ΕΕΕΕ)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Παρακαλούμε εισάγετε ένα έγκυρο Email, για παράδειγμα: name@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Παρακαλούμε εισάγετε έναν πραγματικό Aριθμό, για παράδειγμα: 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Παρακαλούμε εισάγετε έναν ακέραιο Aριθμό, για παράδειγμα: 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Παρακαλούμε εισάγετε έναν έγκυρο Aριθμό Tηλεφώνου, για παράδειγμα: ++30 210 5731230</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Παρακαλούμε εισάγετε μια έγκυρη Ώρα, για παράδειγμα: 12:23 (ΩΩ:ΛΛ)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Προστατευμένο με Κωδικό</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Κωδικός</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Εγκυρότητα</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Απεριόριστη</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Περίοδος</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Μία Φορά</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Έγκυρο Από:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Έγκυρο Έως:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Πρόσκληση στο $APP_NAME</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Δεν υπάρχει διαθέσιμη Πρόσκληση για το συγκεκριμένο Κωδικό!</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>Η Πρόσκληση έχει ήδη χρησιμοποιηθεί! Αυτός ο τύπος Πρόσκλησης δεν μπορεί να χρησιμοποιηθεί ξανά.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>Ο συγκεκριμένος Κωδικός Πρόσκλησης δεν είναι έγκυρος!</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Κωδικός:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Έλεγχος Κωδικού</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Μη Έγκυρος Κωδικός!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Ήχος/Βίντεο</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Συγχρονισμός Ήχου/Βίντεο</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Το login ήταν σωστό, αλλά η Σύνοδος που δοκιμάσατε δεν είναι ενεργή ή δεν είναι αποθηκευμένη στον Διακομιστή. Πρέπει να αποκτήσετε νέο Αριθμό Συνόδου και να δοκιμάσετε να συνδεθείτε ξανά.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>Ο Αριθμός Συνόδου δεν είναι ενεργός ή δεν έχει δικαιώματα Διαχείρισης. Η πύλη SOAP χρειάζεται έναν Χρήστη με Δικαιώματα Διαχείρισης για την ενσωμάτωση νέων Χρηστών.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>Η συγκεκριμένη Σύνοδος δεν έχει συνδεδεμένα Στοιχεία Απομακρυσμένου Χρήστη. Είτε δεν καλέσατε την πύλη SOAP πριν την πρόσβαση στην Εφαρμογή, είτε χρησιμοποιείτε λάθος Αριθμό Συνόδου.</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>Η Συσκευή Εγγραφής είναι σε πειραματικό στάδιο προς το παρόν!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>Άξονας-x</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>Άξονας-y</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>π</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>Πλάτος</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>υ</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>Ύψος</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Αλλαγή Βαθμού Διαφάνειας</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Άνοιγμα Φυλλομετρητή</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Κλείσιμο Φυλλομετρητή</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>Η Σύνδεση με το Διακομιστή χάθηκε. Πρέπει να φορτώσετε ξανά την Εφαρμογή ή/και να ελέγξετε το Δίκτυό σας.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Δείκτης</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Συγχρονισμός</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Συγχρονισμός Χρηστών. Παρακαλούμε περιμένετε.</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Αποθήκευση ως SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Αποθήκευση ως PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Αποθήκευση ως JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Αποθήκευση ως PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Αποθήκευση ως TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Υπενθύμιση:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Κατηγορία:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Επανάληψη:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>Καμία</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Τοποθεσία:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Έναρξη</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>Λήξη</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Τίτλος:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Σχόλιο:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Προσκαλέστε Κόσμο</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Καθημερινά</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Κάθε Μήνα</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Κάθε Έτος</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Η Λήξη μιας Συνάντησης πρέπει να είναι μετά από την Έναρξη της Συνάντησης!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Παρακαλούμε εισάγετε Τίτλο!</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Ενεργοποιήστε αυτό για γλώσσες με διάταξη από τα δεξιά προς τα αριστερά.</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Αρχικό Ταμπλό</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Παρακολουθήστε μαγνητοφωνημένες Συναντήσεις ή Συμβάντα</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Συνάντηση - Συνδιάσκεψη με 4 (έως 16) Χρήστες&lt;br/&gt;Όλοι θα έχουν πρόσβαση σε Ήχο και Βίντεο.</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Συμβάν - Συνδιάσκεψη με έως και 200 συμμετέχοντες&lt;br/&gt;Μόνο ο Συντονιστής θα έχει Ήχο και Βίντεο.</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Δημιουργία Χρηστών, Δωματίων, Οργανισμών&lt;br/&gt; και Αλλαγή Διαμόρφωσης.</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Χρήστες Δωματίου</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Login</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>Δ</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Φόρτωση Εγγράφου. Παρακαλούμε περιμένετε μέχρι να συγχρονιστούν όλοι οι Πελάτες.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Η Φόρτωση Ολοκληρώθηκε. Μετατροπή Εγγράφου ...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Έναρξη Φόρτωσης</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Διάλογος Φόρτωσης και Εισαγωγής: Παρακαλούμε επιλέξτε ένα Αρχείο από το Δίσκο.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Ακύρωση</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Επιλογή Αρχείου</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Συνδέσεις</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Τιμή</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Streamid</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Login</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Συνδεδεμένος Από</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Δωμάτιο / Πλαίσιο</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Αφαίρεση Χρήστη</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Αφαίρεση Χρήστη</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Θέλετε πραγματικά να βγάλετε αυτόν τον Πελάτη από τη Σύνδεση;&lt;br/&gt; Με αυτόν τον τρόπο ο Πελάτης αφαιρείται μόνο από το τρέχον Δωμάτιο και μπορεί να συνδεθεί ξανά.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Η Σύνοδός σας έχει κλείσει από Διαχειριστή ή Συντονιστή.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Τηλέφωνο</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>Ο Χρήστης είναι ο Συντονιστής του συγκεκριμένου Δωματίου!</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>Ο Χρήστης επιτρέπεται να σχεδιάσει πάνω στον Πίνακα.</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Επαν)Εκκίνηση Ήχου/Βίντεο ή Αλλαγή Ρυθμίσεων Συσκευής</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Επιτρέψτε στο Χρήστη να σχεδιάσει πάνω στον Πίνακα</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Αφαιρέστε τη δυνατότητα σχεδίασης πάνω στον Πίνακα</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Χρήστες</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Αρχεία</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Πίνακας</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Συνομιλία</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Ο Λογαριασμός σας αντιστοιχεί σε πολλαπλούς Οργανισμούς. Παρακαλούμε επιλέξτε έναν από αυτούς για τη συγκεκριμένη Σύνοδο.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>Αυτό το Δωμάτιο είναι πλήρες. Παρακαλούμε δοκιμάστε ξανά αργότερα.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Τύπος Δωματίου</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Δωμάτιο Συνάντησης</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Χρόνος Διακομιστή</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - Υπενθύμιση</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Μήνυμα από τον Χρήστη:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Μήνυμα:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Κάντε κλικ σε αυτόν το Σύνδεσμο για να συμμετάσχετε στις Συναντήσεις:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Κάντε κλικ εδώ για να εισέλθετε στο Δωμάτιο</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>Αν έχετε προβλήματα με το Σύνδεσμο, παρακαλούμε αντιγράψτε και επικολλήστε αυτό στο Φυλλομετρητή σας:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>Εσωτερική Αναζήτηση</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>Εξωτερική Προσθήκη</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>Όνομα</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>Επώνυμο</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>Email</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Επιβεβαίωση Αποσύνδεσης</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Θέλετε σίγουρα να αποσυνδεθείτε;</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Ενέργειες</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Δωμάτιο Επιδείξεων</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Χρόνος Επίδειξης</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Χρονόμετρο Συνάντησης</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>Αυτό το Δωμάτιο είναι ένα Δωμάτιο Επιδείξεων. Για να απενεργοποιήθεί αυτή η ειδοποίηση πρέπει να βρείτε ένα Ιδιωτικό Δωμάτιο Συναντήσεων για προσωπική χρήση ή να εγκαταστήσετε Διακομιστή της κυριότητάς σας. Αυτόματη Αποσύνδεση σε:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Υπό Συντονισμό</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Παρακαλούμε περιμένετε μέχρι να εισέλθει στο Δωμάτιο Συντονιστής. ο Συντονιστής μπορεί να είναι κάποιος Δάσκαλος, Διαχειριστής ή ο δημιουργός του Δωματίου.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Εντάξει</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Εισερχόμενη Διαμοίραση Οθόνης</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>Υπάρχει μια νέα εισερχόμενη Διαμοίραση Οθόνης από το Χρήστη:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Έναρξη Διαμοίρασης</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Προσθήκη Νέας Συνάντησης</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Δωμάτιο Συναντήσεων</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Δωμάτιο Συμβάντων</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Συντονισμός</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Συντονισμός Χρηστών</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Συντονισμός Δωματίων</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>Σ</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Θα θέλατε να μετατρέψετε αυτόν το Χρήστη σε Συντονιστή του Οργανισμού;</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Παρακαλούμε επιλέξτε έναν Οργανισμό πριν προσπαθήσετε να προσθέσετε κάποιον Χρήστη σε αυτόν!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Οργανισμός - Συντονιστής</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Θέλετε πραγματικά να διαγράψετε αυτόν το Χρήστη από τον Οργανισμό;</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>Αυτός ο Χρήστης είναι Συντονιστής!</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>Αυτός ο Χρήστης δεν είναι Συντονιστής.</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Θέλετε αυτός ο Χρήστης να μην είναι Συντονιστής του Οργανισμού;</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Προσθέστε ή διαγράψτε Χρήστες/Δωμάτια στον Οργανισμό σας.</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Θέλετε πραγματικά να διαγράψετε αυτήν την Εγγραφή;</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Θέλετε πραγματικά να διαγράψετε αυτόν το Χρήστη από τον Οργανισμό σας; Θα διαγραφεί μόνο η Σύνδεση μεταξύ του Χρήστη και του Οργανισμού. Για να διαγράψετε πραγματικά τον Χρήστη πρέπει να συνδεθείτε στον Πίνακα Διαχείρισης.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>Δεν μπορείτε να διαγράψετε το δικό σας Χρήστη!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>Αυτή η Μέθοδος χρειάζεται Λογαριασμό Διαχειριστή για να εκτελεστεί!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>Δεν υπάρχει Σύνοδος που να σχετίζεται με το συγκεκριμένο Κωδικό Αριθμό (ID).</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>Πρόκειται για Λογαριασμό Διαχειριστή ή Συντονιστή! Η επεξεργασία τέτοιων Λογαριασμών είναι δυνατή μόνο από τον Πίνακα Διαχείρισης.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>Για την ολοκλήρωση της Εγγραφής σας παρακαλούμε κάντε κλικ στον παρακάτω Σύνδεσμο ή αντιγράψτε το URL στην μπάρα του Φυλλομετρητή σας.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Κάντε κλικ για να επιβεβαιώσετε το Email σας.</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Δεν βρέθηκε Xρήστης για τη συγκεκριμένη τιμή Hash.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Αυτός ο Xρήστης έχει ενεργοποιηθεί ήδη!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Ο Λογαριασμός σας ενεργοποιήθηκε με επιτυχία!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Συνδεθείτε Τώρα</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Ο Λογαριασμός σας δεν είναι ενεργοποιημένος! Χρησιμοποιείστε πρώτα το Σύνδεσμο που βρίσκεται στο Email που λάβατε κατά την διάρκεια της Εγγραφής σας.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>Εγγραφήκατε με επιτυχία. Ένα μήνυμα με Επαναληπτικό Κωδικό έχει σταλεί στο Email σας. Παρακαλούμε ελέγξτε το Ταχυδρομείο σας.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Αφαίρεση Συντονιστικού Ρόλου από αυτόν το Χρήστη.</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Παραχώρηση Δικαιωμάτων Συντονισμού σε αυτόν το Χρήστη.</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>Χρήστης</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Πρόσβαση στον Πίνακα</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Συντονιστής</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Συντονισμός: Επιλέξτε κάποιον Χρήστη από τη Λίστα για να του παραχωρήσετε το Συντονισμό και πρόσβαση σε Πίνακα ή Βίντεο.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>Αυτός ο Χρήστης είναι ήδη Συντονιστής, οπότε έχει αυτόματα Δικαιώματα Σχεδίασης.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>Πρόκειται για εσάς! Δεν μπορείτε να αφαιρέσετε δικαιώματα Συντονισμού από τον εαυτό σας.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Επιτρέψτε σε αυτόν τον Χρήστη να Δημοσιεύσει τον Ήχο/Βίντεό του.</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Αφαίρεση Ήχου/Βίντεο του συγκεκριμένου Χρήστη.</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>Θα ήθελα να αναλάβω τον Συντονισμό αυτού του Δωματίου.</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>Θα ήθελα να σχεδιάσω πάνω στον Πίνακα.</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>Θα ήθελα να μοιραστώ τον Ήχο/Βίντεό μου.</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>Είσαστε ο Συντονιστής αυτού του Δωματίου.</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>Μπορείτε να σχεδιάσετε πάνω στον Πίνακα.</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>Μπορείτε να μοιραστείτε τον Ήχο/Βίντεό σας.</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Μήνυμα στο Συντονιστή</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>Ο Χρήστης</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>θα ήθελε να αναλάβει το Συντονισμό. Χρησιμοποιήστε τα Εικονίδια Κατάστασης δίπλα στο Χρήστη (Λίστα Χρηστών) για να αναθέσετε ή να αφαιρέσετε το Συντονισμό.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>θα ήθελε να σχεδιάσει πάνω στον Πίνακα. Χρησιμοποιείστε τα Εικονίδια Κατάστασης δίπλα στο Χρήστη (Λίστα Χρηστών) για να παραχωρήσετε ή να αφαιρέσετε δικαιώματα σχεδίασης πάνω στον Πίνακα.</value>
+  </string>
+  <string id="695" name="695">
+    <value>θα ήθελε να μοιραστεί τον Ήχο/Βίντεό του. Χρησιμοποιείστε τα Εικονίδια Κατάστασης δίπλα στο Χρήστη (Λίστα Χρηστών) για να παραχωρήσετε ή να αφαιρέσετε το δικαίωμα οποιουδήποτε Χρήστη να μοιράζεται Ήχο/Βίντεο.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>Πρέπει να περιμένετε μέχρι να εισέλθει κάποιος Συντονιστής στο Δωμάτιο.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Ακύρωση</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Αποθήκευση</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Ημέρα</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Μήνας</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Έτος</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Φόρτωση Αρχείου</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Προσθήκη Φακέλου</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Ανανέωση</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Σκουπίδια</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>Τα Αρχεία Μου (Home Drive)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Αρχεία Δωματίου (Public Drive)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Προσθήκη Αρχείου</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Προσθήκη Φακέλου</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Διαγραφή Φακέλου</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Επεξεργασία Ονόματος</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>Νέος Φάκελος</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Θέλετε σίγουρα να διαγράψετε το συγκεκριμένο Στοιχείο;</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Αναζήτηση</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Αναζήτηση</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Άνοιγμα Εγγράφου</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Εμφάνιση όλων των Αρχείων (Δενδρική Εικόνα)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Κλείσιμο Εγγράφου</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Διαγραφή Αρχείου</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>Δεν επιτρέπεται να σχεδιάσετε τίποτα πάνω στον Πίνακα. Πρέπει να γίνετε Συντονιστής ή τουλάχιστον να αποκτήσετε δικαιώματα Επεξεργασίας του Πίνακα. Μπορείτε να ζητήσετε από ένα Συντονιστή να σας παραχωρήσει τέτοια δικαιώματα.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Ιδιότητες Εγγράφου</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Έναρξη Πελάτη (external)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Έναρξη Πελάτη (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>Κάποιος Χρήστης θέλει να μοιραστεί την Οθόνη του. Επιθυμείτε να την δείτε?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>Αυτήν τη στιγμή μοιράζεστε την Επιφάνεια Εργασίας σας. Για την διακοπή της Συνόδου Διαμοίρασης παρακαλούμε πατήστε το κουμπί Διακοπής στο Διαμοιραζόμενο Πελάτη.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Σύνοδος Διαμοίρασης</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>Ήδη μοιράζεστε την Επιφάνεια Εργασίας σας!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Προβολή Επιφάνειας Εργασίας</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Έξοδος</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Διαμοιραστής Επιφάνειας Εργασίας</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Πατήστε "Έναρξη Διαμοίρασης" για να δημοσιοποιήσετε την Οθόνη σας.</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Έναρξη Διαμοίρασης</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Τερματισμός Διαμοίρασης</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Επιλογή Περιοχής Οθόνης:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Μεταβολή Πλάτους</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>Ο Διαμοιραστής τερμάτισε την συγκεκριμένη Σύνοδο!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Μεταβολή Ύψους</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>Αρχικό Σημείο-X</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Αρχικό Σημείο-Y</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Πλάτος:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Ύψος:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Η Σύνδεση έκλεισε από τον Διακομιστή!</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Ακύρωση</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Εξωτερική Έναρξη</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>Αν κλείσετε πλήρως αυτήν την Σύνοδο δεν θα μπορείτε να επανεκκινήσετε την προβολή για την συγκεκριμένη Σύνοδο!</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Επιβεβαίωση Τερματισμού Συνόδου Προβολής</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Διαμοίραση Οθόνης</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Σύνοδος Εγγραφής</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Από Κοινού Φυλλομέτρηση</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Λυπούμαστε, ... Ο Firefox στα Windows δεν εμφανίζει καθαρά την Από Κοινού Φυλλομέτρηση (Co-Browsing). Παρακαλούμε χρησιμοποιήστε κάποιον άλλο Φυλομετρητή για να κάνετε χρήση του συγκεκριμένου χαρακτηριστικού.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Προηγούμενο</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Επόμενο</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Επαναφόρτωση</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Αρχική Σελίδα</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Φόρτωση</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Προσθήκη του συγκεκριμένου Website ως Εξ'ορισμού Website στο Προφίλ σας.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Δοκιμή Εγκατάστασης</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Ελέγξτε την εγκατάσταση του Μικροφώνου και της Κάμεράς σας πριν εισέλθετε σε κάποιο Δωμάτιο, μαγνητοσκοπώντας για κάποια δευτερόλεπτα.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Να μην εμφανιστεί αυτός ο έλεγχος ξανά.</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Ακύρωση</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Συνδιάσκεψη</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Να μην ερωτηθώ ξανά.</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>Μπορείτε να συνεχίσετε χωρίς ελέγχους αν δεν σχεδιάζετε να δημοσιοποιήσετε την φωνή ή την εικόνα σας. Οι Συμμετέχοντες χωρίς Ήχο ή Βίντεο μπορούν να κάνουν χρήση του Πίνακα, να μοιράζονται την Επιφάνεια Εργασίας τους ή να γράφουν μηνύματα Συνομιλιών.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="767">
+    <value>Μέτρο Επιπέδου</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Έναρξη</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Έναρξη Συνδιάσκεψης</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Έναρξη Συμβάντος</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Επιλογή Δωματίου</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Έλεγχος</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Έναρξη Συνδιάσκεψης</value>
+  </string>
+  <string id="774" name="start view">
+    <value>Διαδικασία Συνδιάσκεψης:</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Μαγνητοσκόπηση</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Να μην γίνεται Έλεγχος Ήχου/Βίντεο (Μαγνητοσκόπηση) πριν από την είσοδο σε Συνδιάσκεψη.</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Δημόσια Δωμάτια</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Στα Δημόσια Δωμάτια έχουν πρόσβαση όλοι οι Χρήστες.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Ιδιωτικά Δωμάτια</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Στα Ιδιωτικά Δωμάτια έχουν πρόσβαση μόνο οι Χρήστες του ίδιου Οργανισμού.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>Τα Δωμάτιά Μου</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Τα Δωμάτια του συγκεκριμένου τμήματος δημιουργούνται για προσωπική χρήση μέσα από το Ημερολόγιο και διαθέτουν μια αρχική και μια τελική ημερομηνία. Μόνο έγκυρα Δωμάτια εμφανίζονται εδώ.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>Πρέπει να είσαστε Συντονιστής για να πραγματοποιήσετε την συγκεκριμένη ενέργεια.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Αίτηση Συντονισμού</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Αίτηση Πρόσβασης στον Πίνακα</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Αίτηση Πρόσβασης σε Κάμερα/Μικρόφωνο</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>Η συγκεκριμένη τιμή Hash Συνόδου έχει χρησιμοποιηθεί ήδη. Δεν μπορείτε να την χρησιμοποιήσετε ξανά!</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>ΕΝΑΡΞΗ</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>ΕΧΙΤ</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Θέλετε πραγματικά να εγκαταλείψετε την Συνδιάσκεψη; Καλό θα ήταν να καθαρίσετε τον Πίνακα και το Ιστορικό Συνομιλιών και να αφαιρέσετε Έγγραφα που πιθανώς έχουν φορτωθεί.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Έξοδος από την Συνδιάσκεψη</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Δωμάτια</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Επιλέξτε Δωμάτιο για Συνάντηση</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>Υπάρχει κάποιο μη αποθηκευμένο Συμβάν στο Ημερολόγιο. Παρακαλούμε είτε να το αποθηκεύσετε είτε να το αφαιρέσετε.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Παρακαλούμε προσθέστε τουλάχιστον έναν Συμμετέχοντα στην Συνάντησή σας!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Θέλετε πραγματικά να διαγράψετε αυτό το Συμβάν;</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Προειδοποίηση</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Προσθήκη Συμβάντος</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>Μέρα</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>Εβδομάδα</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>Μήνας</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Περιγραφή</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Συμμετέχοντες</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME: Η Πλατφόρμα Σας για Web Συνδιασκέψεις. Μπορείτε να ακολουθήσετε τις Οδηγίες, να πατήσετε το κουμπί Έναρξης και να ξεκινήσετε αμέσως μια Συνδιάσκεψη ή να μετα-φερθείτε στο Ημερολόγιο και να προγραμματίσετε μια Συνδιάσκεψη για το μέλλον.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Σχέδιο Συνάντησης</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>Για να προγραμματίσετε μια Συνδιάσκεψη μπορείτε να προσθέσετε ένα νέο Συμβάν στο Ημερολόγιο. Για κάθε Συμβάν του Ημερολογίου δημιουργείται αυτόματα ένα Δωμάτιο Συνδιασκέψεων. Εσείς, μάζι με όλους τους Συμμετέχοντες στην Συνδιάσκεψη, θα λάβετε ένα mail με σύνδεσμο στο συγκεκριμένο Δωμάτιο.&lt;br/&gt;&lt;br/&gt;Μπορείτε να επιλέξετε μεταξύ διαφορετικών τύπων Δωματίων που έχουν διαφορετικές διατάξεις και διαφορετικά συστήματα Συντονισμού. Μπορείτε επίσης να επιλέξετε μεταξύ διαφορετικών τύπων Ειδοποίησης για το mail που θα σταλεί για κάθε Συμβάν του Ημερολογίου.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Χρειάζεστε Βοήθεια;</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Περιορισμένη</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Αναζήτηση</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Προσθήκη</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>Δεν έχει επιλεγεί Χρήστης! Παρακαλούμε επιλέξτε πρώτα ένα στοιχείο από τη λίστα και έπειτα πατήστε "Προσθήκη".</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Προσθήκη Συμμετέχοντα</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Αποθήκευση</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Διαγραφή</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Λεπτομέρειες Συμβάντος</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Εξ Oρισμού Συντονιστές</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Ανώτερος</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Όνομα</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>Email</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Προσθήκη Νέου Εξ Oρισμού Συντονιστή</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Είναι Ανώτερος Συντονιστής</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>Αν το Δωμάτιο είναι συντονιζόμενο, οι Χρήστες επιπέδου Συντονιστή ή Διαχειριστή γίνονται αυτόματα Συντονιστές όταν εισέλθουν στο Δωμάτιο. Αν θέλετε μόνο κάποιος συγκεκριμένος Χρήστης να γίνει Συντονιστής χρησιμοποιήστε την επιλογή Εξ Ορισμού Συντονιστή.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>Ένας Ανώτερος Συντονιστής είναι πάντα Συντονιστής όταν εισέρχεται σε κάποιο Δωμάτιο και κανείς δεν μπορεί να αφαιρέσει το Σήμα Συντονισμού από αυτόν.</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Εφαρμογή Ανώτερου Συντονισμού σε Χρήστη</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Αφαίρεση Ανώτερου Συντονισμού από Χρήστη</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>Δ</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>Με την προσθήκη ενός Οργανισμού σε ένα Δωμάτιο, μόνο οι Χρήστες που ανήκουν στον συγκεκριμένο Οργανισμό έχουν πρόσβαση στο συγκεκριμένο δωμάτιο (Αυτό ισχύει μόνο όταν η τιμή "Δημόσιο" είναι ίση με false!).</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Συντονισμός</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Περιορισμοί</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Οργανισμός</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Είστε σίγουρος;</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Θέλετε πραγματικά να διαγράψετε το συγκεκριμένο Στοιχείο; Πρέπει να πατήσετε το κουμπί αποθήκευσης για να αποθηκευτούν οι αλλαγές!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>Δεν έχει επιλεγεί κάποιος Χρήστης! Παρακαλούμε επιλέξτε πρώτα έναν Χρήστη και μετά κάντε προσθήκη.</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Προσθήκη Νέου Εξ Ορισμού Συντονιστή</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Επιθυμείτε να προσθέσετε το Σήμα Ανώτερου Συντονισμού σε αυτόν τον Χρήστη; Ένας Ανώτερος Συντονιστής δεν είναι μόνο Συντονιστής κάποιου Δωματίου. Επιπλέον, κανένας άλλος Συντονιστής δεν μπορεί να αφαιρέσει το Σήμα Συντονισμού από αυτόν. Πρέπει να αποθηκεύσετε το Αντικείμενο Δωματίου για την αποθήκευση των συγκεκριμένων ρυθμίσεων!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Επιθυμείτε να αφαιρέσετε το Σήμα Ανώτερου Συντονισμού από αυτόν τον Χρήστη; Πρέπει να αποθηκεύσετε το Αντικείμενο Δωματίου για την αποθήκευση των συγκεκριμένων ρυθμίσεων!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>Αυτός ο Χρήστης είναι Ανώτερος Συντονιστής! Δεν μπορείτε να αφαιρέσετε το Σήμα Συντονισμού από έναν Ανώτερο Συντονιστή!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Θέλετε πραγματικά να διαγράψετε το συγκεκριμένο Αρχείο/Φάκελο;</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Διαγραφή Αρχείου/Φακέλου;</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Δις.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Δρ.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Ιδιότητες</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Εμφάνιση θέσης ποντικιού στους θεατές</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Share Audio with SIP Applet</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Share Audio with SIP and Video with Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Full-Fit</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>View Screen</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>The user</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>wants to share its screen. Do you want to see it?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Close</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>The Session was closed by the sharing User!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>New Screen Sharing</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimize</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximize</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Recording Timeline</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>My Recordings</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Public Recordings</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Name</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Length</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Date</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>By</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>PLAY</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Main - Video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Recording</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>You may record and share your screen at the same time. To enable others to see your screen just hit the start button on the top. To only record the Session it is sufficient to click start recording.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Start Recording</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Stop Recording</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download the FLV-File</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Room</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Play</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>User has microphone on</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Allow User Questions</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Turn this off to prevent that any user is disturbing you in this room. Effect is that the Button to ask for Moderation ("I have a question") is not visible.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rights</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Download as AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Audio only</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>The have been errors while processing the Recording.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>The Recording is not yet ready for watching. Please retry in a couple of minutes again.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Recorder Message</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP Applet is not Ready</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP-Account Settings</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP settings for each user. You can turn on or off SIP via the Administration &gt; Configuration (Key: enable_sip). The SIP data for each user should be created automatically. You can re-create the data by checking "Re-generate SIP Data"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-User</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Pass</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. You should check the authentification data of your SIP-Provider and the SIP-Account Data for each User. As Administrator you are still able to login and check the Configuration. As User or Moderator you will be blocked from any interaction.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. Contact your Service Team!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Show Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log messages from post recorder process</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Applet Message</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>The SIP-Applet is not ready. Accept the Applet please and click ok!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Get Moderation</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Save Appointment Changes</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointement has been changed. Do you want to save those changes? &lt;br/&gt;&lt;br/&gt;All attendees of the appointment will receive a EMail with the updated date and time (depending on the notification type of this appointment).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>To access other recordings you have to login the $APP_NAME Application.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Choose the User for this Video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available Users for this Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>You are a Moderator in this Interview. You can decide who is speaking in this interview and you can start / stop the recording of the Session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Start Recording</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Stop Recording</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>The recording of the Interview is already started.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>The recording is already stopped or not been started yet.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>The recording for this interview is already started!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Clear objects on current slide only!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the Status bar is send to participants!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make Team-Rooms [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new Team-Room!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new Conference Room ("Team Room") for them. The chosen users will automatically switch to the new Team-Room or get a notification. Team-Room Moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a Moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Username</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new Team-Room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create Team-Room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the Team-Room!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from Team-Room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Roomtype</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the System. The Backup includes all User generated data. The configuration is not included as well as the language labels. Because those values are imported with the System Installer. To update your System, export your old system (1) re-install into a new database the new package (2) and import the Backup file again (3). The Backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share Screen/Record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is Moderator, he can do anything!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/Deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose "Insert" from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about Copy and Paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Kick user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/hebrew.xml b/src/main/webapp/languages/hebrew.xml
new file mode 100644
index 0000000..f2cda78
--- /dev/null
+++ b/src/main/webapp/languages/hebrew.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Conference</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Meeting</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Events</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Settings</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Profile</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Administration</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Stop</value>
+  </string>
+  <string id="8" name="record">
+    <value>Record</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>No file available</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Record by Teacher</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Connected users:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Start a conference</value>
+  </string>
+  <string id="13" name="myname">
+    <value>My Name</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>VideoConference</value>
+  </string>
+  <string id="15" name="import">
+    <value>File Upload</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Refresh list</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>To Main File</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>new poll</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>A new poll for the conference.</value>
+  </string>
+  <string id="20" name="question">
+    <value>Question:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Type of poll:</value>
+  </string>
+  <string id="22" name="create">
+    <value>Create</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Info: Each connected user receives a message with the new poll.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Create a poll</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Cancel</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Yes/No</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Numeric 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Poll</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Must be Moderator to create an question</value>
+  </string>
+  <string id="30" name="vote">
+    <value>Your vote is registered.</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Your have already voted in this poll.</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Vote !</value>
+  </string>
+  <string id="33" name="answer">
+    <value>Your response:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Yes</value>
+  </string>
+  <string id="35" name="no">
+    <value>No</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>wants to know:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Poll results</value>
+  </string>
+  <string id="38" name="question">
+    <value>Question:</value>
+  </string>
+  <string id="39" name="results">
+    <value>Results:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Answers:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>No polls have been started.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Vote!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Meeting (max 4 seats)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Conference (max 50 seats)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Type</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Other seats</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Already chosen</value>
+  </string>
+  <string id="48" name="enter">
+    <value>enter</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>The moderator has left the meeting.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>System information</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Choose device</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Choose webcam:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Choose micro:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>ok</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>Cancel</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>You need to reconnect.</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Edit setup.</value>
+  </string>
+  <string id="58" name="course">
+    <value>Course:</value>
+  </string>
+  <string id="59" name="language">
+    <value>Language:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>ok</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>Cancel</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Clear whiteboard</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Do you want that the whiteboard to be emptied before a new picture is added?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>Don't ask again</value>
+  </string>
+  <string id="65" name="no">
+    <value>no</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Edit setup</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Confirmation request before emptying the whiteboard.</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>User Info</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Clear Whiteboard</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Undo</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Redo</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Select an Object</value>
+  </string>
+  <string id="73" name="text">
+    <value>Text</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Paint</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Draw Line</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Draw Underline</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Rectangle</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Ellipse</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Arrow</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>Delete</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Apply for moderation</value>
+  </string>
+  <string id="82" name="apply">
+    <value>Apply</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>Cancel</value>
+  </string>
+  <string id="84" name="mod">
+    <value>I have a question</value>
+  </string>
+  <string id="85" name="close">
+    <value>Close</value>
+  </string>
+  <string id="86" name="italic">
+    <value>italic</value>
+  </string>
+  <string id="87" name="bold">
+    <value>bold</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>WAITING</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>A User wants to apply for moderation, you can either grant him only access to the whiteboard or completely switch the moderation role. User:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>Accept</value>
+  </string>
+  <string id="91" name="reject">
+    <value>Reject</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>Cancel</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Sending request to following Users</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Accepted</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Rejected</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Change Moderator</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>You are not moderating this course!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Moderator:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>This Room is full. Sorry please try again later.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Ellipse</value>
+  </string>
+  <string id="101" name="close">
+    <value>Close</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>input data error</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>4 or more characters; capitalization matters!</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>userpass must be at least 4 characters</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>The username is already taken</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>The email is already registered</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>System error please contact System-Admins</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Login</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>User or EMail:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Pass:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Language</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Sign In</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Sign Up</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>User:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Pass:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>ReType:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Firstname:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Lastname:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>Mail:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>Country:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Register</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>Cancel</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Not a member?</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>Home</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>משתמשים</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Groups</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Organisations</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Meeting-Rooms</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>public</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>Organisation</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>Enter</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Login</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Password</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Retype</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Firstname</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Lastname</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>Mail</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Birthday</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Street/No</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>ZIP/Town</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>Country</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Adress-Info</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Userdata</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>Save</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Save</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>USER-ID</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>Login</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>Firstname</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>Lastname</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>Show next</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>Show pre</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>Delete record</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>Cancel</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>Delete</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>New record</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>Refresh record</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>Delete record</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>Status</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>disabled</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>enabled</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>Organisations</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>Calendar</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>Close</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>Organisation-ID</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>Name</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>User</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>Moderator</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>Admin</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>Userlevel</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>Organisation</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>name</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>Add organisation</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>Add organisation</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>Cancel</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>Add</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>Remove Organisation</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>User</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>Add user</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>Delete user</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>Add user to Organization</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>Search user</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>Search</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>User</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>Organisation</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>Enter</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Conferencerooms</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Conferencerooms</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>ID</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Name</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>public</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>Organisations</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Meetingrooms</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>Name</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>Type</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>Public</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>Comment</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>Save and Export</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>load</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>Save As</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>Filename</value>
+  </string>
+  <string id="201" name="files">
+    <value>קבצים</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>Cancel</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>Save</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>Error</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>Loading</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>Objects loaded</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>Synchronizing, Users to wait:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Loading Imagedata</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>Synchronizing, Users to wait:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>Clear Whiteboard</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>Clear Whiteboard, all data on Whiteboard will be lost</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Confirm before loading a file</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Send invitation</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Send invitation</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Subject</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Recipient</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Message</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Send</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>cancel</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>send</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Userdata</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>Your nickname for this conference</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>Nick</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>Firstname</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>Lastname</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>Email</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>Language</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>enter</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Loading</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Data loading, please wait!</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Wrong Password</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Please enter two identical passwords with at least 6 characters</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Wrong Mail</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>You have entered an invalid Mail-Adress</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>Registration Complete</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Your account has been created. You can login now.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>You cannot share your screen at the moment. Somebody else already share's its screen.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Sharing forbidden</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Share/Record Screen</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Bad Bandwidth: You have not been able to syncronize the Screen. Frames will be dropped. If this Warning is shown often you could ask the moderator to reduce the Quality.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Screen of:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Paint</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Document</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Chat</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>קבצים</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Members</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Download original document</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>Download pdf document</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Load Presentation to whiteboard</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Configuration</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Drag this Object</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Resize this Object</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>of</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>Go to first Page</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>Go to previous Page</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>Go to next Page</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>Go to last Page</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Zoom --</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Zoom ++</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Mr.</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Ms.</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Configuration</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Key</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Configuration</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Key</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>last update</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>updatedby</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>comment</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>Value</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>of</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>משתמשים</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>delete user from organisation</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>D</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>This user is already member of this organisation.</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>News</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Quicklinks</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Goto Conference</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Goto Auditorium</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Help and Support</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Report a bug!</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>more</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Project Webside (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>User Mailing List (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Remember Login</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Content</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>My Home Page</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>My Scheduled Meetings</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>My Scheduled Events</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Public Meetings</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Private Meetings</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Public Events</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Private Events</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Public Content</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Private Content</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Personal Content</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Moderation</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>I have a question</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Polls</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Choose a file</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Settings</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Cam and Mic Settings</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Whiteboard Settings</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Exit</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Back to Rooms</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Logout</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Forgot your password?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Reset Password</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>By Mail</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>By Login</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>Your Mail</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Your Login</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Send Mail with reset Link</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>No such email address was found. Make sure you enter the same email address you used to create your account.</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Please enter either a Mail or a Username</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>There is no User connected to this Username</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>The email containing a special link has been sent to your email address, please check your mailbox. If you still have not received a email, please adjust your email spam settings and resend confirmation email.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Error</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Message</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Invalid Hash. No User found.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Reset Your Password</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Login</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>change Password</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>new Password</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>re-enter Password</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>The Passwords you entered weren't identical.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>4 or more characters; capitalization matters!</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Password set. You can login now.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Unkown Error. Please report this to your Service-Team.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Username not found</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Invalid Password</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Successfully Logged out</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Frontend Registration disabled.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>Invalid EMail</value>
+  </string>
+  <string id="340" name="registration">
+    <value>duplicate filename, please choose another filename</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>filename too short</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Could not save Address</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>User added but you need to assign this User to an Organisation, otherwise he won't be able to sign-in.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>New Record</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>No Field found with this FieldId.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>No Label found for that Field.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Admin Authorization required</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Language-Editor</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Language</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>Label-ID</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Label-Name</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Value</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Fieldvalues</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>LabelName</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>LabelValue</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>Label-ID</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>You did only delete the Label NOT the Field! You cannot delete the Field, it may has Labels in other Languages.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>Invalid Labelid. The FieldLanguagesvalues_Id cannot be found in the database.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>You cannot delete this Field. You can only delete Labels NOT Fields. There is no Label loaded at the moment, wether it is not selected any Field or there is no Label for this Language for that Field defined.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>export</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>You need to logout to see any changes.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Add new language</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>delete language</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Add new language</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Name</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>add language</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Backup</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>goto first</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>goto previous</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>goto next</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>goto last</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>user speaks (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>turn sound on/off</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>System</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Your Settings</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>hi,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Edit your profile</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>New Messages:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Upload new Image</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Userdata - Export</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>All organisations must be already existing!</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>start export</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>By organisation</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>start export</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Userdata - Import</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>choose users.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>import</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Export to XML - These files can be used to:&lt;br/&gt; - Contribute to the project - Import into another System&lt;br/&gt; - Backup - Customization&lt;br/&gt; - Put it into the language-directory for your next installation</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Choose a language file to import. &lt;br/&gt;Choose the right Langauge from the Combobox! &lt;br/&gt;No matter what the name of the file is, &lt;br/&gt;it will be imported into this language!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>import - choose file</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Save as</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Name:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Comment:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>save</value>
+  </string>
+  <string id="395" name="record">
+    <value>Recordings</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Recordings Viewer</value>
+  </string>
+  <string id="397" name="record">
+    <value>Recordings of public and private Rooms</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>משתמשים :</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Joined:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Users in this Room:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>refresh</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>This Room is Full. Try again in a few minutes.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>click on a room to get details</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Chat with the users in this Room:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Room:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Users in this room:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>since:</value>
+  </string>
+  <string id="409" name="record">
+    <value>play recording</value>
+  </string>
+  <string id="410" name="record">
+    <value>Length:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Date:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Recorder Mode! You cannot change any values, this is a recorded File!</value>
+  </string>
+  <string id="413" name="record">
+    <value>Play this recording</value>
+  </string>
+  <string id="414" name="record">
+    <value>Play / Pause</value>
+  </string>
+  <string id="415" name="record">
+    <value>Record this Meeting</value>
+  </string>
+  <string id="416" name="record">
+    <value>stop recording</value>
+  </string>
+  <string id="417" name="record">
+    <value>Recording:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>There is already somebody recording in this meeting!</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Recording! By User:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>cancel</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>Recording will be canceled and not saved.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>resume</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Close this window and resume recording</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>change Linecolor</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Choose Color</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Disable / Enable Linecolor</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>change Fillcolor</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Disable / Enable Fillcolor</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Change Linewidth</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>Close</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>change Fontsize</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Delete Recording</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Guest</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>By:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Name</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Room</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Date</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>cancel</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>start</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Name</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Date</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Delete Server-Chatlog</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Chat</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>send message</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Emoticons</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Emoticons</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Choose Published Devices</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Audio and Video</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Audio only</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Video only</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>no Audio/Video (static Image)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>No Audio/Video from your PC will be published, instead of that a picture from your profile will be shown. Choose these settings if you have problems with your bandwidth or a very slow Internet connection.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>MO</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>TU</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>WE</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>TH</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>FR</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>SA</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>SU</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Monday</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Tuesday</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Wednesday</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Thursday</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Friday</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Saturday</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Sunday</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>CW</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Calendar week</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>January</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>February</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>March</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>April</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>May</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>June</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>July</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>August</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>September</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>October</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>November</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>December</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Calendar</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Participants</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Show Layout Settings</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Width | Height</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Video-Container</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Moderation-Container</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Whiteboard-Container</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Enabled</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Width | Height</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Files,Chat,Participants - Container</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Enabled</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Width | Height</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>The Moderator has left the Room. No one is presenting at the Moment. You could apply for Moderation or wait.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>There is no Moderator in this Room, but there are some Participants. You have to apply for Moderation or wait.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Feedback $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Invitation</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Message from User:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Message:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Click this link to participate in the Meetings:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Click here to enter room</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>if you have problems with the link, please copy and paste this to your browser:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME SignUp</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Your userdata:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Login:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Pass:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>EMail:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME-Team</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME Sign-Up</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - Reset Password</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Click on this link to enter a new password:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Click here to enter a new Password</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>if you have problems with the link, please copy and paste this to your browser:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME Password Reset</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Please enter a valid Date, for example 24.12.2001 (dd.mm.yyyy)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Please enter a valid EMail, for example name@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Please enter a Float-Number, for example 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Please enter a Number (Integer), for example 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Please enter a valid Phone number, for example ++49 0123 123123</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Please enter a valid time, for example 12:23 (hh:mm)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Password protected</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Password</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Validity period</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Endless</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Period</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>One-Time</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Valid From:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Valid to:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Invitation To $APP_NAME</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Not Invitation availible for this Invitation-Code</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>The Invitation was already used. This type of Invitation cannot be re-used.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>This Invitation-Code is not valid.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Password:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Check Password</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Invalid Password!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Audio_Video</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Syncronize Audio/Video</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Login was correct, but the Session you tried is not active or stored on the Server. You have to get a new SessionId and retry login.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>The SessionId is not loggedin or has no Admin rights. The SOAP Gateway needs an User with Admin-Rights to embed new Users.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>This Session has no Remoteuser-Data connected. Wether you did not call the SOAP-Gateway before accessing the Application or you are usnig a wrong Session-ID</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>The recorder is currently Beta!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>x-axis</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>y-axis</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>w</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>width</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>h</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>height</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Change Transparency</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Browser Open</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Browser Close</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>The Connection to the Server is lost. You need to reload the Application or/and check your Network.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Pointer</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Synchronizing</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Synchronizing, please wait</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Download as SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Download as PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Download as JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Download as PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Download as TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Reminder:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Category:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Repetition:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>none</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Location:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Start</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>End</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Title:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Comment:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Invite People</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Daily</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Monthly</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Yearly</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Appointment-end is after of appointment-start!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Please insert a title!</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Activate this if you write in a right to left language (inverse word order)</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Dashboard</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Watch recorded Meetings or Events</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Meeting - Make a conference with 4 (up to 16) Users&lt;br/&gt;everybody will have audio + video access</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Event - Make a conference with up to 200 participents&lt;br/&gt;Only the Moderator will have audio/video</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Create users, rooms, organizations&lt;br/&gt; + change configuration</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Users in this Room now</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Login</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Loading Document. Please wait untill all Client have been synchronized.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Upload complete, converting Document ...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Start Upload</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Upload and Import Dialog. Please select a File from your Disk.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Cancel</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Select File</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Connections</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Value</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Streamid</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Login</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Connected since</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Room / Scope</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Kick User</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Kick User</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Do you really want to kick this Client from the Connection?&lt;br/&gt; This does only remove the Client from the current Room.The Client could re-login again.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Your session has been closed by an Administrator or Moderator.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Phone</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>User is the Moderator of this Room</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>User is allowed to draw on the Whiteboard</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Re) Start Audio/Video or change Device Settings</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Allow this User to draw on the Whiteboard</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Remove ability to draw on whiteboard</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>משתמשים</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>קבצים</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Whiteboard</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Chat</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Your account is assigned to multiple Organizations. Please choose one for this Session.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>This room is full at the moment. Please try again later.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Room Type</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Appointment Room</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Server Time</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - Reminder</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Message from User:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Message:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Click this link to participate in the Meetings:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Click here to enter room</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>if you have problems with the link, please copy and paste this to your browser:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>search intern</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>Add external</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>Firstname</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>Lastname</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>E-Mail</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Confirm logout</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Are you sure you want to logout now?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Actions</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Demo Room</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Demo Time</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Meeting Timer</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>This Room is a Demo Room. To disable this warning you either should get a private meeting room for your personal usage or set up an own Server. You will be automatically logged off in:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Moderated</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Please wait untill the Moderator has entered the Room. The Moderator can be either a Teacher, Admin or the creator of this Room.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Ok</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Incoming Screen Sharing</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>There is a new Screen Sharing incoming from the User:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Start Sharing</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Add new Meeting</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Meeting Room</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Event Room</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderation</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Moderate Users</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Moderate Rooms</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Do you want to change this User to become a Moderator of that Organization?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Please choose an Organization before you try to add a User to it!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organization - Moderator</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Do you really want to delete this User from the Organization?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>This User is Moderator</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>This User is No-Moderator</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Do you want this User to be not a Moderator of this Organization?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Add or delete Users or Rooms within your Organization</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Do you really want to delete this record?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Do you really want to delete this user from your organization? You will only delete the connection between the user and your organization, to really delete the user himself you have to login into the Administration-Panel.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>You cannot delete your own User!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>This Method needs an Adminstration Account to be invoked!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>There was no Session associated with this ID.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>This is an Administrator or Moderator account. You can only edit this account through the Administration Panel.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>To complete your registration please click on the following link. Or copy the URL to your browser bar.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Click to verify your E-Mail</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>No user was found for this Hash.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>This user is already activated!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>You did successfully activate your account!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Login Now</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Your account is not activated. First use the link in the Email you've received during registration.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>You successfully signed up. We've send an EMail with a verification Code to your Mail. Please check your Inbox.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Remove Moderation Role from this User</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Grant Moderation Rights to this User</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>User</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Access to whiteboard</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderator</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Moderation: Please choose any User on the List to grant him access to the Whiteboard, Moderation or Video.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>This User is already Moderator, so he has automatically the right to draw.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>This is you! You cannot remove the Moderation rights from yourself.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Allow this User to Publish his Audio / Video</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Remove Audio/Video of this User</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>I have a question</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>I would like to draw on whiteboard</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>I would like to share my Audio/Video</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>You are moderator of this room</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>You are allowed to draw on whiteboard</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>You are allowed to share your Audio/Video</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Message to Moderator</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>The User</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>would like to ask a question.&lt;br/&gt;&lt;br/&gt; &lt;i&gt;(Use the status Icons next to the user in the List of Users to add or remove the Moderation.)&lt;7i&gt;</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>would like to draw on whiteboard. Use the status Icons next to the user in the List of Users to add or remove the right to draw anything on the whiteboard.</value>
+  </string>
+  <string id="695" name="695">
+    <value>would like to share his Audio/Video. Use the status Icons next to the user in the List of Users to add or remove the right to share Audio/Video for any User.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>You have to wait until a Moderator enters the room.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Cancel</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Save</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Day</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Month</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Year</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Upload File</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Refresh</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Trash (Drag and Drop item here)</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>My Files (Home Drive)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Room Files (Public Drive)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Add File</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Delete Folder</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Edit Name</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>New Folder</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Are you sure you want to delete this Item?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Open Document</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Show all Files (Tree View)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Close Document</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Delete File</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>You are not allowed to draw anything on the Whiteboard. You have to become Moderator or at least get the Right to edit Whiteboard. You may ask a Moderator to give you that right.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Document Properties</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Start Java</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Start Flash</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>A user want to share his screen. Do you want to see it?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>You are currently sharing your Desktop. For stopping the Sharing Session please hit the Stop button in the Sharing Client.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Sharing Session</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>You are already sharing your desktop!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Desktop Viewer</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Desktop Sharer</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Click Start to publish your screen</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Start Sharing</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Pause Sharing</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Select your screen area:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Change width</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>The Sharer has finished this session!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Change height</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-Offset</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-Offset</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Width:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Height:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Connection was closed by Server</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Cancel</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Start Java</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>If you close this session completely you are not able to restart the viewer for this session.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Confirm Closing Viewer Session</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Share Screen</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Record Session</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Co-Browsing</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Ooops, ... Firefox on Windows does not show clear Co-Browsing. Please use another Browser for using the Co-Browsing feature.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Previous</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Next</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Reload</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Home</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Load</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Add this website as Default website to your Profile.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Test Setup</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Use Audio or Video setup before you enter a room by recording for a few seconds. You can then replay your recording to check your voice and picture.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Don't show this test anymore</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Cancel</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Start Conference</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Do not ask again</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>You may proceed without testing if you do not plan to publish your voice or picture. Participants without Audio or Video can still use the Whiteboard, share their Desktop or write Chat messages.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="767">
+    <value>Level-Meter</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Press Start</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Start Event</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Choose Room</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Check Setup</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="774" name="start view">
+    <value>How to conference</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Start Recording</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Do not show Audio / Video Test (Recording) before entering a Conference</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Public Rooms</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Public Rooms are accessible for all Users.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Private Rooms</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Private Rooms are only accessible for users of the same organization.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>My Rooms</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Rooms in this section are created for personal usage. They are created through the calendar and have a start and a end date. They are only listed in this section as long as they are valid.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>You have to be moderator to do this.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Apply for moderation</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Apply for whiteboard access</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Apply for camera/microphone access</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>This Session Hash was already used. You cannot use it twice.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>START</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>יציאה</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Do you really want to exit? You might should clear uploaded documents, whiteboard and the chat history.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Exit conference</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Rooms</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Choose a room for a meeting</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>There is an unsaved Event in the Calendar. Please either save it or remove it.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Please add at least one attendee for your meeting!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Do you really want to delete this Event?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Warning</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Add Event</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>Day</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>Week</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>Month</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Description</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Attendees</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, your Web Conferencing Platform. Either follow the Instructions, press the start button to start to conference immediatelly or you goto the Calendar and set up a Conference for the future.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Plan a Meeting</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>To set up a conference you can add a new Event in the Calendar.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Need help?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Restricted</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Search</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Add</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>There is no User selected. Please select an item from the list first and then hit add.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Add Attendee</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Save</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Delete</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Event Details</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Default Moderators</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Name</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>E-Mail</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Add new default Moderator</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Is Super Moderator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>If the Room is moderated, User with Level Moderator or Administrator are automatically Moderator if they enter the Room. If you don't want to specify that and only want a certain User to become Moderator use the Default Moderator option.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>A Super Moderator is always a Moderator when he enters a Room, and nobody can remove the Moderation Flag from him</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Apply Super-Moderation to User</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Remove Super Moderation from User</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>If you add an Organization to the room only users of that Organization have access to it (This is only valid if the isPublic flag is set to false!)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderation</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitations</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organization</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Are you sure?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Do you really want to delete this Item? You have to press the save button to store the changes!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>There is no User selected. Please select first before you add it!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Add new Default Moderator</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Do you want to add the Super Moderation Flag for this User? A Super Moderator is not only Moderator of a Room, but also no other Moderator can remove the Moderation Flag for this User. You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Do you want to remove the Super Moderation Flag for this User? You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>This User is a Super-Moderator. You cannot remove the Moderation flag from a Super-Moderator!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Do you really want to delete this File/Folder?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Delete File/Folder?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Mrs.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Properties</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Show mouse position to viewers</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Share Audio with SIP Applet</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Share Audio with SIP and Video with Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Full-Fit</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>View Screen</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>The user</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>wants to share its screen. Do you want to see it?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Close</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>The Session was closed by the sharing User!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>New Screen Sharing</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimize</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximize</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Recording Timeline</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>My Recordings</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Public Recordings</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Name</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Length</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Date</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>By</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>Download</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Main - Video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Recording</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>You may record and share your screen at the same time. To enable others to see your screen just hit the start button on the top. To only record the Session it is sufficient to click start recording.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Start Recording</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Stop Recording</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download the FLV-File</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Room</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Play</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>User has microphone on</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Allow User Questions</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Turn this off to prevent that any user is disturbing you in this room. Effect is that the Button to ask for Moderation ("I have a question") is not visible.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rights</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Download as AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Audio only</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>The have been errors while processing the Recording.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>The Recording is not yet ready for watching. Please retry in a couple of minutes again.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Recorder Message</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP Applet is not Ready</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP-Account Settings</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP settings for each user. You can turn on or off SIP via the Administration &gt; Configuration (Key: enable_sip). The SIP data for each user should be created automatically. You can re-create the data by checking "Re-generate SIP Data"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-User</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Pass</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. You should check the authentification data of your SIP-Provider and the SIP-Account Data for each User. As Administrator you are still able to login and check the Configuration. As User or Moderator you will be blocked from any interaction.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. Contact your Service Team!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Show Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log messages from post recorder process</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Applet Message</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>The SIP-Applet is not ready. Accept the Applet please and click ok!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Get Moderation</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Save Appointment Changes</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointement has been changed. Do you want to save those changes? &lt;br/&gt;&lt;br/&gt;All attendees of the appointment will receive a EMail with the updated date and time (depending on the notification type of this appointment).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>To access other recordings you have to login the $APP_NAME Application.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Choose the User for this Video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available Users for this Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>You are a Moderator in this Interview. You can decide who is speaking in this interview and you can start / stop the recording of the Session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Start Recording</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Stop Recording</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>The recording of the Interview is already started.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>The recording is already stopped or not been started yet.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>The recording for this interview is already started!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Clear objects on current slide only!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the Status bar is send to participants!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make Team-Rooms [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new Team-Room!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new Conference Room ("Team Room") for them. The chosen users will automatically switch to the new Team-Room or get a notification. Team-Room Moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a Moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Username</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new Team-Room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create Team-Room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the Team-Room!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from Team-Room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Roomtype</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the System. The Backup includes all User generated data. The configuration is not included as well as the language labels. Because those values are imported with the System Installer. To update your System, export your old system (1) re-install into a new database the new package (2) and import the Backup file again (3). The Backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share Screen/Record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is Moderator, he can do anything!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/Deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose "Insert" from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about Copy and Paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Kick user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/hungarian.xml b/src/main/webapp/languages/hungarian.xml
new file mode 100644
index 0000000..75ff81b
--- /dev/null
+++ b/src/main/webapp/languages/hungarian.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Konferencia</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Találkozó</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Előadás</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Beállítások</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Beállítások</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Adminisztráció</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Állj</value>
+  </string>
+  <string id="8" name="record">
+    <value>Felvétel</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>Nincs elérhető fájl</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Felvétel az előadónál</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Csatlakozott felhasználók:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Konferencia indítása</value>
+  </string>
+  <string id="13" name="myname">
+    <value>Nevem</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>VideoKonferencia</value>
+  </string>
+  <string id="15" name="import">
+    <value>Fájl feltöltés</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Lista frissítése</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>Filejaim</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>új szavazás</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>Új szavazás a konferencián.</value>
+  </string>
+  <string id="20" name="question">
+    <value>Kérdés:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>A szavazás típusa:</value>
+  </string>
+  <string id="22" name="create">
+    <value>Létrehoz</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Infó: Minden bejelentkezett felhasználó értesül az új szavazásról.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Szavazás létrehozása</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Mégse</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Igen/Nem</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Szám 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Szavazás</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Előadónak kell lenned, hogy feltehess kérdést</value>
+  </string>
+  <string id="30" name="vote">
+    <value>A szavazatot elfogadtuk.</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Erre a kérdésre már szavaztál.</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Szavazz !</value>
+  </string>
+  <string id="33" name="answer">
+    <value>Válasz:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Igen</value>
+  </string>
+  <string id="35" name="no">
+    <value>Nem</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>Tudni akarja:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Szavazás eredménye</value>
+  </string>
+  <string id="38" name="question">
+    <value>Kérdés:</value>
+  </string>
+  <string id="39" name="results">
+    <value>Eredmény:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Válaszok:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>Nincs elindított szavazás.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Szavazz!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Találkozó (max. 4 férőőhely)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Előadás (max. 50 férőhely)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Típus</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Szabad helyek</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Foglalt helyek</value>
+  </string>
+  <string id="48" name="enter">
+    <value>bevitel</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>A előadó elhagyta a szobát.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Rendszer információk</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Válassz eszközt</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Válassz webkamerát:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Válassz mikrofont:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>Rendben</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>Mégse</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Újra be kell jelentkezned.</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Beállítások módosítása.</value>
+  </string>
+  <string id="58" name="course">
+    <value>Téma:</value>
+  </string>
+  <string id="59" name="language">
+    <value>Nyelv:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>Rendben</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>Mégse</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Tábla törlése</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Szeretnéd, hogy a tábla törölve legyen mielőtt új kép lesz hozzáadva?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>Ne kérdezd többször</value>
+  </string>
+  <string id="65" name="no">
+    <value>Nem</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Beállítások módosítása</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Megerősítés a tábla törlése előtt</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Felhasználói információ</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Rajzterület törlése</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Vissza</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Újra</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Válassz objektumot</value>
+  </string>
+  <string id="73" name="text">
+    <value>Szöveg</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Rajz</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Vonal</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Aláhúzás</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Négyszög</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Ellipszis</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Nyíl</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>a kiválasztott elem törlése</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Jelentkezés előadónak</value>
+  </string>
+  <string id="82" name="apply">
+    <value>beállít</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>Mégse</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Előadóvá válni</value>
+  </string>
+  <string id="85" name="close">
+    <value>bezár</value>
+  </string>
+  <string id="86" name="italic">
+    <value>dőlt</value>
+  </string>
+  <string id="87" name="bold">
+    <value>félkövér</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>VÁRAKOZIK</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>A felhasználó előadónak jelentkezik:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>elfogad</value>
+  </string>
+  <string id="91" name="reject">
+    <value>elutasít</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>mégse</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Kérelem küldése felhasználóknak:</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Elfogadva</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Elutasítva</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Előadó változtatás</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Te nem moderálhatod ezt az előadást!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Előadó:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>A terem tele van. Kérem próbálja később.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Ellipszis</value>
+  </string>
+  <string id="101" name="close">
+    <value>bezár</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>beviteli adathiba</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>4 vagy több karakter; kis/nagybetű számít!</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>a felhasználói jelszónak legalább 4 karakternek kell lennie</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>A felhasználó már létezik</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>Az e-mail cím már regisztrálva van</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>Rendszerhiba, keresse fel a rendszergazdát.</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Bejelentkezés</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Felhasználó:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Jelszó:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Nyelv</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Bejelentkezés</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Bejelentkezni</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Felhasználó:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Jelszó:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Újra:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Keresztnév:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Családnév:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>E-mail:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>Ország:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Regisztráció</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>Mégse</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Regisztráció</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>Nyitó oldal</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Felhasználók</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Csoportok</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Szervezet</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Előadás-szoba</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>nyilvános</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>Szervezet</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>belépés</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Bejelentkezési név</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Jelszó</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Újra</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Keresztnév</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Családnév</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>E-mail</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Születésnap</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Utca hsz.</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>Ir.szám/Település</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>Ország</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Megjegyzés</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Felhasználói adatok</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>mentés</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Mentés</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>USER-ID</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>Bejelentkezés</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>Keresztnév</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>Családnév</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>következő mutatása</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>előző mutatása</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>bejegyzés törlése</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>mégse</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>törlés</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>új bejegyzés</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>bejegyzés frissítése</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>bejegyzés törlése</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>státusz</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>tiltott</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>engedélyezett</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>Szervezetek</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>naptár</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>bezár</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>Szervezet-ID</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>Név</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>Felhasználó</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>Előadó</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>Adminisztrátor</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>felhasználó szint</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>Szervezet</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>név</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>szervezet hozzáadása</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>szervezet hozzáadása</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>mégse</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>hozzáad</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>szervezet törlése</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>felhasználó</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>felhasználó hozzáadása</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>felhasználó törlése</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>felhasználó hozzáadása</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>felhasználó keresése</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>keres</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>felhasználó</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>Szervezet</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>Belépés</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Konferenciatermek</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Konferenciatermek</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>id</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Név</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>nyilvános</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>Szervezetek</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Találkozószobák</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>Név</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>Típus</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>Nyilvános</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>Megjegyzés</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>mentés</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>betölt</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>mentés mint</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>Fájlnév</value>
+  </string>
+  <string id="201" name="files">
+    <value>fájlnév</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>mégse</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>mentés</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>hiba</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>betöltés</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>objektum betöltve</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>kliensek szinkronizálása, várakozó kliensek:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Képinformációk betöltése</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>kliensek szinkronizálása, várakozó kliensek:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>rajzterület törlése</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>rajzterület törlése, a tábla adatai elvesznek</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Megerősítés mielőtt a fájlt betöltené</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Meghívó küldése</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Meghívó küldése</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Tárgy</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Címzett</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Üzenet</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Elküld</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>mégse</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>elküld</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Felhasználói adat</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>A beceneved ehhez a konferenciához</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>Becenév</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>Keresztnév</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>Családnév</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>Email</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>Nyelv</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>bevitel</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Betöltés</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Adatok betöltése, kérlek várj!</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Rossz jelszó</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Adj meg két megegyező legalább 6 karakter hosszú jelszót</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Hibás e-mail</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Hibás e-mail címet adtál meg</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>A regisztráció megtörtént</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Az fiókod elkészült. Beléphetsz.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>A képernyődet nem oszthatod meg most. Valaki más már megosztotta az övét.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Megosztás megtiltva</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Képernyőmegosztás</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Hibás sávszélesség: Nem lehetett szinkronizálni a képenyődet. El lesznak dobva képkockák. Ha sokszor jelenik meg ez a figyelmeztetés, kérd meg a előadót, hogy a minőséget vegye vissza.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Képernyő:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Rajz</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Dokumentum</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Csevej</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Fájlok</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Tagok</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Eredeti dokumentum letöltése</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>pdf letöltése</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Bemutató betöltése a táblára</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Beállítások</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Objektum mozgatása</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Objektum átméretezése</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>-</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>Ugrás az első oldalra</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>Ugrás az előző oldalra</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>Ugrás a következő oldalra</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>Ugrás az utolsó oldalra</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Kicsinyít --</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Nagyít ++</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Úr</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Hölgy</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Beállítás</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Kulcs</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Beállítás</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Kulcs</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>utolsó módosítás</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>módosítva</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>megjegyzés</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>Érték</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>-</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Felhasználók</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>felhasználó törlése a szervezetből</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>töröl</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>Ez a felhasználó már tagja a szervezetnek.</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>Hírek</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Gyorslinkek</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Konferenciára megyek</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Előadásra megyek</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Segítség</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Hibabejel.!</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>tovább</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Projekt weboldala (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>Felhasználói levelezőlista (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Bejelentkezés megjegyzése</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Tartalom</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>Kezdőoldalam</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>Találkozóim</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>Eseményeim</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Nyilvános találkozók</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Zártkörű találkozók</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Nyilvános előadások</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Zártkörű előadások</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Nyilvános tartalmak</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Zártkörű tartalmak</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Személyes tartalmak</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Moderálás</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Jelentkezés előadónak</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Szavazás</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Fájl választás</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Beállítások</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Kamera és mikrofon beállítások</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Tábla beállítások</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Kilép</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Vissza a szobákhoz</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Kilépés</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Elfelejtetted a jelszavad?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Jelszó törlése</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>E-mail alapján</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Bejelentkezés alapján</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>Az e-mail címed</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>A bejelentkező neved</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Levél küldése (with reset link)</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>Nem található az e-mail cím. Ellenőrizd, hogy ugyanazt az e-mail címet adtad meg amit a felhasználó létrehozásához használtál.</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Kérlek add meg az e-mail címet vagy felhasználói nevet.</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>Nincs felhasználó ehhez a névhez.</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>A levél, amit küldtünk neked, tartalmaz egy speciális linket, ellenőrizd a postafiókodat. Ha még nem kaptad meg a levelet, állítsd be a spamszűrődet és küldd újra a megerősítő e-mail-t.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Hiba</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Üzenet</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Rossz Hash. A felhasználható nem található.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Jelszó törlése</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Bejelentkező név</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>Jelszóváltás</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>Új jelszó</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>Jelszó újra</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>A begépelt jelszavak nem egyeznek meg.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>4 vagy több karakter; kis/nagybetű számít!</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Jelszó beállítva. Bejelentkezhetsz.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>Rendben</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Ismeretlen hiba. Írd meg a fejlesztőknek.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Felhasználónév nem található</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Hibás jelszó</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Sikeres kijelentkezés</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Regisztráció letiltva.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>Hibás E-mail</value>
+  </string>
+  <string id="340" name="registration">
+    <value>létező fájlnév, válassz mást</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>a fájlnév túl rövid</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Cím nem menthető</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>Felhasználó hozzáadva de hozzá kell rendelni Szervezethez, különben nem fog tudni bejelentkezni.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Új bejegyzés</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>Nincs ilyen mező azonosító.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>Nincs cimke ehhez a mezőhöz.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Adminisztrátori jog szükséges</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Nyelv-szerkesztő</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Nyelv</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>Cimke-ID</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Cimke-név</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Érték</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Mezőértékek</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>Cimkenév</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>Cimkeérték</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>Cimke-ID</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>Csak a cimke értékét törölheted és nem a mezőt! A mezőt nem törölheted, mert más nyelvben szükséges lehet.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>Hibás cimke-ID. A FieldLanguagesvalues_Id nem található az adatbázisban.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Ez a mező nem törölhető. Csak a cimke értékét törölheted. Nincs betöltött cimke, vagy nincs kiválasztva vagy nincs definiálva ehhez a nyelvhez.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>exportálás</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Ki kell jelentkezned, hogy lásd a változásokat.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Új nyelv hozzáadása</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>Nyelv törlése</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Új nyelv hozzáadása</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Név</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>nyelv hozzáadása</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Mentés</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>ugrás az elsőre</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>ugrás az előzőre</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>ugrás a következőre</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>ugrás az utolsóra</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>a felhasználó beszél (Kattints ide a mikrofonja némításhoz, bekapcsoláshoz)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>hang ki/bekapcsolása</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>Rendszer</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Beállításaid</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>Üdv,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Személyes adatok szerkesztése</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Új üzenetek:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Új kép feltöltése</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Felh.adatok - mentés</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>Minden szervezetnek léteznie kell!</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>exportálás indítása</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>Szervezetek szerint</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>exportálás indítása</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Felh.adatok - betöltés</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>válassz users.xml -t</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>betöltés</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>XML-be mentés - Ezek a fájlok felhasználhatók: - A projektnek felajánlható - Más rendszerbe betölthető - Mentés - Személyre szabható - Betehető a language könyvtárba telepítéshez</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Válassz ki egy betöltendő nyelvi fájlt. Válaszd ki a kívánt nyelvet a legördülő menüből! Mindegy, hogy a fájlnak mi a neve, a kiválasztott nyelvhez lesz mentve!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>betöltés - válassz fájlt</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Mentés mint</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Név:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Megjegyzés:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>mentés</value>
+  </string>
+  <string id="395" name="record">
+    <value>Felvételek</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Felvételek megtekintése</value>
+  </string>
+  <string id="397" name="record">
+    <value>Nyilvános és zártkörű szobák felvételei</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Felhasználók :</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Csatlakozott:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Felhasználók ebben a szobában:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>frissítés</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>A szoba megtelt. Próbálkozz pár perc múlva.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>kattints a szobára az információkér</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Csevegés a felhasználókkal a szobában:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Szoba:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Felhasználók a szobában:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>innentől:</value>
+  </string>
+  <string id="409" name="record">
+    <value>felvétel lejátszása</value>
+  </string>
+  <string id="410" name="record">
+    <value>Hossz:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Dátum:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Felvétel üzemmód! Nem változtatható meg egy érték sem, mert ez egy felvett fájl!</value>
+  </string>
+  <string id="413" name="record">
+    <value>A felvétel lejátszása</value>
+  </string>
+  <string id="414" name="record">
+    <value>Lejátszás / Megállítás</value>
+  </string>
+  <string id="415" name="record">
+    <value>Felvétel indítása</value>
+  </string>
+  <string id="416" name="record">
+    <value>Felvétel megállítása</value>
+  </string>
+  <string id="417" name="record">
+    <value>Felvétel:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>Már valaki felvételt készít:</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Felvétel! Felhasználó:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>mégse</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>A felvétel meg lesz szakítva mentés nélkül.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>újraindít</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Zárd be az ablakot és indítsd újra a felvételt.</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>Vonalszin változtatás</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Szin választás</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Ki / Bekapcsolja a vonalszint</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>Kitöltőszin változtatás</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Ki / Bekapcsolja a kitöltésszint</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Vonalvastagság változtatás</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>bezár</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>Betűméret változtatás</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Felvétel törlés</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Vendég</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>Kitől:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Név</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Szoba</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Dátum</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>mégse</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>felvétel</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Név</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Dátum</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Szerver-csevegési napló törlés</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Csevegés</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>üzenet küldése</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Emoticons</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Emoticons</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Válassz engedélyezett eszközt</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Hang és kép</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Csak hang</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Csak kép</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>Hang és kép nélkül (álló kép)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>Sem hang sem kép nem kerül megosztásra a gépedről, hanem a felhasználói adataidból a feltöltött kép. Használd ezt, ha gondjaid vannak a sávszélességgel vagy nagyon lassú az Interneted.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>h</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>k</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>sz</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>cs</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>p</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>szo</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>v</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>hétfő</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>kedd</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>szerda</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>csütörtök</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>péntek</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>szombat</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>vasárnap</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>hsz</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Hetek száma</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>január</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>február</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>március</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>április</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>május</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>június</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>július</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>augusztus</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>szeptember</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>október</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>november</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>december</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Naptár</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Résztvevők</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Nézet beállítások megtekintése</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Szél. | Magasság</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Video-Ablak</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Előadói-Ablak</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Tábla-Ablak</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Engedélyezett</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Szél. | Magasság</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Fájlok,csevegés,résztvevők - Ablak</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Engedélyezett</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Szél. | Magasság</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>Az előadó elhagyta a szobát. Jelenleg nincs előadó. Jelentkezhetsz előadónak vagy várhatsz.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>Nincs előadó a szobában, de vannak résztvevők. Jelentkezz előadónak vagy várj.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>$APP_NAME visszajelzés</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Meghívó</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Üzenet ettől a felhasználótól:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Üzenet:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Kattints erre a linkre a találkozókon való részvételhez:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Kattints ide a szobába való belépéshez</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>ha problémád adódik a linkkel akkor ezt másold a böngésző címsorába:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME Regisztráció</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Felhasználói adataid:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Bejel.név:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Jelszó:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>EMail:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME-Csapat</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME Regisztráció</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - Jelszó csere</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Kattints erre a linkre a jelszó cseréhez:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Kattints ide az új jelszó megadásához</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>ha problémád adódna a linkkel, kérlek másold át ezt a böngésződ címsorába:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME Jelszó váltás</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Kérlek adj meg egy érvényes dátumot, például 24.12.2001 (nn.hh.éééé)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Kérlek adj meg egy érvényes e-mail címet, például name@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Kérlek adj meg egy számot, például 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Kérlek egész számoz adj meg, például 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Kérlek érvényes telefonszámot adj meg, például ++49 0123 123123</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Kérlek érvényes időpontot adj meg, például 12:23 (óó:pp)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Jelszóval védve</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Jelszó</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Érvényességi periódus</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Végtelen</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Időszak</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Egyszer használható</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Ettől érvényes:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Eddig érvényes:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Meghívás OpenMeetingre</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Nincs meghívás ehhez a meghívó kódhoz.</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>A meghívás már használva volt. Ez a típusú meghívás nem használható fel többször.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>A meghívó kód nem érvényes.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Jelszó:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Jelszó ellenőrzés</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Hibás jelszó!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Böngésző</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Hang/kép szinkronizáció</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>A bejelentkezés helyes volt, de session vagy nem aktív vagy nincs a szerveren tárolva. Újra be kell jelentkezned.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>Ez a SessionId nincs bejelentkezve, vagy nincsen adminisztrátori joga. A SOAP átjárónak adminisztrátori jogokkal kell egy felhasználó új felhasználó beágyazásához.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>Ehhez a Session-höz nincs Remoteuser-Data kapcsolat. Wether you did not call the SOAP-Gateway before accessing the Application or you are usnig a wrong Session-ID</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>A felvételkészítő egyenlőre béta állapotú!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>x-méret</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>y-méret</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>w</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>szélesség</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>h</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>magasság</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Áttetszőre váltás</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Böngésző megnyitása</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Bömgésző bezárása</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>A kapcsolat megszakadt a szerverrel. Ellenőrizze az internet kapcsolatát, majd lépjen be újra az alkalmazásba.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Mutató</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Szinkronizálás</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Szinkronizálás a látogatókkal, kérem várjon</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Letöltés mint SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Letöltés mint PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Letöltés mint JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Letöltés mint PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Letöltés mint TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Emlékeztető:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Kategória:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Ismétlés:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>nincs</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Hely:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Indul</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>Vége</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Cím:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Leírás:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Személyek meghívása</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Napi</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Havi</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Évi</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Találkozó vége miután a találkozó elindult!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Adja meg a címet!</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Jelölje be, ha jobbról-balra író nyelvet akar használni (fordított irányú írás)</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Vezérlőpult</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Megtekintheti a rögzített felvételeket, eseményeket</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Előadás - Indítson konferenciát 4 (től max 16) felhasználóval&lt;br/&gt; mindenkinek audio+video lehetőséggel</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Előadás - Indítson konferenciát 200 látogatóig&lt;br/&gt;A moderátornak audio+video lehetősége van</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Felhasználó hozzáadása, konferenciaszoba, szervezet &lt;br/&gt; + beállítások változatása</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Látogató belépett a konferenciába</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Belépés</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Dokumentum betöltés. Kérjük várjon ameddig az összes kliens szinkronizálódik.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Feltöltés kész, konverzió folyamatban ...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Feltöltés indítása</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Feltöltő és importáló ablak. Válassza ki a file-t a meghajtóról.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Megszakít</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>File választása</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Kapcsolatok</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Érték</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Stream azonosító</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Belépés</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Csatlakozott</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Konferencia szoba / Nézet</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>User kitiltása</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>User kitiltása</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Biztosan kitiltja a látogatót?&lt;br/&gt; Csak a jelenlegi konferenciából kerül kitiltásra. A látogató vissza tud jelentkezni.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Az Adminisztrátor,Moderátor kitiltotta a teremből.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Telefon</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>A látogató moderátor ebben a konferenciában.</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>Látogatónak engedélyezi a táblára rajzolást.</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Újra) Indítja az Audio/Video eszköz beállítását</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Ennek a látogatónak engedélyezi a táblára rajzolást.</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Visszaveszi a táblára rajzolás lehetőségét</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Látogatók</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Fileok</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Tábla</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Chat</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Ön több szervezetnek is tagja, válassza ki a megfelelőt.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>Ez a terem megtelt, próbálkozzon később</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Terem típusa</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Talákozó szoba</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Szerver idő</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - Emlékeztető</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Üzenet a felhasználótól:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Üzenet:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Kattintson a linkre az előadásba való belépéshez:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Kattintson ide az előadásba való belépéshez</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>ha problémája adódik a link megnyitásával, másolja ki és illessze be a böngésző címsorába:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>keresés belül</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>külső felhasználók</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>Előnév</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>Név</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>E-mail</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Kilépés jóváhagyása</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Kijelentkezik most?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Eszközök</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Demo Terem</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Demo Idő</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Előadás ideje</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>Ez Demo terem. Ön autómatikusan kiléptetésre kerül:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Moderálja</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Várnia kell egy moderátor belépésére. Moderátor lehet előadó, a terem létrehozó előadója, vagy a rendszeradminisztrátor.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Ok</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Bejövő képernyő megosztás</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>Egy új képernyőmegosztás érkezett (küldő):</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Meosztás indítása</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Új előadás hozzáadása</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Előadó terem</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Esemény</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderálás</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Látogató moderálása</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Terem moderálása</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Ennek a szervezetnek a modárátoraihoz adja a felhasználót?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Válassza ki a szervezetet, mielőtt hozzáadja a felhasználót!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Szervezet - Moderator</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Valóban törli a felhsználót ebből a szervezetből?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>Ez a felhasználó moderátor</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>Ez a felhasználó nem moderátor</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Azt akarja, hogy ez a felhasználó ne legyen moderátor ebben a szervezetben?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Hozzáad/töröl felhasználót vagy konferencia szobát a szervezethez?</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Valóban törli ezt a felvételt?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Valóban törli ezt a felhasználót a szervezetből? Csak a szervezettel való kapcsolat törlődik, a felhasználó tényleges törlését az admnisztrátori felületen tudja elvégezni.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>Ön nem törölheti ezt a felhasználót!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>Ehhez a tevékenységhez Adminisztrátori jog szükséges!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>Nem tartozik Session ehhez az ID-hez.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>Ez Adminisztrátori, Moderátori fiók. Ezt csak Adminisztrátori panelen szerkesztheti.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>A regisztráció aktiválásához kattintson a linkre, vagy másolja ki és illessze a böngésző címsorába.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Kattintson az E-Mail megerősítéshez</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Nincs felhasználó ezzel a Hash azonosítóval.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>A felhasználó már aktiválásra került!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Sikeresen aktiválta a felhasználói fiókját!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Belépés most</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Hozzáférése nem aktív. Először aktiválja a regisztrációkor kapott megerősítő e-mail segítségével.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>Regisztráció kérését fogadtuk. Küldtünk egy megerősítést kérő linket a megadott e-mail címére, kérjük keresse fel az e-mail fiókját, a regisztrációs kérést vissza kell igazolnia!</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Moderációs jogok visszavétele a látogatótól</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Moderációs jog adása a látogatónak</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>Látogató</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Hozzáférés a táblához</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderátor</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Moderáció: Válasszon a listából és adjon jogot a táblához, moderációhoz, videóhoz...stb való hozzáféréshez.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>Ez a látogató már moderátor</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>Ez Ön! Nem veheti el a moderációs jogot.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Bekapcsolja az Audio / Video lehetőséget a látogatónak</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Kikapcsolja az Audio/Video lehetőséget a látogatónál</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>Moderátori jogot kérek</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>Hozzáférést kérek a táblához</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>Audio/Video hozzáférést kérek</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>Moderátori jogot kaptál</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>Hozzáférést kaptál a táblához</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>Audio/Video hozzáférést kaptál</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Üzenet a Moderátornak</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>A látogató</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>moderáció megadásához. Kattintson a névre és a megfelelő ikonra a moderáció hozzáadásához, visszavételéhez.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>tábla használatához. Kattintson a névre és a rajztábla ikonra a tábla használatának hozzáadásához, visszavételéhez.</value>
+  </string>
+  <string id="695" name="695">
+    <value>Audio/Video hozzáféréséhez. Kattintson a nevére és a Mikrofon/Kamera ikonra a hozzászólás engedélyezéséhez, visszavételéhez.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>Várjon amég a Moderátor belép a terembe.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Mégsem</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Ment</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Nap</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Hónap</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Év</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>File feltöltése</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Könyvtár létrehozása</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Frissít</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Kuka (húzza bele a kiválasztott elemet)</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>Saját fileok (Home Drive)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Terem fileok (Public Drive)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>File hozzáadása</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Könyvtár létrehozása</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Könyvtár törlése</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Név szerkesztése</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>Új könyvtár</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Biztosan törli ezt az elemet?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Keresés</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Keresés</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Dokumentum megnyitása</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Összes mutatása (Fa nézet)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Dokumentum bezárása</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>File törlése</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>Nem rajzolhat a táblára. Moderátornak kell lennie, vagy kérjen a moderátortól hozáférést.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Dokumentum tulajdonságai</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Kliens indítása (külső)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Kliens indítása (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>A látogató megosztotta a képernyőjét. Megtekinti?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>A képernyőd meg van osztva. A képernyőmegosztás leállításához kattintson a kliensen a Leállítás gombra.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Megosztás</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>A képernyő már meg van osztva!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Képernyő nézete</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Kilépés</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Képernyő megosztó</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Kattintson a Start-ra a képernyő megosztásához</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Megosztás indítása</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Megosztás leállítása</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Válassza ki a megosztandó területet:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Szélesség megadása</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>A megosztás befejeződött!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Magasság megosztása</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-eltolás</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-eltolás</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Szélesség:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Magasság:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>A kapcsolat lezárult a szerverrel</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Mégse</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Indítás kívülről</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>Ha bezárja ezt a nézetet, nem fogja tudni újraindítani ebben a munkamenetben.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Megerősíti az aktuális nézet leállítását</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Képernyő megosztása</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Munkamenet rögzítése</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Co-Browsing</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Ooops, ... Firefox on Windows does not show clear Co-Browsing. Please use another Browser for using the Co-Browsing feature.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Előző</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Következő</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Újratölt</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Home</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Betöltés</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Adja hozzá alapértelmezett weboldalaként a profiljában.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Teszt beállítás</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Teztelje a kameráját/mikrofonját pár másodperces felvétellel, mielőtt belépne a konferencia terembe. Visszajátszuk a felvételt, hogy ellenőrizhesse a működést.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Ne mutassa ezt többet</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Mégsem</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Belépés a konferenciába</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Ne figyelmeztessen többet</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>Felvétel</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>Lejátszás</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>Beléphet kamerát/mikrofon nélkül is. Látogatóként ezek nélkül is használhatja a rajztáblát, megoszthatja képernyőjét, írhat a Chat-be.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>MNegállít</value>
+  </string>
+  <string id="767" name="test setup">
+    <value>Jelerősség mérő</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Press Start</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Belépés akonferenciába</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Esemény indul</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Konferencia szoba választása</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Beállítás ellenőrzése</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Konferencia indítása</value>
+  </string>
+  <string id="774" name="start view">
+    <value>Hogyan indíthat konferenciát</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Felvétel indítása</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Ne mutassa az Audio / Video tesztet (Recording) mikor belép akonferenciába.</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Nyilvános termek</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Nyilvános termekhez minden felhasználó hozzáfér.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Zárt termek</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Zárt termekhez csak a szervezet felhasználói férhetnek hozzá.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>Saját termek</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Ezen szekció termeit csak a létrehozó személy éri el (moderátorként). Bejegyezheti az eseménynaptárba és megadhat kezdeti/vége időpontokat. Itt csak az érvényességi ideig jelenik meg a listában.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>Ennek a moderátorának kell lenned ehhez.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Moderáció megadása</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Tábla használat megadása</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Kamera/mikrofon használat megadása</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>Ezt a munkamenetet már használ(ja/ta). Nem használhatja többször.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>Indítás</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>Kilépés</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Valóban kilép? Törlődni fognak a feltöltött dokumentumok, rajztábla, chat tartalma.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Kilépé s konferenciából</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Termek</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Válassza ki a termet az előadáshoz</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>Az esemény nincs mentve a naptárba. Kérjük mentse most, vagy távolítsa el.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Kérjük adjon legalább egy látogatót az előadásához !</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Biztosan törli ezt az eseményt?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Figyelmeztetés</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Esemény hozzáadása</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>Nap</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>Hét</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>Hónap</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Leírás</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Látogatók</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, az Ön webkonferencia platformja. Kövesse az utasításokat és gombnyomásra nyithat egy konferenciát, vagy bejegyezhet a naptárba és beállíthat egy előadást előre.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Plan a Meeting</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>A konferencia beállításához adja hozzá az eseményt a naptárhoz.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Segítségre van szüksége?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Fenntartott</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Keresés</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Hozzáad</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>Nincs felhasználó kiválasztva. Vállasszon elemet a listából és adja hozzá.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Látogató hozzáadása</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Mentés</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Törlés</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Esemény részletei</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Alapértelmezett Moderátor</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Név</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>E-Mail</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Új alapértelmezett moderátor hozzáadása</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Super Moderator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>Moderált terem, ha a felhasználó moderátor, vagy adminisztrátor, automatikusan moderátora lesz a teremnek. If you don't want to specify that and only want a certain User to become Moderator use the Default Moderator option.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>A Super Moderator mindíg moderátora a teremnek, a többi moderátor jogait Ő szabályozhatja</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Super Moderátorrá teszi a felhasználót</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Super Moderator visszavétele a felhasználótól</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>Ha szervezeteket rendel a teremhez, csak a szervezet tagjai érhetik el a termet (Ez csak a "Nyilvános" típusú termeknél értelmezett)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderáció</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitációk</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Szervezet</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Megerősíti?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Valóban törli ezt az elemet? Kattintson a mentés gomba a változások végrehajtásához!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>TNincs felhasználó kiválasztva. Kérjük előbb válassza ki és adja hozzá!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Új alapértelmezett Moderátor hozzáadása</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Super Moderátorr-á teszi ezt a felhasználót? A Super Moderator nem csak moderátora a teremnek, elveheti a moderátori jogot másoktól. A beállítások alkalmazásához mentse azokat!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Elveszi a Super Moderátor jogot a felhasználótól? A beállítások alkalmazásához mentse azokat!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>Ez a felhazsnáló Super-Moderator. Nem veheti el a Super-Moderator jogot!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Biztosan törli ezt a filet/könyvtárat?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>File/Könyvtár törlése?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Mrs.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Tulajdonságok</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Mutasd az egér pozíciót a nézőknek</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Audio megosztása SIP alkalmazáson</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Audio megosztása SIP-n és video flash alatt</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Teljes méret</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>Képernyő nézete</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>A felhasználó</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>megosztotta a képernyőjét. Megnézi?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Bezár</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Nagyító</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>A munkamenetet a felhasználó lezárta!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>Új képernyő megosztás</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimalizál</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximalizál</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Felvétel ideje</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>Felvételeim</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Publikus felvételek</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Név</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Hossz</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Dátum</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>By</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>Lejátszás</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Videóm</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Felvétel</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>Megoszthatja képernyőjét, rögzítheti az előadást. Hogy mások láthassák a képernyőjét, kattintson fent a megosztás gombra. Ha csak rögzíteni szeretné az előadást, kattintson a felvétel indítása gombra.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Felvétel indítása</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Felvétel vége</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>FLV-File letöltése</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Konferencia szoba</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Lejátszás</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Megállít</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>A felhasználó mikrofonja aktív</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Megosztás leállítása</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Engedéylezi a felhasználók kérdését</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Kapcsolja ki, ha nem akarja, hogy kérdésekkel zavarják. A moderátor ilyenkor nem kapja a ("Kérdésem van") üzenetet.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rendben</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>AVI-File letöltése</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Csak Audio</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>Hiba történt a felvétel készítése közben.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>A felvétel még nem nézhewtő vissza. Kérjük próbálja ismét pár perc múlva.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Felvétel üzenet</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP alkalmazás nem áll készen</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP hozzáférés beállítása</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP beállítás a felhasználóknak. Kapcsolja be az SIP-t adminisztrátorként &gt; Beállítások (Key: enable_sip). Az SIP adat minden felhasználónak autómatikusan létrejön. Az újrageneráláshoz ellenőrizze "Re-generate SIP Data"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-Felhasználó</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Jelszó</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>A bejelentkezés az SIP szerverre nem sikerült. Ellenőrizze az SIP hozzáférés adatait és az authentikációt az SIP szolgáltatójánál. Adminisztrátorként lépjen be és ellenőrizze a beállításokat. Felhasználók, Moderátorok nem módosíthatják a paramétereket.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>A bejelentkezés az SIP szerverre nem sikerült. Forduljon a szolgáltatóhoz!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Bejelentkezés az SIP-Szerverre ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Bejelentkezés az SIP-Szerverre ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Log mutatása</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log üzenet a rögzítő folyamattól</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Alkalmazás menedzsment</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>Az SIP-Alkalmazás nem áll készem. Fogadja el az alkalmazást és próbálja újra!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Moderációs lehetőséget kérek</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Bejegyzés változásainak mentése</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>A bejegyzés megváltozotta. Menti a beállításokat? &lt;br/&gt;&lt;br/&gt;Minden látogató értesítést fog kapni e-mailben a változásokról (függ a figyelmeztetés típusától).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>Egyéb felvételetkhez való hozzáféréshez be kell jelentkeznie a $APP_NAME alkalmazásba.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Felhasználó kiválasztotta ezt a videót</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Ezen a felületen elérhető felhasználók</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>Moderátora vagy ennek az interjúnek. Döntsd el ki beszéljen ebben az interjúban, indítsd/állítsd meg a videó rögzítését.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Felvétel indítása</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Felvétel megállítása</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>A felvétel már folyamatban van.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>A felvétel megállításra került, vagy nem indítható most.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>Az interj felvétele sikeresen elindult!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Mégsem</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>A felvétel feldolgozása akár 5 perc is lehet 1 perces video esetén. A kiválasztott videó feldolgozása, kódolása:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>Írja be a jelszavát ismét, miután az SIP adatokat megadta</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Újra generált SIP adatok</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>Nem helyezheti át ezt a filet/könyvtárat ebbe az alkönyvtárba!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Privát meghajtó mérete</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Publikus meghajtó mérete</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>Licenc beállítások</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Licenc ellenőrzése</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Terjedelem</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Lejárat dátuma</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Teljes idő</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>A licence lejárt. Vásároljon idő hosszabbítást (Pay-per-minute) vagy feltöltést.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Kattintson a vásárláshoz</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Rendelkezésre álló idő:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>Felhasználói licenc információk</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Bezár</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>A licence lejárt. Vásároljon idő hosszabbítást (Pay-per-minute) vagy feltöltést.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>Licenc beállítások</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>Vásároljon időhosszabbítást a konferenciához (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; vagy vásároljon feltöltést 3-12 hónapot.&lt;br/&gt;&lt;br/&gt;Küldjön meghívókat (direkt linkek a konferencia teremből) vagy készítsen webkonferenciákat a naptárral együtt a külső felhasználók csak előfizetéssel férhetnek hozzá!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>60 perc vásárlása 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>5 óra 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>3 hónap 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>6 hónap 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Perc alapú fizetés</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Feltöltés értékek</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>Végtelen licencel rendelkezik</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Licence lejár:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Vásároljon új kreditet!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Saját szervere van?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>Szeretné a szerverén az $APP_NAME alkalmazást telepíteni, integrálni a Moodle, SugarCRM, Weboldalalal, Internettel? Darabáras díj 500 Euro per telepítéstől!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Vagy vegye fel a kapcsolatot</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Válaszra várok:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Üzenete:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Küldés</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Kattintson ide a kapcsolati és ár információk kéréséhez</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Kredit kártya adatok</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Vezetéknév</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Keresztnév</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Kredit kártya típusa</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Érvényességi idő</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Kártya ellenőrző száma (CVV)</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Fizetési cím</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Cím</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>Város</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Ország</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>Állam (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>Irányítószám</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Összeg</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Beküld</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>1. lépés: $APP_NAME - Fizeti</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Kattintson a "Check out with Paypal" a fizetéshez.&lt;br/&gt; PayPal alkalmas VISA, MasterCard, Discover vagy American Express. &lt;br/&gt;Nem szükséges PayPal regisztrációval rendelkeznie. &lt;br/&gt;Németország területén direktben is fizethet (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Köszönjük, hogy az $APP_NAME vásárolta. &lt;br/&gt; &lt;br/&gt; A vásárlás lekönyvelésével aktivljuk az accountját.&lt;br/&gt; A számlát PDF-ként e-mailben kapja meg.&lt;br/&gt;A profiljában ellenőrizheti a tranzakció részleteit.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Zárja be a böngészőt, majd térjen vissza az $APP_NAME alkalmazásba.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Beküld és vásárol!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Kattints a vásárláshoz!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>3. lépés: $APP_NAME Vásárlás: ellenőrzés és fizetése!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Név</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Befizetését fogadtuk!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hello,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>Megkaptuk a befizetését. A profilját frissítettük. Nézze meg a kapott számlát. A számla és minden egyéb igazolás a profiljából letölthető.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Köszönjük, hogy az $APP_NAME használja!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Befizetését feldolgoztuk $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Fizetési és tranzakciós állapot</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Tranzakció azonosító</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Perc</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Hónap</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Állapot</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Számla</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>Előfizetésének feltöltése szükséges, hogy meghívót küldhessen, vagy használja a naptárat. Az $APP_NAME alkalmazáshoz csak fizetéssel férhet hozzá akár perc alapon is. A konferenciához nincs hozzáférése 3. személynek, alakalmazásnak.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>Ezt az e-mail címet másik felhazsnáló már használja.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Beállítások</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>A konferencia száma és PIN kódja automatikusan létrehozva az OpenXG RPC-Átjáróval</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Azonosító</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Törli az objektumot a jelenelgi lapról!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Csak a státuszbárba beírt URL-t küldi a résztvevőknek!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Csoport szobát csinál [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Válasszon felhazsnálókat a csoport szobához!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>Válassza ki a felhasználókat és lépjen velük át a csoport-szobába ("Team Room"). A választott felhazsnálók üzenetet kapnak és automatikusan átlépnek a csoport szobába. A csoport szoba moderátora(i) automatikusan megegyeznek a jelen szoba moderátora(i)val.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Felhasználónév</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Belépés</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Felhasználók az új csoportszobában:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Csoportszoba létrehozása</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Mégsem</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Válasszon legalább egy résztvevőt a csoportszobába!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Felhasználó csoporthoz adása</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Felhazsnáló elvétele a csoporttól</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>A felhasználó csoportszoba-moderátor (ezt szabályozni csak a csoportszobából tudja)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Szoba típusa</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>Ha be van állítva a "Felhasználók átléptetése az új csoportszobába" minden kiválasztott felhasználó átléptetésre kerül automatiksan az új csoportszobába. Egyébként csak figyelmeztető üzenetet kapnak az átlépéshez. A csoport-moderátorok mindíg szabadon választhatnak a csoportszobák közül.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Csoport-szobák kezelése</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>Válasszon a csoportszobák közül, ha csoportszoba-moderátor. A bent lévő felhasználóknak tud üzenetet küldeni, pl. hamarosan belép a szobába. Le tudja zárni a szobát és a bejelentkezett látogatók kiléptetésre kerülnek a szobából</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Felhasználók átléptetése az új csoportszobába</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Név</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Létrehozva</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Elérhető felhasználók</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Csoportszoba beállítása</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Felhasználük hozzáadása</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Csoportszoba neve</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Csoportszoba</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Szoba változtatása</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Váltás erre a csoportszobára</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Csoportszoba bezárása, résztvevők kiléptetése</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>Új csoportszoba</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>Új csoportszoba érhető el.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Váltás a csoportszobára</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Csoportszoba tevékenység</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>Nyissa meg újra ezt az ablakot, a menüben az "Akciók" alól!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Üzenet küldése s csoport-moderátornak</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>Új csoportszoba</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>Új csoportszoba érhető el. Váltson át a szobára. A munkacsoportban a szoport-moderátorhoz forduljon segítségért. A csoportsuobáit elérheti a "Előadásaim" szekcióban.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Váltás a csoportszobára</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Készítette:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Csoportszoba neve:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>Az ablak nyitvamarad, hakilép a csoportszobából!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Felhasználók ebben a szobában</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) vags válasszon másik csoportot és lépjen be</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Küldhet üzenetet a csoport moderátorának. Pl.: ha segítségre van szüksége a moderátortól, vagy nézzen körül a topic-okban.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Küldés</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) felhasználó meghívott a csoportszobába</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Csoportszoba moderátora</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>Minden felhasználót a moderátor hívot meg.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>Nem vagy csoportmoderátor, várni kell a belépésre!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Írja ide üzenetét</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Segítséget kérek, problémám akadt a csoportszobával!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A felhassnáló válasza a csoportszobából.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Csoportszoba segítség kérés</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Üzenet:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>Tól/Től:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>Nem vagy benne egyik csoportban sem. Kattints ide a csoportszobákhoz való hozzáféréshez.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Rendszer mentése. A mentés minden felhazsnálói adatot ment. A konfiguráció és a nyelvek nincsenek benne. Because those values are imported with the System Installer. A rendszer frissítéséhez előbb nemtse el a régi adatokat(1) installálja újra az adatbázist is a telepítővel (2) végül importálja be a mentett adatokat (3). Az importálást elsőként hajtsa végre és csak után aadjon új adatokat a rendszerhez.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>Rendszer mentése</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Engedélyezi a felhasználónak a képernyő megosztást/rögzítést</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Tiltja a felhasználónak a képernyő megosztást/rögzítést</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>A felhasználó moderátor, válasszon másikat!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>szeretne képernyőt megosztíni/rögzíteni.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>Heozzáférésed van a képernyő megosztáshoz/rögzítéshez</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Alkalmazza a képernyő megosztáshoz/rögzítéshez.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Engedélyezi/Tiltja a kpernyő megosztását/rögzítését.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Hang kikapcsolása</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Hang bekapcsolása</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Csak Audio szoba</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Kapcsolja be az opciót és a látogatók csak audio eszközt használhatnak, video-t nem. Jó megoldás alacsony sávszélesség esetén.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Távvezérlés engedélyezése (képernyőmegosztás alatt)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Távvezérlés tiltása (képernyőmegosztás alatt)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Alkalmazza a távvezérléshez (képernyőmegosztás alatt)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>Engedélyezted a távvezérlést (képernyőmegosztás alatt)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>szeretné használni a távvezérlést.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>A látogató moderátor, bármt tehet! [Távvezérlés Alkalmazás]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Engedi/Tiltja a távvezérlést (képernyőmegosztás alatt)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) PC-dtől a távoli PC-re: Másold a szöveget a vágólapra (Ctrl+C), majd távoli PCre küldéshez kattints a távoli gép képernyőjére. Kattints ajobb gombal a szövegmezőn és válaszd a "Beillesztés" menüpontot.&lt;br/&gt;&lt;br/&gt;2) Távoli PC-ről a Te PC-dre: Jelöld ki a szöveget (kiemelés) és kattints a jobb gombbel, majd válaszd a "Kijelölt másolása" menöpontot. Kattints aj obb gombal a saját PC-den a szövegmezőn és válaszd a "Beillesztés" menüpontot.</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Másol és beilleszt szöveget a helyi PC-ről a távoli PC-re, vagy fordítva.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Kijelölt másolása</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>Hogyan kell másolni és beilleszteni</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Képernyőmegosztás minősége:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Nagyon jó minőség</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>Jü minőség</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Közepes minőség</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Alacsony minőség</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Nillentyűzet:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Előadás lezárása!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>Ez az előadás lezárásra került, átirányítás.</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Szoba lezárása</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Kilépő URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Konferencia szoba bezárás beállításai</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>Ha a konferencia lezárásra kerül, alátogatókat átirányítja a kilépő URL-re.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Név</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Konfigurációs file</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap konfiguráció</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Név</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Engedélyezve</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Hozzáadva</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Hozzáadta</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Frissítve</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Frissítette</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>A konfigurációs file helye webapps/openmeetings/conf. Manuálisan töltse fel ebbe a könyvtárba. A beállításokat online bármikor megváltoztathatja.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Konfigurációs file neve</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>Ha negedélyezi a "Tartomány hozzáadása a felhasználó névhez" a "Tartomány" (domain) mező értéke hozzáadódik minden bejelentkezéshez mikor a felhasználó belép. Használja ezt, ha az LDAP bejelentezés támogatja a tartomány kezelést. Pl.: Felhasználó belép "hans", tartomány meghatározva mint "localhost.com", a belpést az LDAP ellenőrzi mint: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Tartomány hozzáadása a felhasználó névhez</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Tartomány</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Beszúr</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Kijelölt szöveg másolása</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Távoli vágólap tartalma</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Távoli vágólapot mutat</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Nem mutathatja mégegyszer</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Másolása ide ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>Távoli vezérlés használata szükséges (vagy moderátor) hogy aszöveget másolhasson a képernyőre/képernyőről.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Alap beállítások szerkesztése ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Ne mutassa a Távvezérlés info dobozt a másolás/beillesztés közben.</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Mentés</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Eltávolítás</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Mégsem</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Felhasználó meghívása a konferenciába</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Válasszon konferencia szobát. A meghívott felhasználó üzenetet kap a Nevével és a belépési linkkel.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Kapcsolódva:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Belépés a konferencia szobába a meghívó küldés után</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Meghívás</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Üzenet</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>szeretne meghívni a konferencia szobába:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Meghívó üzenet</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Meghívó küldése</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>&lt;b&gt;nem&lt;/b&gt; fogadta el a meghívást!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Elfogad</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Visszautasít</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Időzóna</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Esemény részletei</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Név</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Leírás</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Létrehozta</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>Időzóna üzenet</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Ellenőrizze az "TimeZone Message" a profiljában, amit a felhasználók a belépéskor látni fognak.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Ellenőrizze az időzóna beállítását a profiljában.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>új $APP_NAME konferencia:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Részletek:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Kezdődik:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>Vége:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Változás $APP_NAME konferencia:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Szervezet:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Törölt $APP_NAME konferencia:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME konferencia emlékeztető:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Közösség beállításai</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Mindenkinek mutassa a kapcsolati adatokat</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Adjon hozzá érdeklődési köröket, vagy keresési adatokat a mezőhöz, hogy az érdeklődők rákereshessenek az előadására. Vesszővel válassza el a felsorolt elemeket (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>Ajánlásaim</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>Érdeklődésem</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Név</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Időzóna</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Érdeklődési terület</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Kapcsolati információ</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Kapcsolati adatokat csak a személyes kontakt listámon láthatják</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Ne mutassa a kapcsolati adataimat</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>Profilom</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Beállítások szerkesztés</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Felhasználók keresése</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Profilom megtekintése, ahogyan mésok látják</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Szerkeszd a beállításaidat, add hozzá az érdeklődési körödhöz</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Keress felhasználókat és add hozzá a hálózatodhoz</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Keresés</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>Felhasználói ajánlatok</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>Felhasználó nézi ezt</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Szabad szöveg</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Név</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Időzóna</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Ajánl</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Keresés</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Keresési eredmények</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Akciók</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Kontaktlistához ad</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Üzenet küldése</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Kapcsolatok és üzenetek</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Függő kapcsolat</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Elfogad</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Visszautasít</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hello,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>szeretne kapcsolatként hozzáadni téged.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Ellenőrizze a felkérést a $APP_NAME alkalmazásban, vagy kattintson a megfelelő linkre az Elfogadáshoz/Visszautasításhoz.</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>A felhasználó már a kontaktlistádon van, vagy kapott egy meghívást a kapcsolatilistádra, amire nem adott még választ.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Kapcsolataid</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Kapcsolatok és üzenetek szerkesztése,&lt;br/&gt; függő kapcsolatok kezelése!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>hagyd jóvá a kapcsolatod!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Chat napló Mutat / Másol</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat napló</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>Küldő</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Tárgy</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Küld</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Üzenet</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>Új email</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Kattintson az új üzenet írásához a kapcsolatai számára</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Új üzenet írása</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>Címzett:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Tárgy:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Engedélyezi a tábla teljes méretre igazítását&lt;br/&gt;a dokumentumot minden felhasználó a saját felbontása szerint látja.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Felhasználó kitiltása</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>Saját magát nem tilthatja ki a teremből! A szoba elhagyásához kattintson a kilépésre, zárja be az ablakot, vagy a böngészőt!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Biztosan leválasztja ezt a felhasználót a konferenciáról?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Megerősítés ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>A Super-Moderátort nem tilthatja ki a konferenciából!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Konferencia szoba kapcsolat lista</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Kezdődik</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>Befejeződik</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Adhat kérdéseket a konferencia üzenetéhez és létrehozza a konferenciát. Az esemény bekerül minden látogató naptárába.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Bejövő</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Küldött</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Kuka</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>Ez Te vagy! Nem adhatod magad a kontakt listához.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>Ez a felhasználó tiltva van!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>Ez a felhasználó már el van fogadva!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>A felhasználó kapcsolata érvénytelen!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>Felhasználó hozzáadva a kontakt listához!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>A felhasználó kapcsolata tiltva van és folyamatban van a kontakt listáról levétele!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>Ezzel nincs kapcsolat!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Biztosan eltávolítja ezt a kapcsolatot?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Eltávolítás megerősítése</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Kapcsolat törlése a listáról</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>Felhasználói profil</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Motasd a profilját</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Üzenet</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Keresés</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Mind kijelöl</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Kijelölés törlése</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Olvasatlanok kijelölése</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Olvasottak kijelölése</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Könyvtárba áthelyez ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Új könyvtár hozzáadása ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Törlés</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>A törölt üzenetek a "Kukába" kerülnek!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Olvasatlannak jelöl</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Olvasottnak jelöl</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Válasz</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Válasz mindenkinek</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Továbbít</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Művelet ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Privát üzenet küldése</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nincs kiválasztva!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Bejövőbe áthelyez</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Törlés (végleges)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>A művelet sikertelen!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Küönyvtár hozzáadása</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Könyvtár hozzáadása</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Hozzáad</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Könyvtár törlése</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>Nem törölheti ezt a konyvtárat, üzenetek vannak benne! Először törölje, vagy helyezze át az üzeneteket.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Név szerkesztése</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Biztosan törli ezt a könyvtárat? Később nem vonható vissza.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>A felkérésed elküldtük a felhasználónak. Amint megkapja üzeneted, elfogadja/visszautasítja a felkérésed. Csak az elfogadottak kerülnek a kontaktlistára!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Üzenet</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>A felhasználó nem osztotta meg a privát kapcsolati adatait.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>A felhasználó csak a kpcsolataival osztotta meg a privát kapcsolati adatait.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Cím &amp; Telefon</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>A meghívód érvénytelen, a meghívó csak az alábbi időben érvényes:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>Ez az esemény több felhasználó, több naptár bejegyzéshez is kapcsolódik. A változás mindegyiket érinti. Valóban frissíted a bejegyzést?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Frissítés megerősítése</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Engedélyezem a kapcsolataimnak a naptárat (csak nézet)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Nem osztja meg a naptárat</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Kapcsolatok naptára</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Előbb vetesse fel magát a kapcsolatlistára, hogy megnézhesse ezt a naptárbejegyzést.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>Nem menthet, törölhet olyan eseményt, amit nem Ön hozott létre!!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Mutasd a naptáraimat ismét!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>Ez az esemény több felhasználó, több naptár bejegyzéshez is kapcsolódik. A változás mindegyiket érinti. Valóban törli a bejegyzést?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Művelet megerősítése</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Belépés a szobába</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Hpzzáférés a konferencia szobához</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>A konferencia szoba és az esemény tárolva lett a privát bejegyzésekhez.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>Először le kell tárolnia az eseményt!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>Ez a szoba nem elérhető. Az esemény a naptárból és a konferencia szoba el lett távolítva !</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Válasszon megjelenő felhasználó nevet</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Vezetéknév</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Keresztnév</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Legalább 4 karakter szükséges! Esetleg a vezeték és keresztnév.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Érvényes e-mail címet adjon meg!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Belépés Facebook azonosítóval</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Felhasználói</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>Facebook azonosítóval lépett be. A profilban adja meg az e-mail címét. Ha nem adja meg az email címét, nem tud üzeneteket fogadni a bejegyzésekről, konferenciákról, más felhasználóktól.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Üzenet</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Ne mutasa újra a profil frissítési üzenetet</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>mtovábbi opciók megjelenítése ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>Új privát üzenet:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Kattintson ide a profil megtekintéséhez ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Válasz</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Szobák és Chat</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>Saját szobák</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>Konferencia szobáim (1-16 résztvevő)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>Webinárium szobáim (1-120 résztvevő)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Tulajdonos Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Adjameg a jelszót</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>Szükséges jogosultsági szint (felhasználó,vagy moderátor, vagy admnisztrátor)</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (Csak SOAP hozzáférés)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Közvetlen betöltés a táblába</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Valóban eltávolítja ezt a táblát? A művelet nem fordítható vissza!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Betöltés a táblába</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Ne felejtse el a felvételt indítani! Legalább egy látogató belépése szükséges a felvétel elindításához.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Felvétel indítása</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Nyíl</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Kör</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Vonal</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Négyszög</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Háromszög</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Szöveg</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Ikonok</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Szabadkézi rajz</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Kiválaszt/Mozgat</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Terület rajzolása</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Kivág/Mozgat</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Nagyató</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Nyomtat</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Visszavon</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Kuka</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Rács hozzáadása</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>File megosztása</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Kijelölő négyzet</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Ikon választása</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Másol</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Kivág</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Beilleszt</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Töröl</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Biztosan törli a tábla tartalmát?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Töltse be a táblába közvetlenül</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Látogatók</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Látogatók kezelése</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Bemutat</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Távoli vezérlés</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Kiad</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Látogató meghívása</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>E-mailben</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>Felhasználó moderátor</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>Felhasználó webkamerájának bekapcsolása</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Terület kitöltés be</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Terület kitöltés ki</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Ugrás a rácsra</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Felvétel engedélyezése</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Várakozás a felvételre</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Felső menü elrejtése</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Videó lejátszása</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Valóban eltávolítja ezt a tartalmat a lapról?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Elfogadja és alkalmazza a felhasználónak ezt</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Tilt</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Aktivitások és műveletek</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Tábla eltávolítása</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>Moderátornak kell lennie, vagy engedéllyel kell rendelkeznie a tábla művletekhez!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Nem engedélyezett</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>kilépett a szobából.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Matematikai ikonok</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>Kategorizálatlan</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Szín stílus</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Minőség</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Tartomány</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>meglátogat</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>narancsvörös</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>középzöld</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>sötétkék</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>világoskék</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>aranyvörös</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>ezüstszürke</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>egyéni</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>jobb</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>feltölt</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>közepes</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Összes mikrofont némít</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Összes mikrofont visszakapcsol</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mások mikrofonjának némítása</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>A moderátor lenémította a mikrofonját, nem kapcsolhatja vissza!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Összes mikrofont némítja?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Biztosan mindent elnémít? A hallgatók nem fogják hallani!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mikrofon helyileg némítja?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Biztosan némítja a mikrofonját? Csak a helyi képernyőn némítja. Nincs hatással a többi hallgatóra, ők hallhatják továbbra is. Csak a moderátor némíthatja le globálisan!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mikrofont globálisan némítja?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Globálisan némítja ezt a látogatót? Nem fogják tovább hallani!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>A hangod be van kapcsolva. Kattints ide, hogy jelezd a moderátornak, ha kapcsolja ki!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>A hangod ki van kapcsolva. Kattints ide, hogy jelezd a moderátornak, ka kapcsolja be</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>szeretném, hogy a moderátor némítsa mindenknél a hangomat.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>szeretném, hogy a moderátor kapcsolja vissza mindenkinél a hangomat.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>a moderátor visszakapcsolta a mikrofonját.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>a moderátor némította a mikrofonját.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Hangja visszakapcsolva. Kattintson ide, ha globálisan némítani akarja!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Hangja némítva. Kattintson ide, ha globálisan vissza akarja kapcsolni!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>A felhasználót a moderátor globálisan némította. Ön nem kapcsolhatja vissza!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Hangját mindenkinél némítja</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Hangját mindenkinél visszakapcsolja</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mikrofont némít</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Mikrofont visszakapcsol</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Hangot mindenkinél némítja</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Hangot mindenkinél visszakapcsolja</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Csak amoderátor tudja globálisan némítani/visszaadni a hangot! A mikrofonja némításához: Kattintson a mikrofon ikonra a panelján!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Szavazás neve</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>Te</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Régebbi szavazások</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>aktív</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Egyszerű diagramm</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Oszlop diagramm</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Adja meg e-mail címét</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>Új üzenet(ek)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Szavazás lezárása</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Biztosan lezárja a szavazást? Nem lehet később szavazni rá.</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Szavazás törlése</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Biztosan törli ezt a szavazást? Az eredmények is törlésre kerülnek.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Nyelv ISO kódja</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Engedi/Tiltja az audio hozzászólást.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Engedélyezi a felhasználónak az audio hozzászólást</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Tiltja a felhasználónak az audio hozzászólást</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>hozzá szeretne szólni, hang eszköz engedélyt kér.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>a moderátor hozzászólási engedélyt adott.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Hozzászólási engedélyt kérek.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Kamera felbontás</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Sávszélességének (Feltöltési irány) megfelelően válassza meg a felbontás. Nagyobb felbontás, nagyobb sávszélességet igényel!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>Nincs engedélye az egyéni Audio/Video kapcsolathoz. Kérjen engedélyt a moderátortól, vagy figyelmeztesse, hogy kapcsolja be a hozzáférését.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>Egyéni audio hozzáférést kérek a hozzászóláshoz!</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Egyéni audio/video kapcsolat velem (kattintson a panelen, vagy F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Mikrofon aktív!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Mikrofon némítva</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Chat elrejtése</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Aktivitások elrejtése</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>File böngésző elrejtése</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Akciók menü elrejtése</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Képernyő megosztás elrejtése</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Tábla elrejtése</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Mutassa a mikrofon jelet a videó panelen</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Felület tulajdonságai</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>Új esemény</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Az eseményhez tartozó link jelszóval védett, a jelszó az eseményhez tartozik, nem a konferencia szobához! Az értesítő az eseményhez kapcsolt kontaktoknak szól és kerül kiküldésre! Amikor megváltoztatja az eseményt, minden alkalommal kiküldésre kerülnek az új linkek új jelszóval. A linkek csak egyszer működnek, a régi jelszók érvénytelenek!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Részletek szerkesztése</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Mutasd a SIP számot</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Hívás</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Mutasd a kapcsolataim eseményeit</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Főoldal!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Előadásai térképe</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Felvételek, interjúk megnézése</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Válassza kis és indítson Web-konferenciát</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Felhasználók kezelése</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Kapcsolatok kezelése, látogatók leválasztása</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Csoportok kezelése</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Konferencia szobák kezelése</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Rendszer beállításainak kezelése</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Cimkék és szavak kezelése</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>LDAP és ADS konfigurációs beállítások</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Rendszer biztonsági mentés Export/Import</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>Moderátornak kell lenned, hogy létrehozhass, feltölthess, módosíthass, táblához adhass filet/könyvtárat.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Szöveg szerkezstése</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publikáció</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Publikálás indítása</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Publikáció befejezése</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publikációs alkalmazás</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publikációs Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Csökkentse a megosztási kép szélességét mielőtt odébb húzza.</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Csökkentse a megosztási magasságot, mielőtt lejebb húzza</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Csökkenti a megoszási képernyő X méretét mielőtt megpróbálja szélesíteni</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Csökkenti a megoszási képernyő Y méretét mielőtt megpróbálja magasítani</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Töltse fel a meosztási streamet külső alkalmazásba(3rd.) pl.: justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Indítsa el a képernyőmegosztást a publikáláshoz</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderátornak kell lennie a felvétel indításához</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>YNincs jogosultsága, hogy egyéni audoi/video kapcsolatot állítson be a látogatókkal. Moderátornak kell lennie, vagy több egyéni kapcsolatának, hogy egyéni mikrofonokat kapcsolhasson be.</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Új file feltöltése</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Megosztási beállítások megnyitása</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>Moderátor alkalmazhatja</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Jelezzen a moderátornak, hogy ossza meg a kameráját/mikrofonját</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Visszacsatolást gyűjt azáltal, hogy létrehoz egy szavazást</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>A régebbi és jelen szavazatok alapján az eredmények</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Válaszol, ha a szavazás ehhez a konferenciához tartozik</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Kamera/Mikrofon beállításai</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Kilép az előadásból</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Külső személy hívása VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Direkt belépési link küldése ehhez a szobához</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Rajztábla beállításainak változtatása</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Maximális feltöltési méret</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Moderátort kéri, hogy ossza meg a tábládat</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Privát chat nyitása</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>Mindenki</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>Vele nem kezdhet privát chatet.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>Már privát shatban van ezzel a felhasználóval.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>DTörli ezt a privát chatet?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Szerverek</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Szerver látogatói a kluszterben</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Szerver neve</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Szerver címe</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Szerver adatai</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>SMS Küldése</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Közzététel. Felhasználó:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>Időt és adatforgalmat takarít meg ha a parancssori admint használja a mentésekhez backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;lépjen be az OM telepített könyvtárába (pl.: /opt/red5)&lt;/li&gt; &lt;li&gt;állítsa meg az OM-et (cmd: ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (backup készítése az aktuális OM -ről)&lt;/li&gt; &lt;li&gt;töltse le az új OM-et&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (A működő OM verziót őrizze meg :))&lt;/li&gt; &lt;li&gt;Csomagolja ki az új OM-et /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' adja meg, ha nem az alapértelmezett DB hozzáférést használja )&lt;/li&gt; &lt;li&gt;OM indítása&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Közös termek minden felhasználó számára</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Közös termek a csoport felhasználói számára</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>A felhasználó termei</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Speciális találkzó szoba étrehozás/módosítás</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>Több cím megadása az alábbiak szerint: vezetéknév1 keresztnév1 &lt;email1&gt;,"vezetéknév2 keresztnév2" &lt;email2&gt;,'vezetéknév3 keresztnév3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Stream hangerő változtatása</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Mikrofon hangerő változtatása</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>A chat moderált</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Üzenet engedélyezése</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel alapértelmezésben nyitva</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Fileok panel alapbértelmezésben nyitva</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Utolsó ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Minden slave küldi a pinget a masternek 3 másodpercenként (konfigurálható). Utolsó slave kevess mint 1 perce érkezett, a mastar használja a slave-t.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>Felhasználó (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Jelszó</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp útvonala</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Aktív</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>URL készítése</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Hálózat tesztelése</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Automatiksan kiválasztja az interjú video ablakot</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Aláhúzott</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Betükészlet</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Alkalmazott betükészlet</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Betü szín</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Session statisztika mutat</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session részletei</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>Rendszer import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Feltöltött fileok és felvételek betöltése a mentásből</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>SIP átvitel engedélyezése a szobában</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Egyéni hangkapcsolatot kezdeményez ezzel a felhasználóval?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Adjameg az időzónáját</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>csoportmunka (n:n) konferencia (1-25 látogatóval)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>moderált (1:n) konferencia (1-150 látogatóval)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interjú (1:1 megbeszélés felvétellel)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Konfigurációs beállító kulcs már létezik, válasszon másikat, vagy szerkessze a meglévőt</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Tartalom mentése, kérem várjon...</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Üdvözöljük</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widgeten megjelenő felhasználói adatok és linkek</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgetek</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>Rólunk</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Név</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Betöltés ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>ma</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>ne küldjön értesítést</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>egyszerű e-mail</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/indonesian.xml b/src/main/webapp/languages/indonesian.xml
new file mode 100644
index 0000000..8b4d74f
--- /dev/null
+++ b/src/main/webapp/languages/indonesian.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Konferensi</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Rapat</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Event</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Seting</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Profil</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Administrasi</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Stop</value>
+  </string>
+  <string id="8" name="record">
+    <value>Rekam</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>File tidak tersedia</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Rekaman dr dosen</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Pengguna terkoneksi:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Mulai Konferensi</value>
+  </string>
+  <string id="13" name="myname">
+    <value>Nama Saya</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>Video Konferensi</value>
+  </string>
+  <string id="15" name="import">
+    <value>Simpan File</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Panggil Ulang</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>Ke File Utama</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>Poling Baru</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>Poling Baru untuk Konferensi.</value>
+  </string>
+  <string id="20" name="question">
+    <value>Pertanyaan:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Model Poling:</value>
+  </string>
+  <string id="22" name="create">
+    <value>Buat</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Catatan: Setiap user terkoneksi akan menerima pesan dangan poling baru.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Buat Poling</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Batal</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Ya/Tidak</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Angka dari 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Poling</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Hanya moderator yang bisa membuat pertanyaan</value>
+  </string>
+  <string id="30" name="vote">
+    <value>Pilihan anda udah tercatat.</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Anda telah melakukan pilihan pada Poling ini.</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Pilih !</value>
+  </string>
+  <string id="33" name="answer">
+    <value>Respon Anda:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Ya</value>
+  </string>
+  <string id="35" name="no">
+    <value>Tidak</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>Yang diinginkan:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Hasil Poling</value>
+  </string>
+  <string id="38" name="question">
+    <value>Pertanyaan:</value>
+  </string>
+  <string id="39" name="results">
+    <value>Hasil:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Jawaban:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>Belum ada poling yang dimulai.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Pilih!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Rapat (4 kursi maksimum)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Konferensi (50 kursi maksimum)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Tipe</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Kursi lainnya</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Sudah dipilih</value>
+  </string>
+  <string id="48" name="enter">
+    <value>masuk</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>Moderator meninggalkan rapat.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Sistem informasi</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Pilih perangkat</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Pilih webcam:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Pilih Mic:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>ok</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>batal</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Anda harus konek kembali.</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Edit seting.</value>
+  </string>
+  <string id="58" name="course">
+    <value>Kursus:</value>
+  </string>
+  <string id="59" name="language">
+    <value>Bahasa:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>ok</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>batal</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>hapus whiteboard</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Anda ingin whitboard di bersihkan sebelum gambar baru ditambahkan?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>Jangan bertanya lagi</value>
+  </string>
+  <string id="65" name="no">
+    <value>Tidak</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Edit seting</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Diperlukan Konfirmasi sebelum membersihkan whiteboard.</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Info Pengguna</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>bersihkan Area Gambar</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Batal</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Ulangi</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Pilih Objek</value>
+  </string>
+  <string id="73" name="text">
+    <value>Tulisan</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Gambar</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Gambar garis</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Gambar garis bawah</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Kotak</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Lonjong</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Panah</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>Hapus item yg dipilih</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Tambahkan ke moderator</value>
+  </string>
+  <string id="82" name="apply">
+    <value>Tambah</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>batal</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Menjadi Moderator</value>
+  </string>
+  <string id="85" name="close">
+    <value>tutp</value>
+  </string>
+  <string id="86" name="italic">
+    <value>cetak miring</value>
+  </string>
+  <string id="87" name="bold">
+    <value>cetak tebal</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>TUNGGU</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>Peserta menginginkan masuk menjadi moderator:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>diterima</value>
+  </string>
+  <string id="91" name="reject">
+    <value>ditolak</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>batal</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Kirimkan permintaan ke beberapa peserta berikut</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Diterima</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Ditolak</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Ganti Moderator</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Anda bukan moderator dalam kursus ini!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Moderator:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>Kelas penuh, coba lagi nanti.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Bentuk Lonjong</value>
+  </string>
+  <string id="101" name="close">
+    <value>tutup</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>entri data salah</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>4 karakter atau lebih; hurup kapital semua!</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>userpass harus lebih dari 4 karakter</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>username sudah terpakai</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>email sudah diregistrasi</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>System error silahkan kontak Admin</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Login</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>User:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Pass:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Bahasa</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Masuk</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Mendaftar</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>User:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Pass:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Ulangi Pass:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Nama Depan:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Nama Belakang:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>Email:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>Negara:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Daftar</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>Batal</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Bukan anggota?</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>Halaman Utama</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>User</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Group</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Organisasi</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Ruang-Rapat</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>publik</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>organisasi</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>masuk</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Login</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Password</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Ulangi Password</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Nama Depan</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Nama Belakang</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>Email</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Ulang tahun</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Jalan/No</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>Kodepos/Kota</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>Negara</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Informasi alamat</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Data User</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>simpan</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Simpan</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>ID USER</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>login</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>nama depan</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>nama belakang</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>selanjutnya</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>sebelumnya</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>hapus rekot</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>batal</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>hapus</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>rekot baru</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>panggil ulang</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>hapus rekot</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>status</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>abaikan</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>aktifkan</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>organisasi</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>kalender</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>tutup</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>ID Organisasi</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>nama</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>user</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>mod</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>admin</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>level user</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>organisasi</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>nama</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>tambahkan organisasi</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>tambahkan organisasi</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>batal</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>tambah</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>hapus organisasi</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>user</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>tambah user</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>hapus user</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>tambah user</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>cari user</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>cari</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>user</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>organisasi</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>masuk</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>ruang konferensi</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Ruang Konferensi</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>id</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Nama</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>publik</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>organisasi</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Ruang Rapat</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>nama</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>tipe</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>publik</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>komentar</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>simpan</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>panggil</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>simpan sebagai</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>nama file</value>
+  </string>
+  <string id="201" name="files">
+    <value>nama file</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>batal</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>simpan</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>salah</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>panggil</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>objek terpanggil</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>sinkronasi klien, harap menunggu:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Panggil data gambar</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>sinkronasi klien, harap menunggu:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>bersihkan area gambar</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>area gambar di bersihkan, semua data akan hilang</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Konfirmasi sebelum panggil file</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Kirim undangan</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Kirim undangan</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Judul</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Penerima</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Pesan</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Kirim</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>Batal</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>batal</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Data User</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>Nama panggilan anda untuk konferensi ini</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>Panggilan</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>nama depan</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>nama belakang</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>email</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>bahasa</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>masuk</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Panggil</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Data sedang dipanggil, tunggu!</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Password salah</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Silahkan masukan dua password yang sama, minimal 6 karakter</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Email salah</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Alamat email yang anda masukan salah</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>Registrasi Komplet</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Akun anda udah dibuat, silahkan login sekarang.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>Anda tidak dapat melakukan sharing layar anda, seseorang sedang melakukannya.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Tidak diperbolekan melakukan Sharing</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Sharing layar anda</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Bandwidth kurang: Anda tidak dapat melakukan sinkronasi. Jika peringatan ini terjadi terus menerus, silahkan meminta moderator untuk menurunkan tingkat kualitas.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Layar dari:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Gambar</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Dokumen</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Chat</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>File</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Anggota</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Ambil dokumen asli</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>Ambil dokumen pdf</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Panggil presentasi ke dalam whiteboard</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Konfigurasi</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Drag Objek ini</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Atur ulang Objek ini</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>dari</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>Ke halaman utama</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>Ke halaman sebelumnya</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>Ke halaman selanjutnya</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>Ke halaman terakhir</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Kecilkan --</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Besarkan ++</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Tuan.</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Nyonya.</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Konfigurasi</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Kunci</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Konfigurasi</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Kunci</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>update terakir</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>diupdate oleh</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>komentar</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>kunci</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>dari</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>User</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>hapus user dari organisasi</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>hapus</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>User ini udah teregistrasi dalam organisasi ini.</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>Berita</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Jalan singkat</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>ke Konferensi</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>ke Auditorium</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Support dan Bantuan</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>laporkan bug!</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>Selebihnya</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Website (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>Mailing List (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Ingat saya</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Konten</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>Home Page saya</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>Jadwal Rapat</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>Jadwal Acara</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Rapat Umum</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Rapat Tertutup</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Acara Umum</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Acara Khusus</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Konten Publik</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Konten Khusus</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Konten Personal</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Moderasi</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Tambahkan ke moderasi</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Poling</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Pilih file</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Seting</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Seting Kamera dan Mic</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Seting Whiteboard</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Keluar</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Kembali ke ruangan</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Keluar</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Lupa password?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Ubah password</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>Lewat Email</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Lewat Login</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>Email Anda</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Login Anda</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Kirim email dengan alamat ubah password</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>Email tidak ditemukan. Pastikan email tersebut anda gunakan saat membuat akun.</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Silahkan masukan alamat email yang lain atau Username</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>Tidak ada User terkoneksi dengan Username ini</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>Email yang berisi informasi alamat baru telah dikirim ke email anda, silahkan cek email anda. Jika anda belum mendapatkan email, pastikan pada baigan seting spaming pada konfigurasi email anda dan kirimkan email lagi.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Salah</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Pesan</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Hash tidak valid. User tidak ditemukan.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Isi Ulang Password Anda</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Login</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>ubah Password</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>Password baru</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>Tulis lagi Password anda</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>Pasword berbeda, silahkan ulangi lagi.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>4 karakter atau lebih, huruf kapital bermasalah!</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Password sudah di seting. Anda dapat login sekarang.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Kesalahan belum terlacak. Silahkan laporkan ke Team Servis.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Username tidak ditemukan</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Password tidak valid</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Sukses keluar dari sistem</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Halaman depan registrasi dimatikan.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>EMail tidak valid</value>
+  </string>
+  <string id="340" name="registration">
+    <value>Duplikasi nama file, silahkan menggunakan nama lain</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>nama file terlalu pendek</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Alamat tidak dapat disimpan</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>User telah ditambahkan tetapi anda harus memasukan kedalam salah satu organisasi, jika tidak akan mengakibatkan gagal login.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Rekot baru</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>Tidak ditemukan Kolom dengan ID kolom ini.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>Tidak ditemukan Label untuk kolom tersebut.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Dibutuhkan Autorisasi sebagai Admin</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Editor Bahasa</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Bahasa</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>ID Label</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Nama Label</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Nilai</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Nilai Kolom</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>Nama Label</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>Nilai Label</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>ID Label</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>Anda hanya bisa hapus label bukan kolom! Anda tidak dapat menghapus kolom, mungkin ada label didalam bahasa yang lain.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>ID Label tidak valid. Kolom FieldLanguagesvalues_Id tidak dapat ditemukan dalam database.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Anda tidak dapat menghapus kolom ini. Anda hanya dapat menghapus label bukan kolom. Tidak ada label yang dipanggil sekarang, Mungkin belum dipiliah salah satu kolom atau tidak ada definisi label untuk kolom yang dimaksud pada pilihan bahasa ini.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>expor</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Anda harus keluar dahulu untuk melihat perubahan.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Tambah pilihan bahasa</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>hapus pilihan bahasa</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Tambah pilihan bahasa</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Nama</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>Tambah pilihan bahasa</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Buat Arsip</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>awal</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>sebelumnya</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>selanjutnya</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>akhir</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>user yang berbicara (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>mode suara nyala/mati</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>Sistem</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Setingan Anda</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>Hola,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Edit profil anda</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Pesan baru:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Kirim Gambar baru</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Expor - Data User</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>Semua organisasi harus sudah tersedia!</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>mulai expor</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>Berdasarkan organisasi</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>mulai expor</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Ambil - Data User</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>Pilih users.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>ambil</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Expor dalam XML - File ini dapat di gunakan untuk : - Kontribusi kedalam project - Kirim ke sistem lain - Arsip - Opsi pilihan - Simpan ke dalam direktori bahasa - direktori untuk instalasi berikutnya</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Pilih file bahasa yang akan di ambil. Pilih bahasa yang benar dari form pilihan! Apapun nama filenya, yang dipilih yang akan diambil kedalam pilihan bahasa ini!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>Ambil - pilih file</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Simpan sebagai</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Nama:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>komentar:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>simpan</value>
+  </string>
+  <string id="395" name="record">
+    <value>Proses rekam</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Proses rekam Tampilan</value>
+  </string>
+  <string id="397" name="record">
+    <value>Proses rekam dari Ruangan umum atau khusus</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Users :</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Terkoneksi:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Users dalam ruangan ini:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>panggil ulang</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>Ruangan ini penuh, silahkan mencoba lagi dalam beberapa menit.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>Klik pada Judul ruangan untuk melihat detilnya</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Chat dengan user dalam ruangan ini:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Ruangan:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Users dalam ruangan ini::</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>mulai sejak:</value>
+  </string>
+  <string id="409" name="record">
+    <value>Putar Rekaman</value>
+  </string>
+  <string id="410" name="record">
+    <value>Durasi:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Tanggal:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Modus Rekam! Anda tidak dapat melakukan perubahan. Ini adalah file hasil rekaman!</value>
+  </string>
+  <string id="413" name="record">
+    <value>Putar hasil rekam</value>
+  </string>
+  <string id="414" name="record">
+    <value>Play / Pause</value>
+  </string>
+  <string id="415" name="record">
+    <value>Mulai Rekam</value>
+  </string>
+  <string id="416" name="record">
+    <value>Stop Rekam</value>
+  </string>
+  <string id="417" name="record">
+    <value>Merekam:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>Seseorang sedang merekam sekarang :</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Sedang Rekam! Oleh:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>Batal</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>Proses rekam dibatalkan dan tidak disimpan.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>lanjut</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Tutup jendela ini dan lanjut rekam</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>Ubah warnagaris</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Pilih Warna</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Aktipkan / Matikan warnagaris</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>Ubah isianwarna</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Aktipkan / Matikan isianwarna</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Ubah besaran garis</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>tutup</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>ubah ukuran huruf</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Hapus Rekaman</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Tamu</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>Oleh:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Nama</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Ruang</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Tanggal</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>batal</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>mulai</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Nama</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Tanggal</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Hapus Log chat di Server</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Chat</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>kirim pesan</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Emoticons</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Emoticons</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Pilih Perangkat</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Audio dan Video</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Hanya Audio</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Hanya Video</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>Tidak ada Audio/Video (gambar saja)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>Tidak ada Audio/Video dari PC anda, hanya akan menampilkan gambar anda dari profile. Kemungkinan anda mengalami gangguan koneksi internet atau koneksi internet anda lambat.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>Sn</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>Sl</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>Rb</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>Km</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>Jm</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>Sb</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>Mg</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Senin</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Selasa</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Rabu</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Kamis</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Jumat</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Sabtu</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Minggu</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>CW</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Kelendar mingguan</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>Januari</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>Pebruari</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>Maret</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>April</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>Mei</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>Juni</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>Juli</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>Agustus</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>September</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>Oktober</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>November</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>Desember</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Kalendar</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Peserta</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Tampilkan Setingan Layout</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Lebar | Tinggi</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Jendela Video</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Jendela Moderation</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Jendela Whiteboard</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Fungsikan</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Lebar | Tinggi</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Jendela Files,Chat,Partizipants</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Fungsikan</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Lebar | Tinggi</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>Moderator meninggalkan Ruang. Tidak ada moderator sekarang. Anda dapat menjadi moderator atau menunggu sebentar.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>Tidak ada moderator sekarang, tetapi ada beberapa peserta. Anda harus menjadi moderator atau tunggu.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Komentar tentang $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>Undangan - $APP_NAME</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Pesan dari peserta:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Pesan:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Klik link berikut untuk bergabung dalam rapat :</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Klik disini untuk masuk ke rapat</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>Jika anda mengalami kesulitan, silahkan copy dan paste link berikut ke browser :</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>Daptar ke $APP_NAME</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Data anda:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Login:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Pass:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>Email:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>Tim - $APP_NAME</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>Daftar ke $APP_NAME</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>Seting ulang password -$APP_NAME</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Klik link berikut untuk menseting ulang password :</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Klik disini untuk isi password baru</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>ika anda mengalami kesulitan dengan link, silahkan copy dan paste ke browser :</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>Seting ulang password $APP_NAME</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Silahkan isi tanggal dengan benar, contoh 24-12-2001 (dd-mm-yyyy)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Silahkan isi alamat email dengan benar, contoh nama@alamat.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Silahkan masukan angka pecahan, contoh 1,05</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Silahkan masukan angka, contoh 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Silahkan masukan nomor telepon, contoh +62 274 486883</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Silahkan masukan format jam, contoh 12:24 (hh:mm)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Terproteksi dengan Password</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Password</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Periode Valid</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Terakhir</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Periode</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Sekali waktu</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Valid dari :</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Valid sampai dengan:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Undangan ke $APP_NAME</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Tidak ada Undangan untu Kode undangan ini!</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>Undangan sudah terpakai, tidak bisa dipergunakan lagi.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>Kode - Undangan tidak valid.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Password:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Periksa Password</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Password salah!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>audio_video</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Syncronize Audio/Video</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Login was correct, but the Session you tried is not active or stored on the Server. You have to get a new SessionId and retry login.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>The SessionId is not loggedin or has no Admin rights. The SOAP Gateway needs an User with Admin-Rights to embed new Users.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>This Session has no Remoteuser-Data connected. Wether you did not call the SOAP-Gateway before accessing the Application or you are usnig a wrong Session-ID</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>The recorder is currently Beta!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>x-axis</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>y-axis</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>w</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>width</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>h</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>height</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Change Transparency</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Browser Open</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Browser Close</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>The Connection to the Server is lost. You need to reload the Application or/and check your Network.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Pointer</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Synchronizing</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Synchronizing Users, please wait</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Download as SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Download as PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Download as JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Download as PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Download as TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Reminder:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Category:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Repetition:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>none</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Location:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Start</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>End</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Title:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Comment:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Invite People</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Daily</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Monthly</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Yearly</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Appointment-end is after of appointment-start!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Please insert a title!</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Activate this if you write in a right to left language (inverse word order)</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Dashboard</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Watch recorded Meetings or Events</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Meeting - Make a conference with 4 (up to 16) Users&lt;br/&gt;everybody will have audio + video access</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Event - Make a conference with up to 200 participents&lt;br/&gt;Only the Moderator will have audio/video</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Create users, rooms, organizations&lt;br/&gt; + change configuration</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Users in this Room now</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Login</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Loading Document. Please wait untill all Client have been synchronized.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Upload complete, converting Document ...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Start Upload</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Upload and Import Dialog. Please select a File from your Disk.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Cancel</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Select File</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Connections</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Value</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Streamid</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Login</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Connected since</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Room / Scope</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Kick User</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Kick User</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Do you really want to kick this Client from the Connection?&lt;br/&gt; This does only remove the Client from the current Room.The Client could re-login again.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Your session has been closed by an Administrator or Moderator.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Phone</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>User is the Moderator of this Room</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>User is allowed to draw on the Whiteboard</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Re) Start Audio/Video or change Device Settings</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Allow this User to draw on the Whiteboard</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Remove ability to draw on whiteboard</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Users</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Files</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Whiteboard</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Chat</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Your account is assigned to multiple Organizations. Please choose one for this Session.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>This room is full at the moment. Please try again later.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Room Type</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Appointment Room</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Server Time</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - Reminder</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Message from User:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Message:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Click this link to participate in the Meetings:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Click here to enter room</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>if you have problems with the link, please copy and paste this to your browser:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>search intern</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>extern users</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>pre name</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>name</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>E-mail</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Confirm logout</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Are you sure you want to logout now?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Actions</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Demo Room</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Demo Time</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Meeting Timer</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>This Room is a Demo Room. To disable this warning you either should get a private meeting room for your personal usage or set up an own Server. You will be automatically logged off in:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Moderated</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Please wait untill the Moderator has entered the Room. The Moderator can be either a Teacher, Admin or the creator of this Room.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Ok</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Incoming Screen Sharing</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>There is a new Screen Sharing incoming from the User:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Start Sharing</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Add new Meeting</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Meeting Room</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Event Room</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderation</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Moderate Users</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Moderate Rooms</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Do you want to change this User to become a Moderator of that Organization?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Please choose an Organization before you try to add a User to it!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organization - Moderator</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Do you really want to delete this User from the Organization?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>This User is Moderator</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>This User is No-Moderator</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Do you want this User to be not a Moderator of this Organization?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Add or delete Users or Rooms within your Organization</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Do you really want to delete this record?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Do you really want to delete this user from your organization? You will only delete the connection between the user and your organization, to really delete the user itself you have to login into the Administration-Panel.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>You cannot delete your own User!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>This Method needs a Adminstration Account to be invoked!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>There was no Session associated with this ID.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>This is an Administrator or Moderator account. You can only edit this account through the Administration Panel.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>To complete your registration please click on the following link. Or copy the URL to your browser bar.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Click to verify your E-Mail</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>No user was found for this Hash.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>This user is already activated!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>You did successfully activate your account!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Login Now</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Your account is not activated. First use the link in the Email you've received during registration.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>You successfully signed up. We've send an EMail with a verification Code to your Mail. Please check your Inbox.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Remove Moderation Role from this User</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Grant Moderation Rights to this User</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>User</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Access to whiteboard</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderator</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Moderation: Please choose any User on the List to grant him access to the Whiteboard, Moderation or Video.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>This User is already Moderator, so he has automatically the right to draw.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>This is you! You cannot remove the Moderation rights from yourself.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Allow this User to Publish his Audio / Video</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Remove Audio/Video of this User</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>I would like to get the moderation of this room</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>I would like to draw on whiteboard</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>I would like to share my Audio/Video</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>You are moderator of this room</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>You are allowed to draw on whiteboard</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>You are allowed to share your Audio/Video</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Message to Moderator</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>The User</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>would like to get the Moderation. Use the status Icons next to the user in the List of Users to add or remove the Moderation.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>would like to draw on whiteboard. Use the status Icons next to the user in the List of Users to add or remove the right to draw anything on the whiteboard.</value>
+  </string>
+  <string id="695" name="695">
+    <value>would like to share his Audio/Video. Use the status Icons next to the user in the List of Users to add or remove the right to share Audio/Video for any User.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>You have to wait untill a Moderator enters the room.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Cancel</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Save</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Day</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Month</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Year</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Upload File</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Refresh</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Trash (Drag and Drop item here)</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>My Files (Home Drive)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Room Files (Public Drive)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Add File</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Delete Folder</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Edit Name</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>New Folder</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Are you sure you want to delete this Item?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Open Document</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Show all Files (Tree View)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Close Document</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Delete File</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>You are not allowed to draw anything on the Whiteboard. You have to become Moderator or at least get the Right to edit Whiteboard. You may ask a Moderator to give you that right.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Document Properties</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Start Client (external)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Start Client (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>A user want to share his screen. Do you want to see it?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>You are currently sharing your Desktop. For stopping the Sharing Session please hit the Stop button in the Sharing Client.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Sharing Session</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>You are already sharing your desktop!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Desktop Viewer</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Exit</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Desktop Sharer</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Click Start to publish your screen</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Start Sharing</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Select your screen area:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Change width</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>The Sharer has finished this session!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Change height</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-Offset</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-Offset</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Width:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Height:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Connection was closed by Server</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Cancel</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Start External</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>If you close this session completely you are not able to restart the viewer for this session.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Confirm Closing Viewer Session</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Share Screen</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Record Session</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Co-Browsing</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Ooops, ... Firefox on Windows does not show clear Co-Browsing. Please use another Browser for using the Co-Browsing feature.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Previous</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Next</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Reload</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Home</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Load</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Add this website as Default website to your Profile.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Test Setup</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Check you Microphone and Camera setup before you enter a room by recording some seconds. You can then replay your recording to check your voice and picture.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Don't show this test anymore</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Cancel</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Start Conference</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Do not ask again</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>You may proceed without testing if you do not plan to publish your voice or picture. Participants without Audio or Video can still use the Whiteboard, share their Desktop or write Chat messages.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="test setup">
+    <value>Level-Meter</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Press Start</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Start Event</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Choose Room</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Check Setup</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="774" name="start view">
+    <value>How to conference</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Start Recording</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Do not show Audio / Video Test (Recording) before entering a Conference</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Public Rooms</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Public Rooms are accessible for all Users.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Private Rooms</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Private Rooms are only accessible for users of the same organization.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>My Rooms</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Rooms in this section are created for personal usage. There are some standard rooms plus the ones that are created through the calendar and have a start and an end date. The rooms created via the calendar are only listed in this section as long as they are valid.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>You have to be moderator to do this.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Apply for moderation</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Apply for whiteboard access</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Apply for camera/microphone access</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>This Session Hash was already used. You cannot use it twice.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>START</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>EXIT</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Do you really want to exit? You might should clear uploaded documents, whiteboard and the chat history.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Exit conference</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Rooms</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Choose a room for a meeting</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>There is an unsaved Event in the Calendar. Please either save it or remove it.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Please add at least one attendee for your meeting!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Do you really want to delete this Event?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Warning</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Add Event</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>Day</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>Week</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>Month</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Description</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Attendees</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, your Web Conferencing Platform. Either follow the Instructions, press the start button to start to conference immediatelly or you goto the Calendar and set up a Conference for the future.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Plan a Meeting</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>To set up a conference you can add a new Event in the Calendar.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Need help?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Restricted</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Search</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Add</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>There is no User selected. Please select an item from the list first and then hit add.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Add Attendee</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Save</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Delete</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Event Details</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Default Moderators</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Name</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>E-Mail</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Add new default Moderator</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Is Super Moderator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>If the Room is moderated, User with Level Moderator or Administrator are automatically Moderator if they enter the Room. If you don't want to specify that and only want a certain User to become Moderator use the Default Moderator option.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>A Super Moderator is always a Moderator when he enters a Room, and nobody can remove the Moderation Flag from him</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Apply Super-Moderation to User</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Remove Super Moderation from User</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>If you add an Organization to the room only users of that Organization have access to it (This is only valid if the isPublic flag is set to false!)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderation</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitations</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organization</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Are you sure?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Do you really want to delete this Item? You have to press the save button to store the changes!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>There is no User selected. Please select first before you add it!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Add new Default Moderator</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Do you want to add the Super Moderation Flag for this User? A Super Moderator is not only Moderator of a Room, but also no other Moderator can remove the Moderation Flag for this User. You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Do you want to remove the Super Moderation Flag for this User? You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>This User is a Super-Moderator. You cannot remove the Moderation flag from a Super-Moderator!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Do you really want to delete this File/Folder?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Delete File/Folder?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Mrs.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Properties</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Show mouse position to viewers</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Share Audio with SIP Applet</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Share Audio with SIP and Video with Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Full-Fit</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>View Screen</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>The user</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>wants to share its screen. Do you want to see it?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Close</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>The Session was closed by the sharing User!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>New Screen Sharing</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimize</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximize</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Recording Timeline</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>My Recordings</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Public Recordings</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Name</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Length</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Date</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>By</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>PLAY</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Main - Video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Recording</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>You may record and share your screen at the same time. To enable others to see your screen just hit the start button on the top. To only record the Session it is sufficient to click start recording.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Start Recording</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Stop Recording</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download the FLV-File</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Room</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Play</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>User has microphone on</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Allow User Questions</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Turn this off to prevent that any user is disturbing you in this room. Effect is that the Button to ask for Moderation ("I have a question") is not visible.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rights</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Download as AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Audio only</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>The have been errors while processing the Recording.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>The Recording is not yet ready for watching. Please retry in a couple of minutes again.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Recorder Message</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP Applet is not Ready</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP-Account Settings</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP settings for each user. You can turn on or off SIP via the Administration &gt; Configuration (Key: enable_sip). The SIP data for each user should be created automatically. You can re-create the data by checking "Re-generate SIP Data"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-User</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Pass</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. You should check the authentification data of your SIP-Provider and the SIP-Account Data for each User. As Administrator you are still able to login and check the Configuration. As User or Moderator you will be blocked from any interaction.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. Contact your Service Team!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Show Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log messages from post recorder process</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Applet Message</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>The SIP-Applet is not ready. Accept the Applet please and click ok!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Get Moderation</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Save Appointment Changes</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointement has been changed. Do you want to save those changes? &lt;br/&gt;&lt;br/&gt;All attendees of the appointment will receive a EMail with the updated date and time (depending on the notification type of this appointment).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>To access other recordings you have to login the $APP_NAME Application.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Choose the User for this Video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available Users for this Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>You are a Moderator in this Interview. You can decide who is speaking in this interview and you can start / stop the recording of the Session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Start Recording</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Stop Recording</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>The recording of the Interview is already started.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>The recording is already stopped or not been started yet.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>The recording for this interview is already started!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Clear objects on current slide only!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the Status bar is send to participants!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make Team-Rooms [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new Team-Room!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new Conference Room ("Team Room") for them. The chosen users will automatically switch to the new Team-Room or get a notification. Team-Room Moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a Moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Username</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new Team-Room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create Team-Room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the Team-Room!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from Team-Room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Roomtype</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the System. The Backup includes all User generated data. The configuration is not included as well as the language labels. Because those values are imported with the System Installer. To update your System, export your old system (1) re-install into a new database the new package (2) and import the Backup file again (3). The Backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share Screen/Record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is Moderator, he can do anything!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/Deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose "Insert" from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about Copy and Paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Kick user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/italian.xml b/src/main/webapp/languages/italian.xml
new file mode 100644
index 0000000..0d38c36
--- /dev/null
+++ b/src/main/webapp/languages/italian.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Conferenza</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Riunione</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Auditorium</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Impostazioni</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Utente</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Amministrazione</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Stop</value>
+  </string>
+  <string id="8" name="record">
+    <value>Registra</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>Nessun file disponibile</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Solo il docente</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Utenti connessi:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Inizia una conferenza</value>
+  </string>
+  <string id="13" name="myname">
+    <value>Il mio nome</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>Video Conferenza</value>
+  </string>
+  <string id="15" name="import">
+    <value>Carica presentazione</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Aggiorna la lista</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>All'archivio principale</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>Nuovo sondaggio</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>Un nuovo sondaggio per la conferenza.</value>
+  </string>
+  <string id="20" name="question">
+    <value>Domanda:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Tipo di sondaggio:</value>
+  </string>
+  <string id="22" name="create">
+    <value>Crea</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Informazione: Ogni utente connesso riceve un messaggio con il nuovo sondaggio.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Crea un sondaggio</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Cancella</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Si/No</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Numerico 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Sondaggio</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Devi essere moderatore per creare una domanda</value>
+  </string>
+  <string id="30" name="vote">
+    <value>Il tuo voto è stato registrato.</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Hai già votato per questo sondaggio.</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Vota!</value>
+  </string>
+  <string id="33" name="answer">
+    <value>La tua risposta:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Si</value>
+  </string>
+  <string id="35" name="no">
+    <value>No</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>Rispondi alle domande:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Risultati del sondaggio</value>
+  </string>
+  <string id="38" name="question">
+    <value>Domanda:</value>
+  </string>
+  <string id="39" name="results">
+    <value>risultati:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Risposte:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>Nessun sondaggio è attivo.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Vota!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Riunione</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Auditorium (massimo 200 partecipanti)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Tipo</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Altri partecipanti</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Già scelto</value>
+  </string>
+  <string id="48" name="enter">
+    <value>entra</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>Il moderatore ha lasciato la riunione.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Informazioni di sistema</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Scegli il dispositivo</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Scegli la webcam:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Scegli il microfono:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>ok</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>annulla</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Devi riconnetterti.</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Modifica le impostazioni.</value>
+  </string>
+  <string id="58" name="course">
+    <value>Corso:</value>
+  </string>
+  <string id="59" name="language">
+    <value>Lingua:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>ok</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>annulla</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Cancella la lavagna</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Vuoi che la lavagna sia pulita prima di aggiungere una nuova immagine?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>Non chiedere ancora</value>
+  </string>
+  <string id="65" name="no">
+    <value>no</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Modifica impostazioni</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Richiesta di conferma prima di pulire la lavagna.</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Informazioni sull'utente</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Pulisci la lavagna</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Annulla le modifiche</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Ripristina le modifiche</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Seleziona un'oggetto</value>
+  </string>
+  <string id="73" name="text">
+    <value>Testo</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Disegna</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Disegna una linea</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Evidenziatore</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Rettangolo</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Ellisse</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Freccia</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>Cancella l'oggetto selezionato</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Sottoponi al moderatore</value>
+  </string>
+  <string id="82" name="apply">
+    <value>applica</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>cancella</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Diventa moderatore</value>
+  </string>
+  <string id="85" name="close">
+    <value>chiudi</value>
+  </string>
+  <string id="86" name="italic">
+    <value>corsivo</value>
+  </string>
+  <string id="87" name="bold">
+    <value>grassetto</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>ATTENDERE</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>Un utente vuole sottoporre al moderatore:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>accetta</value>
+  </string>
+  <string id="91" name="reject">
+    <value>rifiuta</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>cancella</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Invia la richiesta agli utenti seguenti</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Accettata</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Rifiutata</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Cambia moderatore</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Non sei il moderatore per questo corso!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Moderatore:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>La stanza è piena. Spiacenti riprovare più tardi.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Ellisse</value>
+  </string>
+  <string id="101" name="close">
+    <value>chiudi</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>errori nei dati inseriti</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>Il nome utente deve essere di almeno 4 caratteri</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>la password deve essere di almeno 4 caratteri</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>Il nome utente è già in uso</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>L'indirizzo email è già stato usato</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>Errore di sistema, contattare l'amministratore</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Login</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Nome utente:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Password:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Lingua</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Entra</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Iscriviti</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Nome utente:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Password:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Riscrivere:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Nome:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Cognome:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>Email:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>Stato:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Registrati</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>Annulla</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Registrati</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>home</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Utenti</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Gruppi</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Organizzazioni</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Stanze delle conferenze</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>pubblico</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>organizzazione</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>entra</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Login</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Password</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Riscrivere</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Nome</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Cognome</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>Email</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Data di nascita</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Indirizzo/civico</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>C.A.P/Città</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>Stato</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Informazioni</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Dati utente</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>salva</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>salva</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>ID-Utente</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>Login</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>nome</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>cognome</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>mostra prossimo</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>mostra precedente</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>Elimina il record</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>annulla</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>elimina</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>nuovo record</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>aggiorna record</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>elimina record</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>stato</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>disabilitato</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>abilitato</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>organizzazioni</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>calendario</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>chiudi</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>ID-organizzazione</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>nome</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>utente</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>mod</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>amministratore</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>livello utente</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>organizzazione</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>nome</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>aggiungi un'organizzazione</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>aggiungi un'organizzazione</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>annulla</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>aggiungi</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>rimuovi l'organizzazione</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>utente</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>aggiungi un'utente</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>elimina l'utente</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>aggiungi l'utente</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>cerca un utente</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>cerca</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>utente</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>organizzazione</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>entra</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>stanze delle conferenze</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>stanze delle conferenze</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>id</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Nome</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>pubblico</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>organizzazioni</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>stanze delle conferenze</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>nome</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>tipo</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>pubblico</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>commento</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>salva</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>carica</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>salva con nome</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>nome del file</value>
+  </string>
+  <string id="201" name="files">
+    <value>nome del file</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>annulla</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>salva</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>errore</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>caricamento</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>oggetto caricato</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>sincronizzazione con i client, attendere:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Caricamento delle immagini</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>sincronizzazione con i client, attendere:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>pulisci la lavagna</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>pulisci la lavagna, tutte le informazioni su di essa saranno perse</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Conferma prima di caricare il file</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Invia un invito</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Invia un invito</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Soggetto</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Destinatario</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Messaggio</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Invia</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>annulla</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>invia</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>dati utente</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>Il tuo appellativo per la conferenza</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>appellativo</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>nome</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>cognome</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>Email</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>lingua</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>entra</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Caricamento</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Caricamento dati, attendere prego!</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Password sbagliata</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Inserisci due password identiche di minimo 6 caratteri</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Mail sbagliata</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Hai inserito una mail non valida</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>Registrazione completata</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Il tuo profilo è stato creato correttamente. Puoi effettuare il login.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>Non è possibile condividere il tuo desktop in questo momento. Potrebbe essere in condivisione con qualcun'altro</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Condivisione non permessa</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Condivisione desktop</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>larghezza di banda insufficiente: Non sei abilitato a sincronizzare le immagini. i Frames saranno lasciati. Se visualizzi questo messaggio chiedi al moderatore di abbassare la qualità.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>immagine di:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Disegna</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Documento</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Chat</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Files</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Membri</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Scarica il documento originale</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>Scarica il documento PDF</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Carica la presentazione sulla lavagna</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Configurazione</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Muovi quest'oggetto</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Ripristina quest'oggetto</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>di</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>Vai alla prima pagina</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>Vai alla pagina precedente</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>Vai alla prossima pagina</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>Vai all'ultima pagina</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Zoom --</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Zoom ++</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>sig.</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Sig.ra</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Configurazione</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Chiave</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Configurazione</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Chiave</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>Ultimo aggiornamento</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>aggiornato da</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>commenti</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>chiave</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>di</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Utenti</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>Cancella l'utente dall'organizzazione</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>cancella</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>Questo utente è già membro di questa organizzazione.</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>News</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Link veloce</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Vai alla Riunione</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Vai all'Auditorium</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Aiuto e supporto</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Bug!</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>Altre informazioni</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Sito web del progetto (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>Mailing List utenti (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Ricorda utente</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Content</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>Mia Home Page</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>Mie conferenze fissate</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>Miei eventi fissati</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Conferenze pubbliche</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Conferenze private</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Eventi pubblici</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Eventi privati</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Contenuti pubblici</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Contenuti privati</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Contenuti personali</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Moderatore</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Assegna moderatore</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Sondaggio</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Scegli un file</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Impostazioni</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Impostazioni Cam e Mic</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Impostazioni lavagna</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Esci</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Torna alle stanze</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Logout</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Visualizzatore desktop</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Avvia visualizzatore desktop</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>Video e Audio</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Chat</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>Lavagna</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Moderatore</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Files</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>Utenti</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Sondaggio</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>Non ci sono utenti collegati con questo Username</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>Una mail, contenente un link, è stata inviata al tuo indirizzo email, controlla la tua posta. Se non hai ricevuto la mail, controlla il tuo filtro di spam e richiedi nuovamente la mail di conferma.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Errore</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Messaggio</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Hash non valida. Utente non trovato.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Resetta la tua password</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Login</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>cambia password</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>nuova password</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>ripeti la password</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>Le password inserite non sono identiche.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>4 o più caratteri; sensibile alle maiuscole;</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Password impostata. Ora puoi collegarti.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Errore sconosciuto. Contatta il tuo amministratore.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Username non trovato</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Password non valida</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Scollegamento effettuato</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Registrazioni disabilitate.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>EMail non valida</value>
+  </string>
+  <string id="340" name="registration">
+    <value>nome del file duplicato, scegli un altro nome</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>nome di file troppo corto</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Salvataggio di indirizzo non possibile</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>Utente aggiunto, ma deve essere assegnato ad un'organizzazione, altrimenti non potrà collegarsi.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Nuova registrazione</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>Nessun testo trovato con questo ID.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>Nessun valore trovato per questo elemento.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Permessi da amministratore richiesti</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Editor linguaggi</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Linguaggi</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>Identificativo-ID</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Identificativo-Nome</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Valore</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Record</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>Nome dell'identificativo</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>Testo</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>ID</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>Puoi cancellare solo l'identificativo, non il record! Potrebbe essere utilizzato in altri linguaggi.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>ID non valido. l'identificativo del linguaggio non è presente nel database.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Non puoi cancellare questo campo. Puoi solo cancellare il contenuto non il campo. Non ci sono dati contenuti caricati in questo momento, potrebbe non esser stato scelto un campo o non ci sono contenuti impostati per questo linguaggio.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>esporta</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Devi scollegarti per vedere i cambiamenti.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Aggiungi un nuovo linguaggio</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>cancella linguaggio</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Aggiungi nuovo linguaggio</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Nome</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>aggiungi linguaggio</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Backup</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>vai al primo</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>vai al precedente</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>vai al prossimo</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>vai all'ultimo</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>utente parla (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>suono on/off</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>Sistema</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>I tuoi settaggi</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>ciao,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Modifica il profilo</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Nuovi messaggi:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Carica nuove immagini</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Esporta dati utente</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>Le organizzazioni devono esistere tutte!</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>Inizia esportazione</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>Per organizzazione</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>inizia esportazione</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Dati utente - Importazione</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>scegli users.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>importa</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>esporta in XML - Questi file possono essere usati per: - Contribuire al progetto - Importare in altro sistema - Backup - Personalizzazione - Inserire nella directoy dei linguaggi della tua prossima installazione</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Scegli un file di linguaggio da importare. Scegli il giusto linguaggio dalla combobox! Non importa il nome del file, esso sarà importato in questo linguaggio!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>importazione - file scelto</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Salva come</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Nome:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Commento:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>save</value>
+  </string>
+  <string id="395" name="record">
+    <value>Registra</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Visualizzatore delle registrazioni</value>
+  </string>
+  <string id="397" name="record">
+    <value>Registrazioni di stanze private e pubbliche</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Utenti:</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Accedi:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Utenti nella stanza:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>ricarica</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>Questa stanza è piena. Riprova fra qualche minuto.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>premi su una stanza per avere dettagli</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Parla con gli utenti nella stanza:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Stanza:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Utenti in questa stanza:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>fino:</value>
+  </string>
+  <string id="409" name="record">
+    <value>vedi registrazione</value>
+  </string>
+  <string id="410" name="record">
+    <value>Durata:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Data:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Registrazione! Non puoi cambiare nessuna impostazione, è una registrazione!</value>
+  </string>
+  <string id="413" name="record">
+    <value>Vedi questa registrazione</value>
+  </string>
+  <string id="414" name="record">
+    <value>Play / Pause</value>
+  </string>
+  <string id="415" name="record">
+    <value>Avvia registrazione</value>
+  </string>
+  <string id="416" name="record">
+    <value>ferma registrazione</value>
+  </string>
+  <string id="417" name="record">
+    <value>Registrazione:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>C'e' già qualcuno che sta registrando in questo momento:</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Registrazione! dall'utente:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>cancella</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>La registrazione sarà cancellata e non salvata.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>recupera</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Chiudi questa finestra e recupera registrazione</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>cambia colore della linea</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Scegli colore</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Disabilita / Abilita il colore della linea</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>cambia il colore di riempimento</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Disabilita / abilita riempimento colore</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Cambia spessore linea</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>chiudi</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>cambia grandezza carattere</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Cancella registrazione</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Ospite</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>Da:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Nome</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Stanza</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Data</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>cancella</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>inizio</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Nome</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Data</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Cancella i log della chat sul server</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Chat</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>invia messaggio</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Emoticons</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Emoticons</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Scegli i devices da pubblicare</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Audio e Video</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>solo Audio</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>solo Video</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>no Audio/Video (immagine statica)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>Nessun Audio/Video del tuo PC saranno pubblicati, al loro posto sarà visualizzata l'immagine del tuo profilo. Scegli questa impostazione se hai problemi di banda o velocità di Internet.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>LU</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>MA</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>ME</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>GI</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>VE</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>SA</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>DO</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Lunedi</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Martedi</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Mercoledi</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Giovedi</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Venerdi</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Sabato</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Domenica</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>CW</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Calendario settimane</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>Gennaio</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>Febbraio</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>Marzo</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>Aprile</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>Maggio</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>Giugno</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>Luglio</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>Agosto</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>Settembre</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>Ottobre</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>Novembre</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>Dicembre</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Calendario</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Partecipanti</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Mostra i settaggi del layout</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Larghezza | Altezza</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Video-Container</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Moderatore-Container</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Lavagna-Container</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Abilitato</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Larghezza | Altezza</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Files,Chat,Partecipanti - Container</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Abilitato</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Larghezza | Altezza</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>Il moderatore ha lasciato la stanza. Nessuno è presente in questo momento. Tu puoi diventare moderatore o attendere.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>Non ci sono moderatori in questa stanza, ma ci sono dei partecipanti. Puoi diventare moderatore o attendere.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Feedback $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Invito</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Messaggio dall'utente:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Messaggio:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Clicca questo link per partecipare alla conferenza:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Clicca qui per entrare nella stanza</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>se hai problemi con il link, per favore copia e incolla questo sul browser:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME SignUp</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>I tuoi dati:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Login:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Pass:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>EMail:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME-Team</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME Accesso</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - Re-imposta password</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Clicca su questo link per inserire una nuova password:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Clicca qui per inserire una nuova password</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>se hai problemi con il link, per favore copia e incolla questo sul browser:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>Reset della password di $APP_NAME</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>inserisci una data valida, per esempio 24.12.2001 (dd.mm.yyyy)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Inserisci un email valido, per esempio name@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Inserisci un numero decimale, per esempio 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Inserisci un numero (Intero), per esempio 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Inserisci un numero di telefono valido, per esempio ++39 0461 123123</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Inserisci un orario valido, per esempio 12:23 (hh:mm)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Protetto da password</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Password</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Periodo di validità</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Senza scadenza</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Periodo</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Una volta</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Valido da:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Valido fino:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Invito a $APP_NAME</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Nessun invito presente per questo codice.</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>L'invito è già stato utilizzato. Questo tipo di invito non può essere riutilizzato.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>Il codice di invito non è valido.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Password:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Controlla password</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Password non valida!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Browser</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Sincronizzazione Audio/video</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Accesso corretto, ma la sessione non è attiva o presente sul server. Sarà assegnato una nuova sessione e dovrà essere ripetuto l'accesso.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>La sessione non è collegata o non ha diritti di amministrazione. The SOAP Gateway necessita di un utente con diritti di amministrazione per creare un utente..</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>La sessione non ha utenti remoti-dati connessi. Potrebbe esser stato chiamato il SOAP-Gateway prima di effettuare l'accesso all'applicazione o è stato utilizzato un id di sessione errato.</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>La registrazione è in fase beta!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>x-axis</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>y-axis</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>w</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>larghezza</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>h</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>altezza</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Cambia trasparenza</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Apri browser</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Chiudi browser</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>La connessione al serve è stata persa. E' necessario ricollegarsi all'applicazione e/o controllare la rete.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Puntatore</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Sincronizzazione</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Sincronizzazione utenti, attendere</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>Scarica come SVG</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>Scarica come PNG</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>Scarica come JPG</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>Scarica come PDF</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>Scarica come TIF</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Promemoria:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Categoria:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Ripetizione:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>niente</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Località:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Inizio</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>Fine</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Titolo:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Commento:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Invita partecipanti</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Giornaliero</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Mensile</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Annuale</value>
+  </string>
+  <string id="578" name="alert">
+    <value>La data di fine è dopo quella di inizio dell'appuntamento!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Inserisci un titolo!</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Attiva le la scrittura del tuo linguaggio va da destra a sinistra (inverte ordine parole)</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Cruscotto</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Guarda eventi e conferenze registrate</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Conferenza - Conferenze con 4 (fino a 16) utenti; tutti hanno accesso a audio e video</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Eventi - Conferenze fino a 200 utenti. Solo il moderatore ha audio e video</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Crea utenti, stanze, organizzazioni + cambia configurazione</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Utenti nella stanza ora</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Login</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Caricamento documento. Aspettare finché i client sono sincronizzati.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Caricamento completato, conversione del documento in corso ...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Inizia caricamento</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Carica e importa il dialogo. Scegli un file dal disco.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Annulla</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Scelta file</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Connessioni</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Value</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Streamid</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Login</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Connesso da</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Room / Scope</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Caccia utente</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Caccia utente</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Sei sicuro di voler chiudere la connessione a questo client? Il client sarà solamente rimosso dalla stanza corrente. Il client potrà ricollegarsi.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>La tua sessione è stata chiusa da un amministratore o moderatore</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Telefono</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>L'utente è il moderatore di questa stanza</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>L'utente è abilitato a disegnare sulla lavagna</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Ri) attiva Audio/Video o cambia le impostazioni</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Abilita questo utente a disegnare sulla lavagna</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Rimuovi possibilità di disegnare sulla lavagna</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Utenti</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Files</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Lavagna</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Chat</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Il tuo account è assegnato a più organizzazioni. Per favore scegline una per questa sessione.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>Questa stanza è piena al momento. Per favore riprova più tardi.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Tipo stanza</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Stanza appuntamenti</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Ora del server</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>Agenda</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Messaggio dall'utente:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Messaggio:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Clicca questo link per partecipare alla videoconferenza:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Clicca qui per entrare nella stanza</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>se hai problemi con il link, copia e incolla sul browser il seguente link:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>ricerca interna</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>utente esterno</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>titolo</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>nome</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>E-mail</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Conferma uscita</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Sei sicuro di voler uscire?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Azioni</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Stanza demo</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Orario demo</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Orario meeting</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>Questa stanza è una stanza demo. Per disabilitare questo avviso è necessario attivare una conferenza privata per uso ristretto o attivare un server dedicato. Sarai automaticamente sconnesso in:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>moderata</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Perfavore attendi finchè un moderatore si collega alla stanza. Il moderatore può essere un insegnante, un amministratore o il creatore della stanza.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Ok</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Condivisione schermo in ingresso</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>C'è una nuova condivisione di schermo in ingresso dall'utente:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Inizia condivisione</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Aggiungi nuovo meeting</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Stanza meeting</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Stanza eventi</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderazione</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Utenti moderatori</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Stanze moderate</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Vuoi modificare questo utente a diventare moderatore dell'organizzazione?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Perfavore scegli un organizzazione prima di aggiungere l'utente!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organizzazione - Moderatori</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Sei sicuro di cancellare questo utente dall'organizzazione?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>Questo utente è moderatore</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>Questo utente non è moderatore</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Vuoi che questo utente non sia moderatore dell'organizzazione?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Aggiungi o cancella utenti o stanze della tua organizzazione</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Sei sicuro di cancellare questo record?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Sei sicuro di cancellare questo utente dall'organizzazione? Sarà cancellato il legame tra utente e organizzazione, per cancellare completamente l'utente devi collegarti al pannello di amministratore.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>Non puoi cancellare te stesso!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>Questo metodo ha bisogno di un account da amministratore per essere chiamato!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>Non ci sono sessioni collegate a questo ID.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>Questo utente è un amministratore o moderatore. Puoi editare questo account solo dal pannello di amministratore.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>Per completare la registrazione per favore clicca sul seguente link o copia l'url nel tuo browser.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>clicca per convalidare la tua e-mail</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Nessun utente è stato trovato per questo codice hash.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Questo utente è già stato attivato!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Hai attivato correttamente il tuo utente!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Collegati ora</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Il tuo utente non è attivo. Per prima cosa clicca sul link presente nella mail ricevuta nel processo di registrazione</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>Ti sei registrato correttamente. E' stata inviata una e-mail per la verifica dell'utente. Per favore controlla la tua posta in arrivo.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Rimuovi il ruolo di moderatore da questo utente.</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Assegna i diritti di moderatore a questo utente.</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>Utente</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Accesso alla lavagna virtuale</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderatore</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Moderazione: Per favore scegli dalla lista gli utenti a cui assegnare i diritti della lavagna virtuale, la moderazione o il video.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>Questo utente è già moderatore, ha automaticamente i diritti di disegno.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>Sei tu! Non puoi toglierti i diritti di amministratore.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Abilita questo utente a pubblicare Video e Audio</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Rimuovi Audio e Video a questo utente</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>Vorrei ricevere la moderazione di questa stanza.</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>Vorrei disegnare sulla lavagna virtuale</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>Vorrei condividere il mio Audio e Video</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>Sei il moderatore della stanza</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>Hai i diritti di disegnare sulla lavagna virtuale</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>Sei abilitato a inviare il tuo Audio e Video</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Messaggio al moderatore</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>L'utente</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>vorrebbe diventare moderatore. Utilizza l'icona di stato vicino all'utente nella lista utenti per aggiungere e rimuovere i moderatori.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>vorrebbe disegnare sulla lavagna virtuale. Utilizza l'icona di stato vicino all'utente nella lista utenti per aggiungere e rimuovere i diritti di uso della lavagna virtuale.</value>
+  </string>
+  <string id="695" name="695">
+    <value>vorrebbe condividere i suoi Audio e Video. Utilizza l'icona di stato vicino all'utente nella lista utenti per aggiungere e rimuovere i diritti di condivisione Audio e Video.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>Devi attendere fino a quando un moderatore entra nella stanza.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Annulla</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Salva</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Giorno</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Mese</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Anno</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Carica File</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Aggiungi directory</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Aggiorna</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Cestino</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>Miei File (Spazio privato)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Files della stanza (Spazio pubblico)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Aggiungi File</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Aggiungi directory</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Cancella directory</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Modifica nome</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>Nuova directory</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Sei sicuro di voler cancellare questo elemento?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Ricerca</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Ricerca</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Apri documento</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Mostra tutti i file (Visualizzazione ad albero)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Chiudi documento</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Cancella file</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>Non sei autorizzato a disegnare sulla lavagna. Devi diventare moderatore o almeno ricevere i diritti per lavorare sulla lavagna. Chiedi al moderatore l'assegnazione di questi diritti.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Proprietà documento</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Avvia Client (external)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Avvia Client (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>Un utente vuol condividere il suo schermo. Vuoi vederlo?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>Ora stai condividendo il tuo desktop. Per interrompere la sessione di condivisione, premi sul bottone di Stop nella finestra di condivisione.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Condivisi sessione</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>Stai già condividendo il tuo desktop!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Visualizzatore Desktop</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Esci</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Condividi Desktop</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Clicca avvia per pubblicare il tuo video</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Avvia condivisione</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Ferma condivisione</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Scegli l'area del tuo schermo:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Cambia larghezza</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>La condivisione ha finito la sessione!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Cambia altezza</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-Offset</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-Offset</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Larghezza:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Altezza:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Connessione chiusa dal Server!</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Annulla</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Avvia External</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>If you close this session completely you are not able to restart the viewer for this session.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Confirm Closing Viewer Session</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Condividi schermo</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Registra sessione</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Co-Browsing</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Ooops, ... Firefox on Windows does not show clear Co-Browsing. Please use another Browser for using the Co-Browsing feature.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Precedente</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Avanti</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Ricarica</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Home</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Carica</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Imposta questo sito come default nel tuo profilo.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Test Setup</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Verifica le impostazioni del tuo microfono e della tua cam prima di entrare nella stanza, registrando qualche secondo. Potrai poi rivedere la registrazione per verificare l'audio e il video.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Non mostrare più questo test</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Annulla</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Avvia conferenza</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Non richiedere ancora</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>Puoi procedere senza verificare se hai intenzione di non condividere la tua voce e video. I partecipanti senza audio e video possono ugualmente utilizzare la lavagna, condividere il proprio desktop o scrivere messaggi in chat.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="767">
+    <value>Level-Meter</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Premi Avvia</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Avvia conferenza</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Avvia evento</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Scegli la stanza</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Verifica impostazioni</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Avvia conferenza</value>
+  </string>
+  <string id="774" name="start view">
+    <value>Come fare una videoconferenza:</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Avvia registrazione</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Non mostrate il test Audio/Video (registrazione) prima di entrare in una conferenza</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Stanze pubbliche</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Le stanze pubbliche sono accessibili da tutti gli utenti</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Stanze private</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Le stanze private sono accessibili solo dagli utenti della rispettiva organizzazione.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>Mie stanze</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Le stanze di questa sezione sono create per usi personali. Sono create attraverso il calendario e hanno una data di inizio e di fine. Sono visibili in questa sezione solo per la durata della loro validità.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>Devi essere moderatore per fare questa azione.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Assegna moderatore</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Assegna accesso alla lavagna</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Assegna accesso a cam/microfono</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>Questa hash di sessione è già in uso. Non puoi accedere contemporaneamente.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>INIZIO</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>ESCI</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Sei sicuro di voler uscire? Potresti dover pulire i documenti caricati, la lavagna e la chat</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Esci conferenza</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Stanze</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Scegli la stanza per un meeting</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>E' presente un evento non salvato nel calendario. Per favore salvalo o cancellalo.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Si prega di aggiungere almeno un partecipante per la riunione!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Sei sicuro di voler cancellare questo evento?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Attenzione</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Aggiungi evento</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>giorno</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>settimana</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>mese</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Descrizione</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Partecipanti</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, la tua piattaforma di videoconferenza. Segui le istruzioni premendo il tasto inizio per cominciare subito una videoconferenza, o vai al calendario e pianifica una conferenza per il futuro.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Pianifica una conferenza</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>Per pianificare una conferenza tu puoi aggiungere un evento nel calendario. Per ogni evento sarà creata un apposita stanza. Tu e tutti gli invitati riceverete una mail con un link per accedere alla stanza.&lt;br/&gt;&lt;br/&gt;Puoi scegliere tra diverse tipologie di stanze con differenti tipologie di layout e mdoerazione. Puoi anche scegliere tra diversi tipi di notifica via email che avvisano dell'evento in calendario.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Serve aiuto?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Ristretto</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Cerca</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Aggiungi</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>Non ci sono utenti selezionati. Si prega di scegliere un elemento dalla lista e poi premere aggiungi.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Aggiungi partecipanti</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Salva</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Cancella</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Dettagli evento</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Default Moderators</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Name</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>E-Mail</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Add new default Moderator</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Is Super Moderator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>If the Room is moderated, User with Level Moderator or Administrator are automatically Moderator if they enter the Room. If you don't want to specify that and only want a certain User to become Moderator use the Default Moderator option.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>A Super Moderator is always a Moderator when he enters a Room, and nobody can remove the Moderation Flag from him</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Apply Super-Moderation to User</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Remove Super Moderation from User</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>If you add an Organization to the room only users of that Organization have access to it (This is only valid if the isPublic flag is set to false!)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderation</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitations</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organization</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Are you sure?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Do you really want to delete this Item? You have to press the save button to store the changes!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>There is no User selected. Please select first before you add it!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Add new Default Moderator</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Do you want to add the Super Moderation Flag for this User? A Super Moderator is not only Moderator of a Room, but also no other Moderator can remove the Moderation Flag for this User. You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Do you want to remove the Super Moderation Flag for this User? You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>This User is a Super-Moderator. You cannot remove the Moderation flag from a Super-Moderator!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Do you really want to delete this File/Folder?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Delete File/Folder?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Mrs.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Properties</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Show mouse position to viewers</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Share Audio with SIP Applet</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Share Audio with SIP and Video with Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Full-Fit</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>View Screen</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>The user</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>wants to share its screen. Do you want to see it?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Close</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>The Session was closed by the sharing User!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>New Screen Sharing</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimize</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximize</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Recording Timeline</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>My Recordings</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Public Recordings</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Name</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Length</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Date</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>By</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>PLAY</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Main - Video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Recording</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>You may record and share your screen at the same time. To enable others to see your screen just hit the start button on the top. To only record the Session it is sufficient to click start recording.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Start Recording</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Stop Recording</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download the FLV-File</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Room</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Play</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>User has microphone on</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Allow User Questions</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Turn this off to prevent that any user is disturbing you in this room. Effect is that the Button to ask for Moderation ("I have a question") is not visible.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rights</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Download as AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Audio only</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>The have been errors while processing the Recording.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>The Recording is not yet ready for watching. Please retry in a couple of minutes again.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Recorder Message</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP Applet is not Ready</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP-Account Settings</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP settings for each user. You can turn on or off SIP via the Administration &gt; Configuration (Key: enable_sip). The SIP data for each user should be created automatically. You can re-create the data by checking "Re-generate SIP Data"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-User</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Pass</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. You should check the authentification data of your SIP-Provider and the SIP-Account Data for each User. As Administrator you are still able to login and check the Configuration. As User or Moderator you will be blocked from any interaction.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. Contact your Service Team!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Show Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log messages from post recorder process</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Applet Message</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>The SIP-Applet is not ready. Accept the Applet please and click ok!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Get Moderation</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Save Appointment Changes</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointement has been changed. Do you want to save those changes? &lt;br/&gt;&lt;br/&gt;All attendees of the appointment will receive a EMail with the updated date and time (depending on the notification type of this appointment).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>To access other recordings you have to login the $APP_NAME Application.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Choose the User for this Video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available Users for this Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>You are a Moderator in this Interview. You can decide who is speaking in this interview and you can start / stop the recording of the Session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Start Recording</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Stop Recording</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>The recording of the Interview is already started.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>The recording is already stopped or not been started yet.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>The recording for this interview is already started!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Clear objects on current slide only!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the Status bar is send to participants!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make Team-Rooms [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new Team-Room!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new Conference Room ("Team Room") for them. The chosen users will automatically switch to the new Team-Room or get a notification. Team-Room Moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a Moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Username</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new Team-Room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create Team-Room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the Team-Room!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from Team-Room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Roomtype</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the System. The Backup includes all User generated data. The configuration is not included as well as the language labels. Because those values are imported with the System Installer. To update your System, export your old system (1) re-install into a new database the new package (2) and import the Backup file again (3). The Backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share Screen/Record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is Moderator, he can do anything!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/Deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose "Insert" from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about Copy and Paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Kick user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/japanese.xml b/src/main/webapp/languages/japanese.xml
new file mode 100644
index 0000000..90be463
--- /dev/null
+++ b/src/main/webapp/languages/japanese.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>会議室</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>会議</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>講演</value>
+  </string>
+  <string id="4" name="settings">
+    <value>設定</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>ユーザー</value>
+  </string>
+  <string id="6" name="admin">
+    <value>管理</value>
+  </string>
+  <string id="7" name="stop">
+    <value>停止</value>
+  </string>
+  <string id="8" name="record">
+    <value>録画</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>利用可能なファイルがありません</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>講師による録画</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>接続済みユーザー:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>会議開始</value>
+  </string>
+  <string id="13" name="myname">
+    <value>名前</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>ビデオ会議</value>
+  </string>
+  <string id="15" name="import">
+    <value>アップロード</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>ファイルリスト表示更新</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>ファイルリストへ</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>新規投票</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>新規投票</value>
+  </string>
+  <string id="20" name="question">
+    <value>質問:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>投票タイプ:</value>
+  </string>
+  <string id="22" name="create">
+    <value>作成</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>ヒント: 接続中の全参加者に対して、投票を促すメッセージを送信します</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>投票の作成</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>キャンセル</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>はい/いいえ</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>1~10の数字</value>
+  </string>
+  <string id="28" name="poll">
+    <value>投票</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>質問を作成するには司会者になる必要があります</value>
+  </string>
+  <string id="30" name="vote">
+    <value>投票が登録されました</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>投票済みです</value>
+  </string>
+  <string id="32" name="voting">
+    <value>投票する</value>
+  </string>
+  <string id="33" name="answer">
+    <value>あなたの回答:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>はい</value>
+  </string>
+  <string id="35" name="no">
+    <value>いいえ</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>質問内容:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>投票結果閲覧</value>
+  </string>
+  <string id="38" name="question">
+    <value>質問:</value>
+  </string>
+  <string id="39" name="results">
+    <value>結果:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>回答:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>開始されている投票はありません</value>
+  </string>
+  <string id="42" name="votings">
+    <value>投票</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>ミーティング</value>
+  </string>
+  <string id="44" name="conference">
+    <value>会議</value>
+  </string>
+  <string id="45" name="type">
+    <value>タイプ</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>他の席</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>既に選択されています</value>
+  </string>
+  <string id="48" name="enter">
+    <value>入室</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>司会者が退室しました</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>システム情報</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>デバイス選択</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Webカメラ:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>マイク:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>はい</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>キャンセル</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>再接続が必要です。</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>デバイス設定の編集</value>
+  </string>
+  <string id="58" name="course">
+    <value>コース:</value>
+  </string>
+  <string id="59" name="language">
+    <value>言語:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>OK</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>キャンセル</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>ホワイトボードのクリア</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>ホワイトボードをクリア</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>次回から入力を省略</value>
+  </string>
+  <string id="65" name="no">
+    <value>いいえ</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>設定の編集</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>ホワイトボードをクリアする前に確認を要求</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>ユーザー情報</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>描画領域のクリア</value>
+  </string>
+  <string id="70" name="undo">
+    <value>取り消し</value>
+  </string>
+  <string id="71" name="redo">
+    <value>繰り返し</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>オブジェクト選択</value>
+  </string>
+  <string id="73" name="text">
+    <value>文字列</value>
+  </string>
+  <string id="74" name="paint">
+    <value>自由線</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>直線</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>下線</value>
+  </string>
+  <string id="77" name="rect">
+    <value>四角形</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>楕円</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>矢印</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>削除</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>司会者になる</value>
+  </string>
+  <string id="82" name="apply">
+    <value>適用</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>キャンセル</value>
+  </string>
+  <string id="84" name="mod">
+    <value>司会者になる</value>
+  </string>
+  <string id="85" name="close">
+    <value>閉じる</value>
+  </string>
+  <string id="86" name="italic">
+    <value>イタリック</value>
+  </string>
+  <string id="87" name="bold">
+    <value>ボールド</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>待機中</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>司会者希望のユーザー:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>許可</value>
+  </string>
+  <string id="91" name="reject">
+    <value>拒否</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>キャンセル</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>次のユーザーにリクエストを送信</value>
+  </string>
+  <string id="94" name="accept">
+    <value>許可されました</value>
+  </string>
+  <string id="95" name="reject">
+    <value>拒否されました</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>司会者の変更</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>あなたは司会者ではありません。</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>司会者:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>この会議室は満室です。</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>楕円</value>
+  </string>
+  <string id="101" name="close">
+    <value>閉じる</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>入力データエラー</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>ユーザー名は最低4文字以上必要です</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>パスワードは最低4文字以上必要です</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>そのユーザー名は既に使われています</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>そのメールアドレスは既に登録されています</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>システムエラー。管理者に連絡してください。</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>ログイン</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>ユーザー:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>パスワード:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>言語</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>ログイン</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>サインアップ</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>ユーザー:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>パスワード:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>パスワード再入力:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>名:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>姓:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>メールアドレス:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>国名:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>登録</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>キャンセル</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>登録</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>ホーム</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>ユーザー管理</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>グループ</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>組織管理</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>会議室一覧</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>公開</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>組織</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>入室</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>ログイン名</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>パスワード</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>パスワード再入力</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>名</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>姓</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>メールアドレス</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>誕生日</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>市町村/番地</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>郵便番号/都道府県</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>国名</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>その他情報</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>ユーザープロフィール</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>保存</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>保存</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>ユーザーID</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>ログイン名</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>名</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>姓</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>次</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>前</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>削除</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>キャンセル</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>削除</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>新規作成</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>更新</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>削除</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>ステータス</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>無効</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>有効</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>組織</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>カレンダー</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>閉じる</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>組織-ID</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>名前</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>ユーザー</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>司会者</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>管理者</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>ユーザーレベル</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>組織</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>名前</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>組織の追加</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>組織の追加</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>キャンセル</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>追加</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>組織の削除</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>ユーザー</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>ユーザー追加</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>ユーザー削除</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>ユーザー追加</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>ユーザー検索</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>検索</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>ユーザー</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>組織</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>入室</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>会議室管理</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>会議室</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>id</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>名前</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>公開</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>組織</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>会議室</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>名前</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>タイプ</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>公開</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>コメント</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>保存</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>ロード</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>名前を付けて保存</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>ファイル名</value>
+  </string>
+  <string id="201" name="files">
+    <value>ファイル名</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>キャンセル</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>保存</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>エラー</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>ロード中</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>オブジェクトがロードされました</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>クライアント同期中、待機中のクライアント:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>イメージデータロード中</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>クライアント同期中、待機中のクライアント:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>ホワイトボードクリア</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>ホワイトボードの内容がクリアされます。</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>ファイルロード前の確認</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>招待メールを送信</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>招待メールを送信</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>件名</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>相手</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>メッセージ</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>送信</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>キャンセル</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>発言</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>ユーザーデータ</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>この会議の別名</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>別名</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>名</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>姓</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>メールアドレス</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>言語</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>入室</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>ロード中</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>データロード中。お待ちください。</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>パスワードが間違っています</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>4文字以上の同一のパスワードを2回入力してください</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>メールアドレスが間違っています</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>メールアドレスが無効です</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>登録完了</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>アカウントが作成されました。ログイン可能です。</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>ただいまデスクトップ共有ができません。誰かが既に共有しています。</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>共有は許可されていません。</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>画面の共有/録画</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>帯域不良: 画面の同期ができません。フレームが落ちます。この警告が頻発する場合、品質を落とすように司会者に依頼してください。</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>画面:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>ペイント</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>ドキュメント</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>チャット</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>ファイル</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>メンバー</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>オリジナルドキュメントのダウンロード</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>PDFドキュメントのダウンロード</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>プレゼンテーションをホワイトボードにロード</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>グローバル設定</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>ドラッグ</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>サイズ変更</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>/</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>最初へ</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>前へ</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>次へ</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>最後へ</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>縮小</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>拡大</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Mr.</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Ms.</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>グローバル設定</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>キー</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>設定</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>キー</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>最終更新日</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>更新者</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>コメント</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>キー値</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>/</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>ユーザー</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>組織からユーザーを削除</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>削除</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>このユーザーは既にこの組織のメンバーです。</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>ニュース</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>リンク</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>会議室リスト</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>講演室リスト</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>ヘルプ・サポート</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://mail-archives.apache.org/mod_mbox/openmeetings-user/</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>バグ報告</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>続き・・・</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>プロジェクトWebサイト</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>ユーザーメーリングリスト</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>次回から入力を省略</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>コンテンツ</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>ダッシュボード</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>カレンダー</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>スケジュール済みイベント</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>パブリック会議</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>プライベート会議</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>パブリックイベント</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>プライベートイベント</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>パブリックコンテンツ</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>プライベートコンテンツ</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>パーソナルコンテンツ</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>司会者</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>質問があります</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>投票</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>フィル選択</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>設定</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>カメラとマイクの設定</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>ホワイトボード設定</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>退室する</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>会議室一覧に戻る</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>ログアウト</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>パスワードを忘れた</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>パスワードのリセット</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>メールでリセット</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>ログインでリセット</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>メールアドレス</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>ログイン名</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>パスワード・リセット用リンクを含むメールを送信する</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>指定されたメール・アドレスが見つかりません。アカウント作成時に指定したメール・アドレスを指定してください。</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>メール・アドレスまたはユーザー名を入力してください。</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>このユーザー名で接続するユーザーはありません。</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>専用リンクを含むメールをあなたのメール・アドレスに対して送信しました。メール受信箱をご確認ください。もし受信できない場合は、スパムとして除外されている可能性があります。その場合はスパム設定を見直し、再度、確認メールを送信してください。</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>エラー</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>メッセージ</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>ハッシュ値が不正です。ユーザーが見つかりません。</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>パスワードのリセット</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>ログイン</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>パスワード変更</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>新しいパスワード</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>パスワード再入力</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>パスワードが合っていません。</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>4文字以上必要です。大文字小文字の区別があります。</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>パスワードが設定されました。ログイン可能です。</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>未知のエラーです。管理者に報告してください。</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>ユーザー名が見つかりません。</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>パスワードが無効です。</value>
+  </string>
+  <string id="337" name="logout">
+    <value>ログアウト完了</value>
+  </string>
+  <string id="338" name="registration">
+    <value>フロントエンド登録は無効です。</value>
+  </string>
+  <string id="339" name="registration">
+    <value>無効なメールアドレスです。</value>
+  </string>
+  <string id="340" name="registration">
+    <value>ファイル名が重複しています。別の名前にしてください。</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>ファイル名が短すぎます。</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>アドレスが保存できませんでした。</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>ユーザーは追加されました。このユーザーは少なくとも一つの組織に所属させる必要があります。</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>新規作成</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>このフィールドIDのフィールドが見つかりません。</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>このフィールドのラベルが見つかりません。</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>管理者権限が必要です。</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>言語エディタ</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>言語</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>ラベルID</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>ラベル名</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>値</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>フィールド値</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>ラベル名</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>値</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>ラベルID</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>ラベルを削除しました。</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>ラベルIDが無効です。</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>このフィールドは削除不可です。</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>エクスポート</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>変更結果を反映するには再ログインが必要です。</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>新しい言語の追加</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>言語の削除</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>新しい言語の追加</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>名前</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>言語の追加</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>バックアップ</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>最初へ</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>前へ</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>次へ</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>最後へ</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>ユーザーが話し中(マイク権の与奪をするにはここをクリック)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>音声オン/オフ</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>システム</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>設定</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>ユーザー:</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>プロフィール編集</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>新しいメッセージ:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>画像アップロード</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>ユーザーのエクスポート</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>すべてのユーザーをエクスポートします。</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>全ユーザーエクスポート</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>ユーザーを組織ごとにエクスポートします:</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>組織別ユーザーのエクスポート</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>ユーザーのインポート</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>インポートファイル(users.xml)の選択</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>インポート</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>XMLファイルにエクスポート 主な用途: - プロジェクトへのコントリビュート - 他のシステムへのインポート - バックアップ - カスタマイズ languagesディレクトリにコピーして、 再インストールした後に反映されます</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>インポートする言語ファイルを選択してください。 ファイル名に関わらず選択したものがインポートされます。</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>インポート - ファイル選択</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>名前を付けて保存</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>名前:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>コメント:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>保存</value>
+  </string>
+  <string id="395" name="record">
+    <value>録画</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>録画ファイル</value>
+  </string>
+  <string id="397" name="record">
+    <value>パブリック/プライベート会議室の録画ファイル</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>入室者数:</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>参加者数:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value>会議室リスト</value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>会議室内のユーザー:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>更新</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>この会議室は満員です。</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>詳細表示</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>会議室内のユーザーとチャット:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>会議室:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>会議室にいるユーザー:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>入室時刻:</value>
+  </string>
+  <string id="409" name="record">
+    <value>録画ファイルの再生</value>
+  </string>
+  <string id="410" name="record">
+    <value>長さ:</value>
+  </string>
+  <string id="411" name="record">
+    <value>日付:</value>
+  </string>
+  <string id="412" name="record">
+    <value>再生中です。画面上では何も変更できません。これは録画ファイルです。</value>
+  </string>
+  <string id="413" name="record">
+    <value>録画ファイルの再生</value>
+  </string>
+  <string id="414" name="record">
+    <value>再生 / 一時停止</value>
+  </string>
+  <string id="415" name="record">
+    <value>録画開始</value>
+  </string>
+  <string id="416" name="record">
+    <value>録画停止</value>
+  </string>
+  <string id="417" name="record">
+    <value>録画:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>現在、他の人が録画中です。</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>録画中です。実行ユーザーは:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>キャンセル</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>録画はキャンセルされ、保存されません。</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>再開</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>このウィンドウを閉じ、録画を再開します</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>線の色</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>色選択</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>線の色変更の有効/無効</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>塗りつぶし</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>塗りつぶし色変更の有効/無効</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>線の太さ</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>閉じる</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>フォントサイズ変更</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>録画ファイルの削除</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>ゲスト</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>作成者:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>名前</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>会議室</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>日付</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>キャンセル</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>開始</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>名前</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>日付</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>チャット記録の削除</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>チャット</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>メッセージ送信</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>顔文字</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>顔文字</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>デバイスの選択</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>音声/映像</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>音声のみ</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>映像のみ</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>音声/映像なし(静止画像)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>このPCから音声も映像も送信されません。代わりにユーザープロフィールの画像が表示されます。 このオプションは、ネットワーク帯域に問題がある場合や、インターネット接続が著しく遅い場合に選択してください。</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>月</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>火</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>水</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>木</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>金</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>土</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>日</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>月曜</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>火曜</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>水曜</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>木曜</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>金曜</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>土曜</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>日曜</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>週番</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>週番号</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>1月</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>2月</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>3月</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>4月</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>5月</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>6月</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>7月</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>8月</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>9月</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>10月</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>11月</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>12月</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>カレンダー</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>定員</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>レイアウト設定の表示</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>横(x) | 縦(y)</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>幅 | 高さ</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>動画画面ブロック</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>司会者ブロック</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>ホワイトボードブロック</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>有効</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>横(x) | 縦(y)</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>幅 | 高さ</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>チャット、ファイル、メンバーブロック</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>有効</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>横(x) | 縦(y)</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>幅 | 高さ</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>司会者は退室しましたので主催者が不在です。司会者になるか他の人が司会者になるのをお待ちください。</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>この会議室には、参加者はいますが司会者がいません。司会者になるか他の人が司会者になるのをお待ちください。</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>$APP_NAME フィードバック</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - 会議参加依頼</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>宛先ユーザー:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>メッセージ:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>会議に参加するには:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>会議室に入室するにはここをクリックしてください。</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>リンクが動作しない場合、ブラウザに下記URLをコピー&amp;ペーストしてください。:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME サインアップ</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>あなたの情報:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>ログイン名:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>パスワード:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>メールアドレス:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME-チーム</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME サインアップ</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - パスワードリセット</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>新しいパスワードを入力するにはこのリンクをクリックしてください:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>新しいパスワードを入力するにはここをクリックしてください。</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>リンクが動作しない場合、ブラウザにコピー&amp;ペーストしてください。:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME パスワードリセット</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>正しいフォーマットで日付を入力してください。(例)24.12.2001 (日.月.年)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>正しいメールアドレスを入力してください。(例) name@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>実数を入力してください。(例) 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>整数を入力してください。(例) 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>正しい電話番号を入力してください。(例) ++81 0123 123123</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>正しい時刻を入力してください。(例)12:23 (時:分)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>パスワード保護する</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>パスワード</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>利用期間</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>エンドレス</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>期間指定</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>ワンタイム</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>開始:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>終了:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>$APP_NAME 会議参加依頼</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>この招待コードで利用可能な招待はありません。</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>その招待はすでに使われています。このタイプの招待は再利用ができません。</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>この招待コードは無効です。</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>パスワード:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>パスワードチェック</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>パスワードが間違っています。</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>ブラウザ</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>音声/ビデオの同期処理</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>ログインには成功しましたが、セッションの取得に失敗しました。新しいセッションを取得するために再度ログインしてください。</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>このセッションでは操作できません。SOAP Gatewayはアドミン権限が必要です。</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>このセッションはもう有効ではありません。アプリケーションにアクセスする前にSOAP-Gatewayを呼び出したか、使っているセッションIDが正しくないようです。</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>この機能はベータ版です</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>x軸</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>y軸</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>w</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>幅</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>h</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>高さ</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>透過率変更</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>ブラウザ開く</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>ブラウザ閉じる</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>サーバへの接続が切断されました。アプリケーションの再ロードを行うか、またはネットワーク接続を確認してください。</value>
+  </string>
+  <string id="557" name="557">
+    <value>ポインタ</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>同期しています</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>ユーザーを同期しています。しばらくお待ちください。</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;SVGとしてダウンロード&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;PNGとしてダウンロード&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;JPGとしてダウンロード&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;PDFとしてダウンロード&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;TIFとしてダウンロード&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>リマインダ:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>カテゴリ:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>繰り返し:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>無し</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>場所:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>開始</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>終了</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>タイトル:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>備考:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>参加者</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>毎日</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>毎月</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>毎年</value>
+  </string>
+  <string id="578" name="alert">
+    <value>開始時刻は終了時刻よりも前でなければなりません。</value>
+  </string>
+  <string id="579" name="alert">
+    <value>タイトルを入力してください!</value>
+  </string>
+  <string id="580" name="580">
+    <value>右から左方向へ書く言語</value>
+  </string>
+  <string id="581" name="581">
+    <value>右から左方向へ書く言語の場合</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>ダッシュボード</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>録画済みのミーティング/イベントを視聴する</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>ミーティング - 4名(最大16名)までの会議&lt;br/&gt;参加者全員が音声+ビデオを利用できます</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>イベント - 最大200名までの会議&lt;br/&gt;司会者だけが音声/ビデオを利用できます</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>ユーザー、会議室、組織を作成する&lt;br/&gt; + 構成を変更する</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>この会議室に入室中のユーザー</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>ログイン</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>ドキュメントをロードしています。全クライアントの同期が完了するまでしばらくお待ちください。</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>アップロード完了。ドキュメントを変換しています...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>アップロードを開始する</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>アップロード/インポートを行います。ローカル・ディスク上のファイルを選択してください。</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>キャンセル</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>ファイルを選択する</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>接続</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>値</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>ストリームID</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>ログイン</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>接続開始時刻</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>会議室 / スコープ</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>ユーザー追放</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>ユーザーを追放</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>本当にこのユーザーを追い出してよろしいですか?&lt;br/&gt; 追い出したとしても、ユーザーは単にこの会議室から追い出されるだけです。ユーザーは、再度ログインすることができます。</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>管理者または司会者によって、セッションが切断されました。</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>電話</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>会議室の司会進行権限</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>ホワイトボードの利用可否</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>音声/ビデオを開始(再開)する、またはデバイス設定を変更する</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>ホワイトボードの利用を許可する</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>ホワイトボードの利用を禁止する</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>ユーザー</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>ファイル</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>ホワイトボード</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>チャット</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>あなたのアカウントは複数の組織に所属しています。このセッションで使用する組織を選択してください。</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>会議室は現在満室です。間を置いて再入室してください。</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>会議室タイプ</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>会議室</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>サーバ時刻</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - リマインダ</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>メッセージ送信者:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>メッセージ:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>ミーティングに参加するには、このリンクをクリックしてください:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>入室するにはこのリンクをクリックしてください</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>リンクが機能しない場合は、下記URLをブラウザにコピー・ペーストしてください:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>内部ユーザー検索</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>外部ユーザー</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>名</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>姓</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>メール・アドレス</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>ログアウトの確認</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>ログアウトしてよろしいですか?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>アクション</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>デモ・ルーム</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>デモ時間</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Meeting Timer</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>この会議室は、デモ用です。この警告を非表示にするためには、個人使用向けにプライベート会議室を用意するか、新たにミーティング・サーバーを設置する必要があります。自動的に退室します:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>司会権保持者が仕切る</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>司会者が入室するまでしばらくお待ちください。司会者は本会議室の管理者/作成者/講師になります。</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Ok</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>新規画面共有</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>新着の画面共有があります。送信者:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>共有を開始する</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>新規ミーティングを追加する</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>ミーティング・ルーム</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>イベント・ルーム</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>管理</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>ユーザー管理</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>会議室管理</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>このユーザーを所属組織の司会者に設定してよろしいですか?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>所属組織を指定してください。</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>組織 - 司会者</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>このユーザーを所属組織から除外してよろしいですか?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>このユーザーは司会者です</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>このユーザーは司会者ではありません</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>このユーザーを所属組織の司会者から除外してよろしいですか?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>所属組織内にユーザーまたは会議室を追加・削除する</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>削除してよろしいですか?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>このユーザーをあなたの所属組織から除外してよろしいですか?この操作は、ユーザーを所属する組織から除外するだけです。このユーザーをシステムから削除するためには、管理者パネルにログインする必要があります。</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>あなた自身を削除することはできません!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>管理者でなければ実行できません!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>このIDに紐付くセッションがありませんでした。</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>このユーザーは管理者、または司会者アカウントです。このアカウントは、管理者パネル上でしか変更できません。</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>登録を完了するためには、下記のリンクをクリックしてください。あるいは下記URLをブラウザにコピー・ペーストしてください。</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>メールを確認するにはここをクリックしてください</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>No user was found for this Hash.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>ユーザーは既に有効化されています!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>アカウントの有効化が完了しました。</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>ログインしてください</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>アカウントが有効化されていません。アカウント登録時に受信したメール中のリンクをクリックしてアカウントを有効化してください。</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>サインアップが完了しました。登録メールアドレスに対して確認コードを送付しましたので、メール受信箱をご確認ください。</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>司会者権限を剥奪する</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>司会者権限を付与する</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>ユーザー</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>ホワイトボード・アクセス</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>司会者</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>ホワイトボード使用権限、司会者権限、ビデオ共有権限を付与するユーザーを選択してください。</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>このユーザーは既に司会者権限を有するため、ホワイトボード使用権限を有しています。</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>自分自身から司会者権限を剥奪することはできません。</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>ビデオ共有権限を付与する</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>ビデオ共有権限を剥奪する</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>質問があります</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>ホワイトボードを使いたい</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>ビデオ・音声を共有したい</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>あなたは司会者です</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>ホワイトボードの使用を許可されています</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>ビデオ・音声の共有を許可されました</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>司会者へメッセージを送信</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value></value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>さんが、司会者(話者)権限を要求しています。ユーザー一覧のユーザー名右側にあるステータス・アイコンを使って司会者権限の与奪を行います。</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>さんが、ホワイトボードの使用を要求しています。ユーザー一覧のユーザー名右側にあるステータス・アイコンを使ってホワイトボード使用権限の与奪を行います。</value>
+  </string>
+  <string id="695" name="695">
+    <value>さんが、ビデオ・音声の共有を要求しています。ユーザー一覧のユーザー名右側にあるステータス・アイコンを使ってビデオ共有権限の与奪を行います。</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>司会者が入室するまでしばらくお待ちください。</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>キャンセル</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>保存</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>日</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>月</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>年</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>ファイルをアップロードする</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>フォルダを追加する</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>リフレッシュ</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>ゴミ箱 (アイテムをここにドラッグ&amp;ドロップ)</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>私のファイル (ホーム・ドライブ)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>会議室のファイル (パブリック・ドライブ)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>ファイルを追加する</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>フォルダを追加する</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>ファイル/フォルダを消去する</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>名前を編集する</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>新規フォルダ</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>このアイテムを消去してよろしいですか?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>検索</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>検索</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>ドキュメントを開く</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>全てのファイルを表示する (ツリー・ビュー)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>ドキュメントを閉じる</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>ファイルを消去する</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>ホワイトボードに対する書き込みが許可されていません。書き込みをするには、司会者になるか、書き込み権限を付与してもらう必要があります。司会者に権限付与を依頼してください。</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>ドキュメント・プロパティ</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>クライアントを開始 (外部プログラム使用)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>クライアントを開始 (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>ユーザーがデスクトップ共有を提供しています。画面を閲覧しますか?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>現在、あなたのデスクトップは共有されています。デスクトップ共有を停止する際は、共有クライアント上の停止ボタンを押してください。</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>セッション共有</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>あなたのデスクトップは既に共有されています!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>デスクトップ・ビューア</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>終了</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>デスクトップ共有</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>開始をクリックして画面を共有します</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>共有を開始する</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>共有を停止する</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>共有する画面領域を選択してください:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>幅を変更する</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>画面共有提供者がセッションを終了しました。</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>高さを変更する</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X オフセット</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y オフセット</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>幅:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>高さ:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>サーバによって接続が切断されました。</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>キャンセル</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>外部ビューアを開始</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>ビューアを完全に閉じてしまうと、本セッション中はビューアを再開することができません。</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>ビューア終了確認</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>画面を共有する</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>録画する</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>並行ブラウジング</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Windows版Firefoxでは並行ブラウジング機能をクリアに表示することができません。他のブラウザをご利用ください。</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>前へ</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>次へ</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>リロード</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>ホーム</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>ロード</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>このウェブサイトをあなたのデフォルト・ウェブサイトに設定する。</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>設定のテスト</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>入室する前に、マイクとカメラの設定を確認してください。まず録画・録音を数秒間実施してください。続いてそれを再生し、録画・録音状態が適正であることをご確認ください。</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>以降このテスト画面を表示しない</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>キャンセル</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>会議を開始する</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>以降表示しない</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>録画</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>再生</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>音声・画像を送信する予定が無い場合はテストを省略することができます。音声・画像を利用しない参加者も、ホワイトボード、デスクトップ共有、チャットを利用することは可能です。</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>停止</value>
+  </string>
+  <string id="767" name="767">
+    <value>レベル・メータ</value>
+  </string>
+  <string id="768" name="start view">
+    <value>「開始」を押してください</value>
+  </string>
+  <string id="769" name="start view">
+    <value>会議を開始する</value>
+  </string>
+  <string id="770" name="start view">
+    <value>イベントを開始する</value>
+  </string>
+  <string id="771" name="start view">
+    <value>会議室を選択する</value>
+  </string>
+  <string id="772" name="start view">
+    <value>設定を確認する</value>
+  </string>
+  <string id="773" name="start view">
+    <value>会議を開始する</value>
+  </string>
+  <string id="774" name="start view">
+    <value>使用方法:</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>録画/録音品質のテスト</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>入室の際に音声/ビデオのテスト画面を表示しない</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>パブリック会議室</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>パブリック会議室はだれでもアクセスすることができます。</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>プライベート会議室</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>プライベート会議室は、同じ組織に所属する参加者のみ入室することができます。</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>私の会議室</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>このセクションの会議室は個人使用(または少人数使用)目的です。開始・終了時刻を指定して作成します。会議室が有効である期間、カレンダーに表示されます。</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>司会者以外の方は実行できません。</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>司会者権限を許可</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>ホワイトボードへのアクセスを許可</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>カメラ・マイクへのアクセスを許可</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>This Session Hash was already used. You cannot use it twice.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>開始</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>終了</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>終了してよろしいですか? 終了しても、アップロード済みのドキュメント、ホワイトボード、チャット内容は消去されずに残ることにご注意ください。</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>終了確認</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>会議室</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>会議室を選択してください。</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>未保存のイベントがあります。保存するか、削除してください。</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>最低一人以上の参加者を選択してください!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>このイベントを削除してよろしいですか?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>警告</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>イベントを追加する</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>日表示</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>週表示</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>月表示</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>概要</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>参加者</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME (オープン・ミーティングス) ウェブ会議プラットホーム</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>会議を予約する</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>イベントをカレンダーに追加して会議を設定します。イベントのそれぞれについて会議室が自動生成されます。</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>お困りですか?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>大人数向け会議室</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>検索</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>追加</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>ユーザーが選択されていません。一覧から選択して「追加」を押してください。</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>参加者を追加</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>保存</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>削除</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>イベント詳細</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>デフォルト司会者</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>特権</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>姓名</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>Eメール</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>デフォルト司会者を追加</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>は特権司会者です</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>この項目が選択されている場合、司会進行権保持者(または管理者)は入室によって自動的に司会者権限を与えられます。会議の際、特定のユーザーを司会者に指定したい場合は、この項目を選択しないでください。</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>特別司会進行権保持者は、入室によって自動的に司会者権限を与えられます(他のユーザーがこのユーザーから司会者権限を奪い取ることはできません)。</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>このユーザーに特別司会進行権を付与する</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>このユーザーの特別司会進行権を剥奪する</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>組織を会議室に登録すると、登録された組織に所属するユーザーのみがその会議室に入室することができます。(「公開」が選択されていない場合(つまり非公開の場合)のみ適用)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>司会進行</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>制限</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>組織</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>よろしいですか?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>選択された項目を削除してよろしいですか?変更した内容は、保存する必要があります。続いて保存ボタンを押してください。</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>ユーザーが選択されていません。追加するユーザーを選択してください。</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>司会者を追加する</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>このユーザーに特別司会進行権を付与しますか?特別司会進行権保持者は、会議室の司会者になることができます(他のユーザーは特別司会進行権保持者から司会権限を奪い取ることはできません)。変更した内容は、保存する必要があります。続いて保存ボタンを押してください。</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>このユーザーの特別司会進行権を剥奪しますか?変更した内容は、保存する必要があります。続いて保存ボタンを押してください。</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>この参加者は、特別司会進行権を付与されています。あなたは、特別司会進行権保持者から当該権利を剥奪することはできません。</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>このファイル/フォルダを削除してよろしいですか?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>ファイル/フォルダを削除しますか?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Mrs.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>プロパティ</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>ビューア上でマウス・ポインタを表示する</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>SIPアプレットと音声を共有する</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>SIPと音声を、Flashと画像を共有する</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>画面サイズに合わせる</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>デスクトップを表示する</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>ユーザー「</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>」さんがデスクトップ共有を要求してます。表示しますか?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>閉じる</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>ズーム</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>画面が共有ユーザーによって閉じられました!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>一時停止</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>新規画面共有</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>最小化</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>最大化</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>ビデオ</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>タイムライン</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>私の録画</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>パブリック録画</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>備考</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>名称</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>全長</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>日時</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>作成者</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>再生</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>メイン - ビデオ</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>録画</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>デスクトップの共有だけでなく録画もできます。デスクトップを公開するためには「共有を開始する」ボタンを押してください。録画をするためには「録画を開始する」をクリックしてください。</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>録画を開始する</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>録画を停止する</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>FLV形式でダウンロードする</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>会議室</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>再生</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>停止</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>User has microphone on</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>共有を停止する</value>
+  </string>
+  <string id="879" name="room config">
+    <value>質疑を許可する</value>
+  </string>
+  <string id="880" name="room config">
+    <value>質疑を許可すると、「質問があります」ボタンが表示されます。</value>
+  </string>
+  <string id="881" name="room config">
+    <value>権限</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>AVI形式でダウンロードする</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw スクリーン・ビデオ</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>音声のみ</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>The have been errors while processing the Recording.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>録画視聴の準備がまだ整っていません。数分後に再実行してください。</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>ログ:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>作成者メッセージ</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIPアプレットの準備が完了していません。</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP アカウント設定</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>ユーザー毎にSIPを設定します。</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP ユーザー</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip パスワード</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip 認証ID</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>SIPゲートウェイにログインできませんでした。SIPプロバイダの認証情報、および各ユーザーのSIPアカウント情報を確認してください。管理者でログインして、構成を確認してください。(一般ユーザーはブロックされます)</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>SIPゲートウェイにログインできませんでした。サービス管理者にお問い合わせください。</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>SIPゲートウェイにログインしています ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>SIPゲートウェイにログインしています ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>ログを表示する</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>録画終了時の変換処理のログ</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-アプレット・メッセージ</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>SIPアプレットの準備が完了していません。アプレットを承認してOKボタンを押してください。</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>司会者になる</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>予定の変更を保存する</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>予定が変更されました。変更を保存しますか?</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>他の録画を見るためには、$APP_NAMEにログインする必要があります。</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>ビデオ表示するユーザーを選択</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available Users for this Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>あなたはこのインタビューの司会者です。あなたは、話者を選択したり、録画・録音の開始・停止をすることができます。</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>録画・録音を開始</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>録画・録音を停止</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>インタビュー録画は既に開始されています。</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>インタビュー録画は既に停止しているか、まだ開始されていません。</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>インタビュー録画は既に開始されています。!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>キャンセル</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>インタビュー終了時の変換処理には、インタビュー1分あたり5分を要します。現在の処理の進捗は:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>SIPデータを生成するためには、パスワードを再入力してください</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>SIPデータを再生成する</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>このファイル/フォルダを、それ自身のサブフォルダに移動することはできません。</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>ホーム・ドライブ使用量</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>パブリック・ドライブ使用量</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>各ユーザーにライセンスを付与する際、使用期限を設定するか、最大使用量制限(分で指定)を設定することができます。</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>ライセンスを検証する</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>使い放題コース</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>有効期限</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>残り秒数</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>合計時間</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>ライセンスの有効期限が切れました。新たにライセンスを購入してください。(分単位ライセンス、または「使い放題コース」ライセンスがあります)</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>購入する</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>ユーザー・ライセンス情報</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>情報</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>閉じる</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>ライセンスの有効期限が切れました。新たにライセンスを購入してください。(分単位ライセンス、または「使い放題コース」ライセンスがあります)</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>ライセンス設定</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>分単位でウェブ会議の利用権を購入することが出来ます。&lt;br/&gt;&lt;br/&gt; または、3~12ヶ月の定額利用権を購入することが出来ます。&lt;br/&gt;&lt;br/&gt;招待状(会議室に直接入室可能なリンク)の送付、および外部の参加者をともなう、カレンダーからの会議室作成機能は、定額利用権でのみ提供されます。</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>60分利用権 9.99€(分当り16セント)を購入</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>5時間利用権 19.99€(分当り6セント)を購入</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>3ヶ月利用権 29.99€(月当り9.99セント)を購入</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>6ヶ月利用権 39.99€(月当り6.66セント)を購入</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>分単位利用権</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>定額利用権</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>無制限ライセンス</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>ライセンス有効期限:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>分単位利用権を購入済みです。残り:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>新しいライセンスを購入してください。</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>専用ミーティング・サーバーをお考えですか?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>$APP_NAMEのインストール、あるいはMoodle/SugraCRM、ウェブサイトやイントラネットとの統合をお考えなら、Prizingsへご相談を!インストール当り500ユーロから承ります。</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>メッセージを送信</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>返信先:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>メッセージ:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>送信</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Prizings コンタクト先はこちら。</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>クレジットカード詳細</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>名</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>姓</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>クレジットカードタイプ</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISAカード</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>マスターカード</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>ディスカバーカード</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>アメリカン・エクスプレス</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>クレジットカード番号</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>有効期限</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>カード確認番号</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>請求先</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>住所</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>市区町村</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>国</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>州 (米国のみ)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>郵便番号</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>数量</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>送信</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>ステップ1: $APP_NAME - 支払いフォーム</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>Eメール</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>送信して購入</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>クリックして購入</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>ステップ3:$APP_NAME 支払い - 内容をご確認ください</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>お名前</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>$APP_NAMEのご利用ありがとうございました!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>分</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>月</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>ユーロ</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>状態</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>納品書</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>このメール・アドレスは既に他のユーザーに使用されています。</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP設定</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>会議番号、およびPINは、OpenXG RPCゲートウェイ経由で自動生成されます。</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP番号</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>現在表示中のスライド内のオブジェクトだけを消去!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>ステータス・バーに入力されたURLのみが参加者に送付されます!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>チーム・ルームの作成 [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>作成するチーム・ルームに所属させるユーザーを選択してください。</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>メンバーを指定して、新しい小会議室 (チーム・ルーム) に移動することができます。指定されたメンバーは、強制的にチーム・ルームに移動させられるか、あるいは、通知メッセージが送信されます。また、チーム・ルーム室長(管理者)には、加えて、管理下のチーム・ルーム一覧が表示され、室長は必要に応じて各チーム・ルームの応援に駆けつけることができます。</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>ユーザー名</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>ログイン</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>ユーザー一覧 チーム・ルーム:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>チーム・ルームを作成する</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>キャンセル</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>最低ひとり以上のユーザーをチームに登録する必要があります。</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>ユーザーをチームに追加する</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>ユーザーをチームから削除する</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>ユーザーは、チーム・ルーム室長です。(室長は、チーム・ルームの管理者です。メンバーはいつでも室長をチーム・ルームに呼び出すことができます)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>ルーム・タイプ</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>「メンバーを新規チーム・ルームに強制移動する」を選択した場合、選択されたメンバーはチーム・ルームに自動的に移動します。強制移動を選択しなかった場合、各メンバーには通知メッセージが送付されます。通知メッセージには、チーム・ルームに&lt;i&gt;移動することができる&lt;i&gt;ボタンがあり、それを押すことによってチーム・ルームに移動することができます。</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>チーム・ルーム管理</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>あなたは、あなたが管理するチーム・ルーム(あなたが室長のチーム・ルーム)の間を自由に行き来できます。管理下のチーム・メンバーは、あなたにいつでも応援要請メッセージを送信することができます。また、あなたは管理するチーム・ルームをいつでも閉鎖することもできます。</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>メンバーを新規チーム・ルームに強制移動する</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>チーム名</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>作成日時</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>追加するメンバー</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>メンバーを追加するには「+」を、削除するには「-」を押してください!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) チーム・ルームの設定</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) チーム・メンバーの追加</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>チーム・ルーム名</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>チーム・ルーム</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>会議室変更</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>このチーム・ルームに移動する</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>チーム・ルームを終了し、全メンバーをログアウトさせる</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>新規チーム・ルーム</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>新規チーム・ルームがあります。</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>チーム・ルームに移動</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>チーム・ルーム・アクション</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>再度このウィンドウを開く場合は、「アクション」から行ってください。</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>チーム・ルーム室長にメッセージを送信する</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>新規チーム・ルーム</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>新規チーム・ルームがあります。あなたは、そのチーム・ルームに入室することができます。チーム・ルームは、言わば「ワークショップ・グループ」のようなものです。あなたのチーム・ルームには、「私の会議室」からも入室できます。</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>チーム・ルームに移動</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>作成者:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>チーム・ルーム名:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>このウィンドウは、あなたの退室後も開いたままになります!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>チーム・ルームのメンバー</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) あなたが移動することができる、チーム・ルーム</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>チーム・ルーム室長にメッセージを送信します。例えば、討論中の件で何か質問したいことができ、室長に応援を依頼したいときなど。</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>送信</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) このチーム・ルームに参加要請したメンバー</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>さんは、チーム・ルーム室長です。</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>参加要請したメンバー全員が揃いました。</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>チーム・ルーム室長がいません!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>メッセージを入力してください。</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>私たちのチームが問題を抱えているので、応援をお願いします!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>チームが、あなたの応援を要請しています。</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>チーム・ルームから応援要請</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>メッセージ:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>送信者:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>あなたは現在、どのチーム・ルームにも入室していませんが、過去に入室したことのあるチーム・ルームに入室することができます。</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>システムをバックアップします。バックアップには、ユーザーが生成した、あらゆるデータが含まれます。サーバ設定、および各言語ラベルはバックアップされません。システムをより新しいバージョンにアップデートする場合は、&lt;br&gt;(1)まずバックアップ・ファイルにエクスポートし、&lt;br&gt;(2)新規に作成したデータベース上にアプリケーションを再インストールし、&lt;br&gt;(3)バックアップ・ファイルをインポート、してください。バックアップ・ファイルのインポートは、新システム上で最初に行う必要があります。</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>システム・バックアップ</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>ユーザーに対し画面共有/録画を許可する</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>ユーザーに対し画面共有/録画を拒否する</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>このユーザーは司会者であるため全ての権限を与えられています!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>さんが画面の共有/録画を要求しています。</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>あなたは画面の共有/録画をする権限を与えられています</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>画面の共有/録画を行う権限を適用する。</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>画面/録画の共有を行うことを許可/拒否する</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>サウンドをオフ</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>サウンドをオン</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>音声のみの会議室</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>このフラッグをオンにすると、ユーザーは会議室で音声のみ使用できるようになります(ビデオ無し)。これにより、ネットワーク帯域を節約することができます。</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>リモート制御を許可 (デスクトップ共有中)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>リモート制御を拒否 (デスクトップ共有中)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>リモート制御権限を適用する (デスクトップ共有中)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>あなたは、リモート画面の制御を許可されています(デスクトップ共有時)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>さんがリモート画面の制御権限を要求しています。</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>ユーザーは司会者です。司会者はすべてのアクションを行うことができます! [リモート・デスクトップ制御]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>デスクトップ共有中のリモート・コントロールを許可/拒否する</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) あなたのPCからリモートPCへ: あなたのPCのクリップボードからリモートPC画面にテキストをコピーするには、画面をクリックし続いてテキスト上で右クリックしてメニューを表示して「挿入」を選択します。&lt;br/&gt;&lt;br/&gt;2) リモートPCからあなたのPCへ: リモートPCからあなたのPCのクリップボードにテキストをコピーするには、リモート画面上のテキスト上でテキストをハイライト選択し、リモート画面上で右クリックしてメニューを表示し「&lt;i&gt;ハイライトされたテキストをコピー&amp;lt;/i&gt;」を選択します。</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>あなたのPCとリモートPCの間で相互にテキストのコピー&amp;ペーストを行うには</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>ハイライトされたテキストをコピー</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>コピー&amp;ペースト手順</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>画面共有の品質:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>超高品質</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>高品質</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>中品質</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>低品質</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>キーボード:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>ウェビナーを閉じる</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>ウェビナーは既に終了しています。</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>会議室を閉鎖する</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>終了URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>閉鎖設定</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>会議室を閉鎖すると、ユーザーは終了URLにリダイレクトされます。</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>LDAP</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>識別名</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>設定ファイル</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>LDAP設定</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>識別名</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>有効化</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>登録日時</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>登録者</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>更新日時</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>更新者</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>設定ファイルは、フォルダ 'webapps/openmeetings/conf' に置かれている必要があります。前もって手動アップロードしておいてください。設定ファイルに対する変更は逐次オンライン反映されます。</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>設定ファイル名</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>「ドメインをユーザー名に付加する」を選択すると、指定したドメインが、ログイン画面で指定したログイン名に自動的に付加されます。もしLDAPに、ドメイン名付きのログイン名が保存されている場合に利用してください。例: ログイン名「hans」、ドメイン名「localhost.com」の場合、「hans@localhost.com」でLDAP認証を行います。</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>ドメインをユーザー名に付加する</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>ドメイン</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>挿入</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>ハイライトされたテキストをコピー</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>リモートPCのクリップボード・テキスト</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>リモートPCのクリップボードを表示する</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>次回は表示しない</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>テキストをここにコピーする ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>リモート画面との間でコピー&amp;ペーストするためには、リモート制御(またはモデーレーション)権限が必要です。</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>デフォルト設定を編集する ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>リモート・コントロールでコピー&amp;ペーストについての情報ボックスを表示しない</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>保存</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>削除</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>キャンセル</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>ユーザーを会議室に招待する</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>会議室を選択してください。参加依頼を受けるユーザーには、あなたの名前、メッセージとともに会議室へのリンクが発行されます。</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>ログイン日時:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>参加依頼の送信後に入室する</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>参加を依頼する</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>メッセージ</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>会議への参加を依頼されています。依頼者=</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>参加依頼メッセージ</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>参加依頼を送信する</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>さんは、あなたからの参加依頼をdid &lt;b&gt;拒否&lt;/b&gt;しました!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>承認</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>拒否</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>タイムゾーン</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>イベント詳細</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>名称</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>概要</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>作成者</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>タイムゾーン設定を勧奨</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>次回ログイン時にタイムゾーン設定を行うことを進めるメッセージを表示する場合にチェックを入れてください。</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>ユーザー・プロフィールのタイムゾーン設定を確認してください。</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>$APP_NAME会議が設定されました:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>&lt;br/&gt;詳細:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>開始時刻:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>終了時刻:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>$APP_NAME会議が更新されました:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>主催者:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>$APP_NAME会議がキャンセルされました:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME会議リマインダ:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>コミュニティ設定</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>コンタクト・データを全員に公開する</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>あなたのお勧めや、興味あるものを指定します。これらはパートナーを検索する際に利用されます。複数項目を指定する場合は、各項目をコンマで区切って指定してください。(例: 医療サービス, 健康保険, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>私のお勧め</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>私の関心</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>姓名</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>タイムゾーン</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>興味・関心</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>コンタクト情報</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>コンタクト・データをコンタクトにのみ公開する</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>コンタクト・データを非公開にする</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>プロフィール</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>設定</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>ユーザー検索</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>他のユーザーが見るのと同じ表示形態であなたのプロフィールを表示します</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>プロフィールを設定します。関心事項を設定して他のユーザーが検索できるようにできます</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>ユーザーを検索して、あなたのネットワークを広げましょう</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>検索</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>お勧め</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>ユーザー名</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>検索テキスト</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>姓名</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>タイムゾーン</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>お勧め</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>関心</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>検索結果</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>アクション</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>コンタクトを追加する</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>メッセージを送信する</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>コンタクトとメッセージ</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>承認待ちコンタクト</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>承認</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>拒否</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>こちらは$APP_NAMEです。</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>さんが、あたなをコンタクトに加えることを希望しています。</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>$APP_NAMEのコンタクト要求を確認するか、承認/拒否のリンクのいずれかをクリックしてください。</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>このユーザーは既にコンタクト・リストに登録済みか、未回答のコンタクト追加要請メッセージを受信済みです。</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>コンタクト・リスト</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>コンタクトとメッセージを編集したり,&lt;br/&gt; 承認待ちコンタクトの処理を行います</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>さんが、あなたをコンタクトとして承認しました!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>チャット・ログを表示/コピーする</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>チャット・ログ</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>送信者</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>件名</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>送信</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>メッセージ</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>新規メール</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>コンタクトに送信するメッセージを新規に作成します</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>新規メッセージ</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>宛先:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>件名:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>各ユーザーの画面解像度に合うようにホワイトボードとドキュメントのサイズを変更する。</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>ユーザーを追い出す</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>あなた自身を会議室から追い出すことはできません! 退出する場合は、終了ボタンをクリックするかブラウザを閉じてください!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>このユーザーを会議室から切断してよろしいですか?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>アクションの確認 ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>特権司会者を会議室から追い出すことはできません!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>会議室を予約する</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>開始</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>終了</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>ミーティングをスケジュールします。全てのミーティング参加予定者のカレンダーにイベントが追加されます。</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>受信箱</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>送信</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>ゴミ箱</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>あなた自身をコンタクトに加えることはできません。</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>ユーザーは既に拒否されています!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>ユーザーは既に承認されています!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>コンタクト・ハッシュが不正です!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>コンタクト・リストに追加されました!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>ユーザーは拒否されました。承認待ちリストからも削除されました。</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>該当するコンタクトがありません!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>コンタクトを削除してよろしいですか?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>コンタクト削除の確認</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>コンタクトを一覧から削除する</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>ユーザー・プロフィール</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>ユーザー・プロフィールを表示する</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>メッセージ</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>検索</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>全てを選択</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>選択を解除</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>未読を選択</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>既読を選択</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>フォルダに移動 ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>新規フォルダを追加 ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>削除</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>削除したメールは、ゴミ箱の中にまだ残されています!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>未読にする</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>既読にする</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>回答</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>全員に回答</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>フォワード</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>アクション ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>プライベート・メッセージを送信する</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>選択がありません</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>受信箱に移動する</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>削除する (最終)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>新規フォルダ</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>フォルダを追加してメッセージを整理します</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>新規フォルダ</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>追加</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>フォルダを削除する</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>フォルダを削除できません。フォルダ内にメッセージが存在します! あらかじめメッセージを削除するか、他のフォルダに移動してください。</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>姓名を編集する</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>フォルダを削除してよろしいですか? 削除されたフォルダは復元できないことにご注意ください。</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>承認依頼が送信されました。承認されたユーザーのみがコンタクト・リストに追加されます。</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>メッセージ</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>ユーザーは個人コンタクト・データを共有していません。</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>ユーザーは個人コンタクト・データをコンタクトとのみ共有しています。</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>住所 &amp; 電話番号</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>参加依頼コードが無効です。参加依頼コードは一定期間のみ有効です。</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>このイベントは他のユーザーのカレンダーにリンクしています。イベントを更新すると、他のユーザーのカレンダーにも更新が反映されます。イベントを更新してよろしいですか?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>更新の確認</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>コンタクトに私のカレンダーを公開する (書き込みはできません)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>カレンダーを共有しない</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>コンタクトのカレンダー</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>コンタクトのカレンダーを見るためには、コンタクトの承認が必要です。</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>他のユーザーのカレンダーからイベントを削除/保存することはできません!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>カレンダーを再表示する!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>このイベントは他のユーザーのカレンダーにリンクしています。イベントを削除すると、他のユーザーのカレンダーからも削除されます。イベントを削除してよろしいですか?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>アクションの確認</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>入室</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>会議室にアクセスする</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>プライベート・メッセージ付き会議室/イベントがあります。</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>あらかじめイベントを保存してください!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>指定された会議室が見つかりません。イベントおよび会議室は既に削除されています!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>ニックネームを選択してください</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>名</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>姓</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Eメール</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>姓・名ともに4文字以上の長さが必要です。</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Eメール・アドレスが無効です!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Facebookアカウントでログインする</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>登録日</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>Facebookアカウントでログインしました。プロフィールに適切なEメール・アドレスを設定してください。さもないと、参加依頼やプライベート・メッセージを受信することができません。</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>メッセージ</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>プロフィール更新についてのメッセージを今後表示しない</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>詳細表示オプション ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>新規プライベート・メッセージ:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>メッセージ全体を見るにはここをクリックしてください ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>再生</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>会議室とチャット</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>私の会議室</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>私の会議室 (ユーザー数 1-16 向け)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>ウェビナー (ユーザー数 1-120 向け)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>会議室の管理者(室長)</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>パスワードを入力してください</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>ユーザー・レベル、司会者、または管理者権限を有するアカウントが必要です。</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>ウェブ・サービス (SOAPでのみ適用)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>ホワイトボードに直接ロードする</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>ホワイトボードを削除してよろしいですか? 注意:削除したホワイトボードは元に戻せません!!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>ホワイトボードにロードする</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>録画する必要がある場合は、録画を開始してください。だれかが録画を開始しない限り、会議の録画はされません。</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>録画を開始</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>矢印</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>円</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>線</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>四角形</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>三角形</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>テキスト・注釈</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>クリップアート</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>フリーライン</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>選択・移動</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>図形描画</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>切り取り・移動</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>ズーム・イン/アウト</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>印刷</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>元に戻す</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>ゴミ箱</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>グリッド線を表示</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>ファイル共有</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>図形を選択</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>クリップアートを選択</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>コピー</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>切り取り</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>貼り付け</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>削除</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>ホワイトボードの内容を全て削除してよろしいですか?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>ホワイトボードに直接ロードする</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>参加者</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>参加者マネージャ</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>在席</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>リモートコントロール</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>追い出す</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>チャット</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>参加者を招待する</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>メール使用</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>ユーザーは司会者です</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>ユーザーはウェブカメラをオンラインにしました</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>塗りつぶしを無効にする</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>塗りつぶしを有効にする</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>グリッドに位置を合わせる</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>録画を許可する</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>録画開始まで待機する</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>トップバーを隠す</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>録画を再生する</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>表示中のスライドの内容を削除してよろしいですか?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>ユーザー権限を許可する</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>メッセージを拒否して削除する</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>私</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>アクティビティ/アクション</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>ホワイトボードを削除する</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>ホワイトボードを削除したり、書き込んだりするためには権限または許可が必要です。</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>許可されていません</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>さんは会議室から退室しました</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>数式アイコン</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>カテゴリ無し</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>カラー・スタイル</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>回線品質</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>ドメイン</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>プロジェクト</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>レッドオレンジ</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>海緑色</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>暗青灰色</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>青灰色</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>ゴールデンレッド</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>銀白色</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>ユーザー定義</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>最高</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>アップロード</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>中位</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>マイクを無効にする</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>マイクを有効にする</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>他の参加者のマイクを無効にして私のマイクだけを有効にする (F12)</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>あなたのマイクは、司会者によって無効化されています。あなた自身の手でマイクを有効化することはできません。</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>あなたのマイクを無効にしますか?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>あなたのマイクを無効にしてよろしいですか?無効にすると、他の参加者はだれも、あなたの音声を聞くことができなくなります。</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>消音してよろしいですか?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>この参加者のマイクからの音声を消音してよろしいですか?この操作は、あなたの端末上で消音するだけであって、他の参加者は指定のマイクからの音声を引き続き聞くことができます。司会者だけが、全参加者のマイクの有効化・無効化を行うことができます。</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>マイクを無効にしてよろしいですか?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>この参加者のマイクを無効化してよろしいですか?他の参加者はだれも、この参加者の音声を聞くことができなくなります。</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>あなたのマイクは有効です。ここをクリックして、司会者にマイクの無効化を依頼することができます。</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>あなたのマイクは無効です。ここをクリックして、司会者にマイクの有効化を依頼することができます。</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>は、マイクの無効化を依頼します。</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>は、マイクの有効化を依頼します。</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>さんが、参加者のマイクの有効化を依頼しています。</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>さんが、参加者のマイクの無効化を依頼しています。</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>マイクを有効化する</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>マイクを無効化する</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>この参加者は、司会者によってマイクを無効にされています。あなたの手で有効化することはできません。</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>あなたのマイクを無効化します</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>あなたのマイクを有効化します</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>マイクを無効にする</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>マイクを有効にする</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>マイクを無効にする</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>マイクを有効にする</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>司会者だけが各参加者のマイクの有効・無効を設定できます。あなた自身のマイクを消音したい場合は、あなたのビデオ画面中のマイク・アイコンを使ってください。</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>投票名</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>あなた</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>過去の投票</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>実施中の投票</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>シンプル・チャート</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>パイ・チャート</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>メールアドレスを入力してください</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>新着メッセージ</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>投票を締め切る</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>投票を締め切ってよろしいですか?</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>投票を削除する</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>この投票を削除してよろしいですか?同時に投票結果も削除されます。</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>ISO言語コード</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>単独話者になることを許可・拒否する</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>単独話者になることを許可する</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>単独話者になることを拒否する</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>は、単独話者になることを希望します。</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>さんが、単独話者になることを希望しています。</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>単独話者になることを許可する。</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>カメラ解像度</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>解像度の変更はネットワーク帯域に影響します。高解像度のビデオ画像は、より多くのネットワーク帯域を必要とします。</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>あなたは、あなた自身を、あるいは他の参加者を単独話者にする権限を持っていません。司会者に権限を付与してもらうか、司会者に単独話者の指定を依頼してください。</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>私は、単独話者になることができる権限の付与を依頼します。</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>あなたは、自分自身の手で単独話者になることができます。単独話者になるには、ここをクリックしてください。(または、あなたのビデオ画面でクリック、あるいはF12押下でも可能です)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>マイクは有効です!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>マイクは消音(無効)です</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>チャットを隠す</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>アクティビティを隠す</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>ファイル・エクスプローラを隠す</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>アクション・メニューを隠す</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>画面共有を隠す</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>ホワイトボードを隠す</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>ビデオにマイク状態を表示する</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>レイアウト・オプション</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>新規イベント</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>カレンダー・イベントを保存時にパスワードを設定する場合、パスワードは、参加者に対して送付される会議室リンクに対して設定されます。会議室にパスワードが設定されるわけではありません。したがって、一つのイベントを、異なるパスワードで複数回保存したような場合、参加者は、異なるパスワードの会議室リンクを受け取ることになります。また、一旦送付されたリンクは、古いパスワードの会議室リンクであっても有効のまま残ります。</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>詳細を編集</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>SIPダイアラーを表示</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>発呼</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>コンタクトのカレンダー・イベントを表示する</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>あなたのホーム!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>会議予定を作成する</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>録画を視聴する</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>ウェブ会議を選択・開始する</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>ユーザーと権限を管理する</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>接続を管理する/ユーザーを追い出す</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>ユーザー・グループを管理する</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>会議室を管理する</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>システム設定を管理する</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>画面上のラベルを管理する</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>LDAP/ADS構成を管理する</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>システム・バックアップをエクスポート/インポートする</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>ファイル/フォルダのアップロード/追加/削除/ロードを行うためには、司会者であるか、あるいはホワイトボード描画権限が必要です。</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>テキストを編集</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>教授</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>共有画面公開</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>共有画面を公開開始</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>共有画面を公開終了</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>ホスト</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>公開アプリ</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>公開ID</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>共有画面を左に移動するには、共有画面幅を縮小してください。</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>共有画面を下に移動するには、共有画面高を縮小してください。</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>共有画面の幅を拡大するためには、共有画面を左に移動してください。</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>共有画面の高さを拡大するためには、共有画面を上に移動してください。</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>外部プロバイダー向けストリーミングのための設定を行ってください。</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>画面を公開するには、画面共有を開始してください。</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>録画を開始するには、司会者権限が必要です。</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>単独話者権限がありません。司会者権限または単独話者権限が必要です。</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>ファイルをファイル・エクスプローラにアップロード</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>共有設定画面を開く</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>司会者による許可が必要</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>カメラ/マイクの共有を司会者に要求</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>投票によるフィードバック収集</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>投票結果のチャート表示</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>この会議室に投票にあれば投票する</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>カメラ/マイクを設定する</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>退室する</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>外部参加者をVoIP/SIP経由で招待する</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>この会議室へのリンクをEメールで送信する</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>ホワイトボードを設定する</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>最大アップロード・サイズ</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>ホワイトボードの共有を司会者に要求する</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>プライベート・チャットを開始する</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>すべて</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>自分自身とのプライベート・チャットを開始することは出来ません。</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>指定された参加者とのプライベート・チャットは既に開始されています。</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>このプライベート・チャットを削除してよろしいですか?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>サーバー</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>クラスター参加済みサーバー</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>サーバー名</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>サーバー・アドレス</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>サーバー詳細</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>SMSを送信</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>公開中。ユーザー:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>バックアップ/リストア/アップグレードを行なう際にコマンドライン・ツールを利用すると、時間とインターネット・トラフィックを節約することができます: &lt;ol&gt; &lt;li&gt;オープンミーティングスのインストール・ディレクトリに移動する (例:/opt/red5)&lt;/li&gt; &lt;li&gt;オープン・ミーティングスを停止する(例: ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (オープン・ミーティングスの現状バックアップを作成する)&lt;/li&gt; &lt;li&gt;オープン・ミーティングスの最新アーカイブをダウンロードする&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (必要に応じて、現環境を移動しておく)&lt;/li&gt; &lt;li&gt;/opt/red5 にダウンロードしたアーカイブを展開する&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip&lt;br/&gt; (デフォルトのデータベースを使用していない場合は './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass')&lt;/li&gt; &lt;li&gt;オープン・ミーティングスを起動する&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>全ユーザーに供用される会議室</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>現ユーザー・グループに供用される会議室</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>現ユーザーの会議室</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>イベント専用会議室を作成/編集する</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>複数のアドレスを書式に含めることができます: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>ストリーミング音量を調整する</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>マイク音量を調整する</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>チャットを制限</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>メッセージを許可</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>チャット画面をデフォルトで表示</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>ファイル画面をデフォルトで表示</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>最終ピング</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>全スレーブは3秒毎(設定可)にピング信号を送信します。マスターがスレーブを利用するためには、最終ピング値は1分未満である必要があります。</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP ポート</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>ユーザー(SOAP経由)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>パスワード</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>ウェブ・アプリ・パス</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>プロトコル</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>ピング実行中</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>アクティブ</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>URLを生成</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>ネットワーク・テスト</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>インタビュー用ビデオ・カメラを自動選択</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>下線</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>フォント・スタイル</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>フォント・スタイルを許可</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>フォント色</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>ハイパーリンク</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>セッション統計を表示</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>セッション詳細</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>システム・インポート</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>バックアップにアップロード済みファイルと録音・録画を含める</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>会議室のSIPトランスポートを有効にする</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>このユーザーに単独話者権限を付与してよろしいですか?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>タイムゾーンを指定してください</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>会議(ユーザー数:1〜25)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>大人数向け会議(ユーザー数:1〜150)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>インタビュー(1対1のミーティング;録画付き)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>指定されたキーの構成は既に存在しています。別のキーを指定するか、既存の構成を編集してください。</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>保存中です。しばらくお待ちください。</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>ようこそ</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>ユーザー基本情報/サポート・リンク ウィジェット</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>ウィジェット</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>$APP_NAME について</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>名称</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>バージョン</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>リビジョン</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>ビルド日時</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>ロード中 ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>今日</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>1月</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>2月</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>3月</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>4月</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>5月</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>6月</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>7月</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>8月</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>9月</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>10月</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>11月</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>12月</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>リマインダーを送信しない</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>Eメール</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal Eメール</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/korean.xml b/src/main/webapp/languages/korean.xml
new file mode 100644
index 0000000..86cc8f6
--- /dev/null
+++ b/src/main/webapp/languages/korean.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>회의</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>모임</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>교실</value>
+  </string>
+  <string id="4" name="settings">
+    <value>세딩</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>유저</value>
+  </string>
+  <string id="6" name="admin">
+    <value>관리</value>
+  </string>
+  <string id="7" name="stop">
+    <value>정지</value>
+  </string>
+  <string id="8" name="record">
+    <value>기록</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>유효한 파일 없음</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>교사 기록</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>연결된 유저:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>회의 시작</value>
+  </string>
+  <string id="13" name="myname">
+    <value>본인 이름</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>비데오 회의</value>
+  </string>
+  <string id="15" name="import">
+    <value>가지고온 기획안</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>새로운 목록</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>메인파일에</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>새 선거</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>새 선거의장</value>
+  </string>
+  <string id="20" name="question">
+    <value>질문:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>선거 종류:</value>
+  </string>
+  <string id="22" name="create">
+    <value>창안하다</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Info: Each connected user receives a message with the new poll.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>선거를 만드셨습니다.</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>무효</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>네/아니오</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>숫자 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>투표</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>질문을 만들기 위해서 의장이 되어야합니다.</value>
+  </string>
+  <string id="30" name="vote">
+    <value>당신의 투표가 등록 되었습니다.</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>이번 선거에 벌써 투표하셨습니다.</value>
+  </string>
+  <string id="32" name="voting">
+    <value>투표 !</value>
+  </string>
+  <string id="33" name="answer">
+    <value>당신의 응답:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>네</value>
+  </string>
+  <string id="35" name="no">
+    <value>아니오</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>will wissen:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>선거 결과:</value>
+  </string>
+  <string id="38" name="question">
+    <value>질문:</value>
+  </string>
+  <string id="39" name="results">
+    <value>결과:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>대답:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>시작된 선거가 없습니다.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>선거!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>미딩 (최고 4 자리까지)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>회의 (최고 50 자리까지)</value>
+  </string>
+  <string id="45" name="type">
+    <value>종류</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>다른 자리</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>이미 선택 하셨습니다.</value>
+  </string>
+  <string id="48" name="enter">
+    <value>들어가다.</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>의장이 미딩에서 나가셨습니다</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>시스템 설명</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>디바이스를 선택하십시요.</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>웹카메라를 선택해 주십시요:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>마이크를 선택해 주십시요:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>네</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>무효</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>다시 연결이 필요했습니다.</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>셋업 편집</value>
+  </string>
+  <string id="58" name="course">
+    <value>진행:</value>
+  </string>
+  <string id="59" name="language">
+    <value>언어:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>네</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>무효</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>칠판 지우기</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>새로운 그림을 넣기전에 칠판을 지우길 원하십니까?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>다시 질문을 해주시마십시요</value>
+  </string>
+  <string id="65" name="no">
+    <value>아니오</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>셋업 편집2</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>칠판지우시전 확인 요청.</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>유저 정보</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>그리는 자리 지움</value>
+  </string>
+  <string id="70" name="undo">
+    <value>원래대로 돌려놓다.</value>
+  </string>
+  <string id="71" name="redo">
+    <value>다시하다</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>물건을 선택해주십시요.</value>
+  </string>
+  <string id="73" name="text">
+    <value>원문</value>
+  </string>
+  <string id="74" name="paint">
+    <value>페인트</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>선 긋기</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>밑줄 긋기</value>
+  </string>
+  <string id="77" name="rect">
+    <value>직사각형</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>타원형</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>화살표</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>선택한 항목 삭제</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>알맞게 신청하십시요.</value>
+  </string>
+  <string id="82" name="apply">
+    <value>신청하다.</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>삭제</value>
+  </string>
+  <string id="84" name="mod">
+    <value>사회자가 돼다</value>
+  </string>
+  <string id="85" name="close">
+    <value>닫다</value>
+  </string>
+  <string id="86" name="italic">
+    <value>italic</value>
+  </string>
+  <string id="87" name="bold">
+    <value>굵은 체</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>기다림</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>유저가 사회자 신청을 원합니다:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>받아들이다.</value>
+  </string>
+  <string id="91" name="reject">
+    <value>거부하다.</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>삭제</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>밑의 유져들에가 요청을 보냄</value>
+  </string>
+  <string id="94" name="accept">
+    <value>확임이 됩습니다.</value>
+  </string>
+  <string id="95" name="reject">
+    <value>거부가됩습니다.</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>사회자로 바끰</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>You are not moderating this course!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>사회자:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>이방 정원은 꽉 찾습니다. 죄송합니다. 다음에 오십시요.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>타원</value>
+  </string>
+  <string id="101" name="close">
+    <value>닫다</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>데이다 오류 입력</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>유저 이름은 최소 4 문자가 돼어야합니다.</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>유저 비밀번호는 최소 4 문자가 돼여야합니다.</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>똑같은 유저이름이 존재합니다.</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>똑같은 이메일 주소가 이미 등록돼어 있습니다.</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>시스템 오류가 생겼습니다. 시스템 관리자에 연락주십시요.</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>로긴</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>유저:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>패스:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>언어</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>로긴</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>등록</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>유저:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>패스:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>다시타임:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>이름:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>성:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>주소:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>나라:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>등록</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>취소</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>등록</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>집</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>유저</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>다체</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>조직</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>회의실</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>공공장소</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>조직</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>들어가다</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>로긴</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>비밀번호</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>다시 타이프 치다.</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>이름</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>성</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>주소</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>생일</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>길이름/번호</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>우편번호/동네</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>나라</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>주소 인호</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>유져데이다</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>저장</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>저장</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>USER-ID</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>로긴</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>이름</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>성</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>다음으로 보여주다</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>먼저 보여줌.</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>기록을 지우다.</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>삭제</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>삭제</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>새로운 기록</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>기록을 다시 재생하다</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>기록을 지우다</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>상태</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>무력하게 하다</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>권한을 주다</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>조직</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>달력</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>닫다</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>조직 번호</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>이름</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>유저</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>바끰</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>관리자</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>유저높이</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>조직</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>이름</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>조직 추가</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>조직 추가</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>삭제</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>추가하다</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>조직 추가</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>유저</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>유저추가</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>유저 지우기</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>유저 추가</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>유저 찾기</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>찾기</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>유저</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>조직</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>입력</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>회의실</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>회의실</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>아이디</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>이름</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>공공장소</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>조직</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>회의실</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>이름</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>종류</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>공공장소</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>의견</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>저장</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>입력</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>..와 같이 저장 하다</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>파일이름</value>
+  </string>
+  <string id="201" name="files">
+    <value>파일이름</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>삭제</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>저장</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>오류</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>장전</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>물체 장전</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>snychronizing clients, clients to wait:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>이미지데이다 로딩</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>snychronizing clients, clients to wait:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>그리는 곳 지우기</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>그리는 곳 지우기 칠판위에 모든 데이다가 없어집니다.</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>파일이 로딩돼기전에 확인해주십시요.</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>초대장을 보내다.</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>초대장을 보내다.</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>주제</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>수령인</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>메세지</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>보내기</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>삭제</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>보내기</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>유저데이다</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>이번 회의의 니크네임</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>nick</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>이름</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>성</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>이메일</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>언어</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>입력</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>로딩</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>데이다로딩, 기다려주십시요!</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>잘못된 패스워드</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>최소 4 개 문자로된 두개의 똑같은 패스워드를 입력시켜주십시요</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>다른 메일</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>잘못된 이멜주소를 입력하였습니다.</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>등록이 됬습니다.</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>당신의 어카운트가 생겼습니다. 지금 로긴이돼어 있습니다.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>당신의 스크린을 지금 공유할수 없습니다. 다른사람이 이미 스크린을 공유하고 있습니다.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>공유금지</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>당신의 스크린을 공유하다.</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Bad Bandwidth: You have not been able to syncronize the Screen. Frames will be dropped. If this Warning is shown often you could ask the moderator to reduce the Quality.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Screen of:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Paint</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Document</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Chat</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Files</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Members</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Download original document</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>Download pdf document</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Load Presentation to whiteboard</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Configuration</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Drag this Object</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Resize this Object</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>of</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>Go to first Page</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>Go to previous Page</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>Go to next Page</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>Go to last Page</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Zoom --</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Zoom ++</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Mr.</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Ms.</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Configuration</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Key</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Configuration</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Key</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>last update</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>updatedby</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>comment</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>key</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>of</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Users</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>delete user from organisation</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>delete</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>This user is already member of this organisation.</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>News</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Quicklinks</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Goto Conference</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Goto Auditorium</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Help and Support</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Report a bug!</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>more</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Project Website (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>User Mailing List (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Remember Login</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Content</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>My Home Page</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>My Scheduled Meetings</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>My Scheduled Events</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Public Meetings</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Private Meetings</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Public Events</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Private Events</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Public Content</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Private Content</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Personal Content</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Moderation</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Apply for Moderation</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Polls</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Choose a file</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Settings</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Cam and Mic Settings</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Whiteboard Settings</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Exit</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Back to Rooms</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Logout</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Desktop Viewer</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>start Desktop Viewer</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>Video and Audio</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Chat</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>Whiteboard</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Moderation</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Files</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>Users</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Polls</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>There is no User connected to this Username</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>The email containing a special link has been sent to your email address, please check your mailbox. If you still have not received a email, please adjust your email spam settings and resend confirmation email.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Error</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Message</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Invalid Hash. No User found.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Reset Your Password</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Login</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>change Password</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>new Password</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>re-enter Password</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>The Passwords you entered weren't identical.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>4 or more characters; capitalization matters!</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Password set. You can login now.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Unkown Error. Please report this to your Service-Team.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Username not found</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Invalid Password</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Successfully Logged out</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Frontend Registration disabled.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>Invalid EMail</value>
+  </string>
+  <string id="340" name="registration">
+    <value>duplicate filename, please choose another filename</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>filename too short</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Could not save Address</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>User added but you need to assign this User to an Organisation, otherwise he won't be able to sign-in.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>New Record</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>No Field found with this FieldId.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>No Label found for that Field.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Admin Authorization required</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Language-Editor</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Language</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>Label-ID</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Label-Name</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Value</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Fieldvalues</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>LabelName</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>LabelValue</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>Label-ID</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>You did only delete the Label NOT the Field! You cannot delete the Field, it may has Labels in other Languages.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>Invalid Labelid. The FieldLanguagesvalues_Id cannot be found in the database.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>You cannot delete this Field. You can only delete Labels NOT Fields. There is no Label loaded at the moment, wether it is not selected any Field or there is no Label for this Language for that Field defined.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>export</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>You need to logout to see any changes.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Add new language</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>delete language</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Add new language</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Name</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>add language</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Backup</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>goto first</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>goto previous</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>goto next</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>goto last</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>user speaks (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>turn sound on/off</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>System</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Your Settings</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>hi,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Edit your profile</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>New Messages:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Upload new Image</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Userdata - Export</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>All organisations must be already existing!</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>start export</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>By organisation</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>start export</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Userdata - Import</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>choose users.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>import</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Export to XML - These files can be used to: - Contribute to the project - Import into another System - Backup - Customization - Put it into the language-directory for your next installation</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Choose a language file to import. Choose the right Langauge from the Combobox! No matter what the name of the file is, it will be imported into this language!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>import - choose file</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Save as</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Name:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Comment:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>save</value>
+  </string>
+  <string id="395" name="record">
+    <value>Recordings</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Recordings Viewer</value>
+  </string>
+  <string id="397" name="record">
+    <value>Recordings of public and private Rooms</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Users :</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Joined:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Users in this Room:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>refresh</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>This Room is Full. Try again in a few minutes.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>click on a room to get details</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Chat with the users in this Room:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Room:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Users in this room:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>since:</value>
+  </string>
+  <string id="409" name="record">
+    <value>play recording</value>
+  </string>
+  <string id="410" name="record">
+    <value>Length:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Date:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Recorder Mode! You cannot change any values, this is a recorded File!</value>
+  </string>
+  <string id="413" name="record">
+    <value>Play this recording</value>
+  </string>
+  <string id="414" name="record">
+    <value>Play / Pause</value>
+  </string>
+  <string id="415" name="record">
+    <value>Start recording</value>
+  </string>
+  <string id="416" name="record">
+    <value>stop recording</value>
+  </string>
+  <string id="417" name="record">
+    <value>Recording:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>There is already somebody recording at the moment:</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Recording! By User:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>cancel</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>Recording will be canceled and not saved.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>resume</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Close this window and resume recording</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>change Linecolor</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Choose Color</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Disable / Enable Linecolor</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>change Fillcolor</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Disable / Enable Fillcolor</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Change Linewidth</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>close</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>change Fontsize</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Delete Recording</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Guest</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>By:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Name</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Room</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Date</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>cancel</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>start</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Name</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Date</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Delete Server-Chatlog</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Chat</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>send message</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Emoticons</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Emoticons</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Choose Published Devices</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Audio and Video</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Audio only</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Video only</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>no Audio/Video (static Image)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>No Audio/Video from your PC will be published, instead of that a picture from your profile will be shown. Choose these settings if you have problems with your bandwidth or a very slow Internet connection.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>MO</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>TU</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>WE</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>TH</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>FR</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>SA</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>SU</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Monday</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Tuesday</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Wednesday</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Thursday</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Friday</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Saturday</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Sunday</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>CW</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Calendar week</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>January</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>February</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>March</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>April</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>May</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>June</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>July</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>August</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>September</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>October</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>November</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>December</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Calendar</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Participants</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Show Layout Settings</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Width | Height</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Video-Container</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Moderation-Container</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Whiteboard-Container</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Enabled</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Width | Height</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Files,Chat,Partizipants - Container</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Enabled</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Width | Height</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>The Moderator has left the Room. No one is presenting at the Moment. You could apply for Moderation or wait.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>There is no Moderator in this Room, but there are some Participants. You have to apply for Moderation or wait.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Feedback $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Invitation</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Message from User:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Message:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Click this link to participate in the Meetings:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Click here to enter room</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>if you have problems with the link, please copy and paste this to your browser:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME SignUp</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Your userdata:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Login:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Pass:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>EMail:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME-Team</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME Sign-Up</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - Reset Password</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Click on this link to enter a new password:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Click here to enter a new Password</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>if you have problems with the link, please copy and paste this to your browser:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME Password Reset</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Please enter a valid Date, for example 24.12.2001 (dd.mm.yyyy)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Please enter a valid EMail, for example name@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Please enter a Float-Number, for example 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Please enter a Number (Integer), for example 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Please enter a valid Phone number, for example ++49 0123 123123</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Please enter a valid time, for example 12:23 (hh:mm)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Passwort protected</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Password</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Validity period</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Endless</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Period</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>One-Time</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Valid From:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Valid to:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Invitation To $APP_NAME</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Not Invitation availible for this Invitation-Code</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>The Invitation was already used. This type of Invitation cannot be re-used.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>This Invitation-Code is not valid.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Password:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Check Password</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Invalid Password!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Browser</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Syncronize Audio/Video</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Login was correct, but the Session you tried is not active or stored on the Server. You have to get a new SessionId and retry login.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>The SessionId is not loggedin or has no Admin rights. The SOAP Gateway needs an User with Admin-Rights to embed new Users.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>This Session has no Remoteuser-Data connected. Wether you did not call the SOAP-Gateway before accessing the Application or you are usnig a wrong Session-ID</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>The recorder is currently Beta!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>x-axis</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>y-axis</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>w</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>width</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>h</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>height</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Change Transparency</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Browser Open</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Browser Close</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>The Connection to the Server is lost. You need to reload the Application or/and check your Network.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Pointer</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Synchronizing</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Synchronizing Users, please wait</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Download as SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Download as PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Download as JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Download as PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Download as TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Reminder:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Category:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Repetition:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>none</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Location:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Start</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>End</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Title:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Comment:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Invite People</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Daily</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Monthly</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Yearly</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Appointment-end is after of appointment-start!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Please insert a title!</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Activate this if you write in a right to left language (inverse word order)</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Dashboard</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Watch recorded Meetings or Events</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Meeting - Make a conference with 4 (up to 16) Users&lt;br/&gt;everybody will have audio + video access</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Event - Make a conference with up to 200 participents&lt;br/&gt;Only the Moderator will have audio/video</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Create users, rooms, organizations&lt;br/&gt; + change configuration</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Users in this Room now</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Login</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Loading Document. Please wait untill all Client have been synchronized.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Upload complete, converting Document ...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Start Upload</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Upload and Import Dialog. Please select a File from your Disk.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Cancel</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Select File</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Connections</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Value</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Streamid</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Login</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Connected since</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Room / Scope</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Kick User</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Kick User</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Do you really want to kick this Client from the Connection?&lt;br/&gt; This does only remove the Client from the current Room.The Client could re-login again.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Your session has been closed by an Administrator or Moderator.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Phone</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>User is the Moderator of this Room</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>User is allowed to draw on the Whiteboard</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Re) Start Audio/Video or change Device Settings</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Allow this User to draw on the Whiteboard</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Remove ability to draw on whiteboard</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Users</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Files</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Whiteboard</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Chat</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Your account is assigned to multiple Organizations. Please choose one for this Session.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>This room is full at the moment. Please try again later.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Room Type</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Appointment Room</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Server Time</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - Reminder</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Message from User:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Message:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Click this link to participate in the Meetings:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Click here to enter room</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>if you have problems with the link, please copy and paste this to your browser:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>search intern</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>extern users</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>pre name</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>name</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>E-mail</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Confirm logout</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Are you sure you want to logout now?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Actions</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Demo Room</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Demo Time</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Meeting Timer</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>This Room is a Demo Room. To disable this warning you either should get a private meeting room for your personal usage or set up an own Server. You will be automatically logged off in:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Moderated</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Please wait untill the Moderator has entered the Room. The Moderator can be either a Teacher, Admin or the creator of this Room.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Ok</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Incoming Screen Sharing</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>There is a new Screen Sharing incoming from the User:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Start Sharing</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Add new Meeting</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Meeting Room</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Event Room</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderation</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Moderate Users</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Moderate Rooms</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Do you want to change this User to become a Moderator of that Organization?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Please choose an Organization before you try to add a User to it!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organization - Moderator</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Do you really want to delete this User from the Organization?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>This User is Moderator</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>This User is No-Moderator</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Do you want this User to be not a Moderator of this Organization?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Add or delete Users or Rooms within your Organization</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Do you really want to delete this record?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Do you really want to delete this user from your organization? You will only delete the connection between the user and your organization, to really delete the user itself you have to login into the Administration-Panel.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>You cannot delete your own User!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>This Method needs a Adminstration Account to be invoked!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>There was no Session associated with this ID.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>This is an Administrator or Moderator account. You can only edit this account through the Administration Panel.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>To complete your registration please click on the following link. Or copy the URL to your browser bar.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Click to verify your E-Mail</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>No user was found for this Hash.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>This user is already activated!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>You did successfully activate your account!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Login Now</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Your account is not activated. First use the link in the Email you've received during registration.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>You successfully signed up. We've send an EMail with a verification Code to your Mail. Please check your Inbox.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Remove Moderation Role from this User</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Grant Moderation Rights to this User</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>User</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Access to whiteboard</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderator</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Moderation: Please choose any User on the List to grant him access to the Whiteboard, Moderation or Video.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>This User is already Moderator, so he has automatically the right to draw.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>This is you! You cannot remove the Moderation rights from yourself.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Allow this User to Publish his Audio / Video</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Remove Audio/Video of this User</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>I would like to get the moderation of this room</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>I would like to draw on whiteboard</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>I would like to share my Audio/Video</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>You are moderator of this room</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>You are allowed to draw on whiteboard</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>You are allowed to share your Audio/Video</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Message to Moderator</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>The User</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>would like to get the Moderation. Use the status Icons next to the user in the List of Users to add or remove the Moderation.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>would like to draw on whiteboard. Use the status Icons next to the user in the List of Users to add or remove the right to draw anything on the whiteboard.</value>
+  </string>
+  <string id="695" name="695">
+    <value>would like to share his Audio/Video. Use the status Icons next to the user in the List of Users to add or remove the right to share Audio/Video for any User.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>You have to wait untill a Moderator enters the room.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Cancel</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Save</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Day</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Month</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Year</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Upload File</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Refresh</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Trash (Drag and Drop item here)</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>My Files (Home Drive)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Room Files (Public Drive)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Add File</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Delete Folder</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Edit Name</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>New Folder</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Are you sure you want to delete this Item?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Open Document</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Show all Files (Tree View)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Close Document</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Delete File</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>You are not allowed to draw anything on the Whiteboard. You have to become Moderator or at least get the Right to edit Whiteboard. You may ask a Moderator to give you that right.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Document Properties</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Start Client (external)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Start Client (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>A user want to share his screen. Do you want to see it?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>You are currently sharing your Desktop. For stopping the Sharing Session please hit the Stop button in the Sharing Client.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Sharing Session</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>You are already sharing your desktop!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Desktop Viewer</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Exit</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Desktop Sharer</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Click Start to publish your screen</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Start Sharing</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Select your screen area:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Change width</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>The Sharer has finished this session!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Change height</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-Offset</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-Offset</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Width:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Height:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Connection was closed by Server</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Cancel</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Start External</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>If you close this session completely you are not able to restart the viewer for this session.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Confirm Closing Viewer Session</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Share Screen</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Record Session</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Co-Browsing</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Ooops, ... Firefox on Windows does not show clear Co-Browsing. Please use another Browser for using the Co-Browsing feature.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Previous</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Next</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Reload</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Home</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Load</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Add this website as Default website to your Profile.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Test Setup</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Check you Microphone and Camera setup before you enter a room by recording some seconds. You can then replay your recording to check your voice and picture.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Don't show this test anymore</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Cancel</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Start Conference</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Do not ask again</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>You may proceed without testing if you do not plan to publish your voice or picture. Participants without Audio or Video can still use the Whiteboard, share their Desktop or write Chat messages.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="test setup">
+    <value>Level-Meter</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Press Start</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Start Event</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Choose Room</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Check Setup</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="774" name="start view">
+    <value>How to conference</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Start Recording</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Do not show Audio / Video Test (Recording) before entering a Conference</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Public Rooms</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Public Rooms are accessible for all Users.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Private Rooms</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Private Rooms are only accessible for users of the same organization.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>My Rooms</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Rooms in this section are created for personal usage. There are some standard rooms plus the ones that are created through the calendar and have a start and an end date. The rooms created via the calendar are only listed in this section as long as they are valid.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>You have to be moderator to do this.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Apply for moderation</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Apply for whiteboard access</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Apply for camera/microphone access</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>This Session Hash was already used. You cannot use it twice.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>START</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>EXIT</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Do you really want to exit? You might should clear uploaded documents, whiteboard and the chat history.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Exit conference</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Rooms</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Choose a room for a meeting</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>There is an unsaved Event in the Calendar. Please either save it or remove it.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Please add at least one attendee for your meeting!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Do you really want to delete this Event?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Warning</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Add Event</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>Day</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>Week</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>Month</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Description</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Attendees</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, your Web Conferencing Platform. Either follow the Instructions, press the start button to start to conference immediatelly or you goto the Calendar and set up a Conference for the future.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Plan a Meeting</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>To set up a conference you can add a new Event in the Calendar.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Need help?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Restricted</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Search</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Add</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>There is no User selected. Please select an item from the list first and then hit add.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Add Attendee</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Save</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Delete</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Event Details</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Default Moderators</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Name</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>E-Mail</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Add new default Moderator</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Is Super Moderator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>If the Room is moderated, User with Level Moderator or Administrator are automatically Moderator if they enter the Room. If you don't want to specify that and only want a certain User to become Moderator use the Default Moderator option.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>A Super Moderator is always a Moderator when he enters a Room, and nobody can remove the Moderation Flag from him</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Apply Super-Moderation to User</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Remove Super Moderation from User</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>If you add an Organization to the room only users of that Organization have access to it (This is only valid if the isPublic flag is set to false!)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderation</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitations</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organization</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Are you sure?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Do you really want to delete this Item? You have to press the save button to store the changes!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>There is no User selected. Please select first before you add it!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Add new Default Moderator</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Do you want to add the Super Moderation Flag for this User? A Super Moderator is not only Moderator of a Room, but also no other Moderator can remove the Moderation Flag for this User. You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Do you want to remove the Super Moderation Flag for this User? You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>This User is a Super-Moderator. You cannot remove the Moderation flag from a Super-Moderator!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Do you really want to delete this File/Folder?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Delete File/Folder?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Mrs.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Properties</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Show mouse position to viewers</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Share Audio with SIP Applet</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Share Audio with SIP and Video with Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Full-Fit</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>View Screen</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>The user</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>wants to share its screen. Do you want to see it?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Close</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>The Session was closed by the sharing User!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>New Screen Sharing</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimize</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximize</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Recording Timeline</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>My Recordings</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Public Recordings</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Name</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Length</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Date</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>By</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>PLAY</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Main - Video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Recording</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>You may record and share your screen at the same time. To enable others to see your screen just hit the start button on the top. To only record the Session it is sufficient to click start recording.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Start Recording</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Stop Recording</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download the FLV-File</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Room</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Play</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>User has microphone on</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Allow User Questions</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Turn this off to prevent that any user is disturbing you in this room. Effect is that the Button to ask for Moderation ("I have a question") is not visible.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rights</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Download as AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Audio only</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>The have been errors while processing the Recording.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>The Recording is not yet ready for watching. Please retry in a couple of minutes again.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Recorder Message</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP Applet is not Ready</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP-Account Settings</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP settings for each user. You can turn on or off SIP via the Administration &gt; Configuration (Key: enable_sip). The SIP data for each user should be created automatically. You can re-create the data by checking "Re-generate SIP Data"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-User</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Pass</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. You should check the authentification data of your SIP-Provider and the SIP-Account Data for each User. As Administrator you are still able to login and check the Configuration. As User or Moderator you will be blocked from any interaction.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. Contact your Service Team!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Show Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log messages from post recorder process</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Applet Message</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>The SIP-Applet is not ready. Accept the Applet please and click ok!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Get Moderation</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Save Appointment Changes</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointement has been changed. Do you want to save those changes? &lt;br/&gt;&lt;br/&gt;All attendees of the appointment will receive a EMail with the updated date and time (depending on the notification type of this appointment).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>To access other recordings you have to login the $APP_NAME Application.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Choose the User for this Video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available Users for this Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>You are a Moderator in this Interview. You can decide who is speaking in this interview and you can start / stop the recording of the Session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Start Recording</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Stop Recording</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>The recording of the Interview is already started.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>The recording is already stopped or not been started yet.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>The recording for this interview is already started!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Clear objects on current slide only!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the Status bar is send to participants!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make Team-Rooms [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new Team-Room!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new Conference Room ("Team Room") for them. The chosen users will automatically switch to the new Team-Room or get a notification. Team-Room Moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a Moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Username</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new Team-Room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create Team-Room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the Team-Room!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from Team-Room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Roomtype</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the System. The Backup includes all User generated data. The configuration is not included as well as the language labels. Because those values are imported with the System Installer. To update your System, export your old system (1) re-install into a new database the new package (2) and import the Backup file again (3). The Backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share Screen/Record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is Moderator, he can do anything!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/Deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose "Insert" from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about Copy and Paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Kick user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/language.xsd b/src/main/webapp/languages/language.xsd
new file mode 100644
index 0000000..8ad8377
--- /dev/null
+++ b/src/main/webapp/languages/language.xsd
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

+  <xs:element name="language">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element maxOccurs="unbounded" ref="string"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="string">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element ref="value"/>

+      </xs:sequence>

+      <xs:attribute name="id" use="required" type="xs:integer"/>

+      <xs:attribute name="name" use="required"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="value">

+    <xs:complexType mixed="true">

+      <xs:sequence>

+        <xs:element ref="br" minOccurs="0" maxOccurs="unbounded" />

+        <xs:element ref="i" minOccurs="0" maxOccurs="unbounded" />

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="br"/>

+  <xs:element name="i" type="xs:string"/>

+</xs:schema>

diff --git a/src/main/webapp/languages/languages.xml b/src/main/webapp/languages/languages.xml
new file mode 100644
index 0000000..35b4172
--- /dev/null
+++ b/src/main/webapp/languages/languages.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="languages.xsd">
+	<lang id="1" rightToLeft="false" code="en">english</lang>
+	<lang id="2" rightToLeft="false" code="de">deutsch</lang>
+	<lang id="3" rightToLeft="false" code="de-StudIP">deutsch (studIP)</lang>
+	<lang id="4" rightToLeft="false" code="fr">french</lang>
+	<lang id="5" rightToLeft="false" code="it">italian</lang>
+	<lang id="6" rightToLeft="false" code="pt">portugues</lang>
+	<lang id="7" rightToLeft="false" code="pt-br">portugues brazil</lang>
+	<lang id="8" rightToLeft="false" code="es">spanish</lang>
+	<lang id="9" rightToLeft="false" code="ru">russian</lang>
+	<lang id="10" rightToLeft="false" code="sv">swedish</lang>
+	<lang id="11" rightToLeft="false" code="zh_CN">chinese simplified</lang>
+	<lang id="12" rightToLeft="false" code="zh_TW">chinese traditional</lang>
+	<lang id="13" rightToLeft="false" code="ko">korean</lang>
+	<lang id="14" rightToLeft="true" code="ar">arabic</lang>
+	<lang id="15" rightToLeft="false" code="ja">japanese</lang>
+	<lang id="16" rightToLeft="false" code="id">indonesian</lang>
+	<lang id="17" rightToLeft="false" code="hu">hungarian</lang>
+	<lang id="18" rightToLeft="false" code="tr">turkish</lang>
+	<lang id="19" rightToLeft="false" code="uk">ukrainian</lang>
+	<lang id="20" rightToLeft="false" code="th">thai</lang>
+	<lang id="21" rightToLeft="false" code="fa">persian</lang>
+	<lang id="22" rightToLeft="false" code="cs">czech</lang>
+	<lang id="23" rightToLeft="false" code="gl">galician</lang>
+	<lang id="24" rightToLeft="false" code="fi">finnish</lang>
+	<lang id="25" rightToLeft="false" code="pl">polish</lang>
+	<lang id="26" rightToLeft="false" code="el">greek</lang>
+	<lang id="27" rightToLeft="false" code="nl">dutch</lang>
+	<lang id="28" rightToLeft="true" code="he">hebrew</lang>
+	<lang id="29" rightToLeft="false" code="ca">catalan</lang>
+	<lang id="30" rightToLeft="false" code="bg">bulgarian</lang>
+	<lang id="31" rightToLeft="false" code="da">danish</lang>
+	<lang id="32" rightToLeft="false" code="sk">slovak</lang>
+</language>
diff --git a/src/main/webapp/languages/languages.xsd b/src/main/webapp/languages/languages.xsd
new file mode 100644
index 0000000..d6a0592
--- /dev/null
+++ b/src/main/webapp/languages/languages.xsd
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

+  <xs:element name="language">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element maxOccurs="unbounded" ref="lang"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="lang">

+    <xs:complexType mixed="true">

+      <xs:attribute name="code" use="required" type="xs:NCName"/>

+      <xs:attribute name="id" use="required" type="xs:integer"/>

+      <xs:attribute name="rightToLeft" use="required" type="xs:boolean"/>

+    </xs:complexType>

+  </xs:element>

+</xs:schema>

diff --git a/src/main/webapp/languages/persian.xml b/src/main/webapp/languages/persian.xml
new file mode 100644
index 0000000..acbe155
--- /dev/null
+++ b/src/main/webapp/languages/persian.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>كنفرانس</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>ملاقات</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>درس كلاس</value>
+  </string>
+  <string id="4" name="settings">
+    <value>تنظيمات</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>فردي مشخصات</value>
+  </string>
+  <string id="6" name="admin">
+    <value>مدیریت</value>
+  </string>
+  <string id="7" name="stop">
+    <value>توقف</value>
+  </string>
+  <string id="8" name="record">
+    <value>ضبط</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>دسترس قابل غير فايل</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>استاد توسط ضبط</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>حاضر كاربران</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>كنفرانس يك شروع</value>
+  </string>
+  <string id="13" name="myname">
+    <value>من نام</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>ويديويي كنفرانس</value>
+  </string>
+  <string id="15" name="import">
+    <value>بارگذاري</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>ليست بازبيني</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>اصلي فايل</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>جديد سنجي نظر</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>كنفرانس براي جديد راي يك</value>
+  </string>
+  <string id="20" name="question">
+    <value>:پرسش</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>:سنجي نظر انواع</value>
+  </string>
+  <string id="22" name="create">
+    <value>ايجاد</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>اطلاعات پيام</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>سنجي نظر يك ايجاد</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>انصراف</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>خير/بله</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>1-10 اعداد</value>
+  </string>
+  <string id="28" name="poll">
+    <value>سنجي نظر</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>اعتدال</value>
+  </string>
+  <string id="30" name="vote">
+    <value>راي</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>پيشين آرا</value>
+  </string>
+  <string id="32" name="voting">
+    <value>راي</value>
+  </string>
+  <string id="33" name="answer">
+    <value>پاسخ</value>
+  </string>
+  <string id="34" name="yes">
+    <value>بله</value>
+  </string>
+  <string id="35" name="no">
+    <value>خير</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>:پاسخ درخواست</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>راي پيامد</value>
+  </string>
+  <string id="38" name="question">
+    <value>:پرسش</value>
+  </string>
+  <string id="39" name="results">
+    <value>:پيامد</value>
+  </string>
+  <string id="40" name="answers">
+    <value>:پاسخ</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>است نشده آغاز سنجي نظر هيچ</value>
+  </string>
+  <string id="42" name="votings">
+    <value>آرا</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>جلسه</value>
+  </string>
+  <string id="44" name="conference">
+    <value>كنفرانس</value>
+  </string>
+  <string id="45" name="type">
+    <value>نوع</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>ديگر جايگاه</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>پيشين انتخابهاي</value>
+  </string>
+  <string id="48" name="enter">
+    <value>ورود</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>.کردند ترک را جلسه سيستم مدير</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>سيستم پيام</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>انتخاب شيوه</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>دوربين انتخاب</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>ميكروفن انتخاب</value>
+  </string>
+  <string id="54" name="ok">
+    <value>ادامه</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>انصراف</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>داريد مجدد اتصال به احتياج شما</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>تنظيمات ويرايش</value>
+  </string>
+  <string id="58" name="course">
+    <value>رشته</value>
+  </string>
+  <string id="59" name="language">
+    <value>:زبان</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>ادامه</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>انصراف</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>مانيتور صفحه كردن پاك</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>شود؟ اضافه جديد عكس يك اينكه از قبل شود خالي مانيتور صفحه ميخواهيد آيا</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>نفرماييد سوال دوباره</value>
+  </string>
+  <string id="65" name="no">
+    <value>خير</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>نصب تصحيح</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value></value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>كاربر اطلاعات</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>شده ترسيم محيط وضوح</value>
+  </string>
+  <string id="70" name="undo">
+    <value>كردن خنثي</value>
+  </string>
+  <string id="71" name="redo">
+    <value>دوباره انجام</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>نظر مورد موضوع</value>
+  </string>
+  <string id="73" name="text">
+    <value>متن</value>
+  </string>
+  <string id="74" name="paint">
+    <value>كردن نقاشي</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>كشيدن خط</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>كردن دار خط زير</value>
+  </string>
+  <string id="77" name="rect">
+    <value>گوش چهار</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>بيضي</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>پيكان</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>انتخابي آيتم حذف</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>مديريت درخواست</value>
+  </string>
+  <string id="82" name="apply">
+    <value>اجرا قابل</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>انصراف</value>
+  </string>
+  <string id="84" name="mod">
+    <value>مديريت درخواست</value>
+  </string>
+  <string id="85" name="close">
+    <value>بستن</value>
+  </string>
+  <string id="86" name="italic">
+    <value>كج حروف</value>
+  </string>
+  <string id="87" name="bold">
+    <value>توپر حروف</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>ماندن منتظر</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>اجرا قابل پيغام</value>
+  </string>
+  <string id="90" name="accept">
+    <value>پذيرفتن</value>
+  </string>
+  <string id="91" name="reject">
+    <value>كردن رد</value>
+  </string>
+  <string id="92" name="cancel">
+    <value></value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>سيستم مدير به درخواست پيام ارسال</value>
+  </string>
+  <string id="94" name="accept">
+    <value>پذيرفتن</value>
+  </string>
+  <string id="95" name="reject">
+    <value>كردن رد</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>سيستم مدير تغيير</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>You are not moderating this course!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>:سيستم مدير</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>This Room is full. Sorry please try again later.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>بيضي</value>
+  </string>
+  <string id="101" name="close">
+    <value>بستن</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value></value>
+  </string>
+  <string id="103" name="min4username">
+    <value>كاراكتر 4 از بيش يا 4</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>باشد كاراكتر 4 حداقل بايد عبور رمز</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>The username is already taken</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>The email is already registered</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>سيستم اخطار</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>ارتباط قطع</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>:كاربر</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>:عبور رمز</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>:زبان</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>سيستم به ورود</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Sign Up</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>:كاربر</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>عبور رمز:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>تايپ بازبيني:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>:نام</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>:خانوادگي نام</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>:ايميل</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>:كشور</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>ثبت</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>انصراف</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Not a member?</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>اصلي صفحه</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>كاربر</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>ها گروه</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>دهي سازمان</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>گفتگو اطاق</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>همگاني</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>دهي سازمان</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>ورود</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>ارتباط قطع</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>عبور رمز</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>تايپ بازبيني</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>:نام</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>:خانوادگي نام</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>:ايميل</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>:تولد تاريخ</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>:سكونت محل</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>:كدپستي</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>:كشور</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>:آدرس</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>كاربر سوابق</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>ذخيره</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>ذخيره</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>كاربر شناسه</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>ارتباط قطع</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>نام</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>خانوادگي نام</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>بعدي نمايش</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>قبلي نمايش</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>ضبط حذف</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>انصراف</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>حذف</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>جديد ضبط</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>ضبط بيني باز</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>ضبط حذف</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>وضعيت</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>صلاحيت فاقد</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>ساختن قادر</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>دهي سازمان</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>تقويم</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>بستن</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>سازمان شناسه</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>نام</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>كاربر</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>سيستم مدير</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>سيستم مدير</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>كاربر سطح</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>دهي سازمان</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>نام</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>دهي سازمان افزودن</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>دهي سازمان افزودن</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>انصراف</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>افزودن</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>remove organisation</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>كاربر</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>اضافه كاربر</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>كاربر حذف</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>كاربر افزودن</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>كاربر جستجوي</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>كاوش</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>كاربر</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>دهي سازمان</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>ورود</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>كنفرانس اطاق</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>كنفرانس اطاق</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>شناسه</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>نام</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>همگاني</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>دهي سازمان</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>گفتگو اطاق</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>نام</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>تايپ</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>همگاني</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>تفسير</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>ذخيره</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>گذاري بار</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>از ذخيره</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>فايل نام</value>
+  </string>
+  <string id="201" name="files">
+    <value>فايل نام</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>انصراف</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>ذخيره</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>خطا</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>گذاري بار</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>موضوع بارگذاري</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>snychronizing clients, clients to wait:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>تصويري هاي داده گذاري بار</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>snychronizing clients, clients to wait:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>شده ترسيم محيط وضوح</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>clear drawarea, all data on whiteboard will be lost</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>فايل گذاري بار از قبل تثبيت</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>نامه دعوت ارسال</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>نامه دعوت ارسال</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>موضوع</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>گيرنده</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>پيام</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>ارسال</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>انصراف</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>ارسال</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>كاربر داده</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>كنفرانس اين براي شما اختصار نام</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>مستعار نام</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>نام</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>خانوادگي نام</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>ايميل</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>زبان</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>ورود</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>گذاري بار</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>كنيد صبر لطفا-اطلاعات گذاري بار حال در</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>ورود رمز اخطار</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>كنيد وارد عبور رمز دو لطفا</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>ايميل اخطار</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>كرديد وارد صحيح نا پستي آدرس</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>Registration Complete</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>است شده ايجاد شما اكانت</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>بگذاريد اشتراك به را خود صفحه نميتوانيد شما</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>ممنوع گذاري اشتراك به</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>شما صفحه گذاري اشتراك</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Bad Bandwidth: You have not been able to syncronize the Screen. Frames will be dropped. If this Warning is shown often you could ask the moderator to reduce the Quality.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>:صفحه</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>كردن نقاشي</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>سند</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value></value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>ها فايل</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>اعضا</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>اصلي سند دانلود</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>pdf سند دانلود</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Load Presentation to whiteboard</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>بندي پيكره</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>موضوع اين كشيدن</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>موضوع اين سايز تغيير</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>درصد</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>مبدا</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>اول صفحه به بازگشت</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>قبلي صفحه به بازگشت</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>بعدي صفحه به رفتن</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>آخر صفحه به رفتن</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>-- زوم</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>++ زوم</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Mr.</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Ms.</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>موقعيت</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>شناسه</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>راهنما</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>موقعيت</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>راهنما</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>رساني بروز آخرين</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>توسط شده روز به</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>تفسير</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>بها</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>مبدا</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>كاربر</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>سازمان از كاربر حذف</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>حذف</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>This user is already member of this organisation.</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>خبر</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Quicklinks</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>كنفرانس به بازگشت</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>كنفرانس تالار به بازگشت</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>پشتيباني و همكاري</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>!اشكال يك ضبط</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>بيشتر</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Project website (http://openmeetings.apache.org/)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>User mailing list (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Remember Login</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>محتوا</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>من خانگي صفحه</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>My Scheduled Meetings</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>My Scheduled Events</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>همگاني گفتگوي</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>همگاني گفتگو</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>همگاني وقايع</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>خصوصي وقايع</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>همگاني محتوا</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>خصوصي محتواي</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>شخصي محتواي</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>مديريت</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>مديريت درخواست</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>سنجي نظر</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>فايل يك انتخاب</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>تنظيمات</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>دوربين و ميكروفن تنظيمات</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>مانيتور صفحه تنظيمات</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>خروج</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>اتاق به بازگشت</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>خروج</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>ايد؟كرده فراموش را خودعبور رمز</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Reset Password</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>ايميل توسط</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>By Login</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>شما ايميل</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Your Login</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Send Mail with reset Link</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>No such email address was found. Make sure you enter the same email address you used to create your account.</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Please enter either a Mail or a Username</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>There is no User connected to this Username</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>The email containing a special link has been sent to your email address, please check your mailbox. If you still have not received a email, please adjust your email spam settings and resend confirmation email.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>خطا</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>پيام</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Invalid Hash. No User found.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Reset Your Password</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>ارتباط قطع</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>عبور رمز تغيير</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>جديد عبور رمز</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>عبور رمز مجدد ورود</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>The Passwords you entered weren't identical.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>4 از بيش يا كاراكتر 4</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Password set. You can login now.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>ادامه</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Unkown Error. Please report this to your Service-Team.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Username not found</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>صحيح نا عبور رمز</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Successfully Logged out</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Frontend Registration disabled.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>صحيح نا ايميل</value>
+  </string>
+  <string id="340" name="registration">
+    <value>كنيد وارد را ديگري فايل نام لطفا است تكراري فايل نام</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>است كوتاه خيلي فايل نام</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>كنيد ذخيره توانيد نمي را آدرس</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>User added but you need to assign this User to an Organisation, otherwise he won't be able to sign-in.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>جديد ضبط</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>No Field found with this FieldId.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>No Label found for that Field.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Admin Authorization required</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Language-Editor</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>زبان</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>Label-ID</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Label-Name</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Value</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Fieldvalues</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>LabelName</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>LabelValue</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>Label-ID</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>You did only delete the Label NOT the Field! You cannot delete the Field, it may has Labels in other Languages.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>Invalid Labelid. The FieldLanguagesvalues_Id cannot be found in the database.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>You cannot delete this Field. You can only delete Labels NOT Fields. There is no Label loaded at the moment, wether it is not selected any Field or there is no Label for this Language for that Field defined.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>export</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>You need to logout to see any changes.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>جديد زبان افزودن</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>زبان حذف</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>جديد زبان افزودن</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>نام</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>زبان افزودن</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>پشتيبان</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>اولين به بازگشت</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>قبلي به بازگشت</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>بعدي به رفتن</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>آخر به رفتن</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>كاربر گفتگوي (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>صدا كردن خاموش/روشن</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>سيستم</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>شما تنظيمات</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>سلام</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>شما نمودار ويرايش</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>:جديد پيام</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>جديد تصوير گذاري بار</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Userdata - Export</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>بندي طبقه همه</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>start export</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>بندي طبقه بوسيله</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>start export</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>كاربر داده</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>كاربر انتخاب</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>اهميت</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Export to XML - These files can be used to: - Contribute to the project - Import into another System - Backup - Customization - Put it into the language-directory for your next installation</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Choose a language file to import. Choose the right Langauge from the Combobox! No matter what the name of the file is, it will be imported into this language!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>فايل انتخاب</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>از ذخيره</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>:نام</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>:توضيح</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>ذخيره</value>
+  </string>
+  <string id="395" name="record">
+    <value>بایگانی</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Recordings Viewer</value>
+  </string>
+  <string id="397" name="record">
+    <value>Recordings of public and private Rooms</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>:كاربر</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>:پيوستن</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>:اطاق اين در كاربر</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>بيني باز</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>This Room is Full. Try again in a few minutes.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>click on a room to get details</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Chat with the users in this Room:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>:اطاق</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>:اطاق در كاربر</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>:ابتدا از</value>
+  </string>
+  <string id="409" name="record">
+    <value>play recording</value>
+  </string>
+  <string id="410" name="record">
+    <value>:طول</value>
+  </string>
+  <string id="411" name="record">
+    <value>:تاريخ</value>
+  </string>
+  <string id="412" name="record">
+    <value>Recorder Mode! You cannot change any values, this is a recorded File!</value>
+  </string>
+  <string id="413" name="record">
+    <value>Play this recording</value>
+  </string>
+  <string id="414" name="record">
+    <value>مكث/</value>
+  </string>
+  <string id="415" name="record">
+    <value>ضبط شروع</value>
+  </string>
+  <string id="416" name="record">
+    <value>ضبط توقف</value>
+  </string>
+  <string id="417" name="record">
+    <value>:ضبط</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>There is already somebody recording at the moment:</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>كاربر توسط!ضبط</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>انصراف</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>Recording will be canceled and not saved.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>مطالب خلاصه</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>شود ضبط مطالب خلاصه و شود بسته پنجره اين</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>خط رنگ تغيير</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>رنگ انتخاب</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>خط رنگ ساختن توانايي عدم /توانايي</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>رنگ سطل ساختن توانايي عدم/توانايي</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>خط رنگ ساختن توانايي عدم/توانايي</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>خط ضخامت تغيير</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>بستن</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>فونت تغيير</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>ضبط حذف</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>مهمان</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>:بوسيله</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>نام</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>اطاق</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>تاريخ</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>انصراف</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>شروع</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>نام</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>تاريخ</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>سرور حذف</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value></value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>پيام ارسال</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>احساسات</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>احساسات</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Choose Published Devices</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>بصري و سمعي</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>سمعي فقط</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>بصري فقط</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>بصري نه/سمعي نه</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>بصري نه/سمعي نه</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>دوشنبه</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>شنبه سه</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>شنبه چهار</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>شنبه پنج</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>جمعه</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>شنبه</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>شنبه يك</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>شنبه دو</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>شنبه سه</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>شنبه چهار</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>شنبه پنج</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>جمعه</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>شنبه</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>شنبه يك</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>هفتگي تقويم</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>هفتگي تقويم</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>ژانويه</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>فوريه</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>مارس</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>آوريل</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>مه</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>ژوئن</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>جولاي</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>آگوست</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>سپتامبر</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>اكتبر</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>نوامبر</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>دسامبر</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>تقويم</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>كنندگان شركت</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Show Layout Settings</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>عرض/طول</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Video-Container</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Moderation-Container</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Whiteboard-Container</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>ساختن قادر</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Width | Height</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Files,Chat,Participants - Container</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>ساختن قادر</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>عرض/طول</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>The Moderator has left the Room. No one is presenting at the Moment. You could apply for Moderation or wait.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>There is no Moderator in this Room, but there are some Participants. You have to apply for Moderation or wait.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Feedback $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Invitation</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>كاربر براي پيام</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>:پيام</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>:كنيد كليك كنندگان شركت با گفتگو براي لينك اين در</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>كنيد كليك را اينجا اطاق به ورود براي</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>if you have problems with the link, please copy and paste this to your browser:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME SignUp</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>:شما كاربر داده</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Login:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>:عبور رمز</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>:ايميل</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME-Team</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME Sign-Up</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - Reset Password</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Click on this link to enter a new password:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>كنيد كليك اينجا جديد عبور رمز ورود براي</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>if you have problems with the link, please copy and paste this to your browser:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME Password Reset</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>(dd.mm.yyyy)24/12/2001 مثال عنوان به كنيد وارد صحيح تاريخ يك لطفا</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>name@mail.com مثال عنوان به كنيد وارد صحيح ايميل يك لطفا</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Please enter a Float-Number, for example 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>100 مثال عنوان به كنيد وارد عدد يك لطفا</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>++490123123123مثال عنوان به كنيد وارد صحيح تلفن يك لطفا</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>(hh:mm)12:23 مثال عنوان به كنيد وارد صحيح زمان يك لطفا</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>عبور رمز حفاظت</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>عبور رمز</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>دوره اعتبار</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>ناپذير پايان</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>دوره يك</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>اول دوره</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>:از اعتبار</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>:تا اعتبار</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>آنلاين كلاس به دعوت</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Not Invitation availible for this Invitation-Code</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>The Invitation was already used. This type of Invitation cannot be re-used.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>This Invitation-Code is not valid.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>:عبور رمز</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Check Password</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Invalid Password!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>گذاشتن اجرا به</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>بصري /سمعي بودن مطابق</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Login was correct, but the Session you tried is not active or stored on the Server. You have to get a new SessionId and retry login.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>The SessionId is not loggedin or has no Admin rights. The SOAP Gateway needs an User with Admin-Rights to embed new Users.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>This Session has no Remoteuser-Data connected. Wether you did not call the SOAP-Gateway before accessing the Application or you are usnig a wrong Session-ID</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>The recorder is currently Beta!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>x-axis</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>y-axis</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>w</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>width</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>h</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>height</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Change Transparency</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Browser Open</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Browser Close</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>The Connection to the Server is lost. You need to reload the Application or/and check your Network.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Pointer</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Synchronizing</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Synchronizing Users, please wait</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Download as SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Download as PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Download as JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Download as PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Download as TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Reminder:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Category:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Repetition:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>none</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Location:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Start</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>End</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Title:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Comment:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Invite People</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Daily</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Monthly</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Yearly</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Appointment-end is after of appointment-start!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Please insert a title!</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Activate this if you write in a right to left language (inverse word order)</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Dashboard</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Watch recorded Meetings or Events</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Meeting - Make a conference with 4 (up to 16) Users&lt;br/&gt;everybody will have audio + video access</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Event - Make a conference with up to 200 participents&lt;br/&gt;Only the Moderator will have audio/video</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Create users, rooms, organizations&lt;br/&gt; + change configuration</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Users in this Room now</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Login</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Loading Document. Please wait untill all Client have been synchronized.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Upload complete, converting Document ...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Start Upload</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Upload and Import Dialog. Please select a File from your Disk.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Cancel</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Select File</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Connections</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Value</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Streamid</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Login</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Connected since</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Room / Scope</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Kick User</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Kick User</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Do you really want to kick this Client from the Connection?&lt;br/&gt; This does only remove the Client from the current Room.The Client could re-login again.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Your session has been closed by an Administrator or Moderator.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Telefon</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>User is the Moderator of this Room</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>User is allowed to draw on the Whiteboard</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Re) Start Audio/Video or change Device Settings</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Allow this User to draw on the Whiteboard</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Remove ability to draw on whiteboard</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Users</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Files</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Whiteboard</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Chat</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Your account is assigned to multiple Organizations. Please choose one for this Session.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>This room is full at the moment. Please try again later.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Room Type</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Appointment Room</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Server Time</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - Reminder</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Message from User:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Message:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Click this link to participate in the Meetings:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Click here to enter room</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>if you have problems with the link, please copy and paste this to your browser:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>search intern</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>extern users</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>pre name</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>name</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>E-mail</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Confirm logout</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Are you sure you want to logout now?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Actions</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Demo Room</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Demo Time</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Meeting Timer</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>This Room is a Demo Room. To disable this warning you either should get a private meeting room for your personal usage or set up an own Server. You will be automatically logged off in:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Moderated</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Please wait untill the Moderator has entered the Room. The Moderator can be either a Teacher, Admin or the creator of this Room.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Ok</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Incoming Screen Sharing</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>There is a new Screen Sharing incoming from the User:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Start Sharing</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Add new Meeting</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Meeting Room</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Event Room</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderation</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Moderate Users</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Moderate Rooms</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Do you want to change this User to become a Moderator of that Organization?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Please choose an Organization before you try to add a User to it!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organization - Moderator</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Do you really want to delete this User from the Organization?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>This User is Moderator</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>This User is No-Moderator</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Do you want this User to be not a Moderator of this Organization?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Add or delete Users or Rooms within your Organization</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Do you really want to delete this record?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Do you really want to delete this user from your organization? You will only delete the connection between the user and your organization, to really delete the user itself you have to login into the Administration-Panel.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>You cannot delete your own User!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>This Method needs a Adminstration Account to be invoked!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>There was no Session associated with this ID.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>This is an Administrator or Moderator account. You can only edit this account through the Administration Panel.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>To complete your registration please click on the following link. Or copy the URL to your browser bar.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Click to verify your E-Mail</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>No user was found for this Hash.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>This user is already activated!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>You did successfully activate your account!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Login Now</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Your account is not activated. First use the link in the Email you've received during registration.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>You successfully signed up. We've send an EMail with a verification Code to your Mail. Please check your Inbox.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Remove Moderation Role from this User</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Grant Moderation Rights to this User</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>User</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Access to whiteboard</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderator</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Moderation: Please choose any User on the List to grant him access to the Whiteboard, Moderation or Video.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>This User is already Moderator, so he has automatically the right to draw.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>This is you! You cannot remove the Moderation rights from yourself.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Allow this User to Publish his Audio / Video</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Remove Audio/Video of this User</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>I would like to get the moderation of this room</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>I would like to draw on whiteboard</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>I would like to share my Audio/Video</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>You are moderator of this room</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>You are allowed to draw on whiteboard</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>You are allowed to share your Audio/Video</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Message to Moderator</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>The User</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>would like to get the Moderation. Use the status Icons next to the user in the List of Users to add or remove the Moderation.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>would like to draw on whiteboard. Use the status Icons next to the user in the List of Users to add or remove the right to draw anything on the whiteboard.</value>
+  </string>
+  <string id="695" name="695">
+    <value>would like to share his Audio/Video. Use the status Icons next to the user in the List of Users to add or remove the right to share Audio/Video for any User.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>You have to wait untill a Moderator enters the room.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Cancel</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Save</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Day</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Month</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Year</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Upload File</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Refresh</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Trash (Drag and Drop item here)</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>My Files (Home Drive)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Room Files (Public Drive)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Add File</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Delete Folder</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Edit Name</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>New Folder</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Are you sure you want to delete this Item?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Open Document</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Show all Files (Tree View)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Close Document</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Delete File</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>You are not allowed to draw anything on the Whiteboard. You have to become Moderator or at least get the Right to edit Whiteboard. You may ask a Moderator to give you that right.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Document Properties</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Start Client (external)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Start Client (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>A user want to share his screen. Do you want to see it?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>You are currently sharing your Desktop. For stopping the Sharing Session please hit the Stop button in the Sharing Client.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Sharing Session</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>You are already sharing your desktop!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Desktop Viewer</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Exit</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Desktop Sharer</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Click Start to publish your screen</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Start Sharing</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Select your screen area:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Change width</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>The Sharer has finished this session!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Change height</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-Offset</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-Offset</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Width:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Height:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Connection was closed by Server</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Cancel</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Start External</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>If you close this session completely you are not able to restart the viewer for this session.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Confirm Closing Viewer Session</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Share Screen</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Record Session</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Co-Browsing</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Ooops, ... Firefox on Windows does not show clear Co-Browsing. Please use another Browser for using the Co-Browsing feature.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Previous</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Next</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Reload</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Home</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Load</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Add this website as Default website to your Profile.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Test Setup</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Check you Microphone and Camera setup before you enter a room by recording some seconds. You can then replay your recording to check your voice and picture.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Don't show this test anymore</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Cancel</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Start Conference</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Do not ask again</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>You may proceed without testing if you do not plan to publish your voice or picture. Participants without Audio or Video can still use the Whiteboard, share their Desktop or write Chat messages.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="test setup">
+    <value>Level-Meter</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Press Start</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Start Event</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Choose Room</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Check Setup</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="774" name="start view">
+    <value>How to conference</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Start Recording</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Do not show Audio / Video Test (Recording) before entering a Conference</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Public Rooms</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Public Rooms are accessible for all Users.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Private Rooms</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Private Rooms are only accessible for users of the same organization.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>My Rooms</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Rooms in this section are created for personal usage. There are some standard rooms plus the ones that are created through the calendar and have a start and an end date. The rooms created via the calendar are only listed in this section as long as they are valid.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>You have to be moderator to do this.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Apply for moderation</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Apply for whiteboard access</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Apply for camera/microphone access</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>This Session Hash was already used. You cannot use it twice.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>START</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>EXIT</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Do you really want to exit? You might should clear uploaded documents, whiteboard and the chat history.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Exit conference</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Rooms</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Choose a room for a meeting</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>There is an unsaved Event in the Calendar. Please either save it or remove it.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Please add at least one attendee for your meeting!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Do you really want to delete this Event?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Warning</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Add Event</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>Day</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>Week</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>Month</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Description</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Attendees</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, your Web Conferencing Platform. Either follow the Instructions, press the start button to start to conference immediatelly or you goto the Calendar and set up a Conference for the future.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Plan a Meeting</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>To set up a conference you can add a new Event in the Calendar.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Need help?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Restricted</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Search</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Add</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>There is no User selected. Please select an item from the list first and then hit add.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Add Attendee</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Save</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Delete</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Event Details</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Default Moderators</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Name</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>E-Mail</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Add new default Moderator</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Is Super Moderator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>If the Room is moderated, User with Level Moderator or Administrator are automatically Moderator if they enter the Room. If you don't want to specify that and only want a certain User to become Moderator use the Default Moderator option.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>A Super Moderator is always a Moderator when he enters a Room, and nobody can remove the Moderation Flag from him</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Apply Super-Moderation to User</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Remove Super Moderation from User</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>If you add an Organization to the room only users of that Organization have access to it (This is only valid if the isPublic flag is set to false!)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderation</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitations</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organization</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Are you sure?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Do you really want to delete this Item? You have to press the save button to store the changes!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>There is no User selected. Please select first before you add it!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Add new Default Moderator</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Do you want to add the Super Moderation Flag for this User? A Super Moderator is not only Moderator of a Room, but also no other Moderator can remove the Moderation Flag for this User. You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Do you want to remove the Super Moderation Flag for this User? You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>This User is a Super-Moderator. You cannot remove the Moderation flag from a Super-Moderator!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Do you really want to delete this File/Folder?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Delete File/Folder?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Mrs.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Properties</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Show mouse position to viewers</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Share Audio with SIP Applet</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Share Audio with SIP and Video with Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Full-Fit</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>View Screen</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>The user</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>wants to share its screen. Do you want to see it?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Close</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>The Session was closed by the sharing User!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>New Screen Sharing</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimize</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximize</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Recording Timeline</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>My Recordings</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Public Recordings</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Name</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Length</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Date</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>By</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>PLAY</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Main - Video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Recording</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>You may record and share your screen at the same time. To enable others to see your screen just hit the start button on the top. To only record the Session it is sufficient to click start recording.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Start Recording</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Stop Recording</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download the FLV-File</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Room</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Play</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>User has microphone on</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Allow User Questions</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Turn this off to prevent that any user is disturbing you in this room. Effect is that the Button to ask for Moderation ("I have a question") is not visible.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rights</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Download as AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Audio only</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>The have been errors while processing the Recording.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>The Recording is not yet ready for watching. Please retry in a couple of minutes again.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Recorder Message</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP Applet is not Ready</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP-Account Settings</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP settings for each user. You can turn on or off SIP via the Administration &gt; Configuration (Key: enable_sip). The SIP data for each user should be created automatically. You can re-create the data by checking "Re-generate SIP Data"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-User</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Pass</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. You should check the authentification data of your SIP-Provider and the SIP-Account Data for each User. As Administrator you are still able to login and check the Configuration. As User or Moderator you will be blocked from any interaction.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. Contact your Service Team!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Show Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log messages from post recorder process</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Applet Message</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>The SIP-Applet is not ready. Accept the Applet please and click ok!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Get Moderation</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Save Appointment Changes</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointement has been changed. Do you want to save those changes? &lt;br/&gt;&lt;br/&gt;All attendees of the appointment will receive a EMail with the updated date and time (depending on the notification type of this appointment).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>To access other recordings you have to login the $APP_NAME Application.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Choose the User for this Video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available Users for this Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>You are a Moderator in this Interview. You can decide who is speaking in this interview and you can start / stop the recording of the Session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Start Recording</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Stop Recording</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>The recording of the Interview is already started.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>The recording is already stopped or not been started yet.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>The recording for this interview is already started!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Clear objects on current slide only!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the Status bar is send to participants!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make Team-Rooms [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new Team-Room!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new Conference Room ("Team Room") for them. The chosen users will automatically switch to the new Team-Room or get a notification. Team-Room Moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a Moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Username</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new Team-Room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create Team-Room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the Team-Room!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from Team-Room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Roomtype</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the System. The Backup includes all User generated data. The configuration is not included as well as the language labels. Because those values are imported with the System Installer. To update your System, export your old system (1) re-install into a new database the new package (2) and import the Backup file again (3). The Backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share Screen/Record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is Moderator, he can do anything!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/Deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose "Insert" from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about Copy and Paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Kick user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/polish.xml b/src/main/webapp/languages/polish.xml
new file mode 100644
index 0000000..6270ba2
--- /dev/null
+++ b/src/main/webapp/languages/polish.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Konferencja</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Spotkania</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Wykłady</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Ustawienia</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Profil</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Administracja</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Stop</value>
+  </string>
+  <string id="8" name="record">
+    <value>Nagrywanie</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>Brak pliku</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Nagrywanie przez wykładowcę</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Podłaczeni użytkownicy:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Rozpocznij konferencję</value>
+  </string>
+  <string id="13" name="myname">
+    <value>Moje imię</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>Wideokonferencja</value>
+  </string>
+  <string id="15" name="import">
+    <value>Przesłanie pliku</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Odświeżenie listy</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>Do pliku głównego</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>nowe głosowanie</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>Nowe głosowanie.</value>
+  </string>
+  <string id="20" name="question">
+    <value>Pytanie:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Rodzaj głosowania:</value>
+  </string>
+  <string id="22" name="create">
+    <value>Utwórz</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Uwaga: Każdy połączony użytkownik otrzyma wiadomość z nowym głosowaniem.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Utwórz głosowanie.</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Anuluj</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Tak/Nie</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Liczba 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Głosowanie</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Musisz być moderatorem aby utworzyć pytanie</value>
+  </string>
+  <string id="30" name="vote">
+    <value>Twój głos został zarejestrowany.</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Już głosowałeś w tym głosowaniu..</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Głosuj !</value>
+  </string>
+  <string id="33" name="answer">
+    <value>Twoja odpowiedź:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Tak</value>
+  </string>
+  <string id="35" name="no">
+    <value>Nie</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>chciał(a)by wiedzieć:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Wyniki głosowania</value>
+  </string>
+  <string id="38" name="question">
+    <value>Pytanie:</value>
+  </string>
+  <string id="39" name="results">
+    <value>Wyniki:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Odpowiedzi:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>Nie rozpoczęto żadnego głosowania.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Głosuj !</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Spotkanie (maks. 4 miejsca)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Konferencja (maks. 50 miejsc)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Rodzaj</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Pozostałe miejsca</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Już wybrano</value>
+  </string>
+  <string id="48" name="enter">
+    <value>wejdź</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>Moderator wyszedł ze spotkania.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Informacja systemowa</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Wybierz urządzenie</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Wybierz kamerę:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Wybierz mikrofon:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>ok</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>anuluj</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Połącz się powtórnie.</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Edytuj ustawienia.</value>
+  </string>
+  <string id="58" name="course">
+    <value>Kurs:</value>
+  </string>
+  <string id="59" name="language">
+    <value>Język:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>ok</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>anuluj</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Wyczyść tablicę</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Czy chcesz wyczyściń tablicę przed dodaniem nowego obrazka?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>Nie pytaj więcej</value>
+  </string>
+  <string id="65" name="no">
+    <value>nie</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Edytuj ustawienia</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Proszę potwierdziś zmazanie tablicy.</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Informacje o użytkowniku</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Wyczyść obszar rysowania</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Cofnij</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Powrtórz</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Wskaż obiekt</value>
+  </string>
+  <string id="73" name="text">
+    <value>Tekst</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Malowanie</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Rysuj linię</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Podkreśl</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Prostokąt</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Elipsa</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Strzałka</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>Skasuj wskazany obiekt</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Złóż wniosek o moderację</value>
+  </string>
+  <string id="82" name="apply">
+    <value>złóż</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>anuluj</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Zostań moderatorem</value>
+  </string>
+  <string id="85" name="close">
+    <value>zamknij</value>
+  </string>
+  <string id="86" name="italic">
+    <value>kursywa</value>
+  </string>
+  <string id="87" name="bold">
+    <value>pogrubiony</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>CZEKAM</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>Użytkownik prosi o prawa moderatora. Możesz nadać mu tylko dostęp do tablicy, albo pełne prawa moderatorskie. Użytkownik:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>akceptuj</value>
+  </string>
+  <string id="91" name="reject">
+    <value>odrzuć</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>anuluj</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Wysyłam prośbę do następujących użytkowników:</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Przyjęte</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Odrzucone</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Zmień moderatora</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Nie jesteś tutaj moderatorem!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Moderator:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>Ten pokój jest pełny. Zajrzyj później.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Elipsa</value>
+  </string>
+  <string id="101" name="close">
+    <value>zamknij</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>błąd w danych wejściowych</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>4 lub więcej znaków; duże i małe litery mają znaczenie!</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>Hasło musi składać się przynajmniej z 4 znaków</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>Ta nazwa użytkownika jest już zajęta</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>Ten adres e-mail jest już zarejestrowany</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>Błąd systemu. Skontaktuj się z administratorem.</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Logowanie</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Użytkownik:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Hasło:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Język</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Zapisz się</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Zapisz się</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Użytkownik:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Hasło:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Powtórz:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Imię:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Nazwisko:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>e-mail:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>Kraj:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Zarejestruj</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>Anuluj</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Nie zapisałeś się jeszcze?</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>Strona startowa</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Użytkownicy</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Grupy</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Organizacje</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Pokoje spotkań</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>publiczne</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>Organizacja</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>Wejdź</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Login</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Hasło</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Powtórz</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Imię</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Nazwisko</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>e-mail</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Urodziny</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Ulica/Numer</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>Kod/Miasto</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>Kraj</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Informacje adesowe</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Dane użytkownika</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>Zapisz</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Zapisz</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>ID-użytkownika</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>Login</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>Imię</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>Nazwisko</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>Pokaż następny</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>Pokaż poprzedni</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>Skasuj wpis</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>Anuluj</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>Skasuj</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>Nowy wpis</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>Odświerz wpis</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>Skasuj wpis</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>Status</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>zablokowany</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>odblokowany</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>Organizacje</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>Kalendarz</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>zamknij</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>ID-organizacji</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>Nazwa</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>Użytkownik</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>Moderator</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>Administrator</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>Prawa użytkownika</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>Organizacja</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>nazwa</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>Dodaj organizację</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>Dodaj organizację</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>Anuluj</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>Dodaj</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>skasuj organizację</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>Użytkownik</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>dodaj użytkownika</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>skasuj użytkownika</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>Dodaj uzytkownika do organizacji</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>Wyszukaj użytkownika</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>Wyszukaj</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>Użytkownik</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>Organizacja</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>Wprowadź</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Pokoje konferencyjne</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Pokoje konferencyjne</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>id</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Nazwa</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>publiczny</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>Organizacje</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Pokoje spotkań</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>Nazwa</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>Rodzaj</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>Publiczny</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>Komentarz</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>zapisz i eksportuj</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>wczytaj</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>zapisz jako</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>Nazwa pliku</value>
+  </string>
+  <string id="201" name="files">
+    <value>nazwa pliku</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>anuluj</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>zapisz</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>Błąd</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>wczytuję</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>wczytane obiekty</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>synchronizuję klientów; klienci oczekujący:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Wczytuję obrazek</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>synchronizuję klientów; klienci oczekujący:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>wyczyść obszar rysowania</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>wyczyść obszar rysowania - znikną wszystkie informacje z tablicy</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Potwierdź zanim wczytam plik</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Wyślij zaproszenie</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Wyślij zaproszenie</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Temat</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Do</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Treść zaproszenia</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Wyślij</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>anuluj</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>wyślij</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Dane użytkownika</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>Twój pseudonim na potrzeby tej konferencji</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>Pseudonim</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>Imię</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>Nazwisko</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>e-mail</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>Język</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>wejdź</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Wczytuję</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Wczytywanie danych, proszę czekać!</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Niepoprawne haslo</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Proszę wprowadzić dwa identyczne hasła o długości przynajmniej 6 znaków.</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Niepoprawny e-mail</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Wprowadziłe(a)ś niepoprawny adres e-mail</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>Rejestracja zakończona</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Konto utworzone. Możesz się zalogować.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>Nie możesz teraz pokazać swojego ekranu. Ktoś inny pokazuje teraz swój ekran.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Pokazywanie ekranu nie jest teraz dopuszczalne</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Pokaż swój ekran</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Zbyt niska przepustowość łącza: synchronizacja nie powiodła się. Pominięto kilka ramek. Jeśli ten komunikat powtarza się często poproś moderatora o obniżenie jakości transmisji.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Ekran użytkownika:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Obraz</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Dokument</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Czat</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Pliki</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Uczestnicy</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Pobierz oryginalny dokument</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>Pobierz dokument jako PDF</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Pokaż prezentację na tablicy</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Konfiguracja</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Przesuń obiekt</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Skaluj obiekt</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>z</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>Przejdź do pierwszej strony</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>Przejdź do poprzedniej strony</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>Przejdź do następnej strony</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>Przejdź do ostatniej strony</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Zmniejsz</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Powiększ</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Pan</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Pani</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Konfiguracja</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Klucz</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Konfiguracja</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Klucz</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>ostatnio aktualizowane</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>aktualizowane przez</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>komentarz</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>Wartość</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>z</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Użytkownicy</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>usuń użytkownika z organizacji</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>Sk.</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>Użytkownik już należy to tej organizacji.</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>Wiadomości</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Łącza</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Przejdź do konferencji</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Przejdź do sali wykładowej</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Pomoc i wsparcie</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Zgłoś błąd!</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>więcej</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Witryna projektu (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>Lista mailingowa użytkowników (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Zapamiętaj login i hasło</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Zawartość</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>Moja strona startowa</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>Moje zaplanowane spotkania</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>Moje zaplanowane wykłady</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Publiczne spotkania</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Prywatne spotkania</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Publiczne wykłady</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Prywatne wykłady</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Public Content</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Prywatna zawartość</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Osobista zawartość</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Moderacja</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Poproś o moderację</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Głosowania</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Wybierz plik</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Ustawienia</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Ustawienia kamery</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Ustawienia tablicy</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Wyjście</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Wróć do listy pokojów</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Wyloguj</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Zapomniałe(a)ś hasła?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Ustaw nowe hasło</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>Według maila</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Według loginu</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>Twój adres e-mail</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Twój login</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Wyślij e-mail z prośbą o potwierdzenie zmiany hasła</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>Nie znaleziono adresu. Upewnij się, że wpisałe(a)ś ten sam adres, jaki podałe(a)ś przy zakładaniu konta.</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Proszę podać e-mail lub nazwę użytkownika.</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>Nie ma użytkownika o takiej nazwie</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>E-mail zawierający specjalne łącze (link) został wysłany na twój adres. Sprawdź swoją pocztę. Jeśli nie otrzymałe(a)ś listu, sprawdź/zmień ustawienia antyspamowe swojej skrzynki i ponownie wygeneruj mail potwierdzający zmianę hasła.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Informacja</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Błąd</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Niepoprawny kod. Nie ma takiego użytkownika.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Ustaw nowe hasło.</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Login</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>zmień hasło</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>nowe hasło</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>powtórz hasło</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>Hasła, które wpisałe(a)ś nie były identyczne.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>4 lub więcej znaków; małe i duże litery mają znaczenie!</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Hasło ustawione. Możesz się zalogować.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Nieznany błąd. Proszę poinformować administratora.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Nie ma takiego użytkownika</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Niepoprawne hasło</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Poprawnie wylogowano.</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Samodzielna rejestracja nie jest możliwa.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>Niepoprawny e-mail</value>
+  </string>
+  <string id="340" name="registration">
+    <value>plik o tej nazwie istnieje, proszę wybrac inną nazwę pliku</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>nazwa pliku za krótka</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Nie mogłem zapisać adresu</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>Dodano użytkownika, ale należy go przypisać do organizacji, bo w innym przypadku nie będzie mógł się zalogować.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Nowy wpis</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>Nie ma pola o takim identyfikatorze.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>To pole nie ma etykiety.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Potrzebne zezwolenie administratora</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Edytor języka</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Język</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>ID-etykiety</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Nazwa etykiety</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Wartość</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Wartości pola</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>Nazwa etykiety</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>Wartość etykiety</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>ID-etykiety</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>Skasowałeś tylko etykietę, a nie pole! Nie możesz skasować pola, może mieć etykiety w innych językach.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>Niepoprawne ID etykiety. FieldLanguagesvalues_Id nie zostało znalezione w bazie.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Nie można skasować tego pola. Można kasować tylko etykiety, a nie pola. Obecnie brak etykiety. Albo nie wskazano żadnego pola, albo to pole nie ma etykiety w języku, któty edytujesz.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>eksport</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Musisz się przelogować, aby zobaczyć zmiany.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Dodaj nowy język</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>skasuj język</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Dodaj nowy język</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Nazwa</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>dodaj język</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Kopia zapasowa</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>pierwszy</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>poprzedni</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>następny</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>ostatni</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>użytkownik mówi (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>włącz/wyłącz dźwięk</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>System</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Twoje ustawienia</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>cześć,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Edytuj swój profil</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Nowe wiadomości:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Prześlij nowy obrazek</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Dane użytkowników - eksport</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>Wszystkie organizacje muszą już istnieć!</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>rozpocznij eksport</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>wg organizacji</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>rozpocznij eksport</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Dane użytkowników - import</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>wskaż users.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>importuj</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Eksport do XML-a. Te pliki mogą być użyte:&lt;br/&gt; - jako twój wkład do projektu - do zaimportowania do innego systemu&lt;br/&gt; - jako kopia zapasowa - do dostosowania komunikatów do swoich potrzeb&lt;br/&gt; - do umieszczenia w katalogu z plikami językowymi przed kolejną instalacją</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Wskaż plik językowy do zaimportowania. &lt;br/&gt;Wybierz język z listy! &lt;br/&gt;Nie ważne jaka jest nazwa pliku, &lt;br/ &gt;zostanie on zaimportowany do tego języka!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>import - wskaż plik</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Zapisz jako</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Nazwa:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Komentarz:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>zapisz</value>
+  </string>
+  <string id="395" name="record">
+    <value>Nagrania</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Przeglądarka nagrań</value>
+  </string>
+  <string id="397" name="record">
+    <value>Nagrania z pokojów publicznych i prywatnych</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Użytkownicy:</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Dołączyli:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Użytkownicy w tym pokoju:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>odśwież</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>Pokój jest pełny. Zajrzyj za parę minut.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>kliknij na pokój, aby zobaczyć szczegóły</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Czatuj z użytkownikami tego pokoju:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Pokój:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Użytkownicy w tym pokoju:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>od:</value>
+  </string>
+  <string id="409" name="record">
+    <value>odtwórz nagranie</value>
+  </string>
+  <string id="410" name="record">
+    <value>Długość:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Data:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Nie możesz tu nic zmieniać. To jest nagranie!</value>
+  </string>
+  <string id="413" name="record">
+    <value>Odtwarzaj to nagranie</value>
+  </string>
+  <string id="414" name="record">
+    <value>Odtwarzaj / Pauza</value>
+  </string>
+  <string id="415" name="record">
+    <value>Rozpocznij nagrywanie</value>
+  </string>
+  <string id="416" name="record">
+    <value>zakończ nagrywanie</value>
+  </string>
+  <string id="417" name="record">
+    <value>Nagrywanie:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>Już ktoś to w tej chwili nagrywa:</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Nagrywane przez użytkownika:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>anuluj</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>Nagrywanie zostanie anulowane i nie będzie zapisane.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>kontynuuj</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Zamknij to okno i powróć do nagrywania</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>zmień kolor linii</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Wybierz kolor</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Wyłącz / Włącz kolor linii</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>zmień kolor wypełnienia</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Wyłącz / Włącz kolor wypełnienia</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Zmień grubość linii</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>zamknij</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>zmień rozmiar czcionki</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Skasuj nagranie</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Gość</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>Przez:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Nazwa</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Pokój</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Data</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>anuluj</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>start</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Nazwa</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Data</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Skasuj transkrypt czatu</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Czat</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>wyślij wiadomość</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Emotikony</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Emotikony</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Wybierz udostępniane urządzenia</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Dźwięk and Wideo</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Tylko dźwięk</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Tylko obraz</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>bez transmisji Audio/Wideo (statyczny obrazek)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>Nie będzie transmisji audio/wideo z twojego komputera. Zamiast tego zostanie pokazany obrazek (awatar) z twojego profilu. Wybierz te ustawienia, jeśli masz problemy z przepustowością lub bardzo wolne łącze internetowe.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>PO</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>WT</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>ŚR</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>CZ</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>PT</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>SO</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>ND</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Poniedziałek</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Wtorek</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Środa</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Czwartek</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Piątek</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Sobota</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Niedziela</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>TY</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Tydzień kalendarzowy</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>Styczeń</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>Luty</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>Marzec</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>Kwiecień</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>Maj</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>Czerwiec</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>Lipiec</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>Sierpień</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>Wrzesień</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>Październik</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>Listopad</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>Grudzień</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Kalendarz</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Uczetnicy</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Pokaż ustawienia wyglądu</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Szerokość | Wysokość</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Kontener wideo</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Kontener moderacji</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Kontener tablicy</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Włączony</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Szerokość | Wysokość</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Kontener plików, czatu, uczestników</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Włączony</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Szerokość | Wysokość</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>Moderator wyszedł z pokoju. Nikt obecnie nie przeprowadza prezentacji. Możesz wystąpić z wnioskiem o zostanie moderatorem, albo poczekać.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>W pokoju nie ma moderatora, ale są uczestnicy. Możesz wystąpić z wnioskiem o zostanie moderatorem, albo poczekać.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Feedback $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Zaproszenie</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Wiadomość od użytkownika:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Wiadomość:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Kliknij na link, aby wziąć udział w spotkaniu:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Kliknij tu, any wejść do pokoju</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>jeśli masz kłopot z linkiem, skopiuj go i wklej do paska adresu w przeglądarce:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME Zapisy</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Twoje dane użytkownika:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Login:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Hasło:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>e-mail:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>Zespół $APP_NAME</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME Zapisy</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - zmiana hasła</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Kliknij na ten link, aby wprowadzić nowe hasło:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Kliknij tutaj, aby wprowadzić nowe hasło</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>jeśli masz kłopot z linkiem, skopiuj go i wklej do paska adresu w przeglądarce:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME Zmiana hasła</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Proszę wprowadzić poprawną datę, np. 24.12.2001 (dd.mm.rrrr)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Proszę wprowadzić poprawny adres e-mail, np. name@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Proszę wpisać liczbę dziesiętną, np. 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Proszę wpisać liczbę całkowitą, np. 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Proszę wpisać poprawny numer telefonu, np. +48 12 1234567</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Proszę wpisać poprawny czas, np. 12:23 (gg:mm)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Zabezpieczone hasłem</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Hasło</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Okres ważności</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Nieskończony</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Okres</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Jednorazowe</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Ważne od:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Ważne do:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Zaproszenie do $APP_NAME</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Nie ma zaproszenia z takim kodem</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>To zaproszenie było już uzyte. Ten rodzaj zaproszenia nie może być wykorzystany powtórnie.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>Ten kod zaproszenia jest nieważny.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Hasło:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Sprawdź hasło</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Niepoprawne hasło!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Audio_Wideo</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Synchronizuj Audio/Wideo</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Zalogowanie było poprawne, ale podana sesja nie jest aktywna lub przechowywana na serwerze. Musisz otrzymać nowy identyfikator sesji i potórzyć logowanie.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>Ten identyfikator sesji nie jest zalogowany, albo nie ma uprawnień administratorskich. Brama SOAP wymaga użytkownika o uprawnieniach administratora do zamieszczania nowych użytkowników.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>Ta sesja nie ma przyłaczonych danych użytkownika. Albo nie wuwołałeś poprawnie bramy SOAP przed dostępem do aplikacji, albo używasz niewłaściwego identyfikatora sesji.</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>Nagrywanie jest obecnie w fazie BETA testów!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>oś-x</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>oś-y</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>s</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>szerokość</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>w</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>wysokość</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Zmień przezroczystość</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Otwórz przeglądarkę</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Zamknij przeglądarkę</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>Utracono połączenie z serwerem. Przeładuj aplikację lub sprawdź swoje połaczenie sieciowe.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Wskaźnik</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Synchronizuję</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Synchronizuję użytkowników, proszę czekać</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Pobierz jako SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Pobierz jako PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Pobierz jako JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Pobierz jako PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Pobierz jako TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Typ zaproszenia:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Kategoria:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Powtarzanie:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>brak</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>lokalizacja:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Start</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>Koniec</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Tytuł:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Komentarz:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Zaproś ludzi</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Codziennie</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Co miesiąc</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Co roku</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Koniec okresu jest przed jego początkiem!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Proszę podać tytuł!</value>
+  </string>
+  <string id="580" name="580">
+    <value>PDL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Włącz to, jeśli piszesz od prawej do lewej</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Tablica rozdzielcza</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Oglądaj nagrane spotkavia i wykłady</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Spotkanie - konferencja z 4 (do 16) użytkownikami&lt;br/ &gt;każdy ma możliwość nadawania audio/wideo</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Wykład - konferencja do 200 uczestników&lt;br/&gt;Tylko moderator może nadawać audio/wideo</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Utwórz użytkowników, pokoje, organizacje&lt;br/&gt; + zmień konfigurację</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Użytkownicy w tym pokoju</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Login</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Wczytuję dokument. Proszę czekać na zsynchronizowanie stacji klienckich.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Przesyłanie zakończone, przeprowadzam konwersję dokumentu ...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Zacznij przesyłanie</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Przesyłanie i import. Proszę wybrać plik z dysku.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Anuluj</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Wybierz plik</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Połączenia</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Wartość</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>ID strumienia</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Login</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Połączony od</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Pokój / zakres</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Wyrzuć użytkownika</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Wyrzuć użytkownika</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Czy chcesz wyrzucić (rozłączyć) połączenie tego użytkownika? &lt;br/&gt; Wyrzucisz użytkownika z pokoju, ale może on się powtórnie zalogować.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Połączenie przerwane przez administratora lub moderatora.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Telefon</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>Użytkownik jest moderatorem tego pokoju</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>Użytkownik ma prawo do rysowania na tablicy</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Re)startuj Audio/Wideo zmień ustawienia urządzeń</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Pozwól temu użytkownikowi rysować na tablicy</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Zabierz temu użytkownikowi prawo do rysowania na tablicy</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Użytkownicy</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Pliki</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Tablica</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Czat</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Twoje konto jest przypisane do kilku organizacji. Proszę wybrać jedną z nich na potrzeby bieżącej sesji.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>Ten pokój jest chwilowo pełny. Zajrzyj później.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Rodzaj pokoju</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Pokój spotkań</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Czas serwera</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - przypomnienie</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Wiadomość od użytkownika:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Wiadomość:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Kliknij na ten link, aby wziąć udział w spotkaniu:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Kliknij tutaj, aby wejść do pokoju</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>jeśli masz kłopot z linkiem, skopiuj go i wklej do paska adresu w przeglądarce:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>wyszukiwanie wewnętrzne</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>zewnętrzni użytkownicy</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>pre-nazwa</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>nazwa</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>e-mail</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>potwierdź wylogowanie</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Wylogowanie. Jesteś pewien?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Działania</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Pokój demo</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Czas demonstracji</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Zegar spotkania</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>Ten pokój jest pokojem demo. Aby wyłączyć to ostrzeżenie utwórz prywatny pokój spotkań, dla własnego użytku, albo postaw własny serwer. Zostaniesz wylogowany automatycznie za:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Moderowany</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Poczekaj, aż moderator wejdzie do pokoju. Moderatorem może być wykładowca, administrator lub twórca tego pokoju.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Ok</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Pojawia się udostępniony ekran</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>Pojawia się nowy ekran udostępniony przez:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Rozpocznij udostępnianie</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Dodaj nowe spotkanie</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Pokój spotkań</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Sala wykładowa</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderacja</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Moderuj użytkowników</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Moderuj pokoje</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Czy chcesz aby użytkownik został moderatorem tej organizacji?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Proszę wskazać organizację, zanim spróbujesz przypisać do niej użytkownika!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organizacja - Moderator</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Czy rzeczywiście chcesz usunąć użytkownika z organizacji?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>Ten użytkownik jest moderatorem</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>Ten użytkownik nie jest moderatorem</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Czy chcesz aby użytkownik nie był moderatorem tej organizacji?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Dodawaj i kasuj użytkowników i pokoje w swojej organizacji</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Czy rzeczywiście chcesz skasować ten wpis?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Czy rzeczywiście chcesz usunąć użytkownika z organizacji? Usuniesz tylko powiązanie użytkownika z tą organizacją. Aby rzeczywiście usunąć samego użytkownika, musisz zalogować się do panelu administratorskiego.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>Nie możesz usunąć samego siebie!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>Ta metoda wymaga użycia konta administratorskiego!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>Nie ma sesji powiązanym z tym ID.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>To jest konto administratora lub moderatora. Możesz etdytować to konto tylko poprzez panel administracyjny.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>Aby dokończyć rejestrację proszę kliknąć na link, albo skopiować URL do paska adresu w przeglądarce internetowej.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Kliknij tu, aby potwierdzić e-mail</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet   [ActivateUser]">
+    <value>Nie znaleziono użytkownika dla tego kodu.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet   [ActivateUser]">
+    <value>Ten użytkownik już jest zaktywowany!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet   [ActivateUser]">
+    <value>Poprawnie aktywowałe(a)ś swoje konto!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet   [ActivateUser]">
+    <value>Zaloguj się</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Twoje konto nie zostało aktywowane. Najpierw musisz kliknąć na link w e-mailu, który otrzymałeś podczas rejestracji.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>Poprawnie się zapisałe(a)ś. Wysłaliśmy Ci e-mail z kodem potwierdzającym. Proszę sprawdź swoją skrzynkę.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Zabierz prawa moderatora temu użytkownikowi</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Nadaj prawa moderatora temu użytkownikowi</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>Użytkownik</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Dostęp do tablicy</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderator</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Moderacja: Proszę wybrać użytkownika z listy, aby nadać mu prawa dostępu do tablicy, moderacji lub przesyłania wideo.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>Ten użytkownik jest już moderatorem, więc automatycznie ma prawa do rysowania na tablicy.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>To ty! Nie możesz odebrać praw moderatora samemu sobie.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Zezwól użytkownikowi przesyłać jego głos i obraz wideo</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Usuń głos i wideo tego użytkownika</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>Chciał(a)bym otrzymać prawa moderatora tego pokoju</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>Chciał(a)bym otrzymać prawo do rysowania na tablicy</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>Cciał(a)bym przesyłać głos i obraz wideo</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>Jesteś moderatorem tego pokoju</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>Masz prawo rysować na tablicy</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>Możesz transmitować dźwięk i obraz wideo</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Wiadomość dla moderatora</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>Użytkownik</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>chciałby otrzymać prawa moderatorskie. Użyj ikonki statusu przy użytkowniku na liście, aby dać lub odebrać mu prawo moderacji.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>rysować na tablicy. Użyj ikonki statusu przy użytkowniku na liście, aby dać lub odebrać mu prawo do rysowania na tablicy.</value>
+  </string>
+  <string id="695" name="695">
+    <value>chciałby transmitować swój głos i obraz wideo. Użyj ikonki statusu przy użytkowniku na liście, aby dać lub odebrać mu prawo do transmitowania głosu i obrazu wideo.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>Musisz poczekać, aż moderator wejdzie do pokoju.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Anuluj</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Zapisz</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Dzień</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Miesiąc</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Rok</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Prześlij plik</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Nowy filder</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Odśwież</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Śmietnik</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>Moje pliki</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Pliki publiczne (dla pokoju)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Nowy plik</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Nowy folder</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Skasuj folder</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Zmień nazwę</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>Nowy folder</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Jesteś pewien, że chcesz to skasować?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Szukaj</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Szukaj</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Otwórz dokument</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Pokarz pliki (widok drzewa)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Zamknij dokument</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Skasuj plik</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>Testy</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Document Properties</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Start Client (external)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Start Client (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>A user want to share his screen. Do you want to see it?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>You are currently sharing your Desktop. For stopping the Sharing Session please hit the Stop button in the Sharing Client.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Sharing Session</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>You are already sharing your desktop!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Desktop Viewer</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Exit</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Desktop Sharer</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Click Start to publish your screen</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Start Sharing</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Select your screen area:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Change width</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>The Sharer has finished this session!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Change height</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-Offset</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-Offset</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Width:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Height:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Connection was closed by Server</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Cancel</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Start External</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>If you close this session completely you are not able to restart the viewer for this session.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Confirm Closing Viewer Session</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Share Screen</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Record Session</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Co-Browsing</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Ooops, ... Firefox on Windows does not show clear Co-Browsing. Please use another Browser for using the Co-Browsing feature.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Previous</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Next</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Reload</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Home</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Load</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Add this website as Default website to your Profile.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Test Setup</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Check you Microphone and Camera setup before you enter a room by recording some seconds. You can then replay your recording to check your voice and picture.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Don't show this test anymore</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Cancel</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Start Conference</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Do not ask again</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>You may proceed without testing if you do not plan to publish your voice or picture. Participants without Audio or Video can still use the Whiteboard, share their Desktop or write Chat messages.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="test setup">
+    <value>Level-Meter</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Press Start</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Start Event</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Choose Room</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Check Setup</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="774" name="start view">
+    <value>How to conference</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Start Recording</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Do not show Audio / Video Test (Recording) before entering a Conference</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Public Rooms</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Public Rooms are accessible for all Users.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Private Rooms</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Private Rooms are only accessible for users of the same organization.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>My Rooms</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Rooms in this section are created for personal usage. There are some standard rooms plus the ones that are created through the calendar and have a start and an end date. The rooms created via the calendar are only listed in this section as long as they are valid.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>You have to be moderator to do this.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Apply for moderation</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Apply for whiteboard access</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Apply for camera/microphone access</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>This Session Hash was already used. You cannot use it twice.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>START</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>EXIT</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Do you really want to exit? You might should clear uploaded documents, whiteboard and the chat history.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Exit conference</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Rooms</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Choose a room for a meeting</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>There is an unsaved Event in the Calendar. Please either save it or remove it.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Please add at least one attendee for your meeting!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Do you really want to delete this Event?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Warning</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Add Event</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>Day</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>Week</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>Month</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Description</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Attendees</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, your Web Conferencing Platform. Either follow the Instructions, press the start button to start to conference immediatelly or you goto the Calendar and set up a Conference for the future.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Plan a Meeting</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>To set up a conference you can add a new Event in the Calendar.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Need help?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Restricted</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Search</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Add</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>There is no User selected. Please select an item from the list first and then hit add.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Add Attendee</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Save</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Delete</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Event Details</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Default Moderators</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Name</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>E-Mail</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Add new default Moderator</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Is Super Moderator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>If the Room is moderated, User with Level Moderator or Administrator are automatically Moderator if they enter the Room. If you don't want to specify that and only want a certain User to become Moderator use the Default Moderator option.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>A Super Moderator is always a Moderator when he enters a Room, and nobody can remove the Moderation Flag from him</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Apply Super-Moderation to User</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Remove Super Moderation from User</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>If you add an Organization to the room only users of that Organization have access to it (This is only valid if the isPublic flag is set to false!)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderation</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitations</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organization</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Are you sure?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Do you really want to delete this Item? You have to press the save button to store the changes!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>There is no User selected. Please select first before you add it!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Add new Default Moderator</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Do you want to add the Super Moderation Flag for this User? A Super Moderator is not only Moderator of a Room, but also no other Moderator can remove the Moderation Flag for this User. You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Do you want to remove the Super Moderation Flag for this User? You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>This User is a Super-Moderator. You cannot remove the Moderation flag from a Super-Moderator!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Do you really want to delete this File/Folder?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Delete File/Folder?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Mrs.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Properties</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Show mouse position to viewers</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Share Audio with SIP Applet</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Share Audio with SIP and Video with Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Full-Fit</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>View Screen</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>The user</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>wants to share its screen. Do you want to see it?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Close</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>The Session was closed by the sharing User!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>New Screen Sharing</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimize</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximize</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Recording Timeline</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>My Recordings</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Public Recordings</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Name</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Length</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Date</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>By</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>PLAY</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Main - Video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Recording</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>You may record and share your screen at the same time. To enable others to see your screen just hit the start button on the top. To only record the Session it is sufficient to click start recording.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Start Recording</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Stop Recording</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download the FLV-File</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Room</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Play</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>User has microphone on</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Allow User Questions</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Turn this off to prevent that any user is disturbing you in this room. Effect is that the Button to ask for Moderation ("I have a question") is not visible.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rights</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Download as AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Audio only</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>The have been errors while processing the Recording.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>The Recording is not yet ready for watching. Please retry in a couple of minutes again.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Recorder Message</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP Applet is not Ready</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP-Account Settings</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP settings for each user. You can turn on or off SIP via the Administration &gt; Configuration (Key: enable_sip). The SIP data for each user should be created automatically. You can re-create the data by checking "Re-generate SIP Data"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-User</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Pass</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. You should check the authentification data of your SIP-Provider and the SIP-Account Data for each User. As Administrator you are still able to login and check the Configuration. As User or Moderator you will be blocked from any interaction.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. Contact your Service Team!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Show Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log messages from post recorder process</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Applet Message</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>The SIP-Applet is not ready. Accept the Applet please and click ok!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Get Moderation</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Save Appointment Changes</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointement has been changed. Do you want to save those changes? &lt;br/&gt;&lt;br/&gt;All attendees of the appointment will receive a EMail with the updated date and time (depending on the notification type of this appointment).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>To access other recordings you have to login the $APP_NAME Application.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Choose the User for this Video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available Users for this Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>You are a Moderator in this Interview. You can decide who is speaking in this interview and you can start / stop the recording of the Session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Start Recording</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Stop Recording</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>The recording of the Interview is already started.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>The recording is already stopped or not been started yet.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>The recording for this interview is already started!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Clear objects on current slide only!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the Status bar is send to participants!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make Team-Rooms [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new Team-Room!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new Conference Room ("Team Room") for them. The chosen users will automatically switch to the new Team-Room or get a notification. Team-Room Moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a Moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Username</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new Team-Room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create Team-Room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the Team-Room!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from Team-Room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Roomtype</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the System. The Backup includes all User generated data. The configuration is not included as well as the language labels. Because those values are imported with the System Installer. To update your System, export your old system (1) re-install into a new database the new package (2) and import the Backup file again (3). The Backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share Screen/Record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is Moderator, he can do anything!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/Deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose "Insert" from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about Copy and Paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Kick user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/portugues brazil.xml b/src/main/webapp/languages/portugues brazil.xml
new file mode 100644
index 0000000..f53d63e
--- /dev/null
+++ b/src/main/webapp/languages/portugues brazil.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Conferência</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Reunião</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Auditório</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Configurações</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Usuário</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Administração</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Parar</value>
+  </string>
+  <string id="8" name="record">
+    <value>Gravar</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>Nenhum arquivo disponível</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Admissão disponível apenas para professores</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Usuários conectados:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Iniciar uma conferência</value>
+  </string>
+  <string id="13" name="myname">
+    <value>Meu nome:</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>VideoConferência</value>
+  </string>
+  <string id="15" name="import">
+    <value>Importar apresentação</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Atualizar lista</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>Voltar ao índice principal</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>nova enquete</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>Uma nova enquete para conferência.</value>
+  </string>
+  <string id="20" name="question">
+    <value>Pergunta:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Tipo de enquete:</value>
+  </string>
+  <string id="22" name="create">
+    <value>Criar</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Info: Cada usuário conectado recebe uma menssagem com a nova enquete.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Criar uma enquete</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Cancelar</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Sim/Não</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Numérico 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Enquete</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Eles podem ser moderadores/professores nessa área de enquetes</value>
+  </string>
+  <string id="30" name="vote">
+    <value>Seu voto foi registrado.</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Você já votou nessa enquete.</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Votar !</value>
+  </string>
+  <string id="33" name="answer">
+    <value>Sua resposta:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Sim</value>
+  </string>
+  <string id="35" name="no">
+    <value>Não</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>Quer saber:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Resultados da enquete</value>
+  </string>
+  <string id="38" name="question">
+    <value>Pergunta:</value>
+  </string>
+  <string id="39" name="results">
+    <value>Resultados:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Respostas:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>Nenhuma enquete foi iniciada.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Votar!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Reunião (todos se vêem)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Conference (um ou mais falam para milhares)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Tipo</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Outros participantes</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Já escolhido</value>
+  </string>
+  <string id="48" name="enter">
+    <value>entrar</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>O moderaror saiu da reunião.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Informações do sistema</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Escolher dispositivo</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Escolher webcam:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Escolher microfone:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>ok</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>Cancelar</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Você precisa reconectar.</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Editar configurações.</value>
+  </string>
+  <string id="58" name="course">
+    <value>Curso:</value>
+  </string>
+  <string id="59" name="language">
+    <value>Idioma:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>Ok</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>Cancelar</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Limpar a lousa.</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Você quer que a lousa seja apagada antes que uma figura seja adicionada ?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>Não perguntar de novo.</value>
+  </string>
+  <string id="65" name="no">
+    <value>Não</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Editar configurações</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Confirmação de requisição antes de limpar a lousa.</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Informações do usuário</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Limpar a lousa</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Desfazer</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Refazer</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Selecionar um objeto</value>
+  </string>
+  <string id="73" name="text">
+    <value>Texto</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Pintura</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Desenhar linha</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Desenhar sublinha</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Retângulo</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Elipse</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Seta</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>excluir ítem selecionado</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Aplicar para moderação</value>
+  </string>
+  <string id="82" name="apply">
+    <value>Aplicar</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>fechar</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Tornar-se moderador</value>
+  </string>
+  <string id="85" name="close">
+    <value>fechar</value>
+  </string>
+  <string id="86" name="italic">
+    <value>italic</value>
+  </string>
+  <string id="87" name="bold">
+    <value>negrito</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>AGUARDANDO</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>Um usuário quer se tornar moderador:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>aceitar</value>
+  </string>
+  <string id="91" name="reject">
+    <value>rejeitar</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>cancelar</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Enviando requisição para os seguintes usuários</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Aceito</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Rejeitado</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Mudar moderador</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Você não está moderando este curso!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Moderador:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>A sala está cheia. Por favor tente novamente mais tarde.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Elipse</value>
+  </string>
+  <string id="101" name="close">
+    <value>fechar</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>erro na entrada de dados</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>Nome do usuário deve ter no mínimo 4 letras</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>senha deve ter no mínimo 4 letras</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>Nome de usuário já existente</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>O email já foi registrado.</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>Erro no sistema, por favor, contacte os administradores.</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Login</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Usuário:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Senha:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>idioma</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Login</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Inscreva-se</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Usuário:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Senha:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Re-digite:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Primeiro nome:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Último nome:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>E-Mail:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>País:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Registrar</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>cancelar</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Registrar</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>Início</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Usuários</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Grupos</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Organizações</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Salas de Conferência</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>público</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>organização</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>entrar</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Login</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Senha</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Re-digite</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Primeiro nome</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Último nome</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>E-Mail</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Aniversário</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Rua/Nro.</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>CEP/Cidade</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>País</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Endereço</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Dados do usuário</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>salvar</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Salvar</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>ID</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>login</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>primeiro nome</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>Ùltimo nome</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>Mostrar próximo</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>mostrar anterior</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>excluir registro</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>cancelar</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>excluir</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>novo registro</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>atualizar registro</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>excluir registro</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>Estado</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>Desabilitado</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>Habilitado</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>organizações</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>CALENDÁRIO</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>fechar</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>ID da Organização</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>nome</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>usuário</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>Moderador</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>Admin</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>Nível do usuário</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>organização</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>nome</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>Adicionar organização</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>Adicionar organização</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>cancelar</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>adicionar</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>Remover organização</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>usuário</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>adicionar usuário</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>excluir usuário</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>adicionar usuário</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>procurar usuário</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>procurar</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>usuário</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>organização</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>entrar</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Salas de Conferência</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Salas de conferência</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>id</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Nome</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>público</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>organizações</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Salas de conferência</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>nome</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>tipo</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>público</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>comentário</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>salvar</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>abrir</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>salvar como</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>nome do arquivo</value>
+  </string>
+  <string id="201" name="files">
+    <value>nome do arquivo</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>cancelar</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>salvar</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>erro</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>carregando</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>objetos carregados</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>sincronizando clientes... aguarde:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Carregando imagem</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>sincronizando clientes... aguarde:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>limpar área de desenho</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>limpar área de desenho, todos os dados da lousa serão perdidos</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Confirme antes de carregar o arquivo</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Enviar convite</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Enviar convite</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Assunto</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Destinatário</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Mensagem</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Enviar</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>cancelar</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>enviar</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Dados do usuário</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>Seu apelido para essa conferência</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>apelido</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>primeiro nome</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>último nome</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>email</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>idioma</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>entrar</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Carregando</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Carregando dados, por favor aguarde!</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Senha Incorreta</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Por favor digite duas senhas iguais com pelo menos 6 caracteres</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Email Incorreto</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Voê digitou um endereço de email inválido.</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>Usuário registrado com sucesso</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Sua conta foi criada. Você pode fazer o login agora.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>Você não pode compartilhar sua tela agora. Alguem já compartilhou a tela.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Compartilhamento perdido</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Compartilhe sua tela</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Falha na transmissão: Você não está apto a sincronizar a tela. Quadros serão perdidos. Caso esse aviso tenha sido mostrado cedo você pode pedir ao moderador para reduzir a qualidade.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Tela de:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Desenhar</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Documento</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Conversar</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Arquivos</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Membros</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Download do documeto original</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>Download do pdf</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Carregar apresentação no quadro</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Configuração</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Arrastar esse objeto</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Redimensionar esse objeto</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>de</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>Ir para primeira página</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>Ir para página anterior</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>Ir para a próxima página</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>Ir para a última página</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Zoom --</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Zoom ++</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Sr.</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Sra.</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Configuração</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Chave</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Configuração</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Chave</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>última atualização</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>atualizado por</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>comentário</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>chave</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>de</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Usuários</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>excluir usuário da Organização</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>excluir</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>Este usuário já é membro desta organização.</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>Notícias</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Links Rápidos</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Ir para conferência</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Ir para auditório</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Ajuda e suporte</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://www.tvqweb.com.br</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://www.tvqweb.com.br</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Suporte</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>mais</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>http://www.tvqweb.com.br</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>http://www.tvqweb.com.br</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Relembrar Login</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Conteúdo</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>Minha Home Page</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>Calendário</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>Eventos Agendados</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Reuniões Públicas</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Reuniões Privadas</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Eventos Públicos</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Eventos Privados</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Conteúdo Público</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Conteúdo Privado</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Conteúdo Pessoal</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value>Conteúdo</value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Moderação</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Aplicar para Moderação</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Conjuntos</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Escolha um arquivo</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Configurações</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Configurações de Cam e Mic</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Configurações da lousa</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Sair</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Voltar para salas</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Sair</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Esqueceu sua senha?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Redefinir a senha</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>Usando o endereço de e-mail</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Using login</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>Seu email</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Seu login</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Enviar e-mail com um link para redefinição</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>Nenhum endereço de e-mail foi encontrado. Verifique se você digitou o endereço de email que você usou para criar sua conta.</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Por favor, indique um endereço de e-mail ou um nome de usuário</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>Não existe usuário conectado com este nome</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>Um email contendo um link foi enviado a seu endereço de email, por favor confira sua caixa postal. Se você ainda não tiver recebido um email, por favor ajuste as configurações de spam e re-envie a confirmação de email.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Erro</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Mensagem</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Hash inválido. Nenhum usuário encontrado.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Redefina sua senha</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Login</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>alterar senha</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>nova senha</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>redigite a senha</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>As senhas que você digitou não são iguais.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>4 ou mais caracteres; maiúsculas e minúsculas são diferentes!</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Senha configurada. Você pode acessar agora.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Erro desconhecido. Por favor informe isso ao Administrador.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Username não encontrado</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Senha inválida</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Desconectado com sucesso</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Cadastro do frontend desabilitado.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>Email inválido</value>
+  </string>
+  <string id="340" name="registration">
+    <value>nome de arquivo duplicado, por favor escolha outro nome</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>nome de arquivo muito curto</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Não foi possível salvar o endereço</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>Usuário adicionado mas você precisa associar esse usuário a uma organização, se não ele não estará apto a se associar.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Novo Registro</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>Nenhum campo encontrado com esse id.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>Nenhum valor encontrado para este campo.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Necessário perfil de administrador</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Editor de idiomas</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Idioma</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>Campo-ID</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Campo-Nome</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Valor</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Valores dos campos</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>Nome do campo</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>Valor do campo</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>ID</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>Você apenas deletou o campo NÂO o Field! Você não pode excluir esse Field, podem existir campo em outros idiomas.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>campoid inválido. O FieldLanguagesvalues_Id não pode ser encontrado na base de dados.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Você não pode excluir esse Field. Você pode apenas excluir Labels NÂO Fields. Não existe Label carregado no momento, se nenhum Field for selecionado ou não existir Label para esse idioma para esse Field definido.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>exportar</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Você precisa fazer login novamente para visualizar as mudanças.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Adicionar novo idioma</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>excluir idioma</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Adicionar novo idioma</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Nome</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>adicionar idioma</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Backup</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>ir para o primeiro</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>ir para o anterior</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>ir para o próximo</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>ir para o último</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>palestras do usuário</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>desligar/ligar som</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>Sistema</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Suas configurações</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>Olá,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Editar meu perfil</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Novas Mensagens:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Nova imagem</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Dados do Usuário - Exportar</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>Todas as organizações já devem existir!</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>começar a exportar</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>Por organização</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>começar a exportar</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Dados do Usuário - Importar</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>escolha users.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>importar</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Exportar para XML - Esses arquivos podem ser usados para: - Contribua com o projeto - Importe em outro sistema - Backup - Customização - Coloque no diretório de idiomas para sua próxima instalação</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Escolha um arquivo de idioma para importar. Escolha o idioma correto no Combobox! Não importa o nome do arquivo, ele será importado nesse idioma!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>importar - escolha o arquivo</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Salvar como</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Nome:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Comentário:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>salvar</value>
+  </string>
+  <string id="395" name="record">
+    <value>Gravações</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Vizualizador de Gravações</value>
+  </string>
+  <string id="397" name="record">
+    <value>Gravações de salas públicas e privadas</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Usuários :</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Entrou:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value>Entrou:</value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Usuários nessa sala:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>atualizar</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>Essa sala está cheia. Tente novamente em alguns instântes.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>clique em uma sala para ver os detalhes</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Chat com os usuários dessa sala:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Sala:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Usuários nessa sala:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>desde:</value>
+  </string>
+  <string id="409" name="record">
+    <value>mostrar a gravação</value>
+  </string>
+  <string id="410" name="record">
+    <value>Tamanho:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Data:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Modo Gravação! Você não pode mudar nenhum valor, este é um arquivo gravado!</value>
+  </string>
+  <string id="413" name="record">
+    <value>Mostrar essa gravação</value>
+  </string>
+  <string id="414" name="record">
+    <value>Reproduzir / Parar</value>
+  </string>
+  <string id="415" name="record">
+    <value>Começar gravação</value>
+  </string>
+  <string id="416" name="record">
+    <value>parar gravação</value>
+  </string>
+  <string id="417" name="record">
+    <value>Gravação:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>Já existe alguém gravando nesse momento:</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Gravando! Pelo usuário:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>cancelar</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>Gravação será cancelada e não será salva.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>continuar</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Fechar essa janela e continuar a gravação.</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>mudar cor da linha</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Mudar Cor</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Disabilitar / Habilitar cor da linha</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>mudar Fillcolor</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Disabilitar / Habilitar Fillcolor</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Mudar tamanho da linha</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>fechar</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>mudar tamanho da fonte</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>excluir Gravação</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Convidado</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>Por:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Nome</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Sala</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Data</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>cancelar</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>start</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Nome</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Data</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>excluir Server-Chatlog</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Bate-papo</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>enviar mensagem</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Emoticons</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Emoticons</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Escolher adaptadores publicados</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Áudio e Vídeo</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Áudio somente</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Vídeo somente</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>sem Áudio/Vídeo (Image estática)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>Nenhum Áudio/Vídeo do seu PC será publicado, ao invés disso uma figura do seu perfil será mostrada. Escolha essas configurações se você tem problemas com sua conexão ou uma conexão de Internet lenta.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>SEG</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>TER</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>QUA</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>QUI</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>SEX</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>SAB</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>DOM</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Segunda</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Terça</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Quarta</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Quinta</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Sexta</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Sabado</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Domingo</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>CS</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Calendário da semana</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>Janeiro</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>Fevereiro</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>Março</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>Abril</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>Maio</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>Junho</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>Julho</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>Augosto</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>Setembro</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>Outubro</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>Novembro</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>Dezembro</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Calendário</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Participantes</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Mostrar configurações de layout</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Largura | Altura</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Video-Container</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Moderação-Container</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Lousa-Container</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Habilitado</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Largura | Altura</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Arquivos,Chat,Participantes - Container</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Habilitado</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Largura | Altura</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>O moderador saiu da sala. Nenhum está presente no momento. Você pode se candidatar para moderação ou esperar.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>Não existe nenhum moderador nessa sala, mas existem alguns participantes. Você pode se candidatar a moderação ou esperar.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Feedback $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Convite</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Mensagem do Usuário:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Mensagem:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Click neste link para participar das reuniões:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Clique aqui para entrar na sala</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>se você tiver problemas com o link, por favor copie e cole isso no seu browser:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME Inscrição</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Seus dados:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Login:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Senha:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>Email:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>TVQWEB - Equipe</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>TVQWEB - Inscrição</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>TVQWEB - Redefinição de Senha</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Clique neste link para criar uma nova senha:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Click aqui para criar umanova senha</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>se você tiver problemas com o link, por favor copie e cole isso em seu browser:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>TVQWEB - Redefinição de Senha</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Por favor informe uma data válida, por exemplo 24.12.2001 (dd.mm.yyyy)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Por favor informe um email válido, por exemplo nome@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Por favor informe um número de ponto flutuante, por exemplo 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Por favor informe um número (Inteiro), por exemplo 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Por favor informe um número de telefone válido, por exemplo ++49 1234 1234</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Por favor informe um horário válido, por exemplo 12:23 (hh:mm)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Proteger com senha</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Senha</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Período de validade</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Final</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Período</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Uma vez</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Valido de:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Valido até:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Convite para reunião instantânea no TVQWEB</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Nenhum convite disponível para esse código</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>O convite já foi utilizado. Esse tipo de convite não pode ser reutilizado.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>Esse código de convite não é válido.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Senha:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Verificar senha</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Senha Inválida!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Navegador</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Sincronizar Audio/Video</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Seu login estava correto, porém sua sessão expirou ou não está ativa no servidor. Por favor faça login novamente.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>O SessionID não está logado ou não tem privilégios de admin. O SOAP Gateway precisa de um usuário com privilégios de administrador para criar novos usuários.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>This Session has no Remoteuser-Data connected. Wether you did not call the SOAP-Gateway before accessing the Application or you are usnig a wrong Session-ID</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>O gravador atualmente é Beta!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>x-axis</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>y-axis</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>w</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>largura</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>h</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>altura</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Alterar transparência</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Abrir Navegador</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Fechar o Navegador</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>A conexão com o servidor foi perdida. Você precisa reiniciar a aplicação e/ou verificar sua conexão com a internet.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Ponteiro</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Sincronizando</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Sincronizando usuários, aguarde.</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Download como SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Download como PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Download como JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Download como PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Download como TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Lembrete:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Categoria:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Repetição:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>none</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Localização:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Inicio</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>Fim</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Título:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Comentário:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Convidar pessoas</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Diário</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Mensal</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Anual</value>
+  </string>
+  <string id="578" name="alert">
+    <value>O fim do encontro marcado é antes do início!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Por favor, insira um título!</value>
+  </string>
+  <string id="580" name="580">
+    <value>Escrever da direita para a esquerda</value>
+  </string>
+  <string id="581" name="581">
+    <value>Ative isso se você escrever em uma linguagem de esquerda para a direita</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Painel</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Assista reuniões ou eventos gravados</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Meeting - Faça uma conferência com vários usuários&lt;br/&gt;Todos terão acesso a áudio e vídeo</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Evento - Faça uma conferência com milhares de participantes&lt;br/&gt;Somente o Moderador terá acesso ao áudio e vídeo</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Criar usuários, salas, organizações&lt;br/&gt; acesso as configurações</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Usuários nessa sala agora</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Login</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Carregando Documento. Por favor aguarde enquanto todos os clientes são sincronizados.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Upload completo, convertendo documento...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Inicia Upload</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Upload e Importação. Por favor, selecione um arquivo do seu disco.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Cancela</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Seleciona arquivo</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Conexões</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Valor</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Streamid</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Login</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Conectado desde</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Sala / Escopo</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Desconectar usuário</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Desconectar usuário</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Tem certeza que deseja desconectar esse cliente dessa conexão?&lt;br/&gt; Isso somente remove o cliente da sala atual. O cliente pode reconectar-se novamente.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Sua sessão foi terminada por um Administrador ou Moderador.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Telefone</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>O usuário é o moderador desta sala</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>O usuário está autorizado a desenhar na lousa</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Re) Inicie áudio/vídeo ou modifique as configurações de dispositivos</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Permitir que esse usuário a desenhar na lousa</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Remover a capacidade de desenhar na lousa</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Usuários</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Arquivos</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Lousa</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Bate-papo</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Sua conta está associada a várias organizações. Por favor escolha uma para essa sessão.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>Esta sala está cheia nesse momento. Por favor tente mais tarde.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Tipo de sala</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Sala designada</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Hora do servidor</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>TVQWEB - Lembrete</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Mensagem do usuário:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Mensagem:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Click nesse link para participar nas reuniões:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Click aqui para entrar na sala</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>se você estiver com problemas nesse link, copie e cole este endereço em seu navegador:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>busca interna</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>usuários externos</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>Nome</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>Sobrenome</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>E-mail</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Confirmar Saida</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Tem certeza que quer fazer logout?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Ações</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Sala Demo</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Demo Time</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Tempo de Reunião</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>Está é uma sala de demonstração. Para desligar esse aviso você deve entrar em reunião privada,ou configurar um servidor próprio. Você será desconectado em:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Moderado</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Por favor, aguarde até que o moderador tenha entrado na sala. O moderador pode ser um Professor, Admin ou o criador dessa sala.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Ok</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Entrada do compartilhamento de tela</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>Há um novo compartilhamento de tela do usuário:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Inicia compartilhamento</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Adiciona nova reunião</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Sala de Reunião</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Sala de Evento</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderação</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Moderar usuários</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Moderar salas</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Você quer alterar esse usuário para se tornar um moderador dessa organização?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Por favor, escolha uma organização antes de tentar adicionar um usuário para ele!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organização - Moderador</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Tem certeza que deseha excluir esse usuário dessa organização?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>Este usuário é o moderador</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>Este usuário não é o moderador</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Você deseja que esse usuário não seja moderador dessa organização?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Adiciona ou exlui usuários ou senhas dentro de usa organização</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Tem certeza que quer excluir esse registro?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Tem certeza que quer excluir esse usuário da sua organização? Você irá excluir somente a conexão do usuário entre a organização. Para excluir o usuário do sistema, vá para o painel de administração.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>Você não pode excluir seu próprio usuário!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>Este método necessita de uma conta administrativa a ser invocada!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>Não existe uma sessão associada com esse ID.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>Está é uma conta de administrador ou moderador. Você pode editar esta conta no painel de administração.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>Para completar seu registro, clique no link ou cole a URL no seu navegador.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Clique para verificar seu e-mail</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Nenhum usuário encontrado para esse Hash.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Este usuário já está ativado!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Você ativou com sucesso sua conta!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Logar agora</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Sua conta não está ativa. Use o link fornecido que foi enviado para seu e-mail durante o processo de registro.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>Cadastro efetuado com sucesso. Enviaremos um e-mail com um código de verificação. Por favor, verifique seu e-mail.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Remove regras de moderação para esse usuário</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Dá direitos de moderação para esse usuário</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>Usuário</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Acesso a lousa</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderator</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Moderação: Escolha um usuário da lista para conceder acesso a lousa, moderação ou video.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>Esse usuário já é moderador, então ele tem já tem direitos de desenhar na lousa.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>Esse é você! Não é possível remover seu próprio direito de moderador.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Permite esse usuário publicar seu Audio / Video</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Remove ádio/Vídeo desse usuário</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>Eu tenho uma pergunta.</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>Gostaria de desenhar na lousa</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>Gostaria de compartilhar meu áudio/vídeo</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>Você é o moderador dessa sala</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>Você está autorizado a desenhar na lousa</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>Você está autorizado a compartilhar seu áudio/vídeo</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Mensagem do moderador</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>O usuário</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>gostaria de fazer uma pergunta.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>gostaria de desenhar na lousa.</value>
+  </string>
+  <string id="695" name="695">
+    <value>gostaria de compartilhar meu áudio / vídeo</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>Você tem que aguardar enquanto o moderador entra na sala.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Cancela</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Salva</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Dia</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Mês</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Ano</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Upload de arquivo</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Adiciona pasta</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Atualiza</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Lixeira</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>Meus Arquivos (Home Drive)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Arquivos da sala (Public Drive)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Adiciona arquivo</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Adiciona pasta</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Deleta pasta</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Edita Nome</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>Nova pasta</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Tem certeza que quer excluir esse item?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Busca</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Busca</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Abre documento</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Mostra todos os arquivos (Tree View)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Fecha Documento</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Deleta arquivo</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>Você não está autorizado a desenhar nada na lousa. Você precisa tornar-se moderador ou conseguir o direito. Você pode pedir esse direito a um moderador.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Propriedade do documento</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Inicia cliente (external)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Inicia cliente (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>Um usuário deseja compartilhar sua tela. Quer ver isso?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>Você está compartilhando seu desktop. Para parar, pressione o botão Stop no cliente de compartilhamento.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Compartilhar sessão</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>Você já está compartilhando seu desktop!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Visualisador de Desktop</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Sai</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Compartilhador de Desktop</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Clique em iniciar para publicar sua tela</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Inicia compartilhamento</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Para compartilhamento</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Seleciona a área de sua tela:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Troca largura</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>O compartilhamento foi finalizado nessa sessão!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Troca largura</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-Offset</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-Offset</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Largura:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Altura:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>A conexão foi terminada pelo servidor</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Cancelar</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Iniciar externo</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>Se você fechar essa sessão completamente, você não será capaz de reiniciar o visualizador para essa sessão.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Confirme o fechamento do visualizador de sessão</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Compartilha Tela</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Grava sessão</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Co-Browsing</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Melhor visualizado no Internet Explorer.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Anterior</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Próximo</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Recarregar</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Home</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Carrega</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Adiciona esse site como site padrão do seu perfil.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Teste as conf.</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Verifique se o microfone e a camera antes de entrar em uma sala .</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Não mostre esse teste novamente</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Cancela</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Iniciar conferência</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Não pergunte novamente</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>GRAVA</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>Você pode continuar sem o teste, se você não pretente publicar sua imagem ou voz. Participantes sem audio e video podem usar a lousa, compartilhar o desktop ou usar o chat.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>PARAR</value>
+  </string>
+  <string id="767" name="767">
+    <value>Intensidade</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Pressione inicia</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Inicia Conferencia</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Iniciar Evento</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Selecione a sala</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Verifique a configuração</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Inicie a Conferência</value>
+  </string>
+  <string id="774" name="start view">
+    <value>Passos para a conferência:</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Iniciar Gravação</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Não mostrar Áudio/Vídeo teste (gravação) antes de entrar em uma conferência</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Salas públicas</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Salas públicas são acessiveis por todos os usuários.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Salas privadas</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Salas privadas são acessiveis somente por usuários da mesma organização.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>Minha sala</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Salas criadas nessa seção são de uso pessoal. Elas são criadas através do calendário e tem um início e uma data final. Elas só estão listadas nesta seção durante sua validade.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>Você tem que ser o moderador para fazer isso.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Pedir moderação</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Pedir acesso para a lousa</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Pedir acesso para camera/microfone</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>Esse hash já foi usado. Você não pode utiliza-lo duas vezes.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>INICIA</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>SAIR</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Tem certeza que quer sair? Você deve limpar os documentos, lousa, e histórico do chat.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Deixar a conferência</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Salas</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Escolha uma sala para a reunião</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>Existe um evento não salvo no calendário. Por favor salve ou exclua.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Por favor, adicionar pelo menos um participante para a reunião!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Tem certeza que quer excluir esse evento?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Aviso</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Adiciona evento</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>dia</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>semana</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>mês</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Descrição</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Participantes</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, sua plataforma de conferência web. Você pode seguir os passos 1-2-3 para entrar em uma sala de conferência diretamente ou selecione a opcão calendário para planejar uma reunião.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Planejar Reunião</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>Para configurar uma conferência você pode adicionar um novo evento ao calendário</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Precisa de ajuda?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Restrito</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>busca</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Adiciona</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>Não há nenhum usuário selecionado, Por favor selecione um item da lista, e depois clique em adicionar.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Adicionar Participante</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Salva</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Exclui</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Detalhes do evento</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Moderadores padrão</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Nome</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>E-Mail</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Adiciona o moderador padrão</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>É um Super Moderator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>Se a sala é moderada, usuários com permissão de Moderador ou Administrador são automaticamente Moderadores quando entram na sala. Se você não quer espeficificar e só deseja que um determinado usuário torne-se moderador use a opção Moderador Padrão.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>Um Super Moderador é sempre um Moderador quando entra na sala, e ninguem pode remover seu privilégio de moderação.</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Aplica Super-Moderação para o usuário</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Remove Super-Moderação do usuário</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>Se você adicionar uma Organização para a sala apenas usuários dessa organização têm acesso a ela (esta opção só é válido se a opção Público não estiver selecionada!)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderação</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitações</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organização</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Tem certeza?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Tem certeza que quer excluir esse item? Você precisa pressionar o botao Salvar para fazer as mudanças!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>Nenhum usuário selecionado. Por favor selecione um depois adicione isso!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Adiciona um novo moderador padrão</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Quer adicionar a permissão de Super-moderador para esse usuário? Um super-moderador não é moderador somente da sala, e nenhum outro moderador pode remover a permissão de moderação dele. Você precisa salvar para que as configurações tenham efeito.</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Tem certeza que quer remover a permissão de Super-moderador para esse usuário? Você precisa salvar para que as configurações tenham efeito.</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>É um Super-moderador. Você não pode remover a permissão de Moderação de um Super-moderador!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Tem certeza que quer exclurir esse Arquivo/Diretório?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Excluir Arquivo/Diretório?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Sr.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Propriedades</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Mostra a posição do mouse para os espectadores</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Compartilhar Audio com o SIP Applet</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Compartilhar Áudio e Vídeo via SIP com Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Ajuste</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>Ver Tela</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>O Usuário</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>quer compartihar sua tela. Você quer ver?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Fecha</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>A sessão foi fechada pelo usuário que compartilhava!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pausa</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>Novo compartilhamento de tela</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimiza</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximiza</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Vídeo</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Linha do tempo</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>Minhas Gravações</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Gravações Públicas</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Nome</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Duração</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Data</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>Por</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>PLAY</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Vídeo - Principal</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Gravando</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>Você pode gravar e compartilhar a qualquer momento. Para que outros usuários consigam ver sua tela, clique no botão Iniciar no topo da tela. Para somente gravar, clique no botão Inicia Gravação.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Inicia gravando</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Para a gravação</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download o arquivo FLV</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Sala</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Play</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Parar</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>O microfone do usuário está ligado</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Interromper o compartilhamento</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Permitir perguntas dos usuários</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Desligue isso para evitar que qualquer usuário perturbe você nessa sala. O botão para pedir a moderação ("Eu tenho uma pergunta") fica invisível.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Direitos</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Download como AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Somente Audio</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>Os erros aconteceram no processo de gravação.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>A visualização da gravação ainda não está pronta. Por favor tente novamente em alguns minutos.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Gravador de mensagem</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>O Applet SIP não está pronto</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>Configurações da conta SIP</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>Definições SIP para cada usuário. Você pode ligar ou desligar o SIP via Administração &gt; Configuração (Chave: enable_sip). Os dados SIP para cada usuário deve ser criados automaticamente.</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>Usuário do SIP</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Senha do SIP</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>O Login no Gateway SIP falhou. Você deve conferir seus dados de autenticação do seu provedor SIP. Como administrador, você ainda poderá fazer o login e verificar a configuração. Como usuário ou moderador, você será bloqueado a partir de qualquer iteração.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>O Login no Gateway SIP falhou, entre em contato com o suporte do serviço!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logando no SIP-Gateway ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logando no SIP-Gateway ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Mostra Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log de mensagem do processo de gravação</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>Mensagem do Applet SIP</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>O Applet SIP não está pronto. Aceite o applet e clique em ok!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Get Moderation</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Save Appointment Changes</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointement has been changed. Do you want to save those changes? &lt;br/&gt;&lt;br/&gt;All attendees of the appointment will receive a EMail with the updated date and time (depending on the notification type of this appointment).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>Para acessar outras gravações que você tem para fazer login no aplicativo $APP_NAME.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Escolha o usuário para este vídeo</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available Users for this Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>Você é um moderador nessa entrevista. Você pode decidir quem está falando nesta entrevista e pode iniciar / parar a gravação da Sessão.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Iniciar gravação</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Parar gravação</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>A gravação da entrevista já foi iniciada.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>A gravação está parada ou não foi iniciada ainda.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>A gravação desta entrevista já começou!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancelar</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>O processamento de uma entrevista demora 5 minutos por 1 minutos de entrevista. O progresso atual da transcodificacao da entrevista e processamento é a seguinte:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>Você tem que digitar sua senha novamente para criar automaticamente os dados SIP</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generar SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>Você não pode mover o arquivo ou pasta em sua própria pasta!</value>
+  </string>
+  <string id="923" name="file explorer">
+    <value>Tamanho da unidade</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Tamanho do HD público</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>Propriedades da licença</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>Você pode vincular o usuário a uma data de expiração ou a um número máximo de minutos, quando você ativar o licenciamento.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Verifique licença</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Aquisição de volume</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Data de expiração</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Segundos restantes</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Tempo total</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Sua licença expirou. Você precisa comprar novos minutos (pagar por minuto) ou uma base fixa de consumo / volume.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Clique e compre</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Tempo restante em sua conta</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>Informações de Licença de Usuário</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Fechar</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Sua licença expirou. Você precisa comprar novos minutos (pagar por minuto) ou uma base fixa de consumo / volume.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>Propriedades da licença</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>Você pode optar por comprar minutos para fazer videoconferências (pagar por minuto)&lt;br/&gt;&lt;br/&gt; Ou adquirir um plano de 3 a 12 meses&lt;br/&gt;&lt;br/&gt;Envio de convites (links diretos para salas de conferências) ou a criação de salas de conferências via o calendário com usuários externos só é permitido com uma base fixa de volume!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Compre 60 minutos: R$...</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Compre 5 horas: R$...</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Compre 3 meses R$...</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Compre 6 meses R$...</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pagar por minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Aquisição de volume</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>Você tem licença ilimitada</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Sua licença expira em:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>Você adquiriu o plano por minuto e ainda tem:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Compre mais créditos!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Quer seu prórpio serviço personalizado de videoconferências?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>Você gostaria de ter o nome de seu aplicativo instalado em seu servidor ou integrado em seu Moodle, SugarCRM, site ou Intranet? Preços a partir de xxx reais por instalação!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Responder a:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Mensagem:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Clique aqui para informações de condições e contato</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Detalhes do cartão de crédito</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Nome</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Sobrenome</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Tipo de Cartão</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>Cartão VISA</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Descobrir</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Número do Cartão</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Data de Validade</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Número de verificação do cartão</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Endereço de Cobrança</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Endereço</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value>Endereço</value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>Cidade</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>País</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>Estado (somente US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>CEP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Quantidade</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Passo 1: $APP_NAME - Forma de Pagamento</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Clique"Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Obrigado por comprar o $APP_NAME. &lt;br/&gt; Tão logo recebermos o pagamento sua conta será atualizada. &lt;br/&gt; Você receberá um email com a sua factura em formato PDF. &lt;br/&gt; Você também pode verificar as transações atuais e passadas em seu configurações do perfil. &lt;br/&gt; &lt;br/&gt; Você pode fechar esta janela do navegador / guia agora e voltar para $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Confirme e compre!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Clique e compre!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Passo 3: Pagamento $APP_NAME - Confira a ordem e compre!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Nome</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Pagamento recebido!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Olá,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>Nós recebemos o seu pagamento. Seu perfil de usuário está atualizado agora. Veja anexo a sua fatura. As Notas Fiscais Futura e passada também podem ser baixadas em seu perfil de usuário.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Obrigado por utilizar o $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>$APP_NAME Pagamento Recebido -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Estado de pagamento e transações</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Código de transação</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutos</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Meses</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>R$</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Fatura</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value>Fatura</value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>Você necessita pagar uma taxa para ser capaz de enviar convites ou criar encontros através do calendário. Com pagamento por minuto só é possível para você acessar o $APP_NAME. Você não pode permitir a terceiros o acesso a uma reunião.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Configurações</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>O número de conferência e PIN é criado automaticamente através do OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>Número SIP</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Limpar objetos desenhados na lousa!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Somente a URL digitada na barra de status é enviada para os participantes!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Faça salas de equipe [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Escolha usuários para a sala de equipe</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>Você pode escolher usuários aqui e criar uma nova sala de conferência ("Equipe da Sala") para eles. Os usuários escolhidos irão automaticamente para a nova equipe da sala ou recebem uma notificação. Equipe da sala-Moderadores recebem ainda uma lista de salas atuais, para que possam mudar de sala, se houver a necessidade de um moderador.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Usuário</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Usuários para a nova sala de equipe:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Criar equipe da sala</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancelar</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Escolha pelo menos um usuário para a equipe da sala!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Adicionar usuário a equipe</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remover usuário da sala de equipe</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>Usuário é moderador. Ele pode gerenciar outros usuários</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Tipo de sala</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>Se você ticar "Forçar usuario a mudar para nova Sala" todos os usuários escolhidos irão automaticamente para a recém-criada sala. Caso contrário, receberão uma notificação que eles &lt;i&gt;podem&lt;/ i&gt; mudar para a nova sala. Equipe de Moderadores sempre tem a livre escolha para gerir as Salas e alternar entre elas.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Gerencias salas de equipe</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>Você pode alternar entre aqui todas as salas de equipe que são atribuídas como moderador de sala de equipe. Usuários dentro da sala de equipe, você podem lhe enviar uma mensagem, por exemplo, pedindo para vir para a sua sala de reunião e ajudá-los. Você também pode encerrar a sala de equipe e todos os usuários serão desconectados.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Forçar usuário a mudar para nova sala</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Nome</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Criado por</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value>Criado por</value>
+  </string>
+  <string id="1028" name="team-split">
+    <value>Criado por</value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Usuários disponíveis</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Adicionar um usuário com o "-" da esquerda ou removê-lo com o "+" da direita!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Configurações de salas de equipe</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Adicionar usuários à sala de equipe</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Nome da sala de equipe</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Sala de equipe</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Mudar para a sala</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Mudar para essa sala de equipe</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Encerrar sala de equipe e desconectar todos os usuários!</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>Nova sala de equipe</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>Há uma nova sala de equipe disponível para você!</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Mudar para uma sala de equipe</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Ações da sala de equipe</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>Você pode reabrir esta janela através do menu principal &gt;&gt;&gt; ações</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Enviar mensagem ao moderador da sala de equipe</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>Nova sala de equipe</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>Há uma nova sala de equipe deisponível.Você pode mudar para essa sala. Salas de euipe são como grupos de trabalho com possibilidades de pedir ajuda ao moderador. Suas salas de equipe também estão disponíveis na seção "minhas reuniões".</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Mudar para a sala de equipe</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Criada por:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Nome da sala de equipe</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>Esta janela permanecerá aberta mesmo que você deixe a sala!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Usuários para esta sala de equipe</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Outras sala de equipe para as quais você pode se mudar:</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Deixe uma mensagem para o moderador da sala de equipe.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Enviar</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Usuário convidados para esta sala de equipe</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>É moderador da sala de equipe</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>Estes são todos os usuários que o moderador convidou para a sala de equipe</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>Não há moderador da equipe logado no momento!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Por favor insira uma mensagem</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Por favor, nos ajude!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>Um usuário de uma sala de equipe precisa de sua ajuda!</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Equipe da sala solicita ajuda</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Mensagem:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>De:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>Você não está atualmente em qualquer equipe da sala. Mas você pode mudar aqui para todas as salas as quais você tem acesso.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Faça o backup do sistema. O backup inclui todos os dados de usuários. A configuração não está incluído, bem como as etiquetas de idiomas. Porque esses valores são importados com o instalador de sistema. Para atualizar seu sistema, exportar seu antigo sistema (1) re-instalar em um novo banco de dados um novo pacote (2) e importar o arquivo de backup novamente (3). O backup deve ser importado antes de gerar os dados no sistema recém-instalado.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>Backup do sistema</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Permitir ao usuário Compartilhar/Gravar a tela</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Negar ao usuário compartilhar tela/Gravar</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>Usuário é Moderador, ele pode fazer qualquer coisa!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>gostaria de compartilhar/gravar a tela.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>Você está autorizado a compartilhar/gravar a tela</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Aplicar para direito de compartilhar/gravar a tela</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Permitir/Negar direito de compartilhar/gravar tela</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Desligar o som</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Ligar o som</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Sala só com áudio</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Permitir controle remoto (Durante o Compartilhamento de Tela)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Negar Controle Remoto (Durante o Compartilhamento de Tela)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>Você está autorizado a controlar remotamente a tela (Durante o Compartilhamento de Tela)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>gostaria de controlar remotamente a tela.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>Usuário é Moderador, ele pode fazer qualquer coisa! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Permitir/Negar direito de acesso de controlar remotamente a tela (Durante o Compartilhamento de Tela)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Seu PC para o PC remoto: Para copiar e colar texto de sua área de transferência para a tela controlada remotamente, clique na tela, clique com o botão direito no campo de texto e escolha "insert" do menu.&lt;br/&gt;&lt;br/&gt;2) Do PC remoto para seu PC: Para copiar texto do PC remoto para o seu, destaque (clique e arraste sobre as palavras) o texto com o mouse na tela remota, clique com o botão direito e escolha a opção &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copiar e colar texto do seu PC para o PC remoto e vice versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copiar o texto realçado</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>Como copiar e colar</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Qualidade do compartilhamento de tela:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Qualidade muito alta</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>Qualidade alta</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Qualidade média</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Qualidade baixa</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Teclado:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Feche conferência!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>a conferência terminou. Você será direcionado para assuntos interessantes em</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Fechar a sala</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Fechar endereço eletrônico</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Configurações de terminação da sala</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>Se a sala estiver encerrada, usuários serão redirecionados para o endereço eletrônico</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Nome</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Arquivo de configuração</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Configuração LDAP</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Nome</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Habilitado</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserido</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserido por</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Atualizado</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Atualizado por</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>Os arquivos de configuração estão na pasta webapps/openmeetings/conf. Você precisa carregar manualmente os arquivos para esta pasta. As alterações no arquivo de configuração estarão imediatamente online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Nome de arquivo de configuração</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>Se você escolheu "Adicionar domínio para nome de usuário" o valor no campo "domínio" é adicionado para cada login que o usuário digitar no box de login. Isso é útil se o login no LDAP é salvo incluindo o nome do domínio. Exemplo: Usuário entra com "Maria" especificado como "localhost.com". O login que é verificado em relação ao LDAP é maria@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Adicionar Domínio ao usuário</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Inserir</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copiar o texto realçado</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Texto da área de transferência remota</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Mostrar área de transferência remota</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Não mostrar novamente</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copiar o texto aqui ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Editar configurações padrão ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Não mostrar caixa de informação no controle remoto sobre Copiar e Colar</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Salvar</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remover</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancelar</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Convidar usuário a sala de conferência</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Escolha uma sala de conferência. O usuário convidado irá receber uma mensagem com seu nome e um link para a sala.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Conectado desde:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Entre na sala após o envio de convite</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Convidar</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Mensagem</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Mensagem convite</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Enviar convite</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>&lt;b&gt;não&lt;/b&gt; aceitou seu convite!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Aceitar</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Aceitar</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Fuso horário</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Descrição</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Criado por</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>Mensagem Fuso Horário</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Marque a opção "Mensagem do Fuso Horário" para apresentar aos usuários uma mensagem na próxima vez entrarem para atualizar o perfil.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Por favor, verifique o fuso horário no seu perfil de usuário.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>Nova conferência $APP_NAME</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>&lt;br/&gt;Detalhes:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Inicio:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>Fim:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Conferência $APP_NAME Modificada:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizador:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Conferência $APP_NAME Cancelada:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME Lenbrete de conferência:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Definições comunitárias</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Mostrar dados de contato para todos.</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Adicionar campos de interesse que você tem a oferecer ou que você está procurando, para encontrar parceiros interessantes para uma conferência. Vírgula separa os termos (por exemplo: serviço médico, garantia de saúde, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>Minhas ofertas</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>Meus interesses</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Fuso horário</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Áreas de interesse</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Informações para contato</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Mostrar dados de contato apenas para os contatos</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Não mostrar dados de contato</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>Meu Perfil</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Editar configurações</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Pesquisar usuários</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Veja o seu perfil como outro o vêem</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edite suas configurações, adicionar os seus interesses para ser encontrado</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Pesquisar outros usuários e ampliar sua rede</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Pesquisar</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>Usuário oferece</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>Usuário procura</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Texto livre</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Nome</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Fuso Horário</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Oferece</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Busca</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Resultado da pesquisa</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Ações</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Adicionar aos contatos</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contatos e Mensagens</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Aceitar</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Negar</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Olá,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>gostaria de adicioná-lo como contato.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Verifique os seus pedidos de contacto em $APP_NAME ou clique sobre os links para aceitar ou negar o pedido</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>Este usuário já está em sua lista de contatos ou recebeu um convite para sua lista de contatos que não foi respondida ainda.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Sua lista de contatos</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edite seu contato e mensagens, &lt;br/&gt; gerencie seus contatos pendentes!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmou você como contato!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value>Informação de chat</value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Mostrar / Copiar log do chat</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Log do chat</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>De</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Assunto</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Enviar</value>
+  </string>
+  <string id="1205" name="private message">
+    <value>Enviar</value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Menssagens</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>Novo email</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Clique para escrever uma nova mensagem para quaquer um de seus contatos</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Escrever nova mensagem</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>Para:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Assunto:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Ative ajuste e a lousa irá ampliar na tela inteira, então &lt;br/&gt; documentos estarão visíveis de acordo com a resolução da tela de cada participante.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Expulsar usuário</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>Você não pode expulsar a si mesmo da sala de conferência! Se você quiser sair da sala feche o navegador!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Você realmente deseja desconectar este usuário da sala de conferência?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirme ação ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>Você não pode expulsar um Super-Moderador de uma sala!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Iniciar</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>Fim</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Adicionar uma solicitação de reunião opcional para a mensagem e criar uma sala de conferência. O evento é copiado no calendário de cada participante.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Caixa de Entrada</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Enviado</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Lixo</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>Este é você! Você não pode adicionar a si mesmo como contato.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>O usuário já está negado!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>O usuário já está aprovado!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>Este hash de contato do usuário é inválido!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>Usuário adicionado à lista de contatos!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>Usuário negado como contato e removido da lista de contatos pendentes!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>Não há esse contato!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Será que você realmente deseja remover o contato?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirmar remoção de contato</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Deletar contato da lisa</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>Perfil de usuário</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Mostrar o perfil do usuário</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Mensagens</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Pesquisar</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Selecionar todos</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Desmarcar</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Selecionar não lidas</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Selecione ler</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Mover para pasta ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Adicionar nova pasta ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Excluir</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>e-mails deletados ainda permanecem na sua lixeira!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Marcar não lidas</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Marcar lidas</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Responder</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Responder a todos</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Para frente</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Ações ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Enviar mensagem privada</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nada selecionado!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Mover para Caixa de Entrada</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>Essa ação não pode ser desfeita!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Adicionar pasta</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Adicionar pastas e organizar suas mensagens!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Adicionar pasta</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Adicionar</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>excluir pasta</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>Você não pode excluir esta pasta, ainda existem nela! Excluir primeiro as mensagens ou movê-los para outra pasta.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Você realmente quer apagar esta pasta? Não há maneira de desfazer isso.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>O seu pedido foi enviado para o usuário. O usuário receberá uma notificação para aceitar ou negar o seu pedido. Apenas os pedidos aceitos estão em sua lista de contatos, é claro!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Mensagem</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>O usuário não compartilha seus dados de contato pessoal.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>O usuário não compartilha seus dados pessoais de contacto só para contatos.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Endereço &amp; Telefone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>Seu código de convite não é válido, o código só é válido durante esta data e hora específicas:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>Este evento está ligado a vários calendários de outros usuários. Sua alteração irá também atualizar o calendário deles. Será que você realmente gostaria de atualizar o evento?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirme atualização</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Permitir que contato veja meu calendário (somente visualização)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Não compartilhe o calendário</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendário de contatos</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Seus contatos devem aprová-lo primeiro para poder ver seu calendário.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>Você não pode armazenar ou excluir eventos de outros calendários. Somente do seu!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Mostrar o meu calendário de novo!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>Este evento está ligado a vários calendários de outros usuários. Sua ação também irá apagar o evento do calendario deles. Será que você realmente deseja apagar o evento?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirme ação</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Entre na sala</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Acesse a sala de conferência</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>Há uma sala de conferências e evento reservados com esta mensagem privada.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>Você precisa armazenar o evento primeiro!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>Não há sala disponível. O evento no calendário para esta sala já foi apagado!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Escolha seu apelido</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Primeiro nome</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Último nome</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Tamanho mínimo 4 caracteres! Tanto Nome e Sobrenome</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Por favor, entre com email válido!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Entrar com sua conta do Facebook</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Membro desde</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>Você conectado com sua conta do Facebook. Você deve atualizar seu perfil com o e-mail correto. Caso contrário, você não receberá convites e mensagens privadas de outros usuários.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Mensagem</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Não mostrar mensagem de atualização de perfil novamente</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>mais opções de tela ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>Nova mensagem privada:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Clique aqui para visitar o seu perfil para ver a mensagem completa ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Responder</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Salas e bate-papo</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>Minhas salas</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>Minha sala de conferência (de 1-16 usuários)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>Minha sala de seminário (Webinar) (de 1-120 usuários)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>ID do dono</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Digite uma senha</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>Você precisa de uma conta com nível de Usuário, Moderador ou Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (acesso apenas através via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Carregar diretamente na lousa</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Você realmente deseja remover esta lousa? Essa ação não pode ser desfeita!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Carregar para a lousa</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Não se esqueça de "Iniciar gravação", se você quiser ter a reunião gravada.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Iniciar gravação</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Seta</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circulo</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Linha</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Quadrado</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangulo</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Texto/Nota</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Desenho livre</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Selecionar/Mover</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Desenhar uma forma</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cortar/Mover</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Imprimir</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Desfazer</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Lixo</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Adicionar Grade</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Compartilhar Arquivo</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Selecionar Forma</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Selecionar Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copiar</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Recortar</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Colar</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Excluir</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Você realmente deseja excluir todo o conteúdo da lousa?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Carregar directamente para a lousa</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Participantes</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Gerente de participantes</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Presente</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Controle remoto</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Ejetar</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Bate-papo</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Convidar Participantes</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>Por Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>É moderador</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>Webcam do usuário ligada</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Desativar preenchimento de formulário</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Ativar preenchimento de formulário</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Ajustar ao grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Permitir gravação</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Espere para gravação</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Ocultar barra superior</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Reproduzir vídeo</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Você realmente deseja excluir objetos desenhados na tela atual?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Aceitar e conceder direito de usuário</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Negar</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>Eu</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Atividades e ações</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remover a lousa</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>Você precisa da moderação ou o direito de desenhar no quadro branco para remover quadros!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Não é permitido</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>saiu da sala.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Ícones de Matemática</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>Nenhuma categoria</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Cor-Estilo</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Qualidade</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domínio</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visitar</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>Verde mar médio</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>azul celeste</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>Azul escuro</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>Amarelo ouro</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>Prata</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>definicao do usuário</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>o melhor</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medio</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Fechar o microfone</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Ativar microfone globalmente</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Microfone dos outros mudo</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>Você está globalmente silenciado pelo moderador. Você não pode reativar!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Silenciar o microfone totalmente?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Você realmente quer silenciar-se globalmente? Nenhum outro usuário vai ouvir você!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Silenciar microfone localmente?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Você realmente quer silenciar este microfone? Você só pode silenciá-lo localmente em sua tela. Não tem nenhum efeito para outros usuários. Apenas os moderadores podem desligá-lo globalmente!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Silenciar microfone globalmente?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Você realmente quer para silenciar este usuário globalmente? Nenhum outro usuário vai ouvi-lo mais!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Seu som está ligado. Clique aqui para enviar mensagem ao moderador para silenciar seu microfone (para toda sala de conferência)!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Seu som está desligado. Clique aqui para enviar mensagem ao moderador para ativar seu microfone (para todos na sala de conferência)!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>gostaria que o moderador silenciasse meu microfone.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>gostaria que o moderador habilitasse microfone globalmente.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>gostaria que o moderador habilitasse o microfone dele/dela.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>gostaria que o moderador desabilite o microfone dele/dela.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Microfone mudo. Clique aqui para ativar o microfone seu / dela!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>Este usuário foi silenciado pelo moderador. Você não pode ativa-lo!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Silenciar o microfone</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Ativar o microfone para toda a sala</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Microfone mudo</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Ativar microfone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Silenciar microfone</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Ativar microfone para toda a sala</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Somente moderadores podem silenciar ou ativar um usuário! Para silenciar o microfone próprio: Por favor, use o ícone de microfone na caixa de vídeo!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Nome da enquete</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>Você</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Enquetes arquivadas</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>ativo</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Gráfico simples</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Gráfico de pizza</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Por favor, indique e-mail</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>Nova(s) mensagem(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Encerrar enquete</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Tem certeza que deseja encerrar esta enquete? Ninguém será capaz de votar após isto.</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Excluir Enquete</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Tem certeza de que deseja excluir esta enquete? Os resultados serão excluídos.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Permitir/Negar o direito de dar áudio exclusivo.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Permitir ao usuário dar áudio exclusivo</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Negar usuário dar áudio exclusivo</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>gostaria de obter uma permissão para áudio exclusivo.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>gostaria de obter permissão para áudio exclusivo.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>dar permissão para áudio exclusivo.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Resolução da camera</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Alterar a resolução afeta a largura de banda, foto maior precisa de mais largura de banda!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>Você não tem permissão conceder audio exclusivo a si mesmo ou outras pessoas. Você precisa ter permissao do moderador ou pedir ao moderador para lhe dar áudio exclusivo.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>Gostaria de obter o direito exclusivo para áudio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Dê áudio exclusivo para mim (em alternativa clique sobre o vídeo pod ou pressione F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microfone está ligado!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microfone está mudo</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Ocultar bate-papo</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Ocultar atividades</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Ocultar o explorador de arquivos</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Ocultar menu de ações</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Ocultar o compartilhamento de tela</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Ocultar a lousa</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Mostrar status de microfone no vídeo</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Opções de layout</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>Novo Evento</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Protegido por senha são os links para a conferência que são enviados para os participants quando você salvar o calendário de eventos, e não a sala! Isso significa que se você salvar o evento várias vezes, mas com senhas diferentes, cada participent recebe um novo link que tem uma senha diferente. Mas os links antigos ainda funcionam uma vez enviados!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Editar detalhes</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Mostrar discador SIP</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Chamar</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Mostrar eventos de calendário de contato</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Página inicial!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Planeje suas reuniões</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Assista a gravação e entrevistas</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Escolha e inicie uma web-conferência</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Gerencie usuários e direitos</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Gerencie conexões e expulse usuários</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Gerencie grupos de usuários</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Gerenciar salas de conferência</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Gerenciar as configurações do sistema</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Gerenciar rótulos e redação</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Gerenciar LDAP e configurações de ADS</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Exportar/Importar Backups do Sistema</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>Você precisa ser um moderador ou ter direitos para "desenhar na lousa", adicionar, excluir ou carregar arquivos e pastas.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Editar texto</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publicar</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Iniciar Publicação</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Parar Publicação</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Contexto</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Id da Publicação</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduza a largura do compartilhamento de tela antes de tentar mover isto para esquerda</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduzir a altura da tela compartilhada antes de tentar movê-lo para o fundo</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduzir o x da tela compartilhada antes de tentar torná-la mais ampla</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduzir o y da tela compartilhada antes de tentar torná-la maior</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Favor iniciar o compartilhamento de tela para publicar isto</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>É necessária permissão de moderador para iniciar a gravação</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>Você não tem permissão para habilitar áudio exclusiva para qualquer participante. Você precisa de direitos de moderação ou o direito exclusivo de áudio para habilitar qualquer microfone em modo exclusivo..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Carregar novo arquivo para a pasta de arquivos</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Abra nova caixa de diálogo com as configurações de compartilhamento</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>Um moderador existente tem que aprovar isto</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Pergunte moderador para compartilhar sua webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Reúna comentários, criando uma enquete</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Resultados da enquete corrente e passada como gráfico</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Votar se houver uma enquete para esta sala de conferência</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Editar configurações de câmara e microfone</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirmar e sair da sala</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Ligue para pessoas externas via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Envie um email com um link direto para esta sala</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Alterar as configurações de sua lousa</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Tamanho máximo de upload</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Pergunte ao moderador para compartilhar sua lousa</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Começar bate-papo particular / privado</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>Todos / tudo</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>Você não pode iniciar um bate-papo consigo mesmo!</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>Você já iniciou um bate-papo com este participante!</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Você realmente quer apagar esse bate-papo?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servidores</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servidores em cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Nome do servidor</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Endereço do servidor</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Detalhes do servidor</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Enviar SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publicando...usuário</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>Para ganhar tempo e economizar tráfego na internet você pode usar "command line admin" para backupear / restaurar / atualizar / upgrade:\n 1) Vá ao diretório instalador TVQWEB (por ex. /opt/red5) \n 2) pare o TVQWEB (por ex. ./red5-shutdown.sh)\n 3) ./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)\n 4) download archive with new OM\n 5) mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))\n 6) extract downloaded OM to the /opt/red5\n 7) ./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )\n 8) start OM\n</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Salas comuns a todos os usuários</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Salas comuns ao atual grupo de usuários</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Salas do atual usuário</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Crie / modifique sala especial de reunião</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>Você pode entrar com endereços múltiplos no formato : firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Ajuste volume da transmissão</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Ajuste volume do microfone</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>É moderada por chat</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Permite mensagens</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Painel de bate-papo aberto por definição</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Painel de arquivos aberto por definição</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Último ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Todo escravo envia um ping para o mestre a cada 3 segundos (configurável). O último ping do escravo precisa ser menor que 1 minuto para que o mestre use o escravo.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>Porta HTTP</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>Usuário (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Senha</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocolo</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping em andamento</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Ativar</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Gerar convite</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Teste de conexão</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto selecionar sala de entrevista</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Sublinhar</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Estilo da fonte</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Permitir estilos de fonte</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Cor da fonte</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Mostrar estatísticas de sessão</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Detalhes da sessão</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>Importação de sistema</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Incluir arquivos armazenados e gravações no backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Permitir "SIP transport" na sala</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Dar exclusividade de áudio a este usuário?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Por favor, especifique seu fuso horário / timezone</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Salvando conteúdo. Por favor, aguarde!</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/portugues.xml b/src/main/webapp/languages/portugues.xml
new file mode 100644
index 0000000..8f4ad95
--- /dev/null
+++ b/src/main/webapp/languages/portugues.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Conferência</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Reunião</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Auditório</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Configurações</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Usuário</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Administração</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Parar</value>
+  </string>
+  <string id="8" name="record">
+    <value>Gravar</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>Nenhum arquivo disponível</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Admissão disponível apenas para professores</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Usuários conectados:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Iniciar uma conferência</value>
+  </string>
+  <string id="13" name="myname">
+    <value>Meu nome:</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>VideoConferência</value>
+  </string>
+  <string id="15" name="import">
+    <value>Importar apresentação</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Atualizar lista</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>Zum Hauptverzeichnis</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>nova enquete</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>Uma nova enquete para conferência.</value>
+  </string>
+  <string id="20" name="question">
+    <value>Pergunta:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Tipo de enquete:</value>
+  </string>
+  <string id="22" name="create">
+    <value>Criar</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Info: Cada usuário conectado recebe uma menssagem com a nova enquete.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Criar uma enquete</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Cancelar</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Sim/Não</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Numérico 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Enquete</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Eles podem ser moderadores/professores nessa área de enquetes</value>
+  </string>
+  <string id="30" name="vote">
+    <value>Seu voto foi registrado.</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Você já votou nessa enquete.</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Votar !</value>
+  </string>
+  <string id="33" name="answer">
+    <value>Sua resposta:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Sim</value>
+  </string>
+  <string id="35" name="no">
+    <value>Não</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>Quer saber:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Resultados da enquete</value>
+  </string>
+  <string id="38" name="question">
+    <value>Pergunta:</value>
+  </string>
+  <string id="39" name="results">
+    <value>Resultados:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Respostas:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>Nenhuma enquete foi iniciada.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Votar!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Reunião (máximo 4 assentos)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Conference (máximo 50 assentos)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Tipo</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Outros assentos</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Já escolhido</value>
+  </string>
+  <string id="48" name="enter">
+    <value>entrar</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>O moderaror saiu da reunião.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Informações do sistema</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Escolher dispositívo</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Escolher webcam:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Escolher microfone:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>ok</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>cancelar</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Você precisa reconectar.</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Editar configurações.</value>
+  </string>
+  <string id="58" name="course">
+    <value>Curso:</value>
+  </string>
+  <string id="59" name="language">
+    <value>Idioma:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>ok</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>cancelar</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Limpar a lousa.</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Você quer que a lousa seja apagada antes que uma figura seja adicionada ?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>Não perguntar de novo.</value>
+  </string>
+  <string id="65" name="no">
+    <value>Não</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Editar configurações</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Confirmação de requisição antes de limpar a lousa.</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Informações do usuário</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Limpar área de desenho</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Desfazer</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Refazer</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Selecionar um objeto</value>
+  </string>
+  <string id="73" name="text">
+    <value>Texto</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Pintura</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Desenhar linha</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Desenhar sublinha</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Retângulo</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Elipse</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Seta</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>excluir ítem selecionado</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Aplicar para moderação</value>
+  </string>
+  <string id="82" name="apply">
+    <value>Aplicar</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>fechar</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Tornar-se moderador</value>
+  </string>
+  <string id="85" name="close">
+    <value>fechar</value>
+  </string>
+  <string id="86" name="italic">
+    <value>italic</value>
+  </string>
+  <string id="87" name="bold">
+    <value>negrito</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>AGUARDANDO</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>Um usuário quer se tornar moderador:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>aceitar</value>
+  </string>
+  <string id="91" name="reject">
+    <value>rejeitar</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>cancelar</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Enviando requisição para os seguintes usuários</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Aceito</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Rejeitado</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Mudar moderador</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Você não está moderando este curso!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Moderador:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>A sala está lotada. Por favor tente novamente mais tarde.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Elipse</value>
+  </string>
+  <string id="101" name="close">
+    <value>fechar</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>erro na entrada de dados</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>nome do usuårio deve ter no mínimo 4 letras</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>senha deve ter no mínimo 4 letras</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>Nome de usuário já existente</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>O email já foi registrado.</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>Erro no sistema, por favor, contacte os administradores.</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Login</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Usuário:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Senha:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>idioma</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Login</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Sign Up</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Usuário:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Senha:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Re-digite:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Primeiro nome:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Último nome:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>E-Mail:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>País:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Registrar</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>cancelar</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Registrar</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>home</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Usuários</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Grupos</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Organizações</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Salas de Conferência</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>público</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>organização</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>entrar</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Login</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Senha</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Re-digite</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Primeiro nome</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Último nome</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>E-Mail</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Aniversário</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Rua/No</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>CEP/Cidade</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>País</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Endereço</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Dados do usuário</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>salvar</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Salvar</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>ID DO USUÁRIO</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>login</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>primeiro nome</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>último nome</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>mostrar próximo</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>mostrar anterior</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>excluir registro</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>cancelar</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>excluir</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>novo registro</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>atualizar registro</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>excluir registro</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>status</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>desabilitado</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>habilitado</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>organizações</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>calendário</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>fechar</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>ID da Organização</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>nome</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>usuário</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>mod</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>admin</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>nível do usuário</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>organização</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>nome</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>adicionar organização</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>adicionar organização</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>cancelar</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>adicionar</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>remover organização</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>usuário</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>adicionar usuário</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>excluir usuário</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>adicionar usuário</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>procurar usuário</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>procurar</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>usuário</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>organização</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>entrar</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>salas de conferência</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Salas de conferência</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>id</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Nome</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>público</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>organizações</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Salas de conferência</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>nome</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>tipo</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>público</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>comentário</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>salvar</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>abrir</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>salvar como</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>nome do arquivo</value>
+  </string>
+  <string id="201" name="files">
+    <value>nome do arquivo</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>cancelar</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>salvar</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>erro</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>carregando</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>objetos carregados</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>sincronizando clientes, clientes a esperar:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Carregando imagem</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>sincronizando clientes, clientes a esperar:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>limpar área de desenho</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>limpar área de desenho, todos os dados da lousa serão perdidos</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Confirme antes de carregar o arquivo</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Enviar convite</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Enviar convite</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Assunto</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Destinatário</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Mensagem</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Enviar</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>cancelar</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>enviar</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Dados do usuário</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>Seu apelido para essa conferência</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>apelido</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>primeiro nome</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>último nome</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>email</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>idioma</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>entrar</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Carregando</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Carregando dados, por favor aguarde!</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Senha Incorreta</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Por favor digite dois passwords idênticos com pelo menos 6 caracteres</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Email Incorreto</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Voê digitou um endereço de email inválido.</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>Cadastro completo</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Sua conta foi criada. Você pode fazer o login agora.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>Você não pode compartilhar sua tela agora. Alguem já compartilhou a tela.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Compartilhamento perdido</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Compartilhe sua tela</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Falha na transmissão: Você não está apto a sincronizar a tela. Frames serão perdidos. Caso esse aviso tenha sido mostrado cedo você pode pedir ao moderador para reduzir a qualidade.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Tela de:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Desenhar</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Documento</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Chat</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Arquivos</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Membros</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Download do documeto original</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>Download do pdf</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Carregar apresentação no quadro</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Configuração</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Arrastar esse objeto</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Redimensionar esse objeto</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>de</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>Ir para primeira página</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>Ir para página anterior</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>Ir para a próxima página</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>Ir para a última página</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Zoom --</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Zoom ++</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Sr.</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Sra.</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Configuração</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Chave</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Configuração</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Chave</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>última atualização</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>atualizado por</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>comentário</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>chave</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>de</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Usuários</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>excluir usuário da compania</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>excluir</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>Este usuário já é membro desta companhia.</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>Notícias</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Links Rápidos</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Ir para conferência</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Ir para auditório</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Ajuda e suporte</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Reportar um bug!</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>mais</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Website do projeto (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>Lista de emails (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Relembrar Login</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Conteúdo</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>Minha Home Page</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>My Reuniões Agendadas</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>My Eventos Agendados</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Reuniões Públicas</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Reuniões Privadas</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Eventos Públicos</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Eventos Privados</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Conteúdo Público</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Conteúdo Privado</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Conteúdo Pessoal</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Moderação</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Aplicar para Moderação</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Conjuntos</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Escolha um arquivo</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Configurações</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Configurações de Cam e Mic</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Configurações da lousa</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Sair</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Voltar para salas</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Logout</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Visão Desktop</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>iniciar visão Desktop</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>Vídeo e Áudio</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Chat</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>Lousa</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Moderação</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Arquivos</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>Usuários</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Conjuntos</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>Não existe usuário conectado a este nome</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>Um email contendo um link foi enviado a seu endereço de email, por favor confira sua caixa postal. Se você ainda não tiver recebido um email, por favor ajuste as configurações de spam e remande a confirmação de email.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Erro</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Mensagem</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Hash inválido. Nenhum usuáio encontrado.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Reset sua senha</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Login</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>alterar senha</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>nova senha</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>redigite a senha</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>As senhas que você digitou não são iguais.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>4 ou mais caracteres; maiúsculas e minúsculas são diferentes!</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Senha configurada. Você pode se logar agora.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Erro desconhecido. Por favor informe isso ao Service-Team.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Username não encontrado</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Senha inválida</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Desconectado com sucesso</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Cadastro do frontend desabilitado.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>EMail inválido</value>
+  </string>
+  <string id="340" name="registration">
+    <value>nome de arquivo duplicado, por favor escolha outro nome</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>nome de arquivo muito curto</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Não foi possível salvar o endereço</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>Usuário adicionado mas você precisa associar esse usuário a uma organização, se não ele não estará apto a se associar.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Novo Registro</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>Nenhum campo encontrado com esse id.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>Nenhum Label encontrado para este campo.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Necessário perfil de administrador</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Editor de idiomas</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Idioma</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>Label-ID</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Label-Nome</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Valor</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Fieldvalues</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>LabelName</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>LabelValue</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>Label-ID</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>Você apenas deletou o Label NÂO o Field! Você não pode deletar esse Field, podem existir Labels em outros idiomas.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>Labelid inválido. O FieldLanguagesvalues_Id não pode ser encontrado na base de dados.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Você não pode deletar esse Field. Você pode apenas deletar Labels NÂO Fields. Não existe Label carregado no momento, se nenhum Field for selecionado ou não existir Label para esse idioma para esse Field definido.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>exportar</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Você precisa fazer login novamente para ver as mudanças.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Adicionar novo idioma</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>excluir idioma</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Adicionar novo idioma</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Nome</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>adicionar idioma</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Backup</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>ir ao primeiro</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>ir ao anterior</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>ir ao próximo</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>ir ao último</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>palestras do usuário (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>desligar/ligar som</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>Sistema</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Suas configurações</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>olá,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Editar seu perfil</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Novas Mensagens:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Upload de nova imagem</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Dados do Usuário - Exportar</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>Todas as organizações já devem existir!</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>começar a exportar</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>Por organização</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>começar a exportar</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Dados do Usuário - Importar</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>escolha users.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>importar</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Exportar para XML - Esses arquivos podem ser usados para: - Contribua com o projeto - Importe em outro sistema - Backup - Customização - Coloque no diretório de idiomas para sua próxima instalação</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Escolha um arquivo de idioma para importar. Escolha o idioma correto no Combobox! Não importa o nome do arquivo, ele será importado nesse idioma!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>importar - escolha o arquivo</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Salvar como</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Nome:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Comentário:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>salvar</value>
+  </string>
+  <string id="395" name="record">
+    <value>Gravações</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Vizualizador de Gravações</value>
+  </string>
+  <string id="397" name="record">
+    <value>Gravações de salas públicas e privadas</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Usuários :</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Entrou:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Usuários nessa sala:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>atualizar</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>Essa sala está cheia. Tente novamente em alguns instântes.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>clique em uma sala para ver os detalhes</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Chat com os usuários dessa sala:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Sala:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Usuários nessa sala:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>desde:</value>
+  </string>
+  <string id="409" name="record">
+    <value>mostrar a gravação</value>
+  </string>
+  <string id="410" name="record">
+    <value>Tamanho:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Data:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Modo Gravação! Você não pode mudar nenhum valor, este é um arquivo gravado!</value>
+  </string>
+  <string id="413" name="record">
+    <value>Mostrar essa gravação</value>
+  </string>
+  <string id="414" name="record">
+    <value>Play / Pause</value>
+  </string>
+  <string id="415" name="record">
+    <value>Começar gravação</value>
+  </string>
+  <string id="416" name="record">
+    <value>parar gravação</value>
+  </string>
+  <string id="417" name="record">
+    <value>Gravação:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>Já existe alguém gravando nesse momento:</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Gravando! Pelo usuário:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>cancelar</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>Gravação será cancelada e não será salva.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>continuar</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Fechar essa janela e continuar a gravação.</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>mudar cor da linha</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Mudar Cor</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Disabilitar / Habilitar cor da linha</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>mudar Fillcolor</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Disabilitar / Habilitar Fillcolor</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Mudar tamanho da linha</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>fechar</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>mudar tamanho da fonte</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Deletar Gravação</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Convidado</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>Por:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Nome</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Sala</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Data</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>cancelar</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>start</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Nome</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Data</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Deletar Server-Chatlog</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Chat</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>enviar mensagem</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Emoticons</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Emoticons</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Escolher adaptadores publicados</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Áudio e Vídeo</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Áudio somente</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Vídeo somente</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>sem Áudio/Vídeo (Image estática)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>Nenhum Áudio/Vídeo do seu PC será publicado, ao invés disso uma figura do seu perfil será mostrada. Escolha essas configurações se você tem problemas com sua conexão ou uma conexão de Internet lenta.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>SEG</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>TER</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>QUA</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>QUI</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>SEX</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>SAB</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>DOM</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Segunda</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Terça</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Quarta</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Quinta</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Sexta</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Sabado</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Domingo</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>CS</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Calendário da semana</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>Janeiro</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>Fevereiro</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>Março</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>Abril</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>Maio</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>Junho</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>Julho</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>Augosto</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>Setembro</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>Outubro</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>Novembro</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>Dezembro</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Calendário</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Participantes</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Mostrar configurações de layout</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Largura | Altura</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Video-Container</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Moderação-Container</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Lousa-Container</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Habilitado</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Largura | Altura</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Arquivos,Chat,Participantes - Container</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Habilitado</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Largura | Altura</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>O moderador saiu da sala. Nenhum está presente no momento. Você pode se candidatar para moderação ou esperar.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>Não existe nenhum moderador nessa sala, mas existem alguns participantes. Você deve se candidatar a moderação ou esperar.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Feedback $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Convite</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Mensagem do Usuário:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Mensagem:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Click neste link para participar das reuniões:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Click aqui para entrar na sala</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>se você tem problemas com o link, por favor copie e cole isso no seu browser:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME SignUp</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Seus dados:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Login:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Senha:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>EMail:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME-Team</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME Sign-Up</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - Reset Password</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Clique neste link para criar uma nova senha:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Click aqui para criar umanova senha</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>se você tiver problemas com o link, por favor copie e cole isso em seu browser:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME Senha Reset</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Por favor informe uma data válida, por exemplo 24.12.2001 (dd.mm.yyyy)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Por favor informe um email válido, por exemplo name@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Por favor informe um número de ponto flutuante, por exemplo 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Por favor informe um número (Inteiro), por exemplo 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Por favor informe um número de telefone válido, por exemplo ++49 1234 1234</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Por favor informe um horário válido, por exemplo 12:23 (hh:mm)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Senha protegida</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Senha</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Período de validade</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Final</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Período</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Uma vez</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Valido de:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Valido até:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Convite para o $APP_NAME</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Nenhum convite disponível para esse código</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>O convite já foi utilizado. Esse tipo de convite não pode ser reutilizado.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>Esse código de convite não é válido.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Senha:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Verificar senha</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Senha Inválida!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Browser</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Syncronize Audio/Video</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Login was correct, but the Session you tried is not active or stored on the Server. You have to get a new SessionId and retry login.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>The SessionId is not loggedin or has no Admin rights. The SOAP Gateway needs an User with Admin-Rights to embed new Users.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>This Session has no Remoteuser-Data connected. Wether you did not call the SOAP-Gateway before accessing the Application or you are usnig a wrong Session-ID</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>The recorder is currently Beta!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>x-axis</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>y-axis</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>w</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>width</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>h</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>height</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Change Transparency</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Browser Open</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Browser Close</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>The Connection to the Server is lost. You need to reload the Application or/and check your Network.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Pointer</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Synchronizing</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Synchronizing Users, please wait</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Download as SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Download as PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Download as JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Download as PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Download as TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Reminder:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Category:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Repetition:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>none</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Location:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Start</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>End</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Title:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Comment:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Invite People</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Daily</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Monthly</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Yearly</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Appointment-end is after of appointment-start!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Please insert a title!</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Activate this if you write in a right to left language (inverse word order)</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Dashboard</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Watch recorded Meetings or Events</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Meeting - Make a conference with 4 (up to 16) Users&lt;br/&gt;everybody will have audio + video access</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Event - Make a conference with up to 200 participents&lt;br/&gt;Only the Moderator will have audio/video</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Create users, rooms, organizations&lt;br/&gt; + change configuration</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Users in this Room now</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Login</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Loading Document. Please wait untill all Client have been synchronized.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Upload complete, converting Document ...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Start Upload</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Upload and Import Dialog. Please select a File from your Disk.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Cancel</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Select File</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Connections</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Value</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Streamid</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Login</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Connected since</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Room / Scope</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Kick User</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Kick User</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Do you really want to kick this Client from the Connection?&lt;br/&gt; This does only remove the Client from the current Room.The Client could re-login again.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Your session has been closed by an Administrator or Moderator.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Phone</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>User is the Moderator of this Room</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>User is allowed to draw on the Whiteboard</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Re) Start Audio/Video or change Device Settings</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Allow this User to draw on the Whiteboard</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Remove ability to draw on whiteboard</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Users</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Files</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Whiteboard</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Chat</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Your account is assigned to multiple Organizations. Please choose one for this Session.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>This room is full at the moment. Please try again later.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Room Type</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Appointment Room</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Server Time</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - Reminder</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Message from User:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Message:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Click this link to participate in the Meetings:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Click here to enter room</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>if you have problems with the link, please copy and paste this to your browser:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>search intern</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>extern users</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>pre name</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>name</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>E-mail</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Confirm logout</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Are you sure you want to logout now?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Actions</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Demo Room</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Demo Time</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Meeting Timer</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>This Room is a Demo Room. To disable this warning you either should get a private meeting room for your personal usage or set up an own Server. You will be automatically logged off in:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Moderated</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Please wait untill the Moderator has entered the Room. The Moderator can be either a Teacher, Admin or the creator of this Room.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Ok</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Incoming Screen Sharing</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>There is a new Screen Sharing incoming from the User:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Start Sharing</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Add new Meeting</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Meeting Room</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Event Room</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderation</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Moderate Users</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Moderate Rooms</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Do you want to change this User to become a Moderator of that Organization?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Please choose an Organization before you try to add a User to it!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organization - Moderator</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Do you really want to delete this User from the Organization?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>This User is Moderator</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>This User is No-Moderator</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Do you want this User to be not a Moderator of this Organization?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Add or delete Users or Rooms within your Organization</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Do you really want to delete this record?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Do you really want to delete this user from your organization? You will only delete the connection between the user and your organization, to really delete the user itself you have to login into the Administration-Panel.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>You cannot delete your own User!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>This Method needs a Adminstration Account to be invoked!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>There was no Session associated with this ID.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>This is an Administrator or Moderator account. You can only edit this account through the Administration Panel.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>To complete your registration please click on the following link. Or copy the URL to your browser bar.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Click to verify your E-Mail</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>No user was found for this Hash.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>This user is already activated!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>You did successfully activate your account!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Login Now</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Your account is not activated. First use the link in the Email you've received during registration.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>You successfully signed up. We've send an EMail with a verification Code to your Mail. Please check your Inbox.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Remove Moderation Role from this User</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Grant Moderation Rights to this User</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>User</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Access to whiteboard</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderator</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Moderation: Please choose any User on the List to grant him access to the Whiteboard, Moderation or Video.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>This User is already Moderator, so he has automatically the right to draw.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>This is you! You cannot remove the Moderation rights from yourself.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Allow this User to Publish his Audio / Video</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Remove Audio/Video of this User</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>I would like to get the moderation of this room</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>I would like to draw on whiteboard</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>I would like to share my Audio/Video</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>You are moderator of this room</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>You are allowed to draw on whiteboard</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>You are allowed to share your Audio/Video</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Message to Moderator</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>The User</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>would like to get the Moderation. Use the status Icons next to the user in the List of Users to add or remove the Moderation.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>would like to draw on whiteboard. Use the status Icons next to the user in the List of Users to add or remove the right to draw anything on the whiteboard.</value>
+  </string>
+  <string id="695" name="695">
+    <value>would like to share his Audio/Video. Use the status Icons next to the user in the List of Users to add or remove the right to share Audio/Video for any User.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>You have to wait untill a Moderator enters the room.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Cancel</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Save</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Day</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Month</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Year</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Upload File</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Refresh</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Trash (Drag and Drop item here)</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>My Files (Home Drive)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Room Files (Public Drive)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Add File</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Delete Folder</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Edit Name</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>New Folder</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Are you sure you want to delete this Item?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Open Document</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Show all Files (Tree View)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Close Document</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Delete File</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>You are not allowed to draw anything on the Whiteboard. You have to become Moderator or at least get the Right to edit Whiteboard. You may ask a Moderator to give you that right.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Document Properties</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Start Client (external)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Start Client (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>A user want to share his screen. Do you want to see it?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>You are currently sharing your Desktop. For stopping the Sharing Session please hit the Stop button in the Sharing Client.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Sharing Session</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>You are already sharing your desktop!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Desktop Viewer</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Exit</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Desktop Sharer</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Click Start to publish your screen</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Start Sharing</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Select your screen area:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Change width</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>The Sharer has finished this session!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Change height</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-Offset</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-Offset</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Width:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Height:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Connection was closed by Server</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Cancel</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Start External</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>If you close this session completely you are not able to restart the viewer for this session.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Confirm Closing Viewer Session</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Share Screen</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Record Session</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Co-Browsing</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Ooops, ... Firefox on Windows does not show clear Co-Browsing. Please use another Browser for using the Co-Browsing feature.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Previous</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Next</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Reload</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Home</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Load</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Add this website as Default website to your Profile.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Test Setup</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Check you Microphone and Camera setup before you enter a room by recording some seconds. You can then replay your recording to check your voice and picture.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Don't show this test anymore</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Cancel</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Start Conference</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Do not ask again</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>You may proceed without testing if you do not plan to publish your voice or picture. Participants without Audio or Video can still use the Whiteboard, share their Desktop or write Chat messages.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="test setup">
+    <value>Level-Meter</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Press Start</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Start Event</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Choose Room</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Check Setup</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="774" name="start view">
+    <value>How to conference</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Start Recording</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Do not show Audio / Video Test (Recording) before entering a Conference</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Public Rooms</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Public Rooms are accessible for all Users.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Private Rooms</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Private Rooms are only accessible for users of the same organization.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>My Rooms</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Rooms in this section are created for personal usage. There are some standard rooms plus the ones that are created through the calendar and have a start and an end date. The rooms created via the calendar are only listed in this section as long as they are valid.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>You have to be moderator to do this.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Apply for moderation</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Apply for whiteboard access</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Apply for camera/microphone access</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>This Session Hash was already used. You cannot use it twice.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>START</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>EXIT</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Do you really want to exit? You might should clear uploaded documents, whiteboard and the chat history.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Exit conference</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Rooms</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Choose a room for a meeting</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>There is an unsaved Event in the Calendar. Please either save it or remove it.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Please add at least one attendee for your meeting!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Do you really want to delete this Event?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Warning</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Add Event</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>Day</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>Week</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>Month</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Description</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Attendees</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, your Web Conferencing Platform. Either follow the Instructions, press the start button to start to conference immediatelly or you goto the Calendar and set up a Conference for the future.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Plan a Meeting</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>To set up a conference you can add a new Event in the Calendar.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Need help?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Restricted</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Search</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Add</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>There is no User selected. Please select an item from the list first and then hit add.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Add Attendee</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Save</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Delete</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Event Details</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Default Moderators</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Name</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>E-Mail</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Add new default Moderator</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Is Super Moderator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>If the Room is moderated, User with Level Moderator or Administrator are automatically Moderator if they enter the Room. If you don't want to specify that and only want a certain User to become Moderator use the Default Moderator option.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>A Super Moderator is always a Moderator when he enters a Room, and nobody can remove the Moderation Flag from him</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Apply Super-Moderation to User</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Remove Super Moderation from User</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>If you add an Organization to the room only users of that Organization have access to it (This is only valid if the isPublic flag is set to false!)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderation</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitations</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organization</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Are you sure?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Do you really want to delete this Item? You have to press the save button to store the changes!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>There is no User selected. Please select first before you add it!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Add new Default Moderator</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Do you want to add the Super Moderation Flag for this User? A Super Moderator is not only Moderator of a Room, but also no other Moderator can remove the Moderation Flag for this User. You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Do you want to remove the Super Moderation Flag for this User? You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>This User is a Super-Moderator. You cannot remove the Moderation flag from a Super-Moderator!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Do you really want to delete this File/Folder?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Delete File/Folder?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Mrs.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Properties</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Show mouse position to viewers</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Share Audio with SIP Applet</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Share Audio with SIP and Video with Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Full-Fit</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>View Screen</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>The user</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>wants to share its screen. Do you want to see it?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Close</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>The Session was closed by the sharing User!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>New Screen Sharing</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimize</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximize</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Recording Timeline</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>My Recordings</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Public Recordings</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Name</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Length</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Date</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>By</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>PLAY</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Main - Video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Recording</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>You may record and share your screen at the same time. To enable others to see your screen just hit the start button on the top. To only record the Session it is sufficient to click start recording.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Start Recording</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Stop Recording</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download the FLV-File</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Room</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Play</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>User has microphone on</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Allow User Questions</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Turn this off to prevent that any user is disturbing you in this room. Effect is that the Button to ask for Moderation ("I have a question") is not visible.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rights</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Download as AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Audio only</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>The have been errors while processing the Recording.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>The Recording is not yet ready for watching. Please retry in a couple of minutes again.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Recorder Message</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP Applet is not Ready</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP-Account Settings</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP settings for each user. You can turn on or off SIP via the Administration &gt; Configuration (Key: enable_sip). The SIP data for each user should be created automatically. You can re-create the data by checking "Re-generate SIP Data"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-User</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Pass</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. You should check the authentification data of your SIP-Provider and the SIP-Account Data for each User. As Administrator you are still able to login and check the Configuration. As User or Moderator you will be blocked from any interaction.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. Contact your Service Team!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Show Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log messages from post recorder process</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Applet Message</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>The SIP-Applet is not ready. Accept the Applet please and click ok!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Get Moderation</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Save Appointment Changes</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointement has been changed. Do you want to save those changes? &lt;br/&gt;&lt;br/&gt;All attendees of the appointment will receive a EMail with the updated date and time (depending on the notification type of this appointment).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>To access other recordings you have to login the $APP_NAME Application.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Choose the User for this Video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available Users for this Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>You are a Moderator in this Interview. You can decide who is speaking in this interview and you can start / stop the recording of the Session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Start Recording</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Stop Recording</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>The recording of the Interview is already started.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>The recording is already stopped or not been started yet.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>The recording for this interview is already started!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Clear objects on current slide only!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the Status bar is send to participants!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make Team-Rooms [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new Team-Room!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new Conference Room ("Team Room") for them. The chosen users will automatically switch to the new Team-Room or get a notification. Team-Room Moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a Moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Username</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new Team-Room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create Team-Room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the Team-Room!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from Team-Room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Roomtype</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the System. The Backup includes all User generated data. The configuration is not included as well as the language labels. Because those values are imported with the System Installer. To update your System, export your old system (1) re-install into a new database the new package (2) and import the Backup file again (3). The Backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share Screen/Record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is Moderator, he can do anything!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/Deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose "Insert" from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about Copy and Paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Kick user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/russian.xml b/src/main/webapp/languages/russian.xml
new file mode 100644
index 0000000..ade071a
--- /dev/null
+++ b/src/main/webapp/languages/russian.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Конференция</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Совещания</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Лекции</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Установки</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Профиль</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Администрирование</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Пауза</value>
+  </string>
+  <string id="8" name="record">
+    <value>Запись</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>Нет данных</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Функция записи только для лекторов</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Связанный пользователь:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Начать конференцию</value>
+  </string>
+  <string id="13" name="myname">
+    <value>Мое имя</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>Видеоконференция</value>
+  </string>
+  <string id="15" name="import">
+    <value>Загрузить файл</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Заново загрузить список</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>К списку документов</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>Новый опрос</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>Новый опрос для конференции</value>
+  </string>
+  <string id="20" name="question">
+    <value>Вопрос:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Вид опроса:</value>
+  </string>
+  <string id="22" name="create">
+    <value>Создать</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Информация: каждый подключённый участник получает сообщение с новым опросом.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Создать опрос</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Отменить</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Да/Нет</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Число 1 - 10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Опрос</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Для создания опроса Вы должны быть модератором/лектором в этой комнате.</value>
+  </string>
+  <string id="30" name="vote">
+    <value>Вы проголосовали.</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Вы уже проголосовали в данном опросе.</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Проголосовать!</value>
+  </string>
+  <string id="33" name="answer">
+    <value>Ваш ответ:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Да</value>
+  </string>
+  <string id="35" name="no">
+    <value>Нет</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>хочу знать:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Результаты опроса</value>
+  </string>
+  <string id="38" name="question">
+    <value>Вопрос:</value>
+  </string>
+  <string id="39" name="results">
+    <value>Ответы:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Результат:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>В настоящее время опроса не существует.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Проголосовать!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Совещание (макс. 4 места)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Конференция (макс. 50 мест)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Тип</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Оставшиеся места</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Уже присвоено</value>
+  </string>
+  <string id="48" name="enter">
+    <value>Вхождения</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>Модератор/лектор этой комнаты покидает совещание.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Системное сообщение</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Выбор устройства</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Выбрать камеру:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Выбрать микрофон:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>OK</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>Отменить</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Чтобы активировать изменения, войдите заново</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Изменить установки</value>
+  </string>
+  <string id="58" name="course">
+    <value>Курс:</value>
+  </string>
+  <string id="59" name="language">
+    <value>Язык курса:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>OK</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>Отменить</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Очистить доску</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Очистить доску перед добавлением нового изображения</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>Больше не спрашивать</value>
+  </string>
+  <string id="65" name="no">
+    <value>нет</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Редактировать установки</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Запросить подтверждение перед очисткой доски</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Информация о пользователе</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Очистить область рисования</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Отмена</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Восстановление</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Выбрать объект</value>
+  </string>
+  <string id="73" name="text">
+    <value>Текст</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Рисование</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Провести линию</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Подчеркнуть</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Прямоугольник</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Эллипс</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Стрелка</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>Удалить выбранный элемент</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Запрос функции модератора</value>
+  </string>
+  <string id="82" name="apply">
+    <value>Запрос</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>Отменить</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Запросить ф-ции модератора</value>
+  </string>
+  <string id="85" name="close">
+    <value>Закрыть</value>
+  </string>
+  <string id="86" name="italic">
+    <value>Курсив</value>
+  </string>
+  <string id="87" name="bold">
+    <value>Жирный шрифт</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>Ожидание</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>Участник желает запросить функцию модератора:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>Согласие</value>
+  </string>
+  <string id="91" name="reject">
+    <value>Отклонение</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>Отменить</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Отсылка запроса следующему участнику</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Выдано согласие</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Отклонено</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Замена модератора</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Вы не являетесь модератором данного курса!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Модератор:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>В этой комнате нет мест. Извините, попробуйте еще раз через некоторое время.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Эллипс</value>
+  </string>
+  <string id="101" name="close">
+    <value>Закрыть</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>Ошибка при вводе</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>Имя пользователя должно состоять минимум из 4 знаков</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>Пароль должен состоять минимум из 4 знаков</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>Это имя пользователя уже занято</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>Электронный адрес уже зарегистрирован</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>Выдается ошибка, просьба связаться с административной группой</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Вход</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Пользователь:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Пароль:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Язык</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Войти</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Подписка</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Пользователь:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Пароль:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Повторить:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Имя:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Фамилия:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>E-Mail:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>Страна:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Регистрировать</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>Отменить</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Регистрация</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>На главную</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Пользователи</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Группы</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Организации</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Комнаты совещаний</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>Публично</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>Организация</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>Вход</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Логин</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Пароль</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Повторить</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Имя</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Фамилия</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>E-Mail</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Дата рождения</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Улица/№ дома</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>Индекс/город</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>Страна</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Информация</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Данные пользователя</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>Сохранить</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Процесс сохранения</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>Идент. № пользователя</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>Логин</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>Имя</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>Фамилия</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>вперед</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>назад</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>Удалить запись</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>Отменить</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>Удалить</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>Создать запись</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>Заново загрузить запись</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>Удалить запись</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>Статус</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>заблокировано</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>активно</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>Организации</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>Календарь</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>Закрыть</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>Идент. № орг-ии</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>Имя</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>Пользователь</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>Модератор</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>Администратор</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>Роль пользов-ля</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>Организация</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>Имя</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>Добавить организацию</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>Добавить организацию</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>Отменить</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>Добавить</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>Удалить организацию</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>Пользователь</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>Добавить пользователя</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>Удалить пользователя</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>Добавить пользователя</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>Поиск пользоват-я</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>Искать</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>Пользователь</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>Организация</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>Выбрать</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Комнаты совещаний</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Комнаты совещаний</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>Идент. №</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Имя</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>Публичная комната</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>Организации</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Комнаты совещаний</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>Имя</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>Тип</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>публично</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>Комментарий</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>Сохранить</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>Открыть</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>Сохранить как</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>Имя файла</value>
+  </string>
+  <string id="201" name="files">
+    <value>Имя файла</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>Отменить</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>Сохранить</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>Ошибка</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>Загрузить</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>Объект загружен</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>Синхронизация клиентов. Оставшиеся клиенты:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Загрузка графических данных</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>Синхронизация клиентов. Оставшиеся клиенты:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>Очистить область рисования</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>Очистить область рисования, при этом все изменения будут утеряны!</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Перед загрузкой файла запросить подтверждение</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Отправить приглашение</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Отправить приглашение</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Тема</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Адрес получателя</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Сообщение</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Отправить</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>Отменить</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>Отправить</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Данные пользователя</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>Ник для данной конференции</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>Ник/псевдоним</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>Имя</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>Фамилия</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>E-Mail</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>Язык</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>Отправить</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Загружается...</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Даные загружаются, подождите!</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Неверный пароль</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Пожалуйста, введите два раза один и тот же пароль длиной не менее 6 символов</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Неверный E-Mail</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Вы ввели неверный E-Mail</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>Регистрация завершена</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Ваш аккаунт создан. Теперь вы можете войти под своим именем.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>Сейчас вы не можете сделать ваш экран общим. Сейчас другой пользователь сделал свой экран общим.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Запрещено делать ваш экран общим</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Сделать экран общим</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Неверная ширина канала: невозможно синхронизовать экран. Некоторые кадры будут пропущены. Если это сообщение появляется слишком часто, Вы можете попросить модератора ухудшить качество соединения.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Экран пользователя:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Рисование</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Документ</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Чат</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Файл</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Юзеры</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Загрузить первоначальный документ</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>Загрузить документ pdf</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Поместить документ на доску</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Конфигурация</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Перетащить этот объект</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Изменить размеры объекта</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>из</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>На первую страницу</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>На предыдущую страницу</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>На следующую страницу</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>На последнюю страницу</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Уменьшение</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Увеличение</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Г-н</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Г-жа</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Конфигурация</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Ключ</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Конфигурация</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Ключ:</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>Дата обновления</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>Обновлено:</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>Описание:</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>Значение:</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>из</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Пользователи</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>Удалить пользователя из организации</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>Удалить</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>Этот пользователь уже входит в эту организацию.</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>Новости</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Быстрый переход</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Перейти к совещанию</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Перейти к лекции</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Помощь и поддержка</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Ошибка?</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>еще</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Вебсайт проекта (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>Список электронных адресов пользователей (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Запомнить вход в систему</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Контент</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>Моя домашняя страница</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>Мои совещания</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>Мои запланированные лекции</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Публичные совещания</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Личные совещания</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Публичные лекции</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Личные лекции</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Публичный контент</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Приватный контент</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Персональный контент</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Модерация</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Запросить ф-ции модера</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Опросы</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Выбор файла</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Установки</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Установки камеры и микрофона</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Установки доски</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Выход</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Выход (к комнатам)</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Выход</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Забыли пароль?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Восстановление пароля</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>По e-mail</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>По имени пользователя</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>Ваша почта</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Ваш логин</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Послать линк на e-mail</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>Такой e-mail не найден. Убедитесь, что вы ввели верный e-mail</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Введите e-mail или имя пользователя</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>Никто больше не подключился с таким именем пользователя</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>Письмо, содержащее специальную ссылку, выслано на ваш e-mail, пожалуйста, проверьте ваш почтовый ящик. Если вы все еще не получили письмо, проверьте анти-спам фильтры и пошлите еще раз подтверждающее письмо.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Информация</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Сообщение</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Неверный хэш. Пользователь не найден.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Переустановить ваш пароль</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Логин</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>изменить пароль</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>новый пароль</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>повторите пароль</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>Вы ввели неидентичные пароли.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>4 или более знаков. Регистр имеет значение!</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Пароль установлен. Теперь можно логиниться.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Неизвестная ошибка. Пожалуйста, сообщите в вашу сервисную службу.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Имя пользователя не найдено</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Неверный пароль</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Вы успешно вышли</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Frontend Registration disabled.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>Неверный e-mail</value>
+  </string>
+  <string id="340" name="registration">
+    <value>неуникальное имя файла, выберите другое имя файла</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>слишком короткое имя файла</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Не могу сохранить Адрес</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>Пользователь добавлен, но нужно назначить этому пользователю организацию, иначе он не сможет войти.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Новая запись</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>Поле с таким ID не найдено.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>Метка для этого поля не найдена.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Требуется авторизация администратора</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Редактор языков</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Язык</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>ID метки</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Имя метки</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Значение</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Значения полей</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>Имя метки</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>Значение метки</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>ID метки</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>Вы можете лишь удалить метку, но не само поле! Нельзя удалить поле, у него могут быть метки на других языках.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>Неверный ID метки. Невозможно найти FieldLanguagesvalues_Id в базе данных.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Нельзя удалить это поле! Можно лишь удалить метку, но не само поле Метка сейчас не загружена. Либо не выбрано ни одно поле, либо не определена метка на этом языке (для этого поля)</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>Экспорт</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Вам нужно выйти, чтобы увидеть изменения.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Добавить новый язык</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>удалить язык</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Добавить новый язык</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Имя</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>добавить язык</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Резервное копирование</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>к первому</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>к предыдущему</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>к следующему</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>к последнему</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>Участник говорит (Нажимая здесь Вы предоставляете этому участнику эксклюзивный микрофон / выключая микрофоны остальных участников)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>Включить/выключить звук</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>Система</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Ваши установки</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>Привет,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Ваш профиль</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Новые сообщения:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Изображение</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Экспорт пользовательских данных</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>Организации уже должны существовать!</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>начать экспорт</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>По организации</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>начать экспорт</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Польз. данные - импорт</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>выбрать users.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>Импорт</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Экспорт в XML - эти файлы можно использовать для: - Внесения в проект - Импорта в другую систему - Резервного копирования - Кастомизации - Помещения в директорию "language" при следующей инсталляции</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Выберите файл языка для импорта. Выберите язык в выпадающем списке. Неважно, какое имя у этого файла, он будет импортирован в этот язык!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>импорт - выберите файл</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Сохранить как</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Имя:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Описание:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>сохранить</value>
+  </string>
+  <string id="395" name="record">
+    <value>Записи</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Просмотр записей</value>
+  </string>
+  <string id="397" name="record">
+    <value>Записи публичных и приватных комнат</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Участники :</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Присоединившиеся:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Участники в этой комнате:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>обновить</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>Эта комната полна. Попробуйте через несколько минут.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>Нажмите на комнату для деталей</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Чат с пользователями этой комнаты:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Комната:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Участники в этой комнате:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>с:</value>
+  </string>
+  <string id="409" name="record">
+    <value>проиграть записи</value>
+  </string>
+  <string id="410" name="record">
+    <value>Длина:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Дата:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Режим воспроизведения! Вы не можете менять параметры.</value>
+  </string>
+  <string id="413" name="record">
+    <value>Проиграть эту запись</value>
+  </string>
+  <string id="414" name="record">
+    <value>Играть / Пауза</value>
+  </string>
+  <string id="415" name="record">
+    <value>Начать запись</value>
+  </string>
+  <string id="416" name="record">
+    <value>остановить запись</value>
+  </string>
+  <string id="417" name="record">
+    <value>Запись:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>Кто-то уже записывает в данный момент:</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Идет запись! Участник:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>отмена</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>Запись будет отменена и не будет записана.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>продолжить</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Закрыть окно и продолжить запись</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>изменить цвет линий</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Выбор цвета</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Запретить/разрешить цвет линий</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>изменить цвет заливки</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Запретить/разрешить заливки</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Изменить ширину линий</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>закрыть</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>изменить размер шрифта</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Удалить запись</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Гость</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>По:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Имя</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Комната</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Дата</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>отменить</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>старт</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Имя</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Дата</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Удалить лог чата на сервере</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Чат</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>послать сообщение</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Иконки эмоций</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Иконки эмоций</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Изменить публичные устройства</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Аудио и видео</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Только аудио</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Только видео</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>без аудио и видео (статическое изобр.)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>Аудио/видео с вашего компьютера не будет опубликовано, опубликована будет только картинка из вашего профиля. Выберите эту установку, если вы испытываете проблемы с шириной канала или если у вас медленное соединение с Интернетом</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>ПН</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>ВТ</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>СР</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>ЧТ</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>ПТ</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>СБ</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>ВС</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Понедельник</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Вторник</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Среда</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Четверг</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Пятница</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Суббота</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Воскресенье</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>КН</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Календарная неделя</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>Январь</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>Февраль</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>Март</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>Апрель</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>Май</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>Июнь</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>Июль</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>Август</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>Сентябрь</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>Октябрь</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>Ноябрь</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>Декабрь</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Календарь</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Участники</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Показать установки Layout</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Ширина | Высота</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Видео-контейнер</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Модерация-контейнер</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Доска-контейнер</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Разрешено</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Ширина | Высота</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>файлы,чат,участники - контейнер</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Разрешено</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Ширина | Высота</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>Модератор покидает комнату. Сейчас нет модераторов. Вы можете запросить функции модератора, либо подождать.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>В этой комнате нет модератора, но есть участники. Вы можете запросить функции модератора или подождать</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Обратная связь $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME: Приглашение</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Сообщение от участника:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Текст сообщения:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Для того, чтобы принять участие в совещании, нажмите на следую ссылку:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Нажмите здесь для того, чтобы войти в комнату совещаний</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>Если не удаётся перейти по ссылке, скопируйте этот URL в браузер:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME регистрация</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Ваши пользовательские данные:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Логин:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Пароль:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>e-mail:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME-Команда</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>Регистрация в $APP_NAME</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME: Переустановить пароль</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Кликните на этот линк и введите новый пароль:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Кликните здесь, и введите новый пароль</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>Если не удаётся перейти по ссылке, скопируйте этот URL в браузер:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>Переустановка пароля $APP_NAME</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Пожалуйста, введите дату, например 24.12.2001 (dd.mm.yyyy)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Пожалуйста, введите e-mail, например name@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Пожалуйста, введите вещественное число, например 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Пожалуйста, введите целое число, например 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Пожалуйста, введите телефонный номер, например ++49 0123 123123</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Пожалуйста, введите время, например 12:23 (hh:mm)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Защитить паролем</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Пароль</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Период действия</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Бесконечно</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Период</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Однократно</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Действует от:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Действует до:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Приглашение в $APP_NAME</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Для этого кода приглашения нет доступных приглашений</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>Это приглашение уже использовано. Приглашение этого типа не может быть переиспользовано.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>Этот код приглашения недействителен.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Пароль:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Проверить пароль</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Неверный пароль!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Браузер</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Синхронизовать аудио/видео</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Корректный логин, но эта сессия неактивна или не записана на сервере. Вам нужно получит новый ID сессии и перелогиниться</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>SessionId не залогинен или не имеет прав администратора. Чтобы встраивать новых пользователей, SOAP Gateway'ю нужен пользователь с правами администратора.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>У этой сессии нет connected Remoteuser-Data. Либо вы не вызвали SOAP-Gateway перед доступом к приложению, либо используете неверный ID сессии.</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>У этого рекордера - Beta-версия</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>ось x</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>ось y</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>w</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>ширина</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>h</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>высота</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Изменить прозрачность</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Браузер открыть</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Браузер закрыть</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>Потеряно соединение с сервером. Загрузите заново приложение, либо проверьте вашу сеть.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Указатель</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Синхронизация</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Синхронизация участников, подождите</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value></value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value></value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value></value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value></value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value></value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Напоминатель:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Категория:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Повторение:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>none</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Место:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Начало</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>Конец</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Название</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Комментарий</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Приглашения</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Ежедневно</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Ежемесячно</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Ежегодно</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Конец совещания после начала совещания!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Пожалуйста, вставьте заголовок!</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Активируйте это, если на вашем языке пишут справа налево</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>информационная панель</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Посмотреть записанные совещания и лекции</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Совещание - проведите конференцию с 4 участниками (число участников может доходить до 16)у каждого будет аудио/видео</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Лекция - проведите конференцию с участниками, число которых – до 200. Аудио/видео будет только у модератора</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Создание пользователей, комнат, организаций + изменить конфигурацию</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Сейчас участников в этой комнате</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Логин</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>x</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Загрузка документа. Подождите, пока клиент синхронизируется.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Загружено, конвертация документа</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Начать</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Импорт файла. Выберите файл на вашем компьютере.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Отмена</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Выбрать файл</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Соединения</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Значение</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>ID потока</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Логин</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Соединено с</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Комната/Кол-во</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Отключить</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Отключить</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Вы действительно хотите отключит этого клиента? Клиент может залогиниться вновь</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Ваша сессия завершена администратором или модератором.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Телефон</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>Этот пользователь - модератор в этой комнате</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>Участнику разрешено рисовать на доске</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Ре)старт аудио/видео или изменение установок устройства</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Разрешить этому участнику рисовать на доске</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Запретить рисовать на доске</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Участники</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Документы</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Доска</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Чат</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Вашей учетной записи соответствует несколько организаций. Пожалуйста, выберите одну организацию для данной сессии.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>Эта комната заполнена. Попробуйте попозже.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Тип комнаты</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Комната назначений</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Время сервера</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME: Напоминание</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Сообщение от пользователя:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Текст сообщения:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Для того, чтобы принять участие в совещании, кликните на ссылку:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Нажмите здесь для того, чтобы войти в комнату совещаний</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>Если не удаётся перейти по ссылке, скопируйте этот URL в браузер:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>имеющиеся пользователи</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>пригласить других</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>Имя</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>Фамилия</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>e-mail</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Подтверждение выхода</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Вы уверены, что хотите выйти?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Действия</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Демо комната</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Время демонстрации</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Таймер совещания</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>Это - демо комната. Чтобы отключить это сообщение, либо создайте личную комнату, либо установите собственный сервер. Вы автоматически будете отключены от комнаты через:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Модерируется</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Подождите, пока модератор зайдёт в комнату. Модератором может быть лектор, администратор, либо создатель этой комнаты.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>ОК</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Другой участник делает экран общим</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>Участник делает экран общим:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Сделать экран общим</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Добавить новое совещание</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Комната совещаний</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Комната лекций</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Модерация</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Модерировать участников</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Модерировать комнаты</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Хотите сделать этого пользователя модератором этой организации?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Выберите организации перед тем, как добавлять в неё пользователей</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Модератор организации</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Вы действительно хотите удалить пользователя из этой организации</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>Этот пользователь - модератор</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>Этот пользователь - не модератор</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Хотите, чтобы пользователь не был модератором в этой организации?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Добавление или удаление польз-ля/комнаты, относящихся к вашейорганизации</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Вы действительно хотите удалить эту запись?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Вы действительно хотите удалить этого польз-ля из вашей организации? В этом случае вы лишь удалите пользователем из организации, а для полного удаления пользователя нужно зайти на панель администрирования.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>Вы не можете удалить себя</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>Этот метод можно вызвать, только используя аккаунт администратора.</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>Не было сессии, ассоциирующийся с этим ID.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>Это - аккаунт администратора или модератора. Вы можете редактировать его только через панель адмиинистрирования.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>Для завершения регистрации кликните на эту ссылку или скопируйте URL в окно браузера.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Нажмите для проверки вашего e-mail.</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Для этого Хеша не найдено пользователей.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Этот пользователь уже активирован!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Вы успешно активировали ваш аккаунт</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Входите сейчас</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Ваш аккаунт не активирован. Сначала перейдите по ссылке, полученной в письме, которое вы получили при регистрации.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>Вы успешно зарегистрировались. Вам отправлено письмо с кодом проверки. Проверьте вашу почту.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Снять роль модератора у этого пользователя</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Дать пользователю права модерации</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>Пользователь</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Доступ к доске</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Модератор</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Модерация: Выберите поль-ля из списка для того, чтобы дать ему доступ к доске, модерации или видео.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>Этот пользователь уже модератор, поэтому он автоматически имеет право рисовать.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>Это вы! Вы не можете удалить права модерации у себя.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Разрешить этому пользователю публиковать своё Аудио/Видео</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Удалить Аудио/Видео этого пользователя</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>Я хочу получить права модерации в этой комнате</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>Я хочу рисовать на доске</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>Я хочу сделать моё Аудио/Видео общим</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>Вы - модератор в этой комнате</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>Вам разрешено рисовать на доске</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>Вам разрешено сделать ваше Аудио/Видео общим</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Сообщение модератору</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>Пользователь</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>желает стать модератором. Для того, чтобы разрешить или запретить функцию модерации, используйте иконки статуса рядом с именами в списке участников.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>желает рисовать на доске. Для того, чтобы разрешить или запретить рисовать на доске, используйте иконки статуса рядом с именами в списке участников.</value>
+  </string>
+  <string id="695" name="695">
+    <value>желает сделать своё Аудио/Видео общим. Для того, чтобы разрешить или запретить участникам делать Аудио/Видео общим, используйте иконки статуса рядом с именами в списке участников.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>Нужно подождать, пока модератор войдёт в комнату.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Отменить</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Сохранить</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>День</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Месяц</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Год</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Загрузить файл</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Добавить папку</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Обновить</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Корзина</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>Мои файлы (Локальное устройство)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Файлы из комнаты (Общее устройство)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Добавить файл</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Добавить папку</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Удалить папку</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Редактировать имя</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>Новая папка</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Вы уверены, что хотите удалить этот пункт?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Поиск</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Поиск</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Открыть документ</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Показать все файлы (в виде дерева)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Закрыть документ</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Удалить файл</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>Вы не можете рисовать на доске. Вам нужно либо стать модератором, либо получить от модератора право на рисование. Вы можете попросить модератора предоставить вам такое право.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Свойства документа</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Запустить клиент (внешний)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Запустить клиент (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>Пользователь хочет сделать свой экран общим. Хотите увидеть его экран?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>В данный момент вы публикуете ваш экран. Чтобы прекратить публикацию, нажмите кнопку "Stop" клиента</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Сессия публикации экрана</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>Вы уже опубликовали ваш экран</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Просмотрщик рабочего стола</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Выйти</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Публикатор экрана</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Нажмите, чтобы открыть общий доступ к вашему экрану</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Открыть доступ</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Приостановить доступ</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Выберите область экрана</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Изменить ширину</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>Участник закончил публиковать свой рабочий стол</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Изменить высоту</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>Смещение X</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Смещение Y</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Ширина:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Высота:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Соединение завершено сервером</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Отмена</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Запустить внешний</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>Полностью закрыв сессию, вы не сможете больше перезапустить просмотрщик для неё</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Подтвердите закрытие сессии просмотрщика</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Сделать экран общим</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Сессия записи</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Совместный просмотр</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>К сожалению, Firefox на ОС Windows не поддерживает совместный просмотр. Используйте другой браузер.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Предыдущая</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Следующая</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Перегрузить</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Домашняя страница</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Загрузить</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Добавить в ваш профиль эту веб-страницу как страницу по умолчанию</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Настройки теста</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Проверьте установки микрофона и камеры перед тем, как войти в комнату. Запишите 5-секундное тестовое видео. После записи можно проиграть видео и проверить качество картинки и звука.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Больше не показывать этот текст</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Отмена</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>К конференции</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Больше не спрашивать</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>ЗАПИСЬ</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>ПРОИГРАТЬ</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>Можно продолжить без тестирования, если не планируете публиковать ваш голос и видео. Участники без аудио и видео могут использовать доску, публиковать свой экран, а также участвовать в чате.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>СТОП</value>
+  </string>
+  <string id="767" name="767">
+    <value>Уровень звука</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Старт</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Участвуйте в конференции</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Начните лекцию</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Выбор комнаты</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Настройки</value>
+  </string>
+  <string id="773" name="start view">
+    <value>К конференции</value>
+  </string>
+  <string id="774" name="start view">
+    <value>Как участвовать в конференции:</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Начать запись</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Не показывать окно проверки аудио/записи видео при входе в конференцию</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Публичные комнаты</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Публичными комнатами могут пользоваться все пользователи</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Приватные комнаты</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Приватными комнатами могут пользоваться только пользователи из той же организации</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>Мои комнаты</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Комнаты этой секции - для персонального использования. Они созданы через календарь, у них есть начало и конец жизни. Эти комнаты перечислены здесь только то время, пока ими можно пользоваться.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>Для этого действия вы должны быть модератором</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Подать заявку на модерацию</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Подать заявку на доступ к доске</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Подать заявку на доступ к камере и микрофону</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>Хеш-код этой сессии уже использован. Нельзя использовать его дважды.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>СТАРТ</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>ВЫХОД</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Вы на самом деле хотите выйти? Возможно, вам нужно удалить загруженные документы, очистить доску и историю чата.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Выйти из конференции</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Комнаты</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Выберите комнату для совещания</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>В календаре есть несохранённые события. Сохраните их или удалите.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Добавьте хотя бы одного участника в совещание</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Вы действительно хотите удалить это событие?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Предупреждение</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Добавить событие</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>День</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>Неделя</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>Месяц</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Описание</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Участники</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME - платформа ваших веб-конференций. Вы можете 1) следуя инструкциям, нажать кнопку "Старт" и участвовать в конференции или 2) перейти в календарь и назначить время.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Запланировать</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>Чтобы назначить конференцию, добавьте новое событие в календарь.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Нужна помощь?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Ограниченная</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Поиск</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Добавить</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>Ни один пользователь не выбран. Выберите его из списка, а затем нажмите "Добавить".</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Добавить участника</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Сохранить</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Удалить</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Детали события</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Модератор по умолчанию</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Супер</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Имя</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>e-mail</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Добавить нового модератора по умолчанию</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Является супермодератором</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>Если комната модерируется, пользователь с правами модератора или администратора автоматически становится модератором при входе. Если вам это не нужно, а Вы лишь хотите, чтобы определённый польз-ль стал модератором, используйте опцию "модератор по умолчанию".</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>Супермодератор всегда становится модератором при входе в комнату. У него нельзя снять флаг модерации.</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Сделать польз-ля супермодератором</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Снять флаг супермодерации с польз-ля</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>x</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>Если для комнаты вы добавите организацию, только пользователи этой организации будут иметь доступ к ней (действительно только если флаг isPublic не установлен)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Модерация</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Ограничения</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Организация</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Вы уверены?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Вы действительно хотите удалить запись?</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>Пользователь не выбран. Пожалуйста, выберите пользователя</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Добавить модератора по умолчанию</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Хотите добавить флаг супермодератора этому пользователю? Чтобы сохранить это, сохраните объект комнаты.</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Вы действительно хотите удалить флаг супермодератора у пользователя? Чтобы сохранить это, сохраните объект комнаты.</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>Этот польз-ль - супермодератор. Вы не можете удалить флаг модератора у него.</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Вы действительно хотите удалить этот файл/папку?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Удалить этот файл/папку?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Г-жа</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Д-р</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Свойства</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Показывать позицию мыши зрителям</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Совместно использовать аудио и SIP</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Совмистно использовать аудио с SIP и видео с флеш</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Full-Fit</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>Смотреть экран</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>Пользователь</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>хочет сделать экран общим. Хотите видеть его?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Закрыть</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Масштаб</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>Сессия была закрыта хозяином экрана!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Пауза</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>Новый общий экран</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Минимизировать</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Максимизировать</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Видео</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Сроки записи</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>Мои записи</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Публичные записи</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Инфо</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Имя</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Длина</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Дата</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>От</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>ИГРАТЬ</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Главное - видео</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Запись</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>Вы можете записывать и делать экран общим одновременно. Чтобы сделать экран общим, нажмите кнопку “Открыть доступ” сверху. Чтобы только записывать сессию, нажмите "Начать запись".</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Начать запись</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Остановить запись</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Загрузить файл FLV</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Комната</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Играть</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Стоп</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>Микрофон польз-ля включен</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Закрыть доступ</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Разрешить вопросы</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Выключите, чтобы участники в комнате вам не мешали.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Права</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Загрузить как AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Необработанное видео</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Только аудио</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>При обработке записи возникли ошибки.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>Запись ещё не готова. Попробуйте снова через пару минут.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Лог:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Сообщение рекордера</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>Апплет SIP не готов</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>Установки аккаунта SIP</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>Установки SIP для каждого пользователя.</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>Польз-ль SIP</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Пароль Sip</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>Неправильный логин к шлюзу SIP. Проверьте данные ауфентикациивашего провайдера SIP и данные аккаунта SIP для каждого польз-ля. Администратор может сделать проверку через пункт меню Конфигурация. Пользователи и модераторы заблокированы от любых взаимодействий.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>Неправильный логин для шлюза SIP. Обратитесь в службу поддержки!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Войти в шлюз SIP</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Войти в шлюз SIP</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Показать лог</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Лог процесса записи</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>Сообщения апплета SIP</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>Апплет SIP не готов. Примите апплет и нажмите ok!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Стать модератором</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Сохранить изменения назначения</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>Назначение было изменено. Сохранить изменения? Все участники получат мейл с изменённой датой и временем (в зависимости от типа нотификаций этого назначения).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>Для доступа к другим записям войдите в приложение $APP_NAME.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Выберите пользователя для этого видео</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Доступные пользователи для этого Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>Вы модератор этого интервью. Вы можете решать, кому говорить, и можете начинать / останавливать запись</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Начать запись</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Остановить запись</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>Запись интервью уже начата.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>Запись уже остановлена или ещё не начата.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>Запись этого интервью уже начата!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Отменить</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>Обработка интервью занимает 5 минут на каждую минуту интервью. Текущий прогресс обработки:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>Введите пароль снова, чтобы автоматически создать данные SIP</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Авто-генерация SIP</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>Вы не можете переместить этот файл или папку в его собственную подпапку!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Размер домашнего накопителя</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Размер публичного накопителя</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>Лицензионные установки</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>Вы можете либо назначить дату конца срока действия, либо макс. число минут срока действия лицензии.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Проверить лицензию</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Единая ставка</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Дата конца срока действия</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Осталось секунд</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Общее время</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Ваша лицензия истекла. Вам нужно купить новые минуты либо заплатить по единой ставке.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Нажмите и купите</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Оставшееся время вашего аккаунта:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>Информация о лицензии</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Информация</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Закрыть</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Ваша лицензия истекла. Вам необходимо купить новые минуты либо заплатить по единой ставке.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>Установки лицензии</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>Вы можете купить минуты для того, чтобы проводить веб-конференции. Или заплатите по единой ставке за 3-12 месяцев.Посылка приглашений (прямые ссылки на комнаты) или создание конференций с внешними польз-лями через календарь возможны только в случае оплаты по единой ставке!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Купить 60 минут за 9,99 евро (16 центов за минуту)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Купить 5 часов за 19,99 евро (6 центов за минуту)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Купить 3 месяца за 29,99 евро (9,99 евро за месяц)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Купить 6 месяцев за 39,99 евро (6,66 евро за месяц)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Платить поминутно</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Единая ставка</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>У вас неограниченная лицензия</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Ваша лицензия истекает:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>Вы купили поминутную лицензию. У вас есть:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Купите новый кредит</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Хотите свой собственный сервер?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>Вы хотите установить $APP_NAME на ваш сервер или интегрироваться с Moodle, SugarCRM, веб-сайтом или внутренней сетью? Цены начинаются с 500 евро за инстолляцию!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>или послать сообщение</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Ответить:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Сообщение:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Послать</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Нажмите здесь, чтобы получить контактную информацию и прайс-лист</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Кредитная карта</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Имя</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Фамилия</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Тип карты</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Номер карты</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Срок окончания действия</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Номер для верификации карты</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Платёжный адрес</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Адрес</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>Город</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Страна</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>Штат (Только US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>Индекс</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Кол-во</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Послать</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Шаг 1: $APP_NAME - Платёжная форма</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Нажмите "Послать через PayPal" чтобы заплатить. Paypal принимает VISA, MasterCard, Discover или American Express. PaypAL не требует подписи.Граждене Германии могут также платить с дебетовой карты (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Спасибо за покупку $APP_NAME. Как только мы получим ваш платёж, ваш аккаунт будет изменён. Вы поллучите письмо с вашим счётом в формате PDF.Вы также можете проверять текущие и прошлые операции в вашем профайле.Сейчас вы можете закрыть ваше окно браузера и вернуться к $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Отправьте и купите!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>нажмите и купите!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Шаг 3: Платёж за $APP_NAME - проверьте заявку и купите!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Имя</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Платёж получен!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Здравствуйте,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>Мы получили ваш платёж. Ваш профайл изменён. Смотрите прикреплённый счёт. Этот и все предыдущие счета могут также быть загружены в ваш профайл.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Спасибо за использование $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Платёж получен $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Статус платежа и транзакции</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Хэш транзакций</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Минуты</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Месяцы</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Статус</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Счёт</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>Для того, чтобы посылать приглашения или создавать митинги через календарь, Вы должны платить по единой ставке. Для поминутной тарификации возможен только доступп к $APP_NAME. Вы не можете разрешить сторонним участникам доступ к митингу.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>Этот email уже используется другим пользователем.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>Установки SIP</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>Номер конференции и PIN автоматически созданы через шлюз OpenXG RPC</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>Номер SIP</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Очистить объекты только на текущем слайде!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Только введённый в строке состояния URL посылается участникам!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Сделать групповые комнаты [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Выберите пользователей для групповой комнаты!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>Здесь вы можете выбрать пользователей и создать новую групповую комнату для конференций для них. Выбранные пользователи будут автоматически перемещены в новую комнату или получат сообщение. Модераторы получат список текущих комнат так, чтобы они могли переключаться на каждую комнату, если нужно.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Имя пользователя</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Логин</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Пользователи в новой групповой комнате:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Создать групповую комнату</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Отмена</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Выберите хотя бы одного пользователя для комнаты!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Добавить пользователя в группу</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Удалить пользователя из комнаты</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>Пользователь - модератор групповой комнаты (Он может управлять комнатами и пользователи комнаты могут просить его прийти)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Тип комнаты</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>Если вы выберете "Переключить пользователя на новую групповую комнату" все выбранные пользователи будут автоматически переключены на новую комнату. Иначе они получат нотификацию с кнопкой, которой они переключиться на новую комнату. Модераторы всегда имеют выбор в управлении комнатами и переключении между ними.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Управление групповыми комнатами</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>Вы можете переключаться между всеми групповыми комнатами, в которых вы модератор. Пользователи внутри комнаты могут посылать вам сообщения, например просить вас зайти в икомнату и помочь. Вы можете также прервать комнату, и все пользователи будут выведены оттуда.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Переместить пользователя в новую комнату</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Имя</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Создано</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Доступные пользователи</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Добавьте польз-ля плюсом слева или удалите крестиком справа!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Установки групповой комнаты</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Добавить пользователя в групповую комнату</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Название групповой комнаты</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Групповая комната</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Изменить для комнаты</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Переключиться на эту групповую комнату</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Прервать групповую комнату и заставить всех пользователей выйти</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>Новая групповая комната</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>Есть новая групповая комната, доступная для вас.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Переключиться на групповую комнату</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Действия групповой комнаты</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>Вы можете переоткрыть это окно через пункт Действия меню!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Послать сообщение модератору групповой комнаты</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>Новая групповая комната</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>Есть новая доступная групповая комната. Вы можете переключиться на неё. Групповые комнаты похожи на "рабочие" с дополнительной возможностью задавать вопросы модератору. Ваши комнаты также доступны в разделе "Мои Митинги".</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Перейти в групповую комнату</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Создано:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Название групповой комнаты:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>Это окно останется открытым даже если вы выйдете из комнаты!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Польз-ли этой групповой комнаты</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Другие групповые комнаты, к которым вы можете перейти</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Послать сообщение модераторам групповой комнаты. Например, если вам нужна помощь в модерации или у вас есть вопрос по теме.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Послать</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Пользователи, приглашённые в эту комнату</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Модератор групповой комнаты</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>Это - люди, которых модератор пригласил в эту групповую комнату.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>Сейчас в этой комнате нет залогиненных модераторов!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Пожалуйста, введите сообщение</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Помогите, в нашей групповой комнате проблемы!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>Пользователь из групповой уомнаты просит помощи.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Запрос групповой комнаты для помощи</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Сообщение:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>От:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>Сейчас вы не находитесь ни в какой групповой комнате. Но можете преключиться на комнаты, к котоым имеете доступ, здесь.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Бэкап системы. Включает все данные, сгенерированные пользователем. Не включается конфигурация и метки языка, потому что они импортируются системным инстоллятором. Для апдейта, сэкспортируйте вашу старую систему (1) преустановите новые пакеты для новой базы данных (2) и симпортируйте файл бэкапа снова (3). Бэкап должен быть симпортирован перед генерацией данных в новой системе.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>Системный бэкап</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Позволить пользователю делать его экран/запись общим</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Запретить пользователю делать его экран/запись общим</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>Пользователь-модератор, и может делать что угодно!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>хотел бы сделать его экран/запись общим.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>Вам разрешается оделать экран/запись общим</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Применить права для общих экрана и записи.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Позволить или запретить делать экран или запись общими.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Выключить звук</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Включить звук</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Только с аудио</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Установите этот флаг, и польз-ли будут иметь только звук опции без видео в комнате для конференций. Полезно для уменьшения нагрузки сети.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Позволить удалённый контроль (для общего экрана)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Запретить удалённый контроль (для общего экрана)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Применить к правам удалённого контроля (для общего экрана)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>У вас нет прав на удалённый контроль (для общего экрана)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>хочет удалённый контроль для общего экрана.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>Пользователь - модератор он может делать всё</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Позволить тлт запретить удалённый контроль (для общего экрана)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) ваш PC удалённому PC: Чтобы скопировать и вставить текст из вашего буфера обмена в удалённый экран, нажмите на экран, потом кликните в текстовом поле и выберите "Вставить" из контекстного меню.2) С удалённого PC на ваш PC: Чтобы скопировать текст с удалённого PC в ваш буфер обмена, выделите текст на удалённом, кликните и выберите</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Скопировать и вставить текст с вашего PC на удалённый PC и наоборот.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Скопировать выделенный текст</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>Как скопировать и вставить</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Качество общего доступа:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Очень высокое качество</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>Высокое качество</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Среднее качество</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Низкое качество</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Клавиатура:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Закрыть вебинар!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>Вебинар уже закрыт, вы будете перенаправлены в</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Закрыть комнату</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Переадресация</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Установки выхода из комнаты</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>Если комната закрыта, пользователь будет переадресован на указанный URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Имя</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Конфигурационный файл</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Конфигурация Ldap</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Название</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Включено</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Вставлено</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Вставлено</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Изменено</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Изменено</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>Конфигурационные файлы в той же папке, что и webapps/openmeetings/conf. Загрузите файлы в папку вручную. Изменения конфиг-файлов происходят немедленно онлайн.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Имя конфиг-файла</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>Если вы включите "добавить домен к имени", значение поля "домен" добавится к каждому логину, который вводится при входе в систему. Это удобно, если логин в Ldap запоминается с доменным именем. Например: пользователь вводит "hans", домен установлен в "localhost.com", логин, который проверяется для Ldap будет: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Добавить домен к имени</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Домен</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Вставить</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Скопировать выделенный текст</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Удалть текст из буфера обмена</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Показать удалённый буфер обмена</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Не показывать снова</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Скопировать текст здесь.</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>Вам нужны права для удалённого контроля (или модерация), чтобы скопировать и вставить текст в или из удалённого экрана.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Установки по умолчанию</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Не показывать информацию о копировании и вставке в удалённом доступе</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Сохранить</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Удалить</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Отменить</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Пригласить польз-ля в комнату для конференций</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Выбрать комнату для конференций. Приглашённый участник получит сообщение с вашим именем и ссылку на комнату.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Присоединён с:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Войдите в комнату после отправки приглашения</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Пригласить</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Сообщение</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>хотелось бы пригласить вас в комнату для конференций:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Приглашение</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Послать приглашение</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>принял ваше приглашение!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Принять</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Отказать</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Таймзона</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Детали события</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Имя</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Описание</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Создано</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>Сообщение в ТЗ</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Включите "Сообщение в таймзоне", чтобы попросить пользователя сменить свой профайл при след. логине.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>пожалуйста проверьте таймзону в вашем профайле.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>Новая конференция $APP_NAME:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Детали:</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Старт:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>Конец:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Изменённая конференция $APP_NAME:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Организатор:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Отменённая конференция $APP_NAME:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>Напоминание конференции $APP_NAME:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Общие установки</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Показывать контактные данные всем</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Добавить поля ваших интересов или интересов ваших партнёров в конференцию. Запятая разделяет термины (например: медицинские услуги, забота о здоровье, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>Мои предложения</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>Мои интересы</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Имя</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Таймзона</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Области интересов</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Контактная информация</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Показывать контактные данные только контактам</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Не показывать контактные данные никому</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>Мой профайл</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Редактировать установки</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Искать пользователей</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Посмотреть ваш профайл, как его видят другие</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Редактировать ваши установки, добавить интересы для поиска</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Искать других пользователей и расширить вашу сеть</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Искать</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>Польз-ль предлагает</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>Польз-ль ищет</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Свободный текст</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Имя</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Таймзона</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Предложения</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Поиски</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Результаты поиска</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Действия</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Добавить в контакты</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Послать сообщение</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Контакты и сообщения</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Ожидающие контакты</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Принять</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Запретить</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Здравствуйте,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>хочет добавить вас в список контактов.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Проверьте запросы вашего контакта в $APP_NAME или пойдите по этой ссылке, чтобы on принять или отклонить запрос</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>Этот пользователь уже в вашем списке контактов или получил приглашение добавиться в список, но не ответил.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Ваш список контактов</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Редактируйте ваши контакты и сообщения, управляйте ожидающими контактами!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>подтвердил вас как контакт!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Показать или скопировать лог</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Лог чата</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>От</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Тема</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Послать</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Сообщения</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>Новый мейл</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Нажмите, чтобы написать сообщение вашему контакту</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Напишите новое сообщение</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>Кому:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Тема:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Включиите full fit и доска будет масштабироваться так, чтобы все документы становились видимыми в соответствии с разрешением экрана каждого участника.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Исключить участника</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>Вы не можете удалить сами себя из комнаты!Если вы хотите покинуть её, закройте окно браузера или используйте кнопку Выход!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Вы действительно хотите исключить этого участника из комнаты?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Подтвердите действие ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>Вы не можете исключить супер-модератора из комнаты!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Зарезервировать комнату</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Старт</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>Конец</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Добавьте дополнительный запрос для митинга и создайте комнату для конференций. Событие скопируется в календарь каждого участника.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Входящие</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Посланные</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Корзина</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>Это вы! Вы не можете добавить себя в свои контакты.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>Пользователь уже отклонён!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>Пользователь уже подтверждён!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>Хеш контактов этого пользователя невалиден!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>Пользователь добавлен в список контактов!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>Пользователь отклонён как контакт и удалён из списка ожидающих!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>Нет такого контакта!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Вы действительно хотите удалить этот контакт?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Подтвердите удаление контакта</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Удалить контакт из списка</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>Профайл пользователя</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Показать профайл пользователя</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Сообщения</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Поиск</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Все</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Никто</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Непрочит.</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Прочитанные</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>К папке ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Новая папка ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Удалить</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Удалённый мейл всё ещё в корзине!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Непрочит.</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Прочитанное</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Ответить</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Ответить всем</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Переслать</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Действия ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Послать приватное сообщение</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Ничего не выбрано!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Во входящие</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Удалить (навсегда)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>Действие не может быть отменено!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Новая папка</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Добавить папки и упорядочить сообщения!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Добавить папку</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Добавить</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Удалить папку</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>Вы не можете удалить эту папку, там есть сообщения! Удалите их или переместите их в другую папку.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Редактировать имя</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Вы действительно хотите удалить эту папку? Её нельзя восстановить.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Ваш запрос был послан пользователю. Пользователь получит нотификацию о подтверждении или отклонении. Только подтверждённые запросы могут быть в вашем списке контактов!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Сообщение</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>Пользователь не дал совместного доступа к его персональным данным.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>Пользователь разрешил доступ к своим персональным данным только контактам.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Адрес и телефон</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>Код вашего приглашения невалиден, он действует только в определённый период времени.</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>Это событие связано с несколькими календарями других пользователей. Ваши изменения также изменят их календари. Выхотите изменить событие?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Подтвердите изменение</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Позволить контакту видеть мой календарь (только просмотр)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Не давать доступа к календарю</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Календарь контактов</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Ваши контакты должны разрешить вам доступ, прежде чем вы сможете видеть их календари.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>Вы не можете сохранить или удалить события из чужих календарей!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Показать мой календарь снова!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>Это событие связано с календарями других пользователей. Ваши действия также удалят сообытие из этих календарей. Вы хотите удалить событие?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Подтвердите действие</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Войти в комнату</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Доступ к комнате</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>К этому приватному сообщению зарезервированы комната и событие.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>Сперва соххраните событие!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>Нет таких доступных комнат. Событиея в календаре и присоединённая комната уже удалены!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Выберите ваш ник</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Имя</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Фамилия</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Мейл</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Мин. длина - 4 символа для имени и фамилии вместе!.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Введите валидный мейл</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Войти как Facebook аккаунт</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Записан с</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>Вы зашли с аккаунта Facebook. Вам необходимо прописать правильный мейл в профайл, иначе вы не сможете получать приглашения и приватные сообщения.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Сообщение</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Больше не показывать сообщение об изменении профайла</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>Ещё настройки дисплея ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>Новое приватное сообщение:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Нажмите сюда, чтобы перейти к профайлу и прочитать сообщение ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Ответить</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Комнаты и чаты</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>Мои комнаты</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>Моя комната для конференций(до 16 участников)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>Моя комната для вебинаров (до 120 участников)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Id владельца</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Введите пароль</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>Вам нужен аккаунт уровня пользователя, модератора или админа</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-сервис (только через SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Напрямую загрузите на доску</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Вы действительно хотите удалить эту доску? Это действие не может быть отменено!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Загрузить на доску</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Не забудьте начать запись! 1 участник в комнате хочет начать её.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Начать запись</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Стрелка</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Круг</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Линия</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Квадрат</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Треугольник</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Текст</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Фигуры</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Рисовать</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Выделить/Переместить</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Рисовть форму</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Вырезать или Переместить</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Масштаб</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Печать</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Отмена</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Корзина</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Добавить решётку</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Сделать файл общим</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Выбрать форму</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Выбрать фигуру</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Скопировать</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Вырезать</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Вставить</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Удалить</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Вы действительно хотите удалить контент с доски?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Загрузить прямо на доску</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Участники</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Менеджер участников</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Присутствуют</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Удалённый контроль</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Извлечь</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Чат</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Пригласить участников</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>По eMail</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>Пользователь - модератор</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>У пользователя включена камера</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Деактивировать заполнение формы</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Активировать заполнение формы</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Привязять к решётке</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Разрешить запись</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Подождать запись</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Скрыть панель инстр.</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Играть видео</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Вы действительно хотите удалить содержание текущего слайда?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Принять и назначить пользовательские права</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Отклонить</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>Я</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Активность и действия</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Удалить доску</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>Вы должны быть модератором или иметь права на рисование на доске, чтобы удалить доску!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Не разрешено</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>покидает комнату.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Основные иконки</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>Без категории</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Цвет-стиль</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Качество</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Домен</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>посетить</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>красно-оранжевый</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>цвет морской волны</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>Стальной</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>светлосероголубой</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>золотистый</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>серебряно-серый</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>пользовательский</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>лучший</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>загрузка</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>средний</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Выключить микр. глобально</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Включить микр. глобально</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Дать слово</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>Микрофон был откл. модератором. Вы не можете вкл. микр. сами!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Выкл. микрофон глобально?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Вы действительно хотите отключит микрофон? Другие участники не смогут вас слышать!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Отключить микрофон локально?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Вы действительно хотите откл. этот микрофон? Этот микрофон можно отключить только на вашем компьютере. Данное действие не повлияет на то, как остальные участники будут слышать этого пользователя. Только модератор может отключить микрофон глобально!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Отключить микрофон глобально?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Вы действительно хотите отключить этого участника? Больше никто не будет слышать его!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Ваш звук включен. Нажмите сюда, чтобы послать модератору сообщение о выключении микрофона глобально (в заполненной комнате)!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Ваш звук выключен. Нажмите сюда, чтобы послать модератору сообщение о включении микрофона глобально (в заполненной комнате)!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>хотел бы, чтобы модератор выключил мой микрофон глобально.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>хотел бы, чтобы модератор включил мой микрофон глобально.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>хочет, чтобы модератор включил его/её микрофон.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>хочет, чтобы модератор выключил его/её микрофон.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Включенный микрофон. Нажмите, чтобы выключить его/её микрофон глобально.</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Выключенный микрофон. Нажмите, чтобы включить его/её микрофон глобально!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>Этот участник глобально выключен модератором. Вы не можете включить его!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Выключить ваш микрофон глобально</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Включить ваш микрофон глобально</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Выключить микрофон</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Включить микрофон</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Выключить микрофон глобально</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Включить микрофон глобально</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Только модераторы могут включать или выключать участников глобально! Чтобы выключить ваш микрофон, используйте иконку микрофона!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Название опроса</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>Вы</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Заархивированные голосования</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>активные</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Простая диаграмма</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Круговая диаграмма</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Введите е-мейл</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>Новые сообщения</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Закрытый опрос</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Уверены, что хотите закрыть опрос? Больше никто не сможет голосовать.</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Удалить опрос</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Хотите удалить этот опрос? Результаты тоже будут удалены.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Код ISO языка</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Разрешить/запретить права на эксклюзивный звук.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Позволить участнику эксклюзивный звук</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Запретить эксклюзивный звук для участника</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>хотел бы получить разрешение на эксклюзивный звук.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>хочу, чтобы модератор разрешил мне эксклюзивный звук.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Разрешить эксклюзивный звук.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Разрешение камеры</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Изменение разрешения влияет на пропускную способность сети, увеличенная картинка требует больше разрешения.</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>У вас нет прав разрешать себе или другим эксклюзивное аудио. Попросите у модератора эти права или пусть он разрешит вам эксклюзивный звук сам.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>Я хотел бы получить разрешение на эксклюзивный звук.</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Дать мне эксклюзивный звук (как альтернатива, кликните на ваш экран или нажмите F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Микрофон включён!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Микрофон выключен</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Скрыть чат</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Скрыть панель действий</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Скрыть панель файлов</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Скрыть меню действий</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Скрыть общий экран</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Скрыть доску</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Показать статус микрофона в видео</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Параметры расположения</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>Новое событие</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Ссылки, защищённые паролем - это ссылки на комнаты, которые посылаются участникам при сохранении события в календаре, не в комнате! Это значит, что если вы сохраняете событие несколько раз с разными паролями, участники каждый раз получают новые ссылки с разными паролями. Но ссылки, посланные ранее, тоже работают!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Редактировать</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Номеронабиратель SIP</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Позвонить</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Показать события календаря для контакта</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Ваш дом!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Планировать митинги</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Смотреть записи и интервью</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Выбрать и начать конференцию</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Управлять пользователями и правами</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Управлять связями и исключать участников</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Управлять группами пользователей</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Управлять комнатами конференций</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Управлять свойствами системы</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Управлять метками и текстом</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Конфигурировать LDAP и ADS</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Экспорт/импорт системных бэкапов</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>Вам нужны права модератора или права на рисование на доске, загрузку, выгрузку, добавление и удаление файлов и папок.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Редактировать текст</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Проф-р</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Опубликовать</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Начать публикацию</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Остановить</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Сервер публикации</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Домен публикации</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Имя публикации</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Уменьшать ширину общего экрана при перемещении его влево</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Уменьшать высоту общего экрана при перемещении его вниз</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Уменьшать смещение x общего экрана при увеличении его ширины</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Уменьшать смещение y общего экрана при увеличении его высоты</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Настройки для трансляции видео конференции на другие сервисы:</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Пожалуйста, сделайте экран общим для того, чтобы опубликовать его</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Для того, чтобы начать запись, необходимо разрешение модератора</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>Вам необходимо разрешение на предоставление эксклюзивного аудио любому участнику, для этого вам необходимо быть модератором или иметь эксклюзивные права на вкл/выкл микрофонов.</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Загрузить новый файл</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Открыть настройки общего экрана в новом окне</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>Запросить подтверждение модератора</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Запросить разрешение модератора на доступ к камере/микрофону</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Получение обратной связи посредством опроса</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Прошлые и текущие результаты опросов в виде графиков</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Проголосовать, если существует опрос для этой комнаты</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Изменить настройки камеры и микрофона</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Подтвердить и покинуть комнату</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Позвонить внешним участникам при помощи VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Отправить приглашение с прямой ссылкой на эту комнату</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Изменить настройки доски</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Максимальный размер загружаемого файла</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Запросить разрешение модератора на доступ к доске</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Начать приватный чат</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>Все</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>Вы не можете начать приватный чат с собой.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>Вы уже начали приватный чат с этим участником.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Вы действительно хотите удалить этот приватный чат?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Сервера</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Сервера кластера</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Имя Сервера</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Адрес Сервера</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Описание Сервера</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>СМС</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Сообщение. Пользователю:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>Что бы уменьшить время и интернет траффик вы можете воспользоватся командной строкой admin для копирования/восстановления/обновления: &lt;ol&gt; &lt;li&gt;войдите в установочную папку OM (например /opt/red5)&lt;/li&gt; &lt;li&gt;остановите OM (./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;выполняем ./admin.sh -b -file ~/today_om_backup.zip (создает резервную копию OM)&lt;/li&gt; &lt;li&gt;загрузите новый дистрибутив OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (перемещаем рабочую версию OM :))&lt;/li&gt; &lt;li&gt;распаковываем дистрибутив OM в папку /opt/red5&lt;/li&gt; &lt;li&gt;запускаем ./admin.sh -i -file ~/today_om_backup.zip (или './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' в случае когда база данных отличается от базы по умолчанию )&lt;/li&gt; &lt;li&gt;запускаем OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Общие комнаты для всех пользователей</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Общие комнаты для текущей группы пользователей</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Комнаты данного пользователя</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Создать/редактировать комнату для этого события</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>Вы можете ввести несколько адресов в формате: Имя1 Фамилия1 &lt;адрес1&gt;,"Имя2 Фамилия2" &lt;адрес2&gt;,'Имя3 Фамилия3' &lt;адрес3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Регулировать поток</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Регулировать микрфон</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Премодерируемый чат</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Опубликовать сообщение</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Открывать панель чата по умолчанию</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Открывать панель файлов по умолчанию</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Прошлый запрос</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Каждый подчиненный сервер посылает запрос главному через 3 секунды (задается в конфигурации). Параметр lastPing дожен быть менше 1 минуты так, чтобы главный сервер использовал подчиненные сервера.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Порт</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>SOAP Админ</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Пароль</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Путь к приложению</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Протокол</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Исполняемый запрос</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Активный</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Сгенерировать URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Тестирование сети</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Автоматически определять видео окно</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Подчёркнутый шрифт</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Стиль шрифта</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Разрешить использование стилей в чате</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Цвет шрифта</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Гиперссылка</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Показать статистику сессии</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Детализация сессии</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>Системный импорт</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Включать загруженные файлы и записи в бэкап</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Разрешить SIP транспорт в комнате</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Вы действительно хотите дать слово этому участнику?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Укажите Ваш часовой пояс</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>конференц зал (1-25 участников)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>ограниченная (1-150 участников)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>интервью (1:1 встреча с записью)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Конфигурация с этим ключем уже существует, пожалуйста укажите другой ключ или измените существующий</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Сохранение данных, подождите пожалуйста.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Добро пожаловать</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Виджет, содержащий основную информацию о пользователе и ссылки на сайты поддержки</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Виджеты</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>О программе</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Наименование</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Версия</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Ревизия</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Дата билда</value>
+  </string>
+  <string id="1554" name="main_loading">
+    <value>Загрузка ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>сегодня</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Янв</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Фев</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Март</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Апр</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>Май</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Июнь</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Июль</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Авг</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Сен</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Окт</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Ноя</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Дек</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>не посылать уведомление</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>обычный e-майл</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal e-майл</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Конфигурировать OAuth2</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Название</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Активен</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>URL значка</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>URL запроса ключа</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>URL запроса токена</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>URL запроса данных</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>Настройка OAuth2</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Имя пар-ра "логин"</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Имя пар-ра "email"</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Имя параметра "имя"</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Имя пар-ра "фамилия"</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Атрибуты запроса токена</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Uri возврата</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>Вы можете ввести адрес в формате: Имя1 Фамилия1 &lt;адрес1&gt; или "Имя2 Фамилия2" &lt;адрес2&gt; или 'Имя3 Фамилия3' &lt;адрес3&gt; или адрес</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Сообщить об отключении</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Показать</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Ваш аккаунт создан. Письмо с подтверждение было выслано. Теперь вы можете войти под своим именем.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>Введенная дата начала раньше даты окончания.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Код выхода</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Сообщения конвертации</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Файл записи не найден</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Добавить доску</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>Вы можете ввести адрес в формате: Имя1 Фамилия1 &lt;адрес1&gt; ИЛИ "Имя2 Фамилия2" &lt;адрес2&gt; ИЛИ 'Имя3 Фамилия3' &lt;адрес3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/slovak.xml b/src/main/webapp/languages/slovak.xml
new file mode 100644
index 0000000..4a0bc68
--- /dev/null
+++ b/src/main/webapp/languages/slovak.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Konferencia</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Stretnutie</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Podujatia</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Nastavenia</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Profil</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Administrácia</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Stop</value>
+  </string>
+  <string id="8" name="record">
+    <value>Nahrávanie</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>Žiadny súbor nie je k dispozícií</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Nahrávanie</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Pripojení používatelia</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Začať konferenciu</value>
+  </string>
+  <string id="13" name="myname">
+    <value>Moje meno</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>Videokonferencia</value>
+  </string>
+  <string id="15" name="import">
+    <value>Nahrať súbor</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Načítať znovu zoznam</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>K hlavnému súboru</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>Nové hlasovanie</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>Nové hlasovanie pre konferenciu</value>
+  </string>
+  <string id="20" name="question">
+    <value>Otázka</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Typ hlasovania</value>
+  </string>
+  <string id="22" name="create">
+    <value>Vytvoriť</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Všetci pripojení používatelia prijímajú správu s novým hlasovaním</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Vytvoriť hlasovanie</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Zrušiť</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Áno/Nie</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Čísla 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Hlasovanie</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Musíte byť moderátor pre vytvorenie otázky</value>
+  </string>
+  <string id="30" name="vote">
+    <value>Váš hlas bol zaznamenaný</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>V tomto prieskume ste už hlasovali</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Hlasovať</value>
+  </string>
+  <string id="33" name="answer">
+    <value>Vaša odpoveď</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Áno</value>
+  </string>
+  <string id="35" name="no">
+    <value>Nie</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>chce vedieť</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Výsledky hlasovania</value>
+  </string>
+  <string id="38" name="question">
+    <value>Otázka</value>
+  </string>
+  <string id="39" name="results">
+    <value>Výsledky</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Odpovede</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>Žiadne hlasovanie nebolo vytvorené</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Hlasovať</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Stretnutie(max 6 miest)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Konferencia(max 25 miest)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Typ</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Ostatné miesta</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Už vybrané</value>
+  </string>
+  <string id="48" name="enter">
+    <value>vstup</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>Moderátor opustil stretnutie</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Systémové informácie</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Vybrať zariadenie</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Vybrať webkameru</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Vybrať mikrofón</value>
+  </string>
+  <string id="54" name="ok">
+    <value>OK</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>Zrušiť</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Musíte sa znovu pripojiť</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Upraviť nastavenia</value>
+  </string>
+  <string id="58" name="course">
+    <value>Kurz</value>
+  </string>
+  <string id="59" name="language">
+    <value>Jazyk</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>OK</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>Zrušiť</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Zmazať tabuľu</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Chcete zmazať tabuľu pred vložením nového obrázka?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>Nepýtať sa ma znova</value>
+  </string>
+  <string id="65" name="no">
+    <value>Nie</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Zmeniť nastavenia</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Potvrdiť žiadosť na zmazanie tabule</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Informácie o používateľovi</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Zmazať tabuľu</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Zrušiť</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Prerobiť</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Vybrať objekt</value>
+  </string>
+  <string id="73" name="text">
+    <value>Text</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Farba</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Nakresliť čiaru</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Podčiarknuť</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Obdĺžnik</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Elipsa</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Šípka</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>Zmazať vybranú položku</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Požiadať o moderáciu</value>
+  </string>
+  <string id="82" name="apply">
+    <value>Aplikovať</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>Zrušiť</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Nemám otázku</value>
+  </string>
+  <string id="85" name="close">
+    <value>Zatvoriť</value>
+  </string>
+  <string id="86" name="italic">
+    <value>ležatý</value>
+  </string>
+  <string id="87" name="bold">
+    <value>hrubý</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>ČAKÁM</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>Používateľ požiadal o moderáciu. Môžte mu sprístupniť len prístup k tabuli, alebo plnú moderáciu. Používateľ:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>Prijať</value>
+  </string>
+  <string id="91" name="reject">
+    <value>Odmietnuť</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>Zrušiť</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Posielanie žiadosti nasledovným používateľom</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Potvrdené</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Odmietnuté</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Zmeniť moderátora</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Nie ste moderátorom</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Moderátor</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>Táto miestnosť je už obsadená</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Elipsa</value>
+  </string>
+  <string id="101" name="close">
+    <value>Zatvoriť</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>chyba vstupných údajov</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>Rozlíšujte veľké a malé písmena a minimálne 4 znaky</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>Heslo musí mať aspoň 4 znaky</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>Používateľské meno už existuje</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>Email už je zaregistrovaný</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>Systémová chyba, kontaktujte administrátora</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Prihlásenie</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Meno a email</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Heslo</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Jazyk</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Prihlásiť sa</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Zaregistrovať sa</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Používateľské meno</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Heslo</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Znova heslo</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Meno</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Priezvisko</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>Email</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>Krajina</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Registrovať</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>Zrušiť</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Nie ste členom?</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>Domov</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Používatelia</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Skupiny</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Spoločnosti</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Miestnosti</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>Verejnosť</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>Spoločnosť</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>Vstup</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Prihlásenie</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Heslo</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Znova heslo</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Titul/Meno</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Priezvisko</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>Email</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Narodeniny</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Ulica/Číslo</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>PSČ/Mesto</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>Krajina</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Adresa</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Údaje používateľa</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>Uložiť</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Uložiť</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>ID používateľa</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>Login</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>Meno</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>Priezvisko</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>Ďalšie</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>Predchádzajúce</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>Zmazať nahrávku</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>Zrušiť</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>Zmazať</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>Nové nahrávanie</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>Obnoviť nahrávanie</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>Zmazať nahrávku</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>Status</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>Zablokované</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>Povolené</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>Spoločnosti</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>Kalendár</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>Zatvoriť</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>ID spoločnosti</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>Meno</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>Používateľ</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>Moderátor</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>Administrátor</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>User level</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>Spoločnosť</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>Meno</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>Pridať organizáciu</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>Pridať organizáciu</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>Zrušiť</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>Pridať</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>Odstrániť organizáciu</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>Používateľ</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>Pridať používateľa</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>Zmazať používateľa</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>Pridať používateľa do spoločnosti</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>Hľadať používateľa</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>Hľadať</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>Používateľ</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>Spoločnosť</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>Zadať</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Miestnosť</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Miestnosti</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>ID</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Meno</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>Verejné</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>Spoločnosti</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Miestnosti</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>Meno</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>Typ</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>Verejné</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>Komentovať</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>Uložiť a exportovať</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>Nahrať</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>Uložiť ako</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>Meno súboru</value>
+  </string>
+  <string id="201" name="files">
+    <value>Meno súboru</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>Zrušiť</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>Uložiť</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>Chyba</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>Nahrávanie</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>Objekty nahrávané</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>Synchronizujem, prosím čakajte</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Nahrávanie súboru</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>Synchronizujem, prosím čakajte</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>Zmazať tabuľu</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>Zmazať tabuľu, všetky objektu budú vymazané</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Potvrdiť pred nahratím súboru</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Zaslať pozvanie</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Zaslať pozvanie</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Predmet</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Príjemca</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Správa</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Poslať</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>Zrušiť</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>Poslať</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Informácie o používateľovi</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>Vaša prezývka pre túto miestnosť</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>Prezývka</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>Meno</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>Priezvisko</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>Email</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>Jazyk</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>Zadať</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Nahrávanie</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Nahrávanie dát, prosím čakajte</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Nesprávne heslo</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Zadajte 2 rovnaké heslá</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Nesprávne heslo</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Zadali ste nesprávny email</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>Registrácia kompletná</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Vaše konto bolo vytvorené. Môžte sa prihlásiť.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>Niekto už zdieľa svoju plochu</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Zdieľanie zakázané</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Zdieľať/nahrávať plochu</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Nemožné synchronizovať plochu. Požiadajte moderátora o zníženie kvality.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Plocha:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Kreslenie</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Dokument</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Chat</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Súbory</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Členovia</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Stiahnuť pôvodný dokument</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>Stiahnuť PDF dokument</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Nahrať prezentáciu na tabuľu</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Konfigurácia</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Ťahať tento objekt</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Zmeniť veľkosť objektu</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value></value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>Prvá strana</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>Predchádzajúca strana</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>Ďalšia strana</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>Posledná strana</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Zoom --</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Zoom ++</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Pán</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Pani</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Nastavenie</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Kľúč</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Nastavenie</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Kľúč</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>Posledná zmena</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>Obnovené</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>Komentovať</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>Hodnota</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value></value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Použivatelia</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>Zmazať používateľa zo spoločnosti</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>D</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>Tento používateľ je už členom tejto spoločnosti</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>Správy</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Rýchle odkazy</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Choď do miestnosti</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Choď do miestnosti</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Pomoc a podpora</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Nahlásiť chybu</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>viac</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Stránka projektu (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>Zoznam používateľov (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Zapamätať prihlásenie</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Obsah</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>My home page</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>My scheduled meetings</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>My scheduled events</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Public meetings</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Private meetings</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Public events</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Private events</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Public content</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Private content</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Personal content</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Moderácia</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Mám otázku</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Hlasovania</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Vybrať súbor</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Nastavenia</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Nastavenie mikrofónu a kamery</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Nastavenie tabuli</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Východ</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Späť k miestnostiam</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Odhlásiť</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Zabudli ste heslo?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Resetovať heslo</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>Using email address</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Using login</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>Váš email</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Vaše prihlásenie</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Poslať email s reštartovacím odkazom</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>Žiadny takýto email neexistuje. Uistite sa, že ste zadali rovnaký email ako pri registrácií.</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Prosím zadajte email alebo používateľské meno</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>There is no user connected to this username</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>Email bol zaslaný</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Chyba</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Správa</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Používateľ sa nenašiel</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Resetovať vaše heslo</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Prihlásenie</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>Zmeniť heslo</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>Nové heslo</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>Znova zadajte heslo</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>Vami zadané heslo nie je identické</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>Rozlišujte veľké/malé písmená a viac ako 4 znaky</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Heslo nastavené. Môžte sa prihlásiť.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Chyba. Kontaktujte administrátora.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Používateľské meno sa nenašlo</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Nesprávne heslo</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Úspešne odhlásený</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Registrácia nemožná</value>
+  </string>
+  <string id="339" name="registration">
+    <value>Chybný email</value>
+  </string>
+  <string id="340" name="registration">
+    <value>Duplikátny názov súboru, prosí, zadajte iný</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>Názov súboru príliš krátky</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Nemožno uložiť adresu</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>Používateľ pridaný, ale je nutné priradiť ho k spoločnosti.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Nový záznam</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>No field found for the ID</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>No label found</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Autorízácia administrátorom sa vyžaduje</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Jazykový editor</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Jazyk</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>Label ID</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Label name</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Value</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Field values</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>Label name</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>Label value</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>Label ID</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>You have deleted the label</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>Invalid label ID</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Nemôžte zmazať toto pole</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>Export</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Musíte sa odhlásiť pre uloženie zmien.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Add new language</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>Delete language</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Add new language</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Name</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>Add language</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Backup</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>prvý</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>predchádzajúci</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>ďalší</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>posledný</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>používateľ hovorí (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>vypnúť/zapnúť zvuk</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>Systém</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Vaše nastavenie</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>Zdravím</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Upraviť profil</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Nová správa</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Nahrať nový obrázok</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Exportovať používateľove údaje</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>All organisations must already exist</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>Začať exportovať</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>By organisation</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>Start export</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Import user data</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>Choose users.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>Importovať</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Exportovať do XML</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Vybrať jazyk dokumentu pre import</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>Importovať</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Uložiť ako</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Meno</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Komentár</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>Uložiť</value>
+  </string>
+  <string id="395" name="record">
+    <value>Nahrávky</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Prehliadač nahrávok</value>
+  </string>
+  <string id="397" name="record">
+    <value>Nahrávky verejných a súkromných miestností</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Používatelia</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Pripojený</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Používatelia v tejto miestnosti</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>Obnoviť</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>Miesta sú obsadené</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>Kliknite na miestnosť pre informácie o miestnosti</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Chat s používateľmi v tejto miestnosti</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Miestnosť</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Používatelia v tejto miestnosti</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>od</value>
+  </string>
+  <string id="409" name="record">
+    <value>Prehrať nahrávku</value>
+  </string>
+  <string id="410" name="record">
+    <value>Dĺžka</value>
+  </string>
+  <string id="411" name="record">
+    <value>Dátum</value>
+  </string>
+  <string id="412" name="record">
+    <value>Režim nahrávania</value>
+  </string>
+  <string id="413" name="record">
+    <value>Prehrať túto nahrávku</value>
+  </string>
+  <string id="414" name="record">
+    <value>Prehrať/Pauza</value>
+  </string>
+  <string id="415" name="record">
+    <value>Nahrať túto miestnosť</value>
+  </string>
+  <string id="416" name="record">
+    <value>Zastaviť nahrávanie</value>
+  </string>
+  <string id="417" name="record">
+    <value>Nahrávanie</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>Niekto už nahráva túto miestnosť</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Nahrávanie. Používateľ:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>Zrušiť</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>Nahrávanie bude zrušené a neuloží sa</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>výsledok</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Zavrieť toto okno a zhrnúť nahrávanie</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>Zmeniť farbu</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Vybrať farbu</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Znemožniť/umožniť farbu</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>Zmeniť farbu výplne</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Znemožniť/umožniť farbu výplne</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Zmeniť širku</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>Zatvoriť</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>Zmeniť veľkosť písma</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Zmazať nahrávku</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Hosť</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Meno</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Miestnosť</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Dátum</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>Zrušiť</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>Začať</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Meno</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Dátum</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Delete server chat log</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Chat</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>Poslať správu</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Emotikony</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Emotikony</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Vybrať zariadenie</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Audio a video</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Iba audio</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Video iba</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>Žiadne audio/video (obrázok)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>Žiadne audio/video z vášho počítača nie je publikované</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>Po</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>Ut</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>Str</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>Štv</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>Pia</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>So</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>Ne</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Pondelok</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Utorok</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Streda</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Štvrtok</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Piatok</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Sobota</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Nedela</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>KT</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Kalendár týždeň</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>Január</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>Február</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>Marec</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>Apríl</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>Máj</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>Jún</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>Júl</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>August</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>September</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>Október</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>November</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>December</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Kalendár</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Participujúci</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Zobraziť nastavenie rozloženia</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>šírka | výška</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Video kontajner</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Moderátorský kontajner</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Tabuľový kontajner</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Povolený</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>šírka | výška</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Kontajner dokumentov, chatu a participantov</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Povolený</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>šírka | výška</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>Moderátor opustil miestnosť. V tomto momente nikto neprezentuje.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>V tejto miestnosti nie je moderátor, ale sú tu participujúci. Musíte požiadať o moderáciu alebo počkať.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Feedback $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Pozvanie</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Správa od:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Správa:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Pre participáciu v tejto miestnosti kliknite na tento link:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Kliknite sem pre vstup do miestnosti:</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>Ak máte problém s odkazom, skopírujte ho do vášho prehliadača:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME prihláseniep</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Your userdata</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>prihlásenie</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Heslo</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>Email</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME-Team</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME prihlásenie</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - Reset Password</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Kliknite na tento link pre zadanie nového hesla</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Kliknite sem pre zadanie nového hesla</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>Ak máte problémy s týmto odkazom, skopírujte si ho priamo do vyhľadávača:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>Reset hesla</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Prosím zadajte správny dátum vo formáte 24.12.2001 (dd.mm.yyyy)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Prosím zadajte správny email vo forme name@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Prosím zadajte číslo, napríklad 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Prosím zadajte celé číslo, napríklad 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Prosím zadajte platné telefónne číslo, napríklad +49 0123 123123</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Prosím zadajte správny čas, napríklad 12:23 (hh:mm)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Chránené heslom</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Heslo</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Validačná doba</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Nekonečné</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Obdobie</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Jednorázové</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Platné od</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Platné do</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Pozvanie do $APP_NAME</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Žiadna pozvánka pre tento kód neexistuje</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>Toto pozvanie už bolo použité</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>Pozývací kód je neplatný</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Heslo</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Skontrolovať heslo</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Neplatné heslo</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Audio/video</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Synchronizovať audio/video</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Prihlásenie je správne, ale stretnutie nie je aktívne</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>ID miestnosti nie je prihlásené alebo nemá administrátorské práva. SOAP brána potrebuje používateľa s administrátorskými právami na vloženie nového používateľa.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>This Session has no remoteuser-data connected. You did not call the SOAP gateway before accessing the application or you are using a wrong session ID</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>The recorder is currently beta</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>os x</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>os y</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>š</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>šírka</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>v</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>výška</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Zmeniť priehľadnosť</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Otvoriť prehliadač</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Zatvoriť prehliadač</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>Pripojenie na server zlyhalo</value>
+  </string>
+  <string id="557" name="557">
+    <value>Ukazovátko</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Synchronizovanie</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Synchronizovanie, prosím čakajte</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Stiahnúť ako SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Stiahnúť ako PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Stiahnúť ako JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Stiahnúť ako PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Stiahnúť ako TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Pripomienka</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Kategória</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Opakovanie</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>žiadne</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Umiestnenie</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Začiatok</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>Koniec</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Názov</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Komentár</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Pozvať ľudí</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Denne</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Mesačne</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Ročne</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Stretnutie končí až v čase neskoršom ako začalo</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Prosím vložte názov</value>
+  </string>
+  <string id="580" name="580">
+    <value>Zprava doľava</value>
+  </string>
+  <string id="581" name="581">
+    <value>Aktivovať ak píšete sprava doľava</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Tabuľa</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Pozerať nahrávky stretnutí</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Stretnutie - make a conference with between 4 and 16 users&lt;br/&gt;and everybody will have audio and video access</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Event - make a conference with up to 200 participents&lt;br/&gt;but only the moderator will have audio and video access</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Create users, rooms, organisations&lt;br/&gt; and change configuration</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Používatelia v tejto miestnosti</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Prihlásenie</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Nahrávam dokument. Počkajte pokiaľ všetci klienti nebudú zosynchronizovaní.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Nahratie kompletné, konvertujem dokument</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Začať nahrávanie</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Nahrať a importovať dialóg. Prosím vyberte súbor.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Zrušiť</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Vybrať súbor</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Pripojenia</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Hodnota</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Stream ID</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Prihlásenie</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Pripojený od</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Miestnosť / Oblasť</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Vyhodiť používateľa</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Vyhodiť používateľa</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Naozaj chcete vyhodiť tohto klienta z miestnosti?</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Vaše stretnutie bolo zavreté administrátorom alebo moderátorom.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Telefón</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>Používateľ je moderátorom tejto miestnosti</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>Používateľ má právo kresliť na tabuľu</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Re) štartovať audio/video alebo zmeniť nastavenia zaradenia</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Povoliť tomuto používateľovi kresliť na tabuľu</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Odobrať právo kresliť na tabuľu</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Používatelia</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Súbory</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Tabuľa</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Chat</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Váš účet je priradený k viacerým spoločnostiam.Prosím vyberte si jednu pre túto miestnosť.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>Miestnosť je už obsadená</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Typ miestnosti</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Miestnosť</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Čas</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>Clickjobfair - Pripomienka</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Správa od používateľa:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Správa:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Kliknite na tento odkaz pre účasť na konferencií:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Kliknite tu pre vstup do miestnosti</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>Ak máte problém s odkazom, prosím skopírujte ho priamo do prehliadača:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>Hladať vnútorne</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>Pridať externý</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>Meno</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>Priezvisko</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>Email</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Potvrdiť odhlásenie</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Chcete naozaj odísť?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Akcia</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Demo miestnosť</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Demo čas</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Časovač stretnutia</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>This room is a demo room. You will be automatically logged off in:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Moderované</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Prosím počkajte na vstup moderátora do miestnosti</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>OK</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Prichádzajúce zdieľanie plochy</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>Prichádza nové zdieľanie plochy od tohto používateľa:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Začať zdieľanie</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Pridať nové stretnutie</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Miestnosť</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Miestnosť</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderácia</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Moderovať používateľov</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Moderovať miestnosti</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Chcete aby sa tento používateľ stal moderátorom spoločnosti?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Prosím zvoľte spoločnosť pred pridaním používateľa</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Spoločnosť - moderátor</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Chcete naozaj vymazať tohto používateľa zo spoločnosti?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>Tento používateľ je moderátor</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>Tento používateľ nie je moderátor</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Chcete aby tento používateľ bol moderátorom tejto spoločnosti?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Pridať alebo zmazať používateľov/miestnosti zo spoločnosti</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Chcete naozaj zmazať túto nahrávku?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Chcete naozaj zmazať tohto používateľa z vašej spoločnosti?</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>Nemôžte zmazať vlastného používateľa</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>Táto metóda potrebuje administrátorský prístup</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>Nie je žiadne stretnutie spojené s týmto ID</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>Toto je administrátorsky/moderátorsky účet. Môžte zmeniť tento účet cez administračný panel.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>Pre dokončenie registrácie kliknite na nasledujúci odkaz</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Kliknite pre overenie vášho emailu</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Žiadny používateľ sa nenašiel pre tento hash</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Tento používateľ je už aktivovaný</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Úspešne ste aktivovali svoj účet</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Prihlásiť sa teraz</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Your account is not activated. Please use the link in the email you received during registration.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>You have successfully signed up. An email with a verification code will be sent to your mailbox.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Odobrať moderovanie tomuto používateľovi</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Udeliť právo moderovať tomuto používateľovi</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>Používateľ</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Prístup k tabuli</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderátor</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Prosím vyberte používateľa zo zoznamu pre udelenie práva moderovať/ mať prístup k tabuli alebo videa</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>Tento používateľ už je moderátorom</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>Nemôžte seba zbaviť práva moderovať</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Povoliť tomuto používateľovi publikovať audio/video</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Odobrať audio/video používateľovi</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>Mám otázku</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>Chcem kresliť na tabuľu</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>Chcem zdieľať svoje audio/video</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>Ste moderátorom tejto miestnoti</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>Máte právo kresliť na tabuľu</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>Máte právo zdieľať svoje audio/video</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Správa moderátorovi</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>Používateľ</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>sa chce spýtať otázku</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>chce písať na tabuľu</value>
+  </string>
+  <string id="695" name="695">
+    <value>chce zdieľať svoje audio/video</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>Musíte počkať pokiaľ moderátor vstúpi do miestnosti</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Zrušiť</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Uložiť</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Deň</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Mesiac</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Rok</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Nahrať súbor</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Pridať súbor</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Obnoviť</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Kôš</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>Moje súbory</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Súbory v miestnosti(verejné)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Pridať súbor</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Pridať zložku</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Zmazať zložku</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Zmeniť meno</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>Nový priečinok</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Naozaj chcete zmazať túto položku?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Hľadať</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Hľadať</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Otvoriť dokument</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Zobraziť všetky súbory</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Zatvoriť dokument</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Zmazať súbor</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>Nemáte právo používať tabuľu</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Vlastnosti dokumentu</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Začať Java</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Začať Flash</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>Používateľ chce zdieľať svoju plochu. Zobraziť?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>Práve zdieľate svoju plochu</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Zdieľanie</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>Už zdieľate svoju plochu</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Prehliadač plochy</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Zastaviť zdieľanie</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Zdieľač plochy</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Kliknite Štart pre zdieľanie plochy</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Začať zdieľanie</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Pauza</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Vyberte plochu zdieľania:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Zmeniť šírku</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>Zdieľač ukončil stretnutie</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Zmeniť výšku</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Šírka:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Výška:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Spojenie zavreté serverom</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Zrušiť</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Začať Java</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>Ak zavriete toto stretnutie, nebudete môcť reštartovať prehliadač pre toto stretnutie</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Potvrdiť zavretie okna</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Zdieľať plochu</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>nahrať stretnutie</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Spolu prehliadanie</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Prosím použite Internet Explorer pre Windows</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Predchádzajúce</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Ďalšie</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Obnoviť</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Domov</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Načítať</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Pridať túto stránku ako domovskú v mojom profile</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Testovať nastavenie</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Otestovať audio alebo video nastavenie pred vstupom do miestnosti môžte nahratím stretnutia na pár sekúnd. Môžte si potom prehrať nahrávku a skontrolovať svoje audio/video.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Tento test nezobrazovať viac</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Zrušiť</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Začať stretnutie</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Nepýtať sa znova</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>Môžte prejsť bez testovania ak neplánujete zverejniť svoje audio/video.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="767">
+    <value>Level-meter</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Stlačte štart</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Začať konferenciu</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Začať konferenciu</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Vybrať miestnosť</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Skontrolovať nastavenie</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Začať konferenciu</value>
+  </string>
+  <string id="774" name="start view">
+    <value>Ako konferencovať:</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Začať nahrávanie</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Nezobrazovať udio/video test pred vstupom do miestnosti</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Verejné miestnosti</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Verejné miestnosti sú prístupné pre všetkých používateľov</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Súkromné miestnosti</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Súkromné miestnosti sú prístupné len pr používateľov určitej spoločnosti.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>Moje miestnosti</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Rooms in this section are created for personal usage. There are some standard rooms plus the ones that are created through the calendar and have a start and an end date. The rooms created via the calendar are only listed in this section as long as they are valid.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>Musíte byť moderátorom pre vykonanie tohto úkonu</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Požiadať o moderáciu</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Požiadať o prístup k tabuli</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Požiadať o audio/video prístup</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>Hash tejto miestnosti už bol použitý</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>ŠTART</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>VÝCHOD</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Chcete naozaj odísť?</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Východ z konferencie</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Miestnosti</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Vybrať miestnosť pre stretnutie</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>There is an unsaved event in the Calendar. Please save it or remove it.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Please add at least one attendee for your meeting</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Do you really want to delete this event?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Warning</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Add event</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>Day</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>Week</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>Month</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Description</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Attendees</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>Clickjobfair, your web conferencing platform. You can either follow the 1-2-3 steps to enter a conference room directly or you choose the Calendar to set up a meeting.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Plan a meeting</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>To setup a conference you can add a new event in the calendar</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Need help?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Restricted</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Search</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Add</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>There is no user selected</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Add Attendee</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Save</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Delete</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Event details</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Default moderators</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Name</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>Email</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Add new default moderator</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Is super moderator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>If the room is moderated, any users with a moderator or administrator level access are automatically set to moderator when they enter the room</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>A super moderator is always a moderator when they enter a room</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Make user a super moderator</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Remove super moderator from user</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>If you add an organisation to the room only users of that organisation have access to it</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderation</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitations</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organisation</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Ste si istý?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Naozaj chcete zmazať túto položku?</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>Nie je žiadny používateľ označený</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Pridať nového moderátora</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Do you want to add the super moderation flag for this user?</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Do you want to remove the super moderation flag for this user? You need to save the room object to save these settings.</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>This user is a super moderator. You cannot remove the moderation flag.</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Chcete naozaj vymazať?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Vymazať?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Pani</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Vlastnosti</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Zobraziť pozíciu kurzora</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Zdieľať audio cez SIP applet</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Zdieľať audio cez SIP a video cez Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Napasovanie</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>Vidieť plochu</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>Používateľ</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>chce zdieľať svoju plochu. Zobraziť?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Zavrieť</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>Stretnutie bolo zavreté zdieľajúcim používateľom</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pauza</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>Nové zdieľanie plochy</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimalizovať</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximalizovať</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Nahrávacia časová os</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>Moje nahrávky</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Verejné nahrávky</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Meno</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Dĺžka</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Dátum</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value></value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>Stiahnuť</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Hlavné - video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Nahrávanie</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>Môžte zdieľať a nahrávať svoju plochu súčasne.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Začať nahrávanie</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Ukončiť nahrávanie</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Stiahnuť FLV-súbor</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Miestnosť</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Prehrať</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>Používateľ má zapnutý mikrofón</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Ukončiť zdieľanie</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Povoliť používateľovi otázky</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Vypnúť - aby vás používatelia nevyrušovali</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Práva</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Stiahnuť ako AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Základná videoplocha</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Audio iba</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>Nastala chyba počas nahrávania</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>Nahrávka nie je ešte hotová na prezeranie</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Zápis:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Správa</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>OK</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP applet nie je pripravený</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP nastavenia</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP nastavenia pre každého používateľa</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP používateľ</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>SIP heslo</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>SIP auth ID</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>Prihlásenie do SIP brány zlyhalo</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>Prihlásenie do SIP brány zlyhalo. Kontaktujte administrátora</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Pripájanie na SIP bránu...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Pripájanie na SIP bránu...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Show log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log messages from post recorder process</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP applet správa</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>SIP applet nie je pripravený. Potvrďte applet a kliknite OK</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Získať moderáciu</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Uložiť zmeny</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointment has been changed. Do you want to save these changes?</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>Pre prístup k ostatným nahrávkam sa prihláste do $APP_NAME applikácie</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Vybrať používateľa pre toto video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Používatelia k dispozícií</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>Ste moderátorom rozhovoru. Vy rozhodujete kto môže hovoriť.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Začať nahrávanie</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Ukončiť nahrávanie</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>Nahrávanie rozhovoru už prebieha.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>Nahrávanie je zastavené alebo ešte nezačalo.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>Nahrávanie rozhovoru už prebieha!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Zrušiť</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>Spracovanie rozhovoru zaberie 5 minút za každú 1 min nahrávky. Súčasný status spracovania je:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>Nemôžte premiestniť súbor do jeho podsúboru!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Zmazať všetky objekty na tomto slide iba!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Iba adresa zadaná do statusového riadku sa zobrazuje účastníkom!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Spraviť tímové miestnosti</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Vybrať používateľov pre tímové miestnosti!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>Môžte vybrať používateľov tu a vytvoriť miestnosti pre nich. Vybraní používatelia budú automaticky preradení do nich.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Meno</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Prihlásenie</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Používatelia pre novú tímovú miestnosť:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Vytvoriť tímovú miestnosť</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Zrušiť</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Vyberte aspoň 1 používateľa pre tímovú miestnosť!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Pridať používateľa pre tím</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Odstrániť používateľa z tímovej miestnosti</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Typ miestnosti</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>This is a Team-Room, you can send the Team-Moderator a message if you need help. You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>1) Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="room-videos">
+    <value>Videá</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share Screen/Record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is Moderator, he can do anything! [Screen Sharing]</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/Deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose &lt;i&gt;Insert&lt;/i&gt; from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;&lt;br/&gt;&lt;br/&gt;&lt;u&gt;&lt;FONT color='#0000CC'&gt;&lt;A HREF="http://www.youtube.com/watch?v=Ukqa01O48uI" TARGET="_BLANK"&gt;watch the demo&lt;/A&gt;&lt;/FONT&gt;&lt;/u&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about Copy and Paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Kick user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/spanish.xml b/src/main/webapp/languages/spanish.xml
new file mode 100644
index 0000000..17908d8
--- /dev/null
+++ b/src/main/webapp/languages/spanish.xml
@@ -0,0 +1,4825 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Conferencia</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Reunión</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Eventos</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Ajustes</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Perfil</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Administración</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Detener</value>
+  </string>
+  <string id="8" name="record">
+    <value>Grabar</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>No hay ningún archivo disponible</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Grabado por el profesor</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Usuarios conectados:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Iniciar conferencia</value>
+  </string>
+  <string id="13" name="myname">
+    <value>Mi nombre</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>Videoconferencia</value>
+  </string>
+  <string id="15" name="import">
+    <value>Enviar un archivo</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Actualizar la lista</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>Marcar como archivo principal</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>Nueva encuesta</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>Nueva encuesta para la conferencia</value>
+  </string>
+  <string id="20" name="question">
+    <value>Pregunta:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Tipo de Encuesta:</value>
+  </string>
+  <string id="22" name="create">
+    <value>Crear</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Información: cada usuario conectado recibe un mensaje con la nueva encuesta.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Crear encuesta</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Cancelar</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Sí/No</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Valor numérico [1-10]</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Encuesta</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Se necesita ser moderador para crear una encuesta.</value>
+  </string>
+  <string id="30" name="vote">
+    <value>Su voto ha sido registrado</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Ya ha respondido a la encuesta con anterioridad</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Votar</value>
+  </string>
+  <string id="33" name="answer">
+    <value>Su respuesta:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Sí</value>
+  </string>
+  <string id="35" name="no">
+    <value>No</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>Desea saber:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Resultados</value>
+  </string>
+  <string id="38" name="question">
+    <value>Pregunta:</value>
+  </string>
+  <string id="39" name="results">
+    <value>Resultados:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Respuestas:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>No hay encuestas</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Votar</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Reunión (máx 4 puestos)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Conferencia (máx 50 puestos)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Tipo</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Otros puestos</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Ya fue seleccionado.</value>
+  </string>
+  <string id="48" name="enter">
+    <value>Entrar</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>El moderador ha abandonado la reunión.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Información del sistema</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Seleccionar dispositivo</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Seleccionar cámara:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Seleccionar micrófono:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>Aceptar</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>Cancelar</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Necesita reconectarse</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Editar configuración</value>
+  </string>
+  <string id="58" name="course">
+    <value>Curso:</value>
+  </string>
+  <string id="59" name="language">
+    <value>Idioma:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>Aceptar</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>Cancelar</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Borrar pizarra</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>¿Desea limpiar la pizarra antes de añadir una nueva imagen?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>No volver a preguntar</value>
+  </string>
+  <string id="65" name="no">
+    <value>no</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Editar configuración</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Requerir confirmación antes de limpiar la pizarra</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Información del usuario</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Limpiar la pizarra</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Deshacer</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Rehacer</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Seleccionar un objeto</value>
+  </string>
+  <string id="73" name="text">
+    <value>Texto</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Pintar</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Trazar una línea</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Subrayar</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Rectángulo</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Elipse</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Flecha</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>Borrar el ítem escogido</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Solicitar ser moderador</value>
+  </string>
+  <string id="82" name="apply">
+    <value>Solicitar</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>Cancelar</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Tengo una pregunta</value>
+  </string>
+  <string id="85" name="close">
+    <value>Cerrar</value>
+  </string>
+  <string id="86" name="italic">
+    <value>Itálica</value>
+  </string>
+  <string id="87" name="bold">
+    <value>Negrita</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>En espera...</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>Un usuario solicita la moderación; puede concederle acceso sólo a la pizarra o cambiar por completo el rol de la moderación. Usuario:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>Aceptar</value>
+  </string>
+  <string id="91" name="reject">
+    <value>Denegar</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>Cancelar</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Enviando la solicitud a los siguientes usuarios</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Aceptado</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Rechazado</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Cambiar de moderador</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Usted no es moderador</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Moderador:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>Lo sentimos, pero esta sala está llena. Inténtelo más tarde</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Elipse</value>
+  </string>
+  <string id="101" name="close">
+    <value>Cerrado</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>error en la introducción de datos</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>el nombre de usuario debe contener al menos 4 caracteres</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>la clave de usuario debe contener al menos 4 caracteres</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>Este nombre de usuario ya existe</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>Este email ya está registrado</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>Error del sistema, por favor contacte con el administrador</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Entrar</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Usuario:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Contraseña:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Idioma</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Entrar</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Registrarse</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Usuario:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Contraseña:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Contraseña (otra vez):</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Nombre:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Apellidos:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>Correo electrónico:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>País:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Registrarse</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>Cancelar</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>¿No está registrado?</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>Inicio</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Usuarios</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Grupos</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Organizaciones</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Salas de Conferencias</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>Público</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>Organización</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>Entrar</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Inicio</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Contraseña</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Escribir de nuevo</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Nombre</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Apellidos</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>Correo Electrónico</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Fecha nacimiento</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Dirección</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>Código/Población</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>País</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Más información</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Datos de Usuario</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>Guardar</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Guardar</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>ID</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>Inicio</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>Nombre</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>Apellido(s)</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>Mostrar siguiente</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>Mostrar anterior</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>Eliminar registro</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>Cancelar</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>Borrar</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>Nuevo registro</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>Actualizar registro</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>Borrar registro</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>Estado</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>desactivado</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>activado</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>Organizaciones</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>Calendario</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>Cerrar</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>ID</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>Nombre</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>Usuario</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>Moderador</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>Administrador</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>Nivel de usuario</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>Organización</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>nombre</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>Añadir organización</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>Añadir organización</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>Cancelar</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>Añadir</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>Eliminar organización</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>Usuario</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>Añadir usuario</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>Eliminar usuario</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>Añadir usuario</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>Buscar usuario</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>Buscar</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>Usuario</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>Organización</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>Entrar</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Salas</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Salas de Conferencia</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>ID</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Nombre</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>pública</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>Organizaciones</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Salas de Conferencia</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>Nombre</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>Tipo</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>Pública</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>Comentario</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>Guardar y exportar</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>cargar</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>Guardar como</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>Archivo</value>
+  </string>
+  <string id="201" name="files">
+    <value>archivo</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>Cancelar</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>Guardar</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>Error</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>Cargando</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>Objetos cargados</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>Sincronizando clientes, espere un momento.</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Cargando datos de imagen</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>Sincronizando. Espere, por favor.</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>Limpiar la pizarra</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>limpiar la pizarra, toda la información de la pizarra se perderá</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Confirmar antes de cargar un archivo</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Enviar invitación</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Enviar invitación</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Tema</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Destinatario</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Mensaje</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Enviar</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>cancelar</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>enviar</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Datos de usuario</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>Su nombre para esta conferencia</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>Nombre (apodo)</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>Nombre</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>Apellido</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>Email</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>Idioma</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>Entrar</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Cargando</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Cargando datos, espere un momento</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Contraseña errónea</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Por favor introduzca dos veces las misma contraseña con un mínimo de 4 caracteres</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Correo inválido</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Usted ha introducido una dirección no válida de correo electrónico</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>El registro se ha completado con éxito</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Su cuenta ha sido creada, puede ingresar desde este momento</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>No puede compartir su escritorio en este momento. Alguien más ya está compartiendo su escritorio.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Compartición no permitida</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Compartir/grabar escritorio</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Problemas de conexión: Su ancho de banda es insuficiente y se perderá la información. Si el mensaje se repite con frecuencia solicite al moderador reducir la calidad de imagen y audio.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Escritorio de:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Dibujar</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Documento</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Chat</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Archivos</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Miembros</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Descargar el documento original</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>Descargar el documento en pdf</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Subir un archivo a la pizarra</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Configuración</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Arrastrar este objeto</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Ajustar el tamaño del objeto</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>de</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>Ir a la primera página</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>Ir a la página anterior</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>Ir a la página siguiente</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>Ir a la última página</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Disminuir Zoom</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Aumentar Zoom</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Sr.</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Sra.</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Configuración</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Clave</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Configuración</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Clave</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>última actualización</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>actualizado por</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>comentar</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>Valor</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>de</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Usuarios</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>Eliminar usuario de la organización</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>Eliminar</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>Este usuario ya es miembro de la organización</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>Noticias</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Enlaces rápidos</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Ir a la (Vídeo)Conferencia</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Ir al Auditorio</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Ayuda y Soporte Técnico</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Enviar "bug"</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>más</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Web del Proyecto (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>Lista de correo del Proyecto (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Recordar</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Contenido</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>Mi página de inicio</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>Reuniones programadas</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>Eventos programados</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Reuniones públicas</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Reuniones privadas</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Eventos públicos</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Eventos privados</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Contenido público</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Contenido privado</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Contenido personal</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value>...</value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Moderación</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Tengo una pregunta</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Encuestas</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Seleccione un archivo</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Configuración</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Cámara y micrófono</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Configuración de la pizarra</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Salir</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Regresar a las salas</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Salir</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>¿Ha olvidado su contraseña?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Resetear contraseña</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>Por email</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Por inicio de sesión</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>Su email</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Su inicio de sesión</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Enviar correo con enlace de restablecimiento</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>No se ha encontrado esa dirección de correo. Asegúrese de introducir la misma dirección que utilizó al crear la cuenta</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Escriba o su correo o su nombre de usuario</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>No hay ningún usuario con ese nombre</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>Se le ha enviado un correo con un enlace especial. Si no aparece este correo revise la configuración de filtros de spam de su servidor y reenvée este correo nuevamente.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Error</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Mensaje</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>No se encontró al usuario (método de generación de claves incorrecto).</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Generar contraseña</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Inicio</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>cambiar contraseña</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>nueva contraseña</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>vuelva a escribir la contraseña</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>Las contraseñas introducidas no son iguales.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>Escriba 4 ó más caracteres. Distingue mayúsculas de minúsculas</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>La contraseña ha sido cambiada, ahora puede iniciar sesión.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>Aceptar</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Error desconocido. Envíe esta información al administrador del sistema.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>No se encontró al usuario</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Contraseña incorrecta</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Ha salido del sistema</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Registro desactivado.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>Correo incorrecto</value>
+  </string>
+  <string id="340" name="registration">
+    <value>nombre de archivo duplicado, por favor seleccione otro</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>el nombre del archivo es demasiado corto</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>No se pudo guardar la dirección</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>El usuario fue añadido, sin embargo deberá estar al menos en una organización para poder iniciar la sesión.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Nueva grabación</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>No se encontró un campo en este FieldId.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>No se encontró una etiqueta para este campo.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Se necesita autorización del administrador</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Editor de idioma</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Idioma</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>ID de la etiqueta</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Nombre de la etiqueta</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Valor</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Valor de los campos</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>Nombre</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>Valor de la etiqueta</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>ID de la etiqueta</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>Ha eliminado la etiqueta pero no el campo. No se puede eliminar un campo ya que puede tener etiquetas en otros idiomas.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>ID de la etiqueta incorrecto. Su FieldLanguagesvalues_Id no se encontró en la base de datos.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Usted no puede eliminar este campo, sólo las etiquetas. No hay una etiqueta cargada por el momento o no se encuentra seleccionada ninguna (puede que no exista en el idioma seleccionado).</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>exportar</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Necesita cerrar la sesión para ver los cambios.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Añadir nuevo idioma</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>eliminar idioma</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Añadir nuevo idioma</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Nombre</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>añadir idioma</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Copia de seguridad</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>ir al inicio</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>anterior</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>siguiente</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>ir al final</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>usuario habla (Haciendo clic aquí usted podrá dar audio exclusivo o silenciar el micrófono de los demás)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>encender o apagar sonido</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>Sistema</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Su configuración</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>Saludos,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Editar perfil</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Nuevos mensajes:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Subir imagen</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Datos de usuario - Exportar</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>Deben existir todas las organizaciones previamente</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>Iniciar la exportación</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>Por organización</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>Iniciar la exportación</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Datos de usuario - Importar</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>Seleccione archivo xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>importar</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Exportar a XML - Estos archivos pueden ser usados para: 
+		- Contribuir en el proyecto 
+		- Importarlos en otro sistema 
+		- Copia de Respaldo (Backup)
+		- Personalización 
+		- Colocarlo en el directorio de idiomas para la próxima instalación.</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Seleccione un archivo de idioma que se importará. Configure correctamente el idioma en el menú desplegable (no importa el nombre que tenga el archivo ya que será importado de todos los modos).</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>importar - seleccionar archivo</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Guardar como...</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Nombre:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Comentario:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>guardar</value>
+  </string>
+  <string id="395" name="record">
+    <value>Grabaciones</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Visor de grabaciones</value>
+  </string>
+  <string id="397" name="record">
+    <value>Grabaciones de salas públicas y privadas</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Usuarios:</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Unido:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value/>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Usuarios en la sala:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>actualizar</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>La sala esta llena. Por favor, inténtelo más tarde.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>Pulse sobre una sala para ver los detalles</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Conversar con los usuarios de esta sala:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Sala:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Usuarios en esta sala:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>desde:</value>
+  </string>
+  <string id="409" name="record">
+    <value>reproducir grabación</value>
+  </string>
+  <string id="410" name="record">
+    <value>Duración:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Fecha:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Modo de grabación: no puede cambiar ningún valor ya que se trata de un archivo grabado.</value>
+  </string>
+  <string id="413" name="record">
+    <value>Reproducir esta grabación</value>
+  </string>
+  <string id="414" name="record">
+    <value>Reproducir / Pausa</value>
+  </string>
+  <string id="415" name="record">
+    <value>Iniciar grabación</value>
+  </string>
+  <string id="416" name="record">
+    <value>Detener grabación</value>
+  </string>
+  <string id="417" name="record">
+    <value>Grabación:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>Actualmente alguien se encuentra grabando:</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Grabando por el usuario:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>cancelar</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>La grabación será cancelada y no se guardará.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>reanudar</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Cerrar ventana y reanudar grabación</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>Cambiar el color de línea</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Seleccionar color</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Deshabilitar / Habilitar color de línea</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>Cambiar color de relleno</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Deshabilitar / Habilitar color de relleno</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Cambiar grosor de línea</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>Cerrar</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>cambiar tamaño de letra</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Eliminar grabación</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Invitado</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>Por:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Nombre</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Sala</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Fecha</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>cancelar</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>iniciar</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Nombre</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Fecha</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Eliminar registro (log) de chat en el servidor</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Chat</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>enviar mensaje</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Emoticones</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Emoticones</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Seleccionar dispositivos</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Audio y vídeo</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Sólo audio</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Sólo vídeo</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>Sin audio/vídeo (Imagen fija)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>No se transmitirá audio/vídeo desde su equipo. En su lugar se mostrará la imagen de su perfil. Seleccione esta configuración si tiene problemas con el ancho de banda de internet.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>LU</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>MA</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>MI</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>JU</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>VI</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>SÁ</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>DO</value>
+  </string>
+  <string id="460" name="calendar_dayname_MondayLabel">
+    <value>Lunes</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Martes</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Miércoles</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Jueves</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Viernes</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Sábado</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Domingo</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>S#</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Número de semana de calendario</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>Enero</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>Febrero</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>Marzo</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>Abril</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>Mayo</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>Junio</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>Julio</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>Agosto</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>Septiembre</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>Octubre</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>Noviembre</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>Diciembre</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Calendario</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Participantes</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Mostrar la configuración</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Ancho | Alto</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Contenedor de vídeo</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Contenedor de moderación</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Contenedor de pizarra</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Activado</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Ancho | Alto</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Contenedor de archivos, chat, participantes</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Activado</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Ancho | Alto</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>El moderador se ha retirado por lo que nadie está realizando una presentación en estos momentos. Puede solicitar la moderación o esperar.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>No hay moderador en esta sala, pero sí participantes. Puede solicitar la moderación o esperar.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Comentario de $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Invitación</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Mensaje del usuario:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Mensaje:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Pulse en este enlace para poder participar en la conferencia:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Pulse aquí para entrar a la sala</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>Si tiene problemas con el enlace, le sugerimos que copie y pegue el siguiente texto en su navegador:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>Registro $APP_NAME</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Sus datos de usuario:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Inicio:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Contraseña:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>Correo:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME - Equipo</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME - Registro</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - Resetear contraseña</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Pulse en el siguiente enlace para solicitar una nueva contraseña:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Pulse aquí para introducir una nueva contraseña</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>Si tiene problemas con el enlace, le sugerimos que copie y pegue el siguiente texto en su navegador:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME - Nueva Contraseña</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Por favor, introduzca una fecha válida con el formato dd.mm.yyyy Ejemplo: 24.12.2008</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Por favor, introduzca una dirección de correo válida</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Por favor, introduzca un número decimal. Ejemplo: 1.00 (use punto y no la coma)</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Por favor, introduzca un número entero</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Por favor, introduzca un número de teléfono válido. Ejemplo: +593 947 225 200</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Por favor introduzca una hora válida en el formato hh:mm. Ejemplo: 12:23</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Contraseña protegida</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Contraseña</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Período de validez</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Sin límite</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Período</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Una vez</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Válido desde:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Válido hasta:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Invitación a $APP_NAME</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>No existe una invitación disponible con este código.</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>Esta invitación ya fue usada y no puede volverse a utilizar.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>El código de invitación no es válido.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Contraseña:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Verificar contraseña</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Contraseña incorrecta</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Navegador</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Sincronizar audio/vídeo</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>El login es correcto, pero la sesión en la que intenta entrar no está activa o no fue guardada en el servidor. Tiene que iniciar una nueva sesión.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>El ID de la sesión no está iniciado o no tiene permisos de administración. La pasarela SOAP necesita un usuario con permisos de administración para añadir nuevos usuarios.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>Esta sesión no tiene datos del usuario remoto conectado. Quizás no llamó a la pasarela SOAP antes de acceder a la aplicación o está utilizando un ID de sesión incorrecto</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>El grabador actualmente está en fase beta</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>eje-x</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>eje-y</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>a</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>anchura</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>h</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>altura</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Cambiar transparencia</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Abrir el navegador</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Cerrar el navegador</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>Se ha perdido la conexión con el servidor. Necesita recargar la aplicación y/o comprobar su Red.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Puntero</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Sincronizando</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Sincronizando usuarios. Por favor, espere.</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Descargar como SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Descargar como PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Descargar como JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Descargar como PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Descargar como TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Recuerde:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Categoría:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Repetición:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>ninguno</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Localización:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Inicio</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>Final</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Título:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Comentario:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Invitar a personas</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Diario</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Mensual</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Anual</value>
+  </string>
+  <string id="578" name="alert">
+    <value>La fecha final va después de la fecha de inicio</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Por favor, ponga un título</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Active esta opción si la escritura de su idioma va de derecha a izquierda</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Panel de control</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Ver eventos o encuentros grabados</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Videoconferencia - Reúnase con 4 ó más (hasta 16) usuarios&lt;br/&gt;todos tendrán acceso de audio y vídeo.</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Auditorio - Reúnase con hasta 200 participantes&lt;br/&gt;sólo el moderador tendrá audio y/o vídeo</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Crear usuarios, salas, organizaciones&lt;br/&gt; + cambios en la configuración</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Usuarios en la sala</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Inicio</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Cargando documento. Aguarde hasta que todos los clientes estén sincronizados.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Subida completa. Convirtiendo documento...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Iniciar Subida</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Diálogo de subir e importar. Por favor, seleccione un archivo de su disco.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Cancelar</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Seleccionar archivo</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Conexiones</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Valor</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>ID de flujo</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Inicio</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Conectado desde</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Sala / Ámbito</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Expulsar al usuario</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Expulsar</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>¿Está seguro de querer expulsar a este cliente de la conexión?&lt;br/&gt; El cliente será expulsado de la sala, pero podrá volver a autenticarse de nuevo.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Su sesión ha sido cerrada por el administrador o el moderador.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Teléfono</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>El usuario es el moderador de esta sala</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>El usuario tiene permisos para dibujar en la pizarra</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Re) Iniciar audio/vídeo o cambiar la configuración de dispositivos</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Permitir a este usuario dibujar en la pizarra</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Quitar permisos para dibujar en la pizarra</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Usuarios</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Archivos</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Pizarra</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Chat</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Su cuenta está asignada a varias organizaciones. Seleccione aquella con la que quiera entrar en esta sesión.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>Esta sala está completa. Inténtelo más tarde.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Tipo de sala</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Sala para citarse</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Hora del servidor</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - Recordatorio</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Mensaje del usuario:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Mensaje:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Pulse en el enlace para participar en la (Vídeo)Conferencia:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Pulse aquí para entrar en la sala</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>Si tiene problemas, copie y pegue este enlace en su navegador:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>búsqueda interna</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>Añadir externos</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>Nombre</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>Apellidos</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>E-mail</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Confirmar la salida</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>¿Está seguro de que desea salir?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Acciones</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Sala de demostración</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Hora de la demostración</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Horario del encuentro</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>Esta es una sala de demostración. Para desactivar este aviso, debería conseguir una sala privada para uso propio o bien configurar su propio Servidor. Será desconectado automáticamente en:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Moderado</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Por favor, espere hasta que el moderador entre en la sala. El moderador puede ser un profesor, el administrador o el creador de esta sala.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Aceptar</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Recibiendo el escritorio compartido</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>Hay una nueva recepción de escritorio compartido del usuario:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Comenzar a compartir</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Añadir un nuevo encuentro</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Sala de encuentros</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Sala de eventos</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderación</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Moderar usuarios</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Moderar salas</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>¿Desea convertir a este usuario en moderador de esa organización?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Por favor, seleccione una organización antes de intentar incluir a un usuario en la misma.</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organización - Moderador</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>¿Realmente desea borrar a este usuario de la Organización?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>Este usuario es moderador</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>Este usuario no es moderador</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>¿Desea que este usuario deje de ser moderador de esta organización?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Añadir o borrar usuarios y/o salas en su organización</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>¿Realmente quiere borrar este registro?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>¿Realmente quiere borrar a este usuario de su organización? Sólo se borrará la conexión entre el usuario y su organización. En realidad, para borrar al usuario debe ingresar al Panel de administración.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>¡Vd no puede borrarse a sí mismo!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>¡Para usar este método necesita de una cuenta de administrador!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>No hay ninguna sesión asociada a este ID.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>Esta es una cuenta de administrador o de moderador. Sólo puede editar esta cuenta utilizando el Panel de administración.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>Para completar su registro, haga el favor de pulsar en el siguiente enlace. Otra opción es copiar la URL en la barra de su navegador.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Pulse para verificar su correo</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>No se ha encontrado un usuario para ese algoritmo Hash.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>¡Este usuario ya está activado!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>¡Ha activado su cuenta con éxito!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Ingrese ahora</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Su cuenta no está activada. Utilice en primer lugar el enlace que hay en correo recibido al finalizar el proceso de registro.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>Se ha registrado con éxito. Le hemos enviado un correo con un código de verificación. Por favor, revise su cuenta de correo.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Quitar el rol de moderador a este usuario</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Dar permisos de moderación a este usuario</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>Usuario</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Acceso a la pizarra</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderador</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Moderación: Por favor, seleccione cualquier usuario de la lista para darle acceso a la pizarra, moderación o vídeo.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>Este usuario ya es moderador, así que automáticamente tiene permisos para dibujar.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>¡Este es Vd! No puede quitarse los permisos de moderación a sí mismo.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Permitir a este usuario publicar su audio/vídeo</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Borrar el audio/vídeo de este usuario</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>Desearía ser moderador de esta sala</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>Desearía utilizar la pizarra</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>Desearía compartir mi audio/vídeo</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>Usted es el moderador de esta sala</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>Tiene permisos para dibujar en la pizarra</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>Tiene permiso para compartir su audio/video</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Mensaje al moderador</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>El Usuario</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>Desearía ser moderador. Use los iconos de estado próximos al usuario en la Lista de Usuarios para agregar o remover el permiso de moderación.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>desearía utilizar la pizarra. Utilice los iconos que hay junto al nombre del usuario (en la Lista de Usuarios) para agregar o quitar los permisos correspondientes.</value>
+  </string>
+  <string id="695" name="695">
+    <value>desearía compartir su audio/vídeo. Use los iconos que hay junto al nombre de usuario (en la Lista de Usuarios) para agregar o quitar los permisos para compartir audio/vídeo.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>Debe esperar hasta que un moderador ingrese a la sala.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Cancelar</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Guardar</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Día</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Mes</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Año</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Subir archivo</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Añadir carpeta</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Actualizar</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Papelera</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>Mis archivos (Dispositivo personal)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Archivos de la sala (Dispositivo público)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Agregar archivo</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Agregar carpeta</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Borrar carpeta</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Editar nombre</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>Nueva carpeta</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>¿Está seguro de que quiere borrar este ítem?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Buscar</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Buscar</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Abrir documento</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Mostrar todos los archivos (Vista de árbol)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Cerrar documento</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Borrar archivo</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>No tiene permisos para escribir o dibujar en la pizarra. Debe ser moderador o, al menos, tener permisos de edición de la pizarra. Solicíteselo a un moderador.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Propiedades</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Iniciar Java</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Iniciar Flash</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>Un usuario desea compartir su escritorio. ¿Desea visualizarlo?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>Actualmente está compartiendo su escritorio. Para dejar de hacerlo, pulse en el botón Stop en el cliente utilizado.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Compartiendo sesión</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>¡Ya está compartiendo su escritorio!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Visor de escritorio</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Salir</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Compartiendo el escritorio</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Pulse Iniciar para publicar su escritorio</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Iniciar la compartición</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Pausar la compartición</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Seleccione el área de la pantalla:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Cambiar anchura</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>!Ha finalizado esta sesión!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Cambiar altura</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>Desplazamiento eje X</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Desplazamiento eje Y</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Anchura:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Altura:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>La conexión ha sido cerrada por el Servidor</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Cancelar</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Iniciar Java</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>Si cierra esta sesión completamente, no será posible reiniciar el visor durante esta sesión.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Confirmar el cierre de la sesión</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Compartir escritorio</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Grabar sesión</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Co-navegación</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Hum... Firefox en windows no muestra la co-navegación con claridad. Por favor, utilice otro navegador o cierre esta funcionalidad.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Previo</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Siguiente</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Recargar</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Inicio</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Cargar</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Configurar en su perfil este sitio como predeterminado.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Probar configuración</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Compruebe la configuración de su micrófono y/o cámara antes de entrar en la sala. Para ello grabe durante algunos segundos y reprodúzcalo.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>No volver a mostrar este test</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Cancelar</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Iniciar</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>No volver a preguntar</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>Puede continuar sin hacer la comprobación si no desea publicar la imagen y/o el sonido. Los participantes sin audio o sin vídeo pueden en todo caso utilizar la pizarra, compartir su escritorio o enviar mensajes utilizando el chat.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="test setup">
+    <value>Medidor de Nivel</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Presione Iniciar</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Iniciar Conferencia</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Iniciar Evento</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Ir a la sala</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Comprobar Config.</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Iniciar Confer.</value>
+  </string>
+  <string id="774" name="start view">
+    <value>Instrucciones Conferencia:</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Iniciar Grabación</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>No mostrar el test de grabación de audio /vídeo antes de entrar en una Conferencia</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Salas públicas</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Las salas públicas son accesibles a todos los usuarios.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Salas privadas</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Las salas privadas son accesibles sólo para los usuarios de la misma organización.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>Mis salas</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Las salas en esta sección son para uso personal. Se crean utilizando el calendario y tienen una fecha de inicio y de finalización. Sólo se muestran en esta sección durante el intervalo temporal de validez.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>Tiene que ser moderador para ejecutar esta acción.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Solicitar la moderación</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Solicitar acceso a la pizarra</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Solicitar acceso a la cámara/micrófono</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>La autenticación de esta sesión ya ha sido utilizada. No puede hacerse dos veces.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>INICIAR</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>SALIR</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>¿Desea realmente salir? Es conveniente que antes borre los documentos subidos, la pizarra o el historial del chat.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Salir de la conferencia</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Salas</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Seleccione una sala</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>Hay un evento sin guardar en el calendario. Por favor, guárdelo o bien bórrelo.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>¡Añada, al menos, a un participante!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>¿Realmente desea borrar este evento?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Aviso</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Añadir evento</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>día</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>semana</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>mes</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Descripción</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Asistentes</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, su Plataforma Web de Videoconferencia. Sólo siga las instrucciones, presione el botón para iniciar inmediatamente o vaya al Calendario para programar un Encuentro más adelante.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Progr. Encuentro</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>Para planificar una conferencia, añada un nuevo Evento en el Calendario. Para cada Evento se creará automáticamente una sala de (vídeo)conferencia. Usted y el resto de asistentes recibirán un correo con un enlace de la sala.&lt;br/&gt;&lt;br/&gt;Puede escoger entre diferentes tipos de salas con diferentes diseños y sistemas de moderación. También puede escoger entre diferentes tipos de notificación de correo que se envían en cada evento del calendario.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>¿Necesita ayuda?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Restringido</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Buscar</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Añadir</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>No hay ningún usuario seleccionado. Seleccione primero un ítem de la lista y pulse en Añadir.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Añadir asistente</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Guardar</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Borrar</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Detalles del Evento</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Moderadores por defecto</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Nombre</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>Email</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Añadir nuevo moderador por defecto</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>¿Es supermoderador</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>Si la sala está moderada, quien sea ya moderador seguirá siéndolo. Si no desea que sea así, y sólo quiere que determinado usuario sea el moderador, utilice la opción de moderador por defecto.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>Un supermoderador es siempre el moderador de una sala cuando entra en ella. Además, nadie puede quitarle la marca de moderación</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Aplicar supermoderación al usuario</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Quitar supermoderación al usuario</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>Si añade una organización a la sala, sólo los usuarios de dicha organización tendrán acceso a la misma (esto sólo es válido si la marca de Pública está configurada como falsa)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderación</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitaciones</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organización</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>¿Está usted seguro?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>¿Realmente desea borrar este ítem? ¡Tiene que pulsar en el botón de guardar para almacenar los cambios!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>No hay ningún usuario seleccionado. Por favor, selecciónelo primero.</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Añadir un nuevo moderador por defecto</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>¿Desea añadir una marca de supermoderador a este usuario? Recuerde que un supermoderador no sólo es el moderador de una sala, sino que además ningún otro moderador podrá borrar la marca de moderación. Necesita guardar el objeto sala para almacenar estas configuraciones.</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>¿Desea eliminar la marca de supermoderador a este usuario? Necesita guardar el objeto sala para almacenar estas configuraciones.</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>Este usuario tiene el rol de supermoderador. No puede quitarle la marca de moderación a un supermoderador.</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>¿Realmente desea borrar este Archivo/Directorio?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>¿Borrar archivo/directorio?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Dña.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>D.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Propiedades</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Mostrar la posición del ratón a los participantes</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Compartir audio con el applet SIP</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Compartir audio con SIP y vídeo con Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Pantalla completa</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>Ver escritorio</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>El usuario</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>desea compartir su escritorio. ¿Desea visualizarlo?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Cerrar</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>La sesión ha sido cerrada por quien compartía escritorio</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pausa</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>Nueva compartición de escritorio</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimizar</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximizar</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Vídeo</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Línea temporal de grabación</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>Mis grabaciones</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Grabaciones públicas</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Nombre</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Longitud</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Fecha</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>Por</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>Descarga</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Principal - Vídeo</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Grabación</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>Puede grabar y compartir su escritorio a la vez. Para permitir que otros vean su escritorio, pulse en el botón -iniciar- de la parte superior. Para grabar la sesión, es suficiente con pulsar en iniciar grabación.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Iniciar grabación</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Parar grabación</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Descargar el archivo FLV</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Sala</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Play</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>El usuario tiene el micrófono activado</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Detener la compartición</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Permitir preguntas del usuario</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Desactive esta opción para impedir que ningún usuario le moleste en esta sala. Al hacerlo, el botón para solicitar la moderación no será visible.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Permisos</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Descargar como AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Sólo audio</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>Ha habido errores mientras se procesaba la grabación.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>La grabación aún no esta lista. Inténtelo de nuevo en un par de minutos.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Mensaje del grabador:</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>El applet SIP no está listo</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>Configuración de la cuenta SIP</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>Configuración SIP para cada usuario. Puede activar o desactivar SIP desde Administración &gt; Configuración (Key: enable_sip). Los datos SIP de cada usuario deberían crearse automáticamente.</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>Usuario SIP</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Contraseña SIP</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>ID Aut-SIP</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>La autenticación SIP ha fallado. Debería comprobar los datos de autenticación de su proveedor SIP y de la cuenta SIP de cada usuario. Como administrador, podrá autenticarse y comprobar la configuración. Si entra como usuario o como moderador, cualquier intento de interacción será bloqueado.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>La autenticación SIP ha fallado. Contacte con el servicio técnico.</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Autenticando en la puerta de enlace SIP...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Autenticando en la puerta de enlace SIP...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Mostrar Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Mensajes Log del proceso de postgrabación</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>Mensaje del applet SIP</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>El applet SIP no está listo. Por favor, acepte el applet y pulse OK.</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Solicitar la moderación</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Guardar cambios de la cita</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>La cita ha sido cambiada. ¿Desea guardar dichos cambios? <br/><br/>Todos los participantes implicados recibirán un correo con la fecha y hora actualizadas (dependiendo del tipo de notificación de esta cita).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>Para acceder a otras grabaciones, tiene que autenticarse en la aplicación $APP_NAME.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Seleccione el usuario para este vídeo</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Usuarios disponsibles para esta transmisión Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>Usted es moderador en esta entrevista. Puede decidir quién habla así como iniciar / parar la grabación de la sesión.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Iniciar Grabación</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Parar Grabación</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>La grabación de la entrevista está ya iniciada.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>La grabación está ya parada o bien no ha sido iniciada aún.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>¡Ya se ha iniciado la grabación de esta entrevista!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancelar</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>El post-proceso de una entrevista lleva cinco veces más tiempo que el de la propia entrevista. El progreso actual de este proceso es el siguiente:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>Tiene que introducir de nuevo su contraseña para autocrear los datos SIP</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Regenerar datos SIP</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>¡No puede mover este archivo o carpeta dentro de su propio subdirectorio!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Tamaño del dispositivo personal</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Tamaño del dispositivo público</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>Ajustes de licencia</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>Al habilitar la licencia puede obligar a los usuarios bien con una fecha de caducidad bien con un número máximo de minutos.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Comprobar licencia</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Tarifa plana</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Fecha de caducidad</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Segundos restantes</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Tiempo total</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Su licencia ha expirado. Necesita comprar más tiempo (pago por minuto) o bien pasarse a una tarifa plana.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Pulsar y comprar</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Tiempo restante de su cuenta:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>Información de la licencia del usuario</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Cerrar</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Su licencia ha expirado. Necesita comprar o un paquete de tiempo (pago-por-minutos) o una tarifa plana.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>Configuración de la licencia</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>Puede o bien comprar minutos de uso de la videoconferencia.&lt;br/&gt;&lt;br/&gt; O puede comprar una tarifa plana de 3 a 12 meses.&lt;br/&gt;&lt;br/&gt;Sólo se permite el envío de invitaciones (enlaces directos para entrar en las salas) o la creación de salas de conferencia a través del calendario a usuarios con tarifa plana.</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Comprar 60 minutos 9,99 € (16 céntimos por minuto)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Comprar 5 horas 19,99 € (6 céntimos por minuto)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Comprar 3 meses por 29,99 € (9,99 € por mes)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Comporar 6 meses por 39,99 € (6,66 € por mes)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pago-por-minuto</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Tarifa plana</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>Tiene una licencia ilimitada</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Su licencia expirará a las:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>Ha comprado Pago-por-minuto. Todavía tiene:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>¡Ampliar el crédito!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>¿Desea tener su propio servidor?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>Puede que desee tener $APP_NAME instalado en su servidor o integrado con Moodle, SugarCRM, la página web o la intranet. El precio mínimo es de 500 € por la instalación.</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>O envíenos un mensaje</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Responder a:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Mensaje:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Enviar</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Pulse aquí para conseguir información de contacto y precios</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Detalles de la tarjeta de crédito</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Nombre</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Apellidos</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Tipo de tarjeta de crédito</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>Tarjeta VISA</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Número de la tarjeta de crédito</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Fecha de caducidad</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Número de verificación de la tarjeta</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Dirección de facturación</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Dirección</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>Ciudad</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>País</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>Estado (Sólo US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>Código Postal</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Cantidad</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Enviar</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Paso 1: $APP_NAME - Forma de pago</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>Correo</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Pulse "Verificar con Paypal" para pagar.&lt;br/&gt; Paypal acepta VISA, MasterCard, Discover o American Express. &lt;br/&gt;No es obligatorio registrarse con Paypal. &lt;br/&gt;Los ciudadanos de Alemana pueden pagar también utilizando domiciliación bancaria.</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Gracias por comprar $APP_NAME. &lt;br/&gt; &lt;br/&gt; Tan pronto como tengamos confirmación del pago, su cuenta será actualizada.&lt;br/&gt; Recibirá un correo con su factura en pdf.&lt;br/&gt;Puede también comprobar los movimientos pasados y actuales en su perfil.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Si lo desea, pueda ya cerrar esta ventana en el navegador y volver a $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Enviar y Comprar</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Pulsar y Comprar</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Paso 3: Pago por $APP_NAME - Verifique la orden y pague</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Nombre</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>¡Pago recibido!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Saludos,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>Hemos recibido su pago. Su perfil de usuario se ha actualizado convenientemente. Vea adjuntada su factura. Esta (así como todas las anteriores) podrá ser descargada desde su perfil.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Gracias por utilizar $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Pago recibido de $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Estado de pagos y transferencias</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutos</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Meses</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Estado</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Factura</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>Necesita comprar una tarifa plana para poder enviar invitaciones o crear encuentros utilizando el calendario. Con el sistema pago por minutos sólo es posible acceder a $APP_NAME.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>Esta dirección de correo está siendo utilizada por otro usuario.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>Ajustes SIP</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>El número de la videoconferencia y el PIN son creados automáticamente utilizando la pasarela OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>Número SIP</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>¡Limpiar sólo los objetos de la presentación actual!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Sólo se enviará a los participantes la URL introducida en la barra de estado</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Hacer salas de equipos</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Seleccione usuarios para una nueva sala de equipo</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>Puede seleccionar usuarios aquí y crear una nueva sala de (vídeo)conferencia ("sala de equipo") para los mismos. Los usuarios seleccionados automáticamente podrán conectarse a la nueva sala o bien recibir una notificación. Los moderadores conseguirán adicionalmente una lista de las salas actuales de tal modo que puedan conectarse a cada sala si fuera necesario moderarlas.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Usuario</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Usuarios para la nueva sala de equipo:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Crear sala de equipo</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancelar</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Seleccione al menos un usuario para la sala de equipo</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Añadir un usuario al equipo</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Quitar usuarios de la sala de equipo</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>El usuario es moderador de la sala de equipo (puede gestionar salas, y los usuarios del equipo pueden soliciarte entrar)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Tipo de sala</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>Si activa "Forzar a los usuarios a conectarse a la nueva sala de equipo" todos los usuarios seleccionados serán conectados automáticamente a la última sala creada. Por otro lado, reciben una notificación con un botón que ellos cambiar a la nueva sala. Los moderadores de equipo siempre tienen libertad de elección para gestionar las salas y conectarse a la que deseen.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Gestionar Salas de Equipos</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>Puede conectarse aquí a la sala que desee de las que es moderador. Los usuarios del equipo pueden enviarle un mensaje, por ejemplo para pedirle que entre en su sala y les ayude. También puede finalizar la sala de equipo con lo que todos los usuarios serán desconectados.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Forzar al usuario a conectarse a la nueva sala de equipo</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Nombre</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Creado</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Usuarios disponibles</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Añada un usuario con el + en la izquierda o bórrelo con la x de la derecha</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Configuración de la sala</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Añadir usuarios a la sala de equipo</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Nombre de la sala de equipo</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Sala de equipo</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Cambiar a la sala</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Conectar a esta sala de equipo</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Finalizar sala y desconectar a todos los usuarios</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>Nueva sala de equipo</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>Hay una nueva sala de equipo disponible para usted.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Cambiar a la sala de equipo</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Acciones de la sala de equipo</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>Puede reabrir esta ventana a través del menú principal en la sección "Acciones"</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Enviar mensaje al moderador de la sala de equipo</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>Nueva sala de equipo</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>Hay una nueva sala de equipo disponible. Puede cambiarse a esa sala. Las salas de equipo son como "grupos de trabajo" con posibilidades adicionales para solicitar ayuda al moderador. Sus salas de equipo son también accesibles desde la sección "Mis Reuniones".</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Cambiar a la sala de equipo</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Creada por:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Nombre de la sala de equipo:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>Esta ventana permanecerá abierta aunque salga de la sala.</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Usuarios de esta sala de equipo</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Otras salas de equipo a las que podría conectarse</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Enviar un mensaje a los moderadores de esta sala. Por ejemplo, si necesita ayuda en la moderación de la sala o si tiene alguna pregunta sobre el tema.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Enviar</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Usuarios que están invitados a esta sala de equipo</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Es moderador de la sala de equipo</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>Estos son todos los usuarios a los que el moderador ha invitado a entrar a esta sala de equipo.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>No hay un moderador conectado en este momento</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Por favor, introduzca un mensaje</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Por favor, ayúdenos. Tenemos un problema en nuestra sala de equipo</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>Un usuario de una sala de equipo solicita su ayuda.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>El Equipo pide ayuda</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Mensaje:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>De:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>Actualmente no está en ninguna sala de equipo. Puede entrar aquí a todas las Salas a las que tiene acceso.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Resguarde el sistma. El backup incluye los datos generados por todos los usuarios. La configuración no se incluye, al igual que las etiquetas de idiomas, ya que esos valores se importan con el instalador de sistema. Para actualizar su sistema, exporte los valores antiguos (1), reinstale en una nueva base de datos el nuevo paquete (2) e importe la archivo de backup de nuevo (3). El Backup debiera ser importado antes de generar los datos en el nuevo sistema.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>Sistema de Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Permitir al usuario compartir Pantalla/Grabación</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Denegar al usuario compartir Pantalla/Grabación</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>El usuario es moderador, tiene todos los permisos.</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>le gustaría compartir/grabar pantalla.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>Puede compartir/grabar pantalla</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Aplicar para permitir compartir/grabar pantalla.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Permitir/Denegar permisos para compartir/grabar pantalla.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Apagar sonido</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Activar sonido</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Sala de sólo audio</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Active esta bandera y los usuarios tendrán sólo la opción de Audio (sin vídeo) en la sala. Es indicado para ahorrar ancho de banda.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Permitir control remoto (durante la compartición de pantalla)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Denegar control remoto (durante la compartición de pantalla)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Aplicar para permitir el control remoto de la pantalla</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>Tiene permisos para el control remoto de la pantalla (durante la compartición de pantalla)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>le gustaría tener control remoto de la pantalla.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>El usuario es moderador, así que tiene todos los permisos.</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Permitir/Denegar permisos en la Pantalla de Control Remoto (durante la compartición de pantalla)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) De su PC a un PC remoto: para copiar y pegar texto de su portapapeles a una pantalla remota, pulse sobre la pantalla, luego pulse el botón derecho del ratón y, en el campo de texto, seleccione "Insertar" del menú.&lt;br/&gt;&lt;br/&gt;2) Del PC remoto a su PC: para copiar texto de un PC remoto al portapapeles de su PC, seleccione el texto con el ratón en la pantalla remota, luego pulse el botón derecho del ratón sobre la pantalla remota y seleccione &lt;i&gt;Copiar texto destacado&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copie y pegue texto de su PC al PC remoto y viceversa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copie el texto destacado</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>Cómo copiar y pegar</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Calidad para compartir pantalla:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Calidad muy Alta</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>Calidad Alta</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Calidad Media</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Calidad baja</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Teclado:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>¡Cerrar conferencia!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>La conferencia ya está cerrada, será redirigido a otras ofertas interesantes</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Cerra sala</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>URL de Salida</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Configuración de finalización de sala</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>Si la sala está cerrada los usuarios serán redirigidos a la URL de salida.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Nombre</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Archivo de Configuración</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Configuración Ldap</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Nombre</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Activado</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Insertado</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Insertado por</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Actualizado</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Actualizado por</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>Los archivos de configuración están en la carpeta webapps/openmeetings/conf. Necesita subir manualmente los archivos a esta carpeta. Los cambios realizados en el archivo estarán online inmediatamente.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Nombre del archivo de configuración</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>Si activa "Añadir Dominio al nombre de usuario" el valor del campo "dominio" se añade a cada registro que el usuario introduce en la casilla de login. Esto es útil si el Login en el Ldap se almacena incluyendo el nombre de dominio. Ejemplo: supongamos que el usuario introduce "hans" y el dominio está especificado como "localhost.com". El login que se verificará contra el Ldap será: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Añadir Dominio al nombre de usuario</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Dominio</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insertar</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copiar el texto remarcado</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Texto remoto en Portapapeles</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Mostrar Portapapeles remoto</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>No mostrar nuevamente</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copie el texto aquí ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>Necesita derechos de control remoto (o moderación) para copiar y pegar texto desde o a la pantalla remota.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Editar configuración original ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>No mostrar la caja de información en el Control Remoto acerca de Copiar y Pegar</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Guardar</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Suprimir</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancelar</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invitar usuario a sala de conferencias</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Escoja sala de conferencias. El usuario invitado verá un mensaje con tu nombre y un link a la sala.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Conectado desde:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Entrar a sala tras enviar invitación</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invitar</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Mensaje</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>Me gustaría invitarle a sala de conferencia:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Mensaje de invitación</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Enviar invitación</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;no&lt;/b&gt; acepta su invitación</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Aceptar</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Denegar</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Zona Horaria</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Detalles del Evento</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Nombre</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Descripción</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Hecho por</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>Mensaje de Zona Horaria</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Chequear "Mensaje de Zona Horaria" para dar mensaje a los usuarios la próxima vez que accedan para que actualicen sus perfiles.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Por favor, chequee la zona horaria en su perfil.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>Nueva $APP_NAME conferencia:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Detalles:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Comenzar:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>Finalizar:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Conferencia $APP_NAME cambiada:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizar:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Conferencia $APP_NAME cancelada:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME Recordar conferencia:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Datos para la Comunidad</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Mostrar datos de contacto a todos</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Agregar campos de interés que usted ofrece o que está buscando para encontrar socios interesantes para una conferencia. Las comas separan los términos (por ejemplo: Servicio médico, Aseguradoras de la Salud, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>Mis ofertas</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>Mis intereses</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Nombre</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Zona Horaria</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Campos de interés</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Información de contacto</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Mostrar información de contacto solo a contactados.</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>No mostrar datos de contacto a nadie</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>Mi Perfil</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Editar configuraciones</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Buscar usuarios</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Ver tu perfil como los demás lo ven</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Editar tu configuraciones, añadir tus intereses para ser encontradas</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Buscar otros usuarios y ampliar tu red</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Buscar</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>Ofertas del usuario</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>Busca usuario</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Texto libre</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Nombre</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Zona Horaria</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Ofertas</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Búsquedas</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Resultado de búsqueda</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Acciones</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Añadir a Contactos</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Enviar mensaje</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contactos y Mensajes</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Contactos pendientes</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Aceptar</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Denegar</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hola,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>me gustaría añadirle como contacto.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Chequear sus peticiones de contacto $APP_NAME o hacer clic en los links para aceptar o denegar la petición</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>Este usuario ya se encuentra en su lista de contactos o ha recibido una invitación a su lista de contactos que aún no ha contestado.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Su lista de contactos</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Editar sus Contactos y Mensajes,&lt;br/&gt; administrar sus contactos pendientes!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>está usted confirmado como contacto!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value/>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Mostrar / Copiar log del chat</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Log del chat</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>De:</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Asunto</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Enviar</value>
+  </string>
+  <string id="1205" name="private message">
+    <value/>
+  </string>
+  <string id="1206" name="private message">
+    <value>Mensajes</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>Nuevo correo</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click para escribir nuevo mensaje a cualquiera de sus contactos</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Escribir nuevo mensaje</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>A:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Asunto:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Activar ajuste completo y la pizarra hará zoom para que todos&lt;br/&gt;documentos sean visibles en función de la resolución de los monitores de cada  participante.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Expulsar usuario</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>No puede expulsarse a sí mismo de la sala de conferencia! Si quiere salir cierre el navegador o emplee el botón Salir!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Realmente quiere desconectar este usuario de la sala de conferencia?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirme la acción ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>No puede expulsar de la sala a un Super-Moderador!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Libro sala de conferencias</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Comenzar</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>Finalizar</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Agregar una solicitud opcional para reunirse al mensaje y hacer una sala de conferencias. El evento es entonces copiado en el calendario de cada participante.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Carpeta de entrada</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Enviados</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Papelera</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>Este es usted! No puede añadirse a sí mismo como contacto.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>El usuario ya estaba denegado!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>El usuario ya estaba aprobado!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>El hash de este usuario-contacto es inválido!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>Usuario añadido a lista de contactos!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>Usuario denegado como contacto y eliminado de la lista de contactos pendiente!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>No está ese contacto!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Realmente quiere eliminar ese contacto?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirmar eliminación del contacto</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Eliminar contacto de la lista</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>Perfil de Usuario</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Mostrar perfil del usuario</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Mensajes</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Buscar</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Seleccionar todos</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>No seleccionar ninguno</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Seleccionar no leidos</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Seleccionar leidos</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Mover a carpeta ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Añadir nueva carpeta ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Borrar</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Correos borrados aún permanecen en su papelera!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Marcar no leidos</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Marcar leidos</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Responder</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Responder a todos</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Adelante</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Acciones ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Enviar mensaje privado</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nada seleccionado!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Mover a carpeta de entrada</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Borrar (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>Esta acción no puede ser deshecha!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Añadir carpeta</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Añadir carpetas y organizar sus mensajes!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Añadir carpeta</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Añadir</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Borrar carpeta</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>No puede borrar esta carpeta, aún contiene mensajes! Borre antes los mensajes o muévalos a otra carpeta.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Editar nombre</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Realmente quiere borrar esta carpeta? No se podrá recuperar.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Su petición fue enviada al usuario. El usuario recibirá una notificación para aceptar o denegar la petición. Solamente las peticiones aceptadas estarán en su lista de contactos...naturalmente!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Mensaje</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>El usuario no comparte sus datos personales de contacto.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>El usuario comparte sus datos personales solamente con sus contactos.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Dirección &amp; Teléfono</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>Su código de invitación no es válido. El código solamente es válido durante la fecha y hora especificados:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>Este evento está conectado a los calendarios de otros usuarios. Los cambios que efectúe afectarán tambien a sus calendarios. Realmente quiere cambiar el evento?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirmar cambios</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Permitir a los contactos ver mi calendario (ver solamente)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>No compartir calendario</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendario de contactos</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Sus contactos necesitan aprovarle primero para poder ver sus calendarios.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>Usted no puede almacenar o borrar eventos de otros calendarios que no sean el suyo!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Mostrar mi calendario nuevamente!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>Este evento está conectado a los calendarios de otros usuarios. Su acción borrará tambien el evento de sus calendarios. Realmente quiere borrar el evento?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirmar acción</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Entrar a sala</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Acceso a la sala de conferencias</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>Hay una sala de conferencias y evento reservado con este mensaje privado.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>Primero es necesario almacenar el evento!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>Esa sala no es accesible. El evento en el Calendario y sala relacionada, ya ha sido eliminada!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Elija su nick-nombre</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Nombre</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Apellidos</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Dirección mail</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Mínimo 4 caracteres! para ambos: Nombre y Apellidos.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Por favor, introduzca un mail válido!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login con su cuenta de Facebook</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Miembro desde</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>Ha hecho login con su cuenta de Facebook. Actualice su perfil con la cuenta de mail correcta; de otro modo no podrá recibir invitaciones ni mensajes privados de otros usuarios.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Mensaje</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>No mostrar nuevamente mensaje actualización del perfil</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>más opciones ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>Nuevo mensaje privado:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Haga click aquí para visitar su perfil y ver el mensaje completo ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Replicar</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Salas y Chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>Mis salas</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>Mi sala de conferencias (para 1-16 usuarios)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>Mi sala webinar (para 1-120 usuarios)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Propietario Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Por favor introduzca una contraseña</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>Necesita una cuenta con el Nivel de Usuario, Moderador o Admin.</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (acceso solamente via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Cargar directamente a la pizarra</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Realmente quiere suprimir esta pizarra? Esta acción no puede ser deshecha!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Cargar a la pizarra</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>No olvide comenzar la grabación! Un usuario por sala necesita comenzarla para tener después el control de la misma.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Comenzar grabación</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Flecha</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circulo</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Linea</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Cuadrado</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangulo</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Texto/Nota</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Dibujo Libre</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Seleccionar/Mover</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Dibujar Formas</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cortar/Mover</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Imprimir</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Deshacer</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Papelera</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Añadir Rejilla</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Compartir Archivo</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Seleccionar Formas</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Seleccionar Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copiar</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cortar</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Pegar</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Borrar</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Realmente quiere borrar todo el contenido de la pizarra?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Cargar directamente a la pizarra</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Asistentes</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Administrador de asistentes</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Presente</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Control Remoto</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Expulsar</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invitar Asistentes</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>Por Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>Usuario es moderador</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>Usuario ha conectado su webcam</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Desactivar llenar con formas</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activar llenar con formas</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Click a Rejilla</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Permitir grabación</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Esperando a grabación</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Ocultar la barra superior</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Reproducir video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Realmente quiere borrar el contenido de la presente exposición?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Aceptar y otorgar derechos al usuario</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Denegar</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Actividades y acciones</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Suprimir pizarra</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>Necesita la moderación o el derecho a dibujar en la pizarra para suprimir esta!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>No permitido</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>ha salido de la sala.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Iconos de Matematicas</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>Sin categoría</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Estilo</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Calidad</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Dominio</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visite</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>rojo-naranja</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>verde-mar</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>azul-industrial</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>azul-brillante</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>rojo-oro</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>gris-plata</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>usuario-definido</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>mejor</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>subir</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medio</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Silenciar micrófonos globalmente</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Volver a activar micrófonos globalmente</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Silenciar los micrófonos de los demás</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>Usted ha sido desactivado globalmente por el moderador. Usted no puede volver a activarse a sí mismo!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Silenciar micrófonos globalmente?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Realmente quiere silenciarse globalmente a sí mismo? Nadie podrá oirle!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Silenciar micrófono localmente?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Realmente quiere silenciar este micrófono? Puede silenciarlo solo en su pantalla localmente. Esto no tendrá efecto en cómo otros usuarios oyen a este usuario. Solo los moderadores pueden silenciarlo globalmente!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Silenciar micrófono globalmente?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Realmente quiere silenciar a este usuario globalmente? Ningún otro usuario podrá oirle!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Su sonido está activado. Haga click aquí y enviará un mensaje al moderador para silenciar globalmente tu micrófono (en toda la sala de conferencias)!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Su sonido está desactivado. Haga click aquí y enviará un mensaje al moderador para reactivar tu micrófono globalmente (en toda la sala de conferencias)!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>desearía que el moderador silencie mi micrófono globalmente.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>desearía que el moderador reactive mi micrófono globalmente.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>quiero que el moderador reactive su micrófono.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>quiero que el moderador silencie su micrófono.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Reactivar micrófono. Haga click aquí para silenciar su micrófono globalmente!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Silenciar micrófono. Haga click aquí para reactivar su micrófono globalmente!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>Este usuario ha sido desactivado globalmente por el moderador. Usted no puede reactivarle!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Silenciar tu micrófono globalmente</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Reactivar tu micrófono globalmente</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Silenciar micrófono</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Reactivar micrófono</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Silenciar micrófono globalmente</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Reactivar micrófono globalmente</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Solo los moderadores pueden pueden desactivar o reactivar globalmente a un usuario! Para silenciar su propio micrófono: Por favor, emplee el icono en tu ventana de video!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Nombre Encuesta</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>Usted</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Encuestas archivadas</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>activa</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Cuadro Simple</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Cuadro Gráfico</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Por favor, introduzca su dirección de correo</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>Nuevo mensaje(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Encuesta cerrada</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Realmente quiere cerrar esta encuesta? Nadie más podrá votar.</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Eliminar encuesta</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Realmente quiere eliminar esta encuesta? Los resultados tambien se eliminarán.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Lenguaje ISO Código</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Permitir/Denegar derecho para dar audio exclusivo.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Permitir a usuario dar audio exclusivo</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Denegar a usuario dar audio exclusivo</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>Quisiera obtener permiso para tener audio exclusivo.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>Quisiera que el moderador me concediera permiso para tener audio exclusivo.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Dar permiso para audio exclusivo.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Resolución de cámara</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Cambiando la resolución a efecto de ancho de banda, fotos grandes necesitan más ancho de banda!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>Usted no tiene los derechos para darse a sí mismo o a los demás audio exclusivo. Necesita solicitar los derechos al moderador o que éste le de audio exclusivo.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>Quisiera obtener los derechos para audio exclusivo</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Darme audio exclusivo a mí mismo (alternativamente hacer click en la ventana de video o pulsar F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>El micrófono está abierto!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>El micrófono esta silenciado</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Ocultar chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Ocultar actividades</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Ocultar explorador de archivos</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Ocultar menú de acciones</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Ocultar compartir pantalla</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Ocultar pizarra</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Mostrar estatus del micrófono en video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Opciones de capa</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>Nuevo Evento</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Los enlaces a la conferencia que son enviados a los participantes cuando usted guarda el evento en el calendario, están protegidos por contraseña, no la sala! Ello quiere decir que si guarda el evento múltiples veces pero con diferentes contraseñas, cada participante recibirá un nuevo enlace con una contraseña diferente. Aunque los enlaces primeros seguirán estando activos una vez se hayan enviado!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Editar detalles</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Mostrar sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Llamar</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Mostrar los eventos de contacto en el calendario</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Su inicio!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Planear sus reuniones</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Ver grabaciones y entrevistas</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Escoger y comenzar una web-conferencia</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Administrar usuarios y derechos</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Administrar conexiones y usuarios expulsados</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Administrar grupos de usuarios</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Administrar salas de conferencia</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Administrar configuraciones del sistema</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Administrar etiquetas y formularios</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Administrar configuraciones de LDAP y ADS</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Exportar/Importar Backups del Sistema</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>Usted necesita la moderación o el derecho para dibujar en la pizarra, subir, añadir, suprimir o cargar archivos y carpetas.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Editar texto</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publicar</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Comenzar Publicación</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Finalizar Publicación</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publicar App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publicar Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reducir la anchura de la Compartición de Escritorio antes de intentar moverlo a la izquierda</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reducir la altura de la Compartición de Escritorio antes de intentar moverlo abajo</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reducir la x de la Compartición de Escritorio antes de intentar hacerla más ancho</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reducir la y de la Compartición de Escritorio antes de intentar hacerla más alta</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Completar estas configuraciones stream con los datos de tu pantalla a proveedores de terceras partes como justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Por favor lance Compartición de Escritorio para que pueda ser publicada</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Es requerido permiso del Moderador para comenzar la grabaciónModerator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>Usted no tiene permiso para conceder audio exclusivo a cualquier participante. Necesita tener el papel de moderador o el derecho de audio exclusivo para hacer exclusivo y activo a algun micrófono.</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Subir nuevo archivo al explorador de archivos</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Abrir nuevo diálogo de configuraciones compartidas</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>Un moderador debe aprobarlo</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Decir al moderador que quieres compartir tu webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Reunir feedback al crear una encuesta</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Resultados de las encuestas pasadas y actual como gráfico</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote si hay una encuesta para esta sala de conferencias</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Editar configuraciones de cam y micro</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirmar y dejar la sala</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Llamada a gente externa via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Enviar un correo con un link directo a esta sala</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Cambiar sus configuraciones de la pizarra</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Máximo peso de subida</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Pedir al moderador compartir tu pizarra</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Comenzar Chat Privado</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>Todo</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>No puede comenzar un chat privado con usted mismo.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>Usted ya comenzó un chat privado con este participante.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Realmente quiere eliminar este chat privado?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servidores</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servidores participantes en grupo</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Nombre del Servidor</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Dirección del Servidor</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Detalles del Servidor</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Enviar SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publicando. Usuario:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>Para guardar hora y tráfico de internet puede emplear la linea de comandos como administrador para hacer backup/restaurar/actualizar: &lt;ol&gt; &lt;li&gt;ir al directorio de instalación en OM (por ejemplo /opt/red5)&lt;/li&gt; &lt;li&gt;detenga OM (por ejemplo ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file  ~/today_om_backup.zip (hacer backup del actual OM)&lt;/li&gt; &lt;li&gt;descargar archivo con el nuevo OM&lt;/li&gt; &lt;li&gt; (mover versión de trabajo de OM solo en el caso :))&lt;/li&gt; &lt;li&gt;extraer el OM descargado a /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' en el caso de que esté usted empleando una base de datos DB distinta a la original )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Salas comunes a todos los usuarios</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Salas comunes al grupo de usuarios actual</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Salas del usuario actual</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Crear/Modificar sala especial de cita</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>Puede insertar múltiples direcciones en el formato: nombre1 apellidos1 &lt;correo1&gt;,"nombre2 apellidos2" &lt;correo2&gt;,'nombre3 apellidos3' &lt;correo3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Ajustar volumen de flujo</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Ajustar volumen del micrófono</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Es un chat moderado</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Permitir mensajes</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Panel de chat abierto por defecto</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Panel de archivos abierto por defecto</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Último ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Cada esclavo envió un ping al master cada 3 segundos (configurable). El último ping del esclavo debe ser inferior a 1 minuto así el master emplea al esclavo. Every slave sends a ping to the master every 3 seconds (configurable).</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>Puerto HTTP</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>Usuario (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Contraseña</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Ruta Webapp</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocolo</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping funcionando</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Activo</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generar URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Testeando la Red</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto-seleccionar ventana de video en interview</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Subrayar</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Estilo de fuente</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Permitir estilos de fuentes</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Color de fuente</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Mostrar estadísticas de sesión</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Detalles de la sesión</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>Importar sistema</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Incluir archivos subidos y grabaciones en el backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Permitir transporte SIP en la sala</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Realmente quiere proveer a este usuario de audio exclusivo?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Por favor, especifique su Zona Horaria</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conferencia (1-25 usuarios)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restringida (1-150 usuarios)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 reunión con grabación)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Ya existe la configuración con esa clave, por favor especifique otra clave o edite la configuración existente</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>El contenido se está guardando, Por favor espere.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>BienVenidos</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>El Widget muestra información básica del usuario y links soportados</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>Acerca de</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Nonmbre</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Versión</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revisión</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Fecha de construcción</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Cargando ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>hoy</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Ene</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Abr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Ago</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dic</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>no envíe notificación</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>correo simple</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal correo</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Administrar configuraciones de OAuth2</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Nombre</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Permitido</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icono URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Solicitud de clave URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Solicitud simbólica de URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Solicitud de información URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>Configuración de OAuth2</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login parámetros nombre</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Correo parámetros nombre</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Nombre parámetros nombre</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Apellidos parámetros nombre</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Solicitud simbólica de atributos</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redireccionar uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>Puede introducir la dirección de correo en el formato: nombre1 apellidos1 &lt;email1&gt;  o "nombre2 apellidos2" &lt;email2&gt; o 'nombre3 apellidos3'  &lt;email3&gt; o email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notificar desconexión</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Exponer</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Su cuenta ha sido hecha. El correo de confirmación ha sido enviado. Ahora puede usted hacer login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>El final de la fecha introducida es anterior a la fecha del comienzo.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/swedish.xml b/src/main/webapp/languages/swedish.xml
new file mode 100644
index 0000000..e74367e
--- /dev/null
+++ b/src/main/webapp/languages/swedish.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Konferens</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Möte</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Auditorium</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Inställningar</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Profil</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Administration</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Stopp</value>
+  </string>
+  <string id="8" name="record">
+    <value>Spela in</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>Ingen fil tillgänglig</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Inspelad av lärare</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Anslutna användare:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Starta en konferens</value>
+  </string>
+  <string id="13" name="myname">
+    <value>Mitt namn</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>Videokonferens</value>
+  </string>
+  <string id="15" name="import">
+    <value>Importera Presentation</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Uppdatera lista</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>Till huvudfil</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>Ny omröstning</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>En ny omröstning för konferensen.</value>
+  </string>
+  <string id="20" name="question">
+    <value>Fråga:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Typ av omröstning:</value>
+  </string>
+  <string id="22" name="create">
+    <value>Skapa</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Info: Varje ansluten användare får ett meddelande med den nya röstningen.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Skapa en omröstning</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Avbryt</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Ja/Nej</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Numerisk 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Röst</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Du måste vara Moderator för att skapa en omröstning</value>
+  </string>
+  <string id="30" name="vote">
+    <value>Din röst är accepterad</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Du har redan röstat i denna omröstning.</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Rösta!</value>
+  </string>
+  <string id="33" name="answer">
+    <value>Din respons:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Ja</value>
+  </string>
+  <string id="35" name="no">
+    <value>Nej</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>vill veta:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Röstningsresultat</value>
+  </string>
+  <string id="38" name="question">
+    <value>Fråga:</value>
+  </string>
+  <string id="39" name="results">
+    <value>Resultat:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Svar:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>Inga nya omröstningar har påbörjats.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Rösta!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Möte (max 4 platser)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Konferens (max 50 platser)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Typ</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Andra platser</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Redan valt</value>
+  </string>
+  <string id="48" name="enter">
+    <value>Stig in</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>Moderatorn har lämnat mötet.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Systeminformation</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Välj utrustning</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Välj webcam:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Välj mikrofon:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>ok</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>Avbryt</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Återanslut.</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Ändra setup.</value>
+  </string>
+  <string id="58" name="course">
+    <value>Kurs:</value>
+  </string>
+  <string id="59" name="language">
+    <value>Språk:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>Ok</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>Avbryt</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Rensa skrivbordet</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Vill du att skrivbordet skall rensas innan du lägger till en ny bild?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>Fråga inte igen</value>
+  </string>
+  <string id="65" name="no">
+    <value>Nej</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Ändra setup</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Fråga innan skrivbordet töms?.</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Användarinfo</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Rensa ritområdet</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Ångra</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Redo</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Välj ett objekt</value>
+  </string>
+  <string id="73" name="text">
+    <value>Text</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Måla</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Rita linje</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Rita understrykning</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Rektangel</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Ellips</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Pil</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>radera valt objekt</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Lägg till för moderation</value>
+  </string>
+  <string id="82" name="apply">
+    <value>Lägg till</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>Avbryt</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Bli moderator</value>
+  </string>
+  <string id="85" name="close">
+    <value>Stäng</value>
+  </string>
+  <string id="86" name="italic">
+    <value>italic</value>
+  </string>
+  <string id="87" name="bold">
+    <value>fet</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>VÄNTAR</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>En användare väntar för att bli moderator:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>Acceptera</value>
+  </string>
+  <string id="91" name="reject">
+    <value>Neka</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>Avbryt</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Skicka fråga till följande användare</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Accepterad</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Nekad</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Ändra moderator</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Du är inte moderator i denna kurs!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Moderator:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>Rummet är fullt. Försök igen senare.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Ellips</value>
+  </string>
+  <string id="101" name="close">
+    <value>Stäng</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>Fel data angivet</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>Användarnamnet måste innehålla minst 4 tecken</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>Lösenordet måste innehålla minst 4 tecken</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>Användarnamnet är redan använt</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>Denna epost är redan använd</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>Systemfel, kontakta systemadmin</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Login</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Användare:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Lösen:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Språk</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Login</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Registrera</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Användare:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Lösen:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Lösen igen:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Förnamn:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Efternamn:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>E-post:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>Land:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Registrera</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>Avbryt</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Registrera</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>Hem</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Användare</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Grupper</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Organisationer</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Konferensrum</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>Publik</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>Organisation</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>Stig in</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Login</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Lösenord</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Lösenord igen</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Förnamn</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Efternamn</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>E-post</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Födelseår</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Gata/nr</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>Pnr/Stad</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>Land</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Adress-Info</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Användardata</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>Spara</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Spara</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>Användar-ID</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>Login</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>Förnamn</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>Efternamn</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>Visa nästa</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>Visa föregående</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>Radera innehåll</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>Avbryt</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>Radera</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>Nytt innehåll</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>Uppdatera innehåll</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>Radera innehåll</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>Status</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>Ej tillgänglig</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>Tillgänglig</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>Organisation</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>Kalender</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>Stäng</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>Organisation-ID</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>Namn</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>Användare</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>Moderator</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>Admin</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>Användarnivå</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>Organisation</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>Namn</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>Lägg till organisation</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>Lägg till organisation</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>Avbryt</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>Lägg till</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>Ta bort organisation</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>Användare</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>Lägg till användare</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>Radera användare</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>Lägg till användare</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>Sök användare</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>sök</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>Användare</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>Organisation</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>Stig in</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Konferensrum</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Konferensrum</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>Id</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Namn</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>Publik</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>Organisationer</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Konferensrum</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>Namn</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>Typ</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>Publik</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>Kommentar</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>Spara</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>Ladda</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>Spara som</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>Filnamn</value>
+  </string>
+  <string id="201" name="files">
+    <value>Filnamn</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>Avbryt</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>Spara</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>Bearbetar</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>Laddar</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>Objekt laddade</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>Synkroniserar, vänta:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Laddar bilddata</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>Synkroniserar, vänta:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>Rensa ritutrymmet</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>Rensa ritutrymmet, all data kommer att förloras</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Fråga innan inladdning av fil</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Skicka inbjudan</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Skicka inbjudan</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Ämne</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Mottagare</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Meddelande</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Skicka</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>Avbryt</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>Skicka</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Användardata</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>Ditt alias i denna konferens</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>Alias</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>Förnamn</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>Efternamn</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>E-post</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>Språk</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>Stig in</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Laddar</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Laddar data, vänta!</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Fel lösenord</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>2 identiska lösenord med minst 6 tecken, tack!</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Fel e-postadress</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Du har angett en ogiltig e-postadress</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>Registrering klar</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Ditt konto är skapat. Du kan logga in.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>Du kan inte dela din skärm just nu. Någon annan delar sin skärm.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Delning förbjuden</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Dela skärm</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Dålig bandbredd: Du kan inte synkronisera skärmen. Du kommer att tappa frames. Om denna varning visas ofta kan du be din moderator att sänka kvaliteten.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Skärm av:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Måla</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Dokument</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Chat</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Filer</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Medlemmar</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Ladda ner originaldokument</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>Ladda ner PDF-dokument</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Ladda presentationen till whiteboard</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Konfiguration</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Dra det här objektet</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Ändra storleken på det här objektet</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>av</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>Gå till första sidan</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>Gå till föregående sida</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>Gå till nästa sida</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>Gå till sista sidan</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Zoom --</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Zoom ++</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Herr</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Fröken</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Konfiguration</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Nyckel</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Konfiguration</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Nyckel</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>senast uppdaterat</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>uppdaterat av</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>kommentar</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>nyckel</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>av</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Användare</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>radera användare från organisationen</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>radera</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>Den här användaren är redan medlem av den här organisationen.</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>Nyheter</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Snabblänkar</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Gå till Konferens</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Gå till Auditorium</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Hjälp och Support</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Buggrapport</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>mera</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Projektets Webbsida (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>Epostlista För Användare (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Kom Ihåg Inloggning</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Innehåll</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>Min Hemsida</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>Mina Schemalagda Möten</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>Mina Planerade Auditorier</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Allmänna Möten</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Privata Möten</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Allmänna Auditorier</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Privata Auditorier</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Allmänt Innehåll</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Privat Innehåll</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Personligt Innehåll</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Moderering</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Anhåll om Moderering</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Omröstningar</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Välj en fil</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Inställningar</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Kam. &amp; Mik. Inställn.</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Whiteboard Inställningar</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Avsluta</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Lämna Rummet</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Logga ut</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Glömt ditt lösenord?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Återställ Lösenord</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>Via E-post</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Via Användarnamn</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>Din E-postadress</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Ditt Användarnamn</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>OK</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>Användare</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Omröstningar</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>Det finns ingen Användare kopplad till detta Användarnamn</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>Ett e-postmeddelande innehållande en unik länk har skickats till din epostadress, var vänlig kolla din epost. Om du fortfarande inte fått något e-postmeddelande, var vänlig ändra spaminställningarna för din e-post och skicka bekräftelsemeddelandet på nytt.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Bearbetar</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Meddelande</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Ogiltig Hash. Ingen Användare Funnen.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Återställ Ditt Lösenord</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Login</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>Ändra Lösenord</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>Nytt Lösenord</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>Ange Lösenord på nytt</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>Lösenorden du angett är inte identiska.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>4 eller mer tecken; versalisering inverkar!</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Lösenord valt. Du kan logga in nu.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Okänt Fel. Var vänlig rapportera detta till ditt Service-Team.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Användarnamnet hittades inte.</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Ogiltigt Lösenord.</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Utloggning Lyckades.</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Registrering via gränssnittet är Inaktiverat.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>Ogiltig Epostadress.</value>
+  </string>
+  <string id="340" name="registration">
+    <value>Duplikat filnamn, var vänlig välj ett annat filnamn.</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>Filnamnet är för kort.</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Kunde inte spara Adressen.</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>Användare tillagd, men du måste tilldela honom en Organisation för att kunna logga in.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Nytt Record</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>Inget fält med detta FältId hittades.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>Ingen Etikett hittades för det Fältet.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Admin Auktorisering krävs.</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Språk-Editor</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Språk</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>Etikett-ID</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Etikett-Namn</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Värde</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Fältvärden</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>EtikettNamn</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>EtikettVärde</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>Etikett-ID</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>Du raderade endast Etiketten, INTE Fältet! Du kan inte radera Fältet, det innehåller kanske Etiketter på andra Språk.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>Ogiltig Etikett-ID. FieldLanguagesvalues_Id kan inte hittas i databasen.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Du kan inte radera det här Fältet. Du kan endast radera Etiketter, INTE Fält. För tillfället är ingen Etikett laddad, detta kan bero på att ingen Etikett är vald eller för att inga Etiketter är definierade för det här fältet och språket.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>Exportera</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Du måste logga ut för att se ändringar.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Lägg till nytt språk</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>Ta bort språk</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Lägg till nytt språk</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Namn</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>Lägg till språk</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Säkerhetskopia</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>Gå till första</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>Gå till föregående</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>Gå till nästa</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>Gå till sista</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>Användare talar (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>Sätt på/av ljudet</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>System</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Dina inställningar</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>Hej,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Ändra din profil</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Nya meddelanden:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Ladda upp nya bilder</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Användardata - Exportera</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>Alla organisationer måste finnas från tidigare!</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>Påbörja exporteringen</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>Enligt organisation</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>Påbörja exporteringen</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Användardata - Importera</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>Välj users.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>Importera</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Exportera till XML - Dessa filer kan användas för att: - Bidra till projektet - Importera till ett annat system - Göra säkerhetskopior - Skräddarsy programmet - Lägga i language-mappen för kommande installationer</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Välj en språkfil att importera. Välj rätt språk från Comboboxen! Språkfilen kommer att importeras till detta språk oberoende av namnet på filen!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>Importera - välj fil</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Spara som</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Namn:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Kommentar:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>Spara</value>
+  </string>
+  <string id="395" name="record">
+    <value>Inspelningar</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Inspelningsförevisaren</value>
+  </string>
+  <string id="397" name="record">
+    <value>Inspelningar från allmänna och privata rum</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Användare:</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Anslöt sig:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Användare i det här rummet:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>Uppdatera</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>Det här rummet är fullt. Försök igenom om någon minut.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>Klicka på ett rum för att få mera detaljer</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Chatta med användarna i det här rummet:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Rum:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Användare i det här rummet:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>Sedan:</value>
+  </string>
+  <string id="409" name="record">
+    <value>Spela upp inspelning</value>
+  </string>
+  <string id="410" name="record">
+    <value>Längd:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Datum:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Inspelningsläge! Du kan inte ändra några värden, detta är en inspelad fil.</value>
+  </string>
+  <string id="413" name="record">
+    <value>Spela upp denna inspelning</value>
+  </string>
+  <string id="414" name="record">
+    <value>Spela upp / Pausa</value>
+  </string>
+  <string id="415" name="record">
+    <value>Påbörja inspelning</value>
+  </string>
+  <string id="416" name="record">
+    <value>Stoppa inspelning</value>
+  </string>
+  <string id="417" name="record">
+    <value>Inspelning:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>Det är redan någon som spelar in:</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Inspelning! Av användare:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>Avbryt</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>Inspelningen kommer att avbryts och inte heller sparas.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>Återuppta</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Stäng det här fönstret och återuppta inspelningen</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>Ändra Linjefärg</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Välj Färg</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Inaktivera / Aktivera Linjefärg</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>Ändra Fyllfärg</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Inaktivera / Aktivera Fyllfärg</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Ändra Linjebredd</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>Stäng</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>Ändra storlek på teckensnitt</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Ta bort Inspelning</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Gäst</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>Av:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Namn</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Rum</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Datum</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>Avbryt</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>Starta</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Namn</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Datum</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Radera Serverns Chatlogg</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Chat</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>Skicka meddelande</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Emotikoner</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value></value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Välj Enheter</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Ljud och Video</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Endast Ljud</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Endast Video</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>Inget Ljud/Video (statisk bild)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>Inget Ljud/Video kommer att publiceras, i stället kommer en bild från din profil att visas. Välj den här inställningen om du har dålig bandbredd.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>MÅ</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>TI</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>ON</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>TO</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>FR</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>LÖ</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>SÖ</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Måndag</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Tisdag</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Onsdag</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Torsdag</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Fridag</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Lördag</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Söndag</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>KV</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Kalender vecka</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>Januari</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>Februari</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>Mars</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>April</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>Maj</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>Juni</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>Juli</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>Augusti</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>September</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>Oktober</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>November</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>December</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Kalender</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Deltagare</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Visa Layout inställningar</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Bredd | Höjd</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Video-Platshållare</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Modererings-Platshållare</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Whiteboard-Platshållare</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Aktiverad</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Bredd | Höjd</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Filer, Chat, Deltagare - Platshållare</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Aktiverad</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Bredd | Höjd</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>Moderatorn har lämnat rummet. För tillfället finns det ingen presentatör. Du kan ansöka om att bli Moderator eller vänta.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>Det finns ingen Moderator i det här rummet, men det finns några deltagare. Du kan ansöka om att bli Moderator eller vänta.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Feedback för $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Inbjudan</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Meddelande från Användare:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Meddelande:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Klicka på den här länken för att delta i Mötet:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Klicka här för att gå in i Rummet.</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>Om du har problem med den här länken, var vänlig kopiera och klistra in det här i din webbläsare:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME Registrering</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Din användardata:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Login:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Lösenord:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>Epost:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME-Teamet</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME Registrering</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - Återställ Lösenord</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Klicka på den här länken för att ange ett nytt lösenord:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Klicka här för att ange ett nytt lösenord</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>Om du har problem med länken, var vänlig kopiera och klistra in detta i din webbläsare:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME lösenordsåterställning</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Var vänlig ange ett giltigt Datum, till exempel 24.12.2001 (dd.mm.åååå)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Var vänlig ange en giltig Epostadress, till exempel namn@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Var vänlig ange ett Flytande-Nummer, till exempel 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Var vänlig ange ett Nummer (Integer), till exempel 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Var vänlig ange ett Telefonnummer, till exempel +358 40 352 3250</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Var vänlig ange en tid, till exempel 12:23 (tt:mm)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Lösenordsskyddad</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Lösenord</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Giltighetstid</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Oändlig</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Period</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Engångs</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Giltig från och med:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Giltig till:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Inbjudan till $APP_NAME</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Ingen inbjudan tillgänglig med den här Inbjudningskoden.</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>Inbjudan användes redan. Den här typen av inbjudningar kan inte återanvändas.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>Inbjudningskoden är inte giltig.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Lösenord:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Kontrollera Lösenord</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Ogiltigt Lösenord!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Webbläsare</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Synkronisera Ljud/Video</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Inloggningen var korrekt, men sessionen är inte längre aktiv eller lagrad på servern. Försök att logga in igen efter att du fått ett nytt SessionId.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>SessionId är inte inloggat eller har inga Admin-rättigheter. SOAP Gateway kräver en användare med admin-rättigheter för att innesluta nya användare.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>Den här sessionen är inte kopplad till någon Remoteuser-Data. Antingen så kallades inte SOAP-Gateway före applikationen kördes eller så används ett felaktigt Session-ID.</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>Inspelaren är fortfarande i Beta-stadie!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>x-axel</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>y-axel</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>b</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>bredd</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>h</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>höjd</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Ändra Genomskinlighet</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Öppna bläddraren</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Stäng bläddraren</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>Anslutningen till Servern är förlorad. Du måste ladda om Applikationen och/eller kolla din Nätverksanslutning.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Pekare</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Synkroniserar</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Synkroniserar användare, var vänlig vänta</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Ladda ner som SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Ladda ner som PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Ladda ner som JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Ladda ner som PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Ladda ner som TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Påminnelse:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Kategori:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Repetition:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>ingen</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Läge:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Börjar</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>Slutar</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Titel:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Kommentar:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Bjud in folk</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Daglig</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Månatlig</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Årlig</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Tidpunkten för mötets slut måste vara efter dess början!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Lägg till en Titel, tack!</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Aktivera det här om du skriver på ett höger till vänster-språk (inverterad ordfölj)</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Dashboard</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Se på inspelade Möten och Auditorier</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Möte - Skapa en konferens med 4 (upp till 16) Användare &lt;br&gt; alla kommer att ha tillgång till ljud + video.</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Auditorium - Skapa en konferens med upp till 200 deltagare&lt;br/&gt;Endast Moderatorn kommer att ha tillgång till ljud + video</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Skapa användare, rum, organisationer&lt;br/&gt; + ändra konfigurationer</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Användare i det här Rummet nu</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Login</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Laddar Dokument. Vänligen vänta tills alla klienter är synkroniserade.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Uppladdning klar, konverterar Dokument ...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Påbörja Uppladdning</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Dialog för Uppladdning och Importering. Var vänlig välj en Fil från din Hårdskiva.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Avbryt</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Välj Fil</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Anslutningar</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Värde</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Streamid</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Login</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Ansluten sedan</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Rum</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Sparka Användare</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Sparka Användare</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Vill du verkligen sparka den här Klienten?&lt;br/&gt; Det här avlägsnar endast Klienten från det aktuella rummet och ger honom möjlighet att återansluta sig.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Din session har stängts av en Administratör eller Moderator.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Telefon</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>Användaren är Moderator i det här rummet</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>Användaren har tillåtelse att rita på Whiteboarden</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>Starta (om) Ljud/Video eller ändra Anordningens Inställningar</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Tillåt den här Användaren att rita på Whiteboarden</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Ta bort möjligheten att rita på Whiteboarden</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Användare</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Filer</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Whiteboard</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Chat</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Ditt konto är tilldelat flera Organisationer. Var vänlig välj en för den här Sessionen.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>Det här rummet är fullt för tillfället. Var vänlig försök på nytt senare.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Typ av rum</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Tidsbokat rum</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Servertid</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - Påminnelse</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Meddelande från Användare:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Meddelande:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Klicka på den här länken för att delta i Mötet:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Klicka här för att gå in i rummet</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>Om du har problem med länken, vänligen kopiera och klistra in det här i din webbläsare:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>Sök internt</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>externa användare</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>förnamn</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>namn</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>E-post</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Bekräfta utloggning</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Är du säker på att du vill logga ut?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Åtgärder</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Demo Rum</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Demo Tid</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Mötestimer</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>Det här Rummet är ett Demo Rum. För att få bort den här varningen så måste du antingen skaffa ett privat mötesrum eller sätta upp en egen Server. Du kommer att loggas ut automatiskt om:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Modererat</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Var vänlig vänta tills Moderatorn har anslutigt sig till Rummet. Moderatorn kan antingen vara en Lärare, Admin eller skapare av det här Rummet.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Ok</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Inkommande Skärmdelning</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>En ny Skärmdelning vill påbörjas av användaren:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Börja Dela</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Lägg Till Ett Möte</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Mötesrum</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Auditorium</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderering</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Moderera Användare</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Moderera Rum</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Vill du ändra den här Användaren till Moderator av den Organisationen?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Var vänlig välj en Organisation före du försöker lägga till en Användare till den!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organisation - Moderator</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Vill du verkligen ta bort den här Användaren från Organisationen?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>Den här Användaren är Moderator</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>Den här Användaren är inte Moderator</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Vill du ta bort den här Användaren som Moderator för den här Organisationen?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Lägg till eller ta bort Användare eller Rum inom din Organisation</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Vill du verkligen ta bort det här?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Vill du verkligen ta bort den här Användaren från Organisationen? Du kommer endast att ta bort kopplingen mellan Användaren och Organisationen, för att ta bort själva Användaren så måste du logga in på Administrationspanelen.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>Du kan inte ta bort din egen Användare!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>Den här Metoden kräver ett Administrationskonto för att kunna åberopas!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>Det finns ingen Session associerad med detta ID.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>Det här är ett Administratörs- eller Moderatorkonto. Du kan endast ändra det här kontot via Administratörspanelen.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>Var vänlig klicka på följande länk eller klistra in den i din webbläsares adressfält för att slutföra registreringen.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Klicka här för att verifiera din E-postadress</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Ingen Användare hittades med detta Hash.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Den här Användaren är redan aktiverad!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Du har aktiverat ditt konto!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Logga in nu</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Ditt konto är inte aktiverat. Använd länken i det e-postmeddelande du fick när du registrerade dig.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>Du har framgångsrikt registrerat dig. Vi har skickat ett e-postmeddelande till dig med din verifikationskod. Vänligen kolla din Inkorg.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Ta bort den här användaren som Moderator</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Bevilja Moderator-rättigheter till den här Användaren</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>Användare</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Tillgång till Whiteboarden</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderator</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Moderering: Vänligen välj en Användare från Listan för att bevilja honom tillträde till Whiteboard, Moderering eller Video.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>Den här Användaren är redan Moderator, så han har automatiskt rätt att rita.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>Det här är du! Du kan inte ta bort Moderator-rättigheterna från dig själv.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Tillåt den här Användaren att Publicera Ljud/Video</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Ta bort Ljud/Video från den här Användaren</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>Jag skulle vilja få Moderering för det här rummet</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>Jag skulle vilja rita på Whiteboarden</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>Jag skulle vilja dela Ljud/Video</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>Du är Moderator för det här Rummet</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>Du har tillåtelse att rita på Whiteboarden</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>Du har tillåtelse att publicera Audio/Video</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Meddelande till Moderatorn</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>Användaren</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>vill ha Moderator-rättigheter. Använd Statusikonerna i Användarlistan för att dela ut och ta bort Moderator-rättigheter.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>vill rita på Whiteboarden. Använd Statusikonerna i Användarlistan för att dela ut och ta bort rättigheter att rita på Whiteboarden.</value>
+  </string>
+  <string id="695" name="695">
+    <value>vill publicera Ljud/Video. Använd Statusikonerna i Användarlistan för att dela ut och ta bort rättigheter att publicera Ljud/Video.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>Du måste vänta tills en Moderator har stigit in i rummet.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Avbryt</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Spara</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Dag</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Månad</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>År</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Upload File</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Refresh</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Trash (Drag and Drop item here)</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>My Files (Home Drive)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Room Files (Public Drive)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Add File</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Delete Folder</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Edit Name</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>New Folder</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Are you sure you want to delete this Item?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Open Document</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Show all Files (Tree View)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Close Document</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Delete File</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>You are not allowed to draw anything on the Whiteboard. You have to become Moderator or at least get the Right to edit Whiteboard. You may ask a Moderator to give you that right.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Document Properties</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Start Client (external)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Start Client (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>A user want to share his screen. Do you want to see it?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>You are currently sharing your Desktop. For stopping the Sharing Session please hit the Stop button in the Sharing Client.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Sharing Session</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>You are already sharing your desktop!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Desktop Viewer</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Exit</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Desktop Sharer</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Click Start to publish your screen</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Start Sharing</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Select your screen area:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Change width</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>The Sharer has finished this session!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Change height</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-Offset</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-Offset</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Width:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Height:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Connection was closed by Server</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Cancel</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Start External</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>If you close this session completely you are not able to restart the viewer for this session.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Confirm Closing Viewer Session</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Share Screen</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Record Session</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Co-Browsing</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Ooops, ... Firefox on Windows does not show clear Co-Browsing. Please use another Browser for using the Co-Browsing feature.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Previous</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Next</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Reload</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Home</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Load</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Add this website as Default website to your Profile.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Test Setup</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Check you Microphone and Camera setup before you enter a room by recording some seconds. You can then replay your recording to check your voice and picture.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Don't show this test anymore</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Cancel</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Start Conference</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Do not ask again</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>You may proceed without testing if you do not plan to publish your voice or picture. Participants without Audio or Video can still use the Whiteboard, share their Desktop or write Chat messages.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="test setup">
+    <value>Level-Meter</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Press Start</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Start Event</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Choose Room</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Check Setup</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="774" name="start view">
+    <value>How to conference</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Start Recording</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Do not show Audio / Video Test (Recording) before entering a Conference</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Public Rooms</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Public Rooms are accessible for all Users.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Private Rooms</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Private Rooms are only accessible for users of the same organization.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>My Rooms</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Rooms in this section are created for personal usage. There are some standard rooms plus the ones that are created through the calendar and have a start and an end date. The rooms created via the calendar are only listed in this section as long as they are valid.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>You have to be moderator to do this.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Apply for moderation</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Apply for whiteboard access</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Apply for camera/microphone access</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>This Session Hash was already used. You cannot use it twice.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>START</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>EXIT</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Do you really want to exit? You might should clear uploaded documents, whiteboard and the chat history.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Exit conference</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Rooms</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Choose a room for a meeting</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>There is an unsaved Event in the Calendar. Please either save it or remove it.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Please add at least one attendee for your meeting!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Do you really want to delete this Event?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Warning</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Add Event</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>Day</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>Week</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>Month</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Description</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Attendees</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, your Web Conferencing Platform. Either follow the Instructions, press the start button to start to conference immediatelly or you goto the Calendar and set up a Conference for the future.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Plan a Meeting</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>To set up a conference you can add a new Event in the Calendar.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Need help?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Restricted</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Search</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Add</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>There is no User selected. Please select an item from the list first and then hit add.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Add Attendee</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Save</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Delete</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Event Details</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Default Moderators</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Name</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>E-Mail</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Add new default Moderator</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Is Super Moderator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>If the Room is moderated, User with Level Moderator or Administrator are automatically Moderator if they enter the Room. If you don't want to specify that and only want a certain User to become Moderator use the Default Moderator option.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>A Super Moderator is always a Moderator when he enters a Room, and nobody can remove the Moderation Flag from him</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Apply Super-Moderation to User</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Remove Super Moderation from User</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>If you add an Organization to the room only users of that Organization have access to it (This is only valid if the isPublic flag is set to false!)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderation</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitations</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organization</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Are you sure?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Do you really want to delete this Item? You have to press the save button to store the changes!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>There is no User selected. Please select first before you add it!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Add new Default Moderator</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Do you want to add the Super Moderation Flag for this User? A Super Moderator is not only Moderator of a Room, but also no other Moderator can remove the Moderation Flag for this User. You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Do you want to remove the Super Moderation Flag for this User? You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>This User is a Super-Moderator. You cannot remove the Moderation flag from a Super-Moderator!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Do you really want to delete this File/Folder?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Delete File/Folder?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Mrs.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Properties</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Show mouse position to viewers</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Share Audio with SIP Applet</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Share Audio with SIP and Video with Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Full-Fit</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>View Screen</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>The user</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>wants to share its screen. Do you want to see it?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Close</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>The Session was closed by the sharing User!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>New Screen Sharing</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimize</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximize</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Recording Timeline</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>My Recordings</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Public Recordings</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Name</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Length</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Date</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>By</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>PLAY</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Main - Video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Recording</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>You may record and share your screen at the same time. To enable others to see your screen just hit the start button on the top. To only record the Session it is sufficient to click start recording.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Start Recording</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Stop Recording</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download the FLV-File</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Room</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Play</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>User has microphone on</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Allow User Questions</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Turn this off to prevent that any user is disturbing you in this room. Effect is that the Button to ask for Moderation ("I have a question") is not visible.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rights</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Download as AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Audio only</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>The have been errors while processing the Recording.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>The Recording is not yet ready for watching. Please retry in a couple of minutes again.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Recorder Message</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP Applet is not Ready</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP-Account Settings</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP settings for each user. You can turn on or off SIP via the Administration &gt; Configuration (Key: enable_sip). The SIP data for each user should be created automatically. You can re-create the data by checking "Re-generate SIP Data"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-User</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Pass</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. You should check the authentification data of your SIP-Provider and the SIP-Account Data for each User. As Administrator you are still able to login and check the Configuration. As User or Moderator you will be blocked from any interaction.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. Contact your Service Team!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Show Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log messages from post recorder process</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Applet Message</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>The SIP-Applet is not ready. Accept the Applet please and click ok!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Get Moderation</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Save Appointment Changes</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointement has been changed. Do you want to save those changes? &lt;br/&gt;&lt;br/&gt;All attendees of the appointment will receive a EMail with the updated date and time (depending on the notification type of this appointment).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>To access other recordings you have to login the $APP_NAME Application.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Choose the User for this Video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available Users for this Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>You are a Moderator in this Interview. You can decide who is speaking in this interview and you can start / stop the recording of the Session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Start Recording</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Stop Recording</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>The recording of the Interview is already started.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>The recording is already stopped or not been started yet.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>The recording for this interview is already started!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Clear objects on current slide only!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the Status bar is send to participants!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make Team-Rooms [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new Team-Room!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new Conference Room ("Team Room") for them. The chosen users will automatically switch to the new Team-Room or get a notification. Team-Room Moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a Moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Username</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new Team-Room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create Team-Room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the Team-Room!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from Team-Room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Roomtype</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the System. The Backup includes all User generated data. The configuration is not included as well as the language labels. Because those values are imported with the System Installer. To update your System, export your old system (1) re-install into a new database the new package (2) and import the Backup file again (3). The Backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share Screen/Record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is Moderator, he can do anything!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/Deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose "Insert" from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about Copy and Paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Kick user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/thai.xml b/src/main/webapp/languages/thai.xml
new file mode 100644
index 0000000..532f022
--- /dev/null
+++ b/src/main/webapp/languages/thai.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>การประชุมกลุ่ม</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>การประชุม</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>งานต่างๆ</value>
+  </string>
+  <string id="4" name="settings">
+    <value>การตั้งค่า</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>โปรไฟล์</value>
+  </string>
+  <string id="6" name="admin">
+    <value>การบริหารงาน</value>
+  </string>
+  <string id="7" name="stop">
+    <value>หยุด</value>
+  </string>
+  <string id="8" name="record">
+    <value>บันทึก</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>ไม่มีไฟล์</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>บันทึกโดยอาจารย์</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>ผู้ใช้ที่เชื่อมต่อ:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>เริ่มการประชุม</value>
+  </string>
+  <string id="13" name="myname">
+    <value>ชื่อของฉัน</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>การประชุมผ่านวีดีโอ</value>
+  </string>
+  <string id="15" name="import">
+    <value>อัพโหลดไฟล์</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>รีเฟรชลิสต์รายการ</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>ไปยังไฟล์หลัก</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>โพลล์ใหม่</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>โพลล์ใหม่สำหรับการประชุม</value>
+  </string>
+  <string id="20" name="question">
+    <value>คำถาม:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>ประเภทของโพลล์:</value>
+  </string>
+  <string id="22" name="create">
+    <value>จัดทำ</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>ข้อมูล: ผู้ใช้ที่เชื่อมต่ออยู่แต่ละรายได้รับข้อความพร้อมด้วยโพลล์ใหม่</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>จัดทำโพลล์</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>ยกเลิก</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>ใช่/ไม่</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>เลข 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>โพลล์</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>ต้องเป็นผู้ดำเนินรายการจึงจะตั้งคำถามได้</value>
+  </string>
+  <string id="30" name="vote">
+    <value>การโหวตของคุณได้รับการลงทะเบียนแล้ว</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>คุณโหวตโพลล์นี้ไปแล้ว</value>
+  </string>
+  <string id="32" name="voting">
+    <value>เชิญโหวต!</value>
+  </string>
+  <string id="33" name="answer">
+    <value>คำตอบของคุณ:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>ใช่</value>
+  </string>
+  <string id="35" name="no">
+    <value>ไม่</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>อยากรู้:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>ผลการสำรวจโพลล์</value>
+  </string>
+  <string id="38" name="question">
+    <value>คำถาม:</value>
+  </string>
+  <string id="39" name="results">
+    <value>ผล:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>คำตอบ:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>ยังไม่มีการเริ่มการสำรวจโพลล์ใดเลย</value>
+  </string>
+  <string id="42" name="votings">
+    <value>เชิญโหวต!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>การประชุม (สูงสุด 4 ที่นั่ง)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>การประชุมกลุ่ม (สูงสุด 50 ที่นั่ง)</value>
+  </string>
+  <string id="45" name="type">
+    <value>ประเภท</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>ที่นั่งอื่นๆ</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>เลือกไปแล้ว</value>
+  </string>
+  <string id="48" name="enter">
+    <value>ป้อนข้อมูล</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>ผู้ดำเนินรายการออกจากที่ประชุมไปแล้ว</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>ข้อมูลระบบ</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>เลือกอุปกรณ์</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>เลือกเว็บแคม:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>เลือกไมโครโฟน:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>ตกลง</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>ยกเลิก</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>คุณต้องทำการเชื่อมต่อใหม่</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>แก้ไขการตั้งค่า</value>
+  </string>
+  <string id="58" name="course">
+    <value>หลักสูตร:</value>
+  </string>
+  <string id="59" name="language">
+    <value>ภาษา:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>ตกลง</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>ยกเลิก</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>ลบไวท์บอร์ด</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>คุณต้องการให้ลบไวท์บอร์ดให้ว่างก่อนที่จะเพิ่มรูปใหม่หรือไม่</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>ไม่ต้องถามอีก</value>
+  </string>
+  <string id="65" name="no">
+    <value>ไม่</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>แก้ไขการตั้งค่า</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>ขอให้ยืนยันอีกครั้งก่อนจะลบไวท์บอร์ดให้ว่าง</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>ข้อมูลผู้ใช้</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>ลบบริเวณวาดรูป</value>
+  </string>
+  <string id="70" name="undo">
+    <value>เลิกทำ</value>
+  </string>
+  <string id="71" name="redo">
+    <value>ทำซ้ำ</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>เลือกรายการ</value>
+  </string>
+  <string id="73" name="text">
+    <value>ข้อความ</value>
+  </string>
+  <string id="74" name="paint">
+    <value>ระบายสี</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>วาดเส้น</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>ขีดเส้นใต้</value>
+  </string>
+  <string id="77" name="rect">
+    <value>สี่เหลี่ยมผืนผ้า</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>วงรี</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>ลูกศร</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>ลบรายการที่เลือกไว้</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>สมัครเพื่อทำหน้าที่ดำเนินรายการ</value>
+  </string>
+  <string id="82" name="apply">
+    <value>สมัคร</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>ยกเลิก</value>
+  </string>
+  <string id="84" name="mod">
+    <value>กลายเป็นผู้ดำเนินรายการ</value>
+  </string>
+  <string id="85" name="close">
+    <value>ปิด</value>
+  </string>
+  <string id="86" name="italic">
+    <value>ตัวเอียง</value>
+  </string>
+  <string id="87" name="bold">
+    <value>ตัวหนา</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>กำลังรอ</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>ผู้ใช้ต้องการสมัครเป็นผู้ดำเนินรายการ:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>ยอมรับ</value>
+  </string>
+  <string id="91" name="reject">
+    <value>ปฏิเสธ</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>ยกเลิก</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>ส่งคำขอไปยังผู้ใช้ดังต่อไปนี้</value>
+  </string>
+  <string id="94" name="accept">
+    <value>ยอมรับแล้ว</value>
+  </string>
+  <string id="95" name="reject">
+    <value>ปฏิเสธแล้ว</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>เปลี่ยนผู้ดำเนินรายการ</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>คุณไม่ได้กำลังดำเนินหลักสูตรนี้!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>ผู้ดำเนินรายการ:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>ห้องนี้เต็มแล้ว ขออภัย โปรดลองใหม่ภายหลัง</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>วงรี</value>
+  </string>
+  <string id="101" name="close">
+    <value>ปิด</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>ข้อมูลที่กรอกขัดข้อง</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>ตัวอักษร 4 ตัวขึ้นไป อักษรตัวใหญ่มีผลสำคัญ</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>รหัสผู้ใช้ต้องมีตัวอักษรอย่างน้อย 4 ตัว</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>มีผู้ใช้ชื่อนี้ไปแล้ว</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>อีเมล์นี้ลงทะเบียนไปแล้ว</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>ระบบขัดข้อง โปรดติดต่อผู้ดูแลระบบ</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>ล็อคอิน</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>ผู้ใช้:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>รหัสผ่าน:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>ภาษา</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>ลงชื่อเข้าใช้</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>ลงทะเบียน</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>ผู้ใช้:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>รหัสผ่าน:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>พิมพ์ซ้ำ:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>ชื่อ:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>นามสกุล:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>อีเมล์:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>ประเทศ:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>ลงทะเบียน</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>ยกเลิก</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>ไม่ได้เป็นสมาชิก?</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>หน้าแรก</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>ผู้ใช้</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>กลุ่ม</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>องค์กร</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>ห้องประชุม</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>สาธารณะ</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>องค์กร</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>เข้าห้อง</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>ล็อกอิน</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>รหัสผ่าน</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>พิมพ์ซ้ำ</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>ชื่อ</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>นามสกุล</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>อีเมล์</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>วันเกิด</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>ถนน/เลขที่</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>รหัสไปรษณีย์/จังหวัด</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>ประเทศ</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>ข้อมูลที่อยู่</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>ข้อมูลผู้ใช้</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>บันทึก</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>บันทึก</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>หมายเลขประจำตัวผู้ใช้</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>ล็อคอิน</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>ชื่อ</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>นามสกุล</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>แสดงถัดไป</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>แสดงก่อนหน้านี้</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>ลบบันทึก</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>ยกเลิก</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>ลบ</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>บันทึกใหม่</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>รีเฟรชบันทึก</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>ลบบันทึก</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>สถานะ</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>ยกเลิกแล้ว</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>ใช้งานแล้ว</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>องค์กร</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>ปฏิทิน</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>ปิด</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>หมายเลขประจำองค์กร</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>ชื่อ</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>ผู้ใช้</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>ผู้ดำเนินรายการ</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>ผู้ดูแล</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>ระดับผู้ใช้</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>องค์กร</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>ชื่อ</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>เพิ่มองค์กร</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>เพิ่มองค์กร</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>ยกเลิก</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>เพิ่ม</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>ย้ายองค์กรออก</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>ผู้ใช้</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>เพิ่มผู้ใช้</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>ลบผู้ใช้</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>เพิ่มผู้ใช้</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>ค้นหาผู้ใช้</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>ค้นหา</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>ผู้ใช้</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>องค์กร</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>ป้อนข้อมูล</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>ห้องประชุมกลุ่ม</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>ห้องประชุมกลุ่ม</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>หมายเลขประจำตัว</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>ชื่อ</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>สาธารณะ</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>องค์กร</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>ห้องประชุม</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>ชื่อ</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>ประเภท</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>สาธารณะ</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>ข้อคิดเห็น</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>บันทึกและเอ็กซ์พอร์ต</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>โหลด</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>บันทึกเป็น</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>ชื่อไฟล์</value>
+  </string>
+  <string id="201" name="files">
+    <value>ชื่อไฟล์</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>ยกเลิก</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>ยกเลิก</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>ขัดข้อง</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>กำลังโหลด</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>รายการที่โหลดแล้ว</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>กำลังซิงค์โครไนซ์ลูกค้าอยู่ ลูกค้าต้องรอ:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>กำลังโหลดข้อมูลรูปภาพ</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>กำลังซิงค์โครไนซ์ลูกค้าอยู่ ลูกค้าต้องรอ:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>ลบบริเวณวาดรูป</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>ลบบริเวณวาดรูป ข้อมูลทั้งหมดบนไวท์บอร์ดจะสูญหายไป</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>ยืนยันก่อนโหลดไฟล์</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>ส่งคำเชิญ</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>ส่งคำเชิญ</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>เรื่อง</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>ผู้รับ</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>ข้อความ</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>ส่ง</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>ยกเลิก</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>ส่ง</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>ข้อมูลผู้ใช้</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>ชื่อเล่นของคุณในการประชุมครั้งนี้</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>ชื่อเล่น</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>ชื่อ</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>นามสกุล</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>อีเมล์</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>ภาษา</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>ป้อนข้อมูล</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>กำลังโหลด</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>กำลังดาวน์โหลดข้อมูล โปรดรอสักครู่!</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>รหัสผ่านผิด</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>โปรดใส่รหัสผ่านสองครั้งให้ตรงกันโดยมีตัวอักษรอย่างน้อย 6 ตัว</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>อีเมล์ผิด</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>อีเมล์ที่คุณกรอกไม่ถูกต้อง</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>การลงทะเบียนเสร็จสมบูรณ์</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>จัดทำบัญชีของคุณเสร็จเรียบร้อยแล้ว คุณสามารถล็อคอินได้แล้ว</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>คุณไม่สามารถแชร์หน้าจอได้ในขณะนี้ มีใครบางคนแชร์หน้าจอไปแล้ว</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>ห้ามแชร์</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>แชร์หน้าจอ</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>แบนด์วิธไม่ดี: คุณไม่สามารถซิงค์โครไนซ์หน้าจอได้ เฟรมต่างๆ จะถูกทิ้งไป หากมีคำเตือนนี้ปรากฏบ่อยครั้ง ควรขอให้ผู้ดำเนินรายการลดคุณภาพหน้าจอ</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>หน้าจอของ:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>ระบายสี</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>เอกสาร</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>แชท</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>ไฟล์</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>สมาชิก</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>ดาวน์โหลดเอกสารต้นฉบับ</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>ดาวน์โหลดเอกสาร PDF</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>โหลดการนำเสนอไปยังไวท์บอร์ด</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>การปรับแต่งค่า</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>ลากรายการนี้</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>ปรับขนาดรายการนี้</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>ของ</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>ไปยังหน้าแรก</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>ไปยังหน้าก่อนนี้</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>ไปยังหน้าถัดไป</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>ไปยังหน้าสุดท้าย</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>ขยายย่อ --</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>ขยายใหญ่ ++</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>นาย</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>นางสาว</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>การปรับแต่งค่า</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>หมายเลขประจำตัว</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>ปุ่ม</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>การปรับแต่งค่า</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>ปุ่ม</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>อัพเดทล่าสุด</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>อัพเดทโดย</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>ข้อคิดเห็น</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>ค่า</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>ของ</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>ผู้ใช้</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>ลบผู้ใช้ออกจากองค์กร</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>ลบ</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>ผู้ใช้รายนี้เป็นสมาชิกขององค์กรนี้อยู่แล้ว</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>ข่าวสาร</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>ควิกลิงค์</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>ไปยังการประชุม</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>ไปยังหอประชุม</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>ข้อมูลช่วยเหลือและสนับสนุน</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>รายงานเหตุขัดข้อง!</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>เพิ่มเติม</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>เว็บไซต์ของโครงการ (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>รายชื่ออีเมล์ของผู้ใช้ (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>จำชื่อล็อคอิน</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>เนื้อหา</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>หน้าหลักของฉัน</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>การประชุมที่นัดหมายไว้ของฉัน</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>งานที่นัดหมายไว้ของฉัน</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>การประชุมสาธารณะ</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>การประชุมส่วนตัว</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>งานสาธารณะ</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>งานส่วนตัว</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>เนื้อหาสาธารณะ</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>เนื้อหาส่วนตัว</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>เนื้อหาส่วนบุคคล</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>การดำเนินรายการ</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>สมัครเพื่อทำหน้าที่ดำเนินรายการ</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>โพลล์</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>เลือกไฟล์</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>การตั้งค่า</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>การตั้งค่ากล้องและไมโครโฟน</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>การตั้งค่าไวท์บอร์ด</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>ออก</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>กลับไปยังห้อง</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>ล็อคเอ้าท์</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>ลืมรหัสผ่าน?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>ตั้งรหัสผ่านใหม่</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>โดยอีเมล์</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>โดยชื่อล็อคอิน</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>อีเมล์ของคุณ</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>ชื่อล็อคอินของคุณ</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>ส่งอีเมล์พร้อมลิงค์สำหรับตั้งรหัสผ่านใหม่</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>ไม่พบอีเมล์แอดเดรสดังกล่าว ดูให้แน่ใจว่าคุณกรอกอีเมล์แอดเดรสเดียวกับที่คุณใช้ในการจัดทำบัญชีของคุณ</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>โปรดกรอกอีเมล์หรือชื่อผู้ใช้</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>ไม่มีผู้ใช้รายใดเชื่อมต่อกับชื่อผู้ใช้รายนี้</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>ได้ส่งอีเมล์ซึ่งมีลิงค์พิเศษไปยังอีเมล์แอดเดรสของคุณแล้ว โปรดเช็คอีเมล์ด้วย หากยังคงไม่ได้รับอีเมล์ โปรดปรับการตั้งค่าอีเมล์สแปมและส่งอีเมล์ยืนยันใหม่อีกครั้ง</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>ขัดข้อง</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>ข้อความ</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>รหัสผ่านไม่ถูกต้อง ไม่พบผู้ใช้</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>ตั้งรหัสผ่านของคุณใหม่</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>ล็อคอิน</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>เปลี่ยนรหัสผ่าน</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>รหัสผ่านใหม่</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>กรอกรหัสผ่านใหม่</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>รหัสผ่านที่คุณกรอกไม่ตรงกัน</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>ตัวอักษร 4 ตัวขึ้นไป อักษรตัวใหญ่มีผลสำคัญ</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>ตั้งรหัสผ่านแล้ว คุณสามารถล็อคอินได้แล้ว</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>ตกลง</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>ขัดข้องโดยไม่ทราบสาเหตุ โปรดรายงานต่อทีมบริการของคุณ</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>ไม่พบชื่อผู้ใช้</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>รหัสผ่านไม่ถูกต้อง</value>
+  </string>
+  <string id="337" name="logout">
+    <value>ออกจากระบบเรียบร้อยแล้ว</value>
+  </string>
+  <string id="338" name="registration">
+    <value>การลงทะเบียนถูกยกเลิกแล้ว</value>
+  </string>
+  <string id="339" name="registration">
+    <value>อีเมล์ไม่ถูกต้อง</value>
+  </string>
+  <string id="340" name="registration">
+    <value>ชื่อไฟล์ซ้ำ โปรดเลือกชื่อไฟล์อื่น</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>ชื่อไฟล์สั้นเกินไป</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>บันทึกที่อยู่ไม่ได้</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>เพิ่มผู้ใช้แล้ว แต่คุณต้องมอบหมายผู้ใช้รายนี้ให้แก่องค์กรใดองค์กรหนึ่ง มิฉะนั้นเขาจะไม่สามารถลงชื่อเข้าใช้ได้</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>บันทึกใหม่</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>ไม่พบฟิลด์ที่มาพร้อมกับหมายเลขฟิลด์นี้</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>ไม่พบป้ายชื่อสำหรับฟิลด์นั้น</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>ต้องใช้การอนุญาตจากผู้ดูแล</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>โปรแกรมแก้ไขภาษา</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>ภาษา</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>หมายเลขประจำป้าย</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>ป้ายชื่อ</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>ค่า</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>ค่าฟิลด์</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>ป้ายชื่อ</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>ค่าป้าย</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>หมายเลขประจำป้าย</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>คุณลบแต่ป้ายเท่านั้น ไม่ได้ลบฟิลด์! คุณลบฟิลด์ไม่ได้ อาจเป็นเพราะว่าฟิลด์มีป้ายเป็นภาษาอื่น</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>หมายเลขประจำป้ายไม่ถูกต้อง ไม่พบหมายเลขประจำค่าภาษาของฟิลด์นั้นในฐานข้อมูล</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>คุณลบฟิลด์นี้ไม่ได้ คุณลบได้แต่เพียงป้ายเท่านั้น ลบฟิลด์ไม่ได้ ไม่มีการโหลดป้ายในขณะนี้ อาจเป็นเพราะว่าไม่ได้เลือกฟิลด์ใดเลยหรือว่าไม่มีป้ายสำหรับภาษานี้สำหรับฟิลด์ที่กำหนด</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>เอ็กซ์พอร์ต</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>คุณจะต้องออกจากระบบก่อน จึงจะเห็นการเปลี่ยนแปลง</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>เพิ่มภาษาใหม่</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>ลบภาษา</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>เพิ่มภาษาใหม่</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>ชื่อ</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>เพิ่มภาษา</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>สำรองข้อมูล</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>ไปยังหน้าแรก</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>ไปยังหน้าก่อนนี้</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>ไปยังหน้าถัดไป</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>ไปยังหน้าสุดท้าย</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>ผู้ใช้พูด (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>เปิด/ปิดเสียง</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>ระบบ</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>การตั้งค่าของคุณ</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>สวัสดี</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>แก้ไขโปรไฟล์ของคุณ</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>ข้อความใหม่:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>อัพโหลดภาพใหม่ๆ</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>ข้อมูลผู้ใช้ - เอ็กซ์พอร์ต</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>ต้องมีทุกองค์กรอยู่ก่อนแล้ว</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>เริ่มเอ็กซ์พอร์ต</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>โดยองค์กร</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>เริ่มเอ็กซ์พอร์ต</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>ข้อมูลผู้ใช้ - อิมพอร์ต</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>เลือกผู้ใช้.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>อิมพอร์ต</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>เอ็กซ์พอร์ตไปยัง XML – ไฟล์เหล่านี้สามารถใช้เพื่อ – ส่งเสริมโครงการ – อิมพอร์ตไปยังระบบอื่น – สำรองข้อมูล – การปรับตามความต้องการ - ใส่ไว้ในรายชื่อภาษาสำหรับการติดตั้งครั้งต่อไป</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>เลือกไฟล์ภาษาเพื่ออิมพอร์ต เลือกภาษาที่ถูกต้องจาก Combobox! ไม่ว่าชื่อไฟล์จะเป็นอะไรก็ตาม ก็จะอิมพอร์ตเป็นภาษานี้!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>อิมพอร์ต - เลือกไฟล์</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>บันทึกเป็น</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>ชื่อ:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>ข้อคิดเห็น:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>บันทึก</value>
+  </string>
+  <string id="395" name="record">
+    <value>บันทึก</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>บันทึกผู้ชม</value>
+  </string>
+  <string id="397" name="record">
+    <value>บันทึกห้องสาธารณะและห้องส่วนตัว</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>ผู้ใช้:</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>เข้าร่วม:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>ผู้ใช้ในห้องนี้:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>รีเฟรช</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>ห้องนี้เต็มแล้ว อีกสักครู่โปรดลองใหม่</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>คลิกที่ห้องเพื่อดูรายละเอียด</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>แชทกับผู้ใช้ในห้องนี้</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>ห้อง:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>ผู้ใช้ในห้องนี้:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>ตั้งแต่:</value>
+  </string>
+  <string id="409" name="record">
+    <value>เล่นบันทึก</value>
+  </string>
+  <string id="410" name="record">
+    <value>ความยาว</value>
+  </string>
+  <string id="411" name="record">
+    <value>วันที่</value>
+  </string>
+  <string id="412" name="record">
+    <value>โหมดการบันทึก! คุณไม่สามารถเปลี่ยนแปลงค่าใดๆ ได้ ไฟล์นี้ได้รับการบันทึกไว้แล้ว</value>
+  </string>
+  <string id="413" name="record">
+    <value>เล่นบันทึกนี้</value>
+  </string>
+  <string id="414" name="record">
+    <value>เล่น / หยุดชั่วคราว</value>
+  </string>
+  <string id="415" name="record">
+    <value>เริ่มการบันทึก</value>
+  </string>
+  <string id="416" name="record">
+    <value>หยุดการบันทึก</value>
+  </string>
+  <string id="417" name="record">
+    <value>Recording: / บันทึก:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>มีคนกำลังบันทึกอยู่ในขณะนี้</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>กำลังบันทึก! โดยผู้ใช้:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>ยกเลิก</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>การบันทึกจะถูกยกเลิกและไม่บันทึกไว้</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>เล่นต่อ</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>ปิดหน้าต่างนี้และกลับเข้าสู่การบันทึก</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>เปลี่ยนสีเส้น</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>เลือกสี</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>ยกเลิก / เริ่มใช้เส้นสี</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>เปลี่ยนสีเติม</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>ยกเลิก / เริ่มใช้สีเติม</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>เปลี่ยนความหนาของเส้น</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>ปิด</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>เปลี่ยนขนาดตัวอักษร</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>ลบการบันทึก</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>แขก</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>โดย:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>ชื่อ</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>ห้อง</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>วันที่</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>ยกเลิก</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>เริ่ม</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>ชื่อ</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>วันที่</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>ลบเซิร์ฟเวอร์-บันทึกการแชท</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>แชท</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>ส่งข้อความ</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>อีโมติคอน</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>อีโมติคอน</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>เลือกอุปกรณ์ที่ใช้เผยแพร่</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>เสียงและภาพวีดีโอ</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>เสียงเท่านั้น</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>ภาพวีดีโอเท่านั้น</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>ไม่มีเสียง/ภาพวีดีโอ (ภาพนิ่ง)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>ไม่เผยแพร่เสียง/ภาพวีดีโอจากเครื่องคอมพิวเตอร์ของคุณสู่สาธารณะ โดยที่จะแสดงภาพจากโปรโฟล์ของคุณแทน ควรเลือกการตั้งค่าเหล่านี้หากคุณมีปัญหากับแบนด์วิธหรืออินเตอร์เน็ตช้ามาก</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>จ</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>อ</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>พ</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>พฤ</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>ศ</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>ส</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>อา</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>วันจันทร์</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>วันอังคาร</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>วันพุธ</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>วันพฤหัสบดี</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>วันศุกร์</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>วันเสาร์</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>วันอาทิตย์</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>สัปดาห์</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>สัปดาห์ตามปฏิทิน</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>มกราคม</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>กุมภาพันธ์</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>มีนาคม</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>เมษายน</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>พฤษภาคม</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>มิถุนายน</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>กรกฎาคม</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>สิงหาคม</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>กันยายน</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>ตุลาคม</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>พฤศจิกายน</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>ธันวาคม</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>ปฏิทิน</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>ผู้เข้าร่วม</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>แสดงการตั้งค่าโครงร่าง</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>กว้าง | สูง</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>กล่องวีดีโอ</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>กล่องการดำเนินรายการ</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>กล่องไวท์บอร์ด</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>ดำเนินการแล้ว</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>กว้าง | สูง</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>กล่องไฟล์ แชท ผู้เข้าร่วม</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>ดำเนินการแล้ว</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>กว้าง | สูง</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>ผู้ดำเนินรายการออกจากห้องไปแล้ว ไม่มีใครอยู่ในขณะนี้ คุณสามารถสมัครเพื่อทำหน้าที่ดำเนินรายการได้หรือรอ</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>ผู้ดำเนินรายการออกจากห้องไปแล้ว แต่มีผู้เข้าร่วมบางรายอยู่ คุณต้องสมัครเพื่อทำหน้าที่ดำเนินรายการหรือรอ</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>ผลตอบรับการประชุมแบบเปิด</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>การประชุมแบบเปิด – คำเชิญ</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>ข้อความจากผู้ใช้</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>ข้อความ</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>คลิกลิงค์นี้เพื่อเข้าร่วมการประชุม</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>คลิกที่นี่เพื่อเข้าห้อง</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>หากมีปัญหากับลิงค์นี้ โปรดคัดลอกลิงค์นี้แล้วนำไปวางที่เบราวเซอร์:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>ลงทะเบียนการประชุมแบบเปิด</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>ข้อมูลผู้ใช้ของคุณ:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>ชื่อล็อคอิน:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>รหัสผ่าน:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>อีเมล์:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>การประชุมแบบเปิด - ทีม</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>ลงทะเบียนการประชุมแบบเปิด</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>การประชุมแบบเปิด - ตั้งรหัสผ่านใหม่</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>คลิกลิงค์นี้เพื่อกรอกรหัสผ่านใหม่:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>คลิกที่นี่เพื่อกรอกรหัสผ่านใหม่</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>หากมีปัญหากับลิงค์นี้ โปรดคัดลอกลิงค์นี้แล้วนำไปวางที่เบราวเซอร์:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>การประชุมแบบเปิด ตั้งรหัสผ่านใหม่</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>โปรดกรอกวันที่ที่ถูกต้อง ตัวอย่างเช่น 24/12/2001 (วว/ดด/ปปปป)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>โปรดกรอกอีเมล์ที่ถูกต้อง ตัวอย่างเช่น name@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>โปรดกรอกตัวเลขที่มีจุดทศนิยม เช่น 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>โปรดกรอกตัวเลข (จำนวนเต็ม) ตัวอย่างเช่น 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>โปรดกรอกหมายเลขโทรศัพท์ที่ถูกต้อง ตัวอย่างเช่น ++49 0123 123123</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>โปรดกรอกเวลาที่ถูกต้อง เช่น 12.33 (ชช.นน)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>ป้องกันรหัสผ่านแล้ว</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>รหัสผ่าน</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>ระยะเวลาที่ใช้การได้</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>ไม่จำกัด</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>จำกัดระยะเวลา</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>ใช้ครั้งเดียว</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>ใช้งานได้ตั้งแต่:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>ถึง:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>คำเชิญเข้าสู่การประชุมแบบเปิด</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>ไม่มีคำเชิญสำหรับรหัสคำเชิญนี้</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>คำเชิญนี้ใช้ไปแล้ว คำเชิญประเภทนี้ไม่สามารถใช้ซ้ำได้</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>รหัสคำเชิญนี้ไม่ถูกต้อง</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>รหัสผ่าน:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>ตรวจสอบรหัสผ่าน</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>รหัสผ่านไม่ถูกต้อง!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>เสียง_ภาพวีดีโอ</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>ซิงค์โครไนซ์เสียง/ภาพวีดีโอ</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>ล็อคอินถูกต้อง แต่หมวดที่คุณล็อกอินนั้นไม่ได้ใช้งานอยู่หรือไม่ได้จัดเก็บไว้ในเซิร์ฟเวอร์ คุณจะต้องขอหมายเลขประจำหมวดใหม่และลองล็อกอินอีกครั้ง</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>ยังไม่ได้ล็อคอินหมายเลขประจำหมวดหรือไม่มีสิทธิ์ของผู้ดูแล SOAP Gateway จำเป็นต้องใช้ผู้ใช้ที่สิทธิ์ของผู้ดูแลในการฝากฝังผู้ใช้รายใหม่</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>หมวดนี้ไม่มีการเชื่อมต่อข้อมูลผู้ใช้ระยะไกล อาจเป็นเพราะว่าคุณไม่ได้เรียก SOAP-Gateway ก่อนที่จะเข้าใช้โปรแกรมหรือว่าคุณใช้หมายเลขประจำหมวดผิด</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>ตัวบันทึกในปัจจุบันอยู่ในช่วงทดลองใช้!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>แกน x</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>แกน y</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>กว้าง</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>ความกว้าง</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>สูง</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>ความสูง</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>เปลี่ยนความโปร่งแสง</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>เปิดเบราวเซอร์</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>ปิดเบราวเซอร์</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>การเชื่อมต่อกับเซิร์ฟเวอร์ขาดลง คุณจำเป็นต้องโหลดโปรแกรมใหม่หรือ/และตรวจสอบเครือข่ายของคุณ</value>
+  </string>
+  <string id="557" name="557">
+    <value>พอยเตอร์</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>กำลังซิงค์โครไนซ์</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>กำลังซิงค์โครไนซ์กับผู้ใช้ โปรดรอสักครู่</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;ดาวน์โหลดเป็น SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;ดาวน์โหลดเป็น PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;ดาวน์โหลดเป็น JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;ดาวน์โหลดเป็น PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;ดาวน์โหลดเป็น TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>เตือนความจำ:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>ประเภท:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>การทำซ้ำ:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>ไม่มี</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>สถานที่ตั้ง:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>เริ่ม</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>สิ้นสุด</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>หัวข้อ:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>ข้อคิดเห็น:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>เชิญผู้อื่น</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>รายวัน</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>รายเดือน</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>รายปี</value>
+  </string>
+  <string id="578" name="alert">
+    <value>การสิ้นสุดการนัดต้องเป็นหลังจากการเริ่มต้นการนัด!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>โปรดแทรกหัวข้อ!</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>เปิดใช้งานส่วนนี้หากภาษาที่คุณใช้เป็นแบบขวาไปซ้าย (การเรียงคำกลับกัน)</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>แดชบอร์ด</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>ชมการประชุมและงานอีเวนท์ที่บันทึกไว้</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>การประชุม - เปิดการประชุมตั้งแต่ผู้ใช้ 4 รายขึ้นไป (มากที่สุด 16 ราย)&lt;br/&gt;ทุกท่านสามารถเข้าใช้เสียง + ภาพวีดีโอได้</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>งานอีเวนท์ - เปิดการประชุมโดยมีผู้เข้าร่วมได้มากที่สุด 200 ราย&lt;br/&gt;ผู้ดำเนินรายการเท่านั้นที่สามารถใช้เสียง/ภาพวีดีโอได้</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>สร้างผู้ใช้ ห้อง องค์กร&lt;br/&gt; + เปลี่ยนการปรับแต่งค่า</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Users in this Room now</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Login</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Loading Document. Please wait untill all Client have been synchronized.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Upload complete, converting Document ...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Start Upload</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Upload and Import Dialog. Please select a File from your Disk.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Cancel</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Select File</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Connections</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Value</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Streamid</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Login</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Connected since</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Room / Scope</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Kick User</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Kick User</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Do you really want to kick this Client from the Connection?&lt;br/&gt; This does only remove the Client from the current Room.The Client could re-login again.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Your session has been closed by an Administrator or Moderator.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Phone</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>User is the Moderator of this Room</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>User is allowed to draw on the Whiteboard</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Re) Start Audio/Video or change Device Settings</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Allow this User to draw on the Whiteboard</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Remove ability to draw on whiteboard</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Users</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Files</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Whiteboard</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Chat</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Your account is assigned to multiple Organizations. Please choose one for this Session.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>This room is full at the moment. Please try again later.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Room Type</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Appointment Room</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Server Time</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - Reminder</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Message from User:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Message:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Click this link to participate in the Meetings:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Click here to enter room</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>if you have problems with the link, please copy and paste this to your browser:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>search intern</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>extern users</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>pre name</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>name</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>E-mail</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Confirm logout</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Are you sure you want to logout now?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Actions</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Demo Room</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Demo Time</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Meeting Timer</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>This Room is a Demo Room. To disable this warning you either should get a private meeting room for your personal usage or set up an own Server. You will be automatically logged off in:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Moderated</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Please wait untill the Moderator has entered the Room. The Moderator can be either a Teacher, Admin or the creator of this Room.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Ok</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Incoming Screen Sharing</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>There is a new Screen Sharing incoming from the User:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Start Sharing</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Add new Meeting</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Meeting Room</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Event Room</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderation</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Moderate Users</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Moderate Rooms</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Do you want to change this User to become a Moderator of that Organization?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Please choose an Organization before you try to add a User to it!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organization - Moderator</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Do you really want to delete this User from the Organization?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>This User is Moderator</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>This User is No-Moderator</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Do you want this User to be not a Moderator of this Organization?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Add or delete Users or Rooms within your Organization</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Do you really want to delete this record?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Do you really want to delete this user from your organization? You will only delete the connection between the user and your organization, to really delete the user itself you have to login into the Administration-Panel.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>You cannot delete your own User!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>This Method needs a Adminstration Account to be invoked!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>There was no Session associated with this ID.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>This is an Administrator or Moderator account. You can only edit this account through the Administration Panel.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>To complete your registration please click on the following link. Or copy the URL to your browser bar.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Click to verify your E-Mail</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>No user was found for this Hash.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>This user is already activated!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>You did successfully activate your account!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Login Now</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Your account is not activated. First use the link in the Email you've received during registration.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>You successfully signed up. We've send an EMail with a verification Code to your Mail. Please check your Inbox.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Remove Moderation Role from this User</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Grant Moderation Rights to this User</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>User</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Access to whiteboard</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderator</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Moderation: Please choose any User on the List to grant him access to the Whiteboard, Moderation or Video.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>This User is already Moderator, so he has automatically the right to draw.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>This is you! You cannot remove the Moderation rights from yourself.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Allow this User to Publish his Audio / Video</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Remove Audio/Video of this User</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>I would like to get the moderation of this room</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>I would like to draw on whiteboard</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>I would like to share my Audio/Video</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>You are moderator of this room</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>You are allowed to draw on whiteboard</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>You are allowed to share your Audio/Video</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Message to Moderator</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>The User</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>would like to get the Moderation. Use the status Icons next to the user in the List of Users to add or remove the Moderation.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>would like to draw on whiteboard. Use the status Icons next to the user in the List of Users to add or remove the right to draw anything on the whiteboard.</value>
+  </string>
+  <string id="695" name="695">
+    <value>would like to share his Audio/Video. Use the status Icons next to the user in the List of Users to add or remove the right to share Audio/Video for any User.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>You have to wait untill a Moderator enters the room.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Cancel</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Save</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Day</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Month</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Year</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Upload File</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Refresh</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Trash (Drag and Drop item here)</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>My Files (Home Drive)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Room Files (Public Drive)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Add File</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Delete Folder</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Edit Name</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>New Folder</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Are you sure you want to delete this Item?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Open Document</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Show all Files (Tree View)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Close Document</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Delete File</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>You are not allowed to draw anything on the Whiteboard. You have to become Moderator or at least get the Right to edit Whiteboard. You may ask a Moderator to give you that right.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Document Properties</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Start Client (external)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Start Client (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>A user want to share his screen. Do you want to see it?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>You are currently sharing your Desktop. For stopping the Sharing Session please hit the Stop button in the Sharing Client.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Sharing Session</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>You are already sharing your desktop!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Desktop Viewer</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Exit</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Desktop Sharer</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Click Start to publish your screen</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Start Sharing</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Select your screen area:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Change width</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>The Sharer has finished this session!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Change height</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-Offset</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-Offset</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Width:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Height:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Connection was closed by Server</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Cancel</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Start External</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>If you close this session completely you are not able to restart the viewer for this session.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Confirm Closing Viewer Session</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Share Screen</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Record Session</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Co-Browsing</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Ooops, ... Firefox on Windows does not show clear Co-Browsing. Please use another Browser for using the Co-Browsing feature.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Previous</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Next</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Reload</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Home</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Load</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Add this website as Default website to your Profile.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Test Setup</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Check you Microphone and Camera setup before you enter a room by recording some seconds. You can then replay your recording to check your voice and picture.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Don't show this test anymore</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Cancel</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Start Conference</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Do not ask again</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>You may proceed without testing if you do not plan to publish your voice or picture. Participants without Audio or Video can still use the Whiteboard, share their Desktop or write Chat messages.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="test setup">
+    <value>Level-Meter</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Press Start</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Start Event</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Choose Room</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Check Setup</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="774" name="start view">
+    <value>How to conference</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Start Recording</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Do not show Audio / Video Test (Recording) before entering a Conference</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Public Rooms</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Public Rooms are accessible for all Users.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Private Rooms</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Private Rooms are only accessible for users of the same organization.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>My Rooms</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Rooms in this section are created for personal usage. There are some standard rooms plus the ones that are created through the calendar and have a start and an end date. The rooms created via the calendar are only listed in this section as long as they are valid.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>You have to be moderator to do this.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Apply for moderation</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Apply for whiteboard access</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Apply for camera/microphone access</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>This Session Hash was already used. You cannot use it twice.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>START</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>EXIT</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Do you really want to exit? You might should clear uploaded documents, whiteboard and the chat history.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Exit conference</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Rooms</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Choose a room for a meeting</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>There is an unsaved Event in the Calendar. Please either save it or remove it.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Please add at least one attendee for your meeting!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Do you really want to delete this Event?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Warning</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Add Event</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>Day</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>Week</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>Month</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Description</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Attendees</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, your Web Conferencing Platform. Either follow the Instructions, press the start button to start to conference immediatelly or you goto the Calendar and set up a Conference for the future.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Plan a Meeting</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>To set up a conference you can add a new Event in the Calendar.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Need help?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Restricted</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Search</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Add</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>There is no User selected. Please select an item from the list first and then hit add.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Add Attendee</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Save</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Delete</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Event Details</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Default Moderators</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Name</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>E-Mail</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Add new default Moderator</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Is Super Moderator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>If the Room is moderated, User with Level Moderator or Administrator are automatically Moderator if they enter the Room. If you don't want to specify that and only want a certain User to become Moderator use the Default Moderator option.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>A Super Moderator is always a Moderator when he enters a Room, and nobody can remove the Moderation Flag from him</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Apply Super-Moderation to User</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Remove Super Moderation from User</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>If you add an Organization to the room only users of that Organization have access to it (This is only valid if the isPublic flag is set to false!)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderation</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitations</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organization</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Are you sure?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Do you really want to delete this Item? You have to press the save button to store the changes!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>There is no User selected. Please select first before you add it!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Add new Default Moderator</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Do you want to add the Super Moderation Flag for this User? A Super Moderator is not only Moderator of a Room, but also no other Moderator can remove the Moderation Flag for this User. You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Do you want to remove the Super Moderation Flag for this User? You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>This User is a Super-Moderator. You cannot remove the Moderation flag from a Super-Moderator!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Do you really want to delete this File/Folder?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Delete File/Folder?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Mrs.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Properties</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Show mouse position to viewers</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Share Audio with SIP Applet</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Share Audio with SIP and Video with Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Full-Fit</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>View Screen</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>The user</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>wants to share its screen. Do you want to see it?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Close</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>The Session was closed by the sharing User!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>New Screen Sharing</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimize</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximize</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Recording Timeline</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>My Recordings</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Public Recordings</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Name</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Length</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Date</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>By</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>PLAY</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Main - Video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Recording</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>You may record and share your screen at the same time. To enable others to see your screen just hit the start button on the top. To only record the Session it is sufficient to click start recording.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Start Recording</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Stop Recording</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download the FLV-File</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Room</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Play</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>User has microphone on</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Allow User Questions</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Turn this off to prevent that any user is disturbing you in this room. Effect is that the Button to ask for Moderation ("I have a question") is not visible.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rights</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Download as AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Audio only</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>The have been errors while processing the Recording.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>The Recording is not yet ready for watching. Please retry in a couple of minutes again.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Recorder Message</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP Applet is not Ready</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP-Account Settings</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP settings for each user. You can turn on or off SIP via the Administration &gt; Configuration (Key: enable_sip). The SIP data for each user should be created automatically. You can re-create the data by checking "Re-generate SIP Data"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-User</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Pass</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. You should check the authentification data of your SIP-Provider and the SIP-Account Data for each User. As Administrator you are still able to login and check the Configuration. As User or Moderator you will be blocked from any interaction.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. Contact your Service Team!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Show Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log messages from post recorder process</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Applet Message</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>The SIP-Applet is not ready. Accept the Applet please and click ok!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Get Moderation</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Save Appointment Changes</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointement has been changed. Do you want to save those changes? &lt;br/&gt;&lt;br/&gt;All attendees of the appointment will receive a EMail with the updated date and time (depending on the notification type of this appointment).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>To access other recordings you have to login the $APP_NAME Application.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Choose the User for this Video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available Users for this Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>You are a Moderator in this Interview. You can decide who is speaking in this interview and you can start / stop the recording of the Session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Start Recording</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Stop Recording</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>The recording of the Interview is already started.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>The recording is already stopped or not been started yet.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>The recording for this interview is already started!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Clear objects on current slide only!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the Status bar is send to participants!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make Team-Rooms [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new Team-Room!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new Conference Room ("Team Room") for them. The chosen users will automatically switch to the new Team-Room or get a notification. Team-Room Moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a Moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Username</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new Team-Room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create Team-Room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the Team-Room!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from Team-Room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Roomtype</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the System. The Backup includes all User generated data. The configuration is not included as well as the language labels. Because those values are imported with the System Installer. To update your System, export your old system (1) re-install into a new database the new package (2) and import the Backup file again (3). The Backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share Screen/Record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is Moderator, he can do anything!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/Deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose "Insert" from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about Copy and Paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Kick user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/timezones.xml b/src/main/webapp/languages/timezones.xml
new file mode 100644
index 0000000..76302fc
--- /dev/null
+++ b/src/main/webapp/languages/timezones.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<timezones xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+    xsi:noNamespaceSchemaLocation="timezones.xsd">
+	<!-- 
+		This file is loaded during installation to the database table "om_timezones" of OpenMeetings. 
+		Changes at runtime to this file have no effect to OpenMeetings.
+	
+		Attributes:
+	
+		1) orderId
+		The orderId is just an indicator for the position in the drow down box inside 
+		OpenMeetings UI, there can be duplicates
+		However the order in the XML should be correct cause the Web-installer/CLI-Installer
+		will display the timezones exactly in the order of the XML.
+		
+		2) name
+		A common name in short
+		
+		3) label
+		Long name, displayed in UI
+		
+		4) iCal
+		this is the actual name, OpenMeetings will use to match again Java's timezones 
+		(http://docs.oracle.com/javase/6/docs/api/java/util/TimeZone.html)
+		
+		to get all available id that are available in your Java JRE see:
+		http://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/test/timezone/TestGetIds.java
+		
+		For updating the JRE runtime with different tz-file, see:		
+		http://www.oracle.com/technetwork/java/javase/timezones-137583.html
+	 -->
+    <timezone orderId="0" name="Etc/GMT+13" label="Samoa" iCal="Pacific/Apia" />
+	<timezone orderId="1" name="Etc/GMT+12 (New Zealand)" label="New Zealand" iCal="Pacific/Auckland" />
+    <timezone orderId="1" name="Etc/GMT+12" label="Kiribati (Gilbert Islands), Fiji, Russia (Kamchatka Krai)" iCal="Pacific/Fiji" />
+    <timezone orderId="2" name="Etc/GMT+11" label="Vladivostok, Kamchatka, Solomon Islands, New Caledonia" iCal="Asia/Vladivostok" />
+    <timezone orderId="3" name="Etc/GMT+10 (Australia/NSW)" label="Australia (NSW,Sydney,Tasmania), Yakutsk" iCal="Australia/Sydney" />
+    <timezone orderId="3" name="Etc/GMT+10 (Australia/Queensland)" label="Russia (Zabaykalsky Krai), Papua New Guinea, Australia (Queensland)" iCal="Australia/Queensland" />
+    <timezone orderId="3" name="Etc/GMT+10" label="Lord Howe Island - Australia GMT+10:30" iCal="Australia/Lord_Howe" />
+    <timezone orderId="4" name="Etc/GMT+9 (Japan)" label="Japan/Korea Standard Time, Irkutsk, East Timor" iCal="Asia/Tokyo" />
+    <timezone orderId="4" name="Etc/GMT+9 (Australia-North)" label="Australia (Nothern Territory,Darwin) GMT+9:30" iCal="Australia/Darwin" />
+    <timezone orderId="4" name="Etc/GMT+9 (Australia-South)" label="Australia (Southern Territory,Adelaide) GMT+9:30" iCal="Australia/Adelaide" />
+    <timezone orderId="5" name="Etc/GMT+8" label="China Standard Time, Krasnoyarsk, Philippines, Singapore" iCal="Asia/Singapore" />
+    <timezone orderId="6" name="Etc/GMT+7" label="Novosibirsk, Indochina Time, Thailand, Vietnam, Jakarta" iCal="Asia/Jakarta" />
+    <timezone orderId="7" name="Etc/GMT+6" label="Yekaterinburg, Almaty, Bangladesh" iCal="Asia/Yekaterinburg" />
+    <timezone orderId="8" name="IST" label="Indian Standard Time GMT+5.30" iCal="Asia/Kolkata" />
+    <timezone orderId="9" name="Etc/GMT+5" label="Uzbekistan, Pakistan, Maldives" iCal="Asia/Karachi" />
+    <timezone orderId="10" name="Asia/Kabul" label="Kabul GMT+4.30 " iCal="Asia/Kabul" />
+    <timezone orderId="11" name="Etc/GMT+4" label="Moscow, Saint Petersburg, Georgia, Armenia, Azerbaijan, United Arab Emirates" iCal="Europe/Moscow" />
+    <timezone orderId="12" name="Asia/Tehran" label="Tehran GMT+3.30" iCal="Asia/Tehran" />
+    <timezone orderId="13" name="Etc/GMT+3" label="Kaliningrad, Minsk, Iraq, Saudi Arabia" iCal="Europe/Kaliningrad" />
+    <timezone orderId="14" name="Etc/GMT+2" label="Finland, Lithuania, Belarus, Ukraine, Romania, Bulgaria" iCal="Europe/Helsinki" />
+    <timezone orderId="14" name="Etc/GMT+2" label="Libya, Egypt, South Africa, Zimbabwe" iCal="Africa/Cairo" />
+    <timezone orderId="15" name="Etc/GMT+1" label="France, Germany, Spain, Italy" iCal="Europe/Berlin" />
+    <timezone orderId="15" name="Etc/GMT+1 (North Africa)" label="Angola, Cameroon, Nigeria, Tunisia" iCal="Africa/Tunis" />
+    <timezone orderId="16" name="Etc/GMT" label="Iceland, United Kingdom, Ireland" iCal="Europe/London" />
+    <timezone orderId="16" name="Etc/GMT (North Africa)" label="Côte d'Ivoire, Faroe Islands, Ghana, Iceland, Senegal" iCal="Africa/Dakar" />
+    <timezone orderId="17" name="Etc/GMT-1" label="Azores, Cape Verde" iCal="Atlantic/Cape_Verde" />
+    <timezone orderId="18" name="Etc/GMT-2" label="Fernando de Noronha" iCal="America/Noronha" />
+    <timezone orderId="19" name="Etc/GMT-3 (Brazil)" label="Brazil (Brasília, Rio de Janeiro, São Paulo), most of Greenland, Uruguay" iCal="America/Sao_Paulo" />
+    <timezone orderId="19" name="Etc/GMT-3" label="Argentina, Paraguay" iCal="America/Buenos_Aires" />
+    <timezone orderId="19" name="Etc/GMT-3:30" label="Canada GMT+3:30" iCal="CNT" />
+    <timezone orderId="20" name="Etc/GMT-4" label="Nova Scotia, Dominican Republic, Puerto Rico, Santiago" iCal="America/Santiago" />
+    <timezone orderId="20" name="Etc/GMT-4:30" label="Venezuela GMT+4:30" iCal="America/Caracas" />
+    <timezone orderId="21" name="Etc/GMT-5 (New York)" label="Ottawa, Toronto, Montreal, Boston, New York" iCal="America/New_York" />
+    <timezone orderId="21" name="Etc/GMT-5" label="Colombia, Cuba, Ecuador, Haiti, Jamaica, Panama, Peru" iCal="America/Jamaica" />
+    <timezone orderId="22" name="Etc/GMT-5 (Panama)" label="Panama Port-au-Prince" iCal="America/Panama" />
+    <timezone orderId="23" name="Etc/GMT-6 (Chicago)" label="Chicago, Dallas" iCal="America/Chicago" />
+    <timezone orderId="24" name="Etc/GMT-6" label="Costa Rica , El Salvador, Guatemala, Honduras" iCal="America/El_Salvador" />
+    <timezone orderId="24" name="Etc/GMT-6 (Illinois)" label="Canada (Manitoba), United States (Illinois, most of Texas)" iCal="America/Chicago" />
+    <timezone orderId="25" name="Etc/GMT-7 (Phoenix)" label="Alberta, Colorado, Phoenix" iCal="America/Phoenix" />
+    <timezone orderId="26" name="Etc/GMT-7 (Colorado)" label="Canada (Alberta), Mexico (Chihuahua), USA (Colorado)" iCal="America/Denver" />
+    <timezone orderId="26" name="Etc/GMT-7" label="Canada (northeastern British Columbia), Mexico (Sonora), USA (Arizona)" iCal="America/Phoenix" />
+    <timezone orderId="27" name="Etc/GMT-8" label="Vancouver, Portland, Las Vegas, California" iCal="America/Los_Angeles" />
+    <timezone orderId="28" name="Etc/GMT-9" label="Anchorage, Fairbanks, Juneau" iCal="America/Juneau" />
+    <timezone orderId="28" name="Etc/GMT-9 (Alaska)" label="United States (most of Alaska)" iCal="US/Alaska" />
+    <timezone orderId="29" name="Etc/GMT-10" label="Hawaii" iCal="Pacific/Honolulu" />
+    <timezone orderId="30" name="Etc/GMT-11" label="Samoa" iCal="Pacific/Apia" />    
+</timezones>
diff --git a/src/main/webapp/languages/timezones.xsd b/src/main/webapp/languages/timezones.xsd
new file mode 100644
index 0000000..d693ab3
--- /dev/null
+++ b/src/main/webapp/languages/timezones.xsd
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

+  <xs:element name="timezones">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element maxOccurs="unbounded" ref="timezone"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="timezone">

+    <xs:complexType>

+      <xs:attribute name="iCal" use="required"/>

+      <xs:attribute name="label" use="required"/>

+      <xs:attribute name="name" use="required"/>

+      <xs:attribute name="orderId" use="required" type="xs:integer"/>

+    </xs:complexType>

+  </xs:element>

+</xs:schema>

diff --git a/src/main/webapp/languages/turkish.xml b/src/main/webapp/languages/turkish.xml
new file mode 100644
index 0000000..a944674
--- /dev/null
+++ b/src/main/webapp/languages/turkish.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>konferans</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>toplantı</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Etkinlikler</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Ayarlar</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Profil</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Yönetim</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Dur</value>
+  </string>
+  <string id="8" name="record">
+    <value>Kayıt</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>Kullanılabilir dosya yok</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Öğretmene Göre Kayıt</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Bağlı kullanıcılar:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Bir konferans başlat</value>
+  </string>
+  <string id="13" name="myname">
+    <value>Benim Adım</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>Görüntülü Konferans</value>
+  </string>
+  <string id="15" name="import">
+    <value>Dosya Yükleme</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Listeyi Yenile</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>Ana Dosyaya</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>Yeni Anket</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>Konferans için yeni bir anket.</value>
+  </string>
+  <string id="20" name="question">
+    <value>Soru:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Anket tipi:</value>
+  </string>
+  <string id="22" name="create">
+    <value>Yarat</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Bilgi: Bağlı her kullanıcı yeni anketle ilgili bir mesaj alır.</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Bir anket yarat</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>İptal</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Evet/Hayır</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>Sayısal 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Anket</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Soru oluşturabilmek için Düzenleyici olmanız gerekmekte</value>
+  </string>
+  <string id="30" name="vote">
+    <value>Oyunuz kaydedildi.</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Bu anket için zaten oy kullanmıştınız.</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Oyla !</value>
+  </string>
+  <string id="33" name="answer">
+    <value>Sizin yanıtınız:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Evet</value>
+  </string>
+  <string id="35" name="no">
+    <value>Hayır</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>Sonuçları gör:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Anket sonuçları</value>
+  </string>
+  <string id="38" name="question">
+    <value>Soru:</value>
+  </string>
+  <string id="39" name="results">
+    <value>Sonuçlar:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Cevaplar:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>Başlamış olan anket yok.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Oyla!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Toplantı (en fazla 4 yer)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Konferans (en fazla 50 yer)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Tip</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Diğer yerler</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Halihazırda seçili</value>
+  </string>
+  <string id="48" name="enter">
+    <value>giriş</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>Düzenleyici toplantıyı terk etti.</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Sistem bilgisi</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Araç seçiniz</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Web Kamerası seçiniz:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Mikrofon seçiniz:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>tamam</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>iptal</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Yeniden bağlanmanız gerekmekte.</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Ayarları düzenle.</value>
+  </string>
+  <string id="58" name="course">
+    <value>Ders:</value>
+  </string>
+  <string id="59" name="language">
+    <value>Dil:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>tamam</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>iptal</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Tahtayı temizle</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Yeni resim eklenmeden önce tahtanın temizlenmesini istiyor musunuz?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>Tekrar sormayın</value>
+  </string>
+  <string id="65" name="no">
+    <value>no</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Ayarları düzenle</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Tahtanın temizlenmesinden önce onay başvurusu.</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Kullanıcı Bilgisi</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Çizim alanını temizle</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Geri al</value>
+  </string>
+  <string id="71" name="redo">
+    <value>İleri al</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Bir Nesne Seçin</value>
+  </string>
+  <string id="73" name="text">
+    <value>Metin</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Boyama</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Çizgi çiz</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Altını çiz</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Dikdörtgen</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Elips</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Ok</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>Seçili öğeyi sil</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Düzenleme için uygula</value>
+  </string>
+  <string id="82" name="apply">
+    <value>uygula</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>iptal</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Düzenleyici ol</value>
+  </string>
+  <string id="85" name="close">
+    <value>kapat</value>
+  </string>
+  <string id="86" name="italic">
+    <value>eğik</value>
+  </string>
+  <string id="87" name="bold">
+    <value>kalın</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>BEKLİYOR</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>Düzenleyicilik için bir kullanıcı bekleniyor:</value>
+  </string>
+  <string id="90" name="accept">
+    <value>onay</value>
+  </string>
+  <string id="91" name="reject">
+    <value>reddet</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>iptal</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Bu kullanıcılar için istek gönder</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Onaylandı</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Reddedildi</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Düzenleyiciyi Değiştir</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Bu dersin düzenleyicisi değilsiniz!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Düzenleyici:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>Bu oda dolu. Lütfen daha sonra yeniden deneyiniz.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Elips</value>
+  </string>
+  <string id="101" name="close">
+    <value>kapat</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>veri giriş hatası</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>4 ya da daha fazla karakter; büyük-küçük harfe duyarlı!</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>Kullanıcı şifresi en az 4 karakter olmalıdır</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>Bu kullanıcı adı alınmış</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>Bu e-posta adresi zaten kayıtlı</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>Sistem hatası. Lütfen sistem yöneticileri ile bağlantıya geçiniz.</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Oturum Aç</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Kullanıcı Adı:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Şifre:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Dil</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Giriş Yap</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Kayıt Ol</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Kullanıcı Adı:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Şifre:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Yeniden Yazın:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Ad:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Soyad:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>E-posta:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>Ülke:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Kayıt</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>İptal</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Üye değil misiniz?</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>Ev</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Kullanıcılar</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Gruplar</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Kurumlar</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Toplantı-Odaları</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>herkese açık</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>Kurum</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>giriş</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Oturum Aç</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Şifre</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Yeniden yaz</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Ad</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Soyad</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>E-Posta</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Doğum günü</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Cadde/No</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>ZIP/Şehir</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>Ülke</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Adres</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Kullanıcı bilgisi</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>kaydet</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Kaydet</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>Kullanıcı kodu</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>Oturum aç</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>Ad</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>Soyad</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>sonrakini göster</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>öncekini göster</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>kaydı sil</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>iptal</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>sil</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>yeni kayıt</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>kayıt yenile</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>kayıt sil</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>durum</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>devre dışı</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>etkin</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>Kurumlar</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>takvim</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>kapat</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>Kurum Kodu</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>Ad</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>Kullanıcı</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>Düzenleyici</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>Yönetici</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>kullanıcı seviyesi</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>Kurum</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>ad</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>kurum ekle</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>kurum ekle</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>iptal</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>ekle</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>kurumu kaldır</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>kullanıcı</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>kullanıcı ekle</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>kullanıcı sil</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>kullanıcı ekle</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>kullanıcı ara</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>ara</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>kullanıcı</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>Kurum</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>giriş</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Konferans Odaları</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Konferans Odaları</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>kod</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Ad</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>herkese açık</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>Kurumlar</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Toplantı Odaları</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>Ad</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>Tip</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>Herkese Açık</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>Yorum</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>kaydet</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>yükle</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>farklı kaydet</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>Dosya adı</value>
+  </string>
+  <string id="201" name="files">
+    <value>dosya adı</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>iptal</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>kaydet</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>hata</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>yükleniyor</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>nesneler yüklendi</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>istemciler senkronize oluyor, bekleyen istemciler:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>İmaj verisi yükleniyor</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>istemciler senkronize oluyor, bekleyen istemciler:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>çizim alanını temizle</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>çizim alanını temizle, tahtadaki tüm bilgiler silinecek</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Dosyayı yollamadan önce onaylayınız</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Davet gönder</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Davet gönder</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Konu</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Alıcı</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Mesaj</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Yolla</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>İptal</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>gönder</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Kullanıcı verisi</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>Bu konferans için takma adınız</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>Takma Ad</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>Ad</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>Soyad</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>E-posta</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>Dil</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>giriş</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Yükleniyor</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Veri yükleniyor, lütfen bekleyin!</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Hatalı Şifre</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Lütfen en az 6 karakter içeren birbiri ile aynı iki şifre giriniz</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Hatalı E-posta</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Hatalı bir e-posta adresi girdiniz</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>Kayıt Başarılı</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Hesabınız oluşturuldu, oturum açabilirsiniz.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>Şu anda ekranınızı paylaşamazsınız. Başka biri hâlihazırda ekranı paylaşmış.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Paylaşıma izin yok</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Ekranı Paylaş</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Düşük Bağlantı Hızı: Ekranınız senkronize edilemiyor. Görüntüler atlanacak. Eğer bu uyarıyı almaya devam ederseniz, düzenleyiciden kaliteyi düşürmesini isteyebilirsiniz.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Ekranı:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Boyama</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Doküman</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Sohbet</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Dosyalar</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Üyeler</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Orijinal dokümanı indir</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>PDF dokümanı indir</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Sunumu tahtaya yükle</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Konfigürasyon</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Bu nesneyi bırak</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Bu nesneyi boyutlandır</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>of</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>İlk sayfaya git</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>Önceki sayfaya git</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>Sonraki sayfaya git</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>Son sayfaya git</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Uzaklaştır --</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Yakınlaştır ++</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>Sayın</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>Sayın</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Konfigürasyon</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>KOD</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Anahtar</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Konfigürasyon</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Anahtar</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>son güncelleme</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>güncellemeye göre</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>yorum</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>Değer</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>of</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Kullanıcılar</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>kullanıcıyı kurumdan sil</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>sil</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>Bu kullanıcı hâlihazırda bu grubun bir üyesi.</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>Haberler</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Hızlı Bağlantılar</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>Konferansa git</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>Oditoryuma git</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>yardım ve Destek</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Hata bildir!</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>daha fazlası</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Proje Web Sitesi (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>Kullanıcı E-Posta Listesi (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Oturumu Hatırla</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>İçerik</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>Ana Sayfam</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>Planlanmış Toplantılarım</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>Planlanmış Etkinliklerim</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Herkese Açık Toplantılar</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Özel Toplantılar</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Herkese Açık Etkinlikler</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Özel Etkinlikler</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Herkese Açık İçerik</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Özel İçerik</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Kişisel İçerik</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Düzenleme</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Düzenleyicilik için onay</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Anketler</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Bir dosya seçin</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Ayarlar</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Kamera ve Mikrofon Ayarları</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Tahta Ayarları</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Çıkış</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Odalara geri dön</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Oturumu Kapat</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Şifreyi Unut?</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Şİfreyi Sıfırla</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>E-postaya göre</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Oturuma göre</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>Postanız</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Oturumunuz</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Sınıflama bağlantısı ile e-posta gönder</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>E-posta adresi bulunamadı. Kayıt esnasında kullandığınız e-posta adresini girdiğinizden emin olun.</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Lütfen bir e-posta adresi ya da bir kullanıcı adı giriniz</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>Bu kullanıcı adı ile bağlanmış bir kullanıcı yok</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>Özel bir bağlantıya sahip olan bir e-posta, e-posta adresinize yollanmış durumda. Lütfen posta kutunuzu kontrol edin. Eğer e-posta mesajını alamazsanız, lütfen posta kutunuzun gereksiz posta ayarlarını kontrol edin ve/veya yeniden doğrulama mesajının gönderilmesini sağlayın.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Hata</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Mesaj</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Geçersiz Komut. Hiçbir Kullanıcı Bulunamadı.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Şifrenizi Sıfırlayın</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Oturum Aç</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>Şifre değiştir</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>Yeni Şifre</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>Şifrenizi yeniden girin</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>Girmiş olduğunuz şifreler birbiri ile aynı değil.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>4 ya da daha fazla karakter; büyük-küçük harfe duyarlı!</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Şİfre belirlendi. Şuan oturum açabilirsiniz.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>TAMAM</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Bilinmeyen Hata. Lütfen bu durumu sistem sorumlusuna rapor ediniz.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Kullanıcı adı bulunamadı</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Geçersiz Şifre</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Oturum başarıyla kapatıldı</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Geriplan kayıt işlemi devre dışı.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>Geçersiz E-posta</value>
+  </string>
+  <string id="340" name="registration">
+    <value>yinelenen dosya adı, lütfen farklı bir dosya adu seçiniz</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>dosya adı çok kısa</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Adres kayıt edilemiyor</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>Kullanıcı eklendi fakat kullanıcıyı bir kuruma atamanız gerekmekte, aksi halde oturum açması mümkün olamayacak.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Yeni Kayıt</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>Bu alan kodu ile bir alan bulunamadı.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>Bu alan için etiket bulunamadı.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Yönetici oturumu gerekmektedir</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Dil Düzenleyicisi</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Dil</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>Etiket-Kodu</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>Etiket-Adı</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Değer</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Alan değerleri</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>EtiketAdı</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>EtiketDeğeri</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>Etiket-Kodu</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>Sadece etiketi sildiniz, alanı değil! Alanı silemezsiniz; diğer dillerde etiketleri bulunmakta.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>Geçersiz EtiketKodu. Dil alanı değer kodu (FieldLanguagesvalues_Id) veritabanında bulunamıyor.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Bu alanı silemezsiniz. Sadece etiketleri silebilirsiniz, alanları değil. Şu anda yüklenmiş olan bir etiket yok, herhangi bir alan seçilmemiş ya da tanımlanmış bu alan için bu dilde etiket yok.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>ihraç</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Değişiklikleri görebilmeniz için oturumu kapatmanız gerekmektedir.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Yeni dil ekle</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>dil sil</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Yeni dil ekle</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Ad</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>dil ekle</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Yedekleme</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>ilke git</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>öncekine git</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>sonrakine git</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>sonuncuya git</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>kullanıcı konuşuyor (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>sesi aç/kapa</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>Sistem</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Ayarlarınız</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>selam,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Profilinizi düzenleyin</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Yeni Mesaj:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Yeni resim yükle</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Kullanıcı verisi - İhraç Et</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>Tüm kurumlar daha önceden oluşturulmuş olmalı!</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>ihraç (export) işlemine başla</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>Kuruma göre</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>ihraç (export) işlemine başla</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Kullanıcı verisi - Import</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>users.xml dosyasını seç</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>ithal et (import)</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>XML olarak ihraç et - Bu dosyalar şu amaçlar için kullanılabilir: - Projeye katılmak - Bilgileri başka bir sisteme aktarmak - Yedekleme - Özelleştirme - Bir sonraki yüklemede dil klasörünün içine koymak için.</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>İthal (import) etmek istediğiniz dil dosyasını seçiniz. Açılan kutudan doğru dili seçiniz! Dosyanın adı önemli değildir, bu dilin içine ithal edilecektir!</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>ithal et - dosya seç</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Farklı kaydet</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Ad:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Yorum:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>kaydet</value>
+  </string>
+  <string id="395" name="record">
+    <value>Kayıtlar</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Kayıt Görüntüleyicisi</value>
+  </string>
+  <string id="397" name="record">
+    <value>Genel (herkese açık) ve Özel Odaların kayıtları</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Kullanıcılar :</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Katılanlar:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Bu odadaki kullanıcılar:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>yenile</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>Bu oda dolu. Bir kaç dakika içinde yeniden deneyiniz.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>Detaylı bilgi için bir odanın üzerine tıklayınız</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Bu odanın içindeki kullanıcılar ile sohbet et:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Oda:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Bu odadaki kullanıcılar:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>den beri:</value>
+  </string>
+  <string id="409" name="record">
+    <value>kaydı oynat</value>
+  </string>
+  <string id="410" name="record">
+    <value>Uzunluk:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Tarih:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Kaydedici Kipi! Hiçbir ayarı değiştiremezsiniz, bu kaydedilmiş bir dosyadır!</value>
+  </string>
+  <string id="413" name="record">
+    <value>Bu kaydı onat</value>
+  </string>
+  <string id="414" name="record">
+    <value>Oynat / Durdur</value>
+  </string>
+  <string id="415" name="record">
+    <value>Kaydı başlat</value>
+  </string>
+  <string id="416" name="record">
+    <value>kaydı durdur</value>
+  </string>
+  <string id="417" name="record">
+    <value>Kayıt:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>Şu an zaten biri kayıtta:</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Kayıt! Kullanıcıya göre:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>iptal</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>Kayıt iptal edilecek ve kaydedilmeyecek.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>devam et</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Bu pencereyi kapat ve kayda devam et</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>Çizgi rengini değiştir</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Renk seç</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Çizgi rengini Devre Dışı Bırak / Etkinleştir</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>İç rengi değiştir</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>İç rengi Devre Dışı Bırak / Etkinleştir</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Çizgi genişliğini değiştir</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>kapat</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>Yazı tipini değiştir</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Kaydı Sil</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Misafir</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>Göre:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Ad</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Oda</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Tarih</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>iptal</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>başlat</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Ad</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Tarih</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Sunucu sohbet kayıtlarını sil</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Sohbet</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>Mesaj yolla</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Yüz İfadeleri</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>İfadeler</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Yayınlanmış Araçları Seç</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Ses ve Görüntü</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Sadece Ses</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Sadece Görüntü</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>Ses Görüntü yok (sabit resim)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>Bilgisayarınız tarafından yayınlanabilecek olan ses / görüntü bulunmamaktadır, bunun yerine profilinizde yer alan resim kullnılacaktır. Bu seçeneği bant genişliğinizde bir sorun varsa ya da İnternet bağlantınız çok yavaşsa tercih ediniz.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>PZT</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>SAL</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>ÇAR</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>PER</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>CUM</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>CMT</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>PAZ</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Pazartesi</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Salı</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Çarşamba</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Perşembe</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Cuma</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Cumartesi</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Pazar</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>TH</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Takvim hafta</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>Ocak</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>Şubat</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>Mart</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>Nisan</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>Mayıs</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>Haziran</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>Temmuz</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>Ağustos</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>Eylül</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>Ekim</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>Kasım</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>Aralık</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Takvim</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Katılımcılar</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Mizanpaj Ayarlarını Göster</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Genişlik | Yükseklik</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Video-Gösterici</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Düzenleyici-Gösterici</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Tahta-Gösterici</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Etkin</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Genişlik | Yükseklik</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Dosyalar,Sohbet,Katılımcı-Gösterici</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Etkin</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Genişlik | Yükseklik</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>Düzenleyici odayı terk etti. Şu anda sunum yapan kimse yok. Düzenleyicilik için başvuruda bulunabilirsiniz ya da bekleyebilirsiniz.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>Odada bir Düzenleyici yok, fakat bazı katılımcılar var. Düzenleyicilik için başvuruda bulunabilirsiniz ya da bekleyebilirsiniz.</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>$APP_NAME geribildirim</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Davet</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Kullanıcıdan Mesaj:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Mesaj:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Toplantıya katılmak için linke tıklayınız:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Odaya girmek için buraya tıklayınız</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>Bağlantı (link) ile ilgili probleminiz varsa, lütfen bağlantıyı kopyalayarak tarayıcınızın adres çubuğuna yapıştırınız:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME Kayıt</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Kullanıcı verileriniz:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Kullanıcı Adı:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Şifre:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>E-posta:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>$APP_NAME-Takımı</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME Kayıt Ol</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - Şifre Sıfırla</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Yeni bir şifre girmek için bağlantıya tıklayınız:</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Yeni bir şifre girmek için buraya tıklayınız</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>bu bağlantı (link) ile ilgili probleminiz varsa, lütfen bağlantıyı kopyalayarak tarayıcınızın adres çubuğuna yapıştırınız:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>$APP_NAME Şifre Sıfırla</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Lütfen geçerli bir tarih girin, örnek olarak 25.06.2005 (gg.aa.yyyy)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Lütfen geçerli bir e-posta adresi girin, örnek olarak ad@posta.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Lütfen Float-Sayı giriniz, örnek olarak 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Lütfen bir tamsayı giriniz, örnek olarak 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Lütfen geçerli bir telefon numarası giriniz, örnek olarak ++90 0123 123123</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Lütfen geçerli bir saat bilgisi giriniz, örnek olarak 12:23 (ss:dd)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Şifre korumalı</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Şifre</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Geçerlilik periyodu</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Süresiz</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Periyot</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Bir kerelik</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Oturum başlangıcı:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Oturum sonu:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>$APP_NAME'e Davet</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Bu davet kodu için geçerli olan bir davet yok.</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>Bu davet halihazırda kullanılmakta. Bu bip bir davet tekrar kullanılamaz.</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>Bu davet kodu geçerli değil.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Şifre:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Şifre Kontrol</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Geçersiz Şifre!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Ses-Görüntü</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Ses/Görüntü Senkronizasyonu</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Kullanıcı adı doğru, fakat girmeye çalıştığınız oturum aktif durumda değil ya da sunucuda depolanmış. Yeni bir oturum kodu almalısınız ve yeniden oturum açmalısınız.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>Oturum kodu kayıtlı değil ya da yönetici haklarına sahip değil. SOAP Gateway yeni bir kullanıcı ekleyebilmek için yönetici haklarına sahip bir kullanıcıya ihtiyaç duyar.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>Bu oturum uzak kullanıcı veri bağlantısı içermiyor. Uygulamaya girmeden veya yanlış oturum kodu ile SOAP-Gateway araması yapamazsınız.</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>Kaydedici halen Beta versiyonunda!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>x-ekseni</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>y-ekseni</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>g</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>genişlik</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>y</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>yükseklik</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Transparanlığı değiştir</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Tarayıcı Aç</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Tarayıcı Kapat</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>Şunucuyla bağlantı kesildi. Uygulamayı yeniden yüklemeli veya Ağ Bağlantısını kontrol etmelisiniz.</value>
+  </string>
+  <string id="557" name="557">
+    <value>İmleç</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Eşitliyor…</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Kullanıcıları eşitliyor, lütfen bekleyiniz</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;SVG Olarak Yükle&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;PNG Olarak Yükle&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;JPG Olarak Yükle&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;PDF Olarak Yükle&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;TIF Olarak Yükle&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Hatırlatıcı:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Kategori:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Tekrar:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>hiçbiri</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Konum:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Baş</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>Son</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Başlık:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Yorum:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Kişi Davet Et</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Günlük</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Aylık</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Yıllık</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Yetkilendirme sonu yetkilendirme başından sonradır!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Lütfen bir başlık giriniz!</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Sağdan sola yazım modunu açmak için bunu aktifleştirin</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Pano</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Kayıtlı Görüşmeleri İzle</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Görüşme – 4 kişilik konferans oluştur (en fazla 16 kişi) &lt;br/&gt;herkes ses + görüntü yayın hakkına sahip</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Etkinlik – 200 katılımcılı konferans ayarla&lt;br/&gt;Sadece düzenleyici ses ve görüntü yayın hakkına sahip</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Kullanıcıları, odaları ve organizasyonları oluştur &lt;br/&gt; + yapılandırmayı değiştir</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Kullanıcılar şu anda bu odada</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Giriş</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Belge Yükleniyor. Tüm istemciler eşitleninceye kadar lütfen bekleyiniz.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Aktarım tamamlandı, belge dönüştürülüyor ...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Aktarımı Başlat</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Aktarım ve Yükleme Penceresi. Lütfen Diskinizden bir Dosya seçiniz.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>İptal</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Dosya Seç</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Bağlantılar</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Değer</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Yayın_ID</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Giriş</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Bağlantı zamanı</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Oda / Kapsam</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Kick User</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Kullanıcıyı At</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Bu istemciyi bağlantıdan çıkarmak istediğinize emin misiniz?&lt;br/&gt;Bu işlem sadece uyarı amaçlıdır ve kullanıcının odaya yeniden giriş yapmasını engellemez.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Oturumunuz Yönetici veya Düzenleyici tarafından sonlandırıldı.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Telefon</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>Kullanıcı bu Oda’nın Düzenleyicisi</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>Kullanıcı Karatahtayı düzenleme hakkına sahip</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>Ses/Görüntüyü (Yeniden) Başlat veya Aygıt Ayarlarını değiştir</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Bu kullanıcının Karatahtayı kullanmasına izin ver</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Kullanıcının Karatahtayı kullanmasını engelle</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Kullanıcılar</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Dosyalar</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Karatahta</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Sohbet</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Hesabınız pek çok Organizasyonla ilişkilendirilmiş. Bu oturum için lütfen birini seçiniz.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>Bu oda şu anda dolu; lütfen daha sonra tekrar deneyiniz.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Oda Tipi</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Randevu Odası</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Sunucu Zamanı</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - Hatırlatıcı</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Kullanıcıdan Mesaj:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Mesaj:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Görüşmelere katılmak için bu bağlantıyı tıklayınız:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Odaya giriş için burayı tıklayın</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>bağlantıyı tıklamakla ilgili sorun yaşıyorsanız kopyalayıp gezgin penceresine yapıştırabilirsiniz:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>iç kullanıcılar</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>dış kullanıcılar</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>ön ad</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>ad</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>E-Posta</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Oturum kapatmayı onayla</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Oturumu kapatmak istediğinize emin misiniz?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Eylemler</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Demo Odası</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Demo Zamanı</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Görüşme İçin Kalan Zaman</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>Bu Oda bir Demo Odası’dır. Bu uyarıyı almak istemiyorsanız özel bir oda alabilir veya kendinize özel bir sunucu ayarlayabilirsiniz. Oturumunuzun otomatik kapatılma zamanı:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Dengeli</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Düzenleyici odaya girinceye kadar lütfen bekleyiniz. Düzenleyici olarak anılan kişi Düzenleyici, Yönetici veya odayı oluşturan kişi olabilir.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Tamam</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Ekran Paylaşımı Başlıyor</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>Kullanıcı Ekran Paylaşımı uygulamasını başlatıyor:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Paylaşımı Başlat</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Yeni bir Görüşme ekle</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Görüşme Odası</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Etkinlik Odası</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Düzenleme</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Kullanıcıları Düzenle</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Odaları Düzenle</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Bu kullanıcının organizasyonun Düzenleyicisi olmasını istediğinize emin misiniz?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Kullanıcıyı bir Organizasyona eklemeden önce lütfen listeden bir tane Organizasyon seçiniz!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organizasyon - Düzenleyici</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Bu kullanıcıyı Organizasyondan silmek istediğinize emin misiniz?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>Bu Kullanıcı Düzenleyici</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>Bu Kullanıcı Düzenleyici Değil</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Bu kullanıcının Organizasyonda Düzenleyici Olmamasını İstediğinize Emin Misiniz?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Kullanıcıları Organizasyona ekle veya Organizasyondan sil</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Bu kaydı silmek istediğinize emin misiniz?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Bu kullanıcıyı organizasyondan silmek istediğinize emin misiniz? Bu kullanıcıyı sadece organizasyondan silersiniz. Eğer kullanıcıyı tamamen silmek istiyorsanız Yönetici-Panelinden giriş yapmalısınız.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>Kendi kullanıcınızı silemezsiniz!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>Bu yöntem Yönetici hakları erişimini gerektirir!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>Bu ID ile ilişkilendirilmiş Oturum bulunmamaktadır.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>Bu bir Yönetici veya Düzenleyici hesabı. Bu hesabı sadece Yönetici Panelinden düzenleyebilirsiniz.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>Kaydınızı tamamlamak için lütfen bağlantıyı tıklayın ya da tarayıcı adres çubuğuna kopyalayıp oradan açın.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>E-Postanızı Onaylamak İçin Tıklayınız</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Bu Hash bilgisine uyan hiçbir kullanıcı bulunamadı.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Bu kullanıcı zaten aktif edildi!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Hesabınızı başarıyla aktifleştirdiniz!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Giriş Yap</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Hesabınız aktifleştirilmedi. Kayıt sırasında vermiş olduğunuz E-Postanıza gelen bağlantıyı tıklayarak aktivasyon işlemini tamamlayınız.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>Kaydınız başarıyla tamamlandı. Vermiş olduğunuz e-posta adresinize hesabınızı aktifleştirmek için ileti gönderdik. İletideki bağlantıyı açarak hesabınızı aktifleştirebilirsiniz.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Bu Kullanıcının Düzenleyici Yetkisini İptal Et</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Bu Kullanıcıya Düzenleyici Yetkileri Ver</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>Kullanıcı</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Karatahtaya eriş</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Düzenleyici</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Düzenleme: Lütfen kendisine Karatahtaya Erişme, Düzenleme ve Ses/Görüntü yetkisi vermek üzere bir kullanıcı seçiniz.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>Bu kullanıcı Düzenleyici haklarına sahip olduğundan çizme yetkisine zaten sahip.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>Kendi kendinizin Düzenleyici hakkını iptal edemezsiniz.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Bu kullanıcının Ses/Görüntüsünü Yayınlamasına İzin Ver</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Kullanıcının Ses/Görüntüsünü İptal Et</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>Bu odanın düzenleyicisi olmak istiyorum.</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>Tahtayı düzenleyebilmek istiyorum.</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>Ses/Görüntümü paylaşmak istiyorum.</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>Bu odanın Düzenleyicisisiniz.</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>Tahtayı düzenleme hakkına sahipsiniz.</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>Ses/Görüntünüzü paylaşma hakkına sahipsiniz.</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Düzenleyiciye Mesaj</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>Kullanıcı</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>düzenleyici olmak istiyor. Kullanıcıya bu hakkı vermek istiyorsanız durum simgelerini kullanın.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>tahtayı düzenlemek istiyor. Kullanıcıya bu hakkı vermek istiyorsanız durum simgelerini kullanın.</value>
+  </string>
+  <string id="695" name="695">
+    <value>Ses ve Görüntüsünü paylaşmak istiyor. Kullanıcıya bu hakkı vermek istiyorsanız durum simgelerini kullanın.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>Düzenleyici odaya giriş yapana kadar beklemelisiniz.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>İptal</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Kaydet</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Gün</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Ay</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Yıl</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Upload File</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Refresh</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Trash (Drag and Drop item here)</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>My Files (Home Drive)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Room Files (Public Drive)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Add File</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Delete Folder</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Edit Name</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>New Folder</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Are you sure you want to delete this Item?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Open Document</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Show all Files (Tree View)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Close Document</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Delete File</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>You are not allowed to draw anything on the Whiteboard. You have to become Moderator or at least get the Right to edit Whiteboard. You may ask a Moderator to give you that right.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Document Properties</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Start Client (external)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Start Client (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>A user want to share his screen. Do you want to see it?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>You are currently sharing your Desktop. For stopping the Sharing Session please hit the Stop button in the Sharing Client.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Sharing Session</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>You are already sharing your desktop!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Desktop Viewer</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Exit</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Desktop Sharer</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Click Start to publish your screen</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Start Sharing</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Select your screen area:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Change width</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>The Sharer has finished this session!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Change height</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-Offset</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-Offset</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Width:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Height:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Connection was closed by Server</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Cancel</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Start External</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>If you close this session completely you are not able to restart the viewer for this session.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Confirm Closing Viewer Session</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Share Screen</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Record Session</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Co-Browsing</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Ooops, ... Firefox on Windows does not show clear Co-Browsing. Please use another Browser for using the Co-Browsing feature.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Previous</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Next</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Reload</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Home</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Load</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Add this website as Default website to your Profile.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Test Setup</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Check you Microphone and Camera setup before you enter a room by recording some seconds. You can then replay your recording to check your voice and picture.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Don't show this test anymore</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Cancel</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Start Conference</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Do not ask again</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>You may proceed without testing if you do not plan to publish your voice or picture. Participants without Audio or Video can still use the Whiteboard, share their Desktop or write Chat messages.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="test setup">
+    <value>Level-Meter</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Press Start</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Start Event</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Choose Room</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Check Setup</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="774" name="start view">
+    <value>How to conference</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Start Recording</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Do not show Audio / Video Test (Recording) before entering a Conference</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Public Rooms</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Public Rooms are accessible for all Users.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Private Rooms</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Private Rooms are only accessible for users of the same organization.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>My Rooms</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Rooms in this section are created for personal usage. There are some standard rooms plus the ones that are created through the calendar and have a start and an end date. The rooms created via the calendar are only listed in this section as long as they are valid.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>You have to be moderator to do this.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Apply for moderation</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Apply for whiteboard access</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Apply for camera/microphone access</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>This Session Hash was already used. You cannot use it twice.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>START</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>EXIT</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Do you really want to exit? You might should clear uploaded documents, whiteboard and the chat history.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Exit conference</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Rooms</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Choose a room for a meeting</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>There is an unsaved Event in the Calendar. Please either save it or remove it.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Please add at least one attendee for your meeting!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Do you really want to delete this Event?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Warning</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Add Event</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>Day</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>Week</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>Month</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Description</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Attendees</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, your Web Conferencing Platform. Either follow the Instructions, press the start button to start to conference immediatelly or you goto the Calendar and set up a Conference for the future.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Plan a Meeting</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>To set up a conference you can add a new Event in the Calendar.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Need help?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Restricted</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Search</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Add</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>There is no User selected. Please select an item from the list first and then hit add.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Add Attendee</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Save</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Delete</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Event Details</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Default Moderators</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Name</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>E-Mail</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Add new default Moderator</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Is Super Moderator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>If the Room is moderated, User with Level Moderator or Administrator are automatically Moderator if they enter the Room. If you don't want to specify that and only want a certain User to become Moderator use the Default Moderator option.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>A Super Moderator is always a Moderator when he enters a Room, and nobody can remove the Moderation Flag from him</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Apply Super-Moderation to User</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Remove Super Moderation from User</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>If you add an Organization to the room only users of that Organization have access to it (This is only valid if the isPublic flag is set to false!)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderation</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitations</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organization</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Are you sure?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Do you really want to delete this Item? You have to press the save button to store the changes!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>There is no User selected. Please select first before you add it!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Add new Default Moderator</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Do you want to add the Super Moderation Flag for this User? A Super Moderator is not only Moderator of a Room, but also no other Moderator can remove the Moderation Flag for this User. You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Do you want to remove the Super Moderation Flag for this User? You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>This User is a Super-Moderator. You cannot remove the Moderation flag from a Super-Moderator!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Do you really want to delete this File/Folder?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Delete File/Folder?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Mrs.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Properties</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Show mouse position to viewers</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Share Audio with SIP Applet</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Share Audio with SIP and Video with Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Full-Fit</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>View Screen</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>The user</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>wants to share its screen. Do you want to see it?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Close</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>The Session was closed by the sharing User!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>New Screen Sharing</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimize</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximize</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Recording Timeline</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>My Recordings</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Public Recordings</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Name</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Length</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Date</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>By</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>PLAY</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Main - Video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Recording</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>You may record and share your screen at the same time. To enable others to see your screen just hit the start button on the top. To only record the Session it is sufficient to click start recording.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Start Recording</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Stop Recording</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download the FLV-File</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Room</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Play</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>User has microphone on</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Allow User Questions</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Turn this off to prevent that any user is disturbing you in this room. Effect is that the Button to ask for Moderation ("I have a question") is not visible.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rights</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Download as AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Audio only</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>The have been errors while processing the Recording.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>The Recording is not yet ready for watching. Please retry in a couple of minutes again.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Recorder Message</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP Applet is not Ready</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP-Account Settings</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP settings for each user. You can turn on or off SIP via the Administration &gt; Configuration (Key: enable_sip). The SIP data for each user should be created automatically. You can re-create the data by checking "Re-generate SIP Data"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-User</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Pass</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. You should check the authentification data of your SIP-Provider and the SIP-Account Data for each User. As Administrator you are still able to login and check the Configuration. As User or Moderator you will be blocked from any interaction.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. Contact your Service Team!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Show Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log messages from post recorder process</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Applet Message</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>The SIP-Applet is not ready. Accept the Applet please and click ok!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Get Moderation</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Save Appointment Changes</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointement has been changed. Do you want to save those changes? &lt;br/&gt;&lt;br/&gt;All attendees of the appointment will receive a EMail with the updated date and time (depending on the notification type of this appointment).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>To access other recordings you have to login the $APP_NAME Application.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Choose the User for this Video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available Users for this Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>You are a Moderator in this Interview. You can decide who is speaking in this interview and you can start / stop the recording of the Session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Start Recording</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Stop Recording</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>The recording of the Interview is already started.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>The recording is already stopped or not been started yet.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>The recording for this interview is already started!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Clear objects on current slide only!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the Status bar is send to participants!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make Team-Rooms [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new Team-Room!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new Conference Room ("Team Room") for them. The chosen users will automatically switch to the new Team-Room or get a notification. Team-Room Moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a Moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Username</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new Team-Room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create Team-Room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the Team-Room!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from Team-Room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Roomtype</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the System. The Backup includes all User generated data. The configuration is not included as well as the language labels. Because those values are imported with the System Installer. To update your System, export your old system (1) re-install into a new database the new package (2) and import the Backup file again (3). The Backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share Screen/Record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is Moderator, he can do anything!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/Deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose "Insert" from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about Copy and Paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Kick user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/languages/ukrainian.xml b/src/main/webapp/languages/ukrainian.xml
new file mode 100644
index 0000000..889c82d
--- /dev/null
+++ b/src/main/webapp/languages/ukrainian.xml
@@ -0,0 +1,4820 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+
+
+###############################################
+This File is auto-generated by the LanguageEditor 
+to add new Languages or modify/customize it use the LanguageEditor 
+see http://openmeetings.apache.org/LanguageEditor.html for Details 
+###############################################-->
+<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="language.xsd">
+  <string id="1" name="conference">
+    <value>Конференція</value>
+  </string>
+  <string id="2" name="meeting">
+    <value>Зустріч</value>
+  </string>
+  <string id="3" name="classroom">
+    <value>Аудиторія</value>
+  </string>
+  <string id="4" name="settings">
+    <value>Налаштування</value>
+  </string>
+  <string id="5" name="benutzer">
+    <value>Користувач</value>
+  </string>
+  <string id="6" name="admin">
+    <value>Адміністратор</value>
+  </string>
+  <string id="7" name="stop">
+    <value>Пауза</value>
+  </string>
+  <string id="8" name="record">
+    <value>Запис</value>
+  </string>
+  <string id="9" name="nofile">
+    <value>Немає даних</value>
+  </string>
+  <string id="10" name="recordbyteacher">
+    <value>Функція запису для модераторів</value>
+  </string>
+  <string id="11" name="connectedusers">
+    <value>Пов'язаний користувач:</value>
+  </string>
+  <string id="12" name="startconf">
+    <value>Почати конференцію</value>
+  </string>
+  <string id="13" name="myname">
+    <value>Моє ім'я</value>
+  </string>
+  <string id="14" name="videoconference">
+    <value>Відеоконференція</value>
+  </string>
+  <string id="15" name="import">
+    <value>Імпорт</value>
+  </string>
+  <string id="16" name="refreshfiles">
+    <value>Оновити список</value>
+  </string>
+  <string id="17" name="tomainfile">
+    <value>На головну</value>
+  </string>
+  <string id="18" name="newpoll">
+    <value>Нове опитування</value>
+  </string>
+  <string id="19" name="newpollheader">
+    <value>Нове опитування для конференції.</value>
+  </string>
+  <string id="20" name="question">
+    <value>Запитання:</value>
+  </string>
+  <string id="21" name="polltype">
+    <value>Вид опитування:</value>
+  </string>
+  <string id="22" name="create">
+    <value>Створити</value>
+  </string>
+  <string id="23" name="infomessage">
+    <value>Інформація: кожен пов'язани користувач отримує повідомлення з новим опитуванням</value>
+  </string>
+  <string id="24" name="creatpoll">
+    <value>Створити опитування</value>
+  </string>
+  <string id="25" name="cancel">
+    <value>Відмінити</value>
+  </string>
+  <string id="26" name="yesno">
+    <value>Так/Ні</value>
+  </string>
+  <string id="27" name="numeric">
+    <value>В числовому порядку 1-10</value>
+  </string>
+  <string id="28" name="poll">
+    <value>Опитування</value>
+  </string>
+  <string id="29" name="moderation">
+    <value>Для створення опитування Ви повинні бути модератором/інструктором даної кімнати.</value>
+  </string>
+  <string id="30" name="vote">
+    <value>Ви проголосували.</value>
+  </string>
+  <string id="31" name="alreadyvoted">
+    <value>Ви вже проголосували в даному опитуванні.</value>
+  </string>
+  <string id="32" name="voting">
+    <value>Проголосувати!</value>
+  </string>
+  <string id="33" name="answer">
+    <value>Ваша відповідь:</value>
+  </string>
+  <string id="34" name="yes">
+    <value>Так</value>
+  </string>
+  <string id="35" name="no">
+    <value>Ні</value>
+  </string>
+  <string id="36" name="questionwant">
+    <value>Хочу знати:</value>
+  </string>
+  <string id="37" name="pollresults">
+    <value>Результати опитування</value>
+  </string>
+  <string id="38" name="question">
+    <value>Запитання:</value>
+  </string>
+  <string id="39" name="results">
+    <value>Відповіді:</value>
+  </string>
+  <string id="40" name="answers">
+    <value>Результати:</value>
+  </string>
+  <string id="41" name="nopoll">
+    <value>В даний момент опитування не існує.</value>
+  </string>
+  <string id="42" name="votings">
+    <value>Проголосувати!</value>
+  </string>
+  <string id="43" name="meeting">
+    <value>Зустріч (максимум 4 місця)</value>
+  </string>
+  <string id="44" name="conference">
+    <value>Конференція (максимум 50 місць)</value>
+  </string>
+  <string id="45" name="type">
+    <value>Тип</value>
+  </string>
+  <string id="46" name="remainingseats">
+    <value>Залишилось місць</value>
+  </string>
+  <string id="47" name="alreadychosen">
+    <value>Вже присвоєно</value>
+  </string>
+  <string id="48" name="enter">
+    <value>Вхід</value>
+  </string>
+  <string id="49" name="modleave">
+    <value>Модератор/інструктор цієї кімнати покинув кімнату</value>
+  </string>
+  <string id="50" name="systemmessage">
+    <value>Системне повідомлення</value>
+  </string>
+  <string id="51" name="chossedevice">
+    <value>Вибір пристрою</value>
+  </string>
+  <string id="52" name="choosecam">
+    <value>Обрати камеру:</value>
+  </string>
+  <string id="53" name="choosemic">
+    <value>Обрати мікрофон:</value>
+  </string>
+  <string id="54" name="ok">
+    <value>OK</value>
+  </string>
+  <string id="55" name="cancel2">
+    <value>Скасувати</value>
+  </string>
+  <string id="56" name="reconeectneeded">
+    <value>Ви повинні ввійти знову, щоб активізувати зміни.</value>
+  </string>
+  <string id="57" name="editsetup">
+    <value>Змінити налаштування.</value>
+  </string>
+  <string id="58" name="course">
+    <value>Курс:</value>
+  </string>
+  <string id="59" name="language">
+    <value>Мова:</value>
+  </string>
+  <string id="60" name="ok2">
+    <value>OK</value>
+  </string>
+  <string id="61" name="cancel3">
+    <value>Скасувати</value>
+  </string>
+  <string id="62" name="clearwhiteboard">
+    <value>Очистити планшет</value>
+  </string>
+  <string id="63" name="clearwhiteboardquestion">
+    <value>Очистити планшет перед додаванням нового зображення?</value>
+  </string>
+  <string id="64" name="dontaskagain">
+    <value>чистити планшет перед додаванням нового зображення</value>
+  </string>
+  <string id="65" name="no">
+    <value>ні</value>
+  </string>
+  <string id="66" name="editsetup2">
+    <value>Обробити налаштування</value>
+  </string>
+  <string id="67" name="needconfirmationwhiteboard">
+    <value>Запросити підтвердження перед очисткою планшету.</value>
+  </string>
+  <string id="68" name="userinfo">
+    <value>Наша інформація</value>
+  </string>
+  <string id="69" name="cleardrawarea">
+    <value>Очистити планшет</value>
+  </string>
+  <string id="70" name="undo">
+    <value>Відмінити</value>
+  </string>
+  <string id="71" name="redo">
+    <value>Відновлення</value>
+  </string>
+  <string id="72" name="selectobject">
+    <value>Вибрати об'єкт</value>
+  </string>
+  <string id="73" name="text">
+    <value>Текст</value>
+  </string>
+  <string id="74" name="paint">
+    <value>Малювання</value>
+  </string>
+  <string id="75" name="drawline">
+    <value>Провести лінію</value>
+  </string>
+  <string id="76" name="drawu">
+    <value>Підкреслити</value>
+  </string>
+  <string id="77" name="rect">
+    <value>Прямокутник</value>
+  </string>
+  <string id="78" name="ellipse">
+    <value>Еліпс</value>
+  </string>
+  <string id="79" name="arrow">
+    <value>Стрілка</value>
+  </string>
+  <string id="80" name="deletechosen">
+    <value>Стерти обраний елемент</value>
+  </string>
+  <string id="81" name="appliymod">
+    <value>Запит функції модератора</value>
+  </string>
+  <string id="82" name="apply">
+    <value>Запит</value>
+  </string>
+  <string id="83" name="cancel">
+    <value>Скасувати</value>
+  </string>
+  <string id="84" name="mod">
+    <value>Отримати функцію модератора</value>
+  </string>
+  <string id="85" name="close">
+    <value>Закрити</value>
+  </string>
+  <string id="86" name="italic">
+    <value>Курсив</value>
+  </string>
+  <string id="87" name="bold">
+    <value>Жирний шрифт</value>
+  </string>
+  <string id="88" name="waiting">
+    <value>Будь-ласкаа зачекайте...</value>
+  </string>
+  <string id="89" name="applyMessage">
+    <value>Користувач бажає отримати функцію модератора</value>
+  </string>
+  <string id="90" name="accept">
+    <value>Згода</value>
+  </string>
+  <string id="91" name="reject">
+    <value>Скасування</value>
+  </string>
+  <string id="92" name="cancel">
+    <value>Скасувати</value>
+  </string>
+  <string id="93" name="sendmodrequestmessage">
+    <value>Надсилання запиту наступному користувачу</value>
+  </string>
+  <string id="94" name="accept">
+    <value>Дано згоду</value>
+  </string>
+  <string id="95" name="reject">
+    <value>Скасовано</value>
+  </string>
+  <string id="96" name="changemod">
+    <value>Заміна модератора</value>
+  </string>
+  <string id="97" name="nonmoderrormessage">
+    <value>Ви не є модератором даного курсу!</value>
+  </string>
+  <string id="98" name="moderator">
+    <value>Модератор:</value>
+  </string>
+  <string id="99" name="roomfullmessage">
+    <value>Вибачте, в цій кімнаті немає місця. Будь-ласка попробуйте ще через деякий час.</value>
+  </string>
+  <string id="100" name="elllipse">
+    <value>Еліпс</value>
+  </string>
+  <string id="101" name="close">
+    <value>Закрити</value>
+  </string>
+  <string id="102" name="AuthError">
+    <value>Помилка при вводі</value>
+  </string>
+  <string id="103" name="min4username">
+    <value>Ім'я користувача повинно складатись мінімум з 4 знаків</value>
+  </string>
+  <string id="104" name="min4pass">
+    <value>Пароль повинен містити мінімум 4 знаки</value>
+  </string>
+  <string id="105" name="usernametaken">
+    <value>Це ім'я користувача вже присвоєне</value>
+  </string>
+  <string id="106" name="emailtaken">
+    <value>Введена електронна адреса вже зареєстрована</value>
+  </string>
+  <string id="107" name="emailtaken">
+    <value>Присутня помилка, просимо зв''язатись з адміністрацією</value>
+  </string>
+  <string id="108" name="Authlogin">
+    <value>Логін</value>
+  </string>
+  <string id="109" name="Authuser">
+    <value>Користувач:</value>
+  </string>
+  <string id="110" name="Authpass">
+    <value>Пароль:</value>
+  </string>
+  <string id="111" name="Authlang">
+    <value>Мова</value>
+  </string>
+  <string id="112" name="Authreg">
+    <value>Логін</value>
+  </string>
+  <string id="113" name="regformhead">
+    <value>Зареєструватись</value>
+  </string>
+  <string id="114" name="regformuser">
+    <value>Користувач:</value>
+  </string>
+  <string id="115" name="regformpass">
+    <value>Пароль:</value>
+  </string>
+  <string id="116" name="regformretype">
+    <value>Повторити:</value>
+  </string>
+  <string id="117" name="regformfirstname">
+    <value>Ім'я:</value>
+  </string>
+  <string id="118" name="regformlastname">
+    <value>Прізвище:</value>
+  </string>
+  <string id="119" name="regformmail">
+    <value>E-Mail:</value>
+  </string>
+  <string id="120" name="regformstate">
+    <value>Країна:</value>
+  </string>
+  <string id="121" name="regformbtn1">
+    <value>Зареєструватись</value>
+  </string>
+  <string id="122" name="regformbtn2">
+    <value>Скасувати</value>
+  </string>
+  <string id="123" name="Authbtn2">
+    <value>Регістр</value>
+  </string>
+  <string id="124" name="dashboard">
+    <value>На головну</value>
+  </string>
+  <string id="125" name="useradmin">
+    <value>Користувачі</value>
+  </string>
+  <string id="126" name="groupadmin">
+    <value>Групи</value>
+  </string>
+  <string id="127" name="orgadmin">
+    <value>Організації</value>
+  </string>
+  <string id="128" name="headconf">
+    <value>Кімнати для конференцій</value>
+  </string>
+  <string id="129" name="conf_pub">
+    <value>Публічно</value>
+  </string>
+  <string id="130" name="head_org">
+    <value>Організація</value>
+  </string>
+  <string id="131" name="btn_enterroom">
+    <value>Вхід</value>
+  </string>
+  <string id="132" name="useralterself_login">
+    <value>Користувач</value>
+  </string>
+  <string id="133" name="useralterself_pass">
+    <value>Пароль</value>
+  </string>
+  <string id="134" name="useralterself_passretype">
+    <value>Повторити</value>
+  </string>
+  <string id="135" name="useralterself_firstname">
+    <value>Ім'я</value>
+  </string>
+  <string id="136" name="useralterself_lastname">
+    <value>Прізвище</value>
+  </string>
+  <string id="137" name="useralterself_email">
+    <value>E-Mail</value>
+  </string>
+  <string id="138" name="useralterself_birth">
+    <value>Дата народження</value>
+  </string>
+  <string id="139" name="useralterself_streetno">
+    <value>Вулиця/№ будинка</value>
+  </string>
+  <string id="140" name="useralterself_town">
+    <value>Індекс/населений пункт</value>
+  </string>
+  <string id="141" name="useralterself_state">
+    <value>Країна</value>
+  </string>
+  <string id="142" name="useralterself_adresscomment">
+    <value>Додаткова brінформація</value>
+  </string>
+  <string id="143" name="useralterself_header">
+    <value>Дані користувача</value>
+  </string>
+  <string id="144" name="savemenubar_savelabel">
+    <value>Зберегти</value>
+  </string>
+  <string id="145" name="savemenubar_savelabel">
+    <value>Процес збереження</value>
+  </string>
+  <string id="146" name="admin_userlist_user_id">
+    <value>Ідент. № користувача</value>
+  </string>
+  <string id="147" name="admin_userlist_login">
+    <value>Логін</value>
+  </string>
+  <string id="148" name="admin_userlist_firstnam">
+    <value>Ім'я</value>
+  </string>
+  <string id="149" name="admin_userlist_lastname">
+    <value>Прізвище</value>
+  </string>
+  <string id="150" name="turnoverlist_next">
+    <value>Вперед</value>
+  </string>
+  <string id="151" name="turnoverlist_pre">
+    <value>Назад</value>
+  </string>
+  <string id="152" name="savecontent_confirm">
+    <value>Стерти запис</value>
+  </string>
+  <string id="153" name="savecontent_confirm_cancel_btn">
+    <value>Скасувати</value>
+  </string>
+  <string id="154" name="savecontent_confirm_confirm_btn">
+    <value>Стери</value>
+  </string>
+  <string id="155" name="savemenubar_addlabel">
+    <value>Створити запис</value>
+  </string>
+  <string id="156" name="savemenubar_reloadlabel">
+    <value>Оновити запис</value>
+  </string>
+  <string id="157" name="savemenubar_deletelabel">
+    <value>Стерти запис</value>
+  </string>
+  <string id="158" name="useralter_admin_status">
+    <value>Статус</value>
+  </string>
+  <string id="159" name="useralter_admin_statusItem">
+    <value>Заблоковано</value>
+  </string>
+  <string id="160" name="useralter_admin_statusItem">
+    <value>Активно</value>
+  </string>
+  <string id="161" name="useralter_admin_organisation">
+    <value>Організації</value>
+  </string>
+  <string id="162" name="calendar_iconlabel">
+    <value>Календар</value>
+  </string>
+  <string id="163" name="savewindow_btn">
+    <value>Закрити</value>
+  </string>
+  <string id="164" name="organisationtablelist_idrow">
+    <value>Ідент. № організації</value>
+  </string>
+  <string id="165" name="organisationtablelist_namerow">
+    <value>Ім'я</value>
+  </string>
+  <string id="166" name="uservalue_levelid1">
+    <value>Користувач</value>
+  </string>
+  <string id="167" name="uservalue_levelid2">
+    <value>Модератор</value>
+  </string>
+  <string id="168" name="uservalue_levelid3">
+    <value>Адміністратор</value>
+  </string>
+  <string id="169" name="uservalue_levellabel">
+    <value>Роль користувача</value>
+  </string>
+  <string id="170" name="orgvalue_header">
+    <value>Організація</value>
+  </string>
+  <string id="171" name="orgvalue_orgname">
+    <value>Ім'я</value>
+  </string>
+  <string id="172" name="orgvalue_orgname">
+    <value>Додати організацію</value>
+  </string>
+  <string id="173" name="orgvalue_orgname">
+    <value>Додати організацію</value>
+  </string>
+  <string id="174" name="orgvalue_userwin">
+    <value>Скасувати</value>
+  </string>
+  <string id="175" name="orgvalue_userwin">
+    <value>Додати</value>
+  </string>
+  <string id="176" name="orgvalue_userwin">
+    <value>Стерти організацію</value>
+  </string>
+  <string id="177" name="orgvalue_userlist">
+    <value>Користувач</value>
+  </string>
+  <string id="178" name="orgvalue_userlistadd">
+    <value>Додати користувача</value>
+  </string>
+  <string id="179" name="orgvalue_userlistdelete">
+    <value>Видалити користувача</value>
+  </string>
+  <string id="180" name="orgvalue_userwinheader">
+    <value>Додати користувача</value>
+  </string>
+  <string id="181" name="orgvalue_userwinsearchfield">
+    <value>Пошук користувача</value>
+  </string>
+  <string id="182" name="orgvalue_userwinsearchbtn">
+    <value>Шукати</value>
+  </string>
+  <string id="183" name="orgvalue_userwinsearchresult">
+    <value>Користувач</value>
+  </string>
+  <string id="184" name="loginwin_chooseorganisation">
+    <value>Організація</value>
+  </string>
+  <string id="185" name="loginwin_chooseorganisationbtn">
+    <value>Обрати</value>
+  </string>
+  <string id="186" name="navi_roomadmin">
+    <value>Кімнати для конференцій</value>
+  </string>
+  <string id="187" name="roomadmin_header">
+    <value>Кімнати для конференцій</value>
+  </string>
+  <string id="188" name="roomadmin_header">
+    <value>Ідент. №</value>
+  </string>
+  <string id="189" name="roomadmin_header">
+    <value>Ім'я</value>
+  </string>
+  <string id="190" name="roomadmin_header">
+    <value>Публічно</value>
+  </string>
+  <string id="191" name="roomadmin_header">
+    <value>Організації</value>
+  </string>
+  <string id="192" name="roomadmin_header">
+    <value>Кімнати для конференцій</value>
+  </string>
+  <string id="193" name="roomvalue_name">
+    <value>Ім'я</value>
+  </string>
+  <string id="194" name="roomvalue_type">
+    <value>Тип</value>
+  </string>
+  <string id="195" name="roomvalue_ispublic">
+    <value>Публічно</value>
+  </string>
+  <string id="196" name="roomvalue_comment">
+    <value>Коментар</value>
+  </string>
+  <string id="197" name="whiteboard_saveicon">
+    <value>Зберегти</value>
+  </string>
+  <string id="198" name="whiteboard_openicon">
+    <value>Вікдрити</value>
+  </string>
+  <string id="199" name="whiteboard_saveaswinheader">
+    <value>Зберегти як</value>
+  </string>
+  <string id="200" name="whiteboard_saveaswintext">
+    <value>Ім'я файлу</value>
+  </string>
+  <string id="201" name="files">
+    <value>Ім'я файлу</value>
+  </string>
+  <string id="202" name="whiteboard_saveaswinbtn1">
+    <value>Скасувати</value>
+  </string>
+  <string id="203" name="whiteboard_saveaswinbtn2">
+    <value>Зберегти</value>
+  </string>
+  <string id="204" name="rpcerrorwin_header">
+    <value>Помилка</value>
+  </string>
+  <string id="205" name="loadwml_header">
+    <value>Завантажити</value>
+  </string>
+  <string id="206" name="loadwml_messsload">
+    <value>Об'єкт завантажений</value>
+  </string>
+  <string id="207" name="loadwml_messsync">
+    <value>Синхронізація клієнтів. Залишилось клієнтів:</value>
+  </string>
+  <string id="208" name="loadimage_messload">
+    <value>Завантаження графічних даних</value>
+  </string>
+  <string id="209" name="loadimage_messsync">
+    <value>Синхронізація клієнтів. Залишилось клієнтів:</value>
+  </string>
+  <string id="210" name="loadwml_confirmheader">
+    <value>Очистити планшет</value>
+  </string>
+  <string id="211" name="loadwml_confirmmess">
+    <value>Очистити планшет, при цьому всі зміни будуть втрачені!</value>
+  </string>
+  <string id="212" name="loadwml_confirmmess2">
+    <value>Перед завантаженням файлу запросити підтвердження</value>
+  </string>
+  <string id="213" name="send_invitation_btn">
+    <value>Відіслати запрошення</value>
+  </string>
+  <string id="214" name="send_invitationwin_header">
+    <value>Відправити запрошення</value>
+  </string>
+  <string id="215" name="send_invitationwin_subject">
+    <value>Тема</value>
+  </string>
+  <string id="216" name="send_invitationwin_recipient">
+    <value>Адреса одержувача</value>
+  </string>
+  <string id="217" name="send_invitationwin_message">
+    <value>Повідомлення</value>
+  </string>
+  <string id="218" name="send_invitationwin_btn_confirm">
+    <value>Відправити</value>
+  </string>
+  <string id="219" name="send_invitationwin_btn_cancel">
+    <value>Скасувати</value>
+  </string>
+  <string id="220" name="send_chat_text_btn">
+    <value>Відправити</value>
+  </string>
+  <string id="221" name="invited_userwin_header">
+    <value>Данні користувача</value>
+  </string>
+  <string id="222" name="invited_userwin_subject">
+    <value>Нік для даної конфренції</value>
+  </string>
+  <string id="223" name="invited_userwin_login">
+    <value>Прізвище/псевдонім</value>
+  </string>
+  <string id="224" name="invited_userwin_firstname">
+    <value>Ім'я</value>
+  </string>
+  <string id="225" name="invited_userwin_lastname">
+    <value>Прізвище</value>
+  </string>
+  <string id="226" name="invited_userwin_mail">
+    <value>E-Mail</value>
+  </string>
+  <string id="227" name="invited_userwin_lang">
+    <value>Мова</value>
+  </string>
+  <string id="228" name="invited_userwin_enter">
+    <value>Відправити</value>
+  </string>
+  <string id="229" name="invited_userwin_enter">
+    <value>Триває завантаження...</value>
+  </string>
+  <string id="230" name="invited_userwin_enter">
+    <value>Дані завантажуються, будь-ласка зачекайте...</value>
+  </string>
+  <string id="231" name="user_registerFalsePWD">
+    <value>Невірний пароль</value>
+  </string>
+  <string id="232" name="user_registerFalsePWDHeader">
+    <value>Будь ласка введіть два ідентичні паролі, що містять мінімум 6 символи.</value>
+  </string>
+  <string id="233" name="user_registerMailError">
+    <value>Невірний e-mail</value>
+  </string>
+  <string id="234" name="user_registerMailErrorHeader">
+    <value>Ви ввели не вірний e-mail</value>
+  </string>
+  <string id="235" name="user_registerSuccess">
+    <value>Реєстрація завершена</value>
+  </string>
+  <string id="236" name="user_registerSuccessHeader">
+    <value>Ваш акаунт створено. Тепер Ви можете ввійти в систему.</value>
+  </string>
+  <string id="237" name="user_sharing_message">
+    <value>Ви не можете завантажити ваш знімок. Хтось вже зробив це.</value>
+  </string>
+  <string id="238" name="user_sharing_messageHeader">
+    <value>Завантаження заборонене</value>
+  </string>
+  <string id="239" name="user_doStartScreenViewer">
+    <value>Зробити знімок екрану</value>
+  </string>
+  <string id="240" name="screen_warnBandwidth">
+    <value>Поганий пропускний кнаал: Ви не можете синхронізувати ваш екран. Фрейми будуть втрачені. Якщо це повідомлення повториться запитайте в модератора про зменшення якості.</value>
+  </string>
+  <string id="241" name="screen_userlabel">
+    <value>Екран:</value>
+  </string>
+  <string id="242" name="whiteboard_tab_paint">
+    <value>Малюнок</value>
+  </string>
+  <string id="243" name="whiteboard_tab_document">
+    <value>Документ</value>
+  </string>
+  <string id="244" name="tabbar_chaticon">
+    <value>Чат</value>
+  </string>
+  <string id="245" name="tabbar_filesicon">
+    <value>Файли</value>
+  </string>
+  <string id="246" name="tabbar_participantsicon">
+    <value>Користувачі</value>
+  </string>
+  <string id="247" name="swfpresentation_listsaveorig">
+    <value>Завантажити оригінальні документи</value>
+  </string>
+  <string id="248" name="swfpresentation_listsavepdf">
+    <value>Завантажити pdf документ</value>
+  </string>
+  <string id="249" name="swfpresentation_listloadswf">
+    <value>Завантажити презентацію на планшет</value>
+  </string>
+  <string id="250" name="navimain_config">
+    <value>Налаштування</value>
+  </string>
+  <string id="251" name="whiteboard_boundingbox_drag">
+    <value>Потягнути цей об'єкт</value>
+  </string>
+  <string id="252" name="whiteboard_boundingbox_resize">
+    <value>Змінити розмір об'єкта</value>
+  </string>
+  <string id="253" name="whiteboard_documenttoolbar_zoom">
+    <value>%</value>
+  </string>
+  <string id="254" name="whiteboard_documenttoolbar_slide">
+    <value>з</value>
+  </string>
+  <string id="255" name="whiteboard_documenttoolbar_firstslide">
+    <value>На 1 сторінку</value>
+  </string>
+  <string id="256" name="whiteboard_documenttoolbar_preslide">
+    <value>На попередню сторінку</value>
+  </string>
+  <string id="257" name="whiteboard_documenttoolbar_nextslide">
+    <value>На наступну сторінку</value>
+  </string>
+  <string id="258" name="whiteboard_documenttoolbar_lastslide">
+    <value>На останню сторінку</value>
+  </string>
+  <string id="259" name="whiteboard_documenttoolbar_zoomminus">
+    <value>Зменшити</value>
+  </string>
+  <string id="260" name="whiteboard_documenttoolbar_zoomplus">
+    <value>Збільшити</value>
+  </string>
+  <string id="261" name="salutation_mr">
+    <value>П.</value>
+  </string>
+  <string id="262" name="salutation_miss">
+    <value>П.</value>
+  </string>
+  <string id="263" name="navimain_confadmin">
+    <value>Налаштування</value>
+  </string>
+  <string id="264" name="conftable_headerId">
+    <value>ID</value>
+  </string>
+  <string id="265" name="conftable_headerkey">
+    <value>Ключ</value>
+  </string>
+  <string id="266" name="confadminform_header">
+    <value>Налаштування</value>
+  </string>
+  <string id="267" name="confadminform_labelkey">
+    <value>Ключ</value>
+  </string>
+  <string id="268" name="confadminform_labelupdated">
+    <value>Останнє оновлення</value>
+  </string>
+  <string id="269" name="confadminform_labelupdatedby">
+    <value>Оновлення</value>
+  </string>
+  <string id="270" name="confadminform_labelcomment">
+    <value>Коментарі</value>
+  </string>
+  <string id="271" name="confadminform_labelkey">
+    <value>Ключ</value>
+  </string>
+  <string id="272" name="turnoverlist_maxresults">
+    <value>з</value>
+  </string>
+  <string id="273" name="organisation_usersheader">
+    <value>Користувачі</value>
+  </string>
+  <string id="274" name="organisation_usersicondelete">
+    <value>Стерти користувача з організації</value>
+  </string>
+  <string id="275" name="organisation_usersdeletedhead">
+    <value>Стерти</value>
+  </string>
+  <string id="276" name="organisation_usersalreadadded">
+    <value>Цей користувач є вже учасником цієї організації.</value>
+  </string>
+  <string id="277" name="dashboard_newsheader">
+    <value>Новини</value>
+  </string>
+  <string id="278" name="dashboard_quicklinksheader">
+    <value>Посиланння</value>
+  </string>
+  <string id="279" name="dashboard_quicklinkConf">
+    <value>В Конференції</value>
+  </string>
+  <string id="280" name="dashboard_quicklinkAudit">
+    <value>В Аудиторії</value>
+  </string>
+  <string id="281" name="dashboard_quicklinksupport">
+    <value>Допомога і підтримка</value>
+  </string>
+  <string id="282" name="dashboard_quickhomepageurl">
+    <value>http://openmeetings.apache.org/</value>
+  </string>
+  <string id="283" name="dashboard_quickmailinglisturl">
+    <value>http://openmeetings.apache.org/mail-lists.html</value>
+  </string>
+  <string id="284" name="dashboard_reportbugs">
+    <value>Повідомити про помилки!</value>
+  </string>
+  <string id="285" name="dashboard_rsslistitemlinktext">
+    <value>Більше</value>
+  </string>
+  <string id="286" name="dashboard_quicklinkhomepagelabel">
+    <value>Сайт проекту (http://openmeetings.apache.org)</value>
+  </string>
+  <string id="287" name="dashboard_quicklinkmailinglistlabel">
+    <value>User Mailing List (http://openmeetings.apache.org/mail-lists.html)</value>
+  </string>
+  <string id="288" name="login_rememberuser">
+    <value>Запам'ятати вхід</value>
+  </string>
+  <string id="289" name="main_navi">
+    <value>Контент</value>
+  </string>
+  <string id="290" name="subnavi">
+    <value>Моя домашня сторінка</value>
+  </string>
+  <string id="291" name="subnavi">
+    <value>Заплановані конференції</value>
+  </string>
+  <string id="292" name="subnavi">
+    <value>Заплановані події</value>
+  </string>
+  <string id="293" name="subnavi">
+    <value>Публічні конференції</value>
+  </string>
+  <string id="294" name="subnavi">
+    <value>Приватні конференції</value>
+  </string>
+  <string id="295" name="subnavi">
+    <value>Публічні події</value>
+  </string>
+  <string id="296" name="subnavi">
+    <value>Приватні події</value>
+  </string>
+  <string id="297" name="subnavi">
+    <value>Публічний контент</value>
+  </string>
+  <string id="298" name="subnavi">
+    <value>Приватний контент</value>
+  </string>
+  <string id="299" name="subnavi">
+    <value>Персональний контент</value>
+  </string>
+  <string id="300" name="subnavi">
+    <value></value>
+  </string>
+  <string id="301" name="conferencebar">
+    <value>Модерація</value>
+  </string>
+  <string id="302" name="conferencebar">
+    <value>Призначити модератором</value>
+  </string>
+  <string id="303" name="conferencebar">
+    <value>Опитування</value>
+  </string>
+  <string id="304" name="conferencebar">
+    <value>Вибрати файл</value>
+  </string>
+  <string id="305" name="conferencebar">
+    <value>Налаштування</value>
+  </string>
+  <string id="306" name="conferencebar">
+    <value>Налаштування камери і мікрофона</value>
+  </string>
+  <string id="307" name="conferencebar">
+    <value>Налаштування планшету</value>
+  </string>
+  <string id="308" name="conferencebar">
+    <value>Вихід</value>
+  </string>
+  <string id="309" name="conferencebar">
+    <value>Повернутись до кімнат</value>
+  </string>
+  <string id="310" name="conferencebar">
+    <value>Вийти</value>
+  </string>
+  <string id="311" name="loginwindow">
+    <value>Провідник</value>
+  </string>
+  <string id="312" name="loginwindow">
+    <value>Запуск провідника</value>
+  </string>
+  <string id="313" name="loginwindow">
+    <value>Відео і Аудіо</value>
+  </string>
+  <string id="314" name="loginwindow">
+    <value>Чат</value>
+  </string>
+  <string id="315" name="loginwindow">
+    <value>Планшет</value>
+  </string>
+  <string id="316" name="loginwindow">
+    <value>Модерація</value>
+  </string>
+  <string id="317" name="loginwindow">
+    <value>Файли</value>
+  </string>
+  <string id="318" name="loginwindow">
+    <value>Користувачі</value>
+  </string>
+  <string id="319" name="loginwindow">
+    <value>Опитування</value>
+  </string>
+  <string id="320" name="loginwindow">
+    <value>Користувач з даним іменем відсутній</value>
+  </string>
+  <string id="321" name="loginwindow">
+    <value>На вашу поштоу скриньку вислано лист. Будь-ласка перевірте ваш поштову скриньку.</value>
+  </string>
+  <string id="322" name="errortype">
+    <value>Помилка</value>
+  </string>
+  <string id="323" name="errortype">
+    <value>Повідомлення</value>
+  </string>
+  <string id="324" name="resetpass">
+    <value>Неправильний хеш. Користувача не знайдено.</value>
+  </string>
+  <string id="325" name="resetpass">
+    <value>Скинути Ваш пароль</value>
+  </string>
+  <string id="326" name="resetpass">
+    <value>Логін</value>
+  </string>
+  <string id="327" name="resetpass">
+    <value>змінити пароль</value>
+  </string>
+  <string id="328" name="resetpass">
+    <value>Новий пароль</value>
+  </string>
+  <string id="329" name="resetpass">
+    <value>Повторіть пароль</value>
+  </string>
+  <string id="330" name="resetpass">
+    <value>Введені паролі не ідентичні.</value>
+  </string>
+  <string id="331" name="resetpass">
+    <value>Пароль повинен містити мінімум 4 символи!</value>
+  </string>
+  <string id="332" name="resetpass">
+    <value>Пароль встановлено. Тепер ви можете ввійти.</value>
+  </string>
+  <string id="333" name="rpccallback">
+    <value>OK</value>
+  </string>
+  <string id="334" name="rpcgeneralerror">
+    <value>Невідома помилка. Будь-ласка зв'яжіться з адміністратором.</value>
+  </string>
+  <string id="335" name="loginwindow">
+    <value>Невідоме ім'я користувача</value>
+  </string>
+  <string id="336" name="loginwindow">
+    <value>Невірний пароль</value>
+  </string>
+  <string id="337" name="logout">
+    <value>Ви успішно вийшли з системи</value>
+  </string>
+  <string id="338" name="registration">
+    <value>Попередня реєстрація вимкнена.</value>
+  </string>
+  <string id="339" name="registration">
+    <value>Невірний e-mail</value>
+  </string>
+  <string id="340" name="registration">
+    <value>Однакові імена файлів, будь-ласка виберіть інше ім'я</value>
+  </string>
+  <string id="341" name="filebrowser">
+    <value>Ім'я файлу надто коротке</value>
+  </string>
+  <string id="342" name="filebrowser">
+    <value>Неможливо зберегти адресу</value>
+  </string>
+  <string id="343" name="useradmin">
+    <value>Користувач доданий, але Ви повинні додати користувача в організацію, бо інакше він не зможе ввійти в систему.</value>
+  </string>
+  <string id="344" name="adminforms">
+    <value>Новий запис</value>
+  </string>
+  <string id="345" name="languageseditor">
+    <value>Не знайдено полів з цим ID.</value>
+  </string>
+  <string id="346" name="languageseditor">
+    <value>Не знайдено міток для цього поля.</value>
+  </string>
+  <string id="347" name="errormessage">
+    <value>Потрібні права адміністратора</value>
+  </string>
+  <string id="348" name="mainnavi">
+    <value>Редактор мови</value>
+  </string>
+  <string id="349" name="languageseditor">
+    <value>Мова</value>
+  </string>
+  <string id="350" name="languageseditor">
+    <value>ID змінної</value>
+  </string>
+  <string id="351" name="languageseditor">
+    <value>ID змінної</value>
+  </string>
+  <string id="352" name="languageseditor">
+    <value>Значення</value>
+  </string>
+  <string id="353" name="languageseditor">
+    <value>Значення полів</value>
+  </string>
+  <string id="354" name="languageseditor">
+    <value>Назви міток</value>
+  </string>
+  <string id="355" name="languageseditor">
+    <value>Значення міток</value>
+  </string>
+  <string id="356" name="languageseditor">
+    <value>ID мітки</value>
+  </string>
+  <string id="357" name="languageseditor">
+    <value>Ви тільки стираєте мітку, а не поле! Ви не можете стерти поле, оскільки воно маже мітки на інших мовах.</value>
+  </string>
+  <string id="358" name="languageseditor">
+    <value>Невірний ID мітки. FieldLanguagesvalues_Id не знайдено в базі даних.</value>
+  </string>
+  <string id="359" name="languageseditor">
+    <value>Ви не можете стерти поле. Ви можете стирати лише мітки, а не поля. Немає мітки завантаженої в даний момент, або не існує мітки для даного поля.</value>
+  </string>
+  <string id="360" name="languageseditor">
+    <value>Експорт</value>
+  </string>
+  <string id="361" name="languageseditor">
+    <value>Ви повинні вийти з системи, щоб побачити внесені зміни.</value>
+  </string>
+  <string id="362" name="languageseditor">
+    <value>Додати нову мову</value>
+  </string>
+  <string id="363" name="languageseditor">
+    <value>Видалити мову</value>
+  </string>
+  <string id="364" name="languageseditor">
+    <value>Додати нову мову</value>
+  </string>
+  <string id="365" name="languageseditor">
+    <value>Ім'я</value>
+  </string>
+  <string id="366" name="languageseditor">
+    <value>Додати мову</value>
+  </string>
+  <string id="367" name="languageseditor">
+    <value>Резервні копії</value>
+  </string>
+  <string id="368" name="turnoverlist">
+    <value>На початок</value>
+  </string>
+  <string id="369" name="turnoverlist">
+    <value>Назад</value>
+  </string>
+  <string id="370" name="turnoverlist">
+    <value>Наступне</value>
+  </string>
+  <string id="371" name="turnoverlist">
+    <value>В кінець</value>
+  </string>
+  <string id="372" name="videobox">
+    <value>Розмови користувача (By clicking here you can give exclusive audio / mute the microphone of others)</value>
+  </string>
+  <string id="373" name="videobox">
+    <value>вкл/викл звук</value>
+  </string>
+  <string id="374" name="dashboard">
+    <value>Система</value>
+  </string>
+  <string id="375" name="dashboard">
+    <value>Особисті налаштування</value>
+  </string>
+  <string id="376" name="dashboard">
+    <value>Привіт,</value>
+  </string>
+  <string id="377" name="dashboard">
+    <value>Налаштувати профіль</value>
+  </string>
+  <string id="378" name="dashboard">
+    <value>Нове повідомлення:</value>
+  </string>
+  <string id="379" name="dashboard">
+    <value>Завантажити малюнок</value>
+  </string>
+  <string id="380" name="backuppanel">
+    <value>Дані користувача - Експорт</value>
+  </string>
+  <string id="381" name="backuppanel">
+    <value>Спочатку повинні бути створені усі організації</value>
+  </string>
+  <string id="382" name="backuppanel">
+    <value>Почати експорт</value>
+  </string>
+  <string id="383" name="backuppanel">
+    <value>По організаціях</value>
+  </string>
+  <string id="384" name="backuppanel">
+    <value>Почати експорт</value>
+  </string>
+  <string id="385" name="backuppanel">
+    <value>Дані користувача - імпорт</value>
+  </string>
+  <string id="386" name="backuppanel">
+    <value>Вибрати users.xml</value>
+  </string>
+  <string id="387" name="languageseditor">
+    <value>Імпорт</value>
+  </string>
+  <string id="388" name="languageseditor">
+    <value>Експортувати в XML</value>
+  </string>
+  <string id="389" name="languageseditor">
+    <value>Виберіть мовний файл для імпорту. Виберіть правильну мову зі списку! Незаважаючи, яку назву має файл, він буде імпортований в цю мову</value>
+  </string>
+  <string id="390" name="importwindow">
+    <value>Імпорт - вибрати файл</value>
+  </string>
+  <string id="391" name="recordingsavewin">
+    <value>Зберегти як</value>
+  </string>
+  <string id="392" name="recordingsavewin">
+    <value>Ім'я:</value>
+  </string>
+  <string id="393" name="recordingsavewin">
+    <value>Коментарі:</value>
+  </string>
+  <string id="394" name="recordingsavewin">
+    <value>Зберегти</value>
+  </string>
+  <string id="395" name="record">
+    <value>Записи</value>
+  </string>
+  <string id="396" name="recorder">
+    <value>Перегляд записів</value>
+  </string>
+  <string id="397" name="record">
+    <value>Записи публічних і приватних кімнат</value>
+  </string>
+  <string id="398" name="roomslist">
+    <value>Користувачі:</value>
+  </string>
+  <string id="399" name="roomslist">
+    <value>Під'єднано:</value>
+  </string>
+  <string id="400" name="roomslist">
+    <value></value>
+  </string>
+  <string id="401" name="roomslist">
+    <value>Користувачів в кімнаті:</value>
+  </string>
+  <string id="402" name="roomslist">
+    <value>Оновити</value>
+  </string>
+  <string id="403" name="roomslist">
+    <value>Ця кімната переповнена. Спробуйте ще через декілька хвилин.</value>
+  </string>
+  <string id="404" name="roomsList">
+    <value>Виберіть кімнату щоб взнати деталі</value>
+  </string>
+  <string id="405" name="roomslist">
+    <value>Чат з користувачами даної кімнати:</value>
+  </string>
+  <string id="406" name="roomslist">
+    <value>Кімната:</value>
+  </string>
+  <string id="407" name="roomslist">
+    <value>Користувачів в цій кімнаті:</value>
+  </string>
+  <string id="408" name="roomslist">
+    <value>Після:</value>
+  </string>
+  <string id="409" name="record">
+    <value>Програти запис</value>
+  </string>
+  <string id="410" name="record">
+    <value>Довжина:</value>
+  </string>
+  <string id="411" name="record">
+    <value>Дата:</value>
+  </string>
+  <string id="412" name="record">
+    <value>Режим запису! Ви не можете змінити ніяких значень, цей файл вже записаний!</value>
+  </string>
+  <string id="413" name="record">
+    <value>Програти запис</value>
+  </string>
+  <string id="414" name="record">
+    <value>Програти / Пауза</value>
+  </string>
+  <string id="415" name="record">
+    <value>Початок запису</value>
+  </string>
+  <string id="416" name="record">
+    <value>Зупинити запис</value>
+  </string>
+  <string id="417" name="record">
+    <value>Запис:</value>
+  </string>
+  <string id="418" name="record_error_msg">
+    <value>На даний момент хтось уже виконує запис:</value>
+  </string>
+  <string id="419" name="record_message">
+    <value>Запис! Користувач:</value>
+  </string>
+  <string id="420" name="record_cancel">
+    <value>Скасувати</value>
+  </string>
+  <string id="421" name="record_cancal_tooltip">
+    <value>Запису був скасований і не може бути збережений.</value>
+  </string>
+  <string id="422" name="cancel_dialog_resume">
+    <value>Продовжити</value>
+  </string>
+  <string id="423" name="cancel_dialog_resume_tooltip">
+    <value>Закрити це вікно і продовжити запис</value>
+  </string>
+  <string id="424" name="painttools_ellipse_color">
+    <value>Інший колір лінії</value>
+  </string>
+  <string id="425" name="colorpicker_head">
+    <value>Вибрати колір</value>
+  </string>
+  <string id="426" name="painttools_line_disable">
+    <value>Вкл / Викл колір лінії</value>
+  </string>
+  <string id="427" name="painttools_fill_disable">
+    <value>Змінити колір наповнення</value>
+  </string>
+  <string id="428" name="painttools_line_disable">
+    <value>Викл / Вкл колір наповнення</value>
+  </string>
+  <string id="429" name="change_width_arrow_down_slider">
+    <value>Змінити ширину лінії</value>
+  </string>
+  <string id="430" name="close_small_popups">
+    <value>Закрити</value>
+  </string>
+  <string id="431" name="paint_tool_letter">
+    <value>Змінити розмір шрифту</value>
+  </string>
+  <string id="432" name="recordingslist_delete">
+    <value>Стерти запис</value>
+  </string>
+  <string id="433" name="recordingslist_recordedByGuest">
+    <value>Гість</value>
+  </string>
+  <string id="434" name="recordingslist_recordedby">
+    <value>В:</value>
+  </string>
+  <string id="435" name="recordings_table_head_name">
+    <value>Ім'я</value>
+  </string>
+  <string id="436" name="recordings_table_head_room">
+    <value>Кімната</value>
+  </string>
+  <string id="437" name="recordings_table_head_date">
+    <value>Дата</value>
+  </string>
+  <string id="438" name="record_start_cancel">
+    <value>Відміна</value>
+  </string>
+  <string id="439" name="record_start_start">
+    <value>Старт</value>
+  </string>
+  <string id="440" name="filesbrowser_table_head_name">
+    <value>Ім'я</value>
+  </string>
+  <string id="441" name="filesbrowser_table_head_date">
+    <value>Дата</value>
+  </string>
+  <string id="442" name="chat_clear_history">
+    <value>Стерти лог чату серверу</value>
+  </string>
+  <string id="443" name="chat_overall_header">
+    <value>Чат</value>
+  </string>
+  <string id="444" name="chat_send_btn">
+    <value>Відправити повідомлення</value>
+  </string>
+  <string id="445" name="chat_emot_btn">
+    <value>Емоції</value>
+  </string>
+  <string id="446" name="chat_emot_win">
+    <value>Емоції</value>
+  </string>
+  <string id="447" name="choose_video_settings">
+    <value>Виберіть публічні пристрої</value>
+  </string>
+  <string id="448" name="choose_video_settings_combo">
+    <value>Аудіо і відео</value>
+  </string>
+  <string id="449" name="choose_video_settings_combo">
+    <value>Лише аудіо</value>
+  </string>
+  <string id="450" name="choose_video_settings_combo">
+    <value>Лише відео</value>
+  </string>
+  <string id="451" name="choose_video_settings_combo">
+    <value>без Аудіо/Відео (статичні малюнки)</value>
+  </string>
+  <string id="452" name="choose_video_settings_info_text">
+    <value>Без показу Аудіо/Відео від вашого ПК. Буде доступна лиша картинка вашого профілю. Виберіть ці параметри якщо у вас поганий канал Internet.</value>
+  </string>
+  <string id="453" name="calendar_dayname_monday">
+    <value>ПН</value>
+  </string>
+  <string id="454" name="calendar_dayname_tuesday">
+    <value>ВТ</value>
+  </string>
+  <string id="455" name="calendar_dayname_wednesday">
+    <value>СР</value>
+  </string>
+  <string id="456" name="calendar_dayname_thursday">
+    <value>ЧТ</value>
+  </string>
+  <string id="457" name="calendar_dayname_friday">
+    <value>ПТ</value>
+  </string>
+  <string id="458" name="calendar_dayname_saturday">
+    <value>СБ</value>
+  </string>
+  <string id="459" name="calendar_dayname_sunday">
+    <value>НД</value>
+  </string>
+  <string id="460" name="calendar_dayname_monday">
+    <value>Понеділок</value>
+  </string>
+  <string id="461" name="calendar_dayname_TuesdayLabel">
+    <value>Вівторок</value>
+  </string>
+  <string id="462" name="calendar_dayname_WednesdayLabel">
+    <value>Середа</value>
+  </string>
+  <string id="463" name="calendar_dayname_ThursdayLabel">
+    <value>Четвер</value>
+  </string>
+  <string id="464" name="calendar_dayname_FridayLabel">
+    <value>Пятниця</value>
+  </string>
+  <string id="465" name="calendar_dayname_SaturdayLabel">
+    <value>Субота</value>
+  </string>
+  <string id="466" name="calendar_dayname_SundayLabel">
+    <value>Неділя</value>
+  </string>
+  <string id="467" name="calendar_weeknumber_header">
+    <value>КТ</value>
+  </string>
+  <string id="468" name="calendar_weeknumber_headerTooltip">
+    <value>Календарний тиждень</value>
+  </string>
+  <string id="469" name="calendar_monthnames">
+    <value>Січень</value>
+  </string>
+  <string id="470" name="calendar_monthnames">
+    <value>Лютий</value>
+  </string>
+  <string id="471" name="calendar_monthnames">
+    <value>Березень</value>
+  </string>
+  <string id="472" name="calendar_monthnames">
+    <value>Квітень</value>
+  </string>
+  <string id="473" name="calendar_monthnames">
+    <value>Травень</value>
+  </string>
+  <string id="474" name="calendar_monthnames">
+    <value>Червень</value>
+  </string>
+  <string id="475" name="calendar_monthnames">
+    <value>Липень</value>
+  </string>
+  <string id="476" name="calendar_monthnames">
+    <value>Серпень</value>
+  </string>
+  <string id="477" name="calendar_monthnames">
+    <value>Вересень</value>
+  </string>
+  <string id="478" name="calendar_monthnames">
+    <value>Жовтень</value>
+  </string>
+  <string id="479" name="calendar_monthnames">
+    <value>Листопад</value>
+  </string>
+  <string id="480" name="calendar_monthnames">
+    <value>Грудень</value>
+  </string>
+  <string id="481" name="calendarwin_header">
+    <value>Календар</value>
+  </string>
+  <string id="482" name="roomadmin_labelNumberOfParticipants">
+    <value>Учасники</value>
+  </string>
+  <string id="483" name="roomValue_advancedSettings">
+    <value>Показати налаштування показу</value>
+  </string>
+  <string id="484" name="roomAdmin_layout_videoX">
+    <value>X | Y</value>
+  </string>
+  <string id="485" name="roomAdmin_layout_videoY">
+    <value>Ширина | Висота</value>
+  </string>
+  <string id="486" name="roomAdmin_layout">
+    <value>Відео-контейнер</value>
+  </string>
+  <string id="487" name="roomAdmin_layout_mod">
+    <value>Контейнер модерації</value>
+  </string>
+  <string id="488" name="roomAdmin_layout_mod_pos">
+    <value>X</value>
+  </string>
+  <string id="489" name="roomAdmin_layout_whiteboard">
+    <value>Контейнер планшету</value>
+  </string>
+  <string id="490" name="roomAdmin_layout_whiteboard_show">
+    <value>Активізувати</value>
+  </string>
+  <string id="491" name="roomAdmin_layout_whiteboard_pos">
+    <value>X | Y</value>
+  </string>
+  <string id="492" name="roomAdmin_layout_whiteboard">
+    <value>Ширина | Висота</value>
+  </string>
+  <string id="493" name="roomAdmin_layout_files">
+    <value>Контейнер файлів,чату,учасників -</value>
+  </string>
+  <string id="494" name="roomAdmin_layout_files_show">
+    <value>Активізувати</value>
+  </string>
+  <string id="495" name="roomAdmin_layout_files_pos">
+    <value>X |Y</value>
+  </string>
+  <string id="496" name="roomAdmin_layout_files">
+    <value>Ширина | Висота</value>
+  </string>
+  <string id="497" name="moderator_gone_message">
+    <value>Модератор покинув кімнату. Ви можете стати модератором або чекати.</value>
+  </string>
+  <string id="498" name="moderator_message_event_no_mod">
+    <value>Немає модератора в даній кімнаті, але є учасники. Ви можете стати модератором або чекати</value>
+  </string>
+  <string id="499" name="feedback_template_subject">
+    <value>Зворотній зв'язок $APP_NAME</value>
+  </string>
+  <string id="500" name="invitation_template_head">
+    <value>$APP_NAME - Запрошення</value>
+  </string>
+  <string id="501" name="invitation_text_from">
+    <value>Повідомлення для користувачів:</value>
+  </string>
+  <string id="502" name="invitation_text_message">
+    <value>Повідомлення:</value>
+  </string>
+  <string id="503" name="invitation_text_click_text">
+    <value>Натисніть на цей лінк щоб взяти участь в конференції:</value>
+  </string>
+  <string id="504" name="invitation_text_click_text_link">
+    <value>Натисніть тут, щоб увійти в кімнату</value>
+  </string>
+  <string id="505" name="invitation_text_click_text_help">
+    <value>Якщо ви має проблему з даним посилання, будь-ласка скопіюйте його і вставте в свій браузер:</value>
+  </string>
+  <string id="506" name="registering_mail_text_head">
+    <value>$APP_NAME SignUp</value>
+  </string>
+  <string id="507" name="registering_mail_text_head2">
+    <value>Ваші дані користувача:</value>
+  </string>
+  <string id="508" name="registering_mail_text_username">
+    <value>Логін:</value>
+  </string>
+  <string id="509" name="registering_mail_text_pass">
+    <value>Пароль:</value>
+  </string>
+  <string id="510" name="registering_mail_text_mail">
+    <value>E-mail:</value>
+  </string>
+  <string id="511" name="registering_mail_text_bye">
+    <value>Команда $APP_NAME</value>
+  </string>
+  <string id="512" name="register_mail_subject">
+    <value>$APP_NAME Sign-Up</value>
+  </string>
+  <string id="513" name="reset_password_template_head">
+    <value>$APP_NAME - Відновити пароль</value>
+  </string>
+  <string id="514" name="reset_password_template_test_link">
+    <value>Натисніть на це посилання, щоб ввести новий пароль</value>
+  </string>
+  <string id="515" name="reset_password_template_text2_link">
+    <value>Натисніть тут, щоб вести новий пароль</value>
+  </string>
+  <string id="516" name="reset_password_template_text3_link">
+    <value>Якщо ви має проблему з даним посилання, будь-ласка скопіюйте його і вставте в свій браузер:</value>
+  </string>
+  <string id="517" name="reset_password_mail_subject">
+    <value>Відновлення пароля $APP_NAME</value>
+  </string>
+  <string id="518" name="dateRegExpError">
+    <value>Будь-ласка введіть правильну дату, наприклад 24.12.2007 (dd.mm.yyyy)</value>
+  </string>
+  <string id="519" name="emailRegExpError">
+    <value>Будь ласка введіть дійсний E-mail, наприклад name@mail.com</value>
+  </string>
+  <string id="520" name="floatRegExpError">
+    <value>Будь ласка введіть число з плаваючою крапкою, наприклад 1.00</value>
+  </string>
+  <string id="521" name="numberRegExpError">
+    <value>Будь ласка введіть число, наприклад 100</value>
+  </string>
+  <string id="522" name="phoneRegExpError">
+    <value>Будь ласка введіть дійсний номер, наприклад ++49 0123 123123</value>
+  </string>
+  <string id="523" name="timeRegExpError">
+    <value>Будь-ласка введіть час, наприклад 12:23 (hh:mm)</value>
+  </string>
+  <string id="524" name="invitation_window">
+    <value>Пароль захищений</value>
+  </string>
+  <string id="525" name="invitation_window_passwordLabel">
+    <value>Пароль</value>
+  </string>
+  <string id="526" name="invitation_window_validLabel">
+    <value>Період дійсності</value>
+  </string>
+  <string id="527" name="invitation_window_valid">
+    <value>Бескінечний</value>
+  </string>
+  <string id="528" name="invitation_window_valid">
+    <value>Період</value>
+  </string>
+  <string id="529" name="invitation_window_valid">
+    <value>Минулий</value>
+  </string>
+  <string id="530" name="invitation_window_validFromLabel">
+    <value>Дійсни з:</value>
+  </string>
+  <string id="531" name="invitation_window_validToLabel">
+    <value>Дійсний до:</value>
+  </string>
+  <string id="532" name="invitation_window_MailSubject">
+    <value>Запрошення на $APP_NAME</value>
+  </string>
+  <string id="533" name="invitation_error">
+    <value>Нема запрошення для цього коду</value>
+  </string>
+  <string id="534" name="invitation_error">
+    <value>Запрошення вже використане. Даний тип запрошення не може бути використаний багаторазово</value>
+  </string>
+  <string id="535" name="invitation_error">
+    <value>Код запрошення не дійсний.</value>
+  </string>
+  <string id="536" name="invitation_pass">
+    <value>Пароль:</value>
+  </string>
+  <string id="537" name="invitation_pass_btn">
+    <value>Перевірити пароль</value>
+  </string>
+  <string id="538" name="invitation_pass_error">
+    <value>Невірний пароль!</value>
+  </string>
+  <string id="539" name="Browser">
+    <value>Бравзер</value>
+  </string>
+  <string id="540" name="audio_video">
+    <value>Синхронізувати аудіо/відео</value>
+  </string>
+  <string id="541" name="errorCode_invalidSession">
+    <value>Вхід виконано, але Ваша сесія, яку ви пробували не активна чи збережена на сервері. Ви повинні отримати новий SessionId і повторити вхід.</value>
+  </string>
+  <string id="542" name="errorcode_setUserObject">
+    <value>SessionId не є loggedin чи не має адміністраторських прав. SOAP шлюз потребує адміністаривних прав для додання нових користувачів.</value>
+  </string>
+  <string id="543" name="errorcode_loginByRemoteUser">
+    <value>This Session has no Remoteuser-Data connected. Wether you did not call the SOAP-Gateway before accessing the Application or you are usnig a wrong Session-ID</value>
+  </string>
+  <string id="544" name="debug_message_recording">
+    <value>На даний момент функція запису є в Beta-тестуванні!</value>
+  </string>
+  <string id="545" name="propertyPanelXValue">
+    <value>x</value>
+  </string>
+  <string id="546" name="propertyPanelXValueLabel">
+    <value>x-axis</value>
+  </string>
+  <string id="547" name="propertyPanelYValue">
+    <value>y</value>
+  </string>
+  <string id="548" name="propertyPanelYValueLabel">
+    <value>y-axis</value>
+  </string>
+  <string id="549" name="propertyPanelWidthValue">
+    <value>w</value>
+  </string>
+  <string id="550" name="propertyPanelWidthValueLabel">
+    <value>width</value>
+  </string>
+  <string id="551" name="propertyPanelHeightValue">
+    <value>h</value>
+  </string>
+  <string id="552" name="propertyPanelHeightValueLabel">
+    <value>height</value>
+  </string>
+  <string id="553" name="propertyOpacitySlider">
+    <value>Change Transparency</value>
+  </string>
+  <string id="554" name="browserOpen">
+    <value>Browser Open</value>
+  </string>
+  <string id="555" name="browserClose">
+    <value>Browser Close</value>
+  </string>
+  <string id="556" name="connectionLostMessage">
+    <value>The Connection to the Server is lost. You need to reload the Application or/and check your Network.</value>
+  </string>
+  <string id="557" name="557">
+    <value>Pointer</value>
+  </string>
+  <string id="558" name="sync message header">
+    <value>Synchronizing</value>
+  </string>
+  <string id="559" name="Synchronizing message">
+    <value>Synchronizing Users, please wait</value>
+  </string>
+  <string id="560" name="exportToSVG">
+    <value>&lt;u&gt;Download as SVG&lt;/u&gt;</value>
+  </string>
+  <string id="561" name="exportToImage">
+    <value>&lt;u&gt;Download as PNG&lt;/u&gt;</value>
+  </string>
+  <string id="562" name="exportToImage">
+    <value>&lt;u&gt;Download as JPG&lt;/u&gt;</value>
+  </string>
+  <string id="563" name="exportToImage">
+    <value>&lt;u&gt;Download as PDF&lt;/u&gt;</value>
+  </string>
+  <string id="564" name="exportToImage">
+    <value>&lt;u&gt;Download as TIF&lt;/u&gt;</value>
+  </string>
+  <string id="565" name="calendarLabel">
+    <value>Reminder:</value>
+  </string>
+  <string id="566" name="calendarLabel">
+    <value>Category:</value>
+  </string>
+  <string id="567" name="calendarLabel">
+    <value>Repetition:</value>
+  </string>
+  <string id="568" name="calendarLabel">
+    <value>none</value>
+  </string>
+  <string id="569" name="calendarLabel">
+    <value>Location:</value>
+  </string>
+  <string id="570" name="calendarLabel">
+    <value>Start</value>
+  </string>
+  <string id="571" name="calendarLabel">
+    <value>End</value>
+  </string>
+  <string id="572" name="calendarLabel">
+    <value>Title:</value>
+  </string>
+  <string id="573" name="calendarLabel">
+    <value>Comment:</value>
+  </string>
+  <string id="574" name="calendarLabel">
+    <value>Invite People</value>
+  </string>
+  <string id="575" name="calendarLabel">
+    <value>Daily</value>
+  </string>
+  <string id="576" name="calendarLabel">
+    <value>Monthly</value>
+  </string>
+  <string id="577" name="calendarLabel">
+    <value>Yearly</value>
+  </string>
+  <string id="578" name="alert">
+    <value>Appointment-end is after of appointment-start!</value>
+  </string>
+  <string id="579" name="alert">
+    <value>Please insert a title!</value>
+  </string>
+  <string id="580" name="580">
+    <value>RTL</value>
+  </string>
+  <string id="581" name="581">
+    <value>Activate this if you write in a right to left language (inverse word order)</value>
+  </string>
+  <string id="582" name="tooltip main-menu">
+    <value>Dashboard</value>
+  </string>
+  <string id="583" name="tooltip main-menu">
+    <value>Watch recorded Meetings or Events</value>
+  </string>
+  <string id="584" name="tooltip main-menu">
+    <value>Meeting - Make a conference with 4 (up to 16) Users&lt;br/&gt;everybody will have audio + video access</value>
+  </string>
+  <string id="585" name="tooltip main-menu">
+    <value>Event - Make a conference with up to 200 participents&lt;br/&gt;Only the Moderator will have audio/video</value>
+  </string>
+  <string id="586" name="tooltip main-menu">
+    <value>Create users, rooms, organizations&lt;br/&gt; + change configuration</value>
+  </string>
+  <string id="587" name="room Administration roomclients list">
+    <value>Users in this Room now</value>
+  </string>
+  <string id="588" name="room Administration roomclients list">
+    <value>ID</value>
+  </string>
+  <string id="589" name="room Administration roomclients list">
+    <value>Login</value>
+  </string>
+  <string id="590" name="room Administration roomclients list">
+    <value>D</value>
+  </string>
+  <string id="591" name="swf sync message">
+    <value>Loading Document. Please wait untill all Client have been synchronized.</value>
+  </string>
+  <string id="592" name="upload dialog">
+    <value>Upload complete, converting Document ...</value>
+  </string>
+  <string id="593" name="upload dialog">
+    <value>Start Upload</value>
+  </string>
+  <string id="594" name="upload dialog">
+    <value>Upload and Import Dialog. Please select a File from your Disk.</value>
+  </string>
+  <string id="595" name="upload Dialog">
+    <value>Cancel</value>
+  </string>
+  <string id="596" name="upload Dialog">
+    <value>Select File</value>
+  </string>
+  <string id="597" name="administration navigation">
+    <value>Connections</value>
+  </string>
+  <string id="598" name="confadmin value list">
+    <value>Value</value>
+  </string>
+  <string id="599" name="connection administration panel">
+    <value>Streamid</value>
+  </string>
+  <string id="600" name="connection administration panel">
+    <value>Login</value>
+  </string>
+  <string id="601" name="connection administration panel">
+    <value>Connected since</value>
+  </string>
+  <string id="602" name="connection administration panel">
+    <value>Room / Scope</value>
+  </string>
+  <string id="603" name="connection administration panel">
+    <value>Kick User</value>
+  </string>
+  <string id="604" name="kick user confirmation dialog">
+    <value>Kick User</value>
+  </string>
+  <string id="605" name="kick user confirmation dialog">
+    <value>Do you really want to kick this Client from the Connection?&lt;br/&gt; This does only remove the Client from the current Room.The Client could re-login again.</value>
+  </string>
+  <string id="606" name="kick user message dialog">
+    <value>Your session has been closed by an Administrator or Moderator.</value>
+  </string>
+  <string id="607" name="useralterself_phone">
+    <value>Phone</value>
+  </string>
+  <string id="608" name="participents panel">
+    <value>User is the Moderator of this Room</value>
+  </string>
+  <string id="609" name="participents panel">
+    <value>User is allowed to draw on the Whiteboard</value>
+  </string>
+  <string id="610" name="participents panel">
+    <value>(Re) Start Audio/Video or change Device Settings</value>
+  </string>
+  <string id="611" name="participents panel">
+    <value>Allow this User to draw on the Whiteboard</value>
+  </string>
+  <string id="612" name="participents panel">
+    <value>Remove ability to draw on whiteboard</value>
+  </string>
+  <string id="613" name="conferencePanels">
+    <value>Users</value>
+  </string>
+  <string id="614" name="conferencePanels">
+    <value>Files</value>
+  </string>
+  <string id="615" name="conferencePanels">
+    <value>Whiteboard</value>
+  </string>
+  <string id="616" name="conferencePanels">
+    <value>Chat</value>
+  </string>
+  <string id="617" name="organization choose info">
+    <value>Your account is assigned to multiple Organizations. Please choose one for this Session.</value>
+  </string>
+  <string id="618" name="error message room full">
+    <value>This room is full at the moment. Please try again later.</value>
+  </string>
+  <string id="619" name="roomtypes">
+    <value>Room Type</value>
+  </string>
+  <string id="620" name="appointed_room">
+    <value>Appointment Room</value>
+  </string>
+  <string id="621" name="servertime">
+    <value>Server Time</value>
+  </string>
+  <string id="622" name="inv_reminder_template_head">
+    <value>$APP_NAME - Reminder</value>
+  </string>
+  <string id="623" name="inv_reminder_text_from">
+    <value>Message from User:</value>
+  </string>
+  <string id="624" name="inv_reminder_text_message">
+    <value>Message:</value>
+  </string>
+  <string id="625" name="inv_reminder_text_click_text">
+    <value>Click this link to participate in the Meetings:</value>
+  </string>
+  <string id="626" name="inv_reminder_text_click_text_link">
+    <value>Click here to enter room</value>
+  </string>
+  <string id="627" name="inv_reminder_text_click_text_help">
+    <value>if you have problems with the link, please copy and paste this to your browser:</value>
+  </string>
+  <string id="628" name="btn_search_intern">
+    <value>search intern</value>
+  </string>
+  <string id="629" name="btn_search_extern">
+    <value>extern users</value>
+  </string>
+  <string id="630" name="lbl_prename">
+    <value>pre name</value>
+  </string>
+  <string id="631" name="lbl_name">
+    <value>name</value>
+  </string>
+  <string id="632" name="lbl_email">
+    <value>E-mail</value>
+  </string>
+  <string id="633" name="logoutConfirm_title">
+    <value>Confirm logout</value>
+  </string>
+  <string id="634" name="logoutConfirm_sure_to_logout_question">
+    <value>Are you sure you want to logout now?</value>
+  </string>
+  <string id="635" name="main menu">
+    <value>Actions</value>
+  </string>
+  <string id="636" name="room admin">
+    <value>Demo Room</value>
+  </string>
+  <string id="637" name="room admin">
+    <value>Demo Time</value>
+  </string>
+  <string id="638" name="meeting Timer">
+    <value>Meeting Timer</value>
+  </string>
+  <string id="639" name="meeting Timer">
+    <value>This Room is a Demo Room. To disable this warning you either should get a private meeting room for your personal usage or set up an own Server. You will be automatically logged off in:</value>
+  </string>
+  <string id="640" name="meeting room administration">
+    <value>Moderated</value>
+  </string>
+  <string id="641" name="moderated room waiting message">
+    <value>Please wait untill the Moderator has entered the Room. The Moderator can be either a Teacher, Admin or the creator of this Room.</value>
+  </string>
+  <string id="642" name="error popup">
+    <value>Ok</value>
+  </string>
+  <string id="643" name="window screensharing">
+    <value>Incoming Screen Sharing</value>
+  </string>
+  <string id="644" name="window screen sharing">
+    <value>There is a new Screen Sharing incoming from the User:</value>
+  </string>
+  <string id="645" name="window screen sharing">
+    <value>Start Sharing</value>
+  </string>
+  <string id="646" name="calendar">
+    <value>Add new Meeting</value>
+  </string>
+  <string id="647" name="calendar">
+    <value>Meeting Room</value>
+  </string>
+  <string id="648" name="calendar">
+    <value>Event Room</value>
+  </string>
+  <string id="649" name="main menu moderation">
+    <value>Moderation</value>
+  </string>
+  <string id="650" name="menu moderation">
+    <value>Moderate Users</value>
+  </string>
+  <string id="651" name="menu moderation">
+    <value>Moderate Rooms</value>
+  </string>
+  <string id="652" name="moderator org">
+    <value>M</value>
+  </string>
+  <string id="653" name="confirm moderation">
+    <value>Do you want to change this User to become a Moderator of that Organization?</value>
+  </string>
+  <string id="654" name="error message">
+    <value>Please choose an Organization before you try to add a User to it!</value>
+  </string>
+  <string id="655" name="choose user window">
+    <value>Organization - Moderator</value>
+  </string>
+  <string id="656" name="moderator org users">
+    <value>Do you really want to delete this User from the Organization?</value>
+  </string>
+  <string id="657" name="org moderation">
+    <value>This User is Moderator</value>
+  </string>
+  <string id="658" name="org moderation">
+    <value>This User is No-Moderator</value>
+  </string>
+  <string id="659" name="error message moderation">
+    <value>Do you want this User to be not a Moderator of this Organization?</value>
+  </string>
+  <string id="660" name="moderation">
+    <value>Add or delete Users or Rooms within your Organization</value>
+  </string>
+  <string id="661" name="delete confirm question">
+    <value>Do you really want to delete this record?</value>
+  </string>
+  <string id="662" name="delete confirm question user moderation">
+    <value>Do you really want to delete this user from your organization? You will only delete the connection between the user and your organization, to really delete the user itself you have to login into the Administration-Panel.</value>
+  </string>
+  <string id="663" name="error message self deleting">
+    <value>You cannot delete your own User!</value>
+  </string>
+  <string id="664" name="error message auth">
+    <value>This Method needs a Adminstration Account to be invoked!</value>
+  </string>
+  <string id="665" name="error message SOAP">
+    <value>There was no Session associated with this ID.</value>
+  </string>
+  <string id="666" name="error message moderation">
+    <value>This is an Administrator or Moderator account. You can only edit this account through the Administration Panel.</value>
+  </string>
+  <string id="667" name="email verification">
+    <value>To complete your registration please click on the following link. Or copy the URL to your browser bar.</value>
+  </string>
+  <string id="668" name="email verification">
+    <value>Click to verify your E-Mail</value>
+  </string>
+  <string id="669" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>No user was found for this Hash.</value>
+  </string>
+  <string id="670" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>This user is already activated!</value>
+  </string>
+  <string id="671" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>You did successfully activate your account!</value>
+  </string>
+  <string id="672" name="errorMessage_UserActivationServlet [ActivateUser]">
+    <value>Login Now</value>
+  </string>
+  <string id="673" name="loginErrorMessage = user was not activated">
+    <value>Your account is not activated. First use the link in the Email you've received during registration.</value>
+  </string>
+  <string id="674" name="register verification message">
+    <value>You successfully signed up. We've send an EMail with a verification Code to your Mail. Please check your Inbox.</value>
+  </string>
+  <string id="675" name="participants panel">
+    <value>Remove Moderation Role from this User</value>
+  </string>
+  <string id="676" name="participants panel">
+    <value>Grant Moderation Rights to this User</value>
+  </string>
+  <string id="677" name="event user list">
+    <value>User</value>
+  </string>
+  <string id="678" name="event user list">
+    <value>Access to whiteboard</value>
+  </string>
+  <string id="679" name="event user list">
+    <value>Moderator</value>
+  </string>
+  <string id="680" name="event user list">
+    <value>Moderation: Please choose any User on the List to grant him access to the Whiteboard, Moderation or Video.</value>
+  </string>
+  <string id="681" name="event user list">
+    <value>This User is already Moderator, so he has automatically the right to draw.</value>
+  </string>
+  <string id="682" name="event user list error">
+    <value>This is you! You cannot remove the Moderation rights from yourself.</value>
+  </string>
+  <string id="683" name="event user list">
+    <value>Allow this User to Publish his Audio / Video</value>
+  </string>
+  <string id="684" name="event user list">
+    <value>Remove Audio/Video of this User</value>
+  </string>
+  <string id="685" name="event user list">
+    <value>I would like to get the moderation of this room</value>
+  </string>
+  <string id="686" name="event user list">
+    <value>I would like to draw on whiteboard</value>
+  </string>
+  <string id="687" name="event user list">
+    <value>I would like to share my Audio/Video</value>
+  </string>
+  <string id="688" name="event user list">
+    <value>You are moderator of this room</value>
+  </string>
+  <string id="689" name="event user list">
+    <value>You are allowed to draw on whiteboard</value>
+  </string>
+  <string id="690" name="event user list">
+    <value>You are allowed to share your Audio/Video</value>
+  </string>
+  <string id="691" name="errortype">
+    <value>Message to Moderator</value>
+  </string>
+  <string id="692" name="apply for mod message">
+    <value>The User</value>
+  </string>
+  <string id="693" name="apply for mod message">
+    <value>would like to get the Moderation. Use the status Icons next to the user in the List of Users to add or remove the Moderation.</value>
+  </string>
+  <string id="694" name="apply for whiteboard">
+    <value>would like to draw on whiteboard. Use the status Icons next to the user in the List of Users to add or remove the right to draw anything on the whiteboard.</value>
+  </string>
+  <string id="695" name="695">
+    <value>would like to share his Audio/Video. Use the status Icons next to the user in the List of Users to add or remove the right to share Audio/Video for any User.</value>
+  </string>
+  <string id="696" name="moderation message">
+    <value>You have to wait untill a Moderator enters the room.</value>
+  </string>
+  <string id="697" name="calendar button">
+    <value>Cancel</value>
+  </string>
+  <string id="698" name="calendar button">
+    <value>Save</value>
+  </string>
+  <string id="699" name="calendar component">
+    <value>Day</value>
+  </string>
+  <string id="700" name="calendar component">
+    <value>Month</value>
+  </string>
+  <string id="701" name="calendar component">
+    <value>Year</value>
+  </string>
+  <string id="702" name="file explorer">
+    <value>Upload File</value>
+  </string>
+  <string id="703" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="704" name="file explorer">
+    <value>Refresh</value>
+  </string>
+  <string id="705" name="file explorer">
+    <value>Trash (Drag and Drop item here)</value>
+  </string>
+  <string id="706" name="file explorer">
+    <value>My Files (Home Drive)</value>
+  </string>
+  <string id="707" name="file explorer">
+    <value>Room Files (Public Drive)</value>
+  </string>
+  <string id="708" name="file explorer">
+    <value>Add File</value>
+  </string>
+  <string id="709" name="file explorer">
+    <value>Add Folder</value>
+  </string>
+  <string id="710" name="file explorer">
+    <value>Delete Folder</value>
+  </string>
+  <string id="711" name="file explorer">
+    <value>Edit Name</value>
+  </string>
+  <string id="712" name="file explorer">
+    <value>New Folder</value>
+  </string>
+  <string id="713" name="file explorer">
+    <value>Are you sure you want to delete this Item?</value>
+  </string>
+  <string id="714" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="715" name="user admin">
+    <value>Search</value>
+  </string>
+  <string id="716" name="file explorer">
+    <value>Open Document</value>
+  </string>
+  <string id="717" name="file explorer">
+    <value>Show all Files (Tree View)</value>
+  </string>
+  <string id="718" name="file explorer">
+    <value>Close Document</value>
+  </string>
+  <string id="719" name="file explorer">
+    <value>Delete File</value>
+  </string>
+  <string id="720" name="file explorer">
+    <value>You are not allowed to draw anything on the Whiteboard. You have to become Moderator or at least get the Right to edit Whiteboard. You may ask a Moderator to give you that right.</value>
+  </string>
+  <string id="721" name="property panel">
+    <value>Document Properties</value>
+  </string>
+  <string id="722" name="sharing session">
+    <value>Start Client (external)</value>
+  </string>
+  <string id="723" name="sharing session">
+    <value>Start Client (HTTP)</value>
+  </string>
+  <string id="724" name="sharing session">
+    <value>A user want to share his screen. Do you want to see it?</value>
+  </string>
+  <string id="725" name="sharing session">
+    <value>You are currently sharing your Desktop. For stopping the Sharing Session please hit the Stop button in the Sharing Client.</value>
+  </string>
+  <string id="726" name="sharing session">
+    <value>Sharing Session</value>
+  </string>
+  <string id="727" name="sharing session">
+    <value>You are already sharing your desktop!</value>
+  </string>
+  <string id="728" name="sharing client">
+    <value>Desktop Viewer</value>
+  </string>
+  <string id="729" name="sharing client">
+    <value>Exit</value>
+  </string>
+  <string id="730" name="sharing client">
+    <value>Desktop Sharer</value>
+  </string>
+  <string id="731" name="sharing client">
+    <value>Click Start to publish your screen</value>
+  </string>
+  <string id="732" name="sharing client">
+    <value>Start Sharing</value>
+  </string>
+  <string id="733" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="734" name="sharing client">
+    <value>Select your screen area:</value>
+  </string>
+  <string id="735" name="sharing client">
+    <value>Change width</value>
+  </string>
+  <string id="736" name="sharing client">
+    <value>The Sharer has finished this session!</value>
+  </string>
+  <string id="737" name="sharing client">
+    <value>Change height</value>
+  </string>
+  <string id="738" name="sharing client">
+    <value>X-Offset</value>
+  </string>
+  <string id="739" name="sharing client">
+    <value>Y-Offset</value>
+  </string>
+  <string id="740" name="sharing client">
+    <value>Width:</value>
+  </string>
+  <string id="741" name="sharing client">
+    <value>Height:</value>
+  </string>
+  <string id="742" name="sharing client">
+    <value>Connection was closed by Server</value>
+  </string>
+  <string id="743" name="sharing viewer">
+    <value>Cancel</value>
+  </string>
+  <string id="744" name="sharing viewer">
+    <value>Start External</value>
+  </string>
+  <string id="745" name="sharing viewer">
+    <value>If you close this session completely you are not able to restart the viewer for this session.</value>
+  </string>
+  <string id="746" name="sharing viewer">
+    <value>Confirm Closing Viewer Session</value>
+  </string>
+  <string id="747" name="sharing viewer">
+    <value>Share Screen</value>
+  </string>
+  <string id="748" name="sharing viewer">
+    <value>Record Session</value>
+  </string>
+  <string id="749" name="co-browser">
+    <value>Co-Browsing</value>
+  </string>
+  <string id="750" name="co-browser">
+    <value>Ooops, ... Firefox on Windows does not show clear Co-Browsing. Please use another Browser for using the Co-Browsing feature.</value>
+  </string>
+  <string id="751" name="co-browser">
+    <value>Previous</value>
+  </string>
+  <string id="752" name="co-browser">
+    <value>Next</value>
+  </string>
+  <string id="753" name="co-browser">
+    <value>Reload</value>
+  </string>
+  <string id="754" name="co-browser">
+    <value>Home</value>
+  </string>
+  <string id="755" name="co-browser">
+    <value>Load</value>
+  </string>
+  <string id="756" name="co-browser">
+    <value>Add this website as Default website to your Profile.</value>
+  </string>
+  <string id="757" name="test setup">
+    <value>Test Setup</value>
+  </string>
+  <string id="758" name="test setup">
+    <value>Check you Microphone and Camera setup before you enter a room by recording some seconds. You can then replay your recording to check your voice and picture.</value>
+  </string>
+  <string id="759" name="test setup">
+    <value>Don't show this test anymore</value>
+  </string>
+  <string id="760" name="test setup">
+    <value>Cancel</value>
+  </string>
+  <string id="761" name="test setup">
+    <value>Start Conference</value>
+  </string>
+  <string id="762" name="edit video settings">
+    <value>Do not ask again</value>
+  </string>
+  <string id="763" name="test setup">
+    <value>REC</value>
+  </string>
+  <string id="764" name="test setup">
+    <value>PLAY</value>
+  </string>
+  <string id="765" name="test setup">
+    <value>You may proceed without testing if you do not plan to publish your voice or picture. Participants without Audio or Video can still use the Whiteboard, share their Desktop or write Chat messages.</value>
+  </string>
+  <string id="766" name="test setup">
+    <value>STOP</value>
+  </string>
+  <string id="767" name="test setup">
+    <value>Level-Meter</value>
+  </string>
+  <string id="768" name="start view">
+    <value>Press Start</value>
+  </string>
+  <string id="769" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="770" name="start view">
+    <value>Start Event</value>
+  </string>
+  <string id="771" name="start view">
+    <value>Choose Room</value>
+  </string>
+  <string id="772" name="start view">
+    <value>Check Setup</value>
+  </string>
+  <string id="773" name="start view">
+    <value>Start Conference</value>
+  </string>
+  <string id="774" name="start view">
+    <value>How to conference</value>
+  </string>
+  <string id="775" name="test setup">
+    <value>Start Recording</value>
+  </string>
+  <string id="776" name="test setup">
+    <value>Do not show Audio / Video Test (Recording) before entering a Conference</value>
+  </string>
+  <string id="777" name="overview room">
+    <value>Public Rooms</value>
+  </string>
+  <string id="778" name="overview room">
+    <value>Public Rooms are accessible for all Users.</value>
+  </string>
+  <string id="779" name="overview room">
+    <value>Private Rooms</value>
+  </string>
+  <string id="780" name="Private Rooms">
+    <value>Private Rooms are only accessible for users of the same organization.</value>
+  </string>
+  <string id="781" name="overview room">
+    <value>My Rooms</value>
+  </string>
+  <string id="782" name="overview room">
+    <value>Rooms in this section are created for personal usage. There are some standard rooms plus the ones that are created through the calendar and have a start and an end date. The rooms created via the calendar are only listed in this section as long as they are valid.</value>
+  </string>
+  <string id="783" name="restricted room">
+    <value>You have to be moderator to do this.</value>
+  </string>
+  <string id="784" name="menu option">
+    <value>Apply for moderation</value>
+  </string>
+  <string id="785" name="menu option">
+    <value>Apply for whiteboard access</value>
+  </string>
+  <string id="786" name="menu option">
+    <value>Apply for camera/microphone access</value>
+  </string>
+  <string id="787" name="error message soap secure login">
+    <value>This Session Hash was already used. You cannot use it twice.</value>
+  </string>
+  <string id="788" name="dashboard button">
+    <value>START</value>
+  </string>
+  <string id="789" name="exit conference">
+    <value>EXIT</value>
+  </string>
+  <string id="790" name="conference view">
+    <value>Do you really want to exit? You might should clear uploaded documents, whiteboard and the chat history.</value>
+  </string>
+  <string id="791" name="conference view">
+    <value>Exit conference</value>
+  </string>
+  <string id="792" name="main menu">
+    <value>Rooms</value>
+  </string>
+  <string id="793" name="main menu">
+    <value>Choose a room for a meeting</value>
+  </string>
+  <string id="794" name="calendar">
+    <value>There is an unsaved Event in the Calendar. Please either save it or remove it.</value>
+  </string>
+  <string id="795" name="calendar">
+    <value>Please add at least one attendee for your meeting!</value>
+  </string>
+  <string id="796" name="calendar">
+    <value>Do you really want to delete this Event?</value>
+  </string>
+  <string id="797" name="calendar">
+    <value>Warning</value>
+  </string>
+  <string id="798" name="calendar">
+    <value>Add Event</value>
+  </string>
+  <string id="799" name="calendar">
+    <value>Day</value>
+  </string>
+  <string id="800" name="calendar">
+    <value>Week</value>
+  </string>
+  <string id="801" name="calendar">
+    <value>Month</value>
+  </string>
+  <string id="802" name="calendar">
+    <value>Description</value>
+  </string>
+  <string id="803" name="calendar">
+    <value>Attendees</value>
+  </string>
+  <string id="804" name="dashboard">
+    <value>$APP_NAME, your Web Conferencing Platform. Either follow the Instructions, press the start button to start to conference immediatelly or you goto the Calendar and set up a Conference for the future.</value>
+  </string>
+  <string id="805" name="dashboard">
+    <value>Plan a Meeting</value>
+  </string>
+  <string id="806" name="lzcalendar">
+    <value>To set up a conference you can add a new Event in the Calendar.</value>
+  </string>
+  <string id="807" name="lzcalendar">
+    <value>Need help?</value>
+  </string>
+  <string id="808" name="lzcalendar">
+    <value>Restricted</value>
+  </string>
+  <string id="809" name="lzcalender">
+    <value>Search</value>
+  </string>
+  <string id="810" name="lzcalender">
+    <value>Add</value>
+  </string>
+  <string id="811" name="lzcalendar">
+    <value>There is no User selected. Please select an item from the list first and then hit add.</value>
+  </string>
+  <string id="812" name="lzcalendar">
+    <value>Add Attendee</value>
+  </string>
+  <string id="813" name="lzcalendar">
+    <value>Save</value>
+  </string>
+  <string id="814" name="lzcalendar">
+    <value>Delete</value>
+  </string>
+  <string id="815" name="lzcalendar">
+    <value>Event Details</value>
+  </string>
+  <string id="816" name="room admin">
+    <value>Default Moderators</value>
+  </string>
+  <string id="817" name="room admin">
+    <value>Super</value>
+  </string>
+  <string id="818" name="room admin">
+    <value>ID</value>
+  </string>
+  <string id="819" name="room admin">
+    <value>Name</value>
+  </string>
+  <string id="820" name="room admin">
+    <value>E-Mail</value>
+  </string>
+  <string id="821" name="room admin">
+    <value>Add new default Moderator</value>
+  </string>
+  <string id="822" name="room admin">
+    <value>Is Super Moderator</value>
+  </string>
+  <string id="823" name="room admin">
+    <value>If the Room is moderated, User with Level Moderator or Administrator are automatically Moderator if they enter the Room. If you don't want to specify that and only want a certain User to become Moderator use the Default Moderator option.</value>
+  </string>
+  <string id="824" name="room admin">
+    <value>A Super Moderator is always a Moderator when he enters a Room, and nobody can remove the Moderation Flag from him</value>
+  </string>
+  <string id="825" name="room admin">
+    <value>Apply Super-Moderation to User</value>
+  </string>
+  <string id="826" name="room admin">
+    <value>Remove Super Moderation from User</value>
+  </string>
+  <string id="827" name="room admin">
+    <value>D</value>
+  </string>
+  <string id="828" name="room admin">
+    <value>If you add an Organization to the room only users of that Organization have access to it (This is only valid if the isPublic flag is set to false!)</value>
+  </string>
+  <string id="829" name="room admin">
+    <value>Moderation</value>
+  </string>
+  <string id="830" name="room admin">
+    <value>Limitations</value>
+  </string>
+  <string id="831" name="room admin">
+    <value>Organization</value>
+  </string>
+  <string id="832" name="confirm action">
+    <value>Are you sure?</value>
+  </string>
+  <string id="833" name="confirm delete">
+    <value>Do you really want to delete this Item? You have to press the save button to store the changes!</value>
+  </string>
+  <string id="834" name="user choose error">
+    <value>There is no User selected. Please select first before you add it!</value>
+  </string>
+  <string id="835" name="room admin">
+    <value>Add new Default Moderator</value>
+  </string>
+  <string id="836" name="room admin">
+    <value>Do you want to add the Super Moderation Flag for this User? A Super Moderator is not only Moderator of a Room, but also no other Moderator can remove the Moderation Flag for this User. You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="837" name="room admin">
+    <value>Do you want to remove the Super Moderation Flag for this User? You need to save the Room Object to save these settings!</value>
+  </string>
+  <string id="838" name="super moderator">
+    <value>This User is a Super-Moderator. You cannot remove the Moderation flag from a Super-Moderator!</value>
+  </string>
+  <string id="839" name="confirm delete">
+    <value>Do you really want to delete this File/Folder?</value>
+  </string>
+  <string id="840" name="confirm delete">
+    <value>Delete File/Folder?</value>
+  </string>
+  <string id="841" name="salutation">
+    <value>Mrs.</value>
+  </string>
+  <string id="842" name="salutation">
+    <value>Dr.</value>
+  </string>
+  <string id="843" name="property panel whiteboard">
+    <value>Properties</value>
+  </string>
+  <string id="844" name="screen sharer">
+    <value>Show mouse position to viewers</value>
+  </string>
+  <string id="845" name="publish option">
+    <value>Share Audio with SIP Applet</value>
+  </string>
+  <string id="846" name="publish option">
+    <value>Share Audio with SIP and Video with Flash</value>
+  </string>
+  <string id="847" name="document panel">
+    <value>Full-Fit</value>
+  </string>
+  <string id="848" name="screen share">
+    <value>View Screen</value>
+  </string>
+  <string id="849" name="screen share">
+    <value>The user</value>
+  </string>
+  <string id="850" name="screen share">
+    <value>wants to share its screen. Do you want to see it?</value>
+  </string>
+  <string id="851" name="screen share">
+    <value>Close</value>
+  </string>
+  <string id="852" name="screen sharer">
+    <value>Zoom</value>
+  </string>
+  <string id="853" name="screen sharer">
+    <value>The Session was closed by the sharing User!</value>
+  </string>
+  <string id="854" name="screen sharer">
+    <value>Pause</value>
+  </string>
+  <string id="855" name="screen sharer">
+    <value>New Screen Sharing</value>
+  </string>
+  <string id="856" name="presenter mini icon">
+    <value>Minimize</value>
+  </string>
+  <string id="857" name="presenter mini icon">
+    <value>Maximize</value>
+  </string>
+  <string id="858" name="flvrecording">
+    <value>Video</value>
+  </string>
+  <string id="859" name="flvrecording">
+    <value>Recording Timeline</value>
+  </string>
+  <string id="860" name="flvrecording">
+    <value>My Recordings</value>
+  </string>
+  <string id="861" name="flvrecording">
+    <value>Public Recordings</value>
+  </string>
+  <string id="862" name="flvrecording">
+    <value>Info</value>
+  </string>
+  <string id="863" name="flvrecording">
+    <value>Name</value>
+  </string>
+  <string id="864" name="flvrecording">
+    <value>Length</value>
+  </string>
+  <string id="865" name="flvrecording">
+    <value>Date</value>
+  </string>
+  <string id="866" name="flvrecording">
+    <value>By</value>
+  </string>
+  <string id="867" name="flvrecording">
+    <value>PLAY</value>
+  </string>
+  <string id="868" name="flvrecording">
+    <value>Main - Video</value>
+  </string>
+  <string id="869" name="screen share">
+    <value>Recording</value>
+  </string>
+  <string id="870" name="screen share">
+    <value>You may record and share your screen at the same time. To enable others to see your screen just hit the start button on the top. To only record the Session it is sufficient to click start recording.</value>
+  </string>
+  <string id="871" name="screen share">
+    <value>Start Recording</value>
+  </string>
+  <string id="872" name="screen share">
+    <value>Stop Recording</value>
+  </string>
+  <string id="873" name="flvrecording">
+    <value>Download the FLV-File</value>
+  </string>
+  <string id="874" name="flvrecording">
+    <value>Room</value>
+  </string>
+  <string id="875" name="flvrecording">
+    <value>Play</value>
+  </string>
+  <string id="876" name="flvrecording">
+    <value>Stop</value>
+  </string>
+  <string id="877" name="flvrecording">
+    <value>User has microphone on</value>
+  </string>
+  <string id="878" name="sharing client">
+    <value>Stop Sharing</value>
+  </string>
+  <string id="879" name="room config">
+    <value>Allow User Questions</value>
+  </string>
+  <string id="880" name="room config">
+    <value>Turn this off to prevent that any user is disturbing you in this room. Effect is that the Button to ask for Moderation ("I have a question") is not visible.</value>
+  </string>
+  <string id="881" name="room config">
+    <value>Rights</value>
+  </string>
+  <string id="882" name="flvrecording">
+    <value>Download as AVI</value>
+  </string>
+  <string id="883" name="flvrecording">
+    <value>FLV</value>
+  </string>
+  <string id="884" name="flvrecording">
+    <value>AVI</value>
+  </string>
+  <string id="885" name="flvrecording">
+    <value>Raw Screenvideo</value>
+  </string>
+  <string id="886" name="flvrecording">
+    <value>Audio only</value>
+  </string>
+  <string id="887" name="flvrecording">
+    <value>The have been errors while processing the Recording.</value>
+  </string>
+  <string id="888" name="flvrecording">
+    <value>The Recording is not yet ready for watching. Please retry in a couple of minutes again.</value>
+  </string>
+  <string id="889" name="flvrecording">
+    <value>Log:</value>
+  </string>
+  <string id="890" name="flvrecording">
+    <value>Recorder Message</value>
+  </string>
+  <string id="891" name="flvrecording">
+    <value>Ok</value>
+  </string>
+  <string id="892" name="sip applet">
+    <value>SIP Applet is not Ready</value>
+  </string>
+  <string id="893" name="user administration">
+    <value>SIP-Account Settings</value>
+  </string>
+  <string id="894" name="user administration">
+    <value>SIP settings for each user. You can turn on or off SIP via the Administration &gt; Configuration (Key: enable_sip). The SIP data for each user should be created automatically. You can re-create the data by checking "Re-generate SIP Data"</value>
+  </string>
+  <string id="895" name="user administration">
+    <value>SIP-User</value>
+  </string>
+  <string id="896" name="user administration">
+    <value>Sip-Pass</value>
+  </string>
+  <string id="897" name="user administration">
+    <value>Sip-Auth-Id</value>
+  </string>
+  <string id="898" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. You should check the authentification data of your SIP-Provider and the SIP-Account Data for each User. As Administrator you are still able to login and check the Configuration. As User or Moderator you will be blocked from any interaction.</value>
+  </string>
+  <string id="899" name="sip status message">
+    <value>The Login to the SIP Gateway has failed. Contact your Service Team!</value>
+  </string>
+  <string id="900" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="901" name="sip status message">
+    <value>Logging in to SIP-Gateway ...</value>
+  </string>
+  <string id="902" name="flvrecording">
+    <value>Show Log</value>
+  </string>
+  <string id="903" name="flvrecording">
+    <value>Log messages from post recorder process</value>
+  </string>
+  <string id="904" name="sip login">
+    <value>SIP-Applet Message</value>
+  </string>
+  <string id="905" name="sip login">
+    <value>The SIP-Applet is not ready. Accept the Applet please and click ok!</value>
+  </string>
+  <string id="906" name="moderator pop up">
+    <value>Get Moderation</value>
+  </string>
+  <string id="907" name="lzcalendar">
+    <value>Save Appointment Changes</value>
+  </string>
+  <string id="908" name="lzcalendar">
+    <value>The appointement has been changed. Do you want to save those changes? &lt;br/&gt;&lt;br/&gt;All attendees of the appointment will receive a EMail with the updated date and time (depending on the notification type of this appointment).</value>
+  </string>
+  <string id="909" name="flv recorder error message">
+    <value>To access other recordings you have to login the $APP_NAME Application.</value>
+  </string>
+  <string id="910" name="interview video pod">
+    <value>Choose the User for this Video</value>
+  </string>
+  <string id="911" name="interview video choose user">
+    <value>Available Users for this Pod</value>
+  </string>
+  <string id="912" name="interview info">
+    <value>You are a Moderator in this Interview. You can decide who is speaking in this interview and you can start / stop the recording of the Session.</value>
+  </string>
+  <string id="913" name="interview button recording">
+    <value>Start Recording</value>
+  </string>
+  <string id="914" name="interview button recording">
+    <value>Stop Recording</value>
+  </string>
+  <string id="915" name="interview error message">
+    <value>The recording of the Interview is already started.</value>
+  </string>
+  <string id="916" name="interview error message">
+    <value>The recording is already stopped or not been started yet.</value>
+  </string>
+  <string id="917" name="interview recording message">
+    <value>The recording for this interview is already started!</value>
+  </string>
+  <string id="918" name="interview error message">
+    <value>Cancel</value>
+  </string>
+  <string id="919" name="interview error message">
+    <value>The post-processing of an interview takes 5 minutes per 1 minute interview. The current progress of the interview post-processing transcoding is:</value>
+  </string>
+  <string id="920" name="sip creation">
+    <value>You have to enter your password again to auto create the SIP Data</value>
+  </string>
+  <string id="921" name="sip creation">
+    <value>Re-generate SIP Data</value>
+  </string>
+  <string id="922" name="fileexplorer">
+    <value>You cannot move this file or folder into its own sub folder!</value>
+  </string>
+  <string id="923" name="file explorer ">
+    <value>Home drive size</value>
+  </string>
+  <string id="924" name="file explorer">
+    <value>Public drive size</value>
+  </string>
+  <string id="925" name="user-admin">
+    <value>License Settings</value>
+  </string>
+  <string id="926" name="user-admin">
+    <value>You can either bind the user to a expire Date or to a maximum number of minutes when you enable licensing.</value>
+  </string>
+  <string id="927" name="user-admin">
+    <value>Check license</value>
+  </string>
+  <string id="928" name="user-admin">
+    <value>Flatrate</value>
+  </string>
+  <string id="929" name="user-admin">
+    <value>Expire date</value>
+  </string>
+  <string id="930" name="user-admin">
+    <value>Seconds left</value>
+  </string>
+  <string id="931" name="user-admin">
+    <value>Total time</value>
+  </string>
+  <string id="932" name="user-license">
+    <value>Your License has expired. You need to buy new minutes (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="933" name="user-license">
+    <value>Click and buy</value>
+  </string>
+  <string id="934" name="user-license">
+    <value>Time Left on your account:</value>
+  </string>
+  <string id="935" name="user-license">
+    <value>User License Info</value>
+  </string>
+  <string id="936" name="user-license">
+    <value>Info</value>
+  </string>
+  <string id="937" name="user-license">
+    <value>Close</value>
+  </string>
+  <string id="938" name="license-info">
+    <value>Your license has expired. You need either to buy a minute package (Pay-per-minute) or a volume flatrate.</value>
+  </string>
+  <string id="939" name="user-license">
+    <value>License settings</value>
+  </string>
+  <string id="940" name="user-license">
+    <value>You can either buy minutes to make Web-Conferencing (Pay-per-minute).&lt;br/&gt;&lt;br/&gt; Or you buy a volume flatrate about 3-12 months.&lt;br/&gt;&lt;br/&gt;Sending invitations (direct links into Conference Rooms) or creating conference Rooms via the Calendar with external Users is only allowed with a volume flatrate!</value>
+  </string>
+  <string id="941" name="user-license">
+    <value>Buy 60 Minutes 9,99 EURO (16 Cent per Minute)</value>
+  </string>
+  <string id="942" name="user-license">
+    <value>Buy 5 hours 19,99 EURO (6 Cent per minute)</value>
+  </string>
+  <string id="943" name="user-license">
+    <value>Buy 3 month for 29,99 EURO (9,99 Euro per Month)</value>
+  </string>
+  <string id="944" name="user-license">
+    <value>Buy 6 month for 39,99 EURO (6,66 Euro per month)</value>
+  </string>
+  <string id="945" name="user-license">
+    <value>Pay-per-minute</value>
+  </string>
+  <string id="946" name="user-license">
+    <value>Volume flatrate</value>
+  </string>
+  <string id="947" name="user-license">
+    <value>You have unlimited License</value>
+  </string>
+  <string id="948" name="user-license">
+    <value>Your license will expire at:</value>
+  </string>
+  <string id="949" name="user-license">
+    <value>You bought Pay-per-minute. You still have:</value>
+  </string>
+  <string id="950" name="user-license">
+    <value>Buy new credit!</value>
+  </string>
+  <string id="951" name="user-license">
+    <value>Want your own Server?</value>
+  </string>
+  <string id="952" name="user-license">
+    <value>You would like to have $APP_NAME installed on your Server or integrated into your Moodle, SugarCRM, Website or Intranet? Prizings start at 500 Euro per Installation!</value>
+  </string>
+  <string id="953" name="user-license">
+    <value>Or send us a message</value>
+  </string>
+  <string id="954" name="user-license">
+    <value>Answer to:</value>
+  </string>
+  <string id="955" name="user-license">
+    <value>Message:</value>
+  </string>
+  <string id="956" name="user-license">
+    <value>Send</value>
+  </string>
+  <string id="957" name="user-license">
+    <value>Click here to get contact Info and Prizings</value>
+  </string>
+  <string id="958" name="payment-form">
+    <value>Credit Card Details</value>
+  </string>
+  <string id="959" name="payment-form">
+    <value>Firstname</value>
+  </string>
+  <string id="960" name="payment-form">
+    <value>Lastname</value>
+  </string>
+  <string id="961" name="payment-form">
+    <value>Credit Card Type</value>
+  </string>
+  <string id="962" name="payment-form">
+    <value>VISA Card</value>
+  </string>
+  <string id="963" name="payment-form">
+    <value>MasterCard</value>
+  </string>
+  <string id="964" name="payment-form">
+    <value>Discover</value>
+  </string>
+  <string id="965" name="payment-form">
+    <value>American Express</value>
+  </string>
+  <string id="966" name="payment-form">
+    <value>Credit Card Number</value>
+  </string>
+  <string id="967" name="payment-form">
+    <value>Expiration Date</value>
+  </string>
+  <string id="968" name="payment-form">
+    <value>Card Verification Number</value>
+  </string>
+  <string id="969" name="payment-form">
+    <value>Billing Address</value>
+  </string>
+  <string id="970" name="payment-form">
+    <value>Address</value>
+  </string>
+  <string id="971" name="payment-form">
+    <value></value>
+  </string>
+  <string id="972" name="payment-form">
+    <value>City</value>
+  </string>
+  <string id="973" name="payment-form">
+    <value>Country</value>
+  </string>
+  <string id="974" name="payment-form">
+    <value>State (Only US)</value>
+  </string>
+  <string id="975" name="payment-form">
+    <value>ZIP</value>
+  </string>
+  <string id="976" name="payment-form">
+    <value>Amount</value>
+  </string>
+  <string id="977" name="payment-form">
+    <value>Submit</value>
+  </string>
+  <string id="978" name="payment-form">
+    <value>Step 1: $APP_NAME - Payment Form</value>
+  </string>
+  <string id="979" name="payment-form">
+    <value>EMail</value>
+  </string>
+  <string id="980" name="payment-form">
+    <value>Click "Check out with Paypal" to pay.&lt;br/&gt; Paypal accepts VISA, MasterCard, Discover or American Express. &lt;br/&gt;It does not require to sign up with Paypal. &lt;br/&gt;Citizens from Germany can also pay with direct debit (Per Lastschrift-Einzug).</value>
+  </string>
+  <string id="981" name="payment-form">
+    <value>Thank you for buying $APP_NAME. &lt;br/&gt; &lt;br/&gt; As soon as we received the payment your account will be updated.&lt;br/&gt; You will receive an EMail with your invoice as PDF.&lt;br/&gt;You can also check current and past transactions in your profile settings.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;You can close this browser window/tab now and return to $APP_NAME.</value>
+  </string>
+  <string id="982" name="payment-form">
+    <value>Submit and Buy!</value>
+  </string>
+  <string id="983" name="payment-from">
+    <value>Click and Buy!</value>
+  </string>
+  <string id="984" name="payment-from">
+    <value>Step 3: $APP_NAME Payment - Check order and buy!</value>
+  </string>
+  <string id="985" name="payment-from">
+    <value>Name</value>
+  </string>
+  <string id="986" name="payment-mail">
+    <value>Payment received!</value>
+  </string>
+  <string id="987" name="payment-mail">
+    <value>Hi,</value>
+  </string>
+  <string id="988" name="payment-mail">
+    <value>We have received your payment. Your user profile is updated now. See attached your Invoice. The Invoice and all past Invoice can also be downloaded in your user profile.</value>
+  </string>
+  <string id="989" name="payment-mail">
+    <value>Thank you for using $APP_NAME!</value>
+  </string>
+  <string id="990" name="payment-mail">
+    <value>Payment Received $APP_NAME -</value>
+  </string>
+  <string id="991" name="user-settings">
+    <value>Payment and Transaction Status</value>
+  </string>
+  <string id="992" name="user-settings">
+    <value>Transcation Hash</value>
+  </string>
+  <string id="993" name="user-settings">
+    <value>Minutes</value>
+  </string>
+  <string id="994" name="user-settings">
+    <value>Months</value>
+  </string>
+  <string id="995" name="user-settings">
+    <value>EUR</value>
+  </string>
+  <string id="996" name="user-settings">
+    <value>Status</value>
+  </string>
+  <string id="997" name="user-settings">
+    <value>Invoice</value>
+  </string>
+  <string id="998" name="user-settings">
+    <value></value>
+  </string>
+  <string id="999" name="error-license-flat">
+    <value>You need to buy a volume flatrate to be able to send invitations or create meetings via the calendar. With Pay-per-minute it is only possible for you to access $APP_NAME. You cannot allow 3th Parties to access a Meeting.</value>
+  </string>
+  <string id="1000" name="error user">
+    <value>This Email is already used by another User.</value>
+  </string>
+  <string id="1001" name="room-admin">
+    <value>SIP-Settings</value>
+  </string>
+  <string id="1002" name="room-admin">
+    <value>The Conference Number and PIN is automatically created via the OpenXG RPC-Gateway</value>
+  </string>
+  <string id="1003" name="room-admin">
+    <value>SIP Number</value>
+  </string>
+  <string id="1004" name="room-admin">
+    <value>PIN</value>
+  </string>
+  <string id="1005" name="whiteboard">
+    <value>Clear objects on current slide only!</value>
+  </string>
+  <string id="1006" name="co-browser">
+    <value>Only the URL entered in the Status bar is send to participants!</value>
+  </string>
+  <string id="1007" name="team-split">
+    <value>Make Team-Rooms [Breakout session]</value>
+  </string>
+  <string id="1008" name="team-split">
+    <value>Choose users for a new Team-Room!</value>
+  </string>
+  <string id="1009" name="team-split">
+    <value>You can choose users here and create a new Conference Room ("Team Room") for them. The chosen users will automatically switch to the new Team-Room or get a notification. Team-Room Moderators will get additionally a list of current rooms so that they can switch to each room if there are is need for a Moderator.</value>
+  </string>
+  <string id="1010" name="team-split">
+    <value>Username</value>
+  </string>
+  <string id="1011" name="team-split">
+    <value>Login</value>
+  </string>
+  <string id="1012" name="team-split">
+    <value></value>
+  </string>
+  <string id="1013" name="team-split">
+    <value>Users for the new Team-Room:</value>
+  </string>
+  <string id="1014" name="team-split">
+    <value>Create Team-Room</value>
+  </string>
+  <string id="1015" name="team-split">
+    <value>Cancel</value>
+  </string>
+  <string id="1016" name="team-split">
+    <value>Choose at least one user for the Team-Room!</value>
+  </string>
+  <string id="1017" name="team-split">
+    <value>Add user to team</value>
+  </string>
+  <string id="1018" name="team-split">
+    <value>Remove user from Team-Room</value>
+  </string>
+  <string id="1019" name="team-split">
+    <value>User is Team-Room Moderator (He is able to manage Team-Rooms and users of the Team-Room can ask him to come inside)</value>
+  </string>
+  <string id="1020" name="team-split">
+    <value>Roomtype</value>
+  </string>
+  <string id="1021" name="team-split">
+    <value>If you check "Force user to switch to new Team-Room" all chosen users will automatically switch to the newly created Team-Room. Otherwise they get a notification with a button that they &lt;i&gt;can&lt;/i&gt; switch to the new room. Team-Moderators always have the free choice to manage the Team-Rooms and switch between them.</value>
+  </string>
+  <string id="1022" name="team-split">
+    <value>Manage Team-Rooms</value>
+  </string>
+  <string id="1023" name="team-split">
+    <value>You can switch here between all Team-Rooms that you are assigned as Team-Room Moderator. Users inside the Team-Room can send you a message, for example to ask you to come to their room and help them. You can also terminate the Team-Room and all Users will be logged out.</value>
+  </string>
+  <string id="1024" name="team-split">
+    <value>Force user to switch to new Team-Room</value>
+  </string>
+  <string id="1025" name="team-split">
+    <value>Name</value>
+  </string>
+  <string id="1026" name="team-split">
+    <value>Created</value>
+  </string>
+  <string id="1027" name="team-split">
+    <value></value>
+  </string>
+  <string id="1028" name="team-split">
+    <value></value>
+  </string>
+  <string id="1029" name="team-split">
+    <value>Users available</value>
+  </string>
+  <string id="1030" name="team-split">
+    <value>Add a user with the plus from the left or remove it with the cross from the right!</value>
+  </string>
+  <string id="1031" name="team-split">
+    <value>1) Team-Room settings</value>
+  </string>
+  <string id="1032" name="team-split">
+    <value>2) Add users to the Team-Room</value>
+  </string>
+  <string id="1033" name="team-split">
+    <value>Team-Room Name</value>
+  </string>
+  <string id="1034" name="team-split">
+    <value>Team-Room</value>
+  </string>
+  <string id="1035" name="team-split">
+    <value>Change to the Room</value>
+  </string>
+  <string id="1036" name="team-split">
+    <value>Switch to this Team-Room</value>
+  </string>
+  <string id="1037" name="team-split">
+    <value>Terminate Team-Room and logout all Users</value>
+  </string>
+  <string id="1038" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1039" name="team-split">
+    <value>There is a new Team-Room available for you.</value>
+  </string>
+  <string id="1040" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1041" name="team-split">
+    <value>Team-Room Actions</value>
+  </string>
+  <string id="1042" name="team-split">
+    <value>You can re-open this window via the main menu in the "Actions" section!</value>
+  </string>
+  <string id="1043" name="team-split">
+    <value>Send message to Team-Room Moderator</value>
+  </string>
+  <string id="1044" name="team-split">
+    <value>New Team-Room</value>
+  </string>
+  <string id="1045" name="team-split">
+    <value>There is a new Team-Room available. You can switch to that Room. Team-Rooms are like "Workgroups" with additionally possibilities to ask the Team-Room Moderator for help. Your Team-Rooms are also available in the "My Meetings" section.</value>
+  </string>
+  <string id="1046" name="team-split">
+    <value>Switch to Team-Room</value>
+  </string>
+  <string id="1047" name="team-split">
+    <value>Created by:</value>
+  </string>
+  <string id="1048" name="team-split">
+    <value>Team-Room name:</value>
+  </string>
+  <string id="1049" name="team-split">
+    <value>This Window will stay open even if you leave the room!</value>
+  </string>
+  <string id="1050" name="team-split">
+    <value>Users for this Team-Room</value>
+  </string>
+  <string id="1051" name="team-split">
+    <value>3) Other Team-Rooms that you could switch to</value>
+  </string>
+  <string id="1052" name="team-split">
+    <value>Send a message to the Team-Room Moderators. For example if you need help in Moderating the Room or if you have a question about the topic.</value>
+  </string>
+  <string id="1053" name="team-split">
+    <value>Send</value>
+  </string>
+  <string id="1054" name="team-split">
+    <value>2) Users that are invited to this Team-Room</value>
+  </string>
+  <string id="1055" name="team-split">
+    <value>Is Team-Room Moderator</value>
+  </string>
+  <string id="1056" name="team-split">
+    <value>These are all users that the moderator has invited to this Team-Room.</value>
+  </string>
+  <string id="1057" name="team-split">
+    <value>There is no Team-Moderator logged in at the moment!</value>
+  </string>
+  <string id="1058" name="team-split">
+    <value>Please enter a message</value>
+  </string>
+  <string id="1059" name="team-split">
+    <value>Please help us, we have a problem in our Team-Room!</value>
+  </string>
+  <string id="1060" name="team-split">
+    <value>A user from a Team-Room requests your help.</value>
+  </string>
+  <string id="1061" name="team-split">
+    <value>Team-Room request for help</value>
+  </string>
+  <string id="1062" name="team-split">
+    <value>Message:</value>
+  </string>
+  <string id="1063" name="team-split">
+    <value>From:</value>
+  </string>
+  <string id="1064" name="team-split">
+    <value>You are currently not in any Team-Room. But you can switch here to all Team-Rooms that you have access to.</value>
+  </string>
+  <string id="1065" name="backupContent">
+    <value>Backup the System. The Backup includes all User generated data. The configuration is not included as well as the language labels. Because those values are imported with the System Installer. To update your System, export your old system (1) re-install into a new database the new package (2) and import the Backup file again (3). The Backup should be imported before generating data in the newly installed system.</value>
+  </string>
+  <string id="1066" name="backupContent">
+    <value>System Backup</value>
+  </string>
+  <string id="1067" name="user-list">
+    <value>Allow user to share Screen/Record</value>
+  </string>
+  <string id="1068" name="user-list">
+    <value>Deny user to share Screen/Record</value>
+  </string>
+  <string id="1069" name="user-list">
+    <value>User is Moderator, he can do anything!</value>
+  </string>
+  <string id="1070" name="apply for screen/recording">
+    <value>would like to share/record screen.</value>
+  </string>
+  <string id="1071" name="moderation mini icons">
+    <value>You are allowed to share/record screen</value>
+  </string>
+  <string id="1072" name="moderation mini icons">
+    <value>Apply for right to share/record screen.</value>
+  </string>
+  <string id="1073" name="moderation mini icons conference">
+    <value>Allow/Deny right to share/record screen.</value>
+  </string>
+  <string id="1074" name="sound icon">
+    <value>Turn sound off</value>
+  </string>
+  <string id="1075" name="sound icon">
+    <value>Turn sound on</value>
+  </string>
+  <string id="1076" name="room administration">
+    <value>Audio only room</value>
+  </string>
+  <string id="1077" name="room administration">
+    <value>Turn this Flag on and the users will have only the Audio-Option and no Video in a conference room. This can by good to save bandwidth.</value>
+  </string>
+  <string id="1078" name="user list">
+    <value>Allow Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1079" name="user list">
+    <value>Deny Remote Control (During Screen Sharing)</value>
+  </string>
+  <string id="1080" name="user list">
+    <value>Apply for right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1081" name="user list">
+    <value>You are allowed to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1082" name="apply for remote control">
+    <value>would like to remote control screen.</value>
+  </string>
+  <string id="1083" name="user list">
+    <value>User is Moderator, he can do anything! [Remote Desktop Control]</value>
+  </string>
+  <string id="1084" name="user list">
+    <value>Allow/Deny right to Remote Control Screen (During Screen Sharing)</value>
+  </string>
+  <string id="1085" name="right click screen share">
+    <value>1) Your PC to remote PC: To copy and paste text from your clipboard into the remote controlled screen, click on the screen, then right click in the text field and choose "Insert" from the context (right click) menu.&lt;br/&gt;&lt;br/&gt;2) From remote PC to your PC: To copy text from the remote PC to your PC's clipboard, highlight the text with the mouse on the remote screen, then right-click on the remote screen and choose &lt;i&gt;Copy highlighted text&lt;/i&gt;</value>
+  </string>
+  <string id="1086" name="right click screen share">
+    <value>Copy and Paste text from your PC to remote PC and vice-versa.</value>
+  </string>
+  <string id="1087" name="right click screen share">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1088" name="right click screen share">
+    <value>How to copy n paste</value>
+  </string>
+  <string id="1089" name="screen-sharer-quality">
+    <value>Quality of the ScreenShare:</value>
+  </string>
+  <string id="1090" name="screen-sharer-quality">
+    <value>Very high Quality</value>
+  </string>
+  <string id="1091" name="screen-sharer-quality">
+    <value>High Quality</value>
+  </string>
+  <string id="1092" name="screen-sharer-quality">
+    <value>Medium Quality</value>
+  </string>
+  <string id="1093" name="screen-sharer-quality">
+    <value>Low Quality</value>
+  </string>
+  <string id="1094" name="keyboard-input">
+    <value>en_US</value>
+  </string>
+  <string id="1095" name="keyboard-input">
+    <value>de_DE</value>
+  </string>
+  <string id="1096" name="keyboard-input">
+    <value>Keyboard:</value>
+  </string>
+  <string id="1097" name="keyboard-input">
+    <value>Close Webinar!</value>
+  </string>
+  <string id="1098" name="keyboard-input">
+    <value>The Webinar is already closed, you will be redirected to some interesting offerings in</value>
+  </string>
+  <string id="1099" name="room config">
+    <value>Close Room</value>
+  </string>
+  <string id="1100" name="room config">
+    <value>Exit URL</value>
+  </string>
+  <string id="1101" name="room config">
+    <value>Room termination settings</value>
+  </string>
+  <string id="1102" name="room config">
+    <value>If the room is closed users will be redirected to the exit URL.</value>
+  </string>
+  <string id="1103" name="ldap config">
+    <value>Ldap</value>
+  </string>
+  <string id="1104" name="ldap config">
+    <value>ID</value>
+  </string>
+  <string id="1105" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1106" name="ldap config">
+    <value>Config File</value>
+  </string>
+  <string id="1107" name="ldap config">
+    <value>Ldap Config</value>
+  </string>
+  <string id="1108" name="ldap config">
+    <value>Name</value>
+  </string>
+  <string id="1109" name="ldap config">
+    <value>Enabled</value>
+  </string>
+  <string id="1110" name="ldap config">
+    <value>Inserted</value>
+  </string>
+  <string id="1111" name="ldap config">
+    <value>Inserted by</value>
+  </string>
+  <string id="1112" name="ldap config">
+    <value>Updated</value>
+  </string>
+  <string id="1113" name="ldap config">
+    <value>Updated by</value>
+  </string>
+  <string id="1114" name="ldap config">
+    <value>The config files are in the folder webapps/openmeetings/conf. You need to manually upload the files to this folder. Changes to the config file are immediately online.</value>
+  </string>
+  <string id="1115" name="ldap config">
+    <value>Config file name</value>
+  </string>
+  <string id="1116" name="ldap config">
+    <value>If you enable "Add Domain to username" the value of the field "domain" is added to each login that the user enters in the login box. This is useful if the Login in the Ldap is stored including the domain name. Example: User enters "hans" domain is specified as "localhost.com", login that is verified against Ldap is: hans@localhost.com</value>
+  </string>
+  <string id="1117" name="ldap config">
+    <value>Add Domain to username</value>
+  </string>
+  <string id="1118" name="ldap config">
+    <value>Domain</value>
+  </string>
+  <string id="1119" name="remote control">
+    <value>Insert</value>
+  </string>
+  <string id="1120" name="remote control">
+    <value>Copy highlighted text</value>
+  </string>
+  <string id="1121" name="remote control">
+    <value>Remote Clipboard Text</value>
+  </string>
+  <string id="1122" name="remote control">
+    <value>Show remote Clipboard</value>
+  </string>
+  <string id="1123" name="right click screen share">
+    <value>Do not show again</value>
+  </string>
+  <string id="1124" name="right click screen share">
+    <value>Copy text here ...</value>
+  </string>
+  <string id="1125" name="right click screen share">
+    <value>You need the right to remote control (or the moderation) to copy and paste text to or from the remote screen.</value>
+  </string>
+  <string id="1126" name="right click screen share">
+    <value>Edit default settings ...</value>
+  </string>
+  <string id="1127" name="right click screen share">
+    <value>Do not show info box in Remote Control about Copy and Paste</value>
+  </string>
+  <string id="1128" name="calendar">
+    <value>Save</value>
+  </string>
+  <string id="1129" name="calendar">
+    <value>Remove</value>
+  </string>
+  <string id="1130" name="calendar">
+    <value>Cancel</value>
+  </string>
+  <string id="1131" name="chat invite user">
+    <value>Invite user to conference room</value>
+  </string>
+  <string id="1132" name="chat invite user">
+    <value>Choose a conference room. The invited user will get a message with your name and a link to the room.</value>
+  </string>
+  <string id="1133" name="chat user">
+    <value>Connected since:</value>
+  </string>
+  <string id="1134" name="chat invite user">
+    <value>Enter room after sending invitation</value>
+  </string>
+  <string id="1135" name="chat invite user">
+    <value>Invite</value>
+  </string>
+  <string id="1136" name="chat invite user">
+    <value>Message</value>
+  </string>
+  <string id="1137" name="chat invite user">
+    <value>would like to invite you to the conference room:</value>
+  </string>
+  <string id="1138" name="chat invite user">
+    <value>Invite message</value>
+  </string>
+  <string id="1139" name="chat invite user">
+    <value>Send Invitation</value>
+  </string>
+  <string id="1140" name="chat invite user">
+    <value>did &lt;b&gt;not&lt;/b&gt; accept your invitation!</value>
+  </string>
+  <string id="1141" name="chat invite user">
+    <value>Accept</value>
+  </string>
+  <string id="1142" name="chat invite user">
+    <value>Deny</value>
+  </string>
+  <string id="1143" name="user profile">
+    <value>Timezone</value>
+  </string>
+  <string id="1144" name="appointment notification">
+    <value>Event Details</value>
+  </string>
+  <string id="1145" name="appointment notification">
+    <value>Name</value>
+  </string>
+  <string id="1146" name="appointment notification">
+    <value>Description</value>
+  </string>
+  <string id="1147" name="appointment notification">
+    <value>Created by</value>
+  </string>
+  <string id="1148" name="user administration">
+    <value>TimeZone Message</value>
+  </string>
+  <string id="1149" name="user administration">
+    <value>Check "TimeZone Message" to give users a message next time they login to update their profile.</value>
+  </string>
+  <string id="1150" name="time zone update message">
+    <value>Please check the time zone in your user profile.</value>
+  </string>
+  <string id="1151" name="calendar invitation message">
+    <value>New $APP_NAME conference:</value>
+  </string>
+  <string id="1152" name="calendar invitation message">
+    <value>Details:&lt;br/&gt;</value>
+  </string>
+  <string id="1153" name="calendar invitation message">
+    <value>Start:</value>
+  </string>
+  <string id="1154" name="calendar invitation message">
+    <value>End:</value>
+  </string>
+  <string id="1155" name="calendar invitation message">
+    <value>Changed $APP_NAME conference:</value>
+  </string>
+  <string id="1156" name="calendar invitation message">
+    <value>Organizer:</value>
+  </string>
+  <string id="1157" name="calendar invitation message">
+    <value>Canceled $APP_NAME conference:</value>
+  </string>
+  <string id="1158" name="calendar invitation message">
+    <value>$APP_NAME conference Reminder:</value>
+  </string>
+  <string id="1159" name="user settings">
+    <value>Community settings</value>
+  </string>
+  <string id="1160" name="user settings">
+    <value>Show contact data to everybody</value>
+  </string>
+  <string id="1161" name="user settings">
+    <value>Add fields of interest that you offer or that you are searching to find interesting partners for a conference. Comma separate the terms (for example: Medical Service, Health assurance, ...)</value>
+  </string>
+  <string id="1162" name="user settings">
+    <value>My offerings</value>
+  </string>
+  <string id="1163" name="user settings">
+    <value>My interests</value>
+  </string>
+  <string id="1164" name="user settings">
+    <value>Name</value>
+  </string>
+  <string id="1165" name="user settings">
+    <value>Timezone</value>
+  </string>
+  <string id="1166" name="user settings">
+    <value>Fields of interest</value>
+  </string>
+  <string id="1167" name="user settings">
+    <value>Contact information</value>
+  </string>
+  <string id="1168" name="user settings">
+    <value>Show contact data to contacts only</value>
+  </string>
+  <string id="1169" name="user settings">
+    <value>Show contact data to nobody</value>
+  </string>
+  <string id="1170" name="user settings">
+    <value>My Profile</value>
+  </string>
+  <string id="1171" name="user settings">
+    <value>Edit settings</value>
+  </string>
+  <string id="1172" name="user settings">
+    <value>Search users</value>
+  </string>
+  <string id="1173" name="user settings">
+    <value>Watch your profile like other see you</value>
+  </string>
+  <string id="1174" name="user settings">
+    <value>Edit your settings, add your interests to be found</value>
+  </string>
+  <string id="1175" name="user settings">
+    <value>Search for other users and extend your network</value>
+  </string>
+  <string id="1176" name="user search">
+    <value>Search</value>
+  </string>
+  <string id="1177" name="user search">
+    <value>User offers</value>
+  </string>
+  <string id="1178" name="user search">
+    <value>User looks for</value>
+  </string>
+  <string id="1179" name="user search">
+    <value>Freetext</value>
+  </string>
+  <string id="1180" name="user search">
+    <value>Name</value>
+  </string>
+  <string id="1181" name="user search">
+    <value>Timezone</value>
+  </string>
+  <string id="1182" name="user search">
+    <value>Offers</value>
+  </string>
+  <string id="1183" name="user search">
+    <value>Searchs</value>
+  </string>
+  <string id="1184" name="user search">
+    <value>Searchresult</value>
+  </string>
+  <string id="1185" name="user search">
+    <value>Actions</value>
+  </string>
+  <string id="1186" name="user search">
+    <value>Add to contacts</value>
+  </string>
+  <string id="1187" name="user search">
+    <value>Send message</value>
+  </string>
+  <string id="1188" name="user search">
+    <value>Contacts and Messages</value>
+  </string>
+  <string id="1189" name="user search">
+    <value>Pending contacts</value>
+  </string>
+  <string id="1190" name="user contacts">
+    <value>Accept</value>
+  </string>
+  <string id="1191" name="user contacts">
+    <value>Deny</value>
+  </string>
+  <string id="1192" name="user contact request">
+    <value>Hi,</value>
+  </string>
+  <string id="1193" name="user contact request">
+    <value>would like to add you as contact.</value>
+  </string>
+  <string id="1194" name="user contact request">
+    <value>Check your contact requests in $APP_NAME or click on those links to accept or deny the request</value>
+  </string>
+  <string id="1195" name="add user contact">
+    <value>This user is already in your contact list or has received an invitation to your contact list that is not answered yet.</value>
+  </string>
+  <string id="1196" name="user contact mail">
+    <value>Your contact list</value>
+  </string>
+  <string id="1197" name="user contacts">
+    <value>Edit your contact and messages,&lt;br/&gt; manage your pending contacts!</value>
+  </string>
+  <string id="1198" name="user contacts">
+    <value>confirmed you as contact!</value>
+  </string>
+  <string id="1199" name="chat info message">
+    <value></value>
+  </string>
+  <string id="1200" name="chat log icon">
+    <value>Show / Copy chat log</value>
+  </string>
+  <string id="1201" name="chat log window">
+    <value>Chat Log</value>
+  </string>
+  <string id="1202" name="private message">
+    <value>From</value>
+  </string>
+  <string id="1203" name="private message">
+    <value>Subject</value>
+  </string>
+  <string id="1204" name="private message">
+    <value>Send</value>
+  </string>
+  <string id="1205" name="private message">
+    <value></value>
+  </string>
+  <string id="1206" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1207" name="private message">
+    <value>New Mail</value>
+  </string>
+  <string id="1208" name="private message">
+    <value>Click to write a new message to any of your contacts</value>
+  </string>
+  <string id="1209" name="private message">
+    <value>Write new message</value>
+  </string>
+  <string id="1210" name="private message">
+    <value>To:</value>
+  </string>
+  <string id="1211" name="private message">
+    <value>Subject:</value>
+  </string>
+  <string id="1212" name="whiteboard full-fit">
+    <value>Enable full fit and the whiteboard will zoom the whole whiteboard so that all&lt;br/&gt;documents are visible according to each participants screen resolution.</value>
+  </string>
+  <string id="1213" name="user-list">
+    <value>Kick user</value>
+  </string>
+  <string id="1214" name="user-list">
+    <value>You cannot kick yourself out of the conference room! If you want to leave it close the browser or use the exit button!</value>
+  </string>
+  <string id="1215" name="kick-user">
+    <value>Do you really want to disconnect this user from this conference room?</value>
+  </string>
+  <string id="1216" name="kick-user">
+    <value>Confirm action ...</value>
+  </string>
+  <string id="1217" name="kick-user">
+    <value>You cannot kick a Super-Moderator out of a room!</value>
+  </string>
+  <string id="1218" name="private message">
+    <value>Book conference room</value>
+  </string>
+  <string id="1219" name="private message">
+    <value>Start</value>
+  </string>
+  <string id="1220" name="private message">
+    <value>End</value>
+  </string>
+  <string id="1221" name="private message">
+    <value>Add an optional request for meeting to the message and create a conference room. The Event is then copied in the calendar of every participant.</value>
+  </string>
+  <string id="1222" name="private message">
+    <value>Inbox</value>
+  </string>
+  <string id="1223" name="private message">
+    <value>Sent</value>
+  </string>
+  <string id="1224" name="private message">
+    <value>Trash</value>
+  </string>
+  <string id="1225" name="private message">
+    <value>This is you! You cannot add yourself as your own contact.</value>
+  </string>
+  <string id="1226" name="user contacts">
+    <value>The user is already denied!</value>
+  </string>
+  <string id="1227" name="user contacts">
+    <value>The user is already approved!</value>
+  </string>
+  <string id="1228" name="user contacts">
+    <value>This user contact hash is invalid!</value>
+  </string>
+  <string id="1229" name="user contacts">
+    <value>User added to contact list!</value>
+  </string>
+  <string id="1230" name="user contacts">
+    <value>User denied as contact and removed from pending contact list!</value>
+  </string>
+  <string id="1231" name="user contacts">
+    <value>There is no such contact!</value>
+  </string>
+  <string id="1232" name="user contacts">
+    <value>Would you really like to remove that contact?</value>
+  </string>
+  <string id="1233" name="user contacts">
+    <value>Confirm contact removal</value>
+  </string>
+  <string id="1234" name="user contacts">
+    <value>Delete contact from list</value>
+  </string>
+  <string id="1235" name="user profile">
+    <value>User Profile</value>
+  </string>
+  <string id="1236" name="user profile">
+    <value>Show user profile</value>
+  </string>
+  <string id="1237" name="private message">
+    <value>Messages</value>
+  </string>
+  <string id="1238" name="private message">
+    <value>Search</value>
+  </string>
+  <string id="1239" name="private message">
+    <value>Select all</value>
+  </string>
+  <string id="1240" name="private message">
+    <value>Select none</value>
+  </string>
+  <string id="1241" name="private message">
+    <value>Select unread</value>
+  </string>
+  <string id="1242" name="private message">
+    <value>Select read</value>
+  </string>
+  <string id="1243" name="private message">
+    <value>Move to folder ...</value>
+  </string>
+  <string id="1244" name="private message">
+    <value>Add new folder ...</value>
+  </string>
+  <string id="1245" name="private message">
+    <value>Delete</value>
+  </string>
+  <string id="1246" name="private message">
+    <value>Deleted mails are still in your trash folder!</value>
+  </string>
+  <string id="1247" name="private message">
+    <value>Mark unread</value>
+  </string>
+  <string id="1248" name="private message">
+    <value>Mark read</value>
+  </string>
+  <string id="1249" name="private message">
+    <value>Answer</value>
+  </string>
+  <string id="1250" name="private message">
+    <value>Answer everybody</value>
+  </string>
+  <string id="1251" name="private message">
+    <value>Forward</value>
+  </string>
+  <string id="1252" name="private message">
+    <value>Actions ...</value>
+  </string>
+  <string id="1253" name="user contacts">
+    <value>Send private message</value>
+  </string>
+  <string id="1254" name="private message">
+    <value>Nothing selected!</value>
+  </string>
+  <string id="1255" name="private message">
+    <value>Move to Inbox</value>
+  </string>
+  <string id="1256" name="private message">
+    <value>Delete (final)</value>
+  </string>
+  <string id="1257" name="private message">
+    <value>This action cannot be undone!</value>
+  </string>
+  <string id="1258" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1259" name="private message">
+    <value>Add folders and organize your messages!</value>
+  </string>
+  <string id="1260" name="private message">
+    <value>Add folder</value>
+  </string>
+  <string id="1261" name="private message">
+    <value>Add</value>
+  </string>
+  <string id="1262" name="private message folder">
+    <value>Delete folder</value>
+  </string>
+  <string id="1263" name="private message folder">
+    <value>You cannot delete this folder, there are still messages inside! Delete first the messages or move them to another folder.</value>
+  </string>
+  <string id="1264" name="private message folder">
+    <value>Edit name</value>
+  </string>
+  <string id="1265" name="private message folder">
+    <value>Do you really want to delete this folder? There is no way to undo that.</value>
+  </string>
+  <string id="1266" name="user contacts">
+    <value>Your request was send to the user. The user will receive a notification to accept or deny your request. Only accepted requests are in your contact list of course!</value>
+  </string>
+  <string id="1267" name="user contacts">
+    <value>Message</value>
+  </string>
+  <string id="1268" name="user view profile">
+    <value>The user does not share his personal contact data.</value>
+  </string>
+  <string id="1269" name="user view profile">
+    <value>The user does share his personal contact data only to contacts.</value>
+  </string>
+  <string id="1270" name="user view profile">
+    <value>Address &amp; Phone</value>
+  </string>
+  <string id="1271" name="error code">
+    <value>You invitation code is no valid, the code is only valid during this specific date and time:</value>
+  </string>
+  <string id="1272" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your change will also update their calendar. Would you really like to update the event?</value>
+  </string>
+  <string id="1273" name="user calendar">
+    <value>Confirm update</value>
+  </string>
+  <string id="1274" name="user contacts">
+    <value>Allow contact to see my calendar (view only)</value>
+  </string>
+  <string id="1275" name="user contacts">
+    <value>Do not share calendar</value>
+  </string>
+  <string id="1276" name="user contacts">
+    <value>Calendar of contacts</value>
+  </string>
+  <string id="1277" name="user contacts">
+    <value>Your contacts need to approve you first to be able to see their calendar.</value>
+  </string>
+  <string id="1278" name="user contacts">
+    <value>You cannot store or delete events from other calendars then your own!</value>
+  </string>
+  <string id="1279" name="user contacts">
+    <value>Show my own calendar again!</value>
+  </string>
+  <string id="1280" name="user calendar">
+    <value>This event is connected to several calendars of other users. Your action will also delete the event from their calendar. Would you really like to delete the event?</value>
+  </string>
+  <string id="1281" name="user calendar">
+    <value>Confirm action</value>
+  </string>
+  <string id="1282" name="user calendar">
+    <value>Enter room</value>
+  </string>
+  <string id="1283" name="user calendar">
+    <value>Access the conference room</value>
+  </string>
+  <string id="1284" name="private message">
+    <value>There is a conference room and event booked with this private message.</value>
+  </string>
+  <string id="1285" name="user calendar">
+    <value>You need to store the event first!</value>
+  </string>
+  <string id="1286" name="access rooms error">
+    <value>There is no such room available. The event in the calendar and connected room is already deleted!</value>
+  </string>
+  <string id="1287" name="nick name">
+    <value>Choose your nickname</value>
+  </string>
+  <string id="1288" name="nick name">
+    <value>Firstname</value>
+  </string>
+  <string id="1289" name="nick name">
+    <value>Lastname</value>
+  </string>
+  <string id="1290" name="nick name">
+    <value>Email</value>
+  </string>
+  <string id="1291" name="nick name">
+    <value>Ok</value>
+  </string>
+  <string id="1292" name="nick name">
+    <value>Minimum length 4 chars! For both, firstname and lastname.</value>
+  </string>
+  <string id="1293" name="nick name">
+    <value>Please enter a valid email!</value>
+  </string>
+  <string id="1294" name="auth from">
+    <value>Facebook</value>
+  </string>
+  <string id="1295" name="auth form">
+    <value>Login with your Facebook account</value>
+  </string>
+  <string id="1296" name="view profile">
+    <value>Member since</value>
+  </string>
+  <string id="1297" name="direct login message">
+    <value>You've logged with your Facebook account. You should update your profile with the correct email. Otherwise you will not receive invitations and private messages from other users.</value>
+  </string>
+  <string id="1298" name="direct login message header">
+    <value>Message</value>
+  </string>
+  <string id="1299" name="direct login message checkbox control">
+    <value>Do not show update profile message again</value>
+  </string>
+  <string id="1300" name="profile settings button">
+    <value>more display options ...</value>
+  </string>
+  <string id="1301" name="private message">
+    <value>New private message:</value>
+  </string>
+  <string id="1302" name="private message">
+    <value>Click here to visit your profile to see the full message ...</value>
+  </string>
+  <string id="1303" name="private message">
+    <value>Reply</value>
+  </string>
+  <string id="1304" name="dashboard">
+    <value>Rooms and chats</value>
+  </string>
+  <string id="1305" name="dashboard">
+    <value>My rooms</value>
+  </string>
+  <string id="1306" name="my rooms">
+    <value>My conference room (for 1-16 users)</value>
+  </string>
+  <string id="1307" name="my rooms">
+    <value>My webinar room (for 1-120 users)</value>
+  </string>
+  <string id="1308" name="room administration">
+    <value>Owner Id</value>
+  </string>
+  <string id="1309" name="login error">
+    <value>Please enter a password</value>
+  </string>
+  <string id="1310" name="login error">
+    <value>You need an account with User-Level User, Moderator or Admin</value>
+  </string>
+  <string id="1311" name="user administration">
+    <value>Web-Service (only access via SOAP)</value>
+  </string>
+  <string id="1312" name="upload file explorer">
+    <value>Do directly load to whiteboard</value>
+  </string>
+  <string id="1313" name="whiteboard close confirmation">
+    <value>Do you really want to remove this whiteboard? This action cannot be undone!</value>
+  </string>
+  <string id="1314" name="whiteboard load WML">
+    <value>Load to whiteboard</value>
+  </string>
+  <string id="1315" name="recording flag">
+    <value>Do not forget start recording! One user per room always needs to start it to have the recording afterwards.</value>
+  </string>
+  <string id="1316" name="recording flag">
+    <value>Start Recording</value>
+  </string>
+  <string id="1317" name="shape">
+    <value>Arrow</value>
+  </string>
+  <string id="1318" name="shape">
+    <value>Circle</value>
+  </string>
+  <string id="1319" name="shape">
+    <value>Line</value>
+  </string>
+  <string id="1320" name="shape">
+    <value>Square</value>
+  </string>
+  <string id="1321" name="shape">
+    <value>Triangle</value>
+  </string>
+  <string id="1322" name="icon">
+    <value>Text/Note</value>
+  </string>
+  <string id="1323" name="icon">
+    <value>Cliparts</value>
+  </string>
+  <string id="1324" name="icon">
+    <value>Draw Free</value>
+  </string>
+  <string id="1325" name="icon">
+    <value>Select/Move</value>
+  </string>
+  <string id="1326" name="icon">
+    <value>Draw Shape</value>
+  </string>
+  <string id="1327" name="icon">
+    <value>Cut/Move</value>
+  </string>
+  <string id="1328" name="icon">
+    <value>Zoom In/Out</value>
+  </string>
+  <string id="1329" name="icon">
+    <value>Print</value>
+  </string>
+  <string id="1330" name="icon">
+    <value>Undo</value>
+  </string>
+  <string id="1331" name="icon">
+    <value>Trash</value>
+  </string>
+  <string id="1332" name="icon">
+    <value>Add Grid</value>
+  </string>
+  <string id="1333" name="icon">
+    <value>Share File</value>
+  </string>
+  <string id="1334" name="icon submenu">
+    <value>Select Shape</value>
+  </string>
+  <string id="1335" name="icon submenu">
+    <value>Select Clipart</value>
+  </string>
+  <string id="1336" name="submenu">
+    <value>Copy</value>
+  </string>
+  <string id="1337" name="submenu">
+    <value>Cut</value>
+  </string>
+  <string id="1338" name="submenu">
+    <value>Paste</value>
+  </string>
+  <string id="1339" name="submenu">
+    <value>Delete</value>
+  </string>
+  <string id="1340" name="submenu">
+    <value>Do you really want to delete the complete content on the whiteboard?</value>
+  </string>
+  <string id="1341" name="submenu">
+    <value>Load directly to whiteboard</value>
+  </string>
+  <string id="1342" name="attendees">
+    <value>Attendees</value>
+  </string>
+  <string id="1343" name="atendee manager">
+    <value>Attendee Manager</value>
+  </string>
+  <string id="1344" name="atendee manager">
+    <value>Present</value>
+  </string>
+  <string id="1345" name="atendee manager">
+    <value>Remote Controll</value>
+  </string>
+  <string id="1346" name="atendee manager">
+    <value>Eject</value>
+  </string>
+  <string id="1347" name="chat">
+    <value>Chat</value>
+  </string>
+  <string id="1348" name="invite attendee">
+    <value>Invite Attendees</value>
+  </string>
+  <string id="1349" name="invite attendee">
+    <value>By Email</value>
+  </string>
+  <string id="1350" name="invite attendee">
+    <value>User is moderator</value>
+  </string>
+  <string id="1351" name="invite attendee">
+    <value>User has webcam switched on</value>
+  </string>
+  <string id="1352" name="fill_option">
+    <value>Deactivate shape fill</value>
+  </string>
+  <string id="1353" name="fill_option">
+    <value>Activate shape fill</value>
+  </string>
+  <string id="1354" name="icon">
+    <value>Snap to Grid</value>
+  </string>
+  <string id="1355" name="allow_recording">
+    <value>Allow recording</value>
+  </string>
+  <string id="1356" name="wait_for_recording">
+    <value>Wait for recording</value>
+  </string>
+  <string id="1357" name="hide_top_bar">
+    <value>Hide topbar</value>
+  </string>
+  <string id="1358" name="fileExplorer">
+    <value>Play video</value>
+  </string>
+  <string id="1359" name="submenu">
+    <value>Do you really want to delete the content on the current slide?</value>
+  </string>
+  <string id="1360" name="activity_window">
+    <value>Accept and grant user right</value>
+  </string>
+  <string id="1361" name="activity_window">
+    <value>Deny</value>
+  </string>
+  <string id="1362" name="activity_window">
+    <value>I</value>
+  </string>
+  <string id="1363" name="activity_window">
+    <value>Activities and actions</value>
+  </string>
+  <string id="1364" name="whiteboard">
+    <value>Remove whiteboard</value>
+  </string>
+  <string id="1365" name="whiteboard">
+    <value>You need the moderation or the right to draw on the whiteboard to remove whiteboards!</value>
+  </string>
+  <string id="1366" name="whiteboard">
+    <value>Not allowed</value>
+  </string>
+  <string id="1367" name="user_left_act_msg">
+    <value>has left the room.</value>
+  </string>
+  <string id="1368" name="clipart icons">
+    <value>Math icons</value>
+  </string>
+  <string id="1369" name="clipart icons">
+    <value>No category</value>
+  </string>
+  <string id="1370" name="login_screen">
+    <value>Color-Style</value>
+  </string>
+  <string id="1371" name="login_screen">
+    <value>Quality</value>
+  </string>
+  <string id="1372" name="login_screen">
+    <value>Domain</value>
+  </string>
+  <string id="1373" name="login_screen">
+    <value>visit</value>
+  </string>
+  <string id="1374" name="login_screen">
+    <value>redorange</value>
+  </string>
+  <string id="1375" name="login_screen">
+    <value>mediumseagreen</value>
+  </string>
+  <string id="1376" name="login_screen">
+    <value>steelblue</value>
+  </string>
+  <string id="1377" name="login_screen">
+    <value>lightsteelblue</value>
+  </string>
+  <string id="1378" name="login_screen">
+    <value>goldenred</value>
+  </string>
+  <string id="1379" name="login_screen">
+    <value>silvergray</value>
+  </string>
+  <string id="1380" name="login_screen">
+    <value>userdefined</value>
+  </string>
+  <string id="1381" name="login_screen">
+    <value>best</value>
+  </string>
+  <string id="1382" name="login_screen">
+    <value>upload</value>
+  </string>
+  <string id="1383" name="login_screen">
+    <value>medium</value>
+  </string>
+  <string id="1384" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1385" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1386" name="give exclusive audio">
+    <value>Mute microphone of others</value>
+  </string>
+  <string id="1387" name="mute self message">
+    <value>You are globally muted by the moderator. You cannot unmute yourself!</value>
+  </string>
+  <string id="1388" name="mute self confirm message title">
+    <value>Mute microphone globally?</value>
+  </string>
+  <string id="1389" name="mute self confirm message message">
+    <value>Do you really want to mute yourself globally? No other user will hear you anymore!</value>
+  </string>
+  <string id="1390" name="mute others confirm message title">
+    <value>Mute microphone locally?</value>
+  </string>
+  <string id="1391" name="mute others confirm message">
+    <value>Do you really want to mute this microphone? You can only mute it locally on your screen. It has no effect to how other users hear this user. Only moderators can turn it off globally!</value>
+  </string>
+  <string id="1392" name="mute others confirm message title">
+    <value>Mute microphone off globally?</value>
+  </string>
+  <string id="1393" name="mute others moderator message">
+    <value>Do you really want to mute this user globally? No other user will hear him anymore!</value>
+  </string>
+  <string id="1394" name="mute status icons">
+    <value>Your sound is on. Click here to send moderator message to mute your microphone globally (in the complete conference room) off!</value>
+  </string>
+  <string id="1395" name="mute status icons">
+    <value>Your sound is off. Click here to send moderator message to unmute your microphone globally (in the complete conference room) on!</value>
+  </string>
+  <string id="1396" name="mute apply self on message">
+    <value>would like that the moderator mutes my microphone globally.</value>
+  </string>
+  <string id="1397" name="mute apply self off message">
+    <value>would like that the moderator unmutes my microphone globally.</value>
+  </string>
+  <string id="1398" name="mute apply of message">
+    <value>want that the moderator unmutes his/her microphone.</value>
+  </string>
+  <string id="1399" name="mute apply of message">
+    <value>want that the moderator mutes his/her microphone.</value>
+  </string>
+  <string id="1400" name="mute status icons">
+    <value>Unmute microphone. Click here to mute his/her microphone globally!</value>
+  </string>
+  <string id="1401" name="mute status icons">
+    <value>Mute microphone. Click here to unmute his/her microphone globally!</value>
+  </string>
+  <string id="1402" name="mute self message">
+    <value>This user is globally muted by the moderator. You cannot unmute him!</value>
+  </string>
+  <string id="1403" name="mute micro">
+    <value>Mute your microphone globally</value>
+  </string>
+  <string id="1404" name="unmute micro">
+    <value>Unmute your microphone globally</value>
+  </string>
+  <string id="1405" name="mute micro">
+    <value>Mute microphone</value>
+  </string>
+  <string id="1406" name="unmute micro">
+    <value>Unmute microphone</value>
+  </string>
+  <string id="1407" name="mute micro">
+    <value>Mute microphone globally</value>
+  </string>
+  <string id="1408" name="unmute micro">
+    <value>Unmute microphone globally</value>
+  </string>
+  <string id="1409" name="mute moderator message">
+    <value>Only moderators can mute or unmute an user globally! To mute your own microphone: Please use the microphone icon in your video pod!</value>
+  </string>
+  <string id="1410" name="poll_name">
+    <value>Poll Name</value>
+  </string>
+  <string id="1411" name="poll_name">
+    <value>You</value>
+  </string>
+  <string id="1412" name="archived_polls">
+    <value>Archieved Polls</value>
+  </string>
+  <string id="1413" name="active_poll">
+    <value>active</value>
+  </string>
+  <string id="1414" name="chart_simple">
+    <value>Simple Chart</value>
+  </string>
+  <string id="1415" name="chart_pie">
+    <value>Pie Chart</value>
+  </string>
+  <string id="1416" name="sign_up_validation">
+    <value>Please enter email</value>
+  </string>
+  <string id="1417" name="chat_notification">
+    <value>New message(s)</value>
+  </string>
+  <string id="1418" name="poll_close">
+    <value>Close Poll</value>
+  </string>
+  <string id="1419" name="poll_close_confirm">
+    <value>Are you sure you want to close this Poll? No one will be able to vote</value>
+  </string>
+  <string id="1420" name="poll_delete">
+    <value>Delete Poll</value>
+  </string>
+  <string id="1421" name="poll_delete_confirm">
+    <value>Are you sure you want to delete this Poll? The results will be deleted as well.</value>
+  </string>
+  <string id="1422" name="language_code">
+    <value>Language ISO Code</value>
+  </string>
+  <string id="1423" name="exclusive_audio_permission">
+    <value>Allow/Deny right to give exclusive audio.</value>
+  </string>
+  <string id="1424" name="allow_exclusive_audio_permission">
+    <value>Allow user to give exclusive audio</value>
+  </string>
+  <string id="1425" name="deny_exclusive_audio_permission">
+    <value>Deny user to give exclusive audio</value>
+  </string>
+  <string id="1426" name="excl_audio apply self on message">
+    <value>would like to get a permission for exclusive audio.</value>
+  </string>
+  <string id="1427" name="excl_audio apply of message">
+    <value>want that the moderator gives me a permission for exclusive audio.</value>
+  </string>
+  <string id="1428" name="excl_audio status icons">
+    <value>Give a permission for exclusive audio.</value>
+  </string>
+  <string id="1429" name="cam_resolution">
+    <value>Cam resolution</value>
+  </string>
+  <string id="1430" name="cam_resolution_info">
+    <value>Changing the resolution affects bandwidth, bigger picture needs more bandwith!</value>
+  </string>
+  <string id="1431" name="exclusive_audio_error">
+    <value>You don't have the right to give yourself or others exclusive audio. You need to apply for the right from the moderator or ask the moderator to give you exclusive audio.</value>
+  </string>
+  <string id="1432" name="exclusive_audio_ask">
+    <value>I would like to get the right for exclusive audio</value>
+  </string>
+  <string id="1433" name="exclusive_audio_action">
+    <value>Give exclusive audio to me (alternatively click on your video pod or press F12)</value>
+  </string>
+  <string id="1434" name="micro is on">
+    <value>Microphone is on!</value>
+  </string>
+  <string id="1435" name="micro is off">
+    <value>Microphone is muted</value>
+  </string>
+  <string id="1436" name="hide_chat">
+    <value>Hide chat</value>
+  </string>
+  <string id="1437" name="hide_activities_and_actions">
+    <value>Hide activities</value>
+  </string>
+  <string id="1438" name="hide_files_explorer">
+    <value>Hide files explorer</value>
+  </string>
+  <string id="1439" name="hide_actions_menu">
+    <value>Hide actions menu</value>
+  </string>
+  <string id="1440" name="hide_screen_sharing">
+    <value>Hide screen sharing</value>
+  </string>
+  <string id="1441" name="hide_whiteboard">
+    <value>Hide whiteboard</value>
+  </string>
+  <string id="1442" name="show microphone status">
+    <value>Show micro status in video</value>
+  </string>
+  <string id="1443" name="layout_options">
+    <value>Layout options</value>
+  </string>
+  <string id="1444" name="calendar new button">
+    <value>New Event</value>
+  </string>
+  <string id="1445" name="calendar password info text">
+    <value>Password protected are the links to the conference that are send to the participents when you save the calendar event, not the room! That means if you save the event multiple times but with different passwords every participent receives a new link that has a different password. But old links still work once send!</value>
+  </string>
+  <string id="1446" name="calendar edit button">
+    <value>Edit details</value>
+  </string>
+  <string id="1447" name="sip show dialer">
+    <value>Show sip dialer</value>
+  </string>
+  <string id="1448" name="sip call">
+    <value>Call</value>
+  </string>
+  <string id="1449" name="calendar contact list">
+    <value>Show calendar events of contact</value>
+  </string>
+  <string id="1450" name="tooltip menu">
+    <value>Your home!</value>
+  </string>
+  <string id="1451" name="tooltip menu">
+    <value>Plan your meetings</value>
+  </string>
+  <string id="1452" name="tooltip menu">
+    <value>Watch recording and interviews</value>
+  </string>
+  <string id="1453" name="tooltip menu">
+    <value>Choose and start a web-conference</value>
+  </string>
+  <string id="1454" name="tooltip menu">
+    <value>Manage users and rights</value>
+  </string>
+  <string id="1455" name="tooltip menu">
+    <value>Manage connections and kick users</value>
+  </string>
+  <string id="1456" name="tooltip menu">
+    <value>Manage usergroups</value>
+  </string>
+  <string id="1457" name="tooltip menu">
+    <value>Manage conference rooms</value>
+  </string>
+  <string id="1458" name="tooltip menu">
+    <value>Manage system settings</value>
+  </string>
+  <string id="1459" name="tooltip menu">
+    <value>Manage labels and wording</value>
+  </string>
+  <string id="1460" name="tooltip menu">
+    <value>Manage LDAP and ADS configurations</value>
+  </string>
+  <string id="1461" name="tooltip menu">
+    <value>Export/Import System Backups</value>
+  </string>
+  <string id="1462" name="file explorer">
+    <value>You need moderation or the right to draw on whiteboard to upload, add, delete or load files and folders.</value>
+  </string>
+  <string id="1463" name="whiteboard">
+    <value>Edit text</value>
+  </string>
+  <string id="1464" name="salutation">
+    <value>Prof</value>
+  </string>
+  <string id="1465" name="sharing client">
+    <value>Publish</value>
+  </string>
+  <string id="1466" name="sharing client">
+    <value>Start Publish</value>
+  </string>
+  <string id="1467" name="sharing client">
+    <value>Stop Publish</value>
+  </string>
+  <string id="1468" name="sharing client">
+    <value>Host</value>
+  </string>
+  <string id="1469" name="sharing client">
+    <value>Publish App</value>
+  </string>
+  <string id="1470" name="sharing client">
+    <value>Publish Id</value>
+  </string>
+  <string id="1471" name="sharing client">
+    <value>Reduce the width of the SharingScreen before you try to move it left</value>
+  </string>
+  <string id="1472" name="sharing client">
+    <value>Reduce the height of the SharingScreen before you try to move it bottom</value>
+  </string>
+  <string id="1473" name="sharing client">
+    <value>Reduce the x of the SharingScreen before you try to make it wider</value>
+  </string>
+  <string id="1474" name="sharing client">
+    <value>Reduce the y of the SharingScreen before you try to make it higher</value>
+  </string>
+  <string id="1475" name="sharing client">
+    <value>Fill these settings stream your screen data to 3th party providers like justin.tv</value>
+  </string>
+  <string id="1476" name="sharing client">
+    <value>Please start Screen sharing to be able to publish it</value>
+  </string>
+  <string id="1477" name="sharing client">
+    <value>Moderator permission required to start recording</value>
+  </string>
+  <string id="1478" name="no right for exclusive audio">
+    <value>You don't have permission to apply exclusive audio to any participant. You need moderation role or the right for exclusive audio to make any microphone exclusive turned on..</value>
+  </string>
+  <string id="1479" name="conference menu">
+    <value>Upload new file to file explorer</value>
+  </string>
+  <string id="1480" name="conference menu">
+    <value>Open new dialog with sharing settings</value>
+  </string>
+  <string id="1481" name="conference menu">
+    <value>An existing moderator must approve it</value>
+  </string>
+  <string id="1482" name="conference menu">
+    <value>Ask moderator to share your webcam/micro</value>
+  </string>
+  <string id="1483" name="conference menu">
+    <value>Gather feedback by creating a poll</value>
+  </string>
+  <string id="1484" name="conference menu">
+    <value>Past and current poll results as charts</value>
+  </string>
+  <string id="1485" name="conference menu">
+    <value>Vote if there is a poll for this conference room</value>
+  </string>
+  <string id="1486" name="conference menu">
+    <value>Edit cam and mic settings</value>
+  </string>
+  <string id="1487" name="conference menu">
+    <value>Confirm and leave the room</value>
+  </string>
+  <string id="1488" name="conference menu">
+    <value>Call external people via VoIP/SIP</value>
+  </string>
+  <string id="1489" name="conference menu">
+    <value>Send an email with a direct link to this room</value>
+  </string>
+  <string id="1490" name="conference menu">
+    <value>Change your whiteboard settings</value>
+  </string>
+  <string id="1491" name="backup admin">
+    <value>Max upload size</value>
+  </string>
+  <string id="1492" name="conference menu">
+    <value>Ask moderator to share your whiteboard</value>
+  </string>
+  <string id="1493" name="private chat">
+    <value>Start Private Chat</value>
+  </string>
+  <string id="1494" name="all_private_chat">
+    <value>All</value>
+  </string>
+  <string id="1495" name="private chat">
+    <value>You cannot start a private chat with yourself.</value>
+  </string>
+  <string id="1496" name="private chat">
+    <value>You've already started a private chat with this participant.</value>
+  </string>
+  <string id="1497" name="private chat">
+    <value>Do you really want to delete this private chat?</value>
+  </string>
+  <string id="1498" name="Servers">
+    <value>Servers</value>
+  </string>
+  <string id="1499" name="Servers">
+    <value>Servers participating in cluster</value>
+  </string>
+  <string id="1500" name="Server name">
+    <value>Server Name</value>
+  </string>
+  <string id="1501" name="Server Address">
+    <value>Server Address</value>
+  </string>
+  <string id="1502" name="Server details">
+    <value>Server details</value>
+  </string>
+  <string id="1503" name="Send SMS">
+    <value>Send SMS</value>
+  </string>
+  <string id="1504" name="publishing_message">
+    <value>Publishing. User:</value>
+  </string>
+  <string id="1505" name="cmd_line_admin">
+    <value>To save time and internet traffic you can use command line admin to backup/restore/upgrade: &lt;ol&gt; &lt;li&gt;go to OM install dir (for ex. /opt/red5)&lt;/li&gt; &lt;li&gt;stop OM (for ex. ./red5-shutdown.sh)&lt;/li&gt; &lt;li&gt;./admin.sh -b -file ~/today_om_backup.zip (create backup of current OM)&lt;/li&gt; &lt;li&gt;download archive with new OM&lt;/li&gt; &lt;li&gt;mv /opt/red5 /opt.red5.bak (move working version of OM just in case :))&lt;/li&gt; &lt;li&gt;extract downloaded OM to the /opt/red5&lt;/li&gt; &lt;li&gt;./admin.sh -i -file ~/today_om_backup.zip (or './admin.sh -i -file ~/today_om_backup.zip --db-type mysql --db-user om_user --db-pass om_user_pass' in case of you are using non-default DB )&lt;/li&gt; &lt;li&gt;start OM&lt;/li&gt; &lt;/ol&gt;</value>
+  </string>
+  <string id="1506" name="public_room_tooltip">
+    <value>Rooms common to all user</value>
+  </string>
+  <string id="1507" name="private_room_tooltip">
+    <value>Rooms common to the current user group</value>
+  </string>
+  <string id="1508" name="my_room_tooltip">
+    <value>Rooms of the current user</value>
+  </string>
+  <string id="1509" name="create_new_room">
+    <value>Create/Modify appointment special room</value>
+  </string>
+  <string id="1510" name="multiple_addresses">
+    <value>You can enter multiple addresses in the format: firstname1 lastname1 &lt;email1&gt;,"firstname2 lastname2" &lt;email2&gt;,'firstname3 lastname3' &lt;email3&gt;, ...</value>
+  </string>
+  <string id="1511" name="stream_volume">
+    <value>Adjust stream volume</value>
+  </string>
+  <string id="1512" name="microphone_volume">
+    <value>Adjust microphone volume</value>
+  </string>
+  <string id="1513" name="chat_moderated">
+    <value>Is chat moderated</value>
+  </string>
+  <string id="1514" name="chat_moderated">
+    <value>Allow message</value>
+  </string>
+  <string id="1515" name="chat_opened">
+    <value>Chat panel opened by default</value>
+  </string>
+  <string id="1516" name="files_opened">
+    <value>Files panel opened by default</value>
+  </string>
+  <string id="1517" name="server admin section lastping">
+    <value>Last ping</value>
+  </string>
+  <string id="1518" name="server admin section lastping info">
+    <value>Every slave sends a ping to the master every 3 seconds (configurable). Slave lastPing must be smaller then 1 minute so that the master uses the slave.</value>
+  </string>
+  <string id="1519" name="server admin port">
+    <value>HTTP Port</value>
+  </string>
+  <string id="1520" name="server admin user">
+    <value>User (SOAP-Access)</value>
+  </string>
+  <string id="1521" name="server admin password">
+    <value>Password</value>
+  </string>
+  <string id="1522" name="server admin webapp path">
+    <value>Webapp path</value>
+  </string>
+  <string id="1523" name="server admin protocol">
+    <value>Protocol</value>
+  </string>
+  <string id="1524" name="server admin ping running">
+    <value>Ping running</value>
+  </string>
+  <string id="1525" name="server admin active">
+    <value>Active</value>
+  </string>
+  <string id="1526" name="generate_hash">
+    <value>Generate URL</value>
+  </string>
+  <string id="1527" name="network testing link">
+    <value>Network testing</value>
+  </string>
+  <string id="1528" name="room_options">
+    <value>Auto select interview video pod</value>
+  </string>
+  <string id="1529" name="font_underline">
+    <value>Underline</value>
+  </string>
+  <string id="1530" name="font_style">
+    <value>Font style</value>
+  </string>
+  <string id="1531" name="allow_font_styles">
+    <value>Allow font styles</value>
+  </string>
+  <string id="1532" name="font_color">
+    <value>Font color</value>
+  </string>
+  <string id="1533" name="hyperlink">
+    <value>Hyperlink</value>
+  </string>
+  <string id="1534" name="connection admin">
+    <value>Show session statistics</value>
+  </string>
+  <string id="1535" name="connection admin">
+    <value>Session details</value>
+  </string>
+  <string id="1536" name="system_import">
+    <value>System import</value>
+  </string>
+  <string id="1537" name="include_into_backup">
+    <value>Include uploaded files and recordings in backup</value>
+  </string>
+  <string id="1538" name="room_admin_sip">
+    <value>Enable SIP transport in the room</value>
+  </string>
+  <string id="1539" name="exclusive_audio_confirm">
+    <value>Do you really want to provide this user an exclusive audio?</value>
+  </string>
+  <string id="1540" name="no_timezone">
+    <value>Please specify your timezone</value>
+  </string>
+  <string id="1541" name="conference_room_type">
+    <value>conference (1-25 users)</value>
+  </string>
+  <string id="1542" name="conference_room_type">
+    <value>restricted (1-150 users)</value>
+  </string>
+  <string id="1543" name="conference_room_type">
+    <value>interview (1:1 meeting with recording)</value>
+  </string>
+  <string id="1544" name="duplicate_key_error">
+    <value>Configuration with given key already exists, please specify another key or edit existent configuration</value>
+  </string>
+  <string id="1545" name="content_is_saving">
+    <value>Content is Saving, Please wait.</value>
+  </string>
+  <string id="1546" name="widget_welcome">
+    <value>Welcome</value>
+  </string>
+  <string id="1547" name="widget_welcome_desc">
+    <value>Widget displaying basic user info and support links</value>
+  </string>
+  <string id="1548" name="widgets_tab">
+    <value>Widgets</value>
+  </string>
+  <string id="1549" name="about_title">
+    <value>About</value>
+  </string>
+  <string id="1550" name="about_name">
+    <value>Name</value>
+  </string>
+  <string id="1551" name="about_version">
+    <value>Version</value>
+  </string>
+  <string id="1552" name="about_revision">
+    <value>Revision</value>
+  </string>
+  <string id="1553" name="about_build_date">
+    <value>Build date</value>
+  </string>
+  <string id="1554" name="about_build_date">
+    <value>Loading ...</value>
+  </string>
+  <string id="1555" name="calendar_today">
+    <value>today</value>
+  </string>
+  <string id="1556" name="calendar_shortmonthnames">
+    <value>Jan</value>
+  </string>
+  <string id="1557" name="calendar_shortmonthnames">
+    <value>Feb</value>
+  </string>
+  <string id="1558" name="calendar_shortmonthnames">
+    <value>Mar</value>
+  </string>
+  <string id="1559" name="calendar_shortmonthnames">
+    <value>Apr</value>
+  </string>
+  <string id="1560" name="calendar_shortmonthnames">
+    <value>May</value>
+  </string>
+  <string id="1561" name="calendar_shortmonthnames">
+    <value>Jun</value>
+  </string>
+  <string id="1562" name="calendar_shortmonthnames">
+    <value>Jul</value>
+  </string>
+  <string id="1563" name="calendar_shortmonthnames">
+    <value>Aug</value>
+  </string>
+  <string id="1564" name="calendar_shortmonthnames">
+    <value>Sep</value>
+  </string>
+  <string id="1565" name="calendar_shortmonthnames">
+    <value>Oct</value>
+  </string>
+  <string id="1566" name="calendar_shortmonthnames">
+    <value>Nov</value>
+  </string>
+  <string id="1567" name="calendar_shortmonthnames">
+    <value>Dec</value>
+  </string>
+  <string id="1568" name="remindertype_no_email">
+    <value>do not send notification</value>
+  </string>
+  <string id="1569" name="remindertype_simple_email">
+    <value>simple email</value>
+  </string>
+  <string id="1570" name="remindertype_iCal_email">
+    <value>iCal email</value>
+  </string>
+  <string id="1571" name="oauth2">
+    <value>OAuth2</value>
+  </string>
+  <string id="1572" name="oauth2">
+    <value>Manage OAuth2 configurations</value>
+  </string>
+  <string id="1573" name="oauth2">
+    <value>Name</value>
+  </string>
+  <string id="1574" name="oauth2">
+    <value>Enabled</value>
+  </string>
+  <string id="1575" name="oauth2">
+    <value>Icon URL</value>
+  </string>
+  <string id="1576" name="oauth2">
+    <value>client_id</value>
+  </string>
+  <string id="1577" name="oauth2">
+    <value>client_secret</value>
+  </string>
+  <string id="1578" name="oauth2">
+    <value>Request key URL</value>
+  </string>
+  <string id="1579" name="oauth2">
+    <value>Request token URL</value>
+  </string>
+  <string id="1580" name="oauth2">
+    <value>Request info URL</value>
+  </string>
+  <string id="1581" name="oauth2">
+    <value>OAuth2 config</value>
+  </string>
+  <string id="1582" name="oauth2">
+    <value>Login param name</value>
+  </string>
+  <string id="1583" name="oauth2">
+    <value>Email param name</value>
+  </string>
+  <string id="1584" name="oauth2">
+    <value>Firstname param name</value>
+  </string>
+  <string id="1585" name="oauth2">
+    <value>Lastname param name</value>
+  </string>
+  <string id="1586" name="oauth2">
+    <value>Request token attributes</value>
+  </string>
+  <string id="1587" name="oauth2">
+    <value>Redirect uri</value>
+  </string>
+  <string id="1588" name="multiple_addresses">
+    <value>You can enter email address in the format: firstname1 lastname1 &lt;email1&gt; or "firstname2 lastname2" &lt;email2&gt; or 'firstname3 lastname3' &lt;email3&gt; or email</value>
+  </string>
+  <string id="1589" name="notify_on_disconnect">
+    <value>Notify on disconnect</value>
+  </string>
+  <string id="1590" name="dashboard.display">
+    <value>Display</value>
+  </string>
+  <string id="1591" name="register.confirmation.sent">
+    <value>Your account has been created. Confirmation email has been sent. You can now login.</value>
+  </string>
+  <string id="1592" name="end.date.is.earlier.than.start">
+    <value>End date entered is earlier than start date.</value>
+  </string>
+  <string id="1593" name="recording.errors.exit.val">
+    <value>Exit value</value>
+  </string>
+  <string id="1594" name="recording.errors.conversion.messages">
+    <value>Conversion messages</value>
+  </string>
+  <string id="1595" name="recording.errors.file.not.found">
+    <value>Recording file is not found</value>
+  </string>
+  <string id="1596" name="whiteboard.add_whiteboard">
+    <value>Add Whiteboard</value>
+  </string>
+  <string id="1597" name="multiple_addresses">
+    <value>You can enter address in the format: firstname1 lastname1 &lt;email1&gt; OR "firstname2 lastname2" &lt;email2&gt; OR 'firstname3 lastname3' &lt;email3&gt;</value>
+  </string>
+</language>
diff --git a/src/main/webapp/public/cliparts/ambulance.png b/src/main/webapp/public/cliparts/ambulance.png
new file mode 100644
index 0000000..c61cc33
--- /dev/null
+++ b/src/main/webapp/public/cliparts/ambulance.png
Binary files differ
diff --git a/src/main/webapp/public/cliparts/bow.png b/src/main/webapp/public/cliparts/bow.png
new file mode 100644
index 0000000..43cc3f5
--- /dev/null
+++ b/src/main/webapp/public/cliparts/bow.png
Binary files differ
diff --git a/src/main/webapp/public/cliparts/community.png b/src/main/webapp/public/cliparts/community.png
new file mode 100644
index 0000000..d56e169
--- /dev/null
+++ b/src/main/webapp/public/cliparts/community.png
Binary files differ
diff --git a/src/main/webapp/public/cliparts/help.png b/src/main/webapp/public/cliparts/help.png
new file mode 100644
index 0000000..6b7db6a
--- /dev/null
+++ b/src/main/webapp/public/cliparts/help.png
Binary files differ
diff --git a/src/main/webapp/public/cliparts/home.png b/src/main/webapp/public/cliparts/home.png
new file mode 100644
index 0000000..149583c
--- /dev/null
+++ b/src/main/webapp/public/cliparts/home.png
Binary files differ
diff --git a/src/main/webapp/public/cliparts/idea.png b/src/main/webapp/public/cliparts/idea.png
new file mode 100644
index 0000000..cc2a3c7
--- /dev/null
+++ b/src/main/webapp/public/cliparts/idea.png
Binary files differ
diff --git a/src/main/webapp/public/cliparts/swim.png b/src/main/webapp/public/cliparts/swim.png
new file mode 100644
index 0000000..fbb6f25
--- /dev/null
+++ b/src/main/webapp/public/cliparts/swim.png
Binary files differ
diff --git a/src/main/webapp/public/cliparts/thumb/ambulance.png b/src/main/webapp/public/cliparts/thumb/ambulance.png
new file mode 100644
index 0000000..c61cc33
--- /dev/null
+++ b/src/main/webapp/public/cliparts/thumb/ambulance.png
Binary files differ
diff --git a/src/main/webapp/public/cliparts/thumb/bow.png b/src/main/webapp/public/cliparts/thumb/bow.png
new file mode 100644
index 0000000..43cc3f5
--- /dev/null
+++ b/src/main/webapp/public/cliparts/thumb/bow.png
Binary files differ
diff --git a/src/main/webapp/public/cliparts/thumb/community.png b/src/main/webapp/public/cliparts/thumb/community.png
new file mode 100644
index 0000000..d56e169
--- /dev/null
+++ b/src/main/webapp/public/cliparts/thumb/community.png
Binary files differ
diff --git a/src/main/webapp/public/cliparts/thumb/help.png b/src/main/webapp/public/cliparts/thumb/help.png
new file mode 100644
index 0000000..6b7db6a
--- /dev/null
+++ b/src/main/webapp/public/cliparts/thumb/help.png
Binary files differ
diff --git a/src/main/webapp/public/cliparts/thumb/home.png b/src/main/webapp/public/cliparts/thumb/home.png
new file mode 100644
index 0000000..149583c
--- /dev/null
+++ b/src/main/webapp/public/cliparts/thumb/home.png
Binary files differ
diff --git a/src/main/webapp/public/cliparts/thumb/idea.png b/src/main/webapp/public/cliparts/thumb/idea.png
new file mode 100644
index 0000000..cc2a3c7
--- /dev/null
+++ b/src/main/webapp/public/cliparts/thumb/idea.png
Binary files differ
diff --git a/src/main/webapp/public/cliparts/thumb/swim.png b/src/main/webapp/public/cliparts/thumb/swim.png
new file mode 100644
index 0000000..fbb6f25
--- /dev/null
+++ b/src/main/webapp/public/cliparts/thumb/swim.png
Binary files differ
diff --git a/src/main/webapp/public/config.xml b/src/main/webapp/public/config.xml
new file mode 100644
index 0000000..f5a3a1c
--- /dev/null
+++ b/src/main/webapp/public/config.xml
@@ -0,0 +1,321 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<config 
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+    xsi:noNamespaceSchemaLocation="config.xsd">
+
+<!-- URL/IP to use for the Server for RTMP and RTMPT traffic.
+    If this value is empty it will try to connect to the 
+    domain-name the OpenMeetings-Client has been loading from
+    
+    Can be either and IP or a domain name. 
+    For example: 
+    <rtmphostlocal>192.168.254.182</rtmphostlocal>
+    or
+    <rtmphostlocal>mysubdomain.streaming.to</rtmphostlocal>
+    -->
+<rtmphostlocal></rtmphostlocal>
+
+<!-- URL/IP to use for the Server for HTTP and HTTPS traffic.
+    If this value is empty it will use the rtmphostlocal 
+    variable (and in that way try to connect to the 
+    domain-name the OpenMeetings-Client has been loading from)
+    -->
+<httphostlocal></httphostlocal>
+
+<!--  
+Port to use for the Server
+To this port the default server lookup is done
+
+You can find all this configuration in your red5-Config in: $RED5_HOME/conf/red5.properties
+ -->
+<rtmpport>1935</rtmpport>
+
+<rtmpsslport>443</rtmpsslport>
+<!--
+Wether it should try to connect to rtmps first or not
+Valid values: yes / no
+
+NOTE: The OSx and Linux Flash Player are NOT able to connect via rtmps
+The support for Windows is experimental
+ -->
+<useSSL>no</useSSL>
+
+<!-- 
+Port to use for the Server
+This port is used to connect to the http-servlet
+of the red5-servlet
+ -->
+<red5httpport>5080</red5httpport>
+
+<!--
+    The protocol to use for the http connections
+    for example upload/download of files 
+ -->
+<protocol>http</protocol>
+
+<!--
+    The setting for the NetConnection
+    default settings is "none"
+    set to value "best" if you are trying to use rtmp over native SSL
+    see: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetConnection.html#proxyType
+ -->
+<proxyType>none</proxyType>
+	
+<!--
+    Name of the Application
+    this is the Top-Icon Name of the Application
+ -->    
+<currentappname>Apache OpenMeetings</currentappname>    
+    
+<!-- 
+    URL to the Home of the Application
+    this is the URL which is used if you click on the Top-icon
+-->    
+<currentappnameurl>http://openmeetings.apache.org</currentappnameurl>        
+
+<!-- 
+    Should APP name and/or logo be displayed
+-->    
+<appdisplay>
+	<displayelement name="logo" display="true" x="5" y="5"/>
+	<displayelement name="name" display="true" x="140" y="10"/>
+</appdisplay>
+
+<!--
+    URL to Bugs/Support
+    this is the URL which is used if you click on *report a bug*
+ -->
+<currentappnamebugurl>https://issues.apache.org/jira/browse/OPENMEETINGS</currentappnamebugurl>   
+        
+<!--
+    Video-Settings
+    
+    Number that specifies the amount of sound required to activate the microphone 
+	Acceptable values from 0 to 100.	
+    this value is used in Audio_Streaming, at which the *activity-meter* will
+    send a notification for all connected hosts of a conference
+    the result of this notification is that you see the green-light highlighted if
+    a remote user is speaking
+ -->
+<loudnessAcitviation>0</loudnessAcitviation>  
+    
+<!--
+    OpenMeetings-Webapp Name
+    This is the name of the WebApp the Client will try to connect
+    in former versions (till 0.5 Beta7) the name was xmlcrm
+    the same param kann be find in the webapp in the Red5-Webapp
+    red5-web.properties
+    web.xml
+ -->
+<webAppRootKey>openmeetings</webAppRootKey>  
+
+<!--
+    We need this additional ROOT-Key as we have to deploy the application 
+    as Global Contex Root. 
+    
+    If the rtmpt issues is solved sothat several Webapps can use different RTMPT connection
+    we might change this value again to its origin / webapp-context
+
+ -->
+<httpRootKey>/openmeetings/</httpRootKey>  
+    
+<!--
+    Window-Effect Settings
+    showWindowEffect-values:
+    y = yes
+    n = no
+    showWindowEffectOpacity-values
+    between 0 and 1
+ -->
+<showWindowEffect>n</showWindowEffect> 
+
+<!--
+    Show the recorder buttons in the Conference Rooms
+    visible = yes
+    hidden = no
+ -->	
+<showRecording>hidden</showRecording>
+
+<!--
+    
+	To enable the modern whiteboard Panel you need to switch this to y
+    old menu bar is not active any more
+    
+<showmodernWhiteBoard>y</showmodernWhiteBoard>    
+ -->    
+	
+<!--
+	First day in the Week used by the Calendar
+	0 means Sunday
+	1 means Monday
+	this is the way how the calendar UI shows a week
+-->
+<firstdayinweek>0</firstdayinweek>	
+    
+    
+<!--
+    #############################################################################
+    Audio and Video Settings
+    Before you change settings here,
+    you should first Play and learn how the Settings work in the Documentation:
+    http://code.google.com/p/openmeetings/wiki/AudioVideoTestingApplication
+    #############################################################################
+ -->
+ 
+<!-- Camera Settings for codecType
+
+    codecType possible values:
+    h263
+    h264
+    If you want to use red5sip, set value to "h264"
+ -->
+<codecType>h264</codecType>
+ 
+<!-- Camera Settings for the FramesPerSecond
+    
+    fps:Number [optional] - The requested rate at which the camera should capture 
+    data, in frames per second. The default value is 15.
+ -->    
+<framesPerSecond>30</framesPerSecond>
+    
+    
+<!-- Camera Settings for the Bandwidth:
+    
+    bandwidth:Number [optional] - An integer that specifies the maximum amount 
+    of bandwidth that the current outgoing video feed can use, in bytes per second. 
+    To specify that Flash video can use as much bandwidth as needed to maintain 
+    the value of frameQuality, pass 0 for bandwidth. The default value is 16384.
+ -->
+<!-- These are the settings for the Quality-Modus *normal*
+    The Quality-Modus can be chosen in the Login-Box --> 
+<bandwidthNeededNormal>16384</bandwidthNeededNormal>    
+<!-- These are the settings for the Quality-Modus *best* -->    
+<bandwidthNeededBest>0</bandwidthNeededBest>
+    
+    
+<!-- Camera Settings for the Quality
+    
+    quality:Number [optional] - An integer that specifies the required level of 
+    picture quality, as determined by the amount of compression being applied to 
+    each video frame. Acceptable values range from 1 (lowest quality, maximum 
+    compression) to 100 (highest quality, no compression). To specify that picture 
+    quality can vary as needed to avoid exceeding bandwidth, pass 0 for quality. 
+    The default value is 0.
+ --> 
+<!-- These are the settings for the Quality-Modus *normal* -->  
+<camQualityNormal>85</camQualityNormal>     
+<!-- These are the settings for the Quality-Modus *best* -->       
+<camQualityBest>90</camQualityBest> 
+    
+    
+<!-- Microphone Settings for the Rate:
+    
+    rate:Number - 
+    The rate at which the microphone should capture sound, in kHz. 
+    Acceptable values are 5, 8, 11, 22, and 44. 
+    The default value is 8 kHz if your sound capture 
+    device supports this value. Otherwise, the default value 
+    is the next available capture level above 8 kHz that your sound 
+    capture device supports, usually 11 kHz.
+ -->
+<!-- Microphone Settings Quality-Modus -->
+<microphoneRateBest>22</microphoneRateBest>
+
+<!-- AEC configuration value
+Specifies the echo path length (in milliseconds). A longer echo path means better 
+echo cancellation but also introduces longer delays and requires more processing power. 
+The default value is 128; the only other possible value is 256.
+To disable AEC please specify 0.
+ -->
+<echoPath>128</echoPath>
+
+<!--
+    Set "true" or "false" to enable/disable microphone echo suppression
+ -->
+<echoSuppression>true</echoSuppression>
+
+<!--
+    The Size of the Whiteboard
+    The Whiteboard has scrollbars so you may increase the size without problems
+ -->
+<defaultWhiteboardWidth>2400</defaultWhiteboardWidth>  
+<defaultWhiteboardHeight>1200</defaultWhiteboardHeight>  
+
+<!-- Available Configurations -->
+
+<availableCameraResolutions>
+    <resolution type="4:3 (~6 KByte/sec)" width="40" height="30" isDefault="false" />
+    <resolution type="4:3 (~12 KByte/sec)" width="80" height="60" isDefault="false" />
+    <resolution type="4:3 (~20 KByte/sec)" width="120" height="90" isDefault="true" />
+    <resolution type="QQVGA 4:3 (~36 KByte/sec)" width="160" height="120" isDefault="false" />
+    <resolution type="4:3 (~40 KByte/sec)" width="240" height="180" isDefault="false" />
+    <resolution type="HVGA 4:3 (~56 KByte/sec)" width="320" height="240" isDefault="false" />
+    <resolution type="4:3  (~60 KByte/sec)" width="480" height="360" isDefault="false" />
+    <resolution type="4:3 (~68 KByte/sec)" width="640" height="480" isDefault="false" />
+    <resolution type="XGA 4:3" width="1024" height="768" isDefault="false" />
+    <resolution type="16:9" width="256" height="150" isDefault="false" />
+    <resolution type="WQVGA 9:5" width="432" height="240" isDefault="false" />
+    <resolution type="pseudo 16:9" width="480" height="234" isDefault="false" />
+    <resolution type="16:9" width="512" height="300" isDefault="false" />
+    <resolution type="nHD 16:9" width="640" height="360" isDefault="false" />
+    <resolution type="16:9" width="1024" height="600" isDefault="false" />
+</availableCameraResolutions>
+    
+ 
+<!-- Module Configuration -->
+<!-- #############################################
+    Moderator Modules
+ -->
+
+<moderatorModuleUser>userModerate</moderatorModuleUser>
+
+<moderatorModuleRoom>roomModerate</moderatorModuleRoom>
+
+
+<!-- Conference Room Modules -->
+
+<conferenceModuleRoomList>allmeetings</conferenceModuleRoomList>
+
+
+<!-- #############################################
+    Conference Room
+    
+    Room Layout's: flexibleConferenceRoom,conferenceView
+ -->
+
+<conferenceRoomModule>flexibleConferenceRoom</conferenceRoomModule>
+
+<!-- #############################################
+    Event Room
+    
+    Room Layouts: flexibleRestrictedConferenceRoom,restrictedConferenceRoom
+ -->
+<restrictedRoomModule>restrictedConferenceRoom</restrictedRoomModule>
+
+<!-- #############################################
+    Interview Room
+    
+    Room Layouts: interviewConferenceRoom
+ -->
+<interviewRoomModule>interviewConferenceRoom</interviewRoomModule>
+        
+</config>
diff --git a/src/main/webapp/public/config.xsd b/src/main/webapp/public/config.xsd
new file mode 100644
index 0000000..e5deb4e
--- /dev/null
+++ b/src/main/webapp/public/config.xsd
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

+  <xs:element name="config">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element ref="rtmphostlocal"/>

+        <xs:element ref="httphostlocal"/>

+        <xs:element ref="rtmpport"/>

+        <xs:element ref="rtmpsslport"/>

+        <xs:element ref="useSSL"/>

+        <xs:element ref="red5httpport"/>

+        <xs:element ref="protocol"/>

+        <xs:element ref="proxyType"/>

+        <xs:element ref="currentappname"/>

+        <xs:element ref="currentappnameurl"/>

+        <xs:element ref="appdisplay"/>

+        <xs:element ref="currentappnamebugurl"/>

+        <xs:element ref="loudnessAcitviation"/>

+        <xs:element ref="webAppRootKey"/>

+        <xs:element ref="httpRootKey"/>

+        <xs:element ref="showWindowEffect"/>

+        <xs:element ref="showRecording"/>

+        <xs:element ref="firstdayinweek"/>

+	<xs:element ref="codecType"/>

+        <xs:element ref="framesPerSecond"/>

+        <xs:element ref="bandwidthNeededNormal"/>

+        <xs:element ref="bandwidthNeededBest"/>

+        <xs:element ref="camQualityNormal"/>

+        <xs:element ref="camQualityBest"/>

+        <xs:element ref="microphoneRateBest"/>

+        <xs:element ref="echoPath" />

+	<xs:element ref="echoSuppression" />

+        <xs:element ref="defaultWhiteboardWidth"/>

+        <xs:element ref="defaultWhiteboardHeight"/>

+        <xs:element ref="availableCameraResolutions"/>

+        <xs:element ref="moderatorModuleUser"/>

+        <xs:element ref="moderatorModuleRoom"/>

+        <xs:element ref="conferenceModuleRoomList"/>

+        <xs:element ref="conferenceRoomModule"/>

+        <xs:element ref="restrictedRoomModule"/>

+        <xs:element ref="interviewRoomModule"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="rtmphostlocal">

+  	<xs:annotation>

+    	<xs:documentation>

+    		URL/IP to use for the Server for RTMP and RTMPT traffic.

+		    If this value is empty it will try to connect to the 

+		    domain-name the OpenMeetings-Client has been loading from

+		    

+		    Can be either and IP or a domain name. 

+		    For example: 

+		    192.168.254.182

+		    or

+		    mysubdomain.streaming.to

+    	</xs:documentation>

+    </xs:annotation>

+    <xs:complexType/>

+  </xs:element>

+  <xs:element name="httphostlocal">

+    <xs:annotation>

+    	<xs:documentation>

+    		URL/IP to use for the Server for HTTP and HTTPS traffic.

+		    If this value is empty it will use the rtmphostlocal 

+		    variable (and in that way try to connect to the 

+		    domain-name the OpenMeetings-Client has been loading from)

+    	</xs:documentation>

+    </xs:annotation>

+    <xs:complexType/>

+  </xs:element>

+  <xs:element name="rtmpport" type="xs:integer"/>

+  <xs:element name="rtmpTunnelport" type="xs:integer"/>

+  <xs:element name="rtmpsslport" type="xs:integer"/>

+  <xs:element name="useSSL" type="xs:NCName"/>

+  <xs:element name="red5httpport" type="xs:integer"/>

+  <xs:element name="protocol" type="xs:NCName"/>

+  <xs:element name="proxyType" type="xs:NCName"/>

+  <xs:element name="currentappname" type="xs:string"/>

+  <xs:element name="currentappnameurl" type="xs:anyURI"/>

+  <xs:element name="appdisplay">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element maxOccurs="2" minOccurs="2" ref="displayelement"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="displayelement">

+    <xs:complexType>

+      <xs:attribute name="name" use="required" type="xs:string"/>

+      <xs:attribute name="display" use="required" type="xs:boolean"/>

+      <xs:attribute name="x" use="required" type="xs:integer"/>

+      <xs:attribute name="y" use="required" type="xs:integer"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="currentappnamebugurl" type="xs:anyURI"/>

+  <xs:element name="loudnessAcitviation" type="xs:integer"/>

+  <xs:element name="webAppRootKey" type="xs:NCName"/>

+  <xs:element name="httpRootKey" type="xs:string"/>

+  <xs:element name="showWindowEffect" type="xs:NCName"/>

+  <xs:element name="showRecording" type="xs:NCName"/>

+  <xs:element name="firstdayinweek" type="xs:integer"/>

+  <xs:element name="codecType" type="xs:string"/>

+  <xs:element name="framesPerSecond" type="xs:integer"/>

+  <xs:element name="bandwidthNeededNormal" type="xs:integer"/>

+  <xs:element name="bandwidthNeededBest" type="xs:integer"/>

+  <xs:element name="camQualityNormal" type="xs:integer"/>

+  <xs:element name="camQualityBest" type="xs:integer"/>

+  <xs:element name="microphoneRateBest" type="xs:integer"/>

+  <xs:element name="echoSuppression" type="xs:string"/>

+  <xs:element name="echoPath">

+    <xs:annotation>

+        <xs:documentation>

+            AEC configuration value - 

+			Specifies the echo path length (in milliseconds). A longer echo path means better 

+			echo cancellation but also introduces longer delays and requires more processing power. 

+			The default value is 128; the only other possible value is 256.

+        </xs:documentation>

+    </xs:annotation>

+    <xs:simpleType>

+        <xs:restriction base="xs:int">

+            <xs:enumeration value="128" />

+            <xs:enumeration value="256" />

+        </xs:restriction>

+    </xs:simpleType>

+  </xs:element>

+  <xs:element name="defaultWhiteboardWidth" type="xs:integer"/>

+  <xs:element name="defaultWhiteboardHeight" type="xs:integer"/>

+  <xs:element name="availableCameraResolutions">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element maxOccurs="unbounded" ref="resolution"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="resolution">

+    <xs:complexType>

+      <xs:attribute name="height" use="required" type="xs:integer"/>

+      <xs:attribute name="isDefault" use="required" type="xs:boolean"/>

+      <xs:attribute name="type" use="required"/>

+      <xs:attribute name="width" use="required" type="xs:integer"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="moderatorModuleUser" type="xs:NCName"/>

+  <xs:element name="moderatorModuleRoom" type="xs:NCName"/>

+  <xs:element name="conferenceModuleRoomList" type="xs:NCName"/>

+  <xs:element name="conferenceRoomModule" type="xs:NCName"/>

+  <xs:element name="restrictedRoomModule" type="xs:NCName"/>

+  <xs:element name="interviewRoomModule" type="xs:NCName"/>

+</xs:schema>

diff --git a/src/main/webapp/public/emoticons/emotes.xml b/src/main/webapp/public/emoticons/emotes.xml
new file mode 100644
index 0000000..5d12618
--- /dev/null
+++ b/src/main/webapp/public/emoticons/emotes.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<linked-list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+    xsi:noNamespaceSchemaLocation="emotes.xsd">
+  <linked-list>
+    <string>emoticon_evilgrin.png</string>
+    <string>&gt;:(</string>
+    <string>(\_/)</string>
+	<string>    </string>
+	<string>y</string>
+  </linked-list>
+  <linked-list>
+    <string>emoticon_grin.png</string>
+    <string>:D</string>
+	<string>    </string>
+	<string>y</string>
+  </linked-list>
+  <linked-list>
+    <string>emoticon_happy.png</string>
+    <string>8D</string>
+	<string>    </string>
+	<string>y</string>
+  </linked-list>
+  <linked-list>
+    <string>emoticon_smile.png</string>
+    <string>:)</string>
+    <string>(^_^)</string>
+	<string>    </string>
+	<string>y</string>
+  </linked-list>
+  <linked-list>
+    <string>emoticon_surprised.png</string>
+    <string>o_O</string>
+	<string>    </string>
+	<string>y</string>
+  </linked-list>
+  <linked-list>
+    <string>emoticon_tongue.png</string>
+    <string>:P</string>
+	<string>    </string>
+	<string>y</string>
+  </linked-list>
+  <linked-list>
+    <string>emoticon_unhappy.png</string>
+    <string>:(</string>
+	<string>    </string>
+	<string>y</string>
+  </linked-list>
+  <linked-list>
+    <string>emoticon_wink.png</string>
+    <string>;)</string>
+	<string>    </string>
+	<string>y</string>
+  </linked-list>
+</linked-list>
diff --git a/src/main/webapp/public/emoticons/emotes.xsd b/src/main/webapp/public/emoticons/emotes.xsd
new file mode 100644
index 0000000..fe10285
--- /dev/null
+++ b/src/main/webapp/public/emoticons/emotes.xsd
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

+  <xs:element name="linked-list">

+    <xs:complexType>

+      <xs:sequence minOccurs="0">

+        <xs:element ref="linked-list" minOccurs="0" maxOccurs="unbounded"/>

+        <xs:element maxOccurs="unbounded" ref="string" minOccurs="0"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="string" type="xs:string"/>

+</xs:schema>

diff --git a/src/main/webapp/public/emoticons/emoticon_evilgrin.png b/src/main/webapp/public/emoticons/emoticon_evilgrin.png
new file mode 100644
index 0000000..817bd50
--- /dev/null
+++ b/src/main/webapp/public/emoticons/emoticon_evilgrin.png
Binary files differ
diff --git a/src/main/webapp/public/emoticons/emoticon_grin.png b/src/main/webapp/public/emoticons/emoticon_grin.png
new file mode 100644
index 0000000..fc60c5e
--- /dev/null
+++ b/src/main/webapp/public/emoticons/emoticon_grin.png
Binary files differ
diff --git a/src/main/webapp/public/emoticons/emoticon_happy.png b/src/main/webapp/public/emoticons/emoticon_happy.png
new file mode 100644
index 0000000..6b7336e
--- /dev/null
+++ b/src/main/webapp/public/emoticons/emoticon_happy.png
Binary files differ
diff --git a/src/main/webapp/public/emoticons/emoticon_smile.png b/src/main/webapp/public/emoticons/emoticon_smile.png
new file mode 100644
index 0000000..ade4318
--- /dev/null
+++ b/src/main/webapp/public/emoticons/emoticon_smile.png
Binary files differ
diff --git a/src/main/webapp/public/emoticons/emoticon_surprised.png b/src/main/webapp/public/emoticons/emoticon_surprised.png
new file mode 100644
index 0000000..4520cfc
--- /dev/null
+++ b/src/main/webapp/public/emoticons/emoticon_surprised.png
Binary files differ
diff --git a/src/main/webapp/public/emoticons/emoticon_tongue.png b/src/main/webapp/public/emoticons/emoticon_tongue.png
new file mode 100644
index 0000000..ecafd2f
--- /dev/null
+++ b/src/main/webapp/public/emoticons/emoticon_tongue.png
Binary files differ
diff --git a/src/main/webapp/public/emoticons/emoticon_unhappy.png b/src/main/webapp/public/emoticons/emoticon_unhappy.png
new file mode 100644
index 0000000..fd5d030
--- /dev/null
+++ b/src/main/webapp/public/emoticons/emoticon_unhappy.png
Binary files differ
diff --git a/src/main/webapp/public/emoticons/emoticon_wink.png b/src/main/webapp/public/emoticons/emoticon_wink.png
new file mode 100644
index 0000000..a631949
--- /dev/null
+++ b/src/main/webapp/public/emoticons/emoticon_wink.png
Binary files differ
diff --git a/src/main/webapp/public/favicon.ico b/src/main/webapp/public/favicon.ico
new file mode 100644
index 0000000..f0c22ad
--- /dev/null
+++ b/src/main/webapp/public/favicon.ico
Binary files differ
diff --git a/src/main/webapp/public/theme.xml b/src/main/webapp/public/theme.xml
new file mode 100644
index 0000000..6a983a4
--- /dev/null
+++ b/src/main/webapp/public/theme.xml
@@ -0,0 +1,358 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

+    xsi:noNamespaceSchemaLocation="theme.xsd">

+

+	<!-- Colors -->

+

+	<color name="mainBackgroundColor" value="0xEEF0EB" 

+				description="main background color" />

+

+	<color name="basebgcolorizer" value="0xBDC0DB" 

+				description="Color for background" />

+				

+	<color name="baseMousecolorizer" value="0xBDC0DB" 

+				description="Color Mouseover color for list items" />

+	

+	<color name="baseMouseOvercolorizer" value="0xBDC0DB" 

+				description="Color Mouseover color for list items" />	

+	

+	<color name="styleMenuBarBaseColor" value="0x000088" 

+				description="menu bar background color" />				

+	

+	<color name="mainBorderColor" value="0xCCCCCC" 

+				description="main border color" />

+				

+	<color name="secondBorderColor" value="0xE0E0E0" 

+				description="main border color" />	

+		

+	<color name="menuBackgroundColor" value="0xEFEFEF" 

+				description="main border color" />

+				

+	<color name="menuTextColor" value="0x666666" 

+				description="color of text for menus" />

+	

+	<color name="menuTextDisabledColor" value="0xBBBBBB" 

+				description="color of text for menus" />		

+	

+	<!-- Icons -->

+	<resource name="logo_image" 

+				description="Logo to display on Main BG Navi" 

+				license="APL"

+				src="themes/basic-theme/general/logo.png" />

+	

+	<resource name="icon_facebook_rsc_png" 

+				description="Icon for facebook button in login" 

+				license="Unkown"

+				src="themes/basic-theme/auth/icon_facebook.png" />

+				

+	<resource name="warning_popup_icon_rsc" 

+				description="Toolbar Icon" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/general/error.png" />	

+				

+	<resource name="info_text_icon_rsc" 

+				description="Info Icon" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/general/information.png" />

+	

+	<!-- Save Toolbar (for example Admin section) -->

+	

+	<resource name="filesave_rsc" 

+				description="Save Icon" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/general/disk.png" />

+

+	<resource name="edit_add_rsc" 

+				description="Save Icon" 

+				license="APL Author sebawagner"

+				src="themes/basic-theme/general/plus_icon.png" />

+

+	<resource name="reload_rsc" 

+				description="Save Icon" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/general/arrow_refresh_small.png" />

+	

+	<resource name="button_cancel_rsc" 

+				description="Save Icon" 

+				license="APL Author sebawagner"

+				src="themes/basic-theme/general/cancel_icon.png" />

+

+	<resource name="add_rsc" 

+				description="Edit Add Icon" 

+				license="APL Author sebawagner"

+				src="themes/basic-theme/general/add.png" />

+				

+	<resource name="date_icon_rsc" 

+				description="Edit Add Icon" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/general/calendar_view_week.png" />

+				

+	<!-- Sorted list -->

+	

+	<resource name="step_back_two_arrow" 

+				description="Step to first" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/general/resultset_first.png" />

+				

+	<resource name="step_fwd_two_arrow" 

+				description="Step to last" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/general/resultset_last.png" />

+						

+    <resource name="step_back_arrow" 

+    			description="Step one back" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/general/resultset_previous.png" />

+    

+    <resource name="step_fwd_arrow" 

+    			description="Step one next" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/general/resultset_next.png" />

+				

+    <resource name="sort_up_rsc" 

+    			description="Sort up" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/general/resultset_up.png" />

+    

+    <resource name="sort_down_rsc" 

+    			description="Sort down" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/general/resultset_down.png" />

+    

+    <!-- Chat toolbar -->

+    

+    <resource name="font_style" 

+    			description="Change font style button" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/general/style.png" />

+    

+    <resource name="font_bold" 

+    			description="Bold font style button" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/general/text_bold.png" />

+    

+    <resource name="font_italic" 

+    			description="Italic font style button" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/general/text_italic.png" />

+    

+    <resource name="font_underline" 

+    			description="Underline font style button" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/general/text_underline.png" />

+    

+    <resource name="font_color" 

+    			description="Change font color button" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/general/color_swatch.png" />

+    

+    <resource name="hyperlink" 

+    			description="Insert hyperlink button" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/general/world_link.png" />

+				

+	<!-- Whiteboard Toolbar -->

+	

+	<resource name="plain" 

+				description="Toolbar Icon" 

+				license="APL author sebawagner"

+				src="themes/basic-theme/whiteboard/delete_all.png" />

+	

+	<resource name="plainSlides" 

+				description="Toolbar Icon" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/whiteboard/page_delete.png" />

+	

+	<resource name="arrow_draw_panel_tool_cursor" 

+				description="Toolbar Icon" 

+				license="APL Author sebawagner"

+				src="themes/basic-theme/whiteboard/arrow_cursor_tool.png" />

+

+	<resource name="saveobj" 

+				description="Toolbar Icon" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/general/disk.png" />

+

+	<resource name="revert" 

+				description="Toolbar Icon" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/whiteboard/arrow_rotate_anticlockwise.png" />

+

+	<resource name="next" 

+				description="Toolbar Icon" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/whiteboard/arrow_rotate_clockwise.png" />

+

+	<resource name="menupointer_rsc" 

+				description="Toolbar Icon" 

+				license="APL Author sebawagner"

+				src="themes/basic-theme/whiteboard/menupointer.png" />

+				

+	<resource name="pointer_whiteboard_menu_rsc" 

+				description="Toolbar Icon" 

+				license="APL Author sebawagner"

+				src="themes/basic-theme/whiteboard/pointerWhiteBoard_menu_rsc.png" />

+				

+	<resource name="letter" 

+				description="Toolbar Icon" 

+				license="APL Author sebawagner"

+				src="themes/basic-theme/whiteboard/letter.png" />

+

+	<resource name="paint" 

+				description="Toolbar Icon" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/whiteboard/pencil.png" />

+	

+	<resource name="line_rsc" 

+				description="Toolbar Icon" 

+				license="APL Author sebawagner"

+				src="themes/basic-theme/whiteboard/line.png" />	

+	

+	<resource name="uline_rsc" 

+				description="Toolbar Icon" 

+				license="APL Author sebawagner"

+				src="themes/basic-theme/whiteboard/uline.png" />	

+		

+	<resource name="rectangle" 

+				description="Toolbar Icon" 

+				license="APL Author sebawagner"

+				src="themes/basic-theme/whiteboard/rectangle.png" />	

+

+	<resource name="ellipse" 

+				description="Toolbar Icon" 

+				license="APL Author sebawagner"

+				src="themes/basic-theme/whiteboard/ellipse.png" />	

+				

+	<resource name="drawarrowicon_rsc" 

+				description="Toolbar Icon" 

+				license="APL Author sebawagner"

+				src="themes/basic-theme/whiteboard/drawarrowicon.png" />			

+		

+	<!-- whiteboard general -->		

+				

+	<resource name="bounding_box_delete_item_rsc" 

+				description="Toolbar Icon" 

+				license="APL Author sebawagner"

+				src="themes/basic-theme/general/cancel_icon_small.png" />	

+	

+	<resource name="bounding_box_textedit_item_rsc" 

+				description="Toolbar Icon" 

+				license="APL Author sebawagner"

+				src="themes/basic-theme/whiteboard/text_signature.png" />				

+					

+	<!-- document Tools -->	

+	

+	<resource name="doc_next" 

+				description="Toolbar Icon" 

+				license="APL Author sebawagner"

+				src="themes/basic-theme/whiteboard/doc_next.png" />		

+				

+	<resource name="doc_pre" 

+				description="Toolbar Icon" 

+				license="APL Author sebawagner"

+				src="themes/basic-theme/whiteboard/doc_pre.png" />		

+				

+	<resource name="doc_first" 

+				description="Toolbar Icon" 

+				license="APL Author sebawagner"

+				src="themes/basic-theme/whiteboard/doc_first.png" />		

+				

+	<resource name="doc_last" 

+				description="Toolbar Icon" 

+				license="APL Author sebawagner"

+				src="themes/basic-theme/whiteboard/doc_last.png" />		

+				

+	<!-- property panel -->	

+	<resource name="colorlinechoose_rsc" 

+				description="Property bar icon line color" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/whiteboard/pencil.png" />

+	

+	<resource name="colorfillchoose_rsc" 

+				description="Property bar icon fill color" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/whiteboard/paintcan.png" />

+	

+	<resource name="color_lock_rsc" 

+				description="Property bar icon color lock" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/whiteboard/lock.png" />

+	

+	<resource name="color_lock_open_rsc" 

+				description="Property bar icon color lock open" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/whiteboard/lock_open.png" />	

+				

+	<!-- Dashboard -->

+	

+	<resource name="icon_btn_dashboard_1" 

+				description="Info Guide Icon" 

+				license="APL Author sebawagner"

+				src="themes/basic-theme/dashboard/wizzard_button_1.png" />

+				

+    <resource name="icon_btn_dashboard_2" 

+    			description="Info Guide Icon" 

+				license="APL Author sebawagner"

+				src="themes/basic-theme/dashboard/wizzard_button_2.png" />

+				

+    <resource name="icon_btn_dashboard_3" 

+    			description="Info Guide Icon" 

+				license="APL Author sebawagner"

+				src="themes/basic-theme/dashboard/wizzard_button_3.png" />

+				

+    <resource name="icon_btn_dashboard_4" 

+    			description="Info Guide Icon" 

+				license="APL Author sebawagner"

+				src="themes/basic-theme/dashboard/wizzard_button_4.png" />

+	

+	<resource name="icon_btn_rss_conference" 

+    			description="RSS Tab Icon" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/dashboard/feed.png" />

+	

+	<resource name="icon_btn_chat_dashboard" 

+				description="Chat Tab Icon" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/dashboard/comments.png" />

+	

+    <resource name="icon_btn_rooms_conference" 

+				description="Conference Room Tab Icon" 

+				license="APL author sebawagner"

+				src="themes/basic-theme/dashboard/conference_icon_normal.png" />	

+				

+	<!-- Conference room -->	

+	<resource name="users_tab_btn" 

+				description="Conference Room Tab User" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/conference/group.png" />

+		

+	<resource name="files_tab_btn" 

+				description="Conference Room Tab Files" 

+				license="FamFam Icon Set"

+				src="themes/basic-theme/conference/folder_explore.png" />

+	

+	<resource name="exit_btn_rsc" 

+				description="Conference Room Tab Icon" 

+				license="APL author sebawagner"

+				src="themes/basic-theme/conference/exit_button.png" />			

+	

+</theme>
\ No newline at end of file
diff --git a/src/main/webapp/public/theme.xsd b/src/main/webapp/public/theme.xsd
new file mode 100644
index 0000000..c7a1885
--- /dev/null
+++ b/src/main/webapp/public/theme.xsd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

+  <xs:element name="theme">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element maxOccurs="unbounded" ref="color"/>

+        <xs:element maxOccurs="unbounded" ref="resource"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="color">

+    <xs:complexType>

+      <xs:attribute name="description" use="required"/>

+      <xs:attribute name="name" use="required" type="xs:NCName"/>

+      <xs:attribute name="value" use="required" type="xs:NMTOKEN"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="resource">

+    <xs:complexType>

+      <xs:attribute name="description" use="required"/>

+      <xs:attribute name="license" use="required"/>

+      <xs:attribute name="name" use="required" type="xs:NCName"/>

+      <xs:attribute name="src" use="required"/>

+    </xs:complexType>

+  </xs:element>

+</xs:schema>

diff --git a/src/main/webapp/public/themes/basic-theme/auth/icon_facebook.png b/src/main/webapp/public/themes/basic-theme/auth/icon_facebook.png
new file mode 100644
index 0000000..a0f667c
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/auth/icon_facebook.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/conference/exit_button.fla b/src/main/webapp/public/themes/basic-theme/conference/exit_button.fla
new file mode 100644
index 0000000..808954f
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/conference/exit_button.fla
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/conference/exit_button.png b/src/main/webapp/public/themes/basic-theme/conference/exit_button.png
new file mode 100644
index 0000000..7234c99
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/conference/exit_button.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/conference/folder_explore.png b/src/main/webapp/public/themes/basic-theme/conference/folder_explore.png
new file mode 100644
index 0000000..0ba9391
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/conference/folder_explore.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/conference/group.png b/src/main/webapp/public/themes/basic-theme/conference/group.png
new file mode 100644
index 0000000..7fb4e1f
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/conference/group.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/dashboard/comments.png b/src/main/webapp/public/themes/basic-theme/dashboard/comments.png
new file mode 100644
index 0000000..39433cf
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/dashboard/comments.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/dashboard/conference_icon_normal.fla b/src/main/webapp/public/themes/basic-theme/dashboard/conference_icon_normal.fla
new file mode 100644
index 0000000..1f013f2
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/dashboard/conference_icon_normal.fla
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/dashboard/conference_icon_normal.png b/src/main/webapp/public/themes/basic-theme/dashboard/conference_icon_normal.png
new file mode 100644
index 0000000..44d450d
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/dashboard/conference_icon_normal.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/dashboard/feed.png b/src/main/webapp/public/themes/basic-theme/dashboard/feed.png
new file mode 100644
index 0000000..315c4f4
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/dashboard/feed.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_1.fla b/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_1.fla
new file mode 100644
index 0000000..a97ff6b
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_1.fla
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_1.png b/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_1.png
new file mode 100644
index 0000000..fa3a7e2
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_1.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_2.fla b/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_2.fla
new file mode 100644
index 0000000..9aa80f1
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_2.fla
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_2.png b/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_2.png
new file mode 100644
index 0000000..75eb60e
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_2.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_3.fla b/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_3.fla
new file mode 100644
index 0000000..e005420
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_3.fla
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_3.png b/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_3.png
new file mode 100644
index 0000000..cc68320
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_3.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_4.fla b/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_4.fla
new file mode 100644
index 0000000..8088a64
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_4.fla
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_4.png b/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_4.png
new file mode 100644
index 0000000..228b85c
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/dashboard/wizzard_button_4.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/add.png b/src/main/webapp/public/themes/basic-theme/general/add.png
new file mode 100644
index 0000000..6332fef
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/add.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/arrow_refresh_small.png b/src/main/webapp/public/themes/basic-theme/general/arrow_refresh_small.png
new file mode 100644
index 0000000..d3087df
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/arrow_refresh_small.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/calendar_view_week.png b/src/main/webapp/public/themes/basic-theme/general/calendar_view_week.png
new file mode 100644
index 0000000..8fe695f
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/calendar_view_week.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/cancel_icon.fla b/src/main/webapp/public/themes/basic-theme/general/cancel_icon.fla
new file mode 100644
index 0000000..ecc498d
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/cancel_icon.fla
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/cancel_icon.png b/src/main/webapp/public/themes/basic-theme/general/cancel_icon.png
new file mode 100644
index 0000000..2d26062
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/cancel_icon.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/cancel_icon_small.fla b/src/main/webapp/public/themes/basic-theme/general/cancel_icon_small.fla
new file mode 100644
index 0000000..0bd3258
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/cancel_icon_small.fla
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/cancel_icon_small.png b/src/main/webapp/public/themes/basic-theme/general/cancel_icon_small.png
new file mode 100644
index 0000000..267e6c2
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/cancel_icon_small.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/color_swatch.png b/src/main/webapp/public/themes/basic-theme/general/color_swatch.png
new file mode 100644
index 0000000..6e6e852
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/color_swatch.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/disk.png b/src/main/webapp/public/themes/basic-theme/general/disk.png
new file mode 100644
index 0000000..99d532e
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/disk.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/error.png b/src/main/webapp/public/themes/basic-theme/general/error.png
new file mode 100644
index 0000000..628cf2d
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/error.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/information.png b/src/main/webapp/public/themes/basic-theme/general/information.png
new file mode 100644
index 0000000..12cd1ae
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/information.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/logo.png b/src/main/webapp/public/themes/basic-theme/general/logo.png
new file mode 100644
index 0000000..1d7a3bc
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/logo.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/plus_icon.fla b/src/main/webapp/public/themes/basic-theme/general/plus_icon.fla
new file mode 100644
index 0000000..9ac11ed
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/plus_icon.fla
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/plus_icon.png b/src/main/webapp/public/themes/basic-theme/general/plus_icon.png
new file mode 100644
index 0000000..acec291
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/plus_icon.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/resultset_down.png b/src/main/webapp/public/themes/basic-theme/general/resultset_down.png
new file mode 100644
index 0000000..0469642
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/resultset_down.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/resultset_first.png b/src/main/webapp/public/themes/basic-theme/general/resultset_first.png
new file mode 100644
index 0000000..b03eaf8
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/resultset_first.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/resultset_last.png b/src/main/webapp/public/themes/basic-theme/general/resultset_last.png
new file mode 100644
index 0000000..8ec8947
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/resultset_last.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/resultset_next.png b/src/main/webapp/public/themes/basic-theme/general/resultset_next.png
new file mode 100644
index 0000000..e252606
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/resultset_next.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/resultset_previous.png b/src/main/webapp/public/themes/basic-theme/general/resultset_previous.png
new file mode 100644
index 0000000..18f9cc1
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/resultset_previous.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/resultset_up.png b/src/main/webapp/public/themes/basic-theme/general/resultset_up.png
new file mode 100644
index 0000000..f121481
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/resultset_up.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/style.png b/src/main/webapp/public/themes/basic-theme/general/style.png
new file mode 100644
index 0000000..81e41de
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/style.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/text_bold.png b/src/main/webapp/public/themes/basic-theme/general/text_bold.png
new file mode 100644
index 0000000..889ae80
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/text_bold.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/text_italic.png b/src/main/webapp/public/themes/basic-theme/general/text_italic.png
new file mode 100644
index 0000000..8482ac8
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/text_italic.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/text_underline.png b/src/main/webapp/public/themes/basic-theme/general/text_underline.png
new file mode 100644
index 0000000..90d0df2
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/text_underline.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/general/world_link.png b/src/main/webapp/public/themes/basic-theme/general/world_link.png
new file mode 100644
index 0000000..b8edc12
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/general/world_link.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/arrow_cursor_tool.png b/src/main/webapp/public/themes/basic-theme/whiteboard/arrow_cursor_tool.png
new file mode 100644
index 0000000..a9f3169
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/arrow_cursor_tool.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/arrow_rotate_anticlockwise.png b/src/main/webapp/public/themes/basic-theme/whiteboard/arrow_rotate_anticlockwise.png
new file mode 100644
index 0000000..46c75aa
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/arrow_rotate_anticlockwise.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/arrow_rotate_clockwise.png b/src/main/webapp/public/themes/basic-theme/whiteboard/arrow_rotate_clockwise.png
new file mode 100644
index 0000000..aa65210
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/arrow_rotate_clockwise.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/cancel.png b/src/main/webapp/public/themes/basic-theme/whiteboard/cancel.png
new file mode 100644
index 0000000..c149c2b
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/cancel.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/delete_all.fla b/src/main/webapp/public/themes/basic-theme/whiteboard/delete_all.fla
new file mode 100644
index 0000000..bafe7e3
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/delete_all.fla
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/delete_all.png b/src/main/webapp/public/themes/basic-theme/whiteboard/delete_all.png
new file mode 100644
index 0000000..3e42c07
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/delete_all.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/doc_first.fla b/src/main/webapp/public/themes/basic-theme/whiteboard/doc_first.fla
new file mode 100644
index 0000000..80b49ec
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/doc_first.fla
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/doc_first.png b/src/main/webapp/public/themes/basic-theme/whiteboard/doc_first.png
new file mode 100644
index 0000000..c1e5ac9
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/doc_first.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/doc_last.fla b/src/main/webapp/public/themes/basic-theme/whiteboard/doc_last.fla
new file mode 100644
index 0000000..e44d536
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/doc_last.fla
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/doc_last.png b/src/main/webapp/public/themes/basic-theme/whiteboard/doc_last.png
new file mode 100644
index 0000000..1ef3056
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/doc_last.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/doc_next.fla b/src/main/webapp/public/themes/basic-theme/whiteboard/doc_next.fla
new file mode 100644
index 0000000..f9ea5cb
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/doc_next.fla
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/doc_next.png b/src/main/webapp/public/themes/basic-theme/whiteboard/doc_next.png
new file mode 100644
index 0000000..6cede29
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/doc_next.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/doc_pre.fla b/src/main/webapp/public/themes/basic-theme/whiteboard/doc_pre.fla
new file mode 100644
index 0000000..7050168
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/doc_pre.fla
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/doc_pre.png b/src/main/webapp/public/themes/basic-theme/whiteboard/doc_pre.png
new file mode 100644
index 0000000..f974ec6
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/doc_pre.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/drawarrowicon.png b/src/main/webapp/public/themes/basic-theme/whiteboard/drawarrowicon.png
new file mode 100644
index 0000000..0e73cb5
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/drawarrowicon.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/ellipse.fla b/src/main/webapp/public/themes/basic-theme/whiteboard/ellipse.fla
new file mode 100644
index 0000000..e437461
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/ellipse.fla
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/ellipse.png b/src/main/webapp/public/themes/basic-theme/whiteboard/ellipse.png
new file mode 100644
index 0000000..9cc51f3
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/ellipse.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/letter.fla b/src/main/webapp/public/themes/basic-theme/whiteboard/letter.fla
new file mode 100644
index 0000000..f1aba8e
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/letter.fla
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/letter.png b/src/main/webapp/public/themes/basic-theme/whiteboard/letter.png
new file mode 100644
index 0000000..eb036ef
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/letter.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/line.png b/src/main/webapp/public/themes/basic-theme/whiteboard/line.png
new file mode 100644
index 0000000..10b420a
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/line.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/lock.png b/src/main/webapp/public/themes/basic-theme/whiteboard/lock.png
new file mode 100644
index 0000000..2ebc4f6
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/lock.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/lock_open.png b/src/main/webapp/public/themes/basic-theme/whiteboard/lock_open.png
new file mode 100644
index 0000000..a471765
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/lock_open.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/menupointer.png b/src/main/webapp/public/themes/basic-theme/whiteboard/menupointer.png
new file mode 100644
index 0000000..98031f6
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/menupointer.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/page_delete.png b/src/main/webapp/public/themes/basic-theme/whiteboard/page_delete.png
new file mode 100644
index 0000000..3141467
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/page_delete.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/paintcan.png b/src/main/webapp/public/themes/basic-theme/whiteboard/paintcan.png
new file mode 100644
index 0000000..f82a886
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/paintcan.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/pencil.png b/src/main/webapp/public/themes/basic-theme/whiteboard/pencil.png
new file mode 100644
index 0000000..0bfecd5
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/pencil.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/pointerWhiteBoard_menu_rsc.fla b/src/main/webapp/public/themes/basic-theme/whiteboard/pointerWhiteBoard_menu_rsc.fla
new file mode 100644
index 0000000..ecd9bfc
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/pointerWhiteBoard_menu_rsc.fla
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/pointerWhiteBoard_menu_rsc.png b/src/main/webapp/public/themes/basic-theme/whiteboard/pointerWhiteBoard_menu_rsc.png
new file mode 100644
index 0000000..3a3ee30
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/pointerWhiteBoard_menu_rsc.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/rectangle.fla b/src/main/webapp/public/themes/basic-theme/whiteboard/rectangle.fla
new file mode 100644
index 0000000..f9038d1
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/rectangle.fla
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/rectangle.png b/src/main/webapp/public/themes/basic-theme/whiteboard/rectangle.png
new file mode 100644
index 0000000..db799f4
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/rectangle.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/text_signature.png b/src/main/webapp/public/themes/basic-theme/whiteboard/text_signature.png
new file mode 100644
index 0000000..c72fd80
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/text_signature.png
Binary files differ
diff --git a/src/main/webapp/public/themes/basic-theme/whiteboard/uline.png b/src/main/webapp/public/themes/basic-theme/whiteboard/uline.png
new file mode 100644
index 0000000..32914f0
--- /dev/null
+++ b/src/main/webapp/public/themes/basic-theme/whiteboard/uline.png
Binary files differ
diff --git a/src/main/webapp/screensharing/icon.jpg b/src/main/webapp/screensharing/icon.jpg
new file mode 100644
index 0000000..a9f29e4
--- /dev/null
+++ b/src/main/webapp/screensharing/icon.jpg
Binary files differ
diff --git a/src/main/webapp/screensharing/splashicon.jpg b/src/main/webapp/screensharing/splashicon.jpg
new file mode 100644
index 0000000..a9f29e4
--- /dev/null
+++ b/src/main/webapp/screensharing/splashicon.jpg
Binary files differ
diff --git a/src/main/webapp/streams/hibernate/default_interview_image.fla b/src/main/webapp/streams/hibernate/default_interview_image.fla
new file mode 100644
index 0000000..31398dc
--- /dev/null
+++ b/src/main/webapp/streams/hibernate/default_interview_image.fla
Binary files differ
diff --git a/src/main/webapp/streams/hibernate/default_interview_image.jpg b/src/main/webapp/streams/hibernate/default_interview_image.jpg
new file mode 100644
index 0000000..4b0f26b
--- /dev/null
+++ b/src/main/webapp/streams/hibernate/default_interview_image.jpg
Binary files differ
diff --git a/src/main/webapp/streams/hibernate/default_interview_image.png b/src/main/webapp/streams/hibernate/default_interview_image.png
new file mode 100644
index 0000000..e87d640
--- /dev/null
+++ b/src/main/webapp/streams/hibernate/default_interview_image.png
Binary files differ
diff --git a/src/main/webapp/streams/hibernate/one_second.wav b/src/main/webapp/streams/hibernate/one_second.wav
new file mode 100644
index 0000000..24d262a
--- /dev/null
+++ b/src/main/webapp/streams/hibernate/one_second.wav
Binary files differ
diff --git a/src/main/webapp/upload/library.xml b/src/main/webapp/upload/library.xml
new file mode 100644
index 0000000..794be23
--- /dev/null
+++ b/src/main/webapp/upload/library.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<presentation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+    xsi:noNamespaceSchemaLocation="library.xsd"><originalDocument lastmod="1185461814000" size="240233">Tutorat.pdf</originalDocument><swfDocument lastmod="1185461814000" size="240233">Tutorat.swf</swfDocument><thumbs><thumb lastmod="1185461813000" size="3998">_thumb_pages-000.jpg</thumb><thumb lastmod="1185461813000" size="3855">_thumb_pages-001.jpg</thumb><thumb lastmod="1185461813000" size="4306">_thumb_pages-002.jpg</thumb><thumb lastmod="1185461813000" size="3747">_thumb_pages-003.jpg</thumb><thumb lastmod="1185461813000" size="3162">_thumb_pages-004.jpg</thumb><thumb lastmod="1185461813000" size="3232">_thumb_pages-005.jpg</thumb><thumb lastmod="1185461813000" size="2981">_thumb_pages-006.jpg</thumb><thumb lastmod="1185461813000" size="3126">_thumb_pages-007.jpg</thumb><thumb lastmod="1185461813000" size="4457">_thumb_pages-008.jpg</thumb><thumb lastmod="1185461813000" size="4264">_thumb_pages-009.jpg</thumb><thumb lastmod="1185461813000" size="4263">_thumb_pages-010.jpg</thumb><thumb lastmod="1185461813000" size="3770">_thumb_pages-011.jpg</thumb><thumb lastmod="1185461813000" size="3354">_thumb_pages-012.jpg</thumb><thumb lastmod="1185461813000" size="3006">_thumb_pages-013.jpg</thumb><thumb lastmod="1185461813000" size="3972">_thumb_pages-014.jpg</thumb><thumb lastmod="1185461813000" size="4353">_thumb_pages-015.jpg</thumb><thumb lastmod="1185461813000" size="4184">_thumb_pages-016.jpg</thumb><thumb lastmod="1185461813000" size="4021">_thumb_pages-017.jpg</thumb><thumb lastmod="1185461813000" size="3225">_thumb_pages-018.jpg</thumb><thumb lastmod="1185461813000" size="3847">_thumb_pages-019.jpg</thumb><thumb lastmod="1185461813000" size="3046">_thumb_pages-020.jpg</thumb><thumb lastmod="1185461813000" size="2633">_thumb_pages-021.jpg</thumb><thumb lastmod="1185461813000" size="4001">_thumb_pages-022.jpg</thumb><thumb lastmod="1185461813000" size="4243">_thumb_pages-023.jpg</thumb></thumbs></presentation>
diff --git a/src/main/webapp/upload/library.xsd b/src/main/webapp/upload/library.xsd
new file mode 100644
index 0000000..71f2b7d
--- /dev/null
+++ b/src/main/webapp/upload/library.xsd
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

+  <xs:element name="presentation">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element ref="originalDocument"/>

+        <xs:element ref="swfDocument"/>

+        <xs:element ref="thumbs"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="originalDocument">

+    <xs:complexType>

+      <xs:simpleContent>

+        <xs:extension base="xs:NCName">

+          <xs:attribute name="lastmod" use="required" type="xs:integer"/>

+          <xs:attribute name="size" use="required" type="xs:integer"/>

+        </xs:extension>

+      </xs:simpleContent>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="swfDocument">

+    <xs:complexType>

+      <xs:simpleContent>

+        <xs:extension base="xs:NCName">

+          <xs:attribute name="lastmod" use="required" type="xs:integer"/>

+          <xs:attribute name="size" use="required" type="xs:integer"/>

+        </xs:extension>

+      </xs:simpleContent>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="thumbs">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element maxOccurs="unbounded" ref="thumb"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="thumb">

+    <xs:complexType>

+      <xs:simpleContent>

+        <xs:extension base="xs:NCName">

+          <xs:attribute name="lastmod" use="required" type="xs:integer"/>

+          <xs:attribute name="size" use="required" type="xs:integer"/>

+        </xs:extension>

+      </xs:simpleContent>

+    </xs:complexType>

+  </xs:element>

+</xs:schema>

diff --git a/src/screenshare.vm b/src/screenshare.vm
new file mode 100644
index 0000000..d8fa168
--- /dev/null
+++ b/src/screenshare.vm
@@ -0,0 +1,51 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<jnlp spec='1.0+' codebase='$codebase'> 
+	<information> 
+		<title>Screen Sharing Application</title> 
+		<vendor>$APP_NAME</vendor> 
+		<homepage>http://openmeetings.apache.org/</homepage>
+		<icon href="icon.jpg" />
+		<icon kind="splash" href="splashicon.jpg" />
+		<description>ScreenViewer Client Application</description> 
+		<description kind="short">A File to grab a screen and send it to a Server</description> 
+		<offline-allowed/> 
+	</information>
+	<security>
+	    <all-permissions/>
+	</security>	
+	<resources> 
+		<j2se version='1.5+'/>
+$LIBRARIES
+    </resources> 
+    <application-desc main-class='$startUpClass'>
+    	<argument>$red5-host</argument> 
+    	<argument>$red5-app</argument> 
+    	<argument>$port</argument> 
+    	<argument>$PUBLIC_SID</argument>   
+    	<argument>$LABELSHARER</argument> 
+    	<argument>$organization_id</argument> 
+    	<argument>$default_quality_screensharing</argument>
+    	<argument>$user_id</argument>   
+    	<argument>$allowRecording</argument>
+    	<argument>$allowPublishing</argument>
+$KEYSTORE
+    </application-desc> 
+</jnlp> 
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/down.png b/src/screenshare/java/org/apache/openmeetings/screen/down.png
new file mode 100644
index 0000000..d10b8c6
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/down.png
Binary files differ
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/next.png b/src/screenshare/java/org/apache/openmeetings/screen/next.png
new file mode 100644
index 0000000..e252606
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/next.png
Binary files differ
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/play.png b/src/screenshare/java/org/apache/openmeetings/screen/play.png
new file mode 100644
index 0000000..6d13683
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/play.png
Binary files differ
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/previous.png b/src/screenshare/java/org/apache/openmeetings/screen/previous.png
new file mode 100644
index 0000000..18f9cc1
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/previous.png
Binary files differ
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/stop.png b/src/screenshare/java/org/apache/openmeetings/screen/stop.png
new file mode 100644
index 0000000..8389bf3
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/stop.png
Binary files differ
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/up.png b/src/screenshare/java/org/apache/openmeetings/screen/up.png
new file mode 100644
index 0000000..c03ab0a
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/up.png
Binary files differ
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/webstart/AudioTone.java b/src/screenshare/java/org/apache/openmeetings/screen/webstart/AudioTone.java
new file mode 100644
index 0000000..0953b66
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/webstart/AudioTone.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.screen.webstart;
+
+import javax.sound.sampled.AudioFormat;
+import javax.sound.sampled.AudioSystem;
+import javax.sound.sampled.LineUnavailableException;
+import javax.sound.sampled.SourceDataLine;
+
+public class AudioTone {
+	public static final float SAMPLE_RATE = 44100F;
+
+	public static void play() {
+		byte[] buf = new byte[1];
+		
+		SourceDataLine sdl = null;
+		try {
+		AudioFormat af = new AudioFormat(SAMPLE_RATE, 8, 1, true, false);
+		sdl = AudioSystem.getSourceDataLine(af);
+		sdl = AudioSystem.getSourceDataLine(af);
+		sdl.open(af);
+		sdl.start();
+		for (int i = 0; i < (int)SAMPLE_RATE; ++i) {
+			double angle = i / (SAMPLE_RATE / 440) * 2.0 * Math.PI;
+			buf[0] = (byte) (Math.sin(angle) * 128);
+			sdl.write(buf, 0, 1);
+		}
+		} catch (LineUnavailableException e) {
+			//no-op
+		} finally {
+			if (sdl != null) {
+				sdl.drain();
+				sdl.stop();
+				sdl.close();
+			}
+		}
+	}
+}
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/webstart/BaseScreenEncoder.java b/src/screenshare/java/org/apache/openmeetings/screen/webstart/BaseScreenEncoder.java
new file mode 100644
index 0000000..2b9495b
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/webstart/BaseScreenEncoder.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.screen.webstart;
+
+import java.awt.Graphics2D;
+import java.awt.Rectangle;
+import java.awt.RenderingHints;
+import java.awt.image.BufferedImage;
+
+public abstract class BaseScreenEncoder implements IScreenEncoder {
+
+	public static BufferedImage resize(BufferedImage _img, Rectangle size) {
+		BufferedImage img = _img;
+		if (img.getWidth() != size.width || img.getHeight() != size.height) {
+			img = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_RGB);
+			
+			Graphics2D graphics2D = img.createGraphics();
+			graphics2D.setRenderingHint(
+				RenderingHints.KEY_INTERPOLATION,
+				RenderingHints.VALUE_INTERPOLATION_BICUBIC);
+			graphics2D.drawImage(_img, 0, 0, size.width, size.height, null);
+			graphics2D.dispose();
+		}
+		return img;
+	}
+	
+}
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/webstart/CaptureScreen.java b/src/screenshare/java/org/apache/openmeetings/screen/webstart/CaptureScreen.java
new file mode 100644
index 0000000..982d3d2
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/webstart/CaptureScreen.java
@@ -0,0 +1,199 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.screen.webstart;

+

+import static org.apache.openmeetings.screen.webstart.gui.ScreenDimensions.FPS;

+import static org.apache.openmeetings.screen.webstart.gui.ScreenDimensions.spinnerHeight;

+import static org.apache.openmeetings.screen.webstart.gui.ScreenDimensions.spinnerWidth;

+import static org.apache.openmeetings.screen.webstart.gui.ScreenDimensions.spinnerX;

+import static org.apache.openmeetings.screen.webstart.gui.ScreenDimensions.spinnerY;

+import static org.slf4j.LoggerFactory.getLogger;

+

+import java.awt.Rectangle;

+import java.awt.Robot;

+import java.io.IOException;

+import java.util.concurrent.ArrayBlockingQueue;

+import java.util.concurrent.Executors;

+import java.util.concurrent.ScheduledExecutorService;

+import java.util.concurrent.TimeUnit;

+

+import org.red5.server.net.rtmp.event.VideoData;

+import org.red5.server.stream.message.RTMPMessage;

+import org.slf4j.Logger;

+

+final class CaptureScreen extends Thread {

+	private static final Logger log = getLogger(CaptureScreen.class);

+	private static final int NANO_MULTIPLIER = 1000 * 1000;

+	private CoreScreenShare core;

+	private int timeBetweenFrames;

+	private volatile int timestamp = 0;

+	private volatile boolean active = true;

+	private IScreenEncoder se;

+	private IScreenShare client;

+	private ArrayBlockingQueue<VideoData> frames = new ArrayBlockingQueue<VideoData>(2);

+	private String host = null;

+	private String app = null;

+	private int port = -1;

+	private int streamId;

+	private boolean startPublish = false;

+	private boolean sendCursor = false;

+	private final ScheduledExecutorService sendScheduler = Executors.newScheduledThreadPool(1);

+	private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(20);

+	private final ScheduledExecutorService cursorScheduler = Executors.newScheduledThreadPool(1);

+

+	public CaptureScreen(CoreScreenShare coreScreenShare, IScreenShare client, String host, String app, int port) {

+		core = coreScreenShare;

+		this.client = client;

+		this.host = host;

+		this.app = app;

+		this.port = port;

+	}

+

+	public void release() {

+		active = false;

+		timestamp = 0;

+		try {

+			scheduler.shutdownNow();

+		} catch (Exception e) {

+			//no-op

+		}

+		try {

+			sendScheduler.shutdownNow();

+		} catch (Exception e) {

+			//no-op

+		}

+		try {

+			cursorScheduler.shutdownNow();

+		} catch (Exception e) {

+			//no-op

+		}

+	}

+

+	public void run() {

+		try {

+			while (active && !core.isReadyToRecord()) {

+				Thread.sleep(60);

+			}

+			timeBetweenFrames = 1000 / FPS;

+			se = new ScreenV1Encoder(3 * FPS); //send keyframe every 3 seconds

+			scheduler.scheduleWithFixedDelay(new Runnable() {

+				Robot robot = new Robot();

+				Rectangle screen = new Rectangle(spinnerX, spinnerY, spinnerWidth, spinnerHeight);

+				int[][] image = null;

+				

+				public void run() {

+					long start = System.currentTimeMillis();

+					image = ScreenV1Encoder.getImage(screen, robot);

+					if (log.isTraceEnabled()) {

+						log.trace(String.format("Image was captured in %s ms", System.currentTimeMillis() - start));

+					}

+					start = System.currentTimeMillis();

+					try {

+						VideoData data = se.encode(image);

+						if (log.isTraceEnabled()) {

+							log.trace(String.format("Image was encoded in %s ms", System.currentTimeMillis() - start));

+						}

+						frames.offer(data);

+						se.createUnalteredFrame();

+					} catch (IOException e) {

+						log.error("Error while encoding: ", e);

+					}

+				}

+			}, 0, timeBetweenFrames * NANO_MULTIPLIER, TimeUnit.NANOSECONDS);

+			sendScheduler.scheduleWithFixedDelay(new Runnable() {

+				public void run() {

+					VideoData f = frames.poll();

+					f = f == null ? se.getUnalteredFrame() : f;

+					if (f != null) {

+						try {

+							timestamp += timeBetweenFrames;

+							pushVideo(f, timestamp);

+							if (log.isTraceEnabled()) {

+								log.trace("Sending video, timestamp: " + timestamp);

+							}

+						} catch (IOException e) {

+							log.error("Error while sending: ", e);

+						}

+					}

+				}

+			}, 0, timeBetweenFrames * NANO_MULTIPLIER, TimeUnit.NANOSECONDS);

+			if (sendCursor) {

+				cursorScheduler.scheduleWithFixedDelay(new Runnable() {

+					public void run() {

+						core.sendCursorStatus();

+					}

+				}, 0, timeBetweenFrames * NANO_MULTIPLIER, TimeUnit.NANOSECONDS);

+			}

+		} catch (Exception e) {

+			log.error("Error while running: ", e);

+		}

+	}

+	

+	/*

+	private void pushAudio(byte[] audio, long ts) {

+		if (startPublish) {

+			buffer.put((byte) 6);

+			buffer.put(audio);

+			buffer.flip();

+	

+			// I can stream audio

+			//packets successfully using linear PCM at 11025Hz. For those packets I

+			//push one byte (0x06) which specifies the format of audio data in a

+			//ByteBuffer, and then real audio data:

+			RTMPMessage rtmpMsg = RTMPMessage.build(new AudioData(buffer), (int) ts);

+			client.publishStreamData(streamId, rtmpMsg);

+		}

+	}

+	*/

+	

+	private void pushVideo(VideoData data, int ts) throws IOException {

+		if (startPublish) {

+			RTMPMessage rtmpMsg = RTMPMessage.build(data, ts);

+			client.publishStreamData(streamId, rtmpMsg);

+		}

+	}

+

+	public String getHost() {

+		return host;

+	}

+

+	public String getApp() {

+		return app;

+	}

+

+	public int getPort() {

+		return port;

+	}

+

+	public int getStreamId() {

+		return streamId;

+	}

+

+	public void setStreamId(int streamId) {

+		this.streamId = streamId;

+	}

+

+	public void setStartPublish(boolean startPublish) {

+		this.startPublish = startPublish;

+	}

+

+	public void setSendCursor(boolean sendCursor) {

+		this.sendCursor = sendCursor;

+	}

+}

diff --git a/src/screenshare/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java b/src/screenshare/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java
new file mode 100644
index 0000000..d350848
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java
@@ -0,0 +1,690 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.screen.webstart;
+
+import static java.awt.Toolkit.getDefaultToolkit;
+import static java.awt.datatransfer.DataFlavor.stringFlavor;
+import static java.lang.Boolean.TRUE;
+import static org.apache.openmeetings.screen.webstart.gui.ScreenDimensions.resizeX;
+import static org.apache.openmeetings.screen.webstart.gui.ScreenDimensions.resizeY;
+import static org.apache.openmeetings.screen.webstart.gui.ScreenDimensions.spinnerHeight;
+import static org.apache.openmeetings.screen.webstart.gui.ScreenDimensions.spinnerWidth;
+import static org.apache.openmeetings.screen.webstart.gui.ScreenDimensions.spinnerX;
+import static org.apache.openmeetings.screen.webstart.gui.ScreenDimensions.spinnerY;
+import static org.slf4j.LoggerFactory.getLogger;
+
+import java.awt.MouseInfo;
+import java.awt.Point;
+import java.awt.Robot;
+import java.awt.datatransfer.Clipboard;
+import java.awt.datatransfer.StringSelection;
+import java.awt.datatransfer.Transferable;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.openmeetings.screen.webstart.gui.ScreenSharerFrame;
+import org.red5.client.net.rtmp.INetStreamEventHandler;
+import org.red5.io.utils.ObjectMap;
+import org.red5.server.api.event.IEvent;
+import org.red5.server.api.service.IPendingServiceCall;
+import org.red5.server.api.service.IPendingServiceCallback;
+import org.red5.server.net.rtmp.Channel;
+import org.red5.server.net.rtmp.RTMPConnection;
+import org.red5.server.net.rtmp.codec.RTMP;
+import org.red5.server.net.rtmp.event.Notify;
+import org.red5.server.net.rtmp.message.Header;
+import org.red5.server.net.rtmp.status.StatusCodes;
+import org.slf4j.Logger;
+
+public class CoreScreenShare implements IPendingServiceCallback, INetStreamEventHandler {
+	private static final Logger log = getLogger(CoreScreenShare.class);
+
+	private IScreenShare instance = null;
+	private String host;
+	private String app;
+	private int port;
+	
+	public String publishName;
+	private CaptureScreen capture = null;
+	private RTMPClientPublish publishClient = null;
+
+	private ScreenSharerFrame frame;
+
+	public int defaultQuality = 1;
+
+	public Long organization_id = 0L;
+	public Long user_id = null;
+	private boolean allowRecording = true;
+	private boolean allowPublishing = true;
+
+	private boolean startStreaming = false;
+	private boolean startRecording = false;
+	private boolean startPublishing = false;
+	public float Ampl_factor = 1f;
+	public boolean isConnected = false;
+	private boolean readyToRecord = false;
+	private boolean audioNotify = false;
+
+	public Map<Integer, Boolean> currentPressedKeys = new HashMap<Integer, Boolean>();
+
+	private CaptureScreen getCapture() {
+		if (capture == null) {
+			capture = new CaptureScreen(this, instance, host, app, port);
+		}
+		return capture;
+	}
+	// ------------------------------------------------------------------------
+	//
+	// Main
+	//
+	// ------------------------------------------------------------------------
+
+	public CoreScreenShare(IScreenShare instance, String[] args) {
+		this.instance = instance;
+		
+		try {
+			for (String arg : args) {
+				log.debug("arg: " + arg);
+			}
+			String[] textArray = null;
+			if (args.length > 8) {
+				host = args[0];
+				app = args[1];
+				port = Integer.parseInt(args[2]);
+				publishName = args[3];
+
+				String labelTexts = args[4];
+
+				organization_id = Long.parseLong(args[5]);
+
+				defaultQuality = Integer.parseInt(args[6]);
+				user_id = Long.parseLong(args[7]);
+				allowRecording = bool(args[8]);
+				allowPublishing = bool(args[9]);
+
+				if (labelTexts.length() > 0) {
+					textArray = labelTexts.split(";");
+
+					log.debug("labelTexts :: " + labelTexts);
+
+					log.debug("textArray Length " + textArray.length);
+
+					for (int i = 0; i < textArray.length; i++) {
+						log.debug(i + " :: " + textArray[i]);
+					}
+				}
+				log.debug("host: " + host + ", app: "
+						+ app + ", port: " + port + ", publish: "
+						+ publishName);
+			} else {
+				System.exit(0);
+			}
+
+			createWindow(textArray);
+		} catch (Exception err) {
+			log.error("", err);
+		}
+	}
+
+	// ------------------------------------------------------------------------
+	//
+	// GUI
+	//
+	// ------------------------------------------------------------------------
+	public void createWindow(String[] textArray) {
+		try {
+			frame = new ScreenSharerFrame(this, textArray);
+			frame.setVisible(true);
+			frame.setRecordingTabEnabled(allowRecording);
+			frame.setPublishingTabEnabled(allowPublishing);
+			log.debug("initialized");
+		} catch (Exception err) {
+			log.error("createWindow Exception: ", err);
+		}
+	}
+
+	synchronized public void sendCursorStatus() {
+		try {
+			Point mouseP = MouseInfo.getPointerInfo().getLocation();
+
+			float scaleFactor = (1.0f * resizeX) / spinnerWidth;
+
+			// Real size: Real mouse position = Resize : X
+			int x = (int)(Ampl_factor * (mouseP.getX() - spinnerX) * scaleFactor);
+			int y = (int)(Ampl_factor * (mouseP.getY() - spinnerY) * scaleFactor);
+
+			Map<String, Object> cursorPosition = new HashMap<String, Object>();
+			cursorPosition.put("publicSID", publishName);
+			cursorPosition.put("cursor_x", x);
+			cursorPosition.put("cursor_y", y);
+
+			if (instance.getConnection() != null) {
+				instance.invoke("setNewCursorPosition", new Object[] { cursorPosition }, this);
+			}
+		} catch (NullPointerException npe) {
+			//noop
+		} catch (Exception err) {
+			frame.setStatus("Exception: " + err);
+			log.error("[sendCursorStatus]", err);
+		}
+	}
+
+	synchronized public void setConnectionAsSharingClient() {
+		try {
+			log.debug("########## setConnectionAsSharingClient");
+
+			Map<Object, Object> map = new HashMap<Object, Object>();
+			map.put("screenX", spinnerX);
+			map.put("screenY", spinnerY);
+
+			int scaledWidth = (int)(Ampl_factor * resizeX);
+			int scaledHeight = (int)(Ampl_factor * resizeY);
+
+			map.put("screenWidth", scaledWidth);
+			map.put("screenHeight", scaledHeight);
+
+			map.put("publishName", publishName);
+			map.put("startRecording", startRecording);
+			map.put("startStreaming", startStreaming);
+			map.put("startPublishing", startPublishing);
+			map.put("publishingHost", frame.getPublishHost());
+			map.put("publishingApp", frame.getPublishApp());
+			map.put("publishingId", frame.getPublishId());
+
+			map.put("organization_id", organization_id);
+			map.put("user_id", user_id);
+
+			instance.invoke("setConnectionAsSharingClient", new Object[] { map }, this);
+		} catch (Exception err) {
+			frame.setStatus("Error: " + err.getLocalizedMessage());
+			log.error("[setConnectionAsSharingClient]", err);
+		}
+	}
+
+	public void streamingStart() {
+		startStreaming = true;
+		captureScreenStart();
+	}
+	
+	public void recordingStart() {
+		startRecording= true;
+		captureScreenStart();
+	}
+	
+	public void publishingStart() {
+		startPublishing = true;
+		captureScreenStart();
+	}
+	
+	private void captureScreenStart() {
+		try {
+			log.debug("captureScreenStart");
+			
+			if (!isConnected) {
+				instance.connect(host, port, app, this);
+			} 
+			if (isConnected) {
+				setConnectionAsSharingClient();
+			}
+		} catch (Exception err) {
+			log.error("captureScreenStart Exception: ", err);
+			frame.setStatus("Exception: " + err);
+		}
+	}
+
+	public void streamingStop() {
+		startStreaming = false;
+		captureScreenStop("stopStreaming");
+	}
+	
+	public void recordingStop() {
+		startRecording = false;
+		captureScreenStop("stopRecording");
+	}
+	
+	public void publishingStop() {
+		startPublishing = false;
+		captureScreenStop("stopPublishing");
+	}
+	
+	private void captureScreenStop(String action) {
+		try {
+			log.debug("INVOKE screenSharerAction" );
+
+			Map<String, Object> map = new HashMap<String, Object>();
+			map.put(action, true);
+
+			instance.invoke("screenSharerAction", new Object[] { map }, this);
+		} catch (Exception err) {
+			log.error("captureScreenStop Exception: ", err);
+			frame.setStatus("Exception: " + err);
+		}
+	}
+
+	public void stopStreaming() {
+		frame.setSharingStatus(false, !startPublishing && !startRecording && !startStreaming);
+		startStreaming = false;
+	}
+	
+	public void stopRecording() {
+		frame.setRecordingStatus(false, !startPublishing && !startRecording && !startStreaming);
+		startRecording = false;
+	}
+	
+	public void stopPublishing() {
+		frame.setPublishingStatus(false, !startPublishing && !startRecording && !startStreaming);
+		startPublishing = false;
+		if (publishClient != null) {
+			publishClient.disconnect();
+			publishClient = null;
+		}
+	}
+	
+	synchronized public boolean isReadyToRecord() {
+		return readyToRecord;
+	}
+	
+	synchronized private void setReadyToRecord(boolean readyToRecord) {
+		this.readyToRecord = readyToRecord;
+	}
+	
+	protected void onInvoke(RTMPConnection conn, Channel channel, Header source, org.red5.server.net.rtmp.event.Notify invoke, RTMP rtmp) {
+		if (invoke.getType() == IEvent.Type.STREAM_DATA) {
+			return;
+		}
+		
+		String method = invoke.getCall().getServiceMethodName();
+		if ("stopStream".equals(method)) {
+			stopStream();
+		} else if ("sendRemoteCursorEvent".equals(method)) {
+			sendRemoteCursorEvent(invoke.getCall().getArguments()[0]);
+		} else if ("screenSharerAction".equals(method)) {
+			Object[] args = invoke.getCall().getArguments();
+			if (args != null && args.length > 0) {
+				@SuppressWarnings("unchecked")
+				Map<String, Object> params = (Map<String, Object>)args[0];
+				if (bool(params.get("stopPublishing"))) {
+					stopPublishing();
+				}
+				if (params.containsKey("error")) {
+					frame.setStatus("" + params.get("error"));
+				}
+			}
+		}
+	}
+
+	public void stopStream() {
+		try {
+			log.debug("ScreenShare stopStream");
+
+			stopStreaming();
+			stopRecording();
+			stopPublishing();
+			isConnected = false;
+
+			instance.disconnect();
+			setReadyToRecord(false);
+			getCapture().setStartPublish(false);
+			getCapture().release();
+			capture = null;
+		} catch (Exception e) {
+			log.error("ScreenShare stopStream exception " + e);
+		}
+
+	}
+
+	public void onStreamEvent(Notify notify) {
+		log.debug( "onStreamEvent " + notify );
+
+		@SuppressWarnings("rawtypes")
+		ObjectMap map = (ObjectMap) notify.getCall().getArguments()[0];
+		String code = (String) map.get("code");
+
+		if (StatusCodes.NS_PUBLISH_START.equals(code)) {
+			log.debug( "onStreamEvent Publish start" );
+			getCapture().setStartPublish(true);
+			setReadyToRecord(true);
+		}
+	}
+
+	private boolean bool(Object b) {
+		return TRUE.equals(Boolean.valueOf("" + b));
+	}
+	
+	private int getInt(Map<String, Object> returnMap, String key) {
+		return Integer.valueOf(returnMap.get(key).toString()).intValue();
+	}
+	
+	private float getFloat(Map<String, Object> returnMap, String key) {
+		return Float.valueOf(returnMap.get(key).toString()).floatValue();
+	}
+	
+	private Point getCoordinates(Map<String, Object> returnMap) {
+		float scaleFactorX = spinnerWidth / (Ampl_factor * resizeX);
+		float scaleFactorY = spinnerHeight / (Ampl_factor * resizeY);
+
+		int x = Math.round(scaleFactorX * getFloat(returnMap, "x") + spinnerX);
+		int y = Math.round(scaleFactorY * getFloat(returnMap, "y") + spinnerY);
+		return new Point(x, y);
+	}
+	
+	public void sendRemoteCursorEvent(Object obj) {
+		try {
+			log.trace("#### sendRemoteCursorEvent ");
+			log.trace("Result Map Type "+obj.getClass().getName());
+
+			@SuppressWarnings("unchecked")
+			Map<String, Object> returnMap = (Map<String, Object>)obj;
+
+			String action = "" + returnMap.get("action");
+
+			if (action.equals("onmouseup")) {
+				Robot robot = new Robot();
+				
+				Point p = getCoordinates(returnMap);
+				robot.mouseMove(p.x, p.y);
+				robot.mouseRelease(InputEvent.BUTTON1_MASK);
+			} else if (action.equals("onmousedown")) {
+				Robot robot = new Robot();
+
+				Point p = getCoordinates(returnMap);
+				robot.mouseMove(p.x, p.y);
+				robot.mousePress(InputEvent.BUTTON1_MASK);
+			} else if (action.equals("mousePos")) {
+				Robot robot = new Robot();
+
+				Point p = getCoordinates(returnMap);
+				robot.mouseMove(p.x, p.y);
+			} else if (action.equals("onkeydown")) {
+				Robot robot = new Robot();
+
+				int key = getInt(returnMap, "k");
+
+				// logger.debug("key onkeydown -1 "+key);
+				boolean doAction = true;
+
+				if (key == 221) {
+					key = 61;
+				} else if (key == -1) {
+					String charValue = returnMap.get("c").toString();
+
+					// key = KeyEvent.VK_ADD;
+					doAction = false;
+
+					for (Integer storedKey : currentPressedKeys.keySet()) {
+						robot.keyRelease(storedKey);
+					}
+
+					currentPressedKeys = new HashMap<Integer, Boolean>();
+
+					pressSpecialSign(charValue, robot);
+				} else if (key == 188) {
+					key = 44;
+				} else if (key == 189) {
+					key = 109;
+				} else if (key == 190) {
+					key = 46;
+				} else if (key == 191) {
+					key = 47;
+				} else if (key == 13) {
+					key = KeyEvent.VK_ENTER;
+				}
+
+				if (doAction) {
+					currentPressedKeys.put(key, true);
+
+					robot.keyPress(key);
+				}
+			} else if (action.equals("onkeyup")) {
+				Robot robot = new Robot();
+
+				int key = getInt(returnMap, "k");
+
+				boolean doAction = true;
+
+				if (key == 221) {
+					key = 61;
+				} else if (key == -1) {
+					doAction = false;
+				} else if (key == 188) {
+					key = 44;
+				} else if (key == 189) {
+					key = 109;
+				} else if (key == 190) {
+					key = 46;
+				} else if (key == 191) {
+					key = 47;
+				} else if (key == 13) {
+					key = KeyEvent.VK_ENTER;
+				}
+
+				// logger.debug("key onkeyup 2- "+key);
+
+				if (doAction) {
+					if (currentPressedKeys.containsKey(key)) {
+						currentPressedKeys.remove(key);
+
+						robot.keyRelease(key);
+					}
+				}
+			} else if (action.equals("paste")) {
+				Robot robot = new Robot();
+
+				String paste = returnMap.get("paste").toString();
+
+				pressSpecialSign(paste, robot);
+			} else if (action.equals("copy")) {
+				Robot robot = new Robot();
+
+				String paste = this.getHighlightedText(robot);
+
+				Map<Integer, String> map = new HashMap<Integer, String>();
+				map.put(0, "copiedText");
+				map.put(1, paste);
+
+				String clientId = returnMap.get("clientId").toString();
+
+				instance.invoke("sendMessageWithClientById", new Object[]{map, clientId}, this);
+			} else if (action.equals("show")) {
+				String paste = getClipboardText();
+
+				Map<Integer, String> map = new HashMap<Integer, String>();
+				map.put(0, "copiedText");
+				map.put(1, paste);
+
+				String clientId = returnMap.get("clientId").toString();
+
+				// public synchronized int sendMessageWithClientById(Object
+				// newMessage, String clientId)
+
+				instance.invoke("sendMessageWithClientById", new Object[]{map, clientId}, this);
+			}
+		} catch (Exception err) {
+			log.error("[sendRemoteCursorEvent]", err);
+		}
+	}
+
+	public String getClipboardText() {
+		try {
+			// get the system clipboard
+			Clipboard systemClipboard = getDefaultToolkit().getSystemClipboard();
+
+			// get the contents on the clipboard in a
+			// transferable object
+			Transferable clipboardContents = systemClipboard.getContents(null);
+
+			// check if clipboard is empty
+			if (clipboardContents == null) {
+				// Clipboard is empty!!!
+				return ("");
+
+				// see if DataFlavor of
+				// DataFlavor.stringFlavor is supported
+			} else if (clipboardContents.isDataFlavorSupported(stringFlavor)) {
+				// return text content
+				String returnText = (String) clipboardContents.getTransferData(stringFlavor);
+
+				return returnText;
+			}
+
+			return "";
+		} catch (Exception e) {
+			log.error("Unexpected exception while getting clipboard text", e);
+		}
+		return "";
+	}
+
+	private void pressSequence(Robot robot, long delay, int... codes) throws InterruptedException {
+		for (int code : codes) {
+			robot.keyPress(code);
+			Thread.sleep(delay);
+		}
+	}
+	
+	private String getHighlightedText(Robot instance) {
+		try {
+			if (System.getProperty("os.name").toUpperCase().indexOf("WINDOWS") >= 0) {
+				// pressing STRG+C == copy
+				pressSequence(instance, 200, KeyEvent.VK_CONTROL, KeyEvent.VK_C, KeyEvent.VK_C, KeyEvent.VK_CONTROL);
+			} else {
+				// Macintosh simulate Copy
+				pressSequence(instance, 200, 157, 67, 67, 157);
+			}
+			return getClipboardText();
+		} catch (Exception e) {
+			log.error("Unexpected exception while getting highlighted text", e);
+		}
+		return "";
+	}
+
+	private void pressSpecialSign(String charValue, Robot instance) {
+		Clipboard clippy = getDefaultToolkit().getSystemClipboard();
+		try {
+			Transferable transferableText = new StringSelection(charValue);
+			clippy.setContents(transferableText, null);
+
+			if (System.getProperty("os.name").toUpperCase().indexOf("WINDOWS") >= 0) {
+				// pressing STRG+V == insert-mode
+				pressSequence(instance, 100, KeyEvent.VK_CONTROL, KeyEvent.VK_V, KeyEvent.VK_V, KeyEvent.VK_CONTROL);
+			} else {
+				// Macintosh simulate Insert
+				pressSequence(instance, 100, 157, 86, 86, 157);
+			}
+		} catch (Exception e) {
+			log.error("Unexpected exception while pressSpecialSign", e);
+		}
+	}
+
+	public void resultReceived(IPendingServiceCall call) {
+		try {
+
+			log.trace( "service call result: " + call );
+
+			String method = call == null ? null : call.getServiceMethodName();
+			log.trace("call ### get Method Name " + method);
+			if ("connect".equals(method)) {
+				isConnected = true;
+				setConnectionAsSharingClient();
+			} else if ("setConnectionAsSharingClient".equals(method)) {
+
+				Object o = call.getResult();
+
+				@SuppressWarnings("unchecked")
+				Map<String, Object> returnMap = (Map<String, Object>) o;
+
+				if (o == null || !bool(returnMap.get("alreadyPublished"))) {
+					log.trace("Stream not yet started - do it ");
+
+					instance.createStream(this);
+				} else {
+					log.trace("The Stream was already started ");
+				}
+				if (returnMap != null) {
+					Object modus = returnMap.get("modus");
+					if ("startStreaming".equals(modus)) {
+						frame.setSharingStatus(true, false);
+					}
+					if ("startRecording".equals(modus)) {
+						frame.setRecordingStatus(true, false);
+					}
+					if ("startPublishing".equals(modus)) {
+						frame.setPublishingStatus(true, false);
+						publishClient = new RTMPClientPublish(
+							this
+							, frame.getPublishHost()
+							, frame.getPublishApp()
+							, frame.getPublishId());
+						publishClient.connect();
+					}
+				} else {
+					throw new Exception("Could not aquire modus for event setConnectionAsSharingClient");
+				}
+
+			} else if ("createStream".equals(method)) {
+				if (startRecording || startStreaming) {
+					if (call.getResult() != null) {
+						getCapture().setStreamId((Integer)call.getResult());
+					}
+					log.debug("createPublishStream result stream id: {}; name: {}", getCapture().getStreamId(), publishName);
+					instance.publish(getCapture().getStreamId(), publishName, "live", this);
+	
+					log.debug("setup capture thread spinnerWidth = {}; spinnerHeight = {};", spinnerWidth, spinnerHeight);
+	
+					getCapture().setSendCursor(true);
+					getCapture().start();
+				}
+			} else if ("screenSharerAction".equals(method)) {
+				Object o = call.getResult();
+
+				log.trace("Result Map Type " + o.getClass().getName());
+
+				@SuppressWarnings("unchecked")
+				Map<String, Object> returnMap = (Map<String, Object>)o;
+				Object result = returnMap.get("result");
+				if ("stopAll".equals(result)) {
+					log.trace("Stopping to stream, there is neither a Desktop Sharing nor Recording anymore");
+					stopStream();
+				} else if ("stopSharingOnly".equals(result)) {
+					stopStreaming();
+				} else if ("stopRecordingOnly".equals(result)) {
+					stopRecording();
+				} else if ("stopPublishingOnly".equals(result)) {
+					stopPublishing();
+				}
+			} else if ("setNewCursorPosition".equals(method)) {
+				// Do not do anything
+			} else {
+				log.debug("Unknown method " + method);
+			}
+
+		} catch (Exception err) {
+			log.error("[resultReceived]", err);
+		}
+	}
+
+	public boolean isAudioNotify() {
+		return audioNotify;
+	}
+
+	public void setAudioNotify(boolean audioNotify) {
+		this.audioNotify = audioNotify;
+	}
+}
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/webstart/IScreenEncoder.java b/src/screenshare/java/org/apache/openmeetings/screen/webstart/IScreenEncoder.java
new file mode 100644
index 0000000..69acef3
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/webstart/IScreenEncoder.java
@@ -0,0 +1,33 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.screen.webstart;

+

+import java.io.IOException;

+

+import org.red5.server.net.rtmp.event.VideoData;

+

+public interface IScreenEncoder {

+	void createUnalteredFrame() throws IOException;

+	

+	VideoData getUnalteredFrame();

+

+	VideoData encode(int[][] img) throws IOException;

+	

+	void reset();

+}

diff --git a/src/screenshare/java/org/apache/openmeetings/screen/webstart/IScreenShare.java b/src/screenshare/java/org/apache/openmeetings/screen/webstart/IScreenShare.java
new file mode 100644
index 0000000..eb56805
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/webstart/IScreenShare.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.screen.webstart;
+
+import org.red5.client.net.rtmp.INetStreamEventHandler;
+import org.red5.server.api.service.IPendingServiceCallback;
+import org.red5.server.messaging.IMessage;
+import org.red5.server.net.rtmp.RTMPConnection;
+
+public interface IScreenShare {
+	RTMPConnection getConnection();
+	void invoke(String method, Object[] params, IPendingServiceCallback callback);
+	void connect(String server, int port, String application, IPendingServiceCallback connectCallback);
+	void disconnect();
+	void createStream(IPendingServiceCallback callback);
+	void publish(int streamId, String name, String mode, INetStreamEventHandler handler);
+	void publishStreamData(int streamId, IMessage message);
+}
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPClientPublish.java b/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPClientPublish.java
new file mode 100644
index 0000000..0344f0a
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPClientPublish.java
@@ -0,0 +1,97 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.screen.webstart;

+

+import org.red5.client.net.rtmp.ClientExceptionHandler;

+import org.red5.client.net.rtmp.INetStreamEventHandler;

+import org.red5.client.net.rtmp.RTMPClient;

+import org.red5.server.api.service.IPendingServiceCall;

+import org.red5.server.api.service.IPendingServiceCallback;

+import org.red5.server.net.rtmp.Channel;

+import org.red5.server.net.rtmp.RTMPConnection;

+import org.red5.server.net.rtmp.codec.RTMP;

+import org.red5.server.net.rtmp.event.Notify;

+import org.red5.server.net.rtmp.message.Header;

+import org.slf4j.Logger;

+import org.slf4j.LoggerFactory;

+

+class RTMPClientPublish extends RTMPClient implements IPendingServiceCallback, INetStreamEventHandler, ClientExceptionHandler, IScreenShare {

+	private static final Logger logger = LoggerFactory.getLogger(RTMPClientPublish.class);

+	private final CaptureScreen publishScreen;

+	private String id;

+	private CoreScreenShare core;

+	

+	RTMPClientPublish(CoreScreenShare core, String host, String app, String id) {

+		this.id = id;

+		this.core = core;

+		publishScreen = new CaptureScreen(core, this, host, app, 1935);

+	}

+

+	public void connect() {

+		super.connect(publishScreen.getHost(), 1935, publishScreen.getApp(), this);

+	}

+	

+	@Override

+	public void handleException(Throwable throwable) {

+		logger.error("ERROR", throwable);

+	}

+

+	@Override

+	public void connectionOpened(RTMPConnection conn, RTMP rtmp) {

+		super.connectionOpened(conn, rtmp);

+		createStream(this);

+	}

+	

+	@Override

+	public void connectionClosed(RTMPConnection conn, RTMP rtmp) {

+		super.connectionClosed(conn, rtmp);

+		connectionClosed();

+	}

+	

+	private void connectionClosed() {

+		publishScreen.setStartPublish(false);

+		publishScreen.release();

+		core.publishingStop();

+	}

+	

+	@Override

+	protected void onInvoke(RTMPConnection conn, Channel channel, Header source, Notify invoke, RTMP rtmp) {

+		super.onInvoke(conn, channel, source, invoke, rtmp);

+	}

+	

+	public void resultReceived(IPendingServiceCall call) {

+		String method = call == null ? null : call.getServiceMethodName();

+		logger.trace("call ### get Method Name " + method);

+		if ("connect".equals(method)) {

+			//setConnectionAsSharingClient(); //FIXME

+		} else if ("createStream".equals(method)) {

+			if (call.getResult() != null) {

+				publishScreen.setStreamId((Integer)call.getResult());

+				publish(publishScreen.getStreamId(), id, "live", this);

+				publishScreen.setStartPublish(true);

+				publishScreen.start();

+			} else {

+				connectionClosed();

+			}

+		}

+	}

+

+	public void onStreamEvent(Notify notify) {

+	}

+}
\ No newline at end of file
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java b/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java
new file mode 100644
index 0000000..f3a4d71
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPSScreenShare.java
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.screen.webstart;
+
+import org.apache.commons.codec.DecoderException;
+import org.apache.commons.codec.binary.Hex;
+import org.red5.client.net.rtmp.ClientExceptionHandler;
+import org.red5.client.net.rtmps.RTMPSClient;
+import org.red5.server.api.service.IPendingServiceCallback;
+import org.red5.server.net.rtmp.Channel;
+import org.red5.server.net.rtmp.RTMPConnection;
+import org.red5.server.net.rtmp.codec.RTMP;
+import org.red5.server.net.rtmp.message.Header;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class RTMPSScreenShare extends RTMPSClient implements ClientExceptionHandler, IScreenShare {
+	private static final Logger logger = LoggerFactory.getLogger(RTMPSScreenShare.class);
+
+	private CoreScreenShare core = null;
+
+	private RTMPSScreenShare(String[] args) {
+		core = new CoreScreenShare(this, args);
+	};
+
+	public static void main(String[] args) throws DecoderException {
+		RTMPSScreenShare client = new RTMPSScreenShare(args);
+		if (args.length < 11) {
+			System.exit(0);
+		}
+		client.setKeystoreBytes(Hex.decodeHex(args[10].toCharArray()));
+		client.setKeyStorePassword(args[11]);
+	}
+	
+	@Override
+	public void connect(String server, int port, String application,
+			IPendingServiceCallback connectCallback) {
+		try { //FIXME need to be removed
+			super.connect(server, port, application, connectCallback);
+		} catch (NullPointerException npe) {
+			//no op, since RTMPSClient throws NPE
+		}
+	}
+	
+	// ------------------------------------------------------------------------
+	//
+	// Override
+	//
+	// ------------------------------------------------------------------------
+	@Override
+	public void connectionOpened(RTMPConnection conn, RTMP rtmp) {
+		logger.debug("connection opened");
+		super.connectionOpened(conn, rtmp);
+		this.conn = conn;
+	}
+
+	@Override
+	public void connectionClosed(RTMPConnection conn, RTMP rtmp) {
+		logger.debug("connection closed");
+		super.connectionClosed(conn, rtmp);
+		if (core.isAudioNotify()) {
+			AudioTone.play();
+		}
+		core.stopStream();
+	}
+
+	@Override
+	protected void onInvoke(RTMPConnection conn, Channel channel, Header source, org.red5.server.net.rtmp.event.Notify invoke, RTMP rtmp) {
+		super.onInvoke(conn, channel, source, invoke, rtmp);
+		
+		core.onInvoke(conn, channel, source, invoke, rtmp);
+	}
+
+	@Override
+	public void handleException(Throwable throwable) {
+		logger.error("{}", new Object[] { throwable.getCause() });
+		System.out.println(throwable.getCause());
+	}
+}
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java b/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java
new file mode 100644
index 0000000..291ce6c
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPScreenShare.java
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.screen.webstart;
+
+import org.red5.client.net.rtmp.ClientExceptionHandler;
+import org.red5.client.net.rtmp.RTMPClient;
+import org.red5.server.net.rtmp.Channel;
+import org.red5.server.net.rtmp.RTMPConnection;
+import org.red5.server.net.rtmp.codec.RTMP;
+import org.red5.server.net.rtmp.message.Header;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class RTMPScreenShare extends RTMPClient implements ClientExceptionHandler, IScreenShare {
+	private static final Logger logger = LoggerFactory.getLogger(RTMPScreenShare.class);
+
+	private CoreScreenShare core = null;
+
+	private RTMPScreenShare(String[] args) {
+		core = new CoreScreenShare(this, args);
+	};
+
+	public static void main(String[] args) {
+		new RTMPScreenShare(args);
+	}
+	
+	// ------------------------------------------------------------------------
+	//
+	// Override
+	//
+	// ------------------------------------------------------------------------
+	@Override
+	public void connectionOpened(RTMPConnection conn, RTMP rtmp) {
+		logger.debug("connection opened");
+		super.connectionOpened(conn, rtmp);
+		this.conn = conn;
+	}
+
+	@Override
+	public void connectionClosed(RTMPConnection conn, RTMP rtmp) {
+		logger.debug("connection closed");
+		super.connectionClosed(conn, rtmp);
+		if (core.isAudioNotify()) {
+			AudioTone.play();
+		}
+		core.stopStream();
+	}
+
+	@Override
+	protected void onInvoke(RTMPConnection conn, Channel channel, Header source, org.red5.server.net.rtmp.event.Notify invoke, RTMP rtmp) {
+		super.onInvoke(conn, channel, source, invoke, rtmp);
+
+		core.onInvoke(conn, channel, source, invoke, rtmp);
+	}
+
+	@Override
+	public void handleException(Throwable throwable) {
+		logger.error("{}", new Object[] { throwable.getCause() });
+		System.out.println(throwable.getCause());
+	}
+}
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java b/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java
new file mode 100644
index 0000000..12ddb2c
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/webstart/RTMPTScreenShare.java
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.screen.webstart;
+
+import org.red5.client.net.rtmp.ClientExceptionHandler;
+import org.red5.client.net.rtmpt.RTMPTClient;
+import org.red5.server.net.rtmp.Channel;
+import org.red5.server.net.rtmp.RTMPConnection;
+import org.red5.server.net.rtmp.codec.RTMP;
+import org.red5.server.net.rtmp.message.Header;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class RTMPTScreenShare extends RTMPTClient implements ClientExceptionHandler, IScreenShare {
+	private static final Logger logger = LoggerFactory.getLogger(RTMPTScreenShare.class);
+
+	private CoreScreenShare core = null;
+
+	private RTMPTScreenShare(String[] args) {
+		core = new CoreScreenShare(this, args);
+	};
+
+	public static void main(String[] args) {
+		new RTMPTScreenShare(args);
+	}
+	
+	// ------------------------------------------------------------------------
+	//
+	// Override
+	//
+	// ------------------------------------------------------------------------
+	@Override
+	public void connectionOpened(RTMPConnection conn, RTMP rtmp) {
+		logger.debug("connection opened");
+		super.connectionOpened(conn, rtmp);
+		this.conn = conn;
+	}
+
+	@Override
+	public void connectionClosed(RTMPConnection conn, RTMP rtmp) {
+		logger.debug("connection closed");
+		super.connectionClosed(conn, rtmp);
+		if (core.isAudioNotify()) {
+			AudioTone.play();
+		}
+		core.stopStream();
+	}
+
+	@Override
+	protected void onInvoke(RTMPConnection conn, Channel channel, Header source, org.red5.server.net.rtmp.event.Notify invoke, RTMP rtmp) {
+		super.onInvoke(conn, channel, source, invoke, rtmp);
+
+		core.onInvoke(conn, channel, source, invoke, rtmp);
+	}
+
+	@Override
+	public void handleException(Throwable throwable) {
+		logger.error("{}", new Object[] { throwable.getCause() });
+		System.out.println(throwable.getCause());
+	}
+}
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/webstart/ScreenV1Encoder.java b/src/screenshare/java/org/apache/openmeetings/screen/webstart/ScreenV1Encoder.java
new file mode 100644
index 0000000..e55eee7
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/webstart/ScreenV1Encoder.java
@@ -0,0 +1,198 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.screen.webstart;

+

+import static org.apache.openmeetings.screen.webstart.gui.ScreenDimensions.resizeX;

+import static org.apache.openmeetings.screen.webstart.gui.ScreenDimensions.resizeY;

+import static org.red5.io.IoConstants.FLAG_CODEC_SCREEN;

+import static org.red5.io.IoConstants.FLAG_FRAMETYPE_INTERFRAME;

+import static org.red5.io.IoConstants.FLAG_FRAMETYPE_KEYFRAME;

+

+import java.awt.Rectangle;

+import java.awt.Robot;

+import java.awt.image.BufferedImage;

+import java.io.ByteArrayOutputStream;

+import java.io.IOException;

+import java.io.OutputStream;

+import java.util.zip.Deflater;

+

+import org.apache.mina.core.buffer.IoBuffer;

+import org.red5.server.net.rtmp.event.VideoData;

+

+public class ScreenV1Encoder extends BaseScreenEncoder {

+	private int[][] last = null;

+	private static int KEY_FRAME_INDEX = 25;

+	private static int DEFAULT_BLOCK_SIZE = 32;

+	private static int DEFAULT_SCREEN_WIDTH = 1920;

+	private static int DEFAULT_SCREEN_HEIGHT = 1080;

+	private int keyFrameIndex;

+	private int frameCount = 0;

+	private int blockSize;

+	private ByteArrayOutputStream ba = new ByteArrayOutputStream(50 + 3 * DEFAULT_SCREEN_WIDTH * DEFAULT_SCREEN_HEIGHT);

+	private byte[] areaBuf = null;

+	private Deflater d = new Deflater(Deflater.DEFAULT_COMPRESSION);

+	private byte[] zipBuf = null;

+	private VideoData unalteredFrame = null;

+	

+	public ScreenV1Encoder() {

+		this(KEY_FRAME_INDEX, DEFAULT_BLOCK_SIZE);

+	}

+	

+	public ScreenV1Encoder(int keyFrameIndex) {

+		this(keyFrameIndex, DEFAULT_BLOCK_SIZE);

+	}

+	

+	//will create square blocks

+	public ScreenV1Encoder(int keyFrameIndex, int blockSize) {

+		this.keyFrameIndex = keyFrameIndex;

+		if (blockSize < 16 || blockSize > 256 || blockSize % 16 != 0) {

+			throw new RuntimeException("Invalid block size passed: " + blockSize + " should be: 'from 16 to 256 in multiples of 16'");

+		}

+		this.blockSize = blockSize;

+

+		areaBuf = new byte[3 * blockSize * blockSize];

+		zipBuf = new byte[3 * blockSize * blockSize];

+	}

+

+	private VideoData getData(byte[] data) {

+		IoBuffer buf = IoBuffer.allocate(data.length);

+		buf.clear();

+		buf.put(data);

+		buf.flip();

+		return new VideoData(buf);

+	}

+	

+	public void createUnalteredFrame() throws IOException {

+		if (last == null) {

+			return;

+		}

+		if (unalteredFrame == null) {

+			ByteArrayOutputStream ba = new ByteArrayOutputStream(200);

+			

+			Rectangle _area = new Rectangle(resizeX, resizeY);

+			//header

+			ba.write(getTag(FLAG_FRAMETYPE_INTERFRAME, FLAG_CODEC_SCREEN));

+			writeShort(ba, _area.width + ((blockSize / 16 - 1) << 12));

+			writeShort(ba, _area.height + ((blockSize / 16 - 1) << 12));

+			Rectangle area = getNextBlock(_area, null);

+			while (area.width > 0 && area.height > 0) {

+				writeShort(ba, 0);

+				area = getNextBlock(_area, area);

+			}

+			unalteredFrame = getData(ba.toByteArray());

+		}

+	}

+	

+	public VideoData getUnalteredFrame() {

+		if (unalteredFrame != null && (frameCount % keyFrameIndex) != 0) {

+			frameCount++;

+		}

+		return unalteredFrame;

+	}

+	

+	public synchronized VideoData encode(int[][] img) throws IOException {

+		ba.reset();

+		Rectangle imgArea = new Rectangle(img.length, img[0].length);

+		Rectangle area = getNextBlock(imgArea, null);

+		boolean isKeyFrame = (frameCount++ % keyFrameIndex) == 0 || last == null;

+		

+		//header

+		ba.write(getTag(isKeyFrame ? FLAG_FRAMETYPE_KEYFRAME : FLAG_FRAMETYPE_INTERFRAME, FLAG_CODEC_SCREEN));

+		writeShort(ba, imgArea.width + ((blockSize / 16 - 1) << 12));

+		writeShort(ba, imgArea.height + ((blockSize / 16 - 1) << 12));

+		

+		while (area.width > 0 && area.height > 0) {

+			writeBytesIfChanged(ba, isKeyFrame, img, area);

+			area = getNextBlock(imgArea, area);

+		}

+		last = img;

+		return getData(ba.toByteArray());

+	}

+	

+	public void reset() {

+		last = null;

+		unalteredFrame = null;

+	}

+	

+	private Rectangle getNextBlock(Rectangle img, Rectangle _prev) {

+		Rectangle prev;

+		if (_prev == null) {

+			prev = new Rectangle(0, Math.max(0, img.height - blockSize), blockSize, blockSize);

+		} else {

+			prev = new Rectangle(_prev);

+			if (prev.x + prev.width == img.getWidth()) {

+				if (prev.y == 0) return new Rectangle(); //the end of the image

+				//next row

+				prev.x = 0; //reset position

+				prev.width = blockSize; //reset width

+				prev.height = (prev.y > blockSize ? blockSize : prev.y);

+				prev.y -= prev.height;

+			} else {

+				prev.x += blockSize;

+			}

+		}

+		return img.intersection(prev); 

+	}

+

+	private void writeBytesIfChanged(ByteArrayOutputStream ba, boolean isKeyFrame, int[][] img, Rectangle area) throws IOException {

+		boolean changed = isKeyFrame;

+		int count = 0;

+		for (int y = area.y + area.height - 1; y >= area.y; --y) {

+			for (int x = area.x; x < area.x + area.width; ++x) {

+				int pixel = img[x][y];

+				if (!changed && (last == null || pixel != last[x][y])) {

+					changed = true;

+				}

+				areaBuf[count++] = (byte)(pixel & 0xFF);			// Blue component

+				areaBuf[count++] = (byte)((pixel >> 8) & 0xFF);		// Green component

+				areaBuf[count++] = (byte)((pixel >> 16) & 0xFF);	// Red component

+			}

+		}

+		if (changed) {

+			d.reset();

+			d.setInput(areaBuf, 0, count);

+			d.finish();

+			int written = d.deflate(zipBuf);

+			writeShort(ba, written);

+			ba.write(zipBuf, 0, written);

+		} else {

+			writeShort(ba, 0);

+		}

+	}

+

+	public int getTag(final int frame, final int codec) {

+		return ((frame & 0x0F) << 4) + ((codec & 0x0F) << 0);

+	}

+	

+	private void writeShort(OutputStream os, final int n) throws IOException {

+		os.write((n >> 8) & 0xFF);

+		os.write((n >> 0) & 0xFF);

+	}

+	

+	public static int[][] getImage(Rectangle screen, Robot robot) {

+		int[][] buffer = new int[resizeX][resizeY];

+		BufferedImage image = resize(robot.createScreenCapture(screen), new Rectangle(resizeX, resizeY));

+		for (int x = 0; x < image.getWidth(); ++x) {

+			for (int y = 0; y < image.getHeight(); ++y) {

+				buffer[x][y] = image.getRGB(x, y);

+			}

+		}

+		return buffer;

+	}

+}

diff --git a/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/BlankArea.java b/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/BlankArea.java
new file mode 100644
index 0000000..45d40eb
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/BlankArea.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.screen.webstart.gui;
+
+import javax.swing.*;
+import java.awt.Dimension;
+import java.awt.Color;
+
+public class BlankArea extends MouseListenerable {
+	private static final long serialVersionUID = 305723962144665147L;
+	private Dimension minSize = new Dimension(100, 50);
+
+    public BlankArea(Color color) {
+        setBackground(color);
+        setOpaque(false);
+		setHorizontalAlignment(SwingConstants.LEFT);
+		setVerticalAlignment(SwingConstants.TOP);
+		setHorizontalTextPosition(0);
+		setVerticalTextPosition(0);
+        setBorder(BorderFactory.createLineBorder(Color.black));
+        setMinimumSize(minSize);
+        setPreferredSize(minSize);
+    }
+}
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/MouseListenerable.java b/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/MouseListenerable.java
new file mode 100644
index 0000000..bace11d
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/MouseListenerable.java
@@ -0,0 +1,32 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.screen.webstart.gui;

+

+import java.awt.event.MouseAdapter;

+

+import javax.swing.JLabel;

+

+public class MouseListenerable extends JLabel {

+	private static final long serialVersionUID = -6862930681858866872L;

+

+	public void addListener(MouseAdapter listner) {

+		addMouseListener(listner);

+		addMouseMotionListener(listner);

+	}

+}
\ No newline at end of file
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/NumberSpinner.java b/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/NumberSpinner.java
new file mode 100644
index 0000000..806a768
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/NumberSpinner.java
@@ -0,0 +1,34 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.screen.webstart.gui;

+

+import javax.swing.JSpinner;

+import javax.swing.SpinnerNumberModel;

+

+public class NumberSpinner extends JSpinner {

+	private static final long serialVersionUID = -1964457022937740633L;

+

+	public NumberSpinner(int value, int min, int max, int step) {

+		super(new SpinnerNumberModel(value, min, max, step));

+	}

+	

+	public Integer getValue() {

+		return (Integer)super.getValue();

+	}

+}

diff --git a/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenDimensions.java b/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenDimensions.java
new file mode 100644
index 0000000..e35173f
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenDimensions.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.screen.webstart.gui;
+
+import java.awt.Dimension;
+import java.awt.Toolkit;
+
+public class ScreenDimensions {
+	public static final int ROUND_VALUE = 16;
+	/**
+	 * image recalcing value's from the virtual Screen drawer
+	 */
+	public static int width = 200;
+	public static int height = 0;
+
+	/**
+	 * Values calced by the original Screen
+	 */
+
+	public static double ratio = 0;
+
+	public static int widthMax = 0;
+	public static int heightMax = 0;
+
+	/**
+	 * Values set by the virtualScreen
+	 */
+	public static int spinnerWidth = 0;
+	public static int spinnerHeight = 0;
+	public static int spinnerX = 0;
+	public static int spinnerY = 0;
+	
+	public static ScreenQuality quality = ScreenQuality.Medium;
+	public static int FPS = 10;
+	
+	public static int resizeX = 640;
+	public static int resizeY = 480;
+	
+	static {
+		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+		ratio = screenSize.getHeight() / screenSize.getWidth();
+		widthMax = (int)screenSize.getWidth();
+		heightMax = (int)screenSize.getHeight();
+		height = (int)(width * ratio);
+		spinnerX = 0;
+		spinnerY = 0;
+		spinnerWidth = widthMax;
+		spinnerHeight = heightMax;
+		resizeX = 640;
+		resizeY = 400;
+	}
+	
+	public enum ScreenQuality {
+		VeryHigh
+		, High
+		, Medium
+		, Low
+	}
+}
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenHeightMouseListener.java b/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenHeightMouseListener.java
new file mode 100644
index 0000000..1426b2c
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenHeightMouseListener.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.screen.webstart.gui;
+
+import java.awt.Component;
+import java.awt.Cursor;
+import java.awt.event.MouseEvent;
+
+import javax.swing.event.MouseInputAdapter;
+
+public class ScreenHeightMouseListener extends MouseInputAdapter  {
+	private ScreenSharerFrame frame;
+	private double y = 0;
+
+	public ScreenHeightMouseListener(ScreenSharerFrame frame) {
+		this.frame = frame;
+	}
+	
+	public void mouseEntered(MouseEvent e) {
+		frame.setCursor(Cursor.getPredefinedCursor(Cursor.N_RESIZE_CURSOR));
+	}
+
+	public void mouseExited(MouseEvent e) {
+		frame.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+	}
+
+	public void mousePressed(MouseEvent e) {
+		frame.setShowWarning(false);
+		y = e.getY();
+	}
+
+	public void mouseReleased(MouseEvent e) {
+		frame.setShowWarning(true);
+	}
+
+	public void mouseDragged(MouseEvent e) {
+		if (!((Component)e.getSource()).isEnabled()) {
+			return;
+		}
+		double newY = e.getY();
+
+		int newHeight = ScreenDimensions.spinnerHeight - (int)(y - newY);
+		int newSpinnerY = ScreenDimensions.spinnerY + newHeight;
+
+		if (newSpinnerY >= 0 && newSpinnerY <= ScreenDimensions.heightMax) {
+			frame.setDoUpdateBounds(false);
+			frame.setSpinnerHeight(newHeight);
+			frame.setDoUpdateBounds(true);
+			frame.updateVScreenBounds();
+			frame.calcRescaleFactors();
+		}
+	}
+}
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenKeyListener.java b/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenKeyListener.java
new file mode 100644
index 0000000..603162a
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenKeyListener.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.screen.webstart.gui;
+
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ScreenKeyListener implements KeyListener {
+	private static final Logger logger = LoggerFactory.getLogger(ScreenKeyListener.class);
+
+	public void keyPressed(KeyEvent kEvent) {
+		logger.debug("keyPressed :Code: " + kEvent.getKeyCode());
+	}
+
+	public void keyReleased(KeyEvent kEvent) {
+		logger.debug("keyReleased :Code: " + kEvent.getKeyCode());
+	}
+
+	public void keyTyped(KeyEvent arg0) {
+	}
+}
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenMouseListener.java b/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenMouseListener.java
new file mode 100644
index 0000000..791abe7
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenMouseListener.java
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.screen.webstart.gui;
+
+import java.awt.Component;
+import java.awt.Cursor;
+import java.awt.event.MouseEvent;
+
+import javax.swing.event.MouseInputAdapter;
+
+public class ScreenMouseListener extends MouseInputAdapter {
+	private ScreenSharerFrame frame;
+	private int x = 0;
+	private int y = 0;
+
+	public ScreenMouseListener(ScreenSharerFrame frame) {
+		this.frame = frame;
+	}
+
+	public void mouseEntered(MouseEvent e) {
+		frame.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
+	}
+
+	public void mouseExited(MouseEvent e) {
+		frame.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+	}
+
+	public void mousePressed(MouseEvent e) {
+		frame.setShowWarning(false);
+		this.x = e.getX();
+		this.y = e.getY();
+	}
+
+	public void mouseReleased(MouseEvent e) {
+		frame.setShowWarning(true);
+	}
+
+	public void mouseDragged(MouseEvent e) {
+		if (!((Component)e.getSource()).isEnabled()) {
+			return;
+		}
+		int newX = e.getX();
+		int newY = e.getY();
+
+		int newXPosition = ScreenDimensions.spinnerX - (this.x - newX);
+		int newYPosition = ScreenDimensions.spinnerY - (this.y - newY);
+		if (newXPosition >= 0) {
+			frame.setSpinnerX(newXPosition);
+		}
+		if (newYPosition >= 0) {
+			frame.setSpinnerY(newYPosition);
+		}
+
+		frame.calcRescaleFactors();
+	}
+
+}
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenSharerFrame.java b/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenSharerFrame.java
new file mode 100644
index 0000000..8a770ad
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenSharerFrame.java
@@ -0,0 +1,825 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.screen.webstart.gui;
+
+import static org.apache.openmeetings.screen.webstart.gui.ScreenDimensions.ROUND_VALUE;
+import static org.apache.openmeetings.screen.webstart.gui.ScreenDimensions.resizeX;
+import static org.apache.openmeetings.screen.webstart.gui.ScreenDimensions.resizeY;
+import static org.slf4j.LoggerFactory.getLogger;
+
+import java.awt.AWTException;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Image;
+import java.awt.Rectangle;
+import java.awt.Robot;
+import java.awt.SystemColor;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.io.IOException;
+
+import javax.swing.BorderFactory;
+import javax.swing.GroupLayout;
+import javax.swing.GroupLayout.Alignment;
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTabbedPane;
+import javax.swing.JTextField;
+import javax.swing.SwingConstants;
+import javax.swing.border.EmptyBorder;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+import javax.swing.event.DocumentEvent;
+import javax.swing.event.DocumentListener;
+
+import org.apache.openmeetings.screen.webstart.CoreScreenShare;
+import org.apache.openmeetings.screen.webstart.gui.ScreenDimensions.ScreenQuality;
+import org.slf4j.Logger;
+
+public class ScreenSharerFrame extends JFrame {
+	private static final long serialVersionUID = 6892639796386017437L;
+	private static final Logger logger = getLogger(ScreenSharerFrame.class);
+	
+	private JPanel contentPane;
+	private JPanel panelScreen = new DisabledPanel();
+	private JPanel panelRecording = new DisabledPanel();
+	private JPanel panelPublish = new DisabledPanel();
+	private JLabel lblStatus = new JLabel();
+	private int vScreenX = 20;
+	private int vScreenY = 20;
+	private VerticalSlider upSlider = new VerticalSlider();
+	private VerticalSlider downSlider = new VerticalSlider();
+	private HorizontalSlider leftSlider = new HorizontalSlider();
+	private HorizontalSlider rightSlider = new HorizontalSlider();
+	private BlankArea virtualScreen = new BlankArea(new Color(255, 255, 255, 100));
+	private JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
+	private boolean doUpdateBounds = true;
+	private boolean showWarning = true;
+	private JButton btnStartStopSharing;
+	private JButton btnStartStopRecording;
+	private JButton btnStartStopPublish;
+	private NumberSpinner spinnerX;
+	private NumberSpinner spinnerY;
+	private NumberSpinner spinnerWidth;
+	private NumberSpinner spinnerHeight;
+	private JComboBox comboQuality;
+	private JComboBox comboFPS;
+	private JTextField textPublishHost;
+	private JTextField textPublishApp;
+	private JTextField textPublishId;
+	private JLabel lblPublishURL;
+	private boolean sharingStarted = false;
+	private boolean recordingStarted = false;
+	private boolean publishStarted = false;
+	private boolean recordingActionRequested = false;
+	private boolean publishingActionRequested = false;
+	private boolean sharingActionRequested = false;
+	private ImageIcon startIcon;
+	private ImageIcon stopIcon;
+	private String startSharingLabel;
+	private String stopSharingLabel;
+	private String startRecordingLabel;
+	private String stopRecordingLabel;
+	private String startPublishLabel;
+	private String stopPublishLabel;
+	private String reduceWidthLabel;
+	private String reduceHeightLabel;
+	private String reduceXLabel;
+	private String reduceYLabel;
+	private String recordingTipLabel;
+	private String publishingTipLabel;
+	private JCheckBox audioNotify;
+	
+	private class PublishTextField extends JTextField {
+		private static final long serialVersionUID = -2104245360975135871L;
+
+		PublishTextField() {
+			getDocument().addDocumentListener(
+				new DocumentListener() {
+					public void changedUpdate(DocumentEvent e) {
+						updatePublishURL();
+					}
+
+					public void removeUpdate(DocumentEvent e) {
+						updatePublishURL();
+					}
+
+					public void insertUpdate(DocumentEvent e) {
+						updatePublishURL();
+					}
+				});
+
+			setColumns(10);
+		}
+	}
+	
+	private class KeyValue<T> {
+		private String key;
+		private T value;
+		
+		public KeyValue(String key, T value) {
+			this.key = key;
+			this.value = value;
+		}
+	 
+		@SuppressWarnings("unused")
+		public String getKey() { return key; }
+		public T getValue() { return value; }
+	 
+		@Override
+		public String toString() { return key; }
+	 
+		@Override
+		public boolean equals(Object obj) {
+			if (obj instanceof KeyValue) {
+				@SuppressWarnings("unchecked")
+				KeyValue<T> kv = (KeyValue<T>) obj;
+				return (kv.value.equals(this.value));
+			}
+			return false;
+		}
+	 
+		@Override
+		public int hashCode() {
+			int hash = 7;
+			hash = 97 * hash + (this.value != null ? this.value.hashCode() : 0);
+			return hash;
+		}
+	}
+	
+	//this implementation will not allow to Enable Panel in runtime
+	private class DisabledPanel extends JPanel {
+		private static final long serialVersionUID = -2679640611165728979L;
+
+		@Override
+		public void setEnabled(boolean enabled) {
+			for (Component c : getComponents()) {
+				c.setEnabled(enabled);
+			}
+			super.setEnabled(enabled);
+		}
+	}
+	
+	private class VerticalSlider extends MouseListenerable {
+		private static final long serialVersionUID = 6388951979741767971L;
+
+		public VerticalSlider() {
+			ImageIcon iUp = new ImageIcon(ScreenSharerFrame.class.getResource("/org/apache/openmeetings/screen/up.png"));
+			ImageIcon iDown = new ImageIcon(ScreenSharerFrame.class.getResource("/org/apache/openmeetings/screen/down.png"));
+			setSize(16, 32);
+			JLabel jUp = new JLabel(iUp);
+			jUp.setBounds(0, 0, 16, 16);
+			add(jUp);
+			JLabel jDown = new JLabel(iDown);
+			jDown.setBounds(0, 16, 16, 16);
+			add(jDown);
+		}
+	}
+	
+	private class HorizontalSlider extends MouseListenerable {
+		private static final long serialVersionUID = 4630712955901760443L;
+
+		public HorizontalSlider() {
+			ImageIcon iLeft = new ImageIcon(ScreenSharerFrame.class.getResource("/org/apache/openmeetings/screen/previous.png"));
+			ImageIcon iRight = new ImageIcon(ScreenSharerFrame.class.getResource("/org/apache/openmeetings/screen/next.png"));
+			setSize(32, 16);
+			JLabel jLeft = new JLabel(iLeft);
+			jLeft.setBounds(0, 0, 16, 16);
+			add(jLeft);
+			JLabel jRight = new JLabel(iRight);
+			jRight.setBounds(16, 0, 16, 16);
+			add(jRight);
+		}
+	}
+	
+	private String getTextLabel(String[] textLabels, int idx) {
+		return textLabels != null && idx < textLabels.length ? textLabels[idx] : "#STAB#";
+	}
+	
+	/**
+	 * Create the frame.
+	 * @throws AWTException 
+	 * @throws IOException 
+	 */
+	public ScreenSharerFrame(final CoreScreenShare core, String[] textLabels) throws AWTException {
+		setTitle(getTextLabel(textLabels, 0)); //#id 730
+		setBackground(Color.WHITE);
+		setResizable(false);
+		setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
+		addWindowListener(new WindowAdapter() {
+			@Override
+			public void windowClosing(WindowEvent e) {
+				core.stopStream();
+				ScreenSharerFrame.this.setVisible(false);
+				System.exit(0);
+			}
+		});
+		setBounds(30, 30, 500, 505);
+		contentPane = new JPanel();
+		contentPane.setBackground(Color.WHITE);
+		contentPane.setBorder(new EmptyBorder(5, 0, 5, 5));
+		setContentPane(contentPane);
+		
+		JLabel lblStartSharing = new JLabel(getTextLabel(textLabels, 1)); //#id 731
+		
+		startSharingLabel = getTextLabel(textLabels, 2); //#id 732
+		stopSharingLabel = getTextLabel(textLabels, 3); //#id 733
+		startRecordingLabel = getTextLabel(textLabels, 15); //#id 871
+		stopRecordingLabel = getTextLabel(textLabels, 16); //#id 872
+		startPublishLabel = getTextLabel(textLabels, 24); //#id 1466
+		stopPublishLabel = getTextLabel(textLabels, 25); //#id 1467
+		reduceWidthLabel = getTextLabel(textLabels, 29); //#id 1471
+		reduceHeightLabel = getTextLabel(textLabels, 30); //#id 1472
+		reduceXLabel = getTextLabel(textLabels, 31); //#id 1473
+		reduceYLabel = getTextLabel(textLabels, 32); //#id 1474
+		recordingTipLabel = getTextLabel(textLabels, 35); //#id 1477
+		publishingTipLabel = getTextLabel(textLabels, 34); //#id 1476
+		startIcon = new ImageIcon(ScreenSharerFrame.class.getResource("/org/apache/openmeetings/screen/play.png"));
+		stopIcon = new ImageIcon(ScreenSharerFrame.class.getResource("/org/apache/openmeetings/screen/stop.png"));
+		btnStartStopSharing = new JButton(startSharingLabel);
+		btnStartStopSharing.setToolTipText(startSharingLabel);
+		btnStartStopSharing.setIcon(startIcon);
+		btnStartStopSharing.setSize(200, 32);
+		btnStartStopSharing.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent arg0) {
+				if (sharingStarted) {
+					if (!sharingActionRequested) {
+						sharingActionRequested = true;
+						core.streamingStop();
+					} else {
+						logger.warn("Sharing action is already requested");
+					}
+				} else {
+					if (!sharingActionRequested) {
+						sharingActionRequested = true;
+						core.streamingStart();
+					} else {
+						logger.warn("Sharing action is already requested");
+					}
+				}
+			}
+		});
+		
+		JLabel lblSelectArea = new JLabel(getTextLabel(textLabels, 4)); //#id 734
+		JPanel panelStatus = new JPanel();
+		audioNotify = new JCheckBox(getTextLabel(textLabels, 36)); //#id 1589
+		audioNotify.setBackground(Color.WHITE);
+		audioNotify.setSelected(core.isAudioNotify());
+		audioNotify.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				core.setAudioNotify(audioNotify.isSelected());
+			}
+		});
+		
+		GroupLayout gl_contentPane = new GroupLayout(contentPane);
+		gl_contentPane.setHorizontalGroup(
+			gl_contentPane.createParallelGroup(Alignment.LEADING)
+				.addGroup(gl_contentPane.createSequentialGroup()
+					.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
+						.addGroup(gl_contentPane.createSequentialGroup()
+							.addGap(7)
+							.addComponent(lblStartSharing)
+							.addGap(15)
+							.addComponent(audioNotify))
+						.addGroup(gl_contentPane.createSequentialGroup()
+							.addGap(21)
+							.addComponent(btnStartStopSharing, 200, 200, 200)
+							.addGap(52)
+							)
+						.addGroup(gl_contentPane.createSequentialGroup()
+							.addGap(7)
+							.addComponent(lblSelectArea, GroupLayout.PREFERRED_SIZE, 470, GroupLayout.PREFERRED_SIZE))
+						.addGroup(gl_contentPane.createSequentialGroup()
+							.addContainerGap()
+							.addComponent(panelScreen, GroupLayout.PREFERRED_SIZE, 472, GroupLayout.PREFERRED_SIZE))
+						.addGroup(gl_contentPane.createSequentialGroup()
+							.addContainerGap()
+							.addComponent(tabbedPane, GroupLayout.PREFERRED_SIZE, 472, GroupLayout.PREFERRED_SIZE))
+						.addGroup(gl_contentPane.createSequentialGroup()
+							.addComponent(panelStatus, 494, 494, 494)))
+					.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+		);
+		gl_contentPane.setVerticalGroup(
+			gl_contentPane.createParallelGroup(Alignment.LEADING)
+				.addGroup(gl_contentPane.createSequentialGroup()
+					.addGap(7)
+					.addComponent(lblStartSharing)
+					.addGap(4)
+					.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
+						.addComponent(btnStartStopSharing, 32, 32, 32).addComponent(audioNotify, 32, 32, 32)
+						)
+					.addGap(4)
+					.addComponent(lblSelectArea)
+					.addGap(4)
+					.addComponent(panelScreen, 210, 210, 210)
+					.addGap(4)
+					.addComponent(tabbedPane, 150, 150, 150)
+					.addGap(5)
+					.addComponent(panelStatus, 20, 20, 20)
+					)
+		);
+		panelScreen.setLayout(null);
+		
+		int width = ScreenDimensions.width;
+		int height = ScreenDimensions.height;
+		
+		//Sliders
+		upSlider.addListener(new ScreenYMouseListener(this));
+		upSlider.setToolTipText(getTextLabel(textLabels, 6)); //#id 737
+		panelScreen.add(upSlider);
+		downSlider.addListener(new ScreenHeightMouseListener(this));
+		downSlider.setToolTipText(getTextLabel(textLabels, 6)); //#id 737
+		panelScreen.add(downSlider);
+		
+		leftSlider.addListener(new ScreenXMouseListener(this));
+		leftSlider.setToolTipText(getTextLabel(textLabels, 5)); //#id 735
+		panelScreen.add(leftSlider);
+		rightSlider.addListener(new ScreenWidthMouseListener(this));
+		rightSlider.setToolTipText(getTextLabel(textLabels, 5)); //#id 735
+		panelScreen.add(rightSlider);
+		
+		//Virtual Screen
+		virtualScreen.addListener(new ScreenMouseListener(this));
+		virtualScreen.setBounds(vScreenX, vScreenY, width, height);
+		panelScreen.add(virtualScreen);
+
+		ImageIcon imgBgScreen = new ImageIcon(
+			new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()))
+				.getScaledInstance(width, height, Image.SCALE_SMOOTH));
+		JLabel bgScreen = new JLabel(imgBgScreen);
+		bgScreen.setBounds(vScreenX, vScreenY, width, height);
+		panelScreen.add(bgScreen);
+
+		//Spinner X
+		JLabel labelX = new JLabel();
+		labelX.setText(getTextLabel(textLabels, 7)); //#id 738
+		labelX.setBounds(250, 20, 150, 24);
+		panelScreen.add(labelX);
+
+		spinnerX = new NumberSpinner(ScreenDimensions.spinnerX, 0, ScreenDimensions.widthMax, 1);
+		spinnerX.setBounds(400, 20, 60, 24);
+		spinnerX.addChangeListener( new ChangeListener(){
+			public void stateChanged(ChangeEvent arg0) {
+				calcNewValueXSpin();
+			}
+		});
+		panelScreen.add(spinnerX);
+
+		//Spinner Y
+		JLabel labelY = new JLabel();
+		labelY.setText(getTextLabel(textLabels, 8)); //#id 739
+		labelY.setBounds(250, 50, 150, 24);
+		panelScreen.add(labelY);
+
+		spinnerY = new NumberSpinner(ScreenDimensions.spinnerY, 0, ScreenDimensions.heightMax, 1);
+		spinnerY.setBounds(400, 50, 60, 24);
+		spinnerY.addChangeListener( new ChangeListener(){
+			public void stateChanged(ChangeEvent arg0) {
+				calcNewValueYSpin();
+			}
+		});
+		panelScreen.add(spinnerY);
+		
+		JLabel vscreenWidthLabel = new JLabel();
+		vscreenWidthLabel.setText(getTextLabel(textLabels, 9)); //#id 740
+		vscreenWidthLabel.setBounds(250, 80, 150, 24);
+		panelScreen.add(vscreenWidthLabel);
+
+		spinnerWidth = new NumberSpinner(ScreenDimensions.spinnerWidth, 0, ScreenDimensions.widthMax, 1);
+		spinnerWidth.setBounds(400, 80, 60, 24);
+		spinnerWidth.addChangeListener( new ChangeListener(){
+			public void stateChanged(ChangeEvent arg0) {
+				calcNewValueWidthSpin();
+			}
+		});
+		panelScreen.add(spinnerWidth);
+
+		//Spinner Height
+		JLabel labelHeight = new JLabel();
+		labelHeight.setText(getTextLabel(textLabels, 10)); //#id 741
+		labelHeight.setBounds(250, 110, 150, 24);
+		panelScreen.add(labelHeight);
+
+		spinnerHeight = new NumberSpinner(ScreenDimensions.spinnerHeight, 0, ScreenDimensions.heightMax, 1);
+		spinnerHeight.setBounds(400, 110, 60, 24);
+		spinnerHeight.addChangeListener( new ChangeListener(){
+			public void stateChanged(ChangeEvent arg0) {
+				calcNewValueHeightSpin();
+			}
+		});
+		panelScreen.add(spinnerHeight);
+		
+		//Quality
+		JLabel labelQuality = new JLabel();
+		labelQuality.setText(getTextLabel(textLabels, 18)); //#id 1089
+		labelQuality.setBounds(250, 140, 200, 24);
+		panelScreen.add(labelQuality);
+		
+		comboQuality = new JComboBox();
+		comboQuality.addItem(new KeyValue<ScreenQuality>(getTextLabel(textLabels, 19), ScreenQuality.VeryHigh)); //#id 1090
+		comboQuality.addItem(new KeyValue<ScreenQuality>(getTextLabel(textLabels, 20), ScreenQuality.High)); //#id 1091
+		comboQuality.addItem(new KeyValue<ScreenQuality>(getTextLabel(textLabels, 21), ScreenQuality.Medium)); //#id 1092
+		comboQuality.addItem(new KeyValue<ScreenQuality>(getTextLabel(textLabels, 22), ScreenQuality.Low)); //#id 1093
+		comboQuality.setBounds(250, 170, 130, 24);
+		comboQuality.addActionListener(new ActionListener() {
+			@SuppressWarnings("unchecked")
+			public void actionPerformed(ActionEvent e) {
+		        ScreenDimensions.quality = ((KeyValue<ScreenQuality>)comboQuality.getSelectedItem()).getValue();
+		        calcRescaleFactors();
+			}
+		}); 
+		comboQuality.setSelectedIndex(core.defaultQuality);
+		panelScreen.add(comboQuality);
+		comboFPS = new JComboBox();
+		comboFPS.addItem(new KeyValue<Integer>("2 FPS", 2));
+		comboFPS.addItem(new KeyValue<Integer>("5 FPS", 5));
+		comboFPS.addItem(new KeyValue<Integer>("10 FPS", 10));
+		comboFPS.addItem(new KeyValue<Integer>("15 FPS", 15));
+		comboFPS.addItem(new KeyValue<Integer>("20 FPS", 20));
+		comboFPS.addItem(new KeyValue<Integer>("25 FPS", 25));
+		comboFPS.addItem(new KeyValue<Integer>("30 FPS", 30));
+		comboFPS.addActionListener(new ActionListener() {
+			@SuppressWarnings("unchecked")
+			public void actionPerformed(ActionEvent e) {
+		        ScreenDimensions.FPS = ((KeyValue<Integer>)comboFPS.getSelectedItem()).getValue();
+		        calcRescaleFactors();
+			}
+		}); 
+		comboFPS.setSelectedIndex(2);
+		comboFPS.setBounds(390, 170, 70, 24);
+		panelScreen.add(comboFPS);
+		
+		panelRecording.setBackground(Color.WHITE);
+		tabbedPane.addTab(getTextLabel(textLabels, 13), null, panelRecording, null); //#id 869
+		tabbedPane.setEnabledAt(0, true);
+		panelRecording.setLayout(null);
+		panelRecording.setEnabled(false);
+		
+		JLabel lblRecordingDesc = new JLabel("<html>" + getTextLabel(textLabels, 14) + "</html>"); //#id 870
+		lblRecordingDesc.setVerticalAlignment(SwingConstants.TOP);
+		lblRecordingDesc.setBounds(10, 10, 447, 60);
+		panelRecording.add(lblRecordingDesc);
+		
+		btnStartStopRecording = new JButton(getTextLabel(textLabels, 15)); //#id 871
+		btnStartStopRecording.setToolTipText(getTextLabel(textLabels, 15)); //#id 871
+		btnStartStopRecording.setIcon(startIcon);
+		btnStartStopRecording.setBounds(10, 82, 200, 32);
+		btnStartStopRecording.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent arg0) {
+				if (recordingStarted) {
+					if (!recordingActionRequested) {
+						recordingActionRequested = true;
+						core.recordingStop();
+					} else {
+						logger.warn("Recording action is already requested");
+					}
+				} else {
+					if (!recordingActionRequested) {
+						recordingActionRequested = true;
+						core.recordingStart();
+					} else {
+						logger.warn("Recording action is already requested");
+					}
+				}
+			}
+		});
+		panelRecording.add(btnStartStopRecording);
+		
+		panelPublish.setBackground(Color.WHITE);
+		tabbedPane.addTab(getTextLabel(textLabels, 23), null, panelPublish, null); //#id 1465
+		tabbedPane.setEnabledAt(1, true);
+		panelPublish.setEnabled(false);
+		panelPublish.setLayout(null);
+		
+		JLabel lblPublishDesc = new JLabel(getTextLabel(textLabels, 33)); //#id 1475
+		lblPublishDesc.setVerticalAlignment(SwingConstants.TOP);
+		lblPublishDesc.setBounds(10, 5, 450, 20);
+		panelPublish.add(lblPublishDesc);
+		
+		JLabel lblPublishHost = new JLabel(getTextLabel(textLabels, 26)); //#id 1468
+		lblPublishHost.setVerticalAlignment(SwingConstants.TOP);
+		lblPublishHost.setBounds(10, 27, 140, 20);
+		panelPublish.add(lblPublishHost);
+		
+		JLabel lblPublishApp = new JLabel(getTextLabel(textLabels, 27)); //#id 1469
+		lblPublishApp.setVerticalAlignment(SwingConstants.TOP);
+		lblPublishApp.setBounds(160, 27, 140, 20);
+		panelPublish.add(lblPublishApp);
+		
+		JLabel lblPublishId = new JLabel(getTextLabel(textLabels, 28)); //#id 1470
+		lblPublishId.setVerticalAlignment(SwingConstants.TOP);
+		lblPublishId.setBounds(310, 27, 140, 20);
+		panelPublish.add(lblPublishId);
+		
+		textPublishHost = new PublishTextField();
+		textPublishHost.setBounds(10, 45, 140, 20);
+		panelPublish.add(textPublishHost);
+		
+		textPublishApp = new PublishTextField();
+		textPublishApp.setBounds(160, 45, 140, 20);
+		panelPublish.add(textPublishApp);
+		
+		textPublishId = new PublishTextField();
+		textPublishId.setBounds(310, 45, 140, 20);
+		panelPublish.add(textPublishId);
+		
+		lblPublishURL = new JLabel("");
+		lblPublishURL.setBounds(10, 69, 447, 14);
+		panelPublish.add(lblPublishURL);
+		
+		btnStartStopPublish = new JButton(getTextLabel(textLabels, 24)); //#id 1466
+		btnStartStopPublish.setToolTipText(getTextLabel(textLabels, 24)); //#id 1466
+		btnStartStopPublish.setIcon(startIcon);
+		btnStartStopPublish.setBounds(10, 86, 200, 32);
+		btnStartStopPublish.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent arg0) {
+				if (publishStarted) {
+					if (!publishingActionRequested) {
+						publishingActionRequested = true;
+						core.publishingStop();
+					} else {
+						logger.warn("Publishing action is already requested");
+					}
+				} else {
+					if (!publishingActionRequested) {
+						publishingActionRequested = true;
+						core.publishingStart();
+					} else {
+						logger.warn("Publishing action is already requested");
+					}
+				}
+			}
+		});
+		panelPublish.add(btnStartStopPublish);
+		
+		panelScreen.setBackground(Color.WHITE);
+		
+		panelStatus.setBackground(SystemColor.control);
+		panelStatus.setLayout(null);
+		lblStatus.setHorizontalAlignment(SwingConstants.LEFT);
+		lblStatus.setBounds(0, 0, 494, 20);
+		lblStatus.setBorder(BorderFactory.createCompoundBorder(
+				BorderFactory.createLineBorder(Color.LIGHT_GRAY),
+				BorderFactory.createEmptyBorder(0, 5, 0, 0)));
+		panelStatus.add(lblStatus);
+		
+		contentPane.setLayout(gl_contentPane);
+		
+		// Background Image
+		//We have no logo, that is why we need no background, sebawagner 29.04.2012
+	}
+
+	public void setSharingStatus(boolean status, boolean unlockScreen) {
+		panelScreen.setEnabled(unlockScreen);
+		if (status != sharingStarted) {
+			sharingActionRequested = false;
+		}
+		logger.debug("sharingActionRequested=" + sharingActionRequested);
+		sharingStarted = status;
+		btnStartStopSharing.setIcon(status ? stopIcon : startIcon);
+		btnStartStopSharing.setText(status ? stopSharingLabel : startSharingLabel);
+		btnStartStopSharing.setToolTipText(status ? stopSharingLabel : startSharingLabel);
+	}
+	
+	public void setRecordingStatus(boolean status, boolean unlockScreen) {
+		panelScreen.setEnabled(unlockScreen);
+		if (status != recordingStarted) {
+			recordingActionRequested = false;
+		}
+		logger.debug("recordingActionRequested=" + recordingActionRequested);
+		recordingStarted = status;
+		btnStartStopRecording.setIcon(status ? stopIcon : startIcon);
+		btnStartStopRecording.setText(status ? stopRecordingLabel : startRecordingLabel);
+		btnStartStopRecording.setToolTipText(status ? stopRecordingLabel : startRecordingLabel);
+	}
+	
+	public void setPublishingStatus(boolean status, boolean unlockScreen) {
+		panelScreen.setEnabled(unlockScreen);
+		if (status != publishStarted) {
+			publishingActionRequested = false;
+		}
+		publishStarted = status;
+		btnStartStopPublish.setIcon(status ? stopIcon : startIcon);
+		btnStartStopPublish.setText(status ? stopPublishLabel : startPublishLabel);
+		btnStartStopPublish.setToolTipText(status ? stopPublishLabel : startPublishLabel);
+	}
+	
+	public void setRecordingTabEnabled(boolean enabled) {
+		panelRecording.setEnabled(enabled);
+		tabbedPane.setEnabledAt(0, enabled);
+		tabbedPane.setToolTipTextAt(0, enabled ? null : recordingTipLabel);
+	}
+	
+	public void setPublishingTabEnabled(boolean enabled) {
+		panelPublish.setEnabled(enabled);
+		tabbedPane.setEnabledAt(1, enabled);
+		tabbedPane.setToolTipTextAt(1, enabled ? null : publishingTipLabel);
+	}
+	
+	public String getPublishHost() {
+		return textPublishHost.getText();
+	}
+	
+	public String getPublishApp() {
+		return textPublishApp.getText();
+	}
+	
+	public String getPublishId() {
+		return textPublishId.getText();
+	}
+	
+	private void updatePublishURL() {
+		lblPublishURL.setText("rtmp://" + textPublishHost.getText() + ":1935/"
+				+ textPublishApp.getText() + "/" + textPublishId.getText());
+	}
+	
+	public void setShowWarning(boolean showWarning) {
+		this.showWarning = showWarning;
+	}
+	
+	public void setDoUpdateBounds(boolean doUpdateBounds) {
+		this.doUpdateBounds = doUpdateBounds;
+	}
+	
+	public void setStatus(String status) {
+		lblStatus.setText(status);
+	}
+
+	public void setSpinnerX(int val) {
+		spinnerX.setValue(val);
+	}
+
+	public void setSpinnerY(int val) {
+		spinnerY.setValue(val);
+	}
+
+	public void setSpinnerWidth(int val) {
+		spinnerWidth.setValue(val);
+	}
+
+	public void setSpinnerHeight(int val) {
+		spinnerHeight.setValue(val);
+	}
+
+	void calcNewValueXSpin() {
+		if (doUpdateBounds) {
+			int newX = spinnerX.getValue();
+			if (ScreenDimensions.spinnerWidth + newX > ScreenDimensions.widthMax) {
+				newX = ScreenDimensions.widthMax - ScreenDimensions.spinnerWidth;
+				spinnerX.setValue(newX);
+				if (showWarning) {
+					setStatus(reduceWidthLabel);
+				}
+			} else {
+				ScreenDimensions.spinnerX = newX;
+				updateVScreenBounds();
+			}
+		} else {
+			ScreenDimensions.spinnerX = spinnerX.getValue();
+		}
+
+		calcRescaleFactors();
+	}
+
+	void calcNewValueYSpin() {
+		if (doUpdateBounds) {
+			int newY = spinnerY.getValue();
+			if (ScreenDimensions.spinnerHeight + newY > ScreenDimensions.heightMax) {
+				newY = ScreenDimensions.heightMax - ScreenDimensions.spinnerHeight;
+				spinnerY.setValue(newY);
+				if (showWarning) {
+					setStatus(reduceHeightLabel);
+				}
+			} else {
+				ScreenDimensions.spinnerY = newY;
+				updateVScreenBounds();
+			}
+		} else {
+			ScreenDimensions.spinnerY = spinnerY.getValue();
+		}
+
+		calcRescaleFactors();
+	}
+
+	void calcNewValueWidthSpin() {
+		if (doUpdateBounds) {
+			int newWidth = spinnerWidth.getValue();
+			if (ScreenDimensions.spinnerX + newWidth > ScreenDimensions.widthMax) {
+				newWidth = ScreenDimensions.widthMax - ScreenDimensions.spinnerX;
+				spinnerWidth.setValue(newWidth);
+				if (showWarning) {
+					setStatus(reduceXLabel);
+				}
+			} else {
+				ScreenDimensions.spinnerWidth = newWidth;
+				updateVScreenBounds();
+			}
+		} else {
+			ScreenDimensions.spinnerWidth = spinnerWidth.getValue();
+		}
+
+		calcRescaleFactors();
+	}
+
+	void calcNewValueHeightSpin() {
+		if (doUpdateBounds) {
+			int newHeight = spinnerHeight.getValue();
+			if (ScreenDimensions.spinnerY + newHeight > ScreenDimensions.heightMax) {
+				newHeight = ScreenDimensions.heightMax - ScreenDimensions.spinnerY;
+				spinnerHeight.setValue(newHeight);
+				if (showWarning) {
+					setStatus(reduceYLabel);
+				}
+			} else {
+				ScreenDimensions.spinnerHeight = newHeight;
+				updateVScreenBounds();
+			}
+		} else {
+			ScreenDimensions.spinnerHeight = spinnerHeight.getValue();
+		}
+
+		calcRescaleFactors();
+	}
+
+	/**
+	 * Needs to be always invoked after every re-scaling
+	 */
+	void calcRescaleFactors() {
+		logger.trace("calcRescaleFactors -- ");
+		resizeX = spinnerWidth.getValue();
+		resizeY = spinnerHeight.getValue();
+		switch (ScreenDimensions.quality) {
+			case Low:
+				resizeX = (int)(2.0 * ScreenDimensions.resizeX / 8);
+				resizeY = (int)(2.0 * ScreenDimensions.resizeY / 8);
+				break;
+			case Medium:
+				resizeX = (int)(4.0 * ScreenDimensions.resizeX / 8);
+				resizeY = (int)(4.0 * ScreenDimensions.resizeY / 8);
+				break;
+			case High:
+				resizeX = (int)(6.0 * ScreenDimensions.resizeX / 8);
+				resizeY = (int)(6.0 * ScreenDimensions.resizeY / 8);
+				break;
+			case VeryHigh:
+			default:
+				break;
+		}
+		int dX = resizeX % ROUND_VALUE;
+		int dY = resizeY % ROUND_VALUE;
+		resizeX += dX == 0 ? 0 : ROUND_VALUE - dX;
+		resizeY += dY == 0 ? 0 : ROUND_VALUE - dY;
+		logger.trace("resize: X:" + resizeX + " Y: " + resizeY);
+		updateVScreenBounds();
+	}
+
+	private void setVScreenBounds(int x, int y, int width, int height) {
+		leftSlider.setBounds(x + vScreenX - 16, y + vScreenY - 8 + (height / 2), 32, 16);
+		rightSlider.setBounds(x + vScreenX + width - 16, y + vScreenY - 8 + (height / 2), 32, 16);
+		upSlider.setBounds(x + vScreenX + (width / 2) - 8, y + vScreenY - 16, 16, 32);
+		downSlider.setBounds(x + vScreenX + (width / 2) - 8, y + vScreenY - 16 + height, 16, 32);
+		
+		virtualScreen.setText(ScreenDimensions.spinnerWidth + ":" + ScreenDimensions.spinnerHeight);
+		virtualScreen.setBounds(x + vScreenX, y + vScreenY, width, height);
+	}
+	
+	/**
+	 * update the bounds of the vScreen
+	 * by using the vars from the Spinners
+	 *
+	 */
+	void updateVScreenBounds() {
+		double ratio = ((double)ScreenDimensions.width) / ScreenDimensions.widthMax;
+		int newWidth = (int)(ScreenDimensions.spinnerWidth * ratio);
+		int newX = (int)(ScreenDimensions.spinnerX * ratio);
+
+		int newHeight = (int)(ScreenDimensions.spinnerHeight * ratio);
+		int newY = (int)(ScreenDimensions.spinnerY * ratio);
+
+		setVScreenBounds(newX, newY, newWidth, newHeight);
+	}
+}
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenWidthMouseListener.java b/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenWidthMouseListener.java
new file mode 100644
index 0000000..c893b31
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenWidthMouseListener.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.screen.webstart.gui;
+
+import java.awt.Component;
+import java.awt.Cursor;
+import java.awt.event.MouseEvent;
+
+import javax.swing.event.MouseInputAdapter;
+
+public class ScreenWidthMouseListener extends MouseInputAdapter {
+	private ScreenSharerFrame frame;
+	private double x = 0;
+
+	public ScreenWidthMouseListener(ScreenSharerFrame frame) {
+		this.frame = frame;
+	}
+
+	public void mouseEntered(MouseEvent e) {
+		frame.setCursor(Cursor.getPredefinedCursor(Cursor.W_RESIZE_CURSOR));
+	}
+
+	public void mouseExited(MouseEvent e) {
+		frame.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+	}
+
+	public void mousePressed(MouseEvent e) {
+		frame.setShowWarning(false);
+		this.x = e.getX();
+	}
+
+	public void mouseReleased(MouseEvent e) {
+		frame.setShowWarning(true);
+	}
+
+	public void mouseDragged(MouseEvent e) {
+		if (!((Component)e.getSource()).isEnabled()) {
+			return;
+		}
+		double newX = e.getX();
+
+		int newWidth = ScreenDimensions.spinnerWidth - (int)(x - newX);
+		int newSpinnerX = ScreenDimensions.spinnerX + newWidth;
+
+		if (0 <= newSpinnerX && newSpinnerX <= ScreenDimensions.widthMax) {
+			frame.setDoUpdateBounds(false);
+			frame.setSpinnerWidth(newWidth);
+			frame.setDoUpdateBounds(true);
+			frame.updateVScreenBounds();
+			frame.calcRescaleFactors();
+		}
+	}
+}
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenXMouseListener.java b/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenXMouseListener.java
new file mode 100644
index 0000000..dc41e96
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenXMouseListener.java
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.screen.webstart.gui;
+
+import java.awt.Component;
+import java.awt.Cursor;
+import java.awt.event.MouseEvent;
+
+import javax.swing.event.MouseInputAdapter;
+
+public class ScreenXMouseListener extends MouseInputAdapter {
+	private ScreenSharerFrame frame;
+	private double x = 0;
+
+	public ScreenXMouseListener(ScreenSharerFrame frame) {
+		this.frame = frame;
+	}
+
+	public void mouseEntered(MouseEvent e) {
+		frame.setCursor(Cursor.getPredefinedCursor(Cursor.W_RESIZE_CURSOR));
+	}
+
+	public void mouseExited(MouseEvent e) {
+		frame.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+	}
+
+	public void mousePressed(MouseEvent e) {
+		frame.setShowWarning(false);
+		this.x = e.getX();
+	}
+
+	public void mouseReleased(MouseEvent e) {
+		frame.setShowWarning(true);
+	}
+
+	public void mouseDragged(MouseEvent e) {
+		if (!((Component)e.getSource()).isEnabled()) {
+			return;
+		}
+		double newX = e.getX();
+		int delta = (int) (x - newX);
+		int newXPosition = ScreenDimensions.spinnerX - delta;
+		int newWidth = ScreenDimensions.spinnerWidth + delta;
+
+		if (newXPosition >= 0 && newWidth >= 0) {
+			frame.setDoUpdateBounds(false);
+			frame.setSpinnerX(newXPosition);
+			frame.setSpinnerWidth(newWidth);
+			frame.setDoUpdateBounds(true);
+			frame.updateVScreenBounds();
+			frame.calcRescaleFactors();
+		}
+	}
+}
diff --git a/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenYMouseListener.java b/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenYMouseListener.java
new file mode 100644
index 0000000..69de62e
--- /dev/null
+++ b/src/screenshare/java/org/apache/openmeetings/screen/webstart/gui/ScreenYMouseListener.java
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.screen.webstart.gui;
+
+import java.awt.Component;
+import java.awt.Cursor;
+import java.awt.event.MouseEvent;
+
+import javax.swing.event.MouseInputAdapter;
+
+public class ScreenYMouseListener extends MouseInputAdapter {
+	private ScreenSharerFrame frame;
+	private double y = 0;
+
+	public ScreenYMouseListener(ScreenSharerFrame frame) {
+		this.frame = frame;
+	}
+
+	public void mouseEntered(MouseEvent e) {
+		frame.setCursor(Cursor.getPredefinedCursor(Cursor.N_RESIZE_CURSOR));
+	}
+
+	public void mouseExited(MouseEvent e) {
+		frame.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+	}
+
+	public void mousePressed(MouseEvent e) {
+		frame.setShowWarning(false);
+		this.y = e.getY();
+	}
+
+	public void mouseReleased(MouseEvent e) {
+		frame.setShowWarning(true);
+	}
+
+	public void mouseDragged(MouseEvent e) {
+		if (!((Component)e.getSource()).isEnabled()) {
+			return;
+		}
+		double newY = e.getY();
+
+		int delta = (int) (y - newY);
+		int newYPosition = ScreenDimensions.spinnerY - delta;
+		int newHeight = ScreenDimensions.spinnerHeight + delta;
+
+		if (newYPosition >= 0 && newHeight >= 0) {
+			frame.setDoUpdateBounds(false);
+			frame.setSpinnerY(newYPosition);
+			frame.setSpinnerHeight(newHeight);
+			frame.setDoUpdateBounds(true);
+			frame.updateVScreenBounds();
+			frame.calcRescaleFactors();
+		}
+	}
+}
diff --git a/src/screenshare/resources/logback.xml b/src/screenshare/resources/logback.xml
new file mode 100644
index 0000000..dfbb281
--- /dev/null
+++ b/src/screenshare/resources/logback.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+
+<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:noNamespaceSchemaLocation="logback.xsd">
+	<contextName>${current_openmeetings_context_name}</contextName>
+
+	<jmxConfigurator contextName="${current_openmeetings_context_name}" />
+
+	<appender name="FLOG2" class="ch.qos.logback.core.FileAppender">
+		<File>screensharing.log</File>
+		<Append>false</Append>
+		<Encoding>UTF-8</Encoding>
+		<BufferedIO>false</BufferedIO>
+		<ImmediateFlush>true</ImmediateFlush>
+		<layout class="ch.qos.logback.classic.PatternLayout">
+			<pattern>%5p %d{MM-dd HH:mm:ss.SSS } %L %c{10} [%t] - %m%n</pattern>
+		</layout>
+	</appender>
+	<appender name="CONSOLE2" class="ch.qos.logback.core.ConsoleAppender">
+		<layout class="ch.qos.logback.classic.PatternLayout">
+			<pattern>%5p %d{MM-dd HH:mm:ss.SSS } %L %c{10} [%t] - %m%n</pattern>
+		</layout>
+	</appender>
+	<logger name="org.apache.openmeetings">
+		<level value="DEBUG" />
+	</logger>
+	<logger name="org.red5.server.net.rtmp.codec.RTMPProtocolDecoder">
+		<level value="OFF" />
+	</logger>
+	<root>
+		<level value="INFO" />
+		<appender-ref ref="FLOG2" />
+		<appender-ref ref="CONSOLE2" />
+	</root>
+</configuration>
diff --git a/src/screenshare/resources/logback.xsd b/src/screenshare/resources/logback.xsd
new file mode 100644
index 0000000..c06e5a7
--- /dev/null
+++ b/src/screenshare/resources/logback.xsd
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

+  <xs:element name="configuration">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element ref="contextName"/>

+        <xs:element ref="jmxConfigurator"/>

+        <xs:element maxOccurs="unbounded" ref="appender"/>

+        <xs:element maxOccurs="unbounded" ref="logger"/>

+        <xs:element ref="root"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="contextName" type="xs:string"/>

+  <xs:element name="jmxConfigurator">

+    <xs:complexType>

+      <xs:attribute name="contextName" use="required"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="appender">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:sequence minOccurs="0">

+          <xs:element ref="File"/>

+          <xs:element ref="Append"/>

+          <xs:element ref="Encoding"/>

+          <xs:element ref="BufferedIO"/>

+          <xs:element ref="ImmediateFlush"/>

+        </xs:sequence>

+        <xs:element ref="layout"/>

+      </xs:sequence>

+      <xs:attribute name="class" use="required"/>

+      <xs:attribute name="name" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="File" type="xs:string"/>

+  <xs:element name="Append" type="xs:boolean"/>

+  <xs:element name="Encoding" type="xs:NCName"/>

+  <xs:element name="BufferedIO" type="xs:boolean"/>

+  <xs:element name="ImmediateFlush" type="xs:boolean"/>

+  <xs:element name="layout">

+    <xs:complexType>

+      <xs:choice>

+        <xs:element ref="Pattern"/>

+        <xs:element ref="pattern"/>

+      </xs:choice>

+      <xs:attribute name="class" use="required"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="Pattern" type="xs:string"/>

+  <xs:element name="pattern" type="xs:string"/>

+  <xs:element name="logger">

+    <xs:complexType>

+      <xs:complexContent>

+        <xs:extension base="level">

+          <xs:attribute name="name" use="required" type="xs:NCName"/>

+        </xs:extension>

+      </xs:complexContent>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="root">

+    <xs:complexType>

+      <xs:complexContent>

+        <xs:extension base="level">

+          <xs:sequence>

+            <xs:element maxOccurs="unbounded" ref="appender-ref"/>

+          </xs:sequence>

+        </xs:extension>

+      </xs:complexContent>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="appender-ref">

+    <xs:complexType>

+      <xs:attribute name="ref" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:complexType name="level">

+    <xs:sequence>

+      <xs:element ref="level"/>

+    </xs:sequence>

+  </xs:complexType>

+  <xs:element name="level">

+    <xs:complexType>

+      <xs:attribute name="value" use="required" type="xs:NCName"/>

+    </xs:complexType>

+  </xs:element>

+</xs:schema>

diff --git a/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java b/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
new file mode 100644
index 0000000..f1764a9
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
@@ -0,0 +1,187 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Date;
+import java.util.List;
+
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypDao;
+import org.apache.openmeetings.db.dao.room.RoomTypeDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.db.entity.calendar.AppointmentReminderTyps;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.room.RoomType;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.installation.ImportInitvalues;
+import org.apache.openmeetings.installation.InstallationConfig;
+import org.junit.Before;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public abstract class AbstractJUnitDefaults extends AbstractSpringTest {
+	private static final Logger log = Red5LoggerFactory.getLogger(AbstractJUnitDefaults.class);
+	
+	protected static final String username = "swagner";
+	protected static final String userpass = "qweqwe";
+	private static final String orgname = "smoketest";
+	private static final String timeZone = "Europe/Berlin";
+	private static final String useremail = "junit@openmeetings.apache.org";
+	
+	@Autowired
+	private AppointmentDao appointmentDao;
+	@Autowired
+	private AppointmentReminderTypDao reminderTypeDao;
+	@Autowired
+	private RoomTypeDao roomTypeDao;
+	@Autowired
+	private UserManager userManager;
+	@Autowired
+	private UserDao userDao;
+	@Autowired
+	private ImportInitvalues importInitvalues;
+	@Autowired
+	private ConfigurationDao configurationDao;
+	
+	private List<AppointmentReminderTyps> remindTypes;
+	private List<RoomType> roomTypes;
+
+	@Before
+	public void setUp() throws Exception {
+		super.setUp();
+        if (userDao.count() < 1) {
+            makeDefaultScheme();
+            log.info("Default scheme created successfully");
+        } else {
+            log.info("Default scheme already created");
+        }
+        remindTypes = reminderTypeDao.getAppointmentReminderTypList(1L);
+        roomTypes = roomTypeDao.getAll(1L);
+    }
+
+	public Appointment createAppointment() {
+		Date appointmentstart = new Date();
+		Date appointmentend = new Date();
+		appointmentend.setTime(appointmentstart.getTime() + 3600);
+		return createAppointment(appointmentstart, appointmentend);
+	}
+	
+	public Appointment getAppointment(Date start, Date end) {
+		assertNotNull("Can't access to appointment dao implimentation", appointmentDao);
+
+		// add new appointment
+		Appointment ap = new Appointment();
+
+		ap.setTitle("appointmentName");
+		ap.setLocation("appointmentLocation");
+
+		ap.setStart(start);
+		ap.setEnd(end);
+		ap.setDescription("appointmentDescription");
+		ap.setInserted(new Date());
+		ap.setDeleted(false);
+		ap.setIsDaily(false);
+		ap.setIsWeekly(false);
+		ap.setIsMonthly(false);
+		ap.setIsYearly(false);
+		ap.setPasswordProtected(false);
+
+		ap.setOwner(userDao.get(1L));
+		ap.setConnectedEvent(false);
+
+		if (ap.getRemind() == null && !remindTypes.isEmpty()) {
+			ap.setRemind(remindTypes.get(0));
+		}
+		
+		Room r = new Room();
+		if (!roomTypes.isEmpty()) {
+			r.setRoomtype(roomTypes.get(0));
+		}
+		r.setAppointment(true);
+		ap.setRoom(r);
+		return ap;
+	}
+
+	public Appointment createAppointment(Date start, Date end) {
+		assertNotNull("Can't access to appointment dao implimentation", appointmentDao);
+
+		// add new appointment
+		Appointment ap = new Appointment();
+
+		ap.setTitle("appointmentName");
+		ap.setLocation("appointmentLocation");
+
+		ap.setStart(start);
+		ap.setEnd(end);
+		ap.setDescription("appointmentDescription");
+		ap.setInserted(new Date());
+		ap.setDeleted(false);
+		ap.setIsDaily(false);
+		ap.setIsWeekly(false);
+		ap.setIsMonthly(false);
+		ap.setIsYearly(false);
+		ap.setPasswordProtected(false);
+
+		ap.setOwner(userDao.get(1L));
+		ap.setConnectedEvent(false);
+		Long id = appointmentDao.addAppointmentObj(ap);
+		assertNotNull("Cann't add appointment", id);
+		return ap;
+	}
+
+	public User createUser(int rnd) throws Exception {
+		User u = new User();
+		// add user
+		u.setFirstname("firstname" + rnd);
+		u.setLastname("lastname" + rnd);
+		u.setLogin("login" + rnd);
+		u.updatePassword(configurationDao, "pass" + rnd);
+		u.setLanguage_id(1L);
+		Long user_id = userManager.addUser(u);
+		assertTrue("Cann't add user", user_id > 0);
+		u = userManager.getUserByIdAndDeleted(user_id);
+		assertNotNull("User should not be null", u);
+		return u;
+	}
+
+	private void makeDefaultScheme() throws Exception {
+		InstallationConfig cfg = new InstallationConfig();
+		cfg.username = username;
+		cfg.password = userpass;
+		cfg.email = useremail;
+		cfg.group = orgname;
+		cfg.ical_timeZone = timeZone;
+		importInitvalues.loadAll(cfg, false);
+	}
+
+	public User createUserContact(int rnd, Long ownerId) {
+		User user = userDao.getContact("email" + rnd, "firstname" + rnd, "lastname" + rnd, ownerId);
+		user = userDao.update(user, ownerId);
+		assertNotNull("Cann't add user", user);
+		return user;
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/AbstractSpringTest.java b/src/test/java/org/apache/openmeetings/test/AbstractSpringTest.java
new file mode 100644
index 0000000..46e6c53
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/AbstractSpringTest.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test;
+
+import static org.junit.Assert.fail;
+
+import org.apache.openmeetings.util.OmFileHelper;
+import org.junit.Before;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.TestExecutionListeners;
+import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@TestExecutionListeners({})
+@ContextConfiguration(locations={"classpath:openmeetings-applicationContext.xml"}, inheritLocations = true)
+public abstract class AbstractSpringTest extends AbstractJUnit4SpringContextTests {
+
+	@Before
+	public void setUp() throws Exception {
+		setOmHome();
+	}
+	
+	protected void setOmHome() {
+		String webappsDir = System.getProperty("om.home", ".");
+		OmFileHelper.setOmHome(webappsDir);
+		if (!OmFileHelper.getOmHome().exists() || !OmFileHelper.getOmHome().isDirectory()) {
+			fail("Invalid directory is specified as OM HOME: " + webappsDir);
+		}
+	}
+}
diff --git a/src/test/java/org/apache/openmeetings/test/AbstractWicketTester.java b/src/test/java/org/apache/openmeetings/test/AbstractWicketTester.java
new file mode 100644
index 0000000..e919c91
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/AbstractWicketTester.java
@@ -0,0 +1,53 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.test;

+

+import static org.apache.openmeetings.web.app.Application.getWicketTester;

+import static org.junit.Assert.assertNotNull;

+import static org.junit.Assert.assertTrue;

+

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.wicket.util.tester.WicketTester;

+import org.junit.After;

+

+public class AbstractWicketTester extends AbstractJUnitDefaults {

+

+	protected WicketTester tester;

+	 	

+	@Override

+	public void setUp() throws Exception {

+		super.setUp();

+        tester = getWicketTester();

+        assertNotNull("Web session should not be null", WebSession.get());

+	}

+

+	public void login(String login, String password) {

+		if (login != null && password != null) {

+			WebSession.get().signIn(login, password, "");

+		} else {

+			WebSession.get().signIn(username, userpass, "");

+		}

+		assertTrue("Web session is not signed in for user: " + (login != null ? login : username), WebSession.get().isSignedIn());

+	}

+	

+	@After

+	public void tearDown() {

+		tester.destroy();

+	}

+}

diff --git a/src/test/java/org/apache/openmeetings/test/EditorPaneLinkDetector.java b/src/test/java/org/apache/openmeetings/test/EditorPaneLinkDetector.java
new file mode 100644
index 0000000..b0f6dc8
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/EditorPaneLinkDetector.java
@@ -0,0 +1,310 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test;
+
+/**
+ * David Bismut, david.bismut@gmail.com
+ * Intern, SETLabs, Infosys Technologies Ltd. May 2004 - Jul 2004
+ * Ecole des Mines de Nantes, France
+ */
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseMotionAdapter;
+import java.io.IOException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.accessibility.AccessibleHypertext;
+import javax.swing.JEditorPane;
+import javax.swing.text.AttributeSet;
+import javax.swing.text.BadLocationException;
+import javax.swing.text.Element;
+import javax.swing.text.html.HTML;
+import javax.swing.text.html.HTMLDocument;
+import javax.swing.text.html.HTMLEditorKit;
+import javax.swing.text.html.StyleSheet;
+import javax.swing.text.html.parser.ParserDelegator;
+
+/**
+ * A "HTML" JEditorPane embedded with a special HTMLDocument that detects urls
+ * and displays them as hyperlinks. When CTRL is pressed, the urls are
+ * clickable.
+ * 
+ * @author David Bismut
+ *  
+ */
+public class EditorPaneLinkDetector extends JEditorPane {
+	private static final long serialVersionUID = 2811878994346374017L;
+
+	/**
+	 * Creates a <code>EditorPaneLinkDetector</code>.
+	 */
+	public EditorPaneLinkDetector() {
+
+		HTMLEditorKit htmlkit = new HTMLEditorKit();
+
+		StyleSheet styles = htmlkit.getStyleSheet();
+		StyleSheet ss = new StyleSheet();
+
+		ss.addStyleSheet(styles);
+
+		ss.addRule("body {font-family:arial;font-size:12pt}");
+		ss.addRule("p {font-family:arial;margin:2}");
+
+		HTMLDocument doc = new HTMLDocLinkDetector(ss);
+
+		setEditorKit(htmlkit);
+
+		setDocument(doc);
+
+		addMouseMotionListener(new MouseMotionAdapter() {
+			public void mouseMoved(MouseEvent e) {
+
+				AccessibleJTextComponent context = (AccessibleJTextComponent) getAccessibleContext()
+						.getAccessibleEditableText();
+
+				AccessibleHypertext accText = (AccessibleHypertext) context
+						.getAccessibleText();
+
+				int index = accText.getIndexAtPoint(e.getPoint());
+
+				int linkIndex = accText.getLinkIndex(index);
+				if (linkIndex == -1) {
+					setToolTipText(null);
+					return;
+				}
+
+				String linkDesc = accText.getLink(linkIndex)
+						.getAccessibleActionDescription(0);
+
+				String toolTipText = "<html><body style='margin: 3'>"
+						+ linkDesc
+						+ "<br><b>CTRL + click to follow link</b></body></html>";
+				setToolTipText(toolTipText);
+			}
+		});
+
+		addKeyListener(new KeyAdapter() {
+			public void keyPressed(KeyEvent e) {
+				
+				if (e.getKeyCode() == KeyEvent.VK_CONTROL) {
+					if (isEditable())
+						setEditable(false);
+				} else {
+					if (!isEditable())
+						setEditable(true);
+				}
+
+			}
+
+			public void keyReleased(KeyEvent e) {
+				
+				if (e.getKeyCode() == KeyEvent.VK_CONTROL) {
+					setEditable(true);
+				}
+
+			}
+		});
+	}
+
+	protected class HTMLDocLinkDetector extends HTMLDocument {
+
+		/**
+		 * 
+		 */
+		private static final long serialVersionUID = 1226244167782160437L;
+
+		public HTMLDocLinkDetector(StyleSheet ss) {
+			super(ss);
+			
+			setAsynchronousLoadPriority(4);
+			setTokenThreshold(100);
+			setParser(new ParserDelegator());
+		}
+
+		/**
+		 * Returns true if the Element contains a HTML.Tag.A attribute, false
+		 * otherwise.
+		 * 
+		 * @param e
+		 *            the Element to be checkd
+		 * @return
+		 */
+		protected boolean isLink(Element e) {
+			
+			return (e.getAttributes().getAttribute(HTML.Tag.A) != null);
+
+		}
+
+		/**
+		 * This method corrects or creates a url contained in an Element as an
+		 * hyperlink.
+		 * 
+		 * @param e
+		 *            the Element to be computed
+		 * @throws BadLocationException
+		 */
+		protected void computeLinks(Element e) throws BadLocationException {
+			
+			int caretPos = getCaretPosition();
+			try {
+				if (isLink(e))
+					correctLink(e);
+				else
+					createLink(e);
+			} catch (IOException ex) {
+				ex.printStackTrace();
+			}
+			setCaretPosition(Math.min(caretPos, getLength()));
+		}
+
+		/**
+		 * The method corrects the url inside an Element, that is supposed to be
+		 * an element containing a link only. This function is typically called
+		 * when the url is beeing edited. What the function does is to remove
+		 * the html tags, so the url is actually edited in plain text and not as
+		 * an hyperlink.
+		 * 
+		 * @param e
+		 *            the Element that contains the url
+		 * @throws BadLocationException
+		 * @throws IOException
+		 */
+		protected void correctLink(Element e) throws BadLocationException,
+				IOException {
+			
+			int length = e.getEndOffset() - e.getStartOffset();
+
+			boolean endOfDoc = e.getEndOffset() == getLength() + 1;
+
+			// to avoid catching the final '\n' of the document.
+			if (endOfDoc)
+				length--;
+
+			String text = getText(e.getStartOffset(), length);
+
+			setOuterHTML(e, text);
+
+			// insert final spaces ignored by the html
+			Matcher spaceMatcher = Pattern.compile("(\\s+)$").matcher(text);
+
+			if (spaceMatcher.find()) {
+				String endingSpaces = spaceMatcher.group(1);
+				insertString(Math.min(getLength(), e.getEndOffset()),
+						endingSpaces, null);
+			}
+		}
+
+		/**
+		 * The method check if the element contains a url in plain text, and if
+		 * so, it creates the html tag HTML.Tag.A to have the url displayed as
+		 * an hyperlink.
+		 * 
+		 * @param e
+		 *            element that contains the url
+		 * @throws BadLocationException
+		 * @throws IOException
+		 */
+		protected void createLink(Element e) throws BadLocationException,
+				IOException {
+			
+			int caretPos = getCaretPosition();
+
+			int startOffset = e.getStartOffset();
+			int length = e.getEndOffset() - e.getStartOffset();
+
+			boolean endOfDoc = e.getEndOffset() == getLength() + 1;
+			// to avoid catching the final '\n' of the document.
+			if (endOfDoc)
+				length--;
+
+			String text = getText(startOffset, length);
+
+			Matcher matcher = Pattern.compile(
+					"(?i)(\\b(http://|https://|www.|ftp://|file:/|mailto:)\\S+)(\\s+)")
+					.matcher(text);
+
+			if (matcher.find()) {
+				String url = matcher.group(1);
+				//String prefix = matcher.group(2);
+				String endingSpaces = matcher.group(3);
+
+				// to ignore characters after the caret
+				int validPos = startOffset + matcher.start(3) + 1;
+				if (validPos > caretPos)
+					return;
+
+				Matcher dotEndMatcher = Pattern.compile("([\\W&&[^/]]+)$")
+						.matcher(url);
+
+				//Ending non alpha characters like [.,?%] shouldn't be included
+				// in the url.
+				String endingDots = "";
+				if (dotEndMatcher.find()) {
+					endingDots = dotEndMatcher.group(1);
+					url = dotEndMatcher.replaceFirst("");
+				}
+
+				text = matcher.replaceFirst("<a href='" + url + "'>" + url
+						+ "</a>" + endingDots + endingSpaces);
+
+				setOuterHTML(e, text);
+
+				// insert initial spaces ignored by the html
+				Matcher spaceMatcher = Pattern.compile("^(\\s+)").matcher(text);
+
+				if (spaceMatcher.find()) {
+					String initialSpaces = spaceMatcher.group(1);
+					insertString(startOffset, initialSpaces, null);
+				}
+
+				// insert final spaces ignored by the html
+				spaceMatcher = Pattern.compile("(\\s+)$").matcher(text);
+
+				if (spaceMatcher.find()) {
+					String extraSpaces = spaceMatcher.group(1);
+					int endoffset = e.getEndOffset();
+					if (extraSpaces.charAt(extraSpaces.length() - 1) == '\n') {
+						extraSpaces = extraSpaces.substring(0, extraSpaces
+								.length() - 1);
+						endoffset--;
+					}
+					insertString(Math.min(getLength(), endoffset), extraSpaces,
+							null);
+				}
+			}
+		}
+
+		public void remove(int offs, int len) throws BadLocationException {
+
+			super.remove(offs, len);
+			Element e = getCharacterElement(offs - len);
+			computeLinks(e);
+		}
+
+		public void insertString(int offs, String str, AttributeSet a)
+				throws BadLocationException {
+
+			super.insertString(offs, str, a);
+			Element e = getCharacterElement(offs);
+			computeLinks(e);
+		}
+	}
+}
diff --git a/src/test/java/org/apache/openmeetings/test/TestConnection.java b/src/test/java/org/apache/openmeetings/test/TestConnection.java
new file mode 100644
index 0000000..4bf09be
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/TestConnection.java
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test;
+
+import org.junit.Test;
+
+public class TestConnection {
+
+	@Test
+	public void testNoop() {
+		
+	}
+}
diff --git a/src/test/java/org/apache/openmeetings/test/asf/AsfCopyRightReplace.java b/src/test/java/org/apache/openmeetings/test/asf/AsfCopyRightReplace.java
new file mode 100644
index 0000000..1a78150
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/asf/AsfCopyRightReplace.java
@@ -0,0 +1,210 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.asf;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FilenameFilter;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.io.StringWriter;
+
+public class AsfCopyRightReplace {
+
+	String asf_copyright = "/*\n"
+			+ " * Licensed to the Apache Software Foundation (ASF) under one\n"
+			+ " * or more contributor license agreements.  See the NOTICE file\n"
+			+ " * distributed with this work for additional information\n"
+			+ " * regarding copyright ownership.  The ASF licenses this file\n"
+			+ " * to you under the Apache License, Version 2.0 (the\n"
+			+ " * \"License\") +  you may not use this file except in compliance\n"
+			+ " * with the License.  You may obtain a copy of the License at\n"
+			+ " *\n"
+			+ " *   http://www.apache.org/licenses/LICENSE-2.0\n"
+			+ " *\n"
+			+ " * Unless required by applicable law or agreed to in writing,\n"
+			+ " * software distributed under the License is distributed on an\n"
+			+ " * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n"
+			+ " * KIND, either express or implied.  See the License for the\n"
+			+ " * specific language governing permissions and limitations\n"
+			+ " * under the License.\n" + " */\n";
+
+	String asf_xml_copyright = "<!--\n"
+			+ "  Licensed to the Apache Software Foundation (ASF) under one\n"
+			+ "  or more contributor license agreements.  See the NOTICE file\n"
+			+ "  distributed with this work for additional information\n"
+			+ "  regarding copyright ownership.  The ASF licenses this file\n"
+			+ "  to you under the Apache License, Version 2.0 (the\n"
+			+ "  \"License\"); you may not use this file except in compliance\n"
+			+ "  with the License.  You may obtain a copy of the License at\n"
+			+ "  \n" + "      http://www.apache.org/licenses/LICENSE-2.0\n"
+			+ "    	  \n"
+			+ "  Unless required by applicable law or agreed to in writing,\n"
+			+ "  software distributed under the License is distributed on an\n"
+			+ "  \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n"
+			+ "  KIND, either express or implied.  See the License for the\n"
+			+ "  specific language governing permissions and limitations\n"
+			+ "  under the License.\n" + "  \n" + "-->\n";
+	
+	String asf_vm_copyright = "#\n"
+			+ "# Licensed to the Apache Software Foundation (ASF) under one\n"
+			+ "# or more contributor license agreements.  See the NOTICE file\n"
+			+ "# distributed with this work for additional information\n"
+			+ "# regarding copyright ownership.  The ASF licenses this file\n"
+			+ "# to you under the Apache License, Version 2.0 (the\n"
+			+ "# \"License\") +  you may not use this file except in compliance\n"
+			+ "# with the License.  You may obtain a copy of the License at\n"
+			+ "#\n"
+			+ "#   http://www.apache.org/licenses/LICENSE-2.0\n"
+			+ "#\n"
+			+ "# Unless required by applicable law or agreed to in writing,\n"
+			+ "# software distributed under the License is distributed on an\n"
+			+ "# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n"
+			+ "# KIND, either express or implied.  See the License for the\n"
+			+ "# specific language governing permissions and limitations\n"
+			+ "# under the License.\n" + "#/\n";
+
+	public static void main(String... args) {
+		new AsfCopyRightReplace();
+	}
+
+	public AsfCopyRightReplace() {
+		scanFolder(new File("./src/main"));
+	}
+
+	private void scanFolder(File folder) {
+
+		for (File javaFile : folder.listFiles(new FilenameFilter() {
+			public boolean accept(File b, String name) {
+				return name.endsWith(".java") || name.endsWith(".vm");
+			}
+		})) {
+			scanAndWriteJavaFile(javaFile);
+		}
+
+		for (File javaFile : folder.listFiles(new FilenameFilter() {
+			public boolean accept(File b, String name) {
+				return name.endsWith(".xml") || name.endsWith(".lzx");
+			}
+		})) {
+			scanAndWriteXMLFile(javaFile);
+		}
+
+		for (File folderFile : folder.listFiles(new FilenameFilter() {
+			public boolean accept(File b, String name) {
+				File f = new File(b, name);
+				return f.isDirectory();
+			}
+		})) {
+			scanFolder(folderFile);
+		}
+	}
+
+	private void scanAndWriteXMLFile(File javaFile) {
+		try {
+			System.out.println("Processing " + javaFile.getCanonicalPath());
+
+			BufferedReader is = new BufferedReader(new InputStreamReader(
+					new FileInputStream(javaFile), "UTF-8"));
+
+			String line;
+			String firstline = "";
+			StringWriter strWriter = new StringWriter();
+			int i = 0;
+
+			while ((line = is.readLine()) != null) {
+				if (i == 0) {
+					firstline = line;
+					
+					if (firstline.startsWith("<canvas")) {
+						strWriter.append(asf_xml_copyright);
+					} else if (firstline.startsWith("<library")) {
+						strWriter.append(asf_xml_copyright);
+					}
+							
+					
+				} else if (i == 1) {
+					if (firstline.startsWith("<?xml ")
+							&& !line.startsWith("<!--")) {
+						strWriter.append(asf_xml_copyright);
+					} else if (firstline.startsWith("<?xml ")
+							&& !line.startsWith("<library")) {
+						strWriter.append(asf_xml_copyright);
+					} else if (firstline.startsWith("<?xml ")
+							&& !line.startsWith("<canvas")) {
+						strWriter.append(asf_xml_copyright);
+					}
+				}
+				strWriter.append(line + "\n");
+				i++;
+			}
+			is.close();
+
+			OutputStreamWriter out = new OutputStreamWriter(
+					new FileOutputStream(javaFile.getCanonicalPath()), "UTF-8");
+
+			out.write(strWriter.toString());
+			out.flush();
+			out.close();
+
+		} catch (Exception err) {
+			err.printStackTrace();
+		}
+	}
+
+	private void scanAndWriteJavaFile(File javaFile) {
+		try {
+			System.out.println("Processing " + javaFile.getCanonicalPath());
+
+			BufferedReader is = new BufferedReader(new InputStreamReader(
+					new FileInputStream(javaFile), "UTF-8"));
+
+			String line;
+			StringWriter strWriter = new StringWriter();
+			int i = 0;
+
+			while ((line = is.readLine()) != null) {
+				if (i == 0) {
+					if (line.startsWith("package ")) {
+						strWriter.append(asf_copyright);
+					} else if (line.startsWith("## OpenMeetings") 
+							&& javaFile.getName().endsWith(".vm")) {
+						strWriter.append(asf_vm_copyright);
+					}
+				}
+				strWriter.append(line + "\n");
+				i++;
+			}
+			is.close();
+			
+			OutputStreamWriter out = new OutputStreamWriter(
+					new FileOutputStream(javaFile.getCanonicalPath()), "UTF-8");
+
+			out.write(strWriter.toString());
+			out.flush();
+			out.close();
+
+		} catch (Exception err) {
+			err.printStackTrace();
+		}
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/backup/TestOldBackups.java b/src/test/java/org/apache/openmeetings/test/backup/TestOldBackups.java
new file mode 100644
index 0000000..666d837
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/backup/TestOldBackups.java
@@ -0,0 +1,106 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.test.backup;

+

+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;

+import static org.junit.Assert.assertTrue;

+import static org.junit.Assert.fail;

+

+import java.io.File;

+import java.io.FileInputStream;

+

+import org.apache.openmeetings.backup.BackupImport;

+import org.apache.openmeetings.data.conference.RoomManager;

+import org.apache.openmeetings.db.dao.calendar.AppointmentDao;

+import org.apache.openmeetings.db.dao.calendar.MeetingMemberDao;

+import org.apache.openmeetings.db.dao.room.RoomDao;

+import org.apache.openmeetings.db.dao.room.RoomOrganisationDao;

+import org.apache.openmeetings.db.dao.user.AdminUserDao;

+import org.apache.openmeetings.db.dao.user.OrganisationDao;

+import org.apache.openmeetings.test.AbstractJUnitDefaults;

+import org.junit.Test;

+import org.red5.logging.Red5LoggerFactory;

+import org.slf4j.Logger;

+import org.springframework.beans.factory.annotation.Autowired;

+

+public class TestOldBackups extends AbstractJUnitDefaults {

+	private static final Logger log = Red5LoggerFactory.getLogger(TestOldBackups.class, webAppRootKey);

+	

+	@Autowired

+	private BackupImport backupController;

+	@Autowired

+	private OrganisationDao organisationDao;

+	@Autowired

+	private AdminUserDao usersDao;

+	@Autowired

+	private RoomDao roomDao;

+	@Autowired

+	private RoomManager roomManager;

+	@Autowired

+	private AppointmentDao appointmentDao;

+	@Autowired

+	private MeetingMemberDao meetingMemberDao;

+	@Autowired

+	private RoomOrganisationDao roomOrganisationDao;

+

+	@Test

+	public void importOldVersions() {

+		String backupsDir = System.getProperty("backups.dir", ".");

+		File backupsHome = new File(backupsDir);

+		

+		if (!backupsHome.exists() || !backupsHome.isDirectory()) {

+			fail("Invalid directory is specified for backup files: " + backupsDir);

+		}

+		long orgCount = 0;

+		long userCount = 0;

+		long roomCount = 0;

+		long roomOrgCount = 0;

+		long apptCount = 0;

+		long meetingMembersCount = 0;

+		for (File backup : backupsHome.listFiles()) {

+			String name = backup.getName();

+			log.debug("Import of backup file : '" + name + "' is started ...");

+			try {

+				backupController.performImport(new FileInputStream(backup));

+				long newOrgCount = organisationDao.count();

+				long newUserCount = usersDao.count();

+				long newRoomCount = roomDao.count();

+				long newRoomOrgCount = roomOrganisationDao.get().size();

+				long newApptCount = appointmentDao.getAppointments().size();

+				long newMeetingMembersCount = meetingMemberDao.getMeetingMembers().size();

+				assertTrue("Zero organizations were imported from " + name, newOrgCount > orgCount);

+				assertTrue("Zero users were imported from " + name, newUserCount > userCount);

+				assertTrue("Zero rooms were imported from " + name, newRoomCount > roomCount);

+				assertTrue("Zero room organizations were imported from " + name, newRoomOrgCount > roomOrgCount);

+				assertTrue("Zero appointments were imported from " + name, newApptCount > apptCount);

+				assertTrue("Zero meeting members were imported from " + name, newMeetingMembersCount > meetingMembersCount);

+				

+				orgCount = newOrgCount;

+				userCount = newUserCount;

+				roomCount = newRoomCount;

+				roomOrgCount = newRoomOrgCount;

+				apptCount = newApptCount;

+				meetingMembersCount = newMeetingMembersCount;

+			} catch (Exception e) {

+				throw new RuntimeException("Unexpected exception while importing backup: " + name, e);

+			}

+			log.debug("... Done.");

+		}

+	}

+}

diff --git a/src/test/java/org/apache/openmeetings/test/calendar/TestAppointmentAddAppointment.java b/src/test/java/org/apache/openmeetings/test/calendar/TestAppointmentAddAppointment.java
new file mode 100644
index 0000000..615b784
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/calendar/TestAppointmentAddAppointment.java
@@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.calendar;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Calendar;
+
+import org.apache.openmeetings.data.calendar.management.AppointmentLogic;
+import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.test.AbstractWicketTester;
+import org.junit.Test;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+public class TestAppointmentAddAppointment extends AbstractWicketTester {
+	private static final Logger log = Red5LoggerFactory.getLogger(TestAppointmentAddAppointment.class, webAppRootKey);
+
+	@Autowired
+	private AppointmentLogic appointmentLogic;
+	@Autowired
+	private AppointmentDao appointmentDao;
+
+	@Test
+	public void saveAppointment() throws Exception {
+		log.debug("- 1 MeetingReminderJob.execute");
+		log.warn("- 2 MeetingReminderJob.execute");
+
+		Calendar start = Calendar.getInstance();
+		start.setTimeInMillis(start.getTimeInMillis() + 600000);
+
+		Calendar end = Calendar.getInstance();
+		end.setTimeInMillis(start.getTimeInMillis() + 600000);
+
+		String appointmentName = "Test 01";
+		String appointmentDescription = "Descr";
+		Long users_id = 1L;
+		String appointmentLocation = "office";
+		Boolean isMonthly = false;
+		Boolean isDaily = false;
+		Long categoryId = 1L;
+		Boolean isWeekly = false;
+		Long remind = 3L;
+		Boolean isYearly = false;
+		String[] mmClient = new String[1];
+		for (int i = 0; i < 1; i++) {
+			mmClient[0] = createClientObj("firstname" + i, "lastname" + i,
+					"first" + i + ".last" + i + "@webbase-design.de", "Etc/GMT+1");
+		}
+		Long language_id = 1L;
+		Long roomType = 1L;
+
+		Appointment a = appointmentLogic.getAppointment(appointmentName,
+				appointmentLocation, appointmentDescription,
+				start, end, isDaily, isWeekly,
+				isMonthly, isYearly, categoryId, remind, mmClient,
+				roomType, language_id, false, "", -1, users_id);
+		a = appointmentDao.update(a, users_id);
+		
+		Thread.sleep(3000);
+		
+		appointmentLogic.doScheduledMeetingReminder();
+		
+		Thread.sleep(3000);
+		
+		assertTrue("Saved appointment should have valid id: " + a.getId(), a.getId() != null && a.getId() > 0);
+	}
+
+	private String createClientObj(String firstname, String lastname, String email, String jNameTimeZone) {
+		StringBuilder sb = new StringBuilder();
+		sb.append(",") //memberId
+			.append(firstname).append(",")
+			.append(lastname).append(",")
+			.append(email).append(",")
+			.append(",") //userId
+			.append(jNameTimeZone);
+		return sb.toString();
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/calendar/TestAppointmentSchedulerTask.java b/src/test/java/org/apache/openmeetings/test/calendar/TestAppointmentSchedulerTask.java
new file mode 100644
index 0000000..226cb5d
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/calendar/TestAppointmentSchedulerTask.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.calendar;
+
+import static org.junit.Assert.assertTrue;
+
+import org.apache.openmeetings.data.calendar.management.AppointmentLogic;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.junit.Test;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestAppointmentSchedulerTask extends AbstractJUnitDefaults {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(TestAppointmentSchedulerTask.class, OpenmeetingsVariables.webAppRootKey);
+	
+	@Autowired
+	private AppointmentLogic appointmentLogic;
+	
+	@Test
+	public void doIt() {
+		log.debug("- 1 MeetingReminderJob.execute");
+		log.warn("- 2 MeetingReminderJob.execute");
+		try {
+			appointmentLogic.doScheduledMeetingReminder();
+			
+			assertTrue(true);
+		} catch (Exception err){
+			log.error("execute",err);
+		}
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointment.java b/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointment.java
new file mode 100644
index 0000000..ea529fa
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointment.java
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.calendar;
+
+
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+
+public class TestDatabaseStructureAppointment extends AbstractJUnitDefaults {
+
+	private static final Logger log = Logger.getLogger(TestDatabaseStructureAppointment.class);
+	@Autowired
+	private AppointmentDao appointmentDao;
+
+	@Test
+	public void testAddingGroup(){
+
+		try {
+			
+				Calendar cal = Calendar.getInstance();
+				cal.set(2008, 9, 2);
+				cal.get(Calendar.DAY_OF_MONTH);
+				cal.getTime();
+				
+				SimpleDateFormat format = new SimpleDateFormat( "yyyy-MM-dd" );
+				Date date = format.parse( "2008-17-08" );
+				Date date2 = format.parse( "2008-18-08" );
+		
+				List<Appointment> listAppoints =	appointmentDao.getAppointmentsByRange(1L, date, date2);
+			//List<Appointment> listAppoints = AppointmentDaoImpl.getInstance().searchAppointmentsByName("%");
+			//AppointmentDaoImpl.getInstance().getNextAppointmentById(1L);
+			//AppointmentDaoImpl.getInstance().addAppointment("mezo",1L, "Pforzheim", "zweiter", Calendar.getInstance().getTime() , 
+				//date, null, true, null, null, 1L,1L);
+			//AppointmentDaoImpl.getInstance().addAppointment("testap", "erster Test",Calendar.getInstance().getTime() , 
+					///Calendar.getInstance().getTime(), true, false, false, false, new Long(1), 1L);
+			log.debug("Anzahl: "+listAppoints.size());
+			
+			
+			for (Appointment appoints : listAppoints) {
+				log.debug("Termin: "+appoints.getTitle()+" startDate: "+appoints.getStart()+ " endDate: "+appoints.getEnd());
+				log.debug("MeetingMembers: "+appoints.getMeetingMembers().size());
+			}
+			
+			for (Iterator<Appointment> iter = listAppoints.iterator();iter.hasNext();) {
+				log.debug(""+iter.next());
+			}
+			
+			//AppointmentDaoImpl.getInstance().updateAppointment(1L,"neu", "erster Test",Calendar.getInstance().getTime() , 
+					//Calendar.getInstance().getTime(), true, false, false, false, new Long(1));
+			//log.debug("AppointmentReminderTypDaoImpl: "+appointmentReminderTypDaoImpl.getAppointmentReminderTypById(1L));
+		} catch (Exception err) {
+
+			log.error("[testAddingGroup]",err);
+
+		}
+
+		
+
+		
+
+	}
+
+
+
+}
+
diff --git a/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointmentReminderTyp.java b/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointmentReminderTyp.java
new file mode 100644
index 0000000..95a5a0f
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointmentReminderTyp.java
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.calendar;
+
+//import groovy.sql.Sql;
+
+import java.util.Calendar;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypDao;
+import org.apache.openmeetings.db.entity.calendar.AppointmentReminderTyps;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestDatabaseStructureAppointmentReminderTyp extends AbstractJUnitDefaults {
+
+	private static final Logger log = Logger
+			.getLogger(TestDatabaseStructureAppointmentReminderTyp.class);
+
+	@Autowired
+	private AppointmentReminderTypDao appointmentReminderTypDaoImpl;
+
+	@Test
+	public void testAddingGroup() {
+
+		try {
+
+			Calendar cal = Calendar.getInstance();
+			cal.set(2008, 9, 2);
+			cal.get(Calendar.DAY_OF_MONTH);
+			cal.getTime();
+
+			appointmentReminderTypDaoImpl.addAppointmentReminderTyps(1L,
+					"test 5 min", -1);
+			List<AppointmentReminderTyps> listAppoints = appointmentReminderTypDaoImpl
+					.getAppointmentReminderTypList(1);
+
+			log.debug("Anzahl: " + listAppoints.size());
+
+			for (AppointmentReminderTyps appoints : listAppoints) {
+				// log.debug("Termin: "+appoints.getAppointmentName()+" startDate: "+appoints.getAppointmentStarttime()+
+				// " endDate: "+appoints.getAppointmentEndtime());
+				log.debug("AppointmentReminderTyps: " + appoints.getName());
+			}
+
+			// for (Iterator<Appointment> iter =
+			// listAppoints.iterator();iter.hasNext();) {
+			// log.debug(iter.next());
+			// }
+
+		} catch (Exception err) {
+
+			log.error("[testAddingGroup]", err);
+
+		}
+
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureCategory.java b/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureCategory.java
new file mode 100644
index 0000000..40ec53e
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureCategory.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.calendar;
+
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.apache.openmeetings.db.dao.calendar.AppointmentCategoryDao;
+import org.apache.openmeetings.db.entity.calendar.AppointmentCategory;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestDatabaseStructureCategory extends AbstractJUnitDefaults {
+
+	@Autowired
+	private AppointmentCategoryDao appointmentCategoryDaoImpl;
+
+	private static final Logger log = Logger
+			.getLogger(TestDatabaseStructureCategory.class);
+
+	@Test
+	public void testAddingGroup() {
+
+		try {
+
+			// appointmentCategoryDaoImpl.addAppointmentCategory(2L, "neu2",
+			// "test");
+			// appointmentCategoryDaoImpl.addAppointmentCategory("dritte");
+			// appointmentCategoryDaoImpl.updateAppointmentCategory(2L, "alt");
+
+			List<AppointmentCategory> appointmentCategory = appointmentCategoryDaoImpl
+					.getAppointmentCategoryList();
+			log.debug("Anzahl: " + appointmentCategory.size());
+
+			for (int x = 0; x < appointmentCategory.size(); x++) {
+				log.debug("id: " + appointmentCategory.get(x).getCategoryId());
+
+			}
+
+		} catch (Exception err) {
+
+			log.error("[testAddingGroup]", err);
+
+		}
+
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java b/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java
new file mode 100644
index 0000000..63a0128
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java
@@ -0,0 +1,104 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.calendar;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Random;
+
+import org.apache.log4j.Logger;
+import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.db.entity.calendar.MeetingMember;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestDatabaseStructureGetAppointmentByRange extends AbstractJUnitDefaults {
+	private static final Logger log = Logger.getLogger(TestDatabaseStructureGetAppointmentByRange.class);
+	@Autowired
+	private AppointmentDao appointmentDao;
+
+	@Test
+	public void test() {
+		log.debug("Test started");
+		Long userId = 1L;
+		
+		Random rnd = new Random();
+		Calendar now = Calendar.getInstance();
+		Calendar rangeStart = Calendar.getInstance();
+		rangeStart.setTime(now.getTime());
+		rangeStart.add(Calendar.DATE, -1);
+		Calendar rangeEnd = Calendar.getInstance();
+		rangeEnd.add(Calendar.DATE, 1);
+		rangeEnd.setTime(now.getTime());
+		
+		Calendar a1End = Calendar.getInstance();
+		a1End.setTime(now.getTime());
+		a1End.add(Calendar.HOUR_OF_DAY, 1);
+		Appointment a1 = getAppointment(now.getTime(), a1End.getTime());
+		a1.setTitle("AppointmentByRange_a1");
+
+		Appointment a2 = getAppointment(now.getTime(), a1End.getTime());
+		a2.setTitle("AppointmentByRange_a2");
+		a2.setMeetingMembers(new ArrayList<MeetingMember>());
+		MeetingMember mm1 = new MeetingMember();
+		mm1.setUser(createUserContact(rnd.nextInt(), userId));
+		mm1.setAppointment(a2);
+		a2.getMeetingMembers().add(mm1);
+		
+		Appointment a3 = getAppointment(now.getTime(), a1End.getTime());
+		a3.setTitle("AppointmentByRange_a3");
+		a3.setMeetingMembers(new ArrayList<MeetingMember>());
+		MeetingMember mm2 = new MeetingMember();
+		mm2.setUser(createUserContact(rnd.nextInt(), userId));
+		mm2.setAppointment(a3);
+		a3.getMeetingMembers().add(mm2);
+		MeetingMember mm3 = new MeetingMember();
+		mm3.setUser(createUserContact(rnd.nextInt(), userId));
+		mm3.setAppointment(a3);
+		a3.getMeetingMembers().add(mm3);
+		
+		a1 = appointmentDao.update(a1, userId);
+		a2 = appointmentDao.update(a2, userId);
+		a3 = appointmentDao.update(a3, userId);
+		
+		int a1found = 0, a2found = 0, a3found = 0;
+		for (Appointment a : appointmentDao.getAppointmentsByRange(userId, rangeStart.getTime(), rangeEnd.getTime())) {
+			int mmCount = a.getMeetingMembers() == null ? 0 : a.getMeetingMembers().size();
+			if (a.getId().equals(a1.getId())) {
+				assertEquals("Inapropriate MeetingMembers count", 0, mmCount);
+				a1found++;
+			}
+			if (a.getId().equals(a2.getId())) {
+				assertEquals("Inapropriate MeetingMembers count", 1, mmCount);
+				a2found++;
+			}
+			if (a.getId().equals(a3.getId())) {
+				assertEquals("Inapropriate MeetingMembers count", 2, mmCount);
+				a3found++;
+			}
+		}
+		assertEquals("Inappropriate count of appointments without members found", 1, a1found);
+		assertEquals("Inappropriate count of appointments with 1 member found", 1, a2found);
+		assertEquals("Inappropriate count of appointments with 2 members found", 1, a3found);
+	}
+}
diff --git a/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetUserStart.java b/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetUserStart.java
new file mode 100644
index 0000000..764d597
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetUserStart.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.calendar;
+
+import org.apache.log4j.Logger;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestDatabaseStructureGetUserStart extends AbstractJUnitDefaults {
+	private static final Logger log = Logger.getLogger(TestDatabaseStructureGetUserStart.class);
+	@Autowired
+	private UserDao usersDao;
+	
+	@Test
+	public void testAddingGroup() {
+		try {
+			usersDao.get(new Long(1));
+		} catch (Exception err) {
+			log.error("[testAddingGroup]", err);
+		}
+	}
+}
diff --git a/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureMeetingMember.java b/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureMeetingMember.java
new file mode 100644
index 0000000..6f6f73f
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureMeetingMember.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.calendar;
+
+
+import org.apache.openmeetings.db.dao.calendar.MeetingMemberDao;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+public class TestDatabaseStructureMeetingMember extends AbstractJUnitDefaults {
+	@Autowired
+	private MeetingMemberDao meetingMemberDao;
+
+	@Test
+	public void testUpdateMeetingMember(){
+		//FIXME need to be refactored !!!!
+		
+		//MeetingMemberDaoImpl.getInstance().addMeetingMember("Adddd", "dir", "1", "2", 1L, 1L, "test");	
+		//MeetingMemberDaoImpl.getInstance().addMeetingMember(firstname, lastname, memberStatus, appointmentStatus, appointmentId, userid, email)
+		
+		
+		//MeetingMemberDaoImpl.getInstance().getMeetingMemberById(1L);
+		//MeetingMemberDaoImpl.getInstance().deleteMeetingMember(2L);
+		
+		//meetingMemberDao.updateMeetingMember(1l,"bbbbbb", "dir", "1", "2", 1L, 1L, "test", ""); 
+	}
+}
diff --git a/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureUsersSearch.java b/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureUsersSearch.java
new file mode 100644
index 0000000..fc9c285
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureUsersSearch.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.calendar;
+
+import org.apache.log4j.Logger;
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.db.dto.basic.SearchResult;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+public class TestDatabaseStructureUsersSearch extends AbstractJUnitDefaults {
+    @Autowired
+    private UserManager userManager;
+
+	private static final Logger log = Logger.getLogger(TestDatabaseStructureUsersSearch.class);
+
+	@Test
+	public void testAddingGroup(){
+
+		try {
+			
+			 SearchResult<User> users = userManager.getAllUserByRange("first", 0, 10, "orderby", true);
+			 log.debug("[result]" + users.getResult().size());
+			 log.debug("[records]"+ users.getRecords());
+			 
+			 //GroupMemberDaoImpl.getInstance().addGroupMember("Ad", "dir", Calendar.getInstance().getTime(), "1", "2", "interpol155", 1L, 1L);	
+			//GroupMemberDaoImpl.getInstance().addGroupMember(firstname, lastname, age, memberStatus, appointmentStatus, password, adresses_id, appointmentId);
+			
+			//GroupMemberDaoImpl.getInstance().getGroupMemberById(1L);
+			//GroupMemberDaoImpl.getInstance().deleteGroupMember(2L);
+			//GroupMemberDaoImpl.getInstance().updateGroupMember(1L, "Eugen", "Schwert", Calendar.getInstance().getTime(), "1", "2", "interpol155", 1L, 1L);
+		} catch (Exception err) {
+
+			log.error("[testAddingGroup]",err);
+
+		}
+
+		
+
+		
+
+	}
+
+
+
+}
+
diff --git a/src/test/java/org/apache/openmeetings/test/calendar/TestGetAppointment.java b/src/test/java/org/apache/openmeetings/test/calendar/TestGetAppointment.java
new file mode 100644
index 0000000..263adfe
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/calendar/TestGetAppointment.java
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.calendar;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.util.Calendar;
+
+import org.apache.log4j.Logger;
+import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestGetAppointment extends AbstractJUnitDefaults {
+	private static final Logger log = Logger.getLogger(TestGetAppointment.class);
+
+	@Autowired
+	private AppointmentDao appointmentDao;
+	
+	@Test
+	public void getAppoinment() {
+		log.debug("getAppoinment enter");
+		Long userId = 1L;
+		
+		Calendar now = Calendar.getInstance();
+		Calendar a1End = Calendar.getInstance();
+		a1End.setTime(now.getTime());
+		a1End.add(Calendar.HOUR_OF_DAY, 1);
+		Appointment a1 = getAppointment(now.getTime(), a1End.getTime());
+		a1.setTitle("GetAppointment");
+		
+		a1 = appointmentDao.update(a1, userId);
+		
+		Appointment a = appointmentDao.get(a1.getId());
+		assertNotNull("Failed to get Appointment By id", a);
+		assertEquals("Inapropriate MeetingMembers count", 0, a.getMeetingMembers() == null ? 0 : a.getMeetingMembers().size());
+	}
+	
+}
diff --git a/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java b/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java
new file mode 100644
index 0000000..6042df7
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java
@@ -0,0 +1,306 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.calendar;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.net.SocketException;
+import java.net.URI;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.HashMap;
+import java.util.Properties;
+import java.util.Vector;
+
+import javax.activation.DataHandler;
+import javax.mail.BodyPart;
+import javax.mail.Message;
+import javax.mail.Multipart;
+import javax.mail.Session;
+import javax.mail.Transport;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeBodyPart;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeMultipart;
+
+import net.fortuna.ical4j.data.CalendarOutputter;
+import net.fortuna.ical4j.model.DateTime;
+import net.fortuna.ical4j.model.TimeZone;
+import net.fortuna.ical4j.model.TimeZoneRegistry;
+import net.fortuna.ical4j.model.TimeZoneRegistryFactory;
+import net.fortuna.ical4j.model.ValidationException;
+import net.fortuna.ical4j.model.component.VEvent;
+import net.fortuna.ical4j.model.component.VTimeZone;
+import net.fortuna.ical4j.model.parameter.Cn;
+import net.fortuna.ical4j.model.parameter.Role;
+import net.fortuna.ical4j.model.property.Attendee;
+import net.fortuna.ical4j.model.property.CalScale;
+import net.fortuna.ical4j.model.property.Method;
+import net.fortuna.ical4j.model.property.Organizer;
+import net.fortuna.ical4j.model.property.ProdId;
+import net.fortuna.ical4j.model.property.Uid;
+import net.fortuna.ical4j.model.property.Version;
+import net.fortuna.ical4j.util.UidGenerator;
+
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.openmeetings.util.mail.ByteArrayDataSource;
+import org.apache.openmeetings.util.mail.IcalHandler;
+import org.apache.openmeetings.util.mail.SmtpAuthenticator;
+import org.junit.Test;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestSendIcalMessage extends AbstractJUnitDefaults {
+
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			TestAppointmentSchedulerTask.class,
+			OpenmeetingsVariables.webAppRootKey);
+
+	@Autowired
+	private ConfigurationDao configurationDao;
+
+	private byte[] iCalMimeBody;
+
+	String subject = "test iCal";
+	String recipients = "seba.wagner@gmail.com";
+	String htmlBody = "test";
+
+	
+	public void simpleInvitionIcalLink() {
+		// Create a TimeZone
+		TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance()
+				.createRegistry();
+		TimeZone timezone = registry.getTimeZone("America/Mexico_City");
+		VTimeZone tz = timezone.getVTimeZone();
+
+		// Start Date is on: April 1, 2008, 9:00 am
+		java.util.Calendar startDate = new GregorianCalendar();
+		startDate.setTimeZone(timezone);
+		startDate.set(java.util.Calendar.MONTH, java.util.Calendar.APRIL);
+		startDate.set(java.util.Calendar.DAY_OF_MONTH, 1);
+		startDate.set(java.util.Calendar.YEAR, 2008);
+		startDate.set(java.util.Calendar.HOUR_OF_DAY, 9);
+		startDate.set(java.util.Calendar.MINUTE, 0);
+		startDate.set(java.util.Calendar.SECOND, 0);
+
+		// End Date is on: April 1, 2008, 13:00
+		java.util.Calendar endDate = new GregorianCalendar();
+		endDate.setTimeZone(timezone);
+		endDate.set(java.util.Calendar.MONTH, java.util.Calendar.APRIL);
+		endDate.set(java.util.Calendar.DAY_OF_MONTH, 1);
+		endDate.set(java.util.Calendar.YEAR, 2008);
+		endDate.set(java.util.Calendar.HOUR_OF_DAY, 13);
+		endDate.set(java.util.Calendar.MINUTE, 0);
+		endDate.set(java.util.Calendar.SECOND, 0);
+
+		// Create the event
+		String eventName = "Progress Meeting";
+		DateTime start = new DateTime(startDate.getTime());
+		DateTime end = new DateTime(endDate.getTime());
+		VEvent meeting = new VEvent(start, end, eventName);
+
+		// add timezone info..
+		meeting.getProperties().add(tz.getTimeZoneId());
+
+		// generate unique identifier..
+		UidGenerator ug;
+		try {
+			ug = new UidGenerator("uidGen");
+
+			Uid uid = ug.generateUid();
+			meeting.getProperties().add(uid);
+		} catch (SocketException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+
+		// add attendees..
+		Attendee dev1 = new Attendee(URI.create("mailto:dev1@mycompany.com"));
+		dev1.getParameters().add(Role.REQ_PARTICIPANT);
+		dev1.getParameters().add(new Cn("Developer 1"));
+		meeting.getProperties().add(dev1);
+
+		Attendee dev2 = new Attendee(URI.create("mailto:dev2@mycompany.com"));
+		dev2.getParameters().add(Role.OPT_PARTICIPANT);
+		dev2.getParameters().add(new Cn("Developer 2"));
+		meeting.getProperties().add(dev2);
+
+		// Create a calendar
+		net.fortuna.ical4j.model.Calendar icsCalendar = new net.fortuna.ical4j.model.Calendar();
+		icsCalendar.getProperties().add(
+				new ProdId("-//Events Calendar//iCal4j 1.0//EN"));
+		icsCalendar.getProperties().add(CalScale.GREGORIAN);
+		icsCalendar.getProperties().add(Version.VERSION_2_0);
+
+		// Add the event and print
+		icsCalendar.getComponents().add(meeting);
+		
+		Organizer orger = new Organizer(URI.create("seba.wagner@gmail.com"));
+		orger.getParameters().add(new Cn("Sebastian Wagner"));
+		meeting.getProperties().add(orger);
+		
+		icsCalendar.getProperties().add(Method.REQUEST);
+		
+		System.out.println(icsCalendar);
+		
+		
+		
+
+		ByteArrayOutputStream bout = new ByteArrayOutputStream();
+		CalendarOutputter outputter = new CalendarOutputter();
+		try {
+			outputter.output(icsCalendar, bout);
+			iCalMimeBody = bout.toByteArray();
+			
+			sendIcalMessage();
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (ValidationException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		
+		
+
+	}
+
+	
+	@Test
+	public void sendInvitionIcalLink() {
+		try {
+
+			String email = "hans@webbase-design.de";
+			String username = "shans";
+			boolean invitor = false;
+
+			Calendar start = Calendar.getInstance();
+
+			Calendar end = Calendar.getInstance();
+
+			IcalHandler handler = new IcalHandler(
+					IcalHandler.ICAL_METHOD_REQUEST);
+
+			// Transforming Meeting Members
+
+			HashMap<String, String> attendeeList = handler.getAttendeeData(
+					email, username, invitor);
+
+			HashMap<String, String> organizerAttendee = handler
+					.getAttendeeData(recipients, "seba-test", true);
+
+			Vector<HashMap<String, String>> atts = new Vector<HashMap<String, String>>();
+			atts.add(attendeeList);
+
+			// Create ICal Message
+			String meetingId = handler.addNewMeeting(start.getTime(), end.getTime(), "test event",
+					atts, "localhost:5080/link_openmeetings",
+					organizerAttendee, "", TimeZone.getDefault());
+
+			log.debug("meetingId " + meetingId);
+
+			iCalMimeBody = handler.getIcalAsByteArray();
+
+			sendIcalMessage();
+
+			// return MailHandler.sendMail(email, subject, template);
+
+		} catch (Exception err) {
+			log.error("sendInvitionIcalLink", err);
+		}
+	}
+
+	private void sendIcalMessage() throws Exception {
+
+		log.debug("sendIcalMessage");
+
+		// Evaluating Configuration Data
+		String smtpServer = configurationDao.getConfValue("smtp_server", String.class, "");
+		String smtpPort = configurationDao.getConfValue("smtp_port", String.class, "");
+		String from = configurationDao.getConfValue("system_email_addr", String.class, "");
+		String emailUsername = configurationDao.getConfValue("email_username", String.class, "");
+		String emailUserpass = configurationDao.getConfValue("email_userpass", String.class, "");
+
+		Properties props = System.getProperties();
+
+		props.put("mail.smtp.host", smtpServer);
+		props.put("mail.smtp.port", smtpPort);
+
+		boolean isTls = (1 == configurationDao.getConfValue("mail.smtp.starttls.enable", Integer.class, "0"));
+		if (isTls) {
+			props.put("mail.smtp.starttls.enable", "true");
+		}
+
+		// Check for Authentification
+		Session session = null;
+		if (emailUsername != null && emailUsername.length() > 0
+				&& emailUserpass != null && emailUserpass.length() > 0) {
+			// use SMTP Authentication
+			props.put("mail.smtp.auth", "true");
+			session = Session.getDefaultInstance(props, new SmtpAuthenticator(
+					emailUsername, emailUserpass));
+		} else {
+			// not use SMTP Authentication
+			session = Session.getDefaultInstance(props, null);
+		}
+
+		// Building MimeMessage
+		MimeMessage mimeMessage = new MimeMessage(session);
+		mimeMessage.setSubject(subject);
+		mimeMessage.setFrom(new InternetAddress(from));
+		mimeMessage.addRecipients(Message.RecipientType.TO,
+				InternetAddress.parse(recipients, false));
+
+		// -- Create a new message --
+		BodyPart msg = new MimeBodyPart();
+		msg.setDataHandler(new DataHandler(new ByteArrayDataSource(htmlBody,
+				"text/html; charset=\"utf-8\"")));
+
+		Multipart multipart = new MimeMultipart();
+
+		BodyPart iCalAttachment = new MimeBodyPart();
+		iCalAttachment.setDataHandler(new DataHandler(
+				new javax.mail.util.ByteArrayDataSource(
+						new ByteArrayInputStream(iCalMimeBody),
+						"text/calendar;method=REQUEST;charset=\"UTF-8\"")));
+		iCalAttachment.setFileName("invite.ics");
+
+		multipart.addBodyPart(iCalAttachment);
+		multipart.addBodyPart(msg);
+
+		mimeMessage.setSentDate(new Date());
+		mimeMessage.setContent(multipart);
+
+		// -- Set some other header information --
+		// mimeMessage.setHeader("X-Mailer", "XML-Mail");
+		// mimeMessage.setSentDate(new Date());
+
+		// Transport trans = session.getTransport("smtp");
+		Transport.send(mimeMessage);
+
+	}
+}
diff --git a/src/test/java/org/apache/openmeetings/test/chat/TestChatLinking.java b/src/test/java/org/apache/openmeetings/test/chat/TestChatLinking.java
new file mode 100644
index 0000000..3ff1c4c
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/chat/TestChatLinking.java
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.chat;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import junit.framework.TestCase;
+
+import org.junit.Test;
+
+public class TestChatLinking extends TestCase {
+	
+	@Test
+	public void testChatParser(){
+		try {
+			
+			String text = "hasn http://www.google.de peter hasn http://www.google.de ";
+			
+			System.out.println(link(text));
+			
+		} catch (Exception err) {
+			err.printStackTrace();
+		}
+	}
+	
+	
+	private String link(String input) {
+		try {
+			
+			String tReturn = "";
+			
+			String parts[] = input.split(" ");
+			
+			for (int t=0;t<parts.length;t++) {
+				
+				String text = parts[t];
+	
+				//System.out.println("Part 1 "+text);
+				
+				Matcher matcher = Pattern.compile("(^|[ \t\r\n])((ftp|http|https|gopher|mailto|news|nntp|telnet|wais|file|prospero|aim|webcal):(([A-Za-z0-9$_.+!*(),;/?:@&~=-])|%[A-Fa-f0-9]{2}){2,}(#([a-zA-Z0-9][a-zA-Z0-9$_.+!*(),;/?:@&~=%-]*))?([A-Za-z0-9$_+!*();/?:~-]))").matcher(text);
+
+				if (matcher.find()) {
+					text = matcher.replaceFirst("<u><FONT color=\"#0000CC\"><a href='" + text + "'>" + text
+							+ "</a></FONT></u>");
+
+				}
+				
+				//System.out.println("Part 2 "+text);
+				
+				if (t != 0) {
+					tReturn += " ";
+				}
+				
+				tReturn += text;
+			
+			}
+			
+			return tReturn;
+			
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return "";
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/config/TestConfig.java b/src/test/java/org/apache/openmeetings/test/config/TestConfig.java
new file mode 100644
index 0000000..26187e5
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/config/TestConfig.java
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.config;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import java.util.List;
+
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.entity.basic.Configuration;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.apache.openmeetings.test.calendar.TestAppointmentAddAppointment;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestConfig extends AbstractJUnitDefaults {
+
+	private static final Logger log = LoggerFactory.getLogger(TestAppointmentAddAppointment.class);
+
+	@Autowired
+	private ConfigurationDao configurationDao;
+
+	@Test
+	public void getConfigKey() {
+		System.err.println("THIS");
+
+		Configuration smtp_server = configurationDao.get("smtp_server").get(0);
+
+		System.err.println("smtp_server " + smtp_server.getUser());
+
+		assertNull(smtp_server.getUser());
+	}
+
+	@Test
+	public void getConfigs() {
+
+		try {
+			List<Configuration> list = configurationDao.get(4, 6);
+
+			for (Configuration conf : list) {
+				System.err.println("conf.getConf_key() " + conf.getConf_key());
+				System.err.println("conf.getUser() " + conf.getUser());
+				if (conf.getUser() != null) {
+					System.err.println("conf.getUsers() " + conf.getUser().getLogin());
+				}
+			}
+
+			assertEquals(list.size(), 6);
+
+		} catch (Exception err) {
+			log.error("[startConversion]", err);
+		}
+
+	}
+}
diff --git a/src/test/java/org/apache/openmeetings/test/derby/PrepareSystemFiles.java b/src/test/java/org/apache/openmeetings/test/derby/PrepareSystemFiles.java
new file mode 100644
index 0000000..dba693f
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/derby/PrepareSystemFiles.java
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.derby;
+
+import java.io.File;
+
+import org.apache.openmeetings.cli.ConnectionProperties;
+import org.apache.openmeetings.cli.ConnectionPropertiesPatcher;
+import org.apache.openmeetings.util.OmFileHelper;
+
+/**
+ * This file is called from command line to patch the derby configuration 
+ * during the automated run of Selenium
+ * 
+ * @author swagner
+ *
+ */
+public class PrepareSystemFiles {
+	
+	public static void main(String... args) {
+		try {
+			OmFileHelper.setOmHome(args[0]);
+			
+			String databaseHomeDirectory = args[1];
+			
+			String persistanceFileToPatch = args[2];
+			
+			ConnectionProperties connectionProperties = new ConnectionProperties();
+			
+			File conf = new File(persistanceFileToPatch);
+			
+			if (conf.exists()) {
+				conf.delete();
+			}
+			
+			String dbType = "derby";
+			File srcConf = new File(OmFileHelper.getWebinfDir(), "classes/META-INF/" + dbType + "_persistence.xml");
+			ConnectionPropertiesPatcher.getPatcher(dbType, connectionProperties).patch(
+					srcConf
+					, conf
+					, "localhost"
+					, "1527"
+					, databaseHomeDirectory + "openmeetings"
+					, "user"
+					, "secret"
+					);
+		} catch (Exception err) {
+			err.printStackTrace();
+		}
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/derby/StartDerbyNetworkService.java b/src/test/java/org/apache/openmeetings/test/derby/StartDerbyNetworkService.java
new file mode 100644
index 0000000..5bd4030
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/derby/StartDerbyNetworkService.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.derby;
+
+import org.apache.derby.drda.NetworkServerControl;
+
+public class StartDerbyNetworkService {
+
+	protected NetworkServerControl server;
+}
diff --git a/src/test/java/org/apache/openmeetings/test/domain/TestAddGroup.java b/src/test/java/org/apache/openmeetings/test/domain/TestAddGroup.java
new file mode 100644
index 0000000..86cfb23
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/domain/TestAddGroup.java
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.domain;
+
+import org.apache.log4j.Logger;
+import org.apache.openmeetings.data.user.OrganisationManager;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestAddGroup extends AbstractJUnitDefaults {
+
+	@Autowired
+	private OrganisationManager organisationManager;
+	@Autowired
+	private UserDao usersDao;
+
+	private static final Logger log = Logger.getLogger(TestAddGroup.class);
+
+	@Test
+	public void testAddingGroup() {
+
+		long organisation_id = organisationManager.addOrganisation(
+				"default", 1);
+
+		log.error("new organisation: " + organisation_id);
+
+		long organisation_usersid = organisationManager
+				.addUserToOrganisation(new Long(1), organisation_id,
+						new Long(1));
+
+		log.error("new organisation_user: " + organisation_usersid);
+
+		User us = usersDao.get(new Long(1));
+
+		log.error(us.getLastname());
+		log.error(us.getAdresses().getTown());
+
+		/*
+		 * for (Iterator it = us.getAdresses().getEmails().iterator();
+		 * it.hasNext();){ Adresses_Emails addrMails = (Adresses_Emails)
+		 * it.next(); log.error(addrMails.getMail().getEmail()); }
+		 * log.error("size of domains: "+us.getOrganisation_users().size()); for
+		 * (Iterator it2 = us.getOrganisation_users().iterator();
+		 * it2.hasNext();){ Organisation_Users orgUsers = (Organisation_Users)
+		 * it2.next(); log.error(orgUsers.getOrganisation().getName()); }
+		 */
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/domain/TestUserGroupAggregation.java b/src/test/java/org/apache/openmeetings/test/domain/TestUserGroupAggregation.java
new file mode 100644
index 0000000..afae3cd
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/domain/TestUserGroupAggregation.java
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.domain;
+
+import static org.junit.Assert.assertTrue;
+
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.apache.openmeetings.data.user.OrganisationManager;
+import org.apache.openmeetings.db.entity.user.Organisation;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestUserGroupAggregation extends AbstractJUnitDefaults {
+
+	@Autowired
+	private OrganisationManager organisationManager;
+
+	private static final Logger log = Logger
+			.getLogger(TestUserGroupAggregation.class);
+
+	@Test
+	public void testitNow() {
+
+		List<Organisation> orgUser = organisationManager.getOrganisationsByUserId(3, 1, 0,
+				100, "organisation_id", true);
+
+		assertTrue("Default user must belong to at least one organisation", orgUser.size() > 0);
+
+		for (Organisation orgUserObj : orgUser) {
+			log.error("testitNow: organisation Id: '" + orgUserObj.getOrganisation_id() + "'; name: '" + orgUserObj.getName() + "'");
+		}
+
+		List<Organisation> orgUser2 = organisationManager.getRestOrganisationsByUserId(3,
+				1, 0, 100, "organisation_id", true);
+
+		log.error("testitNow: rest organisations count: " + orgUser2.size());
+
+		for (Organisation orgUserObj : orgUser2) {
+			log.error("testitNow: organisation Id: '" + orgUserObj.getOrganisation_id() + "'; name: '" + orgUserObj.getName() + "'");
+		}
+		
+	}
+}
diff --git a/src/test/java/org/apache/openmeetings/test/emotes/TestChatParsing.java b/src/test/java/org/apache/openmeetings/test/emotes/TestChatParsing.java
new file mode 100644
index 0000000..0d5ad9e
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/emotes/TestChatParsing.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.emotes;
+
+import java.util.LinkedList;
+
+import junit.framework.TestCase;
+
+import org.junit.Test;
+
+public class TestChatParsing extends TestCase {
+	
+	public static LinkedList<LinkedList<String>> emotfilesList = new LinkedList<LinkedList<String>>();
+	
+	@Test
+	public void testChatParser(){
+		try {
+			//FIXME
+			String filePath = "/Users/sebastianwagner/Documents/workspace/xmlcrm/webapp/xmlcrm/public/";
+			
+			this.loadEmot(filePath);
+			
+		} catch (Exception err) {
+			err.printStackTrace();
+		}
+	}
+	
+	public void loadEmot(String filePath){
+		try {
+//			String fileName = filePath + File.separatorChar + "emoticons" + File.separatorChar + "emotes.xml";
+//			XStream xStream = new XStream(new XppDriver());
+//			xStream.setMode(XStream.NO_REFERENCES);
+//			BufferedReader reader = new BufferedReader(new FileReader(fileName));
+//		    String xmlString = "";
+//		    while (reader.ready()) {
+//		    	xmlString += reader.readLine();
+//		    }
+//		    Application.setEmotfilesList((LinkedList<LinkedList<String>>) xStream.fromXML(xmlString));
+//		    ChatString.getInstance().replaceAllRegExp();
+//		    String messageText = "Hi :) how are you? whats going on B) today (T_T) ? with you ?";
+//		    //messageText = ":) Hi :) how :( are :) you :( today >:O going on? :)";
+//		    //messageText = "Hi :) how :( are :) you :( today :) ";
+//		    //messageText = "Hi :) how";
+//		    ChatString.getInstance().parseChatString(messageText);
+		    
+		    System.out.println("loadEmot completed");
+		} catch (Exception err) {
+			System.out.println("[loadEmot]"+err);
+			err.printStackTrace();
+		}
+	}	
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/emotes/TestConvertGifs.java b/src/test/java/org/apache/openmeetings/test/emotes/TestConvertGifs.java
new file mode 100644
index 0000000..d9221e2
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/emotes/TestConvertGifs.java
@@ -0,0 +1,123 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.emotes;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.PrintWriter;
+import java.util.LinkedList;
+
+import junit.framework.TestCase;
+
+import org.apache.log4j.Logger;
+import org.junit.Test;
+
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.io.xml.XppDriver;
+
+public class TestConvertGifs extends TestCase {
+	
+	private static final Logger log = Logger.getLogger(TestConvertGifs.class);
+
+	@Test
+	public void testConvertDir(){
+		try {
+			//FIXME
+			String basePath = "/Users/sebastianwagner/Documents/workspace/xmlcrm/webapp/xmlcrm/public/emoticons/";
+			
+			System.out.println("basePath "+basePath);
+			File baseDir = new File(basePath);
+			
+			System.out.println("basePath "+baseDir.exists());
+			
+			String batfilePath = "mybat.bat";
+			String batString = "";
+			
+			String[] allfiles = baseDir.list();			
+			if(allfiles!=null){
+				for(int i=0; i<allfiles.length; i++){
+					File file = new File(basePath+File.separatorChar+allfiles[i]);
+					String fileName = file.getName();
+					System.out.println("file "+file.getName());
+					String fileNamePure = fileName.substring(0, fileName.length()-4);
+					
+					batString += "gif2swf -r 30 -o "+fileNamePure+".swf "+fileName+" \r\n";
+				}
+			}
+			
+			PrintWriter pw = new PrintWriter(new FileWriter(basePath+batfilePath));
+		    pw.println(batString);
+		    pw.flush();
+		    pw.close();
+		    
+			System.out.println("batString "+batString);
+			
+		} catch (Exception err) {
+			err.printStackTrace();
+		}
+	}
+	
+	@Test
+	public void testXMLDir(){
+		try {
+			//FIXME
+			String basePath = "/Users/sebastianwagner/Documents/workspace/xmlcrm/webapp/xmlcrm/upload/emoticons/";
+			
+			System.out.println("basePath "+basePath);
+			File baseDir = new File(basePath);
+			
+			System.out.println("basePath "+baseDir.exists());
+			
+			String batfilePath = "emotes.xml";
+			String batString = "";
+			
+			String[] allfiles = baseDir.list();	
+			LinkedList<LinkedList<String>> filesList = new LinkedList<LinkedList<String>>();
+			if(allfiles!=null){
+				for(int i=0; i<allfiles.length; i++){
+					File file = new File(basePath+File.separatorChar+allfiles[i]);
+					LinkedList<String> singleFile = new LinkedList<String>();
+					String fileName = file.getName();
+					System.out.println("file "+file.getName());
+					String fileNamePure = fileName.substring(0, fileName.length()-4);
+					singleFile.add(fileNamePure+".swf");
+					singleFile.add(":)");
+					singleFile.add("(^_^)");
+					filesList.add(singleFile);
+				}
+			}
+			
+			XStream xStream = new XStream(new XppDriver());
+			xStream.setMode(XStream.NO_REFERENCES);
+			String xmlString = xStream.toXML(filesList);
+
+			log.error(xmlString);
+			
+			PrintWriter pw = new PrintWriter(new FileWriter(basePath+batfilePath));
+		    pw.println(xmlString);
+		    pw.flush();
+		    pw.close();
+		    
+			System.out.println("batString "+batString);
+			
+		} catch (Exception err) {
+			err.printStackTrace();
+		}
+	}
+}
diff --git a/src/test/java/org/apache/openmeetings/test/gui/TestGui.java b/src/test/java/org/apache/openmeetings/test/gui/TestGui.java
new file mode 100644
index 0000000..f6b64bf
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/gui/TestGui.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.gui;
+
+import org.junit.Test;
+
+import junit.framework.TestCase;
+
+
+public class TestGui  extends TestCase {
+
+	@Test
+	public void testNoop() {
+		
+	}
+}
diff --git a/src/test/java/org/apache/openmeetings/test/invitiation/TestInvitation.java b/src/test/java/org/apache/openmeetings/test/invitiation/TestInvitation.java
new file mode 100644
index 0000000..3da5bd2
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/invitiation/TestInvitation.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.invitiation;
+
+import java.util.Date;
+
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.db.entity.server.Sessiondata;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.remote.InvitationService;
+import org.apache.openmeetings.remote.MainService;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestInvitation extends AbstractJUnitDefaults {
+
+	private static final Logger log = LoggerFactory.getLogger(TestInvitation.class);
+	
+	@Autowired
+	private InvitationService invitationService;
+	@Autowired
+	private MainService mService;
+	@Autowired
+	private UserManager userManager;
+	
+	@Test
+	public void testSendInvitationLink() {
+		try {
+			Sessiondata sessionData = mService.getsessiondata();
+			
+			User us = (User) userManager.loginUser(sessionData.getSession_id(), username, userpass, null, null, false);
+			
+			invitationService.sendInvitationHash(sessionData.getSession_id(), "Testname", "Testlastname", "message", "sebawagner@apache.org", 
+					"subject", 1L, "", false, "", 1, new Date(), "12:00", new Date(), "14:00", 1L, us.getTimeZoneId(), true);
+			
+		} catch (Exception err) {
+			log.error("[testSendInvitationLink]", err);
+		}
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/jai/TestInterpolation.java b/src/test/java/org/apache/openmeetings/test/jai/TestInterpolation.java
new file mode 100644
index 0000000..925b4a4
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/jai/TestInterpolation.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.jai;
+
+import junit.framework.TestCase;
+
+import org.apache.log4j.Logger;
+import org.junit.Test;
+
+public class TestInterpolation extends TestCase {
+	
+	private static final Logger log = Logger.getLogger(TestInterpolation.class);
+	
+	@Test
+	public void testInterpolate() {
+		try {
+			
+//			GeomPoint p1 = new Point(-60,-100);
+//			GeomPoint p2 = new Point(20, 50);
+//
+//			//double[] samples = {-100,-50};
+//			
+//			GeomPoint gPoint = GeomPoint.interpolate(p1, p2, new Float(0.5));
+//			
+//			log.debug("Interpolated: "+gPoint);
+//			
+//			
+//			GeomPoint p3 = new GeomPoint();
+//			p3.setLocation(-2,4);
+//			//p3.setLocation(3,4);
+//			p3.normalize(10);
+//			//GeomPoint
+//			
+//			
+//			p3.setLocation(2,-4);
+//			//p3.setLocation(3,4);
+//			p3.normalize(10);
+//			
+		} catch (Exception er) {
+			log.error("ERROR ", er);
+			System.out.println("Error exporting: " + er);
+			er.printStackTrace();
+		}
+	}
+
+	
+}
diff --git a/src/test/java/org/apache/openmeetings/test/jai/TestSVGTextExporterArrow.java b/src/test/java/org/apache/openmeetings/test/jai/TestSVGTextExporterArrow.java
new file mode 100644
index 0000000..e91ee7b
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/jai/TestSVGTextExporterArrow.java
@@ -0,0 +1,106 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.jai;
+
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+
+import junit.framework.TestCase;
+
+import org.apache.batik.dom.GenericDOMImplementation;
+import org.apache.batik.dom.svg.SVGDOMImplementation;
+import org.apache.batik.svggen.SVGGraphics2D;
+import org.apache.log4j.Logger;
+import org.junit.Test;
+import org.w3c.dom.DOMImplementation;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public class TestSVGTextExporterArrow extends TestCase {
+	
+	private static final Logger log = Logger.getLogger(TestSVGTextExporterArrow.class);
+	
+	@Test
+	public void testGetDiagramList() {
+		try {
+			
+			
+	        // Get a DOMImplementation.
+	        DOMImplementation domImpl =
+	            GenericDOMImplementation.getDOMImplementation();
+
+	        // Create an instance of org.w3c.dom.Document.
+	        //String svgNS = "http://www.w3.org/2000/svg";
+	        String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI;
+
+	        Document document = domImpl.createDocument(svgNS, "svg", null);
+	        
+	        // Get the root element (the 'svg' element).
+	        Element svgRoot = document.getDocumentElement();
+
+	        
+	        // Set the width and height attributes on the root 'svg' element.
+	        svgRoot.setAttributeNS(null, "width", "2400");
+	        svgRoot.setAttributeNS(null, "height", "1600");
+	        
+
+	        // Create an instance of the SVG Generator.
+	        SVGGraphics2D svgGenerator = new SVGGraphics2D(document);
+
+//	        SVGGraphics2D svgGenerator8 = new SVGGraphics2D(svgGenerator);
+//	        //SVGGraphics2D svgGenerator2 = new SVGGraphics2D(document);
+//	        
+//	        //NOTE: Font.ITALIC+Font.BOLD = Font AND Bold !
+//	        exportToImageTest.paintTextByWidthHeight(svgGenerator8, 500, 300, 100, 200, "Process", Font.BOLD+Font.ITALIC, 28,
+//	        		new Color(255,0,0));
+//	        
+//	        SVGGraphics2D svgGenerator11 = new SVGGraphics2D(svgGenerator);
+//	        
+//	        exportToImageTest.paintTextByWidthHeight(svgGenerator11, 100, 300, 100, 200, "Process", Font.BOLD+Font.ITALIC, 111,
+//	        		new Color(255,0,0));
+//	        
+//	        SVGGraphics2D svgGenerator9 = new SVGGraphics2D(svgGenerator);
+	      //NOTE: Font.ITALIC+Font.BOLD = Font AND Bold !
+//	        exportToImageTest._paintTextByWidthHeight(svgGenerator9, 500, 300, 100, 200, "Hans", Font.BOLD, 28,
+//	        		new Color(255,0,0));
+	    
+	    
+	        // Finally, stream out SVG to the standard output using
+	        // UTF-8 encoding.
+	        boolean useCSS = true; // we want to use CSS style attributes
+	        //Writer out = new OutputStreamWriter(System.out, "UTF-8");
+	        
+	        //OutputStream out = httpServletResponse.getOutputStream();
+			//httpServletResponse.setContentType("APPLICATION/OCTET-STREAM");
+			//httpServletResponse.setHeader("Content-Disposition","attachment; filename=\"" + requestedFile + "\"");
+	        Writer out = new OutputStreamWriter(System.out, "UTF-8");
+
+	        //StringWriter out = new StringWriter();
+	        
+	        svgGenerator.stream(out, useCSS);
+		} catch (Exception er) {
+			log.error("ERROR ", er);
+			System.out.println("Error exporting: " + er);
+			er.printStackTrace();
+		}
+	}
+	
+	
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/labels/FillLabels.java b/src/test/java/org/apache/openmeetings/test/labels/FillLabels.java
new file mode 100644
index 0000000..977ccf2
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/labels/FillLabels.java
@@ -0,0 +1,199 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.labels;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FilenameFilter;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.apache.openmeetings.db.dao.label.FieldLanguageDao;
+import org.apache.openmeetings.db.dao.label.FieldValueDao;
+import org.apache.openmeetings.db.entity.label.FieldLanguage;
+import org.apache.openmeetings.db.entity.label.Fieldlanguagesvalues;
+import org.apache.openmeetings.db.entity.label.Fieldvalues;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.apache.openmeetings.util.LangExport;
+import org.apache.openmeetings.util.OmFileHelper;
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.Element;
+import org.dom4j.io.SAXReader;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * Syncs all labels from a given master language file to all language files You
+ * can also specify some labels that are overwritten from the master file to all
+ * other files.<br/>
+ * <br/>
+ * It will read first the {@link #masterLangFile} and then all other XML files and fill
+ * it. Practically I have put "english.xml" in the {@link #masterLangFile}, so you can
+ * add new labels to the english.xml, run the test, refresh Eclipse and all
+ * other lang files should have the new label(s) too.<br/>
+ * <br/>
+ * It is also possible to replace existing other labels, just see the array
+ * variable: {@link #replaceIds}. All Ids, in that array will be synced from the
+ * {@link #masterLangFile} to all other languages.<br/>
+ * <br/>
+ * The Junit test also does some tests, for example it fails if it detects
+ * duplicate labelid's.<br/>
+ * 
+ * @author sebawagner
+ * 
+ */
+public class FillLabels extends AbstractJUnitDefaults {
+	private final String basePath = "languages/";
+	private final String masterLangFile = "english.xml";
+	private final String[] excludeFiles = { "errorvalues.xml",
+			"countries.xml", "timezones.xml", "languages.xml" };
+	@Autowired
+	private FieldLanguageDao fieldLanguageDao;
+	@Autowired
+	private FieldValueDao fieldValueDao;
+	
+	/**
+	 * those labels will be overwritten from the master to all language files,
+	 * other label-id's will be only filled up if missing at the end of the
+	 * language file
+	 */
+	private final long[] replaceIds = {  }; // 1518L
+
+	private Map<Long, Fieldlanguagesvalues> masterLabels;
+
+	@Test
+	public void testCount() throws Exception {
+		FieldLanguage prevLanguage = null;
+		long prevCount = -1;
+		for (FieldLanguage l : fieldLanguageDao.getLanguages()) {
+			long count = fieldValueDao.count(l.getLanguage_id(), null);
+			if (prevLanguage != null) {
+				assertEquals(String.format("Language: %s contains %d labels while %s contains %d labels"
+						, prevLanguage.getCode(), prevCount, l.getCode(), count), prevCount, count);
+			}
+			prevLanguage = l;
+			prevCount = count;
+		}
+	}
+	
+	@Test
+	public void test() throws Exception {
+		String languagesFolder = System.getProperty("languages.home", null);
+		OmFileHelper.setOmHome(System.getProperty("om.home", "."));
+		// Read master file
+		File base = null == languagesFolder ? new File(OmFileHelper.getOmHome(), basePath) : new File(languagesFolder);
+		masterLabels = parseToLabelsArray(new File(base, masterLangFile));
+
+		File langFolder = new File(OmFileHelper.getOmHome(), basePath);
+
+		for (File file : langFolder.listFiles(new FilenameFilter() {
+					public boolean accept(File file, String string1) {
+						if (!string1.endsWith("xml")) {
+							return false;
+						}
+						for (String excludeFileName : excludeFiles) {
+							if (string1.equals(excludeFileName)) {
+								return false;
+							}
+						}
+						return true;
+					}
+				})) {
+
+			Map<Long, Fieldlanguagesvalues> labelsArray = parseToLabelsArray(file);
+
+			for (Entry<Long, Fieldlanguagesvalues> entryMaster : masterLabels.entrySet()) {
+				for (long replaceId : replaceIds) {
+					if (replaceId == entryMaster.getKey()) {
+						labelsArray.put(entryMaster.getKey(), entryMaster.getValue());
+					}
+				}
+				if (!labelsArray.containsKey(entryMaster.getKey())) {
+					labelsArray.put(entryMaster.getKey(), entryMaster.getValue());
+				}
+			}
+			LangExport.serializetoXML(new FileOutputStream(file), "UTF-8", createDocument(labelsArray));
+		}
+	}
+
+	/**
+	 * parses a given language file to an array of Labels
+	 * 
+	 * @return
+	 * @throws FileNotFoundException
+	 * @throws DocumentException
+	 */
+	private Map<Long, Fieldlanguagesvalues> parseToLabelsArray(File file)
+			throws FileNotFoundException, DocumentException {
+
+		Map<Long, Fieldlanguagesvalues> labelsArray = new LinkedHashMap<Long, Fieldlanguagesvalues>();
+		SAXReader reader = new SAXReader();
+		Document document = reader.read(file);
+
+		Element root = document.getRootElement();
+
+		for (@SuppressWarnings("unchecked")
+		Iterator<Element> i = root.elementIterator(); i.hasNext();) {
+			Element itemObject = i.next();
+			Long fieldvalues_id = Long.valueOf(
+					itemObject.attribute("id").getText()).longValue();
+			String fieldName = itemObject.attribute("name").getText();
+			String value = itemObject.element("value").getText();
+			Fieldlanguagesvalues fValue = new Fieldlanguagesvalues();
+			fValue.setFieldvalues_id(fieldvalues_id);
+			fValue.setValue(value);
+			Fieldvalues fLabel = new Fieldvalues();
+			fLabel.setName(fieldName);
+			fValue.setFieldvalues(fLabel);
+			
+			labelsArray.put(fieldvalues_id, fValue);
+		}
+
+		return labelsArray;
+	}
+
+	/**
+	 * Create the document
+	 * 
+	 * @param flvList
+	 * @return
+	 * @throws Exception
+	 */
+	private Document createDocument(Map<Long, Fieldlanguagesvalues> labelsArray)
+			throws Exception {
+		Document document = LangExport.createDocument();
+		Element root = LangExport.createRoot(document);
+
+		for (Entry<Long, Fieldlanguagesvalues> entryLabel : labelsArray.entrySet()) {
+			Element eTemp = root.addElement("string")
+					.addAttribute("id", entryLabel.getValue().getFieldvalues_id().toString())
+					.addAttribute("name", entryLabel.getValue().getFieldvalues().getName());
+			Element value = eTemp.addElement("value");
+			value.addText(entryLabel.getValue().getValue());
+		}
+
+		return document;
+	}
+}
diff --git a/src/test/java/org/apache/openmeetings/test/labels/TestGetFieldValues.java b/src/test/java/org/apache/openmeetings/test/labels/TestGetFieldValues.java
new file mode 100644
index 0000000..153f447
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/labels/TestGetFieldValues.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.labels;
+
+import static org.junit.Assert.assertTrue;
+
+import org.apache.openmeetings.db.dao.label.FieldValueDao;
+import org.apache.openmeetings.db.entity.label.Fieldvalues;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 
+ * @author sebawagner
+ * 
+ */
+public class TestGetFieldValues extends AbstractJUnitDefaults {
+	
+	@Autowired
+	private FieldValueDao fieldValueDao;
+
+	@Test
+	public void testCount() throws Exception {
+		Fieldvalues fv = fieldValueDao.get(1L);
+		
+		assertTrue("Fieldvalues should not be null", (fv != null));
+	}
+	
+}
diff --git a/src/test/java/org/apache/openmeetings/test/library/TestFileParser.java b/src/test/java/org/apache/openmeetings/test/library/TestFileParser.java
new file mode 100644
index 0000000..1b5a976
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/library/TestFileParser.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.library;
+
+import org.apache.log4j.Logger;
+import org.apache.openmeetings.documents.LibraryWmlLoader;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+public class TestFileParser extends AbstractJUnitDefaults {
+	
+	private static final Logger log = Logger.getLogger(TestFileParser.class);
+	@Autowired
+	private LibraryWmlLoader libraryWmlLoader;
+	
+	@Test
+	public void testLoadWmlFile(){
+		
+		try {
+			
+			libraryWmlLoader.loadWmlFile("filename1");
+			
+		} catch (Exception err) {
+			
+			log.error("TestLoadWmlFile",err);
+			
+		}
+		
+	}
+	
+}
diff --git a/src/test/java/org/apache/openmeetings/test/navi/TestNavi.java b/src/test/java/org/apache/openmeetings/test/navi/TestNavi.java
new file mode 100644
index 0000000..3a4fcdf
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/navi/TestNavi.java
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.navi;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertNotNull;
+
+import java.util.List;
+
+import org.apache.openmeetings.db.dao.basic.NavigationDao;
+import org.apache.openmeetings.db.entity.basic.Naviglobal;
+import org.apache.openmeetings.db.entity.basic.Navimain;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestNavi extends AbstractJUnitDefaults {
+	
+	@Autowired
+	private NavigationDao navimanagement;
+	
+	@Test
+	public void testGetNavi(){
+		
+        List<Naviglobal> ll = navimanagement.getMainMenu(3L, 1L, 1L);
+
+        assertTrue("GlobalNavi size should be greater than zero: " + ll.size(), ll.size() > 0);
+        System.out.println("NaviGlobal size: " + ll.size());
+
+        for (Naviglobal navigl : ll) {
+        	assertNotNull("Naviglobal retrieved should not be null", navigl);
+            System.out.println("Naviglobal label: " + navigl.getLabel().getValue());
+
+        	assertNotNull("Naviglobal retrieved should have Navimain entries", navigl.getMainnavi());
+            for (Navimain navim : navigl.getMainnavi()) {
+            	assertNotNull("Navimain retrieved should not be null", navim);
+                System.out.println("-->" + navim.getLabel().getValue());
+            }
+        }
+		
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/poll/TestClientListManager.java b/src/test/java/org/apache/openmeetings/test/poll/TestClientListManager.java
new file mode 100644
index 0000000..fbc6653
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/poll/TestClientListManager.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.poll;
+
+import static org.junit.Assert.assertNotNull;
+
+import java.util.Random;
+
+import org.apache.openmeetings.db.dao.server.ISessionManager;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestClientListManager extends AbstractJUnitDefaults {
+	@Autowired
+	private ISessionManager sessionManager;
+	
+	@Test
+	public void addClientListItem() {
+		Random rnd = new Random();
+		assertNotNull("RoomClientId created is null",
+				sessionManager.addClientListItem(rnd.nextLong() + "ABCDE"
+						+ rnd.nextLong(), "scopeName", 66666, "remoteAddress",
+						"swfUrl", false, null));
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/poll/TestPollManagement.java b/src/test/java/org/apache/openmeetings/test/poll/TestPollManagement.java
new file mode 100644
index 0000000..88a8e21
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/poll/TestPollManagement.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.poll;
+
+import org.apache.openmeetings.db.dao.room.PollDao;
+import org.apache.openmeetings.db.entity.room.PollType;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import static org.junit.Assert.*;
+
+public class TestPollManagement extends AbstractJUnitDefaults {
+	@Autowired
+	private PollDao pollManager;
+	
+	@Test
+	public void addPollType() {
+		long maxId = 1;
+		for (PollType pt : pollManager.getPollTypes()) {
+			maxId = Math.max(maxId, pt.getPollTypesId());
+		}
+		assertNotNull("Poll created is null", pollManager.addPollType(26L, false));
+	}
+}
diff --git a/src/test/java/org/apache/openmeetings/test/rdc/KeyCodesTest.java b/src/test/java/org/apache/openmeetings/test/rdc/KeyCodesTest.java
new file mode 100644
index 0000000..a84cbee
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/rdc/KeyCodesTest.java
@@ -0,0 +1,154 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.rdc;
+
+import java.awt.*;
+import java.awt.event.*;
+
+class WindowClosingAdapter extends WindowAdapter {
+	public void windowClosing(WindowEvent event) {
+		event.getWindow().setVisible(false);
+		event.getWindow().dispose();
+		System.exit(0);
+	}
+}
+
+public class KeyCodesTest extends Frame implements KeyListener {
+	private static final long serialVersionUID = -1706968644784929402L;
+	String msg1 = "";
+	String msg2 = "";
+
+	public static void main(String[] args) {
+		new KeyCodesTest();
+	}
+
+	public KeyCodesTest() {
+		super("TestKeyCodes");
+		addKeyListener(this);
+		addWindowListener(new WindowClosingAdapter());
+		setBackground(Color.lightGray);
+		setSize(300, 200);
+		setLocation(200, 100);
+		setVisible(true);
+	}
+
+	public void paint(Graphics g) {
+		if (msg1.length() > 0) {
+			draw3DRect(g, 20, 50, 250, 30);
+			g.setColor(Color.black);
+			g.drawString(msg1, 30, 70);
+		}
+		if (msg2.length() > 0) {
+			draw3DRect(g, 20, 100, 250, 30);
+			g.setColor(Color.black);
+			g.drawString(msg2, 30, 120);
+		}
+	}
+
+	void draw3DRect(Graphics g, int x, int y, int width, int height) {
+		g.setColor(Color.darkGray);
+		g.drawLine(x, y, x, y + height);
+		g.drawLine(x, y, x + width, y);
+		g.setColor(Color.white);
+		g.drawLine(x + width, y + height, x, y + height);
+		g.drawLine(x + width, y + height, x + width, y);
+	}
+
+	public void keyPressed(KeyEvent event) {
+		msg1 = "";
+		System.out.println("keyPressed CODE1 "+event.getKeyCode());
+		
+		Integer myCode = event.getKeyCode();
+		
+		System.out.println("keyPressed CODE2 "+myCode);
+		
+		System.out.println("keyPressed CHAR3 "+event.getKeyChar());
+		
+		System.out.println("keyPressed CHAR4 "+KeyEvent.getKeyText(event.getKeyCode()));
+		
+		System.out.println("keyPressed CHAR5 "+KeyEvent.getKeyText(myCode));
+		
+		System.out.println("keyPressed isActionKey "+event.isActionKey());
+		System.out.println("keyPressed isAltDown "+event.isAltDown());
+		System.out.println("keyPressed isAltGraphDown "+event.isAltGraphDown());
+		System.out.println("keyPressed isConsumed "+event.isConsumed());
+		System.out.println("keyPressed isControlDown "+event.isControlDown());
+		System.out.println("keyPressed isMetaDown "+event.isMetaDown());
+		System.out.println("keyPressed isShiftDown "+event.isShiftDown());
+
+		System.out.println("keyPressed paramString "+event.paramString());
+		
+		if (event.getKeyChar() == KeyEvent.CHAR_UNDEFINED) {
+			int key = event.getKeyCode();
+			// Funktionstaste abfragen
+			if (key == KeyEvent.VK_F1) {
+				msg1 = "F1";
+			} else if (key == KeyEvent.VK_F2) {
+				msg1 = "F2";
+			} else if (key == KeyEvent.VK_F3) {
+				msg1 = "F3";
+			}
+			// Modifier abfragen
+			if (msg1.length() > 0) {
+				if (event.isAltDown()) {
+					msg1 = "ALT + " + msg1;
+				}
+				if (event.isControlDown()) {
+					msg1 = "STRG + " + msg1;
+				}
+				if (event.isShiftDown()) {
+					msg1 = "UMSCHALT + " + msg1;
+				}
+			}
+		}
+		repaint();
+	}
+
+	public void keyReleased(KeyEvent event) {
+		msg1 = "";
+		repaint();
+	}
+
+	public void keyTyped(KeyEvent event) {
+		char key = event.getKeyChar();
+		
+//		System.out.println("keyTyped CODE1 "+event.getKeyCode());
+//		
+//		Integer myCode = event.getKeyCode();
+//		
+//		System.out.println("keyTyped CODE2 "+myCode);
+//		
+//		System.out.println("keyTyped CHAR3 "+event.getKeyChar());
+//		
+//		System.out.println("keyTyped CHAR4 "+event.getKeyText(event.getKeyCode()));
+//		
+//		System.out.println("keyTyped CHAR5 "+event.getKeyText(myCode));
+		
+		if (key == KeyEvent.VK_BACK_SPACE) {
+			if (msg2.length() > 0) {
+				msg2 = msg2.substring(0, msg2.length() - 1);
+			}
+		} else if (key >= KeyEvent.VK_SPACE) {
+			if (msg2.length() < 40) {
+				msg2 += event.getKeyChar();
+			}
+		}
+		repaint();
+	}
+}
diff --git a/src/test/java/org/apache/openmeetings/test/rdc/ReadKeyCodesTest.java b/src/test/java/org/apache/openmeetings/test/rdc/ReadKeyCodesTest.java
new file mode 100644
index 0000000..97c2573
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/rdc/ReadKeyCodesTest.java
@@ -0,0 +1,115 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.rdc;
+
+import java.awt.*;
+import java.awt.event.*;
+
+public class ReadKeyCodesTest extends Frame implements KeyListener {
+	private static final long serialVersionUID = -1722917067803656922L;
+	String msg1 = "";
+	String msg2 = "";
+
+	public static void main(String[] args) {
+		new ReadKeyCodesTest();
+	}
+
+	public ReadKeyCodesTest() {
+		super("TestKeyCodes");
+		addKeyListener(this);
+		addWindowListener(new WindowClosingAdapter());
+		setBackground(Color.lightGray);
+		setSize(300, 200);
+		setLocation(200, 100);
+		setVisible(true);
+	}
+
+	public void paint(Graphics g) {
+		if (msg1.length() > 0) {
+			draw3DRect(g, 20, 50, 250, 30);
+			g.setColor(Color.black);
+			g.drawString(msg1, 30, 70);
+		}
+		if (msg2.length() > 0) {
+			draw3DRect(g, 20, 100, 250, 30);
+			g.setColor(Color.black);
+			g.drawString(msg2, 30, 120);
+		}
+	}
+
+	void draw3DRect(Graphics g, int x, int y, int width, int height) {
+		g.setColor(Color.darkGray);
+		g.drawLine(x, y, x, y + height);
+		g.drawLine(x, y, x + width, y);
+		g.setColor(Color.white);
+		g.drawLine(x + width, y + height, x, y + height);
+		g.drawLine(x + width, y + height, x + width, y);
+	}
+
+	public void keyPressed(KeyEvent event) {
+		msg1 = "";
+		System.out.println("keyPressed "+event.getKeyCode());
+		if (event.getKeyChar() == KeyEvent.CHAR_UNDEFINED) {
+			int key = event.getKeyCode();
+			// Funktionstaste abfragen
+			if (key == KeyEvent.VK_F1) {
+				msg1 = "F1";
+			} else if (key == KeyEvent.VK_F2) {
+				msg1 = "F2";
+			} else if (key == KeyEvent.VK_F3) {
+				msg1 = "F3";
+			}
+			// Modifier abfragen
+			if (msg1.length() > 0) {
+				if (event.isAltDown()) {
+					msg1 = "ALT + " + msg1;
+				}
+				if (event.isControlDown()) {
+					msg1 = "STRG + " + msg1;
+				}
+				if (event.isShiftDown()) {
+					msg1 = "UMSCHALT + " + msg1;
+				}
+			}
+		}
+		repaint();
+	}
+
+	public void keyReleased(KeyEvent event) {
+		msg1 = "";
+		repaint();
+	}
+
+	public void keyTyped(KeyEvent event) {
+		char key = event.getKeyChar();
+		
+		System.out.println("keyTyped "+event.getKeyCode());
+		
+		if (key == KeyEvent.VK_BACK_SPACE) {
+			if (msg2.length() > 0) {
+				msg2 = msg2.substring(0, msg2.length() - 1);
+			}
+		} else if (key >= KeyEvent.VK_SPACE) {
+			if (msg2.length() < 40) {
+				msg2 += event.getKeyChar();
+			}
+		}
+		repaint();
+	}
+}
diff --git a/src/test/java/org/apache/openmeetings/test/rdc/TestKeyCodesNumber.java b/src/test/java/org/apache/openmeetings/test/rdc/TestKeyCodesNumber.java
new file mode 100644
index 0000000..f1d6559
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/rdc/TestKeyCodesNumber.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.rdc;
+
+import java.awt.event.KeyEvent;
+
+import junit.framework.TestCase;
+
+import org.apache.log4j.Logger;
+import org.junit.Test;
+
+public class TestKeyCodesNumber extends TestCase {
+
+	private static final Logger log = Logger.getLogger(TestKeyCodesNumber.class);
+
+	@Test
+	public void testKeyCodes() {
+		try {
+
+			for (int i = 1; i < 600; i++) {
+
+				String charText = KeyEvent.getKeyText(i);
+
+				log.debug("ERROR " + i + " " + charText);
+
+			}
+
+		} catch (Exception err) {
+			log.error("[testKeyCodes]", err);
+		}
+
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/rdc/TestReadKeyCodesNumber.java b/src/test/java/org/apache/openmeetings/test/rdc/TestReadKeyCodesNumber.java
new file mode 100644
index 0000000..5a9fc17
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/rdc/TestReadKeyCodesNumber.java
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.rdc;
+
+import junit.framework.TestCase;
+
+import org.apache.log4j.Logger;
+import org.junit.Test;
+
+public class TestReadKeyCodesNumber extends TestCase {
+
+	private static final Logger log = Logger
+			.getLogger(TestReadKeyCodesNumber.class);
+
+	@Test
+	public void testTestKeyCodesNumber() {
+		try {
+
+			this.testKeyCodes();
+
+		} catch (Exception er) {
+			log.debug("ERROR ", er);
+		}
+	}
+
+	@Test
+	public void testKeyCodes() {
+		try {
+
+		} catch (Exception err) {
+			log.error("[testKeyCodes]", err);
+		}
+
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/rtmp/LoadTestRtmpClient.java b/src/test/java/org/apache/openmeetings/test/rtmp/LoadTestRtmpClient.java
new file mode 100644
index 0000000..7da8a8c
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/rtmp/LoadTestRtmpClient.java
@@ -0,0 +1,172 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.test.rtmp;

+

+import java.util.Date;

+import java.util.HashMap;

+import java.util.Map;

+import java.util.Map.Entry;

+

+import org.red5.client.net.rtmp.ClientExceptionHandler;

+import org.red5.client.net.rtmp.INetStreamEventHandler;

+import org.red5.client.net.rtmp.RTMPClient;

+import org.red5.server.api.service.IPendingServiceCall;

+import org.red5.server.api.service.IPendingServiceCallback;

+import org.red5.server.net.rtmp.event.Notify;

+

+public class LoadTestRtmpClient extends RTMPClient implements IPendingServiceCallback, INetStreamEventHandler, ClientExceptionHandler {

+

+	private class CallObject {

+		Date started;

+		Date ended;

+

+		public CallObject(Date started) {

+			super();

+			this.started = started;

+		}

+

+		public Date getStarted() {

+			return started;

+		}

+

+		public Date getEnded() {

+			return ended;

+		}

+

+		public void setEnded(Date ended) {

+			this.ended = ended;

+		}

+	}

+	

+	private int counterCalls = 0; // a call is always 2 steps

+	private Map<Integer, CallObject> calls = new HashMap<Integer, CallObject>();

+	private boolean isConnected = false;

+	private final int instanceId;

+

+	public LoadTestRtmpClient(int instanceId) {

+		this.instanceId = instanceId;

+	}

+	

+	public boolean performCall() {

+

+		// System.err.println("performCall " + isConnected);

+

+		if (!isConnected) {

+			return false;

+		}

+		

+		if (counterCalls % 2 == 0) {

+

+			if (counterCalls > 10) {

+

+				return true;

+

+			}

+

+			System.err.println("Rest o do new call " + counterCalls);

+			counterCalls++;

+

+			Map<String, Integer> map = new HashMap<String, Integer>();

+			map.put("instanceId", instanceId);

+			map.put("count", counterCalls);

+			calls.put(counterCalls, new CallObject(new Date()));

+			invoke("loadTestSyncMessage", new Object[] {

+					"syncMessageToCurrentScopeResult", map, true }, this);

+

+		} else {

+			System.err.println("Call running " + counterCalls);

+		}

+		

+		

+		

+		return false;

+	}

+	

+	public double getAverageTime() {

+		long overallTime = 0L;

+

+		for (Entry<Integer, CallObject> tCallObjectEntry : calls.entrySet()) {

+

+			long deltaTime = tCallObjectEntry.getValue().getEnded().getTime()

+					- tCallObjectEntry.getValue().getStarted().getTime();

+

+			// System.err.println("Key " + tCallObjectEntry.getKey()

+			// + "deltaTime " + deltaTime);

+

+			overallTime += deltaTime;

+

+		}

+

+		double averageTime = Long.valueOf(overallTime).doubleValue()

+				/ Integer.valueOf(calls.size()).doubleValue();

+

+		return averageTime;

+	}

+	

+	public void resultReceived(IPendingServiceCall call) {

+		String method = call == null ? null : call.getServiceMethodName();

+		System.err.println("method "+method);

+		if (method == null) {

+			return;

+		}

+		if ("connect".equals(method)) {

+			isConnected = true;

+		}

+

+		if ("loadTestSyncMessage".equals(method)) {

+

+			CallObject tCallObject = calls.get(counterCalls);

+			if (tCallObject == null) {

+

+				for (Entry<Integer, CallObject> tCallObjectEntry : calls

+						.entrySet()) {

+

+					System.err.println("Key " + tCallObjectEntry.getKey()

+							+ "tCallObjectEntry "

+							+ tCallObjectEntry.getValue().getStarted());

+

+				}

+

+				throw new RuntimeException(

+						"tCallObject is null currentCountReturn "

+								+ counterCalls + " list size "

+								+ calls.size());

+			}

+			tCallObject.setEnded(new Date());

+			calls.put(counterCalls, tCallObject);

+

+			System.err.println("Call received " + counterCalls

+					+ " instanceId: " + instanceId);

+

+			counterCalls++;

+		}

+

+	}

+

+

+	public void onStreamEvent(Notify notify) {

+		// TODO Auto-generated method stub

+		

+	}

+

+	public int getNumberOfCalls() {

+		return calls.size();

+	}

+	

+}

diff --git a/src/test/java/org/apache/openmeetings/test/rtmp/SimulateLoad.java b/src/test/java/org/apache/openmeetings/test/rtmp/SimulateLoad.java
new file mode 100644
index 0000000..392f76c
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/rtmp/SimulateLoad.java
@@ -0,0 +1,93 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.test.rtmp;

+

+import org.slf4j.Logger;

+import org.slf4j.LoggerFactory;

+

+public class SimulateLoad extends Thread {

+

+	private static final Logger log = LoggerFactory

+			.getLogger(SimulateLoad.class);

+

+	private LoadTestRtmpClient loadTestRtmpClient;

+	private boolean testRunning = true;

+

+	public double getAverageTime() {

+		return loadTestRtmpClient.getAverageTime();

+	}

+

+	public boolean isTestRunning() {

+		return testRunning;

+	}

+

+	public static void main(String... args) {

+		try {

+			if (args.length != 4) {

+				new RuntimeException(

+						"4 args needed, host, port, context, instanceId");

+			}

+			for (String arg : args) {

+				System.err.println("arg: " + arg);

+			}

+			SimulateLoad simulateLoad = new SimulateLoad(args[0], Integer

+					.valueOf(args[1]).intValue(), args[2], Integer.valueOf(

+					args[3]).intValue());

+			simulateLoad.start();

+			System.err.println("started ");

+

+		} catch (Exception er) {

+			er.printStackTrace();

+			log.error("Error", er);

+		}

+	}

+

+	public SimulateLoad(String host, int port, String applicationContext,

+			int instanceId) {

+		super();

+

+		loadTestRtmpClient = new LoadTestRtmpClient(instanceId);

+		loadTestRtmpClient.connect(host, port, applicationContext,

+				loadTestRtmpClient);

+	}

+

+	public void run() {

+		try {

+

+			System.err.println("######### start client");

+

+			while (testRunning) {

+				testRunning = !loadTestRtmpClient.performCall();

+				try {

+					Thread.sleep(200);

+				} catch (InterruptedException e) {

+					e.printStackTrace();

+				}

+			}

+

+		} catch (Exception e) {

+			e.printStackTrace();

+		}

+	}

+

+	public int getNumberOfCalls() {

+		return loadTestRtmpClient.getNumberOfCalls();

+	}

+

+}

diff --git a/src/test/java/org/apache/openmeetings/test/rtmp/SimulateLoadTest.java b/src/test/java/org/apache/openmeetings/test/rtmp/SimulateLoadTest.java
new file mode 100644
index 0000000..54b1e9d
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/rtmp/SimulateLoadTest.java
@@ -0,0 +1,107 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.rtmp;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.Test;
+
+public class SimulateLoadTest {
+
+	private int numberOfClients = 25;
+	private List<SimulateLoad> simulateLoadList = new ArrayList<SimulateLoad>();
+
+	private String host = "192.168.1.7";
+	private final int port = 1935;
+	private final String applicationContext = "openmeetings/1";
+
+	public SimulateLoadTest(String host, int numberOfClients) {
+		this.host = host;
+		this.numberOfClients = numberOfClients;
+	}
+
+	public static void main(String... args) {
+		if (args.length != 2) {
+			return;
+		}
+		SimulateLoadTest simulateLoadTest = new SimulateLoadTest(args[0],
+				Integer.valueOf(args[1]).intValue());
+		simulateLoadTest.test();
+	}
+
+
+	@Test
+	public void test() {
+		try {
+			for (int i = 0; i < numberOfClients; i++) {
+				SimulateLoad simulateLoad = new SimulateLoad(host, port,
+						applicationContext, i);
+				simulateLoadList.add(simulateLoad);
+				Thread.sleep(100);
+			}
+
+			System.err.println("Clients initialized");
+
+			for (SimulateLoad simulateLoad : simulateLoadList) {
+				simulateLoad.start();
+				Thread.sleep(50);
+			}
+
+			System.err.println("Clients started");
+
+			boolean running = true;
+			while (running) {
+				boolean doRunStill = false;
+				for (SimulateLoad simulateLoad : simulateLoadList) {
+					if (simulateLoad.isTestRunning()) {
+						doRunStill = true;
+						break;
+					}
+				}
+				running = doRunStill;
+				try {
+					Thread.sleep(200);
+				} catch (InterruptedException e) {
+					e.printStackTrace();
+				}
+			}
+
+			double overallTime = 0;
+
+			for (SimulateLoad simulateLoad : simulateLoadList) {
+				overallTime += simulateLoad.getAverageTime();
+				System.err.println("Number of calls: "
+						+ simulateLoad.getNumberOfCalls() + "overallTime: "
+						+ overallTime + " averageTime"
+						+ simulateLoad.getAverageTime());
+			}
+
+			double deltaAllClients = overallTime
+					/ Integer.valueOf(simulateLoadList.size()).doubleValue();
+
+			System.err.println("Average time per call: " + deltaAllClients);
+
+		} catch (Exception err) {
+			err.printStackTrace();
+		}
+
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/selenium/AbstractTestDefaults.java b/src/test/java/org/apache/openmeetings/test/selenium/AbstractTestDefaults.java
new file mode 100644
index 0000000..459e42b
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/selenium/AbstractTestDefaults.java
@@ -0,0 +1,232 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.selenium;
+
+import java.util.List;
+
+import org.apache.openmeetings.db.dao.label.FieldLanguagesValuesDao;
+import org.apache.openmeetings.test.AbstractSpringTest;
+import org.junit.After;
+import org.junit.Before;
+import org.openqa.selenium.Keys;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.firefox.FirefoxDriver;
+import org.openqa.selenium.firefox.FirefoxProfile;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public abstract class AbstractTestDefaults extends AbstractSpringTest {
+	
+	@Autowired
+	private FieldLanguagesValuesDao fieldLanguagesValuesDao;
+
+	public WebDriver driver = null;
+	
+	private String BASE_URL = "http://localhost:5080/openmeetings";
+	private String username = "swagner";
+	private String userpass = "qweqwe";
+	private String orgname = "seleniumtest";
+	private String email = "selenium@openmeetings.apache.org";
+	private String locale = "en-us";
+
+
+	public String getBASE_URL() {
+		return BASE_URL;
+	}
+
+	public String getUsername() {
+		return username;
+	}
+
+	public String getUserpass() {
+		return userpass;
+	}
+
+	public String getOrgname() {
+		return orgname;
+	}
+
+	public String getEmail() {
+		return email;
+	}
+	
+	public Long getLanguageId() {
+		return 1L;
+	}
+	
+	public String getLocale() {
+		return locale;
+	}
+
+	// setting this to false can be handy if you run the test from inside
+	// Eclipse, the browser will not shut down after the test so you can start
+	// to diagnose the test issue
+	public boolean doTearDownAfterTest = false;
+	
+	public String getString(long id) {
+		return fieldLanguagesValuesDao.getString(id, getLanguageId());
+	}
+
+	/**
+	 * Make method overwrite possible to have custom behavior in tests
+	 * 
+	 * @return
+	 */
+	public boolean getDoTearDownAfterTest() {
+		return doTearDownAfterTest;
+	}
+
+	@Before
+	public void setUp() throws Exception {
+		super.setUp();
+		FirefoxProfile profile = new FirefoxProfile();
+		profile.setPreference("intl.accept_languages", getLocale());
+		driver = new FirefoxDriver(profile);
+	}
+
+	/**
+	 * This test is a basic test to verify the default loader mechanism works
+	 * it is not intend to be a part of any sub test
+	 * 
+	 * @throws Exception
+	 */
+	//@Test
+	public void smokeTest() throws Exception {
+		try {
+			driver.get(getBASE_URL());
+
+			testIsInstalledAndDoInstallation();
+
+			SeleniumUtils.inputText(driver, "login", getUsername());
+			SeleniumUtils.inputText(driver, "pass", getUserpass());
+
+			WebElement signInButton = SeleniumUtils.findElement(driver,
+					"//button[span[contains(text(), 'Sign in')]]", true, true);
+			signInButton.click();
+
+			SeleniumUtils.elementExists(driver,
+					"//h3[contains(text(), 'Help and support')]", true);
+		} catch (Exception e) {
+			SeleniumUtils.makeScreenShot(this.getClass().getSimpleName(), e,
+					driver);
+			throw e;
+		}
+	}
+
+	/**
+	 * Throws exception in case that test fails, so it is important to not catch 
+	 * that exception but really let the test fail!
+	 * 
+	 * @throws Exception
+	 */
+	protected void testIsInstalledAndDoInstallation() throws Exception {
+
+		WebElement wicketExtensionsWizardHeaderTitle = SeleniumUtils
+				.findElement(driver, "wicketExtensionsWizardHeaderTitle", false, true);
+		if (wicketExtensionsWizardHeaderTitle == null) {
+			return;
+		}
+		if (wicketExtensionsWizardHeaderTitle.getText()
+				.contains("Installation")) {
+			System.out.println("Do Installation");
+			doInstallation();
+		}
+
+	}
+
+	private void doInstallation() throws Exception {
+		Thread.sleep(3000L);
+
+		List<WebElement> buttons_next = SeleniumUtils.findElements(driver,
+				"buttons:next", true);
+
+		buttons_next.get(1).sendKeys(Keys.RETURN);
+
+		Thread.sleep(1000L);
+
+		SeleniumUtils.inputText(driver, "view:cfg.username", getUsername());
+		SeleniumUtils.inputText(driver, "view:cfg.password", getUserpass());
+		SeleniumUtils.inputText(driver, "view:cfg.email", getEmail());
+		SeleniumUtils.inputText(driver, "view:cfg.group", getOrgname());
+
+		buttons_next = SeleniumUtils.findElements(driver, "buttons:next", true);
+
+		buttons_next.get(1).sendKeys(Keys.RETURN);
+
+		Thread.sleep(1000L);
+
+		buttons_next = SeleniumUtils.findElements(driver, "buttons:next", true);
+
+		buttons_next.get(1).sendKeys(Keys.RETURN);
+
+		Thread.sleep(1000L);
+
+		buttons_next = SeleniumUtils.findElements(driver, "buttons:next", true);
+
+		buttons_next.get(1).sendKeys(Keys.RETURN);
+
+		Thread.sleep(1000L);
+
+		buttons_next = SeleniumUtils.findElements(driver, "buttons:next", true);
+
+		buttons_next.get(1).sendKeys(Keys.RETURN);
+
+		Thread.sleep(2000L);
+
+		List<WebElement> elements = SeleniumUtils.findElements(driver,
+				"buttons:finish", true);
+
+		elements.get(1).sendKeys(Keys.RETURN);
+
+		long maxMilliSecondsWait = 120000;
+
+		while (maxMilliSecondsWait > 0) {
+
+			// check if installation is complete by searching for the link on
+			// the success page
+			WebElement enterApplicationLink = SeleniumUtils.findElement(driver,
+					"//a[contains(@href,'install')]", false, true);
+
+			if (enterApplicationLink == null) {
+				System.out
+						.println("Installation running - wait 3 more seconds and check again");
+
+				Thread.sleep(3000L);
+				maxMilliSecondsWait -= 3000;
+			} else {
+				maxMilliSecondsWait = 0;
+
+				enterApplicationLink.click();
+
+				return;
+			}
+		}
+
+		throw new Exception("Timeout during installation");
+	}
+
+	@After
+	public void tearDown() throws Exception {
+		if (getDoTearDownAfterTest()) {
+			driver.close();
+			driver.quit();
+		}
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/selenium/SeleniumUtils.java b/src/test/java/org/apache/openmeetings/test/selenium/SeleniumUtils.java
new file mode 100644
index 0000000..b525125
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/selenium/SeleniumUtils.java
@@ -0,0 +1,224 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.selenium;
+
+import java.io.File;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.commons.io.FileUtils;
+import org.openqa.selenium.By;
+import org.openqa.selenium.OutputType;
+import org.openqa.selenium.TakesScreenshot;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+
+public class SeleniumUtils {
+	// we need to retry some actions because our web site is dynamic
+	static int numberOfRetries = 10;
+
+	// we need to sleep to make sure Ajax could complete whatever it does
+	static long defaultSleepInterval = 1000;
+
+	public static void inputText(WebDriver driver, String search,
+			String inputText) throws Exception {
+		WebElement element = SeleniumUtils.findElement(driver, search, true, true);
+
+		//clear text before adding input
+		element.clear();
+		
+		// Would make send to check if this element is really an input text
+		element.sendKeys(inputText);
+	}
+
+	public static void click(WebDriver driver, String search) throws Exception {
+		WebElement element = SeleniumUtils.findElement(driver, search, true, true);
+		element.click();
+	}
+	
+	/**
+	 * 
+	 * @param driver
+	 * @param search
+	 * @param throwException
+	 *            under some circumstance you do't want to exit the test here
+	 * @return
+	 * @throws Exception
+	 */
+	public static List<WebElement> findElements(WebDriver driver, String search,
+			boolean throwException) throws Exception {
+		for (int i = 0; i < numberOfRetries; i++) {
+			List<WebElement> elements = _findElement(driver, search);
+			if (elements != null) {
+				return elements;
+			}
+
+			Thread.sleep(defaultSleepInterval);
+		}
+
+		if (throwException) {
+			throw new Exception("Could not find element with specified path "
+					+ search);
+		}
+
+		return null;
+	}
+
+	/**
+	 * 
+	 * @param driver
+	 * @param search
+	 * @param throwException
+	 *            under some circumstance you do't want to exit the test here
+	 * @param onlyReturnVisisbleElement TODO
+	 * @return
+	 * @throws Exception
+	 */
+	public static WebElement findElement(WebDriver driver, String search,
+			boolean throwException, boolean onlyReturnVisisbleElement) throws Exception {
+		for (int i = 0; i < numberOfRetries; i++) {
+			List<WebElement> elements = _findElement(driver, search);
+			if (elements != null) {
+				
+				if (!onlyReturnVisisbleElement) {
+					return elements.get(0);
+				}
+				
+				for (WebElement element : elements) {
+					if (element.isDisplayed()) {
+						return element;
+					}
+				}
+				
+			}
+
+			Thread.sleep(defaultSleepInterval);
+		}
+
+		if (throwException) {
+			throw new Exception("Could not find element with specified path "
+					+ search);
+		}
+
+		return null;
+	}
+
+	private static By[] _getSearchArray(String search) {
+		//If xpath we have to use it, if xpath is used with By.className(...) there will be an exception
+		if (search.startsWith("//")) {
+			return new By[] { By.xpath(search) };
+		} else {
+			return new By[] { By.id(search), By.name(search), By.className(search),
+					By.tagName(search), By.xpath(search) };
+		}
+	}
+
+	private static List<WebElement> _findElement(WebDriver driver, String search) {
+		for (By by : _getSearchArray(search)) {
+			try {
+				List<WebElement> elements = driver.findElements(by);
+				if (elements != null && elements.size() > 0) {
+					return elements;
+				}
+			} catch (Exception e) {
+				// Do not show any warnings
+			}
+		}
+		return null;
+	}
+
+	public static void elementExists(WebDriver driver, String search,
+			boolean shouldExist) throws Exception {
+		Thread.sleep(defaultSleepInterval);
+
+		boolean doesExist = !shouldExist;
+
+		for (int i = 0; i < numberOfRetries; i++) {
+			doesExist = checkExists(driver, search);
+			if (doesExist == shouldExist) {
+				break;
+			}
+
+			Thread.sleep(defaultSleepInterval);
+		}
+
+		if (doesExist != shouldExist) {
+			if (shouldExist) {
+				throw new Exception("Element could not be found: " + search);
+			} else {
+				throw new Exception("Unexpected Element was found: " + search);
+			}
+		}
+	}
+
+	private static boolean checkExists(WebDriver driver, String search) {
+		for (By by : _getSearchArray(search)) {
+			try {
+				List<WebElement> element = driver.findElements(by);
+				if (element.size() > 0) {
+					return true;
+				}
+			} catch (Exception e) {
+				// Do not show any warnings
+			}
+		}
+		return false;
+	}
+
+	public static void makeScreenShot(String testName, Exception e,
+			WebDriver driver) {
+		try {
+			DateFormat df = new SimpleDateFormat("MM-dd-yyyy_HH-mm-ss");
+			String fileName = e.getMessage().replace(" ", "_");
+			fileName = fileName.replaceAll("(\r\n|\n)", "");
+			fileName = fileName.replaceAll("/", "");
+
+			if (fileName.length() > 100) {
+				fileName = fileName.substring(0, 100);
+			}
+
+			fileName = fileName + "_" + df.format(new Date()) + ".png";
+			File screenShotFile = ((TakesScreenshot) driver)
+					.getScreenshotAs(OutputType.FILE);
+
+			String path = "." + File.separatorChar + "build"
+					+ File.separatorChar + "screenshots" + File.separatorChar
+					+ testName;
+
+			File screenshotFolder = new File(path);
+			if (!screenshotFolder.exists()) {
+				screenshotFolder.mkdirs();
+			}
+
+			System.out.println("screenshot copy from: "
+					+ screenShotFile.getAbsolutePath());
+			System.out.println("Length Filename: " + fileName.length()
+					+ " - Writing screenshot to: " + path + File.separatorChar
+					+ fileName);
+
+			FileUtils.moveFile(screenShotFile, new File(path
+					+ File.separatorChar + fileName));
+		} catch (Exception err) {
+			err.printStackTrace();
+		}
+
+	}
+}
\ No newline at end of file
diff --git a/src/test/java/org/apache/openmeetings/test/selenium/TestSignUp.java b/src/test/java/org/apache/openmeetings/test/selenium/TestSignUp.java
new file mode 100644
index 0000000..0a0a5d5
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/selenium/TestSignUp.java
@@ -0,0 +1,135 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.selenium;
+
+import java.util.Date;
+
+import org.junit.Test;
+import org.openqa.selenium.Alert;
+import org.openqa.selenium.WebElement;
+
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButtons;
+
+public class TestSignUp extends AbstractTestDefaults {
+	
+	String pass = "pass";
+	
+	@Override
+	public boolean getDoTearDownAfterTest() {
+		return false;
+	}
+
+	@Test
+	public void testSignUp() throws Exception {
+		
+		try {
+			driver.get(getBASE_URL());
+			
+			String currentRandomCounter = "" + ((new Date().getTime())/1000);
+			String userName = "seba" + currentRandomCounter;
+			String email = "hans." + currentRandomCounter + "@openmeetings.apache.org";
+			
+			super.testIsInstalledAndDoInstallation();
+			
+			WebElement signUpButton = SeleniumUtils.findElement(driver,
+					"//button[span[contains(text(), '" + getString(123) + "')]]", true, true);
+			signUpButton.click();
+			
+			// ##################################
+			// Test validation message for passwords to be identical
+			// ##################################
+			doSignUp("Hans","Muster", userName, "pw", "pw2", email);
+			
+			//Find Error label-id 232 "Please enter two identical passwords"
+			SeleniumUtils.findElement(driver, "//span[@class='feedbackPanelERROR'][contains(text(), '" + getString(232) + "')]", true, true);
+			
+			
+			// ##################################
+			// Sign up with user and sign in
+			// ##################################
+			doSignUp("Hans","Muster", userName, pass, pass, email);
+			
+			
+			//Check for popup with success message and email to check
+			//Labelid 674
+			SeleniumUtils.findElement(driver, "//span[contains(text(), '" + getString(674) + "')]", true, true);
+			
+			//click button to close popup
+			WebElement signUpSucessPopUpOkButton = SeleniumUtils.findElement(driver,
+					"//button[span[contains(text(), '" + DialogButtons.OK.toString() + "')]]", true, true);
+			signUpSucessPopUpOkButton.click();
+			
+			//Login with user
+			SeleniumUtils.inputText(driver, "login", userName);
+			SeleniumUtils.inputText(driver, "pass", pass);
+	
+			//click labelid 112 "Sign In"
+			WebElement signInButton = SeleniumUtils.findElement(driver,
+					"//button[span[contains(text(), '" + getString(112) + "')]]", true, true);
+			signInButton.click();
+	
+			// check for some text in dashbaord, labelid 281, "Help and support"
+			SeleniumUtils.elementExists(driver,
+					"//h3[contains(text(), '" + getString(281) + "')]", true);
+			
+			//sign out
+			WebElement signOutLink = SeleniumUtils.findElement(driver,
+					"//a[contains(text(), '" + getString(310) + "')]", true, true);
+			signOutLink.click();
+			
+			Alert alert = driver.switchTo().alert();
+			alert.accept();
+			
+			// ##################################
+			// Sign up with same user and email and check duplicate messages
+			// ##################################
+			
+			signUpButton = SeleniumUtils.findElement(driver,
+					"//button[span[contains(text(), '" + getString(123) + "')]]", true, true);
+			signUpButton.click();
+			
+			doSignUp("Hans","Muster", userName, pass, pass, email);
+			
+			//Find Error label-id 105, The username is already used
+			SeleniumUtils.findElement(driver, "//span[@class='feedbackPanelERROR'][contains(text(), '" + getString(105) + "')]", true, true);
+			
+			//Find Error label-id 1000, This email is already used by another user.
+			SeleniumUtils.findElement(driver, "//span[@class='feedbackPanelERROR'][contains(text(), '" + getString(1000) + "')]", true, true);
+		} catch (Exception e) {
+			SeleniumUtils.makeScreenShot(this.getClass().getSimpleName(), e,
+					driver);
+			throw e;
+		}	
+	}
+	
+	private void doSignUp(String firstName, String lastName, String login, String password,
+					String confirmPassword, String email) throws Exception {
+		
+		SeleniumUtils.inputText(driver, "firstName", firstName);
+		SeleniumUtils.inputText(driver, "lastName", lastName);
+		SeleniumUtils.inputText(driver, "//input[@name='login']", login);
+		SeleniumUtils.inputText(driver, "password", password);
+		SeleniumUtils.inputText(driver, "confirmPassword", confirmPassword);
+		SeleniumUtils.inputText(driver, "email", email);
+		
+		WebElement submitButton = SeleniumUtils.findElement(driver,
+				"//button[span[contains(text(), 'Register')]]", true, true);
+		submitButton.click();
+	}
+}
diff --git a/src/test/java/org/apache/openmeetings/test/session/TestDbSession.java b/src/test/java/org/apache/openmeetings/test/session/TestDbSession.java
new file mode 100644
index 0000000..7045307
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/session/TestDbSession.java
@@ -0,0 +1,198 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.session;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.List;
+
+import org.apache.openmeetings.db.dao.room.ClientDao;
+import org.apache.openmeetings.db.dao.server.ServerDao;
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.db.entity.server.Server;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.junit.Test;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestDbSession extends AbstractJUnitDefaults {
+
+	protected static final Logger log = Red5LoggerFactory.getLogger(
+			TestDbSession.class, OpenmeetingsVariables.webAppRootKey);
+
+	@Autowired
+	private ServerDao serverDao;
+
+	@Autowired
+	private ClientDao clientDao;
+
+	@Test
+	public void testDbSessionFunctions() {
+
+		clientDao.cleanAllClients();
+		
+		List<Server> serverList = serverDao.getActiveServers();
+
+		Server server = null;
+		if (serverList.size() > 0) {
+			server = serverList.get(0);
+		} else {
+			server = new Server();
+			server.setName("Test Server");
+			server.setActive(true);
+			serverDao.update(server, null);
+		}
+
+		Client cl1 = new Client();
+		cl1.setStreamid("1");
+		cl1.setServer(null);
+		cl1.setUser_id(1L);
+		cl1.setRoom_id(1L);
+		cl1.setPublicSID("public1");
+		clientDao.add(cl1);
+
+		Client cl2 = new Client();
+		cl2.setStreamid("2");
+		cl2.setServer(null);
+		cl2.setRoom_id(1L);
+		cl2.setUser_id(2L);
+		cl2.setPublicSID("public2");
+		clientDao.add(cl2);
+
+		Client cl3 = new Client();
+		cl3.setStreamid("3");
+		cl3.setServer(server);
+		cl3.setRoom_id(3L);
+		cl3.setUser_id(3L);
+		cl3.setPublicSID("public3");
+		clientDao.add(cl3);
+		
+		Client clTest = clientDao.getClientByServerAndStreamId(null, "1");
+
+		log.debug("cl1 " + cl1);
+		log.debug("clTest " + clTest);
+
+		assertEquals(clTest.getId(), cl1.getId());
+
+		Client clTest3 = clientDao.getClientByServerAndStreamId(server, "3");
+
+		log.debug("cl3 " + cl3);
+		log.debug("clTest3 " + clTest3);
+
+		assertEquals(clTest3.getId(), cl3.getId());
+
+		Client clTest_NOT_3 = clientDao.getClientByServerAndStreamId(null, "3");
+
+		log.debug("clTest_NOT_3 " + clTest_NOT_3);
+		assertEquals(null, clTest_NOT_3);
+		
+		long numberOfClients1 = clientDao.countClientsByServerAndStreamId(null, "1");
+		assertEquals(1, numberOfClients1);
+		
+		long numberOfClients3 = clientDao.countClientsByServerAndStreamId(server, "3");
+		assertEquals(1, numberOfClients3);
+		
+		long numberOfClients4 = clientDao.countClientsByServerAndStreamId(null, "3");
+		assertEquals(0, numberOfClients4);
+		
+		List<Client> clTest_Pub_1_list = clientDao.getClientsByPublicSIDAndServer(null, "public1");
+		assertEquals(cl1.getId(), clTest_Pub_1_list.get(0).getId());
+		
+		List<Client> clTest_Pub_3_list = clientDao.getClientsByPublicSIDAndServer(server, "public3");
+		assertEquals(cl3.getId(), clTest_Pub_3_list.get(0).getId());
+		
+		List<Client> clTest_Fail_list = clientDao.getClientsByPublicSIDAndServer(null, "public3");
+		assertEquals(0, clTest_Fail_list.size());
+		
+		List<Client> clTest_PubAll_1_list = clientDao.getClientsByPublicSID("public1");
+		assertEquals(cl1.getId(), clTest_PubAll_1_list.get(0).getId());
+		
+		List<Client> clTest_PubAll_3_list = clientDao.getClientsByPublicSID("public3");
+		assertEquals(cl3.getId(), clTest_PubAll_3_list.get(0).getId());
+		
+		List<Client> clTest_FailAll_list = clientDao.getClientsByPublicSID("public4");
+		assertEquals(0, clTest_FailAll_list.size());
+		
+		List<Client> clientsByServerNull = clientDao.getClientsByServer(null);
+		assertEquals(2, clientsByServerNull.size());
+		
+		List<Client> clientsByServer = clientDao.getClientsByServer(server);
+		assertEquals(1, clientsByServer.size());
+		
+		List<Client> clientsAll = clientDao.getClients();
+		assertEquals(3, clientsAll.size());
+		
+		//by userid
+		List<Client> clTest_User_1_list = clientDao.getClientsByUserId(null, 1L);
+		assertEquals(cl1.getId(), clTest_User_1_list.get(0).getId());
+		
+		List<Client> clTest_User_3_list = clientDao.getClientsByUserId(server, 3L);
+		assertEquals(cl3.getId(), clTest_User_3_list.get(0).getId());
+		
+		List<Client> clTest_UserFail_list = clientDao.getClientsByUserId(null, 3L);
+		assertEquals(0, clTest_UserFail_list.size());
+		
+		//by roomid
+		List<Client> clTest_Room_1_list = clientDao.getClientsByRoomId(1L);
+		assertEquals(2, clTest_Room_1_list.size());
+		
+		List<Client> clTest_Room_3_list = clientDao.getClientsByRoomId(3L);
+		assertEquals(cl3.getId(), clTest_Room_3_list.get(0).getId());
+		
+		List<Client> clTest_RoomFail_list = clientDao.getClientsByRoomId(2L);
+		assertEquals(0, clTest_RoomFail_list.size());
+		
+		//count all
+		int countAll = clientDao.countClients();
+		assertEquals(3, countAll);
+		
+		//count by server
+		int clTest_Count_1_list = clientDao.countClientsByServer(null);
+		assertEquals(2, clTest_Count_1_list);
+		
+		int clTest_Count_3_list = clientDao.countClientsByServer(server);
+		assertEquals(1, clTest_Count_3_list);
+		
+		//remove by id
+		clientDao.delete(cl1);
+		
+		int clTest_Count_Delete_list = clientDao.countClientsByServer(null);
+		assertEquals(1, clTest_Count_Delete_list);
+		
+		//remove by server and streamid
+		clientDao.removeClientByServerAndStreamId(null, "2");
+		
+		clTest_Count_Delete_list = clientDao.countClientsByServer(null);
+		assertEquals(0, clTest_Count_Delete_list);
+		
+		clientDao.removeClientByServerAndStreamId(server, "3");
+		
+		clTest_Count_Delete_list = clientDao.countClientsByServer(server);
+		assertEquals(0, clTest_Count_Delete_list);
+		
+		//delete all
+		clientDao.cleanAllClients();
+
+		countAll = clientDao.countClients();
+		assertEquals(0, countAll);
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/session/TestDbSessionGetRoomIds.java b/src/test/java/org/apache/openmeetings/test/session/TestDbSessionGetRoomIds.java
new file mode 100644
index 0000000..0d92e73
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/session/TestDbSessionGetRoomIds.java
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.session;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.List;
+
+import org.apache.openmeetings.db.dao.room.ClientDao;
+import org.apache.openmeetings.db.dao.server.ServerDao;
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.db.entity.server.Server;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.junit.Test;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestDbSessionGetRoomIds extends AbstractJUnitDefaults {
+
+	protected static final Logger log = Red5LoggerFactory.getLogger(
+			TestDbSessionGetRoomIds.class, OpenmeetingsVariables.webAppRootKey);
+
+	@Autowired
+	private ServerDao serverDao;
+
+	@Autowired
+	private ClientDao clientDao;
+
+	@Test
+	public void testDbSessionFunctions() {
+
+		clientDao.cleanAllClients();
+		
+		List<Server> serverList = serverDao.getActiveServers();
+
+		Server server = null;
+		if (serverList.size() > 0) {
+			server = serverList.get(0);
+		} else {
+			server = new Server();
+			server.setName("Test Server");
+			server.setActive(true);
+			serverDao.update(server, null);
+		}
+
+		Client cl1 = new Client();
+		cl1.setStreamid("1");
+		cl1.setServer(server);
+		cl1.setUser_id(1L);
+		cl1.setRoom_id(1L);
+		cl1.setPublicSID("public1");
+		clientDao.add(cl1);
+
+		Client cl2 = new Client();
+		cl2.setStreamid("2");
+		cl2.setServer(server);
+		cl2.setRoom_id(1L);
+		cl2.setUser_id(2L);
+		cl2.setPublicSID("public2");
+		clientDao.add(cl2);
+
+		Client cl3 = new Client();
+		cl3.setStreamid("3");
+		cl3.setServer(server);
+		cl3.setRoom_id(3L);
+		cl3.setUser_id(3L);
+		cl3.setPublicSID("public3");
+		clientDao.add(cl3);
+		
+		List<Long> roomids = clientDao.getRoomsIdsByServer(server);
+
+		assertEquals(2, roomids.size());
+		
+		//delete all
+		clientDao.cleanAllClients();
+
+		int countAll = clientDao.countClients();
+		assertEquals(0, countAll);
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/session/TestHashMapSession.java b/src/test/java/org/apache/openmeetings/test/session/TestHashMapSession.java
new file mode 100644
index 0000000..45e17ef
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/session/TestHashMapSession.java
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.session;
+
+import static org.junit.Assert.assertEquals;
+
+import java.math.BigInteger;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.Random;
+
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.session.store.HashMapStore;
+import org.apache.openmeetings.session.store.IClientPersistenceStore;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.openmeetings.util.crypt.ManageCryptStyle;
+import org.junit.Test;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestHashMapSession extends AbstractJUnitDefaults {
+	
+	protected static final Logger log = Red5LoggerFactory.getLogger(
+			TestHashMapSession.class, OpenmeetingsVariables.webAppRootKey);
+	
+	@Autowired
+	private HashMapStore cache;
+	
+	@Test
+	public void testHashMapSession() {
+		
+		//make sure the cache is empty before starting the test
+		cache.clearCache();
+		
+		for (int i=0;i<20;i++) {
+			
+			String streamId = ""+i;
+			
+			Client rcm = new Client();
+			rcm.setConnectedSince(new Date());
+			rcm.setStreamid(streamId);
+			rcm.setScope("scopeName");
+			long random = System.currentTimeMillis() + new BigInteger(256, new Random()).longValue();
+			
+			rcm.setPublicSID(ManageCryptStyle.getInstanceOfCrypt()
+					.createPassPhrase(String.valueOf(random).toString()));
+
+			rcm.setUserport(0);
+			rcm.setUserip("remoteAddress");
+			rcm.setSwfurl("swfUrl");
+			rcm.setIsMod(new Boolean(false));
+			rcm.setCanDraw(new Boolean(false));
+			rcm.setIsAVClient(false);
+
+			if (cache.containsKey(null, streamId)) {
+				log.error("Tried to add an existing Client " + streamId);
+				break;
+			}
+
+			cache.put(rcm.getStreamid(), rcm);
+			
+			cache.remove(null, streamId);
+		
+		}
+		
+		String logString = cache.getDebugInformation(Arrays.asList(IClientPersistenceStore.DEBUG_DETAILS.SIZE));
+		
+		
+		log.debug("######## \n\r "+ logString + " \n\r ########");
+		
+		assertEquals(0, cache.size());
+		
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/smoke/TestSmokeBasic.java b/src/test/java/org/apache/openmeetings/test/smoke/TestSmokeBasic.java
new file mode 100644
index 0000000..4e8dcbe
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/smoke/TestSmokeBasic.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.smoke;
+
+import static org.junit.Assert.assertNotNull;
+
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestSmokeBasic extends AbstractJUnitDefaults {
+	@Autowired
+	private UserManager userManager;
+	
+	@Test
+	public void createErrorValueAndTest() {
+        assertNotNull(userManager.getUserById(1L));
+	}	
+}
diff --git a/src/test/java/org/apache/openmeetings/test/user/TestMailSending.java b/src/test/java/org/apache/openmeetings/test/user/TestMailSending.java
new file mode 100644
index 0000000..ef1a003
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/user/TestMailSending.java
@@ -0,0 +1,129 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.user;
+
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.util.Date;
+import java.util.Properties;
+
+import javax.activation.DataHandler;
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.mail.Session;
+import javax.mail.Transport;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeMessage;
+import javax.mail.util.ByteArrayDataSource;
+
+import org.apache.openmeetings.util.mail.SmtpAuthenticator;
+import org.junit.Test;
+
+import com.sun.mail.util.MailSSLSocketFactory;
+
+/**
+ * 
+ * @author swagner
+ *
+ */
+public class TestMailSending {
+	
+	//Example GMail email server data
+	private String smtpServer = "smtp.gmail.com";
+	private String smtpPort = "25";
+	private String from = "test@apache.org";
+	private String mailAuthUser = "test@gmail.com";
+	private String mailAuthPass = "*******";
+	private boolean mailTls = true;
+
+	/**
+	 * @Test
+	 * 
+	 * It does not make a lot of send to test this in every test suite, it is more for manual testing.
+	 * Handy to check your server and the JavaMail setting properties
+	 * 
+	 */
+	@Test
+	public void doTestSendEmail() {
+		try{
+			
+			Transport.send(getMimeMessage());
+			
+		} catch (Exception err) {
+			err.printStackTrace();
+		}
+		assertTrue(true);
+	}
+	
+	private MimeMessage getMimeMessage() throws Exception {
+		// Building MimeMessage
+		MimeMessage msg = getBasicMimeMessage();
+		msg.setSubject("getSubject()");
+		msg.addRecipients(Message.RecipientType.TO, InternetAddress.parse("seba.wagner@gmail.com", false));
+		
+		return appendBody(msg);
+	}
+	
+	private MimeMessage appendBody(MimeMessage msg) throws MessagingException, IOException {
+		// -- Set the subject and body text --
+		msg.setDataHandler(new DataHandler(new ByteArrayDataSource("getBody", "text/html; charset=\"utf-8\"")));
+
+		// -- Set some other header information --
+		msg.setHeader("X-Mailer", "XML-Mail");
+		msg.setSentDate(new Date());
+		
+		return msg;
+	}
+	
+	private MimeMessage getBasicMimeMessage() throws Exception {
+		System.out.println("getBasicMimeMessage");
+		Properties props = new Properties(System.getProperties());
+
+		props.put("mail.smtp.connectiontimeout", 30000); //default timeout is 30 seconds, javaMail default is "infinite"
+		props.put("mail.smtp.timeout", 30000); //default timeout is 30 seconds, javaMail default is "infinite"
+		
+		props.put("mail.smtp.host", smtpServer);
+		props.put("mail.smtp.port", smtpPort);
+		
+		if (mailTls) {
+			props.put("mail.smtp.starttls.enable", "true");
+			MailSSLSocketFactory sf = new MailSSLSocketFactory();
+		    sf.setTrustAllHosts(true);
+		    props.put("mail.smtp.ssl.socketFactory", sf);
+		}
+
+		// Check for Authentication
+		Session session = null;
+		if (mailAuthUser != null && mailAuthUser.length() > 0
+				&& mailAuthPass != null && mailAuthPass.length() > 0) {
+			// use SMTP Authentication
+			props.put("mail.smtp.auth", "true");
+			session = Session.getInstance(props, new SmtpAuthenticator(mailAuthUser, mailAuthPass));
+		} else {
+			// not use SMTP Authentication
+			session = Session.getInstance(props, null);
+		}
+
+		// Building MimeMessage
+		MimeMessage msg = new MimeMessage(session);
+		msg.setFrom(new InternetAddress(from));
+		return msg;
+	}
+}
diff --git a/src/test/java/org/apache/openmeetings/test/user/TestStateToLower.java b/src/test/java/org/apache/openmeetings/test/user/TestStateToLower.java
new file mode 100644
index 0000000..290387f
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/user/TestStateToLower.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.user;
+
+import static org.junit.Assert.assertTrue;
+
+import org.apache.openmeetings.db.dao.user.StateDao;
+import org.apache.openmeetings.db.entity.user.State;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestStateToLower extends AbstractJUnitDefaults {
+	
+	@Autowired
+	private StateDao stateDao;
+	
+	@Test
+	public void doTestQuery() {
+		
+		State state_alabania = stateDao.getStateByName("Albania");
+		
+		State state_alabania_lower = stateDao.getStateByName("albaNia");
+		
+		assertTrue(state_alabania != null);
+		assertTrue(state_alabania_lower != null);
+		assertTrue(state_alabania.getState_id().equals(3L));
+		assertTrue(state_alabania_lower.getState_id().equals(3L));
+		assertTrue(state_alabania.getState_id().equals(state_alabania_lower.getState_id()));
+		
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java b/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java
new file mode 100644
index 0000000..47e88c9
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/user/TestUserContact.java
@@ -0,0 +1,79 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.test.user;

+

+import static org.apache.openmeetings.web.app.WebSession.getUserId;

+import static org.junit.Assert.assertFalse;

+import static org.junit.Assert.assertNotNull;

+import static org.junit.Assert.assertTrue;

+

+import java.util.List;

+import java.util.Random;

+

+import org.apache.openmeetings.db.dao.user.AdminUserDao;

+import org.apache.openmeetings.db.dao.user.UserDao;

+import org.apache.openmeetings.db.entity.user.User;

+import org.apache.openmeetings.test.AbstractWicketTester;

+import org.junit.Test;

+import org.springframework.beans.factory.annotation.Autowired;

+

+public class TestUserContact extends AbstractWicketTester {

+	@Autowired

+	private AdminUserDao adminUserDao;

+

+	@Autowired

+	private UserDao usersDao;

+	

+	@Test

+	public void addContactByOwner() throws Exception {

+		login(null, null);

+		

+		List<User> users = adminUserDao.getAllUsers();

+		assertNotNull("User list should not be null ", users);

+		assertFalse("User list should not be empty ", users.isEmpty());

+		

+		Random random = new Random();

+		User contact = createUserContact(random.nextInt(), getUserId());

+		String email = contact.getAdresses().getEmail();

+		List<User> l = adminUserDao.get(email, false);

+		// check that contact is visible for admin

+		assertNotNull("Contact list should not be null for admin ", l);

+		assertFalse("Contact list should not be empty for admin ", l.isEmpty());

+		

+		// check that contact is visible for owner

+		l = usersDao.get(email, getUserId());

+		assertTrue("Contact list should not be empty for owner ", !l.isEmpty());		

+		//delete contact

+		adminUserDao.delete(contact, getUserId());

+		l = adminUserDao.get(email, false);

+		assertTrue("Contact list should be empty after deletion", l.isEmpty());

+

+		User u = createUser(random.nextInt());

+		User u1 = createUser(random.nextInt());

+		contact = createUserContact(random.nextInt(), u.getUser_id());

+		email = contact.getAdresses().getEmail();

+		// check that contact is not visible for user that is not owner of this contact

+		l = usersDao.get(email, u1.getUser_id());

+		assertTrue("Contact list should be empty for another user", l.isEmpty());

+		//delete contact

+		adminUserDao.delete(contact, u.getUser_id());

+		l = adminUserDao.get(email, false);

+		assertTrue("Contact list should be empty after deletion", l.isEmpty());

+	}

+}

diff --git a/src/test/java/org/apache/openmeetings/test/user/TestUserOrganisation.java b/src/test/java/org/apache/openmeetings/test/user/TestUserOrganisation.java
new file mode 100644
index 0000000..daaacd3
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/user/TestUserOrganisation.java
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.user;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.List;
+
+import org.apache.openmeetings.data.user.OrganisationManager;
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.entity.user.Organisation;
+import org.apache.openmeetings.db.entity.user.Organisation_Users;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestUserOrganisation extends AbstractJUnitDefaults {
+	@Autowired
+	private OrganisationManager orgManagement;
+	@Autowired
+	private AdminUserDao usersDao;
+	
+	private User getValidUser() {
+		for (User u : usersDao.getAllUsers()) {
+			if (!u.getDeleted() && u.getOrganisation_users().size() > 0) {
+				return u;
+			}
+		}
+		fail("Unable to find valid user");
+		return null;  //unreachable
+	}
+	
+	@Test
+	public void getUsersByOrganisationId() {
+		User u = getValidUser();
+		Long orgId = u.getOrganisation_users().get(0).getOrganisation().getOrganisation_id();
+		List<User> ul = orgManagement.getUsersByOrganisationId(orgId, 0, 9999, "login", true);
+		assertTrue("Default Organisation should contain at least 1 user: " + ul.size(), ul.size() > 0);
+		
+		Organisation_Users ou = orgManagement.getOrganisation_UserByUserAndOrganisation(u.getUser_id(), orgId);
+		assertNotNull("Unable to found [organisation, user] pair - [" + orgId + "," + u.getUser_id() + "]", ou);
+	}
+	
+	@Test
+	public void addOrganisation() {
+		Long orgId = orgManagement.addOrganisation("Test Org", 1); //inserted by not checked
+		assertNotNull("New Organisation have valid id", orgId);
+		
+		List<User> ul = orgManagement.getUsersByOrganisationId(orgId, 0, 9999, "login", true);
+		assertTrue("New Organisation should contain NO users: " + ul.size(), ul.size() == 0);
+		
+		boolean found = false;
+		List<Organisation> restL = orgManagement.getRestOrganisationsByUserId(3, 1, 0, 9999, "name", true);
+		for (Organisation o : restL) {
+			if (orgId.equals(o.getOrganisation_id())) {
+				found = true;
+				break;
+			}
+		}
+		assertTrue("New organisation should not be included into organisation list of any user", found);
+	}
+}
diff --git a/src/test/java/org/apache/openmeetings/test/userdata/TestAuth.java b/src/test/java/org/apache/openmeetings/test/userdata/TestAuth.java
new file mode 100644
index 0000000..3ffc241
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/userdata/TestAuth.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.userdata;
+
+import org.apache.openmeetings.db.entity.server.Sessiondata;
+import org.apache.openmeetings.remote.MainService;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.apache.openmeetings.util.crypt.ManageCryptStyle;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestAuth extends AbstractJUnitDefaults {
+	@Autowired
+	private MainService mService;
+
+	@Test
+	public void testTestAuth() {
+		Sessiondata sessionData = mService.getsessiondata();
+
+		System.out.println("sessionData: " + sessionData.getSession_id());
+
+		String tTemp = ManageCryptStyle.getInstanceOfCrypt().createPassPhrase("test");
+
+		System.out.println("tTemp: " + tTemp);
+
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/userdata/TestLogin.java b/src/test/java/org/apache/openmeetings/test/userdata/TestLogin.java
new file mode 100644
index 0000000..4e1e55e
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/userdata/TestLogin.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.userdata;
+
+import static org.junit.Assert.assertNotNull;
+
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.db.entity.server.Sessiondata;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.remote.MainService;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestLogin extends AbstractJUnitDefaults {
+	
+	@Autowired
+	private MainService mService;
+	
+	@Autowired
+	private UserManager userManager;
+
+	@Test
+	public void testTestLogin(){
+		Sessiondata sessionData = mService.getsessiondata();
+		
+		User us = (User) userManager.loginUser(sessionData.getSession_id(), username, userpass, null, null, false);
+		
+		assertNotNull("User is unable to login", us);
+		
+		//mService.getLanguageById(1);
+		
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/userdata/TestMD5.java b/src/test/java/org/apache/openmeetings/test/userdata/TestMD5.java
new file mode 100644
index 0000000..141ee3f
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/userdata/TestMD5.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.userdata;
+
+import junit.framework.TestCase;
+
+import org.junit.Test;
+
+public class TestMD5 extends TestCase {
+	
+	@Test
+	public void testTestMD5(){
+		
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/web/LoginUI.java b/src/test/java/org/apache/openmeetings/test/web/LoginUI.java
new file mode 100644
index 0000000..51324cf
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/web/LoginUI.java
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.web;
+
+import org.apache.openmeetings.test.AbstractWicketTester;
+import org.apache.openmeetings.web.pages.MainPage;
+import org.apache.openmeetings.web.pages.auth.SignInPage;
+import org.apache.wicket.util.tester.FormTester;
+
+public class LoginUI extends AbstractWicketTester {
+
+        //@Test Needs to much memory to start this test, and there is nothing useful here inside other then some basic
+        //proof of concept (basically the concept failed)
+	public void testLoginUi() {
+		
+		tester.startPage(MainPage.class);
+		
+		tester.assertRenderedPage(SignInPage.class);
+		
+		FormTester formTester = tester.newFormTester("signin:signin");
+		formTester.setValue("login", username);
+		formTester.setValue("pass", userpass);
+		
+		//How to reference specific buttons in Wicket jQuery UI ?!
+		
+		formTester.submit();
+		
+		System.err.println("getLastRenderedPage: "+ tester.getLastRenderedPage().getMarkup().toString());
+		
+		//will fail
+		//tester.assertComponent("dashboard", DashboardPanel.class);
+		
+	}
+	
+}
+
diff --git a/src/test/java/org/apache/openmeetings/test/xsd/GenerateConfigXsd.java b/src/test/java/org/apache/openmeetings/test/xsd/GenerateConfigXsd.java
new file mode 100644
index 0000000..253b155
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/xsd/GenerateConfigXsd.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.xsd;
+
+import java.io.File;
+
+import com.thaiopensource.relaxng.translate.Driver;
+
+public class GenerateConfigXsd {
+	
+	public static void main(String... args) {
+		new GenerateConfigXsd();
+	}
+	
+	public GenerateConfigXsd() {
+		try {
+			
+			String[] args = { 
+				"src/main/webapp"+File.separatorChar+"openmeetings"+File.separatorChar+"public"+File.separatorChar+"config.xml",
+				"src/main/webapp"+File.separatorChar+"openmeetings"+File.separatorChar+"public"+File.separatorChar+"config.xsd"
+			};
+			
+			Driver.main(args);
+			
+		} catch (Exception err) {
+			err.printStackTrace();
+		}
+	}
+
+}
diff --git a/src/test/java/org/apache/openmeetings/test/xsd/GenerateWebsiteXsd.java b/src/test/java/org/apache/openmeetings/test/xsd/GenerateWebsiteXsd.java
new file mode 100644
index 0000000..e73d6b6
--- /dev/null
+++ b/src/test/java/org/apache/openmeetings/test/xsd/GenerateWebsiteXsd.java
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.test.xsd;
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.thaiopensource.relaxng.translate.Driver;
+
+public class GenerateWebsiteXsd {
+
+	private static String WEBSITE_ROOT_DIR = "xdocs";
+
+	public static void main(String... args) {
+		new GenerateWebsiteXsd();
+	}
+
+	public GenerateWebsiteXsd() {
+		try {
+
+			File curentDir = new File(WEBSITE_ROOT_DIR);
+
+			System.err.println(curentDir.getAbsolutePath());
+
+			// Get all XML Files of this Folder
+			FilenameFilter ff = new FilenameFilter() {
+				public boolean accept(File b, String name) {
+					File f = new File(b, name);
+					return f.getName().contains(".xml");
+				}
+			};
+
+			String[] allfiles = curentDir.list(ff);
+
+			System.err.println("allfiles LENGTH " + allfiles.length);
+
+			List<String> allfilesPlusXSD = new ArrayList<String>();
+
+			for (String fileName : allfiles) {
+				allfilesPlusXSD.add(WEBSITE_ROOT_DIR + File.separatorChar
+						+ fileName);
+			}
+
+			allfilesPlusXSD.add(WEBSITE_ROOT_DIR + File.separatorChar
+					+ "website.xsd");
+
+			for (String fileName : allfilesPlusXSD) {
+				System.err.println(fileName);
+			}
+
+			Driver.main(allfilesPlusXSD.toArray(new String[0]));
+
+		} catch (Exception err) {
+			err.printStackTrace();
+		}
+	}
+
+}
diff --git a/src/util/java/org/apache/openmeetings/util/AuthLevelUtil.java b/src/util/java/org/apache/openmeetings/util/AuthLevelUtil.java
new file mode 100644
index 0000000..259488e
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/AuthLevelUtil.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util;
+
+public class AuthLevelUtil {
+	 
+	public static boolean checkUserLevel(Long user_level) {
+		return user_level == 1 || user_level == 2 || user_level == 3 || user_level == 4;
+	}
+	
+	public static boolean checkModLevel(Long user_level) {
+		return user_level == 2 || user_level == 3;
+	}
+	
+	public static boolean checkAdminLevel(Long user_level) {
+		return user_level == 3;
+	}
+	
+	public static boolean checkWebServiceLevel(Long user_level) {
+		return user_level == 3 || user_level == 4;
+	}
+}
diff --git a/src/util/java/org/apache/openmeetings/util/CalendarPatterns.java b/src/util/java/org/apache/openmeetings/util/CalendarPatterns.java
new file mode 100644
index 0000000..34d4f47
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/CalendarPatterns.java
@@ -0,0 +1,225 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.TimeZone;
+
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+/**
+ * @author Sebastian Wagner
+ * 27.08.2005 - 19:24:25
+ *
+ */
+public class CalendarPatterns {
+	
+	private static final Logger log = Red5LoggerFactory.getLogger(CalendarPatterns.class, "openmeetings");
+	
+	public static SimpleDateFormat dateFormat__ddMMyyyyHHmmss = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
+	public static SimpleDateFormat dateFormat__ddMMyyyy = new SimpleDateFormat("dd.MM.yyyy");
+	public static SimpleDateFormat dateFormat__ddMMyyyyBySeparator = new SimpleDateFormat("dd-MM-yyyy");
+    
+    public static String getDateByMiliSeconds(Date t){
+        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
+        Date dateOld = new Date();
+        long timeAdv = t.getTime();
+        dateOld.setTime(timeAdv);
+        String result = sdf.format(dateOld);
+        return result;
+    }
+    
+    public static String getDateWithTimeByMiliSeconds(Date t){
+    	if (t == null) {
+    		return null;
+    	}
+        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
+        Date dateOld = new Date();
+        long timeAdv = t.getTime();
+        dateOld.setTime(timeAdv);
+        String result = sdf.format(dateOld);
+        return result;
+    }
+    
+    public static String getDateWithTimeByMiliSeconds(Date t, TimeZone timezone){
+    	if (t == null) {
+    		return null;
+    	}
+        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
+        sdf.setTimeZone(timezone);
+        Date dateOld = new Date();
+        long timeAdv = t.getTime();
+        dateOld.setTime(timeAdv);
+        String result = sdf.format(dateOld);
+        return result;
+    }
+    
+    public static String getDateWithTimeByMiliSecondsWithZone(Date t){
+    	if (t == null) {
+    		return null;
+    	}
+        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss z (Z)");
+        Date dateOld = new Date();
+        long timeAdv = t.getTime();
+        dateOld.setTime(timeAdv);
+        String result = sdf.format(dateOld);
+        return result;
+    }
+    
+    public static String getExportDate(Date t){
+    	if (t == null) {
+    		return "";
+    	}
+        return ""+t.getTime();
+    }
+    
+    public static Date parseImportDate(String dateString) {
+    	try {
+    		
+    		Date resultDate = null;
+    		
+    		resultDate = validDate(dateFormat__ddMMyyyyHHmmss, dateString);
+    		
+    		if ( resultDate != null ) {
+    			return resultDate;
+    		}
+    		
+    		resultDate = validDate(dateFormat__ddMMyyyy, dateString);
+    		
+    		if ( resultDate != null ) {
+    			return resultDate;
+    		}
+    		
+    		resultDate = validDate(dateString);
+    		
+    		if (dateString != null) {
+    			return resultDate;
+    		}
+    		
+    		
+    		throw new Exception ("Could not parse date string "+dateString);
+    	} catch (Exception e) {
+    		log.error("parseDate",e);
+    	}
+    	return null;
+    }
+    
+    private static Date validDate(String testdate) {
+    	try {
+    		
+    		Long t = Long.valueOf(testdate);
+    		
+    		if (t != null) {
+    			return new Date(t);
+    		}
+    		
+    	} catch (Exception err) {
+    	}
+    	return null;
+    }
+    
+    private static Date validDate(SimpleDateFormat sdf, String testdate)
+    {
+        Date resultDate = null;
+        try
+        {
+        	resultDate = sdf.parse(testdate);
+        }
+
+        // if the format of the string provided doesn't match the format we 
+        // declared in SimpleDateFormat() we will get an exception
+
+        catch (java.text.ParseException e)
+        {
+          return null;
+        }
+
+        if (!sdf.format(resultDate).equals(testdate)) 
+        {
+          return null;
+        }
+        
+        return resultDate;
+
+    }
+    
+    public static String getDateWithTimeByMiliSecondsAndTimeZone(Date t, TimeZone timezone){
+    	if (t == null) {
+    		return null;
+    	}
+        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss z (Z)");
+        sdf.setTimeZone(timezone);
+        Date dateOld = new Date();
+        long timeAdv = t.getTime();
+        dateOld.setTime(timeAdv);
+        String result = sdf.format(dateOld);
+        return result;
+    }
+    
+    public static String getTimeForStreamId(Date t){
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss");
+        Date dateOld = new Date();
+        long timeAdv = t.getTime();
+        dateOld.setTime(timeAdv);
+        String result = sdf.format(dateOld);
+        return result;
+    }    
+    
+    public static Date parseDate(String dateString) {
+    	try {
+    		return dateFormat__ddMMyyyy.parse(dateString);
+    	} catch (Exception e) {
+    		log.error("parseDate",e);
+    	}
+    	return null;
+    }
+    
+    public static Date parseDateBySeparator(String dateString) {
+    	try {
+    		return dateFormat__ddMMyyyyBySeparator.parse(dateString);
+    	} catch (Exception e) {
+    		log.error("parseDate",e);
+    	}
+    	return null;
+    }
+    
+    public static Date parseDateWithHour(String dateString) {
+    	try {
+    		if (dateString == null || dateString.length()==0 || dateString.equals("null") ) {
+        		return null;
+        	}
+    		return dateFormat__ddMMyyyyHHmmss.parse(dateString);
+    	} catch (Exception e) {
+    		log.error("parseDate",e);
+    	}
+    	return null;
+    }
+
+	public static String getYear(Date t){
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
+        Date dateOld = new Date();
+        long timeAdv = t.getTime();
+        dateOld.setTime(timeAdv);
+        String result = sdf.format(dateOld);
+        return result;
+    } 
+    
+}
diff --git a/src/util/java/org/apache/openmeetings/util/DaoHelper.java b/src/util/java/org/apache/openmeetings/util/DaoHelper.java
new file mode 100644
index 0000000..8e944d7
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/DaoHelper.java
@@ -0,0 +1,90 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.util;

+

+import org.apache.commons.lang3.StringUtils;

+

+public class DaoHelper {

+

+	public static String getSearchQuery(String table, String alias, String search, boolean filterDeleted, boolean count, String sort, String... fields) {

+		return getSearchQuery(table, alias, search, filterDeleted, count, null, sort, fields);

+	}

+	

+	public static String getSearchQuery(String table, String alias, String search, boolean filterDeleted, boolean count, String additionalWhere, String sort, String... fields) {

+		StringBuilder sb = new StringBuilder("SELECT ");

+		if (count) {

+			sb.append("COUNT(").append(alias).append(")");

+		} else {

+			sb.append(alias);

+		}

+		sb.append(" FROM ").append(table).append(" ").append(alias).append(" WHERE 1 = 1 ");

+		if (filterDeleted) {

+			sb.append("AND ").append(alias).append(".deleted = false ");

+		}

+		StringBuilder where = DaoHelper.getWhereClause(search, alias, fields);

+		if (where.length() > 0) {

+			sb.append("AND ").append(where);

+		}

+		if (additionalWhere != null && !additionalWhere.trim().isEmpty()) {

+			sb.append("AND ").append(additionalWhere);

+		}

+		if (sort != null && !sort.trim().isEmpty()) {

+			sb.append(" ORDER BY ").append(alias).append(".").append(sort);

+		}

+		return sb.toString();

+	}

+	

+	public static StringBuilder getWhereClause(String search, String alias, String... fields) {

+		StringBuilder sb = new StringBuilder();

+		getWhereClause(sb, search, alias, fields);

+		return sb;

+	}

+	

+	public static void getWhereClause(StringBuilder sb, String search, String alias, String... fields) {

+		if (search != null) {

+			boolean notEmpty = false;

+			String[] searchItems = search.replace("\'", "").replace("\"", "").split(" ");

+			for (int i = 0; i < searchItems.length; ++i) {

+				if (searchItems[i].isEmpty()) {

+					continue;

+				}

+				if (i == 0) {

+					notEmpty = true;

+					sb.append(" (");

+				} else {

+					sb.append(" OR ");

+				}

+				StringBuilder placeholder = new StringBuilder();

+				placeholder.append("%").append(StringUtils.lowerCase(searchItems[i])).append("%");

+	

+				sb.append("(");

+				for (int j = 0; j < fields.length; ++j) {

+					if (j != 0) {

+						sb.append(" OR ");

+					}

+					sb.append("lower(").append(alias).append(".").append(fields[j]).append(") LIKE '").append(placeholder).append("' ");

+				}

+				sb.append(")");

+			}

+			if (notEmpty) {

+				sb.append(") ");

+			}

+		}

+	}

+}

diff --git a/src/util/java/org/apache/openmeetings/util/ImportHelper.java b/src/util/java/org/apache/openmeetings/util/ImportHelper.java
new file mode 100644
index 0000000..53a33e7
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/ImportHelper.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * 
+ * Get some of the default values for the upload
+ * 
+ * @author solomax, swagner
+ * 
+ */
+public class ImportHelper {
+	/**
+	 * returns a list of all timezones as a {@link Map}
+	 * 
+	 * @param tzList
+	 * @return
+	 */
+	public static Map<String, String> getAllTimeZones(String ... tzList) {
+		Map<String, String> result = new LinkedHashMap<String, String>();
+
+		for (String omTimeZone : tzList) {
+			result.put(omTimeZone, omTimeZone);
+		}
+
+		return result;
+	}
+}
diff --git a/src/util/java/org/apache/openmeetings/util/InitializationContainer.java b/src/util/java/org/apache/openmeetings/util/InitializationContainer.java
new file mode 100644
index 0000000..e47b53f
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/InitializationContainer.java
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util;
+
+public class InitializationContainer {
+	public static boolean initComplete = false;
+}
diff --git a/src/util/java/org/apache/openmeetings/util/LangExport.java b/src/util/java/org/apache/openmeetings/util/LangExport.java
new file mode 100644
index 0000000..1d8ea69
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/LangExport.java
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util;
+
+import java.io.OutputStream;
+import java.io.Writer;
+
+import org.dom4j.Document;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+import org.dom4j.Namespace;
+import org.dom4j.io.OutputFormat;
+import org.dom4j.io.XMLWriter;
+import org.dom4j.tree.FlyweightAttribute;
+
+/**
+ * 
+ * @author sebastianwagner
+ * 
+ */
+public class LangExport {
+	public static final String FILE_COMMENT = ""
+			+ "\n"
+			+ "  Licensed to the Apache Software Foundation (ASF) under one\n"
+			+ "  or more contributor license agreements.  See the NOTICE file\n"
+			+ "  distributed with this work for additional information\n"
+			+ "  regarding copyright ownership.  The ASF licenses this file\n"
+			+ "  to you under the Apache License, Version 2.0 (the\n"
+			+ "  \"License\"); you may not use this file except in compliance\n"
+			+ "  with the License.  You may obtain a copy of the License at\n"
+			+ "  \n"
+			+ "      http://www.apache.org/licenses/LICENSE-2.0\n"
+			+ "    	  \n"
+			+ "  Unless required by applicable law or agreed to in writing,\n"
+			+ "  software distributed under the License is distributed on an\n"
+			+ "  \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n"
+			+ "  KIND, either express or implied.  See the License for the\n"
+			+ "  specific language governing permissions and limitations\n"
+			+ "  under the License.\n"
+			+ "  \n"
+			+ "\n"
+			+ "\n"
+			+ "###############################################\n"
+			+ "This File is auto-generated by the LanguageEditor \n"
+			+ "to add new Languages or modify/customize it use the LanguageEditor \n"
+			+ "see http://openmeetings.apache.org/LanguageEditor.html for Details \n"
+			+ "###############################################";
+
+	public static Document createDocument() {
+		Document document = DocumentHelper.createDocument();
+		document.setXMLEncoding("UTF-8");
+		document.addComment(LangExport.FILE_COMMENT);
+		return document;
+	}
+	
+	public static Element createRoot(Document document) {
+		Element root = document.addElement("language");
+		Namespace xsi = new Namespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
+		root.add(xsi);
+		root.add(new FlyweightAttribute("noNamespaceSchemaLocation", "language.xsd", xsi));
+		return root;
+	}
+	
+	public static void serializetoXML(Writer out, String aEncodingScheme, Document doc) throws Exception {
+		OutputFormat outformat = OutputFormat.createPrettyPrint();
+		outformat.setEncoding(aEncodingScheme);
+		XMLWriter writer = new XMLWriter(out, outformat);
+		writer.write(doc);
+		writer.flush();
+	}
+	
+	public static void serializetoXML(OutputStream out, String aEncodingScheme, Document doc) throws Exception {
+		OutputFormat outformat = OutputFormat.createPrettyPrint();
+		outformat.setEncoding(aEncodingScheme);
+		XMLWriter writer = new XMLWriter(out, outformat);
+		writer.write(doc);
+		writer.flush();
+	}
+
+}
diff --git a/src/util/java/org/apache/openmeetings/util/Logger.java b/src/util/java/org/apache/openmeetings/util/Logger.java
new file mode 100644
index 0000000..76a8d32
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/Logger.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util;
+
+import org.red5.logging.Red5LoggerFactory;
+
+public class Logger {
+    private org.slf4j.Logger log;
+
+    public Logger() {
+        StackTraceElement ste = Thread.currentThread().getStackTrace()[1];
+        log = Red5LoggerFactory.getLogger(ste.getClass(),
+        		OpenmeetingsVariables.webAppRootKey);
+    }
+    
+    private String getMethodMessage() {
+        StackTraceElement ste = Thread.currentThread().getStackTrace()[2];
+        return "In the method " + ste.getMethodName();
+    }
+
+    public void debug(String s, Object o) {
+        log.debug(s, o);
+    }
+
+    public void debug(Object o) {
+        log.debug(getMethodMessage(), o);
+    }
+
+    public void error(Object o) {
+        log.error(getMethodMessage(), o);
+    }
+}
diff --git a/src/util/java/org/apache/openmeetings/util/OMContextListener.java b/src/util/java/org/apache/openmeetings/util/OMContextListener.java
new file mode 100644
index 0000000..72c03df
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/OMContextListener.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util;
+
+import javax.servlet.ServletContextEvent;
+
+import org.red5.logging.ContextLoggingListener;
+
+public class OMContextListener extends ContextLoggingListener {
+	
+	public void contextDestroyed(ServletContextEvent event) {
+		super.contextDestroyed(event);
+	}
+
+	public void contextInitialized(ServletContextEvent event) {
+		OpenmeetingsVariables.webAppRootKey = pathToName(event);
+		OpenmeetingsVariables.webAppRootPath = "/" + OpenmeetingsVariables.webAppRootKey;
+		System.setProperty("current_openmeetings_context_name", OpenmeetingsVariables.webAppRootKey);
+		System.setProperty("webapp.contextPath", OpenmeetingsVariables.webAppRootPath);
+		System.setProperty("logback.configurationFile", "logback-config.xml");
+		super.contextInitialized(event);
+	}
+
+	private String pathToName(ServletContextEvent event) {
+		String contextName = event.getServletContext().getContextPath().replaceAll("/", "");
+		if ("".equals(contextName)) {
+			contextName = "root";
+		}
+		return contextName;
+	}
+}
diff --git a/src/util/java/org/apache/openmeetings/util/OmFileHelper.java b/src/util/java/org/apache/openmeetings/util/OmFileHelper.java
new file mode 100644
index 0000000..cbe6773
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/OmFileHelper.java
@@ -0,0 +1,331 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.util;

+

+import java.io.File;

+import java.io.FileInputStream;

+import java.io.IOException;

+import java.io.InputStream;

+import java.io.OutputStream;

+import java.text.DecimalFormat;

+

+import org.apache.commons.transaction.util.FileHelper;

+import org.red5.logging.Red5LoggerFactory;

+import org.slf4j.Logger;

+

+public class OmFileHelper {

+	private static final Logger log = Red5LoggerFactory.getLogger(OmFileHelper.class, OpenmeetingsVariables.webAppRootKey);

+

+	/**

+	 * This variable needs to point to the openmeetings webapp directory

+	 */

+	private static File OM_HOME = null;

+	private static final String UPLOAD_DIR = "upload";

+	private static final String UPLOAD_TEMP_DIR = "uploadtemp";

+	private static final String FILES_DIR = "files";

+	private static final String PUBLIC_DIR = "public";

+	private static final String CLIPARTS_DIR = "cliparts";

+	private static final String WEB_INF_DIR = "WEB-INF";

+	private static final String PROFILES_DIR = "profiles";

+	private static final String STREAMS_DIR = "streams";

+	private static final String EMOTIONS_DIR = "emoticons";

+	private static final String LANGUAGES_DIR = "languages";

+	private static final String IMPORT_DIR = "import";

+	private static final String HIBERNATE_DIR = "hibernate";

+	private static final String CONF_DIR = "conf";

+	private static final String BACKUP_DIR = "backup";

+	private static final String DEFAULT_DIR = "default";

+	private static final String WML_DIR = "stored";

+	

+	private static final String INSTALL_FILE = "install.xml";

+	

+	public static final String SCREENSHARING_DIR = "screensharing";

+	

+	public static final String profilesPrefix = "profile_";

+	public static final String nameOfLanguageFile = "languages.xml";

+	public static final String nameOfCountriesFile = "countries.xml";

+	public static final String nameOfTimeZoneFile = "timezones.xml";

+	public static final String nameOfErrorFile = "errorvalues.xml";

+	public static final String libraryFileName = "library.xml";

+	public static final String defaultProfileImageName = "profile_pic.jpg";

+	public static final String profileFileName = "profile";

+	public static final String profileImagePrefix = "_profile_";

+	public static final String chatImagePrefix = "_chat_";

+	public static final String bigImagePrefix = "_big_";

+	public static final String thumbImagePrefix = "_thumb_";

+	public static final String dashboardFile = "dashboard.xml";

+	public static final String MP4_EXTENSION = ".mp4";

+	public static final String OGG_EXTENSION = ".ogg";

+	public static final String JPG_EXTENTION = ".jpg";

+

+	public static void setOmHome(File omHome) {

+		OmFileHelper.OM_HOME = omHome;

+	}

+	

+	public static void setOmHome(String omHome) {

+		OmFileHelper.OM_HOME = new File(omHome);

+	}

+	

+	public static File getRootDir() {

+		//FIXME hack !!!!

+		return getOmHome().getParentFile().getParentFile();

+	}

+	

+	public static File getOmHome() {

+		return OmFileHelper.OM_HOME;

+	}

+	

+	private static File getDir(File parent, String name) {

+		File f = new File(parent, name);

+		if (!f.exists()) {

+			f.mkdir();

+		}

+		return f;

+	}

+	

+	public static File getUploadDir() {

+		return new File(OmFileHelper.OM_HOME, UPLOAD_DIR);

+	}

+	

+	public static File getUploadFilesDir() {

+		return getDir(getUploadDir(), FILES_DIR);

+	}

+	

+	public static File getUploadProfilesDir() {

+		return getDir(getUploadDir(), PROFILES_DIR);

+	}

+	

+	public static File getUploadProfilesUserDir(Long userId) {

+		return getDir(getUploadProfilesDir(), profilesPrefix + userId);

+	}

+	

+	public static File getUploadProfilesUserDir(String users_id) {

+		return getDir(getUploadProfilesDir(), profilesPrefix + users_id);

+	}

+	

+	public static File getDefaultProfilePicture() {

+		return new File(getDefaultDir(), profileImagePrefix + defaultProfileImageName);

+	}

+	

+	public static File getUserProfilePicture(Long userId, String uri) {

+		File img = new File(getUploadProfilesUserDir(userId), profileImagePrefix + uri);

+		if (!img.exists()) {

+			img = getDefaultProfilePicture();

+		}

+		return img;

+	}

+	

+	public static File getUserDashboard(Long userId) {

+		return new File(getUploadProfilesUserDir(userId), dashboardFile);

+	}

+	

+	public static File getUploadImportDir() {

+		return getDir(getUploadDir(), IMPORT_DIR);

+	}

+	

+	public static File getUploadBackupDir() {

+		return getDir(getUploadDir(), BACKUP_DIR);

+	}

+	

+	public static File getUploadRoomDir(String roomName) {

+		return getDir(getUploadDir(), roomName);

+	}

+	

+	public static File getUploadWmlDir() {

+		return getDir(getUploadDir(), WML_DIR);

+	}

+	

+	public static File getUploadTempDir() {

+		return new File(OmFileHelper.OM_HOME, UPLOAD_TEMP_DIR);

+	}

+	

+	public static File getUploadTempFilesDir() {

+		return getDir(getUploadTempDir(), FILES_DIR);

+	}

+	

+	public static File getUploadTempProfilesDir() {

+		return getDir(getUploadTempDir(), PROFILES_DIR);

+	}

+	

+	public static File getUploadTempProfilesUserDir(Long users_id) {

+		return getDir(getUploadTempProfilesDir(), OmFileHelper.profilesPrefix + users_id);

+	}

+	

+	public static File getUploadTempRoomDir(String roomName) {

+		return getDir(getUploadTempDir(), roomName);

+	}

+	

+	public static File getStreamsDir() {

+		return new File(OmFileHelper.OM_HOME, STREAMS_DIR);

+	}

+	

+	public static File getStreamsHibernateDir() {

+		return getDir(getStreamsDir(), HIBERNATE_DIR);

+	}

+	

+	public static File getRecording(String name) {

+		return new File(getDir(getStreamsDir(), HIBERNATE_DIR), name);

+	}

+	

+	public static boolean isRecordingExists(String name) {

+		try {

+			File f = new File(getDir(getStreamsDir(), HIBERNATE_DIR), name);

+			return f.exists() && f.isFile();

+		} catch (Exception e) {

+			//no-op

+		}

+		return false;

+	}

+	

+	public static File getMp4Recording(String name) {

+		return getRecording(name + MP4_EXTENSION);

+	}

+	

+	public static File getOggRecording(String name) {

+		return getRecording(name + OGG_EXTENSION);

+	}

+	

+	public static File getStreamsSubDir(Long id) {

+		return getDir(getStreamsDir(), id.toString());

+	}

+	

+	public static File getStreamsSubDir(String name) {

+		return getDir(getStreamsDir(), name);

+	}

+	

+	public static File getLanguagesDir() {

+		return new File(OmFileHelper.OM_HOME, LANGUAGES_DIR);

+	}

+	

+	public static File getPublicDir() {

+		return new File(OmFileHelper.OM_HOME, PUBLIC_DIR);

+	}

+	

+	public static File getPublicClipartsDir() {

+		return new File(getPublicDir(), CLIPARTS_DIR);

+	}

+	

+	public static File getPublicEmotionsDir() {

+		return new File(getPublicDir(), EMOTIONS_DIR);

+	}

+	

+	public static File getWebinfDir() {

+		return new File(OmFileHelper.OM_HOME, WEB_INF_DIR);

+	}

+	

+	public static File getConfDir() {

+		return new File(OmFileHelper.OM_HOME, CONF_DIR);

+	}

+	

+	public static File getInstallFile() {

+		return new File(getConfDir(), INSTALL_FILE);

+	}

+	

+	public static File getScreenSharingDir() {

+		return new File(OmFileHelper.OM_HOME, SCREENSHARING_DIR);

+	}

+

+	public static File getDefaultDir() {

+		return new File(OmFileHelper.OM_HOME, DEFAULT_DIR);

+	}

+	

+	public static File appendSuffix(File original, String suffix) {

+		File parent = original.getParentFile();

+		String name = original.getName();

+		String ext = "";

+		int idx = name.lastIndexOf('.');

+		if (idx > -1) {

+			name = name.substring(0, idx);

+			ext = name.substring(idx);

+		}

+		return new File(parent, name + suffix + ext);

+	}

+	

+	//FIXME need to be generalized

+	public static File getNewFile(File dir, String name, String ext) throws IOException {

+		File f = new File(dir, name + ext);

+		int recursiveNumber = 0;

+		while (f.exists()) {

+			f = new File(dir, name + "_" + (recursiveNumber++) + ext);

+		}

+		f.createNewFile();

+		return f;

+	}

+	

+	public static File getNewDir(File dir, String name) throws IOException {

+		File f = new File(dir, name);

+		String baseName = f.getCanonicalPath();

+

+		int recursiveNumber = 0;

+		while (f.exists()) {

+			f = new File(baseName + "_" + (recursiveNumber++));

+		}

+		f.mkdir();

+		return f;

+	}

+	

+	public static String getHumanSize(File dir) {

+		return getHumanSize(getSize(dir));

+	}

+	

+	public static String getHumanSize(long size) {

+		if(size <= 0) return "0";

+		final String[] units = new String[] { "B", "KB", "MB", "GB", "TB" };

+		int digitGroups = (int) (Math.log10(size)/Math.log10(1024));

+		return new DecimalFormat("#,##0.#").format(size/Math.pow(1024, digitGroups)) + " " + units[digitGroups];

+	}

+

+	public static long getSize(File dir) {

+		long size = 0;

+		if (dir.isFile()) {

+			size = dir.length();

+		} else {

+			File[] subFiles = dir.listFiles();

+	

+			for (File file : subFiles) {

+				if (file.isFile()) {

+					size += file.length();

+				} else {

+					size += getSize(file);

+				}

+	

+			}

+		}

+		return size;

+	}

+

+	public static void copyFile(String sourceFile, String targetFile) throws IOException {

+		FileHelper.copy(new File(sourceFile), new File(targetFile));

+	}

+	

+	public static void copyFile(File f1, OutputStream out) throws IOException {

+		InputStream in = null;

+		try {

+			in = new FileInputStream(f1);

+			FileHelper.copy(in, out);

+			log.debug("File copied.");

+		} catch (Exception e) {

+			log.error("[copyfile(File, File)]", e);

+		} finally {

+			if (in != null) {

+				in.close();

+			}

+		}

+	}

+}

diff --git a/src/util/java/org/apache/openmeetings/util/OpenmeetingsVariables.java b/src/util/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
new file mode 100644
index 0000000..da7887d
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util;
+
+public class OpenmeetingsVariables {
+	public static final String CONFIG_CRYPT_KEY = "crypt_ClassName";
+	public static final String CONFIG_DASHBOARD_SHOW_MYROOMS_KEY = "dashboard.show.myrooms";
+	public static final String CONFIG_DASHBOARD_SHOW_RSS_KEY = "dashboard.show.rssfeed";
+	public static final String CONFIG_DEFAUT_LANG_KEY = "default_lang_id";
+	public static final String CONFIG_FRONTEND_REGISTER_KEY = "allow_frontend_register";
+	public static final String CONFIG_SOAP_REGISTER_KEY = "allow.soap.register";
+	public static final String CONFIG_LOGIN_MIN_LENGTH_KEY = "user.login.minimum.length";
+	public static final String CONFIG_MAX_UPLOAD_SIZE_KEY = "max_upload_size";
+	public static final String CONFIG_PASS_MIN_LENGTH_KEY = "user.pass.minimum.length";
+	public static final String CONFIG_RSS_FEED1_KEY = "rss_feed1";
+	public static final String CONFIG_RSS_FEED2_KEY = "rss_feed2";
+	public static final String CONFIG_IGNORE_BAD_SSL = "oauth2.ignore_bad_ssl";
+	public static final String CONFIG_DEFAULT_LANDING_ZONE = "default.landing.zone";
+	public static final String CONFIG_DEFAULT_LDAP_ID = "ldap_default_id";
+	public static final String CONFIG_REDIRECT_URL_FOR_EXTERNAL_KEY = "redirect.url.for.external.users";
+	public static final String CONFIG_APPOINTMENT_REMINDER_MINUTES = "number.minutes.reminder.send";
+	public static final String CONFIG_APPLICATION_BASE_URL = "application.base.url";
+
+	public static int DEFAULT_MINUTES_REMINDER_SEND = 15;
+	public static String DEFAULT_BASE_URL = "http://localhost:5080/openmeetings/";
+	
+	public static final String WEB_DATE_PATTERN = "dd.MM.yyyy HH:mm:ss"; //FIXME need to be made locale based
+	public static String webAppRootKey = null;
+	public static String webAppRootPath = null;
+	public static String configKeyCryptClassName = null;
+	public static final int USER_LOGIN_MINIMUM_LENGTH = 4;
+	public static final int USER_PASSWORD_MINIMUM_LENGTH = 4;
+	public static Boolean whiteboardDrawStatus = null;
+}
diff --git a/src/util/java/org/apache/openmeetings/util/StoredFile.java b/src/util/java/org/apache/openmeetings/util/StoredFile.java
new file mode 100644
index 0000000..a945283
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/StoredFile.java
@@ -0,0 +1,124 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+public class StoredFile {
+    private static final Set<String> convertExtensions = new HashSet<String>(
+            Arrays.asList(new String[] { "ppt", "odp", "odt", "sxw", "wpd",
+                    "doc", "rtf", "txt", "ods", "sxc", "xls", "sxi", "pptx",
+                    "docx", "xlsx" }));
+
+    private static final Set<String> pdfExtensions = new HashSet<String>(
+            Arrays.asList(new String[] { "pdf", "ps" }));
+
+    private static final Set<String> imageExtensions = new HashSet<String>(
+            Arrays.asList(new String[] { "png", "gif", "svg", "dpx", "exr",
+                    "pcd", // PhotoCD
+                    "pcds", // PhotoCD
+                    "psd", // Adobe Photoshop
+                    "tiff", // Tagged Image File Format
+                    "ttf", // TrueType font
+                    "xcf", // GIMP image
+                    "wpg", // Word Perfect Graphics
+                    "bmp", "ico", // Microsoft Icon
+                    "tga", // Truevision Targa
+                    "jpg", "jpeg" }));
+
+    private static final Set<String> chartExtensions = new HashSet<String>(
+            Arrays.asList(new String[] { "xchart" }));
+
+    private static final Set<String> videoExtensions = new HashSet<String>(
+            Arrays.asList(new String[] { "avi", "mov", "flv", "mp4" }));
+
+    private static final Set<String> asIsExtensions = new HashSet<String>(
+            Arrays.asList(new String[] { "jpg", "xchart" }));
+
+    private final String name;
+	private final String ext;
+
+    public StoredFile(String fullname) {
+    	int idx = fullname.lastIndexOf('.');
+    	name = idx < 0 ? fullname : fullname.substring(0, idx);
+    	ext = idx < 0 ? "" : fullname.substring(idx + 1).toLowerCase();
+    }
+    
+    public StoredFile(String name, String ext) {
+        this.name = name;
+        this.ext = ext != null ? ext.toLowerCase() : "";
+    }
+    
+    public static String[] getExtensions(){
+    	
+    	Set<String> extensions = new HashSet<String>();
+    	extensions.addAll(convertExtensions);
+    	extensions.addAll(pdfExtensions);
+    	extensions.addAll(imageExtensions);
+    	extensions.addAll(chartExtensions);
+    	extensions.addAll(videoExtensions);
+    	extensions.addAll(asIsExtensions);
+    	
+    	Object[] returnObj = extensions.toArray();
+    	
+    	String[] returnStr = new String[returnObj.length];
+    	
+    	int i=0;
+    	for (Object obj : returnObj) {
+    		returnStr[i] = obj.toString();
+    		i++;
+    	}
+    	
+    	return returnStr;
+    }
+
+    public boolean isConvertable() {
+        return convertExtensions.contains(ext);
+    }
+
+    public boolean isPresentation() {
+        return isConvertable() || isPdf();
+    }
+
+    public boolean isPdf() {
+        return pdfExtensions.contains(ext);
+    }
+
+    public boolean isImage() {
+        return imageExtensions.contains(ext);
+    }
+
+    public boolean isVideo() {
+        return videoExtensions.contains(ext);
+    }
+
+    public boolean isChart() {
+        return chartExtensions.contains(ext);
+    }
+
+    public boolean isAsIs() {
+        return asIsExtensions.contains(ext);
+    }
+
+    public String getName() {
+		return name;
+	}
+}
diff --git a/src/util/java/org/apache/openmeetings/util/Version.java b/src/util/java/org/apache/openmeetings/util/Version.java
new file mode 100644
index 0000000..f568020
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/Version.java
@@ -0,0 +1,98 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.util;

+

+import java.io.IOException;

+import java.net.MalformedURLException;

+import java.net.URL;

+import java.util.jar.Attributes;

+import java.util.jar.Manifest;

+

+import org.red5.logging.Red5LoggerFactory;

+import org.slf4j.Logger;

+

+public class Version {

+	private static final Logger log = Red5LoggerFactory.getLogger(Version.class, OpenmeetingsVariables.webAppRootKey);

+	private static final int startedStringLength = 48;

+	private static String version = null;

+	private static String revision = null;

+	private static String buildDate = null;

+	

+	private static Attributes getAttributes() throws MalformedURLException, IOException {

+		String jarUrl = Version.class.getResource(Version.class.getSimpleName() + ".class").toString();

+		return new Manifest(new URL(jarUrl.substring(0, jarUrl.indexOf('!')) + "!/META-INF/MANIFEST.MF").openStream()).getMainAttributes();

+	}

+	

+	public static String getVersion() {

+		if (version == null) {

+			try {

+				version = getAttributes().getValue("Product-Version");

+			} catch (Exception e) {

+				e.printStackTrace();

+			}

+		}

+		return version;

+	}

+	

+	public static String getRevision() {

+		if (revision == null) {

+			try {

+				revision = getAttributes().getValue("Svn-Revision");

+			} catch (Exception e) {

+				e.printStackTrace();

+			}

+		}

+		return revision;

+	}

+	

+	public static String getBuildDate() {

+		if (buildDate == null) {

+			try {

+				buildDate = getAttributes().getValue("Built-On");

+			} catch (Exception e) {

+				e.printStackTrace();

+			}

+		}

+		return buildDate;

+	}

+

+	private static void getLine(StringBuilder sb, String text, char fill) {

+		sb.append("\t#");

+		int l = text.length();

+		int headLength = (startedStringLength - l) / 2;

+		for (int i = 0; i < headLength; ++i) {

+			sb.append(fill);

+		}

+		sb.append(text);

+		for (int i = 0; i < (startedStringLength - l - headLength); ++i) {

+			sb.append(fill);

+		}

+		sb.append("#\n");

+	}

+	

+	public static void logOMStarted() {

+		StringBuilder sb = new StringBuilder("\n");

+		getLine(sb, "", '#');

+		getLine(sb, "Openmeetings is up", ' ');

+		getLine(sb, getVersion() + " " + getRevision() + " " + getBuildDate(), ' ');

+		getLine(sb, "and ready to use", ' ');

+		getLine(sb, "", '#');

+		log.debug(sb.toString());

+	}

+}

diff --git a/src/util/java/org/apache/openmeetings/util/crypt/ICryptString.java b/src/util/java/org/apache/openmeetings/util/crypt/ICryptString.java
new file mode 100644
index 0000000..8ca8799
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/crypt/ICryptString.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util.crypt;
+
+/**
+ * interface for Encryption-Class
+ * see: http://openmeetings.apache.org/CustomCryptMechanism.html
+ * 
+ * @author sebastianwagner
+ *
+ */
+
+public interface ICryptString {
+	
+	/**
+	 * create a pass phrase
+	 * 
+	 * @param userGivenPass
+	 * @return
+	 */
+	public String createPassPhrase(String userGivenPass);
+	
+	/**
+	 * verify a password
+	 * 
+	 * @param passGiven
+	 * @param passwdFromDb
+	 * @return
+	 */
+	public Boolean verifyPassword(String passGiven, String passwdFromDb);
+
+}
diff --git a/src/util/java/org/apache/openmeetings/util/crypt/MD5.java b/src/util/java/org/apache/openmeetings/util/crypt/MD5.java
new file mode 100644
index 0000000..cac6c64
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/crypt/MD5.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util.crypt;
+
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+import org.apache.commons.codec.binary.Hex;
+
+public class MD5 {
+	public static String do_checksum(String data) throws NoSuchAlgorithmException {
+		MessageDigest md5 = MessageDigest.getInstance("MD5");
+
+		md5.update(data.getBytes(), 0, data.length());
+
+		return Hex.encodeHexString(md5.digest());
+	}
+}
diff --git a/src/util/java/org/apache/openmeetings/util/crypt/MD5Crypt.java b/src/util/java/org/apache/openmeetings/util/crypt/MD5Crypt.java
new file mode 100644
index 0000000..354a8a2
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/crypt/MD5Crypt.java
@@ -0,0 +1,380 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util.crypt;
+
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+/*
+
+ Based on the work of Jonathan Abbey
+ Adopted for Director by Thomas Aeby, 2004
+
+ MD5Crypt.java
+
+ Created: 3 November 1999
+ Release: $Name:  $
+ Version: $Revision: 1.1 $
+ Last Mod Date: $Date: 2004/02/04 08:10:35 $
+ Java Code By: Jonathan Abbey, jonabbey@arlut.utexas.edu
+ Original C Version:
+ ----------------------------------------------------------------------------
+ "THE BEER-WARE LICENSE" (Revision 42):
+ <phk@login.dknet.dk> wrote this file.  As long as you retain this notice you
+ can do whatever you want with this stuff. If we meet some day, and you think
+ this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp
+ ----------------------------------------------------------------------------
+
+ -----------------------------------------------------------------------
+
+ Ganymede Directory Management System
+
+ Copyright (C) 1996, 1997, 1998, 1999  The University of Texas at Austin.
+
+ Contact information
+
+ Author Email: ganymede_author@arlut.utexas.edu
+ Email mailing list: ganymede@arlut.utexas.edu
+
+ US Mail:
+
+ Computer Science Division
+ Applied Research Laboratories
+ The University of Texas at Austin
+ PO Box 8029, Austin TX 78713-8029
+
+ Telephone: (512) 835-3200
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ */
+
+/*------------------------------------------------------------------------------
+ class
+ MD5Crypt
+
+ ------------------------------------------------------------------------------*/
+
+/**
+ * <p>
+ * This class defines a method,
+ * {@link MD5Crypt#crypt(java.lang.String, java.lang.String) crypt()}, which
+ * takes a password and a salt string and generates an
+ * OpenBSD/FreeBSD/Linux-compatible md5-encoded password entry.
+ * </p>
+ * 
+ * <p>
+ * Created: 3 November 1999
+ * </p>
+ * <p>
+ * Release: $Name: $
+ * </p>
+ * <p>
+ * Version: $Revision: 1.1 $
+ * </p>
+ * <p>
+ * Last Mod Date: $Date: 2004/02/04 08:10:35 $
+ * </p>
+ * <p>
+ * Java Code By: Jonathan Abbey, jonabbey@arlut.utexas.edu
+ * </p>
+ * <p>
+ * Original C Version:
+ * 
+ * <pre>
+ * ----------------------------------------------------------------------------
+ * "THE BEER-WARE LICENSE" (Revision 42):
+ * <phk@login.dknet.dk> wrote this file.  As long as you retain this notice you
+ * can do whatever you want with this stuff. If we meet some day, and you think
+ * this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp
+ * ----------------------------------------------------------------------------
+ * </pre>
+ * 
+ * </p>
+ */
+
+public final class MD5Crypt {
+
+	/**
+	 * 
+	 * Command line test rig.
+	 * 
+	 * @throws NoSuchAlgorithmException
+	 * 
+	 */
+
+	static public void main(String argv[]) throws NoSuchAlgorithmException {
+		if ((argv.length < 1) || (argv.length > 2)) {
+			System.err.println("Usage: MD5Crypt password salt");
+			System.exit(1);
+		}
+
+		if (argv.length == 2) {
+			System.err.println(MD5Crypt.crypt(argv[0], argv[1]));
+		} else {
+			System.err.println(MD5Crypt.crypt(argv[0]));
+		}
+
+		System.exit(0);
+	}
+
+	static private final String SALTCHARS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
+
+	static private final String itoa64 = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+
+	static private final String to64(long v, int size) {
+		StringBuffer result = new StringBuffer();
+
+		while (--size >= 0) {
+			result.append(itoa64.charAt((int) (v & 0x3f)));
+			v >>>= 6;
+		}
+
+		return result.toString();
+	}
+
+	static private final void clearbits(byte bits[]) {
+		for (int i = 0; i < bits.length; i++) {
+			bits[i] = 0;
+		}
+	}
+
+	/**
+	 * convert an encoded unsigned byte value into a int with the unsigned
+	 * value.
+	 */
+
+	@SuppressWarnings("cast")
+	static private final int bytes2u(byte inp) {
+		return ((int) inp) & 0xff;
+	}
+
+	/**
+	 * <p>
+	 * This method actually generates a OpenBSD/FreeBSD/Linux PAM compatible
+	 * md5-encoded password hash from a plaintext password and a salt.
+	 * </p>
+	 * 
+	 * <p>
+	 * The resulting string will be in the form '$1$&lt;salt&gt;$&lt;hashed
+	 * mess&gt;
+	 * </p>
+	 * 
+	 * @param password
+	 *            Plaintext password
+	 * 
+	 * @return An OpenBSD/FreeBSD/Linux-compatible md5-hashed password field.
+	 * @throws NoSuchAlgorithmException
+	 */
+
+	static public final String crypt(String password)
+			throws NoSuchAlgorithmException {
+		StringBuffer salt = new StringBuffer();
+		java.util.Random randgen = new java.util.Random();
+
+		/* -- */
+
+		while (salt.length() < 8) {
+			int index = (int) (randgen.nextFloat() * SALTCHARS.length());
+			salt.append(SALTCHARS.substring(index, index + 1));
+		}
+
+		return MD5Crypt.crypt(password, salt.toString());
+	}
+
+	/**
+	 * <p>
+	 * This method actually generates a OpenBSD/FreeBSD/Linux PAM compatible
+	 * md5-encoded password hash from a plaintext password and a salt.
+	 * </p>
+	 * 
+	 * <p>
+	 * The resulting string will be in the form '$1$&lt;salt&gt;$&lt;hashed
+	 * mess&gt;
+	 * </p>
+	 * 
+	 * @param password
+	 *            Plaintext password
+	 * @param salt
+	 *            A short string to use to randomize md5. May start with $1$,
+	 *            which will be ignored. It is explicitly permitted to pass a
+	 *            pre-existing MD5Crypt'ed password entry as the salt. crypt()
+	 *            will strip the salt chars out properly.
+	 * 
+	 * @return An OpenBSD/FreeBSD/Linux-compatible md5-hashed password field.
+	 * @throws NoSuchAlgorithmException
+	 */
+
+	static public final String crypt(String password, String salt)
+			throws NoSuchAlgorithmException {
+		/*
+		 * This string is magic for this algorithm. Having it this way, we can
+		 * get get better later on
+		 */
+
+		String magic = "$1$";
+		byte finalState[];
+		MessageDigest ctx, ctx1;
+		long l;
+
+		/* -- */
+
+		/* Refine the Salt first */
+
+		/* If it starts with the magic string, then skip that */
+
+		if (salt.startsWith(magic)) {
+			salt = salt.substring(magic.length());
+		}
+
+		/* It stops at the first '$', max 8 chars */
+
+		if (salt.indexOf('$') != -1) {
+			salt = salt.substring(0, salt.indexOf('$'));
+		}
+
+		if (salt.length() > 8) {
+			salt = salt.substring(0, 8);
+		}
+
+		ctx = MessageDigest.getInstance("MD5");
+
+		ctx.update(password.getBytes()); // The password first, since that is
+											// what is most unknown
+		ctx.update(magic.getBytes()); // Then our magic string
+		ctx.update(salt.getBytes()); // Then the raw salt
+
+		/* Then just as many characters of the MD5(pw,salt,pw) */
+
+		ctx1 = MessageDigest.getInstance("MD5");
+		ctx1.update(password.getBytes());
+		ctx1.update(salt.getBytes());
+		ctx1.update(password.getBytes());
+		finalState = ctx1.digest();
+
+		for (int pl = password.length(); pl > 0; pl -= 16) {
+			for (int i = 0; i < (pl > 16 ? 16 : pl); i++)
+				ctx.update(finalState[i]);
+		}
+
+		/*
+		 * the original code claimed that finalState was being cleared to keep
+		 * dangerous bits out of memory, but doing this is also required in
+		 * order to get the right output.
+		 */
+
+		clearbits(finalState);
+
+		/* Then something really weird... */
+
+		for (int i = password.length(); i != 0; i >>>= 1) {
+			if ((i & 1) != 0) {
+				ctx.update(finalState[0]);
+			} else {
+				ctx.update(password.getBytes()[0]);
+			}
+		}
+
+		finalState = ctx.digest();
+
+		/*
+		 * and now, just to make sure things don't run too fast On a 60 Mhz
+		 * Pentium this takes 34 msec, so you would need 30 seconds to build a
+		 * 1000 entry dictionary...
+		 * 
+		 * (The above timings from the C version)
+		 */
+
+		for (int i = 0; i < 1000; i++) {
+			ctx1 = MessageDigest.getInstance("MD5");
+
+			if ((i & 1) != 0) {
+				ctx1.update(password.getBytes());
+			} else {
+				for (int c = 0; c < 16; c++)
+					ctx1.update(finalState[c]);
+			}
+
+			if ((i % 3) != 0) {
+				ctx1.update(salt.getBytes());
+			}
+
+			if ((i % 7) != 0) {
+				ctx1.update(password.getBytes());
+			}
+
+			if ((i & 1) != 0) {
+				for (int c = 0; c < 16; c++)
+					ctx1.update(finalState[c]);
+			} else {
+				ctx1.update(password.getBytes());
+			}
+
+			finalState = ctx1.digest();
+		}
+
+		/* Now make the output string */
+
+		StringBuffer result = new StringBuffer();
+
+		result.append(magic);
+		result.append(salt);
+		result.append("$");
+
+		l = (bytes2u(finalState[0]) << 16) | (bytes2u(finalState[6]) << 8)
+				| bytes2u(finalState[12]);
+		result.append(to64(l, 4));
+
+		l = (bytes2u(finalState[1]) << 16) | (bytes2u(finalState[7]) << 8)
+				| bytes2u(finalState[13]);
+		result.append(to64(l, 4));
+
+		l = (bytes2u(finalState[2]) << 16) | (bytes2u(finalState[8]) << 8)
+				| bytes2u(finalState[14]);
+		result.append(to64(l, 4));
+
+		l = (bytes2u(finalState[3]) << 16) | (bytes2u(finalState[9]) << 8)
+				| bytes2u(finalState[15]);
+		result.append(to64(l, 4));
+
+		l = (bytes2u(finalState[4]) << 16) | (bytes2u(finalState[10]) << 8)
+				| bytes2u(finalState[5]);
+		result.append(to64(l, 4));
+
+		l = bytes2u(finalState[11]);
+		result.append(to64(l, 2));
+
+		/* Don't leave anything around in vm they could use. */
+		clearbits(finalState);
+
+		return result.toString();
+	}
+}
diff --git a/src/util/java/org/apache/openmeetings/util/crypt/MD5CryptImplementation.java b/src/util/java/org/apache/openmeetings/util/crypt/MD5CryptImplementation.java
new file mode 100644
index 0000000..9c861ec
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/crypt/MD5CryptImplementation.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util.crypt;
+
+import java.security.NoSuchAlgorithmException;
+
+public class MD5CryptImplementation implements ICryptString {
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.apache.openmeetings.utils.crypt.ICryptString#createPassPhrase(java.lang.String)
+	 */
+	public String createPassPhrase(String userGivenPass) {
+		String passPhrase = null;
+		try {
+			passPhrase = MD5Crypt.crypt(userGivenPass);
+		} catch (NoSuchAlgorithmException e) {
+			e.printStackTrace();
+		} 
+		return passPhrase;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.apache.openmeetings.utils.crypt.ICryptString#verifyPassword(java.lang.String, java.lang.String)
+	 */
+	public Boolean verifyPassword(String passGiven, String passwdFromDb) {
+		boolean validPassword = false;
+		String salt = passwdFromDb.split("\\$")[2];
+	
+		try {
+			validPassword = passwdFromDb.equals(MD5Crypt.crypt(passGiven, salt));
+		} catch (NoSuchAlgorithmException e) {
+			e.printStackTrace();
+		}
+		return validPassword;
+	}
+
+}
diff --git a/src/util/java/org/apache/openmeetings/util/crypt/MD5Implementation.java b/src/util/java/org/apache/openmeetings/util/crypt/MD5Implementation.java
new file mode 100644
index 0000000..e0d4b4b
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/crypt/MD5Implementation.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util.crypt;
+
+import java.security.NoSuchAlgorithmException;
+
+public class MD5Implementation implements ICryptString {
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.apache.openmeetings.utils.crypt.ICryptString#createPassPhrase(java.lang.String)
+	 */
+	public String createPassPhrase(String userGivenPass) {
+		String passPhrase = null;
+		try {
+			passPhrase = MD5.do_checksum(userGivenPass);
+		} catch (NoSuchAlgorithmException e) {
+			e.printStackTrace();
+		}
+		return passPhrase;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.apache.openmeetings.utils.crypt.ICryptString#verifyPassword(java.lang.String, java.lang.String)
+	 */
+	public Boolean verifyPassword(String passGiven, String passwdFromDb) {
+		return (passwdFromDb.equals(createPassPhrase(passGiven)));
+	}
+	
+}
diff --git a/src/util/java/org/apache/openmeetings/util/crypt/ManageCryptStyle.java b/src/util/java/org/apache/openmeetings/util/crypt/ManageCryptStyle.java
new file mode 100644
index 0000000..a03b623
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/crypt/ManageCryptStyle.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util.crypt;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.configKeyCryptClassName;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class ManageCryptStyle {
+	private static final Logger log = Red5LoggerFactory.getLogger(ManageCryptStyle.class, webAppRootKey);
+
+	public static ICryptString getInstanceOfCrypt() {
+		try {
+			log.debug("getInstanceOfCrypt:: configKeyCryptClassName: " + configKeyCryptClassName);
+
+			return configKeyCryptClassName == null ? null : (ICryptString) Class.forName(configKeyCryptClassName).newInstance();
+		} catch (Exception err) {
+			log.error("[getInstanceOfCrypt]", err);
+		}
+		return null;
+	}
+}
diff --git a/src/util/java/org/apache/openmeetings/util/geom/ArrowStyle.java b/src/util/java/org/apache/openmeetings/util/geom/ArrowStyle.java
new file mode 100644
index 0000000..5fa3164
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/geom/ArrowStyle.java
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util.geom;
+
+public class ArrowStyle {
+
+	public double headWidth=-1; //Relative width of arrow head
+
+	/**
+	 * 
+	 * Not used in drawArrowHead because the length is 
+	 * determined by the points passed in
+	 * 
+	 */
+	public double headLength=10; //Pixel Length of arrow head
+			
+	
+	public double shaftThickness=2;
+	public float shaftPosition=0;
+	
+	/**
+	 *  Not used in drawArrow, only drawArrowHead
+	 * 	This let's you curve the line at the base of the arrow
+	 */
+	public double shaftControlPosition=.5;
+	/**
+	 * Not used in drawArrow, only drawArrowHead
+	 * This let's you curve the line at the base of the arrow
+	 */
+	public double shaftControlSize=.5;
+	
+	
+	public double edgeControlPosition=.5;
+	public double edgeControlSize=.5;
+	
+	
+	public ArrowStyle(double edgeControlPosition, double edgeControlSize,
+			double headLength, double headWidth, double shaftControlPosition,
+			double shaftControlSize, float shaftPosition, double shaftThickness) {
+		super();
+		this.edgeControlPosition = edgeControlPosition;
+		this.edgeControlSize = edgeControlSize;
+		this.headLength = headLength;
+		this.headWidth = headWidth;
+		this.shaftControlPosition = shaftControlPosition;
+		this.shaftControlSize = shaftControlSize;
+		this.shaftPosition = shaftPosition;
+		this.shaftThickness = shaftThickness;
+	}
+	
+	
+}
diff --git a/src/util/java/org/apache/openmeetings/util/geom/GeomPoint.java b/src/util/java/org/apache/openmeetings/util/geom/GeomPoint.java
new file mode 100644
index 0000000..e666ab2
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/geom/GeomPoint.java
@@ -0,0 +1,211 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util.geom;
+
+import java.awt.Point;
+
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+/**
+ * 
+ * Java Implementation of the Actionscript Class flash.geom.Point
+ * 
+ * @author swagner
+ *
+ */
+
+public class GeomPoint extends Point {
+	private static final long serialVersionUID = 5729830653403076829L;
+	@SuppressWarnings("unused")
+	private static final Logger log = Red5LoggerFactory.getLogger(GeomPoint.class, OpenmeetingsVariables.webAppRootKey);
+
+	public GeomPoint add(GeomPoint p) {
+		GeomPoint gPoint = new GeomPoint();
+		gPoint.setLocation(this.getX() + p.getX(),this.getY() + p.getY());
+		return gPoint;
+	}
+	
+	public GeomPoint subtract(GeomPoint p) {
+		GeomPoint gPoint = new GeomPoint();
+		gPoint.setLocation(this.getX() - p.getX(),this.getY() - p.getY());
+		return gPoint;
+	}
+	
+	public GeomPoint clone() {
+		GeomPoint p = new GeomPoint();
+		p.setLocation(this.getX(), this.getY());
+		return p;
+	}
+	
+	public static GeomPoint interpolate(GeomPoint p1, GeomPoint p2, float f) {
+		
+		if (f == 0) {
+			GeomPoint p = new GeomPoint();
+			p.setLocation(p2.getX(), p2.getY());
+			return p;
+		} else if (f == 1) {
+			GeomPoint p = new GeomPoint();
+			p.setLocation(p1.getX(), p1.getY());
+			return p;
+		}
+		
+		double returnValueP1 = linearInterpolation(p1.getX(),p2.getX(),f);
+		double returnValueP2 = linearInterpolation(p1.getY(),p2.getY(),f);
+		
+		GeomPoint p = new GeomPoint();
+		p.setLocation(returnValueP1, returnValueP2);
+		return p;
+	}
+	
+	public double length() {
+		return Math.sqrt( this.getX()*this.getX() + this.getY()*this.getY() );
+	}
+	
+	public String toString() {
+		return getClass().getName() + "[x=" + this.getX() + ",y=" + this.getY() + "]";
+    }
+	
+	public void normalize(double newLength) {
+		
+		//Function for Line y = mx + 0 
+		//given points 0,0 and this.getX(),this.getY();
+		//		0 = m*0 + c
+		//		m = -c;
+		//		
+		//		this.getY() = m*this.getX();
+
+		double m;
+		if (this.getX() == 0) {
+			//log.debug("Case 1");
+			if (this.getY() < 0) {
+				this.setLocation(0, newLength * -1);
+			} else {
+				this.setLocation(0, newLength);
+			}
+			return;
+			//m = this.getY();
+		} else {
+			m = this.getY() / this.getX();
+			//log.debug("Case 2");
+		}
+		
+		//log.debug("m :"+m +" newLength "+newLength);
+		
+		//Circle (x-x0)^2 + (y-y0)^2 = r^2
+		//		anyY = m * anyX;
+		//		newLength * newLength = anyY * anyY + anyX * anyX;
+		//		
+		//		newLength * newLength = (m * anyX) * (m * anyX) + anyX * anyX;
+		//		
+		//		newLength * newLength = m * m * anyX * anyX + anyX * anyX;
+		//		newLength * newLength = ( m*m + 1 ) * anyX * anyX;
+		//		
+		//		newLength * newLength / ( m*m + 1 ) = anyX * anyX;
+		
+		double anyX = Math.sqrt( ( newLength * newLength ) / ( m*m + 1 ) );
+		double anyY = m * anyX;
+		
+		//log.debug("anyX :"+anyX + " anyY: " + anyY);
+		
+		//translate to Flash point of origin
+		if (this.getX() < 0) {
+			anyX *= -1;
+			anyY *= -1;
+		}
+		
+		//log.debug("anyX :"+anyX + " anyY: " + anyY);
+		this.setLocation(anyX, anyY);
+		
+	}
+	
+	/**
+	 * Interpolate one number
+	 * @param a
+	 * @param b
+	 * @param t
+	 * @return
+	 */
+	public static double linearInterpolation(double a, double b, float t) {
+		return a + t * (b - a);
+	}
+	
+
+	public static GeomPoint getLineIntersection ( GeomPoint a1,GeomPoint a2,
+			GeomPoint b1,GeomPoint b2) {
+		
+		//log.debug("b1: "+b1);
+		//log.debug("b2: "+b2);
+		
+		double x,y,m1,m2;
+	
+		if ((a2.getX()-a1.getX()) == 0) {
+			
+			//log.debug("k1 ^ 0");
+			
+			double k2 = (b2.getY()-b1.getY()) / (b2.getX()-b1.getX());
+			//log.debug("k2: "+k2);
+			//log.debug("b1.getY(): "+b1.getY());
+			//log.debug("b2.getY(): "+b2.getY());
+			// an infinite directional constant means the line is vertical
+			// so the intersection must be at the x coordinate of the line
+			x = a1.getX();
+            m2 = b1.getY() - k2 * b1.getX();
+            //log.debug("m2: "+m2);
+            y = k2 * x + m2;
+            //log.debug("y: "+y);
+			
+		} else if((b2.getX()-b1.getX()) == 0) {
+			
+			//log.debug("k2 ^^ 0");
+			
+			double k1 = (a2.getY()-a1.getY()) / (a2.getX()-a1.getX());
+			// same as above for line 2
+			m1 = a1.getY() - k1 * a1.getX();
+			x = b1.getX();
+			y = k1 * x + m1;
+			
+		} else {
+		
+			//calculate directional constants
+			double k1 = (a2.getY()-a1.getY()) / (a2.getX()-a1.getX());
+			double k2 = (b2.getY()-b1.getY()) / (b2.getX()-b1.getX());
+			
+			// if the directional constants are equal, the lines are parallel,
+			// meaning there is no intersection point.
+			if( k1 == k2 ) return null;
+		
+			//log.debug("neither");
+//			log.debug("k1: "+k1);
+//			log.debug("k2: "+k2);
+			
+			m1 = a1.getY() - k1 * a1.getX();
+			m2 = b1.getY() - k2 * b1.getX();				
+			x = (m1-m2) / (k2-k1);
+			y = k1 * x + m1;
+		}
+		
+		
+		GeomPoint gPoint = new GeomPoint();
+		gPoint.setLocation(x, y);
+		
+		return gPoint;
+	}	
+}
diff --git a/src/util/java/org/apache/openmeetings/util/mail/ByteArrayDataSource.java b/src/util/java/org/apache/openmeetings/util/mail/ByteArrayDataSource.java
new file mode 100644
index 0000000..ed5b55a
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/mail/ByteArrayDataSource.java
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util.mail;
+
+import java.io.*;
+import javax.activation.*;
+
+public class ByteArrayDataSource implements DataSource {
+	private byte[] data; // data
+
+	private String type; // content-type
+
+	/* Create a DataSource from an input stream */
+	public ByteArrayDataSource(InputStream is, String type) {
+		this.type = type;
+		try {
+			ByteArrayOutputStream os = new ByteArrayOutputStream();
+			int ch;
+
+			while ((ch = is.read()) != -1)
+				os.write(ch);
+			data = os.toByteArray();
+			os.close();
+		} catch (IOException ioex) {
+		}
+	}
+
+	/* Create a DataSource from a byte array */
+	public ByteArrayDataSource(byte[] data, String type) {
+		this.data = data;
+		this.type = type;
+	}
+
+	/* Create a DataSource from a String */
+	public ByteArrayDataSource(String data, String type) {
+		try {
+			// Assumption that the string contains only ASCII
+			// characters! Otherwise just pass a charset into this
+			// constructor and use it in getBytes()
+			this.data = data.getBytes("utf-8");
+		} catch (UnsupportedEncodingException uex) {
+		}
+		this.type = type;
+	}
+
+	public InputStream getInputStream() throws IOException {
+		if (data == null)
+			throw new IOException("no data");
+		return new ByteArrayInputStream(data);
+	}
+
+	public OutputStream getOutputStream() throws IOException {
+		throw new IOException("cannot do this");
+	}
+
+	public String getContentType() {
+		return type;
+	}
+
+	public String getName() {
+		return "dummy";
+	}
+}
diff --git a/src/util/java/org/apache/openmeetings/util/mail/IcalHandler.java b/src/util/java/org/apache/openmeetings/util/mail/IcalHandler.java
new file mode 100644
index 0000000..32e131a
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/mail/IcalHandler.java
@@ -0,0 +1,244 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util.mail;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.io.ByteArrayOutputStream;
+import java.io.FileOutputStream;
+import java.net.URI;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Vector;
+
+import net.fortuna.ical4j.data.CalendarOutputter;
+import net.fortuna.ical4j.model.DateTime;
+import net.fortuna.ical4j.model.TimeZone;
+import net.fortuna.ical4j.model.TimeZoneRegistry;
+import net.fortuna.ical4j.model.TimeZoneRegistryFactory;
+import net.fortuna.ical4j.model.component.VEvent;
+import net.fortuna.ical4j.model.parameter.Cn;
+import net.fortuna.ical4j.model.parameter.Role;
+import net.fortuna.ical4j.model.property.Attendee;
+import net.fortuna.ical4j.model.property.CalScale;
+import net.fortuna.ical4j.model.property.Description;
+import net.fortuna.ical4j.model.property.Location;
+import net.fortuna.ical4j.model.property.Method;
+import net.fortuna.ical4j.model.property.Organizer;
+import net.fortuna.ical4j.model.property.ProdId;
+import net.fortuna.ical4j.model.property.Sequence;
+import net.fortuna.ical4j.model.property.Transp;
+import net.fortuna.ical4j.model.property.Uid;
+import net.fortuna.ical4j.model.property.Version;
+import net.fortuna.ical4j.util.UidGenerator;
+
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+/**
+ * 
+ * @author o.becherer, seba.wagner
+ * 
+ */
+public class IcalHandler {
+	private static final Logger log = Red5LoggerFactory.getLogger(IcalHandler.class, webAppRootKey);
+
+	/** ICal instance */
+	private final net.fortuna.ical4j.model.Calendar icsCalendar;
+
+	/** TimeZone */
+	// private TimeZone timeZone;
+	// private TimeZoneRegistry timeRegistry;
+
+	/** Creation of a new Event */
+	public final static Method ICAL_METHOD_REQUEST = Method.REQUEST;
+	public final static Method ICAL_METHOD_CANCEL = Method.CANCEL;
+	public final static Method ICAL_METHOD_REFRESH = Method.REFRESH;
+
+	/**
+	 * Constructor with DefaultTimeZone
+	 * 
+	 * @param method
+	 *            (@see IcalHandler Constants)
+	 * @throws Exception
+	 */
+	public IcalHandler(Method method) {
+		log.debug("Icalhandler method type : " + method);
+		
+		System.setProperty("net.fortuna.ical4j.timezone.update.enabled", "false");
+		
+		icsCalendar = new net.fortuna.ical4j.model.Calendar();
+
+		icsCalendar.getProperties().add(
+				new ProdId("-//Events Calendar//iCal4j 1.0//EN"));
+		icsCalendar.getProperties().add(Version.VERSION_2_0);
+		icsCalendar.getProperties().add(CalScale.GREGORIAN);
+		
+		icsCalendar.getProperties().add(method);
+	}
+
+	/**
+	 * 
+	 * @param startDate
+	 *            use standard TimeZone!!
+	 * @param endDate
+	 *            use standard time zone!!
+	 * @param name
+	 *            meeting name
+	 * @param attendees
+	 *            List of attendees (use getAttendeeData to retrieve valid
+	 *            records)
+	 * @param description
+	 *            containing the meeting description
+	 * @param uid
+	 *            (maybe null)
+	 * @return UID of Meeting
+	 */
+	// ---------------------------------------------------------------------------------------
+	public String addNewMeeting(Date startDate,
+			Date endDate, String name,
+			Vector<HashMap<String, String>> attendees, String description,
+			HashMap<String, String> organizer, String uid, java.util.TimeZone normalTimeZone)
+			throws Exception {
+
+		TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance()
+				.createRegistry();
+		
+		TimeZone timeZone = registry.getTimeZone(normalTimeZone.getID());
+
+		DateTime start = new DateTime(startDate);
+		start.setTimeZone(timeZone);
+		DateTime end = new DateTime(endDate);
+		end.setTimeZone(timeZone);
+		
+		VEvent meeting = new VEvent(start, end, name);
+
+		meeting.getProperties().add(new Description(description));
+		meeting.getProperties().add(new Sequence(0));
+		meeting.getProperties().add(new Location(""));
+		meeting.getProperties().add(Transp.OPAQUE);
+
+		// generate unique identifier (if not submitted)
+		Uid ui = null;
+		if (uid == null || uid.length() < 1) {
+			ui = new UidGenerator("uidGen").generateUid();
+			log.debug("Generating Meeting UID : " + ui.getValue());
+		} else {
+			ui = new Uid(uid);
+			log.debug("Using Meeting UID : " + ui.getValue());
+		}
+
+		meeting.getProperties().add(ui);
+
+		for (int i = 0; i < attendees.size(); i++) {
+			HashMap<String, String> oneAtt = attendees.get(i);
+
+			Attendee uno = new Attendee(URI.create(oneAtt.get("uri")));
+
+			String chair = oneAtt.get("chair");
+
+			if (chair.equals("0"))
+				uno.getParameters().add(Role.REQ_PARTICIPANT);
+			else
+				uno.getParameters().add(Role.CHAIR);
+
+			uno.getParameters().add(new Cn(oneAtt.get("cn")));
+			meeting.getProperties().add(uno);
+		}
+
+		Organizer orger = new Organizer(URI.create(organizer.get("uri")));
+		orger.getParameters().add(new Cn(organizer.get("cn")));
+
+		meeting.getProperties().add(orger);
+
+		icsCalendar.getComponents().add(timeZone.getVTimeZone());
+		icsCalendar.getComponents().add(meeting);
+
+		return ui.getValue();
+
+	}
+
+	// ---------------------------------------------------------------------------------------
+
+	/**
+	 * Use this function to build a valid record for the AttendeeList for
+	 * addMeetings Generate a Attendee
+	 */
+	// ------------------------------------------------------------------------------------------
+	public HashMap<String, String> getAttendeeData(String emailAdress,
+			String displayName, Boolean chair) {
+
+		HashMap<String, String> oneRecord = new HashMap<String, String>();
+		oneRecord.put("uri", "mailto:" + emailAdress);
+		oneRecord.put("cn", displayName);
+
+		if (chair)
+			oneRecord.put("chair", "1");
+		else
+			oneRecord.put("chair", "0");
+
+		return oneRecord;
+
+	}
+
+	// ------------------------------------------------------------------------------------------
+
+	/**
+	 * Write iCal to File
+	 */
+	// ------------------------------------------------------------------------------------------
+	public void writeDataToFile(String filerPath) throws Exception {
+
+		if (!filerPath.endsWith(".ics"))
+			filerPath = filerPath + ".ics";
+
+		FileOutputStream fout = new FileOutputStream(filerPath);
+
+		CalendarOutputter outputter = new CalendarOutputter();
+		outputter.output(icsCalendar, fout);
+
+	}
+
+	// ------------------------------------------------------------------------------------------
+
+	/**
+	 * Get IcalBody as ByteArray
+	 */
+	// ------------------------------------------------------------------------------------------
+	public byte[] getIcalAsByteArray() throws Exception {
+
+		ByteArrayOutputStream bout = new ByteArrayOutputStream();
+		CalendarOutputter outputter = new CalendarOutputter();
+		outputter.output(icsCalendar, bout);
+		return bout.toByteArray();
+
+	}
+
+	// ------------------------------------------------------------------------------------------
+
+	/**
+	 * Retrieving Data as String
+	 */
+	// ------------------------------------------------------------------------------------------
+	public String getICalDataAsString() {
+		return icsCalendar.toString();
+	}
+	// ------------------------------------------------------------------------------------------
+
+}
diff --git a/src/util/java/org/apache/openmeetings/util/mail/MailUtil.java b/src/util/java/org/apache/openmeetings/util/mail/MailUtil.java
new file mode 100644
index 0000000..f54fe9d
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/mail/MailUtil.java
@@ -0,0 +1,32 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.util.mail;

+

+import java.util.regex.Pattern;

+

+public class MailUtil {

+	

+	private static final Pattern rfc2822 = Pattern.compile(

+	        "^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"

+	);

+	

+	public static boolean matches(String email) {

+		return rfc2822.matcher(email).matches();

+	}

+}

diff --git a/src/util/java/org/apache/openmeetings/util/mail/SmtpAuthenticator.java b/src/util/java/org/apache/openmeetings/util/mail/SmtpAuthenticator.java
new file mode 100644
index 0000000..7047f74
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/mail/SmtpAuthenticator.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util.mail;
+
+import javax.mail.Authenticator;
+import javax.mail.PasswordAuthentication;
+
+/**
+ * 
+ * @author swagner
+ * 
+ */
+public class SmtpAuthenticator extends Authenticator {
+
+	private final String username;
+	private final String password;
+
+	public SmtpAuthenticator(String emailUsername, String emailUserpass) {
+		this.username = emailUsername;
+		this.password = emailUserpass;
+	}
+
+	@Override
+	public PasswordAuthentication getPasswordAuthentication() {
+
+		return new PasswordAuthentication(username, password);
+	}
+
+}
diff --git a/src/util/java/org/apache/openmeetings/util/process/ConverterProcessResult.java b/src/util/java/org/apache/openmeetings/util/process/ConverterProcessResult.java
new file mode 100644
index 0000000..24af7a1
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/process/ConverterProcessResult.java
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util.process;
+
+/**
+ * Object created by each conversion step, each conversion step that invokes and
+ * external tool like ImageMagick is one single ConverterProcessMessage
+ * 
+ * if exitValue equals "-1" then there was an issue.
+ * 
+ * @author sebawagner
+ *
+ */
+public class ConverterProcessResult {
+	private String process;
+	private String command;
+	private String exception;
+	private String error;
+	private String exitValue;
+	private String out;
+
+	public ConverterProcessResult() {
+		this(null, null, null);
+	}
+
+	public ConverterProcessResult(String error) {
+		this(null, error, null);
+	}
+
+	public ConverterProcessResult(String process, String error, Exception ex) {
+		setProcess(process);
+		setException(ex == null ? null : ex.toString());
+		setError(error);
+		setExitValue("-1");
+	}
+
+	public String getOut() {
+		return out;
+	}
+
+	public void setOut(String out) {
+		this.out = out;
+	}
+
+	public String getCommand() {
+		return command;
+	}
+
+	public void setCommand(String command) {
+		this.command = command;
+	}
+
+	public String getProcess() {
+		return process;
+	}
+
+	public void setProcess(String process) {
+		this.process = process;
+	}
+
+	public String getException() {
+		return exception;
+	}
+
+	public void setException(String exception) {
+		this.exception = exception;
+	}
+
+	public String getError() {
+		return error;
+	}
+
+	public void setError(String error) {
+		this.error = error;
+	}
+
+	public String getExitValue() {
+		return exitValue;
+	}
+
+	public void setExitValue(String exitValue) {
+		this.exitValue = exitValue;
+	}
+
+	public String buildLogMessage() {
+		StringBuilder strBuilder = new StringBuilder();
+		strBuilder.append("process: ").append(getProcess()).append("\r\n");
+		strBuilder.append("command: ").append(getCommand()).append("\r\n");
+		strBuilder.append("exception: ").append(getException()).append("\r\n");
+		strBuilder.append("error: ").append(getError()).append("\r\n");
+		strBuilder.append("exitValue: ").append(getException()).append("\r\n");
+		strBuilder.append("out: ").append(getOut()).append("\r\n");
+		return strBuilder.toString();
+	}
+}
diff --git a/src/util/java/org/apache/openmeetings/util/process/ConverterProcessResultList.java b/src/util/java/org/apache/openmeetings/util/process/ConverterProcessResultList.java
new file mode 100644
index 0000000..d943d5b
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/process/ConverterProcessResultList.java
@@ -0,0 +1,143 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util.process;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import static org.red5.logging.Red5LoggerFactory.getLogger;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.slf4j.Logger;
+
+/**
+ * 
+ * Collects all results of conversion jobs
+ * 
+ * @author sebawagner
+ * 
+ */
+public class ConverterProcessResultList {
+	private static final Logger log = getLogger(ConverterProcessResultList.class, webAppRootKey);
+
+	private Map<String, ConverterProcessResult> jobslist = new HashMap<String, ConverterProcessResult>();
+
+	private Long fileExplorerItemId;
+	private String completeName;
+
+	public Long getFileExplorerItemId() {
+		return fileExplorerItemId;
+	}
+
+	public void setFileExplorerItemId(Long fileExplorerItemId) {
+		this.fileExplorerItemId = fileExplorerItemId;
+	}
+
+	public String getCompleteName() {
+		return completeName;
+	}
+
+	public void setCompleteName(String completeName) {
+		this.completeName = completeName;
+	}
+
+	public ConverterProcessResult addItem(String name,
+			ConverterProcessResult processResult) {
+		if (jobslist.containsKey(name)) {
+			log.error("Duplicate key in jobslist");
+			return null;
+		}
+		return jobslist.put(name, processResult);
+	}
+
+	/**
+	 * returns true if there was an job with exitValue "-1"
+	 * 
+	 * @return
+	 */
+	public boolean hasError() {
+		for (Entry<String, ConverterProcessResult> entry : jobslist.entrySet()) {
+			if (entry.getValue().getExitValue().equals("-1")) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * converts all job results into a human readable format
+	 * 
+	 * @return
+	 */
+	public String getLogMessage() {
+		StringBuilder logMessage = new StringBuilder();
+		for (Entry<String, ConverterProcessResult> entry : jobslist.entrySet()) {
+			logMessage.append("key: ");
+			logMessage.append(entry.getKey());
+			logMessage.append("\r\n");
+			logMessage.append(entry.getValue().buildLogMessage());
+		}
+		return logMessage.toString();
+	}
+
+	/**
+	 * Axis need Objects or array of objects, Map won't work
+	 * 
+	 * @return
+	 */
+	public FileImportError[] convertToFileImportErrors() {
+		FileImportError[] fileImportErrors = new FileImportError[jobslist
+				.size()];
+
+		int i = 0;
+		// Axis need Objects or array of objects, Map won't work
+		for (Iterator<String> iter = jobslist.keySet().iterator(); iter
+				.hasNext();) {
+
+			ConverterProcessResult returnAttribute = jobslist.get(iter
+					.next());
+
+			fileImportErrors[i] = new FileImportError();
+			fileImportErrors[i]
+					.setCommand((returnAttribute.getCommand() != null) ? returnAttribute
+							.getCommand().toString() : "");
+			fileImportErrors[i]
+					.setError((returnAttribute.getError() != null) ? returnAttribute
+							.getError().toString() : "");
+			fileImportErrors[i]
+					.setExitValue((returnAttribute.getExitValue() != null) ? Integer
+							.valueOf(returnAttribute.getExitValue().toString())
+							.intValue() : 0);
+			fileImportErrors[i]
+					.setProcess((returnAttribute.getProcess() != null) ? returnAttribute
+							.getProcess().toString() : "");
+
+			i++;
+		}
+		
+		return fileImportErrors;
+	}
+
+	public int size() {
+		return jobslist.size();
+	}
+
+}
diff --git a/src/util/java/org/apache/openmeetings/util/process/FileImportError.java b/src/util/java/org/apache/openmeetings/util/process/FileImportError.java
new file mode 100644
index 0000000..116bdc8
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/process/FileImportError.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util.process;
+
+public class FileImportError {
+	
+	private int exitValue = 0;
+	private String error = "";
+	private String process = "";
+	private String command = "";
+	
+	public int getExitValue() {
+		return exitValue;
+	}
+	public void setExitValue(int exitValue) {
+		this.exitValue = exitValue;
+	}
+	public String getError() {
+		return error;
+	}
+	public void setError(String error) {
+		this.error = error;
+	}
+	public String getProcess() {
+		return process;
+	}
+	public void setProcess(String process) {
+		this.process = process;
+	}
+	public String getCommand() {
+		return command;
+	}
+	public void setCommand(String command) {
+		this.command = command;
+	}
+
+}
diff --git a/src/util/java/org/apache/openmeetings/util/process/ProcessHelper.java b/src/util/java/org/apache/openmeetings/util/process/ProcessHelper.java
new file mode 100644
index 0000000..7eb6fa2
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/process/ProcessHelper.java
@@ -0,0 +1,188 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.util.process;

+

+import java.io.BufferedReader;

+import java.io.IOException;

+import java.io.InputStream;

+import java.io.InputStreamReader;

+import java.io.UnsupportedEncodingException;

+import java.util.HashMap;

+import java.util.Map;

+import java.util.concurrent.TimeoutException;

+

+import org.apache.openmeetings.util.OpenmeetingsVariables;

+import org.red5.logging.Red5LoggerFactory;

+import org.slf4j.Logger;

+

+public class ProcessHelper {

+	public static final Logger log = Red5LoggerFactory.getLogger(ProcessHelper.class, OpenmeetingsVariables.webAppRootKey);

+

+	private static class Worker extends Thread {

+		private final Process process;

+		private Integer exitCode;

+	

+		private Worker(Process process) {

+			this.process = process;

+		}

+	

+		@Override

+		public void run() {

+			try {

+				exitCode = process.waitFor();

+			} catch (InterruptedException ignore) {

+				return;

+			}

+		}

+	}

+

+	private static class StreamWatcher extends Thread {

+		public StringBuilder output;

+		private final InputStream is;

+		private final BufferedReader br;

+	

+		private StreamWatcher(Process process, boolean isError) throws UnsupportedEncodingException {

+			output = new StringBuilder();

+			is = isError ? process.getErrorStream() : process.getInputStream();

+			br = new BufferedReader(new InputStreamReader(is, "UTF-8"));

+		}

+	

+		@Override

+		public void run() {

+			try {

+				String line = br.readLine();

+				while (line != null) {

+					output.append(line).append('\n');

+					line = br.readLine();

+				}

+			} catch (IOException ioexception) {

+				return;

+			}

+		}

+	}

+

+	public static ConverterProcessResult executeScriptWindows(String process, String[] argv) {

+		try {

+			String[] cmd = new String[argv.length + 2];

+			cmd[0] = "cmd.exe";

+			cmd[1] = "/C";

+			System.arraycopy(argv, 0, cmd, 2, argv.length);

+			Map<String, String> env = new HashMap<String, String>();

+			return executeScript(process, cmd, env);

+		} catch (Exception t) {

+			log.error("executeScriptWindows", t);

+			return new ConverterProcessResult(process, t.getMessage(), t);

+		}

+	}

+	

+	private static String getCommand(String[] argv) {

+		String tString = "";

+		for (int i = 0; i < argv.length; i++) {

+			tString += argv[i] + " ";

+		}

+		return tString;

+	}

+	

+	private static void debugCommand(String desc, String[] argv) {

+		if (log.isDebugEnabled()) {

+			log.debug("START " + desc + " ################# ");

+			log.debug(getCommand(argv));

+			log.debug("END " + desc + " ################# ");

+		}

+	}

+	

+	public static ConverterProcessResult executeScript(String process, String[] argv) {

+		Map<String, String> env = new HashMap<String, String>();

+		return executeScript(process, argv, env);

+	}

+	

+	public static ConverterProcessResult executeScript(String process, String[] argv, Map<? extends String, ? extends String> env) {

+		ConverterProcessResult returnMap = new ConverterProcessResult();

+		returnMap.setProcess(process);

+		debugCommand(process, argv);

+	

+		try {

+			returnMap.setCommand(getCommand(argv));

+			returnMap.setOut("");

+	

+			// By using the process Builder we have access to modify the

+			// environment variables

+			// that is handy to set variables to run it inside eclipse

+			ProcessBuilder pb = new ProcessBuilder(argv);

+			pb.environment().putAll(env);

+	

+			Process proc = pb.start();

+	

+			// 20-minute timeout for command execution

+			// FFMPEG conversion of Recordings may take a real long time until

+			// its finished

+			long timeout = 60000 * 20;

+	

+			StreamWatcher errorWatcher = new StreamWatcher(proc, true);

+			Worker worker = new Worker(proc);

+			StreamWatcher inputWatcher = new StreamWatcher(proc, false);

+			errorWatcher.start();

+			inputWatcher.start();

+			worker.start();

+			

+			try {

+				worker.join(timeout);

+				if (worker.exitCode != null) {

+					returnMap.setExitValue("" + worker.exitCode);

+					log.debug("exitVal: " + worker.exitCode);

+					returnMap.setError(errorWatcher.output.toString());

+				} else {

+					returnMap.setException("timeOut");

+					returnMap.setError(errorWatcher.output.toString());

+					returnMap.setExitValue("-1");

+	

+					throw new TimeoutException();

+				}

+			} catch (InterruptedException ex) {

+				worker.interrupt();

+				errorWatcher.interrupt();

+				inputWatcher.interrupt();

+				Thread.currentThread().interrupt();

+	

+				returnMap.setError(ex.getMessage());

+				returnMap.setExitValue("-1");

+	

+				throw ex;

+			} finally {

+				proc.destroy();

+			}

+			

+		} catch (TimeoutException e) {

+			// Timeout exception is processed above

+			log.error("executeScript",e);

+			returnMap.setError(e.getMessage());

+			returnMap.setException(e.toString());

+			returnMap.setExitValue("-1");

+		} catch (Throwable t) {

+			// Any other exception is shown in debug window

+			log.error("executeScript",t);

+			returnMap.setError(t.getMessage());

+			returnMap.setException(t.toString());

+			returnMap.setExitValue("-1");

+		}

+		

+		return returnMap;

+	}

+

+}

diff --git a/src/util/java/org/apache/openmeetings/util/process/UploadCompleteMessage.java b/src/util/java/org/apache/openmeetings/util/process/UploadCompleteMessage.java
new file mode 100644
index 0000000..4eed547
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/process/UploadCompleteMessage.java
@@ -0,0 +1,161 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util.process;
+
+/**
+ * Helper bean that is send to client(s) once the servlet has completed the
+ * upload
+ * 
+ * @author sebawagner
+ * 
+ */
+public class UploadCompleteMessage {
+	private Long userId;
+	private String message;
+	private String action;
+	private String error;
+	private boolean hasError = false;
+	private String fileName;
+
+	// Properties from the file explorerItem
+	private String fileSystemName;
+	private Boolean isPresentation = false;
+	private Boolean isImage = false;
+	private Boolean isVideo = false;
+	private String fileHash;
+
+	public UploadCompleteMessage() {
+	}
+
+	public UploadCompleteMessage(Long userId, String message, String action,
+			String error, String fileName) {
+		super();
+		this.userId = userId;
+		this.message = message;
+		this.action = action;
+		this.error = error;
+		this.fileName = fileName;
+	}
+
+	public UploadCompleteMessage(Long userId, String message, String action,
+			String error, boolean hasError, String fileName,
+			String fileSystemName, boolean isPresentation, boolean isImage,
+			boolean isVideo, String fileHash) {
+		super();
+		this.userId = userId;
+		this.message = message;
+		this.action = action;
+		this.error = error;
+		this.hasError = hasError;
+		this.fileName = fileName;
+		this.fileSystemName = fileSystemName;
+		this.isPresentation = isPresentation;
+		this.isImage = isImage;
+		this.isVideo = isVideo;
+		this.fileHash = fileHash;
+	}
+
+	public Long getUserId() {
+		return userId;
+	}
+
+	public void setUserId(Long userId) {
+		this.userId = userId;
+	}
+
+	public String getMessage() {
+		return message;
+	}
+
+	public void setMessage(String message) {
+		this.message = message;
+	}
+
+	public String getAction() {
+		return action;
+	}
+
+	public void setAction(String action) {
+		this.action = action;
+	}
+
+	public String getError() {
+		return error;
+	}
+
+	public void setError(String error) {
+		this.error = error;
+	}
+
+	public String getFileName() {
+		return fileName;
+	}
+
+	public void setFileName(String fileName) {
+		this.fileName = fileName;
+	}
+
+	public boolean isHasError() {
+		return hasError;
+	}
+
+	public void setHasError(boolean hasError) {
+		this.hasError = hasError;
+	}
+
+	public String getFileSystemName() {
+		return fileSystemName;
+	}
+
+	public void setFileSystemName(String fileSystemName) {
+		this.fileSystemName = fileSystemName;
+	}
+
+	public Boolean getIsPresentation() {
+		return isPresentation;
+	}
+
+	public void setIsPresentation(Boolean isPresentation) {
+		this.isPresentation = isPresentation;
+	}
+
+	public Boolean getIsImage() {
+		return isImage;
+	}
+
+	public void setIsImage(Boolean isImage) {
+		this.isImage = isImage;
+	}
+
+	public Boolean getIsVideo() {
+		return isVideo;
+	}
+
+	public void setIsVideo(Boolean isVideo) {
+		this.isVideo = isVideo;
+	}
+
+	public String getFileHash() {
+		return fileHash;
+	}
+
+	public void setFileHash(String fileHash) {
+		this.fileHash = fileHash;
+	}
+}
diff --git a/src/util/java/org/apache/openmeetings/util/stringhandlers/ChatString.java b/src/util/java/org/apache/openmeetings/util/stringhandlers/ChatString.java
new file mode 100644
index 0000000..13a4be0
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/stringhandlers/ChatString.java
@@ -0,0 +1,238 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util.stringhandlers;
+
+import java.text.CharacterIterator;
+import java.text.StringCharacterIterator;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.wicket.util.string.Strings;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class ChatString {
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			ChatString.class, OpenmeetingsVariables.webAppRootKey);
+
+	private static String htmlToText(String source) {
+		String result = source;
+		result = Strings.replaceAll(result, "<", "&lt;").toString();
+		result = Strings.replaceAll(result, ">", "&gt;").toString();
+		return result;
+	}
+	
+	public static LinkedList<String[]> parseChatString(String message, LinkedList<LinkedList<String>> emotFiles, boolean allowHTML) {
+		try {
+			LinkedList<String[]> list = new LinkedList<String[]>();
+
+			// log.debug("this.link(message) "+this.link(message));
+
+			if (!allowHTML)
+				message = htmlToText(message);
+			
+			String[] messageStr = { "text", message };
+			list.add(messageStr);
+
+			for (LinkedList<String> emot : emotFiles) {
+				// log.error("CHECK EMOT: "+ emot.get(0) + emot.get(1) +
+				// emot.size());
+				list = splitStr(list, emot.get(0), emot.get(1),
+						emot.get(emot.size() - 2));
+
+				if (emot.size() > 4) {
+					// log.error("CHECK EMOT ASIAN: "+ emot.get(0) + emot.get(2)
+					// + emot.size());
+					list = splitStr(list, emot.get(0), emot.get(2),
+							emot.get(emot.size() - 2));
+				}
+			}
+
+			// log.debug("#########  ");
+			// for (Iterator<String[]> iter = list.iterator();iter.hasNext();){
+			// String[] stringArray = iter.next();
+			// //stringArray[1] = this.link(stringArray[1]);
+			// log.debug(stringArray[0]+"||"+stringArray[1]);
+			// }
+
+			return list;
+
+		} catch (Exception err) {
+			log.error("[parseChatString]", err);
+		}
+		return null;
+	}
+
+	private static LinkedList<String[]> splitStr(LinkedList<String[]> list,
+			String image, String regexp, String spaces) {
+
+		LinkedList<String[]> newList = new LinkedList<String[]>();
+
+		for (Iterator<String[]> iter = list.iterator(); iter.hasNext();) {
+
+			String[] messageObj = iter.next();
+			String messageTye = messageObj[0];
+
+			if (messageTye.equals("text")) {
+				String messageStr = messageObj[1];
+
+				String[] newStr = messageStr.split(regexp);
+
+				for (int k = 0; k < newStr.length; k++) {
+					String[] textA = { "text", newStr[k] };
+					newList.add(textA);
+					if (k + 1 != newStr.length) {
+						String[] imageA = { "image", image, spaces,
+								regexp.replace("\\", "") };
+						newList.add(imageA);
+					}
+				}
+			} else {
+
+				newList.add(messageObj);
+			}
+
+		}
+
+		return newList;
+	}
+
+	public static LinkedList<LinkedList<String>> replaceAllRegExp(LinkedList<LinkedList<String>> emotFiles) {
+		LinkedList<LinkedList<String>> emotfilesListNew = new LinkedList<LinkedList<String>>();
+		try {
+			for (LinkedList<String> emot : emotFiles) {
+				// log.error("FILE: "+emot.get(0));
+				String westernMeaning = checkforRegex(emot.get(1));
+				emot.set(1, westernMeaning);
+				// log.error("westernMeaning "+westernMeaning);
+				if (emot.size() > 2) {
+					String asianMeaning = checkforRegex(emot.get(2));
+					emot.set(2, asianMeaning);
+					// log.error("westernMeaning "+asianMeaning);
+				}
+				emotfilesListNew.add(emot);
+			}
+		} catch (Exception err) {
+			log.error("[replaceAllRegExp]", err);
+		}
+		return emotfilesListNew;
+	}
+
+	/**
+	 * Replace characters having special meaning in regular expressions
+	 * 
+	 */
+	private static String checkforRegex(String aRegexFragment) {
+		final StringBuilder result = new StringBuilder();
+
+		final StringCharacterIterator iterator = new StringCharacterIterator(
+				aRegexFragment);
+		char character = iterator.current();
+		while (character != CharacterIterator.DONE) {
+			/*
+			 * All literals need to have backslashes doubled.
+			 */
+			if (character == '.') {
+				result.append("\\.");
+			} else if (character == '\\') {
+				result.append("\\\\");
+			} else if (character == '?') {
+				result.append("\\?");
+			} else if (character == '*') {
+				result.append("\\*");
+			} else if (character == '+') {
+				result.append("\\+");
+			} else if (character == '&') {
+				result.append("\\&");
+			} else if (character == ':') {
+				result.append("\\:");
+			} else if (character == '{') {
+				result.append("\\{");
+			} else if (character == '}') {
+				result.append("\\}");
+			} else if (character == '[') {
+				result.append("\\[");
+			} else if (character == ']') {
+				result.append("\\]");
+			} else if (character == '(') {
+				result.append("\\(");
+			} else if (character == ')') {
+				result.append("\\)");
+			} else if (character == '^') {
+				result.append("\\^");
+			} else if (character == '$') {
+				result.append("\\$");
+			} else if (character == '|') {
+				result.append("\\|");
+			} else {
+				// the char is not a special one
+				// add it to the result as is
+				result.append(character);
+			}
+			character = iterator.next();
+		}
+		return result.toString();
+	}
+
+	public static String link(String input) {
+		try {
+
+			String tReturn = "";
+
+			String parts[] = input.split(" ");
+
+			for (int t = 0; t < parts.length; t++) {
+
+				String text = parts[t];
+
+				// System.out.println("Part 1 "+text);
+
+				Matcher matcher = Pattern
+						.compile(
+								"(^|[ \t\r\n])((ftp|http|https|gopher|mailto|news|nntp|telnet|wais|file|prospero|aim|webcal):(([A-Za-z0-9$_.+!*(),;/?:@&~=-])|%[A-Fa-f0-9]{2}){2,}(#([a-zA-Z0-9][a-zA-Z0-9$_.+!*(),;/?:@&~=%-]*))?([A-Za-z0-9$_+!*();/?:~-]))")
+						.matcher(text);
+
+				if (matcher.find()) {
+					text = matcher
+							.replaceFirst("<u><FONT color=\"#0000CC\"><a href='"
+									+ text + "'>" + text + "</a></FONT></u>");
+
+				}
+
+				// System.out.println("Part 2 "+text);
+
+				if (t != 0) {
+					tReturn += " ";
+				}
+
+				tReturn += text;
+
+			}
+
+			return tReturn;
+
+		} catch (Exception e) {
+			log.error("[link]", e);
+		}
+		return "";
+	}
+}
diff --git a/src/util/java/org/apache/openmeetings/util/stringhandlers/StringComparer.java b/src/util/java/org/apache/openmeetings/util/stringhandlers/StringComparer.java
new file mode 100644
index 0000000..8d8817f
--- /dev/null
+++ b/src/util/java/org/apache/openmeetings/util/stringhandlers/StringComparer.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.util.stringhandlers;
+
+public class StringComparer {
+	
+	private static StringComparer instance = null;
+	
+	private StringComparer() {}
+	
+	public static synchronized StringComparer getInstance(){
+		if (instance == null){
+			instance = new StringComparer();
+		}
+		return instance;
+	}
+	
+	public String compareForRealPaths(String inputString) throws Exception{
+
+		String t = "";
+		for (int i=0;i<inputString.length();i++){
+			char c = inputString.charAt(i);
+			if (compareChars(c)) {
+				t += c;
+			} else {
+				t += "_";
+			}
+			
+		}		
+		return t;
+	}
+	
+	private boolean compareChars(char inputChar){		
+		return Character.isLetterOrDigit(inputChar);
+	}
+
+}
diff --git a/src/web/java/org/apache/openmeetings/web/admin/AddUsersDialog.html b/src/web/java/org/apache/openmeetings/web/admin/AddUsersDialog.html
new file mode 100644
index 0000000..1c7a1e8
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/AddUsersDialog.html
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<html xmlns:wicket="http://wicket.apache.org">

+<wicket:head>

+	<style type="text/css">

+		.ui-autocomplete {

+			z-index: 999 !important;

+		}

+	</style>

+</wicket:head>

+<wicket:panel>

+	<form wicket:id="formUsers">

+		<table style="width: 100%">

+			<tr>

+				<td colspan="2" wicket:id="feedbackDialog"></td>

+			</tr>

+			<tr>

+				<td><wicket:ommessage key="181" /></td>

+				<td><input type="text" wicket:id="searchText" /></td>

+			</tr>

+			<tr>

+				<td style="text-align: right"><input type="button" wicket:id="search" /></td>

+			</tr>

+			<tr>

+				<td><wicket:ommessage key="183" /></td>

+				<td><select wicket:id="users" style="width: 200px; height: 300px;"></select></td>

+			</tr>

+		</table>

+	</form>

+</wicket:panel>

+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/admin/AddUsersDialog.java b/src/web/java/org/apache/openmeetings/web/admin/AddUsersDialog.java
new file mode 100644
index 0000000..d923d4a
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/AddUsersDialog.java
@@ -0,0 +1,126 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+

+package org.apache.openmeetings.web.admin;

+

+import static org.apache.openmeetings.web.admin.groups.GroupUsersPanel.getUser;

+

+import java.util.ArrayList;

+import java.util.Arrays;

+import java.util.List;

+

+import org.apache.openmeetings.db.dao.user.AdminUserDao;

+import org.apache.openmeetings.db.entity.user.User;

+import org.apache.openmeetings.web.app.Application;

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.ajax.markup.html.form.AjaxButton;

+import org.apache.wicket.markup.html.form.Form;

+import org.apache.wicket.markup.html.form.IChoiceRenderer;

+import org.apache.wicket.markup.html.form.ListMultipleChoice;

+import org.apache.wicket.markup.html.form.TextField;

+import org.apache.wicket.markup.html.panel.FeedbackPanel;

+import org.apache.wicket.model.IModel;

+import org.apache.wicket.model.Model;

+import org.apache.wicket.model.PropertyModel;

+import org.apache.wicket.model.util.ListModel;

+

+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;

+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;

+

+public class AddUsersDialog extends AbstractFormDialog<User> {

+	private static final long serialVersionUID = 1L;

+	private final Form<User> formUsers;

+	private FeedbackPanel feedbackDialog = new FeedbackPanel("feedbackDialog");

+	private final AdminCommonUserForm<?> commonForm;

+	private String userSearchText;

+	private final IModel<List<User>> listUsersModel = new ListModel<User>(new ArrayList<User>());

+	private final IModel<List<User>> selectedUsersModel = new ListModel<User>(new ArrayList<User>());

+	private final ListMultipleChoice<User> users = new ListMultipleChoice<User>("users"

+			, selectedUsersModel

+			, listUsersModel

+			, new IChoiceRenderer<User>() {

+		private static final long serialVersionUID = 1L;

+

+		public Object getDisplayValue(User object) {

+			return getUser(object);

+		}

+

+		public String getIdValue(User object, int index) {

+			return "" + object.getUser_id();

+		}

+	});

+	private final DialogButton send = new DialogButton(WebSession.getString(175));

+	private final DialogButton cancel = new DialogButton(WebSession.getString(219));

+

+	public AddUsersDialog(String id, String title, AdminCommonUserForm<?> commonForm, final boolean excludeContacts) {

+		super(id, title, true);

+		formUsers = new Form<User>("formUsers", getModel());

+		this.commonForm = commonForm;

+		formUsers.add(feedbackDialog.setOutputMarkupId(true));

+

+		formUsers.add(new TextField<String>("searchText", new PropertyModel<String>(AddUsersDialog.this, "userSearchText")));

+		formUsers.add(new AjaxButton("search", Model.of(WebSession.getString(182L))) {

+			private static final long serialVersionUID = -4752180617634945030L;

+

+			protected void onAfterSubmit(AjaxRequestTarget target, Form<?> form) {

+				listUsersModel.getObject().clear();

+				selectedUsersModel.getObject().clear();

+				listUsersModel.getObject().addAll(Application.getBean(AdminUserDao.class).get(userSearchText, excludeContacts));

+				target.add(users);

+			}

+		});

+		formUsers.add(users.setOutputMarkupId(true));

+		add(formUsers.setOutputMarkupId(true));

+	}

+	

+	@Override

+	protected void onOpen(AjaxRequestTarget target) {

+		listUsersModel.getObject().clear();

+		selectedUsersModel.getObject().clear();

+		target.add(users);

+		super.onOpen(target);

+	}

+	

+	@Override

+	protected List<DialogButton> getButtons() {

+		return Arrays.asList(send, cancel);

+	}

+	

+	@Override

+	protected DialogButton getSubmitButton() {

+		return send;

+	}

+

+	@Override

+	public Form<?> getForm() {

+		return formUsers;

+	}

+

+	@Override

+	protected void onError(AjaxRequestTarget target) {

+		target.add(feedbackDialog);

+		

+	}

+

+	@Override

+	protected void onSubmit(AjaxRequestTarget target) {

+		commonForm.submitView(target, selectedUsersModel.getObject());

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/admin/AdminBaseForm.java b/src/web/java/org/apache/openmeetings/web/admin/AdminBaseForm.java
new file mode 100644
index 0000000..25837fe
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/AdminBaseForm.java
@@ -0,0 +1,167 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.admin;

+

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.markup.html.form.Form;

+import org.apache.wicket.model.IModel;

+

+/**

+ * provides basic functionality to insert, update, remove, refresh record in

+ * admin section

+ * 

+ * @author swagner

+ * 

+ * @param <T>

+ */

+public abstract class AdminBaseForm<T> extends Form<T> {

+	private static final long serialVersionUID = 1L;

+	private AdminSavePanel<T> savePanel;

+

+	public AdminBaseForm(String id, IModel<T> object) {

+		super(id, object);

+		

+		savePanel = new AdminSavePanel<T>("buttons", this) {

+			private static final long serialVersionUID = -5833647470067891270L;

+

+			@Override

+			protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {

+				AdminBaseForm.this.onSaveSubmit(target, form);

+			}

+

+			@Override

+			protected void onSaveError(AjaxRequestTarget target, Form<?> form) {

+				AdminBaseForm.this.onSaveError(target, form);

+			}

+

+			@Override

+			protected void onNewSubmit(AjaxRequestTarget target, Form<?> form) {

+				AdminBaseForm.this.onNewSubmit(target, form);

+			}

+

+			@Override

+			protected void onNewError(AjaxRequestTarget target, Form<?> form) {

+				AdminBaseForm.this.onNewError(target, form);

+			}

+

+			@Override

+			protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) {

+				AdminBaseForm.this.onRefreshSubmit(target, form);

+			}

+

+			@Override

+			protected void onRefreshError(AjaxRequestTarget target, Form<?> form) {

+				AdminBaseForm.this.onRefreshError(target, form);

+			}

+

+			@Override

+			protected void onDeleteSubmit(AjaxRequestTarget target, Form<?> form) {

+				AdminBaseForm.this.onDeleteSubmit(target, form);

+			}

+

+			@Override

+			protected void onDeleteError(AjaxRequestTarget target, Form<?> form) {

+				AdminBaseForm.this.onDeleteError(target, form);

+			}

+			

+		};

+		add(savePanel);

+

+

+	}

+

+	/**

+	 * @see AdminBaseForm#hideNewRecord()

+	 */

+	public void hideNewRecord() {

+		savePanel.hideNewRecord();

+	}

+	

+	/**

+	 * @see AdminBaseForm#showNewRecord()

+	 */

+	public void showNewRecord() {

+		savePanel.showNewRecord();

+	}

+

+	/**

+	 * invoked when user press save button

+	 * 

+	 * @param target

+	 * @param form

+	 */

+	protected abstract void onSaveSubmit(AjaxRequestTarget target, Form<?> form);

+	

+	/**

+	 * invoked when save has error

+	 * 

+	 * @param target

+	 * @param form

+	 */

+	protected abstract void onSaveError(AjaxRequestTarget target, Form<?> form);

+	

+	/**

+	 * invoked when new button is pressed

+	 * 

+	 * @param target

+	 * @param form

+	 */

+	protected abstract void onNewSubmit(AjaxRequestTarget target, Form<?> form);

+	

+	/**

+	 * invoked if new has error

+	 * 

+	 * @param target

+	 * @param form

+	 */

+	protected abstract void onNewError(AjaxRequestTarget target, Form<?> form);

+	

+	/**

+	 * invoked when refresh button is pressed

+	 * 

+	 * @param target

+	 * @param form

+	 */

+	protected abstract void onRefreshSubmit(AjaxRequestTarget target, Form<?> form);

+	

+	/**

+	 * invoked when refresh has error

+	 * 

+	 * @param target

+	 * @param form

+	 */

+	protected abstract void onRefreshError(AjaxRequestTarget target, Form<?> form);

+	

+	/**

+	 * invoked when delete button is pressed

+	 * 

+	 * @param target

+	 * @param form

+	 */

+	protected abstract void onDeleteSubmit(AjaxRequestTarget target, Form<?> form);

+	

+	/**

+	 * invoked when delete has error

+	 * 

+	 * @param target

+	 * @param form

+	 */

+	protected abstract void onDeleteError(AjaxRequestTarget target, Form<?> form);

+	

+}

diff --git a/src/web/java/org/apache/openmeetings/web/admin/AdminCommonUserForm.java b/src/web/java/org/apache/openmeetings/web/admin/AdminCommonUserForm.java
new file mode 100644
index 0000000..ca52d7e
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/AdminCommonUserForm.java
@@ -0,0 +1,40 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+

+package org.apache.openmeetings.web.admin;

+

+import java.util.List;

+

+import org.apache.openmeetings.db.entity.user.User;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.model.IModel;

+

+public abstract class AdminCommonUserForm<T> extends AdminBaseForm<T> {

+	private static final long serialVersionUID = -827309847606809118L;

+

+	@SuppressWarnings("unchecked")

+	public AdminCommonUserForm(String id, IModel<?> object) {

+		super(id, (IModel<T>) object);

+	}

+	

+	public abstract void updateView(AjaxRequestTarget target);

+

+	public abstract void submitView(AjaxRequestTarget target, List<User> usersToAdd);

+

+}

diff --git a/src/web/java/org/apache/openmeetings/web/admin/AdminPanel.java b/src/web/java/org/apache/openmeetings/web/admin/AdminPanel.java
new file mode 100644
index 0000000..f37b1d2
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/AdminPanel.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.admin;
+
+import org.apache.openmeetings.web.common.BasePanel;
+import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
+
+@AuthorizeInstantiation("ADMIN")
+public abstract class AdminPanel extends BasePanel {
+	private static final long serialVersionUID = 6811243474361803279L;
+
+	public AdminPanel(String id) {
+		super(id);
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/admin/AdminSavePanel.html b/src/web/java/org/apache/openmeetings/web/admin/AdminSavePanel.html
new file mode 100644
index 0000000..1514f22
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/AdminSavePanel.html
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+	<wicket:extend>
+		<div class="formNewButton">
+			<input type="submit" value="" wicket:id="ajax-new-button" wicket:ommessage="title:155" />
+		</div>
+		<div class="formCancelButton">
+			<input type="submit" value="" wicket:id="ajax-cancel-button" wicket:ommessage="title:157" />
+		</div>
+		<span wicket:id="newRecord"></span>
+	</wicket:extend>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/admin/AdminSavePanel.java b/src/web/java/org/apache/openmeetings/web/admin/AdminSavePanel.java
new file mode 100644
index 0000000..8533034
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/AdminSavePanel.java
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.admin;
+
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.common.ConfirmCallListener;
+import org.apache.openmeetings.web.common.FormSaveRefreshPanel;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.model.Model;
+
+public abstract class AdminSavePanel<T> extends FormSaveRefreshPanel<T> {
+	private static final long serialVersionUID = -8916631148087019924L;
+	private Label newRecord;
+	
+	public AdminSavePanel(String id, final Form<T> form) {
+		super(id, form);
+		
+		newRecord = new Label("newRecord", Model.of(WebSession.getString(344L)));
+		add(newRecord.setVisible(false).setOutputMarkupId(true));
+		
+		// add a new button that can be used to submit the form via ajax
+		add(new AjaxButton("ajax-new-button", form) {
+			private static final long serialVersionUID = 839803820502260006L;
+
+			@Override
+			protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
+				// repaint the feedback panel so that it is hidden
+				target.add(feedback);
+				newRecord.setVisible(true);
+				target.add(newRecord);
+				onNewSubmit(target, form);
+			}
+
+			@Override
+			protected void onError(AjaxRequestTarget target, Form<?> form) {
+				// repaint the feedback panel so errors are shown
+				target.add(feedback);
+				onNewError(target, form);
+			}
+		});
+
+		// add a cancel button that can be used to submit the form via ajax
+		add(new AjaxButton("ajax-cancel-button", form) {
+			private static final long serialVersionUID = 839803820502260006L;
+
+			@Override
+			protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
+				super.updateAjaxAttributes(attributes);
+				attributes.getAjaxCallListeners().add(new ConfirmCallListener(833L));
+			}
+			
+			@Override
+			protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
+				// repaint the feedback panel so that it is hidden
+				target.add(feedback);
+				hideNewRecord();
+				onDeleteSubmit(target, form);
+			}
+
+			@Override
+			protected void onError(AjaxRequestTarget target, Form<?> form) {
+				// repaint the feedback panel so errors are shown
+				target.add(feedback);
+				hideNewRecord();
+				onDeleteError(target, form);
+			}
+		});
+	}
+	
+	/**
+	 * Hide the new record text
+	 */
+	public void hideNewRecord() {
+		newRecord.setVisible(false);
+	}
+	
+	/**
+	 * Hide the new record text
+	 */
+	public void showNewRecord() {
+		newRecord.setVisible(true);
+	}
+
+	protected abstract void onNewSubmit(AjaxRequestTarget target, Form<?> form);
+	protected abstract void onNewError(AjaxRequestTarget target, Form<?> form);
+
+	protected abstract void onDeleteSubmit(AjaxRequestTarget target, Form<?> form);
+	protected abstract void onDeleteError(AjaxRequestTarget target, Form<?> form);
+}
diff --git a/src/web/java/org/apache/openmeetings/web/admin/SearchableDataView.java b/src/web/java/org/apache/openmeetings/web/admin/SearchableDataView.java
new file mode 100644
index 0000000..63a77c2
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/SearchableDataView.java
@@ -0,0 +1,45 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.admin;

+

+import org.apache.openmeetings.db.entity.IDataProviderEntity;

+import org.apache.openmeetings.web.data.SearchableDataProvider;

+import org.apache.wicket.markup.repeater.data.DataView;

+

+/**

+ * Provides {@link SearchableDataProvider}

+ * 

+ * @author swagner

+ * 

+ * @param <T>

+ */

+public abstract class SearchableDataView<T extends IDataProviderEntity> extends DataView<T> {

+	private static final long serialVersionUID = -6251644410385789409L;

+	private SearchableDataProvider<T> dp;

+	

+	public SearchableDataView(String id, SearchableDataProvider<T> dp) {

+		super(id, dp);

+		this.dp = dp;

+	}

+	

+	@Override

+	public SearchableDataProvider<T> getDataProvider() {

+		return dp;

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/admin/backup/BackupPanel.html b/src/web/java/org/apache/openmeetings/web/admin/backup/BackupPanel.html
new file mode 100644
index 0000000..441aca0
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/backup/BackupPanel.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+	<wicket:panel>
+		<div>
+	        <span wicket:id="uploadFeedback"/>
+	     </div>
+		<!-- wicket:id="form"  -->
+		<form wicket:id="backupUpload" class="adminForm adminBackupForm">
+			<fieldset class="ui-widget-content">
+				<legend class="ui-widget-header"><wicket:ommessage key="1066" /></legend>
+				<div class="formelement">
+				    <div class="info-text"><wicket:ommessage key="1065" /></div>
+	            </div>
+	            <div class="formelement">
+                   <label><wicket:ommessage key="1537" /></label> <input type="checkbox" wicket:id="includeFilesInBackup" />
+	            </div>
+	            <div class="formelement">
+	               <span wicket:id="progress">[[upload progressbar]]</span>
+	            </div>
+	            <div class="formelement">
+		            <!-- Perform Download -->
+					<div wicket:id="download" class="ui-button ui-widget ui-state-default ui-corner-all">
+						<span class="btn btn-file"><wicket:ommessage key="1066"/></span>
+					</div>
+					<!-- Perform Upload -->
+					<div class="ui-button ui-widget ui-state-default ui-corner-all fileupload fileupload-new" data-provides="fileupload" style="margin: 0;">
+						<span class="btn btn-file"><wicket:ommessage key="1536"/><input class="uploadFileField" wicket:id="fileInput" type="file"/></span>
+					</div>
+	            </div>
+	            <div class="formelement">
+		            <!-- Max upload size -->
+		            <wicket:ommessage key="1491" /> <span wicket:id="MaxUploadSize" /><span>MB</span>
+	            </div>
+	            <div class="formelement">
+		            <!-- Backup CLI import information -->
+	               <div class="info-text" wicket:id="cmdLineDesc"></div>
+	            </div>
+	        </fieldset>
+		</form>
+	</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java b/src/web/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
new file mode 100644
index 0000000..fb01a30
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
@@ -0,0 +1,188 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.admin.backup;

+

+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;

+import static org.apache.openmeetings.web.app.Application.getBean;

+

+import java.io.File;

+import java.text.DecimalFormat;

+import java.util.Date;

+

+import org.apache.openmeetings.backup.BackupExport;

+import org.apache.openmeetings.backup.BackupImport;

+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;

+import org.apache.openmeetings.util.CalendarPatterns;

+import org.apache.openmeetings.util.OmFileHelper;

+import org.apache.openmeetings.web.admin.AdminPanel;

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.openmeetings.web.util.AjaxDownload;

+import org.apache.openmeetings.web.util.BootstrapFileUploadBehavior;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;

+import org.apache.wicket.ajax.markup.html.form.AjaxButton;

+import org.apache.wicket.extensions.ajax.markup.html.form.upload.UploadProgressBar;

+import org.apache.wicket.markup.html.basic.Label;

+import org.apache.wicket.markup.html.form.CheckBox;

+import org.apache.wicket.markup.html.form.Form;

+import org.apache.wicket.markup.html.form.upload.FileUpload;

+import org.apache.wicket.markup.html.form.upload.FileUploadField;

+import org.apache.wicket.markup.html.panel.FeedbackPanel;

+import org.apache.wicket.model.Model;

+import org.apache.wicket.util.lang.Bytes;

+import org.apache.wicket.util.resource.FileResourceStream;

+import org.red5.logging.Red5LoggerFactory;

+import org.slf4j.Logger;

+

+/**

+ * Panel component to manage Backup Import/Export

+ * 

+ * @author swagner

+ * 

+ */

+public class BackupPanel extends AdminPanel {

+	private static final Logger log = Red5LoggerFactory.getLogger(BackupPanel.class, webAppRootKey);

+

+	private static final long serialVersionUID = -1L;

+

+	// Create feedback panels

+	final FeedbackPanel uploadFeedback;

+

+	/**

+	 * Form to handle upload files

+	 * 

+	 * @author swagner

+	 * 

+	 */

+	private class BackupForm extends Form<Void> {

+		private static final long serialVersionUID = 1L;

+		private FileUploadField fileUploadField;

+		private Model<Boolean> includeFilesInBackup = Model.of(true);

+

+		public BackupForm(String id) {

+			super(id);

+

+			// set this form to multipart mode (allways needed for uploads!)

+			setMultiPart(true);

+

+			// set max upload size in form as info text

+			Long maxBytes = getBean(ConfigurationDao.class).getMaxUploadSize();

+			double megaBytes = maxBytes.doubleValue() / 1024 / 1024;

+			DecimalFormat formatter = new DecimalFormat("#,###.00");

+			add(new Label("MaxUploadSize", formatter.format(megaBytes)));

+

+			// Add one file input field

+			fileUploadField = new FileUploadField("fileInput");

+

+			add(new CheckBox("includeFilesInBackup", includeFilesInBackup));

+

+			// Set maximum size controlled by configuration

+			setMaxSize(Bytes.bytes(maxBytes));

+

+			// Add a component to download a file without page refresh

+			final AjaxDownload download = new AjaxDownload();

+			add(download);

+			// add an download button

+			add(new AjaxButton("download", this) {

+				private static final long serialVersionUID = 1L;

+

+				@Override

+				protected void onSubmit(AjaxRequestTarget target, Form<?> form) {

+

+					File working_dir = OmFileHelper.getUploadBackupDir();

+

+					String dateString = "backup_" + CalendarPatterns.getTimeForStreamId(new Date());

+

+					File backup_dir = new File(working_dir, dateString);

+					File backupFile = new File(backup_dir, dateString + ".zip");

+

+					try {

+						getBean(BackupExport.class).performExport(

+								backupFile,

+								backup_dir,

+								includeFilesInBackup.getObject());

+

+						download.setFileName(backupFile.getName());

+						download.setResourceStream(new FileResourceStream(backupFile));

+						download.initiate(target);

+					} catch (Exception e) {

+						log.error("Exception on panel backup download ", e);

+						uploadFeedback.error(e);

+					}

+

+					// repaint the feedback panel so that it is hidden

+					target.add(uploadFeedback);

+				}

+

+				@Override

+				protected void onError(AjaxRequestTarget target, Form<?> form) {

+					// repaint the feedback panel so errors are shown

+					target.add(uploadFeedback);

+				}

+			});

+

+			add(fileUploadField.add(new AjaxFormSubmitBehavior(this, "onchange") {

+				private static final long serialVersionUID = 1L;

+

+				@Override

+				protected void onSubmit(AjaxRequestTarget target) {

+					FileUpload upload = fileUploadField.getFileUpload();

+					try {

+						if (upload == null || upload.getInputStream() == null) {

+							uploadFeedback.error("File is empty");

+							target.add(uploadFeedback);

+							return;

+						}

+						getBean(BackupImport.class).performImport(upload.getInputStream());

+					} catch (Exception e) {

+						log.error("Exception on panel backup upload ", e);

+						uploadFeedback.error(e);

+					}

+					// repaint the feedback panel so that it is hidden

+					target.add(uploadFeedback);

+				}

+

+				@Override

+				protected void onError(AjaxRequestTarget target) {

+					// repaint the feedback panel so errors are shown

+					target.add(uploadFeedback);

+				}

+			}));

+			add(new Label("cmdLineDesc", WebSession.getString(1505)).setEscapeModelStrings(false));

+		}

+

+	}

+

+	public BackupPanel(String id) {

+		super(id);

+

+		// Create feedback panels

+		uploadFeedback = new FeedbackPanel("uploadFeedback");

+		// Set Id so that it can be replaced dynamically

+		uploadFeedback.setOutputMarkupId(true);

+		add(uploadFeedback);

+

+		BackupForm backupForm = new BackupForm("backupUpload");

+

+		backupForm.add(new UploadProgressBar("progress", backupForm, backupForm.fileUploadField));

+

+		add(backupForm);

+		add(BootstrapFileUploadBehavior.INSTANCE);

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java b/src/web/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java
new file mode 100644
index 0000000..5810c57
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java
@@ -0,0 +1,140 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.admin.configurations;

+

+import static org.apache.openmeetings.util.OpenmeetingsVariables.WEB_DATE_PATTERN;

+import static org.apache.openmeetings.web.app.Application.getBean;

+import static org.apache.wicket.datetime.markup.html.basic.DateLabel.forDatePattern;

+

+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;

+import org.apache.openmeetings.db.entity.basic.Configuration;

+import org.apache.openmeetings.web.admin.AdminBaseForm;

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.ajax.form.AjaxFormValidatingBehavior;

+import org.apache.wicket.markup.html.WebMarkupContainer;

+import org.apache.wicket.markup.html.basic.Label;

+import org.apache.wicket.markup.html.form.Form;

+import org.apache.wicket.markup.html.form.RequiredTextField;

+import org.apache.wicket.markup.html.form.TextArea;

+import org.apache.wicket.markup.html.form.TextField;

+import org.apache.wicket.model.CompoundPropertyModel;

+import org.apache.wicket.model.Model;

+import org.apache.wicket.util.time.Duration;

+import org.apache.wicket.validation.IValidatable;

+import org.apache.wicket.validation.IValidator;

+

+/**

+ * Handle {@link Configuration} items as list and form

+ * 

+ * @author swagner

+ * 

+ */

+public class ConfigForm extends AdminBaseForm<Configuration> {

+	private static final long serialVersionUID = 1L;

+	private final WebMarkupContainer listContainer;

+

+	private void refresh(AjaxRequestTarget target) {

+		target.add(this);

+		target.appendJavaScript("omConfigPanelInit();");

+	}

+	

+	public ConfigForm(String id, WebMarkupContainer listContainer, Configuration configuration) {

+		super(id, new CompoundPropertyModel<Configuration>(configuration));

+		setOutputMarkupId(true);

+		this.listContainer = listContainer;

+		add(new RequiredTextField<String>("conf_key").setLabel(Model.of(WebSession.getString(267))).add(new IValidator<String>(){

+			private static final long serialVersionUID = -3371792361118941958L;

+

+			public void validate(IValidatable<String> validatable) {

+				Configuration c = getBean(ConfigurationDao.class).forceGet(validatable.getValue());

+				if (c != null && !c.isDeleted() && !c.getConfiguration_id().equals(ConfigForm.this.getModelObject().getConfiguration_id())) {

+					error(WebSession.getString(1544L));

+				}

+			}

+		}));

+		add(new TextField<String>("conf_value").setLabel(Model.of(WebSession.getString(271))));

+		add(forDatePattern("updatetime", WEB_DATE_PATTERN));

+		add(new Label("user.login"));

+		add(new TextArea<String>("comment"));

+		

+		// attach an ajax validation behavior to all form component's keydown

+		// event and throttle it down to once per second

+		AjaxFormValidatingBehavior.addToAllFormComponents(this, "keydown", Duration.ONE_SECOND);

+	}

+	

+	@Override

+	protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {

+		ConfigurationDao cfgDao = getBean(ConfigurationDao.class);

+		Configuration c = cfgDao.forceGet(getModelObject().getConf_key());

+		if (c != null && c.isDeleted() && !c.getConfiguration_id().equals(getModelObject().getConfiguration_id())) {

+			getModelObject().setConfiguration_id(c.getConfiguration_id());

+		}

+		setModelObject(getBean(ConfigurationDao.class).update(getModelObject(), WebSession.getUserId()));

+		hideNewRecord();

+		target.add(listContainer);

+		refresh(target);

+	}

+

+	@Override

+	protected void onNewSubmit(AjaxRequestTarget target, Form<?> form) {

+		this.setModelObject(new Configuration());

+		refresh(target);

+	}

+	

+	@Override

+	protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) {

+		Configuration conf = getModelObject();

+		if (conf.getConfiguration_id() != null) {

+			conf = getBean(ConfigurationDao.class).get(conf.getConfiguration_id());

+		} else {

+			conf = new Configuration();

+		}

+		setModelObject(conf);

+		refresh(target);

+	}

+	

+	@Override

+	protected void onDeleteSubmit(AjaxRequestTarget target, Form<?> form) {

+		getBean(ConfigurationDao.class).delete(getModelObject(), WebSession.getUserId());

+		setModelObject(new Configuration());

+		target.add(listContainer);

+		refresh(target);

+	}

+

+	@Override

+	protected void onSaveError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+

+	@Override

+	protected void onNewError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+

+	@Override

+	protected void onRefreshError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+

+	@Override

+	protected void onDeleteError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.html b/src/web/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.html
new file mode 100644
index 0000000..f6b7f92
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.html
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+	<wicket:head>
+       <script type="text/javascript">
+           function omConfigPanelInit() {
+               var documentHeight = $(document).height();
+               $('#adminForm').height(documentHeight-114);
+               $('#adminTable').height(documentHeight-144);
+           }
+       </script>
+    </wicket:head>
+	<wicket:panel>	
+		<div class="adminPanel">
+			<div class="adminPanelColumnTable">
+				<span wicket:id="navigator">[dataview navigator]</span>
+				<table class="adminListTable">
+					<thead>
+						<tr>
+							<th class="three_column_layout_column1 ui-widget-header"><span wicket:id="orderById"></span><wicket:ommessage key="264" /></th>
+							<th class="three_column_layout_column2 ui-widget-header"><span wicket:id="orderByKey"></span><wicket:ommessage key="265" /></th>
+							<th class="three_column_layout_column3 ui-widget-header"><span wicket:id="orderByValue"></span><wicket:ommessage key="598" /></th>
+						</tr>	
+					</thead>
+				</table>
+				<div class="tableWrapper" id="adminTable">
+					<table class="adminListTable">
+						<tbody wicket:id="listContainer" >	
+				    		<tr wicket:id="configList">
+								<td class="three_column_layout_column1"><div class="three_column_layout_divcolumn1"><span wicket:id="configuration_id"></span></div></td>
+								<td class="three_column_layout_column2"><div class="three_column_layout_divcolumn2"><span wicket:id="conf_key"></span></div></td>
+								<td class="three_column_layout_column3"><div class="three_column_layout_divcolumn3"><span wicket:id="conf_value"></span></div></td>
+							</tr>
+						</tbody>
+					</table>
+				</div>
+			</div>
+			<div class="adminPanelColumnForm">
+				<form wicket:id="form" class="adminForm">
+					<div wicket:id="buttons"></div>
+					<div class="scrollcontent" id="adminForm">
+						<fieldset class="ui-widget-content">
+							<legend class="ui-widget-header"><wicket:ommessage key="266" /></legend>
+							<div class="formelement">
+							    <label><wicket:ommessage key="267" /></label><input type="text" wicket:id="conf_key"/>
+				            </div>
+				            <div class="formelement">
+                                   <label><wicket:ommessage key="271" /></label><input type="text" wicket:id="conf_value"/>
+				            </div>
+                               <div class="formelement">
+                                   <label><wicket:ommessage key="268" /></label><span wicket:id="updatetime"/>
+				            </div>
+                               <div class="formelement">
+                                   <label><wicket:ommessage key="269" /></label><span wicket:id="user.login"/>
+				            </div>
+                               <div class="formelement">
+                                   <label><wicket:ommessage key="270" /></label><textarea wicket:id="comment"/>
+				            </div>
+						</fieldset>
+					</div>
+				</form>
+			</div>
+		</div>
+	</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java b/src/web/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java
new file mode 100644
index 0000000..079b8cc
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java
@@ -0,0 +1,102 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.admin.configurations;

+

+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;

+import org.apache.openmeetings.db.entity.basic.Configuration;

+import org.apache.openmeetings.web.admin.AdminPanel;

+import org.apache.openmeetings.web.admin.SearchableDataView;

+import org.apache.openmeetings.web.common.PagedEntityListPanel;

+import org.apache.openmeetings.web.data.DataViewContainer;

+import org.apache.openmeetings.web.data.OmOrderByBorder;

+import org.apache.openmeetings.web.data.SearchableDataProvider;

+import org.apache.wicket.AttributeModifier;

+import org.apache.wicket.ajax.AjaxEventBehavior;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.markup.html.WebMarkupContainer;

+import org.apache.wicket.markup.html.basic.Label;

+import org.apache.wicket.markup.repeater.Item;

+

+/**

+ * add/update/delete {@link Configuration}

+ * 

+ * @author swagner

+ * 

+ */

+public class ConfigsPanel extends AdminPanel {

+	private static final long serialVersionUID = -1L;

+	private ConfigForm form;

+	private final WebMarkupContainer listContainer = new WebMarkupContainer("listContainer");

+	

+	@Override

+	public void onMenuPanelLoad(AjaxRequestTarget target) {

+		super.onMenuPanelLoad(target);

+		target.appendJavaScript("omConfigPanelInit();");

+	}

+

+	@SuppressWarnings("unchecked")

+	public ConfigsPanel(String id) {

+		super(id);

+		

+		SearchableDataView<Configuration> dataView = new SearchableDataView<Configuration>("configList"

+			, new SearchableDataProvider<Configuration>(ConfigurationDao.class)) {

+			private static final long serialVersionUID = 8715559628755439596L;

+

+			@Override

+			protected void populateItem(final Item<Configuration> item) {

+				final Configuration c = item.getModelObject();

+				item.add(new Label("configuration_id", c.getConfiguration_id()));

+				item.add(new Label("conf_key", c.getConf_key()));

+				item.add(new Label("conf_value", c.getConf_value()));

+				item.add(new AjaxEventBehavior("onclick") {

+					private static final long serialVersionUID = -8069413566800571061L;

+

+					protected void onEvent(AjaxRequestTarget target) {

+						form.hideNewRecord();

+						form.setModelObject(c);

+						target.add(form, listContainer);

+						target.appendJavaScript("omConfigPanelInit();");

+					}

+				});

+				item.add(AttributeModifier.replace("class", "clickable ui-widget-content"

+						+ (c.getConfiguration_id().equals(form.getModelObject().getConfiguration_id()) ? " ui-state-default" : "")));

+			}

+		};

+		add(listContainer.add(dataView).setOutputMarkupId(true));

+		PagedEntityListPanel navigator = new PagedEntityListPanel("navigator", dataView) {

+			private static final long serialVersionUID = 5097048616003411362L;

+

+			@Override

+			protected void onEvent(AjaxRequestTarget target) {

+				target.add(listContainer);

+			}

+		};

+		DataViewContainer<Configuration> container = new DataViewContainer<Configuration>(listContainer, dataView, navigator);

+		container.setLinks(new OmOrderByBorder<Configuration>("orderById", "configuration_id", container)

+				, new OmOrderByBorder<Configuration>("orderByKey", "conf_key", container)

+				, new OmOrderByBorder<Configuration>("orderByValue", "conf_value", container));

+		add(container.orderLinks);

+		add(navigator);

+		

+		form = new ConfigForm("form", listContainer, new Configuration());

+		form.showNewRecord();

+        add(form);

+		

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.html b/src/web/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.html
new file mode 100644
index 0000000..045f649
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.html
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>	
+	<div class="adminPanel">
+		<div class="adminPanelColumnTable">
+			<span wicket:id="navigator">[dataview navigator]</span>
+			<table class="adminListTable">
+				<thead>
+					<tr>
+						<th class="ui-widget-header"><wicket:ommessage key="599" /></th>
+						<th class="ui-widget-header"><wicket:ommessage key="600" /></th>
+						<th class="ui-widget-header"><wicket:ommessage key="601" /></th>
+						<th class="ui-widget-header"><wicket:ommessage key="602" /></th>
+						<th class="ui-widget-header"><wicket:ommessage key="603" /></th>
+						<th class="ui-widget-header"><wicket:ommessage key="1501" /></th>
+					</tr>
+				</thead>
+				<tbody wicket:id="container" >
+					<tr wicket:id="clientList">
+						<td wicket:id="id"></td>
+						<td wicket:id="login"></td>
+						<td wicket:id="since"></td>
+						<td wicket:id="scope"></td>
+						<td><a wicket:id="kick"><wicket:ommessage key="603" /></a></td>
+						<td wicket:id="server"></td>
+					</tr>
+				</tbody>
+			</table>
+		</div>
+		<div class="adminPanelColumnForm">
+			<table wicket:id="details" style="width: 450px;">
+				<tr wicket:id="line"><td wicket:id="name"></td><td wicket:id="value"></td></tr>
+			</table>
+		</div>
+	</div>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java b/src/web/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
new file mode 100644
index 0000000..2444e46
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
@@ -0,0 +1,142 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.admin.connection;
+
+import static java.lang.Boolean.TRUE;
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getSid;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.openmeetings.db.dao.server.ISessionManager;
+import org.apache.openmeetings.db.dao.user.IUserService;
+import org.apache.openmeetings.db.entity.room.Client;
+import org.apache.openmeetings.web.admin.AdminPanel;
+import org.apache.openmeetings.web.admin.SearchableDataView;
+import org.apache.openmeetings.web.common.ConfirmableAjaxLink;
+import org.apache.openmeetings.web.common.PagedEntityListPanel;
+import org.apache.openmeetings.web.data.SearchableDataProvider;
+import org.apache.wicket.AttributeModifier;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.repeater.Item;
+import org.apache.wicket.markup.repeater.RepeatingView;
+
+public class ConnectionsPanel extends AdminPanel {
+	private static final long serialVersionUID = -5074847509312630580L;
+
+	public ConnectionsPanel(String id) {
+		super(id);
+	
+		SearchableDataProvider<Client> sdp = new SearchableDataProvider<Client>(null) {
+			private static final long serialVersionUID = 1L;
+
+			//FIXME add search
+			
+			@Override
+			public Iterator<? extends Client> iterator(long first, long count) {
+				//FIXME add grouping by public SID
+				List<Client> l = new ArrayList<Client>(getBean(ISessionManager.class).getClients());
+				return l.subList((int)Math.max(0, first), (int)Math.min(first + count, l.size())).iterator();
+			}
+			
+			@Override
+			public long size() {
+				return getBean(ISessionManager.class).getClients().size();
+			}
+		};
+		final WebMarkupContainer container = new WebMarkupContainer("container");
+		final WebMarkupContainer details = new WebMarkupContainer("details");
+		SearchableDataView<Client> dataView = new SearchableDataView<Client>("clientList", sdp) {
+			private static final long serialVersionUID = 2863400959190625386L;
+
+			@Override
+			protected void populateItem(final Item<Client> item) {
+				Client c = item.getModelObject();
+				item.add(new Label("id", c.getStreamid()));
+				item.add(new Label("login", c.getUsername()));
+				item.add(new Label("since", c.getConnectedSince()));
+				item.add(new Label("scope", c.getScope()));
+				item.add(new Label("server", c.getServer() == null ? "no cluster" : c.getServer().getAddress())); //FIXME localization
+				item.add(new ConfirmableAjaxLink("kick", 605) {
+					private static final long serialVersionUID = 1860369399943234763L;
+
+					@Override
+					public void onClick(AjaxRequestTarget target) {
+						Client c = item.getModelObject();
+						getBean(IUserService.class).kickUserByStreamId(getSid(), c.getStreamid()
+								, c.getServer() == null ? 0 : c.getServer().getId());
+						target.add(container, details.setVisible(false));
+					}
+				}.setEnabled(!TRUE.equals(c.getIsScreenClient()) && !TRUE.equals(c.getIsAVClient())));
+				item.add(new AjaxEventBehavior("onclick") {
+					private static final long serialVersionUID = 9180559138402389613L;
+
+					@Override
+					protected void onEvent(AjaxRequestTarget target) {
+						Field[] ff = Client.class.getDeclaredFields();
+						RepeatingView lines = new RepeatingView("line");
+						Client c = item.getModelObject();
+						for (Field f : ff) {
+							int mod = f.getModifiers();
+							if (Modifier.isStatic(mod) || Modifier.isTransient(mod)) {
+								continue;
+							}
+							WebMarkupContainer line = new WebMarkupContainer(lines.newChildId());
+							line.add(new Label("name", f.getName()));
+							String val = "";
+							try {
+								f.setAccessible(true);
+								val = "" + f.get(c);
+							} catch (Exception e) {
+								//noop
+							}
+							line.add(new Label("value", val));
+							lines.add(line);
+						}
+						details.addOrReplace(lines);
+						target.add(details.setVisible(true));
+					}
+				});
+				item.add(AttributeModifier.append("class", "clickable ui-widget-content"));
+			}
+		};
+		add(container.add(dataView).setOutputMarkupId(true), details.setVisible(false).setOutputMarkupPlaceholderTag(true));
+		
+		add(new PagedEntityListPanel("navigator", dataView) {
+			private static final long serialVersionUID = 5097048616003411362L;
+
+			@Override
+			protected void onEvent(AjaxRequestTarget target) {
+				target.add(container);
+			}
+		});
+	}
+
+	@Override
+	public void onMenuPanelLoad(AjaxRequestTarget target) {
+		super.onMenuPanelLoad(target);
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/admin/groups/GroupForm.java b/src/web/java/org/apache/openmeetings/web/admin/groups/GroupForm.java
new file mode 100644
index 0000000..5d0a4a9
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/groups/GroupForm.java
@@ -0,0 +1,148 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.admin.groups;

+

+import static org.apache.openmeetings.web.app.Application.getBean;

+import static org.apache.openmeetings.web.app.WebSession.getUserId;

+

+import java.util.List;

+

+import org.apache.openmeetings.db.dao.user.AdminUserDao;

+import org.apache.openmeetings.db.dao.user.OrganisationDao;

+import org.apache.openmeetings.db.entity.user.Organisation;

+import org.apache.openmeetings.db.entity.user.Organisation_Users;

+import org.apache.openmeetings.db.entity.user.User;

+import org.apache.openmeetings.web.admin.AdminCommonUserForm;

+import org.apache.openmeetings.web.app.Application;

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.ajax.form.AjaxFormValidatingBehavior;

+import org.apache.wicket.markup.html.WebMarkupContainer;

+import org.apache.wicket.markup.html.form.Form;

+import org.apache.wicket.markup.html.form.RequiredTextField;

+import org.apache.wicket.model.CompoundPropertyModel;

+import org.apache.wicket.model.Model;

+import org.apache.wicket.util.time.Duration;

+

+public class GroupForm extends AdminCommonUserForm<Organisation> {

+	private static final long serialVersionUID = -1720731686053912700L;

+	private GroupUsersPanel usersPanel;

+	private WebMarkupContainer groupList;

+	

+	public GroupForm(String id, WebMarkupContainer groupList, Organisation organisation) {

+		super(id, new CompoundPropertyModel<Organisation>(organisation));

+		this.groupList = groupList;

+		setOutputMarkupId(true);

+		

+		add(new RequiredTextField<String>("name").setLabel(Model.of(WebSession.getString(165))));

+		usersPanel = new GroupUsersPanel("users", getOrgId());

+		add(usersPanel);

+

+		// attach an ajax validation behavior to all form component's keydown

+		// event and throttle it down to once per second

+		AjaxFormValidatingBehavior.addToAllFormComponents(this, "keydown", Duration.ONE_SECOND);

+	}

+	

+	@Override

+	public void updateView(AjaxRequestTarget target) {

+		usersPanel.update(getOrgId());

+		target.add(this, groupList);

+		target.appendJavaScript("groupsInit();");

+	}

+

+	@Override

+	public void submitView(AjaxRequestTarget target, List<User> usersToAdd) {

+		// TODO Auto-generated method stub

+		AdminUserDao userDao = Application.getBean(AdminUserDao.class);

+		Organisation organisation = getModelObject();

+		for (User u : usersToAdd) {

+			List<Organisation_Users> orgUsers = u.getOrganisation_users();

+			boolean found = false;

+			for (Organisation_Users ou : orgUsers) {

+				if (ou.getOrganisation().getOrganisation_id().equals(organisation.getOrganisation_id())) {

+					found = true;

+					break;

+				}

+			}

+			if (!found) {

+				Organisation_Users orgUser = new Organisation_Users(organisation);

+				orgUser.setDeleted(false);

+				orgUsers.add(orgUser);

+				userDao.update(u, WebSession.getUserId());

+			}

+		}

+		target.add(usersPanel);

+	}

+	

+	private long getOrgId() {

+		return getModelObject().getOrganisation_id() != null ? getModelObject().getOrganisation_id() : 0;

+	}

+	

+	@Override

+	protected void onNewSubmit(AjaxRequestTarget target, Form<?> f) {

+		this.setModelObject(new Organisation());

+		updateView(target);

+	}

+	

+	@Override

+	protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) {

+		Organisation org = getModelObject();

+		if (org.getOrganisation_id() != null) {

+			org = getBean(OrganisationDao.class).get(org.getOrganisation_id());

+		} else {

+			org = new Organisation();

+		}

+		this.setModelObject(org);

+		updateView(target);

+	}

+	

+	@Override

+	protected void onDeleteSubmit(AjaxRequestTarget target, Form<?> form) {

+		getBean(OrganisationDao.class).delete(getModelObject(), getUserId());

+		this.setModelObject(new Organisation());

+		updateView(target);

+	}

+	

+	@Override

+	protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {

+		getBean(OrganisationDao.class).update(getModelObject(), getUserId());

+		hideNewRecord();

+		updateView(target);

+	}

+

+	@Override

+	protected void onSaveError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+

+	@Override

+	protected void onNewError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+

+	@Override

+	protected void onRefreshError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+

+	@Override

+	protected void onDeleteError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/admin/groups/GroupUsersPanel.html b/src/web/java/org/apache/openmeetings/web/admin/groups/GroupUsersPanel.html
new file mode 100644
index 0000000..99fb07b
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/groups/GroupUsersPanel.html
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<html xmlns:wicket="http://wicket.apache.org">

+	<wicket:panel>

+		<div class="usergroupspanel">

+			<span wicket:id="navigator">[dataview navigator]</span>

+			<table class="adminListTable" style="min-width: 400px; max-width: 400px" >

+                <tr>

+                    <th class="ui-widget-header" style="width: 360px"><wicket:ommessage key="177" /></th>

+                    <th class="ui-widget-header" style="width: 34px"><wicket:ommessage key="275" /></th>

+                </tr>   

+            </table>

+            <div class="tableWrapper" style="width: 420px; height: 420px;">

+                <table class="adminListTable" style="min-width: 400px; max-width: 400px">  

+                    <tbody>   

+                        <tr wicket:id="userList">

+                            <td style="width: 360px"><div style="width: 360px"><span wicket:id="label"></span></div></td>

+                            <td style="width: 34px"><div style="width: 34px"><div class="formCancelButton" wicket:id="deleteUserBtn" wicket:ommessage="title:274"><input/></div></div></td>

+                        </tr>

+                    </tbody>

+                </table>

+            </div>

+		</div>

+	</wicket:panel>

+</html>

diff --git a/src/web/java/org/apache/openmeetings/web/admin/groups/GroupUsersPanel.java b/src/web/java/org/apache/openmeetings/web/admin/groups/GroupUsersPanel.java
new file mode 100644
index 0000000..ceffea9
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/groups/GroupUsersPanel.java
@@ -0,0 +1,113 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.admin.groups;

+

+import org.apache.openmeetings.db.dao.user.OrganisationUserDao;

+import org.apache.openmeetings.db.entity.user.Organisation_Users;

+import org.apache.openmeetings.db.entity.user.User;

+import org.apache.openmeetings.web.admin.SearchableDataView;

+import org.apache.openmeetings.web.app.Application;

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.openmeetings.web.common.ConfirmCallListener;

+import org.apache.openmeetings.web.common.PagedEntityListPanel;

+import org.apache.openmeetings.web.data.SearchableDataProvider;

+import org.apache.wicket.AttributeModifier;

+import org.apache.wicket.ajax.AjaxEventBehavior;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;

+import org.apache.wicket.markup.html.WebMarkupContainer;

+import org.apache.wicket.markup.html.basic.Label;

+import org.apache.wicket.markup.html.panel.Panel;

+import org.apache.wicket.markup.repeater.Item;

+import org.apache.wicket.model.Model;

+

+public class GroupUsersPanel extends Panel {

+	private static final long serialVersionUID = -1813488722913433227L;

+	private long organisationId;

+	

+	public static String getUser(User u) {

+		return u.getLogin() + " [" + u.getFirstname() + ", " + u.getLastname() + "]";

+	}

+	

+	public GroupUsersPanel(String id, long orgId) {

+		super(id);

+		this.organisationId = orgId;

+		setOutputMarkupId(true);

+		

+		SearchableDataView<Organisation_Users> dataView = new SearchableDataView<Organisation_Users>("userList", new SearchableDataProvider<Organisation_Users>(OrganisationUserDao.class){

+			private static final long serialVersionUID = 1L;

+

+			protected OrganisationUserDao getDao() {

+				return (OrganisationUserDao)super.getDao();

+			}

+			

+			public long size() {

+				return search == null ? getDao().count(organisationId) : getDao().count(organisationId, search);

+			}

+			

+			public java.util.Iterator<? extends Organisation_Users> iterator(long first, long count) {

+				return (search == null && getSort() == null

+						? getDao().get(organisationId, (int)first, (int)count)

+						: getDao().get(organisationId, search, (int)first, (int)count, getSortStr())).iterator();

+			}

+		}) {

+			private static final long serialVersionUID = 8715559628755439596L;

+

+			@Override

+			protected void populateItem(Item<Organisation_Users> item) {

+				final Organisation_Users orgUser = item.getModelObject();

+				User u = orgUser.getUser();

+				if (u != null) {

+					item.add(new Label("label", Model.of(getUser(u))));

+				} else {

+					item.add(new Label("label", Model.of("")));

+				}

+				item.add(new WebMarkupContainer("deleteUserBtn").add(new AjaxEventBehavior("onclick"){

+					private static final long serialVersionUID = 1L;

+

+					@Override

+					protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {

+						super.updateAjaxAttributes(attributes);

+						attributes.getAjaxCallListeners().add(new ConfirmCallListener(833L));

+					}

+					

+					@Override

+					protected void onEvent(AjaxRequestTarget target) {

+						Application.getBean(OrganisationUserDao.class).delete(orgUser, WebSession.getUserId());

+						target.add(GroupUsersPanel.this);

+					}

+				})); 

+				item.add(AttributeModifier.append("class", ((item.getIndex() % 2 == 1) ? "even" : "odd")));

+			}

+		};

+		add(dataView).setOutputMarkupId(true);

+		add(new PagedEntityListPanel("navigator", dataView) {

+			private static final long serialVersionUID = 5097048616003411362L;

+

+			@Override

+			protected void onEvent(AjaxRequestTarget target) {

+				target.add(GroupUsersPanel.this);

+			}

+		});

+	}

+	

+	void update(long orgId) {

+		organisationId = orgId;

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.html b/src/web/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.html
new file mode 100644
index 0000000..bfc7856
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.html
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+	<wicket:head>
+		<script type="text/javascript">
+			function groupsInit() {
+				var documentHeight = $(document).height();
+                $('#adminForm').height(documentHeight-114);
+                $('#adminTable').height(documentHeight-144);
+			};
+		</script>
+	</wicket:head>
+	<wicket:panel>
+		<div class="adminPanel">
+			<div class="adminPanelColumnTable">
+				<span wicket:id="navigator">[dataview navigator]</span>
+				<table class="adminListTable">
+					<tr>
+						<th class="two_column_layout_column1 ui-widget-header"><span wicket:id="orderById"></span><wicket:ommessage key="164" /></th>
+						<th class="two_column_layout_column2 ui-widget-header"><span wicket:id="orderByName"></span><wicket:ommessage key="165" /></th>
+					</tr>	
+				</table>
+				<div class="tableWrapper" id="adminTable">
+					<table class="adminListTable">	
+						<tbody wicket:id="listContainer">	
+				    		<tr wicket:id="groupList">
+								<td class="two_column_layout_column1"><div class="two_column_layout_divcolumn1"><span wicket:id="organisation_id"></span></div></td>
+								<td class="two_column_layout_column2"><div class="two_column_layout_divcolumn2"><span wicket:id="name"></span></div></td>
+							</tr>
+						</tbody>
+					</table>
+				</div>
+			</div>
+			<div class="adminPanelColumnForm">
+				<form wicket:id="form" class="adminForm">
+					<div wicket:id="buttons"></div>
+					<div class="scrollcontent" id="adminForm">
+					    <fieldset class="ui-widget-content">
+					        <legend class="ui-widget-header"><wicket:ommessage key="170" /></legend>
+                               <div class="formelement">
+                                   <label><wicket:ommessage key="171" /></label><input type="text" wicket:id="name" />
+                               </div>
+                               <div class="formelement">
+                                   <label style="font-weight: bold;"><wicket:ommessage key="273" /></label>
+                                   <form><div wicket:id="addUsersBtn" class="formNewButton disabled" wicket:ommessage="title:178"><input/></div></form>
+                               </div>
+                               <div class="formelement">
+                                   <div wicket:id="users"></div>
+                               </div>
+					    </fieldset>
+					</div>
+				</form>
+			</div>
+		</div>
+		<div wicket:id="addUsers">
+		</div>
+	</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java b/src/web/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
new file mode 100644
index 0000000..780569d
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
@@ -0,0 +1,141 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.admin.groups;

+

+import org.apache.openmeetings.db.dao.user.OrganisationDao;

+import org.apache.openmeetings.db.entity.user.Organisation;

+import org.apache.openmeetings.db.entity.user.Organisation_Users;

+import org.apache.openmeetings.web.admin.AddUsersDialog;

+import org.apache.openmeetings.web.admin.AdminPanel;

+import org.apache.openmeetings.web.admin.SearchableDataView;

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.openmeetings.web.common.PagedEntityListPanel;

+import org.apache.openmeetings.web.data.DataViewContainer;

+import org.apache.openmeetings.web.data.OmOrderByBorder;

+import org.apache.openmeetings.web.data.SearchableDataProvider;

+import org.apache.wicket.AttributeModifier;

+import org.apache.wicket.ajax.AjaxEventBehavior;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.ajax.markup.html.form.AjaxButton;

+import org.apache.wicket.markup.html.WebMarkupContainer;

+import org.apache.wicket.markup.html.basic.Label;

+import org.apache.wicket.markup.html.form.Form;

+import org.apache.wicket.markup.repeater.Item;

+

+/**

+ * Modify/ CRUD operations for {@link Organisation} and

+ * {@link Organisation_Users}

+ * 

+ * @author swag

+ * 

+ */

+public class GroupsPanel extends AdminPanel {

+	private static final long serialVersionUID = -5170400556006464830L;

+	private AddUsersDialog addUsersDialog;

+	private GroupForm form;

+	

+	@Override

+	public void onMenuPanelLoad(AjaxRequestTarget target) {

+		super.onMenuPanelLoad(target);

+		target.appendJavaScript("groupsInit();");

+	}

+

+	@SuppressWarnings("unchecked")

+	public GroupsPanel(String id) {

+		super(id);

+		final WebMarkupContainer listContainer = new WebMarkupContainer("listContainer");

+        final AjaxButton addUsersBtn = new AjaxButton("addUsersBtn") {

+			private static final long serialVersionUID = 1L;

+        	@Override

+        	protected void onSubmit(AjaxRequestTarget target, Form<?> form1) {

+        		if (form.getModelObject().getOrganisation_id() != null) {

+        			addUsersDialog.open(target);

+        		}

+        	}

+        };

+        

+		//Adding the Group Form

+		form = new GroupForm("form", listContainer, new Organisation()){

+			private static final long serialVersionUID = 1L;

+

+			private AjaxButton processAddClass() {

+				boolean orgSaved = getModelObject().getOrganisation_id() != null;

+				addUsersBtn.add(AttributeModifier.replace("class", orgSaved ? "formNewButton" : "formNewButton disabled"));

+				addUsersBtn.setEnabled(orgSaved);

+				return addUsersBtn;

+			}

+			

+			@Override

+			protected void onModelChanged() {

+				super.onModelChanged();

+				processAddClass();

+			}

+			

+			@Override

+			public void updateView(AjaxRequestTarget target) {

+				super.updateView(target);

+				target.add(processAddClass());

+			}

+		};

+        add(form.add(addUsersBtn.setOutputMarkupId(true)));

+        addUsersDialog = new AddUsersDialog("addUsers",WebSession.getString(180), form, true);

+		add(addUsersDialog.setOutputMarkupId(true));

+

+        //List view

+        SearchableDataView<Organisation> dataView = new SearchableDataView<Organisation>("groupList", new SearchableDataProvider<Organisation>(OrganisationDao.class)) {

+			private static final long serialVersionUID = 8715559628755439596L;

+

+			@Override

+			protected void populateItem(Item<Organisation> item) {

+				final Organisation o = item.getModelObject();

+				item.add(new Label("organisation_id", "" + o.getOrganisation_id()));

+				item.add(new Label("name", "" + o.getName()));

+				item.add(new AjaxEventBehavior("onclick") {

+					private static final long serialVersionUID = -8069413566800571061L;

+

+					protected void onEvent(AjaxRequestTarget target) {

+						form.hideNewRecord();

+						form.setModelObject(o);

+						form.updateView(target);

+						target.add(listContainer);

+						target.appendJavaScript("groupsInit();");

+					}

+				});

+				item.add(AttributeModifier.append("class", "clickable ui-widget-content"

+						+ (o.getOrganisation_id().equals(form.getModelObject().getOrganisation_id()) ? " selected" : "")));

+			}

+		};

+

+		//Paging

+		add(listContainer.add(dataView).setOutputMarkupId(true));

+		PagedEntityListPanel navigator = new PagedEntityListPanel("navigator", dataView) {

+			private static final long serialVersionUID = 5097048616003411362L;

+

+			@Override

+			protected void onEvent(AjaxRequestTarget target) {

+				target.add(listContainer);

+			}

+		};

+		DataViewContainer<Organisation> container = new DataViewContainer<Organisation>(listContainer, dataView, navigator);

+		container.setLinks(new OmOrderByBorder<Organisation>("orderById", "organisation_id", container)

+				, new OmOrderByBorder<Organisation>("orderByName", "name", container));

+		add(container.orderLinks);

+		add(navigator);

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/admin/labels/AddLanguageForm.java b/src/web/java/org/apache/openmeetings/web/admin/labels/AddLanguageForm.java
new file mode 100644
index 0000000..0140d91
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/labels/AddLanguageForm.java
@@ -0,0 +1,81 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.admin.labels;

+

+import java.util.Date;

+

+import org.apache.openmeetings.db.dao.label.FieldLanguageDao;

+import org.apache.openmeetings.db.entity.label.FieldLanguage;

+import org.apache.openmeetings.web.app.Application;

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.ajax.markup.html.form.AjaxButton;

+import org.apache.wicket.markup.html.form.Form;

+import org.apache.wicket.markup.html.form.RequiredTextField;

+import org.apache.wicket.model.Model;

+import org.apache.wicket.model.PropertyModel;

+

+/**

+ * 

+ * @author solomax, swagner

+ * 

+ */

+public class AddLanguageForm extends Form<Void> {

+	private static final long serialVersionUID = 8743289610974962636L;

+	private String newLanguageName;

+	private String newLanguageISO;

+	

+	public AddLanguageForm(String id, final LangPanel langPanel) {

+		super(id);

+		

+		add(new RequiredTextField<String>("name", new PropertyModel<String>(this, "newLanguageName")));

+		add(new RequiredTextField<String>("iso", new PropertyModel<String>(this, "newLanguageISO")));

+		

+		add(new AjaxButton("add", Model.of(WebSession.getString(366L)), this) {

+			private static final long serialVersionUID = -552597041751688740L;

+

+			@Override

+			public void onSubmit(AjaxRequestTarget target, Form<?> form) {

+				FieldLanguageDao langDao = Application.getBean(FieldLanguageDao.class);

+				

+				FieldLanguage fl = new FieldLanguage();

+				fl.setLanguage_id(langDao.getNextAvailableId());

+				fl.setStarttime(new Date());

+				fl.setDeleted(false);

+				fl.setName(newLanguageName);

+				fl.setRtl(false); //FIXME

+				fl.setCode(newLanguageISO);

+				

+				try {

+					langDao.updateLanguage(fl);

+				} catch (Exception e) {

+					// TODO add feedback message

+					e.printStackTrace();

+				}

+

+				langPanel.getLangForm().updateLanguages(target);

+				/* FIXME

+				languages.setChoices(langDao.getLanguages());

+				target.add(languages);

+				*/

+				target.appendJavaScript("$('#addLanguage').dialog('close');");

+			}

+		});

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/admin/labels/LabelsForm.java b/src/web/java/org/apache/openmeetings/web/admin/labels/LabelsForm.java
new file mode 100644
index 0000000..0eec5f6
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/labels/LabelsForm.java
@@ -0,0 +1,118 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.admin.labels;

+

+import org.apache.openmeetings.db.dao.label.FieldLanguagesValuesDao;

+import org.apache.openmeetings.db.dao.label.FieldValueDao;

+import org.apache.openmeetings.db.entity.label.Fieldlanguagesvalues;

+import org.apache.openmeetings.db.entity.label.Fieldvalues;

+import org.apache.openmeetings.web.admin.AdminBaseForm;

+import org.apache.openmeetings.web.app.Application;

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.markup.html.basic.Label;

+import org.apache.wicket.markup.html.form.Form;

+import org.apache.wicket.markup.html.form.TextArea;

+import org.apache.wicket.markup.html.form.TextField;

+import org.apache.wicket.model.CompoundPropertyModel;

+

+/**

+ * Add/edit/delete {@link Fieldlanguagesvalues}

+ * 

+ * @author swagner

+ * 

+ */

+public class LabelsForm extends AdminBaseForm<Fieldlanguagesvalues> {

+	private static final long serialVersionUID = -1309878909524329047L;

+	private LangPanel panel;

+	

+	public LabelsForm(String id, LangPanel panel, Fieldlanguagesvalues fieldlanguagesvalues) {

+		super(id, new CompoundPropertyModel<Fieldlanguagesvalues>(fieldlanguagesvalues));

+		this.panel = panel;

+		

+		add(new Label("fieldvalues.fieldvalues_id"));

+		add(new TextField<String>("fieldvalues.name"));

+		add(new TextArea<String>("value"));

+	}

+

+	@Override

+	protected void onNewSubmit(AjaxRequestTarget target, Form<?> f) {

+		Fieldlanguagesvalues flv = new Fieldlanguagesvalues();

+		flv.setLanguage_id(panel.language.getLanguage_id());

+		this.setModelObject(flv);

+		target.add(this);

+		target.appendJavaScript("labelsInit();");

+	}

+

+	@Override

+	protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) {

+		Fieldlanguagesvalues flv = getModelObject();

+		if (flv.getFieldlanguagesvalues_id() != null) {

+			flv = Application.getBean(FieldLanguagesValuesDao.class)

+					.get(getModelObject().getFieldlanguagesvalues_id());

+		} else {

+			flv = new Fieldlanguagesvalues();

+		}

+		this.setModelObject(flv);

+		target.add(this);

+		target.appendJavaScript("labelsInit();");

+	}

+

+	@Override

+	protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {

+		Fieldlanguagesvalues flv = getModelObject();

+		Fieldvalues fv = flv.getFieldvalues();

+		Application.getBean(FieldValueDao.class).update(fv, WebSession.getUserId());

+		

+		flv.setFieldvalues(fv);

+		Application.getBean(FieldLanguagesValuesDao.class)

+			.update(flv, WebSession.getUserId());

+		hideNewRecord();

+		target.add(panel.listContainer);

+		target.appendJavaScript("labelsInit();");

+	}

+

+	@Override

+	protected void onDeleteSubmit(AjaxRequestTarget target, Form<?> form) {

+		Application.getBean(FieldLanguagesValuesDao.class)

+			.delete(getModelObject(), WebSession.getUserId());

+		target.add(panel.listContainer);

+		target.appendJavaScript("labelsInit();");

+	}

+

+	@Override

+	protected void onSaveError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+

+	@Override

+	protected void onNewError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+

+	@Override

+	protected void onRefreshError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+

+	@Override

+	protected void onDeleteError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/admin/labels/LangForm.java b/src/web/java/org/apache/openmeetings/web/admin/labels/LangForm.java
new file mode 100644
index 0000000..1c94ee1
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/labels/LangForm.java
@@ -0,0 +1,114 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.admin.labels;

+

+import static org.apache.openmeetings.web.app.Application.getBean;

+

+import org.apache.openmeetings.db.dao.label.FieldLanguageDao;

+import org.apache.openmeetings.db.entity.label.FieldLanguage;

+import org.apache.openmeetings.web.common.ConfirmCallListener;

+import org.apache.wicket.ajax.AjaxEventBehavior;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;

+import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;

+import org.apache.wicket.ajax.form.AjaxFormValidatingBehavior;

+import org.apache.wicket.markup.html.WebMarkupContainer;

+import org.apache.wicket.markup.html.form.ChoiceRenderer;

+import org.apache.wicket.markup.html.form.DropDownChoice;

+import org.apache.wicket.markup.html.form.Form;

+import org.apache.wicket.model.PropertyModel;

+import org.apache.wicket.util.time.Duration;

+

+/**

+ * Modify the language selection, add/delete {@link FieldLanguage}

+ * 

+ * @author swagner

+ * 

+ */

+public class LangForm extends Form<Void> {

+	private static final long serialVersionUID = 2837702941211636609L;

+	private DropDownChoice<FieldLanguage> languages;

+

+	public void updateLanguages(AjaxRequestTarget target) {

+		FieldLanguageDao langDao = getBean(FieldLanguageDao.class);

+		languages.setChoices(langDao.getLanguages());

+		// add(languages);

+		target.add(languages);

+	}

+

+	/**

+	 * Render Main

+	 * 

+	 * @param id

+	 * @param listContainer

+	 * @param language

+	 * @param langPanel

+	 */

+	public LangForm(String id, final WebMarkupContainer listContainer, final LangPanel langPanel) {

+		super(id);

+		setOutputMarkupId(true);

+

+		FieldLanguageDao langDao = getBean(FieldLanguageDao.class);

+		

+		languages = new DropDownChoice<FieldLanguage>("language"

+				, new PropertyModel<FieldLanguage>(langPanel, "language")

+				, langDao.getLanguages()

+				, new ChoiceRenderer<FieldLanguage>("name", "language_id"));

+				

+		languages.add(new AjaxFormComponentUpdatingBehavior("onchange") {

+			private static final long serialVersionUID = -2055912815073387536L;

+

+			@Override

+			protected void onUpdate(AjaxRequestTarget target) {

+				target.add(listContainer);

+			}

+		});

+		add(languages);

+

+		add(new WebMarkupContainer("deleteLangBtn").add(new AjaxEventBehavior("onclick"){

+			private static final long serialVersionUID = -1650946343073068686L;

+

+			@Override

+			protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {

+				super.updateAjaxAttributes(attributes);

+				attributes.getAjaxCallListeners().add(new ConfirmCallListener(833L));

+			}

+			

+			@Override

+			protected void onEvent(AjaxRequestTarget target) {

+				langPanel.language.setDeleted(true);

+				FieldLanguageDao langDao = getBean(FieldLanguageDao.class);

+				try {

+					langDao.updateLanguage(langPanel.language);

+				} catch (Exception e) {

+					// TODO add feedback message

+					e.printStackTrace();

+				}

+				languages.setChoices(langDao.getLanguages());

+				target.add(languages);

+				// FIXME need to force update list container

+				target.add(listContainer);

+			}

+		})); 

+

+		// attach an ajax validation behavior to all form component's keydown

+		// event and throttle it down to once per second

+		AjaxFormValidatingBehavior.addToAllFormComponents(this, "keydown", Duration.ONE_SECOND);

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/admin/labels/LangPanel.html b/src/web/java/org/apache/openmeetings/web/admin/labels/LangPanel.html
new file mode 100644
index 0000000..1d64b25
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/labels/LangPanel.html
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+	<wicket:panel>
+		<div>
+			<span wicket:id="importFeedback"/>
+		</div>
+		<script type="text/javascript">
+			function labelsInit() {
+				$('#addLanguage').dialog({
+					closeOnEscape: true
+					, autoOpen: false
+					, resizable: false
+				});
+				var documentHeight = $(document).height();
+                $('#adminForm').height(documentHeight-114);
+                $('#adminTable').height(documentHeight-164);
+			};
+		</script>
+		<div class="adminPanel">
+			<div class="adminPanelColumnTable">
+				<form wicket:id="langForm" class="addLanguagePanel">
+					<table>
+						<tr>
+							<td>
+								<div class="formNewButton" wicket:ommessage="title:362" 
+									onclick="$('#addLanguage :text').val(''); $('#addLanguage').dialog('open');"><input type="button" title=""/></div>
+							</td>
+							<td>
+								<div wicket:id="deleteLangBtn" class="formCancelButton" wicket:ommessage="title:363"><input type="button" title=""/></div>
+							</td>
+							<td>
+								<select wicket:id="language"></select>
+							</td>
+							<td>
+								<span wicket:id="export" class="btn"><wicket:ommessage key="360"/></span>
+							</td>
+							<td class="profile">
+								<div class="fileupload fileupload-new" data-provides="fileupload" style="margin: 0;">
+									<span class="btn btn-file"><wicket:ommessage key="387"/><input type="file" accept="text/xml" wicket:id="fileInput"/></span>
+								</div>
+								<span wicket:id="progress">[progressbar]</span>
+							</td>
+						</tr>
+					</table>
+				</form>
+				<span wicket:id="navigator">[dataview navigator]</span>
+				<table class="adminListTable">
+					<thead>
+						<tr>
+							<th class="three_column_layout_column1 ui-widget-header"><span wicket:id="orderById"></span><wicket:ommessage key="350" /></th>
+							<th class="three_column_layout_column2 ui-widget-header"><span wicket:id="orderByName"></span><wicket:ommessage key="351" /></th>
+							<th class="three_column_layout_column3 ui-widget-header"><span wicket:id="orderByValue"></span><wicket:ommessage key="352" /></th>
+						</tr>
+					</thead>	
+				</table>
+				<div class="tableWrapper" id="adminTable">
+					<table class="adminListTable">
+						<tbody wicket:id="listContainer" >
+				    		<tr wicket:id="langList">
+								<td class="three_column_layout_column1"><div class="three_column_layout_divcolumn1"><span wicket:id="lblId"></span></div></td>
+								<td class="three_column_layout_column2"><div class="three_column_layout_divcolumn2"><span wicket:id="name"></span></div></td>
+								<td class="three_column_layout_column3"><div class="three_column_layout_divcolumn3"><span wicket:id="value"></span></div></td>
+							</tr>
+						</tbody>	
+					</table>
+				</div>
+			</div>
+			<div class="adminPanelColumnForm">
+				<form wicket:id="form" class="adminForm">
+					<div wicket:id="buttons"></div>
+					<div class="scrollcontent" id="adminForm">
+						<fieldset class="ui-widget-content">
+							<legend class="ui-widget-header"><wicket:ommessage key="353" /></legend>
+							<div class="formelement">
+	                             <label><wicket:ommessage key="356" /></label><span wicket:id="fieldvalues.fieldvalues_id"></span>
+							</div>
+	                         <div class="formelement">
+	                             <label><wicket:ommessage key="354" /></label><input type="text" wicket:id="fieldvalues.name"/>
+							</div>
+	                        <div class="formelement">
+	                             <label><wicket:ommessage key="355" /></label><textarea wicket:id="value"></textarea>
+	                        </div> 
+						</fieldset>
+					</div>
+				</form>
+			</div>
+		</div>
+		<div id="addLanguage" wicket:ommessage="title:364" style="display: none;">
+			<form wicket:id="addLangForm">
+				<table>
+					<tr>
+						<td><wicket:ommessage key="365" /></td>
+						<td><input type="text" wicket:id="name"/></td>
+					</tr>
+					<tr>
+						<td><wicket:ommessage key="1422" /></td>
+						<td><input type="text" wicket:id="iso"/></td>
+					</tr>
+					<tr>
+						<td align="right" colspan="2"><input type="submit" wicket:id="add"/></td>
+					</tr>
+				</table>
+			</form>
+		</div>
+	</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/admin/labels/LangPanel.java b/src/web/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
new file mode 100644
index 0000000..29aab40
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
@@ -0,0 +1,285 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.admin.labels;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringWriter;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.openmeetings.backup.LanguageImport;
+import org.apache.openmeetings.db.dao.label.FieldLanguageDao;
+import org.apache.openmeetings.db.dao.label.FieldLanguagesValuesDao;
+import org.apache.openmeetings.db.dao.label.FieldValueDao;
+import org.apache.openmeetings.db.entity.label.FieldLanguage;
+import org.apache.openmeetings.db.entity.label.Fieldlanguagesvalues;
+import org.apache.openmeetings.db.entity.label.Fieldvalues;
+import org.apache.openmeetings.util.LangExport;
+import org.apache.openmeetings.web.admin.AdminPanel;
+import org.apache.openmeetings.web.admin.SearchableDataView;
+import org.apache.openmeetings.web.common.PagedEntityListPanel;
+import org.apache.openmeetings.web.data.DataViewContainer;
+import org.apache.openmeetings.web.data.OmOrderByBorder;
+import org.apache.openmeetings.web.data.SearchableDataProvider;
+import org.apache.openmeetings.web.util.AjaxDownload;
+import org.apache.openmeetings.web.util.BootstrapFileUploadBehavior;
+import org.apache.wicket.AttributeModifier;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.extensions.ajax.markup.html.form.upload.UploadProgressBar;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.upload.FileUpload;
+import org.apache.wicket.markup.html.form.upload.FileUploadField;
+import org.apache.wicket.markup.html.panel.FeedbackPanel;
+import org.apache.wicket.markup.repeater.Item;
+import org.apache.wicket.util.resource.AbstractResourceStream;
+import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
+import org.dom4j.Document;
+import org.dom4j.Element;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+/**
+ * Language Editor, add/insert/update {@link Fieldlanguagesvalues} and
+ * add/delete {@link FieldLanguage} contains several Forms and one list
+ * 
+ * @author solomax, swagner
+ * 
+ */
+public class LangPanel extends AdminPanel {
+	private static final Logger log = Red5LoggerFactory.getLogger(LangPanel.class, webAppRootKey);
+	
+	private static final long serialVersionUID = 5904180813198016592L;
+
+	FieldLanguage language;
+	final WebMarkupContainer listContainer;
+	private LangForm langForm;
+	private FileUploadField fileUploadField;
+	// Create feedback panels
+	private final FeedbackPanel importFeedback = new FeedbackPanel("importFeedback");
+	
+	@Override
+	public void onMenuPanelLoad(AjaxRequestTarget target) {
+		super.onMenuPanelLoad(target);
+		target.appendJavaScript("labelsInit();");
+	}
+
+	@SuppressWarnings("unchecked")
+	public LangPanel(String id) {
+		super(id);
+		// Create feedback panels
+		add(importFeedback.setOutputMarkupId(true));
+		FieldLanguageDao langDao = getBean(FieldLanguageDao.class);
+		language = langDao.getFieldLanguageById(1L);
+
+		Fieldlanguagesvalues flv = new Fieldlanguagesvalues();
+		flv.setLanguage_id(language.getLanguage_id());
+		final LabelsForm form = new LabelsForm("form", this, flv);
+		form.showNewRecord();
+		add(form);
+
+		final SearchableDataView<Fieldvalues> dataView = new SearchableDataView<Fieldvalues>(
+				"langList"
+				, new SearchableDataProvider<Fieldvalues>(FieldValueDao.class) {
+					private static final long serialVersionUID = -6822789354860988626L;
+
+					@Override
+					protected FieldValueDao getDao() {
+						return (FieldValueDao)super.getDao();
+					}
+					
+					@Override
+					public long size() {
+						return search == null ? getDao().count() : getDao().count(language.getLanguage_id(), search);
+					}
+					
+					public Iterator<? extends Fieldvalues> iterator(long first, long count) {
+						return (search == null && getSort() == null
+								? getDao().get(language.getLanguage_id(), (int)first, (int)count)
+								: getDao().get(language.getLanguage_id(), search, (int)first, (int)count, getSortStr())).iterator();
+					}
+				}) {
+			private static final long serialVersionUID = 8715559628755439596L;
+
+			@Override
+			protected void populateItem(final Item<Fieldvalues> item) {
+				final Fieldvalues fv = item.getModelObject();
+				item.add(new Label("lblId", "" + fv.getFieldvalues_id()));
+				item.add(new Label("name", fv.getName()));
+				item.add(new Label("value", fv.getFieldlanguagesvalue() != null ? fv.getFieldlanguagesvalue().getValue() : null));
+				item.add(new AjaxEventBehavior("onclick") {
+					private static final long serialVersionUID = -8069413566800571061L;
+
+					protected void onEvent(AjaxRequestTarget target) {
+						form.setModelObject(fv.getFieldlanguagesvalue());
+						form.hideNewRecord();
+						target.add(form, listContainer);
+						target.appendJavaScript("labelsInit();");
+					}
+				});
+				item.add(AttributeModifier.append("class", "clickable ui-widget-content"
+						+ (fv.getFieldvalues_id().equals(form.getModelObject().getFieldvalues_id()) ? " selected" : "")));
+			}
+		};
+
+		listContainer = new WebMarkupContainer("listContainer");
+		add(listContainer.add(dataView).setOutputMarkupId(true));
+		PagedEntityListPanel navigator = new PagedEntityListPanel("navigator", dataView) {
+			private static final long serialVersionUID = 5097048616003411362L;
+
+			@Override
+			protected void onEvent(AjaxRequestTarget target) {
+				dataView.modelChanging();
+				target.add(listContainer);
+			}
+		};
+		DataViewContainer<Fieldvalues> container = new DataViewContainer<Fieldvalues>(listContainer, dataView, navigator);
+		container.setLinks(new OmOrderByBorder<Fieldvalues>("orderById", "fieldvalues.fieldvalues_id", container)
+				, new OmOrderByBorder<Fieldvalues>("orderByName", "fieldvalues.name", container)
+				, new OmOrderByBorder<Fieldvalues>("orderByValue", "value", container));
+		add(container.orderLinks);
+		add(navigator);
+		langForm = new LangForm("langForm", listContainer, this);
+		fileUploadField = new FileUploadField("fileInput");
+		langForm.add(fileUploadField);
+		langForm.add(new UploadProgressBar("progress", langForm, fileUploadField));
+		fileUploadField.add(new AjaxFormSubmitBehavior(langForm, "onchange") {
+			private static final long serialVersionUID = 2160216679027859231L;
+
+			@Override
+			protected void onSubmit(AjaxRequestTarget target) {
+				FileUpload download = fileUploadField.getFileUpload();
+				try {
+					if (download == null || download.getInputStream() == null) {
+						importFeedback.error("File is empty");
+						return;
+					}
+					getBean(LanguageImport.class)
+						.addLanguageByDocument(language.getLanguage_id(), download.getInputStream(), getUserId());
+				} catch (Exception e) {
+					log.error("Exception on panel language editor import ", e);
+					importFeedback.error(e);
+				}
+
+				// repaint the feedback panel so that it is hidden
+				target.add(importFeedback);
+			}
+		});
+
+		// Add a component to download a file without page refresh
+		final AjaxDownload download = new AjaxDownload();
+		langForm.add(download);
+
+		langForm.add(new AjaxButton("export"){
+			private static final long serialVersionUID = 1L;
+
+			protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
+
+				final List<Fieldlanguagesvalues> flvList = getBean(FieldLanguagesValuesDao.class).getMixedFieldValuesList(language.getLanguage_id());
+
+				FieldLanguage fl = getBean(FieldLanguageDao.class).getFieldLanguageById(language.getLanguage_id());
+				if (fl != null && flvList != null) {
+					download.setFileName(fl.getName() + ".xml");
+					download.setResourceStream(new AbstractResourceStream() {
+						private static final long serialVersionUID = 1L;
+						private StringWriter sw;
+						private InputStream is;
+						
+						public InputStream getInputStream() throws ResourceStreamNotFoundException {
+							try {
+								Document doc = createDocument(flvList, getBean(FieldLanguagesValuesDao.class).getUntranslatedFieldValuesList(language.getLanguage_id()));
+								sw = new StringWriter();
+								LangExport.serializetoXML(sw, "UTF-8", doc);
+								is = new ByteArrayInputStream(sw.toString().getBytes());
+								return is;
+							} catch (Exception e) {
+								throw new ResourceStreamNotFoundException(e);
+							}
+						}
+						
+						public void close() throws IOException {
+							if (is != null) {
+								is.close();
+								is = null;
+							}
+							sw = null;
+						}
+					});//new FileResourceStream(new File(requestedFile)));
+					download.initiate(target);
+				}
+				
+				// repaint the feedback panel so that it is hidden
+				target.add(importFeedback);
+			}
+			
+			@Override
+			protected void onError(AjaxRequestTarget target, Form<?> form) {
+				// repaint the feedback panel so errors are shown
+				target.add(importFeedback);
+			}
+			
+		});
+		
+		add(langForm);
+		add(new AddLanguageForm("addLangForm", this));
+		add(BootstrapFileUploadBehavior.INSTANCE);
+	}
+
+	public LangForm getLangForm() {
+		return langForm;
+	}
+
+	public static Document createDocument(List<Fieldlanguagesvalues> flvList, List<Fieldlanguagesvalues> untranslatedList) throws Exception {
+		Document document = LangExport.createDocument();
+		Element root = LangExport.createRoot(document);
+
+		for (Fieldlanguagesvalues flv : flvList) {
+			Element eTemp = root.addElement("string")
+					.addAttribute("id", flv.getFieldvalues().getFieldvalues_id().toString())
+					.addAttribute("name", flv.getFieldvalues().getName());
+			Element value = eTemp.addElement("value");
+			value.addText(flv.getValue());
+		}
+
+		//untranslated
+		if (untranslatedList.size() > 0) {
+			root.addComment("Untranslated strings");
+			for (Fieldlanguagesvalues flv : untranslatedList) {
+				Element eTemp = root.addElement("string")
+						.addAttribute("id", flv.getFieldvalues().getFieldvalues_id().toString())
+						.addAttribute("name", flv.getFieldvalues().getName());
+				Element value = eTemp.addElement("value");
+				value.addText(flv.getValue());
+			}
+		}
+
+		return document;
+	}
+
+}
diff --git a/src/web/java/org/apache/openmeetings/web/admin/ldaps/LdapForm.java b/src/web/java/org/apache/openmeetings/web/admin/ldaps/LdapForm.java
new file mode 100644
index 0000000..e80fa50
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/ldaps/LdapForm.java
@@ -0,0 +1,137 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.admin.ldaps;

+

+import static org.apache.openmeetings.util.OpenmeetingsVariables.WEB_DATE_PATTERN;

+import static org.apache.wicket.datetime.markup.html.basic.DateLabel.forDatePattern;

+

+import org.apache.openmeetings.db.dao.server.LdapConfigDao;

+import org.apache.openmeetings.db.entity.server.LdapConfig;

+import org.apache.openmeetings.web.admin.AdminBaseForm;

+import org.apache.openmeetings.web.app.Application;

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.ajax.form.AjaxFormValidatingBehavior;

+import org.apache.wicket.markup.html.WebMarkupContainer;

+import org.apache.wicket.markup.html.basic.Label;

+import org.apache.wicket.markup.html.form.CheckBox;

+import org.apache.wicket.markup.html.form.Form;

+import org.apache.wicket.markup.html.form.RequiredTextField;

+import org.apache.wicket.markup.html.form.TextArea;

+import org.apache.wicket.markup.html.form.TextField;

+import org.apache.wicket.model.CompoundPropertyModel;

+import org.apache.wicket.model.Model;

+import org.apache.wicket.util.time.Duration;

+

+/**

+ * Form components to insert/update/delete {@link LdapConfig}

+ * 

+ * @author swagner

+ * 

+ */

+public class LdapForm extends AdminBaseForm<LdapConfig> {

+	private static final long serialVersionUID = 1L;

+	private final WebMarkupContainer listContainer;

+

+	public LdapForm(String id, WebMarkupContainer listContainer,

+			final LdapConfig ldapConfig) {

+		super(id, new CompoundPropertyModel<LdapConfig>(ldapConfig));

+		setOutputMarkupId(true);

+		this.listContainer = listContainer;

+		

+		add(new RequiredTextField<String>("name").setLabel(Model.of(WebSession.getString(1108))));

+		add(new CheckBox("isActive"));

+		add(forDatePattern("inserted", WEB_DATE_PATTERN));

+		add(new Label("insertedby.login"));

+		add(forDatePattern("updated", WEB_DATE_PATTERN));

+		add(new Label("updatedby.login"));

+		add(new RequiredTextField<String>("configFileName").setLabel(Model.of(WebSession.getString(1115))));

+		add(new CheckBox("addDomainToUserName"));

+		add(new TextField<String>("domain"));

+		add(new TextArea<String>("comment"));

+

+		// attach an ajax validation behavior to all form component's keydown

+		// event and throttle it down to once per second

+		AjaxFormValidatingBehavior.addToAllFormComponents(this, "keydown", Duration.ONE_SECOND);

+	}

+

+	@Override

+	protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {

+		Application.getBean(LdapConfigDao.class).update(getModelObject(),

+				WebSession.getUserId());

+		LdapConfig ldapConfig = Application.getBean(LdapConfigDao.class)

+				.get(getModelObject().getLdapConfigId());

+		this.setModelObject(ldapConfig);

+		hideNewRecord();

+		target.add(this);

+		target.add(listContainer);

+		target.appendJavaScript("omLdapPanelInit();");

+	}

+

+	@Override

+	protected void onNewSubmit(AjaxRequestTarget target, Form<?> form) {

+		this.setModelObject(new LdapConfig());

+		target.add(this);

+		target.appendJavaScript("omLdapPanelInit();");

+	}

+

+	@Override

+	protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) {

+		LdapConfig ldapConfig = this.getModelObject();

+		if (ldapConfig.getLdapConfigId() <= 0) {

+			ldapConfig = Application.getBean(LdapConfigDao.class).get(

+					ldapConfig.getLdapConfigId());

+		} else {

+			ldapConfig = new LdapConfig();

+		}

+		this.setModelObject(ldapConfig);

+		target.add(this);

+		target.appendJavaScript("omLdapPanelInit();");

+	}

+

+	@Override

+	protected void onDeleteSubmit(AjaxRequestTarget target, Form<?> form) {

+		Application.getBean(LdapConfigDao.class).delete(

+				this.getModelObject(), WebSession.getUserId());

+		this.setModelObject(new LdapConfig());

+		target.add(listContainer);

+		target.add(this);

+		target.appendJavaScript("omLdapPanelInit();");

+	}

+

+	@Override

+	protected void onSaveError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+

+	@Override

+	protected void onNewError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+

+	@Override

+	protected void onRefreshError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+

+	@Override

+	protected void onDeleteError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.html b/src/web/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.html
new file mode 100644
index 0000000..bc5f041
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.html
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+	<wicket:head>
+       <script type="text/javascript">
+           function omLdapPanelInit() {
+               var documentHeight = $(document).height();
+               $('#adminForm').height(documentHeight-114);
+               $('#adminTable').height(documentHeight-144);
+           }
+       </script>
+    </wicket:head>
+	<wicket:panel>
+		<div class="adminPanel">
+			<div class="adminPanelColumnTable">
+				<span wicket:id="navigator">[dataview navigator]</span>
+				<table class="adminListTable">
+					<thead>
+						<tr>
+							<th class="three_column_layout_column1 ui-widget-header"><span wicket:id="orderById"></span><wicket:ommessage key="1104" /></th>
+							<th class="three_column_layout_column2 ui-widget-header"><span wicket:id="orderByName"></span><wicket:ommessage key="1105" /></th>
+							<th class="three_column_layout_column3 ui-widget-header"><span wicket:id="orderByFile"></span><wicket:ommessage key="1106" /></th>
+						</tr>
+					</thead>
+				</table>
+				<div class="tableWrapper" id="adminTable">
+					<table class="adminListTable">
+						<tbody wicket:id="listContainer">
+				    		<tr wicket:id="ldapList">
+								<td class="three_column_layout_column1"><div class="three_column_layout_divcolumn1"><span wicket:id="ldapConfigId"></span></div></td>
+								<td class="three_column_layout_column2"><div class="three_column_layout_divcolumn2"><span wicket:id="name"></span></div></td>
+								<td class="three_column_layout_column3"><div class="three_column_layout_divcolumn3"><span wicket:id="configFileName"></span></div></td>
+							</tr>
+						</tbody>			
+					</table>
+				</div>
+			</div>
+			<div class="adminPanelColumnForm">
+				<form wicket:id="form" class="adminForm">
+					<div wicket:id="buttons"></div>
+					<div class="scrollcontent" id="adminForm">
+						<fieldset class="ui-widget-content">
+							<legend class="ui-widget-header"><wicket:ommessage key="1107" /></legend>
+							<div class="formelement">
+	                            <label><wicket:ommessage key="1108" /></label><input type="text" wicket:id="name"/>
+				            </div>
+				            <div class="formelement">
+	                            <label><wicket:ommessage key="1109" /></label><input type="checkbox" class="formcheckbox" wicket:id="isActive"/>
+				            </div>
+				            <div class="formelement">
+	                            <label><wicket:ommessage key="1110" /></label><span wicket:id="inserted"/>
+	                        </div>
+				            <div class="formelement">
+	                            <label><wicket:ommessage key="1111" /></label><span wicket:id="insertedby.login"/>
+				            </div>
+				            <div class="formelement">
+	                            <label><wicket:ommessage key="1112" /></label><span wicket:id="updated"/>
+				            </div>
+				            <div class="formelement">
+	                            <label><wicket:ommessage key="1113" /></label><span wicket:id="updatedby.login"/>
+				            </div>
+				            <div class="formelement">
+				                <div class="info-text"><wicket:ommessage key="1114" /></div>
+	                            <br/>
+				                <label><wicket:ommessage key="1115" /></label><input type="text" wicket:id="configFileName"/>
+				            </div>
+				            <div class="formelement">
+				                <div class="info-text"><wicket:ommessage key="1116" /></div>
+	                            <br/>
+				                <label><wicket:ommessage key="1117" /></label><input type="checkbox" class="formcheckbox" wicket:id="addDomainToUserName"/>
+				            </div>
+	                        <div class="formelement">
+	                            <label><wicket:ommessage key="1118" /></label><input type="text" wicket:id="domain"/>
+				            </div>
+	                        <div class="formelement">
+	                            <label><wicket:ommessage key="270" /></label><textarea wicket:id="comment"/>
+				            </div>
+				        </fieldset>
+				    </div>
+				</form>
+			</div>
+		</div>
+	</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java b/src/web/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java
new file mode 100644
index 0000000..c85d655
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java
@@ -0,0 +1,101 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.admin.ldaps;

+

+import org.apache.openmeetings.db.dao.server.LdapConfigDao;

+import org.apache.openmeetings.db.entity.server.LdapConfig;

+import org.apache.openmeetings.web.admin.AdminPanel;

+import org.apache.openmeetings.web.admin.SearchableDataView;

+import org.apache.openmeetings.web.common.PagedEntityListPanel;

+import org.apache.openmeetings.web.data.DataViewContainer;

+import org.apache.openmeetings.web.data.OmOrderByBorder;

+import org.apache.openmeetings.web.data.SearchableDataProvider;

+import org.apache.wicket.AttributeModifier;

+import org.apache.wicket.ajax.AjaxEventBehavior;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.markup.html.WebMarkupContainer;

+import org.apache.wicket.markup.html.basic.Label;

+import org.apache.wicket.markup.repeater.Item;

+

+/**

+ * {@link AdminPanel} to list and modify {@link LdapConfig}

+ * 

+ * @author swagner

+ * 

+ */

+public class LdapsPanel extends AdminPanel {

+	private static final long serialVersionUID = -1L;

+	final WebMarkupContainer listContainer = new WebMarkupContainer("listContainer");

+	private LdapForm form;

+	

+	@Override

+	public void onMenuPanelLoad(AjaxRequestTarget target) {

+		super.onMenuPanelLoad(target);

+		target.appendJavaScript("omLdapPanelInit();");

+	}

+

+	@SuppressWarnings("unchecked")

+	public LdapsPanel(String id) {

+		super(id);

+		SearchableDataView<LdapConfig> dataView = new SearchableDataView<LdapConfig>("ldapList"

+			, new SearchableDataProvider<LdapConfig>(LdapConfigDao.class)) {

+			private static final long serialVersionUID = 8715559628755439596L;

+

+			@Override

+			protected void populateItem(final Item<LdapConfig> item) {

+				final LdapConfig lc = item.getModelObject();

+				item.add(new Label("ldapConfigId", "" + lc.getLdapConfigId()));

+				item.add(new Label("name", "" + lc.getName()));

+				item.add(new Label("configFileName", "" + lc.getConfigFileName()));

+				item.add(new AjaxEventBehavior("onclick") {

+					private static final long serialVersionUID = -8069413566800571061L;

+

+					protected void onEvent(AjaxRequestTarget target) {

+						form.setModelObject(lc);

+						form.hideNewRecord();

+						target.add(form, listContainer);

+						target.appendJavaScript("omLdapPanelInit();");

+					}

+				});

+				item.add(AttributeModifier.replace("class", "clickable ui-widget-content"

+						+ (lc.getLdapConfigId() == form.getModelObject().getLdapConfigId() ? " selected" : "")));

+			}

+		};

+		add(listContainer.add(dataView).setOutputMarkupId(true));

+		PagedEntityListPanel navigator = new PagedEntityListPanel("navigator", dataView) {

+			private static final long serialVersionUID = -1L;

+

+			@Override

+			protected void onEvent(AjaxRequestTarget target) {

+				target.add(listContainer);

+			}

+		};

+		DataViewContainer<LdapConfig> container = new DataViewContainer<LdapConfig>(listContainer, dataView, navigator);

+		container.setLinks(new OmOrderByBorder<LdapConfig>("orderById", "ldapConfigId", container)

+				, new OmOrderByBorder<LdapConfig>("orderByName", "name", container)

+				, new OmOrderByBorder<LdapConfig>("orderByFile", "configFileName", container));

+		add(container.orderLinks);

+		add(navigator);

+		

+		form = new LdapForm("form", listContainer, new LdapConfig());

+		form.showNewRecord();

+        add(form);

+		

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/admin/oauth/OAuthForm.java b/src/web/java/org/apache/openmeetings/web/admin/oauth/OAuthForm.java
new file mode 100644
index 0000000..74b4f1a
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/oauth/OAuthForm.java
@@ -0,0 +1,141 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.admin.oauth;
+
+import org.apache.openmeetings.db.dao.server.OAuth2Dao;
+import org.apache.openmeetings.db.entity.server.OAuthServer;
+import org.apache.openmeetings.web.admin.AdminBaseForm;
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.pages.auth.SignInPage;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.form.AjaxFormValidatingBehavior;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.form.CheckBox;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.RequiredTextField;
+import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.util.time.Duration;
+
+public class OAuthForm extends AdminBaseForm<OAuthServer> {
+	private static final long serialVersionUID = 1L;
+	private WebMarkupContainer listContainer;
+	private TextField<String> redirectUriText;
+
+	public OAuthForm(String id, WebMarkupContainer listContainer, OAuthServer server) {
+		super(id, new CompoundPropertyModel<OAuthServer>(server));
+		this.listContainer = listContainer;
+		setOutputMarkupId(true);
+		
+		add(new CheckBox("isEnabled"));
+		add(new RequiredTextField<String>("name").setLabel(Model.of(WebSession.getString(1573))));
+		add(new TextField<String>("iconUrl").setLabel(Model.of(WebSession.getString(1575))));
+		add(new RequiredTextField<String>("clientId").setLabel(Model.of(WebSession.getString(1576))));
+		add(new RequiredTextField<String>("clientSecret").setLabel(Model.of(WebSession.getString(1577))));
+		redirectUriText = (TextField<String>) new TextField<String>("redirectUri", Model.of("")).setLabel(Model.of(WebSession.getString(1587)));
+		add(redirectUriText);
+		add(new RequiredTextField<String>("requestKeyUrl").setLabel(Model.of(WebSession.getString(1578))));
+		add(new RequiredTextField<String>("requestTokenUrl").setLabel(Model.of(WebSession.getString(1579))));
+		add(new RequiredTextField<String>("requestTokenAttributes").setLabel(Model.of(WebSession.getString(1586))));
+		add(new RequiredTextField<String>("requestInfoUrl").setLabel(Model.of(WebSession.getString(1580))));
+		add(new RequiredTextField<String>("loginParamName").setLabel(Model.of(WebSession.getString(1582))));
+		add(new RequiredTextField<String>("emailParamName").setLabel(Model.of(WebSession.getString(1583))));
+		add(new TextField<String>("firstnameParamName").setLabel(Model.of(WebSession.getString(1584))));
+		add(new TextField<String>("lastnameParamName").setLabel(Model.of(WebSession.getString(1585))));
+		
+		// attach an ajax validation behavior to all form component's keydown
+		// event and throttle it down to once per second
+		AjaxFormValidatingBehavior.addToAllFormComponents(this, "keydown", Duration.ONE_SECOND);
+	}
+	
+	@Override
+	protected void onModelChanged() {
+		super.onModelChanged();
+		String redirectUri = SignInPage.getRedirectUri(getModelObject(), this);
+		redirectUriText.setModelObject(redirectUri);
+	}
+
+	@Override
+	protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {
+		OAuth2Dao oAuth2Dao = Application.getBean(OAuth2Dao.class);
+		oAuth2Dao.update(getModelObject(), WebSession.getUserId());
+		OAuthServer oauthServer = oAuth2Dao.get(getModelObject().getId());
+		this.setModelObject(oauthServer);
+		hideNewRecord();
+		target.add(this);
+		target.add(listContainer);
+		target.appendJavaScript("oauthPanelInit();");
+	}
+
+	@Override
+	protected void onNewSubmit(AjaxRequestTarget target, Form<?> form) {
+		this.setModelObject(new OAuthServer());
+		target.add(this);
+		target.appendJavaScript("oauthPanelInit();");
+	}
+
+	@Override
+	protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) {
+		OAuthServer server = this.getModelObject();
+		if (server.getId() <= 0) {
+			server = Application.getBean(OAuth2Dao.class).get(getModelObject().getId());
+		} else {
+			server = new OAuthServer();
+		}
+		this.setModelObject(server);
+		target.add(this);
+		target.appendJavaScript("oauthPanelInit();");
+	}
+
+	@Override
+	protected void onDeleteSubmit(AjaxRequestTarget target, Form<?> form) {
+		Application.getBean(OAuth2Dao.class).delete(getModelObject(), WebSession.getUserId());
+		this.setModelObject(new OAuthServer());
+		target.add(listContainer);
+		target.add(this);
+		target.appendJavaScript("oauthPanelInit();");
+	}
+
+	@Override
+	protected void onSaveError(AjaxRequestTarget target, Form<?> form) {
+		// TODO Auto-generated method stub
+		
+	}
+	
+	@Override
+	protected void onDeleteError(AjaxRequestTarget target, Form<?> form) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	protected void onRefreshError(AjaxRequestTarget target, Form<?> form) {
+		// TODO Auto-generated method stub
+		
+	}	
+	
+	@Override
+	protected void onNewError(AjaxRequestTarget target, Form<?> form) {
+		// TODO Auto-generated method stub
+		
+	}
+	
+}
diff --git a/src/web/java/org/apache/openmeetings/web/admin/oauth/OAuthPanel.html b/src/web/java/org/apache/openmeetings/web/admin/oauth/OAuthPanel.html
new file mode 100644
index 0000000..53693cc
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/oauth/OAuthPanel.html
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+	<wicket:head>
+       <script type="text/javascript">
+           function oauthPanelInit() {
+               var documentHeight = $(document).height();
+               $('#adminForm').height(documentHeight-114);
+               $('#adminTable').height(documentHeight-144);
+           }
+       </script>
+    </wicket:head>
+	<wicket:panel>
+		<div class="adminPanel">
+			<div class="adminPanelColumnTable">
+				<span wicket:id="navigator">[dataview navigator]</span>
+				<table class="adminListTable">
+					<thead>
+						<tr>
+							<th class="two_column_layout_column1 ui-widget-header"><span wicket:id="orderById"></span><wicket:ommessage key="1104" /></th>
+							<th class="two_column_layout_column2 ui-widget-header"><span wicket:id="orderByName"></span><wicket:ommessage key="1105" /></th>
+						</tr>
+					</thead>
+				</table>
+				<div class="tableWrapper" id="adminTable">
+					<table class="adminListTable">
+						<tbody wicket:id="listContainer">
+				    		<tr wicket:id="oauthServersList">
+								<td class="two_column_layout_column1"><div class="two_column_layout_divcolumn1"><span wicket:id="oauthServerId"></span></div></td>
+								<td class="two_column_layout_column2"><div class="two_column_layout_divcolumn2"><span wicket:id="name"></span></div></td>
+							</tr>
+						</tbody>			
+					</table>
+				</div>
+			</div>
+			<div class="adminPanelColumnForm">
+				<form wicket:id="form" class="adminForm">
+					<div wicket:id="buttons"></div>
+					<div class="scrollcontent" id="adminForm">
+						<fieldset class="ui-widget-content">
+							<legend class="ui-widget-header"><wicket:ommessage key="1581" /></legend>
+							<div class="formelement">
+								<label><wicket:ommessage key="1574" /></label><input type="checkbox" class="formcheckbox" wicket:id="isEnabled"/>
+							</div>
+							<div class="formelement">
+								<label><wicket:ommessage key="1573" /></label><input type="text" wicket:id="name"/>
+							</div>
+							<div class="formelement">
+								<label><wicket:ommessage key="1575" /></label><input type="text" wicket:id="iconUrl"/>
+							</div>
+							<div class="formelement">
+								<label><wicket:ommessage key="1576" /></label><input type="text" wicket:id="clientId"/>
+							</div>
+							<div class="formelement">
+								<label><wicket:ommessage key="1577" /></label><input type="text" wicket:id="clientSecret"/>
+							</div>
+							<div class="formelement">
+								<label><wicket:ommessage key="1587" /></label><input type="text" readonly="readonly" wicket:id="redirectUri"/>
+							</div>
+							<div class="formelement">
+								<label><wicket:ommessage key="1578" /></label><input type="text" wicket:id="requestKeyUrl"/>
+							</div>
+							<div class="formelement">
+								<label><wicket:ommessage key="1579" /></label><input type="text" wicket:id="requestTokenUrl"/>
+							</div>
+							<div class="formelement">
+								<label><wicket:ommessage key="1586" /></label><input type="text" wicket:id="requestTokenAttributes"/>
+							</div>
+							<div class="formelement">
+								<label><wicket:ommessage key="1580" /></label><input type="text" wicket:id="requestInfoUrl"/>
+							</div>
+							<div class="formelement">
+								<label><wicket:ommessage key="1582" /></label><input type="text" wicket:id="loginParamName"/>
+							</div>
+							<div class="formelement">
+								<label><wicket:ommessage key="1583" /></label><input type="text" wicket:id="emailParamName"/>
+							</div>
+							<div class="formelement">
+								<label><wicket:ommessage key="1584" /></label><input type="text" wicket:id="firstnameParamName"/>
+							</div>
+							<div class="formelement">
+								<label><wicket:ommessage key="1585" /></label><input type="text" wicket:id="lastnameParamName"/>
+							</div>
+						</fieldset>
+					</div>
+				</form>
+			</div>
+		</div>
+	</wicket:panel>
+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/admin/oauth/OAuthPanel.java b/src/web/java/org/apache/openmeetings/web/admin/oauth/OAuthPanel.java
new file mode 100644
index 0000000..0effe96
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/oauth/OAuthPanel.java
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.admin.oauth;
+
+import org.apache.openmeetings.db.dao.server.OAuth2Dao;
+import org.apache.openmeetings.db.entity.server.OAuthServer;
+import org.apache.openmeetings.web.admin.AdminPanel;
+import org.apache.openmeetings.web.admin.SearchableDataView;
+import org.apache.openmeetings.web.common.PagedEntityListPanel;
+import org.apache.openmeetings.web.data.DataViewContainer;
+import org.apache.openmeetings.web.data.OmOrderByBorder;
+import org.apache.openmeetings.web.data.SearchableDataProvider;
+import org.apache.wicket.AttributeModifier;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.repeater.Item;
+
+public class OAuthPanel extends AdminPanel {
+	private static final long serialVersionUID = -1L;
+	final WebMarkupContainer listContainer = new WebMarkupContainer("listContainer");
+	private OAuthForm form;
+
+	@SuppressWarnings("unchecked")
+	public OAuthPanel(String id) {
+		super(id);
+		SearchableDataView<OAuthServer> dataView = new SearchableDataView<OAuthServer>("oauthServersList",
+				new SearchableDataProvider<OAuthServer>(OAuth2Dao.class)) {
+
+			private static final long serialVersionUID = -7701640237947383416L;
+
+			@Override
+			protected void populateItem(Item<OAuthServer> item) {
+				final OAuthServer server = item.getModelObject();
+				item.add(new Label("oauthServerId", String.valueOf(server.getId())));
+				item.add(new Label("name", server.getName()));
+				item.add(new AjaxEventBehavior("onclick") {
+
+					private static final long serialVersionUID = 7380727643346943181L;
+
+					@Override
+					protected void onEvent(AjaxRequestTarget target) {
+						form.setModelObject(server);
+						form.hideNewRecord();
+						target.add(form, listContainer);
+						target.appendJavaScript("oauthPanelInit();");
+					}
+				});
+				item.add(AttributeModifier.replace("class", "clickable ui-widget-content"
+						+ (server.getId().equals(form.getModelObject().getId()) ? " selected" : "")));
+			}
+			
+		};
+		
+		add(listContainer.add(dataView).setOutputMarkupId(true));
+		PagedEntityListPanel navigator = new PagedEntityListPanel("navigator", dataView) {
+			private static final long serialVersionUID = -1L;
+
+			@Override
+			protected void onEvent(AjaxRequestTarget target) {
+				target.add(listContainer);
+			}
+		};
+		DataViewContainer<OAuthServer> container = new DataViewContainer<OAuthServer>(listContainer, dataView, navigator);
+		container.setLinks(new OmOrderByBorder<OAuthServer>("orderById", "oauthServerId", container),
+						   new OmOrderByBorder<OAuthServer>("orderByName", "name", container));
+		add(container.orderLinks);
+		add(navigator);
+		
+		form = new OAuthForm("form", listContainer, new OAuthServer());
+		form.showNewRecord();
+        add(form);
+	}
+
+}
diff --git a/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java b/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
new file mode 100644
index 0000000..08bf86f
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
@@ -0,0 +1,343 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.admin.rooms;

+

+import static org.apache.openmeetings.web.app.Application.getBean;

+import static org.apache.openmeetings.web.app.WebSession.getSid;

+import static org.apache.openmeetings.web.app.WebSession.getUserId;

+

+import java.util.ArrayList;

+import java.util.Arrays;

+import java.util.Date;

+import java.util.List;

+

+import org.apache.openmeetings.db.dao.room.RoomDao;

+import org.apache.openmeetings.db.dao.room.RoomModeratorsDao;

+import org.apache.openmeetings.db.dao.room.RoomTypeDao;

+import org.apache.openmeetings.db.dao.server.ISessionManager;

+import org.apache.openmeetings.db.dao.user.IUserService;

+import org.apache.openmeetings.db.dao.user.OrganisationDao;

+import org.apache.openmeetings.db.entity.room.Client;

+import org.apache.openmeetings.db.entity.room.Room;

+import org.apache.openmeetings.db.entity.room.RoomModerator;

+import org.apache.openmeetings.db.entity.room.RoomOrganisation;

+import org.apache.openmeetings.db.entity.room.RoomType;

+import org.apache.openmeetings.db.entity.user.Organisation;

+import org.apache.openmeetings.db.entity.user.User;

+import org.apache.openmeetings.web.admin.AdminCommonUserForm;

+import org.apache.openmeetings.web.app.Application;

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.openmeetings.web.common.ConfirmCallListener;

+import org.apache.wicket.AttributeModifier;

+import org.apache.wicket.ajax.AjaxEventBehavior;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;

+import org.apache.wicket.ajax.form.AjaxFormValidatingBehavior;

+import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox;

+import org.apache.wicket.markup.html.WebMarkupContainer;

+import org.apache.wicket.markup.html.basic.Label;

+import org.apache.wicket.markup.html.form.CheckBox;

+import org.apache.wicket.markup.html.form.ChoiceRenderer;

+import org.apache.wicket.markup.html.form.DropDownChoice;

+import org.apache.wicket.markup.html.form.Form;

+import org.apache.wicket.markup.html.form.IChoiceRenderer;

+import org.apache.wicket.markup.html.form.ListMultipleChoice;

+import org.apache.wicket.markup.html.form.RequiredTextField;

+import org.apache.wicket.markup.html.form.TextArea;

+import org.apache.wicket.markup.html.form.TextField;

+import org.apache.wicket.markup.html.list.ListItem;

+import org.apache.wicket.markup.html.list.ListView;

+import org.apache.wicket.model.CompoundPropertyModel;

+import org.apache.wicket.model.Model;

+import org.apache.wicket.util.time.Duration;

+

+public class RoomForm extends AdminCommonUserForm<Room> {

+	private static final long serialVersionUID = 1L;

+	private final static List<Long> DROPDOWN_NUMBER_OF_PARTICIPANTS = Arrays.asList(2L, 4L, 6L, 8L, 10L, 12L, 14L, 16L, 20L, 25L, 32L, 50L,

+			100L, 150L, 200L, 500L, 1000L);

+	private final WebMarkupContainer roomList;

+	private final TextField<String> pin;

+	final WebMarkupContainer moderatorContainer;

+	final WebMarkupContainer clientsContainer;

+	final ListView<RoomModerator> moderators;

+	final ListView<Client> clients;

+	List<RoomModerator> moderatorsInRoom = null;

+	List<Client> clientsInRoom = null;

+	

+	public RoomForm(String id, WebMarkupContainer roomList, final Room room) {

+		super(id, new CompoundPropertyModel<Room>(room));

+		this.roomList = roomList;

+		setOutputMarkupId(true);

+		RequiredTextField<String> name = new RequiredTextField<String>("name");

+		name.setLabel(new Model<String>(WebSession.getString(193)));

+		add(name);

+

+		add(new DropDownChoice<Long>("numberOfPartizipants", //

+				DROPDOWN_NUMBER_OF_PARTICIPANTS, //

+				new IChoiceRenderer<Long>() {

+					private static final long serialVersionUID = 1L;

+					public Object getDisplayValue(Long id) {

+						return id;

+					}

+					public String getIdValue(Long id, int index) {

+						return "" + id;

+					}

+				}));

+

+		add(new DropDownChoice<RoomType>("roomtype", Application.getBean(RoomTypeDao.class).getAll(WebSession.getLanguage()),

+				new ChoiceRenderer<RoomType>("label.value", "roomtypes_id")));

+

+		add(new TextArea<String>("comment"));

+

+		add(new CheckBox("appointment"));

+		add(new CheckBox("ispublic"));

+

+		List<Organisation> orgList = Application.getBean(OrganisationDao.class).get(0, Integer.MAX_VALUE);

+		List<RoomOrganisation> orgRooms = new ArrayList<RoomOrganisation>(orgList.size());

+		for (Organisation org : orgList) {

+			orgRooms.add(new RoomOrganisation(org));

+		}

+		ListMultipleChoice<RoomOrganisation> orgChoiceList = new ListMultipleChoice<RoomOrganisation>(

+				"roomOrganisations", orgRooms,

+				new ChoiceRenderer<RoomOrganisation>("organisation.name",

+						"organisation.organisation_id"));

+		orgChoiceList.setMaxRows(6);

+		add(orgChoiceList);

+

+		add(new CheckBox("isDemoRoom"));

+		TextField<Integer> demoTime = new TextField<Integer>("demoTime");

+		demoTime.setLabel(new Model<String>(WebSession.getString(637)));

+		add(demoTime);

+		add(new CheckBox("allowUserQuestions"));

+		add(new CheckBox("isAudioOnly"));

+		add(new CheckBox("allowFontStyles"));

+		add(new CheckBox("isClosed"));

+		add(new TextField<String>("redirectURL"));

+		add(new CheckBox("waitForRecording"));

+		add(new CheckBox("allowRecording"));

+

+		add(new CheckBox("hideTopBar"));

+		add(new CheckBox("hideChat"));

+		add(new CheckBox("hideActivitiesAndActions"));

+		add(new CheckBox("hideFilesExplorer"));

+		add(new CheckBox("hideActionsMenu"));

+		add(new CheckBox("hideScreenSharing"));

+		add(new CheckBox("hideWhiteboard"));

+		add(new CheckBox("showMicrophoneStatus"));

+		add(new CheckBox("chatModerated"));

+		add(new CheckBox("chatOpened"));

+		add(new CheckBox("filesOpened"));

+		add(new CheckBox("autoVideoSelect"));	

+		

+		// Users in this Room 

+		clientsContainer = new WebMarkupContainer("clientsContainer");

+		clients = new ListView<Client>("clients", clientsInRoom){

+			private static final long serialVersionUID = 8542589945574690054L;

+

+			@Override

+			protected void populateItem(final ListItem<Client> item) {

+				Client client = item.getModelObject();

+				item.add(new Label("clientId", "" + client.getId()))

+					.add(new Label("clientLogin", "" + client.getUsername()))

+					.add(new WebMarkupContainer("clientDelete").add(new AjaxEventBehavior("onclick"){

+

+					private static final long serialVersionUID = 1L;

+

+					@Override

+					protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {

+						super.updateAjaxAttributes(attributes);

+						attributes.getAjaxCallListeners().add(new ConfirmCallListener(833L));

+					}

+					

+					@Override

+					protected void onEvent(AjaxRequestTarget target) {

+						Client c = item.getModelObject();

+						getBean(IUserService.class).kickUserByStreamId(getSid(), c.getStreamid()

+								, c.getServer() == null ? 0 : c.getServer().getId());

+						

+						updatClients(target);

+					}

+				}));

+			}

+		};

+		add(clientsContainer.add(clients.setOutputMarkupId(true)).setOutputMarkupId(true));

+		

+		// Moderators

+		moderators =	new ListView<RoomModerator>("moderators", moderatorsInRoom) {

+			private static final long serialVersionUID = -7935197812421549677L;

+

+			@Override

+			protected void populateItem(final ListItem<RoomModerator> item) {

+				final RoomModerator moderator = item.getModelObject();

+				item.add(new Label("isSuperModerator", "" + moderator.getIsSuperModerator()))

+					.add(new Label("userId", "" + moderator.getUser().getUser_id()))

+					.add(new Label("uName", "" + moderator.getUser().getFirstname() + " " + moderator.getUser().getLastname()))

+					.add(new Label("email", ""+ moderator.getUser().getAdresses().getEmail()))

+					.add(new WebMarkupContainer("delete").add(new AjaxEventBehavior("onclick"){

+					private static final long serialVersionUID = 1L;

+

+					@Override

+					protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {

+						super.updateAjaxAttributes(attributes);

+						attributes.getAjaxCallListeners().add(new ConfirmCallListener(833L));

+					}

+					

+					@Override

+					protected void onEvent(AjaxRequestTarget target) {

+						Application.getBean(RoomModeratorsDao.class).removeRoomModeratorByUserId(moderator.getRoomModeratorsId());

+						updateModerators(target);

+					}

+				})); 

+

+				item.add(AttributeModifier.replace("class", (item.getIndex() % 2 == 1) ? "even" : "odd"));

+			}

+		};

+

+		// FIXME: Room user moderator list

+		CheckBox isModeratedRoom = new CheckBox("isModeratedRoom");

+        add(isModeratedRoom.setOutputMarkupId(true));

+

+		moderatorContainer = new WebMarkupContainer("moderatorContainer");

+		

+		add(moderatorContainer.add(moderators).setOutputMarkupId(true));

+		

+		add(new TextField<String>("confno").setEnabled(false));

+		add(pin = new TextField<String>("pin"));

+		pin.setEnabled(room.isSipEnabled());

+		add(new TextField<String>("ownerId").setEnabled(false));

+		add(new AjaxCheckBox("sipEnabled") {

+			private static final long serialVersionUID = 1L;

+

+			@Override

+			protected void onUpdate(AjaxRequestTarget target) {

+				updateView(target);

+			}

+		}.setOutputMarkupId(true));

+		

+		// attach an ajax validation behavior to all form component's keydown

+		// event and throttle it down to once per second

+		AjaxFormValidatingBehavior.addToAllFormComponents(this, "keydown", Duration.ONE_SECOND);

+	}

+

+	void updateModerators(AjaxRequestTarget target) {

+		long roomId = (getModelObject().getRooms_id() != null ? getModelObject().getRooms_id() : 0);  

+		RoomModeratorsDao moderatorsDao = getBean(RoomModeratorsDao.class);

+		final List<RoomModerator> moderatorsInRoom = moderatorsDao.getRoomModeratorByRoomId(roomId);

+		moderators.setDefaultModelObject(moderatorsInRoom);

+		target.add(moderatorContainer);

+	}

+	

+	void updatClients(AjaxRequestTarget target) {

+		long roomId = (getModelObject().getRooms_id() != null ? getModelObject().getRooms_id() : 0);  

+		final List<Client> clientsInRoom = Application.getBean(ISessionManager.class).getClientListByRoom(roomId);

+		clients.setDefaultModelObject(clientsInRoom);

+		target.add(clientsContainer);

+	}

+	

+	@Override

+	protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {

+		getBean(RoomDao.class).update(getModelObject(), getUserId());

+		hideNewRecord();

+		updateView(target);

+	}

+

+	@Override

+	protected void onSaveError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+

+	@Override

+	protected void onNewSubmit(AjaxRequestTarget target, Form<?> form) {

+		setModelObject(new Room());

+		updateView(target);

+	}

+

+	@Override

+	protected void onNewError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+

+	@Override

+	protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) {

+		Room r = getModelObject();

+		if (r.getRooms_id() != null) {

+			r = getBean(RoomDao.class).get(r.getRooms_id());

+		} else {

+			r = new Room();

+		}

+		setModelObject(r);

+		updateView(target);

+	}

+

+	@Override

+	protected void onRefreshError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+

+	@Override

+	protected void onDeleteSubmit(AjaxRequestTarget target, Form<?> form) {

+		getBean(RoomDao.class).delete(getModelObject(), getUserId());

+		target.add(roomList);

+		updateView(target);

+	}

+

+	@Override

+	protected void onDeleteError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+

+	@Override

+	public void updateView(AjaxRequestTarget target) {

+		target.add(this);

+		target.add(roomList);

+		target.add(pin.setEnabled(getModelObject().isSipEnabled()));

+		updateModerators(target);

+		updatClients(target);

+		target.appendJavaScript("omRoomPanelInit();");

+	}

+

+	@Override

+	public void submitView(AjaxRequestTarget target, List<User> usersToAdd) {

+		// TODO Auto-generated method stub

+		long roomId = getModelObject().getRooms_id();

+		RoomModeratorsDao moderatorsDao = getBean(RoomModeratorsDao.class);

+		List<RoomModerator> moderators = moderatorsDao.getRoomModeratorByRoomId(roomId);

+		moderatorsInRoom = (moderatorsInRoom == null) ? new ArrayList<RoomModerator>() : moderatorsInRoom;

+		for (User u : usersToAdd) {

+			boolean found = false;

+			for ( RoomModerator rm : moderators) {

+				if (rm.getUser().getUser_id().equals(u.getUser_id())) {

+					found = true;

+					break;

+				}

+			}

+			if (!found) {

+				RoomModerator rModerator = new RoomModerator();

+				rModerator.setUser(u);

+				rModerator.setIsSuperModerator(false);

+				rModerator.setStarttime(new Date());

+				rModerator.setDeleted(false);

+				rModerator.setRoomId(roomId);

+				moderatorsInRoom.add(rModerator);

+				moderatorsDao.addRoomModeratorByUserId(u, false, roomId);

+			}

+		}

+		updateModerators(target);

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html b/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html
new file mode 100644
index 0000000..b25c5b3
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+	<wicket:head>
+	   <script type="text/javascript">
+           function omRoomPanelInit() {
+               var documentHeight = $(document).height();
+               $('#adminForm').height(documentHeight-114);
+               $('#adminTable').height(documentHeight-144);
+           }
+       </script>
+    </wicket:head>
+	<wicket:panel>
+		<div class="adminPanel">
+			<div class="adminPanelColumnTable rooms">
+				<span wicket:id="navigator">[dataview navigator]</span>
+				<table class="adminListTable">
+					<thead>
+						<tr>
+							<th class="three_column_layout_column1 ui-widget-header"><span wicket:id="orderById"></span><wicket:ommessage key="188" /></th>
+							<th class="three_column_layout_column2 ui-widget-header"><span wicket:id="orderByName"></span><wicket:ommessage key="189" /></th>
+							<th class="three_column_layout_column3 ui-widget-header"><span wicket:id="orderByPublic"></span><wicket:ommessage key="190" /></th>
+						</tr>	
+					</thead>
+				</table>
+				<div class="tableWrapper" id="adminTable">
+					<table class="adminListTable">
+						<tbody wicket:id="listContainer">		
+				    		<tr wicket:id="roomList">
+								<td class="three_column_layout_column1"><div class="three_column_layout_divcolumn1"><span wicket:id="rooms_id"></span></div></td>
+								<td class="three_column_layout_column2"><div class="three_column_layout_divcolumn2"><span wicket:id="name"></span></div></td>
+								<td class="three_column_layout_column3"><div class="three_column_layout_divcolumn3"><span wicket:id="ispublic"></span></div></td>
+							</tr>
+						</tbody>
+					</table>
+				</div>
+			</div>
+			<div class="adminPanelColumnForm">
+				<form wicket:id="form" class="adminForm">
+					<div wicket:id="buttons"></div>
+					<div class="scrollcontent" id="adminForm">
+						
+						<!-- General -->
+						<fieldset class="ui-widget-content">
+							<legend class="ui-widget-header"><wicket:ommessage key="187" /></legend>
+							<div class="formelement">
+                                <label><wicket:ommessage key="193" /></label><input type="text" wicket:id="name" />
+							</div>
+							<div class="formelement">
+                                <label><wicket:ommessage key="482" /></label><select wicket:id="numberOfPartizipants"/>
+				            </div>
+				            <div class="formelement">
+                                <label><wicket:ommessage key="194" /></label><select wicket:id="roomtype"/>
+				            </div>
+				            <div class="formelement">
+                                <label><wicket:ommessage key="196" /></label><textarea style="width: 200px; height: 100px;" wicket:id="comment"/>
+				            </div>
+				            <div class="formelement">
+                                <label><wicket:ommessage key="620" /></label><input type="checkbox" class="formcheckbox" wicket:id="appointment" />
+                            </div>
+				        </fieldset>
+				        
+				        <!-- Organisations -->
+						<fieldset class="ui-widget-content">
+							<legend class="ui-widget-header"><wicket:ommessage key="191" /></legend>
+				            <div class="formelement">
+                                <label><wicket:ommessage key="195" /></label><input type="checkbox" class="formcheckbox" wicket:id="ispublic" />
+				            </div>
+				            <div class="formelement">
+				                <div class="info-text"><wicket:ommessage key="828" /></div>
+                                <br/>
+                                <div class="info-text"><wicket:ommessage key="191" /></div>
+                                <br/>
+				                <label><wicket:ommessage key="191" /></label><select wicket:id="roomOrganisations" style="height: 80px"/>
+				            </div>
+				        </fieldset>
+				        
+				        <!-- Limitations -->
+						<fieldset class="ui-widget-content">
+							<legend class="ui-widget-header"><wicket:ommessage key="830" /></legend>
+				            <div class="formelement">
+                                <label><wicket:ommessage key="636" /></label><input type="checkbox" class="formcheckbox" wicket:id="isDemoRoom" />
+				            </div>
+				            <div class="formelement">
+                                <label><wicket:ommessage key="637" /></label><input type="text" wicket:id="demoTime" />
+                            </div>
+						</fieldset>
+						
+						<!-- Rights -->
+						<fieldset class="ui-widget-content">
+							<legend class="ui-widget-header"><wicket:ommessage key="881" /></legend>
+				            <div class="formelement">
+                                <label><wicket:ommessage key="879" /></label><input type="checkbox" class="formcheckbox" wicket:id="allowUserQuestions" />
+				            </div>
+				            <div class="formelement">
+                                <wicket:ommessage key="880" />
+				                <br/>
+				                <label><wicket:ommessage key="1076" /></label><input type="checkbox" class="formcheckbox" wicket:id="isAudioOnly" />
+				            </div>
+				            <div class="formelement">
+				                <div class="info-text"><wicket:ommessage key="1077" /></div>
+				                <label><wicket:ommessage key="1531" /></label><input type="checkbox" class="formcheckbox" wicket:id="allowFontStyles" />
+				            </div>
+				            <div class="formelement">
+					            <div class="info-text"><wicket:ommessage key="1101" /></div>
+				                <label><wicket:ommessage key="1099" /></label><input type="checkbox" class="formcheckbox" wicket:id="isClosed" />
+				            </div>
+				            <div class="formelement">
+				                <label><wicket:ommessage key="1100" /></label><input type="text" wicket:id="redirectURL" />
+							</div>
+							<div class="formelement">
+							    <div class="info-text"><wicket:ommessage key="1102" /></div>
+                                <br/>
+				                <label><wicket:ommessage key="1355" /></label><input type="checkbox" class="formcheckbox" wicket:id="waitForRecording" />
+				            </div>
+				            <div class="formelement">
+                                <label><wicket:ommessage key="1356" /></label><input type="checkbox" class="formcheckbox" wicket:id="allowRecording" />
+				            </div>
+						</fieldset>
+						
+						<!-- Room Layout options -->
+						<fieldset class="ui-widget-content">
+							<legend class="ui-widget-header"><wicket:ommessage key="1443" /></legend>
+							<div class="formelement">
+                                <label><wicket:ommessage key="1357" /></label><input type="checkbox" class="formcheckbox" wicket:id="hideTopBar" />
+				            </div>
+				            <div class="formelement">
+				                <label><wicket:ommessage key="1436" /></label><input type="checkbox" class="formcheckbox" wicket:id="hideChat" />
+				            </div>
+                            <div class="formelement">
+                                <label><wicket:ommessage key="1437" /></label><input type="checkbox" class="formcheckbox" wicket:id="hideActivitiesAndActions" />
+				            </div>
+                            <div class="formelement">
+                                <label><wicket:ommessage key="1438" /></label><input type="checkbox" class="formcheckbox" wicket:id="hideFilesExplorer" />
+				            </div>
+                            <div class="formelement">
+                                <label><wicket:ommessage key="1439" /></label><input type="checkbox" class="formcheckbox" wicket:id="hideActionsMenu" />
+				            </div>
+                            <div class="formelement">
+                                <label><wicket:ommessage key="1440" /></label><input type="checkbox" class="formcheckbox" wicket:id="hideScreenSharing" />
+				            </div>
+                            <div class="formelement">
+                                <label><wicket:ommessage key="1441" /></label><input type="checkbox" class="formcheckbox" wicket:id="hideWhiteboard" />
+				            </div>
+                            <div class="formelement">
+                                <label><wicket:ommessage key="1442" /></label><input type="checkbox" class="formcheckbox" wicket:id="showMicrophoneStatus" />
+				            </div>
+                            <div class="formelement">
+                                <label><wicket:ommessage key="1513" /></label><input type="checkbox" class="formcheckbox" wicket:id="chatModerated" />
+				            </div>
+                            <div class="formelement">
+                                <label><wicket:ommessage key="1515" /></label><input type="checkbox" class="formcheckbox" wicket:id="chatOpened" />
+				            </div>
+                            <div class="formelement">
+                                <label><wicket:ommessage key="1516" /></label><input type="checkbox" class="formcheckbox" wicket:id="filesOpened" />
+				            </div>
+                            <div class="formelement">
+                                <label><wicket:ommessage key="1526" /></label><input type="checkbox" class="formcheckbox" wicket:id="autoVideoSelect" />
+				            </div>
+						</fieldset>
+						
+						<!-- Users in this Room -->
+						<fieldset class="ui-widget-content">
+							<legend class="ui-widget-header"><wicket:ommessage key="587" /></legend>
+							<table class="adminListTable">
+								<thead>
+									<tr>
+										<th class="three_column_layout_column1 ui-widget-header"><wicket:ommessage key="588" /></th>
+										<th class="three_column_layout_column2 ui-widget-header"><wicket:ommessage key="589" /></th>
+										<th class="three_column_layout_column3 ui-widget-header"><wicket:ommessage key="590" /></th>
+									</tr>	
+								</thead>
+							</table>
+							<div class="tableWrapperSmall" id="adminTableSmall">
+								<table class="adminListTable">
+									<tbody wicket:id="clientsContainer">		
+							    		<tr wicket:id="clients">
+											<td class="three_column_layout_column1"><div class="three_column_layout_divcolumn1"><span wicket:id="clientId"></span></div></td>
+											<td class="three_column_layout_column2"><div class="three_column_layout_divcolumn2"><span wicket:id="clientLogin"></span></div></td>
+											<td class="three_column_layout_column3"><div class="formCancelButton" wicket:id="clientDelete" wicket:ommessage="title:604"><input/></div></td>
+										</tr>
+									</tbody>
+								</table>
+							</div>
+						</fieldset>
+						
+						<!-- Default moderators -->
+						<fieldset class="ui-widget-content">
+                            <div class="formelement">
+				            	<div class="info-text"><wicket:ommessage key="823" /></div>
+                                <br/>
+				                <label><wicket:ommessage key="640" /></label><input type="checkbox" class="formcheckbox" wicket:id="isModeratedRoom" />
+                                <form><div wicket:id="addModerator" class="formNewButton disabled" wicket:ommessage="title:821"><input/></div></form>
+				            </div>
+	                        <div class="formelement">
+					            <wicket:ommessage key="816" />
+				            </div>
+							<table class="adminListTableSmall">
+								<thead>
+									<tr>
+										<th class="three_column_layout_column1 ui-widget-header"><wicket:ommessage key="817" /></th>
+										<th class="three_column_layout_column2 ui-widget-header"><wicket:ommessage key="818" /></th>
+										<th class="three_column_layout_column3 ui-widget-header"><wicket:ommessage key="819" /></th>
+										<th class="three_column_layout_column4 ui-widget-header"><wicket:ommessage key="820" /></th>
+										<th class="three_column_layout_column5 ui-widget-header"><wicket:ommessage key="827" /></th>
+									</tr>	
+								</thead>
+							</table>
+							<div class="tableWrapperSmall" id="adminTableSmall">
+								<table class="adminListTableSmall">
+									<tbody wicket:id="moderatorContainer">		
+							    		<tr wicket:id="moderators">
+											<td class="three_column_layout_column1"><div class="three_column_layout_divcolumn1"><span wicket:id="isSuperModerator"></span></div></td>
+											<td class="three_column_layout_column2"><div class="three_column_layout_divcolumn2"><span wicket:id="userId"></span></div></td>
+											<td class="three_column_layout_column3"><div class="three_column_layout_divcolumn3"><span wicket:id="uName"></span></div></td>
+											<td class="three_column_layout_column4"><div class="three_column_layout_divcolumn4"><span wicket:id="email"></span></div></td>
+					                        <td style="width: 50px"><div style="width: 50px"><div class="formCancelButton" wicket:id="delete" wicket:ommessage="title:274"><input/></div></div></td>
+										</tr>
+									</tbody>
+								</table>
+							</div>
+						</fieldset>
+					    <!--SIP Settings -->
+						<fieldset class="ui-widget-content">
+							<legend class="ui-widget-header"><wicket:ommessage key="1001" /></legend>
+				            <div class="formelement">
+				                <div class="info-text"><wicket:ommessage key="1002" /></div>
+                                <br/>
+                            </div>
+				            <div class="formelement">
+				                <label><wicket:ommessage key="1003" /></label><input type="text" wicket:id="confno" />
+							</div>
+				            <div class="formelement">
+				                <label><wicket:ommessage key="1004" /></label><input type="text" wicket:id="pin" />
+							</div>
+				            <div class="formelement">
+				                <label><wicket:ommessage key="1308" /></label><input type="text" wicket:id="ownerId" />
+							</div>
+				            <div class="formelement">
+				                <label><wicket:ommessage key="1538" /></label><input type="checkbox" class="formcheckbox" wicket:id="sipEnabled" />
+				            </div>
+						</fieldset>
+					</div>
+				</form>
+			</div>
+		</div>
+		<div wicket:id="addModerators"></div>
+	</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java b/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
new file mode 100644
index 0000000..3b51d83
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
@@ -0,0 +1,121 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.admin.rooms;

+

+import org.apache.openmeetings.db.dao.room.RoomDao;

+import org.apache.openmeetings.db.entity.room.Room;

+import org.apache.openmeetings.web.admin.AddUsersDialog;

+import org.apache.openmeetings.web.admin.AdminPanel;

+import org.apache.openmeetings.web.admin.SearchableDataView;

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.openmeetings.web.common.PagedEntityListPanel;

+import org.apache.openmeetings.web.data.DataViewContainer;

+import org.apache.openmeetings.web.data.OmOrderByBorder;

+import org.apache.openmeetings.web.data.SearchableDataProvider;

+import org.apache.wicket.AttributeModifier;

+import org.apache.wicket.ajax.AjaxEventBehavior;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.ajax.markup.html.form.AjaxButton;

+import org.apache.wicket.markup.html.WebMarkupContainer;

+import org.apache.wicket.markup.html.basic.Label;

+import org.apache.wicket.markup.html.form.Form;

+import org.apache.wicket.markup.repeater.Item;

+

+public class RoomsPanel extends AdminPanel {

+	private static final long serialVersionUID = -1L;

+	private final AddUsersDialog addModeratorsDialog;

+	final WebMarkupContainer listContainer = new WebMarkupContainer("listContainer");

+	private RoomForm form;

+	

+	@Override

+	public void onMenuPanelLoad(AjaxRequestTarget target) {

+		super.onMenuPanelLoad(target);

+		target.appendJavaScript("omRoomPanelInit();");

+	}

+

+	@SuppressWarnings("unchecked")

+	public RoomsPanel(String id) {

+		super(id);

+		SearchableDataView<Room> dataView = new SearchableDataView<Room>("roomList", new SearchableDataProvider<Room>(RoomDao.class)) {

+			private static final long serialVersionUID = 8715559628755439596L;

+

+			@Override

+			protected void populateItem(final Item<Room> item) {

+				final Room room = item.getModelObject();

+				item.add(new Label("rooms_id", "" + room.getRooms_id()));

+				item.add(new Label("name", "" + room.getName()));

+				item.add(new Label("ispublic", "" + room.getIspublic()));

+				item.add(new AjaxEventBehavior("onclick") {

+					private static final long serialVersionUID = -8069413566800571061L;

+

+					protected void onEvent(AjaxRequestTarget target) {

+						form.hideNewRecord();

+						form.setModelObject(room);

+						form.updateView(target);

+						target.add(form, listContainer);

+						target.appendJavaScript("omRoomPanelInit();");

+					}

+				});

+				item.add(AttributeModifier.replace("class", "clickable ui-widget-content"

+						+ (room.getRooms_id().equals(form.getModelObject().getRooms_id()) ? " selected" : "")));

+			}

+		};

+		

+		add(listContainer.add(dataView).setOutputMarkupId(true));

+		PagedEntityListPanel navigator = new PagedEntityListPanel("navigator", dataView) {

+			private static final long serialVersionUID = -1L;

+

+			@Override

+			protected void onEvent(AjaxRequestTarget target) {

+				target.add(listContainer);

+			}

+		};

+		DataViewContainer<Room> container = new DataViewContainer<Room>(listContainer, dataView, navigator);

+		container.setLinks(new OmOrderByBorder<Room>("orderById", "rooms_id", container)

+				, new OmOrderByBorder<Room>("orderByName", "name", container)

+				, new OmOrderByBorder<Room>("orderByPublic", "ispublic", container));

+		add(container.orderLinks);

+		add(navigator);

+

+		final AjaxButton addModerator = new AjaxButton("addModerator") {

+			private static final long serialVersionUID = 1L;

+			

+			@Override

+			protected void onSubmit(AjaxRequestTarget target, Form<?> form) {

+        		addModeratorsDialog.open(target);

+			}

+		};

+		

+		form = new RoomForm("form", listContainer, new Room()){

+			private static final long serialVersionUID = 3186201157375166657L;

+

+			@Override

+			protected void onModelChanged() {

+				super.onModelChanged();

+				boolean roomEmpty = (getModelObject() == null || getModelObject().getRooms_id() == null);

+				addModerator.add(AttributeModifier.replace("class", roomEmpty ? "formNewButton disabled" : "formNewButton"));

+				addModerator.setEnabled(!roomEmpty);

+			}

+			

+		};

+		

+        add(form.add(addModerator.setOutputMarkupId(true)));

+        add(addModeratorsDialog = new AddUsersDialog("addModerators", WebSession.getString(821), form, true));

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/admin/servers/ServerForm.java b/src/web/java/org/apache/openmeetings/web/admin/servers/ServerForm.java
new file mode 100644
index 0000000..eac697a
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/servers/ServerForm.java
@@ -0,0 +1,146 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.admin.servers;

+

+import static org.apache.openmeetings.util.OpenmeetingsVariables.WEB_DATE_PATTERN;

+import static org.apache.wicket.datetime.markup.html.basic.DateLabel.forDatePattern;

+

+import org.apache.openmeetings.db.dao.server.ServerDao;

+import org.apache.openmeetings.db.entity.server.Server;

+import org.apache.openmeetings.web.admin.AdminBaseForm;

+import org.apache.openmeetings.web.app.Application;

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.ajax.form.AjaxFormValidatingBehavior;

+import org.apache.wicket.markup.html.WebMarkupContainer;

+import org.apache.wicket.markup.html.basic.Label;

+import org.apache.wicket.markup.html.form.CheckBox;

+import org.apache.wicket.markup.html.form.Form;

+import org.apache.wicket.markup.html.form.RequiredTextField;

+import org.apache.wicket.markup.html.form.TextArea;

+import org.apache.wicket.markup.html.form.TextField;

+import org.apache.wicket.model.CompoundPropertyModel;

+import org.apache.wicket.model.Model;

+import org.apache.wicket.util.time.Duration;

+

+/**

+ * Form component to insert/update/delete {@link Server}

+ * 

+ * @author swagner

+ * 

+ */

+public class ServerForm extends AdminBaseForm<Server> {

+

+	private final WebMarkupContainer listContainer;

+	private static final long serialVersionUID = 1L;

+

+	public ServerForm(String id, WebMarkupContainer listContainer,

+			final Server server) {

+		super(id, new CompoundPropertyModel<Server>(server));

+		setOutputMarkupId(true);

+		this.listContainer = listContainer;

+

+		add(new RequiredTextField<String>("name").setLabel(Model.of(WebSession.getString(1500))));

+		add(new CheckBox("active"));

+		add(new RequiredTextField<String>("address").setLabel(Model.of(WebSession.getString(1501))));

+		add(new TextField<Integer>("port"));

+		add(new TextField<String>("user"));

+		add(new TextField<String>("pass"));

+		add(new TextField<String>("webapp"));

+		add(new TextField<String>("protocol"));

+		add(forDatePattern("lastPing", WEB_DATE_PATTERN));

+		//add(new Label("pingRunning"));

+		add(forDatePattern("inserted", WEB_DATE_PATTERN));

+		add(new Label("insertedby.login"));

+		add(forDatePattern("updated", WEB_DATE_PATTERN));

+		add(new Label("updatedby.login"));

+		add(new TextArea<String>("comment"));

+

+		// attach an ajax validation behavior to all form component's keydown

+		// event and throttle it down to once per second

+		AjaxFormValidatingBehavior.addToAllFormComponents(this, "keydown", Duration.ONE_SECOND);

+	}

+

+	@Override

+	protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {

+		Application.getBean(ServerDao.class).update(getModelObject(),

+				WebSession.getUserId());

+		Server server = Application.getBean(ServerDao.class).get(

+				getModelObject().getId());

+		setModelObject(server);

+		hideNewRecord();

+		target.add(this);

+		target.add(listContainer);

+		target.appendJavaScript("omServerPanelInit();");

+	}

+

+	@Override

+	protected void onNewSubmit(AjaxRequestTarget target, Form<?> form) {

+		Server s = new Server();

+		s.setWebapp("openmeetings");

+		s.setProtocol("http");

+		setModelObject(s);

+		target.add(this);

+		target.appendJavaScript("omServerPanelInit();");

+	}

+

+	@Override

+	protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) {

+		Server server = getModelObject();

+		if (server.getId() > 0) {

+			server = Application.getBean(ServerDao.class).get(

+					server.getId());

+		} else {

+			server = new Server();

+		}

+		setModelObject(server);

+		target.add(this);

+		target.appendJavaScript("omServerPanelInit();");

+	}

+

+	@Override

+	protected void onDeleteSubmit(AjaxRequestTarget target, Form<?> form) {

+		Application.getBean(ServerDao.class).delete(getModelObject(),

+				WebSession.getUserId());

+		this.setModelObject(new Server());

+		target.add(listContainer);

+		target.add(this);

+		target.appendJavaScript("omServerPanelInit();");

+	}

+

+	@Override

+	protected void onSaveError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+

+	@Override

+	protected void onNewError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+

+	@Override

+	protected void onRefreshError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+

+	@Override

+	protected void onDeleteError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/admin/servers/ServersPanel.html b/src/web/java/org/apache/openmeetings/web/admin/servers/ServersPanel.html
new file mode 100644
index 0000000..6b89bee
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/servers/ServersPanel.html
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+	<wicket:head>
+       <script type="text/javascript">
+           function omServerPanelInit() {
+               var documentHeight = $(document).height();
+               $('#adminForm').height(documentHeight-114);
+               $('#adminTable').height(documentHeight-144);
+           }
+       </script>
+    </wicket:head>
+	<wicket:panel>
+		<div class="adminPanel">
+			<div class="adminPanelColumnTable">
+				<span wicket:id="navigator">[dataview navigator]</span>
+				<table class="adminListTable">
+					<thead>
+						<tr>
+							<th class="three_column_layout_column1 ui-widget-header"><span wicket:id="orderById"></span><wicket:ommessage key="188" /></th>
+							<th class="three_column_layout_column2 ui-widget-header"><span wicket:id="orderByName"></span><wicket:ommessage key="1500" /></th>
+							<th class="three_column_layout_column3 ui-widget-header"><span wicket:id="orderByAddress"></span><wicket:ommessage key="1501" /></th>
+						</tr>	
+					</thead>
+				</table>
+				<div class="tableWrapper" id="adminTable">
+					<table class="adminListTable">
+						<tbody wicket:id="listContainer">	
+				    		<tr wicket:id="serverList">
+								<td class="three_column_layout_column1"><div class="three_column_layout_divcolumn1"><span wicket:id="id"></span></div></td>
+								<td class="three_column_layout_column2"><div class="three_column_layout_divcolumn2"><span wicket:id="name"></span></div></td>
+								<td class="three_column_layout_column3"><div class="three_column_layout_divcolumn3"><span wicket:id="address"></span></div></td>
+							</tr>
+						</tbody>
+					</table>
+				</div>
+			</div>
+			<div class="adminPanelColumnForm">
+				<form wicket:id="form" class="adminForm">
+					<div wicket:id="buttons"></div>
+					<div class="scrollcontent" id="adminForm">
+						<fieldset class="ui-widget-content">
+							<legend class="ui-widget-header"><wicket:ommessage key="1502" /></legend>
+							<div class="formelement">
+                                <label><wicket:ommessage key="1500" /></label><input type="text" wicket:id="name"/>
+				            </div>
+				            <div class="formelement">
+                                <label><wicket:ommessage key="1525" /></label><input type="checkbox" class="formcheckbox" wicket:id="active" />
+				            </div>
+				            <div class="formelement">
+                                <label><wicket:ommessage key="1501" /></label><input type="text" wicket:id="address"/>
+				            </div>
+				            <div class="formelement">
+                                <label><wicket:ommessage key="1519" /></label><input type="text" wicket:id="port"/>
+				            </div>
+				            <div class="formelement">
+                                <label><wicket:ommessage key="1520" /></label><input type="text" wicket:id="user"/>
+				            </div>
+				            <div class="formelement">
+                                <label><wicket:ommessage key="1521" /></label><input type="text" wicket:id="pass"/>
+				            </div>
+				            <div class="formelement">
+                                <label><wicket:ommessage key="1522" /></label><input type="text" wicket:id="webapp"/>
+				            </div>
+				            <div class="formelement">
+                                <label><wicket:ommessage key="1523" /></label><input type="text" wicket:id="protocol"/>
+				            </div>
+				            <div class="formelement">
+					            <div class="info-text"><wicket:ommessage key="1518" /></div>
+	                                <br/>
+                                <label><wicket:ommessage key="1517" /></label><span wicket:id="lastPing"/>
+                                <!-- br/>
+                                <label><wicket:ommessage key="1524" /></label><span wicket:id="pingRunning"/-->
+				            </div>
+                            <div class="formelement">
+                                <label><wicket:ommessage key="1110" /></label><span wicket:id="inserted"/>
+				            </div>
+                            <div class="formelement">
+                                <label><wicket:ommessage key="1111" /></label><span wicket:id="insertedby.login"/>
+				            </div>
+                            <div class="formelement">
+                                <label><wicket:ommessage key="1112" /></label><span wicket:id="updated"/>
+				            </div>
+                            <div class="formelement">
+                                <label><wicket:ommessage key="1113" /></label><span wicket:id="updatedby.login"/>
+				            </div>
+                            <div class="formelement">
+                                <label><wicket:ommessage key="270" /></label><textarea wicket:id="comment"/>
+				            </div>
+				        </fieldset>
+				    </div>
+				</form>
+			</div>
+		</div>
+	</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/admin/servers/ServersPanel.java b/src/web/java/org/apache/openmeetings/web/admin/servers/ServersPanel.java
new file mode 100644
index 0000000..07ce0ff
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/servers/ServersPanel.java
@@ -0,0 +1,102 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.admin.servers;

+

+import org.apache.openmeetings.db.dao.server.ServerDao;

+import org.apache.openmeetings.db.entity.server.Server;

+import org.apache.openmeetings.web.admin.AdminPanel;

+import org.apache.openmeetings.web.admin.SearchableDataView;

+import org.apache.openmeetings.web.common.PagedEntityListPanel;

+import org.apache.openmeetings.web.data.DataViewContainer;

+import org.apache.openmeetings.web.data.OmOrderByBorder;

+import org.apache.openmeetings.web.data.SearchableDataProvider;

+import org.apache.wicket.AttributeModifier;

+import org.apache.wicket.ajax.AjaxEventBehavior;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.markup.html.WebMarkupContainer;

+import org.apache.wicket.markup.html.basic.Label;

+import org.apache.wicket.markup.repeater.Item;

+

+/**

+ * Form component with list and form to manipulate {@link Server}

+ * 

+ * @author swagner

+ * 

+ */

+public class ServersPanel extends AdminPanel {

+	private static final long serialVersionUID = -2197334608577346569L;

+	final WebMarkupContainer listContainer = new WebMarkupContainer("listContainer");

+	private ServerForm form;

+	

+	@Override

+	public void onMenuPanelLoad(AjaxRequestTarget target) {

+		super.onMenuPanelLoad(target);

+		target.appendJavaScript("omServerPanelInit();");

+	}

+

+	@SuppressWarnings("unchecked")

+	public ServersPanel(String id) {

+		super(id);

+		SearchableDataView<Server> dataView = new SearchableDataView<Server>("serverList",

+				new SearchableDataProvider<Server>(ServerDao.class)) {

+			private static final long serialVersionUID = 8715559628755439596L;

+

+			@Override

+			protected void populateItem(final Item<Server> item) {

+				final Server server = item.getModelObject();

+				item.add(new Label("id", "" + server.getId()));

+				item.add(new Label("name", "" + server.getName()));

+				item.add(new Label("address", "" + server.getAddress()));

+				item.add(new AjaxEventBehavior("onclick") {

+					private static final long serialVersionUID = -8069413566800571061L;

+

+					protected void onEvent(AjaxRequestTarget target) {

+						form.setModelObject(server);

+						form.hideNewRecord();

+						target.add(form, listContainer);

+						target.appendJavaScript("omServerPanelInit();");

+					}

+				});

+				item.add(AttributeModifier.replace("class", "clickable ui-widget-content"

+						+ (server.getId().equals(form.getModelObject().getId()) ? " selected" : "")));

+			}

+		};

+		

+		add(listContainer.add(dataView).setOutputMarkupId(true));

+		PagedEntityListPanel navigator = new PagedEntityListPanel("navigator", dataView) {

+			private static final long serialVersionUID = 5097048616003411362L;

+

+			@Override

+			protected void onEvent(AjaxRequestTarget target) {

+				target.add(listContainer);

+			}

+		};

+		DataViewContainer<Server> container = new DataViewContainer<Server>(listContainer, dataView, navigator);

+		container.setLinks(new OmOrderByBorder<Server>("orderById", "id", container)

+				, new OmOrderByBorder<Server>("orderByName", "name", container)

+				, new OmOrderByBorder<Server>("orderByAddress", "address", container));

+		add(container.orderLinks);

+		add(navigator);

+		

+		form = new ServerForm("form", listContainer, new Server());

+		form.showNewRecord();

+        add(form);

+		

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/admin/users/UserForm.html b/src/web/java/org/apache/openmeetings/web/admin/users/UserForm.html
new file mode 100644
index 0000000..adaf792
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/users/UserForm.html
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<div wicket:id="buttons"></div>
+	<div class="scrollcontent" id="adminForm">
+		<fieldset class="ui-widget-content">
+			<legend class="ui-widget-header">
+				<wicket:ommessage key="143" />
+			</legend>
+			<div class="formelement">
+				<label><wicket:ommessage key="132" /></label><input type="text" wicket:id="login" />
+			</div>
+			<form wicket:id="general"></form>
+			<div class="formelement">
+				<label><wicket:ommessage key="45" /></label><select wicket:id="type"></select>
+			</div>
+			<div class="formelement">
+				<label><wicket:ommessage key="1308" /></label><span wicket:id="ownerId"></span>
+			</div>
+			<div class="formelement">
+				<label><wicket:ommessage key="1110" /></label><span wicket:id="starttime" />
+			</div>
+			<div class="formelement">
+				<label><wicket:ommessage key="1112" /></label><span wicket:id="updatetime" />
+			</div>
+			<div class="formelement">
+				<div class="info-text">
+					<wicket:ommessage key="1149" />
+				</div>
+				<br /> <label><wicket:ommessage key="1148" /></label><input class="formcheckbox" type="checkbox"
+					wicket:id="forceTimeZoneCheck" />
+			</div>
+			<div class="formelement">
+				<label><wicket:ommessage key="158" /></label><select wicket:id="status" />
+			</div>
+			<div class="formelement">
+				<label><wicket:ommessage key="169" /></label><select wicket:id="level_id" />
+			</div>
+		</fieldset>
+		<fieldset class="ui-widget-content">
+			<legend class="ui-widget-header">
+				<wicket:ommessage key="1159" />
+			</legend>
+			<form wicket:id="comunity"></form>
+		</fieldset>
+	</div>
+</wicket:panel>
+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/admin/users/UserForm.java b/src/web/java/org/apache/openmeetings/web/admin/users/UserForm.java
new file mode 100644
index 0000000..a56a736
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/users/UserForm.java
@@ -0,0 +1,233 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.admin.users;

+

+import static org.apache.openmeetings.db.util.UserHelper.getMinLoginLength;

+import static org.apache.openmeetings.util.OpenmeetingsVariables.WEB_DATE_PATTERN;

+import static org.apache.openmeetings.web.app.Application.getBean;

+import static org.apache.openmeetings.web.app.WebSession.getUserId;

+import static org.apache.wicket.datetime.markup.html.basic.DateLabel.forDatePattern;

+import static org.apache.wicket.validation.validator.StringValidator.minimumLength;

+

+import java.util.Arrays;

+

+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;

+import org.apache.openmeetings.db.dao.user.AdminUserDao;

+import org.apache.openmeetings.db.entity.user.User;

+import org.apache.openmeetings.db.entity.user.User.Type;

+import org.apache.openmeetings.web.admin.AdminBaseForm;

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.openmeetings.web.common.ComunityUserForm;

+import org.apache.openmeetings.web.common.GeneralUserForm;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.ajax.form.AjaxFormValidatingBehavior;

+import org.apache.wicket.markup.html.WebMarkupContainer;

+import org.apache.wicket.markup.html.basic.Label;

+import org.apache.wicket.markup.html.form.CheckBox;

+import org.apache.wicket.markup.html.form.DropDownChoice;

+import org.apache.wicket.markup.html.form.Form;

+import org.apache.wicket.markup.html.form.IChoiceRenderer;

+import org.apache.wicket.markup.html.form.RequiredTextField;

+import org.apache.wicket.markup.html.panel.IMarkupSourcingStrategy;

+import org.apache.wicket.markup.html.panel.PanelMarkupSourcingStrategy;

+import org.apache.wicket.model.CompoundPropertyModel;

+import org.apache.wicket.model.Model;

+import org.apache.wicket.util.time.Duration;

+

+import com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog;

+

+/**

+ * CRUD operations in form for {@link User}

+ * 

+ * @author swagner

+ * 

+ */

+public class UserForm extends AdminBaseForm<User> {

+	private static final long serialVersionUID = 1L;

+	private WebMarkupContainer listContainer;

+	private GeneralUserForm generalForm;

+	private RequiredTextField<String> login;

+	private MessageDialog warning;

+

+	public UserForm(String id, WebMarkupContainer listContainer, final User user, MessageDialog warning) {

+		super(id, new CompoundPropertyModel<User>(user));

+		setOutputMarkupId(true);

+		this.listContainer = listContainer;

+		this.warning = warning;

+		// Add form fields

+		addFormFields();

+

+		// attach an ajax validation behavior to all form component's keydown

+		// event and throttle it down to once per second

+		AjaxFormValidatingBehavior.addToAllFormComponents(this, "keydown", Duration.ONE_SECOND);

+	}

+

+	@Override

+	protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {

+		User u = getModelObject();

+		try {

+			u = getBean(AdminUserDao.class).update(u, generalForm.getPasswordField().getConvertedInput(), getUserId());

+		} catch (Exception e) {

+			// FIXME update feedback with the error details

+		}

+		setModelObject(u);

+		hideNewRecord();

+		target.add(this);

+		target.add(listContainer);

+		target.appendJavaScript("omUserPanelInit();");

+		if (u.getOrganisation_users().isEmpty()) {

+			warning.open(target);

+		}

+	}

+

+	@Override

+	protected void onNewSubmit(AjaxRequestTarget target, Form<?> form) {

+		AdminUserDao usersDaoImpl = getBean(AdminUserDao.class);

+		setModelObject(usersDaoImpl.getNewUserInstance(usersDaoImpl.get(getUserId())));

+		target.add(this);

+		target.appendJavaScript("omUserPanelInit();");

+	}

+

+	@Override

+	protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) {

+		User user = getModelObject();

+		if (user.getUser_id() != null) {

+			user = getBean(AdminUserDao.class).get(user.getUser_id());

+		} else {

+			user = new User();

+		}

+		setModelObject(user);

+		target.add(this);

+		target.appendJavaScript("omUserPanelInit();");

+	}

+

+	@Override

+	protected void onDeleteSubmit(AjaxRequestTarget target, Form<?> form) {

+		AdminUserDao usersDaoImpl = getBean(AdminUserDao.class);

+		usersDaoImpl.delete(this.getModelObject(), getUserId());

+		this.setModelObject(usersDaoImpl.getNewUserInstance(usersDaoImpl.get(getUserId())));

+		target.add(listContainer);

+		target.add(this);

+		target.appendJavaScript("omUserPanelInit();");

+	}

+

+	/**

+	 * Add the fields to the form

+	 */

+	private void addFormFields() {

+		ConfigurationDao cfgDao = getBean(ConfigurationDao.class);

+		login = new RequiredTextField<String>("login");

+		login.setLabel(Model.of(WebSession.getString(132)));

+		add(login.add(minimumLength(getMinLoginLength(cfgDao))));

+

+		add(generalForm = new GeneralUserForm("general", getModel(), true));

+

+		add(new DropDownChoice<Type>("type", Arrays.asList(Type.values())));

+		add(new Label("ownerId"));

+		add(forDatePattern("starttime", WEB_DATE_PATTERN));

+		add(forDatePattern("updatetime", WEB_DATE_PATTERN));

+

+		add(new CheckBox("forceTimeZoneCheck"));

+

+		final String field159 = WebSession.getString(159);

+		final String field160 = WebSession.getString(160);

+

+		add(new DropDownChoice<Integer>("status", Arrays.asList(0, 1), new IChoiceRenderer<Integer>() {

+

+			private static final long serialVersionUID = 1L;

+

+			public Object getDisplayValue(Integer id) {

+				if (id.equals(0)) {

+					return field159;

+				} else if (id.equals(1)) {

+					return field160;

+				}

+				return null;

+			}

+

+			public String getIdValue(Integer id, int index) {

+				return "" + id;

+			}

+

+		}));

+

+		final String field166 = WebSession.getString(166);

+		final String field167 = WebSession.getString(167);

+		final String field168 = WebSession.getString(168);

+		final String field1311 = WebSession.getString(1311);

+

+		add(new DropDownChoice<Long>("level_id", Arrays.asList(1L, 2L, 3L, 4L), new IChoiceRenderer<Long>() {

+

+			private static final long serialVersionUID = 1L;

+

+			public Object getDisplayValue(Long id) {

+				if (id.equals(1L)) {

+					return field166;

+				} else if (id.equals(2L)) {

+					return field167;

+				} else if (id.equals(3L)) {

+					return field168;

+				} else if (id.equals(4L)) {

+					return field1311;

+				}

+				return null;

+			}

+

+			public String getIdValue(Long id, int index) {

+				return "" + id;

+			}

+

+		}));

+		add(new ComunityUserForm("comunity", getModel()));

+	}

+

+	@Override

+	protected void onValidate() {

+		if(!getBean(AdminUserDao.class).checkUserLogin(login.getConvertedInput(), getModelObject().getUser_id())) {

+			error(WebSession.getString(105));

+		}

+	}

+

+	@Override

+	protected void onSaveError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+

+	@Override

+	protected void onNewError(AjaxRequestTarget target, Form<?> form) {

+		//ignore validation errors

+		onNewSubmit(target, form);

+	}

+

+	@Override

+	protected void onRefreshError(AjaxRequestTarget target, Form<?> form) {

+		// TODO Auto-generated method stub

+	}

+

+	@Override

+	protected void onDeleteError(AjaxRequestTarget target, Form<?> form) {

+		//ignore validation errors

+		onDeleteSubmit(target, form);

+	}

+

+	@Override

+	protected IMarkupSourcingStrategy newMarkupSourcingStrategy() {

+		return new PanelMarkupSourcingStrategy(false);

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/admin/users/UsersPanel.html b/src/web/java/org/apache/openmeetings/web/admin/users/UsersPanel.html
new file mode 100644
index 0000000..f40c43f
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/users/UsersPanel.html
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:head>
+	<script type="text/javascript">
+		function omUserPanelInit() {
+			var documentHeight = $(document).height();
+			$('#adminForm').height(documentHeight - 114);
+			$('#adminTable').height(documentHeight - 144);
+		}
+	</script>
+</wicket:head>
+<wicket:panel>
+	<div class="adminPanel">
+		<div class="adminPanelColumnTable">
+			<span wicket:id="navigator">[dataview navigator]</span>
+			<table class="adminListTable">
+				<thead>
+					<tr>
+						<th class="four_column_layout_column1 ui-widget-header"><span wicket:id="orderById"></span> <wicket:ommessage key="146" /></th>
+						<th class="four_column_layout_column2 ui-widget-header"><span wicket:id="orderByLogin"></span> <wicket:ommessage key="147" /></th>
+						<th class="four_column_layout_column3 ui-widget-header"><span wicket:id="orderByFirstName"></span> <wicket:ommessage key="148" /></th>
+						<th class="four_column_layout_column4 ui-widget-header"><span wicket:id="orderByLastName"></span> <wicket:ommessage key="149" /></th>
+					</tr>
+				</thead>
+			</table>
+			<div class="tableWrapper" id="adminTable">
+				<table class="adminListTable">
+					<tbody wicket:id="listContainer">
+						<tr wicket:id="userList">
+							<td class="four_column_layout_column1"><div
+									class="four_column_layout_divcolumn1">
+									<span wicket:id="userId"></span>
+								</div></td>
+							<td class="four_column_layout_column2"><div
+									class="four_column_layout_divcolumn2">
+									<span wicket:id="login"></span>
+								</div></td>
+							<td class="four_column_layout_column3"><div
+									class="four_column_layout_divcolumn3">
+									<span wicket:id="firstName"></span>
+								</div></td>
+							<td class="four_column_layout_column4"><div
+									class="four_column_layout_divcolumn4">
+									<span wicket:id="lastName"></span>
+								</div></td>
+						</tr>
+					</tbody>
+				</table>
+			</div>
+		</div>
+		<div class="adminPanelColumnForm">
+			<form wicket:id="form" class="adminForm"/>
+		</div>
+	</div>
+	<div wicket:id="warning"></div>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/admin/users/UsersPanel.java b/src/web/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
new file mode 100644
index 0000000..8bf183b
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
@@ -0,0 +1,115 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.admin.users;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.web.admin.AdminPanel;
+import org.apache.openmeetings.web.admin.SearchableDataView;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.common.PagedEntityListPanel;
+import org.apache.openmeetings.web.data.DataViewContainer;
+import org.apache.openmeetings.web.data.OmOrderByBorder;
+import org.apache.openmeetings.web.data.SearchableDataProvider;
+import org.apache.wicket.AttributeModifier;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.repeater.Item;
+
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButtons;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogIcon;
+import com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog;
+
+public class UsersPanel extends AdminPanel {
+	private static final long serialVersionUID = -4463107742579790120L;
+	final WebMarkupContainer listContainer = new WebMarkupContainer("listContainer");
+	private final MessageDialog warning = new MessageDialog("warning", WebSession.getString(797), WebSession.getString(343), DialogButtons.OK, DialogIcon.WARN) {
+		private static final long serialVersionUID = 1L;
+
+		public void onClose(AjaxRequestTarget target, DialogButton button) {
+		}
+	};
+
+	@Override
+	public void onMenuPanelLoad(AjaxRequestTarget target) {
+		super.onMenuPanelLoad(target);
+		target.appendJavaScript("omUserPanelInit();");
+	}
+
+	private UserForm form;
+
+	@SuppressWarnings("unchecked")
+	public UsersPanel(String id) {
+		super(id);
+
+		final SearchableDataView<User> dataView = new SearchableDataView<User>("userList"
+				, new SearchableDataProvider<User>(AdminUserDao.class)) {
+			private static final long serialVersionUID = 8715559628755439596L;
+
+			@Override
+			protected void populateItem(Item<User> item) {
+				final User u = item.getModelObject();
+				item.add(new Label("userId", "" + u.getUser_id()));
+				item.add(new Label("login", u.getLogin()));
+				item.add(new Label("firstName", u.getFirstname()));
+				item.add(new Label("lastName", u.getLastname()));
+				item.add(new AjaxEventBehavior("onclick") {
+					private static final long serialVersionUID = -8069413566800571061L;
+
+					protected void onEvent(AjaxRequestTarget target) {
+						form.setModelObject(u);
+						form.hideNewRecord();
+						target.add(form, listContainer);
+						//re-initialize height
+						target.appendJavaScript("omUserPanelInit();");
+					}
+				});
+				item.add(AttributeModifier.append("class", "clickable ui-widget-content"
+						+ (u.getUser_id().equals(form.getModelObject().getUser_id()) ? " selected" : "")));
+			}
+		};
+		add(listContainer.add(dataView).setOutputMarkupId(true));
+		PagedEntityListPanel navigator = new PagedEntityListPanel("navigator", dataView) {
+			private static final long serialVersionUID = 5097048616003411362L;
+
+			@Override
+			protected void onEvent(AjaxRequestTarget target) {
+				target.add(listContainer);
+			}
+		};
+		DataViewContainer<User> container = new DataViewContainer<User>(listContainer, dataView, navigator);
+		container.setLinks(new OmOrderByBorder<User>("orderById", "user_id", container)
+				, new OmOrderByBorder<User>("orderByLogin", "login", container)
+				, new OmOrderByBorder<User>("orderByFirstName", "firstname", container)
+				, new OmOrderByBorder<User>("orderByLastName", "lastname", container));
+		add(container.orderLinks);
+		add(navigator);
+
+		AdminUserDao usersDaoImpl = getBean(AdminUserDao.class);
+		form = new UserForm("form", listContainer, usersDaoImpl.getNewUserInstance(usersDaoImpl.get(getUserId())), warning);
+		form.showNewRecord();
+		add(form, warning);
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/app/Application.java b/src/web/java/org/apache/openmeetings/web/app/Application.java
new file mode 100644
index 0000000..e365e33
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/app/Application.java
@@ -0,0 +1,281 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.app;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import static org.red5.logging.Red5LoggerFactory.getLogger;
+import static org.springframework.web.context.WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE;
+import static org.springframework.web.context.support.WebApplicationContextUtils.getWebApplicationContext;
+
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+
+import javax.servlet.ServletContext;
+
+import org.apache.openmeetings.db.dao.label.FieldLanguagesValuesDao;
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.util.InitializationContainer;
+import org.apache.openmeetings.web.pages.ActivatePage;
+import org.apache.openmeetings.web.pages.MainPage;
+import org.apache.openmeetings.web.pages.NotInitedPage;
+import org.apache.openmeetings.web.pages.RecordingPage;
+import org.apache.openmeetings.web.pages.ResetPage;
+import org.apache.openmeetings.web.pages.SwfPage;
+import org.apache.openmeetings.web.pages.auth.SignInPage;
+import org.apache.openmeetings.web.pages.install.InstallWizardPage;
+import org.apache.openmeetings.web.user.dashboard.PrivateRoomsWidgetDescriptor;
+import org.apache.openmeetings.web.user.dashboard.RssWidgetDescriptor;
+import org.apache.openmeetings.web.user.dashboard.StartWidgetDescriptor;
+import org.apache.openmeetings.web.user.dashboard.WelcomeWidgetDescriptor;
+import org.apache.openmeetings.web.util.AviRecordingResourceReference;
+import org.apache.openmeetings.web.util.FlvRecordingResourceReference;
+import org.apache.openmeetings.web.util.JpgRecordingResourceReference;
+import org.apache.openmeetings.web.util.Mp4RecordingResourceReference;
+import org.apache.openmeetings.web.util.OggRecordingResourceReference;
+import org.apache.openmeetings.web.util.UserDashboardPersister;
+import org.apache.wicket.Page;
+import org.apache.wicket.RestartResponseException;
+import org.apache.wicket.authroles.authentication.AbstractAuthenticatedWebSession;
+import org.apache.wicket.authroles.authentication.AuthenticatedWebApplication;
+import org.apache.wicket.core.request.handler.BookmarkableListenerInterfaceRequestHandler;
+import org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler;
+import org.apache.wicket.core.request.mapper.MountedMapper;
+import org.apache.wicket.markup.MarkupFactory;
+import org.apache.wicket.markup.MarkupParser;
+import org.apache.wicket.markup.MarkupResourceStream;
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.protocol.http.WebApplication;
+import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.Url;
+import org.apache.wicket.request.component.IRequestablePage;
+import org.apache.wicket.request.mapper.info.PageComponentInfo;
+import org.apache.wicket.request.mapper.parameter.PageParametersEncoder;
+import org.apache.wicket.settings.IPageSettings;
+import org.apache.wicket.util.collections.ConcurrentHashSet;
+import org.apache.wicket.util.tester.WicketTester;
+import org.slf4j.Logger;
+import org.springframework.web.context.support.XmlWebApplicationContext;
+
+import ro.fortsoft.wicket.dashboard.WidgetRegistry;
+import ro.fortsoft.wicket.dashboard.web.DashboardContext;
+import ro.fortsoft.wicket.dashboard.web.DashboardContextInjector;
+import ro.fortsoft.wicket.dashboard.web.DashboardSettings;
+
+public class Application extends AuthenticatedWebApplication {
+	private static final Logger log = getLogger(Application.class, webAppRootKey);
+	private static boolean isInstalled;
+	private static Map<Long, Set<String>> ONLINE_USERS = new ConcurrentHashMap<Long, Set<String>>();
+	private DashboardContext dashboardContext;
+	private static String appName;
+	
+	@Override
+	protected void init() {
+		appName = super.getName();
+		getSecuritySettings().setAuthenticationStrategy(new OmAuthenticationStrategy());
+		IPageSettings pageSettings = getPageSettings();
+		pageSettings.addComponentResolver(new MessageResolver());
+		pageSettings.addComponentResolver(new MessageTagHandler());
+		getMarkupSettings().setMarkupFactory(new MarkupFactory(){
+			@Override
+			public MarkupParser newMarkupParser(MarkupResourceStream resource) {
+				MarkupParser mp = super.newMarkupParser(resource);
+				mp.add(new MessageTagHandler());
+				return mp;
+			}
+		});
+		
+		//Add custom resource loader at the beginning, so it will be checked first in the 
+		//chain of Resource Loaders, if not found it will search in Wicket's internal 
+		//Resource Loader for a the property key
+		getResourceSettings().getStringResourceLoaders().add(0, new LabelResourceLoader());
+		
+		super.init();
+		
+		// register some widgets
+		dashboardContext = new DashboardContext();
+		dashboardContext.setDashboardPersiter(new UserDashboardPersister());
+		WidgetRegistry widgetRegistry = dashboardContext.getWidgetRegistry();
+		widgetRegistry.registerWidget(new PrivateRoomsWidgetDescriptor());
+		widgetRegistry.registerWidget(new WelcomeWidgetDescriptor());
+		widgetRegistry.registerWidget(new StartWidgetDescriptor());
+		widgetRegistry.registerWidget(new RssWidgetDescriptor());
+		// add dashboard context injector
+		getComponentInstantiationListeners().add(new DashboardContextInjector(dashboardContext));
+		DashboardSettings dashboardSettings = DashboardSettings.get();
+		dashboardSettings.setIncludeJQuery(false);
+		dashboardSettings.setIncludeJQueryUI(false);
+		
+		getRootRequestMapperAsCompound().add(new NoVersionMapper(getHomePage()));
+		getRootRequestMapperAsCompound().add(new NoVersionMapper("notinited", NotInitedPage.class));
+		mountPage("swf", SwfPage.class);
+		mountPage("install", InstallWizardPage.class);
+		mountPage("signin", getSignInPageClass());
+		mountPage("activate", ActivatePage.class);
+		mountPage("reset", ResetPage.class);
+		mountPage("/recording/${hash}", RecordingPage.class);
+		mountResource("/recordings/avi/${id}", new AviRecordingResourceReference());
+		mountResource("/recordings/flv/${id}", new FlvRecordingResourceReference());
+		mountResource("/recordings/mp4/${id}", new Mp4RecordingResourceReference());
+		mountResource("/recordings/ogg/${id}", new OggRecordingResourceReference());
+		mountResource("/recordings/jpg/${id}", new JpgRecordingResourceReference()); //should be in sync with VideoPlayer
+	}
+
+	private static class NoVersionMapper extends MountedMapper {
+		public NoVersionMapper(final Class<? extends IRequestablePage> pageClass) {
+			this("/", pageClass);
+		}
+		
+		public NoVersionMapper(String mountPath, final Class<? extends IRequestablePage> pageClass) {
+			super(mountPath, pageClass, new PageParametersEncoder());
+		}
+
+		@Override
+		protected void encodePageComponentInfo(Url url, PageComponentInfo info) {
+			//Does nothing
+		}
+		
+		@Override
+		public Url mapHandler(IRequestHandler requestHandler) {
+			if (requestHandler instanceof ListenerInterfaceRequestHandler || requestHandler instanceof BookmarkableListenerInterfaceRequestHandler) {
+				return null;
+			} else {
+				return super.mapHandler(requestHandler);
+			}
+		}
+	}
+
+	public static OmAuthenticationStrategy getAuthenticationStrategy() {
+		return (OmAuthenticationStrategy)get().getSecuritySettings().getAuthenticationStrategy();
+	}
+	
+	@Override
+	public Class<? extends Page> getHomePage() {
+		return MainPage.class;
+	}
+
+	@Override
+	protected Class<? extends AbstractAuthenticatedWebSession> getWebSessionClass() {
+		return WebSession.class;
+	}
+
+	@Override
+	public Class<? extends WebPage> getSignInPageClass() {
+		return SignInPage.class;
+	}
+	
+	public static Application get() {
+		return (Application) WebApplication.get();
+	}
+	
+	public static DashboardContext getDashboardContext() {
+		return get().dashboardContext;
+	}
+	
+	public static void addOnlineUser(long userId, String sessionId) {
+		if (!ONLINE_USERS.containsKey(userId)) {
+			ONLINE_USERS.put(userId, new ConcurrentHashSet<String>());
+		}
+		ONLINE_USERS.get(userId).add(sessionId);
+	}
+	
+	public static void removeOnlineUser(long userId, String sessionId) {
+		if (ONLINE_USERS.containsKey(userId)) {
+			Set<String> sessions = ONLINE_USERS.get(userId);
+			if (sessions.isEmpty()) {
+				ONLINE_USERS.remove(userId);
+			} else if (sessions.contains(sessionId)) {
+				if (sessions.size() > 1) {
+					sessions.remove(sessionId);
+				} else {
+					ONLINE_USERS.remove(userId);
+				}
+			}
+		}
+	}
+	
+	public static boolean isUserOnline(long userId) {
+		return ONLINE_USERS.containsKey(userId);
+	}
+	
+	//TODO need more safe way FIXME
+	public <T> T _getBean(Class<T> clazz) {
+		return getWebApplicationContext(getServletContext()).getBean(clazz);
+	}
+	
+	public static boolean isInstalled() {
+		boolean result = isInstalled;
+		if (!isInstalled) {
+			if (InitializationContainer.initComplete) {
+				//TODO can also check crypt class here
+				isInstalled = result = get()._getBean(AdminUserDao.class).count() > 0
+						&& get()._getBean(FieldLanguagesValuesDao.class).count() > 0;
+			}
+		}
+		return result;
+	}
+	
+	public static <T> T getBean(Class<T> clazz) {
+		if (InitializationContainer.initComplete) {
+			if (!isInstalled()) {
+				throw new RestartResponseException(InstallWizardPage.class);
+			}
+			return get()._getBean(clazz);
+		} else {
+			throw new RestartResponseException(NotInitedPage.class);
+		}
+	}
+	
+	public static WicketTester getWicketTester() {
+		return getWicketTester(-1);
+	}
+	
+	public static WicketTester getWicketTester(long langId) {
+		Application app = new Application();
+        
+		WicketTester tester = new WicketTester(app);
+		ServletContext sc = app.getServletContext();
+        XmlWebApplicationContext xmlContext = new XmlWebApplicationContext();
+        xmlContext.setConfigLocation("classpath:openmeetings-applicationContext.xml");
+        xmlContext.setServletContext(sc);
+        xmlContext.refresh();
+        sc.setAttribute(ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, xmlContext);
+        if (langId > 0) {
+        	WebSession.get().setLanguage(langId);
+        }
+        InitializationContainer.initComplete = true;
+        return tester;
+	}
+	
+	public static void destroy(WicketTester tester) {
+		if (tester != null) {
+			ServletContext sc = tester.getServletContext();
+			try {
+				((XmlWebApplicationContext)sc.getAttribute(ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE)).close();
+			} catch (Exception e) {
+				log.error("Unexpected error while destroying XmlWebApplicationContext", e);
+			}
+			tester.destroy();
+		}
+	}
+	
+	public static String getAppName() {
+		return appName;
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/app/Application.properties.xml b/src/web/java/org/apache/openmeetings/web/app/Application.properties.xml
new file mode 100644
index 0000000..3ddb15b
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/app/Application.properties.xml
@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+<properties>
+	<entry key="install.wizard.welcome.panel"><![CDATA[
+	<ol>
+		<li>
+			<h4>
+				<a id="Recommendation_for_production_environment"></a>Recommendation
+				for production environment<a target="_blank"
+					href="#Recommendation_for_production_environment"
+					class="section_anchor"></a>
+			</h4>
+		<blockquote>
+			By default {0} uses the integrated Apache Derby database. For
+			production environment you should consider using <a target="_blank"
+				href="http://openmeetings.apache.org/MySQLConfig.html">MySQL</a>, <a
+				target="_blank"
+				href="http://openmeetings.apache.org/PostgresConfig.html">Postgres</a>
+			or for example <a target="_blank"
+				href="http://openmeetings.apache.org/IBMDB2Config.html">IBM DB2</a>
+			or <a href="http://openmeetings.apache.org/OracleConfig.html"
+				target="_blank">Oracle</a>
+		</blockquote>
+		</li>
+		<li><h4>
+				<a id="Enabling_Image_Upload_and_import_to_whiteboard"></a>Enabling
+				Image Upload and import to whiteboard<a
+					href="#Enabling_Image_Upload_and_import_to_whiteboard"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li>Install <strong>ImageMagick</strong> on the server, you can
+					get more information on <a target="_blank"
+					href="http://www.imagemagick.org" rel="nofollow">http://www.imagemagick.org</a>
+					regarding installation. The instructions for installation can be
+					found there <a target="_blank"
+					href="http://www.imagemagick.org/script/binary-releases.php"
+					rel="nofollow">http://www.imagemagick.org/script/binary-releases.php</a>,
+					however on most linux systems you can get it via your favorite
+					package managers (apt-get it)
+				</li>
+			</ul>
+		</li>
+		<li><h4>
+				<a id="Enabling_import_of_PDFs_into_whiteboard"></a>Enabling
+				import of PDFs into whiteboard<a
+					href="#Enabling_import_of_PDFs_into_whiteboard"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li>Install <strong>GhostScript</strong> on the server, you can
+					get more information on <a target="_blank"
+					href="http://pages.cs.wisc.edu/%7Eghost/" rel="nofollow">http://pages.cs.wisc.edu/~ghost/</a>
+					regarding installation. The instructions for installation can be
+					found there, however on most linux systems you can get it via your
+					favorite package managers (apt-get it).
+				</li>
+				<li>Install <strong>SWFTools</strong> on the server, you can get
+					more information on <a target="_blank"
+					href="http://www.swftools.org/" rel="nofollow">http://www.swftools.org/</a>
+					regarding installation. Some of the Linux distributions already have
+					it in there package manager see <a target="_blank"
+					href="http://packages.debian.org/unstable/utils/swftools"
+					rel="nofollow">http://packages.debian.org/unstable/utils/swftools</a>),
+					the recommended version of <strong>SWFTools</strong> is 0.9 as prior
+					version have a bug that does lead to wrong object dimensions in the
+					Whiteboard
+				</li>
+		</ul>
+		</li>
+		<li><h4>
+				<a
+					id="Enabling_import_of_.doc,_.docx,_.ppt,_.pptx,_..._all_Office_Docu"></a>Enabling
+				import of .doc, .docx, .ppt, .pptx, ... all Office Documents into
+				whitebaord<a
+					href="#Enabling_import_of_.doc,_.docx,_.ppt,_.pptx,_..._all_Office_Docu"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li><strong>OpenOffice-Service</strong> started and listening on
+					port 8100, see <a target="_blank"
+					href="http://openmeetings.apache.org/OpenOfficeConverter.html">OpenOfficeConverter</a>
+					for details</li>
+			</ul>
+		</li>
+		<li><h4>
+				<a
+					id="Enabling_Recording_and_import_of_.avi,_.flv,_.mov_and_.mp4_into"></a>Enabling
+				Recording and import of .avi, .flv, .mov and .mp4 into whiteboard<a
+					href="#Enabling_Recording_and_import_of_.avi,_.flv,_.mov_and_.mp4_into"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li>Install <strong>FFMpeg</strong>. You should get FFMPEG in an
+					up to date copy! For Windows you can download a Build for example
+					from <a target="_blank" href="http://ffmpeg.arrozcru.org/builds/"
+					rel="nofollow">http://ffmpeg.arrozcru.org/builds/</a> Linux or OSx
+					Users should be able to use one of the various Installation
+					Instructions on the Web. You need to enable libmp3lame!
+				</li>
+				<li>Install <strong>SoX</strong> <a
+					href="http://sox.sourceforge.net/" target="_BLANK">http://sox.sourceforge.net/</a>.
+					You should install SoX in a up to date copy! SoX 12.xx will NOT
+					work!
+				</li>
+			</ul>
+		</li>
+	</ol>
+
+	<br />
+	<b> <span style="font-size: 1.2em">If you have further
+			questions or need support in installation or hosting:</span></b>
+	<br />
+	<br />
+
+	<b><span style="font-size: 1.2em">Community-Support:</span></b>
+	<br />
+	<br />
+	<span style="font-size: 1.1em"><a
+		href="http://openmeetings.apache.org/mail-lists.html"
+		target="_blank">Mailing lists</a></span>
+	<br />
+	<br />
+
+	<b> <span style="font-size: 1.2em">Commercial-Support:</span></b>
+	<br />
+	<br />
+	<span style="font-size: 1.1em"><a
+		href="http://openmeetings.apache.org/commercial-support.html"
+		target="_blank">Commercial-Support</a></span>
+
+	<br />
+	]]></entry>
+	<entry key="install.wizard.params.step1.userdata">Userdata</entry>
+	<entry key="install.wizard.params.step1.username">Username</entry>
+	<entry key="install.wizard.params.step1.username.title">Enter a username</entry>
+	<entry key="install.wizard.params.step1.password">Userpass</entry>
+	<entry key="install.wizard.params.step1.password.title">Enter a password</entry>
+	<entry key="install.wizard.params.step1.email">EMail</entry>
+	<entry key="install.wizard.params.step1.email.title">Enter a EMail</entry>
+	<entry key="install.wizard.params.step1.tz">User Time Zone</entry>
+	<entry key="install.wizard.params.step1.groupdata">Organisation(Domains)</entry>
+	<entry key="install.wizard.params.step1.group">Name</entry>
+	<entry key="install.wizard.params.step1.group.title">Enter a default Organisation</entry>
+
+	<entry key="install.wizard.params.step2.configuration">Configuration</entry>
+	<entry key="install.wizard.params.step2.allowFrontendRegister">Allow self-registering (allow_frontend_register)</entry>
+	<entry key="install.wizard.params.step2.sendEmailAtRegister">Send Email to new registered Users (sendEmailAtRegister)</entry>
+	<entry key="install.wizard.params.step2.sendEmailWithVerficationCode">New Users need to verify their EMail (sendEmailWithVerficationCode)</entry>
+	<entry key="install.wizard.params.step2.createDefaultRooms">Default Rooms of all types will be created</entry>
+	<entry key="install.wizard.params.step2.mailReferer">Mail-Referer (system_email_addr)</entry>
+	<entry key="install.wizard.params.step2.mailReferer.title">Enter a Referer</entry>
+	<entry key="install.wizard.params.step2.smtpServer">SMTP-Server (smtp_server)</entry>
+	<entry key="install.wizard.params.step2.smtpServer.title">Enter a SMTP-Server</entry>
+	<entry key="install.wizard.params.step2.smtpPort">SMTP-Server Port(default Smtp-Server Port is 25) (smtp_port)</entry>
+	<entry key="install.wizard.params.step2.smtpPort.title">Enter a SMTP-Server.Port normally 25</entry>
+	<entry key="install.wizard.params.step2.mailAuthName">SMTP-Username (email_username)</entry>
+	<entry key="install.wizard.params.step2.mailAuthName.title">Enter the mail-username</entry>
+	<entry key="install.wizard.params.step2.mailAuthPass">SMTP-Userpass (email_userpass)</entry>
+	<entry key="install.wizard.params.step2.mailAuthPass.title">Enter the mail-userpass</entry>
+	<entry key="install.wizard.params.step2.mailUseTls">Enable TLS in Mail Server Auth</entry>
+	<entry key="install.wizard.params.step2.replyToOrganizer">Set inviter's email
+					address as ReplyTo in email invitations (inviter.email.as.replyto)</entry>
+	<entry key="install.wizard.params.step2.defaultLangId">Default Language</entry>
+	<entry key="install.wizard.params.step2.defaultExportFont">Default Font for Export [default_export_font]</entry>
+
+	<entry key="install.wizard.params.step3.converters">Converters</entry>
+	<entry key="install.wizard.params.step3.seeAlso"> see also</entry>
+	<entry key="install.wizard.params.step3.installation">Installation</entry>
+	<entry key="install.wizard.params.step3.swfZoom">SWFTools Zoom</entry>
+	<entry key="install.wizard.params.step3.swfZoom.title">Enter the dpi that swftools will use for PDF to SWF conversion</entry>
+	<entry key="install.wizard.params.step3.swfZoom.text">DPI that swftools will use for PDF to SWF conversion (default is 100)</entry>
+	<entry key="install.wizard.params.step3.swfJpegQuality">SWFTools JPEG Quality</entry>
+	<entry key="install.wizard.params.step3.swfJpegQuality.title">Enter the quality of embedded jpeg pictures to quality. 0 is worst (small), 100 is best (big). (default:85)</entry>
+	<entry key="install.wizard.params.step3.swfJpegQuality.text">Enter the quality of embedded jpeg pictures to quality. 0 is worst (small),
+				100 is best (big). (default:85)</entry>
+	<entry key="install.wizard.params.step3.swfPath">SWFTools Path</entry>
+	<entry key="install.wizard.params.step3.swfPath.title">Enter the path to swftools for example C:/swftools (Windows) or leave blank if swftools is a known to your system path</entry>
+	<entry key="install.wizard.params.step3.swfPath.text">
+		You can test if swftools is installed into system path by
+		opening a shell or cmd-prompt and type pdf2swf If this shows
+		a list of options leave this field blank otherwise you have to
+		specify the path to pdf2swf on your system
+	</entry>
+	<entry key="install.wizard.params.step3.imageMagicPath">ImageMagick Path</entry>
+	<entry key="install.wizard.params.step3.imageMagicPath.title">Enter the path to ImageMagick, leave blank if ImageMagick is successfully installed to system-path</entry>
+	<entry key="install.wizard.params.step3.imageMagicPath.text"></entry>
+	<entry key="install.wizard.params.step3.ffmpegPath">FFMPEG Path</entry>
+	<entry key="install.wizard.params.step3.ffmpegPath.title">Enter the path to FFMPEG, leave blank if FFMPEG is successfully installed to system-path</entry>
+	<entry key="install.wizard.params.step3.ffmpegPath.text"></entry>
+	<entry key="install.wizard.params.step3.soxPath">SoX Path</entry>
+	<entry key="install.wizard.params.step3.soxPath.title">Enter the path to SoX, leave blank if SoX is successfully installed to system-path</entry>
+	<entry key="install.wizard.params.step3.soxPath.text"></entry>
+	<entry key="install.wizard.params.step3.jodPath">JOD Path</entry>
+	<entry key="install.wizard.params.step3.jodPath.title">The path to JOD library (http://code.google.com/p/jodconverter), configure the path to point to the lib directory of JOD that contains also the jodconverter-core-version.jar</entry>
+	<entry key="install.wizard.params.step3.jodPath.text"></entry>
+	<entry key="install.wizard.params.step3.officePath">OpenOffice/LibreOffice Path for jodconverter</entry>
+	<entry key="install.wizard.params.step3.officePath.title">The path to OpenOffice/LibreOffice (optional) please set this to the real path in case jodconverter is unable to find OpenOffice/LibreOffice installation automatically</entry>
+	<entry key="install.wizard.params.step3.officePath.text">The path to OpenOffice/LibreOffice (optional) please set this
+			to the real path in case jodconverter is unable to find
+			OpenOffice/LibreOffice installation
+	</entry>
+
+	<entry key="install.wizard.params.step4.crypt">Crypt Type</entry>
+	<entry key="install.wizard.params.step4.cryptClassName">Crypt Class</entry>
+	<entry key="install.wizard.params.step4.cryptClassName.title">Enter the Class name of the Encryption Class. DO NOT ALTER THIS IF YOU ARE NOT SURE</entry>
+	<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[
+		You can use this default crypt type which is equal to
+		PHP-MD5 function or BSD-Style encryption by using:<b>org.apache.openmeetings.utils.crypt.MD5CryptImplementation</b>
+		for more information or to write your own Crypt-Style see: <a
+		href="http://openmeetings.apache.org/CustomCryptMechanism.html"
+		target="_blank">Custom Crypt Mechanism</a> You can edit this
+		value later BUT previous created Users and Sessions might be not
+		usable anymore
+	]]></entry>
+	<entry key="install.wizard.params.step4.red5SIP">red5SIP Configuration</entry>
+	<entry key="install.wizard.params.step4.red5SipEnable">Enable SIP</entry>
+	<entry key="install.wizard.params.step4.red5SipEnable.text">Enable red5SIP integration</entry>
+	<entry key="install.wizard.params.step4.red5SipRoomPrefix">SIP rooms prefix</entry>
+	<entry key="install.wizard.params.step4.red5SipRoomPrefix.text">Prefix for phone number of conference rooms</entry>
+	<entry key="install.wizard.params.step4.red5SipExtenContext">SIP extensions context</entry>
+	<entry key="install.wizard.params.step4.red5SipExtenContext.text">Context of Asterisk extensions</entry>
+
+	<entry key="install.wizard.install.desc">Please click "Finish" button to start installation!</entry>
+	<entry key="install.wizard.install.started">Please wait, installation in progress</entry>
+	<entry key="install.wizard.install.failed">Installation is failed</entry>
+
+	<entry key="install.wizard.congrats.enter">Enter the Application</entry>
+	<entry key="install.wizard.congrats.port">If your Red5-Server runs on a different Port or on a different domain</entry>
+	<entry key="install.wizard.congrats.config">alter the config values of the client</entry>
+	<entry key="install.wizard.congrats.mail">Mailing list</entry>
+	<entry key="install.wizard.congrats.commercial">There are some companies
+			that also offer commercial support for Apache OpenMeetings:</entry>
+</properties>
diff --git a/src/web/java/org/apache/openmeetings/web/app/Application_de.properties.xml b/src/web/java/org/apache/openmeetings/web/app/Application_de.properties.xml
new file mode 100644
index 0000000..536300a
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/app/Application_de.properties.xml
@@ -0,0 +1,264 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+<properties>
+	<entry key="install.wizard.welcome.panel"><![CDATA[
+	<ol>
+		<li>
+			<h4>
+				<a id="Recommendation_for_production_environment"></a>Empfehlung 
+					f&uuml;r Produktivumgebungen<a target="_blank"
+					href="#Recommendation_for_production_environment"
+					class="section_anchor"></a>
+			</h4>
+		<blockquote>
+			Standardm&auml;&szlig;ig verwendet {0} die integrierte 
+			Apache Derby Datenbank. In Produktivumgebungen wird jedoch der Einsatz von 
+			<a target="_blank"
+				href="http://openmeetings.apache.org/MySQLConfig.html">MySQL</a>, <a
+				target="_blank"
+				href="http://openmeetings.apache.org/PostgresConfig.html">Postgres</a>, <a 
+				target="_blank"
+				href="http://openmeetings.apache.org/IBMDB2Config.html">IBM DB2</a> 
+			oder <a href="http://openmeetings.apache.org/OracleConfig.html"
+				target="_blank">Oracle</a> empfohlen.
+		</blockquote>
+		</li>
+		<li><h4>
+				<a id="Enabling_Image_Upload_and_import_to_whiteboard"></a>Import von Bildern auf 
+					das Whiteboard erm&ouml;glichen<a
+					href="#Enabling_Image_Upload_and_import_to_whiteboard"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li>Installieren Sie <strong>ImageMagick</strong> auf dem Server. Weitere
+					Informationen unter <a target="_blank"
+					href="http://www.imagemagick.org" rel="nofollow">http://www.imagemagick.org</a>.
+					Anleitungen f&uuml;r die Installation finden Sie unter <a target="_blank"
+					href="http://www.imagemagick.org/script/binary-releases.php"
+					rel="nofollow">http://www.imagemagick.org/script/binary-releases.php</a>, in den
+					meisten Linux-Distributionen l&auml;sst es sich jedoch bequem per Paketmanager
+					(z.B. apt-get) installieren.
+				</li>
+			</ul>
+		</li>
+		<li><h4>
+				<a id="Enabling_import_of_PDFs_into_whiteboard"></a>Import von PDF-Dateien auf das
+					Whiteboard erm&ouml;glichen<a
+					href="#Enabling_import_of_PDFs_into_whiteboard"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li>Installieren Sie <strong>GhostScript</strong> auf dem Server. Weitere
+					Informationen (Installationsanleitungen etc.) finden Sie unter <a target="_blank"
+					href="http://pages.cs.wisc.edu/%7Eghost/" rel="nofollow">http://pages.cs.wisc.edu/~ghost/</a>. 
+					In den meisten Linux-Distributionen l&auml;sst es sich bequem per Paketmanager
+					(z.B. apt-get) installieren.
+				</li>
+				<li>Installieren Sie <strong>SWFTools</strong> auf dem Server. Weitere 
+					Informationen (Installationsanleitungen etc.) finden Sie unter <a target="_blank"
+					href="http://www.swftools.org/" rel="nofollow">http://www.swftools.org/</a>. 
+					Einige Linux-Distributionen haben es bereits in ihre Paketquellen aufgenommen (siehe 
+					<a target="_blank"
+					href="http://packages.debian.org/unstable/utils/swftools"
+					rel="nofollow">http://packages.debian.org/unstable/utils/swftools</a>).
+					Die empfohlene Version von <strong>SWFTools</strong> ist 0.9 - fr&uuml;here Versionen
+					enthalten einen Bug, welcher zu falschen Objektausdehnungen auf dem Whiteboard 
+					f&uuml;hrt.
+				</li>
+		</ul>
+		</li>
+		<li><h4>
+				<a
+					id="Enabling_import_of_.doc,_.docx,_.ppt,_.pptx,_..._all_Office_Docu"></a>Import von 
+					Office-Dokumenten (.doc, .docx, .ppt, .pptx, etc.) auf das Whiteboard erm&ouml;glichen
+					<a
+					href="#Enabling_import_of_.doc,_.docx,_.ppt,_.pptx,_..._all_Office_Docu"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li><strong>OpenOffice-Service</strong> muss gestartet worden sein und auf Port 8100 lauschen, 
+					siehe <a target="_blank"
+					href="http://openmeetings.apache.org/OpenOfficeConverter.html">OpenOfficeConverter</a>.</li>
+			</ul>
+		</li>
+		<li><h4>
+				<a
+					id="Enabling_Recording_and_import_of_.avi,_.flv,_.mov_and_.mp4_into"></a>Aufzeichnung und 
+					Import von Videos (.avi, .flv, .mov und .mp4) auf das Whiteboard erm&ouml;glichen<a
+					href="#Enabling_Recording_and_import_of_.avi,_.flv,_.mov_and_.mp4_into"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li>Installieren Sie <strong>FFmpeg</strong>. Sie sollten die neueste Version verwenden! 
+					Windows-Binaries finden Sie z.B. unter 
+					<a target="_blank" href="http://ffmpeg.arrozcru.org/builds/"
+					rel="nofollow">http://ffmpeg.arrozcru.org/builds/</a>. Linux- oder OSx-Nutzer sollten 
+					eine der zahlreichen Installationsanleitungen im Web zu Rate ziehen. libmp3lame muss 
+					aktiviert sein!
+				</li>
+				<li>Installieren Sie <strong>SoX</strong> <a
+					href="http://sox.sourceforge.net/" target="_BLANK">http://sox.sourceforge.net/</a>.
+					Sie sollten die neueste Version verwenden! SoX 12.xx wird NICHT funktionieren!
+				</li>
+			</ul>
+		</li>
+	</ol>
+
+	<br />
+	<b> <span style="font-size: 1.2em">Falls Sie weitere Fragen haben oder Support bei Installation und Hosting 
+			ben&ouml;tigen:</span></b>
+	<br />
+	<br />
+    <br />
+	<br />
+	<b><span style="font-size: 1.2em">Support durch die OpenMeetings-Community:</span></b>
+	<br />
+	<br />
+	<span style="font-size: 1.1em"><a
+		href="http://openmeetings.apache.org/mail-lists.html"
+		target="_blank">Mailinglisten</a></span>
+	<br />
+	<br />
+    <br />
+	<b> <span style="font-size: 1.4em">Einige Unternehmen bieten kommerziellen Support
+    f&uuml;r Apache OpenMeetings an:</span></b>
+    <br />
+    <br />
+
+    <span style="font-size: 1.3em"><a
+        href="http://openmeetings.apache.org/commercial-support.html"
+        target="_blank">http://openmeetings.apache.org/commercial-support.html</a></span>
+    <br />
+	]]></entry>
+	<entry key="install.wizard.params.step1.userdata">Nutzerdaten</entry>
+	<entry key="install.wizard.params.step1.username">Nutzername</entry>
+	<entry key="install.wizard.params.step1.username.title">Geben Sie einen Nutzernamen ein</entry>
+	<entry key="install.wizard.params.step1.password">Nutzerpasswort</entry>
+	<entry key="install.wizard.params.step1.password.title">Geben Sie ein Passwort ein</entry>
+	<entry key="install.wizard.params.step1.email">E-Mail</entry>
+	<entry key="install.wizard.params.step1.email.title">Geben Sie eine E-Mail-Adresse ein</entry>
+	<entry key="install.wizard.params.step1.tz">Zeitzone</entry>
+	<entry key="install.wizard.params.step1.groupdata">Organisation(Domains)</entry>
+	<entry key="install.wizard.params.step1.group">Name</entry>
+	<entry key="install.wizard.params.step1.group.title">Geben Sie den Namen Ihrer Organisation ein</entry>
+
+	<entry key="install.wizard.params.step2.configuration">Konfiguration</entry>
+	<entry key="install.wizard.params.step2.allowFrontendRegister">Neuen Nutzern erlauben, sich zu registrieren (allow_frontend_register)</entry>
+	<entry key="install.wizard.params.step2.sendEmailAtRegister">E-Mail an neu registrierte Nutzer senden (sendEmailAtRegister)</entry>
+	<entry key="install.wizard.params.step2.sendEmailWithVerficationCode"><![CDATA[Neu registrierte Nutzer m&uuml;ssen Ihre E-Mail-Adresse verifizieren (sendEmailWithVerficationCode)]]></entry>
+	<entry key="install.wizard.params.step2.createDefaultRooms"><![CDATA[Beispielr&auml;ume aller Raumtypen erstellen]]></entry>
+	<entry key="install.wizard.params.step2.mailReferer">Mail-Referer (system_email_addr)</entry>
+	<entry key="install.wizard.params.step2.mailReferer.title">Enter a Referer</entry>
+	<entry key="install.wizard.params.step2.smtpServer">SMTP-Server (smtp_server)</entry>
+	<entry key="install.wizard.params.step2.smtpServer.title">Enter a SMTP-Server</entry>
+	<entry key="install.wizard.params.step2.smtpPort">SMTP-Server-Port(Standard ist 25) (smtp_port)</entry>
+	<entry key="install.wizard.params.step2.smtpPort.title">Enter a SMTP-Server.Port normally 25</entry>
+	<entry key="install.wizard.params.step2.mailAuthName">SMTP-Nutzername (email_username)</entry>
+	<entry key="install.wizard.params.step2.mailAuthName.title">Enter the mail-username</entry>
+	<entry key="install.wizard.params.step2.mailAuthPass">SMTP-Nutzerpasswort (email_userpass)</entry>
+	<entry key="install.wizard.params.step2.mailAuthPass.title">Enter the mail-userpass</entry>
+	<entry key="install.wizard.params.step2.mailUseTls">TLS zur Mailserver-Authentifizierung aktivieren</entry>
+	<entry key="install.wizard.params.step2.replyToOrganizer">Die E-Mail-Adresse des Einladenden als 'ReplyTo'-Adresse
+					in E-Mail-Einladungen verwenden (inviter.email.as.replyto)</entry>
+	<entry key="install.wizard.params.step2.defaultLangId">Voreingestellte Sprache</entry>
+	<entry key="install.wizard.params.step2.defaultExportFont">Voreingestellte Schriftart beim Export [default_export_font]</entry>
+
+	<entry key="install.wizard.params.step3.converters">Konverter</entry>
+	<entry key="install.wizard.params.step3.seeAlso"> Siehe</entry>
+	<entry key="install.wizard.params.step3.installation">Installation</entry>
+	<entry key="install.wizard.params.step3.swfZoom">SWFTools Zoom</entry>
+	<entry key="install.wizard.params.step3.swfZoom.title"><![CDATA[Geben Sie an, wieviel dpi swftools f&uuml;r die 'PDF zu SWF'-Konvertierung nutzen soll.]]></entry>
+	<entry key="install.wizard.params.step3.swfZoom.text"><![CDATA[Sie k&ouml;nnen &uuml;berpr&uuml;fen, ob swftools im Systempfad 
+		installiert ist, indem Sie eine Shell oder einen cmd-Prompt &ouml;ffnen
+		und pdf2swf eingeben.
+		Geben Sie an, wieviel dpi swftools f&uuml;r die 'PDF zu SWF'-Konvertierung nutzen soll.
+		Voreingestellter Wert ist 100 dpi.]]></entry>
+	<entry key="install.wizard.params.step3.swfJpegQuality"><![CDATA[SWFTools JPEG-Qualit&auml;t]]></entry>
+	<entry key="install.wizard.params.step3.swfJpegQuality.title"><![CDATA[Geben Sie an, welche Qualit&auml;tsstufe f&uuml;r eingebettete JPEG-Bilder verwendet werden soll.]]></entry>
+	<entry key="install.wizard.params.step3.swfJpegQuality.text"><![CDATA[Sie k&ouml;nnen &uuml;berpr&uuml;fen, ob swftools im Systempfad 
+		installiert ist, indem Sie eine Shell oder einen cmd-Prompt &ouml;ffnen
+		und pdf2swf eingeben.
+		Geben Sie an, welche Qualit&auml;tsstufe f&uuml;r eingebettete JPEG-Bilder 
+		verwendet werden soll. 0 bedeutet schlechteste Qualit&auml;t (kleinste 
+		Dateigr&ouml;&szlig;e), 100 bedeutet beste Qualit&auml;t (gr&ouml;&szlig;te 
+		Dateigr&ouml;&szlig;e) (Voreinstellung: 85)]]></entry>
+	<entry key="install.wizard.params.step3.swfPath">SWFTools-Pfad</entry>
+	<entry key="install.wizard.params.step3.swfPath.title">Geben Sie den Pfad zu swftools an, z.B. C:/swftools (Windows), falls es sich nicht im Systempfad befindet.</entry>
+	<entry key="install.wizard.params.step3.swfPath.text"><![CDATA[
+		Sie k&ouml;nnen &uuml;berpr&uuml;fen, ob swftools im Systempfad 
+		installiert ist, indem Sie eine Shell oder einen cmd-Prompt &ouml;ffnen
+		und pdf2swf eingeben. Wenn daraufhin eine Liste mit Optionen angezeigt wird, 
+		k&ouml;nen Sie dieses Feld leer lassen. Ansonsten m&uuml;ssen Sie den Pfad 
+		zu pdf2swf hier eintragen.
+	]]></entry>
+	<entry key="install.wizard.params.step3.imageMagicPath">ImageMagick-Pfad</entry>
+	<entry key="install.wizard.params.step3.imageMagicPath.title">Geben Sie den Pfad zu ImageMagick an, falls es sich nicht im Systempfad befindet.</entry>
+	<entry key="install.wizard.params.step3.imageMagicPath.text"></entry>
+	<entry key="install.wizard.params.step3.ffmpegPath">FFMPEG-Pfad</entry>
+	<entry key="install.wizard.params.step3.ffmpegPath.title">Geben Sie den Pfad zu FFMPEG an, falls es sich nicht im Systempfad befindet.</entry>
+	<entry key="install.wizard.params.step3.ffmpegPath.text"></entry>
+	<entry key="install.wizard.params.step3.soxPath">SoX-Pfad</entry>
+	<entry key="install.wizard.params.step3.soxPath.title">Geben Sie den Pfad zu SoX an, falls es sich nicht im Systempfad befindet.</entry>
+	<entry key="install.wizard.params.step3.soxPath.text"></entry>
+	<entry key="install.wizard.params.step3.jodPath">JOD-Pfad</entry>
+	<entry key="install.wizard.params.step3.jodPath.title"><![CDATA[Der Pfad zur JOD-Bibliothek (http://code.google.com/p/jodconverter). Beachten Sie, dass der Pfad auf das lib-Verzeichnis zeigen muss, welches auch jodconverter-core-version.jar enth&auml;lt.]]></entry>
+	<entry key="install.wizard.params.step3.jodPath.text"></entry>
+	<entry key="install.wizard.params.step3.officePath"><![CDATA[OpenOffice-/LibreOffice-Pfad f&uuml;r jodconverter]]></entry>
+	<entry key="install.wizard.params.step3.officePath.title">Der Pfad zu OpenOffice/LibreOffice (optional). Bitte geben Sie den echten Pfad an, falls jodconverter die OpenOffice-/LibreOffice-Installation nicht automatisch findet.</entry>
+	<entry key="install.wizard.params.step3.officePath.text">Der Pfad zu OpenOffice/LibreOffice (optional). Bitte geben Sie den richtigen Pfad an, falls 
+					jodconverter die OpenOffice-/LibreOffice-Installation nicht automatisch findet.
+	</entry>
+
+	<entry key="install.wizard.params.step4.crypt">Krypto-Typ</entry>
+	<entry key="install.wizard.params.step4.cryptClassName">Krypto-Klasse</entry>
+	<entry key="install.wizard.params.step4.cryptClassName.title"><![CDATA[Geben Sie den Klassennamen der Krypto-Klasse an. &Auml;NDERN SIE DIESEN WERT NICHT, WENN SIE SICH NICHT SICHER SIND!]]></entry>
+	<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[
+		Sie k&ouml;nnen den voreingestellten Krypto-Typ (welcher der 
+		PHP-MD5-Funktion entspricht) benutzen, oder Sie geben 
+		<b>org.apache.openmeetings.utils.crypt.MD5CryptImplementation</b>
+		ein, um BSD-artige Verschl&uuml;sselung zu benutzen. F&uuml;r 
+		weitergehende Informationen, auch zum Schreiben einer eigenen 
+		Krypto-Klasse, siehe <a
+		href="http://openmeetings.apache.org/CustomCryptMechanism.html"
+		target="_blank">Custom Crypt Mechanism</a>. Sie k&ouml;nnen diesen 
+		Wert sp&auml;ter ver&auml;ndern, ABER vorher erstellte Nutzer und 
+		Sitzungen k&ouml;nnten anschlie&szlig;end unbenutzbar sein. 
+	]]></entry>
+	<entry key="install.wizard.params.step4.red5SIP">red5SIP Configuration</entry>
+	<entry key="install.wizard.params.step4.red5SipEnable">SIP aktivieren</entry>
+	<entry key="install.wizard.params.step4.red5SipEnable.text">red5SIP-Integration aktivieren</entry>
+	<entry key="install.wizard.params.step4.red5SipRoomPrefix"><![CDATA[Pr&auml;fix f&uuml;r SIP-R&auml;ume]]></entry>
+	<entry key="install.wizard.params.step4.red5SipRoomPrefix.text"><![CDATA[Pr&auml;fix f&uuml;r Telefonnummer der Konferenzr&auml;ume]]></entry>
+	<entry key="install.wizard.params.step4.red5SipExtenContext">SIP-Erweiterungskontext</entry>
+	<entry key="install.wizard.params.step4.red5SipExtenContext.text"><![CDATA[Kontext f&uuml;r Asterisk-Erweiterungen]]></entry>
+
+	<entry key="install.wizard.install.desc">Bitte klicken Sie auf "Finish" um die Installation zu starten!</entry>
+	<entry key="install.wizard.install.started">Please wait, installation in progress</entry>
+	<entry key="install.wizard.install.failed">Installation is failed</entry>
+
+	<entry key="install.wizard.congrats.enter"><![CDATA[&Ouml;ffnen der Anwendung]]></entry>
+	<entry key="install.wizard.congrats.port">Falls Ihr Red5-Server einen anderen Port oder eine andere Domain benutzt, sollten Sie</entry>
+	<entry key="install.wizard.congrats.config">die Konfiguration des Clients anpassen</entry>
+	<entry key="install.wizard.congrats.mail">Mailingliste</entry>
+	<entry key="install.wizard.congrats.commercial"><![CDATA[Einige Unternehmen bieten kommerziellen Support
+		f&uuml;r Apache OpenMeetings an:]]></entry>
+</properties>
diff --git a/src/web/java/org/apache/openmeetings/web/app/Application_es.properties.xml b/src/web/java/org/apache/openmeetings/web/app/Application_es.properties.xml
new file mode 100644
index 0000000..7058ddd
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/app/Application_es.properties.xml
@@ -0,0 +1,252 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+<properties>
+	<entry key="install.wizard.welcome.panel"><![CDATA[
+	<ol>
+		<li>
+			<h4>
+				<a id="Recommendation_for_production_environment"></a>Recomendaci—n
+				para medios de producci—n<a target="_blank"
+					href="#Recommendation_for_production_environment"
+					class="section_anchor"></a>
+			</h4>
+		<blockquote>
+			Viene predeterminado {0} emplear la base de datos Apache Derby. Para
+			medios de producci—n considere emplear <a target="_blank"
+				href="http://openmeetings.apache.org/MySQLConfig.html">MySQL</a>, <a
+				target="_blank"
+				href="http://openmeetings.apache.org/PostgresConfig.html">Postgres</a>
+			o por ejemplo <a target="_blank"
+				href="http://openmeetings.apache.org/IBMDB2Config.html">IBM DB2</a>
+			o <a href="http://openmeetings.apache.org/OracleConfig.html"
+				target="_blank">Oracle</a>
+		</blockquote>
+		</li>
+		<li><h4>
+				<a id="Enabling_Image_Upload_and_import_to_whiteboard"></a>Activar Subir Imagen e Importar a la pizarra
+				<a href="#Enabling_Image_Upload_and_import_to_whiteboard"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li>Instalar <strong>ImageMagick</strong> en el servidor, puede obtener m‡s informaci—n en
+				<a target="_blank" href="http://www.imagemagick.org" rel="nofollow">http://www.imagemagick.org</a>
+					observando instalaci—n. Las instrucciones para la misma puede encontrarlas aqu’
+					<a target="_blank" href="http://www.imagemagick.org/script/binary-releases.php"
+					rel="nofollow">http://www.imagemagick.org/script/binary-releases.php</a>,
+					de todos modos en la mayor’a de los sistemas linux puede conseguirlo via su favorito
+					paquete de administraci—n (apt-get it).
+				</li>
+			</ul>
+		</li>
+		<li><h4>
+				<a id="Enabling_import_of_PDFs_into_whiteboard"></a>Activando
+				importar PDFs a la pizarra<a
+					href="#Enabling_import_of_PDFs_into_whiteboard"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li>Instale <strong>GhostScript</strong> en el servidor, puede tener
+					m‡s informaci—n en <a target="_blank" href="http://pages.cs.wisc.edu/%7Eghost/" rel="nofollow">http://pages.cs.wisc.edu/~ghost/</a>
+					mire instalaci—n. Las instrucciones para la instalaci—n se encuentran all‡, 
+					de todos modos en la mayor’a de los sistemas linux puede conseguirlo
+					via su favorito paquete de administraci—n (apt-get it)
+				</li>
+				<li>Instale <strong>SWFTools</strong> en el servidor, puede tener
+					m‡s informaci—n en <a target="_blank"
+					href="http://www.swftools.org/" rel="nofollow">http://www.swftools.org/</a>
+					mire instalaci—n. Algunas de las distribuciones Linux ya lo tienen en el
+					administrador de paquetes, vea <a target="_blank"
+					href="http://packages.debian.org/unstable/utils/swftools"
+					rel="nofollow">http://packages.debian.org/unstable/utils/swftools</a>),
+					la versi— recomendada de <strong>SWFTools</strong> es 0.9 porque las versiones
+					anteriores tienen un bug que hace llevar unas dimensiones err—neas al objeto
+                     en la Pizarra.
+				</li>
+		</ul>
+		</li>
+		<li><h4>
+				<a
+					id="Enabling_import_of_.doc,_.docx,_.ppt,_.pptx,_..._all_Office_Docu"></a>Activando
+				importar .doc, .docx, .ppt, .pptx, ... todos los Documentos de Oficina a la Pizarra
+				<a href="#Enabling_import_of_.doc,_.docx,_.ppt,_.pptx,_..._all_Office_Docu"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li><strong>OpenOffice-Service</strong> lanzado y escuchando en el
+					puerto 8100, vea <a target="_blank"
+					href="http://openmeetings.apache.org/OpenOfficeConverter.html">OpenOfficeConverter</a>
+					para m‡s detalles.</li>
+			</ul>
+		</li>
+		<li><h4>
+				<a
+					id="Enabling_Recording_and_import_of_.avi,_.flv,_.mov_and_.mp4_into"></a>Activando
+				Grabaci—n e importaci—n de .avi, .flv, .mov and .mp4 a la pizarra<a
+					href="#Enabling_Recording_and_import_of_.avi,_.flv,_.mov_and_.mp4_into"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li>Instalar <strong>FFMpeg</strong>. Puede conseguir FFMPEG de una copia actualizada! 
+				    Para Windows puede descargar una Build, por ejemplo desde
+					<a target="_blank" href="http://ffmpeg.arrozcru.org/builds/"
+					rel="nofollow">http://ffmpeg.arrozcru.org/builds/</a> Los usuarios de Linux o OSx
+					pueden emplear una de las variadas Instrucciones de Instalaci—n que hay en la Web. 
+					Es necesario activar libmp3lame!
+				</li>
+				<li>Instalar <strong>SoX</strong> <a
+					href="http://sox.sourceforge.net/" target="_BLANK">http://sox.sourceforge.net/</a>.
+					Instalar una copia de SOX actualizada! SOX 12.xx no funcionar‡!
+				</li>
+			</ul>
+		</li>
+	</ol>
+
+	<br />
+	<b> <span style="font-size: 1.2em">Si tiene otras cuestiones o necesita soporte para instalaci—n o hosting:</span></b>
+	<br />
+	<br />
+
+	
+	<b><span style="font-size: 1.2em">Soporte-Comunidad:</span></b>
+	<br />
+	<br />
+	<span style="font-size: 1.1em"><a
+		href="http://openmeetings.apache.org/mail-lists.html"
+		target="_blank">Listas de correo</a></span>
+	<br />
+	
+	<b> <span style="font-size: 1.4em">Hay algunas compa–ias
+            que tambien ofrecen soporte comercial para Apache OpenMeetings:</span></b>
+    <br />
+    <br />
+    <br />
+    <br />
+    <span style="font-size: 1.3em"><a
+        href="http://openmeetings.apache.org/commercial-support.html"
+        target="_blank">http://openmeetings.apache.org/commercial-support.html</a></span>
+    <br />
+    ]]></entry>
+	<entry key="install.wizard.params.step1.userdata">Datos del usuario</entry>
+	<entry key="install.wizard.params.step1.username">Nombre de usuario</entry>
+	<entry key="install.wizard.params.step1.username.title">Enter a username</entry>
+	<entry key="install.wizard.params.step1.password">Contraseña</entry>
+	<entry key="install.wizard.params.step1.password.title">Enter a password</entry>
+	<entry key="install.wizard.params.step1.email">Dirección de correo</entry>
+	<entry key="install.wizard.params.step1.email.title">Enter a EMail</entry>
+	<entry key="install.wizard.params.step1.tz">Time Zone del Usuario</entry>
+	<entry key="install.wizard.params.step1.groupdata">Organización (Dominios)</entry>
+	<entry key="install.wizard.params.step1.group">Nombre</entry>
+	<entry key="install.wizard.params.step1.group.title">Enter a default Organisation</entry>
+
+	<entry key="install.wizard.params.step2.configuration">Configuración</entry>
+	<entry key="install.wizard.params.step2.allowFrontendRegister">Permitir auto-registro (allow_frontend_register)</entry>
+	<entry key="install.wizard.params.step2.sendEmailAtRegister">Enviar Correo a los nuevos Usuarios registrados (sendEmailAtRegister)</entry>
+	<entry key="install.wizard.params.step2.sendEmailWithVerficationCode">Los Nuevos Usuarios necesitan verificarse con sus Correos (sendEmailWithVerficationCode)</entry>
+	<entry key="install.wizard.params.step2.createDefaultRooms">Salas Preconfiguradas de todo tipo serán creadas</entry>
+	<entry key="install.wizard.params.step2.mailReferer">Correo de Referencia (system_email_addr)</entry>
+	<entry key="install.wizard.params.step2.mailReferer.title">Enter a Referer</entry>
+	<entry key="install.wizard.params.step2.smtpServer">Servidor SMTP (smtp_server)</entry>
+	<entry key="install.wizard.params.step2.smtpServer.title">Enter a SMTP-Server</entry>
+	<entry key="install.wizard.params.step2.smtpPort">Puerto del Servidor (el Puerto clásico del Servidor-Smtp es el 25) (smtp_port)</entry>
+	<entry key="install.wizard.params.step2.smtpPort.title">Enter a SMTP-Server.Port normally 25</entry>
+	<entry key="install.wizard.params.step2.mailAuthName">Nombre de Usuario de correo SMTP (email_username)</entry>
+	<entry key="install.wizard.params.step2.mailAuthName.title">Enter the mail-username</entry>
+	<entry key="install.wizard.params.step2.mailAuthPass">Contraseña del usuario de correo SMTP (email_userpass)</entry>
+	<entry key="install.wizard.params.step2.mailAuthPass.title">Enter the mail-userpass</entry>
+	<entry key="install.wizard.params.step2.mailUseTls">Activar TLS en el Servidor de Correo Autentificado</entry>
+	<entry key="install.wizard.params.step2.replyToOrganizer">Poner la dirección de correo electrónico como ReplyTo en los correos de invitaciónes (inviter.email.as.replyto)</entry>
+	<entry key="install.wizard.params.step2.defaultLangId">Idioma preferido</entry>
+	<entry key="install.wizard.params.step2.defaultExportFont">Fuente Preferida para Exportar [default_export_font]</entry>
+
+	<entry key="install.wizard.params.step3.converters">Convertidores</entry>
+	<entry key="install.wizard.params.step3.seeAlso"> consulte</entry>
+	<entry key="install.wizard.params.step3.installation">Instalación</entry>
+	<entry key="install.wizard.params.step3.swfZoom">SWFTools Zoom</entry>
+	<entry key="install.wizard.params.step3.swfZoom.title">Enter the dpi that swftools will use for PDF to SWF conversion</entry>
+	<entry key="install.wizard.params.step3.swfZoom.text">Puede comprobar si la ruta a la instalación de swftools es la correcta
+		abriendo una shell o cmd-prompt y escribir pdf2swf  Introduzca la dpi
+		que swftools empleará para convertir PDF a SWF. Preconfigurada es
+		100 dpi</entry>
+	<entry key="install.wizard.params.step3.swfJpegQuality">SWFTools JPEG Quality</entry>
+	<entry key="install.wizard.params.step3.swfJpegQuality.title">Enter the quality of embedded jpeg pictures to quality. 0 is worst (small), 100 is best (big). (default:85)</entry>
+	<entry key="install.wizard.params.step3.swfJpegQuality.text">Puede comprobar si la ruta a la instalación de swftools es la correcta
+		abriendo una shell o cmd-prompt y escribir pdf2swf  Introduzca la calidad
+		de las imagenes jpeg embebidas. 0 es la menor (pequeña),
+		100 es la mejor (grande). (preconfigurada:85)</entry>
+	<entry key="install.wizard.params.step3.swfPath">SWFTools Path (Ruta)</entry>
+	<entry key="install.wizard.params.step3.swfPath.title">Enter the path to swftools for example C:/swftools (Windows) or leave blank if swftools is a known to your system path</entry>
+	<entry key="install.wizard.params.step3.swfPath.text">
+		Puede comprobar si la ruta a la instalación de swftools es la correcta
+		abriendo una shell o cmd-prompt y escribir pdf2swf  Si muestra
+		una lista de opciones, deje este campo en blanco, si no debe especificar
+		la ruta a pdf2swf en su sistema
+	</entry>
+	<entry key="install.wizard.params.step3.imageMagicPath">ImageMagick Path (Ruta)</entry>
+	<entry key="install.wizard.params.step3.imageMagicPath.title">Enter the path to ImageMagick, leave blank if ImageMagick is successfully installed to system-path</entry>
+	<entry key="install.wizard.params.step3.imageMagicPath.text"></entry>
+	<entry key="install.wizard.params.step3.ffmpegPath">FFMPEG Path (Ruta)</entry>
+	<entry key="install.wizard.params.step3.ffmpegPath.title">Enter the path to FFMPEG, leave blank if FFMPEG is successfully installed to system-path</entry>
+	<entry key="install.wizard.params.step3.ffmpegPath.text"></entry>
+	<entry key="install.wizard.params.step3.soxPath">SoX Path (Ruta)</entry>
+	<entry key="install.wizard.params.step3.soxPath.title">Enter the path to SoX, leave blank if SoX is successfully installed to system-path</entry>
+	<entry key="install.wizard.params.step3.soxPath.text"></entry>
+	<entry key="install.wizard.params.step3.jodPath">JOD Path (Ruta)</entry>
+	<entry key="install.wizard.params.step3.jodPath.title">The path to JOD library (http://code.google.com/p/jodconverter), configure the path to point to the lib directory of JOD that contains also the jodconverter-core-version.jar</entry>
+	<entry key="install.wizard.params.step3.jodPath.text"></entry>
+	<entry key="install.wizard.params.step3.officePath">OpenOffice/LibreOffice Path (Ruta) para jodconverter</entry>
+	<entry key="install.wizard.params.step3.officePath.title">The path to OpenOffice/LibreOffice (optional) please set this to the real path in case jodconverter is unable to find OpenOffice/LibreOffice installation automatically</entry>
+	<entry key="install.wizard.params.step3.officePath.text">El path (ruta) a OpenOffice/LibreOffice (opcional) por favor
+		configúrelo correctamente en caso de que jodconverter no pueda
+		encontrar la instalación de OpenOffice/LibreOffice
+	</entry>
+
+	<entry key="install.wizard.params.step4.crypt">Tipo de Encriptación</entry>
+	<entry key="install.wizard.params.step4.cryptClassName">Crypt Class</entry>
+	<entry key="install.wizard.params.step4.cryptClassName.title">Enter the Class name of the Encryption Class. DO NOT ALTER THIS IF YOU ARE NOT SURE</entry>
+	<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[
+		Puede emplear este tipo de encriptación que es igual
+		a la función PHP-MD5 o BSD-Style empleando: <b>org.apache.openmeetings.utils.crypt.MD5CryptImplementation</b>
+		para más información o escribir su propio Cryp-Style mire en: <a
+		href="http://openmeetings.apache.org/CustomCryptMechanism.html"
+		target="_blank">Customizar Mecanismo de Encriptación</a> Puede editar este valor
+		después AUNQUE los Usuarios y Sesiones creadas anteriormente pueden quedar
+		en desuso para siempre.
+	]]></entry>
+	<entry key="install.wizard.params.step4.red5SIP">red5SIP Configuración</entry>
+	<entry key="install.wizard.params.step4.red5SipEnable">Activar SIP</entry>
+	<entry key="install.wizard.params.step4.red5SipEnable.text">Activar la integración de red5SIP</entry>
+	<entry key="install.wizard.params.step4.red5SipRoomPrefix">SIP prefijo de salas</entry>
+	<entry key="install.wizard.params.step4.red5SipRoomPrefix.text">Prefijo para número telefónico de salas de conferencia</entry>
+	<entry key="install.wizard.params.step4.red5SipExtenContext">SIP extensiones contexto</entry>
+	<entry key="install.wizard.params.step4.red5SipExtenContext.text">Contexto de Asterisk extensiones</entry>
+
+	<entry key="install.wizard.install.desc">Por favor pulse el botón "Finish" para comenzar la instalación!</entry>
+	<entry key="install.wizard.install.started">Please wait, installation in progress</entry>
+	<entry key="install.wizard.install.failed">Installation is failed</entry>
+
+	<entry key="install.wizard.congrats.enter">Entrar a la Aplicación</entry>
+	<entry key="install.wizard.congrats.port">Si su servidor Red5 corre en un Puerto distinto o en diferente dominio</entry>
+	<entry key="install.wizard.congrats.config">cambie los valores de configuración del cliente</entry>
+	<entry key="install.wizard.congrats.mail">Listas de correo</entry>
+	<entry key="install.wizard.congrats.commercial">Hay algunas compañias
+		que tambien ofrecen soporte comercial para Apache OpenMeetings:</entry>
+</properties>
diff --git a/src/web/java/org/apache/openmeetings/web/app/Application_fr.properties.xml b/src/web/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
new file mode 100644
index 0000000..a869e8f
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
@@ -0,0 +1,219 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+<properties>
+	<entry key="install.wizard.welcome.panel"><![CDATA[
+	<ol>
+		<li>
+			<h4>
+				<a id="Recommendation_for_production_environment"></a>Recommendation pour l'environnement de production<a target="_blank"
+					href="#Recommendation_for_production_environment"
+					class="section_anchor"></a>
+			</h4>
+		<blockquote>
+			Par défaut {0} utilise la base de données Apache Derby. Dans un environnement de production vous devriez opter pour
+			<a target="_blank"
+				href="http://openmeetings.apache.org/MySQLConfig.html">MySQL</a>, <a
+				target="_blank"
+				href="http://openmeetings.apache.org/PostgresConfig.html">Postgres</a>, <a 
+				target="_blank"
+				href="http://openmeetings.apache.org/IBMDB2Config.html">IBM DB2</a> 
+			ou <a href="http://openmeetings.apache.org/OracleConfig.html"
+				target="_blank">Oracle</a>.
+		</blockquote>
+		</li>
+		<li><h4>
+				<a id="Enabling_Image_Upload_and_import_to_whiteboard"></a>Activer l'upload et l'import d'images vers le tableau blanc<a
+					href="#Enabling_Image_Upload_and_import_to_whiteboard"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li>Installez <strong>ImageMagick</strong> sur le serveur. Vous trouverez plus d'informations à l'adresse <a target="_blank"
+					href="http://www.imagemagick.org" rel="nofollow">http://www.imagemagick.org</a>.
+					Les instructions d'installation peuvent être trouvées ici <a target="_blank"
+					href="http://www.imagemagick.org/script/binary-releases.php"
+					rel="nofollow">http://www.imagemagick.org/script/binary-releases.php</a>. Sur la majorité des systèmes linux vous pouvez le trouver via votre manager de paquets (apt-get).
+				</li>
+			</ul>
+		</li>
+		<li><h4>
+				<a id="Enabling_import_of_PDFs_into_whiteboard"></a>Activer l'import de fichiers PDF sur le tableau blanc<a
+					href="#Enabling_import_of_PDFs_into_whiteboard"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li>Installez <strong>GhostScript</strong> sur le serveur. Vous trouverez plus d'information sur <a target="_blank"
+					href="http://pages.cs.wisc.edu/%7Eghost/" rel="nofollow">http://pages.cs.wisc.edu/~ghost/</a>. 
+					Sur la majorité des systèmes linux vous pouvez le trouver via votre manager de paquets (apt-get).
+				</li>
+				<li>Installez <strong>SWFTools</strong> sur le serveur. Vous trouverez plus d'informations sur <a target="_blank"
+					href="http://www.swftools.org/" rel="nofollow">http://www.swftools.org/</a>. 
+					Certaines distribution de Linux le possède déjà. Voir
+					<a target="_blank"
+					href="http://packages.debian.org/unstable/utils/swftools"
+					rel="nofollow">http://packages.debian.org/unstable/utils/swftools</a>).
+					La version recommandée de <strong>SWFTools</strong> est 0.9 - les versions précédentes ont un bug qui modifie les dimensions des objets sur le tableau blanc.
+				</li>
+		</ul>
+		</li>
+		<li><h4>
+				<a
+					id="Enabling_import_of_.doc,_.docx,_.ppt,_.pptx,_..._all_Office_Docu"></a>Activer l'import de documents Office (.doc, .docx, .ppt, .pptx, etc.) sur le tableau blanc<a	href="#Enabling_import_of_.doc,_.docx,_.ppt,_.pptx,_..._all_Office_Docu"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li><strong>Le service OpenOffice</strong> doit être démarré et en écoute sur le port 8100.  Voir <a target="_blank"
+					href="http://openmeetings.apache.org/OpenOfficeConverter.html">OpenOfficeConverter</a> pour plus de détails.</li>
+			</ul>
+		</li>
+		<li><h4>
+				<a
+					id="Enabling_Recording_and_import_of_.avi,_.flv,_.mov_and_.mp4_into"></a>Activer l'enregistrement et l'import de fichiers vidéo (.avi, .flv, .mov und .mp4) sur le tableau blanc<a
+					href="#Enabling_Recording_and_import_of_.avi,_.flv,_.mov_and_.mp4_into"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li>Installez <strong>FFmpeg</strong>. Vous devez obtenir la dernière version de FFMPEG ! Pour Windows vous pouvez la télécharger par exemple de <a target="_blank" href="http://ffmpeg.arrozcru.org/builds/"
+					rel="nofollow">http://ffmpeg.arrozcru.org/builds/</a>. Pour Linux ou OSx vous devriez utiliser l'une des nombreuses instructions d'installation sur le web.  Vous devez activer libmp3lame !
+				</li>
+				<li>Installez <strong>SoX</strong> <a
+					href="http://sox.sourceforge.net/" target="_BLANK">http://sox.sourceforge.net/</a>.
+					Vous devez installer la dernière version ! SoX 12.xx ne fonctionnera PAS !
+				</li>
+			</ul>
+		</li>
+	</ol>
+
+	<br />
+	<b> <span style="font-size: 1.2em">Si vous avez plus de questions ou avez besoin d'aide pour l'installation ou l'hébergement :</span></b>
+	<br />
+	<br />
+
+	<b><span style="font-size: 1.2em">Support via la communauté OpenMeetings :</span></b>
+	<br />
+	<br />
+	<span style="font-size: 1.1em"><a
+		href="http://openmeetings.apache.org/mail-lists.html"
+		target="_blank">Listes de diffusion</a></span>
+	<br />
+	<br />
+
+	<b> <span style="font-size: 1.2em">Support commercial:</span></b>
+	<br />
+	<br />
+	<span style="font-size: 1.1em"><a
+		href="http://openmeetings.apache.org/commercial-support.html"
+		target="_blank">Support commercial</a></span>
+
+	<br />
+	]]></entry>
+	<entry key="install.wizard.params.step1.userdata">Données utilisateur</entry>
+	<entry key="install.wizard.params.step1.username">Nom d'utilisateur</entry>
+	<entry key="install.wizard.params.step1.username.title">Entrez un nom d'utilisateur</entry>
+	<entry key="install.wizard.params.step1.password">Mot de passe</entry>
+	<entry key="install.wizard.params.step1.password.title">Entrez un mot de passe</entry>
+	<entry key="install.wizard.params.step1.email">E-Mail</entry>
+	<entry key="install.wizard.params.step1.email.title">Entrez une adresse E-Mail</entry>
+	<entry key="install.wizard.params.step1.tz">Fuseau horaire</entry>
+	<entry key="install.wizard.params.step1.groupdata">Organisation(Domaines)</entry>
+	<entry key="install.wizard.params.step1.group">Nom</entry>
+	<entry key="install.wizard.params.step1.group.title">Entrez le nom de votre organisation</entry>
+
+	<entry key="install.wizard.params.step2.configuration">Configuration</entry>
+	<entry key="install.wizard.params.step2.allowFrontendRegister">Autoriser les  nouveaux utilisateurs de s'enregistrer (allow_frontend_register)</entry>
+	<entry key="install.wizard.params.step2.sendEmailAtRegister">Envoyer un E-Mail aux nouveaux utilisateurs (sendEmailAtRegister)</entry>
+	<entry key="install.wizard.params.step2.sendEmailWithVerficationCode">Les nouveaux utilisateurs doivent vérifier leur adresse E-Mail (sendEmailWithVerficationCode)</entry>
+	<entry key="install.wizard.params.step2.createDefaultRooms">Installer toutes les salles par défaut</entry>
+	<entry key="install.wizard.params.step2.mailReferer">Adresse mail du système (system_email_addr)</entry>
+	<entry key="install.wizard.params.step2.mailReferer.title">Entrez l'adresse mail utilisaée par le système</entry>
+	<entry key="install.wizard.params.step2.smtpServer">SMTP (smtp_server)</entry>
+	<entry key="install.wizard.params.step2.smtpServer.title">Entrez un  serveur SMTP</entry>
+	<entry key="install.wizard.params.step2.smtpPort">Port du serveur SMTP (Le port standard est 25) (smtp_port)</entry>
+	<entry key="install.wizard.params.step2.smtpPort.title">Entrez le port du serveur SMTP Normalement 25</entry>
+	<entry key="install.wizard.params.step2.mailAuthName">Nom d'utilisateur système SMTP (email_username)</entry>
+	<entry key="install.wizard.params.step2.mailAuthName.title">Entrez le nom d'utilisateur mail du système</entry>
+	<entry key="install.wizard.params.step2.mailAuthPass">Mot de passe SMTP (email_userpass)</entry>
+	<entry key="install.wizard.params.step2.mailAuthPass.title">Entrez le mot de passe mail du système</entry>
+	<entry key="install.wizard.params.step2.mailUseTls">Activer TLS pour le serveur mail</entry>
+	<entry key="install.wizard.params.step2.replyToOrganizer">Inclure l'adresse mail de l'organisateur dans le champ des destinataires d'un E-Mail (inviter.email.as.replyto)</entry>
+	<entry key="install.wizard.params.step2.defaultLangId">Langue par défaut</entry>
+	<entry key="install.wizard.params.step2.defaultExportFont">Police par défaut pour l'export [default_export_font]</entry>
+
+	<entry key="install.wizard.params.step3.converters">Convertisseurs</entry>
+	<entry key="install.wizard.params.step3.seeAlso"> Voir</entry>
+	<entry key="install.wizard.params.step3.installation">Installation</entry>
+	<entry key="install.wizard.params.step3.swfZoom">SWFTools Zoom</entry>
+	<entry key="install.wizard.params.step3.swfZoom.title">Veuillez indiquer le nombre de dpi que swftools devra utiliser lors de la conversion de PDF vers SWF.</entry>
+	<entry key="install.wizard.params.step3.swfZoom.text">Vous pouvez vérifier que swftools se trouve dans votre chemin système en tapant pdf2swf dans une ligne de commande. Indiquez combien de dpi swtools devra utiliser pour les conversions PDF vers SWF. (Par défaut : 100 dpi).</entry>
+	<entry key="install.wizard.params.step3.swfJpegQuality">SWFTools Qualité JPEG</entry>
+	<entry key="install.wizard.params.step3.swfJpegQuality.title">Entrez la qualité des images jpec incorporées. 0 étant la moins bonne et 100 la meilleure (par défaut : 85).</entry>
+	<entry key="install.wizard.params.step3.swfJpegQuality.text">Vous pouvez vérifier que swftools se trouve dans votre chemin système en tapant pdf2swf dans une ligne de commande. 
+						Indiquez la qualité pour les images jpeg. 0 est la moins bonne (taille plus petite), 100 est la meilleure (taille plus grande) (par défaut : 85).</entry>
+	<entry key="install.wizard.params.step3.swfPath">Chemin vers SWFTools</entry>
+	<entry key="install.wizard.params.step3.swfPath.title">Indiquez le chemin vers swftools,  par ex. C:/swftools (Windows), ou laissez vide si swftools se trouve déjà dans le chemin système.</entry>
+	<entry key="install.wizard.params.step3.swfPath.text">
+		Vous pouvez vérifier que swftools se trouve dans votre chemin système en tapant pdf2swf dans une ligne de commande. Si le résultat de cette commande vous montre une liste d'options, laissez ce champ vide, dans le cas contraire veuillez indiquer le chemin vers swftools.
+	</entry>
+	<entry key="install.wizard.params.step3.imageMagicPath">Chemin vers ImageMagick</entry>
+	<entry key="install.wizard.params.step3.imageMagicPath.title">Indiquez le chemin vers ImageMagick dans le cas où ImageMagick ne se trouve pas dans le chemin système.</entry>
+	<entry key="install.wizard.params.step3.imageMagicPath.text"></entry>
+	<entry key="install.wizard.params.step3.ffmpegPath">Chemin vers FFMPEG</entry>
+	<entry key="install.wizard.params.step3.ffmpegPath.title">Indiquez le chemin vers FFMPEG dans le cas où FFMPEG ne se trouve pas dans le chemin système.</entry>
+	<entry key="install.wizard.params.step3.ffmpegPath.text"></entry>
+	<entry key="install.wizard.params.step3.soxPath">Chemin vers SoX</entry>
+	<entry key="install.wizard.params.step3.soxPath.title">Indiquez le chemin vers SoX dans le cas où SoX ne se trouve pas dans le chemin système.</entry>
+	<entry key="install.wizard.params.step3.soxPath.text"></entry>
+	<entry key="install.wizard.params.step3.jodPath">Chemin vers JOD</entry>
+	<entry key="install.wizard.params.step3.jodPath.title">Chemin vers la bibliothèque JOD (http://code.google.com/p/jodconverter). Configurez le chemin pour pointer vers le répertoire lib de JOD qui contient également le fichier jodconverter-core-version.jar.</entry>
+	<entry key="install.wizard.params.step3.jodPath.text"></entry>
+	<entry key="install.wizard.params.step3.officePath">Chemin vers OpenOffice-/LibreOffice pour jodconverter</entry>
+	<entry key="install.wizard.params.step3.officePath.title">Chemin vers OpenOffice/LibreOffice (optionnel). Indiquez le chemin réel dans le cas où jodconverter ne pourrait pas trouver l'installation de OpenOffice-/LibreOffice automatiquement.</entry>
+	<entry key="install.wizard.params.step3.officePath.text">Chemin vers OpenOffice/LibreOffice (optionnel). Indiquez le chemin réel dans le cas où jodconverter ne pourrait pas trouver l'installation de OpenOffice-/LibreOffice automatiquement.</entry>
+
+	<entry key="install.wizard.params.step4.crypt">Type de cryptage</entry>
+	<entry key="install.wizard.params.step4.cryptClassName">Classe de cryptage</entry>
+	<entry key="install.wizard.params.step4.cryptClassName.title">Indiquez le nom de la classe de cryptage. NE MODIFIEZ PAS CECI SI VOUS N'ETES PAS SUR !</entry>
+	<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[
+		Vous pouvez utiliser ce cryptage par défaut qui est équivalent à la fonction MD5 de PHP ou style de cryptage BDS en utilisant : 
+		<b>org.apache.openmeetings.utils.crypt.MD5CryptImplementation</b>
+		Pour plus d'information ou pour écrire votre propre cryptage voir : <a
+		href="http://openmeetings.apache.org/CustomCryptMechanism.html"
+		target="_blank">Custom Crypt Mechanism</a>. Vous pouvez éditer cette valeur plus tard MAIS les utilisateurs créés précédemment pourraient ne plus être utilisables. 
+	]]></entry>
+	<entry key="install.wizard.params.step4.red5SIP">Configuration red5SIP</entry>
+	<entry key="install.wizard.params.step4.red5SipEnable">Activer SIP</entry>
+	<entry key="install.wizard.params.step4.red5SipEnable.text">Activer l'intégration red5SIP</entry>
+	<entry key="install.wizard.params.step4.red5SipRoomPrefix">Préfix pour les salles SIP</entry>
+	<entry key="install.wizard.params.step4.red5SipRoomPrefix.text">Préfix pour le num. de tél. des salles de conférence</entry>
+	<entry key="install.wizard.params.step4.red5SipExtenContext">Contexte des extensions SIP</entry>
+	<entry key="install.wizard.params.step4.red5SipExtenContext.text">Contexte des extensions Asterisk</entry>
+
+	<entry key="install.wizard.install.desc">Veuillez cliquer sur "Finish" pour commencer l'installation !</entry>
+	<entry key="install.wizard.install.started">Please wait, installation in progress</entry>
+	<entry key="install.wizard.install.failed">Installation is failed</entry>
+
+	<entry key="install.wizard.congrats.enter">Entrer dans l'application</entry>
+	<entry key="install.wizard.congrats.port">Si votre serveur Red5 tourne sur un port différent ou sur un domaine différent</entry>
+	<entry key="install.wizard.congrats.config">modifiez la config du client</entry>
+	<entry key="install.wizard.congrats.mail">Liste de diffusion</entry>
+	<entry key="install.wizard.congrats.commercial">Il existe des sociétés
+		qui offrent un support commercial pour Apache OpenMeetings :</entry>
+</properties>
diff --git a/src/web/java/org/apache/openmeetings/web/app/Application_hu.properties.xml b/src/web/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
new file mode 100644
index 0000000..4f9f3f6
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
@@ -0,0 +1,241 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+<properties>
+	<entry key="install.wizard.welcome.panel"><![CDATA[
+	<ol>
+		<li>
+			<h4>
+				<a id="Recommendation_for_production_environment"></a>Ajánlott környezeti beállítások<a target="_blank"
+					href="#Recommendation_for_production_environment"
+					class="section_anchor"></a>
+			</h4>
+		<blockquote>
+			Az {0} alapértelmezette a beépített Apache Derby adatbázist használja. 
+			További lehetőségként használható a <a target="_blank"
+				href="http://openmeetings.apache.org/MySQLConfig.html">MySQL</a>, <a
+				target="_blank"
+				href="http://openmeetings.apache.org/PostgresConfig.html">Postgres</a>
+			vagy a minta alapján<a target="_blank"
+				href="http://openmeetings.apache.org/IBMDB2Config.html">IBM DB2</a>
+			vagy <a href="http://openmeetings.apache.org/OracleConfig.html"
+				target="_blank">Oracle</a>
+		</blockquote>
+		</li>
+		<li><h4>
+				<a id="Enabling_Image_Upload_and_import_to_whiteboard"></a>Képek feltöltése/importálása a prezentációs területbe<a
+					href="#Enabling_Image_Upload_and_import_to_whiteboard"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li>Telepítse a <strong>ImageMagick</strong> program csomagot a szerverre. Telepítési útmutató és további információk itt 
+				<a target="_blank" href="http://www.imagemagick.org" rel="nofollow">http://www.imagemagick.org</a>
+				<a target="_blank"
+					href="http://www.imagemagick.org/script/binary-releases.php"
+					rel="nofollow">http://www.imagemagick.org/script/binary-releases.php</a>,
+					Linux operációs rendszerben használja a beépített csomagkezelőt (apt-get it).
+				</li>
+			</ul>
+		</li>
+		<li><h4>
+				<a id="Enabling_import_of_PDFs_into_whiteboard"></a>PDF fileok feltöltése a prezentációs területbe<a
+					href="#Enabling_import_of_PDFs_into_whiteboard"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li>Telepítse a  <strong>GhostScript</strong> program csomagot a szerverre. Telepítési útmutató és további információk itt <a target="_blank"
+					href="http://pages.cs.wisc.edu/%7Eghost/" rel="nofollow">http://pages.cs.wisc.edu/~ghost/</a>
+					Linux operációs rendszerben használja a beépített csomagkezelőt (apt-get it).
+				</li>
+				<li>Telepítse a <strong>SWFTools</strong> program csomagot a szerverre. Telepítési útmutató és további információk itt  <a target="_blank"
+					href="http://www.swftools.org/" rel="nofollow">http://www.swftools.org/</a>
+					Több linux disztribúció csomagkezelőjében megtalálható <a target="_blank"
+					href="http://packages.debian.org/unstable/utils/swftools"
+					rel="nofollow">http://packages.debian.org/unstable/utils/swftools</a>),
+					ajánlott verzió a <strong>SWFTools</strong> 0.9 egyéb verzió bugja miatt hibát okozhat a prezentációkban. 
+				</li>
+		</ul>
+		</li>
+		<li><h4>
+				<a
+					id="Enabling_import_of_.doc,_.docx,_.ppt,_.pptx,_..._all_Office_Docu"></a>Dokumentumok importálása a prezentációs területrbe
+				.doc, .docx, .ppt, .pptx, ... stb (OpenOfice kompatibilis).<a
+					href="#Enabling_import_of_.doc,_.docx,_.ppt,_.pptx,_..._all_Office_Docu"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li>Telepítse az <strong>OpenOffice / LibreOffice</strong> program csomagot a szerverre. Telepítési útmutató és további információk itt  <a target="_blank"
+					href="http://www.openoffice.org/" rel="nofollow">http://www.openoffice.org/</a>
+					<a target="_blank"
+					href="http://www.libreoffice.org/" rel="nofollow">http://www.libreffice.org/</a>
+					LibreOffice program csomag használata esetén rendelje hozzá szimbólikus linkként az OpenOffice könyvtárat.
+					<br />
+					ln -s /opt/libreoffice /opt/openoffice 
+				</li>
+				<li><strong>OpenOffice-Service</strong> automatikusan indul és elérhető a
+					8100 porton. Bővebb információ itt <a target="_blank"
+					href="http://openmeetings.apache.org/OpenOfficeConverter.html">OpenOfficeConverter</a>
+				</li>
+			</ul>
+		</li>
+		<li><h4>
+				<a
+					id="Enabling_Recording_and_import_of_.avi,_.flv,_.mov_and_.mp4_into"></a>Videó felvétele és importálása .avi, .flv, .mov and .mp4 formátumokban a prezentációs területbe<a
+					href="#Enabling_Recording_and_import_of_.avi,_.flv,_.mov_and_.mp4_into"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li>Telepítse az <strong>FFMpeg</strong> programcsomagot. Használja az FFMPEG aktuális, friss verzióját.
+				 	Windows rendszerekhez kiadások itt <a target="_blank" href="http://ffmpeg.arrozcru.org/builds/"
+					rel="nofollow">http://ffmpeg.arrozcru.org/builds/</a> Linux, OSX rendszerkhez
+					többféle lehetőség érhető el, keresse meg a megfelelőt az interneten. 
+					Szükséges a libmp3lame kóder engedélyezése/implementálása!
+				</li>
+				<li>Telepítse a <strong>SoX</strong> programot innen: <a
+					href="http://sox.sourceforge.net/" target="_BLANK">http://sox.sourceforge.net/</a>.
+					A SoX friss verzióit használja! SoX 12.xx nem/hibásan működik!
+				</li>
+			</ul>
+		</li>
+	</ol>
+	
+	<b><span style="font-size: 1.2em">Közösségi-támogatás:</span></b>
+	<br />
+	<br />
+	<span style="font-size: 1.1em"><a
+		href="http://openmeetings.apache.org/mail-lists.html"
+		target="_blank">Levelező lista</a></span>
+	<br />
+    <br />
+	<br />
+    <b> <span style="font-size: 1.4em">Néhány cég, akik üzleti támogatást nyújthatnak Apache OpenMeetings:</span></b>
+	<br />
+	<br />
+    
+	<span style="font-size: 1.3em"><a
+		href="http://openmeetings.apache.org/commercial-support.html"
+		target="_blank">http://openmeetings.apache.org/commercial-support.html</a></span>
+	<br />
+	]]></entry>
+	<entry key="install.wizard.params.step1.userdata">Felhasználói adatok</entry>
+	<entry key="install.wizard.params.step1.username">Felhasználónév</entry>
+	<entry key="install.wizard.params.step1.username.title">Adja meg a felhasználói nevét</entry>
+	<entry key="install.wizard.params.step1.password">Jelszó</entry>
+	<entry key="install.wizard.params.step1.password.title">Adja meg a jelszavát</entry>
+	<entry key="install.wizard.params.step1.email">EMail</entry>
+	<entry key="install.wizard.params.step1.email.title">Adja meg az e-mail címét</entry>
+	<entry key="install.wizard.params.step1.tz">Időzóna kiválasztása</entry>
+	<entry key="install.wizard.params.step1.groupdata">Szervezeti egység (Domain)</entry>
+	<entry key="install.wizard.params.step1.group">Név (domain)</entry>
+	<entry key="install.wizard.params.step1.group.title">Adja meg a nevet (domain)</entry>
+
+	<entry key="install.wizard.params.step2.configuration">Beállítások</entry>
+	<entry key="install.wizard.params.step2.allowFrontendRegister">Előregisztráció engedélyezése (megjelenik a belépő panelen)</entry>
+	<entry key="install.wizard.params.step2.sendEmailAtRegister">Regisztrációs e-mail küldése</entry>
+	<entry key="install.wizard.params.step2.sendEmailWithVerficationCode">Regisztráció megerősítése e-mailben (megerősítő link küldése)</entry>
+	<entry key="install.wizard.params.step2.createDefaultRooms">Alapértelmezett típusú konferencia szobák létrehozása</entry>
+	<entry key="install.wizard.params.step2.mailReferer">Rendszer e-mail cím</entry>
+	<entry key="install.wizard.params.step2.mailReferer.title">Rendszer e-mail megadása</entry>
+	<entry key="install.wizard.params.step2.smtpServer">SMTP-Szerver (smtp_server)</entry>
+	<entry key="install.wizard.params.step2.smtpServer.title">Enter a SMTP-Server</entry>
+	<entry key="install.wizard.params.step2.smtpPort">SMTP-Szerver Port(alapértelmezett Smtp-Server Port 25) (smtp_port)</entry>
+	<entry key="install.wizard.params.step2.smtpPort.title">Enter a SMTP-Server.Port normally 25</entry>
+	<entry key="install.wizard.params.step2.mailAuthName">SMTP-Felhasználó név (email_username)</entry>
+	<entry key="install.wizard.params.step2.mailAuthName.title">Adja meg a felhasználó nevet</entry>
+	<entry key="install.wizard.params.step2.mailAuthPass">SMTP-Felhasználó jelszó (email_userpass)</entry>
+	<entry key="install.wizard.params.step2.mailAuthPass.title">Adja meg a jelszót</entry>
+	<entry key="install.wizard.params.step2.mailUseTls">TLS engedélyezése az authentikációhoz</entry>
+	<entry key="install.wizard.params.step2.replyToOrganizer">A meghívó e-mail címének küldése és beállítása a válasz küldéshez (reply-to) fejlécben(inviter.email.as.replyto)</entry>
+	<entry key="install.wizard.params.step2.defaultLangId">Alapértelmezett nyelv</entry>
+	<entry key="install.wizard.params.step2.defaultExportFont">Alapértelmezett betükészlet [default_export_font]</entry>
+
+	<entry key="install.wizard.params.step3.converters">Konverterek</entry>
+	<entry key="install.wizard.params.step3.seeAlso"> bővebben</entry>
+	<entry key="install.wizard.params.step3.installation">Telepítés</entry>
+	<entry key="install.wizard.params.step3.swfZoom">SWFTools Zoom</entry>
+	<entry key="install.wizard.params.step3.swfZoom.title">Adja meg az SWFTools felbontását (dpi) amit a PDF2SWF konverziónál használ</entry>
+	<entry key="install.wizard.params.step3.swfZoom.text">
+		Ellenőrizze az swftools telepítését és elérését a rendszerútvonalon.
+		Nyisson egy parancssort és futtassa: pdf2swf. Paraméterként megadhatja a felbontást.
+		Alapértelmezett felbontás 100 dpi.
+	</entry>
+	<entry key="install.wizard.params.step3.swfJpegQuality">SWFTools JPEG Minőség</entry>
+	<entry key="install.wizard.params.step3.swfJpegQuality.title">Adja meg a jpeg képek minőségi rátáját. 0 a gyengébb (kicsi), 100 a legjobb (nagy). (alapértelmezett:85)</entry>
+	<entry key="install.wizard.params.step3.swfJpegQuality.text">
+		Ellenőrizze az swftools telepítését és elérését a rendszerútvonalon.
+		Nyisson egy parancssort és futtassa: pdf2swf. Paraméterként megadhatja a 
+		a jpeg képek minőségét. 0 a gyengébb (kicsi),
+		100 a legjobb (nagy). (alapértelmezett:85).
+	</entry>
+	<entry key="install.wizard.params.step3.swfPath">SWFTools útvonala</entry>
+	<entry key="install.wizard.params.step3.swfPath.title">Adja meg az SWFTools elérési útvonalát C:/swftools (Windows) /usr/local/swftools (Linux) vagy hagyja üresen, ha elérhető a rendszerútvonalak közt</entry>
+	<entry key="install.wizard.params.step3.swfPath.text">
+		Ellenőrizze az swftools telepítését és elérését a rendszerútvonalon.
+		Nyisson egy parancssort és futtassa: pdf2swf. Hagyja üresen, ha nem ismeri, vagy ha elérhető a rendszerútvonalon. 
+	</entry>
+	<entry key="install.wizard.params.step3.imageMagicPath">ImageMagick útvonala</entry>
+	<entry key="install.wizard.params.step3.imageMagicPath.title">Adja meg a ImageMagick elérési útvonalát, hagyja üresen, ha az ImageMagick elérhető a rendszer útvonalak közt</entry>
+	<entry key="install.wizard.params.step3.imageMagicPath.text"></entry>
+	<entry key="install.wizard.params.step3.ffmpegPath">FFMPEG útvonala</entry>
+	<entry key="install.wizard.params.step3.ffmpegPath.title">Adja meg az FFMPEG alérési útvonalát, hagyja üresen, ha az FFMPEG elérhető a rendszer útvonalak közt</entry>
+	<entry key="install.wizard.params.step3.ffmpegPath.text"></entry>
+	<entry key="install.wizard.params.step3.soxPath">SoX útvonala</entry>
+	<entry key="install.wizard.params.step3.soxPath.title">Adja meg a SoX elérési útvonalát, hagyja üresen, ha a SoX elérhető a rendszer útvonalak közt</entry>
+	<entry key="install.wizard.params.step3.soxPath.text"></entry>
+	<entry key="install.wizard.params.step3.jodPath">JOD útvonala</entry>
+	<entry key="install.wizard.params.step3.jodPath.title">A JOD könyvtár útvonala (http://code.google.com/p/jodconverter), a JOD könyvtárban szükséges a jodconverter-core-version.jar</entry>
+	<entry key="install.wizard.params.step3.jodPath.text"></entry>
+	<entry key="install.wizard.params.step3.officePath">OpenOffice/LibreOffice útvonala a jodconverterhez</entry>
+	<entry key="install.wizard.params.step3.officePath.title">Adja meg az OpenOffice/LibreOffice (optional) valós útvonalát, a OpenOffice/LibreOffice nem keresi automatikusan a jodconverter</entry>
+	<entry key="install.wizard.params.step3.officePath.text">
+		Az OpenOffice/LibreOffice (optional) útvonalát a jodconverter nem találja autómatikusan, az abszolút elérési útvonal szükséges
+	</entry>
+
+	<entry key="install.wizard.params.step4.crypt">Titkosítás típusa</entry>
+	<entry key="install.wizard.params.step4.cryptClassName">Titkosító osztály</entry>
+	<entry key="install.wizard.params.step4.cryptClassName.title">Adja meg a titkosító osztály nevét (class). NE VÁLTOZTASSA, HA NEM BIZTOS BENNE!</entry>
+	<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[
+		Az alapértelmezetten beállított kódolás megfelel a 
+		PHP-MD5 kódolónak, vagy BSD-Stílusú kódoláshoz használja a:<b>org.apache.openmeetings.utils.crypt.MD5CryptImplementation</b>
+		további kódolási/titkosítási eljárásokról itt olvashat bővebben: <a
+		href="http://openmeetings.apache.org/CustomCryptMechanism.html"
+		target="_blank">Egyedi titkosítási mechanizmus </a> Ha a későbbiekben módosítja ezt a beállítást,
+		az előzőleg létrehozott adatok elérhetetlenné válnak, ami működési hibát okozhat a régebbi munkamenetek elérésében 
+		(pl. jelszó, hash kezelés).
+	]]></entry>
+	<entry key="install.wizard.params.step4.red5SIP">Red5SIP Beállítása</entry>
+	<entry key="install.wizard.params.step4.red5SipEnable">SIP engedélyezése</entry>
+	<entry key="install.wizard.params.step4.red5SipEnable.text">Red5SIP integráció engedélyezése</entry>
+	<entry key="install.wizard.params.step4.red5SipRoomPrefix">SIP szoba prefix</entry>
+	<entry key="install.wizard.params.step4.red5SipRoomPrefix.text">Telefonszám prefixum beállítása a konferencia szobához</entry>
+	<entry key="install.wizard.params.step4.red5SipExtenContext">SIP kiterjesztés leírása</entry>
+	<entry key="install.wizard.params.step4.red5SipExtenContext.text">Leírás az Asterix konfigurálásához</entry>
+
+	<entry key="install.wizard.install.desc">Kattintson a "Befejezés" gombra a telepítés folytatásához</entry>
+	<entry key="install.wizard.install.started">Please wait, installation in progress</entry>
+	<entry key="install.wizard.install.failed">Installation is failed</entry>
+
+	<entry key="install.wizard.congrats.enter">Belépés az alkalmazásba</entry>
+	<entry key="install.wizard.congrats.port">Ha a Red5 szervert más porton, domainen, vagy más beállításokkal használja</entry>
+	<entry key="install.wizard.congrats.config">változtassa meg a kliens szükséges konfigurációit</entry>
+	<entry key="install.wizard.congrats.mail">Levelező lista</entry>
+	<entry key="install.wizard.congrats.commercial">Néhány cég, akik üzleti támogatást nyújthatnak Apache OpenMeetings:</entry>
+</properties>
diff --git a/src/web/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml b/src/web/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
new file mode 100644
index 0000000..4a24ddf
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+<properties>
+	<entry key="install.wizard.welcome.panel"><![CDATA[
+	<ol>
+		<li>
+			<h4>
+				<a id="Recommendation_for_production_environment"></a>Recomenda&ccedil;&otilde;es 
+				para o ambiente de produ&ccedil;&atilde;o<a target="_blank"
+					href="#Recommendation_for_production_environment"
+					class="section_anchor"></a>
+			</h4>
+		<blockquote>
+			Por padr&atilde;o {0} o banco de dados Apache Derby integrado ao sistema &eacute; 
+			utilizado. Para o ambiente de produ&ccedil;&atilde;o voc&ecirc; deve considerar o uso do <a target="_blank"
+				href="http://openmeetings.apache.org/MySQLConfig.html">MySQL</a>, <a
+				target="_blank"
+				href="http://openmeetings.apache.org/PostgresConfig.html">Postgres</a>
+			ou, por exemplo, <a target="_blank"
+				href="http://openmeetings.apache.org/IBMDB2Config.html">IBM DB2</a>
+			ou <a href="http://openmeetings.apache.org/OracleConfig.html"
+				target="_blank">Oracle</a>
+		</blockquote>
+		</li>
+		<li><h4>
+				<a id="Enabling_Image_Upload_and_import_to_whiteboard"></a>Habilitando envio e 
+					importa&ccedil;&atilde;o de imagens para a lousa<a
+					href="#Enabling_Image_Upload_and_import_to_whiteboard"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li>Instale <strong>ImageMagick</strong> no servidor, voc&ecirc; pode
+					obter maiores informa&ccedil;&otilde;es em <a target="_blank"
+					href="http://www.imagemagick.org" rel="nofollow">http://www.imagemagick.org</a>, inclusive 
+					sobre a instala&ccedil;&atilde;o. As instru&ccedil;&otilde;es sobre a instala&ccedil;&atilde;o
+					podem ser encontradas aqui <a target="_blank"
+					href="http://www.imagemagick.org/script/binary-releases.php"
+					rel="nofollow">http://www.imagemagick.org/script/binary-releases.php</a>,
+					entretanto na maioria dos sistemas Linux voc&ecirc; poder&aacute; instal&aacute;-lo pelo seu 						gerenciador de pacotes favorito (ex.: apt-get)
+				</li>
+			</ul>
+		</li>
+		<li><h4>
+				<a id="Enabling_import_of_PDFs_into_whiteboard"></a>Habilitando 
+				importa&ccedil;&atilde;o de PDFs na lousa<a
+					href="#Enabling_import_of_PDFs_into_whiteboard"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li>Instale <strong>GhostScript</strong> no servidor, voc&ecirc; pode
+					obter maiores informa&ccedil;&otilde;es em <a target="_blank"
+					href="http://pages.cs.wisc.edu/%7Eghost/" rel="nofollow">http://pages.cs.wisc.edu/~ghost/</a>,
+					inclusive sobre a instala&ccedil;&atilde;o. As instru&ccedil;&otilde;s sobre a 						instala&ccedil;&atilde;o podem ser encontradas neste mesmo link, entretanto na maioria dos 						sistemas Linux voc&ecirc; poder&aacute; instal&aacute;-lo pelo seu gerenciador 
+					de pacotes favorito (ex.: apt-get)
+				</li>
+				<li>Instale <strong>SWFTools</strong> no servidor, voc&ecirc; pode
+					obter maiores informa&ccedil;&otilde;es em <a target="_blank"
+					href="http://www.swftools.org/" rel="nofollow">http://www.swftools.org/</a>, inclusive
+					sobre a instala&ccedil;&atilde;o. Algumas distribui&ccedil;&otilde;es de Linux j&aacute; o 
+					possui em seus gerenciadores de pacote, veja <a target="_blank"
+					href="http://packages.debian.org/unstable/utils/swftools"
+					rel="nofollow">http://packages.debian.org/unstable/utils/swftools</a>.
+					A vers&atilde;o recomendada do <strong>SWFTools</strong> &eacute; 0.9, pois a vers&atilde;o 
+					anterior possui um bug que coloca o objeto na lousa com dimens&otilde;es incorretas	
+				</li>
+		</ul>
+		</li>
+		<li><h4>
+				<a
+					id="Enabling_import_of_.doc,_.docx,_.ppt,_.pptx,_..._all_Office_Docu"></a>Habilitando
+				importa&ccedil;&atilde;o de todos os documentos Office como .doc, .docx, .ppt, .pptx, (...) na lousa
+				<a
+					href="#Enabling_import_of_.doc,_.docx,_.ppt,_.pptx,_..._all_Office_Docu"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li><strong>OpenOffice-Service</strong> iniciado e executando na 
+					porta 8100, veja <a target="_blank"
+					href="http://openmeetings.apache.org/OpenOfficeConverter.html">OpenOfficeConverter</a>
+					para detalhes</li>
+			</ul>
+		</li>
+		<li><h4>
+				<a
+					id="Enabling_Recording_and_import_of_.avi,_.flv,_.mov_and_.mp4_into"></a>Habilitando
+				Grava&ccedil;&otilde;es e importa&ccedil;&atilde;o de arquivos .avi, .flv, .mov e .mp4 na lousa<a
+					href="#Enabling_Recording_and_import_of_.avi,_.flv,_.mov_and_.mp4_into"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li>Instale <strong>FFMpeg</strong>. Voc&ecirc; deve obter a vers&atilde;o mais atual do FFMPEG!
+					Para Windows voc&ecirc; pode baixar a versão compilada, por exemplo, 
+					de <a target="_blank" href="http://ffmpeg.arrozcru.org/builds/"
+					rel="nofollow">http://ffmpeg.arrozcru.org/builds/</a> Usu&aacute;rios Linux ou OSx
+					dever&atilde;o usar uma das diversas instru&ccedil;&otilde;es de instala&ccedil;&atilde;o 
+					existentes na Web. Voc&ecirc; precisa habilitar o libmp3lame!
+				</li>
+				<li>Instale <strong>SoX</strong> <a
+					href="http://sox.sourceforge.net/" target="_BLANK">http://sox.sourceforge.net/</a>.
+					Voc&ecirc; deve instalar a vers&atilde;o mais recente do SoX! 
+					SoX 12.xx N&Atilde;O funcionar&aacute;!
+				</li>
+			</ul>
+		</li>
+	</ol>
+
+	<br />
+	<b> <span style="font-size: 1.2em">Se voc&ecirc; tiver outras d&uacute;vidas ou precisar de suporte para a 
+		instala&ccedil;&atilde;o ou hospedagem:</span></b>
+	<br />
+	<br />
+
+	<b><span style="font-size: 1.2em">Suporte da comunidade:</span></b>
+	<br />
+	<br />
+	<span style="font-size: 1.1em"><a
+		href="http://openmeetings.apache.org/mail-lists.html"
+		target="_blank">Lista de discuss&atilde;o</a></span>
+	<br />
+	
+	<b> <span style="font-size: 1.4em">Existem algumas empresas que tamb&eacute;m oferecem suporte comercial para o Apache OpenMeetings:</span></b>
+    <br />
+    <br />
+    <br />
+    <br />
+    <span style="font-size: 1.3em"><a
+        href="http://openmeetings.apache.org/commercial-support.html"
+        target="_blank">http://openmeetings.apache.org/commercial-support.html</a></span>
+    <br />
+	]]></entry>
+	<entry key="install.wizard.params.step1.userdata"><![CDATA[Dados do usu&aacute;rio]]></entry>
+	<entry key="install.wizard.params.step1.username"><![CDATA[Usu&aacute;rio]]></entry>
+	<entry key="install.wizard.params.step1.username.title"><![CDATA[Digite um usu&aacute;rio]]></entry>
+	<entry key="install.wizard.params.step1.password">Senha</entry>
+	<entry key="install.wizard.params.step1.password.title">Digite uma senha</entry>
+	<entry key="install.wizard.params.step1.email">E-Mail</entry>
+	<entry key="install.wizard.params.step1.email.title">Digite um e-mail</entry>
+	<entry key="install.wizard.params.step1.tz">Time Zone</entry>
+	<entry key="install.wizard.params.step1.groupdata"><![CDATA[Organização (Dom&iacute;nios)]]></entry>
+	<entry key="install.wizard.params.step1.group">Nome</entry>
+	<entry key="install.wizard.params.step1.group.title"><![CDATA[Digite a Organiza&ccedil;&atilde;o padr&atilde;o]]></entry>
+
+	<entry key="install.wizard.params.step2.configuration">Configuration</entry>
+	<entry key="install.wizard.params.step2.allowFrontendRegister">Permitir auto-cadastro (allow_frontend_register)</entry>
+	<entry key="install.wizard.params.step2.sendEmailAtRegister"><![CDATA[Enviar e-mail para novos Usu&aacute;rios cadastrados (sendEmailAtRegister)]]></entry>
+	<entry key="install.wizard.params.step2.sendEmailWithVerficationCode"><![CDATA[Novos Usu&aacute;rios precisam validar seus e-mails (sendEmailWithVerficationCode)]]></entry>
+	<entry key="install.wizard.params.step2.createDefaultRooms"><![CDATA[Todos os tipos de Salas padr&atilde;o ser&amp;atildeo criadas]]></entry>
+	<entry key="install.wizard.params.step2.mailReferer">E-mail do sistema (system_email_addr)</entry>
+	<entry key="install.wizard.params.step2.mailReferer.title">Digite um e-mail</entry>
+	<entry key="install.wizard.params.step2.smtpServer">Servidor SMTP (smtp_server)</entry>
+	<entry key="install.wizard.params.step2.smtpServer.title">Digite um servidor SMTP</entry>
+	<entry key="install.wizard.params.step2.smtpPort"><![CDATA[Porta SMTP (a porta SMTP padr&atilde;o &eacute; 25) (smtp_port)]]></entry>
+	<entry key="install.wizard.params.step2.smtpPort.title"><![CDATA[Digite a porta do servi&ccedil;o SMTP. Padr&atilde;o &eacute; normalmente a porta 25]]></entry>
+	<entry key="install.wizard.params.step2.mailAuthName"><![CDATA[Usu&aacute;rio SMTP (email_username)]]></entry>
+	<entry key="install.wizard.params.step2.mailAuthName.title"><![CDATA[Digite o usu&aacute;rio do e-mail]]></entry>
+	<entry key="install.wizard.params.step2.mailAuthPass">Senha SMTP (email_userpass)</entry>
+	<entry key="install.wizard.params.step2.mailAuthPass.title">Digite a senha do e-mail</entry>
+	<entry key="install.wizard.params.step2.mailUseTls"><![CDATA[Habilitar TLS na autentica&ccedil;&atilde;o do e-mail]]></entry>
+	<entry key="install.wizard.params.step2.replyToOrganizer"><![CDATA[Marcar endere&ccedil;o de e-mail do convidador no campo ReplyTo do e-mail enviado ao convidado (inviter.email.as.replyto)]]></entry>
+	<entry key="install.wizard.params.step2.defaultLangId"><![CDATA[Linguagem padr&atilde;o]]></entry>
+	<entry key="install.wizard.params.step2.defaultExportFont"><![CDATA[Fonte padr&atilde;o para exporta&ccedil;&atilde;o [default_export_font]]]></entry>
+
+	<entry key="install.wizard.params.step3.converters">Conversores</entry>
+	<entry key="install.wizard.params.step3.seeAlso"> Veja mais em</entry>
+	<entry key="install.wizard.params.step3.installation"><![CDATA[Instala&ccedil;&atilde;o]]></entry>
+	<entry key="install.wizard.params.step3.swfZoom">SWFTools Zoom</entry>
+	<entry key="install.wizard.params.step3.swfZoom.title"><![CDATA[Digite o dpi que o swftools usar&aacute; para a convers&atilde;o do PDF para SWF]]></entry>
+	<entry key="install.wizard.params.step3.swfZoom.text"><![CDATA[
+		Voc&ecirc; pode testar se o swftools está instalado no caminho do sistema
+		abrindo o shell ou prompt de comando e digitando pdf2swf. Digite o dpi 
+		que o swftools usar&aacute; para a convers&atilde;o do PDF para SWF. Padr&atilde;o 
+		&eacute; 100 dpi.
+	]]></entry>
+	<entry key="install.wizard.params.step3.swfJpegQuality">Qualidade JPEG no SWFTools</entry>
+	<entry key="install.wizard.params.step3.swfJpegQuality.title"><![CDATA[Digite a qualidade das imagens jpeg incorporadas. 0 &eacute; a pior (menor), 100 &eacute; a melhor (maior). (padr&atilde;o:85)]]></entry>
+	<entry key="install.wizard.params.step3.swfJpegQuality.text"><![CDATA[
+		Voc&ecirc; pode testar se o swftools está instalado no caminho do sistema
+		abrindo o shell ou prompt de comando e digitando pdf2swf. Digite a qualidade das 
+		imagens jpeg incorporadas. 0 &eacute; a pior (menor), 100 &eacute; a melhor (maior). 
+		(padr&atilde;o:85).
+	]]></entry>
+	<entry key="install.wizard.params.step3.swfPath"><![CDATA[Diret&oacute;rio do SWFTools]]></entry>
+	<entry key="install.wizard.params.step3.swfPath.title"><![CDATA[Digite o caminho do diret&oacute;rio para o swftools, por exemplo C:/swftools, ou deixe em branco se o swftools estiver localizado em um diret&oacute;rio contido no caminho do sistema (system path)]]></entry>
+	<entry key="install.wizard.params.step3.swfPath.text"><![CDATA[
+		Voc&ecirc; pode testar se o swftools está instalado no caminho do sistema
+		abrindo o shell ou prompt de comando e digitando pdf2swf. Se isso mostrar 
+		uma lista de op&ccedil;&otilde;es deixe este campo em branco, caso contr&aacute;rio 
+		voc&ecirc; dever&aacute; especificar o diret&oacute;rio 
+		do pdf2swf no seu sistema.
+	]]></entry>
+	<entry key="install.wizard.params.step3.imageMagicPath"><![CDATA[Diret&oacute;rio do ImageMagick]]></entry>
+	<entry key="install.wizard.params.step3.imageMagicPath.title"><![CDATA[Digite o caminho do diret&oacute;rio para o ImageMagick, deixe em branco se o ImageMagick estiver localizado em um diret&oatilde;rio contido no caminho do sistema (system path)]]></entry>
+	<entry key="install.wizard.params.step3.imageMagicPath.text"></entry>
+	<entry key="install.wizard.params.step3.ffmpegPath"><![CDATA[Diret&oacute;rio do FFMPEG]]></entry>
+	<entry key="install.wizard.params.step3.ffmpegPath.title"><![CDATA[Digite o caminho do diret&oacute;rio do para o FFMPEG, deixe em branco se o FFMPEG estiver localizado em um diret&oatilde;rio contido no caminho do sistema (system path)]]></entry>
+	<entry key="install.wizard.params.step3.ffmpegPath.text"></entry>
+	<entry key="install.wizard.params.step3.soxPath"><![CDATA[Diret&oacute;rio do SoX]]></entry>
+	<entry key="install.wizard.params.step3.soxPath.title"><![CDATA[Digite o caminho do diret&oacute;rio do para o SoX, deixe em branco se o SoX estiver localizado em um diret&oatilde;rio contido no caminho do sistema (system path)]]></entry>
+	<entry key="install.wizard.params.step3.soxPath.text"></entry>
+	<entry key="install.wizard.params.step3.jodPath"><![CDATA[Diret&oacute;rio do JOD]]></entry>
+	<entry key="install.wizard.params.step3.jodPath.title"><![CDATA[O diret&oacute;rio da biblioteca JOD (http://code.google.com/p/jodconverter), configure o mesmo para o ponto onde o diret&oacute;rio lib do JOD que também contenha o arquivo jodconverter-core-version.jar]]></entry>
+	<entry key="install.wizard.params.step3.jodPath.text"></entry>
+	<entry key="install.wizard.params.step3.officePath"><![CDATA[Diret&oacute;rio do OpenOffice/LibreOffice para jodconverter]]></entry>
+	<entry key="install.wizard.params.step3.officePath.title"><![CDATA[O diret&oacute;rio do OpenOffice/LibreOffice (opcional). Por favor configure este com o caminho real caso o jodconverter não encontre a instala&ccedil;&atilde;o do OpenOffice/LibreOffice automaticamente]]></entry>
+	<entry key="install.wizard.params.step3.officePath.text"><![CDATA[
+		O diret&oacute;rio do OpenOffice/LibreOffice (opcional). 
+		Por favor configure este campo com o caminho real caso o jodconverter 
+		não encontre a instala&ccedil;&atilde;o do OpenOffice/LibreOffice automaticamente
+	]]></entry>
+
+	<entry key="install.wizard.params.step4.crypt">Crypt Type</entry>
+	<entry key="install.wizard.params.step4.cryptClassName">Classe Crypt</entry>
+	<entry key="install.wizard.params.step4.cryptClassName.title"><![CDATA[Digite o nome da Classe de Criptografia. N&Atilde;O ALTERE ISTO SE VOC&Ecirc; N&Atilde;O TIVER CERTEZA]]></entry>
+	<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[
+		Voc&ecirc; pode usar este tipo padr&atilde;o de criptografia que &eacute; igual a 
+		fun&ccedil;&atilde;o PHP-MD5 ou a criptografia BSD-Style 
+		utilizando: <b>org.apache.openmeetings.utils.crypt.MD5CryptImplementation</b>
+		para maiores informa&ccedil;&otilde;es ou para escrever seu pr&oacute;prio Crypt-Style 
+		veja: <a
+		href="http://openmeetings.apache.org/CustomCryptMechanism.html"
+		target="_blank">Mecanismo de Criptografia personalizado</a>
+		Voc&ecirc; pode editar este valor mais tarde MAS Usu&aacute;rios e Sess&otilde;es 
+		criadas podem n&atilde;o mais estarem acess&iacute;veis
+	]]></entry>
+	<entry key="install.wizard.params.step4.red5SIP"><![CDATA[Configura&ccedil;&atilde;o red5SIP]]></entry>
+	<entry key="install.wizard.params.step4.red5SipEnable">Habilitar SIP</entry>
+	<entry key="install.wizard.params.step4.red5SipEnable.text"><![CDATA[Habilitar integra&ccedil;&atilde;o red5SIP]]></entry>
+	<entry key="install.wizard.params.step4.red5SipRoomPrefix">Prefixo de salas SIP</entry>
+	<entry key="install.wizard.params.step4.red5SipRoomPrefix.text"><![CDATA[Prefixo de n&uacute;mero de telefone das salas de conferencia]]></entry>
+	<entry key="install.wizard.params.step4.red5SipExtenContext"><![CDATA[Contexto de extens&otilde;s SIP]]></entry>
+	<entry key="install.wizard.params.step4.red5SipExtenContext.text"><![CDATA[Contexto de extens&otilde;es Asterisk]]></entry>
+
+	<entry key="install.wizard.install.desc"><![CDATA[Por favor clique no bot&atilde;o "Finalizar" para inicar a instala&ccedil;&atilde;o!]]></entry>
+	<entry key="install.wizard.install.started">Please wait, installation in progress</entry>
+	<entry key="install.wizard.install.failed">Installation is failed</entry>
+
+	<entry key="install.wizard.congrats.enter">Digite o Aplicativo</entry>
+	<entry key="install.wizard.congrats.port"><![CDATA[Se seu servidor Red5 &eacute; executado em uma porta ou dom&iacute;nio diferente]]></entry>
+	<entry key="install.wizard.congrats.config"><![CDATA[altere os valores da configura&ccedil;&atilde;o do cliente]]></entry>
+	<entry key="install.wizard.congrats.mail"><![CDATA[Listas de discuss&atilde;o]]></entry>
+	<entry key="install.wizard.congrats.commercial"><![CDATA[Existem algumas empresas que tamb&eacute;m oferecem suporte comercial para o Apache OpenMeetings:]]></entry>
+</properties>
diff --git a/src/web/java/org/apache/openmeetings/web/app/Application_ru.properties.xml b/src/web/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
new file mode 100644
index 0000000..1f31a62
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
@@ -0,0 +1,259 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+<properties>
+	<entry key="install.wizard.welcome.panel"><![CDATA[
+	<ol>
+		<li>
+			<h4>
+				<a id="Recommendation_for_production_environment"></a>Рекомендации
+				для настроек продукта<a target="_blank"
+					href="#Recommendation_for_production_environment"
+					class="section_anchor"></a>
+			</h4>
+		<blockquote>
+			По умолчанию {0} использует интегрированную базу данных Apache Derby. В 
+			продакшине Вы должны задуматься об использовании таких баз, как  <a target="_blank"
+				href="http://openmeetings.apache.org/MySQLConfig.html">MySQL</a>, <a
+				target="_blank"
+				href="http://openmeetings.apache.org/PostgresConfig.html">Postgres</a>
+			или например <a target="_blank"
+				href="http://openmeetings.apache.org/IBMDB2Config.html">IBM DB2</a>
+			или <a href="http://openmeetings.apache.org/OracleConfig.html"
+				target="_blank">Oracle</a>
+		</blockquote>
+		</li>
+		<li><h4>
+				<a id="Enabling_Image_Upload_and_import_to_whiteboard"></a>Для возможности
+				загрузки и импорта изображений на доску<a
+					href="#Enabling_Image_Upload_and_import_to_whiteboard"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li>Установите <strong>ImageMagick</strong> на Ваш сервер, более
+					подробную информацию касающуюся установки можно посмотреть тут <a target="_blank"
+					href="http://www.imagemagick.org" rel="nofollow">http://www.imagemagick.org</a>
+					Инструкцию по установке Вы можете найти здесь
+					<a target="_blank"
+					href="http://www.imagemagick.org/script/binary-releases.php"
+					rel="nofollow">http://www.imagemagick.org/script/binary-releases.php</a>,
+					однако в большинстве систем Линукс Вы можете установить его через Ваш 
+					менеджер пакетов (apt-get it)
+				</li>
+			</ul>
+		</li>
+		<li><h4>
+				<a id="Enabling_import_of_PDFs_into_whiteboard"></a>Для возможности
+				импорта PDF файлов на доску<a
+					href="#Enabling_import_of_PDFs_into_whiteboard"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li>Установите <strong>GhostScript</strong> на Ваш сервер, более подробную
+					информацию Вы можете посмотреть на сайте <a target="_blank"
+					href="http://pages.cs.wisc.edu/%7Eghost/" rel="nofollow">http://pages.cs.wisc.edu/~ghost/</a>
+					Инструкции по установке Вы можете
+					найти здесь, однако в большинстве систем Линукс Вы можете установить его через Ваш 
+					менеджер пакетов (apt-get it).
+				</li>
+				<li>Установите <strong>SWFTools</strong> на Ваш сервер, более подробную информацию
+					можно найти на сайте <a target="_blank"
+					href="http://www.swftools.org/" rel="nofollow">http://www.swftools.org/</a>
+					Некоторые дистрибутивы Линукс уже включают его
+					в свои менеджеры пакетов, посмотреть можно здесь <a target="_blank"
+					href="http://packages.debian.org/unstable/utils/swftools"
+					rel="nofollow">http://packages.debian.org/unstable/utils/swftools</a>),
+					для установки рекомендуется <strong>SWFTools</strong> версии 0.9 так как 
+					предыдущая версия содержит баг который приводил к ошибке отображения размеров объекта 
+					на доске
+				</li>
+		</ul>
+		</li>
+		<li><h4>
+				<a
+					id="Enabling_import_of_.doc,_.docx,_.ppt,_.pptx,_..._all_Office_Docu"></a>Для возможности
+				импорта файлов .doc, .docx, .ppt, .pptx, ... и прочих документов на
+				доску<a
+					href="#Enabling_import_of_.doc,_.docx,_.ppt,_.pptx,_..._all_Office_Docu"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li><strong>OpenOffice-Service</strong> запускается и прослушивает
+					порт 8100, подробности можно посмотреть здесь <a target="_blank"
+					href="http://openmeetings.apache.org/OpenOfficeConverter.html">OpenOfficeConverter</a>
+					</li>
+			</ul>
+		</li>
+		<li><h4>
+				<a
+					id="Enabling_Recording_and_import_of_.avi,_.flv,_.mov_and_.mp4_into"></a>Для возможности
+				записи и импорта файлов .avi, .flv, .mov и .mp4 на доску<a
+					href="#Enabling_Recording_and_import_of_.avi,_.flv,_.mov_and_.mp4_into"
+					class="section_anchor"></a>
+			</h4>
+			<ul>
+				<li>Установите <strong>FFMpeg</strong>. Вы должны получить последнюю версию
+					FFMPEG! Для Windows Вы можете скачать программу с этого
+					сайта <a target="_blank" href="http://ffmpeg.arrozcru.org/builds/"
+					rel="nofollow">http://ffmpeg.arrozcru.org/builds/</a> Пользователи Linux 
+					или OSx могут использовать одну из различных
+					Инструкций по установке из Сети. Вы должны установить libmp3lame!
+				</li>
+				<li>Установите <strong>SoX</strong> <a
+					href="http://sox.sourceforge.net/" target="_BLANK">http://sox.sourceforge.net/</a>.
+					Вы должны установить последнюю версию SoX! SoX 12.xx не будет
+					работать!
+				</li>
+			</ul>
+		</li>
+	</ol>
+
+	<br />
+	<b> <span style="font-size: 1.2em">Если у Вас остались
+			вопросы или Вам требуется поддержка по установке или хостингу:</span></b>
+	
+	<br />
+	<br />
+	<b><span style="font-size: 1.2em">Поддержка сообщества:</span></b>
+	<br />
+	<br />
+	<span style="font-size: 1.1em"><a
+		href="http://openmeetings.apache.org/mail-lists.html"
+		target="_blank">Список рассылки</a></span>
+	<br />
+    <br />
+	<br />
+    <b> <span style="font-size: 1.4em">Это компании,
+        которые также оказывают коммерческую поддержку Apache OpenMeetings:</span></b>
+	<br />
+	<br />
+    
+	<span style="font-size: 1.3em"><a
+		href="http://openmeetings.apache.org/commercial-support.html"
+		target="_blank">http://openmeetings.apache.org/commercial-support.html</a></span>
+	<br />
+	]]></entry>
+	<entry key="install.wizard.params.step1.userdata">Пользовательские данные</entry>
+	<entry key="install.wizard.params.step1.username">Логин</entry>
+	<entry key="install.wizard.params.step1.username.title">Введите логин пользователя</entry>
+	<entry key="install.wizard.params.step1.password">Пароль</entry>
+	<entry key="install.wizard.params.step1.password.title">Введите пароль</entry>
+	<entry key="install.wizard.params.step1.email">Электронная почта</entry>
+	<entry key="install.wizard.params.step1.email.title">Введите адрес электронной почты</entry>
+	<entry key="install.wizard.params.step1.tz">Часовой пояс пользователя</entry>
+	<entry key="install.wizard.params.step1.groupdata">Организация(Домен)</entry>
+	<entry key="install.wizard.params.step1.group">Наименование</entry>
+	<entry key="install.wizard.params.step1.group.title">Введите организацию по умолчанию</entry>
+
+	<entry key="install.wizard.params.step2.configuration">Конфигурация</entry>
+	<entry key="install.wizard.params.step2.allowFrontendRegister">Разрешить саморегистрацию (allow_frontend_register)</entry>
+	<entry key="install.wizard.params.step2.sendEmailAtRegister">Посылать сообщения новым пользователям (sendEmailAtRegister)</entry>
+	<entry key="install.wizard.params.step2.sendEmailWithVerficationCode">Новые пользователи должны подтвердить свой Email (sendEmailWithVerficationCode)</entry>
+	<entry key="install.wizard.params.step2.createDefaultRooms">По умолчанию создать комнаты всех типов</entry>
+	<entry key="install.wizard.params.step2.mailReferer">Электронная почта рассылки (system_email_addr)</entry>
+	<entry key="install.wizard.params.step2.mailReferer.title">Введите адрес электронной почты с которой будет отправляться информация</entry>
+	<entry key="install.wizard.params.step2.smtpServer">SMTP-Сервер (smtp_server)</entry>
+	<entry key="install.wizard.params.step2.smtpServer.title">Введите адрес SMTP-Сервера</entry>
+	<entry key="install.wizard.params.step2.smtpPort">Порт SMTP-сервера (по умолчению 25) (smtp_port)</entry>
+	<entry key="install.wizard.params.step2.smtpPort.title">Введите порт SMTP-Сервера, обычно 25</entry>
+	<entry key="install.wizard.params.step2.mailAuthName">SMTP-Пользователь (email_username)</entry>
+	<entry key="install.wizard.params.step2.mailAuthName.title">Введите логин для электронной почты</entry>
+	<entry key="install.wizard.params.step2.mailAuthPass">SMTP-Пароль пользователя (email_userpass)</entry>
+	<entry key="install.wizard.params.step2.mailAuthPass.title">Введите пароль для электронной почты</entry>
+	<entry key="install.wizard.params.step2.mailUseTls">Включить проверку TLS на почтовом сервере</entry>
+	<entry key="install.wizard.params.step2.replyToOrganizer">Устанавливать адрес электронной
+					почты организатора, как адрес ответа на приглашения  (inviter.email.as.replyto)</entry>
+	<entry key="install.wizard.params.step2.defaultLangId">Язык по умолчанию</entry>
+	<entry key="install.wizard.params.step2.defaultExportFont">Шрифт для экспорта по умолчанию [default_export_font]</entry>
+
+	<entry key="install.wizard.params.step3.converters">Конвертеры</entry>
+	<entry key="install.wizard.params.step3.seeAlso"> смотрите также</entry>
+	<entry key="install.wizard.params.step3.installation">Установка</entry>
+	<entry key="install.wizard.params.step3.swfZoom">SWFTools масштабирование</entry>
+	<entry key="install.wizard.params.step3.swfZoom.title">Укажите разрешение (dpi), которое вы будите использовать для конвертации PDF в SWF</entry>
+	<entry key="install.wizard.params.step3.swfZoom.text">
+		DPI которое swftools будет использовать для конвертации PDF в SWF. По умолчанию 100 dpi.
+	</entry>
+	<entry key="install.wizard.params.step3.swfJpegQuality">SWFTools JPEG Качество</entry>
+	<entry key="install.wizard.params.step3.swfJpegQuality.title">Укажите качество встроенного jpeg изображения. 0 плохое (маленькое), 100 высокое (большое). (по умолчанию:85)</entry>
+	<entry key="install.wizard.params.step3.swfJpegQuality.text">
+		Качество встроенного jpeg изображения. 0 плохое (маленькое),
+		100 высокое (большое). (по умолчанию:85)
+	</entry>
+	<entry key="install.wizard.params.step3.swfPath">SWFTools Путь</entry>
+	<entry key="install.wizard.params.step3.swfPath.title">Укажите путь к swftools например C:/swftools (Windows) или или не заполняйте данное поле если путь к swftools задан в системных путях</entry>
+	<entry key="install.wizard.params.step3.swfPath.text">
+		Вы можете проверить, настроен ли запуск swftools на Вашей системе
+		с помошью командной строки или shell или cmd-prompt набрав команду pdf2swf. Если будет показан
+		список опций оставьте это поле пустым, в противном случае вы должны
+		указать путь к pdf2swf на Вашей системе,
+	</entry>
+	<entry key="install.wizard.params.step3.imageMagicPath">ImageMagick Путь</entry>
+	<entry key="install.wizard.params.step3.imageMagicPath.title">Укажите путь к ImageMagick, или не заполняйте данное поле если ImageMagick установлен в путях Вашей системы</entry>
+	<entry key="install.wizard.params.step3.imageMagicPath.text"></entry>
+	<entry key="install.wizard.params.step3.ffmpegPath">FFMPEG Путь</entry>
+	<entry key="install.wizard.params.step3.ffmpegPath.title">Укажите путь к FFMPEG, или не заполняйте данное поле если FFMPEG установлен в путях Вашей системы</entry>
+	<entry key="install.wizard.params.step3.ffmpegPath.text"></entry>
+	<entry key="install.wizard.params.step3.soxPath">SoX Путь</entry>
+	<entry key="install.wizard.params.step3.soxPath.title">Укажите путь к SoX, или не заполняйте данное поле если SoX установлен в путях Вашей системы</entry>
+	<entry key="install.wizard.params.step3.soxPath.text"></entry>
+	<entry key="install.wizard.params.step3.jodPath">JOD Путь</entry>
+	<entry key="install.wizard.params.step3.jodPath.title">Путь к библиотеке JOD (http://code.google.com/p/jodconverter), сконфигурируйте путь, указываюший на папку библиотеки JOD, которая содержит jodconverter-core-version.jar файл</entry>
+	<entry key="install.wizard.params.step3.jodPath.text"></entry>
+	<entry key="install.wizard.params.step3.officePath">OpenOffice/LibreOffice Путь для jodconverter</entry>
+	<entry key="install.wizard.params.step3.officePath.title">Путь к OpenOffice/LibreOffice (не обязательный) пожалуйста установите этот путь в случае когда jodconverter не в состоянии найти автоматически путь к  установленному OpenOffice/LibreOffice</entry>
+	<entry key="install.wizard.params.step3.officePath.text">
+		Путь к OpenOffice/LibreOffice (не обязательный) пожалуйста установите этот путь
+		в случае когда jodconverter не в состоянии найти
+		путь к установленному OpenOffice/LibreOffice
+	</entry>
+
+	<entry key="install.wizard.params.step4.crypt">Тип шифрования</entry>
+	<entry key="install.wizard.params.step4.cryptClassName">Класс шифрования</entry>
+	<entry key="install.wizard.params.step4.cryptClassName.title">Укажите имя класса для шифрования. НЕ ИЗМЕНЯЙТЕ УКАЗАННЫЙ КЛАСС ЕСЛИ ВЫ В ЭТОМ НЕ УВЕРЕНЫ</entry>
+	<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[
+		Вы можете использовать заданный по умолчанию тип шифрования, который соответствует
+		функционалу PHP-MD5 или BSD-Style шифрованию, используя:<b>org.apache.openmeetings.utils.crypt.MD5CryptImplementation</b>.
+		Дополнительную информацию или описание создания собственного класса шифрования смотрите тут: <a
+		href="http://openmeetings.apache.org/CustomCryptMechanism.html"
+		target="_blank">Пользовательский механизм шифрования</a> Вы можете изменить это
+		значение позже, НО созданные ранее Пользователи и Сессии могут быть
+		не доступны в дальнейшем
+	]]></entry>
+	<entry key="install.wizard.params.step4.red5SIP">Конфигурация red5SIP</entry>
+	<entry key="install.wizard.params.step4.red5SipEnable">Разрешить SIP</entry>
+	<entry key="install.wizard.params.step4.red5SipEnable.text">Разрешить интеграцию с red5SIP</entry>
+	<entry key="install.wizard.params.step4.red5SipRoomPrefix">Префикс дла комнат SIP</entry>
+	<entry key="install.wizard.params.step4.red5SipRoomPrefix.text">Префикс для номеров телефонов для входа в комнаты</entry>
+	<entry key="install.wizard.params.step4.red5SipExtenContext">Окружение расширений SIP</entry>
+	<entry key="install.wizard.params.step4.red5SipExtenContext.text">Окружение расширений Asterisk</entry>
+
+	<entry key="install.wizard.install.desc">Пожалуйста нажмите кнопку "Закончить" для запуска установки!</entry>
+	<entry key="install.wizard.install.started">Please wait, installation in progress</entry>
+	<entry key="install.wizard.install.failed">Installation is failed</entry>
+
+	<entry key="install.wizard.congrats.enter">Вход в приложение</entry>
+	<entry key="install.wizard.congrats.port">Если Ваш Red5-сервер запущен на другом порту или на другом домене</entry>
+	<entry key="install.wizard.congrats.config">измените конфигурацию клиента</entry>
+	<entry key="install.wizard.congrats.mail">Список рассылки</entry>
+	<entry key="install.wizard.congrats.commercial">Это компании,
+		которые так же оказывают коммерческую поддержку Apache OpenMeetings:</entry>
+</properties>
diff --git a/src/web/java/org/apache/openmeetings/web/app/LabelResourceLoader.java b/src/web/java/org/apache/openmeetings/web/app/LabelResourceLoader.java
new file mode 100644
index 0000000..944d3b1
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/app/LabelResourceLoader.java
@@ -0,0 +1,62 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.app;

+

+import java.util.HashMap;

+import java.util.Locale;

+import java.util.Map;

+

+import org.apache.wicket.Component;

+import org.apache.wicket.resource.loader.IStringResourceLoader;

+

+/**

+ * Map property values to OpenMeetings labelid's and get the string

+ * 

+ * @author swagner

+ *

+ */

+public class LabelResourceLoader implements IStringResourceLoader {

+	

+	private static Map<String,Long> STRING_LABEL_MAPPING = new HashMap<String,Long>();

+	

+	static {

+		STRING_LABEL_MAPPING.put("PagingNavigator.first", 368L);

+		STRING_LABEL_MAPPING.put("PagingNavigator.previous", 369L);

+		STRING_LABEL_MAPPING.put("PagingNavigator.next", 370L);

+		STRING_LABEL_MAPPING.put("PagingNavigator.last", 371L);

+	}

+

+	public String loadStringResource(Class<?> clazz, String key, Locale locale,

+			String style, String variation) {

+		return getStringByPropertyKey(key);

+	}

+

+	public String loadStringResource(Component component, String key,

+			Locale locale, String style, String variation) {

+		return getStringByPropertyKey(key);

+	}

+	

+	private String getStringByPropertyKey(String key) {

+		Long labelId = STRING_LABEL_MAPPING.get(key);

+		if (labelId == null) 

+			return null;

+		return WebSession.getString(labelId);

+	}

+

+}

diff --git a/src/web/java/org/apache/openmeetings/web/app/MessageResolver.java b/src/web/java/org/apache/openmeetings/web/app/MessageResolver.java
new file mode 100644
index 0000000..0d2525a
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/app/MessageResolver.java
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.app;
+
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.markup.ComponentTag;
+import org.apache.wicket.markup.MarkupStream;
+import org.apache.wicket.markup.WicketTag;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.parser.filter.WicketTagIdentifier;
+import org.apache.wicket.markup.resolver.WicketMessageResolver;
+
+public class MessageResolver extends WicketMessageResolver {
+	private static final long serialVersionUID = -5755259669383826988L;
+	private final static String TAG_NAME = "ommessage";
+	
+	static	{
+		// register "wicket:ommessage"
+		WicketTagIdentifier.registerWellKnownTagName(TAG_NAME);
+	}
+	
+	@Override
+	public Component resolve(MarkupContainer container, MarkupStream markupStream, ComponentTag tag) {
+		if (tag instanceof WicketTag) {
+			WicketTag wtag = (WicketTag)tag;
+			if (TAG_NAME.equals(wtag.getName())) {
+				Boolean escapeKey = wtag.getAttributes().getAsBoolean("escape");
+				Long messageKey = wtag.getAttributes().getAsLong("key");
+				if (messageKey != null) {
+					final String id = "_message_" + container.getPage().getAutoIndex();
+					Label label = new Label(id, WebSession.getString(messageKey));
+					label.setRenderBodyOnly(container.getApplication()
+						.getMarkupSettings()
+						.getStripWicketTags()).setEscapeModelStrings(!Boolean.FALSE.equals(escapeKey));
+					
+					return label;
+				}
+			}
+		}
+		return super.resolve(container, markupStream, tag);
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/app/MessageTagHandler.java b/src/web/java/org/apache/openmeetings/web/app/MessageTagHandler.java
new file mode 100644
index 0000000..7890a14
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/app/MessageTagHandler.java
@@ -0,0 +1,161 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.app;
+
+import java.text.ParseException;
+
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.WicketRuntimeException;
+import org.apache.wicket.behavior.Behavior;
+import org.apache.wicket.markup.ComponentTag;
+import org.apache.wicket.markup.MarkupElement;
+import org.apache.wicket.markup.MarkupResourceStream;
+import org.apache.wicket.markup.MarkupStream;
+import org.apache.wicket.markup.html.TransparentWebMarkupContainer;
+import org.apache.wicket.markup.html.WebComponent;
+import org.apache.wicket.markup.parser.AbstractMarkupFilter;
+import org.apache.wicket.markup.parser.filter.WicketMessageTagHandler;
+import org.apache.wicket.markup.resolver.IComponentResolver;
+import org.apache.wicket.util.string.Strings;
+
+public class MessageTagHandler extends AbstractMarkupFilter implements
+		IComponentResolver {
+	/** */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * The id automatically assigned to tags with wicket:message attribute but
+	 * without id
+	 */
+	public final static String WICKET_MESSAGE_CONTAINER_ID = "_message_attr_";
+
+	/**
+	 * Constructor for the IComponentResolver role.
+	 */
+	public MessageTagHandler() {
+		this(null);
+	}
+
+	/**
+	 * Constructor for the IMarkupFilter role.
+	 */
+	public MessageTagHandler(final MarkupResourceStream markupResourceStream) {
+		super(markupResourceStream);
+	}
+
+	@Override
+	protected final MarkupElement onComponentTag(ComponentTag tag)
+			throws ParseException {
+		if (tag.isClose()) {
+			return tag;
+		}
+
+		final String wicketMessageAttribute = tag.getAttributes().getString(
+				getWicketMessageAttrName());
+
+		if (Strings.isEmpty(wicketMessageAttribute) == false) {
+			// check if this tag is raw markup
+			if (tag.getId() == null) {
+				// if this is a raw tag we need to set the id to something so
+				// that wicket will not merge this as raw markup and instead
+				// pass it on to a resolver
+				tag.setId(getWicketMessageIdPrefix());
+				tag.setAutoComponentTag(true);
+				tag.setModified(true);
+			}
+			tag.addBehavior(new AttributeLocalizer(getWicketMessageAttrName()));
+		}
+
+		return tag;
+	}
+
+	/**
+	 * Attribute localizing behavior. See the javadoc of
+	 * {@link WicketMessageTagHandler} for details.
+	 * 
+	 * @author Igor Vaynberg (ivaynberg)
+	 */
+	public static class AttributeLocalizer extends Behavior {
+		private static final long serialVersionUID = 1L;
+
+		private final String wicketMessageAttrName;
+
+		public AttributeLocalizer(String wicketMessageAttrName) {
+			this.wicketMessageAttrName = wicketMessageAttrName;
+		}
+
+		@Override
+		public void onComponentTag(final Component component,
+				final ComponentTag tag) {
+			String expr = tag.getAttributes().getString(wicketMessageAttrName);
+			if (!Strings.isEmpty(expr)) {
+				expr = expr.trim();
+
+				String[] attrsAndKeys = Strings.split(expr, ',');
+
+				for (String attrAndKey : attrsAndKeys) {
+					int colon = attrAndKey.lastIndexOf(":");
+					// make sure the attribute-key pair is valid
+					if (attrAndKey.length() < 3 || colon < 1
+							|| colon > attrAndKey.length() - 2) {
+						throw new WicketRuntimeException(
+								"wicket:message attribute contains an invalid value [["
+										+ expr
+										+ "]], must be of form (attr:key)+");
+					}
+
+					String attr = attrAndKey.substring(0, colon);
+					String key = attrAndKey.substring(colon + 1);
+					final String value = WebSession.getString(Long.parseLong(key));
+					tag.put(attr, value);
+				}
+			}
+		}
+	}
+
+	public Component resolve(final MarkupContainer container, final MarkupStream markupStream,
+			final ComponentTag tag) {
+		// localize any raw markup that has wicket:message attrs
+		if ((tag != null)
+				&& (tag.getId().startsWith(getWicketMessageIdPrefix()))) {
+			Component wc;
+			int autoIndex = container.getPage().getAutoIndex();
+			String id = getWicketMessageIdPrefix() + autoIndex;
+
+			if (tag.isOpenClose()) {
+				wc = new WebComponent(id);
+			} else {
+				wc = new TransparentWebMarkupContainer(id);
+			}
+
+			return wc;
+		}
+		return null;
+	}
+
+	private String getWicketMessageAttrName() {
+		String wicketNamespace = getWicketNamespace();
+		return wicketNamespace + ':' + "ommessage";
+	}
+
+	private String getWicketMessageIdPrefix() {
+		return getWicketNamespace() + WICKET_MESSAGE_CONTAINER_ID;
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/app/OmAuthenticationStrategy.java b/src/web/java/org/apache/openmeetings/web/app/OmAuthenticationStrategy.java
new file mode 100644
index 0000000..a4c0b83
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/app/OmAuthenticationStrategy.java
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.app;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import org.apache.wicket.authentication.strategy.DefaultAuthenticationStrategy;
+import org.apache.wicket.util.string.Strings;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class OmAuthenticationStrategy extends DefaultAuthenticationStrategy {
+	/** The separator used to concatenate the username and password */
+	private static final String VALUE_SEPARATOR = "-sep-";
+	private static final String COOKIE_KEY = "LoggedIn";
+	private static final Logger log = Red5LoggerFactory.getLogger(OmAuthenticationStrategy.class, webAppRootKey);
+	/** The cookie name to store the username/password/domain */
+	private final String cookieKey;
+	
+	public OmAuthenticationStrategy() {
+		super(COOKIE_KEY);
+		cookieKey = COOKIE_KEY;
+	}
+	
+	/**
+	 * @see org.apache.wicket.authentication.IAuthenticationStrategy#load()
+	 */
+	@Override
+	public String[] load()
+	{
+		String value = getCookieUtils().load(cookieKey);
+		if (Strings.isEmpty(value) == false)
+		{
+			try
+			{
+				value = getCrypt().decryptUrlSafe(value);
+			}
+			catch (RuntimeException e)
+			{
+				log.info(
+					"Error decrypting login cookie: {}. The cookie will be deleted. Possible cause is that a session-relative encryption key was used to encrypt this cookie while this decryption attempt is happening in a different session, eg user coming back to the application after session expiration",
+					cookieKey);
+				getCookieUtils().remove(cookieKey);
+				value = null;
+			}
+			if (Strings.isEmpty(value) == false)
+			{
+				String username = null;
+				String password = null;
+				String domain = null;
+
+				String[] values = value.split(VALUE_SEPARATOR);
+				if ((values.length > 0) && (Strings.isEmpty(values[0]) == false))
+				{
+					username = values[0];
+				}
+				if ((values.length > 1) && (Strings.isEmpty(values[1]) == false))
+				{
+					password = values[1];
+				}
+				if ((values.length > 2) && (Strings.isEmpty(values[2]) == false))
+				{
+					domain = values[2];
+				}
+
+				return new String[] { username, password, domain };
+			}
+		}
+
+		return null;
+	}
+
+	public void save(final String username, final String password, final String domain) {
+		String value = username + VALUE_SEPARATOR + password + VALUE_SEPARATOR + domain;
+
+		String encryptedValue = getCrypt().encryptUrlSafe(value);
+
+		getCookieUtils().save(cookieKey, encryptedValue);
+
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/app/WebSession.java b/src/web/java/org/apache/openmeetings/web/app/WebSession.java
new file mode 100644
index 0000000..c60e899
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/app/WebSession.java
@@ -0,0 +1,452 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.app;
+
+import static java.text.DateFormat.SHORT;
+import static org.apache.openmeetings.util.AuthLevelUtil.checkAdminLevel;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_MYROOMS_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_RSS_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAUT_LANG_KEY;
+import static org.apache.openmeetings.web.app.Application.getAuthenticationStrategy;
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.Application.getDashboardContext;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Set;
+import java.util.TimeZone;
+
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.label.FieldLanguageDao;
+import org.apache.openmeetings.db.dao.label.FieldLanguagesValuesDao;
+import org.apache.openmeetings.db.dao.server.SOAPLoginDao;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.dao.user.ILdapLoginManagement;
+import org.apache.openmeetings.db.dao.user.IUserManager;
+import org.apache.openmeetings.db.dao.user.StateDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.label.FieldLanguage;
+import org.apache.openmeetings.db.entity.server.RemoteSessionObject;
+import org.apache.openmeetings.db.entity.server.SOAPLogin;
+import org.apache.openmeetings.db.entity.server.Sessiondata;
+import org.apache.openmeetings.db.entity.user.State;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.util.TimezoneUtil;
+import org.apache.openmeetings.web.pages.SwfPage;
+import org.apache.openmeetings.web.user.dashboard.PrivateRoomsWidgetDescriptor;
+import org.apache.openmeetings.web.user.dashboard.RssWidgetDescriptor;
+import org.apache.openmeetings.web.user.dashboard.StartWidgetDescriptor;
+import org.apache.openmeetings.web.user.dashboard.WelcomeWidgetDescriptor;
+import org.apache.openmeetings.web.util.OmUrlFragment;
+import org.apache.wicket.RestartResponseAtInterceptPageException;
+import org.apache.wicket.authentication.IAuthenticationStrategy;
+import org.apache.wicket.authroles.authentication.AbstractAuthenticatedWebSession;
+import org.apache.wicket.authroles.authorization.strategies.role.Roles;
+import org.apache.wicket.request.IRequestParameters;
+import org.apache.wicket.request.Request;
+import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.util.string.StringValue;
+import org.apache.wicket.util.string.Strings;
+
+import ro.fortsoft.wicket.dashboard.Dashboard;
+import ro.fortsoft.wicket.dashboard.DefaultDashboard;
+import ro.fortsoft.wicket.dashboard.Widget;
+import ro.fortsoft.wicket.dashboard.WidgetFactory;
+import ro.fortsoft.wicket.dashboard.web.DashboardContext;
+
+public class WebSession extends AbstractAuthenticatedWebSession {
+	private static final long serialVersionUID = 1123393236459095315L;
+	public static int MILLIS_IN_MINUTE = 60000;
+	//private static final Map<String, Locale> LNG_TO_LOCALE_MAP = new HashMap<String, Locale> ();
+	private long userId = -1;
+	private long userLevel = -1; //TODO renew somehow on user edit !!!!
+	private long languageId = -1; //TODO renew somehow on user edit !!!!
+	private String SID = null;
+	private OmUrlFragment area = null;
+	private TimeZone tz;
+	private TimeZone browserTz;
+	public final static String ISO8601_FORMAT_STRING = "yyyy-MM-dd'T'HH:mm:ssZ";
+	private DateFormat ISO8601FORMAT = new SimpleDateFormat(ISO8601_FORMAT_STRING); //FIXME not thread safe
+	private DateFormat sdf;
+	private Dashboard dashboard;
+	private Locale browserLocale = null;
+	private Long recordingId;
+	private Long loginError = null;
+	private String externalType;
+	private static Set<Long> STRINGS_WITH_APP = new HashSet<Long>(); //FIXME need to be removed
+	public final static List<String> AVAILABLE_TIMEZONES = Arrays.asList(TimeZone.getAvailableIDs());
+	public final static Set<String> AVAILABLE_TIMEZONE_SET = new LinkedHashSet<String>(AVAILABLE_TIMEZONES);
+	static {
+		STRINGS_WITH_APP.addAll(Arrays.asList(499L, 500L, 506L, 511L, 512L, 513L, 517L, 532L, 622L, 804L
+				, 909L, 952L, 978L, 981L, 984L, 989L, 990L, 999L, 1151L, 1155L, 1157L, 1158L, 1194L));
+	}
+	
+	public WebSession(Request request) {
+		super(request);
+		browserLocale = getLocale();
+	}
+
+	@Override
+	public void invalidate() {
+		super.invalidate();
+		userId = -1;
+		userLevel = -1;
+		SID = null;
+		sdf = null;
+		recordingId = null;
+		externalType = null;
+		tz = null;
+		browserTz = null;
+		loginError = null;
+	}
+	
+	@Override
+	public Roles getRoles() {
+		//first of all will check hashes
+		try {
+			IRequestParameters params = RequestCycle.get().getRequest().getRequestParameters();
+			StringValue secureHash = params.getParameterValue("secureHash");
+			StringValue invitationHash = params.getParameterValue("invitationHash");
+			if (!secureHash.isEmpty() || !invitationHash.isEmpty()) {
+				PageParameters pp = new PageParameters();
+				for (String p : params.getParameterNames()) {
+					for (StringValue sv : params.getParameterValues(p)) {
+						if (!sv.isEmpty()) {
+							pp.add(p, sv.toString());
+						}
+					}
+				}
+				if (isSignedIn()) {
+					invalidate();
+				}
+				throw new RestartResponseAtInterceptPageException(SwfPage.class, pp);
+			}
+		} catch (RestartResponseAtInterceptPageException e) {
+			throw e;
+		} catch (Exception e) {
+			//no-op, will continue to sign-in page
+		}
+		Roles r = null;
+		if (externalType != null) {
+			invalidate();
+		}
+		if (isSignedIn()) {
+			r = new Roles(Roles.USER);
+			if (checkAdminLevel(userLevel)) {
+				r.add(Roles.ADMIN);
+			}
+		}
+		return r;
+	}
+
+	@Override
+	public boolean isSignedIn() {
+		if (userId < 1) {
+			IAuthenticationStrategy strategy = getAuthenticationStrategy();
+			// get username and password from persistence store
+			String[] data = strategy.load();
+			if ((data != null) && (data.length > 2)) {
+				// try to sign in the user
+				if (!signIn(data[0], data[1], data[2])) {
+					// the loaded credentials are wrong. erase them.
+					strategy.remove();
+				}
+			}
+		}
+		return userId > -1;
+	}
+
+	public boolean signIn(String secureHash) {
+		//FIXME code is duplicated from MainService, need to be unified
+		SOAPLoginDao soapDao = getBean(SOAPLoginDao.class);
+		SOAPLogin soapLogin = soapDao.get(secureHash);
+		if (soapLogin != null && !soapLogin.getUsed()) { //add code for  || (soapLogin.getAllowSameURLMultipleTimes())
+			SessiondataDao sessionDao = getBean(SessiondataDao.class);
+			Sessiondata sd = sessionDao.getSessionByHash(soapLogin.getSessionHash());
+			if (sd != null && sd.getSessionXml() != null) {
+				RemoteSessionObject remoteUser = RemoteSessionObject.fromXml(sd.getSessionXml());
+				if (remoteUser != null && !Strings.isEmpty(remoteUser.getExternalUserId())) {
+					AdminUserDao userDao = getBean(AdminUserDao.class);
+					User user = userDao.getExternalUser(remoteUser.getExternalUserId(), remoteUser.getExternalUserType());
+					if (user == null) {
+						user = userDao.getNewUserInstance(null);
+						user.setFirstname(remoteUser.getFirstname());
+						user.setLastname(remoteUser.getLastname());
+						user.setLogin(remoteUser.getUsername()); //FIXME check if login UNIQUE
+						user.setExternalUserId(remoteUser.getExternalUserId());
+						user.setExternalUserType(remoteUser.getExternalUserType());
+						user.getAdresses().setEmail(remoteUser.getEmail());
+						user.setPictureuri(remoteUser.getPictureUrl());
+					} else {
+						user.setFirstname(remoteUser.getFirstname());
+						user.setLastname(remoteUser.getLastname());
+						user.setPictureuri(remoteUser.getPictureUrl());
+					}
+					user = userDao.update(user, null);
+
+					soapLogin.setUsed(true);
+					soapLogin.setUseDate(new Date());
+					//soapLogin.setClientURL(clientURL); //FIXME
+					soapDao.update(soapLogin);
+
+					sessionDao.updateUser(SID, user.getUser_id());
+					setUser(user);
+					recordingId = soapLogin.getRoomRecordingId();
+					return true;
+				}
+			}
+		}
+		return false;
+	}
+	
+	private void setUser(User u) {
+		userId = u.getUser_id();
+		userLevel = u.getLevel_id();
+		languageId = u.getLanguage_id();
+		externalType = u.getExternalUserType();
+		tz = getBean(TimezoneUtil.class).getTimeZone(u);
+		ISO8601FORMAT.setTimeZone(tz);
+		//FIXMW locale need to be set by User language first
+		sdf = DateFormat.getDateTimeInstance(SHORT, SHORT, getLocale());
+		if (null == getId()) {
+			bind();
+		}
+	}
+	
+	public boolean signIn(String login, String password, String ldapConfigFileName) {
+		Sessiondata sessData = getBean(SessiondataDao.class).startsession();
+		SID = sessData.getSession_id();
+		Object _u = Strings.isEmpty(ldapConfigFileName)
+				? getBean(IUserManager.class).loginUser(SID, login, password, null, null, false)
+				: getBean(ILdapLoginManagement.class).doLdapLogin(login, password, null, null, SID, ldapConfigFileName);
+		
+		if (_u instanceof User) {
+			User u = (User)_u;
+			/* we will allow login in case user 'guess' the password
+			if (!checkAdminLevel(u.getLevel_id()) && Type.ldap == u.getType() && Strings.isEmpty(ldapConfigFileName)) {
+				//user is LDAP and is not admin, then authentication should be done on the LDAP server (even if the LDAP server is down)
+				return false;
+			}
+			*/
+			setUser(u);
+			return true;
+		} else if (_u instanceof Long) {
+			loginError = (Long)_u;
+		}
+		return false;
+	}
+	
+	public Long getLoginError() {
+		return loginError;
+	}
+	
+	public static WebSession get() {
+		return (WebSession)AbstractAuthenticatedWebSession.get();
+	}
+	
+	public static String getString(long id) {
+		String s = getBean(FieldLanguagesValuesDao.class).getString(id, getLanguage());
+		return s == null ? "[Missing]" :
+			(STRINGS_WITH_APP.contains(id) ? s.replaceAll("\\$APP_NAME", getBean(ConfigurationDao.class).getAppName()) : s);
+	}
+	
+	public void setLanguage(long languageId) {
+		this.languageId = languageId;
+	}
+	
+	public static long getLanguage() {
+		WebSession session = get();
+		if (session.languageId < 0) {
+			if (session.isSignedIn()) {
+				session.languageId = getBean(UserDao.class).get(session.userId).getLanguage_id();
+			} else {
+				session.languageId = getBean(ConfigurationDao.class).getConfValue(CONFIG_DEFAUT_LANG_KEY, Long.class, "1");
+			}
+		}
+		return session.languageId;
+	}
+	
+	public static FieldLanguage getLanguageObj() {
+		return getBean(FieldLanguageDao.class).getFieldLanguageById(getLanguage());
+	}
+	
+	public String getValidatedSid() {
+		SessiondataDao sessionDao = getBean(SessiondataDao.class);
+		Long _userId = sessionDao.checkSession(SID);
+		if (_userId == null || userId != _userId) {
+			Sessiondata sessionData = sessionDao.getSessionByHash(SID);
+			if (sessionData == null) {
+				sessionData = sessionDao.startsession();
+			}
+			if (!sessionDao.updateUser(sessionData.getSession_id(), userId, false, languageId)) {
+				//something bad, force user to re-login
+				invalidate();
+			} else {
+				SID = sessionData.getSession_id();
+			}
+		}
+		return SID;
+	}
+	
+	public static String getSid() {
+		return get().getValidatedSid();
+	}
+
+	public static long getUserId() {
+		return get().userId;
+	}
+	
+	public static Long getRecordingId() {
+		return get().recordingId;
+	}
+	
+	public static String getExternalType() {
+		return get().externalType;
+	}
+	
+	public static TimeZone getUserTimeZone() {
+		return get().tz;
+	}
+
+	public static Calendar getCalendar() {
+		return Calendar.getInstance(get().tz);
+	}
+
+	public static Calendar getClientCalendar() {
+		return Calendar.getInstance(getClientTimeZone());
+	}
+
+	public static DateFormat getIsoDateFormat() {
+		return get().ISO8601FORMAT;
+	}
+	
+	public static DateFormat getDateFormat() {
+		return get().sdf;
+	}
+	
+	public static long getUserLevel() {
+		return get().userLevel;
+	}
+
+	public OmUrlFragment getArea() {
+		return area;
+	}
+
+	public void setArea(OmUrlFragment area) {
+		this.area = area;
+	}
+
+	
+	public static Dashboard getDashboard() {
+		Dashboard d = get().dashboard;
+		if (d == null) {
+			get().initDashboard();
+			d = get().dashboard;
+		}
+		return d;
+	}
+	
+	public Locale getBrowserLocale(){
+		return browserLocale;
+	}
+
+	public FieldLanguage getLanguageByBrowserLocale() {
+		List<FieldLanguage> languages = getBean(FieldLanguageDao.class).getLanguages();
+		for (FieldLanguage l : languages) {
+			if (getBrowserLocale().getLanguage().equals(new Locale(l.getCode()).getLanguage())){
+				return l;
+			}
+		}
+		return languages.get(0);
+	}
+
+	public State getCountryByBrowserLocale() {
+		List<State> states = getBean(StateDao.class).getStates();
+		String code = getBrowserLocale().getISO3Country().toUpperCase();
+		for (State s : states) {
+			if (s.getShortName().toUpperCase().equals(code)){
+				return s;
+			}
+		}
+		return states.get(0);
+	}
+
+	public String getClientTZCode() {
+		TimeZone _zone = browserTz;
+		if (browserTz == null) {
+			try {
+				browserTz = getClientInfo().getProperties().getTimeZone();
+				if (!AVAILABLE_TIMEZONE_SET.contains(browserTz.getID())) {
+					for (String availableID : AVAILABLE_TIMEZONES) {
+						if (availableID.startsWith("Etc")) {
+							continue; //somehow these timezones has reverted rules
+						}
+						TimeZone zone = TimeZone.getTimeZone(availableID);
+						if (zone.hasSameRules(browserTz)) {
+							browserTz = zone;
+							break;
+						}
+					}
+				}
+				_zone = browserTz;
+			} catch (Exception e) {
+				_zone = Calendar.getInstance(getBrowserLocale()).getTimeZone();
+			}
+		}
+		return _zone == null ? null : _zone.getID();
+	}
+	
+	public static TimeZone getClientTimeZone() {
+		String tzCode = get().getClientTZCode();
+		return tzCode == null ? null : TimeZone.getTimeZone(tzCode);
+	}
+	
+	private void initDashboard() {
+		DashboardContext dashboardContext = getDashboardContext();
+		dashboard = dashboardContext.getDashboardPersiter().load();
+		if (dashboard == null) {
+			dashboard = new DefaultDashboard("default", "Default");
+			
+			WidgetFactory widgetFactory = dashboardContext.getWidgetFactory();
+			dashboard.addWidget(widgetFactory.createWidget(new WelcomeWidgetDescriptor()));
+			dashboard.addWidget(widgetFactory.createWidget(new StartWidgetDescriptor()));
+			ConfigurationDao cfgDao = getBean(ConfigurationDao.class);
+			if (1 == cfgDao.getConfValue(CONFIG_DASHBOARD_SHOW_MYROOMS_KEY, Integer.class, "0")) {
+				dashboard.addWidget(widgetFactory.createWidget(new PrivateRoomsWidgetDescriptor()));
+			}
+			if (1 == cfgDao.getConfValue(CONFIG_DASHBOARD_SHOW_RSS_KEY, Integer.class, "0")) {
+				dashboard.addWidget(widgetFactory.createWidget(new RssWidgetDescriptor()));
+			}
+			dashboardContext.getDashboardPersiter().save(dashboard);
+		} else {
+			for (Widget w : dashboard.getWidgets()) {
+				w.init();
+			}
+		}
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/common/AddFolderDialog.html b/src/web/java/org/apache/openmeetings/web/common/AddFolderDialog.html
new file mode 100644
index 0000000..1f0b15b
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/AddFolderDialog.html
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<form wicket:id="form">
+		<span style="padding-left: 20px; padding-right: 20px;"><wicket:ommessage key="572"/></span><input type="text" wicket:id="title"/>
+		<div wicket:id="feedback"></div>
+		<input type="submit" wicket:id="submit" class="invisible-form-component"/>
+	</form>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/common/AddFolderDialog.java b/src/web/java/org/apache/openmeetings/web/common/AddFolderDialog.java
new file mode 100644
index 0000000..495e292
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/AddFolderDialog.java
@@ -0,0 +1,107 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.common;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.RequiredTextField;
+import org.apache.wicket.markup.html.panel.FeedbackPanel;
+import org.apache.wicket.model.Model;
+
+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+
+public abstract class AddFolderDialog extends AbstractFormDialog<String> {
+	private static final long serialVersionUID = 1L;
+	private final DialogButton add = new DialogButton(WebSession.getString(1261));
+	private final DialogButton cancel = new DialogButton(WebSession.getString(219));
+	private final Form<String> form;
+	private final FeedbackPanel feedback = new FeedbackPanel("feedback");
+	private final String name;
+	private RequiredTextField<String> title;
+
+	public AddFolderDialog(String id) {
+		this(id, null);
+	}
+	
+	public AddFolderDialog(String id, String name) {
+		super(id, WebSession.getString(1260), Model.of(name));
+		this.name = name;
+		form = new Form<String>("form", getModel()) {
+			private static final long serialVersionUID = 1L;
+			{
+				add(title = new RequiredTextField<String>("title", getModel()));
+				title.setLabel(Model.of(WebSession.getString(572)));
+				add(feedback.setOutputMarkupId(true));
+				add(new AjaxButton("submit") { //FAKE button so "submit-on-enter" works as expected
+					private static final long serialVersionUID = -3612671587183668912L;
+
+					@Override
+					protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
+						AddFolderDialog.this.onSubmit(target);
+					}
+					
+					@Override
+					protected void onError(AjaxRequestTarget target, Form<?> form) {
+						AddFolderDialog.this.onError(target);
+					}
+				});
+			}
+		};
+		add(form);
+	}
+
+	@Override
+	protected void onOpen(AjaxRequestTarget target) {
+		super.onOpen(target);
+		
+		setModelObject(name);
+		getFeedbackMessages().clear();
+	}
+
+	@Override
+	protected void onSubmit(AjaxRequestTarget target) {
+		close(target, getSubmitButton());
+	}
+	
+	@Override
+	protected List<DialogButton> getButtons() {
+		return Arrays.asList(add, cancel);
+	}
+	
+	@Override
+	protected DialogButton getSubmitButton() {
+		return add;
+	}
+
+	@Override
+	public Form<String> getForm() {
+		return form;
+	}
+
+	@Override
+	protected void onError(AjaxRequestTarget target) {
+		target.add(feedback);
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/common/BasePanel.java b/src/web/java/org/apache/openmeetings/web/common/BasePanel.java
new file mode 100644
index 0000000..fb43fc9
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/BasePanel.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.common;
+
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.panel.Panel;
+
+public abstract class BasePanel extends Panel {
+	private static final long serialVersionUID = 8663740955529405678L;
+
+	public BasePanel(String id) {
+		super(id);
+		setOutputMarkupId(true);
+	}
+
+	/**
+	 * Overwrite this method to execute Java code after Panel is loaded by the
+	 * {@link MenuPanel}
+	 * 
+	 * @param target
+	 */
+	public void onMenuPanelLoad(AjaxRequestTarget target) {
+	}
+
+	/**
+	 * This method should be overridden to perform necessary cleanup: remove timers etc.
+	 * 
+	 * @param target
+	 */
+	public void cleanup(AjaxRequestTarget target) {
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/common/ComunityUserForm.html b/src/web/java/org/apache/openmeetings/web/common/ComunityUserForm.html
new file mode 100644
index 0000000..2e3b321
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/ComunityUserForm.html
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<div class="formelementradiobox">
+		<div wicket:id="community_settings">
+			<div>
+				<input wicket:id="everybody" type="radio" /><label style="width: 250px" wicket:for="everybody"><wicket:ommessage key="1160"/></label>
+				<div class="clear"></div>
+			</div>
+			<div>
+				<input wicket:id="contact" type="radio" /><label style="width: 250px" wicket:for="contact"><wicket:ommessage key="1168"/></label>
+				<div class="clear"></div>
+			</div>
+			<div>
+				<input wicket:id="nobody" type="radio" /><label style="width: 250px" wicket:for="nobody"><wicket:ommessage key="1169"/></label>
+				<div class="clear"></div>
+			</div>
+		</div>
+	</div>
+	<div class="formelement">
+		<label><wicket:ommessage key="1162" /></label>
+		<textarea wicket:id="userOffers" />
+	</div>
+	<div class="formelement">
+		<label><wicket:ommessage key="1163" /></label>
+		<textarea wicket:id="userSearchs" />
+	</div>
+</wicket:panel>
+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/common/ComunityUserForm.java b/src/web/java/org/apache/openmeetings/web/common/ComunityUserForm.java
new file mode 100644
index 0000000..9396952
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/ComunityUserForm.java
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.common;
+
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.Radio;
+import org.apache.wicket.markup.html.form.RadioGroup;
+import org.apache.wicket.markup.html.form.TextArea;
+import org.apache.wicket.markup.html.panel.IMarkupSourcingStrategy;
+import org.apache.wicket.markup.html.panel.PanelMarkupSourcingStrategy;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+
+public class ComunityUserForm extends Form<User> {
+	private static final long serialVersionUID = -4487619335283747717L;
+
+	public ComunityUserForm(String id, IModel<User> model) {
+		super(id, model);
+
+		RadioGroup<Long> rg = new RadioGroup<Long>("community_settings", new IModel<Long>() {
+			private static final long serialVersionUID = 1L;
+
+			public Long getObject() {
+				User u = ComunityUserForm.this.getModelObject();
+				if (Boolean.TRUE.equals(u.getShowContactData())) {
+					return 1L;
+				} else if (Boolean.TRUE.equals(u.getShowContactDataToContacts())) {
+					return 2L;
+				}
+				return 3L;
+			}
+
+			public void setObject(Long choice) {
+				User u = ComunityUserForm.this.getModelObject();
+				if (choice.equals(1L)) {
+					u.setShowContactData(true);
+					u.setShowContactDataToContacts(false);
+				} else if (choice.equals(2L)) {
+					u.setShowContactData(false);
+					u.setShowContactDataToContacts(true);
+				} else {
+					u.setShowContactData(false);
+					u.setShowContactDataToContacts(false);
+				}
+			}
+
+			public void detach() {
+			}
+		});
+		add(rg.add(new Radio<Long>("everybody", Model.of(1L)), new Radio<Long>("contact", Model.of(2L))
+			, new Radio<Long>("nobody", Model.of(3L))).setOutputMarkupId(true).setRenderBodyOnly(false)
+			);
+
+		add(new TextArea<String>("userOffers"));
+		add(new TextArea<String>("userSearchs"));
+	}
+	
+	@Override
+	protected IMarkupSourcingStrategy newMarkupSourcingStrategy() {
+		return new PanelMarkupSourcingStrategy(false);
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/common/ConfirmCallListener.java b/src/web/java/org/apache/openmeetings/web/common/ConfirmCallListener.java
new file mode 100644
index 0000000..fd6956d
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/ConfirmCallListener.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.common;
+
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.ajax.attributes.AjaxCallListener;
+import org.apache.wicket.core.util.string.JavaScriptUtils;
+
+public class ConfirmCallListener extends AjaxCallListener {
+	private static final long serialVersionUID = 7355235720213137963L;
+
+	public ConfirmCallListener(long id) {
+		this(id, "");
+	}
+	
+	//TODO confirm need to be replaced with jQuery modal dialog
+	public ConfirmCallListener(long id, String js) {
+		onPrecondition("if (!confirm('" + JavaScriptUtils.escapeQuotes(WebSession.getString(id)) + "')) {" 
+				+ js + "; hideBusyIndicator(); return false;}");
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/common/ConfirmableAjaxLink.java b/src/web/java/org/apache/openmeetings/web/common/ConfirmableAjaxLink.java
new file mode 100644
index 0000000..5689b22
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/ConfirmableAjaxLink.java
@@ -0,0 +1,39 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.common;

+

+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;

+import org.apache.wicket.ajax.markup.html.AjaxLink;

+

+public abstract class ConfirmableAjaxLink extends AjaxLink<Void> {

+	private static final long serialVersionUID = 7301747891668537168L;

+	private long confirmId;

+

+	public ConfirmableAjaxLink(String id, long confirmId) {

+		super(id);

+		this.confirmId = confirmId;

+		setOutputMarkupId(true);

+	}

+

+	@Override

+	protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {

+		super.updateAjaxAttributes(attributes);

+		attributes.getAjaxCallListeners().add(new ConfirmCallListener(confirmId, "hideBusyIndicator();"));

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/common/ErrorMessagePanel.html b/src/web/java/org/apache/openmeetings/web/common/ErrorMessagePanel.html
new file mode 100644
index 0000000..c25dd0e
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/ErrorMessagePanel.html
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<div class="message error">
+		<h3 wicket:id="msg"></h3>
+		<pre wicket:id="err"></pre>
+	</div>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/common/ErrorMessagePanel.java b/src/web/java/org/apache/openmeetings/web/common/ErrorMessagePanel.java
new file mode 100644
index 0000000..f5c1c4b
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/ErrorMessagePanel.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.common;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.io.PrintWriter;
+
+import org.apache.commons.io.output.StringBuilderWriter;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class ErrorMessagePanel extends Panel {
+	private static final Logger log = Red5LoggerFactory.getLogger(ErrorMessagePanel.class, webAppRootKey);
+	private static final long serialVersionUID = 1L;
+
+	public ErrorMessagePanel(String id, String msg, Throwable err) {
+		super(id);
+		
+		log.error(msg, err);
+		add(new Label("msg", msg));
+		StringBuilderWriter sw = new StringBuilderWriter();
+		err.printStackTrace(new PrintWriter(sw));
+		add(new Label("err", sw.toString()));
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/common/FormSaveRefreshPanel.html b/src/web/java/org/apache/openmeetings/web/common/FormSaveRefreshPanel.html
new file mode 100644
index 0000000..4e1e554
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/FormSaveRefreshPanel.html
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+	<wicket:panel>
+		<div class="formSaveBar ui-widget-header">
+			<div class="formSaveButton">
+				<input type="submit" value="" wicket:id="ajax-save-button" wicket:ommessage="title:144" />
+			</div>
+			<div class="formRefreshButton">
+				<input type="submit" value="" wicket:id="ajax-refresh-button" wicket:ommessage="title:156" />
+			</div>
+			<wicket:child/>
+		</div>
+		<div wicket:id="feedback" class="adminFormsFeedbackPanel">[[ feedback ]]</div>
+	</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/common/FormSaveRefreshPanel.java b/src/web/java/org/apache/openmeetings/web/common/FormSaveRefreshPanel.java
new file mode 100644
index 0000000..c162675
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/FormSaveRefreshPanel.java
@@ -0,0 +1,90 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.common;
+
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.panel.FeedbackPanel;
+
+public abstract class FormSaveRefreshPanel<T> extends BasePanel {
+	private static final long serialVersionUID = 6133794730008996211L;
+	protected final FeedbackPanel feedback;
+	
+	public FormSaveRefreshPanel(String id, Form<T> form) {
+		super(id);
+		setOutputMarkupId(true);
+
+		feedback = new FeedbackPanel("feedback");
+		add(feedback.setOutputMarkupId(true));
+
+		// add a save button that can be used to submit the form via ajax
+		add(new AjaxButton("ajax-save-button", form) {
+			private static final long serialVersionUID = 839803820502260006L;
+
+			@Override
+			protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
+				// repaint the feedback panel so that it is hidden
+				target.add(feedback);
+				onSaveSubmit(target, form);
+			}
+
+			@Override
+			protected void onError(AjaxRequestTarget target, Form<?> form) {
+				// repaint the feedback panel so errors are shown
+				target.add(feedback);
+				onSaveError(target, form);
+			}
+		});
+
+		// add a refresh button that can be used to submit the form via ajax
+		add(new AjaxButton("ajax-refresh-button", form) {
+			private static final long serialVersionUID = 839803820502260006L;
+
+			@Override
+			protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
+				// repaint the feedback panel so that it is hidden
+				target.add(feedback);
+				hideNewRecord();
+				onRefreshSubmit(target, form);
+			}
+
+			@Override
+			protected void onError(AjaxRequestTarget target, Form<?> form) {
+				// repaint the feedback panel so errors are shown
+				target.add(feedback);
+				hideNewRecord();
+				onRefreshError(target, form);
+			}
+		});
+
+	}
+	/**
+	 * Hide the new record text
+	 */
+	public void hideNewRecord() {
+		// for admin only, will be implemented in admin
+	}
+	
+	protected abstract void onSaveSubmit(AjaxRequestTarget target, Form<?> form);
+	protected abstract void onSaveError(AjaxRequestTarget target, Form<?> form);
+
+	protected abstract void onRefreshSubmit(AjaxRequestTarget target, Form<?> form);
+	protected abstract void onRefreshError(AjaxRequestTarget target, Form<?> form);
+}
diff --git a/src/web/java/org/apache/openmeetings/web/common/GeneralUserForm.html b/src/web/java/org/apache/openmeetings/web/common/GeneralUserForm.html
new file mode 100644
index 0000000..7f7f65e
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/GeneralUserForm.html
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<div class="formelement">
+		<label><wicket:ommessage key="133" /></label><input type="password" wicket:id="password" />
+	</div>
+	<wicket:child/>
+	<div class="formelement">
+		<label><wicket:ommessage key="135" /></label><select
+			wicket:id="salutation" style="width: 60px;" /><input type="text"
+			wicket:id="firstname" style="width: 216px;" />
+	</div>
+	<div class="formelement">
+		<label><wicket:ommessage key="136" /></label><input type="text" wicket:id="lastname" />
+	</div>
+	<div class="formelement">
+		<label><wicket:ommessage key="1143" /></label><select wicket:id="timeZoneId" />
+	</div>
+	<div class="formelement">
+		<label><wicket:ommessage key="111" /></label><select wicket:id="language" />
+	</div>
+	<div class="formelement">
+		<label><wicket:ommessage key="137" /></label><input type="text" wicket:id="adresses.email" />
+	</div>
+	<div class="formelement">
+		<label><wicket:ommessage key="607" /></label><input type="text" wicket:id="adresses.phone" />
+	</div>
+	<div class="formelement">
+		<label><wicket:ommessage key="1503" /></label><input class="formcheckbox" type="checkbox" wicket:id="sendSMS" />
+	</div>
+	<div class="formelement">
+		<label><wicket:ommessage key="138" /></label><input type="text" wicket:id="age" style="width: 258px;" />
+	</div>
+	<div class="formelement">
+		<label><wicket:ommessage key="139" /></label><input type="text"
+			wicket:id="adresses.street" style="width: 244px;" /> <input
+			type="text" wicket:id="adresses.additionalname" style="width: 30px;" />
+	</div>
+	<div class="formelement">
+		<label><wicket:ommessage key="140" /></label><input type="text"
+			wicket:id="adresses.zip" style="width: 60px;" /> <input type="text"
+			wicket:id="adresses.town" style="width: 214px;" />
+	</div>
+	<div class="formelement">
+		<label><wicket:ommessage key="141" /></label><select wicket:id="adresses.states" />
+	</div>
+	<div class="formelement">
+		<label><wicket:ommessage key="142" /></label>
+		<textarea wicket:id="adresses.comment" />
+	</div>
+	<div class="formelement">
+		<label><wicket:ommessage key="161" /></label><select wicket:id="organisation_users" style="height: 80px" />
+	</div>
+</wicket:panel>
+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/common/GeneralUserForm.java b/src/web/java/org/apache/openmeetings/web/common/GeneralUserForm.java
new file mode 100644
index 0000000..c639d5d
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/GeneralUserForm.java
@@ -0,0 +1,170 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.common;
+
+import static org.apache.openmeetings.db.util.UserHelper.getMinPasswdLength;
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.AVAILABLE_TIMEZONES;
+import static org.apache.openmeetings.web.app.WebSession.getLanguage;
+import static org.apache.wicket.validation.validator.StringValidator.minimumLength;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.label.FieldLanguageDao;
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.dao.user.OrganisationDao;
+import org.apache.openmeetings.db.dao.user.SalutationDao;
+import org.apache.openmeetings.db.dao.user.StateDao;
+import org.apache.openmeetings.db.entity.label.FieldLanguage;
+import org.apache.openmeetings.db.entity.user.Organisation;
+import org.apache.openmeetings.db.entity.user.Organisation_Users;
+import org.apache.openmeetings.db.entity.user.Salutation;
+import org.apache.openmeetings.db.entity.user.State;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
+import org.apache.wicket.extensions.markup.html.form.DateTextField;
+import org.apache.wicket.extensions.validation.validator.RfcCompliantEmailAddressValidator;
+import org.apache.wicket.extensions.yui.calendar.DatePicker;
+import org.apache.wicket.markup.html.form.CheckBox;
+import org.apache.wicket.markup.html.form.ChoiceRenderer;
+import org.apache.wicket.markup.html.form.DropDownChoice;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.ListMultipleChoice;
+import org.apache.wicket.markup.html.form.PasswordTextField;
+import org.apache.wicket.markup.html.form.RequiredTextField;
+import org.apache.wicket.markup.html.form.TextArea;
+import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.markup.html.panel.IMarkupSourcingStrategy;
+import org.apache.wicket.markup.html.panel.PanelMarkupSourcingStrategy;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.PropertyModel;
+
+public class GeneralUserForm extends Form<User> {
+	private static final long serialVersionUID = 5360667099083510234L;
+	private Salutation salutation;
+	private FieldLanguage lang;
+	private PasswordTextField passwordField;
+	private RequiredTextField<String> email;
+
+	public GeneralUserForm(String id, IModel<User> model, boolean isAdminForm) {
+		super(id, model);
+
+		//TODO should throw exception if non admin User edit somebody else (or make all fields read-only)
+		add(passwordField = new PasswordTextField("password", new Model<String>()));
+		ConfigurationDao cfgDao = getBean(ConfigurationDao.class);
+		passwordField.setRequired(false).add(minimumLength(getMinPasswdLength(cfgDao)));
+
+		SalutationDao salutDao = getBean(SalutationDao.class);
+		FieldLanguageDao langDao = getBean(FieldLanguageDao.class);
+		salutation = salutDao.get(getModelObject().getSalutations_id(), getLanguage());
+		lang = langDao.getFieldLanguageById(getModelObject().getLanguage_id());
+		add(new DropDownChoice<Salutation>("salutation"
+				, new PropertyModel<Salutation>(this, "salutation")
+				, salutDao.getUserSalutations(getLanguage())
+				, new ChoiceRenderer<Salutation>("label.value", "salutations_id"))
+			.add(new AjaxFormComponentUpdatingBehavior("onchange") {
+				private static final long serialVersionUID = -6748844721645465468L;
+
+				@Override
+				protected void onUpdate(AjaxRequestTarget target) {
+					GeneralUserForm.this.getModelObject().setSalutations_id(salutation.getSalutations_id());
+				}
+			}));
+		add(new TextField<String>("firstname"));
+		add(new TextField<String>("lastname"));
+		
+		add(new DropDownChoice<String>("timeZoneId", AVAILABLE_TIMEZONES));
+
+		add(new DropDownChoice<FieldLanguage>("language"
+				, new PropertyModel<FieldLanguage>(this, "lang")
+				, langDao.getLanguages()
+				, new ChoiceRenderer<FieldLanguage>("name", "language_id"))
+			.add(new AjaxFormComponentUpdatingBehavior("onchange") {
+				private static final long serialVersionUID = 2072021284702632856L;
+
+				@Override
+				protected void onUpdate(AjaxRequestTarget target) {
+					GeneralUserForm.this.getModelObject().setLanguage_id(lang.getLanguage_id());
+				}
+			}));
+
+		add(email = new RequiredTextField<String>("adresses.email"));
+		email.setLabel(Model.of(WebSession.getString(137)));
+		email.add(RfcCompliantEmailAddressValidator.getInstance());
+		add(new TextField<String>("adresses.phone"));
+		add(new CheckBox("sendSMS"));
+		DateTextField age = new DateTextField("age");
+		DatePicker datePicker = new DatePicker() {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected String getAdditionalJavaScript() {
+				return "${calendar}.cfg.setProperty(\"navigator\",true,false); ${calendar}.render();";
+			}
+		};
+		datePicker.setShowOnFieldClick(true);
+		datePicker.setAutoHide(true);
+		age.add(datePicker);
+		add(age);
+		add(new TextField<String>("adresses.street"));
+		add(new TextField<String>("adresses.additionalname"));
+		add(new TextField<String>("adresses.zip"));
+		add(new TextField<String>("adresses.town"));
+		add(new DropDownChoice<State>("adresses.states", getBean(StateDao.class).getStates()
+				, new ChoiceRenderer<State>("name", "state_id")));
+		add(new TextArea<String>("adresses.comment"));
+
+		List<Organisation_Users> orgUsers;
+		if (isAdminForm) {
+			List<Organisation> orgList = getBean(OrganisationDao.class).get(0, Integer.MAX_VALUE);
+			orgUsers = new ArrayList<Organisation_Users>(orgList.size());
+			for (Organisation org : orgList) {
+				orgUsers.add(new Organisation_Users(org));
+			}
+		} else {
+			orgUsers = getModelObject().getOrganisation_users();
+		}
+		ListMultipleChoice<Organisation_Users> orgChoiceList = new ListMultipleChoice<Organisation_Users>(
+				"organisation_users", orgUsers,
+				new ChoiceRenderer<Organisation_Users>("organisation.name", "organisation.organisation_id"));
+		add(orgChoiceList.setEnabled(isAdminForm));
+	}
+
+	@Override
+	protected void onValidate() {
+		if(!getBean(AdminUserDao.class).checkUserEMail(email.getConvertedInput(), getModelObject().getUser_id())) {
+			error(WebSession.getString(1000));
+		}
+		super.onValidate();
+	}
+	
+	public PasswordTextField getPasswordField() {
+		return passwordField;
+	}
+	
+	@Override
+	protected IMarkupSourcingStrategy newMarkupSourcingStrategy() {
+		return new PanelMarkupSourcingStrategy(false);
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/common/HeaderPanel.html b/src/web/java/org/apache/openmeetings/web/common/HeaderPanel.html
new file mode 100644
index 0000000..3f72418
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/HeaderPanel.html
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<html xmlns:wicket="http://wicket.apache.org">

+	<wicket:panel>

+		<div id="header">

+			<span wicket:id="appName"></span>

+		</div>

+	</wicket:panel>

+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/common/HeaderPanel.java b/src/web/java/org/apache/openmeetings/web/common/HeaderPanel.java
new file mode 100644
index 0000000..45929f2
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/HeaderPanel.java
@@ -0,0 +1,31 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.common;

+

+import org.apache.wicket.markup.html.basic.Label;

+import org.apache.wicket.util.string.Strings;

+

+public class HeaderPanel extends BasePanel {

+	private static final long serialVersionUID = 9020842845946685193L;

+

+	public HeaderPanel(String id, String appName) {

+		super(id);

+		add(new Label("appName", Strings.isEmpty(appName) ? "&nbsp;" : appName).setEscapeModelStrings(false));

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/common/MenuPanel.html b/src/web/java/org/apache/openmeetings/web/common/MenuPanel.html
new file mode 100644
index 0000000..8280ae2
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/MenuPanel.html
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<html xmlns:wicket="http://wicket.apache.org">

+	<wicket:head>

+		<link media="screen" type="text/css" rel="stylesheet" href="css/jquery.ui.menubar.css"/>

+	</wicket:head>

+	<wicket:panel>

+		<script type="text/javascript" src="js/jquery.ui.menubar.js"></script>

+		<script type="text/javascript">

+			$(function() {

+				$("#jMenu").menubar({

+					autoExpand: true

+					, menuIcon: true

+					, buttons: true

+					, position: {

+						within: $("#menu").add(window).first()

+					}

+					//, select: select

+				});

+			});

+		</script>

+		<ul id="jMenu">

+			<li wicket:id="mainItem">

+				<a class="fNiv" href="#" onclick="return false;"><span wicket:id="label"></span></a>

+				<ul wicket:enclosure="childItem">

+					<li wicket:id="childItem">

+						<a wicket:id="link" href="#">

+							<span class="menuName" wicket:id="name"></span><br />

+							<span class="menuDesc" wicket:id="description"></span>

+						</a>

+					</li>

+				</ul>

+			</li>

+		</ul>

+	</wicket:panel>

+</html>

diff --git a/src/web/java/org/apache/openmeetings/web/common/MenuPanel.java b/src/web/java/org/apache/openmeetings/web/common/MenuPanel.java
new file mode 100644
index 0000000..64163ac
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/MenuPanel.java
@@ -0,0 +1,84 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.common;

+

+import org.apache.openmeetings.db.dao.basic.NavigationDao;

+import org.apache.openmeetings.db.entity.basic.Naviglobal;

+import org.apache.openmeetings.db.entity.basic.Navimain;

+import org.apache.openmeetings.web.app.Application;

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.openmeetings.web.pages.MainPage;

+import org.apache.openmeetings.web.util.OmUrlFragment;

+import org.apache.openmeetings.web.util.OmUrlFragment.MenuActions;

+import org.apache.openmeetings.web.util.OmUrlFragment.MenuParams;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.ajax.markup.html.AjaxLink;

+import org.apache.wicket.markup.html.basic.Label;

+import org.apache.wicket.markup.html.list.ListItem;

+import org.apache.wicket.markup.html.list.ListView;

+

+/**

+ * Loads the menu items into the main area

+ * 

+ * @author sebawagner

+ *

+ */

+public class MenuPanel extends BasePanel {

+	private static final long serialVersionUID = 6626039612808753514L;

+

+	public MenuPanel(String id) {

+		super(id);

+		setMarkupId(id);

+		

+		final NavigationDao man = Application.getBean(NavigationDao.class);

+		add(new ListView<Naviglobal>("mainItem", man.getMainMenu(WebSession.getUserLevel(), WebSession.getUserId(), WebSession.getLanguage())) {

+			private static final long serialVersionUID = 2173926553418745231L;

+

+			@Override

+			protected void populateItem(ListItem<Naviglobal> item) {

+				Naviglobal gl = item.getModelObject();

+				item.add(new Label("label", gl.getLabel().getValue()).setRenderBodyOnly(true));

+				

+				item.add(new ListView<Navimain>("childItem", gl.getMainnavi()) {

+					private static final long serialVersionUID = 3609635268338379087L;

+

+					@Override

+					protected void populateItem(ListItem<Navimain> item) {

+						Navimain m = item.getModelObject();

+						final String name = m.getLabel().getValue();

+						final String desc = m.getTooltip().getValue();

+						final MenuActions action = MenuActions.valueOf(m.getAction());

+						final MenuParams params = m.getParams() != null ? MenuParams.valueOf(m.getParams()) : MenuParams.publicTabButton;

+						item.add(new AjaxLink<Void>("link") {

+							private static final long serialVersionUID = 5632618935550133709L;

+							{

+								add(new Label("name", name));

+								add(new Label("description", desc));

+							}

+							

+							public void onClick(AjaxRequestTarget target) {

+								((MainPage)getPage()).updateContents(new OmUrlFragment(action, params), target);

+							}

+						});

+					}

+				}.setReuseItems(true));

+			}

+		}.setReuseItems(true));

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/common/OmLabel.java b/src/web/java/org/apache/openmeetings/web/common/OmLabel.java
new file mode 100644
index 0000000..a89911c
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/OmLabel.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.common;
+
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.model.StringResourceModel;
+
+public class OmLabel extends Label {
+	private static final long serialVersionUID = 1L;
+
+	public OmLabel(String id, String key, Object... parameters) {
+		super(id);
+		setDefaultModel(new StringResourceModel(key, this, null, parameters));
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/common/OmPagingNavigator.html b/src/web/java/org/apache/openmeetings/web/common/OmPagingNavigator.html
new file mode 100644
index 0000000..9b178ca
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/OmPagingNavigator.html
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!--

+   Licensed to the Apache Software Foundation (ASF) under one or more

+   contributor license agreements.  See the NOTICE file distributed with

+   this work for additional information regarding copyright ownership.

+   The ASF licenses this file to You under the Apache License, Version 2.0

+   (the "License"); you may not use this file except in compliance with

+   the License.  You may obtain a copy of the License at

+

+        http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+-->

+<html xmlns:wicket="http://wicket.apache.org">

+	<wicket:panel>

+	    <a wicket:id="first" class="goto icon ui-icon ui-icon-seek-first"></a>

+	    <a wicket:id="prev" class="goto icon ui-icon ui-icon-seek-prev"></a>

+	    <span wicket:id="navigation" class="goto">

+	        <a wicket:id="pageLink" href="#"><span wicket:id="pageNumber">5</span></a>

+	    </span>

+	    <a wicket:id="next" class="goto icon ui-icon ui-icon-seek-next"></a>

+	    <a wicket:id="last" class="goto icon ui-icon ui-icon-seek-end"></a>

+	</wicket:panel>

+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/common/OmPagingNavigator.java b/src/web/java/org/apache/openmeetings/web/common/OmPagingNavigator.java
new file mode 100644
index 0000000..596ab5f
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/OmPagingNavigator.java
@@ -0,0 +1,32 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.common;

+

+import org.apache.wicket.ajax.markup.html.navigation.paging.AjaxPagingNavigator;

+import org.apache.wicket.markup.html.navigation.paging.IPageable;

+

+public class OmPagingNavigator extends AjaxPagingNavigator {

+

+	private static final long serialVersionUID = 1L;

+	

+	public OmPagingNavigator(String id, IPageable pageable) {

+		super(id, pageable);

+	}

+

+}

diff --git a/src/web/java/org/apache/openmeetings/web/common/PagedEntityListPanel.html b/src/web/java/org/apache/openmeetings/web/common/PagedEntityListPanel.html
new file mode 100644
index 0000000..3cbf8fa
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/PagedEntityListPanel.html
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+	<wicket:panel>
+		<div wicket:id="pagedPanel" class="pagedEntityListPanel"></div>
+		<form wicket:id="searchForm" class="searchForm">
+			<input type="text" wicket:id="searchText" wicket:ommessage="title:714"/>
+			<input type="submit" wicket:id="search" wicket:ommessage="value:715"/>
+		</form>
+	</wicket:panel>
+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/common/PagedEntityListPanel.java b/src/web/java/org/apache/openmeetings/web/common/PagedEntityListPanel.java
new file mode 100644
index 0000000..5115429
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/PagedEntityListPanel.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.common;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.apache.openmeetings.web.admin.SearchableDataView;
+import org.apache.openmeetings.web.data.SearchableDataProvider;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.model.PropertyModel;
+
+public abstract class PagedEntityListPanel extends BasePanel {
+	private static final long serialVersionUID = -4280843184916302671L;
+	private List<Integer> numbers = Arrays.asList(10, 25, 50, 75, 100, 200);
+	
+	public PagedEntityListPanel(String id, final SearchableDataView<? extends IDataProviderEntity> dataView) {
+		super(id);
+
+		final PagingNavigatorPanel navPanel = new PagingNavigatorPanel("pagedPanel", dataView, numbers) {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void onEvent(AjaxRequestTarget target) {
+				PagedEntityListPanel.this.onEvent(target);
+			}
+		};
+		dataView.setItemsPerPage(navPanel.getEntitiesPerPage());
+		
+		final SearchableDataProvider<? extends IDataProviderEntity> dp = dataView.getDataProvider();
+		Form<Void> searchForm = new Form<Void>("searchForm");
+		add(searchForm.setOutputMarkupId(true));
+		searchForm.add(new TextField<String>("searchText", new PropertyModel<String>(dp, "search")).setOutputMarkupId(true));
+		searchForm.add(new AjaxButton("search", searchForm) {
+			private static final long serialVersionUID = -1659023337945692814L;
+
+			@Override
+			protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
+				target.add(navPanel);
+				PagedEntityListPanel.this.onEvent(target);
+			}
+		});
+		add(navPanel);
+	}
+
+	protected abstract void onEvent(AjaxRequestTarget target);
+}
diff --git a/src/web/java/org/apache/openmeetings/web/common/PagingNavigatorPanel.html b/src/web/java/org/apache/openmeetings/web/common/PagingNavigatorPanel.html
new file mode 100644
index 0000000..a3728e5
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/PagingNavigatorPanel.html
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<form wicket:id="pagingForm" class="pagedEntityListPanel">
+		<select wicket:id="entitiesPerPage"></select> <span
+			wicket:id="navigator">[dataview navigator]</span>
+	</form>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/common/PagingNavigatorPanel.java b/src/web/java/org/apache/openmeetings/web/common/PagingNavigatorPanel.java
new file mode 100644
index 0000000..c0dfdff
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/PagingNavigatorPanel.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.common;
+
+import java.util.List;
+
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
+import org.apache.wicket.markup.html.form.DropDownChoice;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.markup.repeater.data.DataView;
+import org.apache.wicket.model.PropertyModel;
+
+public abstract class PagingNavigatorPanel extends Panel {
+	private static final long serialVersionUID = 1L;
+	private int entitiesPerPage = 50;
+	
+	public PagingNavigatorPanel(String id, final DataView<?> dataView, List<Integer> numbers) {
+		super(id);
+		setOutputMarkupId(true);
+		final Form<Void> f = new Form<Void>("pagingForm");
+		f.add(new OmPagingNavigator("navigator", dataView).setOutputMarkupId(true))
+			.add(new DropDownChoice<Integer>("entitiesPerPage", new PropertyModel<Integer>(this, "entitiesPerPage"), numbers)
+				.add(new AjaxFormComponentUpdatingBehavior("onchange") {
+					private static final long serialVersionUID = -7754441983330112248L;
+	
+					@Override
+					protected void onUpdate(AjaxRequestTarget target) {
+						long newPage = dataView.getCurrentPage() * dataView.getItemsPerPage() / entitiesPerPage;
+						dataView.setItemsPerPage(entitiesPerPage);
+						dataView.setCurrentPage(newPage);
+						target.add(f);
+						PagingNavigatorPanel.this.onEvent(target);
+					}
+				}));
+		add(f.setOutputMarkupId(true));
+	}
+
+	public int getEntitiesPerPage() {
+		return entitiesPerPage;
+	}
+	
+	public void setEntitiesPerPage(int entitiesPerPage) {
+		this.entitiesPerPage = entitiesPerPage;
+	}
+	
+	protected abstract void onEvent(AjaxRequestTarget target);
+}
diff --git a/src/web/java/org/apache/openmeetings/web/common/ProfileImagePanel.html b/src/web/java/org/apache/openmeetings/web/common/ProfileImagePanel.html
new file mode 100644
index 0000000..92f58ff
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/ProfileImagePanel.html
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+	<wicket:panel>
+		<div class="profile" wicket:id="profile"><img wicket:id="img"/><wicket:child/></div>
+	</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/common/ProfileImagePanel.java b/src/web/java/org/apache/openmeetings/web/common/ProfileImagePanel.java
new file mode 100644
index 0000000..023e968
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/ProfileImagePanel.java
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.common;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.web.app.Application.getBean;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.net.URI;
+
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.util.OmFileHelper;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.AttributeModifier;
+import org.apache.wicket.markup.html.TransparentWebMarkupContainer;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.image.Image;
+import org.apache.wicket.request.resource.ByteArrayResource;
+import org.apache.wicket.util.io.IOUtils;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class ProfileImagePanel extends BasePanel {
+	private static final long serialVersionUID = 1119719397241677937L;
+	private static final Logger log = Red5LoggerFactory.getLogger(ProfileImagePanel.class, webAppRootKey);
+	protected final WebMarkupContainer profile;
+	
+	public ProfileImagePanel(String id, final long userId) {
+		super(id);
+		
+		profile = new TransparentWebMarkupContainer("profile");
+		String uri = getBean(UserDao.class).get(userId).getPictureuri();
+		boolean absolute = false;
+		try {
+			absolute = URI.create(uri).isAbsolute();
+		} catch (Exception e) {
+			//no-op
+		}
+		if (absolute) {
+			profile.add(new Image("img", WebSession.getString(5L)).add(AttributeModifier.replace("src", uri)));
+		} else {
+			profile.add(new Image("img", new ByteArrayResource("image/jpeg") {
+				private static final long serialVersionUID = 6039580072791941591L;
+
+				@Override
+				protected ResourceResponse newResourceResponse(Attributes attributes) {
+					ResourceResponse rr = super.newResourceResponse(attributes);
+					rr.disableCaching();
+					return rr;
+				}
+				
+				@Override
+				protected byte[] getData(Attributes attributes) {
+					String uri = getBean(UserDao.class).get(userId).getPictureuri();
+					File img = OmFileHelper.getUserProfilePicture(userId, uri);
+					try {
+						return IOUtils.toByteArray(new FileInputStream(img));
+					} catch (Exception e) {
+						log.error("failed to get bytes from image", e);
+					}
+					return null;
+				}
+			}));
+		}
+		add(profile.setOutputMarkupId(true));
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/common/UploadableProfileImagePanel.html b/src/web/java/org/apache/openmeetings/web/common/UploadableProfileImagePanel.html
new file mode 100644
index 0000000..7465eba
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/UploadableProfileImagePanel.html
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+	<wicket:extend>
+		<form wicket:id="form"><div 
+			class="fileupload fileupload-new" data-provides="fileupload" style="margin: 0;"><span 
+			class="btn btn-file" style="width: 120px;"><wicket:ommessage key="379"/><input type="file" accept="image/*" 
+			wicket:id="image"/></span></div><span wicket:id="progress">[progressbar]</span></form>
+	</wicket:extend>
+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/common/UploadableProfileImagePanel.java b/src/web/java/org/apache/openmeetings/web/common/UploadableProfileImagePanel.java
new file mode 100644
index 0000000..8b2cd2d
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/UploadableProfileImagePanel.java
@@ -0,0 +1,91 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.common;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+
+import java.util.List;
+
+import org.apache.openmeetings.converter.GenerateImage;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.util.StoredFile;
+import org.apache.openmeetings.web.util.BootstrapFileUploadBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
+import org.apache.wicket.extensions.ajax.markup.html.form.upload.UploadProgressBar;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.upload.FileUpload;
+import org.apache.wicket.markup.html.form.upload.FileUploadField;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.util.lang.Bytes;
+
+public class UploadableProfileImagePanel extends ProfileImagePanel {
+	private static final long serialVersionUID = 1L;
+	private FileUploadField fileUploadField;
+	
+	public UploadableProfileImagePanel(String id, final long userId) {
+		super(id, userId);
+		final Form<Void> form = new Form<Void>("form");
+		form.setMultiPart(true);
+		form.setMaxSize(Bytes.bytes(getBean(ConfigurationDao.class).getMaxUploadSize()));
+		// Model is necessary here to avoid writing image to the User object
+		form.add(fileUploadField = new FileUploadField("image", new IModel<List<FileUpload>>() {
+			private static final long serialVersionUID = 1L;
+
+			//FIXME this need to be eliminated
+			public void detach() {
+			}
+			
+			public void setObject(List<FileUpload> object) {
+			}
+			
+			public List<FileUpload> getObject() {
+				return null;
+			}
+		}));
+		form.add(new UploadProgressBar("progress", form, fileUploadField));
+		fileUploadField.add(new AjaxFormSubmitBehavior(form, "onchange") {
+			private static final long serialVersionUID = 2160216679027859231L;
+
+			@Override
+			protected void onSubmit(AjaxRequestTarget target) {
+				FileUpload fu = fileUploadField.getFileUpload();
+				if (fu != null) {
+					StoredFile sf = new StoredFile(fu.getClientFileName());
+					if (sf.isImage()) {
+						boolean asIs = sf.isAsIs();
+						try {
+							//FIXME need to work with InputStream !!!
+							getBean(GenerateImage.class)
+								.convertImageUserProfile(fu.writeToTempFile(), userId, asIs);
+						} catch (Exception e) {
+							// TODO display error
+							e.printStackTrace();
+						}
+					} else {
+						//TODO display error
+					}
+				}
+				target.add(profile, form);
+			}
+		});
+		add(form.setOutputMarkupId(true));
+		add(BootstrapFileUploadBehavior.INSTANCE);
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/common/UserPanel.java b/src/web/java/org/apache/openmeetings/web/common/UserPanel.java
new file mode 100644
index 0000000..c058fbf
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/common/UserPanel.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.common;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.openmeetings.db.dao.room.IRoomManager;
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
+
+@AuthorizeInstantiation("USER")
+public abstract class UserPanel extends BasePanel {
+	private static final long serialVersionUID = 8607846885689465360L;
+
+	public UserPanel(String id) {
+		super(id);
+	}
+	
+	public static List<Room> getMyRooms() {
+		List<Room> result = new ArrayList<Room>();
+		result.add(getBean(IRoomManager.class).getRoomByOwnerAndTypeId(getUserId(), 1L, WebSession.getString(1306L)));
+		result.add(getBean(IRoomManager.class).getRoomByOwnerAndTypeId(getUserId(), 3L, WebSession.getString(1307L)));
+		result.addAll(getBean(RoomDao.class).getAppointedRoomsByUser(getUserId()));
+		return result;
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/data/DataViewContainer.java b/src/web/java/org/apache/openmeetings/web/data/DataViewContainer.java
new file mode 100644
index 0000000..065980b
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/data/DataViewContainer.java
@@ -0,0 +1,45 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.data;

+

+import java.io.Serializable;

+

+import org.apache.openmeetings.db.entity.IDataProviderEntity;

+import org.apache.openmeetings.web.admin.SearchableDataView;

+import org.apache.openmeetings.web.common.PagedEntityListPanel;

+import org.apache.wicket.markup.html.WebMarkupContainer;

+

+public class DataViewContainer<T extends IDataProviderEntity> implements Serializable {

+	private static final long serialVersionUID = -1027478954223527890L;

+	public WebMarkupContainer container;

+	public SearchableDataView<T> view;

+	public PagedEntityListPanel navigator;

+	public OmOrderByBorder<T>[] orderLinks;

+	

+	public DataViewContainer(WebMarkupContainer container, SearchableDataView<T> view, PagedEntityListPanel navigator) {

+		this.container = container;

+		this.view = view;

+		this.navigator = navigator;

+	}

+	

+	//TODO refactor to remove warnings

+	public void setLinks(OmOrderByBorder<T>... orderLinks) {

+		this.orderLinks = orderLinks;

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/data/OmOrderByBorder.java b/src/web/java/org/apache/openmeetings/web/data/OmOrderByBorder.java
new file mode 100644
index 0000000..2ab83bc
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/data/OmOrderByBorder.java
@@ -0,0 +1,53 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.data;

+

+import org.apache.openmeetings.db.entity.IDataProviderEntity;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.extensions.ajax.markup.html.repeater.data.sort.AjaxFallbackOrderByBorder;

+import org.apache.wicket.extensions.markup.html.repeater.data.sort.OrderByLink.CssProvider;

+

+public class OmOrderByBorder<T extends IDataProviderEntity> extends AjaxFallbackOrderByBorder<String> {

+	private static final long serialVersionUID = -867341109912297431L;

+	private DataViewContainer<T> container;

+	

+	public OmOrderByBorder(final String id, final String property, DataViewContainer<T> container) {

+		super(id, property, container.view.getDataProvider(), new SortIconCssProvider());

+		this.container = container;

+		setOutputMarkupId(true);

+	}

+	

+    protected void onSortChanged() {

+    	container.view.setCurrentPage(0);

+    }

+

+	@Override

+	protected void onAjaxClick(AjaxRequestTarget target) {

+		target.add(container.container, container.navigator);

+		target.add(container.orderLinks);

+	}

+	

+	static class SortIconCssProvider extends CssProvider<String> {

+		private static final long serialVersionUID = 60178231250586887L;

+

+		public SortIconCssProvider() {

+			super("ui-icon ui-icon-carat-1-n sort-icon", "ui-icon ui-icon-carat-1-s sort-icon", "ui-icon ui-icon-carat-2-n-s sort-icon");

+		}

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/data/SearchableDataProvider.java b/src/web/java/org/apache/openmeetings/web/data/SearchableDataProvider.java
new file mode 100644
index 0000000..7b66be2
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/data/SearchableDataProvider.java
@@ -0,0 +1,88 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.data;

+

+import static org.apache.openmeetings.web.app.Application.getBean;

+

+import java.util.Iterator;

+

+import org.apache.openmeetings.db.dao.IDataProviderDao;

+import org.apache.openmeetings.db.entity.IDataProviderEntity;

+import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;

+import org.apache.wicket.model.CompoundPropertyModel;

+import org.apache.wicket.model.IModel;

+

+/**

+ * provides function to fill paging tables

+ * 

+ * @author swagner

+ * 

+ * @param <T>

+ */

+public class SearchableDataProvider<T extends IDataProviderEntity> extends SortableDataProvider<T, String> {

+	private static final long serialVersionUID = 4325721185888905204L;

+	protected Class<? extends IDataProviderDao<T>> clazz;

+	protected String search = null;

+	

+	public SearchableDataProvider(Class<? extends IDataProviderDao<T>> c) {

+		this.clazz = c;

+	}

+	

+	public void detach() {

+		// does nothing

+	}

+

+	protected IDataProviderDao<T> getDao() {

+		return getBean(clazz);

+	}

+	

+	protected String getSortStr() {

+		String result = null;

+		if (getSort() != null) {

+			result = getSort().getProperty() + " " + (getSort().isAscending() ? "ASC" : "DESC");

+		}

+		return result;

+	}

+	

+	public Iterator<? extends T> iterator(long first, long count) {

+		return (search == null && getSort() == null

+			? getDao().get((int)first, (int)count)

+			: getDao().get(search, (int)first, (int)count, getSortStr())).iterator();

+	}

+

+	public long size() {

+		return search == null ? getDao().count() : getDao().count(search);

+	}

+

+	public IModel<T> model(T object) {

+		return new CompoundPropertyModel<T>(object);

+	}

+

+	public void setSearch(String search) {

+		if (search != null && !search.trim().isEmpty()) {

+			this.search = search.trim();

+		} else {

+			this.search = null;

+		}

+	}

+	

+	public String getSearch() {

+		return search;

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/mail/template/AbstractTemplatePanel.java b/src/web/java/org/apache/openmeetings/web/mail/template/AbstractTemplatePanel.java
new file mode 100644
index 0000000..45d0c68
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/mail/template/AbstractTemplatePanel.java
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.mail.template;
+
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.ThreadContext;
+import org.apache.wicket.markup.IMarkupResourceStreamProvider;
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.mock.MockWebResponse;
+import org.apache.wicket.protocol.http.BufferedWebResponse;
+import org.apache.wicket.protocol.http.mock.MockHttpServletRequest;
+import org.apache.wicket.protocol.http.mock.MockHttpSession;
+import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
+import org.apache.wicket.request.Response;
+import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.request.cycle.RequestCycleContext;
+import org.apache.wicket.util.resource.IResourceStream;
+import org.apache.wicket.util.resource.StringResourceStream;
+
+public abstract class AbstractTemplatePanel extends Panel {
+	private static final long serialVersionUID = 1L;
+	
+	public AbstractTemplatePanel(String id) {
+		super(id);
+	}
+	
+	/**
+	 * Collects the html generated by the rendering of a page.
+	 * 
+	 * @param panel
+	 *            the panel that should be rendered.
+	 * @return the html rendered by the panel
+	 */
+	protected static CharSequence renderPanel(final Panel panel) {
+		RequestCycle requestCycle = RequestCycle.get();
+
+		final Response oldResponse = requestCycle.getResponse();
+		BufferedWebResponse tempResponse = new BufferedWebResponse(null);
+
+		try {
+			requestCycle.setResponse(tempResponse);
+
+			TemplatePage page = new TemplatePage();
+			page.add(panel);
+
+			panel.render();
+		} finally {
+			requestCycle.setResponse(oldResponse);
+		}
+
+		return tempResponse.getText();
+	}
+
+	public static class TemplatePage extends WebPage implements IMarkupResourceStreamProvider {
+		private static final long serialVersionUID = 1L;
+		public static final String COMP_ID = "template";
+
+		public IResourceStream getMarkupResourceStream(MarkupContainer container, Class<?> containerClass) {
+			return new StringResourceStream("<wicket:container wicket:id='" + COMP_ID + "'></wicket:container>");
+		}
+	}
+	
+	public static void ensureApplication(long langId) {
+		if (!Application.exists()) {
+			Application a = (Application)Application.get(Application.getAppName());
+			ThreadContext.setApplication(a);
+			
+			ServletWebRequest req = new ServletWebRequest(new MockHttpServletRequest(a, new MockHttpSession(a.getServletContext()), a.getServletContext()), "");
+			RequestCycleContext rctx = new RequestCycleContext(req, new MockWebResponse(), a.getRootRequestMapper(), a.getExceptionMapperProvider().get()); 
+			ThreadContext.setRequestCycle(new RequestCycle(rctx));
+			
+			WebSession s = WebSession.get();
+			s.setLanguage(langId);
+			ThreadContext.setSession(s);
+		}
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/mail/template/FeedbackTemplate.html b/src/web/java/org/apache/openmeetings/web/mail/template/FeedbackTemplate.html
new file mode 100644
index 0000000..add8747
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/mail/template/FeedbackTemplate.html
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<b><span wicket:id="appname"></span> - Feedback</b><br />
+	Message from User: <span wicket:id="username"></span><br/>
+	Mail: <span wicket:id="email"></span><br/>
+	Message: <span wicket:id="message"></span><br/><br/>
+	<b>Click on this link to participate in the Meeting:</b><br/>
+	<a wicket:id="invitation_link">Click here to enter room</a><br/>
+</wicket:panel>
+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/mail/template/FeedbackTemplate.java b/src/web/java/org/apache/openmeetings/web/mail/template/FeedbackTemplate.java
new file mode 100644
index 0000000..8c996ab
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/mail/template/FeedbackTemplate.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.mail.template;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.link.ExternalLink;
+
+public class FeedbackTemplate extends AbstractTemplatePanel {
+	private static final long serialVersionUID = 1L;
+
+	public FeedbackTemplate(String id, String username, String email, String message) {
+		super(id);
+		add(new Label("appname", getBean(ConfigurationDao.class).getAppName()));
+		add(new Label("username", username));
+		add(new Label("email", email));
+		add(new Label("message", message));
+		add(new ExternalLink("invitation_link", ""));
+	}
+	
+	public static String getEmail(String username, String email, String message) {
+		return renderPanel(new FeedbackTemplate(TemplatePage.COMP_ID, username, email, message)).toString();
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/mail/template/InvitationTemplate.html b/src/web/java/org/apache/openmeetings/web/mail/template/InvitationTemplate.html
new file mode 100644
index 0000000..db02fcf
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/mail/template/InvitationTemplate.html
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<b><wicket:ommessage key="500"/></b><br />
+	<wicket:ommessage key="501"/> <span wicket:id="user"></span><br/>
+	<wicket:ommessage key="502"/> <span wicket:id="message"></span><br/>
+	
+	<span wicket:id="comment_for_link1"></span><br/>
+	<a wicket:id="invitation_link1"><wicket:ommessage key="504"/></a><br/>
+	<br/><br/>
+	<span wicket:id="comment_for_link2"></span><br/>
+	<span wicket:id="invitation_link2"></span>
+</wicket:panel>
+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/mail/template/InvitationTemplate.java b/src/web/java/org/apache/openmeetings/web/mail/template/InvitationTemplate.java
new file mode 100644
index 0000000..c57b70a
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/mail/template/InvitationTemplate.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.mail.template;
+
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.link.ExternalLink;
+
+public class InvitationTemplate extends AbstractTemplatePanel {
+	private static final long serialVersionUID = 1L;
+
+	public InvitationTemplate(String id, String user, String message, String link, boolean isCanceled) {
+		super(id);
+		add(new Label("user", user));
+		add(new Label("message", message).setEscapeModelStrings(false));
+		Label commentForLink1 = new Label("comment_for_link1", WebSession.getString(503));
+		commentForLink1.setVisible(!isCanceled);
+		add(commentForLink1);
+		ExternalLink externalLink1 = new ExternalLink("invitation_link1", link);
+		externalLink1.setVisible(!isCanceled);
+		add(externalLink1);
+		Label commentForLink2 = new Label("comment_for_link2", WebSession.getString(505));
+		commentForLink2.setVisible(!isCanceled);
+		add(commentForLink2);
+		Label externalLink2 = new Label("invitation_link2", link);
+		externalLink2.setEscapeModelStrings(false).setVisible(!isCanceled); 
+		add(externalLink2);
+	}
+	
+	public static String getEmail(String user, String message, String link) {
+		return getEmail(-1, user, message, link, false);
+	}
+	
+	public static String getEmail(long langId, String user, String message, String link, boolean isCanceled) {
+		ensureApplication(langId);
+		return renderPanel(new InvitationTemplate(TemplatePage.COMP_ID, user, message, link, isCanceled)).toString();
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/mail/template/RegisterUserTemplate.html b/src/web/java/org/apache/openmeetings/web/mail/template/RegisterUserTemplate.html
new file mode 100644
index 0000000..c45e490
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/mail/template/RegisterUserTemplate.html
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<b><wicket:ommessage key="506" /></b><br />
+	<br />
+	<br />
+	<b><wicket:ommessage key="507" /></b><br />
+	<wicket:ommessage key="508" /> <span wicket:id="username"></span><br />
+	<wicket:ommessage key="509" /> <span wicket:id="userpass"></span><br />
+	<wicket:ommessage key="510" /> <span wicket:id="email"></span><br />
+	<br />
+	<div wicket:id="verification">
+		<wicket:ommessage key="667" /> <br />
+		<a wicket:id="verification_url1"><wicket:ommessage key="668" /></a> <br />
+		<span wicket:id="verification_url2"></span> <br />
+	</div>
+	<wicket:ommessage key="511" /><br />
+</wicket:panel>
+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/mail/template/RegisterUserTemplate.java b/src/web/java/org/apache/openmeetings/web/mail/template/RegisterUserTemplate.java
new file mode 100644
index 0000000..0a08995
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/mail/template/RegisterUserTemplate.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.mail.template;
+
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.link.ExternalLink;
+
+public class RegisterUserTemplate extends AbstractTemplatePanel {
+	private static final long serialVersionUID = 1L;
+
+	public RegisterUserTemplate(String id, String username, String userpass, String email, String verification_url) {
+		super(id);
+		add(new Label("username", username));
+		add(new Label("userpass", userpass));
+		add(new Label("email", email));
+		WebMarkupContainer verification = new WebMarkupContainer("verification");
+		add(verification.add(new Label("verification_url2", verification_url))
+			.add(new ExternalLink("verification_url1", verification_url))
+			.setVisible(verification_url != null));
+	}
+
+	public static String getEmail(String username, String userpass, String email, String verification_url) {
+		return renderPanel(new RegisterUserTemplate(TemplatePage.COMP_ID, username, userpass, email, verification_url)).toString();
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/mail/template/RequestContactConfirmTemplate.html b/src/web/java/org/apache/openmeetings/web/mail/template/RequestContactConfirmTemplate.html
new file mode 100644
index 0000000..081865b
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/mail/template/RequestContactConfirmTemplate.html
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<wicket:ommessage key="1192"/>&nbsp;<span wicket:id="addedFirstName"></span>&nbsp;<span wicket:id="addedLastName"></span><br/>
+	<br/>
+	<span wicket:id="firstName"></span>&nbsp;<span wicket:id="lastName"></span>&nbsp;<wicket:ommessage key="1193"/><br/>
+	<wicket:ommessage key="1194"/><br/>
+</wicket:panel>
+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/mail/template/RequestContactConfirmTemplate.java b/src/web/java/org/apache/openmeetings/web/mail/template/RequestContactConfirmTemplate.java
new file mode 100644
index 0000000..11f2265
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/mail/template/RequestContactConfirmTemplate.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.mail.template;
+
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.UserContact;
+import org.apache.wicket.markup.html.basic.Label;
+
+public class RequestContactConfirmTemplate extends AbstractTemplatePanel {
+	private static final long serialVersionUID = 1L;
+
+	public RequestContactConfirmTemplate(String id, User user, UserContact contact) {
+		super(id);
+		add(new Label("firstName", user.getFirstname()));
+		add(new Label("lastName", user.getLastname()));
+		add(new Label("addedFirstName", contact.getContact().getFirstname()));
+		add(new Label("addedLastName", contact.getContact().getLastname()));
+	}
+	
+	public static String getEmail(User user, UserContact contact) {
+		return renderPanel(new RequestContactConfirmTemplate(TemplatePage.COMP_ID, user, contact)).toString();
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/mail/template/RequestContactTemplate.html b/src/web/java/org/apache/openmeetings/web/mail/template/RequestContactTemplate.html
new file mode 100644
index 0000000..8e1db0e
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/mail/template/RequestContactTemplate.html
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<wicket:ommessage key="1192"/>&nbsp;<span wicket:id="addedFirstName"></span>&nbsp;<span wicket:id="addedLastName"></span><br/>
+	<br/>
+	<span wicket:id="firstName"></span>&nbsp;<span wicket:id="lastName"></span>&nbsp;<wicket:ommessage key="1198"/><br/>
+	<wicket:ommessage key="1194"/><br/>
+	<br/>
+	<br/>
+	<a wicket:id="link"><wicket:ommessage key="1196"/></a><br/>
+</wicket:panel>
+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/mail/template/RequestContactTemplate.java b/src/web/java/org/apache/openmeetings/web/mail/template/RequestContactTemplate.java
new file mode 100644
index 0000000..4189dd2
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/mail/template/RequestContactTemplate.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.mail.template;
+
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.web.util.ContactsHelper;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.link.ExternalLink;
+
+public class RequestContactTemplate extends AbstractTemplatePanel {
+	private static final long serialVersionUID = 1L;
+
+	public RequestContactTemplate(String id, User userToAdd, User user) {
+		super(id);
+		add(new Label("addedFirstName", userToAdd.getFirstname()));
+		add(new Label("addedLastName", userToAdd.getLastname()));
+		add(new Label("firstName", user.getFirstname()));
+		add(new Label("lastName", user.getLastname()));
+		add(new ExternalLink("link", ContactsHelper.getLink()));
+	}
+	
+	public static String getEmail(User userToAdd, User user) {
+		return renderPanel(new RequestContactTemplate(TemplatePage.COMP_ID, userToAdd, user)).toString();
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/mail/template/ResetPasswordTemplate.html b/src/web/java/org/apache/openmeetings/web/mail/template/ResetPasswordTemplate.html
new file mode 100644
index 0000000..868f4da
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/mail/template/ResetPasswordTemplate.html
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<b><wicket:ommessage key="513"/></b><br />
+	<b><wicket:ommessage key="514"/></b><br/>
+	<a wicket:id="reset_link1"><wicket:ommessage key="515"/></a><br/>
+	<wicket:ommessage key="516"/><br/>
+	<span wicket:id="reset_link2"></span>
+</wicket:panel>
+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/mail/template/ResetPasswordTemplate.java b/src/web/java/org/apache/openmeetings/web/mail/template/ResetPasswordTemplate.java
new file mode 100644
index 0000000..266f20d
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/mail/template/ResetPasswordTemplate.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.mail.template;
+
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.link.ExternalLink;
+
+public class ResetPasswordTemplate extends AbstractTemplatePanel {
+	private static final long serialVersionUID = 1L;
+
+	public ResetPasswordTemplate(String id, String link) {
+		super(id);
+		add(new ExternalLink("reset_link1", link));
+		add(new Label("reset_link2", link));
+	}
+	
+	public static String getEmail(String link) {
+		return renderPanel(new ResetPasswordTemplate(TemplatePage.COMP_ID, link)).toString();
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/pages/ActivatePage.java b/src/web/java/org/apache/openmeetings/web/pages/ActivatePage.java
new file mode 100644
index 0000000..ab6203f
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/ActivatePage.java
@@ -0,0 +1,48 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.pages;

+

+import java.util.Date;

+

+import org.apache.openmeetings.db.dao.user.UserDao;

+import org.apache.openmeetings.db.entity.user.User;

+import org.apache.openmeetings.web.app.Application;

+import org.apache.wicket.request.mapper.parameter.PageParameters;

+

+public class ActivatePage extends BaseNotInitedPage {

+	private static final long serialVersionUID = 1L;

+	private final String ACTIVATION_PARAM = "u";

+	

+	public ActivatePage(PageParameters pp) {

+		String userHash = pp.get(ACTIVATION_PARAM).toString();

+		if (userHash != null) {

+			User user = Application.getBean(UserDao.class).getUserByActivationHash(userHash);

+

+			if (user != null && user.getStatus() == 0) {

+				// activate

+				user.setStatus(1);

+				user.setUpdatetime(new Date());

+

+				Application.getBean(UserDao.class).update(user, null);

+	

+			}

+		}

+		setResponsePage(Application.get().getSignInPageClass());

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/pages/BaseInitedPage.java b/src/web/java/org/apache/openmeetings/web/pages/BaseInitedPage.java
new file mode 100644
index 0000000..9d91fcc
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/BaseInitedPage.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.pages;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.entity.label.FieldLanguage;
+import org.apache.openmeetings.web.app.WebSession;
+
+public abstract class BaseInitedPage extends BasePage {
+	private static final long serialVersionUID = 5716753033219700254L;
+
+	@Override
+	protected String getApplicationName() {
+		return getBean(ConfigurationDao.class).getAppName();
+	}
+	
+	@Override
+	protected FieldLanguage getLanguage() {
+		return WebSession.getLanguageObj();
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java b/src/web/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java
new file mode 100644
index 0000000..8eb7d27
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.pages;
+
+import org.apache.openmeetings.db.entity.label.FieldLanguage;
+import org.apache.openmeetings.installation.InstallationConfig;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.request.IRequestParameters;
+
+public abstract class BaseNotInitedPage extends BasePage {
+	private static final long serialVersionUID = 5716753033219700254L;
+	private static final InstallationConfig installCfg = new InstallationConfig(); 
+	private static final FieldLanguage l = new FieldLanguage();
+	static {
+		l.setCode("en");
+		l.setRtl(false);
+	}
+
+
+	@Override
+	protected String getApplicationName() {
+		return installCfg.appName;
+	}
+	
+	@Override
+	protected FieldLanguage getLanguage() {
+		return l;
+	}
+	
+	@Override
+	protected void onParameterArrival(IRequestParameters arg0, AjaxRequestTarget arg1) {
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/pages/BasePage.html b/src/web/java/org/apache/openmeetings/web/pages/BasePage.html
new file mode 100644
index 0000000..228eb1a
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/BasePage.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org" wicket:id="html">
+	<head>
+		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
+		<link rel="shortcut icon" href="public/favicon.ico" type="image/x-icon"/>
+		<title wicket:id="pageTitle">[title]</title>
+		<link media="screen" type="text/css" rel="stylesheet" href="css/theme_om/jquery-ui-1.10.4.custom.css"/>
+		<link media="screen" type="text/css" rel="stylesheet" href="css/theme.css"/>
+		<link media="screen" type="text/css" rel="stylesheet" href="css/forms.css"/>
+		<link media="screen" type="text/css" rel="stylesheet" href="css/calendar.css"/>
+		<link media="screen" type="text/css" rel="stylesheet" href="css/admin.css"/>
+	</head>
+	<body>
+		<div wicket:id="header"></div>
+		<wicket:child />
+	</body>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/pages/BasePage.java b/src/web/java/org/apache/openmeetings/web/pages/BasePage.java
new file mode 100644
index 0000000..52fd296
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/BasePage.java
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.pages;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.openmeetings.db.entity.label.FieldLanguage;
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.common.HeaderPanel;
+import org.apache.openmeetings.web.util.OmUrlFragment;
+import org.apache.openmeetings.web.util.OmUrlFragment.AreaKeys;
+import org.apache.wicket.AttributeModifier;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.markup.head.PriorityHeaderItem;
+import org.apache.wicket.markup.html.TransparentWebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.request.IRequestParameters;
+import org.apache.wicket.util.string.StringValue;
+import org.wicketstuff.urlfragment.AsyncUrlFragmentAwarePage;
+
+public abstract class BasePage extends AsyncUrlFragmentAwarePage {
+	private static final long serialVersionUID = -6237917782433412496L;
+	private final Map<String, String> options;
+
+	protected abstract FieldLanguage getLanguage();
+	protected abstract String getApplicationName();
+	
+	public BasePage() {
+		options = new HashMap<String, String>();
+		options.put("fragmentIdentifierSuffix", "");
+		options.put("keyValueDelimiter", "/");
+		String appName = getApplicationName();
+
+		FieldLanguage lang = getLanguage();
+		String code = lang.getCode();
+		add(new TransparentWebMarkupContainer("html")
+	    	.add(new AttributeModifier("xml:lang", code))
+	    	.add(new AttributeModifier("lang", code))
+	    	.add(new AttributeModifier("dir", Boolean.TRUE.equals(lang.getRtl()) ? "rtl" : "ltr"))); 
+		add(new Label("pageTitle", appName));
+		add(new HeaderPanel("header", appName));
+	}
+	
+	protected OmUrlFragment getUrlFragment(IRequestParameters params) {
+		for (AreaKeys key : AreaKeys.values()) {
+			StringValue type = params.getParameterValue(key.name());
+			if (!type.isEmpty()) {
+				return new OmUrlFragment(key, type.toString());
+			}
+		}
+		return null;
+	}
+	
+	@Override
+	protected Map<String, String> getOptions() {
+		return options;
+	}
+	
+	@Override
+	public void renderHead(IHeaderResponse response) {
+		response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(Application.get().getJavaScriptLibrarySettings().getJQueryReference())));
+		super.renderHead(response);
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/pages/MainPage.html b/src/web/java/org/apache/openmeetings/web/pages/MainPage.html
new file mode 100644
index 0000000..a8d1795
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/MainPage.html
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+	<wicket:head>
+		<script type="text/javascript">
+			function showBusyIndicator() {
+				$('#busy_indicator').show();
+			}
+			function hideBusyIndicator() {
+				$('#busy_indicator').hide();
+			}
+		</script>
+	</wicket:head>
+	<wicket:extend>
+		<script type="text/javascript">
+			$(function() {
+				Wicket.Event.subscribe('/ajax/call/failure', hideBusyIndicator);
+				Wicket.Event.subscribe('/ajax/call/before', showBusyIndicator);
+				Wicket.Event.subscribe('/ajax/call/success', hideBusyIndicator);
+				Wicket.Event.subscribe('/ajax/call/complete', hideBusyIndicator);
+			});
+		</script>
+		<div id="topControls">
+			<div id="topLinks"><span 
+				id="contactsAndMessages"><a wicket:id="messages"><wicket:ommessage key="1188"/></a></span><span 
+				id="profile"><a wicket:id="profile"><wicket:ommessage key="5"/></a></span><span 
+				id="logout"><a wicket:id="logout"><wicket:ommessage key="310"/></a></span><span 
+				id="reportBug"><a target="_blank" wicket:id="bug"><wicket:ommessage key="284"/></a></span><span><a 
+				wicket:id="about"><wicket:ommessage key="1549"/></a></span>
+				</div>
+			<div wicket:id="dev" id="devMenu"/>
+			<div id="busy_indicator"><wicket:ommessage key="1554"/></div>
+			<div wicket:id="menu"></div>
+		</div>
+		<div wicket:id="contents"><div wicket:id="child"></div></div>
+		<div wicket:id="chatPanel"></div>
+		<div wicket:id="aboutDialog"></div>
+	</wicket:extend>
+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/pages/MainPage.java b/src/web/java/org/apache/openmeetings/web/pages/MainPage.java
new file mode 100644
index 0000000..7b9b406
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/MainPage.java
@@ -0,0 +1,173 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.pages;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.web.app.Application.addOnlineUser;
+import static org.apache.openmeetings.web.app.Application.removeOnlineUser;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.web.util.OmUrlFragment.CHILD_ID;
+import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_EDIT;
+import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_MESSAGES;
+import static org.apache.openmeetings.web.util.OmUrlFragment.getPanel;
+
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.common.BasePanel;
+import org.apache.openmeetings.web.common.ConfirmableAjaxLink;
+import org.apache.openmeetings.web.common.MenuPanel;
+import org.apache.openmeetings.web.user.AboutDialog;
+import org.apache.openmeetings.web.user.ChatPanel;
+import org.apache.openmeetings.web.util.OmUrlFragment;
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.AjaxLink;
+import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
+import org.apache.wicket.devutils.debugbar.DebugBar;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.link.ExternalLink;
+import org.apache.wicket.markup.html.panel.EmptyPanel;
+import org.apache.wicket.protocol.ws.api.WebSocketBehavior;
+import org.apache.wicket.protocol.ws.api.message.ClosedMessage;
+import org.apache.wicket.protocol.ws.api.message.ConnectedMessage;
+import org.apache.wicket.request.IRequestParameters;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.util.time.Duration;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.wicketstuff.urlfragment.UrlFragment;
+
+@AuthorizeInstantiation("USER")
+public class MainPage extends BaseInitedPage {
+	private static final long serialVersionUID = 6421960759218157999L;
+	private static final Logger log = Red5LoggerFactory.getLogger(MainPage.class, webAppRootKey);
+	private final MenuPanel menu;
+	private final MarkupContainer contents;
+	private final AbstractAjaxTimerBehavior areaBehavior;
+	private DebugBar dev = null;
+	
+	public MainPage(PageParameters pp) {
+		super();
+		contents = new WebMarkupContainer("contents");
+		add(contents.add(new WebMarkupContainer(CHILD_ID)).setOutputMarkupId(true).setMarkupId("contents"));
+		menu = new MenuPanel("menu");
+		add(menu);
+		add(new AjaxLink<Void>("messages") {
+			private static final long serialVersionUID = 4065339709905366840L;
+
+			@Override
+			public void onClick(AjaxRequestTarget target) {
+				updateContents(PROFILE_MESSAGES, target);
+			}
+		});
+		add(new ConfirmableAjaxLink("logout", 634L) {
+			private static final long serialVersionUID = -2994610981053570537L;
+
+			@Override
+			public void onClick(AjaxRequestTarget target) {
+				getSession().invalidate();
+				setResponsePage(Application.get().getSignInPageClass());
+			}
+		});
+		add(new AjaxLink<Void>("profile") {
+			private static final long serialVersionUID = 4065339709905366840L;
+
+			@Override
+			public void onClick(AjaxRequestTarget target) {
+				updateContents(PROFILE_EDIT, target);
+			}
+		});
+		final AboutDialog about = new AboutDialog("aboutDialog");
+		add(new AjaxLink<Void>("about") {
+			private static final long serialVersionUID = 4065339709905366840L;
+
+			@Override
+			public void onClick(AjaxRequestTarget target) {
+				about.open(target);
+			}
+		});
+		add(about);
+		if (getApplication().getDebugSettings().isDevelopmentUtilitiesEnabled()) {
+		    add(dev = new DebugBar("dev"));
+		    dev.setOutputMarkupId(true);
+		} else {
+		    add(new EmptyPanel("dev").setVisible(false));
+		}		
+		add(new ExternalLink("bug", "https://issues.apache.org/jira/browse/OPENMEETINGS"));//FIXME hardcoded
+		
+		add(new ChatPanel("chatPanel"));
+		add(new WebSocketBehavior() {
+			private static final long serialVersionUID = -3311970325911992958L;
+
+			@Override
+			protected void onConnect(ConnectedMessage message) {
+				super.onConnect(message);
+				addOnlineUser(getUserId(), WebSession.get().getId());
+				log.debug("WebSocketBehavior::onConnect");
+			}
+			
+			@Override
+			protected void onClose(ClosedMessage message) {
+				super.onClose(message);
+				removeOnlineUser(getUserId(), WebSession.get().getId());
+				log.debug("WebSocketBehavior::onClose");
+			}
+		});
+		//load preselected content
+		add(areaBehavior = new AbstractAjaxTimerBehavior(Duration.ONE_SECOND) {
+			private static final long serialVersionUID = -1551197896975384329L;
+
+			@Override
+			protected void onTimer(AjaxRequestTarget target) {
+				OmUrlFragment area = WebSession.get().getArea();
+				updateContents(area == null ? OmUrlFragment.get() : area, target);
+				stop(target);
+				WebSession.get().setArea(null);
+			}
+		});
+	}
+	
+	public void updateContents(OmUrlFragment f, AjaxRequestTarget target) {
+		BasePanel panel = getPanel(f.getArea(), f.getType());
+		if (panel != null) {
+			Component prev = contents.get(CHILD_ID);
+			if (prev != null && prev instanceof BasePanel) {
+				((BasePanel)prev).cleanup(target);
+			}
+			target.add(contents.replace(panel));
+			UrlFragment uf = new UrlFragment(target);
+			uf.set(f.getArea().name(), f.getType());
+			panel.onMenuPanelLoad(target);
+		}
+		if (dev != null){
+			target.add(dev);
+		}
+	}
+	
+	@Override
+	protected void onParameterArrival(IRequestParameters params, AjaxRequestTarget target) {
+		OmUrlFragment uf = getUrlFragment(params);
+		if (uf != null) {
+			areaBehavior.stop(target);
+			updateContents(uf, target);
+		}
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/pages/NotInitedPage.html b/src/web/java/org/apache/openmeetings/web/pages/NotInitedPage.html
new file mode 100644
index 0000000..3171a21
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/NotInitedPage.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<html xmlns:wicket="http://wicket.apache.org">

+<wicket:extend>

+	<!-- FIXME localized versions of this file need to be created -->

+	<div class="message">

+		<b>OpenMeetings - Loading ...</b><br />

+		The server is not yet completely initialized. Please try again in a couple of seconds.<br/>

+		If this message persists for several minutes contact your Sys-Administration.<br/>

+		If that message stays forever you should check the logs located in 

+		<pre>openmeetings_install_dir/log</pre> folder, probably your database user/pwd/host is wrong!

+	</div>

+</wicket:extend>

+</html>

diff --git a/src/web/java/org/apache/openmeetings/web/pages/NotInitedPage.java b/src/web/java/org/apache/openmeetings/web/pages/NotInitedPage.java
new file mode 100644
index 0000000..fe82fd5
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/NotInitedPage.java
@@ -0,0 +1,35 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.pages;

+

+import org.apache.openmeetings.util.InitializationContainer;

+import org.apache.openmeetings.web.app.Application;

+import org.apache.wicket.RestartResponseException;

+

+public class NotInitedPage extends BaseNotInitedPage {

+	private static final long serialVersionUID = 5002281516467955607L;

+	

+	public NotInitedPage() {

+		if (InitializationContainer.initComplete) {

+			continueToOriginalDestination();

+			// Ups, no original destination. Go to the home page

+			throw new RestartResponseException(Application.get().getHomePage());

+		}

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/pages/RecordingPage.html b/src/web/java/org/apache/openmeetings/web/pages/RecordingPage.html
new file mode 100644
index 0000000..2c80d35
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/RecordingPage.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:extend>
+	<div class="page recording">
+		<div wicket:id="info"></div>
+		<div wicket:id="player"></div>
+	</div>
+</wicket:extend>
+</html>
+
diff --git a/src/web/java/org/apache/openmeetings/web/pages/RecordingPage.java b/src/web/java/org/apache/openmeetings/web/pages/RecordingPage.java
new file mode 100644
index 0000000..ab1d546
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/RecordingPage.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.pages;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getRecordingId;
+
+import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.user.record.VideoInfo;
+import org.apache.openmeetings.web.user.record.VideoPlayer;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.request.IRequestParameters;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+
+public class RecordingPage extends BaseInitedPage {
+	private static final long serialVersionUID = 1L;
+
+	public RecordingPage(PageParameters p) {
+		String hash = p.get("hash").toString();
+		FlvRecording r = null;
+		if (WebSession.get().signIn(hash)) {
+			Long recId = getRecordingId();
+			if (recId != null) {
+				r = getBean(FlvRecordingDao.class).get(recId);
+			}
+		}
+		add(new VideoInfo("info", r).setVisible(r != null), new VideoPlayer("player", r).setVisible(r != null));
+	}
+
+	@Override
+	protected void onParameterArrival(IRequestParameters requestParameters, AjaxRequestTarget target) {
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/pages/ResetPage.html b/src/web/java/org/apache/openmeetings/web/pages/ResetPage.html
new file mode 100644
index 0000000..4f6d993
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/ResetPage.html
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<html xmlns:wicket="http://wicket.apache.org">

+	<wicket:extend>

+		<div wicket:id="resetPassword"></div>

+	</wicket:extend>

+</html>

diff --git a/src/web/java/org/apache/openmeetings/web/pages/ResetPage.java b/src/web/java/org/apache/openmeetings/web/pages/ResetPage.java
new file mode 100644
index 0000000..d646245
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/ResetPage.java
@@ -0,0 +1,45 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.pages;

+

+import org.apache.openmeetings.db.dao.user.AdminUserDao;

+import org.apache.openmeetings.db.entity.user.User;

+import org.apache.openmeetings.web.app.Application;

+import org.apache.openmeetings.web.pages.auth.ResetPasswordDialog;

+import org.apache.wicket.request.mapper.parameter.PageParameters;

+

+public class ResetPage extends BaseNotInitedPage {

+	private static final long serialVersionUID = 1L;	

+	private final String RESET_PARAM = "hash";

+	

+	public ResetPage(PageParameters pp){

+		String resetHash = pp.get(RESET_PARAM).toString();

+		if (resetHash != null){

+			Object user = Application.getBean(AdminUserDao.class).getUserByHash(resetHash);

+			if (user instanceof User){

+				add(new ResetPasswordDialog("resetPassword", (User)user));

+			}else {

+				setResponsePage(Application.get().getSignInPageClass());		

+			}

+		} else {

+			setResponsePage(Application.get().getSignInPageClass());		

+		}

+	}

+

+}

diff --git a/src/web/java/org/apache/openmeetings/web/pages/SwfPage.html b/src/web/java/org/apache/openmeetings/web/pages/SwfPage.html
new file mode 100644
index 0000000..52d6019
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/SwfPage.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:head>
+	<meta http-equiv="cache-control" content="no-cache">
+	
+	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
+	<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
+	<title wicket:id="titleAppName"></title>
+	<style type="text/css">
+		html,body { /* http://www.quirksmode.org/css/100percheight.html */
+			height: 100%;
+			/* prevent scrollbars */
+			margin: 0;
+			padding: 0;
+			border: 0 none;
+			overflow: hidden;
+		}
+		body {
+			background-color: #ffffff;
+		}
+		img {
+			border: 0 none;
+		}
+	</style>
+</wicket:head>
+<wicket:extend>
+<!-- <body style="width: 100%; height: 100%;"> -->
+	<div wicket:id="room" style="width: 100%; height: 100%;"></div>
+<!--  </body> -->
+</wicket:extend>
+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/pages/SwfPage.java b/src/web/java/org/apache/openmeetings/web/pages/SwfPage.java
new file mode 100644
index 0000000..b5cf8f0
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/SwfPage.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.pages;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.web.user.rooms.RoomPanel;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+
+public class SwfPage extends BaseNotInitedPage {
+	private static final long serialVersionUID = 6492618860620779445L;
+
+	public SwfPage() {
+		this(new PageParameters());
+	}
+
+	public SwfPage(PageParameters pp) {
+		add(new Label("titleAppName", getBean(ConfigurationDao.class).getAppName()));
+		add(new RoomPanel("room", pp));
+	}
+	
+}
diff --git a/src/web/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.html b/src/web/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.html
new file mode 100644
index 0000000..9a82426
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.html
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<form wicket:id="form">
+		<table>
+			<tr wicket:id="type">
+				<td>
+					<label wicket:for="email"><wicket:ommessage key="313" /></label>&nbsp;<input
+						type="radio" wicket:id="email" />
+				</td>
+				<td>
+					<label wicket:for="login"><wicket:ommessage key="314" /></label>&nbsp;<input
+						type="radio" wicket:id="login" />
+				</td>
+			</tr>
+			<tr>
+				<td><span wicket:id="label"></span></td>
+				<td><input wicket:id="name" type="text" /></td>
+			</tr>
+		</table>
+		<span wicket:id="feedback"></span>
+		<input type="submit" wicket:id="submit" class="invisible-form-component"/>
+	</form>
+	<div wicket:id="confirmDialog"></div>
+</wicket:panel>
+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java b/src/web/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
new file mode 100644
index 0000000..37920f0
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
@@ -0,0 +1,248 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.pages.auth;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.web.app.Application.getBean;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.mail.MailHandler;
+import org.apache.openmeetings.util.crypt.ManageCryptStyle;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.mail.template.ResetPasswordTemplate;
+import org.apache.openmeetings.web.pages.ResetPage;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.Radio;
+import org.apache.wicket.markup.html.form.RadioGroup;
+import org.apache.wicket.markup.html.form.RequiredTextField;
+import org.apache.wicket.markup.html.panel.FeedbackPanel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.PropertyModel;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+import com.googlecode.wicket.jquery.core.JQueryBehavior;
+import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButtons;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogIcon;
+import com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog;
+
+public class ForgetPasswordDialog extends AbstractFormDialog<String> {
+	private static final Logger log = Red5LoggerFactory.getLogger(ForgetPasswordDialog.class, webAppRootKey);
+	private static final long serialVersionUID = 8494008571497363018L;
+	private String sendLbl = WebSession.getString(317);
+	private DialogButton send = new DialogButton(sendLbl);
+	private DialogButton cancel = new DialogButton(WebSession.getString(122));
+	private FeedbackPanel feedback = new FeedbackPanel("feedback");
+	private RequiredTextField<String> nameField;
+	private Form<String> form;
+	private SignInDialog s;
+	private String name;
+	private Type type = Type.email;
+    final MessageDialog confirmDialog;
+	
+	enum Type {
+		email
+		, login
+	}
+	
+	public ForgetPasswordDialog(String id) {
+		super(id, WebSession.getString(312));
+		add(form = new Form<String>("form") {
+			private static final long serialVersionUID = 6340692639510268144L;
+			private IModel<String> lblModel = Model.of(WebSession.getString(315));
+			private Label label = new Label("label", lblModel);
+			
+			{
+				add(feedback.setOutputMarkupId(true));
+				add(label.setOutputMarkupId(true));
+				add(nameField = new RequiredTextField<String>("name", new PropertyModel<String>(ForgetPasswordDialog.this, "name")));
+				nameField.setLabel(Model.of(WebSession.getString(type == Type.email ? 315 : 316)));
+				RadioGroup<Type> rg = new RadioGroup<Type>("type", new PropertyModel<Type>(ForgetPasswordDialog.this, "type"));
+				add(rg.add(new Radio<Type>("email", Model.of(Type.email)).setOutputMarkupId(true))
+						.add(new Radio<Type>("login", Model.of(Type.login)).setOutputMarkupId(true))
+						.setOutputMarkupId(true));
+				rg.add(new AjaxFormChoiceComponentUpdatingBehavior() {
+					private static final long serialVersionUID = 5814272716387415523L;
+
+					@Override
+					protected void onUpdate(AjaxRequestTarget target) {
+						lblModel.setObject(WebSession.getString(type == Type.email ? 315 : 316));
+						nameField.setLabel(Model.of(WebSession.getString(type == Type.email ? 315 : 316)));
+						target.add(label);
+					}
+				});
+				add(new AjaxButton("submit") { //FAKE button so "submit-on-enter" works as expected
+					private static final long serialVersionUID = 5257502637636428620L;
+
+					@Override
+					protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
+						ForgetPasswordDialog.this.onSubmit(target);
+					}
+					
+					@Override
+					protected void onError(AjaxRequestTarget target, Form<?> form) {
+						ForgetPasswordDialog.this.onError(target);
+					}
+				});
+			}
+			
+			@Override
+			protected void onValidate() {
+				AdminUserDao dao = getBean(AdminUserDao.class);
+				String n = nameField.getConvertedInput();
+				if (n != null) {
+					if (type == Type.email && null == dao.getUserByEmail(n)) {
+						error(WebSession.getString(318));
+					}
+					if (type == Type.login && null == dao.getUserByName(n)) {
+						error(WebSession.getString(320));
+					}
+				}
+			}
+		});
+		confirmDialog = new MessageDialog("confirmDialog", WebSession.getString(312), WebSession.getString(321), DialogButtons.OK, DialogIcon.INFO){
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			public void onConfigure(JQueryBehavior behavior) {
+				super.onConfigure(behavior);
+		        behavior.setOption("dialogClass", Options.asString("no-close"));
+				behavior.setOption("closeOnEscape", false);
+			}
+			
+			public void onClose(AjaxRequestTarget target, DialogButton button) {
+				s.open(target);
+			}
+		};
+		add(confirmDialog);
+	}
+
+	@Override
+	public boolean isDefaultCloseEventEnabled()	{
+		return true;
+	}
+	
+	public void onClose(AjaxRequestTarget target, DialogButton button) {
+		if (send.equals(button)){
+			confirmDialog.open(target);
+		} else {
+			s.open(target);
+		}
+	}
+
+	public void setSignInDialog(SignInDialog s) {
+		this.s = s;
+	}
+	
+	@Override
+	protected List<DialogButton> getButtons() {
+		return Arrays.asList(send, cancel);
+	}
+	
+	@Override
+	protected DialogButton getSubmitButton() {
+		return send;
+	}
+
+	@Override
+	public Form<?> getForm() {
+		return form;
+	}
+
+	@Override
+	protected void onError(AjaxRequestTarget target) {
+		target.add(feedback);
+	}
+
+	@Override
+	protected void onSubmit(AjaxRequestTarget target) {
+		resetUser(type == Type.email ? name : "", type == Type.login ? name : ""
+			, getBean(ConfigurationDao.class).getBaseUrl() + getRequestCycle().urlFor(ResetPage.class, new PageParameters()).toString().substring(2));
+	}
+
+	/**
+	 * reset a username by a given mail oder login by sending a mail to the
+	 * registered EMail-Address
+	 * 
+	 * @param email
+	 * @param username
+	 * @param appLink
+	 * @return
+	 */
+	private Long resetUser(String email, String username, String appLink) {
+		try {
+			AdminUserDao userDao = getBean(AdminUserDao.class);
+			log.debug("resetUser " + email);
+
+			// check if Mail given
+			if (email.length() > 0) {
+				// log.debug("getAdresses_id "+addr_e.getAdresses_id());
+				User us = userDao.getUserByEmail(email);
+				if (us != null) {
+					sendHashByUser(us, appLink, userDao);
+					return new Long(-4);
+				} else {
+					return new Long(-9);
+				}
+			} else if (username.length() > 0) {
+				User us = userDao.getUserByName(username);
+				if (us != null) {
+					sendHashByUser(us, appLink, userDao);
+					return new Long(-4);
+				} else {
+					return new Long(-3);
+				}
+			}
+		} catch (Exception e) {
+			log.error("[resetUser]", e);
+			return new Long(-1);
+		}
+		return new Long(-2);
+	}
+
+	private void sendHashByUser(User us, String appLink, AdminUserDao userDao) throws Exception {
+		String loginData = us.getLogin() + new Date();
+		log.debug("User: " + us.getLogin());
+		us.setResethash(ManageCryptStyle.getInstanceOfCrypt().createPassPhrase(loginData));
+		userDao.update(us, -1L);
+		String reset_link = appLink + "?hash=" + us.getResethash();
+
+		String email = us.getAdresses().getEmail();
+
+		String template = ResetPasswordTemplate.getEmail(reset_link);
+
+		getBean(MailHandler.class).send(email, WebSession.getString(517), template);
+	}
+
+}
diff --git a/src/web/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.html b/src/web/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.html
new file mode 100644
index 0000000..d605e4b
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.html
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<form wicket:id="form">
+		<table>
+			<tr>
+				<td class="desc"><wicket:ommessage key="117" /></td>
+				<td><input wicket:id="firstName" type="text" value="" /></td>
+			</tr>
+			<tr>
+				<td class="desc"><wicket:ommessage key="118" /></td>
+				<td><input wicket:id="lastName" type="text" value="" /></td>
+			</tr>
+			<tr>
+				<td class="desc"><wicket:ommessage key="114" /></td>
+				<td><input wicket:id="login" type="text" value="" /></td>
+			</tr>
+			<tr>
+				<td class="desc"><wicket:ommessage key="115" /></td>
+				<td><input wicket:id="password" type="password" value="" /></td>
+			</tr>
+			<tr>
+				<td class="desc"><wicket:ommessage key="116" /></td>
+				<td><input wicket:id="confirmPassword" type="password" value="" /></td>
+			</tr>
+			<tr>
+				<td class="desc"><wicket:ommessage key="119" /></td>
+				<td><input wicket:id="email" type="text" value="" /></td>
+			</tr>
+			<tr>
+				<td class="desc"><wicket:ommessage key="1143" /></td>
+				<td><select wicket:id="tz"></select></td>
+			</tr>
+			<tr>
+				<td class="desc"><wicket:ommessage key="120" /></td>
+				<td><select wicket:id="state"></select></td>
+			</tr>
+			<tr>
+				<td class="desc"><wicket:ommessage key="111" /></td>
+				<td><select wicket:id="lang"></select></td>
+			</tr>
+		</table>
+		<span wicket:id="feedback"></span>
+		<input type="submit" wicket:id="submit" class="invisible-form-component"/>
+	</form>
+	<div wicket:id="confirmRegistration"></div>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java b/src/web/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
new file mode 100644
index 0000000..c3ec46c
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
@@ -0,0 +1,286 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.pages.auth;
+
+import static org.apache.openmeetings.db.util.UserHelper.getMinLoginLength;
+import static org.apache.openmeetings.db.util.UserHelper.getMinPasswdLength;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.AVAILABLE_TIMEZONES;
+import static org.apache.wicket.validation.validator.StringValidator.minimumLength;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.TimeZone;
+
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.label.FieldLanguageDao;
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.dao.user.IUserManager;
+import org.apache.openmeetings.db.dao.user.StateDao;
+import org.apache.openmeetings.db.entity.label.FieldLanguage;
+import org.apache.openmeetings.db.entity.user.State;
+import org.apache.openmeetings.util.CalendarPatterns;
+import org.apache.openmeetings.util.crypt.ManageCryptStyle;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.pages.MainPage;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.extensions.validation.validator.RfcCompliantEmailAddressValidator;
+import org.apache.wicket.markup.html.form.ChoiceRenderer;
+import org.apache.wicket.markup.html.form.DropDownChoice;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.PasswordTextField;
+import org.apache.wicket.markup.html.form.RequiredTextField;
+import org.apache.wicket.markup.html.form.StatelessForm;
+import org.apache.wicket.markup.html.panel.FeedbackPanel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.PropertyModel;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+import com.googlecode.wicket.jquery.core.JQueryBehavior;
+import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButtons;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogIcon;
+import com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog;
+
+public class RegisterDialog extends AbstractFormDialog<String> {
+	private static final long serialVersionUID = -8333305491376538792L;
+	private static final Logger log = Red5LoggerFactory.getLogger(MainPage.class, webAppRootKey);
+	private DialogButton cancelBtn = new DialogButton(WebSession.getString(122));
+	private String registerLbl = WebSession.getString(121);
+	private DialogButton registerBtn = new DialogButton(registerLbl);
+	private FeedbackPanel feedback = new FeedbackPanel("feedback");
+	private final IModel<String> tzModel = Model.of(WebSession.get().getClientTZCode());
+	private final DropDownChoice<String> tzDropDown = new DropDownChoice<String>("tz", tzModel, AVAILABLE_TIMEZONES);
+	private RegisterForm form;
+	private SignInDialog s;
+	private String firstName;
+	private String lastName;
+	private String login;
+	private String password;
+	private String email;
+	private State state;
+	private FieldLanguage lang;
+
+	final MessageDialog confirmRegistration;
+	private boolean sendConfirmation = false;
+	private boolean sendEmailAtRegister = false;
+
+	public RegisterDialog(String id) {
+		super(id, WebSession.getString(113));
+		add(form = new RegisterForm("form"));
+		form.setOutputMarkupId(true);
+		tzDropDown.setOutputMarkupId(true);
+
+		confirmRegistration = new MessageDialog("confirmRegistration", WebSession.getString(235),
+				WebSession.getString(674), DialogButtons.OK, DialogIcon.INFO) {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			public void onConfigure(JQueryBehavior behavior) {
+				super.onConfigure(behavior);
+				behavior.setOption("dialogClass", Options.asString("no-close"));
+				behavior.setOption("closeOnEscape", false);
+			}
+
+			public void onClose(AjaxRequestTarget target, DialogButton button) {
+				s.open(target);
+			}
+		};
+		add(confirmRegistration);
+		reset();
+	}
+
+	@Override
+	public void onConfigure(JQueryBehavior behavior) {
+		super.onConfigure(behavior);
+		behavior.setOption("dialogClass", Options.asString("no-close"));
+		behavior.setOption("closeOnEscape", false);
+	}
+
+	public void setSignInDialog(SignInDialog s) {
+		this.s = s;
+	}
+
+	public void setClientTimeZone() {
+		tzModel.setObject(WebSession.get().getClientTZCode());
+	}
+	
+	@Override
+	public int getWidth() {
+		return 400;
+	}
+
+	@Override
+	protected List<DialogButton> getButtons() {
+		return Arrays.asList(registerBtn, cancelBtn);
+	}
+
+	public void reset() {
+		firstName = null;
+		lastName = null;
+		login = null;
+		password = null;
+		form.confirmPassword.setModelObject(null);
+		email = null;
+		lang = WebSession.get().getLanguageByBrowserLocale();
+		state = WebSession.get().getCountryByBrowserLocale();
+	}
+
+	public void onOpen(AjaxRequestTarget target) {
+		String baseURL = getBean(ConfigurationDao.class).getBaseUrl();
+		sendEmailAtRegister = 1 == getBean(ConfigurationDao.class).getConfValue("sendEmailAtRegister", Integer.class,
+				"0");
+		sendConfirmation = baseURL != null
+				&& !baseURL.isEmpty()
+				&& 1 == getBean(ConfigurationDao.class)
+						.getConfValue("sendEmailWithVerficationCode", Integer.class, "0");
+		long messageCode = 236;
+		if (sendConfirmation && sendEmailAtRegister) {
+			messageCode = 674;
+		} else if (sendConfirmation) {
+			messageCode = 1591;
+		}
+		confirmRegistration.setModelObject(WebSession.getString(messageCode));
+		reset();
+		target.add(form);
+	}
+
+	public void onClose(AjaxRequestTarget target, DialogButton button) {
+		if (registerBtn.equals(button)) {
+			confirmRegistration.open(target);
+		} else {
+			s.open(target);
+		}
+	}
+
+	@Override
+	protected DialogButton getSubmitButton() {
+		return registerBtn;
+	}
+
+	@Override
+	public Form<Void> getForm() {
+		return form;
+	}
+
+	@Override
+	protected void onError(AjaxRequestTarget target) {
+		target.add(feedback);
+	}
+
+	@Override
+	protected void onSubmit(AjaxRequestTarget target) {
+		String hash = ManageCryptStyle.getInstanceOfCrypt().createPassPhrase(
+				login + CalendarPatterns.getDateWithTimeByMiliSeconds(new Date()));
+
+		try {
+			getBean(IUserManager.class).registerUserInit(3, 1, 0, 1, login, password, lastName, firstName, email,
+					null /* age/birthday */, "" /* street */, "" /* additionalname */, "" /* fax */, "" /* zip */, state.getState_id(),
+					"" /* town */, lang.getLanguage_id(), true /* sendWelcomeMessage */,
+					Arrays.asList(getBean(ConfigurationDao.class).getConfValue("default_domain_id", Long.class, null)),
+					"" /* phone */, false, sendConfirmation, TimeZone.getTimeZone(tzModel.getObject()),
+					false /* forceTimeZoneCheck */, "" /* userOffers */, "" /* userSearchs */, false /* showContactData */,
+					true /* showContactDataToContacts */, hash);
+
+		} catch (Exception e) {
+			log.error("[registerUser]", e);
+		}
+
+	}
+
+	class RegisterForm extends StatelessForm<Void> {
+		private static final long serialVersionUID = 1701373326213602431L;
+		private PasswordTextField confirmPassword;
+		private PasswordTextField passwordField;
+		private RequiredTextField<String> emailField;
+		private RequiredTextField<String> loginField;
+		private RequiredTextField<String> firstNameField;
+		private RequiredTextField<String> lastNameField;
+		private DropDownChoice<FieldLanguage> langField;
+		private DropDownChoice<State> stateField;
+
+		public RegisterForm(String id) {
+			super(id);
+			add(feedback.setOutputMarkupId(true));
+			ConfigurationDao cfgDao = getBean(ConfigurationDao.class);
+			add(firstNameField = new RequiredTextField<String>("firstName", new PropertyModel<String>(
+					RegisterDialog.this, "firstName")));
+			firstNameField.setLabel(Model.of(WebSession.getString(117)));
+			add(lastNameField = new RequiredTextField<String>("lastName", new PropertyModel<String>(
+					RegisterDialog.this, "lastName")));
+			lastNameField.setLabel(Model.of(WebSession.getString(118)));
+			add(loginField = new RequiredTextField<String>("login", new PropertyModel<String>(RegisterDialog.this,
+					"login")));
+			loginField.setLabel(Model.of(WebSession.getString(114)));
+			loginField.add(minimumLength(getMinLoginLength(cfgDao)));
+			add(passwordField = new PasswordTextField("password", new PropertyModel<String>(RegisterDialog.this,
+					"password")));
+			passwordField.setLabel(Model.of(WebSession.getString(115)));
+			passwordField.setResetPassword(true).add(minimumLength(getMinPasswdLength(cfgDao)));
+			add(confirmPassword = new PasswordTextField("confirmPassword", new Model<String>()).setResetPassword(true));
+			confirmPassword.setLabel(Model.of(WebSession.getString(116)));
+			add(emailField = new RequiredTextField<String>("email", new PropertyModel<String>(RegisterDialog.this,
+					"email")));
+			emailField.setLabel(Model.of(WebSession.getString(119)));
+			emailField.add(RfcCompliantEmailAddressValidator.getInstance());
+			add(langField = new DropDownChoice<FieldLanguage>("lang", new PropertyModel<FieldLanguage>(
+					RegisterDialog.this, "lang"), getBean(FieldLanguageDao.class).getLanguages(),
+					new ChoiceRenderer<FieldLanguage>("name", "language_id")));
+			langField.setRequired(true).setLabel(Model.of(WebSession.getString(111)));
+			add(tzDropDown.setRequired(true).setLabel(Model.of(WebSession.getString(1143))));
+			add(stateField = new DropDownChoice<State>("state", new PropertyModel<State>(RegisterDialog.this, "state"),
+					getBean(StateDao.class).getStates(), new ChoiceRenderer<State>("name", "state_id")));
+			stateField.setRequired(true).setLabel(Model.of(WebSession.getString(120)));
+			add(new AjaxButton("submit") { // FAKE button so "submit-on-enter" works as expected
+				private static final long serialVersionUID = -3612671587183668912L;
+
+				@Override
+				protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
+					RegisterDialog.this.onSubmit(target);
+				}
+
+				@Override
+				protected void onError(AjaxRequestTarget target, Form<?> form) {
+					RegisterDialog.this.onError(target);
+				}
+			});
+		}
+
+		@Override
+		protected void onValidate() {
+			if (passwordField.getConvertedInput() == null
+					|| !passwordField.getConvertedInput().equals(confirmPassword.getConvertedInput())) {
+				error(WebSession.getString(232));
+			}
+			if (!getBean(AdminUserDao.class).checkUserEMail(emailField.getConvertedInput(), null)) {
+				error(WebSession.getString(1000));
+			}
+			if (!getBean(AdminUserDao.class).checkUserLogin(loginField.getConvertedInput(), null)) {
+				error(WebSession.getString(105));
+			}
+		}
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.html b/src/web/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.html
new file mode 100644
index 0000000..90b7868
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.html
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<html xmlns:wicket="http://wicket.apache.org">

+<wicket:panel>

+	<form wicket:id="form">

+		<table>

+			<tr>

+				<td><label wicket:for="login"><wicket:ommessage key="314" /></label></td>

+				<td><input type="text" readonly wicket:id="login" /></td>

+			</tr>

+			<tr>

+				<td><label><wicket:ommessage key="328" /></label></td>

+				<td><input type="password" wicket:id="password" /></td>

+			</tr>

+			<tr>

+				<td><label><wicket:ommessage key="329" /></label></td>

+				<td><input type="password" wicket:id="confirmPassword" /></td>

+			</tr>

+		</table>

+		<span wicket:id="feedback"></span>

+		<input type="submit" wicket:id="submit" class="invisible-form-component"/>

+	</form>

+	<div wicket:id="confirmReset"></div>

+</wicket:panel>

+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java b/src/web/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java
new file mode 100644
index 0000000..cc22f3a
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java
@@ -0,0 +1,187 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.pages.auth;

+

+import static org.apache.openmeetings.db.util.UserHelper.getMinPasswdLength;

+import static org.apache.openmeetings.web.app.Application.getBean;

+import static org.apache.wicket.validation.validator.StringValidator.minimumLength;

+

+import java.util.Arrays;

+import java.util.List;

+

+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;

+import org.apache.openmeetings.db.dao.user.AdminUserDao;

+import org.apache.openmeetings.db.entity.user.User;

+import org.apache.openmeetings.web.app.Application;

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.ajax.markup.html.form.AjaxButton;

+import org.apache.wicket.markup.head.CssContentHeaderItem;

+import org.apache.wicket.markup.head.IHeaderResponse;

+import org.apache.wicket.markup.html.form.Form;

+import org.apache.wicket.markup.html.form.PasswordTextField;

+import org.apache.wicket.markup.html.form.TextField;

+import org.apache.wicket.markup.html.panel.FeedbackPanel;

+import org.apache.wicket.model.Model;

+

+import com.googlecode.wicket.jquery.core.JQueryBehavior;

+import com.googlecode.wicket.jquery.core.Options;

+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;

+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;

+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButtons;

+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogIcon;

+import com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog;

+

+public class ResetPasswordDialog extends AbstractFormDialog<String> {

+	private static final long serialVersionUID = -523469331995677748L;

+	private String resetLbl = WebSession.getString(327);

+	private DialogButton resetBtn = new DialogButton(resetLbl);

+	private Form<String> form;

+	private FeedbackPanel feedback = new FeedbackPanel("feedback");

+	private PasswordTextField password;

+	private final User user;

+    final MessageDialog confirmReset;

+

+	public ResetPasswordDialog(String id, final User user) {

+		super(id, WebSession.getString(325));

+		this.user = user;

+		add(form = new Form<String>("form"){

+			private static final long serialVersionUID = -4553809631029292229L;

+			private TextField<String> login;

+			private PasswordTextField confirmPassword;

+			{

+				add(feedback.setOutputMarkupId(true));

+				add(login = new TextField<String>("login", Model.of(user.getLogin())));

+				login.setOutputMarkupId(true);

+				add(password = new PasswordTextField("password", new Model<String>()));

+				password.setOutputMarkupId(true);

+				password.setLabel(Model.of(WebSession.getString(328)));

+				ConfigurationDao cfgDao = getBean(ConfigurationDao.class);

+				password.setRequired(false).add(minimumLength(getMinPasswdLength(cfgDao)));

+				add(confirmPassword = new PasswordTextField("confirmPassword", new Model<String>()));

+				confirmPassword.setOutputMarkupId(true);

+				confirmPassword.setLabel(Model.of(WebSession.getString(329)));

+				confirmPassword.setRequired(true).add(minimumLength(getMinPasswdLength(cfgDao)));

+

+				add(new AjaxButton("submit") { //FAKE button so "submit-on-enter" works as expected

+					private static final long serialVersionUID = 5257502637636428620L;

+

+					@Override

+					protected void onSubmit(AjaxRequestTarget target, Form<?> form) {

+						ResetPasswordDialog.this.onSubmit(target);

+					}

+					

+					@Override

+					protected void onError(AjaxRequestTarget target, Form<?> form) {

+						ResetPasswordDialog.this.onError(target);

+					}

+				});

+			}

+

+			@Override

+			protected void onValidate() {

+				String pass = password.getConvertedInput();

+				if (pass != null && !pass.isEmpty() && !pass.equals(confirmPassword.getConvertedInput())) {

+					error(WebSession.getString(232));

+				}

+				super.onValidate();

+			}

+			

+		});

+		confirmReset = new MessageDialog("confirmReset", WebSession.getString(325), WebSession.getString(332), DialogButtons.OK, DialogIcon.INFO){

+			private static final long serialVersionUID = 1L;

+

+			@Override

+			public void onConfigure(JQueryBehavior behavior) {

+				super.onConfigure(behavior);

+		        behavior.setOption("dialogClass", Options.asString("no-close"));

+				behavior.setOption("closeOnEscape", false);

+			}

+			

+			public void onClose(AjaxRequestTarget target, DialogButton button) {

+				setResponsePage(Application.get().getSignInPageClass());

+			}

+		};

+		add(confirmReset);

+	}

+	

+	@Override

+	public void renderHead(IHeaderResponse response) {

+		super.renderHead(response);

+		response.render(new CssContentHeaderItem(".no-close .ui-dialog-titlebar-close { display: none; }", "dialog-noclose", ""));

+	}

+	

+	public void onConfigure(JQueryBehavior behavior) {

+		super.onConfigure(behavior);

+        behavior.setOption("dialogClass", Options.asString("no-close"));

+		behavior.setOption("closeOnEscape", false);

+	}

+

+	@Override

+	protected List<DialogButton> getButtons() {

+		return Arrays.asList(resetBtn);

+	}

+	

+	@Override

+	protected DialogButton getSubmitButton() {

+		return resetBtn;

+	}

+

+	@Override

+	public Form<?> getForm() {

+		return form;

+	}

+

+	@Override

+	protected void onError(AjaxRequestTarget target) {

+		target.add(feedback);

+	}

+

+	@Override

+	protected void onSubmit(AjaxRequestTarget target) {

+		try {

+			getBean(AdminUserDao.class).update(user, password.getConvertedInput(), user.getUser_id());

+		} catch (Exception e) {

+			error(e.getMessage());

+		}

+	}

+	

+	@Override

+	public void onClose(AjaxRequestTarget target, DialogButton button) {

+		if (resetBtn.equals(button)){

+			confirmReset.open(target);

+		} else {

+			setResponsePage(Application.get().getSignInPageClass());

+		}

+	}

+	

+	@Override

+	protected void onInitialize() {

+		super.onInitialize();

+		add(new JQueryBehavior(JQueryWidget.getSelector(this), "dialog") {

+			private static final long serialVersionUID = -8870674570404919597L;

+

+			@Override

+            protected String $()

+            {

+                return this.$(Options.asString("open"));

+            }

+        });

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/pages/auth/SignInDialog.html b/src/web/java/org/apache/openmeetings/web/pages/auth/SignInDialog.html
new file mode 100644
index 0000000..6767355
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/auth/SignInDialog.html
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:head>
+	<script type="text/javascript" src="js/openmeetings_functions.js"></script>
+</wicket:head>
+<wicket:panel>
+	<form wicket:id="signin">
+		<table>
+			<tr>
+				<td>
+					<table>
+						<tr>
+							<td class="desc"><wicket:ommessage key="109" /></td>
+							<td><input wicket:id="login" type="text" value="" /></td>
+						</tr>
+						<tr>
+							<td class="desc"><wicket:ommessage key="110" /></td>
+							<td><input wicket:id="pass" type="password" value="" /></td>
+						</tr>
+						<tr wicket:id="ldap">
+							<td class="desc"><wicket:ommessage key="1372" /></td>
+							<td><select wicket:id="domain"></select></td>
+						</tr>
+						<tr>
+							<td></td>
+							<td style="white-space: nowrap;"><input wicket:id="rememberMe" 
+								type="checkbox" /><label wicket:for="rememberMe"><wicket:ommessage key="288" /></label></td>
+						</tr>
+						<tr>
+							<td><a wicket:id="forget"><wicket:ommessage key="311"/></a></td>
+							<td><a wicket:id="netTest" target="_blank"><wicket:ommessage key="1527"/></a></td>
+						</tr>
+					</table>
+				</td>
+				<td wicket:id="oauthContainer" style="border-left: 2px dotted;">
+					<div wicket:id="oauthList">
+						<button wicket:id="oauthBtn"><img wicket:id="icon" width="16" height="16"/><span wicket:id="label"></span></button>
+					</div>
+				</td>
+			</tr>
+		</table>
+		<span wicket:id="feedback" class="error"></span>
+		<input type="submit" wicket:id="submit" class="invisible-form-component"/>
+	</form>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java b/src/web/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
new file mode 100644
index 0000000..080faa7
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
@@ -0,0 +1,309 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.pages.auth;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_LDAP_ID;
+import static org.apache.openmeetings.web.app.Application.getAuthenticationStrategy;
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.pages.auth.SignInPage.allowOAuthLogin;
+import static org.apache.openmeetings.web.pages.auth.SignInPage.allowRegister;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.basic.ErrorDao;
+import org.apache.openmeetings.db.dao.server.LdapConfigDao;
+import org.apache.openmeetings.db.dao.server.OAuth2Dao;
+import org.apache.openmeetings.db.entity.basic.ErrorValue;
+import org.apache.openmeetings.db.entity.server.LdapConfig;
+import org.apache.openmeetings.db.entity.server.OAuthServer;
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.app.OmAuthenticationStrategy;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.pages.SwfPage;
+import org.apache.wicket.AttributeModifier;
+import org.apache.wicket.RestartResponseException;
+import org.apache.wicket.ajax.AjaxClientInfoBehavior;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.AjaxLink;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.CheckBox;
+import org.apache.wicket.markup.html.form.ChoiceRenderer;
+import org.apache.wicket.markup.html.form.DropDownChoice;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.PasswordTextField;
+import org.apache.wicket.markup.html.form.RequiredTextField;
+import org.apache.wicket.markup.html.form.StatelessForm;
+import org.apache.wicket.markup.html.image.Image;
+import org.apache.wicket.markup.html.link.Link;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.markup.html.panel.FeedbackPanel;
+import org.apache.wicket.model.AbstractReadOnlyModel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.PropertyModel;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+
+import com.googlecode.wicket.jquery.core.JQueryBehavior;
+import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.jquery.ui.effect.JQueryEffectBehavior;
+import com.googlecode.wicket.jquery.ui.form.button.Button;
+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+
+public class SignInDialog extends AbstractFormDialog<String> {
+	private static final long serialVersionUID = 7746996016261051947L;
+	private Form<String> form;
+	private DialogButton loginBtn = new DialogButton(WebSession.getString(112));
+	private String registerLbl = WebSession.getString(123);
+	private DialogButton registerBtn = new DialogButton(registerLbl);
+    private String password;
+    private String login;
+    private boolean rememberMe = false;
+    private RegisterDialog r;
+    private ForgetPasswordDialog f;
+    private LdapConfig domain;
+    private String ldapConfigFileName;
+    private FeedbackPanel feedback = new FeedbackPanel("feedback");
+    
+	public SignInDialog(String id) {
+		super(id, WebSession.getString(108));
+		add(form = new SignInForm("signin"));
+		add(new AjaxClientInfoBehavior());
+	}
+
+	public void setRegisterDialog(RegisterDialog r) {
+		this.r = r;
+	}
+
+	public void setForgetPasswordDialog(ForgetPasswordDialog f) {
+		this.f = f;
+	}
+	
+	@Override
+	protected void onInitialize() {
+		super.onInitialize();
+		add(new JQueryBehavior(JQueryWidget.getSelector(this), "dialog") {
+			private static final long serialVersionUID = -249782023133645704L;
+
+			@Override
+            protected String $()
+            {
+                return this.$(Options.asString("open"));
+            }
+        });
+	}
+	
+	@Override
+	public void onConfigure(JQueryBehavior behavior) {
+		super.onConfigure(behavior);
+		//behavior.setOption("autoOpen", true); //TODO need to be updated as soon as API will be added
+		behavior.setOption("closeOnEscape", false);
+        behavior.setOption("dialogClass", Options.asString("no-close"));
+        behavior.setOption("resizable", false);
+	}
+	
+	@Override
+	public boolean isDefaultCloseEventEnabled() {
+		return false;
+	}
+	
+	@Override
+	public int getWidth() {
+		return allowOAuthLogin()? 550: 450;
+	}
+	
+	@Override
+	public void onClose(AjaxRequestTarget target, DialogButton button) {
+		if (registerBtn.equals(button)) {
+			r.setClientTimeZone();
+			r.open(target);
+		}
+	}
+	
+	@Override
+	protected List<DialogButton> getButtons() {
+		List<DialogButton> list = new ArrayList<DialogButton>();
+		if (allowRegister()) {
+			list.add(registerBtn);
+		}
+		list.add(loginBtn);
+		return list;
+	}
+	
+	@Override
+	protected DialogButton getSubmitButton() {
+		return loginBtn;
+	}
+
+	@Override
+	public Form<String> getForm() {
+		return form;
+	}
+	// TODO Auto-generated method stub
+	
+	private void shake(AjaxRequestTarget target) {
+		JQueryEffectBehavior shake = new JQueryEffectBehavior("#" + getMarkupId(), "shake");
+		target.appendJavaScript(shake.toString());
+	}
+	
+	@Override
+	public void onClick(AjaxRequestTarget target, DialogButton button) {
+		if (registerBtn.equals(button) || WebSession.get().isSignedIn()) {
+			super.onClick(target, button);
+		}
+	}
+	
+	@Override
+	protected void onError(AjaxRequestTarget target) {
+		shake(target);
+	}
+
+	@Override
+	protected void onSubmit(AjaxRequestTarget target) {
+		ldapConfigFileName = domain.getConfigFileName() == null ? "" : domain.getConfigFileName();
+		if (domain.getAddDomainToUserName()) {
+			login = login + "@" + domain.getDomain();
+		}
+		OmAuthenticationStrategy strategy = getAuthenticationStrategy();
+		WebSession ws = WebSession.get();
+		if (ws.signIn(login, password, ldapConfigFileName)) {
+ 			setResponsePage(Application.get().getHomePage());
+			if (rememberMe) {
+				strategy.save(login, password, ldapConfigFileName);
+			} else {
+				strategy.remove();
+			}
+		} else {
+			strategy.remove();
+			if (ws.getLoginError() != null) {
+				ErrorValue eValue = getBean(ErrorDao.class).get(-1 * ws.getLoginError());
+				if (eValue != null) {
+					error(WebSession.getString(eValue.getFieldvalues_id()));
+					target.add(feedback);
+				}
+			}
+			shake(target);
+		}
+	}
+	
+	class SignInForm extends StatelessForm<String> {
+		private static final long serialVersionUID = 4079939497154278822L;
+		private PasswordTextField passField;
+		private RequiredTextField<String> loginField;
+
+		public SignInForm(String id) {
+			super(id);
+			
+			if (WebSession.get().isSignedIn()) {
+				alreadyLoggedIn();
+			}
+			add(feedback.setOutputMarkupId(true));
+			add(loginField = new RequiredTextField<String>("login", new PropertyModel<String>(SignInDialog.this, "login")));
+			loginField.setLabel(Model.of(WebSession.getString(114)));
+			add(passField = new PasswordTextField("pass", new PropertyModel<String>(SignInDialog.this, "password")).setResetPassword(true));
+			passField.setLabel(Model.of(WebSession.getString(115)));
+			List<LdapConfig> ldaps = getBean(LdapConfigDao.class).getLdapConfigs();
+			int selectedLdap = getBean(ConfigurationDao.class).getConfValue(CONFIG_DEFAULT_LDAP_ID, Integer.class, "0");
+			domain = ldaps.get(selectedLdap < ldaps.size() && selectedLdap > 0 ? selectedLdap : 0);
+			add(new WebMarkupContainer("ldap")
+				.add(new DropDownChoice<LdapConfig>("domain", new PropertyModel<LdapConfig>(SignInDialog.this, "domain")
+						, ldaps, new ChoiceRenderer<LdapConfig>("name", "ldapConfigId"))).setVisible(ldaps.size() > 1));
+			add(new CheckBox("rememberMe", new PropertyModel<Boolean>(SignInDialog.this, "rememberMe")).setOutputMarkupId(true));
+			add(new AjaxButton("submit") { //FAKE button so "submit-on-enter" works as expected
+				private static final long serialVersionUID = -3612671587183668912L;
+
+				@Override
+				protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
+					SignInDialog.this.onSubmit(target);
+				}
+				
+				@Override
+				protected void onError(AjaxRequestTarget target, Form<?> form) {
+					SignInDialog.this.onError(target);
+				}
+			});
+			add(new AjaxLink<Void>("forget") {
+				private static final long serialVersionUID = -7497568829491287604L;
+
+				@Override
+				public void onClick(AjaxRequestTarget target) {
+					SignInDialog.this.close(target, null);
+					f.open(target);
+				}
+			});
+			add(new Link<Void>("netTest") {
+				private static final long serialVersionUID = -9055312659797800331L;
+
+				@Override
+				public void onClick() {
+					PageParameters pp = new PageParameters();
+					pp.add("swf", "networktesting.swf10.swf");
+					setResponsePage(SwfPage.class, pp);
+				}
+			});
+			add(new WebMarkupContainer("oauthContainer").add(
+				new ListView<OAuthServer>("oauthList", getBean(OAuth2Dao.class).getEnabledOAuthServers()) {
+					private static final long serialVersionUID = 1L;
+
+					@Override
+					protected void populateItem(final ListItem<OAuthServer> item) {
+						Button btn = new Button("oauthBtn");
+						Image icon = new Image("icon", new Model<String>());
+						icon.setVisible(item.getModelObject().getIconUrl() != null && 
+								!"".equals(item.getModelObject().getIconUrl()));
+						icon.add(new AttributeModifier("src", new AbstractReadOnlyModel<String>() {
+
+							private static final long serialVersionUID = 7257002837120721882L;
+
+							@Override
+							public String getObject() {
+								return item.getModelObject().getIconUrl();
+							}
+							
+						}));
+						btn.add(icon);
+						btn.add(new Label("label", item.getModelObject().getName()))
+						.add(new AjaxEventBehavior("click") {
+							private static final long serialVersionUID = 1L;
+							
+							@Override
+							protected void onEvent(AjaxRequestTarget target) {
+								PageParameters parameters = new PageParameters();
+								parameters.add("oauthid", item.getModelObject().getId());
+								setResponsePage(SignInPage.class, parameters);
+							}
+						});
+						item.add(btn);
+					}
+				}).setVisible(allowOAuthLogin()));
+		}
+
+		private void alreadyLoggedIn() {
+			// logon successful. Continue to the original destination
+			continueToOriginalDestination();
+			// Ups, no original destination. Go to the home page
+			throw new RestartResponseException(Application.get().getHomePage());
+		}
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/pages/auth/SignInPage.html b/src/web/java/org/apache/openmeetings/web/pages/auth/SignInPage.html
new file mode 100644
index 0000000..19df94b
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/auth/SignInPage.html
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+	<wicket:head>
+		<style>
+			input:not([type='checkbox']):not([type='radio']), select {
+				width: 170px;
+			}
+			td.desc {
+				width: 200px;
+			}
+		</style>
+	</wicket:head>
+	<wicket:extend>
+		<script type="text/javascript">
+			$(function(){
+				$('#area').val(location.hash);
+			});
+		</script>
+		<div wicket:id="signin"></div>
+		<div wicket:id="register"></div>
+		<div wicket:id="forget"></div>
+	</wicket:extend>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/pages/auth/SignInPage.java b/src/web/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
new file mode 100644
index 0000000..567a00e
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
@@ -0,0 +1,380 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.pages.auth;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FRONTEND_REGISTER_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_IGNORE_BAD_SSL;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.web.app.Application.getBean;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLEncoder;
+import java.security.NoSuchAlgorithmException;
+import java.security.cert.CertificateException;
+import java.security.cert.X509Certificate;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Random;
+
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSession;
+import javax.net.ssl.SSLSocketFactory;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.server.OAuth2Dao;
+import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.dao.user.IUserManager;
+import org.apache.openmeetings.db.entity.server.OAuthServer;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.pages.BaseInitedPage;
+import org.apache.wicket.Component;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.json.JSONException;
+import org.apache.wicket.ajax.json.JSONObject;
+import org.apache.wicket.markup.head.CssContentHeaderItem;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
+import org.apache.wicket.request.IRequestParameters;
+import org.apache.wicket.request.Url;
+import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.request.flow.RedirectToUrlException;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class SignInPage extends BaseInitedPage {
+	private static final long serialVersionUID = -3843571657066167592L;
+	private static final Logger log = Red5LoggerFactory.getLogger(SignInPage.class, webAppRootKey);
+	private SignInDialog d;
+	
+	static boolean allowRegister() {
+		return "1".equals(getBean(ConfigurationDao.class).getConfValue(CONFIG_FRONTEND_REGISTER_KEY, String.class, "0"));
+	}
+	
+	static boolean allowOAuthLogin() {
+		return getBean(OAuth2Dao.class).getEnabledOAuthServers().size() > 0;
+	}
+	
+	public SignInPage(PageParameters p) {
+		super();
+		if (p != null) {
+			if (p.get("oauthid").toString() != null) { // oauth2 login
+				try {
+					long serverId = Long.valueOf(p.get("oauthid").toString());
+					OAuthServer server = getBean(OAuth2Dao.class).get(serverId);
+					log.debug("OAuthServer=" + server);
+					if (server == null) {
+						log.warn("OAuth server id=" + serverId + " not found");
+						return;
+					}
+					
+					if (p.get("code").toString() != null) { // got code
+						String code = p.get("code").toString();
+						log.debug("OAuth response code=" + code);
+					 	AuthInfo authInfo = getToken(code, server);
+					 	if (authInfo == null) return;
+					 	log.debug("OAuthInfo=" + authInfo);
+					 	Map<String, String> authParams = getAuthParams(authInfo.accessToken, code, server);
+					 	if (authParams != null) {
+					 		loginViaOAuth2(authParams, serverId);
+					 	}
+					} else { // redirect to get code
+						String redirectUrl = prepareUrlParams(server.getRequestKeyUrl(), server.getClientId(), 
+								null, null, getRedirectUri(server, this), null);
+						log.debug("redirectUrl=" + redirectUrl);
+						throw new RedirectToUrlException(redirectUrl);
+					}
+				} catch (IOException e) {
+					log.error("OAuth2 login error", e);
+				} catch (NoSuchAlgorithmException e) {
+					log.error("OAuth2 login error", e);
+				}
+			}
+		}
+		
+		RegisterDialog r = new RegisterDialog("register");
+		ForgetPasswordDialog f = new ForgetPasswordDialog("forget");
+		d = new SignInDialog("signin");
+		d.setRegisterDialog(r);
+		d.setForgetPasswordDialog(f);
+		r.setSignInDialog(d);
+		f.setSignInDialog(d);
+		add(d, r.setVisible(allowRegister()), f);
+	}
+	
+	public SignInPage() {
+		this(null);
+	}
+	
+	@Override
+	public void renderHead(IHeaderResponse response) {
+		super.renderHead(response);
+		//TODO need to be removed if autoOen will be enabled
+		response.render(OnDomReadyHeaderItem.forScript("$('#" + d.getMarkupId() + "').dialog('open');"));
+		response.render(new CssContentHeaderItem(".no-close .ui-dialog-titlebar-close { display: none; }", "dialog-noclose", ""));
+	}
+	
+	@Override
+	protected void onParameterArrival(IRequestParameters params, AjaxRequestTarget arg1) {
+		WebSession.get().setArea(getUrlFragment(params));
+	}
+	
+	// ============= OAuth2 methods =============
+		
+	public String prepareUrlParams(String urlTemplate, String clientId, String clientSecret, 
+			String clientToken, String redirectUri, String code) throws UnsupportedEncodingException {
+		String result = urlTemplate;
+		if (clientId != null) {
+			result = result.replace("{$client_id}", clientId);
+		}
+		if (clientSecret != null) {
+			result = result.replace("{$client_secret}", clientSecret);
+		}
+		if (clientToken != null) {
+			result = result.replace("{$access_token}", clientToken);
+		}
+		if (redirectUri != null) {
+			result = result.replace("{$redirect_uri}", URLEncoder.encode(redirectUri, "UTF-8"));
+		}
+		if (code != null) {
+			result = result.replace("{$code}", code);
+		}
+		return result;
+	}
+		
+	public static String getRedirectUri(OAuthServer server, Component component) {
+		String baseUrl = RequestCycle.get().getUrlRenderer().renderFullUrl(
+			    Url.parse(component.urlFor(SignInPage.class,null).toString()));
+		
+		return baseUrl + "?oauthid=" + server.getId();
+	}
+		
+	private void prepareConnection(URLConnection connection) {
+		if (!(connection instanceof HttpsURLConnection)) return;
+		ConfigurationDao configurationDao = getBean(ConfigurationDao.class);
+		Boolean ignoreBadSSL = configurationDao.getConfValue(CONFIG_IGNORE_BAD_SSL, String.class, "no").equals("yes");
+		if (!ignoreBadSSL) return;
+		TrustManager[] trustAllCerts = new TrustManager[] {new X509TrustManager() {
+			public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {}
+			public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {}
+
+			public X509Certificate[] getAcceptedIssuers() {
+				return null;
+			}
+				
+	    } };
+		try {
+			SSLContext sslContext = SSLContext.getInstance("SSL");
+			sslContext.init( null, trustAllCerts, new java.security.SecureRandom() );
+		    SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
+			((HttpsURLConnection) connection).setSSLSocketFactory(sslSocketFactory);
+			((HttpsURLConnection) connection).setHostnameVerifier(new HostnameVerifier() {
+					
+				public boolean verify(String arg0, SSLSession arg1) {
+					return true;
+				}
+					
+			});
+		} catch (Exception e) {
+			log.error("[prepareConnection]", e);
+		}
+	}
+		
+	private AuthInfo getToken(String code, OAuthServer server) throws IOException {
+		String requestTokenBaseUrl = server.getRequestTokenUrl();
+		// build url params to request auth token
+		String requestTokenParams = server.getRequestTokenAttributes();
+		requestTokenParams = prepareUrlParams(requestTokenParams, server.getClientId(), server.getClientSecret(), 
+				null, getRedirectUri(server, this), code);
+		// request auth token
+		HttpURLConnection urlConnection = (HttpURLConnection) new URL(requestTokenBaseUrl).openConnection();
+		prepareConnection(urlConnection);
+		urlConnection.setRequestMethod("POST");
+		urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
+		urlConnection.setRequestProperty("charset", "utf-8");
+		urlConnection.setRequestProperty("Content-Length", String.valueOf(requestTokenParams.length()));
+		urlConnection.setDoInput(true);
+		urlConnection.setDoOutput(true);
+		urlConnection.setUseCaches(false);
+		DataOutputStream paramsOutputStream = new DataOutputStream(urlConnection.getOutputStream());
+		paramsOutputStream.writeBytes(requestTokenParams);
+		paramsOutputStream.flush();
+		String sourceResponse = IOUtils.toString(urlConnection.getInputStream(), "utf-8");
+		// parse json result
+		AuthInfo result = new AuthInfo();
+		try {
+			JSONObject jsonResult = new JSONObject(sourceResponse.toString());
+			if (jsonResult.has("access_token")) {
+				result.accessToken = jsonResult.getString("access_token");
+			}
+			if (jsonResult.has("refresh_token")) {
+				result.refreshToken = jsonResult.getString("refresh_token");
+			}
+			if (jsonResult.has("token_type")) {
+				result.tokenType = jsonResult.getString("token_type");
+			}
+			if (jsonResult.has("expires_in")) {
+				result.expiresIn = jsonResult.getLong("expires_in");
+			}
+		} catch (JSONException e) {
+			// try to parse as canonical
+			Map<String, String> parsedMap = parseCanonicalResponse(sourceResponse.toString());
+			result.accessToken = parsedMap.get("access_token");
+			result.refreshToken = parsedMap.get("refresh_token");
+			result.tokenType = parsedMap.get("token_type");
+			try {
+				result.expiresIn = Long.valueOf(parsedMap.get("expires_in"));
+			} catch (NumberFormatException nfe) {}
+		}
+		// access token must be specified
+		if (result.accessToken == null) {
+			log.error("Response doesn't contain access_token field:\n" + sourceResponse.toString());
+			return null;
+		}
+		return result;
+	}
+	
+	private Map<String, String> parseCanonicalResponse(String response) {
+		String[] parts = response.split("&");
+		Map<String, String> result = new HashMap<String, String>();
+		for (String part: parts) {
+			String pair[] = part.split("=");
+			if (pair.length > 1) {
+				result.put(pair[0], pair[1]);
+			}
+		}
+		return result;
+	}
+	
+	private Map<String, String> getAuthParams(String token, String code, OAuthServer server) throws IOException {
+		// get attributes names
+		String loginAttributeName = server.getLoginParamName();
+		String emailAttributeName = server.getEmailParamName();
+		String firstname = server.getFirstnameParamName();
+		String lastname = server.getLastnameParamName();
+		// prepare url
+		String requestInfoUrl = server.getRequestInfoUrl();
+		requestInfoUrl = prepareUrlParams(requestInfoUrl, server.getClientId(), server.getClientSecret(), 
+				token, getRedirectUri(server, this), code);
+		// send request
+		URLConnection connection = new URL(requestInfoUrl).openConnection();
+		prepareConnection(connection);
+		String sourceResponse = IOUtils.toString(connection.getInputStream(), "utf-8");
+        // parse json result
+        Map<String, String> result = new HashMap<String, String>();
+        try {
+			JSONObject parsedJson = new JSONObject(sourceResponse);
+			result.put("login", parsedJson.getString(loginAttributeName));
+			result.put("email", parsedJson.getString(emailAttributeName));
+			if (parsedJson.has(firstname)) {
+				result.put("firstname", parsedJson.getString(firstname));
+			}
+			if (parsedJson.has(lastname)) {
+				result.put("lastname", parsedJson.getString(lastname));
+			}
+		} catch (JSONException e) {
+			// try to parse response as canonical
+			Map<String, String> parsedMap = parseCanonicalResponse(sourceResponse);
+			result.put("login", parsedMap.get(loginAttributeName));
+			result.put("email", parsedMap.get(emailAttributeName));
+			if (parsedMap.containsKey(firstname)) {
+				result.put("firstname", parsedMap.get(firstname));
+			}
+			if (parsedMap.containsKey(lastname)) {
+				result.put("lastname", parsedMap.get(lastname));
+			}
+		}
+		return result;
+	}
+	
+	private void loginViaOAuth2(Map<String, String> params, long serverId) throws IOException, NoSuchAlgorithmException {
+		AdminUserDao userDao = getBean(AdminUserDao.class);
+		IUserManager userManager = getBean(IUserManager.class); 
+		ConfigurationDao configurationDao = getBean(ConfigurationDao.class);
+		String login = params.get("login");
+		String email = params.get("email");
+		String lastname = params.get("lastname");
+		String firstname = params.get("firstname");
+		if (firstname == null) firstname = "";
+		if (lastname == null) lastname = "";
+		User user = userDao.getUserByName(login);
+		// generate random password
+		byte[] rawPass = new byte[16];
+		Random rnd = new Random();
+		for (int i = 0; i < 16; i++) {
+			rawPass[i] = (byte) (97 + rnd.nextInt(25));
+		}
+		String pass = new String(rawPass);
+		// check if the user already exists and register new one if it's needed
+		if (user == null) {
+			Integer defaultlangId = Integer.valueOf(configurationDao.getConfValue("default_lang_id", String.class, "1"));
+			String defaultTimezone = configurationDao.getConfValue("default.timezone", String.class, "");		
+			Long res = userManager.registerUserNoEmail(login, pass, lastname, firstname, email, null, null, 
+					null, null, null, 0, null, defaultlangId, null, false, true, defaultTimezone);
+			if (res == null || res < 0) {
+				throw new RuntimeException("Couldn't register new oauth user");
+			}
+			user = userDao.get(res);
+			user.setExternalUserType("oauth2." + serverId);
+			userDao.update(user, null);
+		} else { // just change password
+			// check user type before changing password, it must be match oauthServerId
+			if (!("oauth2." + serverId).equals(user.getExternalUserType())) {
+				log.error("User already registered!");
+				return;
+			}
+			user = userDao.update(user, pass, -1);
+		}
+		
+		if (WebSession.get().signIn(login, pass, null)) {
+ 			setResponsePage(Application.get().getHomePage());
+		} else {
+			log.error("Failed to login via OAuth2!");
+		}
+	}
+		
+	private static class AuthInfo {
+			
+		String accessToken;
+		String refreshToken;
+		String tokenType;
+		long expiresIn;
+			
+		@Override
+		public String toString() {
+			return "AuthInfo [accessToken=" + accessToken + ", refreshToken="
+					+ refreshToken + ", tokenType=" + tokenType
+					+ ", expiresIn=" + expiresIn + "]";
+		}
+			
+	}
+	
+}
diff --git a/src/web/java/org/apache/openmeetings/web/pages/install/CongratulationsPanel.html b/src/web/java/org/apache/openmeetings/web/pages/install/CongratulationsPanel.html
new file mode 100644
index 0000000..ef59478
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/install/CongratulationsPanel.html
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<h2>
+		<a wicket:id="url"><wicket:message key="install.wizard.congrats.enter"/></a>
+	</h2>
+	<br />
+	<br />
+	<wicket:message key="install.wizard.congrats.port"/>
+	<br />
+	<a href="public/config.xml"><wicket:message key="install.wizard.congrats.config"/></a>
+	<br />
+	<br />
+	<br />
+
+	<b> <span style="font-size: 1.4em"><wicket:message key="install.wizard.congrats.mail"/></span></b>
+	<br />
+	<br />
+
+	<span style="font-size: 1.3em"><a
+		href="http://openmeetings.apache.org/mail-lists.html" target="_blank">http://openmeetings.apache.org/mail-lists.html</a></span>
+	<br />
+	<br />
+
+
+	<b> <span style="font-size: 1.4em"><wicket:message key="install.wizard.congrats.commercial"/></span></b>
+	<br />
+	<br />
+
+	<span style="font-size: 1.3em"><a
+		href="http://openmeetings.apache.org/commercial-support.html"
+		target="_blank">http://openmeetings.apache.org/commercial-support.html</a></span>
+	<br />
+
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/pages/install/CongratulationsPanel.java b/src/web/java/org/apache/openmeetings/web/pages/install/CongratulationsPanel.java
new file mode 100644
index 0000000..6e7a2e5
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/install/CongratulationsPanel.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.pages.install;
+
+import org.apache.openmeetings.web.app.Application;
+import org.apache.wicket.markup.html.link.Link;
+import org.apache.wicket.markup.html.panel.Panel;
+
+public class CongratulationsPanel extends Panel {
+	private static final long serialVersionUID = 1L;
+
+	public CongratulationsPanel(String id) {
+		super(id);
+		
+		add(new Link<Void>("url") {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			public void onClick() {
+				setResponsePage(Application.get().getHomePage());
+			}
+		});
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard$InstallStep.html b/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard$InstallStep.html
new file mode 100644
index 0000000..d59cb47
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard$InstallStep.html
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<p wicket:id="desc"></p>
+	<div wicket:id="container" style="margin: 20px;">
+		<div wicket:id="progress"><!-- div><span wicket:id="value"></span>%</div--></div>
+		<div wicket:id="status"></div>
+	</div>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard$ParamsStep1.html b/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard$ParamsStep1.html
new file mode 100644
index 0000000..f6f8cd8
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard$ParamsStep1.html
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<fieldset class="ui-widget-content" id="userData">
+		<legend class="ui-widget-header"><wicket:message key="install.wizard.params.step1.userdata"/></legend>
+		<ul>
+			<li><label wicket:for="cfg.username"><wicket:message key="install.wizard.params.step1.username"/></label>
+				<input wicket:id="cfg.username" wicket:message="title:install.wizard.params.step1.username.title" type="text" />
+			</li>
+			<li><label wicket:for="cfg.password"><wicket:message key="install.wizard.params.step1.password"/></label>
+				<input wicket:id="cfg.password" wicket:message="title:install.wizard.params.step1.password.title" type="password" />
+			</li>
+			<li><label wicket:for="cfg.email"><wicket:message key="install.wizard.params.step1.email"/></label>
+				<input wicket:id="cfg.email" wicket:message="title:install.wizard.params.step1.email.title" type="text" />
+			</li>
+			<li><label wicket:for="ical_timeZone"><wicket:message key="install.wizard.params.step1.tz"/></label>
+				<select wicket:id="ical_timeZone"></select>
+			</li>
+		</ul>
+	</fieldset>
+
+	<fieldset class="ui-widget-content" id="userOrga">
+		<legend class="ui-widget-header"><wicket:message key="install.wizard.params.step1.groupdata"/></legend>
+		<ul>
+			<li><label wicket:for="cfg.group"><wicket:message key="install.wizard.params.step1.group"/></label>
+				<input wicket:id="cfg.group" wicket:message="title:install.wizard.params.step1.group.title" type="text" /></li>
+		</ul>
+	</fieldset>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard$ParamsStep2.html b/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard$ParamsStep2.html
new file mode 100644
index 0000000..634749c
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard$ParamsStep2.html
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<fieldset class="ui-widget-content" id="userConf">
+		<legend class="ui-widget-header"><wicket:message key="install.wizard.params.step2.configuration"/></legend>
+		<ul>
+			<li><label wicket:for="allowFrontendRegister"><wicket:message key="install.wizard.params.step2.allowFrontendRegister"/></label>
+				<select wicket:id="allowFrontendRegister"></select>
+			</li>
+			<li><label wicket:for="sendEmailAtRegister"><wicket:message key="install.wizard.params.step2.sendEmailAtRegister"/></label>
+				<select wicket:id="sendEmailAtRegister"></select>
+			</li>
+			<li><label wicket:for="sendEmailWithVerficationCode"><wicket:message key="install.wizard.params.step2.sendEmailWithVerficationCode"/></label>
+				<select wicket:id="sendEmailWithVerficationCode"></select>
+			</li>
+			<li><label wicket:for="createDefaultRooms"><wicket:message key="install.wizard.params.step2.createDefaultRooms"/></label>
+				<select wicket:id="createDefaultRooms"></select>
+			</li>
+			<li><label wicket:for="cfg.mailReferer"><wicket:message key="install.wizard.params.step2.mailReferer"/></label>
+				<input wicket:id="cfg.mailReferer" wicket:message="title:install.wizard.params.step2.mailReferer.title" type="text" />
+			</li>
+			<li><label wicket:for="cfg.smtpServer"><wicket:message key="install.wizard.params.step2.smtpServer"/></label>
+				<input wicket:id="cfg.smtpServer" wicket:message="title:install.wizard.params.step2.smtpServer.title" type="text" />
+			</li>
+			<li><label wicket:for="cfg.smtpPort"><wicket:message key="install.wizard.params.step2.smtpPort"/></label>
+				<input wicket:id="cfg.smtpPort" wicket:message="title:install.wizard.params.step2.smtpPort.title" type="text" />
+			</li>
+			<li><label wicket:for="cfg.mailAuthName"><wicket:message key="install.wizard.params.step2.mailAuthName"/></label>
+				<input wicket:id="cfg.mailAuthName" wicket:message="title:install.wizard.params.step2.mailAuthName.title" type="text" />
+			</li>
+			<li><label wicket:for="cfg.mailAuthPass"><wicket:message key="install.wizard.params.step2.mailAuthPass"/></label>
+				<input wicket:id="cfg.mailAuthPass" wicket:message="title:install.wizard.params.step2.mailAuthPass.title" type="password" />
+			</li>
+			<li><label wicket:for="mailUseTls"><wicket:message key="install.wizard.params.step2.mailUseTls"/></label>
+				<select wicket:id="mailUseTls"></select>
+			</li>
+			<li><label wicket:for="replyToOrganizer"><wicket:message key="install.wizard.params.step2.replyToOrganizer"/></label>
+				<select wicket:id="replyToOrganizer"></select>
+			</li>
+			<li><label wicket:for="defaultLangId"><wicket:message key="install.wizard.params.step2.defaultLangId"/></label>
+				<select wicket:id="defaultLangId"></select>
+			</li>
+			<li><label wicket:for="cfg.defaultExportFont"><wicket:message key="install.wizard.params.step2.defaultExportFont"/></label>
+				<select wicket:id="cfg.defaultExportFont"></select>
+			</li>
+		</ul>
+	</fieldset>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard$ParamsStep3.html b/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard$ParamsStep3.html
new file mode 100644
index 0000000..f072081
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard$ParamsStep3.html
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<fieldset class="ui-widget-content" id="userConf1">
+		<legend class="ui-widget-header"><wicket:message key="install.wizard.params.step3.converters"/></legend>
+		<ul>
+			<li><label wicket:for="cfg.swfZoom"><wicket:message key="install.wizard.params.step3.swfZoom"/></label>
+				<input wicket:id="cfg.swfZoom" wicket:message="title:install.wizard.params.step3.swfZoom.title"
+				type="text" />
+				<p>
+					<i>
+						<wicket:message key="install.wizard.params.step3.swfZoom.text"/>
+						<wicket:message key="install.wizard.params.step3.seeAlso"/><a
+						href="http://openmeetings.apache.org/installation.html"
+						target="_blank"><wicket:message key="install.wizard.params.step3.installation"/></a>
+					</i>
+				</p>
+			</li>
+			<li><label wicket:for="cfg.swfJpegQuality"><wicket:message key="install.wizard.params.step3.swfJpegQuality"/></label>
+				<input wicket:id="cfg.swfJpegQuality" 
+				wicket:message="title:install.wizard.params.step3.swfJpegQuality.title"
+				type="text" />
+				<p>
+					<i>
+						<wicket:message key="install.wizard.params.step3.swfJpegQuality.text"/>
+						<wicket:message key="install.wizard.params.step3.seeAlso"/><a
+						href="http://openmeetings.apache.org/installation.html"
+						target="_blank"><wicket:message key="install.wizard.params.step3.installation"/></a>
+					</i>
+				</p>
+			</li>
+			<li><label wicket:for="cfg.swfPath"><wicket:message key="install.wizard.params.step3.swfPath"/></label>
+				<input wicket:id="cfg.swfPath" 
+				wicket:message="title:install.wizard.params.step3.swfPath.title"
+				type="text" />
+				<p>
+					<i>
+						<wicket:message key="install.wizard.params.step3.swfPath.text"/>
+						<wicket:message key="install.wizard.params.step3.seeAlso"/><a
+						href="http://openmeetings.apache.org/installation.html"
+						target="_blank"><wicket:message key="install.wizard.params.step3.installation"/></a>
+					</i>
+				</p>
+			</li>
+			<li><label wicket:for="cfg.imageMagicPath"><wicket:message key="install.wizard.params.step3.imageMagicPath"/></label>
+				<input wicket:id="cfg.imageMagicPath" 
+				wicket:message="title:install.wizard.params.step3.imageMagicPath.title"
+				type="text" />
+				<p>
+					<i>
+						<wicket:message key="install.wizard.params.step3.imageMagicPath.text"/>
+						<wicket:message key="install.wizard.params.step3.seeAlso"/><a
+						href="http://openmeetings.apache.org/installation.html"
+						target="_blank"><wicket:message key="install.wizard.params.step3.installation"/></a>
+					</i>
+				</p>
+			</li>
+			<li><label wicket:for="cfg.ffmpegPath"><wicket:message key="install.wizard.params.step3.ffmpegPath"/></label>
+				<input wicket:id="cfg.ffmpegPath" 
+				wicket:message="title:install.wizard.params.step3.ffmpegPath.title" type="text" />
+				<p>
+					<i>
+						<wicket:message key="install.wizard.params.step3.ffmpegPath.text"/>
+						<wicket:message key="install.wizard.params.step3.seeAlso"/><a
+						href="http://openmeetings.apache.org/installation.html"
+						target="_blank"><wicket:message key="install.wizard.params.step3.installation"/></a>
+					</i>
+				</p>
+			</li>
+			<li><label wicket:for="cfg.soxPath"><wicket:message key="install.wizard.params.step3.soxPath"/></label>
+				<input wicket:id="cfg.soxPath" 
+				wicket:message="title:install.wizard.params.step3.soxPath.title"
+				type="text" />
+				<p>
+					<i>
+						<wicket:message key="install.wizard.params.step3.soxPath.text"/>
+						<wicket:message key="install.wizard.params.step3.seeAlso"/><a
+						href="http://openmeetings.apache.org/installation.html"
+						target="_blank"><wicket:message key="install.wizard.params.step3.installation"/></a>
+					</i>
+				</p>
+			</li>
+			<li><label wicket:for="cfg.jodPath"><wicket:message key="install.wizard.params.step3.jodPath"/></label>
+				<input wicket:id="cfg.jodPath"
+				wicket:message="title:install.wizard.params.step3.jodPath.title"
+				type="text" />
+				<p>
+					<i>
+						<wicket:message key="install.wizard.params.step3.jodPath.text"/>
+						<wicket:message key="install.wizard.params.step3.seeAlso"/><a
+						href="http://openmeetings.apache.org/installation.html"
+						target="_blank"><wicket:message key="install.wizard.params.step3.installation"/></a>
+					</i>
+				</p>
+			</li>
+			<li><label wicket:for="cfg.officePath"><wicket:message key="install.wizard.params.step3.officePath"/></label>
+				<input wicket:id="cfg.officePath"
+				wicket:message="title:install.wizard.params.step3.officePath.title"
+				type="text" />
+				<p>
+					<i>
+						<wicket:message key="install.wizard.params.step3.officePath.text"/>
+						<wicket:message key="install.wizard.params.step3.seeAlso"/><a
+						href="http://openmeetings.apache.org/installation.html"
+						target="_blank"><wicket:message key="install.wizard.params.step3.installation"/></a>
+					</i>
+				</p>
+			</li>
+		</ul>
+	</fieldset>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard$ParamsStep4.html b/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard$ParamsStep4.html
new file mode 100644
index 0000000..b8360b3
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard$ParamsStep4.html
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<fieldset class="ui-widget-content" id="userConf2">
+		<legend class="ui-widget-header"><wicket:message key="install.wizard.params.step4.crypt"/></legend>
+		<ul>
+			<li><label wicket:for="cfg.cryptClassName"><wicket:message key="install.wizard.params.step4.cryptClassName"/></label>
+				<input wicket:id="cfg.cryptClassName" type="text"
+					wicket:message="title:install.wizard.params.step4.cryptClassName.title" />
+				<p>
+					<i>
+						<wicket:message key="install.wizard.params.step4.cryptClassName.text"/>
+					</i>
+				</p>
+			</li>
+		</ul>
+	</fieldset>
+
+	<fieldset class="ui-widget-content" id="red5sip">
+		<legend class="ui-widget-header"><wicket:message key="install.wizard.params.step4.red5SIP"/></legend>
+		<ul>
+			<li><label wicket:for="red5SipEnable"><wicket:message key="install.wizard.params.step4.red5SipEnable"/></label>
+				<select wicket:id="red5SipEnable"></select>
+				<p>
+					<i><wicket:message key="install.wizard.params.step4.red5SipEnable.text"/></i>
+				</p>
+			</li>
+			<li><label wicket:for="cfg.red5SipRoomPrefix"><wicket:message key="install.wizard.params.step4.red5SipRoomPrefix"/></label>
+				<input wicket:id="cfg.red5SipRoomPrefix" type="text" />
+				<p>
+					<i><wicket:message key="install.wizard.params.step4.red5SipRoomPrefix.text"/></i>
+				</p>
+			</li>
+			<li><label wicket:for="cfg.red5SipExtenContext"><wicket:message key="install.wizard.params.step4.red5SipExtenContext"/></label>
+				<input wicket:id="cfg.red5SipExtenContext" type="text" />
+				<p>
+					<i><wicket:message key="install.wizard.params.step4.red5SipExtenContext.text"/></i>
+				</p>
+			</li>
+		</ul>
+	</fieldset>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard$WelcomeStep.html b/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard$WelcomeStep.html
new file mode 100644
index 0000000..21b4422
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard$WelcomeStep.html
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<div wicket:id="step"></div>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard.html b/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard.html
new file mode 100644
index 0000000..92ec993
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard.html
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<wicket:panel xmlns:wicket="http://wicket.apache.org">
+	<div class="wicketExtensionsWizard">
+		<form wicket:id="form" class="wicketExtensionsWizardForm">
+			<table class="wicketExtensionsWizardOuterTable">
+				<tr>
+					<td valign="top"><span wicket:id="overview"></span></td>
+					<td valign="top">
+						<table class="wicketExtensionsWizardInnerTable">
+							<tr class="wicketExtensionsWizardHeaderRow">
+								<td valign="top" class="wicketExtensionsWizardHeader"><span
+									wicket:id="header"></span></td>
+							</tr>
+							<tr class="wicketExtensionsWizardFeedbackRow">
+								<td valign="top" class="wicketExtensionsWizardFeedback"><span
+									wicket:id="feedback"></span></td>
+							</tr>
+							<tr class="wicketExtensionsWizardViewRow">
+								<td valign="top" class="wicketExtensionsWizardView"><div
+										wicket:id="view" class="wicketExtensionsWizardViewInner"></div></td>
+							</tr>
+							<tr class="wicketExtensionsWizardButtonBarRow">
+								<td valign="top" class="wicketExtensionsWizardButtonBar"><span
+									wicket:id="buttons"></span></td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+			</table>
+		</form>
+	</div>
+</wicket:panel>
diff --git a/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard.java b/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
new file mode 100644
index 0000000..7805d95
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
@@ -0,0 +1,521 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.pages.install;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.USER_LOGIN_MINIMUM_LENGTH;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.USER_PASSWORD_MINIMUM_LENGTH;
+import static org.apache.openmeetings.web.app.WebSession.AVAILABLE_TIMEZONES;
+import static org.apache.openmeetings.web.app.WebSession.AVAILABLE_TIMEZONE_SET;
+import static org.apache.wicket.validation.validator.RangeValidator.range;
+import static org.apache.wicket.validation.validator.StringValidator.minimumLength;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.openmeetings.installation.ImportInitvalues;
+import org.apache.openmeetings.installation.InstallationConfig;
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.common.ErrorMessagePanel;
+import org.apache.openmeetings.web.common.OmLabel;
+import org.apache.wicket.Component;
+import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.extensions.validation.validator.RfcCompliantEmailAddressValidator;
+import org.apache.wicket.extensions.wizard.IWizardStep;
+import org.apache.wicket.extensions.wizard.Wizard;
+import org.apache.wicket.extensions.wizard.dynamic.DynamicWizardModel;
+import org.apache.wicket.extensions.wizard.dynamic.DynamicWizardStep;
+import org.apache.wicket.extensions.wizard.dynamic.IDynamicWizardStep;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.ChoiceRenderer;
+import org.apache.wicket.markup.html.form.DropDownChoice;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.IChoiceRenderer;
+import org.apache.wicket.markup.html.form.PasswordTextField;
+import org.apache.wicket.markup.html.form.RequiredTextField;
+import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.PropertyModel;
+import org.apache.wicket.model.ResourceModel;
+import org.apache.wicket.util.time.Duration;
+
+import com.googlecode.wicket.jquery.ui.widget.progressbar.ProgressBar;
+
+//TODO maybe JQ wizard should be used
+public class InstallWizard extends Wizard {
+	private static final long serialVersionUID = 1L;
+	private InstallationConfig cfg;
+	private CompoundPropertyModel<InstallWizard> model;
+	private final static List<SelectOption> yesNoList = Arrays.asList(SelectOption.NO, SelectOption.YES);
+	private final static List<SelectOption> yesNoTextList = Arrays.asList(SelectOption.NO_TEXT, SelectOption.YES_TEXT);
+	private final static List<String> allFonts = Arrays.asList("TimesNewRoman", "Verdana", "Arial");
+	private final IDynamicWizardStep welcomeStep;
+	private final ParamsStep1 paramsStep1;
+	private final IDynamicWizardStep paramsStep2;
+	private final IDynamicWizardStep paramsStep3;
+	private final IDynamicWizardStep paramsStep4;
+	private final InstallStep installStep;
+	private Throwable th = null;
+	
+	public void initTzDropDown() {
+		paramsStep1.tzDropDown.init();
+	}
+	
+	//onInit, applyState
+	public InstallWizard(String id) throws Exception {
+		super(id);
+		//TODO enable install after first params
+		cfg = new InstallationConfig();
+		setDefaultModel(model = new CompoundPropertyModel<InstallWizard>(this));
+		welcomeStep = new WelcomeStep();
+		paramsStep1 = new ParamsStep1();
+		paramsStep2 = new ParamsStep2();
+		paramsStep3 = new ParamsStep3();
+		paramsStep4 = new ParamsStep4();
+		//TODO add install/progress step
+		installStep = new InstallStep();
+
+		DynamicWizardModel wmodel = new DynamicWizardModel(welcomeStep);
+		wmodel.setCancelVisible(false);
+		wmodel.setLastVisible(true);
+		init(wmodel);
+	}
+	
+	@Override
+	protected Component newButtonBar(String id) {
+		final Panel bBar = (Panel)super.newButtonBar(id);
+		AjaxButton finish = new AjaxButton("finish", new ResourceModel("org.apache.wicket.extensions.wizard.finish")) {
+			private static final long serialVersionUID = 1L;
+
+			public boolean isEnabled() {
+				IWizardStep activeStep = getWizardModel().getActiveStep();
+				return ((activeStep != null) && getWizardModel().isLastStep(activeStep));
+			}
+			
+			@Override
+			protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
+				installStep.startInstallation(target);
+				target.add(bBar.setEnabled(false));
+			}
+		};
+		return bBar.replace(finish).setOutputMarkupId(true);
+	}
+	
+	private abstract class BaseStep extends DynamicWizardStep {
+		private static final long serialVersionUID = 1L;
+
+		public BaseStep(IDynamicWizardStep prev) {
+			super(prev);
+			//TODO localize
+			setTitleModel(Model.of(cfg.appName + " - Installation"));
+            setSummaryModel(Model.of(""));
+		}
+	}
+	
+	private final class WelcomeStep extends BaseStep {
+		private static final long serialVersionUID = 1L;
+
+		public WelcomeStep() {
+			super(null);
+			//TODO localize
+			//TODO add check for DB connection
+            add(new OmLabel("step", "install.wizard.welcome.panel", cfg.appName).setEscapeModelStrings(false));
+		}
+
+		public boolean isLastStep() {
+			return false;
+		}
+
+		public IDynamicWizardStep next() {
+			return paramsStep1;
+		}
+	}
+
+	private final class ParamsStep1 extends BaseStep {
+		private static final long serialVersionUID = 1L;
+		private final TzDropDown tzDropDown;
+
+		public ParamsStep1() throws Exception {
+			super(welcomeStep);
+			//TODO localize
+            add(new RequiredTextField<String>("cfg.username").add(minimumLength(USER_LOGIN_MINIMUM_LENGTH)));
+            add(new PasswordTextField("cfg.password").add(minimumLength(USER_PASSWORD_MINIMUM_LENGTH)));
+            add(new RequiredTextField<String>("cfg.email").add(RfcCompliantEmailAddressValidator.getInstance()));
+            add(tzDropDown = new TzDropDown("ical_timeZone"));
+            add(new RequiredTextField<String>("cfg.group"));
+		}
+
+		public boolean isLastStep() {
+			return false;
+		}
+
+		public IDynamicWizardStep next() {
+			return paramsStep2;
+		}
+		
+		@Override
+		public boolean isLastAvailable() {
+			return true;
+		}
+		
+		@Override
+		public IDynamicWizardStep last() {
+			return installStep;
+		}
+	}
+	
+	private final class ParamsStep2 extends BaseStep {
+		private static final long serialVersionUID = 1L;
+
+		public ParamsStep2() throws Exception {
+			super(paramsStep1);
+			//TODO localize
+			//TODO validation
+            add(new YesNoDropDown("allowFrontendRegister"));
+            add(new YesNoDropDown("sendEmailAtRegister"));
+            add(new YesNoDropDown("sendEmailWithVerficationCode"));
+            add(new YesNoDropDown("createDefaultRooms"));
+            add(new TextField<String>("cfg.mailReferer"));
+            add(new TextField<String>("cfg.smtpServer"));
+            add(new TextField<Integer>("cfg.smtpPort").setRequired(true));
+            add(new TextField<String>("cfg.mailAuthName"));
+            add(new PasswordTextField("cfg.mailAuthPass").setRequired(false));
+            add(new YesNoDropDown("mailUseTls"));
+            //TODO check mail server
+            add(new YesNoDropDown("replyToOrganizer"));
+            add(new LangDropDown("defaultLangId"));
+            add(new DropDownChoice<String>("cfg.defaultExportFont", allFonts));
+		}
+
+		public boolean isLastStep() {
+			return false;
+		}
+
+		public IDynamicWizardStep next() {
+			return paramsStep3;
+		}
+		
+		@Override
+		public boolean isLastAvailable() {
+			return true;
+		}
+		
+		@Override
+		public IDynamicWizardStep last() {
+			return installStep;
+		}
+	}
+	
+	private final class ParamsStep3 extends BaseStep {
+		private static final long serialVersionUID = 1L;
+
+		public ParamsStep3() {
+			super(paramsStep2);
+			
+            add(new TextField<Integer>("cfg.swfZoom").setRequired(true).add(range(50, 600)));
+            add(new TextField<Integer>("cfg.swfJpegQuality").setRequired(true).add(range(1, 100)));
+            add(new TextField<String>("cfg.swfPath"));
+            add(new TextField<String>("cfg.imageMagicPath"));
+            add(new TextField<String>("cfg.ffmpegPath"));
+            add(new TextField<String>("cfg.soxPath"));
+            add(new TextField<String>("cfg.jodPath"));
+            add(new TextField<String>("cfg.officePath"));
+		}
+
+		public boolean isLastStep() {
+			return false;
+		}
+
+		public IDynamicWizardStep next() {
+			return paramsStep4;
+		}
+		
+		@Override
+		public boolean isLastAvailable() {
+			return true;
+		}
+		
+		@Override
+		public IDynamicWizardStep last() {
+			return installStep;
+		}
+	}
+	
+	private final class ParamsStep4 extends BaseStep {
+		private static final long serialVersionUID = 1L;
+
+		public ParamsStep4() {
+			super(paramsStep3);
+            add(new RequiredTextField<String>("cfg.cryptClassName")); //Validate class
+            
+            //TODO add check for red5sip connection
+            add(new YesNoTextDropDown("red5SipEnable"));
+            add(new TextField<String>("cfg.red5SipRoomPrefix"));
+            add(new TextField<String>("cfg.red5SipExtenContext"));
+		}
+
+		public boolean isLastStep() {
+			return false;
+		}
+
+		public IDynamicWizardStep next() {
+			return installStep;
+		}
+		
+		@Override
+		public boolean isLastAvailable() {
+			return true;
+		}
+		
+		@Override
+		public IDynamicWizardStep last() {
+			return installStep;
+		}
+}
+	
+	private final class InstallStep extends BaseStep {
+		private static final long serialVersionUID = 1L;
+		private final CongratulationsPanel congrat;
+		private WebMarkupContainer container = new WebMarkupContainer("container");
+		private AbstractAjaxTimerBehavior timer;
+		private ProgressBar progressBar;
+		private Label desc = new Label("desc", getString("install.wizard.install.desc"));
+		private boolean started = false;
+		
+		public void startInstallation(AjaxRequestTarget target) {
+			started = true;
+			timer.restart(target);
+			new Thread(new InstallProcess(Application.get()._getBean(ImportInitvalues.class))
+				, "Openmeetings - Installation").start();
+			//progressBar.setVisible(true);
+			desc.setDefaultModelObject(getString("install.wizard.install.started"));
+			target.add(desc, container);
+		}
+		
+		public InstallStep() {
+			super(paramsStep4);
+			
+			add(desc.setOutputMarkupId(true));
+			// Timer //
+			container.add(timer = new AbstractAjaxTimerBehavior(Duration.ONE_SECOND) {
+				private static final long serialVersionUID = 1L;
+
+				@Override
+				protected void onTimer(AjaxRequestTarget target) {
+					if (!started) {
+						timer.stop(target);
+						return;
+					}
+					if (th != null) {
+						timer.stop(target);
+						//TODO change text, localize
+						progressBar.setVisible(false);
+						target.add(container.replace(new ErrorMessagePanel("status", getString("install.wizard.install.failed"), th))
+							, desc.setVisible(false)
+							);
+					} else {
+						progressBar.setModelObject(Application.get()._getBean(ImportInitvalues.class).getProgress());
+						progressBar.respond(target);
+						//TODO uncomment later target.add(value);
+						//TODO add current step result as info
+					}
+				}
+			});
+			container.add(progressBar = new ProgressBar("progress", new Model<Integer>(0)) {
+				private static final long serialVersionUID = 1L;
+
+				@Override
+				protected void onComplete(AjaxRequestTarget target) {
+					timer.stop(target);
+					progressBar.setVisible(false);
+					congrat.setVisible(true);
+					target.add(container, desc.setVisible(false));
+				}
+			});
+			//TODO uncomment later progressBar.add(value = new Label("value", progressBar.getModel()));
+			//TODO uncomment later value.setOutputMarkupId(true);
+			//progressBar.setVisible(false);
+			
+			container.add(congrat = new CongratulationsPanel("status"));
+			congrat.setVisible(false);
+			
+			add(container.setOutputMarkupId(true));
+		}
+
+		public boolean isLastStep() {
+			return true;
+		}
+
+		public IDynamicWizardStep next() {
+			return null;
+		}
+	}
+	
+	private class InstallProcess implements Runnable {
+		private ImportInitvalues installer;
+		
+		public InstallProcess(ImportInitvalues installer) {
+			this.installer = installer;
+			th = null;
+		}
+		
+		public void run() {
+			try {
+				installer.loadAll(cfg, true);
+			} catch (Exception e) {
+				th = e;
+			}
+		}
+	}
+	
+	private static class SelectOption implements Serializable {
+		private static final long serialVersionUID = 2559982745410615390L;
+		private static SelectOption NO = new SelectOption("0", "No");
+		private static SelectOption NO_TEXT = new SelectOption("no", "No");
+		private static SelectOption YES = new SelectOption("1", "Yes");
+		private static SelectOption YES_TEXT = new SelectOption("yes", "Yes");
+		public String key;
+		@SuppressWarnings("unused")
+		public String value;
+
+		SelectOption(String key, String value) {
+			this.key = key;
+			this.value = value;
+		}
+	}
+
+	private abstract class WizardDropDown<T>  extends DropDownChoice<T> {
+		private static final long serialVersionUID = 8870736740532631296L;
+		T option;
+		IModel<Object> propModel;
+		
+		WizardDropDown(String id) {
+			super(id);
+			propModel = InstallWizard.this.model.bind("cfg." + id);
+			setModel(new PropertyModel<T>(this, "option"));
+		}
+	}
+	
+	private final class TzDropDown extends WizardDropDown<String> {
+		private static final long serialVersionUID = 1L;
+
+		public void init() {
+			List<String> tzList = AVAILABLE_TIMEZONES;
+			String tzId = WebSession.get().getClientTZCode();
+			option = AVAILABLE_TIMEZONE_SET.contains(tzId) ? tzId : tzList.get(0);
+		}
+		
+		public TzDropDown(String id) throws Exception {
+			super(id);
+			setChoices(AVAILABLE_TIMEZONES);
+			setChoiceRenderer(new IChoiceRenderer<String>() {
+				private static final long serialVersionUID = 1L;
+				
+				public Object getDisplayValue(String object) {
+    				return object.toString();
+    			}
+				public String getIdValue(String object, int index) {
+					return object.toString();
+				}
+			});
+		}
+		
+		@Override
+		protected void onModelChanged() {
+			if (propModel != null && option != null) {
+				propModel.setObject(option);
+			}
+		}
+	}
+	
+	private class SelectOptionDropDown extends WizardDropDown<SelectOption> {
+		private static final long serialVersionUID = -1433015274371279328L;
+
+		SelectOptionDropDown(String id) {
+			super(id);
+			setChoiceRenderer(new ChoiceRenderer<SelectOption>("value", "key"));
+		}
+		
+		@Override
+		protected void onModelChanged() {
+			if (propModel != null && option != null) {
+				propModel.setObject(option.key);
+			}
+		}
+		
+	}
+	
+	private final class YesNoDropDown extends SelectOptionDropDown {
+		private static final long serialVersionUID = 578375825530725477L;
+		
+		YesNoDropDown(String id) {
+			super(id);
+			setChoices(yesNoList);
+			this.option = SelectOption.NO.key.equals(propModel.getObject()) ?
+					SelectOption.NO : SelectOption.YES;
+		}
+	}
+	
+	private final class YesNoTextDropDown extends SelectOptionDropDown {
+		private static final long serialVersionUID = 578375825530725477L;
+		
+		YesNoTextDropDown(String id) {
+			super(id);
+			setChoices(yesNoTextList);
+			this.option = SelectOption.NO_TEXT.key.equals(propModel.getObject()) ?
+					SelectOption.NO_TEXT : SelectOption.YES_TEXT;
+		}
+	}
+	
+	private final class LangDropDown extends SelectOptionDropDown {
+		private static final long serialVersionUID = -2826765890538795285L;
+
+		public LangDropDown(String id) throws Exception {
+			super(id);
+			Map<Integer, Map<String, Object>> allLanguagesAll = ImportInitvalues.getLanguageFiles();
+			
+			List<SelectOption> list = new ArrayList<SelectOption>();
+			
+			for (Integer key : allLanguagesAll.keySet()) {
+				String langName = (String) allLanguagesAll.get(key).get("name");
+				String langCode = (String) allLanguagesAll.get(key).get("code");
+				SelectOption op = new SelectOption(key.toString(), langName);
+				if (langCode != null) {
+					if (getSession().getLocale().toString().startsWith(langCode)) {
+						option = op;
+					}
+					list.add(op);
+				}
+				if (option == null && key.toString().equals(cfg.defaultLangId)) {
+					option = op;
+				}
+			}
+			setChoices(list);
+		}
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizardPage.html b/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizardPage.html
new file mode 100644
index 0000000..214a9f8
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizardPage.html
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:head>
+	<script type="text/javascript" src="js/openmeetings_functions.js" >
+	</script>
+	<style type="text/css">
+		form,fieldset {
+			margin: 0;
+			padding: 0;
+		}
+		fieldset {
+			border: 1px solid #000;
+		}
+		legend {
+			padding: 0;
+			color: #000;
+		}
+		input:focus,textarea:focus {
+			color: #000;
+			background: #fff;
+			outline: 1px solid black;
+		}
+		input,textarea,select {
+			margin: 0;
+			padding: 1px;
+			position: absolute;
+			left: 700px;
+			background: #ddd;
+			font-size: 100%;
+			font-family: inherit;
+			width: 300px;
+		}
+		select {
+			padding: 0;
+		}
+		form.wicketExtensionsWizardForm {
+			width: 1024px;
+			font-size: 1.1em;
+			color: #333;
+		}
+		form.wicketExtensionsWizardForm legend {
+			padding-left: 0;
+		}
+		form.wicketExtensionsWizardForm legend,form.wicketExtensionsWizardForm label {
+			color: #333;
+		}
+		form.wicketExtensionsWizardForm fieldset {
+			border: none;
+			border-top: 1px solid #C9DCA6;
+		}
+		form.wicketExtensionsWizardForm fieldset fieldset {
+			background: none;
+		}
+		form.wicketExtensionsWizardForm fieldset li {
+			padding: 5px 10px 7px;
+		}
+		form.wicketExtensionsWizardForm fieldset {
+			margin-bottom: 10px;
+		}
+		form.wicketExtensionsWizardForm legend {
+			padding: 0 2px;
+			font-weight: bold;
+		}
+		form.wicketExtensionsWizardForm label {
+			display: inline-block;
+			line-height: 1.8;
+			vertical-align: top;
+		}
+		form.wicketExtensionsWizardForm fieldset ol {
+			margin: 0;
+			padding: 0;
+		}
+		form.wicketExtensionsWizardForm fieldset li {
+			list-style: none;
+			margin: 0;
+		}
+		form.wicketExtensionsWizardForm fieldset fieldset {
+			border: none;
+			margin: 3px 0 0;
+		}
+		form.wicketExtensionsWizardForm fieldset fieldset legend {
+			padding: 0 0 5px;
+			font-weight: normal;
+		}
+		form.wicketExtensionsWizardForm fieldset fieldset label {
+			display: block;
+			width: auto;
+		}
+		form.wicketExtensionsWizardForm em {
+			font-weight: bold;
+			font-style: normal;
+			color: #f00;
+		}
+		form.wicketExtensionsWizardForm label {
+			width: 420px;
+		}
+		form.wicketExtensionsWizardForm fieldset fieldset label {
+			margin-left: 123px;
+		}
+		.wicketExtensionsWizard {
+			padding-right: 100px;
+			padding-left: 100px;
+			width: 850px;
+		}
+		.wicketExtensionsWizardHeader {
+			font-size: 2em;
+			padding: 10px;
+		}
+		.wicketExtensionsWizardViewInner {
+			padding: 5px;
+		}
+		.wicketExtensionsWizardInnerTable, .wicketExtensionsWizardOuterTable {
+			width: 100%;
+		}
+		.wicketExtensionsWizardButtonBar input {
+			position: static;
+			width: auto;
+			padding-right: 15px;
+			padding-left: 15px;
+			margin: 5px;
+		}
+	</style>
+</wicket:head>
+<wicket:extend>
+	<div>
+		<div wicket:id="wizard"></div>
+	</div>
+</wicket:extend>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizardPage.java b/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizardPage.java
new file mode 100644
index 0000000..fe88d1f
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizardPage.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.pages.install;
+
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.common.ErrorMessagePanel;
+import org.apache.openmeetings.web.pages.BaseNotInitedPage;
+import org.apache.wicket.RestartResponseException;
+import org.apache.wicket.ajax.AjaxClientInfoBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.protocol.http.request.WebClientInfo;
+
+public class InstallWizardPage extends BaseNotInitedPage {
+	private static final long serialVersionUID = -438388395397826138L;
+	private InstallWizard wizard = null;
+
+	public InstallWizardPage() {
+		if (Application.isInstalled()) {
+			throw new RestartResponseException(Application.get().getHomePage());
+		}
+		try {
+			add(wizard = new InstallWizard("wizard"));
+			// This code is required to detect time zone offset
+			add(new AjaxClientInfoBehavior() {
+				private static final long serialVersionUID = 1L;
+
+				@Override
+				protected void onClientInfo(AjaxRequestTarget target, WebClientInfo clientInfo) {
+					super.onClientInfo(target, clientInfo);
+					wizard.initTzDropDown();
+				}
+			});
+		} catch (RestartResponseException re) {
+			throw re;
+		} catch (Exception e) {
+			//TODO localization
+			add(new ErrorMessagePanel("wizard", "Error while running installer, please check your installation", e));
+		}
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/user/AboutDialog.html b/src/web/java/org/apache/openmeetings/web/user/AboutDialog.html
new file mode 100644
index 0000000..cdf6233
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/AboutDialog.html
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<html xmlns:wicket="http://wicket.apache.org">

+	<wicket:panel>

+		<table>

+			<tr>

+				<td><wicket:ommessage key="1550" /></td>

+				<td wicket:id="name">[name]</td>

+			</tr>

+			<tr>

+				<td><wicket:ommessage key="1551" /></td>

+				<td wicket:id="version">[version]</td>

+			</tr>

+			<tr>

+				<td><wicket:ommessage key="1552" /></td>

+				<td wicket:id="revision">[revision]</td>

+			</tr>

+			<tr>

+				<td><wicket:ommessage key="1553" /></td>

+				<td wicket:id="buildDate">[buildDate]</td>

+			</tr>

+		</table>		

+	</wicket:panel>

+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/user/AboutDialog.java b/src/web/java/org/apache/openmeetings/web/user/AboutDialog.java
new file mode 100644
index 0000000..2e6678b
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/AboutDialog.java
@@ -0,0 +1,59 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.user;

+

+import static org.apache.openmeetings.util.Version.getBuildDate;

+import static org.apache.openmeetings.util.Version.getRevision;

+import static org.apache.openmeetings.util.Version.getVersion;

+

+import java.util.ArrayList;

+import java.util.List;

+

+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;

+import org.apache.openmeetings.web.app.Application;

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.markup.html.basic.Label;

+

+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractDialog;

+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;

+

+public class AboutDialog extends AbstractDialog<String> {

+	private static final long serialVersionUID = 1400355222295594321L;

+	

+	public AboutDialog(String id) {

+		super(id, WebSession.getString(1549));

+		

+		add(new Label("name", Application.getBean(ConfigurationDao.class).getConfValue(

+				"application.name"

+				, String.class

+				, ConfigurationDao.DEFAULT_APP_NAME)));

+		add(new Label("version", getVersion()));

+		add(new Label("revision", getRevision()));

+		add(new Label("buildDate", getBuildDate()));

+	}

+

+	@Override

+	protected List<DialogButton> getButtons() {

+		return new ArrayList<DialogButton>();

+	}

+

+	public void onClose(AjaxRequestTarget arg0, DialogButton arg1) {

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/user/ChatPanel.html b/src/web/java/org/apache/openmeetings/web/user/ChatPanel.html
new file mode 100644
index 0000000..b0d2dcb
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/ChatPanel.html
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+	<wicket:head>
+		<script type="text/javascript">
+			function toggleChat() {
+				var chat = $('#chat');
+				$('#chat #controlBlock #control')
+					.removeClass('ui-icon-carat-1-' + (chat.height() < 20 ? 'n' : 's'))
+					.addClass('ui-icon-carat-1-' + (chat.height() < 20 ? 's' : 'n'));
+				chat.animate({ height: chat.height() < 20 ? "300px" : "16px" }, 1000);
+			}
+			function addChatMessageInternal(m) {
+				if (m && m.type == "chat") {
+					var msg = $('<div><span class="from">' + m.msg.from + '</span><span class="date">'
+							+ m.msg.sent + '</span>' + m.msg.message + '</div>');
+					$('#messageArea').append(msg);
+					msg[0].scrollIntoView();
+				}
+			}
+			function addChatMessage(m) {
+				if (m && m.type == "chat") {
+					addChatMessageInternal(m)
+					$('#messageArea').emoticonize();
+				}
+			}
+			Wicket.Event.subscribe("/websocket/message", function(jqEvent, msg) {
+				addChatMessage(jQuery.parseJSON(msg)); 
+			});
+		</script>
+	</wicket:head>
+	<wicket:panel>
+		<div id="chat">
+			<div id="controlBlock" onclick="toggleChat();"><div id="control" class="ui-icon ui-icon-carat-1-n sort-icon"></div></div>
+			<div wicket:id="messages"></div>
+			<form wicket:id="sendForm">
+				<div wicket:id="toolbarContainer"></div>
+				<table style="width: 100%">
+					<tr>
+						<td><div id="chatMessage" wicket:id="chatMessage"></div></td>
+						<td style="width: 50px"><div wicket:id="send"><wicket:ommessage key="220"/></div></td>
+					</tr>
+				</table>
+			</form>
+		</div>
+	</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/user/ChatPanel.java b/src/web/java/org/apache/openmeetings/web/user/ChatPanel.java
new file mode 100644
index 0000000..b8b5ff8
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/ChatPanel.java
@@ -0,0 +1,129 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user;
+
+import static org.apache.commons.lang3.StringEscapeUtils.unescapeXml;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getDateFormat;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
+import java.util.Date;
+
+import org.apache.openmeetings.db.dao.basic.ChatDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.basic.ChatMessage;
+import org.apache.openmeetings.web.common.UserPanel;
+import org.apache.wicket.Component;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.json.JSONException;
+import org.apache.wicket.ajax.json.JSONObject;
+import org.apache.wicket.behavior.Behavior;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.protocol.ws.IWebSocketSettings;
+import org.apache.wicket.protocol.ws.api.IWebSocketConnection;
+import org.apache.wicket.protocol.ws.api.registry.IWebSocketConnectionRegistry;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+import com.googlecode.wicket.jquery.ui.form.button.AjaxButton;
+import com.googlecode.wicket.jquery.ui.plugins.emoticons.EmoticonsBehavior;
+import com.googlecode.wicket.jquery.ui.plugins.wysiwyg.WysiwygEditor;
+
+public class ChatPanel extends UserPanel {
+	private static final Logger log = Red5LoggerFactory.getLogger(ChatPanel.class, webAppRootKey);
+	private static final long serialVersionUID = -9144707674886211557L;
+	private static final String MESSAGE_AREA_ID = "messageArea";
+	
+	private JSONObject getMessage(ChatMessage m) throws JSONException {
+		String msg = m.getMessage();
+		msg = msg == null ? msg : " " + msg.replaceAll("&nbsp;", " ") + " ";
+		return new JSONObject()
+			.put("type", "chat")
+			.put("msg", new JSONObject()
+				.put("id", m.getId())
+				.put("message", msg)
+				.put("from", m.getFromUser().getFirstname() + " " + m.getFromUser().getLastname())
+				.put("sent", getDateFormat().format(m.getSent()))
+			);
+	}
+
+	public ChatPanel(String id) {
+		super(id);
+		setOutputMarkupId(true);
+		setMarkupId(id);
+
+		add(new Behavior() {
+			private static final long serialVersionUID = -2205036360048419129L;
+
+			@Override
+			public void renderHead(Component component, IHeaderResponse response) {
+				ChatDao dao = getBean(ChatDao.class);
+				try {				
+					StringBuilder sb = new StringBuilder();
+					//FIXME limited count should be loaded with "earlier" link
+					for (ChatMessage m : dao.get(0, 30)) {
+						sb.append("addChatMessageInternal(").append(getMessage(m).toString()).append(");");
+					}
+					if (sb.length() > 0) {
+						sb.append("$('#").append(MESSAGE_AREA_ID).append("').emoticonize();");
+						response.render(OnDomReadyHeaderItem.forScript(sb.toString()));
+					}
+				} catch (JSONException e) {
+					
+				}
+				super.renderHead(component, response);
+			}
+		});
+		add(new EmoticonsBehavior("#" + MESSAGE_AREA_ID));
+		add(new WebMarkupContainer("messages").setMarkupId(MESSAGE_AREA_ID));
+		ChatToolbar toolbar = new ChatToolbar("toolbarContainer");
+		final WysiwygEditor chatMessage = new WysiwygEditor("chatMessage", Model.of(""), toolbar);
+		add(new Form<Void>("sendForm").add(
+				toolbar
+				, chatMessage.setOutputMarkupId(true)
+				, new AjaxButton("send") {
+					private static final long serialVersionUID = 1L;
+					
+					@Override
+					protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
+						ChatDao dao = getBean(ChatDao.class);
+						ChatMessage m = new ChatMessage();
+						m.setMessage(unescapeXml(chatMessage.getDefaultModelObjectAsString()));
+						m.setSent(new Date());
+						m.setFromUser(getBean(UserDao.class).get(getUserId()));
+						dao.update(m);
+						IWebSocketConnectionRegistry reg = IWebSocketSettings.Holder.get(getApplication()).getConnectionRegistry();
+						for (IWebSocketConnection c : reg.getConnections(getApplication())) {
+							try {
+								c.sendMessage(getMessage(m).toString());
+							} catch(Exception e) {
+								log.error("Error while sending message", e);
+							}
+						}
+						chatMessage.setDefaultModelObject("");
+						target.add(chatMessage);
+					};
+				}));
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/user/ChatToolbar.html b/src/web/java/org/apache/openmeetings/web/user/ChatToolbar.html
new file mode 100644
index 0000000..f00af1a
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/ChatToolbar.html
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:head>
+	<style>
+		.emt {
+			font-size: 10pt;
+		}
+		.chat.btn{
+			font-weight: bold;
+		}
+		.chat.dropdown-menu {
+			left: -50px;
+		}
+	</style>
+	<script type="text/javascript">
+	    function emtClick(emoticon) {
+	        var editor = $('#chatMessage .wysiwyg-editor');
+	        editor.html(editor.html() + ' ' + emoticon + ' ');
+	    }
+		$(function() {
+			 var emots = [":-)", ":)", ":o)", ":c)", ":^)", ":-D", ":-(", ":-9", ";-)", ":-P", ":-p", ":-Þ", ":-b"
+			 	, ":-O", ":-/", ":-X", ":-#", ":'(", "B-)", "8-)", ":-\\", ";*(", ":-*", ":]", ":>", "=]", "=)", "8)"
+			 	, ":}", ":D", "8D", "XD", "xD", "=D", ":(", ":<", ":[", ":{", "=(", ";)", ";]", ";D", ":P", ":p"
+			 	, "=P", "=p", ":b", ":Þ", ":O", "8O", ":/", "=/", ":S", ":#", ":X", "B)", "O:)", "<3", ";(", ">:)"
+			 	, ">;)", ">:(", "O_o", "O_O", "o_o", "0_o", "T_T", "^_^", "?-)"];
+			 var emotMenuList = $('#emotMenuList');
+			 var rowSize = 15;
+			 var row = $('<tr></tr>');
+			 for (var i = 0; i < emots.length; ++i) {
+			 	row.append('<td><div class="emt" onclick="emtClick(\'' + emots[i] + '\');">'
+			 		+ emots[i] + '</div></td>');
+			 	if (i != 0 && i % rowSize == 0) {
+			 		emotMenuList.append(row);
+			 		row = $('<tr></tr>');
+			 	}
+			 }
+			 $('.emt').emoticonize();
+		});
+	</script>
+</wicket:head>
+<wicket:panel>
+	<div wicket:id="toolbar" class="btn-toolbar" data-role="editor-toolbar">
+		<div class="btn-group">
+			<a id="emoticons" class="chat btn emt dropdown-toggle" data-toggle="dropdown" title="Emoticons"> :) <b class="caret"></b></a>
+			<ul class="chat dropdown-menu" >
+				<li>
+					<table id="emotMenuList">
+					</table>
+				</li>
+			</ul>
+		</div>
+		<div class="btn-group">
+			<a id="fontSize" class="chat btn dropdown-toggle" data-toggle="dropdown" title="Font Size"> A <b class="caret"></b></a>
+			<ul class="dropdown-menu">
+				<li><a data-edit="fontSize 5"><font size="3">Huge</font></a></li>
+				<li><a data-edit="fontSize 3"><font size="2">Normal</font></a></li>
+				<li><a data-edit="fontSize 1"><font size="1">Small</font></a></li>
+			</ul>
+			<a id="bold" class="chat btn" data-edit="bold" title="Bold (Ctrl/Cmd+B)"> B
+			</a> <a id="italic" class="chat btn" data-edit="italic" title="Italic (Ctrl/Cmd+I)" style="font-style: italic;"> I
+			</a> <a id="strikethrough" class="chat btn" data-edit="strikethrough" title="Strikethrough" style="text-decoration: line-through;"> S
+			</a> <a id="underline" class="chat btn" data-edit="underline" title="Underline (Ctrl/Cmd+U)" style="text-decoration: underline;"> U
+			</a>
+		</div>
+	</div>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/user/ChatToolbar.java b/src/web/java/org/apache/openmeetings/web/user/ChatToolbar.java
new file mode 100644
index 0000000..e433dd2
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/ChatToolbar.java
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user;
+
+import org.apache.wicket.AttributeModifier;
+import org.apache.wicket.Component;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.IModel;
+
+import com.googlecode.wicket.jquery.core.IJQueryWidget.JQueryWidget;
+import com.googlecode.wicket.jquery.ui.plugins.wysiwyg.toolbar.IWysiwygToolbar;
+
+/**
+ * Provides a custom implementation for com.googlecode.wicket.jquery.ui.plugins.wysiwyg.toolbar.IWysiwygToolbar suitable
+ * for chat}
+ */
+public class ChatToolbar extends Panel implements IWysiwygToolbar {
+	private static final long serialVersionUID = 1L;
+	private final WebMarkupContainer toolbar;
+
+	/**
+	 * Constructor
+	 * 
+	 * @param id
+	 *            the markup-id
+	 */
+	public ChatToolbar(String id) {
+		this(id, null);
+	}
+
+	/**
+	 * Constructor
+	 * 
+	 * @param id
+	 *            the markup-id
+	 * @param model
+	 *            the {@link org.apache.wicket.model.IModel}
+	 */
+	public ChatToolbar(String id, IModel<String> model) {
+		super(id, model);
+
+		toolbar = new WebMarkupContainer("toolbar");
+		toolbar.setMarkupId("bToolbar");
+		add(toolbar);
+
+	}
+
+	public void attachToEditor(Component editor) {
+		toolbar.add(AttributeModifier.replace("data-target", JQueryWidget.getSelector(editor)));
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.html b/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.html
new file mode 100644
index 0000000..4d9eabc
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.html
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<html xmlns:wicket="http://wicket.apache.org">

+	<wicket:panel>

+		<form wicket:id="appForm">

+			<span wicket:id="feedback"></span>

+			<table>

+				<tr>

+					<td><wicket:ommessage key="572" /></td>

+					<td><input type="text" wicket:id="title" /></td>

+				</tr>

+				<tr>

+					<td><wicket:ommessage key="570" /></td>

+					<td><span wicket:id="start"></span></td>

+				</tr>

+				<tr>

+					<td><wicket:ommessage key="571" /></td>

+					<td><span wicket:id="end"></span></td>

+				</tr>

+				<tr>

+					<td><wicket:ommessage key="565" /></td>

+					<td><select wicket:id="remind" ></select></td>

+				</tr>

+				<tr>

+					<td colspan="2"><input type="checkbox" wicket:id="createRoom" /><wicket:ommessage key="1509" /></td>

+				</tr>

+				<tr>

+					<td><wicket:ommessage key="619" /></td>

+					<td><select wicket:id="room.roomtype" ></select></td>

+				</tr>

+				<tr>

+					<td><wicket:ommessage key="406" /></td>

+					<td><select wicket:id="room" ></select></td>

+				</tr>

+				<tr>

+					<td colspan="2"><input type="checkbox" wicket:id="passwordProtected" /><wicket:ommessage key="524" /></td>

+				</tr>

+				<tr>

+					<td><wicket:ommessage key="525" /></td>

+					<td><input type="password" wicket:id="password" /></td>

+				</tr>

+				<tr>

+					<td colspan="2" style="font-size: smaller;"><wicket:ommessage key="1445" /></td>

+				</tr>

+				<tr>

+					<td><wicket:ommessage key="1156" /></td>

+					<td><span wicket:id="owner"></span></td>

+				</tr>

+				<tr>

+					<td><wicket:ommessage key="803" /></td>

+					<td wicket:ommessage="title:1588"><input class="appointment attendees" type="hidden" wicket:id="attendees"/></td>

+				</tr>

+				<tr>

+					<td><wicket:ommessage key="569" /></td>

+					<td><input type="text" wicket:id="location" /></td>

+				</tr>

+				<tr>

+					<td><wicket:ommessage key="573" /></td>

+					<td>

+						<div wicket:id="toolbarContainer"></div>

+						<div wicket:id="description"></div>

+					</td>

+				</tr>

+			</table>

+		</form>

+		<div wicket:id="confirmDelete"></div>

+	</wicket:panel>

+</html>

diff --git a/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java b/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
new file mode 100644
index 0000000..d347913
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
@@ -0,0 +1,355 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.user.calendar;

+

+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;

+import static org.apache.openmeetings.web.app.Application.getBean;

+import static org.apache.openmeetings.web.app.WebSession.getLanguage;

+import static org.apache.openmeetings.web.app.WebSession.getUserId;

+import static org.apache.openmeetings.web.util.RoomTypeDropDown.getRoomTypes;

+

+import java.util.ArrayList;

+import java.util.Arrays;

+import java.util.Collection;

+import java.util.HashSet;

+import java.util.Iterator;

+import java.util.List;

+import java.util.Set;

+

+import org.apache.openmeetings.db.dao.calendar.AppointmentDao;

+import org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypDao;

+import org.apache.openmeetings.db.dao.room.RoomDao;

+import org.apache.openmeetings.db.dao.user.UserDao;

+import org.apache.openmeetings.db.entity.calendar.Appointment;

+import org.apache.openmeetings.db.entity.calendar.AppointmentReminderTyps;

+import org.apache.openmeetings.db.entity.calendar.MeetingMember;

+import org.apache.openmeetings.db.entity.room.Room;

+import org.apache.openmeetings.db.entity.room.RoomType;

+import org.apache.openmeetings.db.entity.user.Organisation_Users;

+import org.apache.openmeetings.db.entity.user.User;

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.openmeetings.web.pages.MainPage;

+import org.apache.openmeetings.web.user.rooms.RoomEnterBehavior;

+import org.apache.openmeetings.web.util.FormatHelper;

+import org.apache.openmeetings.web.util.RoomTypeDropDown;

+import org.apache.openmeetings.web.util.UserMultiChoice;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox;

+import org.apache.wicket.behavior.AttributeAppender;

+import org.apache.wicket.extensions.yui.calendar.DateTimeField;

+import org.apache.wicket.markup.html.basic.Label;

+import org.apache.wicket.markup.html.form.ChoiceRenderer;

+import org.apache.wicket.markup.html.form.DropDownChoice;

+import org.apache.wicket.markup.html.form.Form;

+import org.apache.wicket.markup.html.form.PasswordTextField;

+import org.apache.wicket.markup.html.form.RequiredTextField;

+import org.apache.wicket.markup.html.form.TextField;

+import org.apache.wicket.markup.html.panel.FeedbackPanel;

+import org.apache.wicket.model.IModel;

+import org.apache.wicket.model.Model;

+import org.apache.wicket.model.PropertyModel;

+import org.apache.wicket.model.util.CollectionModel;

+import org.red5.logging.Red5LoggerFactory;

+import org.slf4j.Logger;

+

+import com.googlecode.wicket.jquery.ui.plugins.wysiwyg.WysiwygEditor;

+import com.googlecode.wicket.jquery.ui.plugins.wysiwyg.toolbar.DefaultWysiwygToolbar;

+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractDialog;

+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;

+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;

+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButtons;

+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogIcon;

+import com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog;

+

+public class AppointmentDialog extends AbstractFormDialog<Appointment> {

+	private static final long serialVersionUID = 1L;

+	private static final Logger log = Red5LoggerFactory.getLogger(AppointmentDialog.class, webAppRootKey);

+	

+	private AppointmentForm form;

+	private DialogButton save = new DialogButton(WebSession.getString(813));

+	private DialogButton cancel = new DialogButton(WebSession.getString(1130));

+	private String deleteLbl = WebSession.getString(814);

+	private DialogButton delete = new DialogButton(deleteLbl);

+	private String enterRoomLbl = WebSession.getString(1282);

+	private DialogButton enterRoom = new DialogButton(enterRoomLbl);

+	private final CalendarPanel calendar;

+	protected final FeedbackPanel feedback;

+	final MessageDialog confirmDelete;

+	private IModel<Collection<User>> attendeesModel = new CollectionModel<User>(new ArrayList<User>());

+	

+	@Override

+	public int getWidth() {

+		return 650;

+	}

+	

+	//@Override

+	public void setModelObjectWithAjaxTarget(Appointment object, AjaxRequestTarget target) {

+		form.setModelObject(object);

+		form.setEnabled(object.getOwner() == null || getUserId() == object.getOwner().getUser_id());

+		log.debug(" -- setModelObjectWithAjaxTarget -- Current model " + object);

+		if (object.getId() != null) {

+			delete.setVisible(isOwner(object), target);

+			enterRoom.setVisible(object.getRoom() != null, target);

+		} else {

+			delete.setVisible(false, target);

+			enterRoom.setVisible(false, target);

+		}

+		save.setVisible(isOwner(object), target);

+		super.setModelObject(object);

+	}

+	

+	public AppointmentDialog(String id, String title, CalendarPanel calendar, IModel<Appointment> model) {

+		super(id, title, model, true);

+		log.debug(" -- AppointmentDialog -- Current model " + getModel().getObject());

+		this.calendar = calendar;

+		setOutputMarkupId(true);

+		feedback = new FeedbackPanel("feedback");

+		form = new AppointmentForm("appForm", model);

+		add(form);

+		confirmDelete = new MessageDialog("confirmDelete", WebSession.getString(814), WebSession.getString(833), DialogButtons.OK_CANCEL, DialogIcon.WARN){

+			private static final long serialVersionUID = 1L;

+

+			public void onClose(AjaxRequestTarget target, DialogButton button) {

+				if (button != null && button.match(AbstractDialog.LBL_OK)){

+					deleteAppointment(target);

+				}

+			}

+		};

+		add(confirmDelete);

+	}

+

+	protected void deleteAppointment(AjaxRequestTarget target) {

+		getBean(AppointmentDao.class).delete(getModelObject(), getUserId());

+		calendar.refresh(target);		

+	}

+

+	@Override

+	protected List<DialogButton> getButtons() {

+		return Arrays.asList(enterRoom, save, delete, cancel);

+	}

+	

+	@Override

+	protected DialogButton getSubmitButton() {

+		return save;

+	}

+

+	@Override

+	public Form<?> getForm() {

+		return this.form;

+	}

+

+	@Override

+	protected void onOpen(AjaxRequestTarget target) {

+		target.add(this.form);

+	}

+	

+	@Override

+	public void onClose(AjaxRequestTarget target, DialogButton button) {

+		if (delete.equals(button)) {

+			confirmDelete.open(target);

+		} else if (enterRoom.equals(button)) {

+			RoomEnterBehavior.roomEnter((MainPage)getPage(), target, getModelObject().getRoom().getRooms_id());

+		}

+	}

+	

+	@Override

+	protected void onError(AjaxRequestTarget target) {

+		target.add(feedback);

+	}

+

+	@Override

+	protected void onSubmit(AjaxRequestTarget target) {

+        Appointment a = form.getModelObject();

+        final List<MeetingMember> attendees = a.getMeetingMembers() == null ? new ArrayList<MeetingMember>() : a.getMeetingMembers();

+        Set<Long> currentIds = new HashSet<Long>();

+        for (User u : attendeesModel.getObject()) {

+        	if (u.getUser_id() != null) {

+        		currentIds.add(u.getUser_id());

+        	}

+        }

+        

+        //remove users

+        for (Iterator<MeetingMember> i = attendees.iterator(); i.hasNext();) {

+        	MeetingMember m = i.next();

+        	if (!currentIds.contains(m.getUser().getUser_id())) {

+        		i.remove();

+        	}

+        }

+        Set<Long> originalIds = new HashSet<Long>();

+        for (MeetingMember m : attendees) {

+        	originalIds.add(m.getUser().getUser_id());

+        }

+        //add users

+        for (User u : attendeesModel.getObject()) {

+        	if (u.getUser_id() == null || !originalIds.contains(u.getUser_id())) {

+        		MeetingMember mm = new MeetingMember();

+        		mm.setUser(u);

+        		mm.setDeleted(false);

+        		mm.setInserted(a.getInserted());

+        		mm.setUpdated(a.getUpdated());

+        		mm.setAppointment(a);

+        		attendees.add(mm);

+        	}

+        }

+        a.setMeetingMembers(attendees);

+        getBean(AppointmentDao.class).update(a, getUserId());

+		target.add(feedback);

+		calendar.refresh(target);

+	}

+	

+	private boolean isOwner(Appointment object) {

+		return object.getOwner() != null && getUserId() == object.getOwner().getUser_id();

+	}

+	

+	private class AppointmentForm extends Form<Appointment> {

+		private static final long serialVersionUID = 1L;

+		private boolean createRoom = true;

+		private DateTimeField start;

+		private DateTimeField end;

+		private final PasswordTextField pwd = new PasswordTextField("password");

+		private final Label owner = new Label("owner");

+

+		@Override

+		protected void onModelChanged() {

+			super.onModelChanged();

+			

+			Appointment a = getModelObject();

+			List<AppointmentReminderTyps> remindTypes = getRemindTypes();

+			if (a.getRemind() == null && !remindTypes.isEmpty()) {

+				a.setRemind(remindTypes.get(0));

+			}

+			

+			List<RoomType> roomTypes = getRoomTypes();

+			if (a.getRoom() == null) {

+				Room r = new Room();

+				r.setAppointment(true);

+				a.setRoom(r);

+			}

+			if (a.getRoom().getRoomtype() == null && !roomTypes.isEmpty()) {

+				a.getRoom().setRoomtype(roomTypes.get(0));

+			}

+			if (a.getId() == null) {

+				java.util.Calendar start = WebSession.getCalendar();

+				start.setTime(a.getStart());

+				java.util.Calendar end = WebSession.getCalendar();

+				end.setTime(a.getEnd());

+				

+				if (start.equals(end)) {

+					end.add(java.util.Calendar.HOUR_OF_DAY, 1);

+					a.setEnd(end.getTime());

+				}

+			}

+			attendeesModel.setObject(new ArrayList<User>());

+			if (a.getMeetingMembers() != null) {

+				for (MeetingMember mm : a.getMeetingMembers()) {

+					attendeesModel.getObject().add(mm.getUser());

+				}

+			}

+			pwd.setEnabled(a.isPasswordProtected());

+			owner.setOutputMarkupId(true);

+			owner.setDefaultModel(Model.of(FormatHelper.formatUser(a.getOwner())));

+			owner.setVisible(!isOwner(a));

+		}

+		

+		public AppointmentForm(String id, IModel<Appointment> model) {

+			super(id, model);

+			setOutputMarkupId(true);

+			add(new AttributeAppender("class", new Model<String>("appointmentPopUp"), " "));

+			

+			add(feedback.setOutputMarkupId(true));

+			add(new RequiredTextField<String>("title").setLabel(Model.of(WebSession.getString(572))));

+			DefaultWysiwygToolbar toolbar = new DefaultWysiwygToolbar("toolbarContainer");

+			add(toolbar);

+			add(new WysiwygEditor("description", toolbar));

+			add(new TextField<String>("location"));

+			add(start = new DateTimeField("start"));

+			add(end = new DateTimeField("end"));

+			pwd.setEnabled(getModelObject().isPasswordProtected());

+			pwd.setOutputMarkupId(true);

+			add(pwd);

+			

+			List<AppointmentReminderTyps> remindTypes = getRemindTypes();

+			add(new DropDownChoice<AppointmentReminderTyps>(

+					"remind"

+					, remindTypes

+					, new ChoiceRenderer<AppointmentReminderTyps>("label.value", "typId")));

+			

+			final DropDownChoice<RoomType> roomType = new RoomTypeDropDown("room.roomtype");

+			roomType.setEnabled(createRoom);

+			roomType.setOutputMarkupId(true);

+			add(roomType);

+			

+			final DropDownChoice<Room> room = new DropDownChoice<Room>(

+					"room"

+					, getRoomList()

+					, new ChoiceRenderer<Room>("name", "rooms_id"));

+			room.setEnabled(!createRoom);

+			room.setOutputMarkupId(true);

+			add(room);

+			add(new AjaxCheckBox("createRoom", new PropertyModel<Boolean>(this, "createRoom")) {

+				private static final long serialVersionUID = -3743113990890386035L;

+

+				@Override

+				protected void onUpdate(AjaxRequestTarget target) {

+					createRoom = getConvertedInput();

+					target.add(roomType.setEnabled(createRoom), room.setEnabled(!createRoom));

+				}

+			});

+			add(new AjaxCheckBox("passwordProtected") {

+				private static final long serialVersionUID = 6041200584296439976L;

+

+				@Override

+				protected void onUpdate(AjaxRequestTarget target) {

+					AppointmentForm.this.getModelObject().setPasswordProtected(getConvertedInput());

+					pwd.setEnabled(AppointmentForm.this.getModelObject().isPasswordProtected());

+					target.add(pwd);

+				}

+			});

+			add(new UserMultiChoice("attendees", attendeesModel));

+				

+			add(owner);

+

+		}

+		

+		private List<AppointmentReminderTyps> getRemindTypes() {

+			return getBean(AppointmentReminderTypDao.class).getAppointmentReminderTypList(getLanguage());

+		}

+		

+		private List<Room> getRoomList() {

+			//FIXME need to be reviewed

+			List<Room> result = new ArrayList<Room>();

+			RoomDao dao = getBean(RoomDao.class);

+			result.addAll(dao.getPublicRooms());

+			for (Organisation_Users ou : getBean(UserDao.class).get(getUserId()).getOrganisation_users()) {

+				result.addAll(dao.getOrganisationRooms(ou.getOrganisation().getOrganisation_id()));

+			}

+			if (getModelObject().getRoom() != null && getModelObject().getRoom().getAppointment()) { //FIXME review

+				result.add(getModelObject().getRoom());

+			}

+			return result;

+		}

+		

+		@Override

+		protected void onValidate() {

+			if (end.getConvertedInput().before(start.getConvertedInput())) {

+				error(WebSession.getString(1592));

+			}

+		}

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentModel.java b/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentModel.java
new file mode 100644
index 0000000..9fed893
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/calendar/AppointmentModel.java
@@ -0,0 +1,50 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.user.calendar;

+

+import java.util.ArrayList;

+import java.util.List;

+

+import org.apache.openmeetings.db.dao.calendar.AppointmentDao;

+import org.apache.openmeetings.db.entity.calendar.Appointment;

+import org.apache.openmeetings.web.app.Application;

+import org.apache.openmeetings.web.app.WebSession;

+

+import com.googlecode.wicket.jquery.ui.calendar.CalendarEvent;

+import com.googlecode.wicket.jquery.ui.calendar.CalendarModel;

+import com.googlecode.wicket.jquery.ui.calendar.ICalendarVisitor;

+

+public class AppointmentModel extends CalendarModel implements ICalendarVisitor {

+	private static final long serialVersionUID = -8707880381422490413L;

+

+	public void visit(CalendarEvent event) {

+		//every event can be customized

+	}

+

+	@Override

+	protected List<? extends CalendarEvent> load() {

+		List<CalendarEvent> list = new ArrayList<CalendarEvent>();

+		for (Appointment a : Application.getBean(AppointmentDao.class).getAppointmentsByRange(WebSession.getUserId(), this.getStart(), this.getEnd())) {

+			CalendarEvent c = new OmCalendarEvent(a.getId().intValue(), a.getTitle(), a.getStart(), a.getEnd());

+			list.add(c);

+		}

+		return list;

+	}

+

+}

diff --git a/src/web/java/org/apache/openmeetings/web/user/calendar/CalendarFunctionsBehavior.java b/src/web/java/org/apache/openmeetings/web/user/calendar/CalendarFunctionsBehavior.java
new file mode 100644
index 0000000..76616f2
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/calendar/CalendarFunctionsBehavior.java
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/**
+ * @author Sebastien Briquet
+ */
+package org.apache.openmeetings.web.user.calendar;
+
+import java.util.Map;
+
+import org.apache.wicket.Component;
+import org.apache.wicket.behavior.Behavior;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.markup.head.PriorityHeaderItem;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.request.resource.ResourceReference;
+import org.apache.wicket.resource.TextTemplateResourceReference;
+import org.apache.wicket.util.collections.MicroMap;
+
+public class CalendarFunctionsBehavior extends Behavior {
+	private static final long serialVersionUID = 1L;
+	private final String markupId;
+	
+	public CalendarFunctionsBehavior(String markupId) {
+		this.markupId = markupId;
+	}
+	
+	private IModel<Map<String, Object>> newResourceModel() {
+		return Model.ofMap(new MicroMap<String, Object>("markupId", this.markupId));
+	}
+	
+	private ResourceReference newResourceReference() {
+		return new TextTemplateResourceReference(CalendarFunctionsBehavior.class, "calendar-functions.js", this.newResourceModel());
+	}
+	
+	@Override
+	public void renderHead(Component component, IHeaderResponse response) {
+		super.renderHead(component, response);
+		response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(this.newResourceReference(), "calendar-functions")));
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.html b/src/web/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.html
new file mode 100644
index 0000000..6468e94
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.html
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+	<wicket:panel>
+		<div id="wrapper-panel-frame" class="ui-corner-all">
+			<form wicket:id="form">
+				<div id="calendar" wicket:id="calendar"></div>
+				<br/>
+				<!-- div wicket:id="feedback"></div -->
+			</form>
+		</div>
+		<div wicket:id="appointment">[appointment]</div>
+		<!-- bottom section -->
+	</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java b/src/web/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
new file mode 100644
index 0000000..cb5c9d5
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
@@ -0,0 +1,261 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user.calendar;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getClientTimeZone;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.common.UserPanel;
+import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.json.JSONArray;
+import org.apache.wicket.ajax.json.JSONException;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.util.time.Duration;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.jquery.ui.calendar.Calendar;
+import com.googlecode.wicket.jquery.ui.calendar.CalendarView;
+
+public class CalendarPanel extends UserPanel {
+	private static final Logger log = Red5LoggerFactory.getLogger(CalendarPanel.class, webAppRootKey);
+	private static final long serialVersionUID = 1L;
+	private static final String javaScriptMarkup = "setCalendarHeight();";
+	private static final String javaScriptAddDatepicker = "addCalButton('left', 'Datepicker', 'datepicker');";
+	private static final SimpleDateFormat formatDateJava = new SimpleDateFormat("MM/dd/yy");
+	private final AbstractAjaxTimerBehavior refreshTimer = new AbstractAjaxTimerBehavior(Duration.seconds(10)) {
+		private static final long serialVersionUID = 1L;
+
+		@Override
+		protected void onTimer(AjaxRequestTarget target) {
+			target.appendJavaScript("setCalendarHeight();");
+			refresh(target);
+		}
+	};
+	private Calendar calendar;
+	
+	@Override
+	public void onMenuPanelLoad(AjaxRequestTarget target) {
+	}
+
+	@Override
+	public void cleanup(AjaxRequestTarget target) {
+		refreshTimer.stop(target);
+	}
+	
+	private AppointmentDao getDao() {
+		return getBean(AppointmentDao.class);
+	}
+	
+	private AppointmentReminderTypDao getAppointmentReminderTypDao() {
+		return getBean(AppointmentReminderTypDao.class);
+	}
+	
+	public void refresh(AjaxRequestTarget target) {
+		calendar.refresh(target);
+	}
+	
+	@Override
+	public void renderHead(IHeaderResponse response) {
+		super.renderHead(response);
+
+		AjaxRequestTarget target = getRequestCycle().find(AjaxRequestTarget.class);
+		if (target != null) {
+			target.appendJavaScript(javaScriptMarkup);
+			target.appendJavaScript(javaScriptAddDatepicker);
+		} else {
+			response.render(JavaScriptHeaderItem.forScript(javaScriptMarkup, this.getId()));
+		}
+	}
+
+	public CalendarPanel(String id) {
+		super(id);
+		
+		final Form<Date> form = new Form<Date>("form");
+		add(form);
+		
+		final AppointmentDialog dialog = new AppointmentDialog("appointment", WebSession.getString(815)
+				, this, new CompoundPropertyModel<Appointment>(getDefault()));
+		add(dialog);
+		
+		Options options = new Options();
+		options.set("header", "{left: 'prevYear,prev,next,nextYear today', center: 'title', right: 'month,agendaWeek,agendaDay'}");
+		options.set("allDaySlot", false);
+		options.set("axisFormat", "'HH(:mm)'");
+		options.set("defaultEventMinutes", 60);
+		options.set("timeFormat", "{agenda: 'HH:mm{ - HH:mm}', '': 'HH(:mm)'}");
+
+		options.set("buttonText", "{month: '" + WebSession.getString(801) +
+								"', week: '" + WebSession.getString(800) + 
+								"', day: '"  + WebSession.getString(799) + 
+								"', today: '"  + WebSession.getString(1555) + 
+								"'}");
+
+		JSONArray monthes = new JSONArray();
+		JSONArray shortMonthes = new JSONArray();
+		JSONArray days = new JSONArray();
+		JSONArray shortDays = new JSONArray();
+		try {
+			// first week day must be Sunday
+			days.put(0, WebSession.getString(466));
+			shortDays.put(0, WebSession.getString(459));
+			for (int i=0; i < 12; i++){
+				monthes.put(i, WebSession.getString(469 + i));
+				shortMonthes.put(i, WebSession.getString(1556 + i));
+				if (i+1 < 7){
+					days.put(i+1, WebSession.getString(460 + i));
+					shortDays.put(i+1, WebSession.getString(453 + i));					
+				}
+			}
+		} catch (JSONException e) {
+			log.error("Unexpected error while creating label lists", e);
+		}
+		options.set("monthNames", monthes.toString());
+		options.set("monthNamesShort", shortMonthes.toString());
+		options.set("dayNames", days.toString());
+		options.set("dayNamesShort", shortDays.toString());
+		
+		calendar = new Calendar("calendar", new AppointmentModel(), options) {
+			private static final long serialVersionUID = 8442068089963449950L;
+			
+			@Override
+			protected void onInitialize() {
+				super.onInitialize();
+				add(new CalendarFunctionsBehavior(getMarkupId()));
+			}
+			
+			@Override
+			public boolean isSelectable() {
+				return true;
+			}
+			
+			@Override
+			public boolean isDayClickEnabled() {
+				return true;
+			}
+			
+			@Override
+			public boolean isEventClickEnabled() {
+				return true;
+			}
+			
+			@Override
+			public boolean isEventDropEnabled() {
+				return true;
+			}
+			
+			@Override
+			public boolean isEventResizeEnabled() {
+				return true;
+			}
+			
+			//no need to override onDayClick
+			
+			@Override
+			public void onSelect(AjaxRequestTarget target, CalendarView view, Date start, Date end, boolean allDay) {
+				target.appendJavaScript("setDatepickerDate('datepicker','" +  formatDateJava.format(start) + "');");
+				Appointment a = getDefault();
+				if (CalendarView.month == view && start.equals(end)) {
+					java.util.Calendar cNow = java.util.Calendar.getInstance(getClientTimeZone());
+					java.util.Calendar cStart = java.util.Calendar.getInstance(getClientTimeZone());
+					cStart.setTime(start);
+					cStart.set(java.util.Calendar.HOUR_OF_DAY, cNow.get(java.util.Calendar.HOUR_OF_DAY));
+					cStart.set(java.util.Calendar.MINUTE, cNow.get(java.util.Calendar.MINUTE));
+					cStart.set(java.util.Calendar.SECOND, 0);
+					cStart.set(java.util.Calendar.MILLISECOND, 0);
+					a.setStart(cStart.getTime());
+					cStart.add(java.util.Calendar.HOUR_OF_DAY, 1);
+					a.setEnd(cStart.getTime());
+				} else {
+					a.setStart(start);
+					a.setEnd(end);
+				}
+				dialog.setModelObjectWithAjaxTarget(a, target);
+				
+				dialog.open(target);
+			}
+			
+			@Override
+			public void onEventClick(AjaxRequestTarget target, CalendarView view, int eventId) {
+				Appointment a = getDao().get((long)eventId);
+				dialog.setModelObjectWithAjaxTarget(a, target);
+				
+				dialog.open(target);
+			}
+			
+			@Override
+			public void onEventDrop(AjaxRequestTarget target, int eventId, long delta, boolean allDay) {
+				AppointmentDao dao = getDao();
+				Appointment a = dao.get((long)eventId);
+				
+				java.util.Calendar cal = WebSession.getCalendar();
+				cal.setTime(a.getStart());
+				cal.add(java.util.Calendar.MILLISECOND, (int)delta); //FIXME?
+				a.setStart(cal.getTime());
+				
+				cal.setTime(a.getEnd());
+				cal.add(java.util.Calendar.MILLISECOND, (int)delta); //FIXME?
+				a.setEnd(cal.getTime());
+				
+				dao.update(a, getUserId());
+				//FIXME add feedback info
+			}
+
+			@Override
+			public void onEventResize(AjaxRequestTarget target, int eventId, long delta) {
+				AppointmentDao dao = getDao();
+				Appointment a = dao.get((long)eventId);
+				java.util.Calendar cal = WebSession.getCalendar();
+				cal.setTime(a.getEnd());
+				cal.add(java.util.Calendar.MILLISECOND, (int)delta); //FIXME?
+				a.setEnd(cal.getTime());
+				
+				dao.update(a, getUserId());
+				//FIXME add feedback info
+			}
+		};
+		
+		form.add(calendar);
+		add(refreshTimer);
+	}
+	
+	private Appointment getDefault() {
+		Appointment a = new Appointment();
+		a.setRemind(getAppointmentReminderTypDao().get(3L)); //TODO: Make configurable
+		a.setOwner(getBean(UserDao.class).get(getUserId()));
+		a.setTitle(WebSession.getString(1444));
+		log.debug(" -- getDefault -- Current model " + a);
+		return a;
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/user/calendar/OmCalendarEvent.java b/src/web/java/org/apache/openmeetings/web/user/calendar/OmCalendarEvent.java
new file mode 100644
index 0000000..537160f
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/calendar/OmCalendarEvent.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user.calendar;
+
+import static org.apache.openmeetings.web.app.WebSession.ISO8601_FORMAT_STRING;
+import static org.apache.openmeetings.web.app.WebSession.getCalendar;
+import static org.apache.openmeetings.web.app.WebSession.getUserTimeZone;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.jquery.ui.calendar.CalendarEvent;
+
+public class OmCalendarEvent extends CalendarEvent {
+	private static final long serialVersionUID = 1L;
+	private final DateFormat ISO8601;
+
+	public OmCalendarEvent(int id, String title, Date start, Date end) {
+		super(id, title, start, end);
+		setAllDay(false);
+		ISO8601 = new SimpleDateFormat(ISO8601_FORMAT_STRING);
+		ISO8601.setCalendar(getCalendar());
+		ISO8601.setTimeZone(getUserTimeZone());
+	}
+
+	@Override
+	protected Options createOptions() {
+		Options o = super.createOptions();
+		if (getStart() != null) {
+			o.set("start", "\"" + ISO8601.format(getStart()) + "\"");
+		}
+		if (getEnd() != null) {
+			o.set("end", "\"" + ISO8601.format(getEnd()) + "\"");
+		}
+		return o;
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/user/calendar/calendar-functions.js b/src/web/java/org/apache/openmeetings/web/user/calendar/calendar-functions.js
new file mode 100644
index 0000000..60c6252
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/calendar/calendar-functions.js
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/**
+ * @author Sebastien Briquet
+ */
+function getCalendarHeight() {
+    return $(window).height() - $('#${markupId}').position().top - 20;
+}
+
+function setCalendarHeight() {
+	var cal = $('#${markupId}');
+	if (cal.length) {
+    	cal.fullCalendar('option', 'height', getCalendarHeight());
+	}
+}
+
+$(function() {
+    $(window).load(function() { setCalendarHeight(); } );
+});
+
+function addCalButton(where, text, id) {
+	var my_button = '<span class="fc-header-space"></span>' +
+		'<span class="fc-button fc-state-default fc-corner-right fc-corner-left">' +
+		'<input type="text" id="' + id + '" value="' + text +'" /></span>';
+	$("td.fc-header-" + where).append(my_button);
+	 
+	var dp = $("#"+id);
+	dp.datepicker({
+		showOn: "button",
+		buttonImage: "images/calendar.gif",
+		buttonImageOnly: true,
+		changeMonth: true,
+		changeYear: true,
+		changeDay: true,
+		onChangeMonthYear: function(year, month, inst) {
+		     var date = new Date();
+		     $('#${markupId}').fullCalendar('gotoDate', year, month-1, date.getDate());
+		},
+		onSelect: function(dateText, inst) {
+		     var date = new Date(dateText);
+		     $('#${markupId}').fullCalendar('gotoDate', date.getFullYear(), date.getMonth(), date.getDate());
+		}
+	});
+	
+	dp.datepicker("option", "dayNames", $('#${markupId}').fullCalendar("option","dayNames"));
+	dp.datepicker("option", "dayNamesShort", $('#${markupId}').fullCalendar("option","dayNamesShort"));
+	dp.datepicker("option", "dayNamesMin", $('#${markupId}').fullCalendar("option","dayNamesShort"));
+	dp.datepicker("option", "monthNames", $('#${markupId}').fullCalendar("option","monthNames"));
+	dp.datepicker("option", "monthNamesShort", $('#${markupId}').fullCalendar("option","monthNamesShort"));
+	
+	dp.hide();
+}
+ 
+function setDatepickerDate(id, date) {
+	$("#"+id).datepicker('setDate', date);
+}
diff --git a/src/web/java/org/apache/openmeetings/web/user/dashboard/OmDashboardPanel.html b/src/web/java/org/apache/openmeetings/web/user/dashboard/OmDashboardPanel.html
new file mode 100644
index 0000000..63665f4
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/dashboard/OmDashboardPanel.html
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<html xmlns:wicket="http://wicket.apache.org">

+	<wicket:panel>

+		<div wicket:id="dashboard" class="dashboard"></div>

+	</wicket:panel>

+</html>

diff --git a/src/web/java/org/apache/openmeetings/web/user/dashboard/OmDashboardPanel.java b/src/web/java/org/apache/openmeetings/web/user/dashboard/OmDashboardPanel.java
new file mode 100644
index 0000000..1d57488
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/dashboard/OmDashboardPanel.java
@@ -0,0 +1,36 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.user.dashboard;

+

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.openmeetings.web.common.UserPanel;

+import org.apache.wicket.model.Model;

+

+import ro.fortsoft.wicket.dashboard.Dashboard;

+import ro.fortsoft.wicket.dashboard.web.DashboardPanel;

+

+public class OmDashboardPanel extends UserPanel {

+	private static final long serialVersionUID = 7815949875883825949L;

+

+	public OmDashboardPanel(String id) {

+		super(id);

+

+		add(new DashboardPanel("dashboard", new Model<Dashboard>(WebSession.getDashboard())));

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/user/dashboard/PrivateRoomsWidget.java b/src/web/java/org/apache/openmeetings/web/user/dashboard/PrivateRoomsWidget.java
new file mode 100644
index 0000000..a2b8a47
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/dashboard/PrivateRoomsWidget.java
@@ -0,0 +1,47 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.user.dashboard;

+

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.wicket.model.Model;

+

+import ro.fortsoft.wicket.dashboard.AbstractWidget;

+import ro.fortsoft.wicket.dashboard.Widget;

+import ro.fortsoft.wicket.dashboard.WidgetLocation;

+import ro.fortsoft.wicket.dashboard.web.WidgetView;

+

+public class PrivateRoomsWidget extends AbstractWidget {

+	private static final long serialVersionUID = 1769428980617610979L;

+

+	public PrivateRoomsWidget() {

+		super();

+		location = new WidgetLocation(0, 1);

+		init();

+	}

+	

+	@Override

+	public void init() {

+		super.init();

+		title = WebSession.getString(781L);

+	}

+	

+	public WidgetView createView(String viewId) {

+		return new PrivateRoomsWidgetView(viewId, new Model<Widget>(this));

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/user/dashboard/PrivateRoomsWidgetDescriptor.java b/src/web/java/org/apache/openmeetings/web/user/dashboard/PrivateRoomsWidgetDescriptor.java
new file mode 100644
index 0000000..07756f7
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/dashboard/PrivateRoomsWidgetDescriptor.java
@@ -0,0 +1,47 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.user.dashboard;

+

+import org.apache.openmeetings.web.app.WebSession;

+

+import ro.fortsoft.wicket.dashboard.WidgetDescriptor;

+

+public class PrivateRoomsWidgetDescriptor implements WidgetDescriptor {

+	private static final long serialVersionUID = 389662353299319574L;

+

+	public String getName() {

+		return WebSession.getString(781L);

+	}

+

+	public String getProvider() {

+		return "Apache Openmeetings";

+	}

+

+	public String getDescription() {

+		return WebSession.getString(782L);

+	}

+

+	public String getWidgetClassName() {

+		return PrivateRoomsWidget.class.getName();

+	}

+

+	public String getTypeName() {

+		return "om.widget.privaterooms";

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/user/dashboard/PrivateRoomsWidgetView.html b/src/web/java/org/apache/openmeetings/web/user/dashboard/PrivateRoomsWidgetView.html
new file mode 100644
index 0000000..3ae8f1d
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/dashboard/PrivateRoomsWidgetView.html
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<html xmlns:wicket="http://wicket.apache.org">

+	<wicket:panel>

+    	<div wicket:id="rooms"></div>

+	</wicket:panel>

+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/user/dashboard/PrivateRoomsWidgetView.java b/src/web/java/org/apache/openmeetings/web/user/dashboard/PrivateRoomsWidgetView.java
new file mode 100644
index 0000000..06fb9a9
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/dashboard/PrivateRoomsWidgetView.java
@@ -0,0 +1,37 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.user.dashboard;

+

+import static org.apache.openmeetings.web.common.UserPanel.getMyRooms;

+

+import org.apache.openmeetings.web.user.rooms.RoomsPanel;

+import org.apache.wicket.model.Model;

+

+import ro.fortsoft.wicket.dashboard.Widget;

+import ro.fortsoft.wicket.dashboard.web.WidgetView;

+

+public class PrivateRoomsWidgetView extends WidgetView {

+	private static final long serialVersionUID = 6950427893821991173L;

+

+	public PrivateRoomsWidgetView(String id, Model<Widget> model) {

+		super(id, model);

+		

+		add(new RoomsPanel("rooms", getMyRooms()));

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/user/dashboard/RssWidget.java b/src/web/java/org/apache/openmeetings/web/user/dashboard/RssWidget.java
new file mode 100644
index 0000000..f76a877
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/dashboard/RssWidget.java
@@ -0,0 +1,47 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.user.dashboard;

+

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.wicket.model.Model;

+

+import ro.fortsoft.wicket.dashboard.AbstractWidget;

+import ro.fortsoft.wicket.dashboard.Widget;

+import ro.fortsoft.wicket.dashboard.WidgetLocation;

+import ro.fortsoft.wicket.dashboard.web.WidgetView;

+

+public class RssWidget extends AbstractWidget {

+	private static final long serialVersionUID = 8866852061674736808L;

+

+	public RssWidget() {

+		super();

+		location = new WidgetLocation(1, 1);

+		init();

+	}

+	

+	@Override

+	public void init() {

+		super.init();

+		title = WebSession.getString(277L);

+	}

+	

+	public WidgetView createView(String viewId) {

+		return new RssWidgetView(viewId, new Model<Widget>(this));

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/user/dashboard/RssWidgetDescriptor.java b/src/web/java/org/apache/openmeetings/web/user/dashboard/RssWidgetDescriptor.java
new file mode 100644
index 0000000..e5f35d9
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/dashboard/RssWidgetDescriptor.java
@@ -0,0 +1,47 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.user.dashboard;

+

+import org.apache.openmeetings.web.app.WebSession;

+

+import ro.fortsoft.wicket.dashboard.WidgetDescriptor;

+

+public class RssWidgetDescriptor implements WidgetDescriptor {

+	private static final long serialVersionUID = -9113376703084624276L;

+

+	public String getName() {

+		return WebSession.getString(277L);

+	}

+

+	public String getProvider() {

+		return "Apache Openmeetings";

+	}

+

+	public String getDescription() {

+		return WebSession.getString(277L);

+	}

+

+	public String getWidgetClassName() {

+		return RssWidget.class.getName();

+	}

+

+	public String getTypeName() {

+		return "om.widget.rss";

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/user/dashboard/RssWidgetView.html b/src/web/java/org/apache/openmeetings/web/user/dashboard/RssWidgetView.html
new file mode 100644
index 0000000..4671c4e
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/dashboard/RssWidgetView.html
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:head>
+	<script type="text/javascript">
+		var MAX_ITEM_COUNT = 5;
+		function getRssItems(url, next) {
+			//TODO items need to be merged and sorted by date
+			$.ajax({
+				url: url
+				, type: 'GET'
+			    , crossDomain: true
+				, dataType: 'xml'
+				, success: function(data, status, xhr) {
+					var $xml = $(data);
+					var counter = MAX_ITEM_COUNT;
+					$xml.find("item").each(function() {
+						var $this = $(this), item = {
+							title : $this.find("title").text(),
+							link : $this.find("link").text(),
+							description : $this.find("description").text(),
+							pubDate : $this.find("pubDate").text(),
+							author : $this.find("author").text()
+						}
+						addItem(item);
+						if (--counter < 0) {
+							return false;
+						}
+					});
+					counter = MAX_ITEM_COUNT;
+					$xml.find("entry").each(function() {
+						var $this = $(this), item = {
+							title : $this.find("title").text(),
+							link : $this.find("link").text(),
+							description : $this.find("content"),
+							pubDate : $this.find("published").text(),
+							author : $this.find("author").text()
+						}
+						addItem(item);
+						if (--counter < 0) {
+							return false;
+						}
+					});
+					if (next) {
+						getRssItems(next, null)
+					} else {
+						$('#feeds').accordion({collapsible: true, active: false, header: 'h3'});
+					}
+				}
+			});
+		}
+		function addItem(item) {
+			//TODO need to be checked
+			$('#feeds').append('<h3>' + item.title + '</h3>')
+				.append($('<div></div>').append(item.description));
+		}
+		function loadRssTab(url1, url2) {
+			$('#feedcontainer').html('');
+			$('#feedcontainer').append('<div id="feeds"></div>');
+			getRssItems(url1, url2);
+		}
+	</script>
+</wicket:head>
+<wicket:panel>
+	<div id="feedcontainer"></div>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/user/dashboard/RssWidgetView.java b/src/web/java/org/apache/openmeetings/web/user/dashboard/RssWidgetView.java
new file mode 100644
index 0000000..0b38886
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/dashboard/RssWidgetView.java
@@ -0,0 +1,95 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.user.dashboard;

+

+import static org.apache.openmeetings.rss.LoadAtomRssFeed.getFeedConnection;

+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_RSS_FEED1_KEY;

+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_RSS_FEED2_KEY;

+import static org.apache.openmeetings.web.app.Application.getBean;

+

+import java.io.IOException;

+import java.io.InputStream;

+import java.net.HttpURLConnection;

+

+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;

+import org.apache.wicket.behavior.AbstractAjaxBehavior;

+import org.apache.wicket.markup.head.IHeaderResponse;

+import org.apache.wicket.markup.head.OnDomReadyHeaderItem;

+import org.apache.wicket.model.Model;

+import org.apache.wicket.request.handler.resource.ResourceStreamRequestHandler;

+import org.apache.wicket.request.resource.ContentDisposition;

+import org.apache.wicket.util.resource.AbstractResourceStream;

+import org.apache.wicket.util.resource.ResourceStreamNotFoundException;

+

+import ro.fortsoft.wicket.dashboard.Widget;

+import ro.fortsoft.wicket.dashboard.web.WidgetView;

+

+public class RssWidgetView extends WidgetView {

+	private static final long serialVersionUID = -6257866996099503210L;

+	private RSSFeedBehavior feed1; 

+	private RSSFeedBehavior feed2; 

+

+	public RssWidgetView(String id, Model<Widget> model) {

+		super(id, model);

+		ConfigurationDao cfgDao = getBean(ConfigurationDao.class);

+		add(feed1 = new RSSFeedBehavior(cfgDao.getConfValue(CONFIG_RSS_FEED1_KEY, String.class, "")));

+		add(feed2 = new RSSFeedBehavior(cfgDao.getConfValue(CONFIG_RSS_FEED2_KEY, String.class, "")));

+	}

+	

+	@Override

+	public void renderHead(IHeaderResponse response) {

+		super.renderHead(response);

+		response.render(OnDomReadyHeaderItem.forScript("loadRssTab('" + feed1.getCallbackUrl() + "',"

+				+ "'" + feed2.getCallbackUrl() + "');")) ;

+	}

+	

+	class RSSFeedBehavior extends AbstractAjaxBehavior {

+		private static final long serialVersionUID = 721009368063152450L;

+		private String url;

+

+		RSSFeedBehavior(String url) {

+			this.url = url;

+		}

+		

+		public void onRequest() {

+			ResourceStreamRequestHandler handler = new ResourceStreamRequestHandler(new AbstractResourceStream() {

+				private static final long serialVersionUID = -322593118428697261L;

+				HttpURLConnection con;

+				

+				public InputStream getInputStream() throws ResourceStreamNotFoundException {

+					try {

+						con = getFeedConnection(url);

+						con.connect();

+						return con.getInputStream();

+					} catch (IOException e) {

+						throw new ResourceStreamNotFoundException();

+					}

+				}

+

+				public void close() throws IOException {

+					if (con != null) {

+						con.disconnect();

+					}

+				}

+			}, "feed");

+			handler.setContentDisposition(ContentDisposition.ATTACHMENT);

+			getComponent().getRequestCycle().scheduleRequestHandlerAfterCurrent(handler);

+		}

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/user/dashboard/StartWidget.java b/src/web/java/org/apache/openmeetings/web/user/dashboard/StartWidget.java
new file mode 100644
index 0000000..5a347f4
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/dashboard/StartWidget.java
@@ -0,0 +1,47 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.user.dashboard;

+

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.wicket.model.Model;

+

+import ro.fortsoft.wicket.dashboard.AbstractWidget;

+import ro.fortsoft.wicket.dashboard.Widget;

+import ro.fortsoft.wicket.dashboard.WidgetLocation;

+import ro.fortsoft.wicket.dashboard.web.WidgetView;

+

+public class StartWidget extends AbstractWidget {

+	private static final long serialVersionUID = 9060237325733825899L;

+

+	public StartWidget() {

+		super();

+		location = new WidgetLocation(1, 0);

+		init();

+	}

+	

+	@Override

+	public void init() {

+		super.init();

+		title = WebSession.getString(774L);

+	}

+	

+	public WidgetView createView(String viewId) {

+		return new StartWidgetView(viewId, new Model<Widget>(this));

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/user/dashboard/StartWidgetDescriptor.java b/src/web/java/org/apache/openmeetings/web/user/dashboard/StartWidgetDescriptor.java
new file mode 100644
index 0000000..3f4820f
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/dashboard/StartWidgetDescriptor.java
@@ -0,0 +1,47 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.user.dashboard;

+

+import org.apache.openmeetings.web.app.WebSession;

+

+import ro.fortsoft.wicket.dashboard.WidgetDescriptor;

+

+public class StartWidgetDescriptor implements WidgetDescriptor {

+	private static final long serialVersionUID = 2533010836978961930L;

+

+	public String getName() {

+		return WebSession.getString(774L);

+	}

+

+	public String getProvider() {

+		return "Apache Openmeetings";

+	}

+

+	public String getDescription() {

+		return WebSession.getString(804L);

+	}

+

+	public String getWidgetClassName() {

+		return StartWidget.class.getName();

+	}

+

+	public String getTypeName() {

+		return "om.widget.start";

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/user/dashboard/StartWidgetView.html b/src/web/java/org/apache/openmeetings/web/user/dashboard/StartWidgetView.html
new file mode 100644
index 0000000..1fbfb99
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/dashboard/StartWidgetView.html
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<html xmlns:wicket="http://wicket.apache.org">

+	<wicket:panel>

+		<h3><wicket:ommessage key="774"/></h3>

+		<div><div wicket:id="step1" class="clickable start_step1"><wicket:ommessage key="768"/></div></div>

+		<div><div wicket:id="step2" class="clickable start_step2"><wicket:ommessage key="771"/></div></div>

+		<div><div wicket:id="step3" class="clickable start_step3"><wicket:ommessage key="772"/></div></div>

+		<div><div wicket:id="step4" class="clickable start_step4"><wicket:ommessage key="773"/></div></div>

+		<table>

+			<tr>

+				<td><wicket:ommessage key="804" escape="false"/></td>

+				<td>

+					<button wicket:id="start" type="button"><wicket:ommessage key="788"/></button><br/>

+					<button wicket:id="calendar" type="button"><wicket:ommessage key="291"/></button>

+				</td>

+			</tr>

+		</table>

+	</wicket:panel>

+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/user/dashboard/StartWidgetView.java b/src/web/java/org/apache/openmeetings/web/user/dashboard/StartWidgetView.java
new file mode 100644
index 0000000..3a53812
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/dashboard/StartWidgetView.java
@@ -0,0 +1,67 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.user.dashboard;

+

+import static org.apache.openmeetings.web.util.OmUrlFragment.CALENDAR;

+import static org.apache.openmeetings.web.util.OmUrlFragment.ROOMS_PUBLIC;

+

+import org.apache.openmeetings.web.pages.MainPage;

+import org.apache.wicket.ajax.AjaxEventBehavior;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.markup.html.WebMarkupContainer;

+import org.apache.wicket.model.Model;

+

+import ro.fortsoft.wicket.dashboard.Widget;

+import ro.fortsoft.wicket.dashboard.web.WidgetView;

+

+import com.googlecode.wicket.jquery.ui.form.button.Button;

+

+public class StartWidgetView extends WidgetView {

+	private static final long serialVersionUID = -3886388347737468022L;

+

+	public StartWidgetView(String id, Model<Widget> model) {

+		super(id, model);

+		add(new WebMarkupContainer("step1").add(new PublicRoomsEventBehavior()));

+		add(new WebMarkupContainer("step2").add(new PublicRoomsEventBehavior()));

+		add(new WebMarkupContainer("step3").add(new PublicRoomsEventBehavior()));

+		add(new WebMarkupContainer("step4").add(new PublicRoomsEventBehavior()));

+		add(new Button("start").add(new PublicRoomsEventBehavior()));

+		add(new Button("calendar").add(new AjaxEventBehavior("onclick") {

+			private static final long serialVersionUID = 1L;

+

+			@Override

+			protected void onEvent(AjaxRequestTarget target) {

+				((MainPage)getPage()).updateContents(CALENDAR, target);

+			}

+		}));

+	}

+	

+	private class PublicRoomsEventBehavior extends AjaxEventBehavior {

+		private static final long serialVersionUID = 1L;

+

+		public PublicRoomsEventBehavior() {

+			super("onclick");

+		}

+		

+		@Override

+		protected void onEvent(AjaxRequestTarget target) {

+			((MainPage)getPage()).updateContents(ROOMS_PUBLIC, target);

+		}

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidget.java b/src/web/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidget.java
new file mode 100644
index 0000000..72a2080
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidget.java
@@ -0,0 +1,47 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.user.dashboard;

+

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.wicket.model.Model;

+

+import ro.fortsoft.wicket.dashboard.AbstractWidget;

+import ro.fortsoft.wicket.dashboard.Widget;

+import ro.fortsoft.wicket.dashboard.WidgetLocation;

+import ro.fortsoft.wicket.dashboard.web.WidgetView;

+

+public class WelcomeWidget extends AbstractWidget {

+	private static final long serialVersionUID = 8866852061674736808L;

+

+	public WelcomeWidget() {

+		super();

+		location = new WidgetLocation(0, 0);

+		init();

+	}

+	

+	@Override

+	public void init() {

+		super.init();

+		title = WebSession.getString(1546L);

+	}

+	

+	public WidgetView createView(String viewId) {

+		return new WelcomeWidgetView(viewId, new Model<Widget>(this));

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetDescriptor.java b/src/web/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetDescriptor.java
new file mode 100644
index 0000000..7f2758d
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetDescriptor.java
@@ -0,0 +1,47 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.user.dashboard;

+

+import org.apache.openmeetings.web.app.WebSession;

+

+import ro.fortsoft.wicket.dashboard.WidgetDescriptor;

+

+public class WelcomeWidgetDescriptor implements WidgetDescriptor {

+	private static final long serialVersionUID = 7835392425157215242L;

+

+	public String getName() {

+		return WebSession.getString(1546L);

+	}

+

+	public String getProvider() {

+		return "Apache Openmeetings";

+	}

+

+	public String getDescription() {

+		return WebSession.getString(1547L);

+	}

+

+	public String getWidgetClassName() {

+		return WelcomeWidget.class.getName();

+	}

+

+	public String getTypeName() {

+		return "om.widget.welcome";

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.html b/src/web/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.html
new file mode 100644
index 0000000..d8aa057
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.html
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<html xmlns:wicket="http://wicket.apache.org">

+<wicket:panel>

+   	<table>

+   		<tr>

+   			<td><div wicket:id="img"></div></td>

+   			<td>

+   				<h3><wicket:ommessage key="376"/>&nbsp;<span wicket:id="firstname"></span>&nbsp;<span wicket:id="lastname"></span></h3>

+   				<wicket:ommessage key="1143"/>&nbsp;<span wicket:id="tz"></span><br/>

+   				<wicket:ommessage key="378"/>&nbsp;<a wicket:id="openUnread"><span wicket:id="unread"></span></a><br/>

+   				<a wicket:id="editProfile"><wicket:ommessage key="377"/></a>

+   			</td>

+   		</tr>

+   		<tr>

+   			<td colspan="2" class="help support">

+   				<h3><wicket:ommessage key="281"/></h3>

+   				<a wicket:ommessage="href:282"><wicket:ommessage key="286"/></a><br/>

+   				<a wicket:ommessage="href:283"><wicket:ommessage key="287"/></a><br/>

+				<a wicket:id="netTest" target="_blank"><wicket:ommessage key="1527"/></a><br/>

+			</td>

+   		</tr>

+   	</table>

+</wicket:panel>

+</html>

diff --git a/src/web/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java b/src/web/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java
new file mode 100644
index 0000000..f1586c9
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java
@@ -0,0 +1,82 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.user.dashboard;

+

+import static org.apache.openmeetings.db.entity.user.PrivateMessage.INBOX_FOLDER_ID;

+import static org.apache.openmeetings.web.app.Application.getBean;

+import static org.apache.openmeetings.web.app.WebSession.getUserId;

+import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_EDIT;

+import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_MESSAGES;

+

+import org.apache.openmeetings.db.dao.user.PrivateMessagesDao;

+import org.apache.openmeetings.db.dao.user.UserDao;

+import org.apache.openmeetings.db.entity.user.User;

+import org.apache.openmeetings.web.common.UploadableProfileImagePanel;

+import org.apache.openmeetings.web.pages.MainPage;

+import org.apache.openmeetings.web.pages.SwfPage;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.ajax.markup.html.AjaxLink;

+import org.apache.wicket.markup.html.basic.Label;

+import org.apache.wicket.markup.html.link.Link;

+import org.apache.wicket.model.Model;

+import org.apache.wicket.request.mapper.parameter.PageParameters;

+

+import ro.fortsoft.wicket.dashboard.Widget;

+import ro.fortsoft.wicket.dashboard.web.WidgetView;

+

+public class WelcomeWidgetView extends WidgetView {

+	private static final long serialVersionUID = -6257866996099503210L;

+

+	public WelcomeWidgetView(String id, Model<Widget> model) {

+		super(id, model);

+

+		User u = getBean(UserDao.class).get(getUserId());

+		add(new UploadableProfileImagePanel("img", getUserId()));

+		 //FIXME this need to be aligned according to Locale

+		add(new Label("firstname", Model.of(u.getFirstname())));

+		add(new Label("lastname", Model.of(u.getLastname())));

+		add(new Label("tz", Model.of(u.getTimeZoneId())));

+		add(new AjaxLink<Void>("openUnread") {

+			private static final long serialVersionUID = -1847619557485964386L;

+

+			@Override

+			public void onClick(AjaxRequestTarget target) {

+				((MainPage)getPage()).updateContents(PROFILE_MESSAGES, target);

+			}

+		}.add(new Label("unread", Model.of("" + getBean(PrivateMessagesDao.class).count(getUserId(), INBOX_FOLDER_ID, null)))));

+		add(new AjaxLink<Void>("editProfile") {

+			private static final long serialVersionUID = -1847619557485964386L;

+

+			@Override

+			public void onClick(AjaxRequestTarget target) {

+				((MainPage)getPage()).updateContents(PROFILE_EDIT, target);

+			}

+		});

+		add(new Link<Void>("netTest") {

+			private static final long serialVersionUID = -9055312659797800331L;

+

+			@Override

+			public void onClick() {

+				PageParameters pp = new PageParameters();

+				pp.add("swf", "networktesting.swf10.swf");

+				setResponsePage(SwfPage.class, pp);

+			}

+		});

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/user/profile/MessageDialog.html b/src/web/java/org/apache/openmeetings/web/user/profile/MessageDialog.html
new file mode 100644
index 0000000..622578f
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/profile/MessageDialog.html
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:head>
+	<style type="text/css">
+		.ui-autocomplete {
+			z-index: 999 !important;
+		}
+	</style>
+</wicket:head>
+<wicket:panel>
+	<form wicket:id="form">
+		<table style="width: 100%;">
+			<tr>
+				<td colspan="2" wicket:id="feedback"></td>
+			</tr>
+			<tr>
+				<td class="messages column label"><wicket:ommessage key="1210"/></td>
+				<td wicket:ommessage="title:1588"><input class="messages text to" type="hidden" wicket:id="to"/></td>
+			</tr>
+			<tr>
+				<td class="messages column label"><wicket:ommessage key="1211"/></td>
+				<td><input class="messages text" type="text" wicket:id="subject"/></td>
+			</tr>
+			<tr>
+				<td colspan="2">
+					<div wicket:id="toolbarContainer"></div>
+					<div wicket:id="message"></div>
+				</td>
+			</tr>
+			<tr>
+				<td colspan="2"><input type="checkbox" wicket:id="bookedRoom" /><label wicket:for="bookedRoom"><wicket:ommessage key="1218"/></label></td>
+			</tr>
+			<tr wicket:id="roomParamsBlock">
+				<td colspan="2" wicket:id="roomParams">
+					<table style="width: 100%">
+						<tr>
+							<td style="width: 70px;">
+								<table>
+									<tr>
+										<td><wicket:ommessage key="194"/></td>
+										<td><select class="messages selector" wicket:id="room.roomtype"></select></td>
+									</tr>
+									<tr>
+										<td><wicket:ommessage key="570" /></td>
+										<td><span wicket:id="start"></span></td>
+									</tr>
+									<tr>
+										<td><wicket:ommessage key="571" /></td>
+										<td><span wicket:id="end"></span></td>
+									</tr>
+								</table>
+							</td>
+							<td><div class="info-text"><wicket:ommessage key="1221" /></div></td>
+						</tr>
+					</table>
+				</td>
+			</tr>
+		</table>
+	</form>
+</wicket:panel>
+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/user/profile/MessageDialog.java b/src/web/java/org/apache/openmeetings/web/user/profile/MessageDialog.java
new file mode 100644
index 0000000..832064c
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/profile/MessageDialog.java
@@ -0,0 +1,233 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user.profile;
+
+import static org.apache.openmeetings.db.entity.user.PrivateMessage.INBOX_FOLDER_ID;
+import static org.apache.openmeetings.db.entity.user.PrivateMessage.SENT_FOLDER_ID;
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.web.util.RoomTypeDropDown.getRoomTypes;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.openmeetings.data.conference.InvitationManager;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.user.PrivateMessagesDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.room.Invitation;
+import org.apache.openmeetings.db.entity.room.Invitation.Valid;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.user.PrivateMessage;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.User.Type;
+import org.apache.openmeetings.mail.MailHandler;
+import org.apache.openmeetings.util.LinkHelper;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.util.ContactsHelper;
+import org.apache.openmeetings.web.util.RoomTypeDropDown;
+import org.apache.openmeetings.web.util.UserMultiChoice;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.extensions.yui.calendar.DateTimeField;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.form.CheckBox;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.markup.html.panel.FeedbackPanel;
+import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.util.CollectionModel;
+
+import com.googlecode.wicket.jquery.ui.plugins.wysiwyg.WysiwygEditor;
+import com.googlecode.wicket.jquery.ui.plugins.wysiwyg.toolbar.DefaultWysiwygToolbar;
+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+
+public class MessageDialog extends AbstractFormDialog<PrivateMessage> {
+	private static final long serialVersionUID = 1L;
+	private final Form<PrivateMessage> form;
+	private FeedbackPanel feedback = new FeedbackPanel("feedback");
+	String sendLbl = WebSession.getString(218);
+	DialogButton send = new DialogButton(sendLbl);
+	private DialogButton cancel = new DialogButton(WebSession.getString(219));
+	private final WebMarkupContainer roomParamsBlock = new WebMarkupContainer("roomParamsBlock");
+	private final WebMarkupContainer roomParams = new WebMarkupContainer("roomParams");
+	private final IModel<Date> modelStart = Model.of(new Date());
+	private final IModel<Date> modelEnd = Model.of(new Date());
+	private boolean isPrivate = false; 
+	private final IModel<Collection<User>> modelTo = new CollectionModel<User>(new ArrayList<User>());
+
+	@Override
+	public int getWidth() {
+		return 650;
+	}
+	
+	public void open(AjaxRequestTarget target, long userId) {
+		getModelObject().setTo(getBean(UserDao.class).get(userId));
+		open(target);
+	}
+	
+	public MessageDialog reset(boolean isPrivate) {
+		modelStart.setObject(new Date());
+		modelEnd.setObject(new Date()); //TODO should we add 1 hour or generalize with Calendar???
+		modelTo.setObject(new ArrayList<User>());
+		PrivateMessage p = new PrivateMessage();
+		p.setFrom(getBean(UserDao.class).get(getUserId()));
+		p.setOwner(p.getFrom());
+		p.setIsRead(false);
+		p.setFolderId(INBOX_FOLDER_ID);
+		Room r = new Room();
+		r.setAppointment(true);
+		r.setRoomtype(getRoomTypes().get(0));
+		p.setRoom(r);
+		setModelObject(p);
+		roomParams.setVisible(getModelObject().isBookedRoom());
+		form.setModelObject(p);
+		this.isPrivate = isPrivate;
+		return this;
+	}
+	
+	@Override
+	protected void onOpen(AjaxRequestTarget target) {
+		if (getModel().getObject().getTo() != null) {
+			modelTo.getObject().add(getModel().getObject().getTo());
+		}
+		target.add(form);
+		super.onOpen(target);
+	}
+	
+	public MessageDialog(String id, CompoundPropertyModel<PrivateMessage> model) {
+		super(id, WebSession.getString(1209), model);
+		form = new Form<PrivateMessage>("form", getModel());
+		
+		form.add(feedback.setOutputMarkupId(true));
+		form.add(new UserMultiChoice("to", modelTo).setRequired(true));
+		form.add(new TextField<String>("subject"));
+		DefaultWysiwygToolbar toolbar = new DefaultWysiwygToolbar("toolbarContainer");
+		form.add(toolbar);
+		form.add(new WysiwygEditor("message", toolbar));
+		form.add(roomParamsBlock.setOutputMarkupId(true));
+		final CheckBox bookedRoom = new CheckBox("bookedRoom");
+		form.add(bookedRoom.setOutputMarkupId(true).add(new AjaxEventBehavior("click") {
+			private static final long serialVersionUID = 1L;
+			
+			@Override
+			protected void onEvent(AjaxRequestTarget target) {
+				PrivateMessage p = MessageDialog.this.getModelObject();
+				p.setBookedRoom(!p.isBookedRoom());
+				roomParams.setVisible(p.isBookedRoom());
+				target.add(bookedRoom, roomParamsBlock);
+			}
+		}));
+		roomParamsBlock.add(roomParams);
+		roomParams.add(new RoomTypeDropDown("room.roomtype"));
+		roomParams.add(new DateTimeField("start", modelStart));
+		roomParams.add(new DateTimeField("end", modelEnd));
+		add(form.setOutputMarkupId(true));
+	}
+
+	@Override
+	protected List<DialogButton> getButtons() {
+		return Arrays.asList(send, cancel);
+	}
+	
+	@Override
+	protected DialogButton getSubmitButton() {
+		return send;
+	}
+
+	@Override
+	public Form<PrivateMessage> getForm() {
+		return form;
+	}
+
+	@Override
+	protected void onError(AjaxRequestTarget target) {
+		target.add(feedback);
+	}
+
+	@Override
+	protected void onSubmit(AjaxRequestTarget target) {
+		PrivateMessage p = getModelObject();
+		p.setInserted(new Date());
+		if (p.isBookedRoom()) {
+			Room r = p.getRoom();
+			r.setName(p.getSubject());
+			r.setComment("");
+			r.setNumberOfPartizipants(100L);
+			r.setAppointment(false);
+			r.setAllowUserQuestions(true);
+			r.setAllowFontStyles(true);
+			r = getBean(RoomDao.class).update(r, getUserId());
+			p.setRoom(r);
+		} else {
+			p.setRoom(null);
+		}
+		PrivateMessagesDao msgDao = getBean(PrivateMessagesDao.class);
+		for (User to : modelTo.getObject()) {
+			UserDao userDao = getBean(UserDao.class); 
+			if (to.getUser_id() == null) {
+				userDao.update(to, getUserId());
+			}
+			//to send
+			p = new PrivateMessage(p);
+			p.setTo(to);
+			p.setFolderId(SENT_FOLDER_ID);
+			msgDao.update(p, getUserId());
+			//to inbox
+			p = new PrivateMessage(p);
+			p.setOwner(to);
+			p.setFolderId(INBOX_FOLDER_ID);
+			msgDao.update(p, getUserId());
+			if (to.getAdresses() != null) {
+				String aLinkHTML = 	(isPrivate && to.getType() == Type.user) ? "<br/><br/>" + "<a href='" + ContactsHelper.getLink() + "'>"
+							+ WebSession.getString(1302) + "</a><br/>" : "";
+				String invitation_link = "";
+				if (p.isBookedRoom()) {
+					Invitation i = getBean(InvitationManager.class).getInvitation(to, p.getRoom(),
+							false, null, Valid.Period
+							, userDao.get(getUserId()), userDao.get(getUserId()).getLanguage_id(),
+							modelStart.getObject(), modelEnd.getObject(), null);
+					
+					invitation_link = LinkHelper.getInvitationLink(getBean(ConfigurationDao.class).getBaseUrl(), i);
+
+					if (invitation_link == null) {
+						invitation_link = "";
+					} else {
+						invitation_link = "<br/>" //
+								+ WebSession.getString(503)
+								+ "<br/><a href='" + invitation_link
+								+ "'>"
+								+ WebSession.getString(504) + "</a><br/>";
+					}
+				}
+				
+				getBean(MailHandler.class).send(to.getAdresses().getEmail(),
+						WebSession.getString(1301) + p.getSubject(),
+						(p.getMessage() == null ? "" : p.getMessage().replaceAll("\\<.*?>", "")) + aLinkHTML + invitation_link);
+			}
+		}
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html b/src/web/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
new file mode 100644
index 0000000..820e3c0
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<!-- TODO design should be changed in the future -->
+	<table class="messages">
+		<tr>
+			<td class="side left">
+				<div class="email new clickable" wicket:id="new" wicket:ommessage="title:1208"><wicket:ommessage key="1207"/></div>
+				<div wicket:id="folders">
+					<div wicket:id="inbox"><wicket:ommessage key="1222"/></div>
+					<div wicket:id="sent"><wicket:ommessage key="1223"/></div>
+					<div wicket:id="trash"><wicket:ommessage key="1224"/></div>
+					<div class="email newdir clickable" wicket:id="newdir" wicket:ommessage="title:1259"><wicket:ommessage key="1258"/></div>
+					<div wicket:id="folder">
+						<div wicket:id="name"></div>
+						<div class="delete" wicket:id="delete" wicket:ommessage="title:1262"></div>
+					</div>
+				</div>
+			</td>
+			<td class="main">
+				<div><b><wicket:ommessage key="1206"/>&nbsp;(<span wicket:id="unread"></span>)</b></div>
+				<div wicket:id="navigator"></div>
+				<table id="messagesTable" style="width: 100%;">
+					<thead>
+					<tr>
+						<th align="left"><span wicket:id="orderById"></span><wicket:ommessage key="1205"/></th>
+						<th align="left"><span wicket:id="orderByFrom"></span><wicket:ommessage key="1202"/></th>
+						<th align="left"><span wicket:id="orderBySubject"></span><wicket:ommessage key="1203"/></th>
+						<th align="left"><span wicket:id="orderBySend"></span><wicket:ommessage key="1204"/></th>
+					</tr>
+					</thead>
+					<tbody wicket:id="container" style="background-color: white;">
+					<tr wicket:id="messages">
+						<td wicket:id="id"></td>
+						<td wicket:id="from"></td>
+						<td wicket:id="subject"></td>
+						<td wicket:id="send"></td>
+					</tr>
+					</tbody>
+				</table>
+				<div wicket:id="buttons">
+					<select wicket:id="msgSelect"></select>
+					<input wicket:id="toInboxBtn" type="button" wicket:ommessage="value:1255"/>
+					<input wicket:id="deleteBtn" type="button" wicket:ommessage="value:1245"/>
+					<input wicket:id="readBtn" type="button" wicket:ommessage="value:1248"/>
+					<input wicket:id="unreadBtn" type="button" wicket:ommessage="value:1247"/>
+					<select wicket:id="msgMove"></select>
+				</div>
+				<div wicket:id="selectedMessage">
+					<table style="width: 100%">
+						<tr>
+							<td style="width: 10px; padding-right: 20px;"><wicket:ommessage key="1202"/></td>
+							<td wicket:id="from"></td>
+						</tr>
+						<tr>
+							<td style="width: 10px; padding-right: 20px;"><wicket:ommessage key="1210"/></td>
+							<td wicket:id="to"></td>
+						</tr>
+						<tr>
+							<td style="width: 10px; padding-right: 20px;"><wicket:ommessage key="1211"/></td>
+							<td wicket:id="subj"></td>
+						</tr>
+					</table>
+					<div style="background-color: white;min-height: 300px;" wicket:id="body"></div>
+				</div>
+			</td>
+			<td class="side right" wicket:id="contacts">
+				<div><b><wicket:ommessage key="1189"/>&nbsp;(<span wicket:id="pendingContacts"></span>)</b></div>
+				<div><b><wicket:ommessage key="1188"/>&nbsp;(<span wicket:id="allContacts"></span>)</b></div>
+				<table style="width: 100%">
+					<tr>
+						<th><wicket:ommessage key="1180"/></th>
+						<th><wicket:ommessage key="1185"/></th>
+					</tr>
+					<tr wicket:id="users">
+						<td><div wicket:id="name" style="overflow-x: hidden;"></div></td>
+						<td><div wicket:id="accept" class="tick om-icon clickable" wicket:ommessage="title:1190"
+							></div><div wicket:id="decline" class="cross om-icon clickable" wicket:ommessage="title:1191"
+							></div><div wicket:id="view" class="user om-icon clickable" wicket:ommessage="title:1236"
+							></div><div wicket:id="message" class="new-email om-icon clickable" wicket:ommessage="title:1253"
+							></div><div wicket:id="delete" class="cross om-icon clickable" wicket:ommessage="title:1234"
+							></div></td>
+					</tr>
+				</table>
+			</td>
+		</tr>
+	</table>
+	<div wicket:id="addFolder"></div>
+	<div wicket:id="newMessage"></div>
+	<div wicket:id="infoDialog"></div>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java b/src/web/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
new file mode 100644
index 0000000..0a3ce9c
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
@@ -0,0 +1,623 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user.profile;
+
+import static org.apache.openmeetings.db.entity.user.PrivateMessage.INBOX_FOLDER_ID;
+import static org.apache.openmeetings.db.entity.user.PrivateMessage.SENT_FOLDER_ID;
+import static org.apache.openmeetings.db.entity.user.PrivateMessage.TRASH_FOLDER_ID;
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getDateFormat;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.openmeetings.db.dao.user.PrivateMessageFolderDao;
+import org.apache.openmeetings.db.dao.user.PrivateMessagesDao;
+import org.apache.openmeetings.db.dao.user.UserContactsDao;
+import org.apache.openmeetings.db.entity.user.PrivateMessage;
+import org.apache.openmeetings.db.entity.user.PrivateMessageFolder;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.UserContact;
+import org.apache.openmeetings.web.admin.SearchableDataView;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.common.AddFolderDialog;
+import org.apache.openmeetings.web.common.PagedEntityListPanel;
+import org.apache.openmeetings.web.common.UserPanel;
+import org.apache.openmeetings.web.data.DataViewContainer;
+import org.apache.openmeetings.web.data.OmOrderByBorder;
+import org.apache.openmeetings.web.data.SearchableDataProvider;
+import org.apache.openmeetings.web.util.ContactsHelper;
+import org.apache.wicket.AttributeModifier;
+import org.apache.wicket.Component;
+import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
+import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
+import org.apache.wicket.behavior.AttributeAppender;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.Button;
+import org.apache.wicket.markup.html.form.DropDownChoice;
+import org.apache.wicket.markup.html.form.IChoiceRenderer;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.markup.repeater.Item;
+import org.apache.wicket.markup.repeater.data.DataView;
+import org.apache.wicket.markup.repeater.data.IDataProvider;
+import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+
+import ro.fortsoft.wicket.dashboard.web.util.ConfirmAjaxCallListener;
+
+import com.googlecode.wicket.jquery.core.JQueryBehavior;
+import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.jquery.ui.plugins.fixedheadertable.FixedHeaderTableBehavior;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+
+public class MessagesContactsPanel extends UserPanel {
+	private static final long serialVersionUID = 8098087441571734957L;
+	private final static long MOVE_CHOOSE = -1;
+	private final static int SELECT_CHOOSE = 1252;
+	private final static int SELECT_ALL = 1239;
+	private final static int SELECT_NONE = 1240;
+	private final static int SELECT_UNREAD = 1241;
+	private final static int SELECT_READ = 1242;
+	private final WebMarkupContainer container = new WebMarkupContainer("container");
+	private final WebMarkupContainer folders = new WebMarkupContainer("folders");
+	private final Label unread = new Label("unread", Model.of(0L));
+	private final Label pendingContacts = new Label("pendingContacts", Model.of(0L));
+	private final Label allContacts = new Label("allContacts", Model.of(0L));
+	private final IModel<Long> selectedFolderModel = Model.of(INBOX_FOLDER_ID);
+	private final IModel<List<? extends PrivateMessageFolder>> foldersModel;
+	private final WebMarkupContainer inbox = new WebMarkupContainer("inbox");
+	private final WebMarkupContainer sent = new WebMarkupContainer("sent");
+	private final WebMarkupContainer trash = new WebMarkupContainer("trash");
+	private final WebMarkupContainer selectedMessage = new WebMarkupContainer("selectedMessage");
+	private final WebMarkupContainer buttons = new WebMarkupContainer("buttons");
+	private final WebMarkupContainer contacts = new WebMarkupContainer("contacts");
+	private final MessageDialog newMessage;
+	private final DataViewContainer<PrivateMessage> dataContainer;
+	private final Set<Long> selectedMessages = new HashSet<Long>();
+	private final Set<Long> allMessages = new HashSet<Long>();
+	private final Set<Long> readMessages = new HashSet<Long>();
+	private final Set<Long> unreadMessages = new HashSet<Long>();
+	private final Button toInboxBtn = new Button("toInboxBtn");
+	private final Button deleteBtn = new Button("deleteBtn");
+	private final Button readBtn = new Button("readBtn");
+	private final Button unreadBtn = new Button("unreadBtn");
+	private final FixedHeaderTableBehavior fixedTable = new FixedHeaderTableBehavior("#messagesTable", new Options("height", 100));
+	private final DropDownChoice<Integer> selectDropDown = new DropDownChoice<Integer>(
+		"msgSelect", Model.of(SELECT_CHOOSE)
+		, Arrays.asList(SELECT_CHOOSE, SELECT_ALL, SELECT_NONE, SELECT_UNREAD, SELECT_READ)
+		, new IChoiceRenderer<Integer>() {
+			private static final long serialVersionUID = 1L;
+	
+			public Object getDisplayValue(Integer object) {
+				return WebSession.getString(object);
+			}
+			
+			public String getIdValue(Integer object, int index) {
+				return "" + object;
+			}
+		});
+	private static PrivateMessageFolder NOT_MOVE_FOLDER = new PrivateMessageFolder();
+	static {
+		NOT_MOVE_FOLDER.setPrivateMessageFolderId(MOVE_CHOOSE);
+		NOT_MOVE_FOLDER.setFolderName(WebSession.getString(1243));
+	}
+	private final DropDownChoice<PrivateMessageFolder> moveDropDown = new DropDownChoice<PrivateMessageFolder>("msgMove", Model.of(NOT_MOVE_FOLDER)
+		, Arrays.asList(NOT_MOVE_FOLDER)
+		, new IChoiceRenderer<PrivateMessageFolder>() {
+			private static final long serialVersionUID = 1L;
+
+			public Object getDisplayValue(PrivateMessageFolder object) {
+				return object.getFolderName();
+			}
+
+			public String getIdValue(PrivateMessageFolder object, int index) {
+				return "" + object.getPrivateMessageFolderId();
+			}
+		});
+	private WebMarkupContainer selectedFolder;
+	
+	private void setDefaultFolderClass() {
+		inbox.add(AttributeAppender.replace("class", "email inbox clickable"));
+		sent.add(AttributeAppender.replace("class", "email sent clickable"));
+		trash.add(AttributeAppender.replace("class", "email trash clickable"));
+	}
+	
+	private void selectFolder(WebMarkupContainer folder) {
+		folder.add(AttributeAppender.append("class", "ui-widget-header ui-corner-all"));
+	}
+	
+	private void setFolderClass(ListItem<PrivateMessageFolder> folder) {
+		folder.add(AttributeAppender.replace("class", "email folder clickable"));
+		if (folder.getModelObject().getPrivateMessageFolderId() == selectedFolderModel.getObject()) {
+			selectFolder(folder);
+		}
+	}
+	
+	private void updateControls(AjaxRequestTarget target) {
+		deleteBtn.setEnabled(!selectedMessages.isEmpty());
+		readBtn.setEnabled(TRASH_FOLDER_ID != selectedFolderModel.getObject() && !selectedMessages.isEmpty());
+		unreadBtn.setEnabled(TRASH_FOLDER_ID != selectedFolderModel.getObject() && !selectedMessages.isEmpty());
+		toInboxBtn.setVisible(INBOX_FOLDER_ID != selectedFolderModel.getObject() && SENT_FOLDER_ID != selectedFolderModel.getObject() && !selectedMessages.isEmpty());
+		target.add(buttons);
+	}
+	
+	private String getEmail(User u) {
+		return u == null || u.getAdresses() == null ? "" : u.getAdresses().getEmail();
+	}
+	
+	private void selectMessage(long id, AjaxRequestTarget target) {
+		PrivateMessage msg = getBean(PrivateMessagesDao.class).get(id);
+		selectedMessage.addOrReplace(new Label("from", msg == null ? "" : getEmail(msg.getFrom())));
+		selectedMessage.addOrReplace(new Label("to", msg == null ? "" : getEmail(msg.getTo())));
+		selectedMessage.addOrReplace(new Label("subj", msg == null ? "" : msg.getSubject()));
+		selectedMessage.addOrReplace(new Label("body", msg == null ? "" : msg.getMessage()).setEscapeModelStrings(false));
+		if (target != null) {
+			target.add(selectedMessage);
+			updateControls(target);
+		}
+	}
+	
+	void updateTable(AjaxRequestTarget target) {
+		container.add(fixedTable);
+		if (target != null) {
+			target.add(container);
+		}
+	}
+	
+	private void selectFolder(WebMarkupContainer folder, long id, AjaxRequestTarget target) {
+		selectedFolder = folder;
+		selectedFolderModel.setObject(id);
+		setDefaultFolderClass();
+		selectFolder(folder);
+		emptySelection(target);
+		selectDropDown.setModelObject(SELECT_CHOOSE);
+		moveDropDown.setModelObject(NOT_MOVE_FOLDER);
+		deleteBtn.add(AttributeModifier.replace("value", WebSession.getString(TRASH_FOLDER_ID == id ? 1256 : 1245)));
+		readBtn.setEnabled(false);
+		unreadBtn.setEnabled(false);
+		if (target != null) {
+			updateTable(target);
+			target.add(folders, unread, selectDropDown, moveDropDown);
+			target.add(dataContainer.container, dataContainer.navigator);
+			target.add(dataContainer.orderLinks);
+		}
+	}
+	
+	private void emptySelection(AjaxRequestTarget target) {
+		selectedMessages.clear();
+		selectMessage(-1, target);
+		unread.setDefaultModelObject(getBean(PrivateMessagesDao.class).count(getUserId(), selectedFolderModel.getObject(), null));
+	}
+	
+	private String getDisplayName(User u) {
+		return new StringBuilder().append(u.getFirstname()).append(" ")
+				.append(u.getLastname()).append(" ")
+				.append("<").append(getEmail(u)).append(">")
+				.toString();
+	}
+	
+	private void updateMoveModel() {
+		List<PrivateMessageFolder> list = new ArrayList<PrivateMessageFolder>();
+		list.add(NOT_MOVE_FOLDER);
+		list.addAll(foldersModel.getObject());
+		moveDropDown.setChoices(list);
+	}
+	
+	private void updateContacts(AjaxRequestTarget target) {
+		pendingContacts.setDefaultModelObject(getBean(UserContactsDao.class).getContactRequestsByUserAndStatus(getUserId(), true).size());
+		allContacts.setDefaultModelObject(getBean(UserContactsDao.class).getContactsByUserAndStatus(getUserId(), false).size());
+		if (target != null) {
+			target.add(contacts);
+		}
+	}
+	
+	@SuppressWarnings("unchecked")
+	public MessagesContactsPanel(String id) {
+		super(id);
+		foldersModel = Model.ofList(getBean(PrivateMessageFolderDao.class).get(0, Integer.MAX_VALUE));
+		updateMoveModel();
+		add(newMessage = new MessageDialog("newMessage", new CompoundPropertyModel<PrivateMessage>(new PrivateMessage())) {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			public void onClose(AjaxRequestTarget target, DialogButton button) {
+				if (send.equals(button)) {
+					target.add(container);
+				}
+			}
+		});
+		
+		final AddFolderDialog addFolder = new AddFolderDialog("addFolder") {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void onSubmit(AjaxRequestTarget target) {
+				super.onSubmit(target);
+				PrivateMessageFolderDao fDao = getBean(PrivateMessageFolderDao.class);
+				fDao.addPrivateMessageFolder(getModelObject(), getUserId());
+				foldersModel.setObject(fDao.get(0, Integer.MAX_VALUE));
+				updateMoveModel();
+				target.add(folders, moveDropDown);
+			}
+		};
+		add(addFolder);
+		add(new WebMarkupContainer("new").add(new AjaxEventBehavior("click") {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void onEvent(AjaxRequestTarget target) {
+				newMessage.reset(true).open(target);
+			}
+		}).add(new JQueryBehavior(".email.new", "button")));
+		folders.add(inbox.add(new AjaxEventBehavior("click") {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void onEvent(AjaxRequestTarget target) {
+				selectFolder(inbox, INBOX_FOLDER_ID, target);
+			}
+		}));
+		folders.add(sent.add(new AjaxEventBehavior("click") {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void onEvent(AjaxRequestTarget target) {
+				selectFolder(sent, SENT_FOLDER_ID, target);
+			}
+		}));
+		folders.add(trash.add(new AjaxEventBehavior("click") {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void onEvent(AjaxRequestTarget target) {
+				selectFolder(trash, TRASH_FOLDER_ID, target);
+			}
+		}));
+		folders.add(new WebMarkupContainer("newdir").add(new AjaxEventBehavior("click") {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void onEvent(AjaxRequestTarget target) {
+				addFolder.open(target);
+			}
+		}).add(new JQueryBehavior(".email.newdir", "button")));
+		add(folders.add(new ListView<PrivateMessageFolder>("folder", foldersModel) {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void populateItem(final ListItem<PrivateMessageFolder> item) {
+				item.add(new Label("name", item.getModelObject().getFolderName()));
+				item.add(new WebMarkupContainer("delete").add(new AjaxEventBehavior("click") {
+					private static final long serialVersionUID = 1L;
+
+					@Override
+					protected void onEvent(AjaxRequestTarget target) {
+						PrivateMessageFolderDao fDao = getBean(PrivateMessageFolderDao.class);
+						fDao.delete(item.getModelObject(), getUserId());
+						foldersModel.setObject(fDao.get(0, Integer.MAX_VALUE));
+						target.add(folders);
+					}
+					
+					@Override
+					protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
+						super.updateAjaxAttributes(attributes);
+						attributes.getAjaxCallListeners().add(new ConfirmAjaxCallListener(WebSession.getString(713)));
+					}
+				}));
+				item.add(new AjaxEventBehavior("click") {
+					private static final long serialVersionUID = 1L;
+
+					@Override
+					protected void onEvent(AjaxRequestTarget target) {
+						selectFolder(item, item.getModelObject().getPrivateMessageFolderId(), target);
+					}
+				});
+				setFolderClass(item);
+			}
+		}).setOutputMarkupId(true));
+		
+		SearchableDataProvider<PrivateMessage> sdp = new SearchableDataProvider<PrivateMessage>(PrivateMessagesDao.class) {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected PrivateMessagesDao getDao() {
+				return (PrivateMessagesDao)super.getDao();
+			}
+			
+			@Override
+			public Iterator<? extends PrivateMessage> iterator(long first, long count) {
+				allMessages.clear();
+				readMessages.clear();
+				unreadMessages.clear();
+				String sort = getSort() == null ? "" : "m." + getSort().getProperty();
+				boolean isAsc = getSort() == null ? true : getSort().isAscending();
+				return getDao().get(getUserId(), selectedFolderModel.getObject(), search, sort, isAsc, (int)first, (int)count).iterator();
+			}
+			
+			@Override
+			public long size() {
+				return getDao().count(getUserId(), selectedFolderModel.getObject(), search);
+			}
+		};
+		final SearchableDataView<PrivateMessage> dv = new SearchableDataView<PrivateMessage>("messages", sdp) {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void populateItem(Item<PrivateMessage> item) {
+				PrivateMessage m = item.getModelObject();
+				final long id = m.getId();
+				allMessages.add(id);
+				if (m.getIsRead()) {
+					readMessages.add(id);
+				} else {
+					unreadMessages.add(id);
+				}
+				item.add(new Label("id", id));
+				item.add(new Label("from", getDisplayName(m.getFrom())));
+				item.add(new Label("subject", m.getSubject()));
+				item.add(new Label("send", getDateFormat().format(m.getInserted())));
+				item.add(new AjaxEventBehavior("click") {
+					private static final long serialVersionUID = 1L;
+
+					@Override
+					protected void onEvent(AjaxRequestTarget target) {
+						long selected = id;
+						if (selectedMessages.contains(id)) {
+							selectedMessages.remove(id);
+							selected = selectedMessages.isEmpty() ? -1 : selectedMessages.iterator().next();
+						} else {
+							selectedMessages.add(id);
+						}
+						selectMessage(selected, target);
+						target.add(container);
+					}
+				});
+				StringBuilder cssClass = new StringBuilder(Boolean.FALSE.equals(m.getIsRead()) ? "unread" : "");
+				if (selectedMessages.contains(id)) {
+					if (cssClass.length() > 0) {
+						cssClass.append(" ");
+					}
+					cssClass.append("selected");
+				}
+				item.add(AttributeModifier.replace("class", cssClass.toString()));
+			}
+		};
+		PagedEntityListPanel navigator = new PagedEntityListPanel("navigator", dv) {
+			private static final long serialVersionUID = 5097048616003411362L;
+
+			@Override
+			protected void onEvent(AjaxRequestTarget target) {
+				emptySelection(target);
+				target.add(container);
+			}
+		};
+		dataContainer = new DataViewContainer<PrivateMessage>(container, dv, navigator);
+		dataContainer.setLinks(new OmOrderByBorder<PrivateMessage>("orderById", "id", dataContainer)
+				, new OmOrderByBorder<PrivateMessage>("orderByFrom", "from.lastname", dataContainer)
+				, new OmOrderByBorder<PrivateMessage>("orderBySubject", "subject", dataContainer)
+				, new OmOrderByBorder<PrivateMessage>("orderBySend", "inserted", dataContainer));
+		add(dataContainer.orderLinks);
+		add(navigator);
+		
+		add(unread.setOutputMarkupId(true));
+		
+		add(buttons.setOutputMarkupId(true));
+		buttons.add(toInboxBtn.add(new AjaxEventBehavior("click") {
+			private static final long serialVersionUID = 1L;
+			
+			@Override
+			protected void onEvent(AjaxRequestTarget target) {
+				getBean(PrivateMessagesDao.class).moveMailsToFolder(selectedMessages, INBOX_FOLDER_ID);
+				selectFolder(selectedFolder, selectedFolderModel.getObject(), target);
+			}
+		}));
+		buttons.add(deleteBtn.add(new AjaxEventBehavior("click") {
+				private static final long serialVersionUID = 1L;
+	
+				@Override
+				protected void onEvent(AjaxRequestTarget target) {
+					if (TRASH_FOLDER_ID == selectedFolderModel.getObject()) {
+						getBean(PrivateMessagesDao.class).delete(selectedMessages);
+					} else {
+						getBean(PrivateMessagesDao.class).moveMailsToFolder(selectedMessages, TRASH_FOLDER_ID);
+					}
+					emptySelection(target);
+					target.add(container);
+				}
+			}));
+		buttons.add(readBtn.add(new AjaxEventBehavior("click") {
+				private static final long serialVersionUID = 1L;
+				
+				@Override
+				protected void onEvent(AjaxRequestTarget target) {
+					getBean(PrivateMessagesDao.class).updateReadStatus(selectedMessages, true);
+					emptySelection(target);
+					target.add(container, unread);
+				}
+			}));
+		buttons.add(unreadBtn.add(new AjaxEventBehavior("click") {
+				private static final long serialVersionUID = 1L;
+				
+				@Override
+				protected void onEvent(AjaxRequestTarget target) {
+					getBean(PrivateMessagesDao.class).updateReadStatus(selectedMessages, false);
+					emptySelection(target);
+					target.add(container);
+				}
+			}));
+		buttons.add(selectDropDown.setOutputMarkupId(true).add(new OnChangeAjaxBehavior() {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void onUpdate(AjaxRequestTarget target) {
+				switch (selectDropDown.getModelObject()) {
+					case SELECT_CHOOSE:
+						break;
+					case SELECT_ALL:
+						selectedMessages.clear();
+						selectedMessages.addAll(allMessages);
+						break;
+					case SELECT_NONE:
+						selectedMessages.clear();
+						break;
+					case SELECT_UNREAD:
+						selectedMessages.clear();
+						selectedMessages.addAll(unreadMessages);
+						break;
+					case SELECT_READ:
+						selectedMessages.clear();
+						selectedMessages.addAll(readMessages);
+						break;
+				}
+				target.add(container);
+			}
+		}));
+		buttons.add(moveDropDown.setOutputMarkupId(true).add(new OnChangeAjaxBehavior() {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void onUpdate(AjaxRequestTarget target) {
+				long folderId = moveDropDown.getModelObject().getPrivateMessageFolderId();
+				if (folderId != MOVE_CHOOSE) {
+					getBean(PrivateMessagesDao.class).moveMailsToFolder(selectedMessages, folderId);
+				}
+				selectFolder(selectedFolder, selectedFolderModel.getObject(), target);
+			}
+		}));
+		
+		selectMessage(-1, null);
+		add(container.add(dv).setOutputMarkupId(true));
+		//TODO add valid autoupdate add(new AjaxSelfUpdatingTimerBehavior(seconds(15)));
+		add(selectedMessage.setOutputMarkupId(true));
+		
+		IDataProvider<UserContact> dp = new IDataProvider<UserContact>() {
+			private static final long serialVersionUID = 1L;
+
+			public void detach() {
+			}
+
+			public Iterator<? extends UserContact> iterator(long first, long count) {
+				return getBean(UserContactsDao.class).get(getUserId(), (int)first, (int)count).iterator();
+			}
+
+			public long size() {
+				return getBean(UserContactsDao.class).count(getUserId());
+			}
+
+			public IModel<UserContact> model(UserContact object) {
+				return Model.of(object);
+			}
+		};
+		final UserInfoDialog d = new UserInfoDialog("infoDialog", newMessage);
+		final DataView<UserContact> dw = new DataView<UserContact>("users", dp) {
+			private static final long serialVersionUID = 1L;
+
+			private String getName(UserContact uc) {
+				return uc.getOwner().getFirstname() + " " + uc.getOwner().getLastname(); //FIXME salutation
+			}
+			
+			@Override
+			protected void populateItem(Item<UserContact> item) {
+				UserContact uc = item.getModelObject();
+				final long contactId = uc.getUserContactId();
+				final long userId = uc.getOwner().getUser_id();
+				if (uc.getPending()) {
+					item.add(AttributeModifier.append("class", "unread"));
+				}
+				item.add(new Label("name", getName(uc)));	
+				item.add(new WebMarkupContainer("accept").add(new AjaxEventBehavior("onclick") {
+					private static final long serialVersionUID = 7223188816617664993L;
+
+					@Override
+					protected void onEvent(AjaxRequestTarget target) {
+						ContactsHelper.acceptUserContact(contactId);
+						updateContacts(target);
+					}
+				}).setVisible(uc.getPending()));
+				item.add(new WebMarkupContainer("decline").add(new AjaxEventBehavior("onclick") {
+					private static final long serialVersionUID = 1L;
+
+					@Override
+					protected void onEvent(AjaxRequestTarget target) {
+						getBean(UserContactsDao.class).deleteUserContact(contactId);
+						updateContacts(target);
+					}
+				}).setVisible(uc.getPending()));
+				item.add(new WebMarkupContainer("view").add(new AjaxEventBehavior("onclick") {
+					private static final long serialVersionUID = 1L;
+
+					@Override
+					protected void onEvent(AjaxRequestTarget target) {
+						d.open(target, userId);
+					}
+				}));
+				item.add(new WebMarkupContainer("message").add(new AjaxEventBehavior("onclick") {
+					private static final long serialVersionUID = 1L;
+
+					@Override
+					protected void onEvent(AjaxRequestTarget target) {
+						newMessage.reset(true).open(target, userId);
+					}
+				}).setVisible(!uc.getPending()));
+				item.add(new WebMarkupContainer("delete").add(new AjaxEventBehavior("onclick") {
+					private static final long serialVersionUID = 1L;
+
+					@Override
+					protected void onEvent(AjaxRequestTarget target) {
+						getBean(UserContactsDao.class).deleteUserContact(contactId);
+						updateContacts(target);
+					}
+				}).setVisible(!uc.getPending()));
+			}
+		};
+		updateContacts(null);
+		add(d, contacts.add(dw, pendingContacts, allContacts).setOutputMarkupId(true));//TODO update
+		
+		//hack to add FixedHeaderTable after Tabs.
+		add(new AbstractDefaultAjaxBehavior() {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void respond(AjaxRequestTarget target) {
+				selectFolder(inbox, INBOX_FOLDER_ID, target);
+				selectMessage(-1, target);
+			}
+			
+			@Override
+			public void renderHead(Component component, IHeaderResponse response) {
+				super.renderHead(component, response);
+				response.render(OnDomReadyHeaderItem.forScript(getCallbackScript()));
+			}
+		});
+	}
+
+}
diff --git a/src/web/java/org/apache/openmeetings/web/user/profile/ProfileForm.html b/src/web/java/org/apache/openmeetings/web/user/profile/ProfileForm.html
new file mode 100644
index 0000000..dad759f
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/profile/ProfileForm.html
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<div wicket:id="buttons"></div>
+	<table style="width: 100%; height: 100%">
+		<tr>
+			<td rowspan="2">
+				<fieldset class="ui-widget-content">
+					<legend class="ui-widget-header">
+						<wicket:ommessage key="143" />
+					</legend>
+					<form wicket:id="general"></form>
+				</fieldset>
+			</td>
+			<td>
+				<div wicket:id="img"></div>
+			</td>
+		</tr>
+		<tr>
+			<td>
+				<fieldset class="ui-widget-content">
+					<legend class="ui-widget-header">
+						<wicket:ommessage key="1159" />
+					</legend>
+					<form wicket:id="comunity"></form>
+				</fieldset>
+			</td>
+		</tr>
+	</table>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/user/profile/ProfileForm.java b/src/web/java/org/apache/openmeetings/web/user/profile/ProfileForm.java
new file mode 100644
index 0000000..98bc25f
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/profile/ProfileForm.java
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user.profile;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.web.common.ComunityUserForm;
+import org.apache.openmeetings.web.common.FormSaveRefreshPanel;
+import org.apache.openmeetings.web.common.UploadableProfileImagePanel;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.form.AjaxFormValidatingBehavior;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.panel.IMarkupSourcingStrategy;
+import org.apache.wicket.markup.html.panel.PanelMarkupSourcingStrategy;
+import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.util.time.Duration;
+
+public class ProfileForm extends Form<User> {
+	private static final long serialVersionUID = 1L;
+	private final UserForm userForm;
+
+	public ProfileForm(String id) {
+		super(id, new CompoundPropertyModel<User>(getBean(UserDao.class).get(getUserId())));
+		
+		add(new FormSaveRefreshPanel<User>("buttons", this) {
+			private static final long serialVersionUID = 6578425915881674309L;
+
+			@Override
+			protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {
+				User u = getModelObject();
+				try {
+					u = getBean(UserDao.class).update(u, userForm.getPasswordField().getConvertedInput(), getUserId());
+				} catch (Exception e) {
+					// FIXME update feedback with the error details
+				}
+				setModelObject(u);
+				target.add(ProfileForm.this);
+			}
+
+			@Override
+			protected void onSaveError(AjaxRequestTarget target, Form<?> form) {
+				// FIXME update feedback with the error details
+			}
+
+			@Override
+			protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) {
+				User user = getModelObject();
+				if (user.getUser_id() != null) {
+					user = getBean(UserDao.class).get(user.getUser_id());
+				} else {
+					user = new User();
+				}
+				setModelObject(user);
+				target.add(ProfileForm.this);
+			}
+
+			@Override
+			protected void onRefreshError(AjaxRequestTarget target, Form<?> form) {
+				// FIXME update feedback with the error details
+			}
+		});
+		add(userForm = new UserForm("general", getModel()));
+		add(new UploadableProfileImagePanel("img", getUserId()));
+		add(new ComunityUserForm("comunity", getModel()));
+		
+		// attach an ajax validation behavior to all form component's keydown
+		// event and throttle it down to once per second
+		AjaxFormValidatingBehavior.addToAllFormComponents(this, "keydown", Duration.ONE_SECOND);
+	}
+	
+	@Override
+	protected IMarkupSourcingStrategy newMarkupSourcingStrategy() {
+		return new PanelMarkupSourcingStrategy(false);
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/user/profile/ProfilePanel.html b/src/web/java/org/apache/openmeetings/web/user/profile/ProfilePanel.html
new file mode 100644
index 0000000..3335891
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/profile/ProfilePanel.html
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<form wicket:id="form" class="adminForm"/>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/user/profile/ProfilePanel.java b/src/web/java/org/apache/openmeetings/web/user/profile/ProfilePanel.java
new file mode 100644
index 0000000..8eccfa3
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/profile/ProfilePanel.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user.profile;
+
+import org.apache.openmeetings.web.common.UserPanel;
+
+public class ProfilePanel extends UserPanel {
+	private static final long serialVersionUID = -5837090230776586182L;
+
+	public ProfilePanel(String id) {
+		super(id);
+		setOutputMarkupId(true);
+		
+		add(new ProfileForm("form"));
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/user/profile/SettingsPanel.html b/src/web/java/org/apache/openmeetings/web/user/profile/SettingsPanel.html
new file mode 100644
index 0000000..6c7b4ef
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/profile/SettingsPanel.html
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+	<wicket:panel>
+		<div id="tabs">
+			<ul>
+				<li wicket:id="tabs"><a wicket:id="link"><wicket:container wicket:id="name"></wicket:container></a></li>
+			</ul>
+			<wicket:container wicket:id="panels"><div wicket:id="tab"></div></wicket:container>
+		</div>
+	</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/user/profile/SettingsPanel.java b/src/web/java/org/apache/openmeetings/web/user/profile/SettingsPanel.java
new file mode 100644
index 0000000..57fb1b7
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/profile/SettingsPanel.java
@@ -0,0 +1,90 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user.profile;
+
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.common.UserPanel;
+import org.apache.wicket.AttributeModifier;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.markup.head.PriorityHeaderItem;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.markup.repeater.RepeatingView;
+import org.apache.wicket.model.Model;
+
+import com.googlecode.wicket.jquery.core.JQueryBehavior;
+import com.googlecode.wicket.jquery.core.Options;
+
+public class SettingsPanel extends UserPanel {
+	private static final long serialVersionUID = -830146821166434373L;
+	public static final int PROFILE_TAB_ID = 0;
+	public static final int MESSAGES_TAB_ID = 1;
+	public static final int EDIT_PROFILE_TAB_ID = 2;
+	public static final int SEARCH_TAB_ID = 3;
+	public static final int DASHBOARD_TAB_ID = 4;
+
+	private String getTabId(int idx) {
+		return "tab" + idx;
+	}
+	
+	private void addTab(RepeatingView tabs, String name, String id) {
+		WebMarkupContainer tab = new WebMarkupContainer(tabs.newChildId());
+		tab.add(new WebMarkupContainer("link")
+			.add(new Label("name", Model.of(name)))
+			.add(new AttributeModifier("href", "#" + id)));
+		tabs.add(tab);
+	}
+	
+	private void addPanel(RepeatingView panels, String id, Panel p) {
+		WebMarkupContainer tab = new WebMarkupContainer(panels.newChildId());
+		tab.add(p.setMarkupId(id)).setRenderBodyOnly(true);
+		panels.add(tab);
+	}
+	
+	public SettingsPanel(String id, int active) {
+		super(id);
+		RepeatingView tabs = new RepeatingView("tabs");
+		addTab(tabs, WebSession.getString(1170), getTabId(PROFILE_TAB_ID));
+		addTab(tabs, WebSession.getString(1188), getTabId(MESSAGES_TAB_ID));
+		addTab(tabs, WebSession.getString(1171), getTabId(EDIT_PROFILE_TAB_ID));
+		addTab(tabs, WebSession.getString(1172), getTabId(SEARCH_TAB_ID));
+		addTab(tabs, WebSession.getString(1548), getTabId(DASHBOARD_TAB_ID));
+		
+		RepeatingView panels = new RepeatingView("panels");
+		addPanel(panels, getTabId(PROFILE_TAB_ID), new UserProfilePanel("tab", getUserId()));
+		addPanel(panels, getTabId(MESSAGES_TAB_ID), new MessagesContactsPanel("tab"));
+		addPanel(panels, getTabId(EDIT_PROFILE_TAB_ID), new ProfilePanel("tab"));
+		addPanel(panels, getTabId(SEARCH_TAB_ID), new UserSearchPanel("tab"));
+		addPanel(panels, getTabId(DASHBOARD_TAB_ID), new WidgetsPanel("tab"));
+		
+		add(new JQueryBehavior("#tabs", "tabs", new Options("active", active)) {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void renderScript(JavaScriptHeaderItem script, IHeaderResponse response) {
+				response.render(new PriorityHeaderItem(script));
+			}
+		});
+		add(tabs, panels);
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/user/profile/UserForm.html b/src/web/java/org/apache/openmeetings/web/user/profile/UserForm.html
new file mode 100644
index 0000000..ae0c5b5
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/profile/UserForm.html
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:extend>
+	<div class="formelement">
+		<label><wicket:ommessage key="134" /></label><input type="password" wicket:id="confirmPassword" />
+	</div>
+</wicket:extend>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/user/profile/UserForm.java b/src/web/java/org/apache/openmeetings/web/user/profile/UserForm.java
new file mode 100644
index 0000000..5b61c32
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/profile/UserForm.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user.profile;
+
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.common.GeneralUserForm;
+import org.apache.wicket.markup.html.form.PasswordTextField;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+
+public class UserForm extends GeneralUserForm {
+	private static final long serialVersionUID = 1305752513494262480L;
+	private final PasswordTextField confirmPassword;
+	
+	public UserForm(String id, IModel<User> model) {
+		super(id, model, false);
+		add(confirmPassword = new PasswordTextField("confirmPassword", new Model<String>()));
+		confirmPassword.setRequired(false);
+	}
+	
+	@Override
+	protected void onValidate() {
+		String pass = getPasswordField().getConvertedInput();
+		if (pass != null && !pass.isEmpty() && !pass.equals(confirmPassword.getConvertedInput())) {
+			error(WebSession.getString(232));
+		}
+		super.onValidate();
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/user/profile/UserInfoDialog.html b/src/web/java/org/apache/openmeetings/web/user/profile/UserInfoDialog.html
new file mode 100644
index 0000000..42cd4b3
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/profile/UserInfoDialog.html
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<html xmlns:wicket="http://wicket.apache.org">

+<wicket:panel>

+	<div wicket:id="container">

+		<div wicket:id="body"></div>

+	</div>

+</wicket:panel>

+</html>

diff --git a/src/web/java/org/apache/openmeetings/web/user/profile/UserInfoDialog.java b/src/web/java/org/apache/openmeetings/web/user/profile/UserInfoDialog.java
new file mode 100644
index 0000000..22b6770
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/profile/UserInfoDialog.java
@@ -0,0 +1,82 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.user.profile;

+

+import static org.apache.openmeetings.web.app.Application.getBean;

+import static org.apache.openmeetings.web.app.WebSession.getUserId;

+

+import java.util.Arrays;

+import java.util.List;

+

+import org.apache.openmeetings.db.dao.user.UserContactsDao;

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.openmeetings.web.util.ContactsHelper;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.markup.html.WebMarkupContainer;

+

+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractDialog;

+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;

+

+public class UserInfoDialog extends AbstractDialog<String> {

+	private static final long serialVersionUID = 6393565468567393270L;

+	private WebMarkupContainer container = new WebMarkupContainer("container");

+	private DialogButton cancel = new DialogButton(WebSession.getString(61));

+	private String messageLbl = WebSession.getString(1253);

+	private DialogButton message = new DialogButton(messageLbl);

+	private String contactsLbl = WebSession.getString(1186);

+	private DialogButton contacts = new DialogButton(contactsLbl);

+	private MessageDialog newMessage;

+	private long userId;

+	

+	public UserInfoDialog(String id, MessageDialog newMessage) {

+		super(id, WebSession.getString(1235));

+		add(container.add(new WebMarkupContainer("body")).setOutputMarkupId(true));

+		this.newMessage = newMessage;

+	}

+

+	public void open(AjaxRequestTarget target, long userId) {

+		this.userId = userId;

+		container.replace(new UserProfilePanel("body", userId));

+		target.add(container);

+		open(target);

+	}

+	

+	public WebMarkupContainer getContainer() {

+		return container;

+	}

+	

+	@Override

+	public int getWidth() {

+		return 500;

+	}

+	

+	@Override

+	protected List<DialogButton> getButtons() {

+		return userId != getUserId() && 0 == getBean(UserContactsDao.class).checkUserContacts(userId, getUserId())

+				? Arrays.asList(message, cancel) : Arrays.asList(contacts, message, cancel);

+	}

+	

+	public void onClose(AjaxRequestTarget target, DialogButton button) {

+		if (message.equals(button)) {

+			newMessage.reset(false).open(target, userId);

+		} else if (contacts.equals(button)) {

+			ContactsHelper.addUserToContactList(userId);

+		}

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/user/profile/UserProfilePanel.html b/src/web/java/org/apache/openmeetings/web/user/profile/UserProfilePanel.html
new file mode 100644
index 0000000..f6e72e5
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/profile/UserProfilePanel.html
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<html xmlns:wicket="http://wicket.apache.org">

+<wicket:panel>

+	<table>

+		<tr>

+			<td><div wicket:id="img"></div></td>

+			<td>

+				<wicket:ommessage key="1164"/>&nbsp;<span wicket:id="firstname"></span>&nbsp;<span wicket:id="lastname"></span><br/>

+				<wicket:ommessage key="1165"/>&nbsp;<span wicket:id="tz"></span><br/>

+				<wicket:ommessage key="1296"/>&nbsp;<span wicket:id="created"></span>

+			</td>

+		</tr>

+		<tr>

+			<td colspan="2">

+				<b><wicket:ommessage key="1166"/></b><br/>

+				<wicket:ommessage key="1162"/><textarea wicket:id="offer"></textarea><br/>

+				<wicket:ommessage key="1163"/><textarea wicket:id="interest"></textarea><br/>

+				<b><wicket:ommessage key="1167"/></b><br/>

+				<wicket:ommessage key="1270"/>&nbsp;<div wicket:id="address"></div>

+			</td>

+		</tr>

+	</table>

+</wicket:panel>

+</html>

diff --git a/src/web/java/org/apache/openmeetings/web/user/profile/UserProfilePanel.java b/src/web/java/org/apache/openmeetings/web/user/profile/UserProfilePanel.java
new file mode 100644
index 0000000..c6f9def
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/profile/UserProfilePanel.java
@@ -0,0 +1,66 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.user.profile;

+

+import static org.apache.openmeetings.web.app.Application.getBean;

+import static org.apache.openmeetings.web.app.WebSession.getUserId;

+

+import org.apache.openmeetings.db.dao.user.UserDao;

+import org.apache.openmeetings.db.entity.user.User;

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.openmeetings.web.common.ProfileImagePanel;

+import org.apache.openmeetings.web.common.UserPanel;

+import org.apache.wicket.markup.html.basic.Label;

+import org.apache.wicket.markup.html.form.TextArea;

+import org.apache.wicket.model.Model;

+

+public class UserProfilePanel extends UserPanel {

+	private static final long serialVersionUID = 137157820964246251L;

+

+	private String getAddress(User u) {

+		String result = "";

+		if (getUserId() == u.getUser_id() || Boolean.TRUE.equals(u.getShowContactData())) {

+			//FIXME, more details should be added

+			if (u.getAdresses() != null) {

+				result = u.getAdresses().getStreet();

+			} else {

+				result = "[address]"; //FIXME

+			}

+		} else if (Boolean.TRUE.equals(u.getShowContactDataToContacts())) {

+			result = WebSession.getString(1269);

+		} else {

+			result = WebSession.getString(1268);

+		}

+		return result;

+	}

+	

+	public UserProfilePanel(String id, long userId) {

+		super(id);

+

+		User u = getBean(UserDao.class).get(userId);

+		add(new ProfileImagePanel("img", userId));

+		add(new Label("firstname", u.getFirstname()));

+		add(new Label("lastname", u.getLastname()));

+		add(new Label("tz", u.getTimeZoneId()));

+		add(new Label("created", u.getRegdate()));

+		add(new TextArea<String>("offer", Model.of(u.getUserOffers())).setEnabled(false));

+		add(new TextArea<String>("interest", Model.of(u.getUserSearchs())).setEnabled(false));

+		add(new Label("address", getAddress(u)));

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.html b/src/web/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.html
new file mode 100644
index 0000000..07745c4
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.html
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<html xmlns:wicket="http://wicket.apache.org">

+<wicket:panel>

+	<!--  FIXME move styles into CSS -->

+	<table style="width: 100%; height: 100%;">

+		<tr>

+			<td valign="top" style="width: 200px;">

+				<form wicket:id="form">

+					<div><wicket:ommessage key="1179"/></div>

+					<input type="text" wicket:id="text"/><br/>

+					<div><wicket:ommessage key="1177"/></div>

+					<input type="text" wicket:id="offer"/><br/>

+					<div><wicket:ommessage key="1178"/></div>

+					<input type="text" wicket:id="search"/><br/>

+					<br/>

+					<input type="submit" wicket:ommessage="value:1176"/>

+				</form>

+			</td>

+			<td valign="top">

+				<div wicket:id="container" style="height: 100%; min-height: 400px;">

+					<div><strong><wicket:ommessage key="1184"/></strong>&nbsp;&nbsp;&nbsp;<span wicket:id="navigator"></span></div>

+					<table id="searchUsersTable" style="width: 100%;">

+						<thead>

+							<tr>

+								<th><wicket:ommessage key="1180"/></th>

+								<th><wicket:ommessage key="1181"/></th>

+								<th><wicket:ommessage key="1182"/></th>

+								<th><wicket:ommessage key="1183"/></th>

+								<th><wicket:ommessage key="1185"/></th>

+							</tr>

+						</thead>

+						<tbody>

+							<tr wicket:id="users">

+								<td><span class="om-icon" wicket:id="status"></span><span wicket:id="name"></span></td>

+								<td wicket:id="tz"></td>

+								<td wicket:id="offer"></td>

+								<td wicket:id="search"></td>

+								<td style="white-space: nowrap;"><div wicket:id="add" class="add om-icon clickable" wicket:ommessage="title:1186"

+									></div><div wicket:id="message" class="new-email om-icon clickable" wicket:ommessage="title:1253"

+									></div><div wicket:id="view" class="user om-icon clickable" wicket:ommessage="title:1236"></div></td>

+							</tr>

+						</tbody>

+					</table>

+				</div>

+			</td>

+		</tr>

+	</table>

+	<div wicket:id="infoDialog"></div>

+	<div wicket:id="newMessage"></div>

+</wicket:panel>

+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java b/src/web/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
new file mode 100644
index 0000000..8f62370
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
@@ -0,0 +1,183 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.user.profile;

+

+import static org.apache.openmeetings.web.app.Application.getBean;

+import static org.apache.openmeetings.web.app.Application.isUserOnline;

+import static org.apache.openmeetings.web.app.WebSession.getUserId;

+

+import java.util.ArrayList;

+import java.util.Arrays;

+import java.util.Iterator;

+import java.util.List;

+

+import org.apache.openmeetings.db.dao.user.UserContactsDao;

+import org.apache.openmeetings.db.dao.user.UserDao;

+import org.apache.openmeetings.db.entity.user.PrivateMessage;

+import org.apache.openmeetings.db.entity.user.User;

+import org.apache.openmeetings.db.util.TimezoneUtil;

+import org.apache.openmeetings.web.common.PagingNavigatorPanel;

+import org.apache.openmeetings.web.common.UserPanel;

+import org.apache.openmeetings.web.util.ContactsHelper;

+import org.apache.wicket.AttributeModifier;

+import org.apache.wicket.ajax.AjaxEventBehavior;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;

+import org.apache.wicket.markup.html.WebMarkupContainer;

+import org.apache.wicket.markup.html.basic.Label;

+import org.apache.wicket.markup.html.form.Form;

+import org.apache.wicket.markup.html.form.TextField;

+import org.apache.wicket.markup.repeater.Item;

+import org.apache.wicket.markup.repeater.data.DataView;

+import org.apache.wicket.markup.repeater.data.IDataProvider;

+import org.apache.wicket.model.CompoundPropertyModel;

+import org.apache.wicket.model.IModel;

+import org.apache.wicket.model.PropertyModel;

+

+import com.googlecode.wicket.jquery.core.Options;

+import com.googlecode.wicket.jquery.ui.plugins.fixedheadertable.FixedHeaderTableBehavior;

+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;

+

+public class UserSearchPanel extends UserPanel {

+	private static final long serialVersionUID = -3604291982438458598L;

+	private final static List<Integer> itemsPerPage = Arrays.asList(10, 25, 50, 75, 100, 200, 500, 1000, 2500, 5000);

+	private String text;

+	private String search;

+	private String offer;

+	private String orderBy = "u.firstname";

+	private boolean asc = true;

+	private boolean searched = false;

+	private final MessageDialog newMessage;

+	private final WebMarkupContainer container = new WebMarkupContainer("container");

+	private final FixedHeaderTableBehavior fixedHeader = new FixedHeaderTableBehavior("#searchUsersTable", new Options("height", 400));

+

+	private void refresh(AjaxRequestTarget target) {

+		target.add(container.add(fixedHeader));

+	}

+	

+	public UserSearchPanel(String id) {

+		super(id);

+		

+		add(new Form<Void>("form") {

+			private static final long serialVersionUID = 3171252669473438834L;

+			{

+				add(new TextField<String>("text", new PropertyModel<String>(UserSearchPanel.this, "text")));

+				add(new TextField<String>("offer", new PropertyModel<String>(UserSearchPanel.this, "offer")));

+				add(new TextField<String>("search", new PropertyModel<String>(UserSearchPanel.this, "search")));

+				add(new AjaxFormSubmitBehavior(this, "onsubmit") {

+					private static final long serialVersionUID = -5767210068168188960L;

+

+					@Override

+					protected void onSubmit(AjaxRequestTarget target) {

+						searched = true;

+						refresh(target);

+					}

+				});

+			}

+		});

+		add(newMessage = new MessageDialog("newMessage", new CompoundPropertyModel<PrivateMessage>(new PrivateMessage())) {

+			private static final long serialVersionUID = 1L;

+

+			@Override

+			public void onClose(AjaxRequestTarget target, DialogButton button) {

+				if (send.equals(button)) {

+					refresh(target);

+				}

+			}

+		});

+		IDataProvider<User> dp = new IDataProvider<User>() {

+			private static final long serialVersionUID = -1757645522251197822L;

+

+			public void detach() {

+			}

+

+			public Iterator<? extends User> iterator(long first, long count) {

+				return searched ? getBean(UserDao.class).searchUserProfile(getUserId(), text, offer, search, orderBy, (int)first, (int)count, asc).iterator()

+						: new ArrayList<User>().iterator();

+			}

+

+			public long size() {

+				return searched ? getBean(UserDao.class).searchCountUserProfile(getUserId(), text, offer, search) : 0;

+			}

+

+			public IModel<User> model(User object) {

+				return new CompoundPropertyModel<User>(object);

+			}

+			

+		};

+		final UserInfoDialog d = new UserInfoDialog("infoDialog", newMessage);

+		final DataView<User> dv = new DataView<User>("users", dp) {

+			private static final long serialVersionUID = -3314136686941736574L;

+

+			@Override

+			protected void populateItem(Item<User> item) {

+				final UserContactsDao contactsDao = getBean(UserContactsDao.class);

+				User u = item.getModelObject();

+				final long userId = u.getUser_id();

+				item.add(new WebMarkupContainer("status").add(AttributeModifier.append("class", isUserOnline(userId) ? "online" : "offline")));

+				item.add(new Label("name", getName(u)));

+				item.add(new Label("tz", getBean(TimezoneUtil.class).getTimeZone(u).getID()));

+				item.add(new Label("offer", u.getUserOffers()));

+				item.add(new Label("search", u.getUserSearchs()));

+				item.add(new WebMarkupContainer("view").add(new AjaxEventBehavior("onclick") {

+					private static final long serialVersionUID = 7223188816617664993L;

+

+					@Override

+					protected void onEvent(AjaxRequestTarget target) {

+						d.open(target, userId);

+					}

+				}));

+				item.add(new WebMarkupContainer("add").add(new AjaxEventBehavior("onclick") {

+					private static final long serialVersionUID = 1L;

+

+					@Override

+					protected void onEvent(AjaxRequestTarget target) {

+						ContactsHelper.addUserToContactList(userId);

+						refresh(target);

+					}

+				}).setVisible(userId != getUserId() && 0 == contactsDao.checkUserContacts(userId, getUserId())));

+				item.add(new WebMarkupContainer("message").add(new AjaxEventBehavior("onclick") {

+					private static final long serialVersionUID = 1L;

+

+					@Override

+					protected void onEvent(AjaxRequestTarget target) {

+						newMessage.reset(true).open(target, userId);

+					}

+				}));

+				//item.add(new TooltipBehavior(new Options("content", "TODO:: Picture will be displayed"))); //FIXME 

+			}

+		};

+		final PagingNavigatorPanel navPanel = new PagingNavigatorPanel("navigator", dv, itemsPerPage) {

+			private static final long serialVersionUID = 1L;

+

+			@Override

+			protected void onEvent(AjaxRequestTarget target) {

+				refresh(target);

+			}

+		};

+		navPanel.setEntitiesPerPage(1000);

+

+		add(d, container.add(dv, navPanel).setOutputMarkupId(true));

+	}

+	

+	private String getName(User u) {

+		return "" + u.getFirstname() + " " + u.getLastname() + " [" + u.getLogin() + "]"; //FIXME salutation

+	}

+

+}

diff --git a/src/web/java/org/apache/openmeetings/web/user/profile/WidgetsPanel.html b/src/web/java/org/apache/openmeetings/web/user/profile/WidgetsPanel.html
new file mode 100644
index 0000000..18dd8fc
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/profile/WidgetsPanel.html
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+	<wicket:panel>
+		<table class="widget">
+			<tr wicket:id="widgets">
+				<td wicket:id="name"></td>
+				<td wicket:id="description"></td>
+				<td><label wicket:for="display"><wicket:ommessage key="1590"/></label>&nbsp;&nbsp;<input type="checkbox" wicket:id="display"/></td>
+			</tr>
+		</table>
+	</wicket:panel>
+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/user/profile/WidgetsPanel.java b/src/web/java/org/apache/openmeetings/web/user/profile/WidgetsPanel.java
new file mode 100644
index 0000000..bab9d33
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/profile/WidgetsPanel.java
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user.profile;
+
+import static org.apache.openmeetings.web.app.Application.getDashboardContext;
+import static org.apache.openmeetings.web.app.WebSession.getDashboard;
+
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.Model;
+
+import ro.fortsoft.wicket.dashboard.Dashboard;
+import ro.fortsoft.wicket.dashboard.Widget;
+import ro.fortsoft.wicket.dashboard.WidgetDescriptor;
+import ro.fortsoft.wicket.dashboard.web.DashboardContext;
+
+public class WidgetsPanel extends Panel {
+	private static final long serialVersionUID = -3959536582694664524L;
+
+	private Widget isDisplayed(WidgetDescriptor wd) {
+		//FIXME the only way to compare is By TITLE
+		for (Widget w : getDashboard().getWidgets()) {
+			if (w.getTitle().equals(wd.getName())) {
+				return w;
+			}
+		}
+		return null;
+	}
+	public WidgetsPanel(String id) {
+		super(id);
+		
+		add(new ListView<WidgetDescriptor>("widgets"
+				, getDashboardContext().getWidgetRegistry().getWidgetDescriptors()) {
+					private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void populateItem(ListItem<WidgetDescriptor> item) {
+				final WidgetDescriptor wd = item.getModelObject();
+				item.add(new Label("name", wd.getName()));
+				item.add(new Label("description", wd.getDescription()));
+				item.add(new AjaxCheckBox("display", Model.of(isDisplayed(wd) != null)) {
+					private static final long serialVersionUID = -7079665921153653164L;
+
+					@Override
+					protected void onUpdate(AjaxRequestTarget target) {
+						Widget w = isDisplayed(wd);
+						boolean b = getModelObject();
+						DashboardContext dashboardContext = getDashboardContext();
+						Dashboard d = getDashboard();
+						if (w != null && !b) {
+							d.deleteWidget(w.getId());
+						}
+						if (w == null && b) {
+							d.addWidget(dashboardContext.getWidgetFactory().createWidget(wd));
+						}
+						dashboardContext.getDashboardPersiter().save(d);
+					}
+				});
+			}
+		});
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/user/record/RecordingErrorsDialog.html b/src/web/java/org/apache/openmeetings/web/user/record/RecordingErrorsDialog.html
new file mode 100644
index 0000000..c900919
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/record/RecordingErrorsDialog.html
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<div wicket:id="container" class="recording dialog errors">
+		<h3 wicket:id="message"></h3>
+		<table style="width: 100%">
+			<tr>
+				<th><wicket:ommessage key="1593"/></th>
+				<th><wicket:ommessage key="1594"/></th>
+			</tr>
+			<tr wicket:id="row">
+				<td wicket:id="exitCode"></td>
+				<td wicket:id="message" class="message"></td>
+			</tr>
+		</table>
+	</div>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/user/record/RecordingErrorsDialog.java b/src/web/java/org/apache/openmeetings/web/user/record/RecordingErrorsDialog.java
new file mode 100644
index 0000000..131eb16
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/record/RecordingErrorsDialog.java
@@ -0,0 +1,110 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user.record;
+
+import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.isRecordingExists;
+import static org.apache.openmeetings.web.app.Application.getBean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.openmeetings.db.dao.record.FlvRecordingLogDao;
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.openmeetings.db.entity.record.FlvRecordingLog;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.AttributeModifier;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+
+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractDialog;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+
+public class RecordingErrorsDialog extends AbstractDialog<FlvRecording> {
+	private static final long serialVersionUID = 1L;
+	private final WebMarkupContainer container = new WebMarkupContainer("container");
+	private final Label message = new Label("message", Model.of((String)null));
+	private final ListView<FlvRecordingLog> logView = new ListView<FlvRecordingLog>("row") {
+		private static final long serialVersionUID = 1L;
+
+		@Override
+		protected void populateItem(ListItem<FlvRecordingLog> item) {
+			FlvRecordingLog l = item.getModelObject();
+			item.add(new Label("exitCode", l.getExitValue()));
+			item.add(new Label("message", l.getFullMessage()));
+			if (!"0".equals(l.getExitValue())) {
+				item.add(AttributeModifier.replace("class", "alert"));
+			}
+		}
+	};
+
+	@Override
+	public int getWidth() {
+		return 600;
+	}
+	
+	@Override
+	public boolean isResizable() {
+		return true;
+	}
+
+	@Override
+	public boolean isModal() {
+		return true;
+	}
+
+	public RecordingErrorsDialog(String id, IModel<FlvRecording> model) {
+		super(id, WebSession.getString(887), model);
+		add(container.add(message.setVisible(false), logView.setVisible(false)).setOutputMarkupId(true));
+	}
+	
+	@Override
+	protected void onOpen(AjaxRequestTarget target) {
+		FlvRecording f = getModelObject();
+		List<FlvRecordingLog> logs = getBean(FlvRecordingLogDao.class).getByRecordingId(f.getFlvRecordingId());
+		if (f.getFileHash() == null) {
+			message.setVisible(true);
+			message.setDefaultModelObject(WebSession.getString(888));
+		} else if (!isRecordingExists(f.getFileHash() + MP4_EXTENSION)) {
+			message.setVisible(true);
+			message.setDefaultModelObject(WebSession.getString(1595));
+		} else {
+			message.setVisible(false);
+		}
+		if (!logs.isEmpty()) {
+			logView.setVisible(false);
+			logView.setList(logs).setVisible(true);
+		}
+		target.add(container);
+		super.onOpen(target);
+	}
+	
+	public void onClose(AjaxRequestTarget target, DialogButton button) {
+	}
+	
+	@Override
+	protected List<DialogButton> getButtons() {
+		return new ArrayList<DialogButton>();
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/user/record/RecordingItemPanel.html b/src/web/java/org/apache/openmeetings/web/user/record/RecordingItemPanel.html
new file mode 100644
index 0000000..9caedb0
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/record/RecordingItemPanel.html
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:extend><span wicket:id="errors" class="errors"></span></wicket:extend>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/user/record/RecordingItemPanel.java b/src/web/java/org/apache/openmeetings/web/user/record/RecordingItemPanel.java
new file mode 100644
index 0000000..74dffd0
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/record/RecordingItemPanel.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user.record;
+
+import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.isRecordingExists;
+import static org.apache.openmeetings.web.app.Application.getBean;
+
+import org.apache.openmeetings.db.dao.record.FlvRecordingLogDao;
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.openmeetings.db.entity.record.FlvRecording.Status;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.model.IModel;
+
+public class RecordingItemPanel extends RecordingPanel {
+	private static final long serialVersionUID = 1L;
+
+	public RecordingItemPanel(String id, final IModel<FlvRecording> model, final RecordingErrorsDialog errorsDialog) {
+		super(id, model);
+		FlvRecording r = model.getObject();
+		long errorCount = getBean(FlvRecordingLogDao.class).countErrors(r.getFlvRecordingId());
+		boolean visible = errorCount != 0 || (Status.PROCESSING != r.getStatus() && !isRecordingExists(r.getFileHash() + MP4_EXTENSION));
+		item.add(new WebMarkupContainer("errors").add(new AjaxEventBehavior("click") {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void onEvent(AjaxRequestTarget target) {
+				errorsDialog.setDefaultModel(model);
+				errorsDialog.open(target);
+			}
+		}).setVisible(visible));
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.html b/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.html
new file mode 100644
index 0000000..be41b2e
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.html
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<div wicket:id="item" class="recording item"><span wicket:id="name" class="name"></span><wicket:child /></div>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.java b/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.java
new file mode 100644
index 0000000..d6ae5a4
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user.record;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+
+import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.extensions.ajax.markup.html.AjaxEditableLabel;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+
+import wicketdnd.theme.WindowsTheme;
+
+public class RecordingPanel extends Panel {
+	private static final long serialVersionUID = 1L;
+	protected final WebMarkupContainer item = new WebMarkupContainer("item");
+
+	public RecordingPanel(String id, final IModel<FlvRecording> model) {
+		super(id, model);
+		FlvRecording r = model.getObject();
+		add(new WindowsTheme());
+		item.add(r.isFolder() ? new AjaxEditableLabel<String>("name", Model.of(model.getObject().getFileName())) {
+			private static final long serialVersionUID = 1L;
+			
+			@Override
+			protected String getLabelAjaxEvent() {
+				return "dblClick";
+			}
+			
+			@Override
+			protected void onSubmit(AjaxRequestTarget target) {
+				super.onSubmit(target);
+				FlvRecording r = model.getObject();
+				r.setFileName(getEditor().getModelObject());
+				getBean(FlvRecordingDao.class).update(r);
+			}
+			
+			@Override
+			public void onEdit(AjaxRequestTarget target) {
+				super.onEdit(target);
+			}
+		} : new Label("name", r.getFileName()));
+		add(item.setOutputMarkupId(true));
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html b/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html
new file mode 100644
index 0000000..8b9ea8b
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<table class="recording">
+		<tr>
+			<td valign="top" class="files">
+				<div class="icons clear">
+					<span wicket:id="create" class="folder-create om-icon align-left clickable"></span>
+					<span wicket:id="refresh" class="refresh om-icon align-left clickable"></span>
+					<span wicket:id="trash" class="trash om-icon align-right clickable" wicket:ommessage="title:705"><span style="display: block;" wicket:id="drop-center">&nbsp;</span></span>
+					<div class="clear"></div>
+				</div>
+				<div wicket:id="tree-container" class="trees">
+					<div wicket:id="tree"></div>
+				</div>
+				<div class="sizes" wicket:id="sizes">
+					<table>
+						<tr>
+							<td><wicket:ommessage key="923"/></td>
+							<td><span wicket:id="homeSize"></span></td>
+						</tr>
+						<tr>
+							<td><wicket:ommessage key="924"/></td>
+							<td><span wicket:id="publicSize"></span></td>
+						</tr>
+					</table>
+				</div>
+				<div wicket:id="info"></div>
+			</td>
+			<td valign="top">
+				<div wicket:id="video"></div>
+			</td>
+		</tr>
+	</table>
+	<div wicket:id="addFolder"></div>
+	<div wicket:id="errors"></div>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java b/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
new file mode 100644
index 0000000..683c8ec
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
@@ -0,0 +1,375 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user.record;
+
+import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.getHumanSize;
+import static org.apache.openmeetings.util.OmFileHelper.isRecordingExists;
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.Iterator;
+
+import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.dto.file.RecordingContainerData;
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.openmeetings.db.entity.record.FlvRecording.Status;
+import org.apache.openmeetings.db.entity.user.Organisation;
+import org.apache.openmeetings.db.entity.user.Organisation_Users;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.common.AddFolderDialog;
+import org.apache.openmeetings.web.common.ConfirmableAjaxLink;
+import org.apache.openmeetings.web.common.UserPanel;
+import org.apache.wicket.Component;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.AjaxSelfUpdatingTimerBehavior;
+import org.apache.wicket.extensions.markup.html.repeater.tree.DefaultNestedTree;
+import org.apache.wicket.extensions.markup.html.repeater.tree.ITreeProvider;
+import org.apache.wicket.extensions.markup.html.repeater.tree.content.Folder;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.repeater.RepeatingView;
+import org.apache.wicket.markup.repeater.ReuseIfModelsEqualStrategy;
+import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.util.time.Duration;
+
+import wicketdnd.DragSource;
+import wicketdnd.DropTarget;
+import wicketdnd.Location;
+import wicketdnd.Operation;
+import wicketdnd.Reject;
+import wicketdnd.Transfer;
+
+public class RecordingsPanel extends UserPanel {
+	private static final long serialVersionUID = 1321258690447136958L;
+	private final WebMarkupContainer trees = new WebMarkupContainer("tree-container");
+	private final WebMarkupContainer sizes = new WebMarkupContainer("sizes");
+	private final VideoPlayer video = new VideoPlayer("video");
+	private final VideoInfo info = new VideoInfo("info");
+	private final IModel<FlvRecording> rm = new CompoundPropertyModel<FlvRecording>(new FlvRecording());
+	private final IModel<String> homeSize = Model.of((String)null);
+	private final IModel<String> publicSize = Model.of((String)null);
+	private final RecordingErrorsDialog errorsDialog = new RecordingErrorsDialog("errors", Model.of((FlvRecording)null));
+	private RecordingTree selected;
+	
+	public RecordingsPanel(String id) {
+		super(id);
+		rm.getObject().setFlvRecordingId(Long.MIN_VALUE);
+		final AddFolderDialog addFolder = new AddFolderDialog("addFolder", WebSession.getString(712)) {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void onSubmit(AjaxRequestTarget target) {
+				FlvRecording f = new FlvRecording();
+				f.setFileName(getModelObject());
+				f.setInsertedBy(getUserId());
+				f.setInserted(new Date());
+				f.setFolder(true);
+				f.setIsImage(false);
+				f.setIsPresentation(false);
+				f.setIsRecording(true);
+				FlvRecording p = rm.getObject();
+				long parentId = p.getFlvRecordingId();
+				if (p.isFolder()) {
+					f.setParentFileExplorerItemId(parentId);
+				}
+				f.setOwnerId(p.getOwnerId());
+				f.setOrganization_id(p.getOrganization_id());
+				getBean(FlvRecordingDao.class).update(f);
+				target.add(trees); //FIXME add correct refresh
+			}
+		};
+		add(addFolder);
+		add(new WebMarkupContainer("create").add(new AjaxEventBehavior("onclick") {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void onEvent(AjaxRequestTarget target) {
+				addFolder.open(target);
+			}
+		}));
+		add(new WebMarkupContainer("refresh").add(new AjaxEventBehavior("onclick") {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void onEvent(AjaxRequestTarget target) {
+				target.add(trees); //FIXME add correct refresh
+			}
+		}));
+		ConfirmableAjaxLink trash = new ConfirmableAjaxLink("trash", 713) {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			public void onClick(AjaxRequestTarget target) {
+				long id = rm.getObject().getFlvRecordingId();
+				if (id > 0) {
+					getBean(FlvRecordingDao.class).delete(rm.getObject());
+				}
+				target.add(trees); //FIXME add correct refresh
+			}
+		};
+		trash.add(new WebMarkupContainer("drop-center").setOutputMarkupId(true)).add(new DropTarget(Operation.MOVE) {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			public void onDrop(AjaxRequestTarget target, Transfer transfer, Location location) throws Reject {
+				FlvRecording r = transfer.getData();
+				getBean(FlvRecordingDao.class).delete(r);
+				target.add(trees); //FIXME add correct refresh
+			}
+		}.dropCenter("span"));
+		add(trash/*.add(new WindowsTheme())*/); //TODO check theme here
+		RepeatingView treesView = new RepeatingView("tree");
+		treesView.add(selected = new RecordingTree(treesView.newChildId(), new MyRecordingTreeProvider()));
+		treesView.add(new RecordingTree(treesView.newChildId(), new PublicRecordingTreeProvider(null, null)));
+		for (Organisation_Users ou : getBean(UserDao.class).get(getUserId()).getOrganisation_users()) {
+			Organisation o = ou.getOrganisation();
+			treesView.add(new RecordingTree(treesView.newChildId(), new PublicRecordingTreeProvider(o.getOrganisation_id(), o.getName())));
+		}
+		add(trees.add(treesView).setOutputMarkupId(true));
+		updateSizes();
+		add(sizes.add(new Label("homeSize", homeSize), new Label("publicSize", publicSize)).setOutputMarkupId(true));
+		sizes.add(new AjaxSelfUpdatingTimerBehavior(Duration.seconds(30)) {
+			private static final long serialVersionUID = 1L;
+
+			protected void onPostProcessTarget(AjaxRequestTarget target) {
+				updateSizes();
+			}
+		});
+		add(video, info, errorsDialog);
+	}
+
+	private void updateSizes() {
+		RecordingContainerData sizeData = getBean(FlvRecordingDao.class).getRecordingContainerData(getUserId());
+		if (sizeData != null) {
+			homeSize.setObject(getHumanSize(sizeData.getUserHomeSize()));
+			publicSize.setObject(getHumanSize(sizeData.getPublicFileSize()));
+		}
+	}
+	
+	//FIXME need to be generalized to use as Room files explorer
+	class RecordingTree extends DefaultNestedTree<FlvRecording> {
+		private static final long serialVersionUID = 2527395034256868022L;
+
+		public RecordingTree(String id, ITreeProvider<FlvRecording> tp) {
+			super(id, tp);
+			setItemReuseStrategy(new ReuseIfModelsEqualStrategy());
+		}
+		
+		@Override
+		protected Component newContentComponent(String id, IModel<FlvRecording> node) {
+			return new Folder<FlvRecording>(id, this, node) {
+				private static final long serialVersionUID = 1020976220467419084L;
+
+				@Override
+				protected Component newLabelComponent(String id, final IModel<FlvRecording> lm) {
+					FlvRecording r = lm.getObject();
+					Component result = r.isFolder() || r.getFlvRecordingId() < 1 ? new RecordingPanel(id, lm) : new RecordingItemPanel(id, lm, errorsDialog);
+					if (r.getFlvRecordingId() > 0) {
+						result.add(new DragSource(Operation.MOVE) {
+							private static final long serialVersionUID = 1L;
+
+							@Override
+							public void onBeforeDrop(Component drag, Transfer transfer) throws Reject {
+								transfer.setData(lm.getObject());
+							};
+							
+							@Override
+							public void onAfterDrop(AjaxRequestTarget target, wicketdnd.Transfer transfer) {
+								transfer.setData(null);
+							}
+						}.drag("div"));
+					}
+					if (r.getFlvRecordingId() < 0 || r.isFolder()) {
+						result.add(new DropTarget(Operation.MOVE) {
+							private static final long serialVersionUID = 1L;
+
+							@Override
+							public void onDrop(AjaxRequestTarget target, Transfer transfer, Location location) throws Reject {
+								FlvRecording p = lm.getObject();
+								long pid = p.getFlvRecordingId();
+								FlvRecording r = transfer.getData();
+								r.setParentFileExplorerItemId(pid > 0 ? pid : null);
+								r.setOrganization_id(p.getOrganization_id());
+								r.setOwnerId(p.getOwnerId());
+								getBean(FlvRecordingDao.class).update(r);
+								target.add(trees); //FIXME add correct refresh
+							}
+						}.dropCenter("div"));
+					}
+					return result;
+				}
+				
+				@Override
+				protected boolean isSelected() {
+					return getModelObject().getFlvRecordingId() == rm.getObject().getFlvRecordingId();
+				}
+				
+				@Override
+				protected boolean isClickable() {
+					return true;
+				}
+				
+				@Override
+				protected void onClick(AjaxRequestTarget target) {
+					FlvRecording r = getModelObject();
+					FlvRecording _prev = rm.getObject();
+					rm.setObject(r);
+					if (_prev != null) {
+						if (_prev.isFolder()) {
+							selected.updateBranch(_prev, target);
+						} else {
+							selected.updateNode(_prev, target);
+						}
+					}
+ 					selected = RecordingTree.this;
+					if (r.isFolder()) {
+						if (getState(r) == State.COLLAPSED) {
+							super.onClick(target);
+						}
+						updateBranch(r, target);
+					} else {
+						video.update(target, r);
+						info.update(target, r);
+						updateNode(r, target);
+					}
+				}
+				
+				private String getRecordingStyle(FlvRecording r, String def) {
+					String style;
+					if (r.getFlvRecordingId() == 0) {
+						style = "my-recordings om-icon";
+					} else if (r.getFlvRecordingId() < 0) {
+						style = "public-recordings om-icon";
+					} else if (r.isFolder()) {
+						style = def;
+					} else if (isRecordingExists(r.getFileHash() + MP4_EXTENSION)) {
+						style = "recording om-icon";
+					} else if (Status.PROCESSING == r.getStatus()) {
+						style = "processing-recording om-icon";
+					} else {
+						style = "broken-recording om-icon";
+					}
+					return style;
+				}
+				
+				@Override
+				protected String getOtherStyleClass(FlvRecording r) {
+					String style = getRecordingStyle(r, super.getOtherStyleClass(r));
+					if (isSelected()) {
+						style += " selected";
+					}
+					return style;
+				}
+				
+				@Override
+				protected String getOpenStyleClass() {
+					return getRecordingStyle(getModelObject(), super.getOpenStyleClass());
+				}
+				
+				@Override
+				protected String getClosedStyleClass() {
+					return getRecordingStyle(getModelObject(), super.getClosedStyleClass());
+				}
+				
+				@Override
+				protected IModel<String> newLabelModel(IModel<FlvRecording> model) {
+					return Model.of(model.getObject().getFileName());
+				}
+			};
+		}
+	}
+	
+	class MyRecordingTreeProvider extends RecordingTreeProvider {
+		private static final long serialVersionUID = 1L;
+
+		public Iterator<? extends FlvRecording> getRoots() {
+			FlvRecording r = new FlvRecording();
+			r.setFlvRecordingId(0);
+			r.setFileName(WebSession.getString(860));
+			r.setOwnerId(getUserId());
+			return Arrays.asList(r).iterator();
+		}
+		
+		public Iterator<? extends FlvRecording> getChildren(FlvRecording node) {
+			if (node.getFlvRecordingId() == 0) {
+				return getBean(FlvRecordingDao.class).getFlvRecordingRootByOwner(getUserId()).iterator();
+			} else {
+				return super.getChildren(node);
+			}
+		}
+	}
+	
+	class PublicRecordingTreeProvider extends RecordingTreeProvider {
+		private static final long serialVersionUID = 5502610991599632079L;
+		private final Long orgId;
+		private final String name;
+
+		public PublicRecordingTreeProvider(Long orgId, String name) {
+			this.orgId = orgId;
+			this.name = name;
+		}
+		
+		public Iterator<? extends FlvRecording> getRoots() {
+			FlvRecording r = new FlvRecording();
+			r.setFlvRecordingId(orgId == null ? -1 : -orgId);
+			r.setOrganization_id(orgId);
+			r.setOwnerId(null);
+			String pub = WebSession.getString(861);
+			r.setFileName(orgId == null ? pub : String.format("%s (%s)", pub, name));
+			return Arrays.asList(r).iterator();
+		}
+		
+		public Iterator<? extends FlvRecording> getChildren(FlvRecording node) {
+			if (node.getFlvRecordingId() < 0) {
+				return getBean(FlvRecordingDao.class).getFlvRecordingRootByPublic(orgId).iterator();
+			} else {
+				return super.getChildren(node);
+			}
+		}
+	}
+	
+	abstract class RecordingTreeProvider implements ITreeProvider<FlvRecording> {
+		private static final long serialVersionUID = 1L;
+
+		public void detach() {
+			// TODO LDM should be used
+		}
+
+		public boolean hasChildren(FlvRecording node) {
+			return node.getFlvRecordingId() <= 0 || node.isFolder();
+		}
+
+		public Iterator<? extends FlvRecording> getChildren(FlvRecording node) {
+			return getBean(FlvRecordingDao.class).getFlvRecordingByParent(node.getFlvRecordingId()).iterator();
+		}
+
+		public IModel<FlvRecording> model(FlvRecording object) {
+			// TODO LDM should be used
+			return Model.of(object);
+		}
+		
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/user/record/VideoInfo.html b/src/web/java/org/apache/openmeetings/web/user/record/VideoInfo.html
new file mode 100644
index 0000000..062048b
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/record/VideoInfo.html
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<div class="info" wicket:id="container">
+		<table>
+			<tr>
+				<td><wicket:ommessage key="863"/></td>
+				<td><span wicket:id="fileName"></span></td>
+			</tr>
+			<tr>
+				<td><wicket:ommessage key="864"/></td>
+				<td><span wicket:id="duration"></span></td>
+			</tr>
+			<tr>
+				<td><wicket:ommessage key="865"/></td>
+				<td><span wicket:id="recordEnd"></span></td>
+			</tr>
+			<tr>
+				<td><wicket:ommessage key="874"/></td>
+				<td><span wicket:id="room_id"></span></td>
+			</tr>
+		</table>
+		<table>
+			<tr>
+				<td><input type="button" wicket:id="dAVI" wicket:ommessage="value:884"/></td>
+				<td><input type="button" wicket:id="dFLV" wicket:ommessage="value:883"/></td>
+			</tr>
+		</table>
+	</div>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/user/record/VideoInfo.java b/src/web/java/org/apache/openmeetings/web/user/record/VideoInfo.java
new file mode 100644
index 0000000..69c1dd5
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/record/VideoInfo.java
@@ -0,0 +1,101 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user.record;
+
+import static org.apache.openmeetings.util.OmFileHelper.getRecording;
+import static org.apache.openmeetings.util.OmFileHelper.isRecordingExists;
+import static org.apache.openmeetings.web.app.Application.getBean;
+
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.web.util.AjaxDownload;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.Button;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.util.resource.FileResourceStream;
+
+public class VideoInfo extends Panel {
+	private static final long serialVersionUID = 1L;
+	private final WebMarkupContainer container = new WebMarkupContainer("container");
+	private final Button dAVI = new Button("dAVI");
+	private final Button dFLV = new Button("dFLV");
+	private final AjaxDownload download = new AjaxDownload();
+	private final IModel<FlvRecording> rm = new CompoundPropertyModel<FlvRecording>(new FlvRecording());
+	private final IModel<String> roomName = Model.of((String)null);
+
+	public VideoInfo(String id) {
+		this(id, null);
+	}
+	
+	public VideoInfo(String id, FlvRecording r) {
+		super(id);
+		add(container.setOutputMarkupId(true));
+		setDefaultModel(rm);
+		
+		container.add(new Label("fileName"), new Label("duration"), new Label("recordEnd"), new Label("room_id", roomName),
+				dFLV.setEnabled(false), dAVI.setEnabled(false));
+		dAVI.add(new AjaxEventBehavior("click"){
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void onEvent(AjaxRequestTarget target) {
+				download.setFileName(rm.getObject().getAlternateDownload());
+				download.setResourceStream(new FileResourceStream(getRecording(rm.getObject().getAlternateDownload())));
+				download.initiate(target);
+			}
+		});
+		dFLV.add(new AjaxEventBehavior("click"){
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void onEvent(AjaxRequestTarget target) {
+				download.setFileName(rm.getObject().getFileHash());
+				download.setResourceStream(new FileResourceStream(getRecording(rm.getObject().getFileHash())));
+				download.initiate(target);
+			}
+		});
+		add(download);
+		update(null, r);
+	}
+	
+	public VideoInfo update(AjaxRequestTarget target, FlvRecording r) {
+		rm.setObject(r == null ? new FlvRecording() : r);
+		try {
+			Room room = getBean(RoomDao.class).get(r.getRoom_id());
+			roomName.setObject(room.getName());
+		} catch (Exception e) {
+			//no-op
+		}
+		
+		dAVI.setEnabled(isRecordingExists(rm.getObject().getAlternateDownload()));
+		dFLV.setEnabled(isRecordingExists(rm.getObject().getFileHash()));
+		if (target != null) {
+			target.add(container);
+		}
+		
+		return this;
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/user/record/VideoPlayer.html b/src/web/java/org/apache/openmeetings/web/user/record/VideoPlayer.html
new file mode 100644
index 0000000..8d0defe
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/record/VideoPlayer.html
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<div class="video" wicket:id="container">
+		<div wicket:id="wait"></div>
+		<video wicket:id="player">
+			Your browser does not support HTML5 video. <!-- FIXME hardcoded -->
+		</video>
+	</div>
+</wicket:panel>
+</html>
diff --git a/src/web/java/org/apache/openmeetings/web/user/record/VideoPlayer.java b/src/web/java/org/apache/openmeetings/web/user/record/VideoPlayer.java
new file mode 100644
index 0000000..ff746c2
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/record/VideoPlayer.java
@@ -0,0 +1,100 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user.record;
+
+import static org.apache.openmeetings.util.OmFileHelper.getMp4Recording;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.openmeetings.web.util.Mp4RecordingResourceReference;
+import org.apache.openmeetings.web.util.OggRecordingResourceReference;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.util.ListModel;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.wicketstuff.html5.media.MediaSource;
+import org.wicketstuff.html5.media.video.Html5Video;
+
+public class VideoPlayer extends Panel {
+	private static final long serialVersionUID = 1L;
+	private final WebMarkupContainer wait = new WebMarkupContainer("wait"); //FIXME not used
+	private final WebMarkupContainer container = new WebMarkupContainer("container");
+	private final Mp4RecordingResourceReference mp4res = new Mp4RecordingResourceReference();
+	private final OggRecordingResourceReference oggres = new OggRecordingResourceReference();
+	private final IModel<List<MediaSource>> playerModel = new ListModel<MediaSource>(new ArrayList<MediaSource>());
+	private final OmHtml5Video player = new OmHtml5Video("player", playerModel, null);
+
+	public VideoPlayer(String id) {
+		this(id, null);
+	}
+	
+	public VideoPlayer(String id, FlvRecording r) {
+		super(id);
+		add(container.setOutputMarkupPlaceholderTag(true));
+		container.add(wait.setVisible(false), player);
+		update(null, r);
+	}
+	
+	public VideoPlayer update(AjaxRequestTarget target, FlvRecording r) {
+		boolean videoExists = r != null && getMp4Recording(r.getFileHash()).exists();
+		if (videoExists) {
+			PageParameters pp = new PageParameters().add("id", r.getFlvRecordingId());
+			playerModel.setObject(Arrays.asList(
+					new MediaSource("" + getRequestCycle().urlFor(mp4res, pp), "video/mp4")
+					, new MediaSource("" + getRequestCycle().urlFor(oggres, pp), "video/ogg")));
+			player.recId = r.getFlvRecordingId();
+		}
+		container.setVisible(videoExists);
+		if (target != null) {
+			target.add(container);
+		}
+		
+		return this;
+	}
+	
+	private static class OmHtml5Video extends Html5Video {
+		private static final long serialVersionUID = 1L;
+		Long recId = null;
+		
+		OmHtml5Video(String id, IModel<List<MediaSource>> model, Long recId) {
+			super(id, model);
+			this.recId = recId;
+		}
+		
+		@Override
+		protected boolean isAutoPlay() {
+			return false;
+		}
+		
+		@Override
+		protected boolean isControls() {
+			return true;
+		}
+		
+		@Override
+		protected String getPoster() {
+			return recId == null ? null : "recordings/jpg/" + recId;
+		}
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/user/rooms/RoomEnterBehavior.java b/src/web/java/org/apache/openmeetings/web/user/rooms/RoomEnterBehavior.java
new file mode 100644
index 0000000..9dd156d
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/rooms/RoomEnterBehavior.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user.rooms;
+
+import org.apache.openmeetings.web.pages.MainPage;
+import org.apache.openmeetings.web.util.OmUrlFragment;
+import org.apache.openmeetings.web.util.OmUrlFragment.AreaKeys;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+
+public class RoomEnterBehavior extends AjaxEventBehavior {
+	private static final long serialVersionUID = -5195740583653865055L;
+	private final long roomid;
+	
+	public RoomEnterBehavior(long roomid) {
+		super("click");
+		this.roomid = roomid;
+	}
+
+	public static OmUrlFragment getRoomUrlFragment(long roomId) {
+		return new OmUrlFragment(AreaKeys.room, "" + roomId);
+	}
+	
+	public static void roomEnter(MainPage page, AjaxRequestTarget target, long roomId) {
+		page.updateContents(getRoomUrlFragment(roomId), target);
+	}
+	
+	@Override
+	protected void onEvent(AjaxRequestTarget target) {
+		roomEnter((MainPage)getComponent().getPage(), target, roomid);
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/user/rooms/RoomPanel.html b/src/web/java/org/apache/openmeetings/web/user/rooms/RoomPanel.html
new file mode 100644
index 0000000..edde44a
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/rooms/RoomPanel.html
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+	<div id="swfloading"
+		style="z-index: 666666; position: absolute; top: 50%; left: 50%;">
+		<img src="images/ajax-loader.gif" />
+	</div>
+	<noscript>Please enable JavaScript in order to use this application.</noscript>
+	<script type="text/javascript" wicket:id="init"></script>
+</wicket:panel>
+</html>
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/user/rooms/RoomPanel.java b/src/web/java/org/apache/openmeetings/web/user/rooms/RoomPanel.java
new file mode 100644
index 0000000..6affcd9
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/rooms/RoomPanel.java
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.user.rooms;
+
+
+import org.apache.openmeetings.web.common.BasePanel;
+import org.apache.wicket.RuntimeConfigurationType;
+import org.apache.wicket.markup.head.CssHeaderItem;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.markup.head.PriorityHeaderItem;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.request.mapper.parameter.PageParametersEncoder;
+import org.apache.wicket.request.resource.JavaScriptResourceReference;
+import org.apache.wicket.request.resource.ResourceReference;
+import org.apache.wicket.util.string.StringValue;
+
+public class RoomPanel extends BasePanel {
+	private static final long serialVersionUID = 2308988314987829510L;
+	
+	public RoomPanel(String id) {
+		this(id, new PageParameters());
+	}
+	
+	private String getFlashFile() {
+		return RuntimeConfigurationType.DEVELOPMENT == getApplication().getConfigurationType()
+				? "maindebug.as3.swf11.swf" : "main.as3.swf11.swf";
+	}
+	
+	public RoomPanel(String id, PageParameters pp) {
+		super(id);
+
+		StringValue swfVal = pp.get("swf");
+		String swf = (swfVal.isEmpty() ? getFlashFile() : swfVal.toString())
+				+ new PageParametersEncoder().encodePageParameters(pp);
+		add(new Label("init", String.format("initSwf('%s');", swf)).setEscapeModelStrings(false));
+	}
+
+	private ResourceReference newResourceReference() {
+		return new JavaScriptResourceReference(RoomPanel.class, "swf-functions.js");
+	}
+	
+	@Override
+	public void renderHead(IHeaderResponse response) {
+		super.renderHead(response);
+		response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(newResourceReference())));
+		response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forUrl("js/history.js")));
+		response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forUrl("js/openmeetings_functions.js")));
+		response.render(new PriorityHeaderItem(CssHeaderItem.forUrl("css/history.css")));
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.html b/src/web/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.html
new file mode 100644
index 0000000..302b128
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.html
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<html xmlns:wicket="http://wicket.apache.org">

+<wicket:panel>

+	<table>

+		<tr>

+			<td style="vertical-align: top">

+				<table class="room-list">

+					<tr wicket:id="list" class="room-row">

+						<td>

+							<div wicket:id="roomContainer">		

+								<span wicket:id="roomName">[room name]</span><br/>

+								<wicket:ommessage key="398" />&nbsp;<span wicket:id="curUsers"></span>&nbsp;/&nbsp;<span

+								wicket:id="totalUsers"></span>&nbsp;&nbsp;<span wicket:id="refresh" 

+								class="ui-icon ui-icon-arrowrefresh-1-n" style="display: inline-block"></span>

+							</div>

+						</td>

+						<td><button wicket:id="enter"><wicket:ommessage key="131"/></button></td>

+					</tr>

+				</table>

+			</td>

+			<td style="vertical-align: top">

+				<!-- Users in this Room -->

+				<fieldset class="ui-widget-content" wicket:id="details">

+					<div class="formelement" style="font-style: italic;">

+	                    <label><wicket:ommessage key="404" /></label>

+					</div>

+					<div class="formelement">

+	                    <label style="font-weight: bold;"><wicket:ommessage key="406" /></label>

+	                    <span wicket:id="roomName"></span>&nbsp;#<span wicket:id="roomId"></span>

+					</div>

+					<div class="formelement">

+	                    <label style="font-weight: bold;"><wicket:ommessage key="270" /></label>

+	                    <span wicket:id="roomComment"></span>

+					</div>

+					<div class="formelement">

+	                    <label><wicket:ommessage key="407" /></label>

+					</div>

+					<div class="tableWrapper" id="adminTable">

+						<table class="adminListTable">

+							<tbody wicket:id="clientsContainer">		

+					    		<tr wicket:id="clients">

+									<td style="width: 50px; height:50px" ><div style="width: 50px; height:50px"><img wicket:id="clientImage" width="50" height="50" /></div></td>

+									<td style="width: 350px; height:50px">

+										<div style="width: 350px; height:50px"><span wicket:id="clientLogin"></span>&nbsp;<wicket:ommessage key="408"/>&nbsp;<span wicket:id="from"></span></div>

+									</td>

+								</tr>

+							</tbody>

+						</table>

+					</div>

+				</fieldset>

+			</td>

+		</tr>

+	</table>

+</wicket:panel>

+</html>

diff --git a/src/web/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java b/src/web/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java
new file mode 100644
index 0000000..55fbede
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java
@@ -0,0 +1,146 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.user.rooms;

+

+import java.io.File;

+import java.io.FileInputStream;

+import java.util.List;

+

+import org.apache.openmeetings.db.dao.room.RoomDao;

+import org.apache.openmeetings.db.dao.server.ISessionManager;

+import org.apache.openmeetings.db.dao.user.UserDao;

+import org.apache.openmeetings.db.entity.room.Client;

+import org.apache.openmeetings.db.entity.room.Room;

+import org.apache.openmeetings.util.OmFileHelper;

+import org.apache.openmeetings.web.app.Application;

+import org.apache.openmeetings.web.common.UserPanel;

+import org.apache.wicket.ajax.AjaxEventBehavior;

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.ajax.markup.html.AjaxLink;

+import org.apache.wicket.markup.html.WebMarkupContainer;

+import org.apache.wicket.markup.html.basic.Label;

+import org.apache.wicket.markup.html.image.Image;

+import org.apache.wicket.markup.html.list.ListItem;

+import org.apache.wicket.markup.html.list.ListView;

+import org.apache.wicket.model.IModel;

+import org.apache.wicket.model.Model;

+import org.apache.wicket.request.resource.ByteArrayResource;

+import org.apache.wicket.util.io.IOUtils;

+

+import com.googlecode.wicket.jquery.ui.form.button.Button;

+

+public class RoomsPanel extends UserPanel {

+	private static final long serialVersionUID = -892281210307880052L;

+	private final WebMarkupContainer clientsContainer = new WebMarkupContainer("clientsContainer");

+	private final WebMarkupContainer details = new WebMarkupContainer("details");

+	private final ListView<Client> clients;

+	private IModel<Long> roomID = Model.of((Long)null);

+	private IModel<String> roomName = Model.of((String)null);

+	private IModel<String> roomComment = Model.of((String)null);

+	private List<Client> clientsInRoom = null;

+	private long roomId = 0;

+

+	public RoomsPanel(String id, List<Room> rooms) {

+		super(id);

+		add(new ListView<Room>("list", rooms) {

+			private static final long serialVersionUID = 9189085478336224890L;

+

+			@Override

+			protected void populateItem(ListItem<Room> item) {

+				final Room r = item.getModelObject();

+				WebMarkupContainer roomContainer;

+				item.add((roomContainer = new WebMarkupContainer("roomContainer")).add(new AjaxEventBehavior("onclick"){

+					private static final long serialVersionUID = 1L;

+					

+					@Override

+					protected void onEvent(AjaxRequestTarget target) {

+						roomId = r.getRooms_id();

+						updateRoomDetails(target);

+					}

+				}));

+				roomContainer.add(new Label("roomName", r.getName()));

+				final IModel<Integer> curUsersModel = new Model<Integer>(Application.getBean(ISessionManager.class).getClientListByRoom(r.getRooms_id()).size()); 

+				final Label curUsers = new Label("curUsers", curUsersModel);

+				roomContainer.add(curUsers.setOutputMarkupId(true));

+				roomContainer.add(new Label("totalUsers", r.getNumberOfPartizipants()));

+				item.add(new Button("enter").add(new RoomEnterBehavior(r.getRooms_id())));

+				roomContainer.add(new AjaxLink<Void>("refresh") {

+					private static final long serialVersionUID = -3426813755917489787L;

+

+					@Override

+					public void onClick(AjaxRequestTarget target) {

+						roomId = r.getRooms_id();

+						curUsersModel.setObject(Application.getBean(ISessionManager.class).getClientListByRoom(r.getRooms_id()).size());

+						target.add(curUsers);

+						updateRoomDetails(target);

+					}

+				});

+			}

+		});

+		

+		// Users in this Room

+		add(details.setOutputMarkupId(true).setVisible(rooms.size() > 0));

+		details.add(new Label("roomId", roomID));

+		details.add(new Label("roomName", roomName));

+		details.add(new Label("roomComment", roomComment));

+		clients = new ListView<Client>("clients", clientsInRoom){

+			private static final long serialVersionUID = 8542589945574690054L;

+

+			@Override

+			protected void populateItem(final ListItem<Client> item) {

+				Client client = item.getModelObject();

+				final Long userId = client.getUser_id();

+				item.add(new Image("clientImage", new ByteArrayResource("image/jpeg") {

+					private static final long serialVersionUID = 6039580072791941591L;

+

+					@Override

+					protected ResourceResponse newResourceResponse(Attributes attributes) {

+						ResourceResponse rr = super.newResourceResponse(attributes);

+						rr.disableCaching();

+						return rr;

+					}

+					

+					@Override

+					protected byte[] getData(Attributes attributes) {

+						String uri = Application.getBean(UserDao.class).get(userId).getPictureuri();

+						File img = OmFileHelper.getUserProfilePicture(userId, uri);

+						try {

+							return IOUtils.toByteArray(new FileInputStream(img));

+						} catch (Exception e) {

+						}

+						return null;

+					}

+				}));

+				item.add(new Label("clientLogin", client.getUsername()));

+				item.add(new Label("from", client.getConnectedSince()));

+			}

+		};

+		details.add(clientsContainer.add(clients.setOutputMarkupId(true)).setOutputMarkupId(true));

+	}

+

+	void updateRoomDetails(AjaxRequestTarget target) {

+		final List<Client> clientsInRoom = Application.getBean(ISessionManager.class).getClientListByRoom(roomId);

+		clients.setDefaultModelObject(clientsInRoom);

+		Room room = Application.getBean(RoomDao.class).get(roomId);

+		roomID.setObject(room.getRooms_id());

+		roomName.setObject(room.getName());

+		roomComment.setObject(room.getComment());

+		target.add(clientsContainer, details);

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/user/rooms/RoomsSelectorPanel.html b/src/web/java/org/apache/openmeetings/web/user/rooms/RoomsSelectorPanel.html
new file mode 100644
index 0000000..eea6f53
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/rooms/RoomsSelectorPanel.html
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<html xmlns:wicket="http://wicket.apache.org">

+	<wicket:panel>

+		<div wicket:id="title" class="rooms title"></div>

+		<div wicket:id="desc" class="rooms desc info-text"></div>

+		<div wicket:id="rooms"></div>

+	</wicket:panel>

+</html>

diff --git a/src/web/java/org/apache/openmeetings/web/user/rooms/RoomsSelectorPanel.java b/src/web/java/org/apache/openmeetings/web/user/rooms/RoomsSelectorPanel.java
new file mode 100644
index 0000000..5638cb0
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/rooms/RoomsSelectorPanel.java
@@ -0,0 +1,57 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.user.rooms;

+

+import org.apache.openmeetings.db.dao.room.RoomDao;

+import org.apache.openmeetings.web.app.Application;

+import org.apache.openmeetings.web.app.WebSession;

+import org.apache.openmeetings.web.common.UserPanel;

+import org.apache.openmeetings.web.util.OmUrlFragment.MenuParams;

+import org.apache.wicket.markup.html.basic.Label;

+

+public class RoomsSelectorPanel extends UserPanel {

+	private static final long serialVersionUID = -3246259803623925341L;

+

+	public RoomsSelectorPanel(String id, MenuParams param) {

+		super(id);

+

+		long title, desc;

+		RoomDao roomDao = Application.getBean(RoomDao.class);

+		switch (param) {

+			case myTabButton:

+				title = 781L;

+				desc = 782L;

+				add(new RoomsPanel("rooms", getMyRooms()));

+				break;

+			case privateTabButton:

+				title = 779L;

+				desc = 780L;

+				add(new RoomsTabbedPanel("rooms")); 

+				break;

+			case publicTabButton:

+			default:

+				title = 777L;

+				desc = 778L;

+				add(new RoomsPanel("rooms", roomDao.getPublicRooms()));

+				break;

+		}

+		add(new Label("title", WebSession.getString(title)));

+		add(new Label("desc", WebSession.getString(desc)));

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/user/rooms/RoomsTabbedPanel.html b/src/web/java/org/apache/openmeetings/web/user/rooms/RoomsTabbedPanel.html
new file mode 100644
index 0000000..b8aa48b
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/rooms/RoomsTabbedPanel.html
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+    	  

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+  

+-->

+<html xmlns:wicket="http://wicket.apache.org">

+	<wicket:panel>

+		<div id="orgTabs">

+			<ul>

+				<li wicket:id="orgTabs"><a wicket:id="link"><wicket:container wicket:id="name"></wicket:container></a></li>

+			</ul>

+			<wicket:container wicket:id="orgRooms"><div wicket:id="rooms"></div></wicket:container>

+		</div>

+	</wicket:panel>

+</html>

diff --git a/src/web/java/org/apache/openmeetings/web/user/rooms/RoomsTabbedPanel.java b/src/web/java/org/apache/openmeetings/web/user/rooms/RoomsTabbedPanel.java
new file mode 100644
index 0000000..7a501c9
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/rooms/RoomsTabbedPanel.java
@@ -0,0 +1,70 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.user.rooms;

+

+import static org.apache.openmeetings.web.app.Application.getBean;

+import static org.apache.openmeetings.web.app.WebSession.getUserId;

+

+import org.apache.openmeetings.db.dao.room.RoomDao;

+import org.apache.openmeetings.db.dao.user.UserDao;

+import org.apache.openmeetings.db.entity.user.Organisation;

+import org.apache.openmeetings.db.entity.user.Organisation_Users;

+import org.apache.openmeetings.db.entity.user.User;

+import org.apache.openmeetings.web.common.UserPanel;

+import org.apache.wicket.AttributeModifier;

+import org.apache.wicket.markup.html.WebMarkupContainer;

+import org.apache.wicket.markup.html.basic.Label;

+import org.apache.wicket.markup.html.list.ListItem;

+import org.apache.wicket.markup.html.list.ListView;

+import org.apache.wicket.model.Model;

+

+import com.googlecode.wicket.jquery.core.JQueryBehavior;

+

+public class RoomsTabbedPanel extends UserPanel {

+	private static final long serialVersionUID = 3642004664480074881L;

+

+	public RoomsTabbedPanel(String id) {

+		super(id);

+		

+		User u = getBean(UserDao.class).get(getUserId());

+		add(new ListView<Organisation_Users>("orgTabs", u.getOrganisation_users()) {

+			private static final long serialVersionUID = -145637079945252731L;

+

+			@Override

+			protected void populateItem(ListItem<Organisation_Users> item) {

+				Organisation org = item.getModelObject().getOrganisation();

+				item.add(new WebMarkupContainer("link")

+					.add(new Label("name", Model.of(org.getName())))

+					.add(new AttributeModifier("href", "#org" + org.getOrganisation_id())));

+			}

+		});

+		add(new ListView<Organisation_Users>("orgRooms", u.getOrganisation_users()) {

+			private static final long serialVersionUID = 9039932126334250798L;

+

+			@Override

+			protected void populateItem(ListItem<Organisation_Users> item) {

+				Organisation org = item.getModelObject().getOrganisation();

+				item.add(new RoomsPanel("rooms"

+					, getBean(RoomDao.class).getOrganisationRooms(org.getOrganisation_id()))

+					.setMarkupId("org" + org.getOrganisation_id())).setRenderBodyOnly(true);

+			}

+		});

+		add(new JQueryBehavior("#orgTabs", "tabs"));

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/user/rooms/swf-functions.js b/src/web/java/org/apache/openmeetings/web/user/rooms/swf-functions.js
new file mode 100644
index 0000000..3c3ead6
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/user/rooms/swf-functions.js
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+function getAppletStatus() {
+	return false;
+}
+
+function initSwf(swfurl) {
+	var general = {
+			url : swfurl,
+			bgcolor : '#ffffff',
+			width : '100%',
+			height : '100%',
+			id : 'lzapp',
+			__lzminimumversion : 8
+		};
+	var options = $.extend({}, general, {allowfullscreen : 'true'});
+	$('#header, #topControls, #chatPanel').hide();
+	$('div[id="contents"], div[id="contents"] > div').css('height', '100%');
+	var embed = $('<embed>').attr('quality', 'high').attr('bgcolor', options.bgcolor)
+		.attr('src', "public/" + options.url)
+		.attr('wmode', 'window').attr('allowfullscreen', true)
+		.attr('width', options.width).attr('height', options.height)
+		.attr('id', 'lzapp').attr('name', 'lzapp')
+		.attr('flashvars', escape($.param(general)))
+		.attr('swliveconnect', true).attr('align', 'middle')
+		.attr('allowscriptaccess', 'sameDomain').attr('type', 'application/x-shockwave-flash')
+		.attr('pluginspage', 'http://www.macromedia.com/go/getflashplayer');
+	$('#swfloading').after($('<div id="lzappContainer">').append(embed)).width('1px').height('1px');
+}
+
+function roomExit() {
+	$('#header, #topControls, #chatPanel').show();
+	$('div[id="contents"], div[id="contents"] > div').css('height', 'auto');
+	window.location.hash = "#rooms/public";
+	$('#lzappContainer').remove();
+}
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/util/AjaxDownload.java b/src/web/java/org/apache/openmeetings/web/util/AjaxDownload.java
new file mode 100644
index 0000000..2000987
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/util/AjaxDownload.java
@@ -0,0 +1,99 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.util;

+

+import org.apache.wicket.ajax.AjaxRequestTarget;

+import org.apache.wicket.behavior.AbstractAjaxBehavior;

+import org.apache.wicket.request.handler.resource.ResourceStreamRequestHandler;

+import org.apache.wicket.request.resource.ContentDisposition;

+import org.apache.wicket.util.resource.IResourceStream;

+

+/**

+ * see: <a href="https://cwiki.apache.org/confluence/display/WICKET/AJAX+update+and+file+download+in+one+blow">

+ * https://cwiki.apache.org/confluence/display/WICKET/AJAX+update+and+file+download+in+one+blow</href>

+ * 

+ */

+public class AjaxDownload extends AbstractAjaxBehavior {

+	private static final long serialVersionUID = 1L;

+

+	private boolean addAntiCache;

+

+	private String fileName;

+	private IResourceStream resourceStream;

+

+	public AjaxDownload() {

+		this(true);

+	}

+

+	public AjaxDownload(boolean addAntiCache) {

+		super();

+		this.addAntiCache = addAntiCache;

+	}

+

+	/**

+	 * Call this method to initiate the download.

+	 */

+	public void initiate(AjaxRequestTarget target) {

+		String url = getCallbackUrl().toString();

+

+		if (addAntiCache) {

+			url = url + (url.contains("?") ? "&" : "?");

+			url = url + "antiCache=" + System.currentTimeMillis();

+		}

+

+		// the timeout is needed to let Wicket release the channel

+		target.appendJavaScript("setTimeout(\"window.location.href='" + url + "'\", 100);");

+	}

+

+	public void onRequest() {

+		ResourceStreamRequestHandler handler = new ResourceStreamRequestHandler(getResourceStream(), getFileName());

+		handler.setContentDisposition(getContentDisposition());

+		getComponent().getRequestCycle().scheduleRequestHandlerAfterCurrent(handler);

+	}

+

+	protected ContentDisposition getContentDisposition() {

+		return ContentDisposition.ATTACHMENT;

+	}

+	/**

+	 * Override this method for a file name which will let the browser prompt

+	 * with a save/open dialog.

+	 * 

+	 * @see ResourceStreamRequestTarget#getFileName()

+	 */

+	protected String getFileName() {

+		return this.fileName;

+	}

+

+	public void setFileName(String fileName) {

+		this.fileName = fileName;

+	}

+

+	/**

+	 * Hook method providing the actual resource stream.

+	 */

+	protected IResourceStream getResourceStream() {

+		return resourceStream;

+

+	}

+

+	public void setResourceStream(IResourceStream resourceStream) {

+		this.resourceStream = resourceStream;

+	}

+

+}

diff --git a/src/web/java/org/apache/openmeetings/web/util/AviRecordingResourceReference.java b/src/web/java/org/apache/openmeetings/web/util/AviRecordingResourceReference.java
new file mode 100644
index 0000000..f354341
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/util/AviRecordingResourceReference.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.util;
+
+import static org.apache.openmeetings.util.OmFileHelper.getRecording;
+
+import java.io.File;
+
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+
+public class AviRecordingResourceReference extends RecordingResourceReference {
+	private static final long serialVersionUID = 6181482949621024822L;
+
+	public AviRecordingResourceReference() {
+		super(AviRecordingResourceReference.class);
+	}
+	
+	@Override
+	public String getContentType() {
+		return "video/avi";
+	}
+	
+	@Override
+	String getFileName(FlvRecording r) {
+		return r.getAlternateDownload();
+	}
+	
+	@Override
+	File getFile(FlvRecording r) {
+		return getRecording(r.getAlternateDownload());
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/util/BootstrapFileUploadBehavior.java b/src/web/java/org/apache/openmeetings/web/util/BootstrapFileUploadBehavior.java
new file mode 100644
index 0000000..0d85df4
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/util/BootstrapFileUploadBehavior.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.util;
+
+import org.apache.wicket.Component;
+import org.apache.wicket.behavior.Behavior;
+import org.apache.wicket.markup.head.CssHeaderItem;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.request.resource.CssResourceReference;
+import org.apache.wicket.request.resource.JavaScriptResourceReference;
+
+public class BootstrapFileUploadBehavior extends Behavior {
+	private static final long serialVersionUID = 1L;
+	private final static JavaScriptResourceReference BOOTSTRAP_FILEUPLOAD_JS_REFERENCE
+			= new JavaScriptResourceReference(BootstrapFileUploadBehavior.class, "bootstrap-fileupload.js");
+	private final static CssResourceReference BOOTSTRAP_FILEUPLOAD_CSS_REFERENCE
+			= new CssResourceReference(BootstrapFileUploadBehavior.class, "bootstrap-fileupload.css");
+	public final static BootstrapFileUploadBehavior INSTANCE = new BootstrapFileUploadBehavior(); 
+	
+	private BootstrapFileUploadBehavior() {
+	}
+	
+	@Override
+	public void renderHead(Component component, IHeaderResponse response) {
+		super.renderHead(component, response);
+        response.render(JavaScriptHeaderItem.forReference(BOOTSTRAP_FILEUPLOAD_JS_REFERENCE));
+        response.render(CssHeaderItem.forReference(BOOTSTRAP_FILEUPLOAD_CSS_REFERENCE));
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/util/ContactsHelper.java b/src/web/java/org/apache/openmeetings/web/util/ContactsHelper.java
new file mode 100644
index 0000000..b22cad5
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/util/ContactsHelper.java
@@ -0,0 +1,104 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.util;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_MESSAGES;
+
+import java.util.Date;
+
+import org.apache.openmeetings.db.dao.user.PrivateMessagesDao;
+import org.apache.openmeetings.db.dao.user.UserContactsDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.UserContact;
+import org.apache.openmeetings.mail.MailHandler;
+import org.apache.openmeetings.util.CalendarPatterns;
+import org.apache.openmeetings.util.crypt.ManageCryptStyle;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.mail.template.RequestContactConfirmTemplate;
+import org.apache.openmeetings.web.mail.template.RequestContactTemplate;
+
+public class ContactsHelper {
+	public static long addUserToContactList(long userIdToAdd) {
+		Long countContacts = getBean(UserContactsDao.class).checkUserContacts(userIdToAdd, getUserId());
+
+		if (countContacts != null && countContacts > 0) {
+			return -45L;
+		}
+		String hash = ManageCryptStyle.getInstanceOfCrypt()
+			.createPassPhrase(CalendarPatterns.getDateWithTimeByMiliSeconds(new Date()));
+
+		Long userContactId = getBean(UserContactsDao.class).addUserContact(userIdToAdd, getUserId(), true, hash);
+
+		User user = getBean(UserDao.class).get(getUserId());
+		User userToAdd = getBean(UserDao.class).get(userIdToAdd);
+
+		String subj = user.getFirstname() + " " + user.getLastname() + " " + WebSession.getString(1193);
+		String message = RequestContactTemplate.getEmail(userToAdd, user);
+
+		getBean(PrivateMessagesDao.class).addPrivateMessage(
+			subj, message, 0L, user, userToAdd, userToAdd, false, null, true, userContactId);
+
+		if (userToAdd.getAdresses() != null) {
+			getBean(MailHandler.class).send(userToAdd.getAdresses().getEmail(), subj, message);
+		}
+
+		return userContactId;
+	}
+
+	public static Long acceptUserContact(long userContactId) {
+		UserContactsDao dao = getBean(UserContactsDao.class);
+		UserContact contact = dao.get(userContactId);
+
+		if (contact == null) {
+			return -46L;
+		}
+
+		if (!contact.getPending()) {
+			return -47L;
+		}
+
+		dao.updateContactStatus(userContactId, false);
+
+		contact = dao.get(userContactId);
+
+		dao.addUserContact(contact.getOwner().getUser_id(), getUserId(), false, "");
+
+		User user = contact.getOwner();
+
+		if (user.getAdresses() != null) {
+			String message = RequestContactConfirmTemplate.getEmail(user, contact);
+
+			String subj = contact.getContact().getFirstname() + " " + contact.getContact().getLastname() + " " + WebSession.getString(1198);
+
+			getBean(PrivateMessagesDao.class).addPrivateMessage(
+					subj, message,
+					0L, contact.getContact(), user, user, false, null, false, 0L);
+
+			getBean(MailHandler.class).send(user.getAdresses().getEmail(), subj, message);
+		}
+		return userContactId;
+	}
+	
+	public static String getLink() {
+		return PROFILE_MESSAGES.getLink();		
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/util/FlvRecordingResourceReference.java b/src/web/java/org/apache/openmeetings/web/util/FlvRecordingResourceReference.java
new file mode 100644
index 0000000..13accb5
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/util/FlvRecordingResourceReference.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.util;
+
+import static org.apache.openmeetings.util.OmFileHelper.getRecording;
+
+import java.io.File;
+
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+
+public class FlvRecordingResourceReference extends RecordingResourceReference {
+	private static final long serialVersionUID = 6181482949621024822L;
+
+	public FlvRecordingResourceReference() {
+		super(FlvRecordingResourceReference.class);
+	}
+	
+	@Override
+	public String getContentType() {
+		return "video/flv";
+	}
+	
+	@Override
+	String getFileName(FlvRecording r) {
+		return r.getFileHash();
+	}
+	
+	@Override
+	File getFile(FlvRecording r) {
+		return getRecording(r.getFileHash());
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/util/FormatHelper.java b/src/web/java/org/apache/openmeetings/web/util/FormatHelper.java
new file mode 100644
index 0000000..62afa2b
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/util/FormatHelper.java
@@ -0,0 +1,37 @@
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License") +  you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+package org.apache.openmeetings.web.util;

+

+import static org.apache.commons.lang3.StringEscapeUtils.escapeHtml4;

+

+import org.apache.openmeetings.db.entity.user.User;

+

+public class FormatHelper {

+

+	public static String formatUser(User u) {

+		return formatUser(u, false);

+	}

+

+	// TODO check RIGHTS here (email might need to be hidden)

+	public static String formatUser(User u, boolean isHTMLEscape) {

+		String email = u.getAdresses() == null ? "" : u.getAdresses().getEmail();

+		String user = u == null ? "" : String.format("\"%s %s\" <%s>", u.getFirstname(), u.getLastname(), email);

+		return isHTMLEscape ? escapeHtml4(user) : user;

+	}

+}

diff --git a/src/web/java/org/apache/openmeetings/web/util/JpgRecordingResourceReference.java b/src/web/java/org/apache/openmeetings/web/util/JpgRecordingResourceReference.java
new file mode 100644
index 0000000..8a92f2c
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/util/JpgRecordingResourceReference.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.util;
+
+import static org.apache.openmeetings.util.OmFileHelper.getRecording;
+
+import java.io.File;
+
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+
+public class JpgRecordingResourceReference extends RecordingResourceReference {
+	private static final long serialVersionUID = 6181482949621024822L;
+
+	public JpgRecordingResourceReference() {
+		super(JpgRecordingResourceReference.class);
+	}
+	
+	@Override
+	public String getContentType() {
+		return "image/jpeg";
+	}
+	
+	@Override
+	String getFileName(FlvRecording r) {
+		return r.getPreviewImage();
+	}
+	
+	@Override
+	File getFile(FlvRecording r) {
+		return getRecording(r.getPreviewImage());
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/util/Mp4RecordingResourceReference.java b/src/web/java/org/apache/openmeetings/web/util/Mp4RecordingResourceReference.java
new file mode 100644
index 0000000..41df9e0
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/util/Mp4RecordingResourceReference.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.util;
+
+import static org.apache.openmeetings.util.OmFileHelper.MP4_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.getMp4Recording;
+
+import java.io.File;
+
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+
+public class Mp4RecordingResourceReference extends RecordingResourceReference {
+	private static final long serialVersionUID = 6181482949621024822L;
+
+	public Mp4RecordingResourceReference() {
+		super(Mp4RecordingResourceReference.class);
+	}
+	
+	@Override
+	public String getContentType() {
+		return "video/mp4";
+	}
+	
+	@Override
+	String getFileName(FlvRecording r) {
+		return r.getFileHash() + MP4_EXTENSION;
+	}
+	
+	@Override
+	File getFile(FlvRecording r) {
+		return getMp4Recording(r.getFileHash());
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/util/OggRecordingResourceReference.java b/src/web/java/org/apache/openmeetings/web/util/OggRecordingResourceReference.java
new file mode 100644
index 0000000..758757c
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/util/OggRecordingResourceReference.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.util;
+
+import static org.apache.openmeetings.util.OmFileHelper.OGG_EXTENSION;
+import static org.apache.openmeetings.util.OmFileHelper.getOggRecording;
+
+import java.io.File;
+
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+
+public class OggRecordingResourceReference extends RecordingResourceReference {
+	private static final long serialVersionUID = 6181482949621024822L;
+
+	public OggRecordingResourceReference() {
+		super(OggRecordingResourceReference.class);
+	}
+	
+	@Override
+	public String getContentType() {
+		return "video/ogg";
+	}
+	
+	@Override
+	String getFileName(FlvRecording r) {
+		return r.getFileHash() + OGG_EXTENSION;
+	}
+	
+	@Override
+	File getFile(FlvRecording r) {
+		return getOggRecording(r.getFileHash());
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/util/OmUrlFragment.java b/src/web/java/org/apache/openmeetings/web/util/OmUrlFragment.java
new file mode 100644
index 0000000..2dad035
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/util/OmUrlFragment.java
@@ -0,0 +1,299 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.util;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_LANDING_ZONE;
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getLanguage;
+import static org.apache.openmeetings.web.app.WebSession.getSid;
+import static org.apache.openmeetings.web.user.profile.SettingsPanel.EDIT_PROFILE_TAB_ID;
+import static org.apache.openmeetings.web.user.profile.SettingsPanel.MESSAGES_TAB_ID;
+
+import java.io.Serializable;
+
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.web.admin.backup.BackupPanel;
+import org.apache.openmeetings.web.admin.configurations.ConfigsPanel;
+import org.apache.openmeetings.web.admin.connection.ConnectionsPanel;
+import org.apache.openmeetings.web.admin.groups.GroupsPanel;
+import org.apache.openmeetings.web.admin.labels.LangPanel;
+import org.apache.openmeetings.web.admin.ldaps.LdapsPanel;
+import org.apache.openmeetings.web.admin.oauth.OAuthPanel;
+import org.apache.openmeetings.web.admin.rooms.RoomsPanel;
+import org.apache.openmeetings.web.admin.servers.ServersPanel;
+import org.apache.openmeetings.web.admin.users.UsersPanel;
+import org.apache.openmeetings.web.common.BasePanel;
+import org.apache.openmeetings.web.user.calendar.CalendarPanel;
+import org.apache.openmeetings.web.user.dashboard.OmDashboardPanel;
+import org.apache.openmeetings.web.user.profile.SettingsPanel;
+import org.apache.openmeetings.web.user.record.RecordingsPanel;
+import org.apache.openmeetings.web.user.rooms.RoomPanel;
+import org.apache.openmeetings.web.user.rooms.RoomsSelectorPanel;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+
+public class OmUrlFragment implements Serializable {
+	private static final long serialVersionUID = 7382435810352033914L;
+	private AreaKeys area = AreaKeys.user;
+	private String type = "";
+	public static final String CHILD_ID = "child";
+	public static final String TYPE_CALENDAR = "calendar";
+	public static final String TYPE_DASHBOARD = "dashboard";
+	public static final String TYPE_MESSAGES = "messages";
+	public static final String TYPE_EDIT = "edit";
+	public static final String TYPE_RECORDINGS = "record";
+	public static final String TYPE_MY = "my";
+	public static final String TYPE_GROUP = "group";
+	public static final String TYPE_PUBLIC = "public";
+	public static final String TYPE_USER = "user";
+	public static final String TYPE_CONNECTION = "connection";
+	public static final String TYPE_ROOM = "room";
+	public static final String TYPE_CONFIG = "config";
+	public static final String TYPE_LANG = "lang";
+	public static final String TYPE_LDAP = "ldap";
+	public static final String TYPE_BACKUP = "backup";
+	public static final String TYPE_SERVER = "server";
+	public static final String TYPE_OAUTH2 = "oauth2";
+	public static final OmUrlFragment DASHBOARD = new OmUrlFragment(AreaKeys.user, TYPE_DASHBOARD);
+	public static final OmUrlFragment PROFILE_EDIT = new OmUrlFragment(AreaKeys.profile, TYPE_EDIT);
+	public static final OmUrlFragment PROFILE_MESSAGES = new OmUrlFragment(AreaKeys.profile, TYPE_MESSAGES);
+	public static final OmUrlFragment CALENDAR = new OmUrlFragment(AreaKeys.user, TYPE_CALENDAR);
+	public static final OmUrlFragment ROOMS_PUBLIC = new OmUrlFragment(AreaKeys.rooms, TYPE_PUBLIC);
+	
+	public enum AreaKeys {
+		user
+		, admin
+		, profile
+		, room
+		, rooms
+	}
+	
+	public enum MenuActions {
+		dashboardModuleStartScreen
+		, dashboardModuleCalendar
+		, recordModule
+		, conferenceModuleRoomList
+		, eventModuleRoomList
+		, moderatorModuleUser
+		, moderatorModuleRoom
+		, adminModuleUser
+		, adminModuleConnections
+		, adminModuleOrg
+		, adminModuleRoom
+		, adminModuleConfiguration
+		, adminModuleLanguages
+		, adminModuleLDAP
+		, adminModuleBackup
+		, adminModuleServers
+		, adminModuleOAuth
+	}
+	
+	public enum MenuParams {
+		publicTabButton
+		, privateTabButton
+		, myTabButton
+	}
+	
+	public static OmUrlFragment get() {
+		String[] arr = getBean(ConfigurationDao.class).getConfValue(CONFIG_DEFAULT_LANDING_ZONE, String.class, "").split("/");
+		if (arr != null && arr.length == 2) {
+			try {
+				return new OmUrlFragment(AreaKeys.valueOf(arr[0]), arr[1]);
+			} catch (Exception e) {
+				// no-op
+			}
+		}
+		return DASHBOARD;
+	}
+	
+	public OmUrlFragment(AreaKeys area, String type) {
+		this.setArea(area);
+		this.setType(type);
+	}
+	
+	public OmUrlFragment(MenuActions action) {
+		this(action, MenuParams.myTabButton);
+	}
+	
+	public OmUrlFragment(MenuActions action, MenuParams params) {
+		switch(action) {
+			case dashboardModuleStartScreen:
+				setArea(AreaKeys.user);
+				setType(TYPE_DASHBOARD);
+				break;
+			case dashboardModuleCalendar:
+				setArea(AreaKeys.user);
+				setType(TYPE_CALENDAR);
+				break;
+			case recordModule:
+				setArea(AreaKeys.user);
+				setType(TYPE_RECORDINGS);
+				break;
+			case conferenceModuleRoomList:
+				setArea(AreaKeys.rooms);
+				switch (params) {
+					case myTabButton:
+						setType(TYPE_MY);
+						break;
+					case privateTabButton:
+						setType(TYPE_GROUP);
+						break;
+					case publicTabButton:
+						setType(TYPE_PUBLIC);
+						break;
+				}
+				break;
+			case eventModuleRoomList:
+				break;
+			case moderatorModuleUser:
+				break;
+			case moderatorModuleRoom:
+				break;
+			case adminModuleUser:
+				setArea(AreaKeys.admin);
+				setType(TYPE_USER);
+				break;
+			case adminModuleConnections:
+				setArea(AreaKeys.admin);
+				setType(TYPE_CONNECTION);
+				break;
+			case adminModuleOrg:
+				setArea(AreaKeys.admin);
+				setType(TYPE_GROUP);
+				break;
+			case adminModuleRoom:
+				setArea(AreaKeys.admin);
+				setType(TYPE_ROOM);
+				break;
+			case adminModuleConfiguration:
+				setArea(AreaKeys.admin);
+				setType(TYPE_CONFIG);
+				break;
+			case adminModuleLanguages:
+				setArea(AreaKeys.admin);
+				setType(TYPE_LANG);
+				break;
+			case adminModuleLDAP:
+				setArea(AreaKeys.admin);
+				setType(TYPE_LDAP);
+				break;
+			case adminModuleBackup:
+				setArea(AreaKeys.admin);
+				setType(TYPE_BACKUP);
+				break;
+			case adminModuleServers:
+				setArea(AreaKeys.admin);
+				setType(TYPE_SERVER);
+				break;
+			case adminModuleOAuth:
+				setArea(AreaKeys.admin);
+				setType(TYPE_OAUTH2);
+		}
+	}
+
+	public AreaKeys getArea() {
+		return area;
+	}
+
+	public void setArea(AreaKeys area) {
+		this.area = area;
+	}
+
+	public String getType() {
+		return type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+	
+	public static BasePanel getPanel(AreaKeys area, String type) {
+		BasePanel basePanel = null;
+		switch(area) {
+			case admin:
+				if (TYPE_USER.equals(type)) {
+					basePanel = new UsersPanel(CHILD_ID);
+				} else if (TYPE_CONNECTION.equals(type)) {
+					basePanel = new ConnectionsPanel(CHILD_ID);
+				} else if (TYPE_GROUP.equals(type)) {
+					basePanel = new GroupsPanel(CHILD_ID);
+				} else if (TYPE_ROOM.equals(type)) {
+					basePanel = new RoomsPanel(CHILD_ID);
+				} else if (TYPE_CONFIG.equals(type)) {
+					basePanel = new ConfigsPanel(CHILD_ID);
+				} else if (TYPE_LANG.equals(type)) {
+					basePanel = new LangPanel(CHILD_ID);
+				} else if (TYPE_LDAP.equals(type)) {
+					basePanel = new LdapsPanel(CHILD_ID);
+				} else if (TYPE_BACKUP.equals(type)) {
+					basePanel = new BackupPanel(CHILD_ID);
+				} else if (TYPE_SERVER.equals(type)) {
+					basePanel = new ServersPanel(CHILD_ID);
+				} else if (TYPE_OAUTH2.equals(type)) {
+					basePanel = new OAuthPanel(CHILD_ID);
+				}
+				break;
+			case profile:
+				if (TYPE_MESSAGES.equals(type)) {
+					basePanel = new SettingsPanel(CHILD_ID, MESSAGES_TAB_ID);
+				} else if (TYPE_EDIT.equals(type)) {
+					basePanel = new SettingsPanel(CHILD_ID, EDIT_PROFILE_TAB_ID);
+				}
+				break;
+			case room:
+				try {
+					Long roomId = Long.parseLong(type);
+					if (roomId != null) {
+						PageParameters pp = new PageParameters();
+						pp.add("wicketsid", getSid());
+						pp.add("wicketroomid", roomId);
+						pp.add("language", getLanguage());
+						basePanel = new RoomPanel(CHILD_ID, pp);
+					}
+				} catch(NumberFormatException ne) {
+					//skipit, bad roomid passed
+				}
+				break;
+			case rooms:
+				MenuParams params = MenuParams.publicTabButton;
+				if (TYPE_GROUP.equals(type)) {
+					params = MenuParams.privateTabButton;
+				} else if (TYPE_MY.equals(type)) {
+					params = MenuParams.myTabButton;
+				}
+				basePanel = new RoomsSelectorPanel(CHILD_ID, params);
+				break;
+			case user:
+				if (TYPE_CALENDAR.equals(type)) {
+					basePanel = new CalendarPanel(CHILD_ID);
+				} else if (TYPE_RECORDINGS.equals(type)) {
+					basePanel = new RecordingsPanel(CHILD_ID);
+				} else {
+					basePanel = new OmDashboardPanel(CHILD_ID);
+				}
+				break;
+			default:
+				break;
+		}
+		return basePanel;
+	}
+	
+	public String getLink() {
+		return getBean(ConfigurationDao.class).getBaseUrl() + "#" + getArea().name() + "/" + getType();
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/util/RecordingResourceReference.java b/src/web/java/org/apache/openmeetings/web/util/RecordingResourceReference.java
new file mode 100644
index 0000000..2f8596f
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/util/RecordingResourceReference.java
@@ -0,0 +1,231 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.util;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getExternalType;
+import static org.apache.openmeetings.web.app.WebSession.getRecordingId;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.red5.logging.Red5LoggerFactory.getLogger;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.io.input.BoundedInputStream;
+import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
+import org.apache.openmeetings.db.dao.user.OrganisationUserDao;
+import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.protocol.http.servlet.ResponseIOException;
+import org.apache.wicket.request.Response;
+import org.apache.wicket.request.http.WebResponse;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.request.resource.AbstractResource;
+import org.apache.wicket.request.resource.ContentDisposition;
+import org.apache.wicket.request.resource.IResource;
+import org.apache.wicket.request.resource.IResource.Attributes;
+import org.apache.wicket.request.resource.ResourceReference;
+import org.apache.wicket.util.lang.Bytes;
+import org.apache.wicket.util.resource.FileResourceStream;
+import org.apache.wicket.util.resource.IResourceStream;
+import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
+import org.apache.wicket.util.string.StringValue;
+import org.apache.wicket.util.time.Time;
+import org.slf4j.Logger;
+
+public abstract class RecordingResourceReference extends ResourceReference {
+	private static final long serialVersionUID = 1L;
+	private static final Logger log = getLogger(RecordingResourceReference.class, webAppRootKey);
+
+	public RecordingResourceReference(Class<? extends RecordingResourceReference> clazz) {
+		super(clazz, "recordings");
+	}
+
+	@Override
+	public IResource getResource() {
+		return new AbstractResource() {
+			private static final long serialVersionUID = 1L;
+			private final static String ACCEPT_RANGES_HEADER = "Accept-Ranges";
+			private final static String RANGE_HEADER = "Range";
+			private final static String CONTENT_RANGE_HEADER = "Content-Range";
+			private final static String RANGES_BYTES = "bytes";
+			private File file;
+			private boolean isRange = false;
+			private long start = 0;
+			private long end = 0;
+			
+			private long getChunkLength() {
+				return isRange ? end - start + 1 : (file == null ? -1 : file.length());
+			}
+			
+			private IResourceStream getResourceStream() {
+				return file == null ? null : new FileResourceStream(file) {
+					private static final long serialVersionUID = 2546785247219805747L;
+					private transient BoundedInputStream bi;
+
+					@Override
+					public InputStream getInputStream() throws ResourceStreamNotFoundException {
+						if (bi == null) {
+							//bi = new BoundedInputStream(super.getInputStream(), end + 1);
+							bi = new BoundedInputStream(super.getInputStream(), isRange ? end + 1 : (file == null ? -1 : file.length()));
+							try {
+								bi.skip(start);
+							} catch (IOException e) {
+								throw new ResourceStreamNotFoundException(e);
+							}
+						}
+						return bi;
+					}
+					
+					@Override
+					public Bytes length() {
+						return Bytes.bytes(getChunkLength());
+					}
+					
+					@Override
+					public void close() throws IOException {
+						if (bi != null) {
+							bi.close(); //also will close original stream
+							bi = null;
+						}
+					}
+					
+					@Override
+					public String getContentType() {
+						return RecordingResourceReference.this.getContentType();
+					}
+				};
+			}
+
+			@Override
+			protected void setResponseHeaders(ResourceResponse data, Attributes attributes) {
+				Response response = attributes.getResponse();
+				if (response instanceof WebResponse) {
+					WebResponse webResponse = (WebResponse)response;
+					webResponse.setStatus(isRange ? HttpServletResponse.SC_PARTIAL_CONTENT : HttpServletResponse.SC_OK);
+				}
+				super.setResponseHeaders(data, attributes);
+			}
+
+			@Override
+			protected ResourceResponse newResourceResponse(Attributes attributes) {
+				ResourceResponse rr = new ResourceResponse();
+				FlvRecording r = getRecording(attributes);
+				if (r != null) {
+					isRange = false;
+					file = getFile(r);
+					rr.setFileName(getFileName(r));
+					rr.setContentType(RecordingResourceReference.this.getContentType());
+					rr.setContentDisposition(ContentDisposition.INLINE);
+					rr.setLastModified(Time.millis(file.lastModified()));
+					rr.getHeaders().addHeader(ACCEPT_RANGES_HEADER, RANGES_BYTES);
+					String range = ((HttpServletRequest)attributes.getRequest().getContainerRequest()).getHeader(RANGE_HEADER);
+					if (range != null && range.startsWith(RANGES_BYTES)) {
+						String[] bounds = range.substring(RANGES_BYTES.length() + 1).split("-");
+						if (bounds != null && bounds.length > 0) {
+							long length = file.length();
+							isRange = true;
+							start = Long.parseLong(bounds[0]);
+							end = bounds.length > 1 ? Long.parseLong(bounds[1]) : length - 1;
+							//Content-Range: bytes 229376-232468/232469
+							rr.getHeaders().addHeader(CONTENT_RANGE_HEADER, String.format("%s %d-%d/%d", RANGES_BYTES, start, end, length));
+						}
+					}
+					rr.setContentLength(getChunkLength());
+					rr.setWriteCallback(new WriteCallback() {
+						@Override
+						public void writeData(Attributes attributes) throws IOException {
+							IResourceStream rStream = getResourceStream();
+							try {
+								writeStream(attributes, rStream.getInputStream());
+							} catch (ResourceStreamNotFoundException e1) {
+							} catch (ResponseIOException e) {
+								// in case of range operations we expecting such exceptions
+								if (!isRange) {
+									log.error("Error while playing the stream", e);
+								}
+							} finally {
+								rStream.close();
+							}
+						}
+					});
+				} else {
+					rr.setError(HttpServletResponse.SC_NOT_FOUND);
+				}
+				return rr;
+			}
+		};
+	}
+	
+	abstract String getContentType();
+	abstract String getFileName(FlvRecording r);
+	abstract File getFile(FlvRecording r);
+	
+	private Long getLong(StringValue id) {
+		Long result = null;
+		try {
+			result = id.toLongObject();
+		} catch(Exception e) {
+			//no-op
+		}
+		return result;
+	}
+	
+	private FlvRecording getRecording(Long id) {
+		FlvRecording r = getBean(FlvRecordingDao.class).get(id);
+		// TODO should we process public?
+		// || r.getOwnerId() == 0 || r.getParentFileExplorerItemId() == null || r.getParentFileExplorerItemId() == 0
+		if (r == null) {
+			return r;
+		}
+		if (r.getOwnerId() == null || getUserId() == r.getOwnerId()) {
+			return r;
+		}
+		if (getBean(OrganisationUserDao.class).isUserInOrganization(r.getOrganization_id(), getUserId())) {
+			return r;
+		}
+		//TODO external group check was added for plugin recording download
+		String extType = getExternalType();
+		if (extType != null && extType.equals(r.getCreator().getExternalUserType())) {
+			return r;
+		}
+		return null;
+	}
+	
+	private FlvRecording getRecording(Attributes attributes) {
+		PageParameters params = attributes.getParameters();
+		StringValue idStr = params.get("id");
+		Long id = getLong(idStr);
+		WebSession ws = WebSession.get();
+		if (id != null && ws.isSignedIn()) {
+			return getRecording(id);
+		} else {
+			ws.invalidate();
+			if (ws.signIn(idStr.toString())) {
+				return getRecording(getRecordingId());
+			}
+		}
+		return null;
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/util/RoomTypeDropDown.java b/src/web/java/org/apache/openmeetings/web/util/RoomTypeDropDown.java
new file mode 100644
index 0000000..6adaaac
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/util/RoomTypeDropDown.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.util;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getLanguage;
+
+import java.util.List;
+
+import org.apache.openmeetings.db.dao.room.RoomTypeDao;
+import org.apache.openmeetings.db.entity.room.RoomType;
+import org.apache.wicket.markup.html.form.ChoiceRenderer;
+import org.apache.wicket.markup.html.form.DropDownChoice;
+
+public class RoomTypeDropDown extends DropDownChoice<RoomType> {
+	private static final long serialVersionUID = 1L;
+	
+	public static List<RoomType> getRoomTypes() {
+		return getBean(RoomTypeDao.class).getAll(getLanguage());
+	}
+	
+	public RoomTypeDropDown(String id) {
+		super(id);
+		setChoices(getRoomTypes());
+		setChoiceRenderer(new ChoiceRenderer<RoomType>("label.value", "roomtypes_id"));
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/util/UserAutoCompleteTextField.java b/src/web/java/org/apache/openmeetings/web/util/UserAutoCompleteTextField.java
new file mode 100644
index 0000000..e7a5aa4
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/util/UserAutoCompleteTextField.java
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.util;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
+import java.util.List;
+import java.util.Locale;
+
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.util.convert.IConverter;
+
+import com.googlecode.wicket.jquery.core.renderer.ITextRenderer;
+import com.googlecode.wicket.jquery.ui.form.autocomplete.AutoCompleteTextField;
+
+public class UserAutoCompleteTextField extends AutoCompleteTextField<User> {
+	private static final long serialVersionUID = 1L;
+	private UserTextRenderer renderer;
+	private String inputValue = null;
+	private IConverter<User> converter = new IConverter<User>() {
+		private static final long serialVersionUID = 1L;
+
+		public User convertToObject(String value, Locale locale) {
+			if (value != null && value.equals(UserAutoCompleteTextField.this.getModelValue()))  {
+				return UserAutoCompleteTextField.this.getModelObject();
+			} else {
+				return UserChoiceProvider.getUser(value);
+			}
+		}
+
+		public String convertToString(User value, Locale locale) {
+			return UserAutoCompleteTextField.this.renderer.getText(value);
+		}
+
+	};
+
+	public UserAutoCompleteTextField(String id, IModel<User> model) {
+		super(id, model, new UserTextRenderer());
+		this.renderer = (UserTextRenderer)getRenderer();
+	}
+	
+	public UserAutoCompleteTextField(String id) {
+		this(id, null);
+	}
+
+	public String inputToString() {
+		return inputValue;
+	}
+	
+	@SuppressWarnings("unchecked")
+	@Override
+	public <C> IConverter<C> getConverter(Class<C> type) {
+		if (type.isAssignableFrom(User.class)) {
+			return (IConverter<C>)converter;
+		} else {
+			return super.getConverter(type);
+		}
+	}
+	
+	@Override
+	protected List<User> getChoices(String input) {
+		inputValue = input;
+		return getBean(UserDao.class).get(input, 0, 10, null, getUserId());
+	}
+	
+	private static class UserTextRenderer implements ITextRenderer<User> {
+		private static final long serialVersionUID = 1L;
+
+		public String getText(User u) {
+			return u == null ? "" : String.format("%s %s <%s>", u.getFirstname(), u.getLastname(), u.getAdresses().getEmail());
+		}
+		
+		public String getText(User u, String expression) {
+			return getText(u);
+		}
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/util/UserChoiceProvider.java b/src/web/java/org/apache/openmeetings/web/util/UserChoiceProvider.java
new file mode 100644
index 0000000..d70e2e4
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/util/UserChoiceProvider.java
@@ -0,0 +1,119 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.util;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Hashtable;
+import java.util.Map;
+
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.User.Type;
+import org.apache.wicket.extensions.validation.validator.RfcCompliantEmailAddressValidator;
+import org.apache.wicket.validation.Validatable;
+import org.json.JSONException;
+import org.json.JSONWriter;
+
+import com.vaynberg.wicket.select2.ChoiceProvider;
+import com.vaynberg.wicket.select2.Response;
+
+public class UserChoiceProvider extends ChoiceProvider<User> {
+	private static final long serialVersionUID = 1L;
+	private final static int PAGE_SIZE = 10;
+	private Map<String, User> newContacts = new Hashtable<String, User>();
+	
+	public static User getUser(String value) {
+		User u = null;
+		//FIXME refactor this
+		String email = null;
+		String fName = null;
+		String lName = null;
+		int idx = value.indexOf('<');
+		if (idx > -1) {
+			int idx1 = value.indexOf('>', idx);
+			if (idx1 > -1) {
+				email = value.substring(idx + 1, idx1);
+				
+				String name = value.substring(0, idx).replace("\"", "");
+				int idx2 = name.indexOf(' ');
+				if (idx2 > -1) {
+					fName = name.substring(0, idx2);
+					lName = name.substring(idx2 + 1);
+				} else {
+					fName = "";
+					lName = name;
+				}
+				 
+			}
+		} else {
+			email = value;
+		}
+		Validatable<String> valEmail = new Validatable<String>(email);
+		RfcCompliantEmailAddressValidator.getInstance().validate(valEmail);
+		if (valEmail.isValid()) {
+			u = getBean(UserDao.class).getContact(email, fName, lName, getUserId());
+		}
+		return u;
+	}
+
+	protected Object getId(User u) {
+		String id = "" + u.getUser_id();
+		if (u.getUser_id() == null) {
+			newContacts.put(u.getLogin(), u);
+			id = u.getLogin();
+		}
+		return id;
+	}
+
+	@Override
+	public void query(String term, int page, Response<User> response) {
+		User c = getUser(term);
+		if (c != null) {
+			response.add(c);
+		}
+		UserDao dao = getBean(UserDao.class);
+		response.addAll(dao.get(term, page * PAGE_SIZE, PAGE_SIZE, null, getUserId()));
+
+		response.setHasMore(page < dao.count(term, getUserId()) / PAGE_SIZE);
+	}
+
+	@Override
+	public Collection<User> toChoices(Collection<String> ids) {
+		Collection<User> c = new ArrayList<User>();
+		for (String id : ids) {
+			if (newContacts.containsKey(id)) {
+				c.add(newContacts.get(id));
+			} else {
+				c.add(getBean(UserDao.class).get(Long.valueOf(id)));
+			}
+		}
+		return c;
+	}
+
+    public void toJson(User choice, JSONWriter writer) throws JSONException {
+    	writer
+    		.key("id").value(getId(choice))
+    		.key("text").value(FormatHelper.formatUser(choice, true))
+    		.key("contact").value(choice.getType() == Type.contact);
+    };
+}
diff --git a/src/web/java/org/apache/openmeetings/web/util/UserDashboardPersister.java b/src/web/java/org/apache/openmeetings/web/util/UserDashboardPersister.java
new file mode 100644
index 0000000..fb39c07
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/util/UserDashboardPersister.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.util;
+
+import static org.apache.openmeetings.util.OmFileHelper.getUserDashboard;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import ro.fortsoft.wicket.dashboard.Dashboard;
+import ro.fortsoft.wicket.dashboard.DashboardPersister;
+import ro.fortsoft.wicket.dashboard.XStreamDashboardPersister;
+
+public class UserDashboardPersister implements DashboardPersister {
+	public Dashboard load() {
+		return new XStreamDashboardPersister(getUserDashboard(getUserId())).load();
+	}
+
+	public void save(Dashboard dashboard) {
+		new XStreamDashboardPersister(getUserDashboard(getUserId())).save(dashboard);
+	}
+
+}
diff --git a/src/web/java/org/apache/openmeetings/web/util/UserMultiChoice.java b/src/web/java/org/apache/openmeetings/web/util/UserMultiChoice.java
new file mode 100644
index 0000000..47040f6
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/util/UserMultiChoice.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.util;
+
+import java.util.Collection;
+
+import org.apache.openmeetings.db.entity.user.User;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.markup.head.PriorityHeaderItem;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.request.resource.JavaScriptResourceReference;
+
+import com.vaynberg.wicket.select2.Select2MultiChoice;
+
+public class UserMultiChoice extends Select2MultiChoice<User> {
+	private static final long serialVersionUID = 1L;
+
+	public UserMultiChoice(String id, IModel<Collection<User>> model) {
+		super(id, model, new UserChoiceProvider());
+		getSettings().setFormatResult("formatOmUser");
+		getSettings().setFormatSelection("formatOmUser");
+		getSettings().setEscapeMarkup("escapeOmUserMarkup");
+	}
+	
+	@Override
+	public void renderHead(IHeaderResponse response) {
+		super.renderHead(response);
+		response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(getClass(), "user-multi-choice.js"), "user-multi-choice")));
+	}
+}
diff --git a/src/web/java/org/apache/openmeetings/web/util/bootstrap-fileupload.css b/src/web/java/org/apache/openmeetings/web/util/bootstrap-fileupload.css
new file mode 100644
index 0000000..d6e603a
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/util/bootstrap-fileupload.css
@@ -0,0 +1,124 @@
+/*!
+ * Bootstrap v2.3.1
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */
+.btn-file {
+	position: relative;
+	overflow: hidden;
+	vertical-align: middle;
+}
+
+.btn-file>input {
+	position: absolute;
+	top: 0;
+	right: 0;
+	margin: 0;
+	font-size: 23px;
+	cursor: pointer;
+	opacity: 0;
+	filter: alpha(opacity = 0);
+	transform: translate(-300px, 0) scale(4);
+	direction: ltr;
+}
+
+.fileupload {
+	margin-bottom: 9px;
+}
+
+.fileupload .uneditable-input {
+	display: inline-block;
+	margin-bottom: 0;
+	vertical-align: middle;
+	cursor: text;
+}
+
+.fileupload .thumbnail {
+	display: inline-block;
+	margin-bottom: 5px;
+	overflow: hidden;
+	text-align: center;
+	vertical-align: middle;
+}
+
+.fileupload .thumbnail>img {
+	display: inline-block;
+	max-height: 100%;
+	vertical-align: middle;
+}
+
+.fileupload .btn {
+	vertical-align: middle;
+}
+
+.fileupload-exists .fileupload-new,.fileupload-new .fileupload-exists {
+	display: none;
+}
+
+.fileupload-inline .fileupload-controls {
+	display: inline;
+}
+
+.fileupload-new .input-append .btn-file {
+	-webkit-border-radius: 0 3px 3px 0;
+	-moz-border-radius: 0 3px 3px 0;
+	border-radius: 0 3px 3px 0;
+}
+
+.thumbnail-borderless .thumbnail {
+	padding: 0;
+	border: none;
+	-webkit-border-radius: 0;
+	-moz-border-radius: 0;
+	border-radius: 0;
+	-webkit-box-shadow: none;
+	-moz-box-shadow: none;
+	box-shadow: none;
+}
+
+.fileupload-new.thumbnail-borderless .thumbnail {
+	border: 1px solid #ddd;
+}
+
+.control-group.warning .fileupload .uneditable-input {
+	color: #a47e3c;
+	border-color: #a47e3c;
+}
+
+.control-group.warning .fileupload .fileupload-preview {
+	color: #a47e3c;
+}
+
+.control-group.warning .fileupload .thumbnail {
+	border-color: #a47e3c;
+}
+
+.control-group.error .fileupload .uneditable-input {
+	color: #b94a48;
+	border-color: #b94a48;
+}
+
+.control-group.error .fileupload .fileupload-preview {
+	color: #b94a48;
+}
+
+.control-group.error .fileupload .thumbnail {
+	border-color: #b94a48;
+}
+
+.control-group.success .fileupload .uneditable-input {
+	color: #468847;
+	border-color: #468847;
+}
+
+.control-group.success .fileupload .fileupload-preview {
+	color: #468847;
+}
+
+.control-group.success .fileupload .thumbnail {
+	border-color: #468847;
+}
\ No newline at end of file
diff --git a/src/web/java/org/apache/openmeetings/web/util/bootstrap-fileupload.js b/src/web/java/org/apache/openmeetings/web/util/bootstrap-fileupload.js
new file mode 100644
index 0000000..97a6da5
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/util/bootstrap-fileupload.js
@@ -0,0 +1,169 @@
+/* ===========================================================
+ * bootstrap-fileupload.js j2
+ * http://jasny.github.com/bootstrap/javascript.html#fileupload
+ * ===========================================================
+ * Copyright 2012 Jasny BV, Netherlands.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License")
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================================================== */
+
+!function ($) {
+
+  "use strict"; // jshint ;_
+
+ /* FILEUPLOAD PUBLIC CLASS DEFINITION
+  * ================================= */
+
+  var Fileupload = function (element, options) {
+    this.$element = $(element)
+    this.type = this.$element.data('uploadtype') || (this.$element.find('.thumbnail').length > 0 ? "image" : "file")
+      
+    this.$input = this.$element.find(':file')
+    if (this.$input.length === 0) return
+
+    this.name = this.$input.attr('name') || options.name
+
+    this.$hidden = this.$element.find('input[type=hidden][name="'+this.name+'"]')
+    if (this.$hidden.length === 0) {
+      this.$hidden = $('<input type="hidden" />')
+      this.$element.prepend(this.$hidden)
+    }
+
+    this.$preview = this.$element.find('.fileupload-preview')
+    var height = this.$preview.css('height')
+    if (this.$preview.css('display') != 'inline' && height != '0px' && height != 'none') this.$preview.css('line-height', height)
+
+    this.original = {
+      'exists': this.$element.hasClass('fileupload-exists'),
+      'preview': this.$preview.html(),
+      'hiddenVal': this.$hidden.val()
+    }
+    
+    this.$remove = this.$element.find('[data-dismiss="fileupload"]')
+
+    this.$element.find('[data-trigger="fileupload"]').on('click.fileupload', $.proxy(this.trigger, this))
+
+    this.listen()
+  }
+  
+  Fileupload.prototype = {
+    
+    listen: function() {
+      this.$input.on('change.fileupload', $.proxy(this.change, this))
+      $(this.$input[0].form).on('reset.fileupload', $.proxy(this.reset, this))
+      if (this.$remove) this.$remove.on('click.fileupload', $.proxy(this.clear, this))
+    },
+    
+    change: function(e, invoked) {
+      if (invoked === 'clear') return
+      
+      var file = e.target.files !== undefined ? e.target.files[0] : (e.target.value ? { name: e.target.value.replace(/^.+\\/, '') } : null)
+      
+      if (!file) {
+        this.clear()
+        return
+      }
+      
+      this.$hidden.val('')
+      this.$hidden.attr('name', '')
+      this.$input.attr('name', this.name)
+
+      if (this.type === "image" && this.$preview.length > 0 && (typeof file.type !== "undefined" ? file.type.match('image.*') : file.name.match(/\.(gif|png|jpe?g)$/i)) && typeof FileReader !== "undefined") {
+        var reader = new FileReader()
+        var preview = this.$preview
+        var element = this.$element
+
+        reader.onload = function(e) {
+          preview.html('<img src="' + e.target.result + '" ' + (preview.css('max-height') != 'none' ? 'style="max-height: ' + preview.css('max-height') + ';"' : '') + ' />')
+          element.addClass('fileupload-exists').removeClass('fileupload-new')
+        }
+
+        reader.readAsDataURL(file)
+      } else {
+        this.$preview.text(file.name)
+        this.$element.addClass('fileupload-exists').removeClass('fileupload-new')
+      }
+    },
+
+    clear: function(e) {
+      this.$hidden.val('')
+      this.$hidden.attr('name', this.name)
+      this.$input.attr('name', '')
+
+      //ie8+ doesn't support changing the value of input with type=file so clone instead
+      if (navigator.userAgent.match(/msie/i)){ 
+          var inputClone = this.$input.clone(true);
+          this.$input.after(inputClone);
+          this.$input.remove();
+          this.$input = inputClone;
+      }else{
+          this.$input.val('')
+      }
+
+      this.$preview.html('')
+      this.$element.addClass('fileupload-new').removeClass('fileupload-exists')
+
+      if (e) {
+        this.$input.trigger('change', [ 'clear' ])
+        e.preventDefault()
+      }
+    },
+    
+    reset: function(e) {
+      this.clear()
+      
+      this.$hidden.val(this.original.hiddenVal)
+      this.$preview.html(this.original.preview)
+      
+      if (this.original.exists) this.$element.addClass('fileupload-exists').removeClass('fileupload-new')
+       else this.$element.addClass('fileupload-new').removeClass('fileupload-exists')
+    },
+    
+    trigger: function(e) {
+      this.$input.trigger('click')
+      e.preventDefault()
+    }
+  }
+
+  
+ /* FILEUPLOAD PLUGIN DEFINITION
+  * =========================== */
+
+  $.fn.fileupload = function (options) {
+    return this.each(function () {
+      var $this = $(this)
+      , data = $this.data('fileupload')
+      if (!data) $this.data('fileupload', (data = new Fileupload(this, options)))
+      if (typeof options == 'string') data[options]()
+    })
+  }
+
+  $.fn.fileupload.Constructor = Fileupload
+
+
+ /* FILEUPLOAD DATA-API
+  * ================== */
+
+  $(document).on('click.fileupload.data-api', '[data-provides="fileupload"]', function (e) {
+    var $this = $(this)
+    if ($this.data('fileupload')) return
+    $this.fileupload($this.data())
+      
+    var $target = $(e.target).closest('[data-dismiss="fileupload"],[data-trigger="fileupload"]');
+    if ($target.length > 0) {
+      $target.trigger('click.fileupload')
+      e.preventDefault()
+    }
+  })
+
+}(window.jQuery);
diff --git a/src/web/java/org/apache/openmeetings/web/util/user-multi-choice.js b/src/web/java/org/apache/openmeetings/web/util/user-multi-choice.js
new file mode 100644
index 0000000..de43cb3
--- /dev/null
+++ b/src/web/java/org/apache/openmeetings/web/util/user-multi-choice.js
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+function formatOmUser(user) {
+	return "<span class='user " + (user.contact ? "external" : "internal") + "' >" + user.text + "</span>";
+}
+
+function escapeOmUserMarkup(m) {
+	return m;
+}
\ No newline at end of file
diff --git a/xdocs/ApacheDerbyConfig.xml b/xdocs/ApacheDerbyConfig.xml
new file mode 100644
index 0000000..0474013
--- /dev/null
+++ b/xdocs/ApacheDerbyConfig.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Apache Derby Configuration</title>

+		<author email="sebawagner@apache.org">

+			Apache OpenMeetings Documentation Team

+		</author>

+	</properties>

+

+	<body>

+		<section name="Apache Derby Configuration">

+

+			<p>

+				OpenMeetings default configuration is to use Apache Derby.

+			</p>

+

+			<p>

+				It is recommended for production environments and high

+				availibility to change to an usual relational database like MySQL,

+				Postgres or DB2.

+			</p>

+			<p>

+				For more information about Apache Derby see

+				<a href="http://db.apache.org/derby/">http://db.apache.org/derby/</a>

+			</p>

+

+			<p>

+				There is a sample configuration for Apache Derby that ships with

+				every release in:

+				<br />

+				/webapps/openmeetings/WEB-INF/classes/META-INF/derby_persistence.xml

+			</p>

+

+			<p>

+				If you encounter issues, you can drop the db again and delete the

+				file /webapps/openmeetings/conf/install.xml and then run the web

+				based installer again

+			</p>

+

+		</section>

+

+	</body>

+

+</document>

diff --git a/xdocs/ApiClassesTemplate.vm b/xdocs/ApiClassesTemplate.vm
new file mode 100644
index 0000000..1ea3714
--- /dev/null
+++ b/xdocs/ApiClassesTemplate.vm
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+          

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+-->

+

+    <!-- ====================================================================== -->

+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE TEMPLATE INSTEAD! -->

+    <!-- Main Page Section -->

+    <!-- ====================================================================== -->

+    

+     <html>

+        <head>

+		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>

+		<meta name="author" content="OpenMeetings Team">

+		<meta name="email" content="sebawagner@apache.org">

+		<title>OpenMeetings API Classes</title>

+		<link rel="stylesheet" type="text/css" href="openmeetings_docs.css">

+        </head>

+	<body>

+		#set( $foo = ".html" )

+	

+       <div class="navigation">

+	   #foreach ( $class in $classes )

+            <div>

+            <a href="$class.get("name")$foo" target="_PARENT"><b>$class.get("name")</b></a><br/>

+            <div class="navigation_comment"><i >$class.get("comment")</i></div>

+            </div>

+        #end

+        </div>

+	

+	

+	</body>

+	</html>

diff --git a/xdocs/ApiMethodsTemplate.vm b/xdocs/ApiMethodsTemplate.vm
new file mode 100644
index 0000000..57da677
--- /dev/null
+++ b/xdocs/ApiMethodsTemplate.vm
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

+<!--

+  Licensed to the Apache Software Foundation (ASF) under one

+  or more contributor license agreements.  See the NOTICE file

+  distributed with this work for additional information

+  regarding copyright ownership.  The ASF licenses this file

+  to you under the Apache License, Version 2.0 (the

+  "License"); you may not use this file except in compliance

+  with the License.  You may obtain a copy of the License at

+  

+      http://www.apache.org/licenses/LICENSE-2.0

+          

+  Unless required by applicable law or agreed to in writing,

+  software distributed under the License is distributed on an

+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+  KIND, either express or implied.  See the License for the

+  specific language governing permissions and limitations

+  under the License.

+-->

+

+    <!-- ====================================================================== -->

+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE TEMPLATE INSTEAD! -->

+    <!-- Main Page Section -->

+    <!-- ====================================================================== -->

+    

+     <html>

+        <head>

+		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>

+		<meta name="author" content="OpenMeetings Team">

+		<meta name="email" content="sebawagner@apache.org">

+		<title>OpenMeetings API Methods</title>

+		<link rel="stylesheet" type="text/css" href="openmeetings_docs.css">

+        </head>

+	<body>

+	

+		<h3>Available WebServices:</h3>

+	

+		<iframe src="WebserviceIndex.html" width="100%" height="210" name="WebserviceIndex.html"

+			scrolling="no" marginheight="0" marginwidth="0" frameborder="0">

+		  <p>Your Browser does not support frames ...</p>

+		</iframe>

+		

+		<hr />

+	

+	   <h3>WebService: $webServiceName</h3>

+	   <p>$classComment<p>

+	   <p>WSDL sample Url: <a href="http://localhost:5080/openmeetings/services/$webServiceName?wsdl">http://localhost:5080/openmeetings/services/$webServiceName?wsdl</a><p>

+	

+	<!-- Links to Methods -->

+	   <h3>Index of Methods available in $webServiceName</h3>

+	   

+       <div class="navigation">

+	   #foreach ( $method in $methods )

+            #if ($method.isPublic()) 

+                <div>

+                <a href="#$method.name()"><b>$method.name()</b></a><br/>

+                <div class="navigation_comment"><i >$method.commentText()</i></div>

+                </div>

+           #end

+        #end

+        </div>

+	   

+	    <h3>Methods Details in $webServiceName</h3>

+	

+		#foreach ( $method in $methods )

+		    #if ($method.isPublic()) 

+		      <div class="method">

+		        <div class="method_header">

+		        <div style="margin-left:10px">

+    			<a name="$method.name()" ><b>$method.name()</b></a>

+    			</div>

+    			</div>

+    			

+    			Method: <i>$method.name() (

+    			#set ($index = 0) 

+    			#foreach ( $parameter in $method.parameters() )

+    			   #if ($index > 0) 

+    			     , 

+    			   #end

+    			   $parameter.type().simpleTypeName() $parameter.name()

+    			   #set ($index = $index+1) 

+    			#end

+    			)

+    			</i><br/>

+    			<p>

+    			  $method.commentText()

+    			</p>

+    			<p>

+                  Return Type: $method.returnType()

+                </p>

+    			<p>Params:</p>

+    			#if ( $method.paramTags().size() != $method.parameters().size() ) 

+    				<b>Warning:</b><i> Params in this method do not seem to be correctly documentated</i>

+    				<br/><br/>

+    			#end

+    			

+    			#if ($method.paramTags().size() > 0) 

+	    			<table rules="all" border="1">

+	    			   <thead>

+	    			   <tr>

+	    			     <th width="200" align="left">Type</th>

+	    			     <th width="200" align="left">Fieldname</th>

+	    			     <th width="400" align="left">Description</th>

+	    			   </tr>

+	    			   </thead>

+	    			   <tbody>

+	    			   #set ($index = 0) 

+	    			   #foreach ( $parameter in $method.paramTags() )

+	    			   <tr>

+	                     <td valign="top">

+	                     	#if ($method.parameters().size() <= $index) 

+	                     		$index Doclet Param Mismatch: fix JavaDocs in this Method!

+	                     	#else

+	                     		$method.parameters().get($index).type().simpleTypeName()

+	                     	#end 

+	                     </td>

+	                     <td valign="top">$parameter.parameterName()</td>

+	                     <td valign="top">$parameter.parameterComment()</td>

+	                   </tr>

+	                   

+	                   #set ($index = $index+1) 

+	                   #end

+	                   </tbody>

+	    			</table>

+    			#else

+    				<i>No Params</i>

+    			#end

+    			<br/>

+    			REST Sample Call/URL:<br/>

+    			#set ($link = "http://localhost:5080/openmeetings/services/"+$webServiceName+"/"+$method.name()) 

+    			#set ($displayLink = $link)

+    			#set ($index = 0)

+    			#foreach ( $parameter in $method.parameters() )

+    				#if ($index == 0)

+    					#set ($link = $link+"?")

+    					#set ($displayLink = $link)

+    				#else

+    					#set ($link = $link+"&") 

+    					#set ($displayLink = $displayLink + "&amp;")

+    				#end

+    				#set ($link = $link + $parameter.name()+"=VALUE") 

+    				#set ($displayLink = $displayLink + $parameter.name()+"=VALUE") 

+    				#set ($index = $index+1)

+				#end

+				<a href="$link">$displayLink</a>

+    		  </div>

+    	   #end

+		#end

+	

+	

+	</body>

+</html>

+

diff --git a/xdocs/BitrixPlugin.xml b/xdocs/BitrixPlugin.xml
new file mode 100644
index 0000000..87dcfc2
--- /dev/null
+++ b/xdocs/BitrixPlugin.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+	<properties>

+		<title>Bitrix Plugin</title>

+		<author email="solomax@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+	<body>

+		<section name="OpenMeetings Plugin for Bitrix">

+			<p>

+				Current Development Snapshots for testing can be created from the sources:

+				<a href="https://svn.codespot.com/a/apache-extras.org/openmeetings-bitrix-plugin/trunk">here</a>

+				.

+			</p>			

+		</section>

+		<section name="Features">

+			<p>The plugin contains the following features: </p>

+			<ul>

+				<li>Enter videoconference rooms from Bitrix (http://www.1c-bitrix.ru/): </li>

+			</ul>

+		</section>

+		<section name="Configuration">			

+			<div>

+				<b>OpenMeetings Bitrix Plugin Installation</b><br/>

+				<ol>

+					<li>Build plugin from sources</li>

+					<li>Unpack it into bitrix/modules</li>

+					<li>Install via Admin</li>

+					<li>Add OPenmeetings component to any page.</li>

+				</ol>              

+			</div>

+		</section>

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/BuildInstructions.xml b/xdocs/BuildInstructions.xml
new file mode 100644
index 0000000..6f92f12
--- /dev/null
+++ b/xdocs/BuildInstructions.xml
@@ -0,0 +1,338 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Build instructions</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Nightly Builds">

+

+			<p>

+				You can find Nightly Builds of the software at:

+				<a href="https://builds.apache.org/view/M-R/view/OpenMeetings/"

+					rel="nofollow" target="_BLANK">

+					https://builds.apache.org/view/M-R/view/OpenMeetings/

+				</a>

+			</p>

+

+		</section>

+

+		<section name="How to Build a Distribution">

+

+			<div>

+				<p>To build a binary release of OpenMeetings you need: </p>

+				<ul>

+					<li>Sun JDK6</li>

+					<li>Apache ANT (minimum) 1.8.3</li>

+					<li>

+						SVN Command line client (Subversion 1.7 required!)

+						<a href="http://subversion.apache.org/packages.html" target="_BLANK"

+							rel="nofollow">http://subversion.apache.org/packages.html</a>

+					</li>

+				</ul>

+			</div>

+

+			<p>Get the source: </p>

+			<div class="xmlcode">

+				svn checkout

+				https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/

+			</div>

+			<p>Run the command: </p>

+			<div class="xmlcode">

+				ant

+			</div>

+			<p>There is no need to compile the client additionally! The ant task

+				does it all! You will find a directory dist that contains

+				OpenMeetings and a red5-server.

+			</p>

+			<p>To compile the client you can also use ant: </p>

+			<div class="xmlcode">

+				ant

+				<span style="margin-left: 200px;"># compiles a complete package into the folder dist

+				</span>

+				<br />

+				ant compile.laszlo.main

+				<span style="margin-left: 70px;"># compiles the client into main.as3.swf10.swf and

+					main.swf8.swf</span>

+				<br />

+				ant compile.laszlo.main.debug

+				<span style="margin-left: 30px;"># compiles the debug-client into

+					maindebug.as3.swf10.swf and maindebug.swf8.swf

+				</span>

+				<br />

+				ant -Ddb=&lt;name of DB&gt;

+				<span style="margin-left: 50px;"># will copy &lt;name of DB&gt;_persistense.xml to

+					persistense.xml

+				</span>

+				<br />

+				<span style="margin-left: 230px;">#(for ex. ant -Ddb=mysql will set mysql as default

+					DB)

+				</span>

+			</div>

+			<p>To compile just the openmeetings JAR file: </p>

+			<div class="xmlcode">

+				ant jar.only

+			</div>

+			<p>

+				To run Junit tests using ANT see

+				<a href="JUnitTesting.html">JUnitTesting</a>

+			</p>

+		</section>

+

+		<section name="Run, Develop, Test">

+

+			<p>

+				To develop or build OpenMeetings you checkout the source as Eclipse

+				project. You need the Subclipse or Subversive Plugin for Eclipse. If

+				you just need to change 3 lines of code then your probably better

+				switch to

+				<a href="#How_to_build_a_distribution" rel="nofollow">How to build a

+					distribution

+				</a>

+				.

+			</p>

+

+			<subsection name="Step1 - Get required Software">

+

+				<p>To develop OpenMeetings you need at least: </p>

+				<ul>

+					<li>Eclipse in a up to date copy and Sun JDK6 </li>

+					<li>Apache ANT (minimum) 1.8.3</li>

+					<li>

+						Subclipse 1.8 (Subversion 1.7 required!)

+						<a href="http://subclipse.tigris.org/" target="_BLANK" rel="nofollow">http://subclipse.tigris.org/

+						</a>

+					</li>

+					<li>

+						SVN Command line client (Subversion 1.7 required!)

+						<a href="http://subversion.apache.org/packages.html" target="_BLANK"

+							rel="nofollow">http://subversion.apache.org/packages.html</a>

+					</li>

+					<li>Spring IDE for Eclipse (installable via Help &gt; Eclipse

+						Marketplace)

+					</li>

+					<li>

+						Apache IvyDE&#8482; For Eclipse (installable via Help &gt; Install

+						New Software)

+						URL: http://www.apache.org/dist/ant/ivyde/updatesite

+						detailed steps can be found here:

+						<a href="http://ant.apache.org/ivy/ivyde/download.cgi" target="_BLANK"

+							rel="nofollow">http://ant.apache.org/ivy/ivyde/download.cgi</a>

+					</li>

+					<li>MySQL (or Postgres, or other Databases supported by openJPA)

+						are optionally but handy to have them

+					</li>

+				</ul>

+

+			</subsection>

+

+			<subsection name="Step2 - Download the Source">

+

+				<p>Advanced Users: Check out the Code from the Repository as a

+					Java

+					project into Eclipse.

+				</p>

+				<p>

+					URL:

+					<a

+						href="https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/">

+						https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/

+					</a>

+				</p>

+				<p>To download the required JARs for building and developing

+					OpenMeetings you need to run the ANT comand:

+				</p>

+				<div class="xmlcode">

+					ant -Ddb=&lt;your_DB&gt; prepare-eclipse

+				</div>

+				<p>After the ANT command you need to press F5 and rebuild the

+					project from inside Eclipse

+				</p>

+				<p>Step-By-Step: </p>

+				<p>1) Start Eclipse </p>

+				<p>

+					2) Change Perspective to SVN Repository Exploring:

+					<br />

+					<br />

+					<a class="fancybox-buttons" href="images/checkout_1.png">

+						<img src="images/checkout_1.png" alt="" width="400" height="289" />

+					</a>

+

+				</p>

+				<p>

+					3) Select SVN Repository Exploring and click ok.

+					<br />

+					<br />

+					<a class="fancybox-buttons" href="images/checkout_2.png">

+						<img src="images/checkout_2.png" alt="" width="304" height="417" />

+					</a>

+				</p>

+				<p>

+					4) A new Dialog in Eclipse opens

+					<strong>SVN Repositories</strong>

+					<br />

+					<br />

+					<a class="fancybox-buttons" href="images/checkout_3.png">

+						<img src="images/checkout_3.png" alt="" width="460" height="102" />

+					</a>

+				</p>

+				<p>

+					5) Click on the icon with the plus in the top right corner in the

+					SVN Repository Dialog

+					<br />

+					<br />

+					<a class="fancybox-buttons" href="images/checkout_4.png">

+						<img src="images/checkout_4.png" alt="" width="57" height="38" />

+					</a>

+				</p>

+				<p>

+					6) Add the URL

+					<a

+						href="https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/"

+						rel="nofollow">https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/

+					</a>

+					and click Finish

+					<br />

+					<br />

+					<a class="fancybox-buttons" href="images/checkout_5.png">

+						<img src="images/checkout_5.png" alt="" width="455" height="272" />

+					</a>

+				</p>

+				<p>

+					7) After download is complete you see a new Source Repository in

+					the Repository Explorer. Right click on it and choose

+					<strong>checkout</strong>

+					<br />

+					<br />

+					<a class="fancybox-buttons" href="images/checkout_6.png">

+						<img src="images/checkout_6.png" alt="" width="340" height="135" />

+					</a>

+				</p>

+				<p>

+					8) In the Dialog the opens now just click next

+					<br />

+					<br />

+					<a class="fancybox-buttons" href="images/checkout_7.png">

+						<img src="images/checkout_7.png" alt="" width="390" height="338" />

+					</a>

+				</p>

+				<p>

+					9) In the next Dialog just click Finish, Eclipse will then download

+					the sources

+					<br />

+					<br />

+					<a class="fancybox-buttons" href="images/checkout_8.png">

+						<img src="images/checkout_8.png" alt="" width="390" height="338" />

+					</a>

+				</p>

+				<p>

+					10) After the download is complete you will see a new Project in

+					the Package Explorer Dialog of Eclipse

+					<br />

+					<br />

+					<a class="fancybox-buttons" href="images/checkout_9.png">

+						<img src="images/checkout_9.png" alt="" width="310" height="297" />

+					</a>

+				</p>

+				<div>

+					11) Please run

+					<div class="xmlcode">

+						ant prepare-eclipse

+					</div>

+					to download all necessary jar files, and perform source

+					<tt>Refresh</tt>

+					to resolve all compilation issues.

+				</div>

+			</subsection>

+

+			<subsection name="Step3 - Deploy and Run">

+

+				<p>

+					see the first chapter about the ANT tasks to compile the code. You

+					will find a directory called

+					<strong>dist</strong>

+					which contains a regular openmeetings including red5. You can then

+					use the usual process like described at

+					<a href="installation.html">installation</a>

+					to run the code then.

+				</p>

+			</subsection>

+

+		</section>

+

+		<section name="Links">

+

+			<ul>

+				<li>

+					Getting Started with OpenLaszlo, checkout

+					<a

+						href="http://www.openlaszlo.org/lps4.2/laszlo-explorer/index.jsp?lzr=swf8"

+						target="_BLANK" rel="nofollow">Laszlo-in-10-Minutes</a>

+					and the

+					<a href="http://www.openlaszlo.org/lps4.2/docs/" target="_BLANK"

+						rel="nofollow">Application

+						Developer's Guide

+					</a>

+					or try the

+					<a href="http://www.openlaszlo.org/getstarted" target="_BLANK"

+						rel="nofollow">ScreenCast</a>

+				</li>

+				<li>

+					<a href="http://openmeetings.apache.org/svn.html">

+						browse SVN source

+					</a>

+				</li>

+			</ul>

+

+		</section>

+

+		<section name="Tipps and Gotchas">

+

+			<p>When you want to develop only client side there are handy ANT

+				tasks so that you only rebuild the SWFs, same for the Java side.

+			</p>

+			<p>

+				It

+				also takes much less time if you do use MySQL as database then

+				rebuilding the software and waiting for Apache Derby to set up the

+				database everytime you did rebuild.

+			</p>

+			<p>

+				<b>Working behind a proxy:</b>

+				If you are sitting behind a proxy you should add some proxy settings

+				before starting the build process.

+				<br />

+				For Apache Ivy see:

+				<a href="http://ant.apache.org/ivy/faq.html" target="_BLANK" rel="nofollow">http://ant.apache.org/ivy/faq.html

+				</a>

+				<br />

+				For SVN Command Line Client (From CollabNet 1.7) see:

+				<a

+					href="https://ctf6latest.collab.net/internal-help/index.jsp?topic=/teamforge610/faq/client_proxy_settings.html"

+					target="_BLANK" rel="nofollow">https://ctf6latest.collab.net/internal-help/index.jsp?topic=/teamforge610/faq/client_proxy_settings.html

+				</a>

+			</p>

+

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/CalendarAndTimezone.xml b/xdocs/CalendarAndTimezone.xml
new file mode 100644
index 0000000..4846e2f
--- /dev/null
+++ b/xdocs/CalendarAndTimezone.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Changing the Calendar and Timezone default</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Changing the Calendar and Timezone default">

+

+			<p>

+				In general the timezone is configured in the user profile of each

+				user, so changing the server timezone has no effect how to the users

+				calendar for example.

+				<br />

+				<br />

+				However there are some circumstances where there is no user profile

+				available.

+			</p>

+		</section>

+

+		<section

+			name="Changing servers default timzeone for Emails and Invitations (display)">

+			<p>

+				Goto Administration &gt; Configuration and change the config-key:

+				<tt>default.timezone</tt>

+			</p>

+			<p>Valid timezone have to meet standards! </p>

+		</section>

+

+		<section

+			name="Changing first day in week for calendar from Sunday to Monday">

+

+			<p>in the public/config.xml change the key: </p>

+			<div class="xmlcode">

+				&lt;!--

+				<br />

+				First day in the Week used by the Calendar

+				<br />

+				0 means Sunday

+				<br />

+				1 means Monday

+				<br />

+				this is the way how the Celendar inits a week

+				<br />

+				--&gt;

+				<br />

+				&lt;firstdayinweek&gt;0&lt;/firstdayinweek&gt;

+				<br />

+			</div>

+		</section>

+

+		<section

+			name="Changing the default number of max participants of a conference room created via calendar">

+

+			<p>Goto

+				Administration &gt; Configuration and change the config-key:

+				<tt>calendar.conference.rooms.default.size</tt>

+			</p>

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/Clustering.xml b/xdocs/Clustering.xml
new file mode 100644
index 0000000..5f7edcf
--- /dev/null
+++ b/xdocs/Clustering.xml
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+	<properties>

+		<title>Clustering</title>

+		<author email="solomax@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+		<section name="Description">

+			<p>

+				OpenMeetings 2.1 or later is required to use clustering. One database is used for all OpenMeetings 

+				servers, so all database tables are shared across OM instances. Certain folders should be shared 

+				between all servers to allow access to the files/recording.</p>

+		</section>

+		<section name="Configuration">

+			<ul>

+				<li>

+					Multiple OM servers should be set up as described in

+					<a href="installation.html" target="_BLANK">

+						<b>Installation</b>

+					</a>

+				</li>

+				<li>All servers should be configured to have same Time zone (To avoid

+					Schedulers to drop user sessions as outdated)

+				</li>

+				<li>All servers should be configured to use the same DB</li>

+				<li>Servers should be added in Administration -&gt; Servers section</li>

+			</ul>

+		</section>

+		<section name="Database">

+			All servers should be configured to use the same database. It can be on the server or on the one node 

+			of the cluster. 

+			<ul>

+				<li>Add users who can connect to the database remotely</li>

+				<li>Update <tt>/opt/red5/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml</tt>

+					set correct server address, login and password. Also add the following section:

+					<div class="xmlcode">&lt;property name="openjpa.RemoteCommitProvider" value="tcp(Addresses=10.1.1.1;10.1.1.2)" /&gt;</div>

+					Instead of the 10.1.1.1 and 10.1.1.2 set semicolon separated IPs of all nodes of the cluster.

+				</li>

+			</ul>

+		</section>

+		<section name="File systems">

+			If files and recordings using the same physical folders the files and recordings will be available for 

+			each node. You can do this using Samba or NFS, for example. For using NFS do the following:

+			<ul>

+				<li>Install NFS to the data server. In the file <tt>/etc/exports</tt> add the following lines:

+					<div class="xmlcode">

+						/opt/red5/webapps/openmeetings/upload 10.1.1.2(rw,sync,no_subtree_check,no_root_squash)<br/>

+						/opt/red5/webapps/openmeetings/streams 10.1.1.2(rw,sync,no_subtree_check,no_root_squash)

+					</div>

+					Here 10.1.1.2 - is node ip for NFS remote access. Add these lines for all nodes except node with 

+					folders.

+				</li>

+				<li>

+					Install NFS common tools to other nodes. In the file <tt>/etc/fstab</tt> do the following:

+					<div class="xmlcode">

+						10.1.1.1:/opt/red5/webapps/openmeetings/upload/<br/>

+						/opt/red5/webapps/openmeetings/upload nfs timeo=50,hard,intr<br/>

+						10.1.1.1:/opt/red5/webapps/openmeetings/streams/<br/>

+						/opt/red5/webapps/openmeetings/streams nfs timeo=50,hard,intr

+					</div>

+					Here 10.1.1.1 – data server ip. And run the command:

+					<div class="xmlcode">

+						mount -a

+					</div>

+				</li>

+			</ul> 

+		</section>

+		<section name="OM nodes configuration">

+			In the file <tt>/opt/red5/webapps/openmeetings/WEB-INF/openmeetings-applicationContext.xml</tt>:

+			<ul>

+				<li>

+					For each node uncomment line:

+					<div class="xmlcode">

+						&lt;!-- Need to be uncommented and set to the real ID if in cluster mode--&gt;<br/>

+						&lt;property name="serverId" value="1" /&gt;

+					</div>

+					and input the unique value for each node.

+				</li>

+				<li> 

+					Replace <tt>&lt;ref bean="openmeetings.HashMapStore" /&gt;  &lt;!-- Memory based session cache by default --&gt;</tt><br/>

+					with <tt>&lt;ref bean="openmeetings.DatabaseStore" /&gt;</tt> 

+					(Currently commented out with following comment: <tt>"The following section should be used in clustering mode"</tt>)

+				</li>

+			</ul>

+		</section>

+		<section name="Configuring cluster in Administration">

+			Run red5 on each node. Login to the system as admin.

+			<ul>

+				<li>Go to the <tt>Administration -&gt; Users</tt> and create Webservice user (only access via SOAP).</li>

+				<li>

+					Go to the <tt>Administration -&gt; Servers</tt> and add all cluster nodes with the following settings:

+					<div class="xmlcode">

+						Server Name = node name;<br/>

+						Active = check the checkbox. If the checkbox is checked it means node is active and you can use this node;<br/>

+						Server Address = node ip;<br/>

+						HTTP Port = 5080 - port for http part of Openmeetings;<br/>

+						User (SOAP Access) = login of Webservice user from the previous step;<br/>

+						Password = password of Webservise user;<br/>

+						Webapp path = openmeetings - path where OM installed on this node, it would be better if this path will be the same for all nodes;<br/>

+						Protocol = http.

+					</div>

+				</li> 

+			</ul>

+			<img src="images/cluster1.png" alt="" width="650" height="461" />

+		</section>

+		<section name="Ensure everything works as expected">

+			<ul>

+				<li>Set up the cluster and loggin with two users, go to the same room (also check before room 

+				entering that the status page with the room list shows the correct number of participants before 

+				entering the room). You should login to the same server initially, the server will redirect you 

+				for the conference room to the appropriate server automatically. Both users should be in the same room.

+				</li>

+				<li>Do the same with only two users but go to _different_ rooms. The calculation should send 

+				both users to different servers, cause based on the calculation two different rooms on a cluster 

+				with two nodes should go exactly one room for each node. You can now loggin really to node1 

+				and node2 of your cluster while those users are loggedin and go to <tt>Administration &gt; Connections</tt>

+				and check in the column "servers" where they are located. They should be on different server.

+				</li>

+			</ul>

+			<img src="images/cluster2.png" alt="" width="650" height="369" />

+		</section>

+	</body>

+</document>
\ No newline at end of file
diff --git a/xdocs/CommandLineAdmin.xml b/xdocs/CommandLineAdmin.xml
new file mode 100644
index 0000000..f6a46e1
--- /dev/null
+++ b/xdocs/CommandLineAdmin.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+	<properties>

+		<title>Command line admin</title>

+		<author email="solomax@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+	<body>

+		<section name="Usage">

+			<p>To avoid intensive traffic utilization and save your time you can

+				use command line admin to achieve following tasks:</p>

+			<ul>

+				<li>Install using defaults</li>

+				<li>Install from backup</li>

+				<li>Backup</li>

+				<li>Cleanup</li>

+			</ul>

+			<p>Some example commands:</p>

+			<p>MySQL (requires to place the MySQL JDBC driver into webapps/openmeetings/WEB-INF/lib before running the command):</p>

+			<div>

+				<div class="xmlcode">

+./admin.sh -i -v -tz Europe/Berlin -email your.email@gmail.com -group webbase -user admin --smtp-server localhost --db-type mysql --db-name openmeetings_db --email-auth-user noreply@webbase-design.de --password 123qweasd --system-email-address noreply@webbase-design.de --db-user root --db-host localhost --email-auth-pass 123qweasd<br/>

+				</div>

+			</div>

+			<p>Derby (Not recommended for production environment):</p>

+			<div>

+				<div class="xmlcode">

+./admin.sh -i -v -tz Europe/Berlin -email seba.wagner@gmail.com -group webbase -user admin --smtp-server localhost --email-auth-user noreply@webbase-design.de --password 123qweasd --system-email-address noreply@webbase-design.de --email-auth-pass 123qweasd<br/>

+				</div>

+			</div>

+		</section>

+		<section name="Command reference">	

+			<div>

+				<div class="xmlcode">

+ -v,--verbose                        verbose error messages<br/>

+--------------------------------------------------------------------------------------------------<br/>

+ -h,--help                           prints this message<br/>

+--------------------------------------------------------------------------------------------------<br/>

+ -b,--backup                         Backups OM<br/>

+<span style="margin-left: 50px;">-file &lt;arg&gt;                       (optional) file used for backup/restore/install</span><br/>

+<span style="margin-left: 100px;">--exclude-files                (optional) should backup exclude files [default: include]</span><br/>

+--------------------------------------------------------------------------------------------------<br/>

+ -r,--restore                        Restores OM<br/>

+<span style="margin-left: 50px;">-file &lt;arg&gt;                       file used for backup/restore/install</span><br/>

+--------------------------------------------------------------------------------------------------<br/>

+ -l,--languages                      Reimport All language files into DB<br/>

+<span style="margin-left: 50px;">-lang,--language &lt;arg&gt;            (optional) Single language to be imported (id or name)</span><br/>

+--------------------------------------------------------------------------------------------------<br/>

+ -i,--install                        Fill DB table, and make OM usable<br/>

+<span style="margin-left: 50px;">-user &lt;arg&gt;                       Login name of the default user, minimum 4 characters (mutually exclusive with 'file')</span><br/>

+<span style="margin-left: 50px;">-group &lt;arg&gt;                      The name of the default user group (mutually exclusive with 'file')</span><br/>

+<span style="margin-left: 50px;">-email &lt;arg&gt;                      Email of the default user (mutually exclusive with 'file')</span><br/>

+<span style="margin-left: 50px;">-tz &lt;arg&gt;                         Default server time zone, and time zone for the selected user (mutually exclusive with 'file') file used for backup/restore/install</span><br/>

+<span style="margin-left: 100px;">--email-auth-pass &lt;arg&gt;        (optional) Email auth password (anonymous connection will be used if not set)</span><br/>

+<span style="margin-left: 100px;">--db-host &lt;arg&gt;                (optional) DNS name or IP address of database</span><br/>

+<span style="margin-left: 100px;">--drop                         (optional) Drop database before installation</span><br/>

+<span style="margin-left: 100px;">--db-user &lt;arg&gt;                (optional) User with write access to the DB specified</span><br/>

+<span style="margin-left: 100px;">--system-email-address &lt;arg&gt;   (optional) System e-mail address [default: noreply@openmeetings.apache.org]</span><br/>

+<span style="margin-left: 100px;">--password &lt;arg&gt;               (optional) Password of the default user, minimum 4 characters (will be prompted if not set)</span><br/>

+<span style="margin-left: 100px;">--email-use-tls                (optional) Is secure e-mail connection [default: no]</span><br/>

+<span style="margin-left: 100px;">--email-auth-user &lt;arg&gt;        (optional) Email auth username (anonymous connection will be used if not set)</span><br/>

+<span style="margin-left: 100px;">--db-port &lt;arg&gt;                (optional) Database port</span><br/>

+<span style="margin-left: 100px;">--smtp-port &lt;arg&gt;              (optional) SMTP server for outgoing e-mails [default: 25]</span><br/>

+<span style="margin-left: 100px;">--db-name &lt;arg&gt;                (optional) The name of Openmeetings database</span><br/>

+<span style="margin-left: 100px;">--disable-frontend-register    (optional) Do not allow front end register [allowed by default]</span><br/>

+<span style="margin-left: 100px;">--db-type &lt;arg&gt;                (optional) The type of the DB to be used</span><br/>

+<span style="margin-left: 100px;">--skip-default-rooms           (optional) Do not create default rooms [created by default]</span><br/>

+<span style="margin-left: 100px;">--force                        (optional) Install without checking the existence of old data in the database.</span><br/>

+<span style="margin-left: 100px;">--smtp-server &lt;arg&gt;            (optional) SMTP server for outgoing e-mails [default: localhost]</span><br/>

+<span style="margin-left: 100px;">--db-pass &lt;arg&gt;                (optional) Password of the user with write access to the DB specified</span><br/>

+--------------------------------------------------------------------------------------------------<br/>

+ -f,--files                          File operations - statictics/cleanup<br/>

+<span style="margin-left: 100px;">--cleanup                      (optional) Should intermediate files be clean up</span><br/>

+--------------------------------------------------------------------------------------------------<br/>

+				</div>

+			</div>

+		</section>

+	</body>

+</document>

diff --git a/xdocs/ConferenceRoomLayoutOptions.xml b/xdocs/ConferenceRoomLayoutOptions.xml
new file mode 100644
index 0000000..8a7aae5
--- /dev/null
+++ b/xdocs/ConferenceRoomLayoutOptions.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+    <properties>

+        <title>Layout options for a conference room in OpenMeetings</title>

+        <author email="sebawagner@apache.org">

+            OpenMeetings Team

+        </author>

+    </properties>

+

+    <body>

+

+        <section name="Layout options for conference rooms">

+

+            <p>Each room has a number of attributes to generate different layouts.

+            You can change those values individually for each room in Administration &gt; Rooms

+            </p>

+            <p></p>

+            <table>

+                <tr>

+                    <th style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> key </th>

+                    <th style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> default </th>

+                    <th style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> meaning </th>

+                    <th style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> availabe since OpenMeetings version </th>

+                </tr>

+                <tr>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> hideTopBar </td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> false </td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> Hide the top bar with the menus and exit button </td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> 2.x </td>

+                </tr>

+                <tr>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> hideChat </td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> false </td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> Hide the chat tab and use space for whiteboard </td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> 2.x </td>

+                </tr>

+                <tr>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> hideActivitiesAndActions </td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> false </td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> Hide the activities window with the notofications aber user activities</td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> 2.x </td>

+                </tr>

+                <tr>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> hideFilesExplorer </td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> false </td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> Hide the file explorer</td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> 2.x </td>

+                </tr>

+                <tr>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> hideActionsMenu </td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> false </td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> Hide the menu with the actions</td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> 2.x </td>

+                </tr>

+                <tr>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> hideScreenSharing </td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> false </td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> Hide the button to start screensharing/recording</td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> 2.x </td>

+                </tr>

+                <tr>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> hideWhiteboard </td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> false </td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> Hide the whiteboard, if this option is true, the videos will be in the area of the whiteboard</td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> 2.x </td>

+                </tr>

+                <tr>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> showMicrophoneStatus </td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> false </td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> Show the current status of the microphone (off/on) on the bottom of each video view</td>

+                    <td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> 2.x </td>

+                </tr>

+            </table>

+

+        </section>

+        

+    </body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/ConfluencePlugin.xml b/xdocs/ConfluencePlugin.xml
new file mode 100644
index 0000000..44608d0
--- /dev/null
+++ b/xdocs/ConfluencePlugin.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Confluence Plugin</title>

+		<author email="eschwert@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Confluence Plugin for OpenMeetings">

+			<p>				

+				Current Development Snapshots for testing can be downloaded from:

+				<a href="https://svn.apache.org/repos/asf/openmeetings/branches/confluence-plugin/target/openmeetingsconfluence-1.0-SNAPSHOT.jar">here</a>

+				.

+			</p>			

+		</section>

+		

+		<section name="Features">

+			<p>The plugin contains the following features: </p>

+			<ul>

+				<li>Create videoconference rooms through Confluence: </li>

+				<li>

+					<ol>

+						<li>Integrated with Confluence content </li>										

+						<li>Configurable room type </li>

+					</ol>

+				</li>

+			</ul>

+		</section>	

+		

+		<section name="Demo video">			

+			<p>The demo video of Confluence plugin show you the plugin in action </p>              

+		      <object style="height: 390px; width: 640px">

+			      <param name="movie" value="http://www.youtube.com/v/YFKlXggtld0?version=3&amp;feature=player_detailpage"/>

+			      <param name="allowFullScreen" value="true"/>

+			      <param name="allowScriptAccess" value="always"/>

+			      <embed src="http://www.youtube.com/v/YFKlXggtld0?version=3&amp;feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"/>

+		      </object> 

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/CustomCryptMechanism.xml b/xdocs/CustomCryptMechanism.xml
new file mode 100644
index 0000000..d4967b3
--- /dev/null
+++ b/xdocs/CustomCryptMechanism.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+	<properties>

+		<title>Howto create a Custom Crypt styles</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+	<body>

+		<section name="Configuration of Custom Crypt-Style">

+			<p>

+				You can use custom Crypt-Types, but you should decide during

+				installation which Type of encryption you want to use. By default

+				two type are available:

+			</p>

+

+			<ul>

+				<li>org.xmlcrm.utils.crypt.MD5Implementation - this uses common MD5

+					Crypt like PHP does, this is the default one (results in something

+					like: fe01ce2a7fbac8fafaed7c982a04e229)</li>

+				<li>org.xmlcrm.utils.crypt.MD5CryptImplementation - does use

+					BSD-Style of encryption using a salt (results in something like:

+					$1$GMsj7F2I$5S3r9CeukXGXNwf6b4sph1)</li>

+			</ul>

+			<p>

+				You can edit the config-key during Installation or later in the

+				Administration Panel. But if you change it using the

+				Administration-Panel previous passwords might be not working anymore

+				as they are encrypted with another algorithm.

+			</p>

+		</section>

+		<section name="Configuration of Custom Crypt-Style">

+			<p>

+				To add your own crypt style you need to write a class which

+				implements the interface: org.xmlcrm.utils.cryptCryptString

+				<br />

+				and extends the Adapter: org.xmlcrm.utils.CryptStringAdapter

+				<br />

+				Example of an Implementation:

+			</p>

+			<div class="xmlcode">

+				package org.xmlcrm.utils.crypt;

+				

+				import java.security.NoSuchAlgorithmException;

+				

+				public class MD5Implementation extends CryptStringAdapter implements CryptString {

+				

+				        @Override

+				        public String createPassPhrase(String userGivenPass) {

+				                String passPhrase = null;

+				                try {

+				                        passPhrase = MD5.do_checksum(userGivenPass);

+				                } catch (NoSuchAlgorithmException e) {

+				                        e.printStackTrace();

+				                }

+				                return passPhrase;

+				        }

+				

+				        @Override

+				        public Boolean verifyPassword(String passGiven, String passwdFromDb) {

+				                return (passwdFromDb.equals(createPassPhrase(passGiven)));

+				        }

+				        

+				}

+			</div>

+			<p>To add your own Encryption-Class you need to add your class to the

+				OpenMeetings-Webapp (make it available to the webapp-classpath) and

+				use your custom-class-name instead of

+				org.xmlcrm.utils.crypt.MD5Implementation during the Installation or

+				at runtime by editing the config-key crypt_ClassName</p>

+		</section>

+		<section name="Configuration of Custom Crypt-Style">

+			<p>credits goto Mika for sharing his Implementation of the

+				MD5Crypt-Style</p>

+		</section>

+	</body>

+</document>

diff --git a/xdocs/CustomRoomTypeHowTo.xml b/xdocs/CustomRoomTypeHowTo.xml
new file mode 100644
index 0000000..d86ba12
--- /dev/null
+++ b/xdocs/CustomRoomTypeHowTo.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Howto create a custom room type in OpenMeetings</title>

+		<author email="sebawagner@apache.org">

+            OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Why creating a custom room type in OpenMeetings">

+

+			<p>If you want to create your own styled room the best thing to do in 

+            order to be "update-save" is to create your own custom room type. There is an empty configuration 

+				by default shipped with every release of OpenMeetings, the room type "custom" (ID = 5).<br/>

+				<br/>

+            You can use that and extend it, or you can add more room types to fit your use case.

+			</p>

+			<p></p>

+		</section>

+		

+		<section name="Create your own room type class (User Interface)">

+			

+			<p>Lets start by creating your custom room type class.

+				<br/>

+					You could for example duplicate an existing room class, from <br/>

+					<tt>src/modules/conference/flexibleConferenceRoom</tt> folder, for example the 

+			flexibleConferenceRoom.lzx: Generate a duplicate, change the name, for example to 

+			myCustomConferenceRoom.lzx and edit the class name inside the file name="flexibleConferenceRoom" to

+			name="myCustomConferenceRoom". Also don't miss to add an entry to library.lzx so that the compiler 

+			will find your new class.

+			</p>

+			

+		</section>

+        

+		<section name="Create nesseccary entries in configuration tables">

+        	

+			<p>You first need to create a number of configuration files </p>

+			<ul>

+				<li>To have your roomtype available everytime you install OpenMeetings you need to add 

+					it to the default rooms: <tt>ImportInitvalues.java Method: loadDefaultRooms()</tt>. Add your entry here. 

+				You can choose any random name for the room. The ID is the important trigger for the room type 

+				to identify later. You need to run the installer so that your new room type is in the database.</li>

+				

+				<li>Add your room type in the default module configuration: 

+					<tt>src/base/moduleConfiguration.lzx</tt>, 

+				here you need to add a default class name for your room type </li>

+				

+				<li>Add your room type in the real configuration: public/config.xml, add a new entry.

+					<br/>

+					You should fix also the file <tt>public/config.xsd</tt> that is the Schema file for the public/config.xml.

+				</li>

+        		

+				<li>Add a parser entry to modify the room type mapping: 

+					<tt>base/mainMethods.lzx method: myinit</tt>. You 

+        		can see some example parsing, you should add your one similar to the existing room types.</li>

+        		

+			</ul>

+			

+		</section>

+		

+		<section name="Link your room type config with your room type class ">

+			

+			<p>Now you need to make sure that everytime the conference room is created 

+			your new class "myCustomConferenceRoom" is used. There are 3 places you need to add your mapping.</p>

+			

+			<ul>

+				<li>In the global mapping: 

+					<tt>base/mainMethods.lzx method name="setRoomValues"</tt> 

+				</li>

+				<li>In file: 

+					<tt>modules/conference/conference/roomListItem.lzx method name="initRoom"</tt> 

+				</li>

+				<li>In file: 

+					<tt>modules/invitation/autoloaderBarOnly.lzx netRemoteCallHib name="setUsernameAndSession"</tt> 

+				</li>

+			</ul>

+			

+			<p>Thats it. You can add/edit/delete your room with the new room type in the Administration > Rooms interface of 

+			OpenMeetings like any other room.</p>

+			<p>If you need to have this room type available as option in the Calendar UI, you need to add it to the combobox manually.</p>

+			

+		</section>

+		

+		

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/Dashboard.xml b/xdocs/Dashboard.xml
new file mode 100644
index 0000000..a0e7c61
--- /dev/null
+++ b/xdocs/Dashboard.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Changing Dashboard</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Changing Dashboard">

+

+			<p>You can configure the tabs that are visible by default at bottom

+				of the dashboard. To edit the settings, login as admin and goto

+				Administration &gt; Configuration </p>

+			<p></p>

+			<table>

+				<tr>

+					<th style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> Config-key </th>

+					<th style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> Values </th>

+					<th style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> Meaning </th>

+				</tr>

+				<tr>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> default.dashboard.tab </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> 0,1,2 </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> Which tab should be shown by default, counting

+						starts with 0

+					</td>

+				</tr>

+				<tr>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> dashboard.show.myrooms </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> 0 or 1 </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> If the MyRooms tab should be visible or not </td>

+				</tr>

+				<tr>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> dashboard.show.chat </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> 0 or 1 </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> If the Chat tab should be visible or not </td>

+				</tr>

+				<tr>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> dashboard.show.rssfeed </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> 0 or 1 </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> If the RSS-Feed tab should be visible or not </td>

+				</tr>

+				<tr>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> rss_feed1 </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> http-URL </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> ATOM-Feed URL for the dashboard RSS Tab </td>

+				</tr>

+				<tr>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> rss_feed2 </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> http-URL </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> ATOM-Feed URL for the dashboard RSS Tab </td>

+				</tr>

+			</table>

+			<p></p>

+			<p>Changes are immediately online, no need to restart anything. </p>

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/DrupalPlugin.xml b/xdocs/DrupalPlugin.xml
new file mode 100644
index 0000000..db8d737
--- /dev/null
+++ b/xdocs/DrupalPlugin.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Drupal Plugin</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Drupal Plugin for OpenMeetings">

+			<p>

+				Plugin for Drupal currently is not open source. 

+				Please contact <a href="commercial-support.html" target="_BLANK" rel="nofollow">Commercial Support</a> to get it. 

+				<br/>

+				A demo version+video of the Drupal plugin is available at

+				<a href="http://drupal.openmeetings.de/" target="_BLANK" rel="nofollow">drupal.openmeetings.de</a>.

+			</p>

+		</section>

+		

+		<section name="Installation of the Drupal Plugin for Apache OpenMeetings">

+			<p>

+				You simply download the ZIP or TAR package and unzip it to Drupal "mod" directory.

+				<br/>

+				For a detailed description on how to install plugins in Drupal please review their 

+				<a href="http://drupal.org/documentation/install/modules-themes" target="_BLANK" rel="nofollow">handbook</a>.

+				<br />

+				Then you visit the module interface of Drupal, where you will find the new module.

+				You should switch it to "enabled" to get the "Configure" and "Permissions" buttons.

+			</p>

+			<a class="fancybox-buttons" href="images/drupal_module_installation.png">

+				<img src="images/drupal_module_installation.png" alt="" width="600"

+					height="150" />

+			</a>

+			<p>

+				In the configuration you enter the auth data to access your Apache OpenMeetings server:

+			</p>

+			<a class="fancybox-buttons" href="images/drupal_module_configuration.png">

+				<img src="images/drupal_module_configuration.png" alt="" width="600"

+					height="340" />

+			</a>

+		</section>

+		

+		<section name="Adding a new conference room to Drupal">

+			

+			<p>

+				After installation of the plugin you can go to the front page in Drupal and add a new content item 

+				"OpenMeetings Rooms" => "Add New Room". You may find following configuration values for each 

+				conference room:

+			</p>

+			<a class="fancybox-buttons" href="images/drupal_room_configuration.png">

+				<img src="images/drupal_room_configuration.png" alt="" width="600"

+					height="400" />

+			</a>

+		</section>

+		

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/EditTemplates.xml b/xdocs/EditTemplates.xml
new file mode 100644
index 0000000..54919d8
--- /dev/null
+++ b/xdocs/EditTemplates.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Edit Templates</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Changing Labels and text strings">

+			<p>

+				All language string should be localized and stored in the language

+				section. You have a full featured language editor with every

+				installation of OpenMeetings, check out the

+				<a href="LanguageEditor.html">LanguageEditor</a>

+				.

+			</p>

+			<p>

+				To lookup the labelids in the GUI you can simply run OpenMeetings

+				client with the debug enabled. That way every text-string has the

+				labelid in brackets additionally in the textfield. To start the

+				client in debug mode just add the param ?swf=maindebug.swf8.swf to

+				the URL. Example:

+				<a href="http://localhost:5080/openmeetings/?swf=maindebug.swf8.swf"

+					rel="nofollow">http://localhost:5080/openmeetings/?swf=maindebug.swf8.swf</a>

+			</p>

+		</section>

+

+		<section name="Changing layout, adding footers in emails">

+

+			<p>If you would like to change the standard email layout or add for

+				example some footer in every email you have to change the email

+				templates.

+			</p>

+			<p>To do that: Stop the Red5/OpenMeetings-Service Goto:

+				$Red5_HOME/webapps/openmeetings/WEB-INF/lib/openmeetings-templates.jar

+				Unzip: openmeetings-templates.jar (this is a usual ZIP file, you can

+				rename it to openmeetings-templates.zip unzip, edit the files, zip

+				it again and rename it to openmeetings-templates.jar)

+			</p>

+			<p>

+				In openmeetings-templates.jar there are all template files. They

+				have the file extension .vm (VM stands for velocity-template). After

+				you have done your changes you need to (re)start the

+				Red5/OpenMeetings

+				-Service so that changes are online.

+			</p>

+

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/FFMPEGVersionSwitch.xml b/xdocs/FFMPEGVersionSwitch.xml
new file mode 100644
index 0000000..b6d9006
--- /dev/null
+++ b/xdocs/FFMPEGVersionSwitch.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Howto switch between different versions of FFMPEG </title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Default Configuration">

+

+			<p>FFMPEG has a change in its API (possibly since GIT revision

+				88bfe4518)

+			</p>

+			<p>Since Version 1.9.x of OpenMeetings: By default OpenMeetings

+				expects you to have a new version of FFMPEG on your OpenMeetings

+				server installed and it will use the new API style to communicate

+				with FFMPEG.

+			</p>

+

+		</section>

+

+		<section name="Switching to old FFMPEG API">

+		

+			<p>

+				If you want to switch to the old style you can change that using the

+				config key:

+				<tt>use.old.style.ffmpeg.map.option</tt>

+			</p>

+			<p>

+				Set this value to

+				<tt>1</tt>

+				to have the old params in the API call to FFMPEG.

+			</p>

+			<p>References:  </p>

+			<ul>

+				<li>

+					<a

+						href="http://ffmpeg-users.933282.n4.nabble.com/Invalid-stream-specifier-0-Stream-map-0-0-matches-no-streams-Changes-in-FFMPEG-map-option-td4091165.html"

+						rel="nofollow">http://ffmpeg-users.933282.n4.nabble.com/Invalid-stream-specifier-0-Stream-map-0-0-matches-no-streams-Changes-in-FFMPEG-map-option-td4091165.html

+					</a>

+				</li>

+			</ul>

+

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/GeneralConfiguration.xml b/xdocs/GeneralConfiguration.xml
new file mode 100644
index 0000000..2ff48fa
--- /dev/null
+++ b/xdocs/GeneralConfiguration.xml
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>List of general configuration options</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="List of general configuration options">

+			<style><!--

+				.configCell {

+					border: 1px solid rgb(204, 204, 204);

+					padding: 5px;

+				}

+			--></style>

+			<p>In Administration &gt; Configuration there are a number of

+				configuration values.

+			</p>

+			<p></p>

+			<table>

+				<tr>

+					<th class="configCell"> key </th>

+					<th class="configCell"> default </th>

+					<th class="configCell"> meaning </th>

+					<th class="configCell"> availabe since OpenMeetings version </th>

+				</tr>

+				<tr>

+					<td class="configCell"> user.login.minimum.length </td>

+					<td class="configCell"> 4 </td>

+					<td class="configCell"> minimum chars required for the login to create a user </td>

+					<td class="configCell"> 1.9.x </td>

+				</tr>

+				<tr>

+					<td class="configCell"> user.pass.minimum.length </td>

+					<td class="configCell"> 4 </td>

+					<td class="configCell"> minimum chars required for the password to create a

+						user

+					</td>

+					<td class="configCell"> 1.9.x </td>

+				</tr>

+				<tr>

+					<td class="configCell"> number.minutes.reminder.send </td>

+					<td class="configCell"> 15 </td>

+					<td class="configCell"> minutes the one-time reminder in the calender is

+						send, set to 0 to disable reminder

+					</td>

+					<td class="configCell"> 1.9.x </td>

+				</tr>

+				<tr>

+					<td class="configCell"> max_upload_size </td>

+					<td class="configCell"> 1073741824 </td>

+					<td class="configCell"> Maximum size of upload file (bytes) 1073741824 bytes

+						= 1GB

+					</td>

+					<td class="configCell"> 1.8.x </td>

+				</tr>

+				<tr>

+					<td class="configCell"> show.whiteboard.draw.status </td>

+					<td class="configCell"> 0 </td>

+					<td class="configCell"> Display name of the user who draw the current object

+						(User Name auto-disapper after 3 seconds.

+					</td>

+					<td class="configCell"> 1.8.x </td>

+				</tr>

+				<tr>

+					<td class="configCell"> use.old.style.ffmpeg.map.option </td>

+					<td class="configCell"> 0 </td>

+					<td class="configCell"> If the system should "." (old ffmpeg) instead of ":"

+						(new ffmpeg) for the -map option in FFMPEG

+					</td>

+					<td class="configCell"> 1.9.x </td>

+

+				</tr>

+				<tr>

+					<td class="configCell"> inviter.email.as.replyto </td>

+					<td class="configCell"> 1 </td>

+					<td class="configCell"> Set inviter's email address as ReplyTo in email invitations (1 == set, 0 == NOT set)	</td>

+					<td class="configCell"> 2.0.x </td>

+				</tr>

+				<tr>

+					<td class="configCell"> office.path </td>

+					<td class="configCell"> </td>

+					<td class="configCell"> The path to OpenOffice/LibreOffice (optional) please set this to the real path in case jodconverter is unable to find OpenOffice/LibreOffice installation automatically	</td>

+					<td class="configCell"> 2.0.x </td>

+				</tr>

+				<tr>

+					<td class="configCell"> default.landing.zone </td>

+					<td class="configCell"> user/dashboard </td>

+					<td class="configCell"> Area to be shown to the user after login. Possible values are: user/dashboard, user/calendar, user/record, rooms/my, rooms/group, rooms/public, admin/user, admin/connection

+						, admin/group, admin/room, admin/config, admin/lang, admin/ldap, admin/backup, admin/server, admin/oauth2 </td>

+					<td class="configCell"> 2.1.x, <b> values are changed in 3.0.0</b> </td>

+				</tr>

+				<tr>

+					<td class="configCell"> sms.provider </td>

+					<td class="configCell">  </td>

+					<td class="configCell"> SMS service provider (bulksms.http.1) </td>

+					<td class="configCell"> 2.1.x </td>

+				</tr>

+				<tr>

+					<td class="configCell"> sms.Username </td>

+					<td class="configCell">  </td>

+					<td class="configCell"> Login for SMS service provider </td>

+					<td class="configCell"> 2.1.x </td>

+				</tr>

+				<tr>

+					<td class="configCell"> sms.Userpass </td>

+					<td class="configCell">  </td>

+					<td class="configCell"> Password for SMS service provider </td>

+					<td class="configCell"> 2.1.x </td>

+				</tr>

+				<tr>

+					<td class="configCell"> sms.subject </td>

+					<td class="configCell">  </td>

+					<td class="configCell"> Subject of SMS reminder message </td>

+					<td class="configCell"> 2.1.x </td>

+				</tr>

+				<tr>

+					<td class="configCell"> swftools_zoom </td>

+					<td class="configCell"> 100 </td>

+					<td class="configCell"> DPI for conversion of PDF to SWF (should be an integer between 50 and  600 with a default value of 100 DPI) </td>

+					<td class="configCell"> 2.0.x </td>

+				</tr>

+				<tr>

+					<td class="configCell"> swftools_jpegquality </td>

+					<td class="configCell"> 85 </td>

+					<td class="configCell"> Compression quality for conversion of PDF to SWF (should be an integer between 1 and 100, with a default value of 85) </td>

+					<td class="configCell"> 2.0.x </td>

+				</tr>

+				<tr>

+					<td class="configCell"> sendEmailAtRegister </td>

+					<td class="configCell"> 0 </td>

+					<td class="configCell"> User get a EMail with their Account data. Values: 0(No) or 1(Yes) </td>

+					<td class="configCell"> 2.0.x </td>

+				</tr>

+				<tr>

+					<td class="configCell"> sendEmailWithVerficationCode </td>

+					<td class="configCell"> 0 </td>

+					<td class="configCell"> User must activate their account by clicking on the 

+								activation-link in the registering Email. Values: 0(No) or 1(Yes) 

+								It makes no sense to make this(sendEmailWithVerficationCode) 1(Yes) while 

+								sendEmailAtRegister is 0(No) cause you need

+								to send a EMail. </td>

+					<td class="configCell"> 2.0.x </td>

+				</tr>

+				<tr>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> redirect.url.for.external.users </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;">  </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> Users entered the room via invitationHash or secureHash will be redirected to this URL on connection lost </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> 2.2.x </td>

+				</tr>

+				<tr>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> allow_frontend_register </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> (configurable during install) </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> Is user register available on login screen </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> 1.8.x </td>

+				</tr>

+				<tr>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> allow.soap.register </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> 1 </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> Is user register available via SOAP/REST </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> 3.0.x </td>

+				</tr>

+			</table>

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/GetVersionInfo.xml b/xdocs/GetVersionInfo.xml
new file mode 100644
index 0000000..e799233
--- /dev/null
+++ b/xdocs/GetVersionInfo.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>How to check which Openmeetings version running</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+		<section name="How to check which Openmeetings version running (3.0.0 - )">

+			<p>Use Top Menu -&gt; About</p>

+		</section>

+		<section name="How to check which Openmeetings version running (2.1.1 - )">

+			<p>The version is printed into openmeetings.log file</p>

+			<p>

+				Run openmeetings<br/>

+				Open OM_HOME/log/openmeetings.log

+			</p>

+			<p>You get something like this: </p>

+			<div class="xmlcode"><pre>

+	##################################################

+	#               Openmeetings is up               #

+	#       2.1.1-RELEASE 1490720 7-June-2013        #

+	#                and ready to use                #

+	##################################################

+			</pre></div>

+		</section>

+		<section name="How to check which Openmeetings version running (1.8.0 - 2.1.0)">

+			<p>If you need to know what version of OpenMeetings you are running,

+				you can check that by the file: openmeetings-*.jar

+			</p>

+			<p>

+				Unzip: /webapps/openmeetings/WEB-INF/lib/openmeetings-*.jar (jars are

+				zips)

+				<br />

+				<br />

+				In the resulting unzipped folder open the file to read:

+				/META-INF/MANIFEST.MF

+			</p>

+			<p>You get something like this: </p>

+			<div class="xmlcode">

+				Manifest-Version: 1.0

+				<br />

+				Ant-Version: Apache Ant 1.8.2

+				<br />

+				Created-By: 1.6.0_26-b03-383-11A511 (Apple Inc.)

+				<br />

+				Built-By: OpenMeetings - http://openmeetings.googlecode.com

+				<br />

+				Built-On: 23-October-2011

+				<br />

+				Svn-Revision: 4368

+				<br />

+			</div>

+			<p>This version info is available since version 1.8.0. If you have an

+				older version as version 1.8.0 then you might simply check the

+				language files and the labelid in there, the numbers of labels are

+				almost always unique in the versions. </p>

+

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/HotKeys.xml b/xdocs/HotKeys.xml
new file mode 100644
index 0000000..db56499
--- /dev/null
+++ b/xdocs/HotKeys.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+	<properties>

+		<title>Hot Keys</title>

+		<author email="solomax@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+	<body>

+		<section name="Keys table">

+			<table>

+				<tr>

+					<th>Key</th>

+					<th>Functionality</th>

+					<th>Configurable</th>

+					<th>Config Key</th>

+				</tr>

+				<tr>

+					<td>F12 (code 123)</td>

+					<td>A hot key code for the 'give exclusive audio' functionality.</td>

+					<td>Yes</td>

+					<td>exclusive.audio.keycode</td>

+				</tr>

+				<tr>

+					<td>F8 (code 119)</td>

+					<td>If 1 or 2 video windows are present in the room they will be

+						"rearranged" to take all the place available</td>

+					<td>No</td>

+					<td>

+					</td>

+				</tr>

+				<tr>

+					<td>F7 (code 118)</td>

+					<td>A hot key code for the 'mute/unmute audio' functionality.</td>

+					<td>Yes</td>

+					<td>mute.keycode</td>

+				</tr>

+			</table>

+		</section>

+	</body>

+</document>
\ No newline at end of file
diff --git a/xdocs/IBMDB2Config.xml b/xdocs/IBMDB2Config.xml
new file mode 100644
index 0000000..2324502
--- /dev/null
+++ b/xdocs/IBMDB2Config.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>IBM DB2 Configuration</title>

+		<author email="sebawagner@apache.org">

+			Apache OpenMeetings Documentation Team

+		</author>

+	</properties>

+

+	<body>

+		<section name="IBM DB2 Configuration">

+

+			<subsection name="Before you start">

+				<i>Tested with IBM DB2 Express-C 9.7.x</i>

+				<ul>

+					<li>

+						Get the IBM Data Server Driver for JDBC and SQLJ from IBM website:

+						<a

+							href="https://www14.software.ibm.com/webapp/iwm/web/preLogin.do?source=swg-idsdjs">https://www14.software.ibm.com/webapp/iwm/web/preLogin.do?source=swg-idsdjs

+						</a>

+					</li>

+					<li>Copy JDBC driver db2jcc4.jar to

+						webapps/openmeetings/WEB-INF/lib/

+					</li>

+					<li>

+						Create database for OpenMeetings using a pagesize bigger or equal

+						8K, sample query:

+						<br />

+						<div class="xmlcode">

+							CREATE DATABASE openmeet AUTOMATIC STORAGE YES ON 'C:' DBPATH ON 'C:'

+							USING CODESET UTF-8 TERRITORY DE COLLATE USING System PAGESIZE 16

+							K

+						</div>

+					</li>

+					<li>If you encounter issues, you can drop the db again and delete

+						the file $red5/webapps/openmeetings/conf/install.xml and then run

+						the web based installer again </li>

+				</ul>

+			</subsection>

+

+			<subsection name="Steps todo">

+				<ul>

+					<li>

+						Rename:

+						<br />

+						$red5/webapps/openmeetings/WEB-INF/classes/META-INF/db2_persistence.xml

+						<br />

+						to

+						<br />

+						$red5/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

+					</li>

+					<li>

+						Prepare Database Settings - go to

+						openmeetings_version_no_xx/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

+						<br />

+						Alter config values in persistence.xml connectionURL, username and

+						password with your values

+					</li>

+					<li>

+						Run red5-service and goto the web-based installer:

+						http://localhost:5080/openmeetings/install

+					</li>

+				</ul>

+			</subsection>

+

+			<subsection name="DB2 Sample Configuration">

+				<p>

+					There is a sample configuration for IBM DB2 that ships with

+					every

+					release in:

+					<br />

+					/webapps/openmeetings/WEB-INF/classes/META-INF/db2_persistence.xml

+				</p>

+			</subsection>

+

+

+		</section>

+

+	</body>

+

+</document>

diff --git a/xdocs/Internationalisation.xml b/xdocs/Internationalisation.xml
new file mode 100644
index 0000000..c4b5f33
--- /dev/null
+++ b/xdocs/Internationalisation.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Upgrade</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Where to find language files">

+

+			<p>You can find all current language files here: </p>

+			<p>

+				<a

+					href="https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/src/main/webapp/languages/"

+					rel="nofollow">https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/src/main/webapp/languages/

+				</a>

+			</p>

+			<p>Just take one file and translate it to your language. </p>

+		</section>

+

+		<section name="Import and export of Language Files">

+

+			<ul>

+				<li>

+					Use the

+					<a href="LanguageEditor.html">LanguageEditor</a>

+					for translation

+				</li>

+				<li>

+					with the

+					<a href="LanguageEditor.html">LanguageEditor</a>

+					you can import and export Language Files

+				</li>

+			</ul>

+		</section>

+

+		<section name="How to add it as installation option">

+			<p>

+				Once you have finished the translation you can add a new node to:

+				<a

+					href="https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/src/main/webapp/languages/languages.xml"

+					rel="nofollow">https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/src/main/webapp/languages/languages.xml

+				</a>

+			</p>

+			<p>the name of the language should match the name of the file. Once

+				this is done the Language file will automatically be imported during

+				installation and will be an option at login.

+			</p>

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/JUnitTesting.xml b/xdocs/JUnitTesting.xml
new file mode 100644
index 0000000..02468c2
--- /dev/null
+++ b/xdocs/JUnitTesting.xml
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>JUnit Testing</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Introduction">

+

+			<p>

+				Automatic tests are the significant part of development process.

+				Below is the instruction of how to run Openmeetings

+				<a href="http://junit.org" rel="nofollow">JUnit</a>

+				tests.

+			</p>

+		</section>

+

+		<section name="Details">

+

+

+			<ol>

+				<li>running tests using command line: </li>

+				<li>

+					<ul>

+						<li>all tests:

+							<div class="xmlcode">

+								ant test

+							</div>

+						</li>

+						<li>subset of tests by mask:

+							<div class="xmlcode">

+								ant -Dtestcases=TestError* test

+							</div>

+						</li>

+					</ul>

+				</li>

+				<li>running tests from Eclipse IDE: </li>

+				<li>

+					<ul>

+						<li>

+							<div class="xmlcode">

+								ant -Ddb=&lt;your_DB&gt; prepare-eclipse

+							</div>

+						</li>

+						<li>Start Eclipse </li>

+						<li>Load workspace with Openmeetings project (or refresh existing

+							project)

+						</li>

+						<li>Select "Debug Configurations..." </li>

+					</ul>

+				</li>

+			</ol>

+			<p>

+				<a class="fancybox-buttons" href="images/DebugConfigurations.png">

+					<img src="images/DebugConfigurations.png" alt="" width="367"

+						height="262" />

+				</a>

+			</p>

+			<ul>

+				<li>Create New Junit configuration, give it a name and select test

+					class

+				</li>

+			</ul>

+			<p>

+				<a class="fancybox-buttons" href="images/NewConfiguration.png">

+					<img src="images/NewConfiguration.png" alt="" width="420"

+						height="206" />

+				</a>

+			</p>

+			<ul>

+				<li>Select Arguments tab </li>

+				<li>Add the following code to the VM section

+					<div class="xmlcode">

+						-javaagent:${workspace_loc:Openmeetings}/build/lib/om/openjpa-bundle-2.2.2.jar

+						-Dom.home=${workspace_loc:Openmeetings}/src/main/webapp

+						-Dbackups.dir=${workspace_loc:Openmeetings}/build/lib/junit/backups

+					</div>

+				</li>

+				<li>To avoid temporary files being created in OM root, modify

+					"Working Directory" as follows

+					<div class="xmlcode">${workspace_loc:Openmeetings}/build/junit</div>

+				</li>

+			</ul>

+			<p>

+				<a class="fancybox-buttons" href="images/Arguments.png">

+					<img src="images/Arguments.png" alt="" width="435" height="410" />

+				</a>

+			</p>

+			<ul>

+				<li>Select Debug </li>

+

+			</ul>

+			<ul>

+				<li>Note: You need a file called "persistence.xml" in src/META-INF

+					if you run the JUnit test from inside Eclipse. Normally "ant

+					prepare-eclipse" should do that for you. </li>

+

+			</ul>

+

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/JVMPerformanceTuning.xml b/xdocs/JVMPerformanceTuning.xml
new file mode 100644
index 0000000..b717e14
--- /dev/null
+++ b/xdocs/JVMPerformanceTuning.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Performance Tuning</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Performance Tuning">

+

+			<p>To use the optimum of performance from your server there is a

+				start-script for red5 available that does some basic settings in the

+				JVM. It is called red5-highperf.sh. It is recommended to use that

+				script for production and high-load scenarios.

+			</p>

+			<div class="xmlcode">

+				#!/bin/bash

+				<br />

+				<br />

+				if [ -z "$RED5_HOME" ]; then export RED5_HOME=.; fi

+				<br />

+				<br />

+				# Previous option set

+				<br />

+				export JAVA_OPTS="-Xrs -Xms512M -Xmx1024M -Xss128K -XX:NewSize=256m

+				-XX:SurvivorRatio=16 -XX:MinHeapFreeRatio=20

+				-XX:+ExplicitGCInvokesConcurrent -Djava.net.preferIPv4Stack=true

+				-Xverify:none"

+				<br />

+				<br />

+				# start Red5

+				<br />

+				echo "Setting Hi Performance Options"

+				<br />

+				exec $RED5_HOME/red5.sh >> $RED5_HOME/log/jvm.stdout 2>&amp;1 &amp;

+				<br />

+			</div>

+

+			<p>You have to exclude the "-XX:+UseConcMarkSweepGC" param from the

+				default red5-highperf.sh to make it functional! However if you are a

+				performance expert you might also play with the values to find

+				perfect matches for your use-case.

+			</p>

+			<p>

+				For a complete overview about possible arguments and their meaning

+				see:

+				<a

+					href="http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html#PerformanceTuning"

+					rel="nofollow">http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html#PerformanceTuning

+				</a>

+			</p>

+

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/JiraPlugin.xml b/xdocs/JiraPlugin.xml
new file mode 100644
index 0000000..8901bcf
--- /dev/null
+++ b/xdocs/JiraPlugin.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Jira Plugin</title>

+		<author email="eschwert@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Jira Plugin for OpenMeetings">

+			<p>

+				Current Development Snapshots for testing can be downloaded from:

+				<a href="https://svn.apache.org/repos/asf/openmeetings/branches/jira-plugin/target/openmeetings-1.0-SNAPSHOT.jar">here</a>

+				.

+			</p>			

+		</section>

+		

+		<section name="Features">

+			<p>The plugin contains the following features: </p>

+			<ul>

+				<li>Create videoconference rooms through Jira: </li>

+				<li>

+					<ol>

+						<li>Integrated with Jira issues </li>										

+						<li>Configurable room type </li>

+					</ol>

+				</li>

+			</ul>			

+		</section>	

+		

+		<section name="Demo video">			

+			<p>The demo video of Jira plugin show you the plugin in action </p>              

+		      <object style="height: 390px; width: 640px">

+			      <param name="movie" value="http://www.youtube.com/v/xBdYj-OZvlc?version=3&amp;feature=player_detailpage"/>

+			      <param name="allowFullScreen" value="true"/>

+			      <param name="allowScriptAccess" value="always"/>

+			      <embed src="http://www.youtube.com/v/xBdYj-OZvlc?version=3&amp;feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"/>

+		      </object> 

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/JoomlaPlugin.xml b/xdocs/JoomlaPlugin.xml
new file mode 100644
index 0000000..c84c420
--- /dev/null
+++ b/xdocs/JoomlaPlugin.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+	<properties>

+		<title>Joomla Plugin</title>

+		<author email="solomax@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+	<body>

+		<section name="OpenMeetings Plugin for Joomla">

+			<p>

+				Plugin for Joomla currently is not open source. 

+				Please contact <a href="commercial-support.html" target="_BLANK" rel="nofollow">Commercial Support</a> to get it. 

+			</p>			

+		</section>

+		<section name="Features">

+			<p>The plugin contains the following features: </p>

+			<ul>

+				<li>Create videoconference rooms from Joomla: </li>

+				<li>

+					<ol>

+						<li>Create rooms</li>										

+						<li>Enter the room</li>

+					</ol>

+				</li>

+				<li>Access recordings from Joomla: </li>

+				<li>

+					<ol>

+						<li>Download recordings</li>										

+					</ol>

+				</li>

+			</ul>

+		</section>

+		<section name="Demo video">			

+			<div>

+				<b>OpenMeetings Joomla Plugin Installation</b><br/>              

+				<object style="height: 360px; width: 640px">

+					<param name="movie" value="http://www.youtube.com/v/jt8ejgtHavc?version=3&amp;feature=player_detailpage"/>

+					<param name="allowFullScreen" value="true"/>

+					<param name="allowScriptAccess" value="always"/>

+					<embed src="http://www.youtube.com/v/jt8ejgtHavc?version=3&amp;feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"/>

+				</object> 

+			</div>

+			<br/>

+			<div>

+				<b>OpenMeetings Integration with Joomla</b><br/>              

+				<object style="height: 360px; width: 640px">

+					<param name="movie" value="http://www.youtube.com/v/H61N0pfLusA?version=3&amp;feature=player_detailpage"/>

+					<param name="allowFullScreen" value="true"/>

+					<param name="allowScriptAccess" value="always"/>

+					<embed src="http://www.youtube.com/v/H61N0pfLusA?version=3&amp;feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"/>

+				</object> 

+			</div>

+		</section>

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/LanguageEditor.xml b/xdocs/LanguageEditor.xml
new file mode 100644
index 0000000..1f100b4
--- /dev/null
+++ b/xdocs/LanguageEditor.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Language Editor</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Language Editor">

+

+			<p>Features:</p>

+			<ul>

+				<li>edit the labels of any language, changes will take effect as

+					soon as you re-login

+				</li>

+				<li>add new languages (for example to fit your co-operative design

+					and language of your company)

+				</li>

+				<li>export the language-files to an XML File (these language Files

+					can be used for your next installation or as contribution to the

+					project)

+				</li>

+				<li>

+					import of language files (

+					<i>you should restart the server if you face problems, as the

+						database cache might be invalid

+					</i>

+					)

+				</li>

+			</ul>

+			<p>Screen from the Administration Panel: </p>

+			<p>

+				<a class="fancybox-buttons" href="images/langeditor_screen_v2.png">

+					<img src="images/langeditor_screen_v2.png" alt="" width="475"

+						height="324" />

+				</a>

+			</p>

+

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/LdapAndADS.xml b/xdocs/LdapAndADS.xml
new file mode 100644
index 0000000..8c9d88a
--- /dev/null
+++ b/xdocs/LdapAndADS.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Home</title>

+		<author email="sebawagner@apache.org">

+			Sebastian Wagner

+		</author>

+	</properties>

+

+	<body>

+		<section name="Ubuntu Installation">

+			<div>

+				Run the commands

+				<blockquote>

+					<i>

+						sudo apt-get install slapd ldap-utils

+					</i>

+				</blockquote>

+			</div>

+			<div>

+				Modify file <tt>/etc/ldap/ldap.conf</tt> add highlighted attributes:

+				<blockquote>

+					<i>

+						#<br />

+						# LDAP Defaults<br />

+						#<br />

+						# See ldap.conf(5) for details<br />

+						# This file should be world readable but not world writable.<br />

+						<b>BASE    dc=unixmen,dc=com<br />

+						URI     ldap://192.168.1.200</b><br />

+						#SIZELIMIT      12<br />

+						#TIMELIMIT      15<br />

+						#DEREF          never<br />

+						# TLS certificates (needed for GnuTLS)<br />

+						TLS_CACERT      /etc/ssl/certs/ca-certificates.crt<br />

+					</i>

+				</blockquote>

+			</div>

+			<div>

+				Run the Configuration assistant: <tt>sudo dpkg-reconfigure slapd</tt>

+			</div>

+			<div>

+				Test LDAP server: <tt>ldapsearch -x</tt>

+			</div>

+			<div>

+				Add/Edit/Delete users: <tt>sudo apt-get install phpldapadmin</tt>

+			</div>

+			<div>

+				Detailed reference: <a href="http://www.unixmen.com/openldap-installation-and-configuration-in-ubuntu-12-10-server-debian-6/">http://www.unixmen.com/openldap-installation-and-configuration-in-ubuntu-12-10-server-debian-6/</a>

+			</div>

+		</section>

+		<section name="LDAP and Active Directory Integration">

+			<p> In: $RED5_HOME/webapps/openmeetings/conf<br/>

+				you will find sample configurations for LDAP and Active Directory. The

+				nature of those Directory Servers are that they are individual for

+				every organization, so you have to modify of course at least the

+				path to your user-base et cetera.<br/>

+				<br/>

+				To activate any of those configurations you have to login into

+				OpenMeetings, goto Administration > Ldap.

+			</p>

+			<a class="fancybox-buttons" href="images/ldap_screen.png">

+				<img src="images/ldap_screen.png" alt="" width="442" height="282" />

+			</a>

+			<p>

+				Import is that you configure LDAP_SEARCH_PATH so that it points to the node of your directory server that contains the users

+			</p>

+			<p>

+				If you have multiple search paths you can either try to define a search path that points to multiple nodes or define multiple ldap configurations.

+			</p>

+			<p>

+				Successful integration is also reported with Novell eDirectory

+			</p>

+			<p>

+				You can configure multiple domains or different user-paths in the Administration of OpenMeetings. 

+			</p>

+			<p>

+				<b>NOTE: </b>You should specify file name <i>RELATIVE</i> to <tt>$RED5_HOME/webapps/openmeetings/conf</tt>

+			</p>

+		</section>

+

+	</body>

+</document>
\ No newline at end of file
diff --git a/xdocs/MSSQLConfig.xml b/xdocs/MSSQLConfig.xml
new file mode 100644
index 0000000..27f11cc
--- /dev/null
+++ b/xdocs/MSSQLConfig.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document>

+

+	<properties>

+		<title>MSSQL Configuration</title>

+		<author email="solomax@apache.org">

+			Apache OpenMeetings Documentation Team

+		</author>

+	</properties>

+

+	<body>

+		<section name="MSSQL Configuration">

+

+			<subsection name="Before you start">

+				<ul>

+					<li>You need Openmeetings 2.2 or later to use MSSQL integration</li>

+					<li>Make sure that you have set utf8 as collation for the openmeetings database

+						before you start the installation process of OpenMeetings!

+					</li>

+					<li>

+						make sure MSSQL is listening on TCP/IP connections! and username/password 

+						authentication is enabled for it

+						<br />

+						To verify if MSSQL connection is working: OpenMeetings will

+						automatically create all tables in the database and all tables

+						should have utf8 as encoding/collation!

+					</li>

+					<li>If you encounter issues, you can drop the db again and delete

+						the file $red5/webapps/openmeetings/conf/install.xml and then run

+						the web based installer again

+					</li>

+				</ul>

+			</subsection>

+

+			<subsection name="Steps todo">

+				<ul>

+					<li>

+						You need to download the JDBC driver from Microsoft

+						<a href="http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&amp;id=11774" target="_BLANK"

+							rel="nofollow">http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&amp;id=11774</a>

+						Unarchive appropriate file from it (sqljdbc.jar or sqljdbc4.jar) and place it into:

+						<tt>$red5/webapps/openmeetings/WEB-INF/lib/</tt>

+					</li>

+					<li>

+						Rename:

+						<br />

+						$red5/webapps/openmeetings/WEB-INF/classes/META-INF/mssql_persistence.xml

+						<br />

+						to

+						<br />

+						$red5/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

+					</li>

+					<li>

+						Prepare Database Settings - go to

+						openmeetings_version_no_xx/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

+						<br />

+						Alter config values in persistence.xml DB_HOST USER_NAME USER_PASS

+						with your values

+					</li>

+					<li>

+						Run red5-service and goto the web-based installer:

+						http://localhost:5080/openmeetings/install

+					</li>

+				</ul>

+			</subsection>

+

+			<subsection name="MSSQL Sample Configuration">

+				<p>

+					There is a sample configuration for MySQL that ships with

+					every release in:

+					<br />

+					/webapps/openmeetings/WEB-INF/classes/META-INF/mssql_persistence.xml

+				</p>

+			</subsection>

+

+

+		</section>

+

+	</body>

+

+</document>

diff --git a/xdocs/ManualTesting.xml b/xdocs/ManualTesting.xml
new file mode 100644
index 0000000..1deb78b
--- /dev/null
+++ b/xdocs/ManualTesting.xml
@@ -0,0 +1,380 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Manual Testing</title>

+		<author email="iarkh@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Introduction">

+

+			<p>

+				Below is a test plan for the OpenMeetings 2.1 pre-release testing.

+			</p>

+		</section>

+

+		<section name="Details">

+

+			<ol>

+				<li>

+					<b>User GUI tests</b>

+					<ol>

+						<li>

+							Login/logout 

+							<ol>

+								<li>Password recovering </li>

+								<li>Self-registering </li>

+								<li>"Visit Apache OpenMeetings" link </li>

+								<li>Enter wrong login/password </li>

+								<li>Enter correct login/password </li>

+								<li>Exit the system by click the Exit button </li>

+							</ol>

+						</li>

+						<li>

+							Dashboard

+							<ol>

+								<li>Correct user info in the upper left corner </li>

+								<li>Links in the "Help and support" section </li>

+								<li>It should be possible to enter user’s room from the dashboard </li>

+								<li>Room details should be shown correctly in the "Rooms in this section…" part of the screen </li>

+							</ol>					

+						</li>

+						<li>

+							Global chat 

+							<ol>

+								<li>Send/receive message where at least 3 users in the system </li>

+								<li>Adding a contact to the contact list </li>

+								<li>Private message </li>

+								<li>Showing user profile </li>

+								<li>Inviting user to the conference room </li>

+								<li>Copy chat log </li>

+								<li>Delete chat log </li>

+								<li>Changing font style in the massage </li>

+								<li>Adding emotions to the message </li>

+							</ol>

+							Attention! Correct RTL support does not work in the current implementation 

+						</li>

+						<li>

+							Calendar view

+							<ol>

+								<li>Change view (weekly/daily/monthly) and moving between the dates </li>

+								<li>Adding/removing/moving by mouse an event </li>

+							</ol>

+						</li>

+						<li>

+							Calendar invitation window

+							<ol>

+								<li>Creating/updating/deleting an event </li>

+								<li>Inviting 3 internal and 3 external guests </li>

+								<li>Different reminder types: receiving e-mail invitation for internal and external guests </li>

+								<li>Password protected invitation </li>

+								<li>Inviting to the rooms of the different types </li>

+								<li>Choosing time zone for external guest </li>

+								<li>Correct user data in the invitations </li>

+								<li>SMS reminder for internal and external guests </li>

+								<li>E-mail reminder for internal and external guests </li>

+								<li>It should be possible to enter to the event via invitation link room at the particular time slot only </li>

+								<li>Enter the room via invitation window </li>

+							</ol>

+						</li>

+						<li>

+							My Profile: User profile should contain correct user info and allow to edit this 

+						</li>

+						<li>

+							Contacts and Messages

+							<ol>

+								<li>Add/remove a message </li> 

+								<li>Creating a new folder </li>

+								<li>Moving between the folders </li>

+								<li>Marking messages as read/unread </li>

+								<li>Message filters </li>

+								<li>Contact list </li>

+							</ol>

+						</li>

+						<li>

+							User settings

+							<ol>

+								<li>Possibility to change the user info </li>

+								<li>Changing time zone and language (should start to work after user re-login </li>

+								<li>Community settings or different users </li>

+								<li>Display settings</li> 

+							</ol>

+						</li>

+						<li>

+							Search users

+							<ol>

+								<li>Send a private message </li>

+								<li>Adding a contact </li>

+								<li>View contact details via user list </li>

+							</ol>

+						</li>

+						<li>

+							Room lists 

+							<ol>

+								<li>Public rooms, private rooms and my rooms should contain correct room lists </li>

+								<li>User list for the selected room </li>

+								<li>Room details for the selected room </li>

+							</ol>

+						</li>

+						<li>

+							Recordings

+							<ol> 

+								<li>The list should contain available recordings in public and private folders </li>

+								<li>Info panel should contain actual info about the recording </li>

+								<li>Downloading a recording is different formats (AVI/FLV) </li>

+								<li>Play the recording in OpenMeetings </li>

+								<li>Play downloaded recording by Windows player </li>

+								<li>Remove a recording from the folder </li>

+							</ol>

+						</li>

+						<li>

+							Restricted room testing – general issues (should be tested with at least 3 attendees)

+							<ol>

+								<li>Enter the room: different cases for the cam/micro, choosing of the cam resolution, test recording, allow/deny of video </li>

+								<li>User list should be shown correctly </li>

+								<li>Correct user credentials after  the room entering </li>

+								<li>Add moderator permissions to the user </li>

+								<li>Turn micro on/off in the user list </li>

+								<li>Increasing/decreasing sound level and turning micro on/off in the video window </li>

+								<li>Turn micro on/off in the user list to another user – possible by the moderator only </li>

+								<li>Increasing/decreasing sound level and turning micro on/off in the video window - possible by the moderator only </li>

+								<li>Allow/deny drawing on whiteboard – possible by the moderator only </li>

+								<li>Allow/deny screen sharing – possible by the moderator only </li>

+								<li>Allow/deny remote screen control – possible by the moderator only </li>

+								<li>Allow/deny exclusive audio – possible by the moderator only </li>

+								<li>Re-start devise settings via user list </li>

+								<li>Re-start devise settings via video window </li>

+								<li>Kick the user off by the moderator </li>

+								<li>Click F8 key to arrange videos </li>

+								<li>Activity and actions panel should contain correct info </li>

+								<li>Exit the room </li>

+							</ol>

+						</li>

+						<li>

+							Restricted room testing: file uploading + documents

+							<ol>

+								<li>Upload a document with "Load directly to whiteboard" switch turned on </li>

+								<li>Upload a with "Load directly to whiteboard" switch turned on off </li>

+								<li>Upload a document with the localized file name and spaces in the name </li>

+								<li>Uploading a document into different folders: private files should be visible only their owner only </li>

+								<li>Removing a file from the room </li>

+								<li>Home and public drive size should change correctly </li>

+								<li>Adding a new folder </li>

+								<li>Removing a folder </li>

+								<li>Load a document of each supported type and check that it’s shown correctly </li>

+							</ol>

+						</li>

+						<li>

+							Restricted room testing – whiteboard and properties panels (should be tested with at least 3 attendees)

+							<ol>

+								<li>Adding a removing a whiteboard </li>

+								<li>Full-fit switch </li>

+								<li>Clear whiteboard </li>

+								<li>Clear objects of current slide only </li>

+								<li>Save and export </li>

+								<li>Undo </li>

+								<li>Select an object </li>

+								<li>Pointer </li>

+								<li>Text </li>

+								<li>Paint </li>

+								<li>Draw line </li>

+								<li>Draw underline </li>

+								<li>Rectangle </li>

+								<li>Ellipse </li>

+								<li>Arrow </li>

+								<li>Cliparts</li>

+							</ol>						

+						</li>

+						<li>

+							Restricted room testing – chat (should be tested with at least 3 attendees)

+							<ol>

+								<li>Send a message </li>

+								<li>Start a private chat </li>

+								<li>Chat moderation </li>

+								<li>Font style </li>

+								<li>Emotions </li>

+								<li>Show/copy chat log </li>

+								<li>Delete server chat log </li>

+							</ol>

+						</li>

+						<li>

+							Restricted room testing – screen sharing and recordings (should be tested with at least 3 attendees)

+							<ol>

+								<li>"Share record/screen" button in the room </li>

+								<li>Desktop sharer: start/stop sharing </li>

+								<li>Change the shared screen area (X-offset, Y-offset, width, height) </li>

+								<li>Change the screen sharing quality </li>

+								<li>Start/stop recordings – need to check that it works as expected </li>

+							</ol>

+						</li>

+						<li>

+							Restricted room testing – Actions menu

+							<ol>

+								<li>Send invitation: send English and localized message </li>

+								<li>Send invitation with password </li>

+								<li>Send invitations with 3 different time periods </li>

+								<li>Change time zone of the invitation </li>

+								<li>Change language of the invitation </li>

+								<li>Send invitation screen: "Generate URL" button – check the same things as for the invitations sent by email </li>

+								<li>Apply to be moderator </li>

+								<li>Apply to whiteboard access </li>

+								<li>Apply to audio/video access </li>

+								<li>Create a poll </li>

+								<li>Poll results </li>

+								<li>Vote </li>

+								<li>Default whiteboard settings: check all of them </li>

+							</ol>

+						</li>

+						<li>

+							Conference room testing

+							<ol>

+								<li>User list should look in another way in compare with restricted type </li>

+								<li>Generally, all should look OK when enter the room </li>

+							</ol>

+						</li>

+						<li>

+							Interview room testing (should be tested with at least 3 attendees)

+							<ol>

+								<li>User list should look as expected </li>

+								<li>Change a user for video pod </li>

+								<li>Start/stop recordings </li>

+							</ol>

+						</li>						

+					</ol>			

+				</li>

+				<li>

+					<b>Admin GUI tests</b>

+					<ol>

+						<li>

+							Users

+							<ol>

+								<li>Add/edit/remove/search user in the table </li>

+								<li>Move between screens where there are many users in the table </li>

+								<li>Edit text fields </li>

+								<li>Change a time zone, re-login and check the calendar </li>

+								<li>Change a language, re-login and check the GUI language </li>

+								<li>Е-mail: e-mails should pass </li>

+								<li>Phone and SMS switch: if set and turned on, sms messages should pass </li>

+								<li>Change a status – non-active user cannot login </li>

+								<li>Change user role and re-login </li>

+								<li>Change user group  - user has an access only to the rooms belong to his organization </li>

+								<li>Change community settings and check </li>

+							</ol>

+						</li>

+						<li>

+							Connections

+							<ol>

+								<li>Should be tested with at least 3 users in the system </li>

+								<li>Sessionvars table should be shown correctly </li>

+								<li>Kick the user from the system </li>

+							</ol>

+						</li>

+						<li>

+							Organizations 

+							<ol>

+								<li>Add/remove/edit/search an organization </li>

+								<li>Add/remove a user from the user list of selected organization </li>

+							</ol>

+						</li>

+						<li>

+							Conference rooms

+							<ol>

+								<li>Add/remove/edit/search a room </li>

+								<li>User list for the given room should contain actual list </li>

+								<li>Turn the Moderation switch on/off and enter the room </li>

+								<li>Add/remove a user to the default moderator list </li>

+								<li>Check max participants number in the room </li>

+								<li>Change room type and enter the room </li>

+								<li>Turn public switch on/off </li>

+								<li>Turn "Demo switch" on/off, change the demonstration time </li>

+								<li>Turn "Allow user questions" on/off and enter the room </li>

+								<li>Turn "Audio only" switch on/off and enter the room </li>

+								<li>Set "Close URL" to some URL, enter the room and then exit – you should be re-directed correspondingly </li>

+								<li>Check that SIP settings work as expected </li>

+								<li>Check that "Allow recordings" switch  works as expected </li>

+								<li>Check that "Layout options" switch work as expected </li>

+								<li>Check that "Allow font styles" switch works as expected </li>

+							</ol>

+						</li>

+						<li>					

+							Configuration

+							<ol>

+								<li>Allow_frontend_register </li>

+								<li>Mail server settings </li>

+								<li>SMS provider settings </li>

+								<li>Application.name </li>

+								<li>Default_lang_id </li>

+								<li>default time zone </li>

+								<li>SIP settings </li>

+								<li>Reminder minutes </li>

+							</ol>

+						</li>

+						<li>					

+							Language editor 

+							<ol>

+								<li>Add/remove/edit/search a key </li>

+								<li>Import/export of localization files </li>

+							</ol>

+						</li>

+						<li>					

+							LDAP: Add/remove/edit/search a record

+						</li>

+						<li>

+							Backup

+							<ol>

+								<li>System import </li>

+								<li>System backup </li>

+								<li>TBD – need to add tests for command line admin here </li>

+							</ol> 

+						</li>

+						<li>

+							Servers: Add/remove/edit/search a server

+						</li>						

+					</ol>

+				</li>

+				<li>

+					<b>SIP integration tests</b> (should be tested with at least 3 attendees in the room; for restricted and interview rooms)

+					<ol>

+						<li>Call from the room to the external phone number </li>

+						<li>Call from external phone number to the room </li>

+						<li>Call from the software phone to the room </li>

+						<li>Call from the software phone with video to the room </li>

+					</ol>

+				</li>

+				<li>

+					<b>Network testing script</b>

+				</li>

+				<li>

+					<b>Site integration tests</b>

+					<ol>

+						<li>Enter OpenMeetings room from Mooddle site </li>

+						<li>Check that recordings link are shown on the Moodle site </li>

+						<li>Enter OpenMeetings room from Joomla site </li>

+						<li>Check that recordings link are shown on the Joomla site </li>

+						<li>Enter OpenMeetings room from Drupal site </li>

+						<li>Check that recordings link are shown on the Drupal site </li>

+					</ol>

+				</li>

+			</ol>

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/MoodlePlugin.xml b/xdocs/MoodlePlugin.xml
new file mode 100644
index 0000000..d17375e
--- /dev/null
+++ b/xdocs/MoodlePlugin.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Moodle Plugin</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Moodle Plugin for OpenMeetings">

+			<p>

+				You can get the latest Version of the Plugin for Moodle from the

+				<a href="downloads.html">downloads</a>

+				.

+				<br/>

+				You can find the OpenMeetings Plugin also in the

+				<a href="http://moodle.org/plugins/view.php?plugin=mod_openmeetings"

+					target="_BLANK" rel="nofollow">Moodle Plugin database</a>

+				.

+				<br/>

+				A demo version of the Moodle plugin is available at

+				<a href="http://moodle.openmeetings.de" target="_BLANK" rel="nofollow">moodle.openmeetings.de

+				</a>

+				.

+			</p>

+		</section>

+		

+		<section name="Installation of the Moodle Plugin for Apache OpenMeetings">

+			<p>

+				You simply download the ZIP or TAR package and unzip it to Moodle's "mod" directory.<br/>

+				Eventually you need to unzip the package into a folder called "openmeetings".

+				The folder structure is:<br/>

+				$MOODLE_HOME/mod/openmeetings/*.php

+				<br />

+				Then you visit the admin interface of Moodle, for example

+				<a href="http://$your_moodle_host/$MOODLE_WWW_ROOT/admin" target="_BLANK"

+					rel="nofollow">http://$your_moodle_host/$MOODLE_WWW_ROOT/admin</a> 

+					<br/>

+				Moodle will detect that there is a new plugin and will show the plugin installation screen:

+			</p>

+			<a class="fancybox-buttons" href="images/moodle_install_plugin.png">

+				<img src="images/moodle_install_plugin.png" alt="" width="430"

+					height="220" />

+			</a>

+			<p>

+				After you have clicked on "Update database" Moodle will show you the plugin configuration screen:

+			</p>

+			<a class="fancybox-buttons" href="images/moodle_configure_plugin.png">

+				<img src="images/moodle_configure_plugin.png" alt="" width="500"

+					height="300" />

+			</a>

+		</section>

+		

+		<section name="Adding a new conference room to a Moodle course">

+			

+			<p>

+				After installation of the plugin you can go to the course pages in Moodle and turn editing on.

+				Then you choose the activity "OpenMeetings", Moodle will then show you the conference room 

+				configuration with all the options:

+			</p>

+			<a class="fancybox-buttons" href="images/moodle_add_activity_plugin.png">

+				<img src="images/moodle_add_activity_plugin.png" alt="" width="430"

+					height="360" />

+			</a>

+		</section>

+		

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/MySQLConfig.xml b/xdocs/MySQLConfig.xml
new file mode 100644
index 0000000..32cbb43
--- /dev/null
+++ b/xdocs/MySQLConfig.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>MySQL Configuration</title>

+		<author email="sebawagner@apache.org">

+			Apache OpenMeetings Documentation Team

+		</author>

+	</properties>

+

+	<body>

+		<section name="MySQL Configuration">

+

+			<subsection name="Before you start">

+				<ul>

+					<li>Make sure that you have set utf8 as

+						default/server-character-set in your MySQL configuration (my.cnf)

+						before you start the installation process of OpenMeetings!

+					</li>

+					<li>

+						make sure MySQL is listening on TCP/IP connections!

+						<br />

+						To verify if MySQL connection is working: OpenMeetings will

+						automatically create all tables in the database and all tables

+						should have utf8 as encoding/collation!

+					</li>

+					<li>If you encounter issues, you can drop the db again and delete

+						the file $red5/webapps/openmeetings/conf/install.xml and then run

+						the web based installer again

+					</li>

+				</ul>

+			</subsection>

+

+			<subsection name="Steps todo">

+				<ul>

+					<li>

+						You need to download the JConnector from mysql

+						<a href="http://www.mysql.com/downloads/connector/j/" target="_BLANK"

+							rel="nofollow">http://www.mysql.com/downloads/connector/j/</a>

+						and place it into:

+						<tt>$red5/webapps/openmeetings/WEB-INF/lib/</tt>

+					</li>

+					<li>

+						Rename:

+						<br />

+						$red5/webapps/openmeetings/WEB-INF/classes/META-INF/mysql_persistence.xml

+						<br />

+						to

+						<br />

+						$red5/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

+					</li>

+					<li>

+						Prepare Database Settings - go to

+						openmeetings_version_no_xx/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

+						<br />

+						Alter config values in persistence.xml DB_HOST USER_NAME USER_PASS

+						with your values

+					</li>

+					<li>

+						Run red5-service and goto the web-based installer:

+						http://localhost:5080/openmeetings/install

+					</li>

+				</ul>

+			</subsection>

+

+			<subsection name="MySQL Sample Configuration">

+				<p>

+					There is a sample configuration for MySQL that ships with

+					every

+					release in:

+					<br />

+					/webapps/openmeetings/WEB-INF/classes/META-INF/mysql_persistence.xml

+				</p>

+			</subsection>

+

+

+		</section>

+

+	</body>

+

+</document>

diff --git a/xdocs/Navigation.xml b/xdocs/Navigation.xml
new file mode 100644
index 0000000..1fa5fa7
--- /dev/null
+++ b/xdocs/Navigation.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Change main navigation</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Changing the main navigation">

+

+			<p>To customize the main menu (for example remove entries or changing

+				the order) you can edit the tables:  </p>

+			<ul>

+				<li>navimain </li>

+				<li>naviglobal </li>

+				<li>navisub (currently not in use) </li>

+			</ul>

+			<p></p>

+			<p>

+				You need to make sure that you

+				<strong>restart red5 after doing changes to the database</strong>

+				, there is a database cache, so changes might not take affect as

+				long as you did not restart.

+			</p>

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/OpenOfficeConverter.xml b/xdocs/OpenOfficeConverter.xml
new file mode 100644
index 0000000..f762870
--- /dev/null
+++ b/xdocs/OpenOfficeConverter.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>OpenOffice converter for OpenMeetings</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="OpenOffice Service for OpenMeetings">

+

+			<p>

+				To import .doc, .docx, .odp, .xls, .xlsx, .ppt, .pptx, ... [ all

+				files that you can open with OpenOffice ]

+				to OpenMeetings and use

+				them in the whiteboard you need OpenOffice or LibreOffice

+				installed

+				the machine that runs OpenMeetings.

+			</p>

+			<p>

+				<i>Since Version 2.0 of OpenMeetings starting of

+					OpenOffice/LibreOffice as service in not required, JODConverter

+					will automatically start and shut down the service!

+				</i>

+			</p>

+			<p>

+				Installation of JODConverter means: You donwload the ZIP binary from

+				their

+				<a href="http://code.google.com/p/jodconverter/" target="_BLANK"

+					rel="nofollow">website</a>

+				and then configure in Apache OpenMeetings Administration >

+				Configuration (or during installation) the config key

+				<tt>jod.path</tt>

+				to point to the "lib" directory of the unpacked JODConverter binary.

+				There is no restart of OpenMeetings required.

+			</p>

+			<p>You should use an OpenOffice version greater 3</p>

+

+		</section>

+

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/OracleConfig.xml b/xdocs/OracleConfig.xml
new file mode 100644
index 0000000..8a4b0ad
--- /dev/null
+++ b/xdocs/OracleConfig.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>IBM DB2 Configuration</title>

+		<author email="sebawagner@apache.org">

+			Apache OpenMeetings Documentation Team

+		</author>

+	</properties>

+

+	<body>

+		<section name="IBM DB2 Configuration">

+

+			<subsection name="Before you start">

+				<ul>

+					<li>Download the latest JDBC Driver from Oracle for your database

+						version. Place those JARs into

+						$Red5/webapps/openmeetings/WEB-INF/lib

+					</li>

+					<li>If you encounter issues, you can drop the db again and delete

+						the file $red5/webapps/openmeetings/conf/install.xml and then run

+						the web based installer again

+					</li>

+				</ul>

+			</subsection>

+

+			<subsection name="Steps todo">

+				<ul>

+					<li>

+						Rename:

+						<br />

+						$red5/webapps/openmeetings/WEB-INF/classes/META-INF/oracle_persistence.xml

+						<br />

+						to

+						<br />

+						$red5/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

+					</li>

+					<li>

+						Prepare Database Settings - go to

+						openmeetings_version_no_xx/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

+						<br />

+						Alter config values in persistence.xml connectionURL, username and

+						password with your values

+					</li>

+					<li>

+						Run red5-service and goto the web-based installer:

+						http://localhost:5080/openmeetings/install

+					</li>

+				</ul>

+			</subsection>

+

+			<subsection name="Oracle Sample Configuration">

+				<p>

+					There is a sample configuration for Oracle that ships with

+					every release in:

+					<br />

+					/webapps/openmeetings/WEB-INF/classes/META-INF/oracle_persistence.xml

+				</p>

+			</subsection>

+

+

+		</section>

+

+	</body>

+

+</document>

diff --git a/xdocs/PortSettings.xml b/xdocs/PortSettings.xml
new file mode 100644
index 0000000..07717ae
--- /dev/null
+++ b/xdocs/PortSettings.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Port settings</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Default Configuration">

+

+			<ul>

+				<li>Port 5080: HTTP (For example for file upload and download) </li>

+				<li>Port 1935: RTMP (Flash Stream and Remoting/RPC) </li>

+				<li>Port 8088: RTMP over HTTP-Tunneling (rtmpT) </li>

+			</ul>

+			<p>Additionally red5 uses some ports internally. However those ports

+				are not in use by OpenMeetings by default.

+			</p>

+

+		</section>

+

+		<section name="Configure alternative ports">

+

+			<p>You need to change two files: </p>

+			<ul>

+				<li>Server-Side configuration: $RED5_HOME/conf/red5.properties, you

+					need to restart the red5-service so that changes are online.

+				</li>

+				<li>Client-Side configuration:

+					$RED5_HOME/webapps/openmeetings/public/config.xml, you need to clear your

+					browser cache after changing the file.

+				</li>

+				<li>

+					<blockquote>Every server side configuration has a client side

+						representative

+					</blockquote>

+				</li>

+			</ul>

+			<p></p>

+			<table>

+				<tr>

+					<th style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> Config-Name </th>

+					<th style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> Default-value </th>

+					<th style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> Name in red5.properties </th>

+					<th style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> Name in public/config.xml </th>

+				</tr>

+				<tr>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> HTTP </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> 5080 </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> http.port </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> red5httpport </td>

+				</tr>

+				<tr>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> RTMP </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> 1935 </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> rtmp.port </td>

+					<td style="border: 1px solid rgb(204, 204, 204); padding: 5px;"> rtmpport </td>

+				</tr>

+			</table>

+

+		</section>

+

+		<section name="Preventing Firewall issues">

+

+			<p>A common way of bypassing the firewall is to change HTTP port to

+				80 and rtmpT to 443.

+			</p>

+			<p>A short description about the connection mechanism: The

+				application first tries connecting to rtmp 3 times, because rtmp is

+				the protocol that is less performance hungry. If that fails the

+				application will fallback to rtmpT.

+			</p>

+			<p>Most firewalls do allow traffic on port 443 and they normally do

+				not analyse the packets, because 443 is normally SSL encrypted, so

+				the firewall should not be able to read the packets at all.

+			</p>

+

+		</section>

+

+		<section name="OpenMeetings over SSL">

+

+			<p>

+				You can run OpenMeetings completely over SSL. See

+				<a href="RTMPSAndHTTPS.html">RTMPSAndHTTPS</a>

+				.

+			</p>

+

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/PostgresConfig.xml b/xdocs/PostgresConfig.xml
new file mode 100644
index 0000000..c1fd27c
--- /dev/null
+++ b/xdocs/PostgresConfig.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>PostgreSQL Configuration</title>

+		<author email="sebawagner@apache.org">

+			Apache OpenMeetings Documentation Team

+		</author>

+	</properties>

+

+	<body>

+		<section name="PostgreSQL Configuration">

+

+			<subsection name="Before you start">

+				<ul>

+					<li>Make sure that you have set utf8 as default/server-character-set 

+					</li>

+					<li>

+						make sure PostgreSQL is listening on TCP/IP connections!

+						<br />

+						To verify if PostgreSQL connection is working: OpenMeetings will

+						automatically create all tables in the database and all tables

+						should have utf8 as encoding/collation!

+					</li>

+					<li>If you encounter issues, you can drop the db again and delete

+						the file $red5/webapps/openmeetings/conf/install.xml and then run

+						the web based installer again

+					</li>

+					<li><span style="font-size: larger; color: blue;">IMPORTANT</span> According to

+						<a href="http://markmail.org/message/opymlab2e6wygb7p">this</a> thread you need to ensure:<br/>

+						<tt>standard_conforming_strings</tt> is set to <tt><b>on</b></tt> and <br/>

+						<tt>escape_string_warning</tt> is set to <tt><b>off</b></tt>

+					</li>

+				</ul>

+			</subsection>

+

+			<subsection name="Steps todo">

+				<ul>

+					<li>

+						Rename:

+						<br />

+						$red5/webapps/openmeetings/WEB-INF/classes/META-INF/postgresql_persistence.xml

+						<br />

+						to

+						<br />

+						$red5/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

+					</li>

+					<li>

+						Prepare Database Settings - go to

+						openmeetings_version_no_xx/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

+						<br />

+						Alter config values in persistence.xml DB_HOST USER_NAME USER_PASS

+						with your values

+					</li>

+					<li>

+						Run red5-service and goto the web-based installer:

+						http://localhost:5080/openmeetings/install

+					</li>

+				</ul>

+			</subsection>

+

+			<subsection name="PostgreSQL Sample Configuration">

+				<p>

+					There is a sample configuration for PostgreSQL that ships with

+					every

+					release in:

+					<br />

+					/webapps/openmeetings/WEB-INF/classes/META-INF/postgresql_persistence.xml

+				</p>

+			</subsection>

+

+

+		</section>

+

+	</body>

+

+</document>

diff --git a/xdocs/RTMPSAndHTTPS.xml b/xdocs/RTMPSAndHTTPS.xml
new file mode 100644
index 0000000..9d613f9
--- /dev/null
+++ b/xdocs/RTMPSAndHTTPS.xml
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Using OpenMeetings with RTMPS and HTTPS</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Using OpenMeetings with RTMPS and HTTPS">

+

+			<p>There are 3 ways the client communicates with the server: </p>

+			<ul>

+				<li>The flash-client uses RTMP protocol to transfer Audio/Video and

+					to send and receive the user data (login et cetera) to the server

+					and back

+				</li>

+				<li>The browser uses HTTP protocol to load the SWF and to upload and

+					download the files (documents, pdfs, images) to the server and

+					back.

+				</li>

+				<li>The screensharing client uses RTMP protocol to transfer screen

+					data and remote control to the server and back

+				</li>

+			</ul>

+

+		</section>

+

+		<section name="Prerequisites">

+

+			<ul>

+				<li>You need OpenMeetings 1.9.x for this, OpenMeetings 1.8.x does

+					not

+					have those options.

+				</li>

+				<li>Install OpenMeetings according to the install instructions and

+					check that it runs without problems

+				</li>

+				<li>Rename the existing keystore file red5/conf/keystore to

+					keystore.bak

+				</li>

+			</ul>

+

+		</section>

+

+		<section name="Configuring RTMPS for the Flash Client">

+

+			<ol>

+				<li>

+					Create a new keystore and key, use the same password for both:<br/>

+					(copied from

+					<a

+						href="http://trac.red5.org/wiki/Documentation/Tutorials/Red5DeveloperTips/SSLTLS%29:"

+						rel="nofollow">http://trac.red5.org/wiki/Documentation/Tutorials/Red5DeveloperTips/SSLTLS):</a>

+					<div class="xmlcode">

+						keytool -keysize 2048 -genkey -alias red5 -keyalg RSA -keystore red5/conf/keystore<br/>

+						Enter keystore password:<br/>

+						Re-enter new password:<br/>

+						What is your first and last name?<br/>

+						[Unknown]:  &lt;your hostname, e.g demo.openmeetings.de&gt;<br/>

+						What is the name of your organizational unit?<br/>

+						[Unknown]:  Dev<br/>

+						What is the name of your organization?<br/>

+						[Unknown]:  OpenMeetings<br/>

+						What is the name of your City or Locality?<br/>

+						[Unknown]:  Henderson<br/>

+						What is the name of your State or Province?<br/>

+						[Unknown]:  Nevada<br/>

+						What is the two-letter country code for this unit?<br/>

+						[Unknown]:  US<br/>

+						Is CN=demo.openmeetings.de, OU=Dev, O=OpenMeetings, L=Henderson, ST=Nevada, C=US correct?<br/>

+						[no]:  yes<br/>

+						Enter key password for &lt;red5&gt;<br/>

+					</div>

+				</li>

+		

+				<li>Generate a CSR: keytool -certreq -keyalg RSA -alias red5 -file

+					red5.csr -keystore red5/conf/keystore

+				</li>

+				<li>Submit CSR to your CA of choice and receive a signed certificate

+				</li>

+				<li>Import your chosen CA's root certificate into the keystore (may

+					need to download it from their site - make sure to get the root CA and

+					not the intermediate one): keytool -import -alias root -keystore

+					red5/conf/keystore

+					-trustcacerts -file root.crt (note: you may receive a warning that

+					the certificate already exists in the system wide keystore - import

+					anyway)

+				</li>

+				<li>Import the intermediate certificate(s) you normally receive with

+					the certificate:

+					keytool -import -alias intermed -keystore red5/conf/keystore -trustcacerts

+					-file intermediate.crt

+				</li>

+				<li>Import the certificate you received: keytool -import -alias red5

+					-keystore red5/conf/keystore -trustcacerts -file

+					demo.openmeetings.de.crt

+				</li>

+                <li>

+                Create additional certificate as described above.

+                Add this certificate to the following keystores: <tt>red5/conf/keystore.screen</tt> and <tt>red5/conf/keystore</tt>.

+                </li>

+			</ol>

+

+		</section>

+		

+		<section name="Set up RTMPS">

+		

+		  <ol>

+		      <li>

+		      Uncomment <tt>&lt;!-- RTMPS --&gt;</tt> section in <tt>red5/conf/red5-core.xml</tt>

+		      </li>

+

+				<li>

+					Edit <tt>red5/conf/red5.properties</tt> and set

+					<tt>rtmps.port=5443</tt>

+					and

+					<tt>rtmps.keystorepass=password</tt>

+					(password = password you set on your new

+					keystore)

+				</li>

+			

+				<li>

+					Edit red5/webapps/openmeetings/public/config.xml and set

+					<tt>&lt;rtmpsslport&gt;5443&lt;/rtmpsslport&gt;</tt>

+					,

+					<tt>&lt;useSSL&gt;yes&lt;/useSSL&gt;</tt>

+					and

+					<tt>&lt;proxyType&gt;best&lt;/proxyType&gt;</tt>

+				</li>

+

+				<li>Restart red5 and try to connect - your connection should now be

+					made via RTMPS (close port 1935 to be sure)

+				</li>   

+					  

+		  </ol>

+		

+		</section>

+

+		<section name="SSL for the web interface">

+	

+			<p>If you want to use SSL for the web interface in addition to RTMPS,

+				you need to make some further modifications. This is mainly to secure

+				the server against MITM attacks, additionally some other features

+				like file uploads also use a plain HTTP connection if this is not

+				done. The following instructions assume that you have already set up

+				RTMPS successfully. </p>

+			<ol>

+				<li>

+					Edit <tt>red5/conf/jee-container.xml</tt> file:<br/>

+					Comment <tt>Tomcat without SSL enabled</tt> section<br/>

+					UNComment <tt>Tomcat with SSL enabled</tt> section

+				</li>

+				<li>

+					Edit red5/webapps/openmeetings/public/config.xml and set

+					<tt>&lt;protocol&gt;https&lt;/protocol&gt;</tt>

+				</li>

+				<li>

+					Edit red5/webapps/openmeetings/public/config.xml and set

+					<tt>red5httpport</tt> to <tt>https</tt> port

+				</li>

+				<li>In webapps/openmeetings/WEB-INF/conf/axis2.xml add (below the existing http transportReceiver (around line 225))

+					<div class="xmlcode">&lt;transportReceiver name="https" class="org.apache.axis2.transport.http.AxisServletListener"&gt;<br/>

+    &#160;&#160;&#160;&#160;&lt;parameter name="port"&gt;443&lt;/parameter&gt;<br/>

+&lt;/transportReceiver&gt;</div>

+				</li>

+				<li>Edit red5/conf/red5.properties and set <tt>https.port=443</tt> </li>

+				<li>

+					Restart red5 and try to connect to

+					<a href="https://your.server" rel="nofollow">https://your.server</a>

+					- you should be redirected to the OpenMeetings

+					app and all access should be via HTTPS or RTMPS (close port 5080 to

+					be sure).

+				</li>

+            </ol>

+            

+	   </section>

+

+		<section name="Credits">

+	

+			<p>Credits goto: Nexus and Holger Rabbach for their help and

+				contribution and configuration documention! </p>

+	

+		</section>

+	

+

+	</body>

+

+</document>

+

diff --git a/xdocs/RecommendedHardwareList.xml b/xdocs/RecommendedHardwareList.xml
new file mode 100644
index 0000000..c5187e0
--- /dev/null
+++ b/xdocs/RecommendedHardwareList.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Home</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+		<section name="Cameras">

+			We recommend the following cameras:

+			<ul>

+				<li>Logitech QuickCam Sphere AF</li>

+				<li>Logitech QuickCam E3500</li>

+				<li>Samsung Pleomax PWC-7100</li>

+				<li>Genius Look320S</li>

+				<li>Integrated Lenovo 3000 n100</li>

+				<li>Skypemate WC-103M</li>

+			</ul>

+		</section>

+		<section name="Headsets">

+			The recommended headset model (i.e. headphones with microphone) is:

+			<ul>

+				<li>Logitech Clear Chat Style</li>

+			</ul>

+			Also the following headsets showed good results:

+			<ul>

+				<li>ClearChat PC Wireless (helps to suppress echo)</li>

+				<li>Logitech USB Desktop Microphone - Mikrophon (good sound, but bad echo cancellation)</li>

+			</ul>

+			<b>Note for Mac OS X users:</b> The build-in microphone normally has quite good quality and echo cancellation, so Mac OS X users often do not even require a headset.

+		</section>

+		<section name="Speakerphones">

+			When several people participate from the same location, we recommend using the following speakerphone models:

+			<ul>

+				<li>Phoenix Audio Quattro2 USB Speakerphone MT301 (a single microphone + speakers can be used even with 20-30 people sitting in a room)</li>

+				<li>Phoenix DUET Executive</li>

+				<li>Jabra SPEAK410</li>

+				<li>Plantronics MCD 100M</li>

+				<li>Integrated Lenovo 3000 n100</li>

+				<li>Konftel 300</li>

+			</ul>

+		</section>

+	</body>

+</document>

diff --git a/xdocs/RedminePlugin.xml b/xdocs/RedminePlugin.xml
new file mode 100644
index 0000000..de773ff
--- /dev/null
+++ b/xdocs/RedminePlugin.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+	<properties>

+		<title>Redmine Plugin</title>

+		<author email="solomax@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+	<body>

+		<section name="OpenMeetings Plugin for Redmine">

+			<p>

+				Current Development Snapshots for testing can be created from the sources:

+				<a href="https://svn.codespot.com/a/apache-extras.org/openmeetings-redmine-plugin/trunk">here</a>.<br/>

+				The page at redmine site is <a href="http://www.redmine.org/plugins/redmine-openmeetings">here</a>

+			</p>			

+		</section>

+		<section name="Features">

+			<p>TBD</p>

+		</section>

+	</body>

+</document>

diff --git a/xdocs/ReleaseGuide.xml b/xdocs/ReleaseGuide.xml
new file mode 100644
index 0000000..c1b12fc
--- /dev/null
+++ b/xdocs/ReleaseGuide.xml
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Release Guide</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="How to Build a Release of OpenMeetings">

+

+			<subsection name="Required tools">

+

+				<div>

+					<p>To build a binary release of OpenMeetings you need: </p>

+					<ul>

+						<li>Sun JDK6</li>

+						<li>Apache ANT (minimum) 1.8.3</li>

+						<li>

+							SVN Command line client (Subversion 1.7 required!)

+							<a href="http://subversion.apache.org/packages.html" target="_BLANK"

+								rel="nofollow">http://subversion.apache.org/packages.html</a>

+						</li>

+						<li>A text editor</li>

+						<li>You need to be online! The build process actively downloads

+							needed libraries and dependencies.

+						</li>

+					</ul>

+				</div>

+

+			</subsection>

+

+			<subsection name="Prepare your Apache ID">

+

+				<div>

+					Every release package must be signed with a PGP/GPG key.

+					<br />

+					So if you want to release a package your Apache Id must be

+					connected with a PGP key!

+					<br />

+					<br />

+					You might follow:

+					<br />

+					<a

+						href="http://www.apache.org/dev/new-committers-guide.html#security-and-pgp"

+						target="_blank">http://www.apache.org/dev/new-committers-guide.html#security-and-pgp

+					</a>

+					<br />

+					<br />

+					In short:

+					<br />

+					Create PGP key pairs (private + public) (and I recommend creating a

+					Revoke Cert)

+					<br />

+					Upload the public key (either bei using the PGP Tool that you use

+					to create the key) or by using the web form to:

+					<a href="http://pgp.mit.edu/" target="_blank" rel="nofollow">http://pgp.mit.edu/

+					</a>

+					<br />

+					Add the fingerprint string (something like "BF13 CF11 F9C9 0CBE

+					4413 09AB 0055 16BF 93A3 0395") to your profile at

+					<a href="http://id.apche-org" target="_blank" rel="nofollow">id.apche-org

+					</a>

+					<br />

+					Wait for 6-8 hours, the server will search for a public key based

+					on your fingerprint, if success it will create a file with your

+					name at:

+					<br />

+					<a href="https://people.apache.org/keys/committer/">https://people.apache.org/keys/committer/</a>

+					<br />

+					<br />

+					If that is "success" then add your key to:

+					<br />

+					<a

+						href="https://svn.apache.org/repos/asf/openmeetings/project/KEYS">https://svn.apache.org/repos/asf/openmeetings/project/KEYS

+					</a>

+					<br />

+					and follow the instructions in the file.

+					<br />

+				</div>

+

+			</subsection>

+

+			<subsection name="Step1 - Prepare files">

+				<p>

+					Check that all files:

+					<br />

+					LICENSE, NOTICE, DISCLAIMER, CHANGELOG, README

+					<br />

+					are up to date and refer to the right version.

+				</p>

+

+				<p>

+					Create a TAG of the SVN tree that you would like to release<br/>

+					Example:

+				</p>

+				

+				<div class="xmlcode">

+					svn copy -r1453158 https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp \<br/>

+						https://svn.apache.org/repos/asf/openmeetings/tags/2.1RC1 \<br/>

+						-m "Release candidate 1"

+				</div>

+				

+

+				<p>Get the source from your TAG: </p>

+				<div class="xmlcode">

+					svn checkout https://svn.apache.org/repos/asf/openmeetings/tags/$BRANCHORTAG/<br />

+					$BRANCHORTAG should be replaced with your new TAG

+				</div>

+

+				<p>Edit the file build.properties change</p>

+				<div class="xmlcode">

+					project.status=SNAPSHOT

+				</div>

+				<p>to</p>

+				<div class="xmlcode">

+					project.status=RELEASE

+				</div>

+				<p>Run the command: </p>

+				<div class="xmlcode">

+					ant dist-release

+				</div>

+				<p>Test building the source on windows and OSx or Linux</p>

+				<p>Test running the binary's</p>

+				<p>Create MD5 checksums</p>

+				<div class="xmlcode">

+					#On OSX you might use this command to make a MD5 checksum and store it to a file<br />

+					md5 -r apache-openmeetings-XXX-src.zip >apache-openmeetings-XXX-src.zip.md5

+				</div>

+				<div class="xmlcode">

+					#To create MD5 hashes On Ubuntu:<br />

+					for f in `ls -1 *.tar.gz *.zip`; do md5sum $f > $f.md5; done<br/>

+					<br/>

+					#To check MD5 hashes On Ubuntu:<br />

+					for f in `ls -1 *.tar.gz *.zip`; do md5sum -c $f.md5; done

+				</div>

+				<p>

+					Create signatures with the your KEY for every file, the KEY must be available at:<br />

+					<a href="http://www.apache.org/dist/incubator/openmeetings/KEYS">

+						http://www.apache.org/dist/incubator/openmeetings/KEYS

+					</a>

+				</p>

+				<div class="xmlcode">

+					#To create signatures On Ubuntu:<br />

+					for f in `ls -1 *.tar.gz *.zip`; do gpg --armor --output $f.asc --detach-sig $f; done<br/>

+					<br/>

+					#To check signatures On Ubuntu:<br />

+					for f in `ls -1 *.tar.gz *.zip`; do gpg --verify $f.asc; done

+				</div>

+				

+				<p>

+					Commit artifacts you have created with KEYS file to the

+					<tt>https://dist.apache.org/repos/dist/dev/openmeetings/</tt>

+					Proposed file structure for "Release Candidate 1" of 2.1 will be:

+				</p>

+				<div class="xmlcode">

+					2.1<br />

+					2.1/rc1<br />

+					2.1/rc1/src<br />

+					2.1/rc1/src/apache-openmeetings-2.1.0-src.zip<br />

+					2.1/rc1/src/apache-openmeetings-2.1.0-src.tar.gz<br />

+					2.1/rc1/src/apache-openmeetings-2.1.0-src.zip.md5<br />

+					2.1/rc1/src/apache-openmeetings-2.1.0-src.zip.asc<br />

+					2.1/rc1/src/apache-openmeetings-2.1.0-src.tar.gz.md5<br />

+					2.1/rc1/src/apache-openmeetings-2.1.0-src.tar.gz.asc<br />

+					2.1/rc1/bin<br />

+					2.1/rc1/bin/apache-openmeetings-2.1.0.zip<br />

+					2.1/rc1/bin/apache-openmeetings-2.1.0.tar.gz<br />

+					2.1/rc1/bin/apache-openmeetings-2.1.0.zip.md5<br />

+					2.1/rc1/bin/apache-openmeetings-2.1.0.zip.asc<br />

+					2.1/rc1/bin/apache-openmeetings-2.1.0.tar.gz.md5<br />

+					2.1/rc1/bin/apache-openmeetings-2.1.0.tar.gz.asc<br />

+					2.1/rc1/CHANGELOG<br />

+					2.1/rc1/KEYS<br />

+				</div>

+			</subsection>

+

+			<subsection name="Step2 - VOTE and RESULT emails">

+				<p>

+					Send a "VOTE" to the developer mailing list including links to release artefacts.<br />

+					A VOTE always contains two parts:<br />

+					Send an email to the developer mailing list with the subject line:<br />

+					[VOTE] Apache OpenMeetings x.xx release<br />

+					An example for such an email:

+					<a href="http://s.apache.org/vote-2.1.0RC1">example Vote email</a>

+					<a href="http://s.apache.org/vote-2.0.0RC4">example Vote email (Incubator)</a>

+					<br />

+					Forward (Not CC) this Vote email to: private@openmeetings.apache.org<br />

+					<br />

+					After the vote is over, send a "RESULT" email to the list with the subject line:<br />

+					[RESULT][VOTE] Apache OpenMeetings x.xx release<br />

+					An example for such an email:

+					<a

+						href="http://mail-archives.apache.org/mod_mbox/incubator-openmeetings-dev/201207.mbox/%3CCACeMiA-ibo6fGCbnLjJX9H5H2kFGDVJRMfxPyMtzWzCWNi%2BpOg%40mail.gmail.com%3E">example Result email</a>

+					<br />

+					Forward (Not CC) this RESULT VOTE email to: private@openmeetings.apache.org<br />

+					<br />

+					Votes on whether a package is ready to be released use majority approval -- i.e., at 

+					least three PMC members must vote affirmatively for release, and there must be more 

+					positive than negative votes. Releases may not be vetoed. Before voting +1 PMC members

+					are required to download the signed source code package, compile it as provided, and 

+					test the resulting executable on their own platform, along with also verifying that 

+					the package meets the requirements of the ASF policy on releases.

+				</p>

+			</subsection>

+

+			<subsection name="Step3 - Distribute and announce">

+				<p>If VOTEs positive: Upload the release </p>

+				<div class="xmlcode">

+					svn mv https://dist.apache.org/repos/dist/dev/openmeetings/2.1/rc3 \<br/>

+						https://dist.apache.org/repos/dist/release/openmeetings/2.1 \<br/>

+						-m "RC3 is released as 2.1"

+				</div>

+				<p>

+					Wait 24 hours (until all Apache mirrors have synced the packages)

+					and send an announcement to the mailing list + blog and any other

+					channel.

+				</p>

+				<p>

+					Email announcements should have the subject line:

+					<br />

+					[ANNOUNCE] Apache OpenMeetings x.xx released

+				</p>

+				<p>

+					Add a section to <a href="downloads.html">downloads</a> website.<br />

+					Make sure that the binary packages are linked using the mirror URL as base path (

+					<b>not</b> http://www.apache.org/dist):<br />

+					Mirror URL: 

+					<a href="http://www.apache.org/dyn/closer.cgi/openmeetings/">http://www.apache.org/dyn/closer.cgi/openmeetings/</a>

+				</p>

+				<p>

+					Release candidates should be deleted from <tt>https://dist.apache.org/repos/dist/dev/openmeetings/</tt><br/>

+					Old releases should be deleted from <tt>https://dist.apache.org/repos/dist/release/openmeetings/</tt>

+				</p>

+			</subsection>

+

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/RestAPISample.xml b/xdocs/RestAPISample.xml
new file mode 100644
index 0000000..ea79010
--- /dev/null
+++ b/xdocs/RestAPISample.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Home</title>

+		<author email="sebawagner@apache.org">

+			Sebastian Wagner

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Introduction">

+

+			<p> For a detailed instruction which services, methods and params are available see the list in the SoapMethods. ALL methods that are implemented for the SOAP API are also available via REST. 

+			</p>

+

+		</section>

+		

+		<section name="How to invoke Services via REST">

+

+			<p>For example for the method getSession in the UserService, you would use this URL via REST:

+			</p>

+			<p>Sample URL: </p><a href="http://demo.openmeetings.de/openmeetings/services/UserService/getSession">http://demo.openmeetings.de/openmeetings/services/UserService/getSession</a>

+			<p>Result: </p>

+			<div class="xmlcode">

+				&lt;ns:getSessionResponse/&gt;<br/>

+				&lt;ns:return type="org.apache.openmeetings.hibernate.beans.basic.Sessiondata"/&gt;<br/>

+				<div style="margin-left:20px">

+					&lt;ax219:id&#62;156971&lt;/ax219:id/&gt;<br/>

+					&lt;ax219:language_id xsi:nil="true"//&gt;<br/>

+					&lt;ax219:organization_id xsi:nil="true"//&gt;<br/>

+					&lt;ax219:refresh_time&#62;2011-07-03T14:40:44.000Z&lt;/ax219:refresh_time/&gt;<br/>

+					&lt;ax219:sessionXml xsi:nil="true"//&gt;<br/>

+					&lt;ax219:session_id&#62;26584705202d7c1de6cc8e7e28890e3d&lt;/ax219:session_id/&gt;<br/>

+					&lt;ax219:starttermin_time&#62;2011-07-03T14:40:44.000Z&lt;/ax219:starttermin_time/&gt;<br/>

+					&lt;ax219:storePermanent xsi:nil="true"//&gt;<br/>

+					&lt;ax219:user_id xsi:nil="true"//&gt;<br/>

+				</div>

+				&lt;/ns:return/&gt;<br/>

+				&lt;/ns:getSessionResponse/&gt;<br/>

+			</div>

+			<p>To login a user the call to auth would be:</p>

+			<p>Sample URL: </p><a href="http://demo.openmeetings.de/openmeetings/services/UserService/loginUser?SID=26584705202d7c1de6cc8e7e28890e3d&#38;username=hans&#38;userpass=test">http://demo.openmeetings.de/openmeetings/services/UserService/loginUser?SID=26584705202d7c1de6cc8e7e28890e3d&#38;username=han&#38;userpass=test</a>

+			<p>Result: </p>

+			<div class="xmlcode">

+				&lt;ns:loginUserResponse/&gt;<br/>

+				<div style="margin-left:20px">

+				    &lt;ns:return&#62;-11&lt;/ns:return/&gt;<br/>

+				</div>

+				&lt;/ns:loginUserResponse/&gt;<br/>

+			</div>

+			<p>=> It does return -10, which is the error id cause we will not write down a SOAP login to our public server in this wiki. However the correct way to check this error would be to invoke the call to get the localized error message. So we invoke the method to get the error via REST:</p>

+			<p>Sample URL: </p><a href="http://demo.openmeetings.de/openmeetings/services/UserService/getErrorByCode?SID=26584705202d7c1de6cc8e7e28890e3d&#38;errorid=-10&#38;language_id=1">http://demo.openmeetings.de/openmeetings/services/UserService/getErrorByCode?SID=26584705202d7c1de6cc8e7e28890e3d&#38;errorid=-10&#38;language_id=1</a>

+			<p>Result:</p>

+			<div class="xmlcode">

+				&lt;ns:getErrorByCodeResponse/&gt;<br/>

+				&lt;ns:return type="org.apache.openmeetings.db.dto.basic.ErrorResult"/&gt;<br/>

+				<div style="margin-left:20px">

+					&lt;ax218:errmessage&#62;Username not found&lt;/ax218:errmessage/&gt;<br/>

+					&lt;ax218:errorId&#62;-10&lt;/ax218:errorId/&gt;<br/>

+					&lt;ax218:errortype&#62;Error&lt;/ax218:errortype/&gt;<br/>

+				</div>

+				&lt;/ns:return/&gt;<br/>

+				&lt;/ns:getErrorByCodeResponse/&gt;<br/>

+			</div>

+		</section>

+

+

+

+	</body>

+</document>
\ No newline at end of file
diff --git a/xdocs/RestrictedAccess.xml b/xdocs/RestrictedAccess.xml
new file mode 100644
index 0000000..f2f9ead
--- /dev/null
+++ b/xdocs/RestrictedAccess.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>How to restrict access to your Openmeetings server</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+	

+		<section name="Server Side">

+	

+			<p>You can protect your OpenMeetings instance from beeing accessed

+				from 3th party by using the file:

+			</p>

+			<p>$RED5_HOME/webapps/openmeetings/WEB-INF/red5-web.properties </p>

+			<p>Content: </p>

+			<div class="xmlcode">

+				webapp.virtualHosts=*,localhost, 127.0.0.1

+			</div>

+			Sample file:

+			<a

+				href="http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/red5-web.properties"

+				rel="nofollow">http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/red5-web.properties

+			</a>

+		</section>

+

+		<section name="Client Side">

+

+			<p>And you can restrict the access also for the client side: Every

+				Flash Plugin will check a file called "crossdomain.xml" before it

+				tries to access the server using rtmp/RPC. This file is located: </p>

+			<p>$RED5_HOME/webapps/root/crossdomain.xml </p>

+			<p>Content: </p>

+			<div class="xmlcode">

+				&lt;?xml version="1.0"?&gt;<br/>

+				&lt;cross-domain-policy&gt;<br/>

+				        &lt;site-control permitted-cross-domain-policies="all"/&gt;<br/>

+				        &lt;allow-access-from domain="localhost" to-ports="20-65535"/&gt;<br/>

+				        &lt;allow-access-from domain="*.local" to-ports="20-65535"/&gt;<br/>

+				&lt;/cross-domain-policy&gt;<br/>

+			</div>

+			

+            <p>

+				Sample file:

+				<a

+					href="http://code.google.com/p/red5/source/browse/java/server/trunk/webapps/root/crossdomain.xml"

+					rel="nofollow">http://code.google.com/p/red5/source/browse/java/server/trunk/webapps/root/crossdomain.xml

+				</a>

+			</p>

+				<p>

+					If you accessing your application behind an Apache Webservre (using

+					mod_proxy or mod_jk2) be careful to make the crossdomain.xml

+					accessible. Flash will always search for this file in the www-root

+					directory of every URL you connect to. You might use

+					<a href="https://addons.mozilla.org/de/firefox/addon/firebug/" rel="nofollow">FireBug

+					</a>

+					for example to lookup requests.

+				</p>

+

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/SakaiPlugin.xml b/xdocs/SakaiPlugin.xml
new file mode 100644
index 0000000..73439a5
--- /dev/null
+++ b/xdocs/SakaiPlugin.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Sakai Plugin</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Introduction">

+			<p>

+				In 2010,

+				<a rel="nofollow" href="http://www.samoo.es" target="_blank">Samoo company

+				</a>

+				has developed a plugin that integrates Sakai LMS and OpenMeetings

+				.

+			</p>

+			<p>

+				The plugin was developed for some Spanish Universities that use

+				Sakai and belongs to

+				<a rel="nofollow" target="_blank" 

+					href="https://confluence.sakaiproject.org/display/SPANISH/S2G+-+Spanish+Sakai+Group">"Spanish Sakai Universities"</a>

+				group:

+			</p>

+			<ul>

+				<li>

+					<a rel="nofollow" href="http://www.udl.es/" target="_blank">Universitat de Lleida </a>

+				</li>

+				<li>

+					<a rel="nofollow" href="http://www.upv.es/" target="_blank">Universidad Polit&#233;cnica de Valencia </a>

+				</li>

+				<li>

+					<a rel="nofollow" href="http://www.um.es/" target="_blank">Universidad de Murcia</a>

+				</li>

+				<li>

+					<a rel="nofollow" href="http://www.unavarra.es/" target="_blank">Universidad P&#250;blica de Navarra</a>

+				</li>

+				<li>

+					<a rel="nofollow" href="http://www.ucam.edu/" target="_blank">Universidad Cat&#243;lica San Antonio de Murcia

+					</a>

+				</li>

+			</ul>

+		</section>

+

+		<section name="Features">

+			<p>The plugin contains the following features: </p>

+			<ul>

+				<li>Create videoconference rooms through Sakai: </li>

+				<li>

+					<ol>

+						<li>Integrated with calendar </li>

+						<li>Integrated with announcements </li>

+						<li>Sends an email to all site participants </li>

+						<li>Rooms restricted to site groups </li>

+						<li>Configurable room type </li>

+					</ol>

+				</li>

+			</ul>

+			<p />

+			<ul>

+				<li>Future requirements </li>

+				<li>

+					<ol>

+						<li>Publish room recordings to students </li>

+						<li>Room reservation </li>

+					</ol>

+				</li>

+			</ul>

+		</section>

+

+		<section name="Source">

+			<p>

+				You can download and build the source code

+				<a rel="nofollow" target="_blank" 

+					href="https://source.sakaiproject.org/contrib/samoo/adobeconnectpro-openmeetings-integration/trunk/">here</a>

+			</p>

+		</section>

+

+		<section name="Installation and documentation">

+			<p>

+				The documentation resides in the

+				<a rel="nofollow" target="_blank" href="https://confluence.sakaiproject.org/display/OPENMTG/Home">Sakai confluence space</a>

+			</p>

+			<p>

+				Please contact the mailing list for further information. For

+				commercial support you can also contact

+				<a rel="nofollow" href="http://www.samoo.es" target="_blank">Samoo company</a>

+				or other companies from the list of

+				<a href="commercial-support.html">commercial support</a>

+				.

+			</p>

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/SoapRestAPI.xml b/xdocs/SoapRestAPI.xml
new file mode 100644
index 0000000..db9ba39
--- /dev/null
+++ b/xdocs/SoapRestAPI.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Home</title>

+		<author email="sebawagner@apache.org">

+			Sebastian Wagner

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Available WebServices">

+

+			<div>

+				<div>

+					<a href="UserService.html" target="_BLANK">

+						<b>UserService</b>

+					</a>

+					<br />

+					<div style="margin-left:20px">

+						<i>The Service contains methods to login and create hash to

+							directly enter

+							conference rooms, recordings or the application in

+							general

+						</i>

+					</div>

+				</div>

+				<div>

+					<a href="RoomService.html" target="_BLANK">

+						<b>RoomService</b>

+					</a>

+					<br />

+					<div style="margin-left:20px">

+						<i>RoomService contains methods to manipulate rooms and create

+							invitation hash

+						</i>

+					</div>

+				</div>

+				<div>

+					<a href="FileService.html" target="_BLANK">

+						<b>FileService</b>

+					</a>

+					<br />

+					<div style="margin-left:20px">

+						<i>Contains methods to import and upload files into the Files

+							section of the

+							conference room and the personal drive of any user

+						</i>

+					</div>

+				</div>

+				<div>

+					<a href="CalendarService.html" target="_BLANK">

+						<b>CalendarService</b>

+					</a>

+					<br />

+					<div style="margin-left:20px">

+						<i>CalendarService contains methods to create, edit delete

+							calendar meetings

+						</i>

+					</div>

+				</div>

+				<div>

+					<a href="JabberService.html" target="_BLANK">

+						<b>JabberService</b>

+					</a>

+					<br />

+					<div style="margin-left:20px">

+						<i>The Service contains methods necessary for OM to Jabber integration.

+						All methods doesn't require admin privileges to get called.

+						</i>

+					</div>

+				</div>

+				<div>

+					<a href="ServerService.html" target="_BLANK">

+						<b>ServerService</b>

+					</a>

+					<br />

+					<div style="margin-left:20px">

+						<i>The Service contains methods necessary for OM to manage servers 

+						participating in cluster.

+						All methods does require admin privileges to get called.

+						</i>

+					</div>

+				</div>

+			</div>

+

+		</section>

+

+

+	</body>

+</document>
\ No newline at end of file
diff --git a/xdocs/SugarCRMPlugin.xml b/xdocs/SugarCRMPlugin.xml
new file mode 100644
index 0000000..e3f8069
--- /dev/null
+++ b/xdocs/SugarCRMPlugin.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>SugarCRM Plugin</title>

+		<author email="eschwert@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="SugarCRM Plugin for OpenMeetings">

+			<p>

+				You can get the latest Version of the Plugin for SugarCRM from the

+				<a href="downloads.html">downloads</a>

+				.

+			</p>

+			<p>

+				You can find the OpenMeetings Plugin also in the

+				<a href="http://www.sugarforge.org/projects/openmeetings/"

+					target="_BLANK" rel="nofollow">SugarCRM Plugin database</a>

+				.

+			</p>

+			<p>

+				A demo version of the SugarCRM plugin is available at

+				<a href="http://demo.e-schwert.de/sugarcrm/" target="_BLANK" rel="nofollow">demo.e-schwert.de</a>

+				. Username: demo Password: Demouser55 

+			</p>

+		</section>

+		

+		<section name="Features">

+			<p>The plugin contains the following features: </p>

+			<ul>

+				<li>Create videoconference rooms through SugarCRM: </li>

+				<li>

+					<ol>

+						<li>Integrated with calendar </li>

+						<li>Integrated with SugarCRM meetings </li>

+						<li>Sends invetations emails to meeting participants </li>					

+						<li>Configurable room type </li>

+					</ol>

+				</li>

+			</ul>			

+		</section>

+

+		<section name="Installation the SugarCRM Plugin for OpenMeetings">			

+			<p>In SugarCRM's administration web-interface you will find the

+				module loader.

+			</p>

+			<a class="fancybox-buttons" href="images/moodle_plugin_conference.png">

+				<img src="images/SugarCRM_Installation.png" alt="" width="640"

+					height="320" />

+			</a>

+			<ol>

+				<li>Upload the module with module loader in administration area. </li>

+				<li>Configure OpenMeetings settings. </li>

+				<li>Create OpenMeetings rooms. </li>				

+			</ol>

+		</section>

+		

+		<section name="Demo video">			

+			<p>The demo video of SugarCRM plugin show you the plugin in action </p>              

+		      <object style="height: 390px; width: 640px">

+			      <param name="movie" value="http://www.youtube.com/v/xrDbcXqxDq8?version=3&amp;feature=player_detailpage"/>

+			      <param name="allowFullScreen" value="true"/>

+			      <param name="allowScriptAccess" value="always"/>

+			      <embed src="http://www.youtube.com/v/xrDbcXqxDq8?version=3&amp;feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"/>

+		      </object> 

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/TimeZoneHandling.xml b/xdocs/TimeZoneHandling.xml
new file mode 100644
index 0000000..e78e560
--- /dev/null
+++ b/xdocs/TimeZoneHandling.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Timezones</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Introduction">

+			<p>

+				List of default Timezones:

+				<a

+					href="http://openmeetings.googlecode.com/svn/trunk/singlewebapp/src/main/webapp/languages/timezones.xml"

+					rel="nofollow">http://openmeetings.googlecode.com/svn/trunk/singlewebapp/src/main/webapp/languages/timezones.xml

+				</a>

+			</p>

+			<p>

+				To add a new Time Zone you have to lookup its represant in Java's

+				Timezone registry. You can then add freely new time zones to the XML

+				file. The XML entries are imported into the database into the table

+				<strong>om_timezone</strong>

+				during the installation of OpenMeetings. (Don't forget to stop the

+				server before you change anything in the database).

+			</p>

+			<p>

+				The Servers default timezone is stored in the configuration table in

+				the attribute

+				<strong>default.timezone</strong>

+				. The name in this value links to an attribute in the table

+				om_timezone in the column

+				<strong>jname</strong>

+				.

+			</p>

+			<p>

+				You can set a Flag

+				<strong>forceTimeZoneCheck</strong>

+				for each user that gives him a Pop-Up notification to change his

+				time zone. The Flag can be changed in the user administration of

+				OpenMeetings. This can be handy if you update from a previous

+				version of OpenMeetings to make sure users see the new feature and

+				update their settings.

+			</p>

+			

+			

+			

+		</section>

+		

+		<section name="How to lookup timezone's">

+		

+		  <div class="xmlcode">

+		  

+                    String[] ids = TimeZone.getAvailableIDs();<br/>

+                    for (String id : ids) {<br/>

+                        

+                        <div style="margin-left:20px">

+                        TimeZone timeZone = TimeZone.getTimeZone(id);<br/>

+                        //TimeZone timeZone = timeRegistry.getTimeZone(id);<br/>

+                        <br/>

+                        Calendar cal = Calendar.getInstance();<br/>

+                                <div style="margin-left:20px">

+                                cal.setTimeZone(timeZone);<br/>

+                                // + cal.get(Calendar.DST_OFFSET)<br/>

+                                int offset = cal.get(Calendar.ZONE_OFFSET);<br/>

+                        <br/>

+                                int offsetInMinutes = offset/1000/60;<br/>

+                                <br/>

+                                System.out.println("name" + id + "name offset "+offsetInMinutes+"offset ");

+                                </div>

+                        </div>

+                    }

+		  

+		  </div>

+		  

+		  

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/Upgrade.xml b/xdocs/Upgrade.xml
new file mode 100644
index 0000000..9e8aa93
--- /dev/null
+++ b/xdocs/Upgrade.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Upgrade</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+		<section name="Upgrading OpenMeetings via the Web-Interface">

+			<ol>

+				<li>

+					<p>There is a System Backup and Import tool. Login as Administrator and Administration &gt; Backup</p>

+					<a class="fancybox-buttons" href="images/backup.png"><img src="images/backup.png" alt="" width="600" /></a>

+					<p>

+						The Text in the Administration &gt; Backup section actually just says

+						it all. The backup contains users, rooms, organizations and

+						appointments (Invitations and Reminders are NOT included in the

+						Backup and Reminders will not be send again!). The Backup contains

+						also all uploaded Files and Documents and will re-import them again.

+		

+						Max Upload Size is 1000 MB.

+					</p>

+				</li>

+				<li>Stop Openmeetings</li>

+				<li>(*) Backup folder with existing installation</li>

+				<li>(*) Perform DB backup using tools available for your database</li>

+				<li>Delete/move folder with existing installation of OM</li>

+				<li>Drop existing OM database</li>

+				<li>Create empty Database with same name and UTF-8 support</li>

+				<li>Unzip new version of OM into the same folder</li>

+				<li>(*) Modify DB settings</li>

+				<li>Start Openmeetings</li>

+				<li>go to http://localhost:5080/openmeetings</li>

+				<li>Install OM using Web installer</li>

+				<li>Login as Administrator and Administration &gt; Backup</li>

+				<li>Perform system import</li>

+			</ol>

+			<p>(*) Optional step</p>

+		</section>

+

+		<section name="Upgrading OpenMeetings from command line">

+			<p>

+				<i>You need OpenMeetings 2.x or later to have the command line interface (CLI) 

+					feature available

+				</i>

+			</p>

+			<p>

+				Alternatively to the Web-Installer you can also export and import via the command line. <br/>

+				<b>You should shutdown the Red5-Service while doing CLI export or import operations</b><br />

+				Cd to your red5-home directory, type "./admin.sh" and hit enter. You will get options available.<br />

+				<br />

+				A typical export would be:<br />

+				<tt>./admin.sh -b -file backup_today.zip</tt><br />

+				<br />

+				A typical import would be:<br />

+				<tt>./admin.sh -r -file backup_yesterday.zip</tt><br />

+				<br />

+				You can also combine the installation with a backup, that way you will create exactly the user table 

+				that existed in the backup.<br />

+				A typical install from backup would be:<br />

+				<tt>./admin.sh -i -file backup_yesterday.zip</tt><br/>

+				please see <a href="CommandLineAdmin.html" target="_BLANK" rel="nofollow">Command Line Admin</a> for more options

+			</p>

+			<p><b>Detailed steps</b></p>

+			<ol>

+				<li>Stop Openmeetings</li>

+				<li>(*) Backup folder with existing installation</li>

+				<li>(*) Perform DB backup using tools available for your database</li>

+				<li><tt>./admin.sh -v -b -file ../backup_today.zip</tt></li>

+				<li>Delete/move folder with existing installation of OM</li>

+				<li>Unzip new version of OM into the same folder</li>

+				<li><tt>./admin.sh -v -i -file ../backup_today.zip --drop --skip-default-room</tt> (Optionally you can specify

+					additional parameters like DB host/user/pass/instance etc.)</li>

+				<li>Start Openmeetings</li>

+				<li>go to http://localhost:5080/openmeetings</li>

+			</ol>

+			<p>(*) Optional step</p>

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/WebappNamePath.xml b/xdocs/WebappNamePath.xml
new file mode 100644
index 0000000..7d5f64b
--- /dev/null
+++ b/xdocs/WebappNamePath.xml
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Webapp Name / Path</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Customize Openmeetings logo">

+			<p>If you want to set up your logo in Openmeetings header you can do the following:</p>

+			<ol>

+				<li>create your logo image as PNG 40px height</li>

+				<li>replace <tt>/opt/red5/webapps/openmeetings/public/themes/basic-theme/general/logo.png</tt> with your logo file</li>

+				<li>(Advanced optional) you can modify <tt>/opt/red5/webapps/openmeetings/public/config.xml</tt> and modify <tt>appdisplay</tt> section: set position and display for the logo and/or name</li>

+				<li>(Advanced optional) you can modify <tt>/opt/red5/webapps/openmeetings/public/theme.xml</tt> (around line 57) and change image name/path</li>

+			</ol>

+		</section>

+		<section name="Renaming /openmeetings context">

+			<p>

+				If you want to have

+				<tt>http://yourcorp.com:5080/yourmeetings</tt>

+				instead of

+				<tt>http://yourcorp.com:5080/openmeetings</tt>

+				you need to do the following

+			</p>

+			<ol>

+				<li>stop openmmetings if it is running </li>

+				<li>

+					go to openmeetings install dir (for ex.

+					<tt>/opt/red5</tt>

+					)

+				</li>

+				<li>

+					rename

+					<tt>/opt/red5/webapps/openmeetings</tt>

+					to

+					<tt>/opt/red5/webapps/yourmeetings</tt>

+					(for ex.

+					<tt>mv /opt/red5/webapps/openmeetings

+						/opt/red5/webapps/yourmeetings

+					</tt>

+					)

+				</li>

+				<li>

+					open

+					<tt>/opt/red5/webapps/yourmeetings/public/config.xml</tt>

+					using your favorite text editor (for ex.

+					<tt>vim /opt/red5/webapps/yourmeetings/public/config.xml</tt>

+					)

+				</li>

+				<li>

+					find and modify

+					<tt>&lt;webAppRootKey&gt;openmeetings&lt;/webAppRootKey&gt;</tt>

+					to be

+					<tt>&lt;webAppRootKey&gt;</tt>

+					<strong>yourmeetings</strong>

+					<tt>&lt;/webAppRootKey&gt;</tt>

+				</li>

+				<li>

+					find and modify

+					<tt>&lt;httpRootKey&gt;/openmeetings/&lt;/httpRootKey&gt;</tt>

+					to be

+					<tt>&lt;httpRootKey&gt;</tt>

+					<strong>/yourmeetings/</strong>

+					<tt>&lt;/httpRootKey&gt;</tt>

+				</li>

+			</ol>

+			That's it

+		</section>

+

+		<section name="Changing hard-coded application name in string labels">

+			<p>

+				To have

+				<i>Your Application Name</i>

+				instead of

+				<i>Openmeetings</i>

+				in

+				<strong>all</strong>

+				text labels you need to do the following

+			</p>

+			<ol>

+				<li>

+					ensure

+					<strong>

+						<tt>$APP_NAME</tt>

+					</strong>

+					placeholder is used in

+					<i>all</i>

+					strings you have added and/or modified (all strings bundled into

+					Openmeetings already have this placeholder)

+				</li>

+				<li>login to Openmeetings as user with administrator privileges </li>

+				<li>

+					go to

+					<tt>Administration -&gt; Configuration</tt>

+				</li>

+				<li>

+					find and edit configuration with name

+					<strong>

+						<tt>application.name</tt>

+					</strong>

+				</li>

+				<li>

+					Set its value to be

+					<i>

+						<tt>Your Application Name</tt>

+					</i>

+				</li>

+				<li>

+					<tt>Save</tt>

+				</li>

+				<li>reload page or relogin </li>

+			</ol>

+			<p>

+			All string will display

+			<i>

+				<tt>Your Application Name</tt>

+			</i>

+			in place of

+			<i>

+				<tt>Openmeetings</tt>

+			</i>

+			</p>

+			<p>

+				Please

+				<i>NOTE</i>

+				there are 3 additional properties in the public/config.xml file which

+				should be modified for

+				<strong>TOTAL</strong>

+				Openmeetings clean up:

+			</p>

+			<div class="xmlcode">

+				&lt;currentappname&gt;OpenMeetings&lt;/currentappname&gt;

+				<br />

+				&lt;currentappnameurl&gt;http://openmeetings.apache.org&lt;/currentappnameurl&gt;

+				<br />

+				&lt;currentappnamebugurl&gt;https://issues.apache.org/jira/browse/OPENMEETINGS&lt;/currentappnamebugurl&gt;

+				<br />

+			</div>

+

+		</section>

+

+		<section name="Running multiple Openmeetings instances on the same server">

+			<p>

+				If you want to run multiple Openmeetings instances on the same server i.e. to have<br/>  

+				<tt>http://yourcorp.com:5080/openmeetings1</tt><br/> 

+				<tt>http://yourcorp.com:5080/openmeetings2</tt><br/> etc.<br/> you need to do the following:

+			</p>

+			<ol>

+				<li>edit <tt>webapps/openmeetings1/WEB-INF/red5-web.properties</tt> for <strong>every</strong> Openmeetings 

+				instance and add the following line <tt>webapp.contextPath=/openmeetings1</tt>  to it (context of 

+				<strong>every</strong> instance <strong>should</strong> match the folder name in webapps dir)

+				</li>

+				<li>in case of java memory problems modify <tt>red5.sh</tt> add following line:<br/>

+					<div class="xmlcode">

+					export JAVA_OPTS="-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:MaxPermSize=128M"

+					</div>

+					or <tt>red5.bat</tt>:<br/>

+					<div class="xmlcode">

+					set JAVA_OPTS=-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:MaxPermSize=128M

+					</div>

+				</li>

+			</ol>

+		</section>

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/WebcamResolutions.xml b/xdocs/WebcamResolutions.xml
new file mode 100644
index 0000000..697d1e4
--- /dev/null
+++ b/xdocs/WebcamResolutions.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>How to configure Camera default resolutions </title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="How to configure Camera default resolutions">

+

+			<p>When you choose the webcam you have different resolutions

+				available the user can choose from. </p>

+			<p>You can add/remove resolutions and also change the default

+				selection. In the public/config.xml there is a section: </p>

+			<div class="xmlcode">

+				&lt;availableCameraResolutions&gt;<br/>

+				<div style="margin-left:20px">

+				    &lt;resolution type="4:3 (~6 KByte/sec)" width="40" height="30" isDefault="false" /&gt;<br/>

+				    &lt;resolution type="4:3 (~12 KByte/sec)" width="80" height="60" isDefault="false" /&gt;<br/>

+				    &lt;resolution type="4:3 (~20 KByte/sec)" width="120" height="90" isDefault="true" /&gt;<br/>

+				    &lt;resolution type="QQVGA 4:3 (~36 KByte/sec)" width="160" height="120" isDefault="false" /&gt;<br/>

+				    &lt;resolution type="4:3 (~40 KByte/sec)" width="240" height="180" isDefault="false" /&gt;<br/>

+				    &lt;resolution type="HVGA 4:3 (~56 KByte/sec)" width="320" height="240" isDefault="false" /&gt;<br/>

+				    &lt;resolution type="4:3  (~60 KByte/sec)" width="480" height="360" isDefault="false" /&gt;<br/>

+				    &lt;resolution type="4:3 (~68 KByte/sec)" width="640" height="480" isDefault="false" /&gt;<br/>

+				    &lt;resolution type="XGA 4:3" width="1024" height="768" isDefault="false" /&gt;<br/>

+				    &lt;resolution type="16:9" width="256" height="150" isDefault="false" /&gt;<br/>

+				    &lt;resolution type="WQVGA 9:5" width="432" height="240" isDefault="false" /&gt;<br/>

+				    &lt;resolution type="pseudo 16:9" width="480" height="234" isDefault="false" /&gt;<br/>

+				    &lt;resolution type="16:9" width="512" height="300" isDefault="false" /&gt;<br/>

+				    &lt;resolution type="nHD 16:9" width="640" height="360" isDefault="false" /&gt;<br/>

+				    &lt;resolution type="16:9" width="1024" height="600" isDefault="false" /&gt;<br/>

+				    </div>

+				&lt;/availableCameraResolutions&gt;			 

+			</div>	

+		      

+		    <p>Tip: You might edit the public/config.xml with an XML aware editor that correctly 

+		    handles the XSD defintion to avoid misconfiguration. The openmeetings-config.xsd 

+		    is in the same folder like the public/config.xml. </p>

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/WebsiteGuide.xml b/xdocs/WebsiteGuide.xml
new file mode 100644
index 0000000..3aafba4
--- /dev/null
+++ b/xdocs/WebsiteGuide.xml
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Release Guide</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="How to update Apache OpenMeetings website">

+

+			<subsection name="Required tools">

+				<div>

+					<ul>

+						<li>Sun JDK6</li>

+						<li>Apache ANT (1.8 or later)</li>

+					</ul>

+				</div>

+			</subsection>

+			

+			<subsection name="Introduction">

+				<div>

+					<p>

+						The Apache OpenMeetings HTML websites are generated from XML files. 

+						You edit the XML files, run the ANT command "ant anakia" that generates the HTML files 

+						and then you checkin to SVN both: XML and HTML files.

+					</p>

+					<p>

+						The website itself uses JQuery to generate the menu, the pop images and the image slider at the landing page.

+					</p>

+				</div>

+			</subsection>

+

+			<subsection name="Editing the website">

+				<div>

+					<p>

+						OpenMeetings website (

+						<a href="http://openmeetings.apache.org/">http://openmeetings.apache.org/</a>

+						) is a copy from the SVN repository.

+						<br />

+						The file in the SVN to be synced are at:

+						<br />

+						<a

+							href="http://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/docs/">http://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/docs/

+						</a>

+						<br/>and<br/>

+						<a

+							href="http://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/xdocs/">http://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/xdocs/

+						</a>

+					</p>

+					

+					<div>

+						To update the website you checkout trunk:

+						<br />

+						<a

+							href="https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/">https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/

+						</a> <br/>

+						edit the files in the folder <tt>xdocs</tt><br/>

+						then you run the command:

+						<div class="xmlcode">

+							ant anakia

+						</div>

+						control the output locally in the folder <tt>docs</tt><br/>

+						And then checkin into the SVN <i>both</i> the edited xml and generated html files.

+					</div>

+					

+					<p>

+						The public website is automatically synced with the SVN repository.<br/>

+						Changes to the SVN should be immediately synced to the production website.<br/>

+						If not you might login to people.apache.org,<br/>

+						cd to <tt>/www/openmeetings.apache.org/content/</tt><br/>

+						and run the linux command "touch" on the files that need to be synced

+					</p>

+				</div>

+			</subsection>

+			

+			<subsection name="Adding a new menu entry">

+				<div>

+					To add a new menu entry in the left side panel you need to modify the file: 

+					<br/>

+					<tt>xdocs/stylesheets/project.xml</tt>

+				</div>

+			</subsection>

+			

+			<subsection name="Writing a new macro">

+				<div>

+					<p>

+						You can write macros in a template language to parse from the XML files certain aspects.

+					</p>

+					<p>

+						To add a new macro see the file:<br/>

+						<tt>xdocs/stylesheets/site.vsl</tt>

+					</p>

+				</div>

+				

+			</subsection>

+

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/commercial-support.xml b/xdocs/commercial-support.xml
new file mode 100644
index 0000000..ec125be
--- /dev/null
+++ b/xdocs/commercial-support.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Commercial Support</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Commercial Support for OpenMeetings">

+

+			<p>There are few companies offering complex services for OpenMeetings, including code support,

+			development, integration and bug fixing

+			</p>

+			<ul>

+				<li>

+					<a href="http://www.webbase-design.de/" target="_BLANK">webbase-design.de

+					</a>

+					owned by Sebastian Wagner

+				</li>

+				<li>

+					<a href="http://www.dataved.ru" target="_BLANK">dataved.ru

+					</a>

+					run by Alexei Fedotov, Maxim Solodovnik, Timur Tleukenov, Irina Arkhipets, Denis Kandrov, Vasily Degtyarev

+				</li>

+				<li>

+                    <a href="http://www.samoo.es" target="_BLANK" rel="nofollow">samoo.es</a>

+                    provides support for the Sakai Plugin

+                </li>

+			</ul>

+			<p>

+                            Please write to <a href="mailto:support-om@dataved.ru">support-om@dataved.ru</a> to get WebBase-Design or Dataved support

+			</p>

+			<p>

+			    There are more companies offering installation, customization, hosting, conferencing and support services. You can add 

+				yourself to the <a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Commercial+Support">wiki page</a>.

+			</p>

+			

+			<p>

+				Want to get listed here? Become a <a href="http://www.apache.org/dev/committers.html">committer</a>.

+			</p>

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/css/1b.png b/xdocs/css/1b.png
new file mode 100644
index 0000000..0d70d76
--- /dev/null
+++ b/xdocs/css/1b.png
Binary files differ
diff --git a/xdocs/css/2b.png b/xdocs/css/2b.png
new file mode 100644
index 0000000..a93e132
--- /dev/null
+++ b/xdocs/css/2b.png
Binary files differ
diff --git a/xdocs/css/3b.png b/xdocs/css/3b.png
new file mode 100644
index 0000000..f9d8b7a
--- /dev/null
+++ b/xdocs/css/3b.png
Binary files differ
diff --git a/xdocs/css/4b.png b/xdocs/css/4b.png
new file mode 100644
index 0000000..c6e41f4
--- /dev/null
+++ b/xdocs/css/4b.png
Binary files differ
diff --git a/xdocs/css/openmeetings.css b/xdocs/css/openmeetings.css
new file mode 100644
index 0000000..7f80af6
--- /dev/null
+++ b/xdocs/css/openmeetings.css
@@ -0,0 +1,84 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements.  See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+body {
+	color: #000000;
+	margin: 0;
+	background: #fafafa;
+	font: 10pt Verdana, Arial, Helvetica, sans-serif;
+	  
+}
+.active {
+	font-style: italic;
+}
+
+.mainbody {
+	margin-left: 40px;
+	margin-right: 40px;
+	-moz-box-shadow: 4px 0px 5px #666666;
+	-webkit-box-shadow: 4px 0px 5px #666666;
+	box-shadow: 4px 0px 5px #666666;
+}
+.superbody {
+	background: #FFFFFF;
+	-moz-box-shadow: -4px 0px 5px #666666;
+	-webkit-box-shadow: -4px 0px 5px #666666;
+	box-shadow: -4px 0px 5px #666666;
+}
+
+/* Box CSS  */
+div {
+	margin: 0;
+}
+
+
+.ro {
+	background: url(2b.png) top right no-repeat;
+}
+
+.lo {
+	background: url(1b.png) top left no-repeat;
+}
+
+.ru {
+	background: url(3b.png) bottom right no-repeat;
+}
+
+.lu {
+	background: url(4b.png) bottom left no-repeat;
+}
+
+ul {
+	margin-top: 0em;
+	padding-left: 1.5em;
+}
+
+.inhalt {
+	margin: 0;
+	padding: 0.5em 2.0em 1.5em 1.0em;
+}
+
+.inhalt p {
+	margin: 0;
+	padding: 0;
+}
+.xmlcode {
+	margin-left: 20px;
+	background-color: #eeeeee;
+	color: #0000ff;
+	margin-top: 10px;
+	margin-bottom: 10px;
+}
\ No newline at end of file
diff --git a/xdocs/demo.xml b/xdocs/demo.xml
new file mode 100644
index 0000000..2a7f9ad
--- /dev/null
+++ b/xdocs/demo.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+ -->
+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">
+
+	<properties>
+		<title>Mailing Lists</title>
+		<author email="sebawagner@apache.org">
+			Sebastian Wagner
+		</author>
+	</properties>
+
+	<body>
+		<section name="Apache OpenMeetings Demo Servers">
+
+			<p>
+				There are currently some technical issues with demo servers.
+			</p>
+			<p>
+				This is a list of servers that you can use for testing OpenMeetings.
+			</p>
+			<p>
+				<a href="http://demo.dataved.ru/openmeetings" target="_BLANK" rel="nofollow">http://demo.dataved.ru/openmeetings</a>
+			</p>
+
+		</section>
+	</body>
+</document>
+
diff --git a/xdocs/dependencies.xml b/xdocs/dependencies.xml
new file mode 100644
index 0000000..dec7df6
--- /dev/null
+++ b/xdocs/dependencies.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Copyright 2006 The Apache Software Foundation
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+  
+       http://www.apache.org/licenses/LICENSE-2.0
+  
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">
+
+ <properties>
+<title>Project Dependencies</title>
+<author email="sebawagner@apache.org">
+ OpenMeetings Documentation Team</author>
+</properties>
+
+<body>
+<section name="The Apache Podling Project">
+
+<div>
+<p> 
+The common external dependencies of OpenMeetings include the tools used to build 
+and test it:
+</p>
+
+<ul>
+<li>Subversion</li>
+<li>Ant</li>
+<li>JUnit</li>
+</ul>
+
+<p>OpenMeetings will actively download resources from the online repositories while building.</p>
+
+</div>
+</section>
+
+</body>
+</document>
+   
diff --git a/xdocs/documentation.xml b/xdocs/documentation.xml
new file mode 100644
index 0000000..b27f399
--- /dev/null
+++ b/xdocs/documentation.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+
+    Copyright 2006 The Apache Software Foundation
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+
+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">
+
+<properties>
+<title>Documentation</title>
+<author email="sebawagner@apache.org">
+ Podling Documentation Team</author>
+</properties>
+
+<body>
+<section name="OpenMeetings Documentation">
+
+<p>
+Wiki is to be linked here, coming soon ...
+
+<!-- ***************** TBD **************************  -->
+<!-- ***************** TBD **************************  -->
+<!-- ***************** TBD **************************  -->
+
+</p>
+
+</section>
+
+</body>
+
+</document>
+
diff --git a/xdocs/downloads.xml b/xdocs/downloads.xml
new file mode 100644
index 0000000..56e6cca
--- /dev/null
+++ b/xdocs/downloads.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+ -->
+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">
+
+	<properties>
+		<title>Downloads</title>
+		<author email="sebawagner@apache.org">
+			Podling Documentation Team
+		</author>
+	</properties>
+
+	<body>
+
+		<section name="Downloads">
+			<div>
+				All downloads can be verified using the Apache OpenMeetings code
+				signing <a href="https://www.apache.org/dist/openmeetings/3.0.0/KEYS">KEYS</a>.
+			</div>
+			<p>
+				All are available for download as source and binary.
+			</p>
+			
+			<subsection name="Latest Official Release">
+				<p>
+					Apache Openmeetings 3.0.0
+				</p>
+				<ul>
+					<li>
+						Binaries:
+						<ul>
+							<li>
+								<a href="http://www.apache.org/dyn/closer.cgi/openmeetings/3.0.0/bin/apache-openmeetings-3.0.0.zip">apache-openmeetings-3.0.0.zip</a>
+								<a href="http://www.apache.org/dist/openmeetings/3.0.0/bin/apache-openmeetings-3.0.0.zip.asc">[SIG]</a>
+								<a href="http://www.apache.org/dist/openmeetings/3.0.0/bin/apache-openmeetings-3.0.0.zip.md5">[MD5]</a>
+							</li>
+							<li>
+								<a href="http://www.apache.org/dyn/closer.cgi/openmeetings/3.0.0/bin/apache-openmeetings-3.0.0.tar.gz">apache-openmeetings-3.0.0.tar.gz</a>
+								<a href="http://www.apache.org/dist/openmeetings/3.0.0/bin/apache-openmeetings-3.0.0.tar.gz.asc">[SIG]</a>
+								<a href="http://www.apache.org/dist/openmeetings/3.0.0/bin/apache-openmeetings-3.0.0.tar.gz.md5">[MD5]</a>
+							</li>
+						</ul>
+					</li>
+					<li>
+						Sources:
+						<ul>
+							<li>
+								<a href="http://www.apache.org/dyn/closer.cgi/openmeetings/3.0.0/src/apache-openmeetings-3.0.0-src.zip">apache-openmeetings-3.0.0-src.zip</a>
+								<a href="http://www.apache.org/dist/openmeetings/3.0.0/src/apache-openmeetings-3.0.0-src.zip.asc">[SIG]</a>
+								<a href="http://www.apache.org/dist/openmeetings/3.0.0/src/apache-openmeetings-3.0.0-src.zip.md5">[MD5]</a>
+							</li>
+							<li>
+								<a href="http://www.apache.org/dyn/closer.cgi/openmeetings/3.0.0/src/apache-openmeetings-3.0.0-src.tar.gz">apache-openmeetings-3.0.0-src.tar.gz</a>
+								<a href="http://www.apache.org/dist/openmeetings/3.0.0/src/apache-openmeetings-3.0.0-src.tar.gz.asc">[SIG]</a>
+								<a href="http://www.apache.org/dist/openmeetings/3.0.0/src/apache-openmeetings-3.0.0-src.tar.gz.md5">[MD5]</a>
+							</li>
+						</ul>
+					</li>
+				</ul>
+				
+			</subsection>
+
+			<subsection name="Previous Official Releases">
+				<p>
+					Apache Openmeetings releases available here:
+					<a href="http://archive.apache.org/dist/openmeetings/">http://archive.apache.org/dist/openmeetings/</a>
+				</p>
+				<p>
+					Apache Openmeetings Incubating 2.0 is available here:
+					<a href="http://archive.apache.org/dist/incubator/openmeetings/2.0-incubating/">http://archive.apache.org/dist/incubator/openmeetings/2.0-incubating</a>
+				</p>
+			</subsection>
+
+			<subsection name="Plugins / Non ASF downloads">
+			
+				<p>
+					If you are looking for more plugins for 3th party applications (Moodle, Drupal, Joomla, ...) check out <a href="http://code.google.com/a/apache-extras.org/hosting/search?q=openmeetings" target="_BLANK" rel="nofollow">apache-extras.org</a>.
+				</p>
+			
+				<p>
+					OpenMeetings releases that are not part of the ASF can be downloaded from the
+					old
+					<a href="http://code.google.com/p/openmeetings/downloads/list"
+						target="_BLANK">GoogleCode website</a>
+				</p>
+			</subsection>
+
+		</section>
+	</body>
+</document>
+
diff --git a/xdocs/get-involved.xml b/xdocs/get-involved.xml
new file mode 100644
index 0000000..7c2b823
--- /dev/null
+++ b/xdocs/get-involved.xml
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+ -->
+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">
+
+	<properties>
+		<title>Get Involved</title>
+		<author email="dev@openmeetings.apache.org">
+			OpenMeetings Documentation Team
+		</author>
+	</properties>
+
+	<body>
+
+		<section name="How do I contribute, give feedback, fix bugs and so on?">
+
+			<p>
+				The Apache OpenMeetings project really needs and appreciates any
+				contributions,
+				including documentation help, source code and
+				feedback. Suggested
+				changes should come in the form of source code
+				and/or very detailed
+				and constructive feedback.
+			</p>
+
+			<ul>
+				<li>
+					Discussion occurs on the
+					<a href="mail-lists.html">OpenMeetings mailing lists</a>
+				</li>
+				<li>
+					Information on access to the project source code is
+					available
+					<a href="svn.html">here</a>
+					.
+				</li>
+				<li>
+					Bugs and other issues can be posted on the project
+					<a href="https://issues.apache.org/jira/browse/OPENMEETINGS">JIRA</a>
+					(
+					<a href="https://issues.apache.org/jira/secure/Signup!default.jspa">sign up</a>
+					).
+				</li>
+				<li>
+					Additional documentation and discussion can be contributed to the
+					project
+					<a href="https://cwiki.apache.org/OPENMEETINGS">Wiki</a>
+					(
+					<a href="https://cwiki.apache.org/confluence/signup.action">sign up</a>
+					).
+				</li>
+			</ul>
+
+		</section>
+
+		<section name="Which taks could I potentially work on?">
+
+			<p>
+				No matter if you want to share your experiences, improve
+				documentation, localization, code Java, ActionScript or PHP, there
+				are dozens of areas where you can find task to work on and share
+				with others.
+				<br />
+				<br />
+				We tried to collect a list of ideas in our wiki:
+				<br />
+				<a
+					href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/New+committers+and+developers+task+idea+list"
+					target="_BLANK">https://cwiki.apache.org/confluence/display/OPENMEETINGS/New+committers+and+developers+task+idea+list
+				</a>
+			</p>
+
+		</section>
+
+		<section name="How do I become a committer?">
+			<p>If you're interested in committing to the project: </p>
+			<ul>
+				<li>
+					<p>
+						You'll need to fill out some legal paperwork and go through
+						a
+						process to get an apache foundation committer account: See
+						<a class="external" rel="nofollow"
+							href="http://apache.org/dev/new-committers-guide.html">
+							New Committers Guide
+						</a>
+						,
+						<a class="external" rel="nofollow"
+							href="http://apache.org/dev/contributors.html"> Contributors</a>
+						, and
+						<a class="external" rel="nofollow" href="http://apache.org/dev/committers.html"> Committers</a>
+						for more details.
+					</p>
+
+				</li>
+				<li>
+					<p>
+						After you've received an email from
+						<a href="mailto:root@apache.org">root@apache.org</a>
+						with your committer account information, change your initial
+						password:
+						Login by 'ssh -l &lt;username&gt; people.apache.org';
+						run
+						'passwd';
+						run 'svnpasswd'. See
+						<a class="external" rel="nofollow"
+							href="http://apache.org/dev/version-control.html">Committer Subversion Access
+						</a>
+						.
+					</p>
+				</li>
+				<li>
+					<p>
+						Check out the OpenMeetings sources and test your svn account:
+						<a href="http://svn.apache.org/viewvc/openmeetings/">
+							SubversionRepository
+						</a>
+						.
+					</p>
+
+				</li>
+
+			</ul>
+
+		</section>
+
+	</body>
+</document>
diff --git a/xdocs/images/Arguments.png b/xdocs/images/Arguments.png
new file mode 100644
index 0000000..7427236
--- /dev/null
+++ b/xdocs/images/Arguments.png
Binary files differ
diff --git a/xdocs/images/DebugConfigurations.png b/xdocs/images/DebugConfigurations.png
new file mode 100644
index 0000000..c572dda
--- /dev/null
+++ b/xdocs/images/DebugConfigurations.png
Binary files differ
diff --git a/xdocs/images/Features_Screen_Conference_Room_Thumb.png b/xdocs/images/Features_Screen_Conference_Room_Thumb.png
new file mode 100644
index 0000000..19dece9
--- /dev/null
+++ b/xdocs/images/Features_Screen_Conference_Room_Thumb.png
Binary files differ
diff --git a/xdocs/images/NewConfiguration.png b/xdocs/images/NewConfiguration.png
new file mode 100644
index 0000000..45f3d62
--- /dev/null
+++ b/xdocs/images/NewConfiguration.png
Binary files differ
diff --git a/xdocs/images/SugarCRM_Installation.png b/xdocs/images/SugarCRM_Installation.png
new file mode 100644
index 0000000..b652b7b
--- /dev/null
+++ b/xdocs/images/SugarCRM_Installation.png
Binary files differ
diff --git a/xdocs/images/apache_feather.gif b/xdocs/images/apache_feather.gif
new file mode 100644
index 0000000..1a0c3e6
--- /dev/null
+++ b/xdocs/images/apache_feather.gif
Binary files differ
diff --git a/xdocs/images/audio_and_video.png b/xdocs/images/audio_and_video.png
new file mode 100644
index 0000000..f35bb10
--- /dev/null
+++ b/xdocs/images/audio_and_video.png
Binary files differ
diff --git a/xdocs/images/backup.png b/xdocs/images/backup.png
new file mode 100644
index 0000000..f174339
--- /dev/null
+++ b/xdocs/images/backup.png
Binary files differ
diff --git a/xdocs/images/calendar.png b/xdocs/images/calendar.png
new file mode 100644
index 0000000..25f7978
--- /dev/null
+++ b/xdocs/images/calendar.png
Binary files differ
diff --git a/xdocs/images/chat.png b/xdocs/images/chat.png
new file mode 100644
index 0000000..ce9c040
--- /dev/null
+++ b/xdocs/images/chat.png
Binary files differ
diff --git a/xdocs/images/checkout_1.png b/xdocs/images/checkout_1.png
new file mode 100644
index 0000000..950891a
--- /dev/null
+++ b/xdocs/images/checkout_1.png
Binary files differ
diff --git a/xdocs/images/checkout_2.png b/xdocs/images/checkout_2.png
new file mode 100644
index 0000000..f31050b
--- /dev/null
+++ b/xdocs/images/checkout_2.png
Binary files differ
diff --git a/xdocs/images/checkout_3.png b/xdocs/images/checkout_3.png
new file mode 100644
index 0000000..94d21ce
--- /dev/null
+++ b/xdocs/images/checkout_3.png
Binary files differ
diff --git a/xdocs/images/checkout_4.png b/xdocs/images/checkout_4.png
new file mode 100644
index 0000000..7fcf576
--- /dev/null
+++ b/xdocs/images/checkout_4.png
Binary files differ
diff --git a/xdocs/images/checkout_5.png b/xdocs/images/checkout_5.png
new file mode 100644
index 0000000..e102426
--- /dev/null
+++ b/xdocs/images/checkout_5.png
Binary files differ
diff --git a/xdocs/images/checkout_6.png b/xdocs/images/checkout_6.png
new file mode 100644
index 0000000..8dd9189
--- /dev/null
+++ b/xdocs/images/checkout_6.png
Binary files differ
diff --git a/xdocs/images/checkout_7.png b/xdocs/images/checkout_7.png
new file mode 100644
index 0000000..4168d93
--- /dev/null
+++ b/xdocs/images/checkout_7.png
Binary files differ
diff --git a/xdocs/images/checkout_8.png b/xdocs/images/checkout_8.png
new file mode 100644
index 0000000..0494bb5
--- /dev/null
+++ b/xdocs/images/checkout_8.png
Binary files differ
diff --git a/xdocs/images/checkout_9.png b/xdocs/images/checkout_9.png
new file mode 100644
index 0000000..b083d00
--- /dev/null
+++ b/xdocs/images/checkout_9.png
Binary files differ
diff --git a/xdocs/images/choose_divice.png b/xdocs/images/choose_divice.png
new file mode 100644
index 0000000..1e38713
--- /dev/null
+++ b/xdocs/images/choose_divice.png
Binary files differ
diff --git a/xdocs/images/cluster1.png b/xdocs/images/cluster1.png
new file mode 100644
index 0000000..672ffc4
--- /dev/null
+++ b/xdocs/images/cluster1.png
Binary files differ
diff --git a/xdocs/images/cluster2.png b/xdocs/images/cluster2.png
new file mode 100644
index 0000000..6d47e1d
--- /dev/null
+++ b/xdocs/images/cluster2.png
Binary files differ
diff --git a/xdocs/images/cut_administration_configuration.png b/xdocs/images/cut_administration_configuration.png
new file mode 100644
index 0000000..c54ac9c
--- /dev/null
+++ b/xdocs/images/cut_administration_configuration.png
Binary files differ
diff --git a/xdocs/images/cut_conference_room.png b/xdocs/images/cut_conference_room.png
new file mode 100644
index 0000000..1a50a25
--- /dev/null
+++ b/xdocs/images/cut_conference_room.png
Binary files differ
diff --git a/xdocs/images/cut_file_explorer.png b/xdocs/images/cut_file_explorer.png
new file mode 100644
index 0000000..4e5d0c7
--- /dev/null
+++ b/xdocs/images/cut_file_explorer.png
Binary files differ
diff --git a/xdocs/images/cut_integrated_calendar.png b/xdocs/images/cut_integrated_calendar.png
new file mode 100644
index 0000000..3188354
--- /dev/null
+++ b/xdocs/images/cut_integrated_calendar.png
Binary files differ
diff --git a/xdocs/images/cut_integration_api.png b/xdocs/images/cut_integration_api.png
new file mode 100644
index 0000000..7cf6264
--- /dev/null
+++ b/xdocs/images/cut_integration_api.png
Binary files differ
diff --git a/xdocs/images/cut_private_messages.png b/xdocs/images/cut_private_messages.png
new file mode 100644
index 0000000..c080851
--- /dev/null
+++ b/xdocs/images/cut_private_messages.png
Binary files differ
diff --git a/xdocs/images/cut_recordings_playback.png b/xdocs/images/cut_recordings_playback.png
new file mode 100644
index 0000000..906d798
--- /dev/null
+++ b/xdocs/images/cut_recordings_playback.png
Binary files differ
diff --git a/xdocs/images/dashboard.png b/xdocs/images/dashboard.png
new file mode 100644
index 0000000..66152bd
--- /dev/null
+++ b/xdocs/images/dashboard.png
Binary files differ
diff --git a/xdocs/images/desktopsharing.png b/xdocs/images/desktopsharing.png
new file mode 100644
index 0000000..94e8add
--- /dev/null
+++ b/xdocs/images/desktopsharing.png
Binary files differ
diff --git a/xdocs/images/file_smal.png b/xdocs/images/file_smal.png
new file mode 100644
index 0000000..69dcc46
--- /dev/null
+++ b/xdocs/images/file_smal.png
Binary files differ
diff --git a/xdocs/images/installation_instructions.png b/xdocs/images/installation_instructions.png
new file mode 100644
index 0000000..64ab05a
--- /dev/null
+++ b/xdocs/images/installation_instructions.png
Binary files differ
diff --git a/xdocs/images/langeditor_screen_v2.png b/xdocs/images/langeditor_screen_v2.png
new file mode 100644
index 0000000..fbaf47d
--- /dev/null
+++ b/xdocs/images/langeditor_screen_v2.png
Binary files differ
diff --git a/xdocs/images/ldap_screen.png b/xdocs/images/ldap_screen.png
new file mode 100644
index 0000000..e28bbc3
--- /dev/null
+++ b/xdocs/images/ldap_screen.png
Binary files differ
diff --git a/xdocs/images/logo-2.jpg b/xdocs/images/logo-2.jpg
new file mode 100644
index 0000000..13c2512
--- /dev/null
+++ b/xdocs/images/logo-2.jpg
Binary files differ
diff --git a/xdocs/images/micro_small.png b/xdocs/images/micro_small.png
new file mode 100644
index 0000000..215c831
--- /dev/null
+++ b/xdocs/images/micro_small.png
Binary files differ
diff --git a/xdocs/images/monitor_add.png b/xdocs/images/monitor_add.png
new file mode 100644
index 0000000..a818066
--- /dev/null
+++ b/xdocs/images/monitor_add.png
Binary files differ
diff --git a/xdocs/images/mouse_add.png b/xdocs/images/mouse_add.png
new file mode 100644
index 0000000..65bcab5
--- /dev/null
+++ b/xdocs/images/mouse_add.png
Binary files differ
diff --git a/xdocs/images/pencil_add.png b/xdocs/images/pencil_add.png
new file mode 100644
index 0000000..902bbe6
--- /dev/null
+++ b/xdocs/images/pencil_add.png
Binary files differ
diff --git a/xdocs/images/poll.png b/xdocs/images/poll.png
new file mode 100644
index 0000000..5b51c9b
--- /dev/null
+++ b/xdocs/images/poll.png
Binary files differ
diff --git a/xdocs/images/pollresult.png b/xdocs/images/pollresult.png
new file mode 100644
index 0000000..88c38df
--- /dev/null
+++ b/xdocs/images/pollresult.png
Binary files differ
diff --git a/xdocs/images/privat_messages.png b/xdocs/images/privat_messages.png
new file mode 100644
index 0000000..cc6e245
--- /dev/null
+++ b/xdocs/images/privat_messages.png
Binary files differ
diff --git a/xdocs/images/recordings_timeleine.png b/xdocs/images/recordings_timeleine.png
new file mode 100644
index 0000000..407719e
--- /dev/null
+++ b/xdocs/images/recordings_timeleine.png
Binary files differ
diff --git a/xdocs/images/right_management.png b/xdocs/images/right_management.png
new file mode 100644
index 0000000..da287a6
--- /dev/null
+++ b/xdocs/images/right_management.png
Binary files differ
diff --git a/xdocs/images/system_backup.png b/xdocs/images/system_backup.png
new file mode 100644
index 0000000..ffc2964
--- /dev/null
+++ b/xdocs/images/system_backup.png
Binary files differ
diff --git a/xdocs/images/user_add.png b/xdocs/images/user_add.png
new file mode 100644
index 0000000..deae99b
--- /dev/null
+++ b/xdocs/images/user_add.png
Binary files differ
diff --git a/xdocs/images/vote.png b/xdocs/images/vote.png
new file mode 100644
index 0000000..c16ff86
--- /dev/null
+++ b/xdocs/images/vote.png
Binary files differ
diff --git a/xdocs/images/whiteboard.png b/xdocs/images/whiteboard.png
new file mode 100644
index 0000000..8e5392f
--- /dev/null
+++ b/xdocs/images/whiteboard.png
Binary files differ
diff --git a/xdocs/index.xml b/xdocs/index.xml
new file mode 100644
index 0000000..110c6bb
--- /dev/null
+++ b/xdocs/index.xml
@@ -0,0 +1,462 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+ -->
+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">
+
+	<properties>
+		<title>Home</title>
+		<author email="sebawagner@apache.org">
+			Sebastian Wagner
+		</author>
+	</properties>
+
+	<body>
+
+		<section name="Apache OpenMeetings - Features and overview">
+
+			<div id="coin-slider">
+				<a href="#">
+					<img src="images/cut_conference_room.png" alt="Conference Room" />
+					<span>
+						<b>Audio/Video Conferencing</b>
+						<br />
+						OpenMeetings enables you to make Audio/Video conferencing.
+					</span>
+				</a>
+
+				<a href="#">
+					<img src="images/cut_integrated_calendar.png" alt="Calendar" />
+					<span>
+						<b>Calendar</b>
+						<br />
+						You can create meetings with the integrated calendar, conference rooms and invitations are automatically send to everybody
+					</span>
+				</a>
+
+				<a href="#">
+					<img src="images/cut_file_explorer.png" alt="File Explorer" />
+					<span>
+						<b>File Explorer</b>
+						<br />
+						Each room has its own File-Explorer. Each user has his own private drive and additionally there is a public drive to share files with other participants
+					</span>
+				</a>
+
+				<a href="#">
+					<img src="images/cut_integration_api.png" alt="Integration API" />
+					<span>
+						<b>Integration API</b>
+						<br />
+						There is a SOAP/REST API to integrate into your website or intranet, as well
+						as LDAP/ADS connectors and VoIP/Asterisk integration modules
+					</span>
+				</a>
+
+				<a href="#">
+					<img src="images/cut_private_messages.png" alt="Private messages" />
+					<span>
+						<b>Private messages and contacts</b>
+						<br />
+						From the private message center you can send invitations by email
+						and attach meeting invitations to every email
+					</span>
+				</a>
+
+				<a href="#">
+					<img src="images/cut_administration_configuration.png" alt="Administration" />
+					<span>
+						<b>Administration and Configuration</b>
+						<br />
+						You can configure users, rooms, usergroups, config settings or
+						edit labels with a Web-Frontend integrated in the application
+					</span>
+				</a>
+
+				<a href="#">
+					<img src="images/cut_recordings_playback.png" alt="Share and Record" />
+					<span>
+						<b>Screen sharing and Recording</b>
+						<br />
+						You can do screen sharing as well as recording of whole sessions
+						including audio/video. Recordings can be downloaded as AVI/FLV or
+						watched online in the integrated player.
+					</span>
+				</a>
+
+			</div>
+
+
+			<p> Openmeetings provides video conferencing, instant messaging,
+				white board, collaborative document editing and other groupware
+				tools using API functions of the Red5 Streaming Server for Remoting
+				and Streaming.
+			</p>
+
+			<p>
+				OpenMeetings is a project of the Apache, the old project
+				website at
+				<a href="http://code.google.com/p/openmeetings/" target="_BLANK">GoogleCode
+				</a>
+				will receive no updates anymore. The website at Apache is the only
+				place that receives updates.
+			</p>
+
+		</section>
+
+		<section name="News">
+
+			<p>
+			    <strong>
+                    Version 2.2.0 released! See <a href="downloads.html">Downloads page</a>. 
+                    (2013-12-12)
+                </strong>
+                <br />
+			    <strong>
+                    Version 2.1.1 released! See <a href="https://blogs.apache.org/openmeetings/entry/apache_openmeetings_2_1_11" target="_BLANK">Project Blog</a> or <a href="downloads.html">Downloads page</a>. 
+                    (2013-07-06)
+                </strong>
+                <br />
+			    <strong>
+					OpenMeetings 2.1.0 is released! Please check <a href="downloads.html">Downloads page</a>. 
+					(2013-04-01)
+				</strong>
+				<br />
+			    <strong>
+					OpenMeetings new URL, update your filters!
+					<a href="http://openmeetings.apache.org">openmeetings.apache.org</a> is the new home. 
+					(2013-01-28)
+				</strong>
+				<br />
+			    <strong>
+					OpenMeetings on the road to graduate from the Incubator
+					<a href="https://blogs.apache.org/openmeetings/entry/openmeetings_on_the_road_to" target="_BLANK" rel="nofollow">at our blog</a>
+					(2012-12-07)
+				</strong>
+				<br />
+				<strong>
+					Some slides from our Fast Feather Track at the ApacheCon Europe 2012 
+					<a href="https://blogs.apache.org/openmeetings/entry/openmeetings_apachecon_presentation_slide" target="_BLANK" rel="nofollow">at our blog</a>
+					(2012-11-18)
+				</strong>
+				<br />
+				<strong>
+					Update: Builds are available at
+					<a href="https://builds.apache.org/view/M-R/view/OpenMeetings/" target="_BLANK" rel="nofollow">builds.apache.org</a>
+					(2012-08-03)
+				</strong>
+				<br />
+				<strong>
+					<a href="https://blogs.apache.org/openmeetings/entry/apache_openmeetings_2_0_incubating" target="_BLANK" rel="nofollow">Version 2.0 released</a>
+					(2012-07-26)
+				</strong>
+				<br />
+				<strong>New committer: Timur Tleukenov (2012-03-06)</strong>
+				<br />
+				<strong>
+					<a href="http://demo.openmeetings.de" target="_BLANK" rel="nofollow">Demo
+						server</a>
+					updated to r1236172 (2012-01-26)
+				</strong>
+				<br />
+				<strong>New committer: German Grekhov (2011-12-26)</strong>
+				<br />
+				<strong>OpenMeetings has been accepted into the Apache Incubator
+					(2011-11-12).
+				</strong>
+			</p>
+
+		</section>
+
+		<section name="Community">
+			<div>
+				<strong>Who we are</strong>
+				<blockquote>
+					<a href="team-list.html">List of committers</a>
+					.
+				</blockquote>
+			</div>
+			<div>
+				<strong>Users!</strong>
+				<blockquote>
+					We'd love to have you involved. Check out the
+					<a href="get-involved.html">Get involved</a>
+					.
+				</blockquote>
+			</div>
+		</section>
+
+		<section name="Feature details">
+
+			<feature title="Audio and Video Conferencing">
+
+				<image fullhref="images/Features_Screen_Conference_Room_Thumb.png"
+					href="images/Features_Screen_Conference_Room_Thumb.png" title="OpenMeetings Conference Room"
+					width="250" height="175" />
+				<text>
+				<div>
+					There are four options to use OpenMeetings audio/video functions,
+					which you can select during a conference session.
+					<ul>
+						<li>audio + video</li>
+						<li>audio only</li>
+						<li>video only</li>
+						<li>picture only</li>
+					</ul>
+					Additional you can change video-/audio-quality, choose multiple
+					camera resolutions (4:3, 16:9 or 3:2)
+					and choose your input devices.
+				</div>
+				</text>
+			</feature>
+
+			<feature title="Meeting recording and Screen sharing">
+
+				<image href="images/desktopsharing.png" fullhref="images/desktopsharing.png"
+					title="Screensharing-/recording" width="140" height="150" />
+				<image href="images/recordings_timeleine.png" fullhref="images/recordings_timeleine.png"
+					title="Device" width="200" height="115" />
+					
+				<text>
+				<div>
+					<ul>
+						<li>Recorded sessions contain everything including sound recorded
+							from all audio streams in exactly the way you've seen it in the
+							conference.
+						</li>
+					</ul>
+					<ul>
+						<li>Recorded sessions can be downloaded as AVI/FLV files.</li>
+					</ul>
+					<ul>
+						<li>Possibility to select a screen area for sharing.</li>
+					</ul>
+					<ul>
+						<li>Different quality steps for Screensharing.</li>
+					</ul>
+					<ul>
+						<li>Watch and organize recordings in an integrated Drag and Drop
+							File-Explorer
+						</li>
+					</ul>
+				</div>
+				</text>
+			</feature>
+
+			<feature title="File Explorer">
+
+				<image href="images/file_smal.png" title="File Explorer"
+					fullhref="images/file_smal.png" width="135" height="200" />
+				<text>
+				<div>
+					Advanced File-Explorer in every conference room, Drag and Drop
+					interface for managing uploaded files, including the possibility to
+					create a document tree with folders.
+					<br />
+					<br />
+					Private and Public Drive in
+					File-Explorer. The File-Explorer has two
+					different views, one is the
+					<b>Private Drive</b>
+					and the other the
+					<b>Public Drive</b>
+					. The Private Drive
+					always contains the same files.
+					Those files are
+					visible only to the
+					user currently loggedin. The
+					Public Drive is not
+					bound to the user,
+					but to the conference room
+					instead. All users in
+					the conference room
+					have access to the Public
+					Drive.
+				</div>
+				</text>
+			</feature>
+
+			<feature title="Moderating System">
+
+				<image href="images/right_management.png" title="Right management"
+					fullhref="images/right_management.png" width="135" height="216" />
+				<text>
+				<div>
+					During a conference, the moderator can adjust the user permission
+					to every user individually .
+					<ul>
+						<li>
+							<img class="alignnone" title="Allow modaration" src="images/user_add.png"
+								alt="" />
+							Allow/Deny moderation
+						</li>
+						<li>
+							<img class="alignnone" title="Whiteboard Access" src="images/pencil_add.png"
+								alt="" />
+							Allow/Deny to draw on white board
+						</li>
+						<li>
+							<img class="alignnone" title="Screenshare" src="images/monitor_add.png"
+								alt="" />
+							Allow/Deny screen-sharing/record screen
+						</li>
+						<li>
+							<img class="alignnone" title="Remote control" src="images/mouse_add.png"
+								alt="" />
+							Allow/Deny Remote Control Screen
+						</li>
+						<li>
+							<img class="alignnone" title="Remote control" src="images/micro_small.png"
+								alt="" />
+							Give exclusive audio to others or self
+						</li>
+						<li>
+							<img class="alignnone" title="Video Audio" src="images/audio_and_video.png"
+								alt="" />
+							(Re-) Start Audio, Video or Device settings
+						</li>
+					</ul>
+				</div>
+				</text>
+			</feature>
+
+
+			<feature title="Multi-Whiteboard and Chat">
+
+				<image href="images/whiteboard.png" fullhref="images/whiteboard.png"
+					title="Whiteboard" width="240" height="165" />
+				<image href="images/chat.png" fullhref="images/chat.png"
+					title="Chat in Conference Room" width="240" height="68" />
+				<text>
+				<div>
+					Multi-Whiteboard, you can add new whiteboard instances, each
+					white
+					board can have the full range of tools and documents inside.
+					<br />
+					<br />
+					Save white boards. You can save each whiteboard instance as a file.
+					The file is located in the File-Explorer and can be drag n' drop'ed
+					to the white board again and organized like any other document,
+					image or folder.
+					<br />
+					<br />
+					White board with drawing, writing, Drag n' Drop, Resizing, Images
+					(Drag n'
+					Drop from File-Explorer), Symbol(s)/Cliparts .
+					<br />
+					<br />
+					Full-fit does rescale the document on the screen to be 100% visible
+					on all
+					screens no matter what kind of screen resolution different
+					users
+					have.
+					<br />
+					<br />
+					You can import from a wide range of document formats (PDF, DOC,
+					ODT, PPT, et cetera...)
+				</div>
+				</text>
+			</feature>
+
+			<feature title="User and room management">
+
+				<image href="images/dashboard.png" fullhref="images/dashboard.png"
+					title="Dashboard with MyRooms" width="250" height="130" />
+				<text>
+				<div>
+					You can manage users and multiple organizations in a single
+					OpenMeetings instance. You can also create users that only have
+					access via the SOAP-API.
+					<br />
+					<br />
+					MyRooms section. Each user has by default 2 personal rooms that
+					are
+					always accessible exclusively for that user. There are buttons
+					to
+					enter those rooms from the Dashboard.
+					<br />
+					<br />
+					You can assign conference room to all users, or you can assign them
+					only to specific user-groups.
+				</div>
+				</text>
+			</feature>
+
+			<feature title="Private message center">
+				<image href="images/privat_messages.png" fullhref="images/privat_messages.png"
+					title="Private Messages and Contact Search" width="230" height="125" />
+				<text>
+				<div>
+					Send users messages and organize them in folders. You can book
+					conference rooms by sending private messages. The booked event
+					automatically is in your and the participants calendar, changes to
+					that event will be populated to all users booked to the event.
+					<br />
+					<br />
+					User contacts, you can search users and add them to your contacts.
+					You
+					can even give them the right to see your calendar.
+				</div>
+				</text>
+			</feature>
+
+			<feature title="Plan meetings with integrated calendar">
+				<image href="images/calendar.png" fullhref="images/calendar.png"
+					title="Calendar" width="200" height="115" />
+				<text>
+				<div>
+					<ul>
+						<li>Plan your conferencing and invite attendees from OpenMeetings
+							or External.
+						</li>
+						<li>The invited attendees will recieve an E-mail with details to
+							the meetings and a link with a secure hash to the conference
+							room.
+						</li>
+						<li>Share your calendar with your contacts.</li>
+					</ul>
+				</div>
+				</text>
+			</feature>
+
+			<feature title="Polls and Votes">
+				<image href="images/poll.png" fullhref="images/poll.png"
+					title="Create a poll" width="250" height="250" />
+				<text>
+				<div>
+					You can create a poll with yes/no or 1-10 questions, let the
+					user
+					vote and see the voting results.
+					<br />
+					<br />
+					Polls can be stored and results viewed as pie-chart
+				</div>
+				</text>
+			</feature>
+
+			<feature title="Backup">
+				<image href="images/backup.png" fullhref="images/backup.png" title="Backup" width="250" />
+				<text>
+				<div>
+					You can backup all user-generated data including files
+					uploaded by the users in a single ZIP file and import that ZIP into
+					a new installation of OpenMeetings again.
+				</div>
+				</text>
+			</feature>
+
+
+		</section>
+
+	</body>
+</document>
diff --git a/xdocs/installation.xml b/xdocs/installation.xml
new file mode 100644
index 0000000..03548db
--- /dev/null
+++ b/xdocs/installation.xml
@@ -0,0 +1,326 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Home</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="OpenMeetings Installation">

+

+			<p>

+				To update from past versions or migrate see <a href="Upgrade.html">Upgrade</a>.<br/>

+				If you are looking for commercial help have a look at

+				<a href="commercial-support.html" target="_BLANK" rel="nofollow">commercial support</a>.

+			</p>

+			<div>

+				<a href="downloads.html" rel="nofollow">

+					<img src="images/installation_instructions.png" alt="Installation in 3 simple steps" />

+				</a>

+				<p>

+					<i>Note: OpenMeetings requires SUN/Oracle JRE 6, not openJDK!</i><br />

+					<i>

+						Since Version 2.0 you can also install OpenMeetings from command line. Just cd to the unpacked 

+						archive and type ./admin.sh or admin.bat, please see

+						<a href="CommandLineAdmin.html" target="_BLANK" rel="nofollow">Command Line Admin</a>

+						for more options

+					</i>

+				</p>

+			</div>

+			<ol>

+				<li>

+					<b>Recommendation for production environment</b>

+					<div style="margin-top: 10px; margin-bottom:10px">

+						By default OpenMeetings uses the integrated Apache Derby database.

+						For production environment you should consider using

+						<a href="MySQLConfig.html">MySQL</a>

+						,

+						<a href="PostgresConfig.html">Postgres</a>

+						, or for example

+						<a href="IBMDB2Config.html">IBM DB2</a>

+						, or

+						<a href="OracleConfig.html">Oracle</a>

+						, or

+						<a href="MSSQLConfig.html">MSSQL</a>

+					</div>

+				</li>

+				<li>

+					<b>Enabling Image Upload and import to whiteboard</b>

+					<div style="margin-top: 10px; margin-bottom:10px">

+						Install

+						<b>ImageMagick</b>

+						on the server, you can get more information on

+						<a href="http://www.imagemagick.org" rel="nofollow" target="_BLANK">http://www.imagemagick.org

+						</a>

+						regarding installation. The instructions

+						for installation can be

+						found there

+						<a href="http://www.imagemagick.org/script/binary-releases.php"

+							target="_BLANK" rel="nofollow">http://www.imagemagick.org/script/binary-releases.php

+						</a>

+						,

+						however on

+						most Linux systems you can get it via your favorite

+						package

+						managers (apt-get it)

+					</div>

+				</li>

+				<li>

+					<b>Enabling import of PDFs into whiteboard</b>

+					<div style="margin-top: 10px; margin-bottom:10px">

+						<ul>

+							<li>

+								Install

+								<b>GhostScript</b>

+								on the server, you can get more

+								information on

+								<a href="http://www.ghostscript.com/download/gsdnld.html" target="_BLANK"

+									rel="nofollow">

+									http://www.ghostscript.com/download/gsdnld.html

+								</a>

+								regarding

+								installation. The instructions for installation can be

+								found

+								there, however on most Linux systems you can get it via

+								your

+								favorite package managers (apt-get it).

+							</li>

+							<li>

+								Install

+								<b>SWFTools</b>

+								on the server, you can get more information

+								on

+								<a href="http://www.swftools.org/" target="_BLANK" rel="nofollow">http://www.swftools.org/

+								</a>

+								regarding installation. Some of the

+								Linux distributions already

+								have it in there package manager (see

+								<a href="http://packages.debian.org/unstable/utils/swftools"

+									target="_BLANK" rel="nofollow">http://packages.debian.org/unstable/utils/swftools

+								</a>

+								), the

+								recommended version of SWFTools is 0.9 as prior version

+								have a

+								bug that does lead to wrong object dimensions at

+								whiteboard

+							</li>

+						</ul>

+					</div>

+				</li>

+				<li>

+					<b>Enabling import of .doc, .docx, .ppt, .pptx, ... all Office

+						Documents into whitebaord

+					</b>

+					<div style="margin-top: 10px; margin-bottom:10px">

+						<ul>

+							<li>

+								<a href="http://code.google.com/p/jodconverter/" target="_BLANK"

+									rel="nofollow">JODConverter</a>

+								installed (needed since v2.x)

+							</li>

+							<li>OpenOffice or Libre Office Installed</li>

+						</ul>

+						Since Version 2.x of OpenMeetings it is no more required to start

+						OpenOffice (or Libreoffice) service, see

+						<a href="OpenOfficeConverter.html">OpenOfficeConverter</a>

+						for details

+					</div>

+				</li>

+				<li>

+					<b>Enabling Recording and import of .avi, .flv, .mov and .mp4 into

+						whiteboard

+					</b>

+					<div style="margin-top: 10px; margin-bottom:10px">

+						<ul>

+							<li>

+								Install

+								<b>FFMpeg (with -enabled libmp3lame and libx264 options)</b>

+								. You should get FFMPEG in an up to date copy! OpenMeetings is

+								tested with FFMPEG Version 10.3 and latest build from GIT

+								For Windows you can download a Build for example from

+								<a href="http://ffmpeg.zeranoe.com/builds/" target="_BLANK"

+									rel="nofollow">http://ffmpeg.zeranoe.com/builds/ </a>

+								Linux or OSx Users should be able to use one of the various

+								Installation Instructions on the Web. You need to enable

+								libmp3lame and libx264!

+							</li>

+							<li>

+								Install

+								<b>SoX</b>

+								<a href="http://sox.sourceforge.net/" target="_BLANK" rel="nofollow">http://sox.sourceforge.net/

+								</a>

+								. You should install SoX in a up

+								to date copy! SoX 12.xx will NOT

+								work!

+							</li>

+						</ul>

+					</div>

+				</li>

+			</ol>

+

+		</section>

+

+		<section name="Ports, NAT Settings, Customize">

+

+			<p>

+				See

+				<a href="PortSettings.html">PortSettings</a>

+			</p>

+		</section>

+

+		<section name="VMWare">

+			<ul>

+				<li>

+					See

+					<a href="http://nightly.openmeetings.de/openmeetings/builds/vmware/"

+						rel="nofollow">http://nightly.openmeetings.de/openmeetings/builds/vmware/</a>

+				</li>

+				<li>

+					VMWare 1.6.1

+					<a

+						href="http://openstudio.no-ip.info/2011/01/openmeetings-1-6-rc1-vmware-appliance-using-ubuntu-server-10-04-lts/"

+						rel="nofollow">blog-entry</a>

+				</li>

+			</ul>

+		</section>

+

+		<section name="Hardware Requirements">

+			<ul>

+				<li>

+					Minimalistic requirement (without Document Converters, Recorder and

+					Upload feature) 1GHz CPU 1 GB RAM (

+					<i>server-side</i>

+					)

+				</li>

+				<li>

+					Recommended requirement 2x/4x 2GHz ++ CPU (32 or 64Bit) 4GB RAM. If

+					you have a 64Bit Operating System check if there is a OpenOffice

+					64Bit Version

+					<a href="http://download.openoffice.org/other.html#de" rel="nofollow">available

+						for your OS

+					</a>

+					(

+					<i>server-side</i>

+					)

+				</li>

+				<li>

+					Headset/Microphone recommendation: Logitech ClearChat PC Wireless,

+					for example from

+					<a

+						href="http://www.amazon.de/Logitech-ClearChat-kabelloser-Kopfh%C3%B6rer-Transmitter/dp/B00166WSN4"

+						rel="nofollow">Amazon</a>

+					or

+					<a

+						href="http://shop.ebay.com/i.html?_nkw=Logitech+ClearChat.+Wireless&amp;_sacat=0&amp;_trksid=p3286.m270.l1313&amp;LH_BIN=1&amp;LH_IncludeSIF=1&amp;_odkw=Logitech+ClearChat+PC&amp;_osacat=0"

+						rel="nofollow">EBay Auctions</a>

+					(

+					<i>cient-side</i>

+					).

+					<a href="RecommendedHardwareList.html">See all recommendations</a>

+					for cameras, headsets and speakerphones.

+				</li>

+			</ul>

+

+		</section>

+

+		<section name="Debian, Links, Changelog, VoIP">

+

+			<ul>

+				<li>

+					for VoIP and SIP Integration see also

+					<a href="voip-sip-integration.html">VoIPAndSIP</a>

+				</li>

+				<li>

+					<a href="http://meetingslive.sourceforge.net/" rel="nofollow">http://meetingslive.sourceforge.net/

+					</a>

+				</li>

+				<li>

+					<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools">Installation of OM 2.0 for Ubuntu 12.04 x64, Ubuntu 12.10 x64, Debian, Windows XP, 7, 2003, 2008</a>

+				</li>

+				<li>

+					<a

+						href="http://liberamemoria.blogspot.com/2009/02/instalando-openmeetings-07-rc-2-en.html"

+						rel="nofollow">Espanol Version for Debian Installation</a>

+				</li>

+				<li>

+					<a

+						href="http://aitinet.com/blog/wp-content/uploads/2009/08/TUTORIAL-PARA-INSTALACAO-DO-RED5-E-OPENMEETINGS-NO-LINUX-DEBIAN-LENNY-51.pdf"

+						rel="nofollow">Portuguese Version for Debian Installation of 0.9 RC1</a>

+				</li>

+				<li>

+					<a

+						href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools"

+						rel="nofollow">Automatic script installation for Ubuntu/Debian (beta)</a>

+				</li>

+				<li>

+					French version of Installation Instructions:

+					<a

+						href="http://flash.54n.free.fr/?/Root/Debian/OpenMeetings-Installation"

+						rel="nofollow">http://flash.54n.free.fr/?/Root/Debian/OpenMeetings-Installation

+					</a>

+				</li>

+			</ul>

+		</section>

+

+		<section name="Tips and Tricks">

+			<ul>

+				<li>

+					Use the Debug-Application: Enter in your browser

+					<a

+						href="http://$RED-HOST:$RED5-PORT/openmeetings/?swf=maindebug.as3.swf11.swf"

+						rel="nofollow">http://$RED-HOST:$RED5-PORT/openmeetings/?swf=maindebug.as3.swf11.swf

+					</a>

+					for example

+					<a href="http://localhost:5080/openmeetings/?swf=maindebug.as3.swf11.swf"

+						rel="nofollow">http://localhost:5080/openmeetings/?swf=maindebug.as3.swf11.swf

+					</a>

+				</li>

+				<li>If you have Problems with conversion-jobs check your Red5-Log

+					output. There will be error Messages which help you. You must

+					install OpenOffice, ImageMagick, GhostScript and SWFTools to run

+					all conversion-Jobs correctly.

+				</li>

+				<li>if you have problems in converting Files check the Batch-Scripts

+					in $OPENMEETINGS_HOME/jod

+				</li>

+				<li>

+					If you want to use red5 as a service (without red5.bat), you need

+					to move red5\wrapper\wrapper.exe to red5\wrapper.exe. Then change

+					some path in conf\wrapper.conf (like ..\lib\foo.jar to

+					lib\foo.jar). And finally change the register key in

+					HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Red5\ImagePath

+					to point to the new wrapper.

+				</li>

+				<li>

+					you can query a Mysql Database to get the schema_collection by

+					using this query:

+					<div class="xmlcode">

+						SELECT Table_name, TABLE_COLLATION FROM

+						information_schema.tables WHERE table_schema = 'openmeetings'

+						ORDER BY table_name DESC

+					</div>

+				</li>

+			</ul>

+		</section>

+

+	</body>

+

+</document>

+

diff --git a/xdocs/license.xml b/xdocs/license.xml
new file mode 100644
index 0000000..7634d20
--- /dev/null
+++ b/xdocs/license.xml
@@ -0,0 +1,225 @@
+<?xml version="1.0"?>
+
+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">
+<properties>
+<title>License</title>
+<author email="sebawagner@apache.org">
+ Podling Documentation Team</author>
+</properties>
+
+<body>
+<section name="Apache License v2.0">
+
+<source test=""><![CDATA[
+
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+ ]]></source>
+
+</section>
+</body>
+</document>
+
diff --git a/xdocs/mail-lists.xml b/xdocs/mail-lists.xml
new file mode 100644
index 0000000..ee90fb3
--- /dev/null
+++ b/xdocs/mail-lists.xml
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+ -->
+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">
+
+	<properties>
+		<title>Mailing Lists</title>
+		<author email="sebawagner@apache.org">
+			Sebastian Wagner
+		</author>
+	</properties>
+
+	<body>
+		<section name="Apache OpenMeetings Mailing Lists">
+
+			<p>
+				There are currently 4 publicly available mailing lists for OpenMeetings.
+			</p>
+			<p>
+				The commits list is for notification of commits to the OpenMeetings
+				repository.
+			</p>
+			<p>
+				The dev list is for internal discussion among the OpenMeetings
+				developers. It is
+				open to the public if you are interested in seeing how the sausage is
+				made.
+			</p>
+			<p>
+				<b>Note: </b>If your email bounces with status messages like "Delivery Status Notification" it is 
+				likely that you have send your mail as HTML mail. Apache does not like sending HTML emails, see:
+				<br/> 
+				<a href="http://www.apache.org/dev/contrib-email-tips.html#do-not-send-html-mail" target="_BLANK" rel="nofollow">http://www.apache.org/dev/contrib-email-tips.html#do-not-send-html-mail</a>
+			</p>
+			
+			<p>
+				You can search the entire mailing list very easy by using markmail.com, by using the term 
+				"openmeetings" plus your search. Try yourself: <br/>
+				<a href="http://markmail.org/search/?q=openmeetings" target="_BLANK" rel="nofollow">http://markmail.org/search/?q=openmeetings</a>
+			</p>
+
+			<table>
+				<tr>
+					<td>
+						<p>
+							<strong>User List</strong>
+							:
+							<a href="mailto:user@openmeetings.apache.org">
+								user@openmeetings.apache.org
+							</a>
+						</p>
+					</td>
+					<td>
+						<p>
+							<a class="external" rel="nofollow"
+								href="mailto:user-subscribe@openmeetings.apache.org">
+								Subscribe
+							</a>
+						</p>
+					</td>
+					<td>
+						<p>
+							<a class="external" rel="nofollow"
+								href="mailto:user-unsubscribe@openmeetings.apache.org">
+								Unsubscribe
+							</a>
+						</p>
+					</td>
+					<td>
+						<p>
+							<a
+								href="http://mail-archives.apache.org/mod_mbox/openmeetings-user/">
+								Archive
+							</a>
+						</p>
+					</td>
+				</tr>
+				<tr>
+					<td>
+						<p>
+							<strong>Spanish User List</strong>
+							:
+							<a href="mailto:user-espanol@openmeetings.apache.org">
+								user-espanol@openmeetings.apache.org
+							</a>
+						</p>
+					</td>
+					<td>
+						<p>
+							<a class="external" rel="nofollow"
+								href="mailto:user-espanol-subscribe@openmeetings.apache.org">
+								Subscribe
+							</a>
+						</p>
+					</td>
+					<td>
+						<p>
+							<a class="external" rel="nofollow"
+								href="mailto:user-espanol-unsubscribe@openmeetings.apache.org">
+								Unsubscribe
+							</a>
+						</p>
+					</td>
+					<td>
+						<p>
+							<a
+								href="http://mail-archives.apache.org/mod_mbox/openmeetings-user-espanol/">
+								Archive
+							</a>
+						</p>
+					</td>
+				</tr>
+				<tr>
+					<td>
+						<p>
+							<strong>Commits List</strong>
+							:
+							<a href="mailto:commits@openmeetings.apache.org">
+								commits@openmeetings.apache.org
+							</a>
+						</p>
+					</td>
+					<td>
+						<p>
+							<a class="external" rel="nofollow"
+								href="mailto:commits-subscribe@openmeetings.apache.org">
+								Subscribe
+							</a>
+						</p>
+					</td>
+					<td>
+						<p>
+							<a class="external" rel="nofollow"
+								href="mailto:commits-unsubscribe@openmeetings.apache.org">
+								Unsubscribe
+							</a>
+						</p>
+					</td>
+					<td>
+						<p>
+							<a
+								href="http://mail-archives.apache.org/mod_mbox/openmeetings-commits/">
+								Archive
+							</a>
+						</p>
+					</td>
+				</tr>
+				<tr>
+					<td>
+						<p>
+							<strong>Developer List</strong>
+							:
+							<a href="mailto:dev@openmeetings.apache.org">
+								dev@openmeetings.apache.org
+							</a>
+						</p>
+					</td>
+					<td>
+						<p>
+							<a class="external" rel="nofollow"
+								href="mailto:dev-subscribe@openmeetings.apache.org">
+								Subscribe
+							</a>
+						</p>
+					</td>
+					<td>
+						<p>
+							<a class="external" rel="nofollow"
+								href="mailto:dev-unsubscribe@openmeetings.apache.org">
+								Unsubscribe
+							</a>
+						</p>
+					</td>
+					<td>
+						<p>
+							<a
+								href="http://mail-archives.apache.org/mod_mbox/openmeetings-dev">
+								Archive
+							</a>
+						</p>
+					</td>
+				</tr>
+			</table>
+
+		</section>
+	</body>
+</document>
+
diff --git a/xdocs/oauth2.xml b/xdocs/oauth2.xml
new file mode 100644
index 0000000..61aba04
--- /dev/null
+++ b/xdocs/oauth2.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+ -->
+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">
+	<properties>
+		<title>OAuth2 integration</title>
+		<author email="a_horuzhenko@apache.org">OpenMeetings Team</author>
+	</properties>
+	<body>
+		<section name="OAuth2 integration">
+			<p>You need Apache Openmeetings <strong>version 3.0</strong> to apply this guide!</p>
+			<p>You can manage various OAuth2 servers by opening "Administration => OAuth2". There are already created servers like Facebook or Google. You can use them as example or in production. To add your own servers you need to get their documentation to set necessary attributes.</p>
+		</section>
+		<section name="Attributes">
+			<ul>
+				<li><i>Name</i> - displayed in the login dialog text</li>
+				<li><i>client_id</i> and <i>client_secret</i> - credentials which you got from your oauth2 server.</li>
+				<li><i>Redirect uri</i> - put this value into application settings in the oauth2 server.</li>
+				<li><i>Request key URL</i> - an URL which will be used to request access key.</li>
+				<li><i>Request token URL</i> - an URL which will be used to request access token.</li>
+				<li><i>Request token attributes</i> - attributes for access token request.</li>
+				<li><i>Request info URL</i> - an URL which will be used to request authentication attributes.</li>
+				<li><i>Login param name</i> - login key name to get value from info response.</li>
+				<li><i>Email param name</i> - email key name to get value from info response.</li>
+				<li><i>Firstname param name</i> - firstname key name to get value from info response.</li>
+				<li><i>Lastname param name</i> - lastname key name to get value from info response.</li>
+			</ul>
+			<p>Request attributes (request key url, request token url, request token attributes, request info url) may contain next variables as a part:</p>
+			<ul>
+				<li>{$client_id}</li>
+				<li>{$client_secret}</li>
+				<li>{$redirect_uri}</li>
+				<li>{$code}</li>
+				<li>{$access_token}</li>
+			</ul>
+		</section>
+	</body>
+</document>
diff --git a/xdocs/red5sip-integration_2.0.xml b/xdocs/red5sip-integration_2.0.xml
new file mode 100644
index 0000000..9b88d8d
--- /dev/null
+++ b/xdocs/red5sip-integration_2.0.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>SIP-Transport Integration</title>

+		<author email="timur@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="SIP-Transport Integration">

+			<p>

+				You need minimum version 2.0 of Apache OpenMeetings to apply this guide!

+			</p>

+			<p>

+				Here is instruction how-to set up red5sip transport integration with OpenMeetings on Ubuntu 10.04.

+			</p>

+		</section>

+

+        <section name="Setup Asterisk">

+			<div>

+                Run the commands

+                <blockquote>

+                    <i>

+                    sudo apt-get update<br/>

+                    sudo apt-get install asterisk asterisk-mysql

+                    </i>

+                </blockquote>

+            </div>

+            <div>

+                Ubuntu 10.04 has broken asterisk-mysql version. For other distribution next commands not needed:

+                <blockquote>

+                    <i>

+                        aptitude purge asterisk-mysql

+                        <br/>

+                        cd /tmp

+                        <br/>

+                        apt-get build-dep asterisk-mysql

+                        <br/>

+                        apt-get -b source asterisk-mysql

+                        <br/>

+                        dpkg -i asterisk-mysql_1.6.2.0-1_i386.deb

+                    </i>

+

+                </blockquote>

+            </div>

+            <div>

+                Enable asterisk mysql realtime module:<br/><br/>

+                Add string

+                <blockquote>

+                    <i>load => res_config_mysql.so</i>

+                </blockquote>

+                to the /etc/asterisk/modules.conf into the "modules" section.

+            </div>

+            <div>

+                Configure mysql realtime module:<br/><br/>

+

+                Create file /etc/asterisk/res_mysql.conf and add lines:

+                <blockquote>

+                    <i>[general]

+                        <br/>

+                        dbhost=127.0.0.1

+                        <br/>

+                        dbname=openmeetings

+                        <br/>

+                        dbuser=root

+                        <br/>

+                        dbpass=

+                        <br/>

+                        dbport=3306

+                    </i>

+

+                </blockquote>

+            </div>

+            <div>

+                Add next lines into the /etc/asterisk/extconfig.conf:

+                <blockquote>

+                    <i>[settings]

+                        <br/>

+                        sipusers => mysql,general,sipusers

+                        <br/>

+                        sippeers => mysql,general,sipusers

+                        <br/>

+                        extensions => mysql,general,extensions

+                        <br/>

+                        meetme => mysql,general,meetme

+                    </i>

+

+                </blockquote>

+            </div>

+            <div>

+                Add next lines into the /etc/asterisk/extensions.conf:

+                <blockquote>

+                    <i>[rooms]

+                        <br/>

+                        switch => Realtime/@

+                    </i>

+

+                </blockquote>

+            </div>

+

+            <div>

+                Restart asterisk:

+                <blockquote>

+                    <i>service asterisk restart</i>

+                </blockquote>

+                Insert, for example, SIP user with name 'test':

+                <blockquote>

+                    <i>

+                        INSERT INTO sipusers (allow, context, disallow, host, name, secret) VALUES ('ulaw' , 'rooms', NULL, 'dynamic' , 'test', '12345');

+                    </i>

+                </blockquote>

+            </div>

+		</section>

+

+        <section name="Setup red5sip transport">

+            <div>

+                Download red5sip from<blockquote>http://red5phone.googlecode.com/svn/branches/red5sip</blockquote>

+            </div>

+            <p>

+                Build with Apache Ant

+            </p>

+            <div>

+                Install jsvc:

+                <blockquote>

+                    <i>apt-get install jsvc</i>

+                </blockquote>

+            </div>

+            <div>

+                Insert proper values to the /opt/red5sip/settings.properties

+

+                <blockquote>

+                    <i>red5.host - red5 server address (127.0.0.1)

+                        <br/>

+                        sip.obproxy - asterisk adderss (127.0.0.1)

+                        <br/>

+                        sip.phone - sip phone number (test)

+                        <br/>

+                        sip.authid - sip auth id (test)

+                        <br/>

+                        sip.secret - sip password (12345)

+                        <br/>

+                        sip.realm - sip realm, "asterisk" by default

+                        <br/>

+                        sip.proxy -

+                        <br/>

+                        rooms - ids of openmeetings rooms, can be, for example, 2,3,5,6

+                    </i>

+

+                </blockquote>

+            </div>

+            <div>

+                Add red5sip to autostart:

+                <blockquote>

+                    <i>ln -s /opt/red5sip/red5sip.sh /etc/init.d/red5sip

+                        <br/>

+                        chmod a+x /etc/init.d/red5sip

+                        <br/>

+                        update-rc.d /etc/init.d/red5sip defaults

+                    </i>

+

+                </blockquote>

+            </div>

+            <div>

+                Start openmeetings

+                <blockquote>

+                    <i>service red5 start</i>

+                </blockquote>

+            </div>

+            <div>

+                Start red5sip

+                <blockquote>

+                    <i>service red5sip start</i>

+                </blockquote>

+            </div>

+        </section>

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/red5sip-integration_2.1.xml b/xdocs/red5sip-integration_2.1.xml
new file mode 100644
index 0000000..cbf9b16
--- /dev/null
+++ b/xdocs/red5sip-integration_2.1.xml
@@ -0,0 +1,314 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+ -->
+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">
+	<properties>
+		<title>SIP-Transport Integration</title>
+		<author email="solomax@apache.org">OpenMeetings Team</author>
+	</properties>
+	<body>
+		<section name="SIP-Transport Integration">
+			<p>You need Apache OpenMeetings <strong>version 2.1</strong> to apply this guide!</p>
+			<p>You need Asterisk <strong>version 11</strong> to apply this guide!</p>
+			<p>Here is instruction how-to set up red5sip transport integration with OpenMeetings on Ubuntu 12.10.</p>
+		</section>
+		<section name="Prerequisites">
+			<div>
+				Run the commands
+				<blockquote>
+					<i>
+						sudo apt-get update &amp;&amp; sudo apt-get upgrade<br />
+						sudo apt-get install build-essential linux-headers-`uname -r` libxml2-dev libncurses5-dev libsqlite3-dev sqlite3 openssl libssl-dev<br />
+					</i>
+				</blockquote>
+			</div>
+		</section>
+		<section name="ODBC Setup">
+			<div>
+				Run the commands
+				<blockquote>
+					<i>
+						sudo apt-get update<br />
+						sudo apt-get install unixODBC unixODBC-dev libmyodbc
+					</i>
+				</blockquote>
+			</div>
+			<div>
+				Set up Asterisk connector:<br /><br />
+				Modify file <tt>/etc/odbc.ini</tt> as follows: (replace USER, PASSWORD and Socket with values relative to your system)
+				<blockquote>
+					<i>
+						[asterisk-connector]<br />
+						Description = MySQL connection to 'openmeetings' database<br />
+						Driver = MySQL<br />
+						Database = openmeetings<br />
+						Server = localhost<br />
+						USER = root<br />
+						PASSWORD =<br />
+						Port = 3306<br />
+						Socket = /var/run/mysqld/mysqld.sock<br />
+					</i>
+				</blockquote><br /><br />
+				Modify file <tt>/etc/odbcinst.ini</tt> as follows: (replace the path to the *.so files below with the real paths on your system)
+				<blockquote>
+					(The path below is for x32 server, x64 version is most probably located at <tt>/usr/lib/x86_64-linux-gnu/odbc</tt>)<br/>
+					<i>
+						[MySQL]<br />
+						Description = ODBC for MySQL<br />
+						Driver = /usr/lib/i386-linux-gnu/odbc/libmyodbc.so<br />
+						Setup = /usr/lib/i386-linux-gnu/odbc/libodbcmyS.so<br />
+						FileUsage = 1<br />
+					</i>
+				</blockquote><br /><br />
+				Run the following command to ensure everything works as expected:
+				<blockquote>
+					<i>echo "select 1" | isql -v asterisk-connector</i>
+				</blockquote>
+			</div>
+		</section>
+		<section name="Building and setting up Asterisk">
+			<div>
+				Run the commands
+				<blockquote>
+					<i>
+						sudo mkdir /usr/src/asterisk &amp;&amp; cd /usr/src/asterisk<br />
+						sudo wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-11.2.1.tar.gz<br />
+						sudo tar -xvzf asterisk-11.2.1.tar.gz<br />
+						cd ./asterisk-11.2.1<br />
+						sudo make clean<br />
+						sudo ./configure<br />
+						sudo make<br />
+						sudo make install<br />
+						sudo make samples<br />
+						sudo make config<br />
+						sudo service asterisk start<br />
+					</i>
+				</blockquote>
+			</div>
+		</section>
+		<section name="Configure Asterisk">
+			<div>
+				Enable asterisk ODBC module:<br /><br />
+				Modify "[modules]" section of <tt>/etc/asterisk/modules.conf</tt> as follows:<br />
+				<strong>Add/uncomment the following lines</strong>
+				<blockquote>
+					<i>
+						preload => res_odbc.so<br />
+						preload => res_config_odbc.so<br />
+					</i>
+				</blockquote>
+			</div><br />
+			<div>
+				Create/update "[asterisk]" section in <tt>/etc/asterisk/res_odbc.conf</tt>:
+				<blockquote>
+					<i>
+						[asterisk]<br />
+						enabled => yes<br />
+						dsn => asterisk-connector<br />
+						pre-connect => yes
+					</i>
+				</blockquote>
+			</div><br />
+			<div>
+				Modify <tt>/etc/asterisk/sip.conf</tt><br />
+				<strong>Add/uncomment the following line</strong>:<br />
+				<blockquote>
+					<i>
+						videosupport=yes<br />
+						rtcachefriends=yes<br />
+					</i>
+				</blockquote>
+				<strong>Increase maxexpiry value to 43200</strong>:<br />
+				<blockquote>
+					<i>
+						maxexpiry=43200<br />
+				        </i>
+				</blockquote>
+				<strong>Add user for the "SIP Transport"</strong>:<br />
+				<blockquote>
+					<i>
+						[red5sip_user]<br />
+						type=friend<br />
+						secret=12345<br />
+						disallow=all<br />
+						allow=ulaw<br />
+						allow=h264<br />
+						host=dynamic<br />
+						nat=force_rport,comedia<br />
+						context=rooms-red5sip<br />
+					</i>
+				</blockquote>
+			</div><br />
+			<div>
+				Add next lines into the <tt>/etc/asterisk/extconfig.conf</tt>:
+				<blockquote>
+					<i>
+						[settings]<br />
+						sippeers => odbc,asterisk,sipusers<br />
+					</i>
+				</blockquote>
+			</div><br />
+			<div>
+				Modify <tt>/etc/asterisk/extensions.conf</tt><br />
+				<strong>Add the following section</strong>:<br />
+				<blockquote>
+					<i>
+						[rooms]<br />
+						exten => _400X!,1,GotoIf($[${DB_EXISTS(openmeetings/rooms/${EXTEN})}]?ok:notavail)<br />
+						exten => _400X!,n(ok),SET(PIN=${DB(openmeetings/rooms/${EXTEN})})<br />
+						exten => _400X!,n,Set(CONFBRIDGE(user,template)=sip_user)<br />
+						exten => _400X!,n,Set(CONFBRIDGE(user,pin)=${PIN})<br />
+						exten => _400X!,n(ok),Confbridge(${EXTEN},default_bridge,)<br />
+						exten => _400X!,n,Hangup<br />
+						exten => _400X!,n(notavail),Answer()<br />
+						exten => _400X!,n,Playback(invalid)<br />
+						exten => _400X!,n,Hangup<br />
+						<br />
+						[rooms-originate]<br />
+						exten => _400X!,1,Confbridge(${EXTEN},default_bridge,sip_user)<br />
+						exten => _400X!,n,Hangup<br />
+						<br />
+						[rooms-out]<br />
+						; *****************************************************<br />
+						; Extensions for outgoing calls from Openmeetings room.<br />
+						; *****************************************************<br />
+						<br />
+						[rooms-red5sip]<br />
+						exten => _400X!,1,GotoIf($[${DB_EXISTS(openmeetings/rooms/${EXTEN})}]?ok:notavil)<br />
+						exten => _400X!,n(ok),Confbridge(${EXTEN},default_bridge,red5sip_user)<br />
+						exten => _400X!,n(notavail),Hangup <br />
+					</i>
+				</blockquote>
+			</div><br />
+			<div>
+				Modify <tt>/etc/asterisk/confbridge.conf</tt><br />
+				<strong>Add/Modify the following secions</strong>:<br />
+				<blockquote>
+					<i>
+						[general]<br />
+						<br />
+						[red5sip_user]<br />
+						type=user<br />
+						marked=yes<br />
+						dsp_drop_silence=yes<br />
+						denoise=true<br />
+						<br />
+						[sip_user]<br />
+						type=user<br />
+						end_marked=yes<br />
+						wait_marked=yes<br />
+						music_on_hold_when_empty=yes<br />
+						dsp_drop_silence=yes<br />
+						denoise=true<br />
+						<br />
+						[default_bridge]<br />
+						type=bridge<br />
+						video_mode=follow_talker<br /> 
+					</i>
+				</blockquote>
+			</div><br />
+			<div>
+				To enable Asterisk Manager API modify <tt>/etc/asterisk/manager.conf</tt><br />
+				<strong>Add/Modify the following sections</strong>:<br />
+				<blockquote>
+					<i>
+						[general]<br />
+						enabled = yes<br />
+						webenabled = no<br />
+						port = 5038<br />
+						bindaddr = 127.0.0.1<br />
+						<br />
+						[openmeetings]<br />
+						secret = 12345<br />
+						deny=0.0.0.0/0.0.0.0<br />
+						permit=127.0.0.1/255.255.255.0<br />
+						read = all<br />
+						write = all<br />
+					</i>
+				</blockquote>
+			</div><br />
+			<div>
+				Update Openmeetings with creadentials for Asterisk manager. 
+				Modify <tt>/opt/red5/webapps/openmeetings/WEB-INF/openmeetings-applicationContext.xml</tt><br />
+				find <strong>&lt;bean id="sipDao" class="org.apache.openmeetings.data.conference.dao.SipDao"&gt;</strong>
+				uncomment its parameters and set it to your custom values.
+				<p style="font-size: larger; color: blue;">
+					IMPORTANT: this step should be done <strong>BEFORE</strong> system install/restore
+					otherwise all SIP related room information will be lost
+				</p>   
+			</div><br />
+			<div>
+				Restart asterisk:
+				<blockquote>
+					<i>service asterisk restart</i>
+				</blockquote>
+			</div><br />
+		</section>
+
+		<section name="Setup red5sip transport">
+			<div>
+				Download red5sip from
+				<blockquote>http://red5phone.googlecode.com/svn/branches/red5sip_2.1</blockquote>
+			</div>
+			<div>
+				Build with Apache Ant
+				<blockquote>
+					<i>ant</i>
+				</blockquote>
+			</div>
+			<div>
+				Insert proper values to the <tt>/opt/red5sip/settings.properties</tt>
+
+				<blockquote>
+					<i>
+						red5.host=127.0.0.1 # red5 server address<br />
+						om.context=openmeetings # Openmeetings context<br /> 
+						red5.codec=asao<br />
+						red5.codec.rate=22 # should correlate with mic settings in public/config.xml<br />
+						sip.obproxy=127.0.0.1 # asterisk adderss<br />
+						sip.phone=red5sip_user # sip phone number<br />
+						sip.authid=red5sip_user # sip auth id<br />
+						sip.secret=12345 # sip password<br />
+						sip.realm=asterisk # sip realm<br />
+						sip.proxy=127.0.0.1 # address of sip proxy <br />
+						rooms.forceStart=no # TBD <br />
+						rooms=1 # TBD (not in use) <br />
+					</i>
+				</blockquote>
+			</div>
+			<div>
+				Add red5sip to autostart:
+				<blockquote>
+					<i>
+						sudo cp /opt/red5sip/red5sip /etc/init.d/<br />
+						sudo chmod a+x /etc/init.d/red5sip<br />
+						sudo update-rc.d red5sip defaults
+					</i>
+				</blockquote>
+			</div>
+			<div>
+				Start openmeetings
+				<blockquote>
+					<i>service red5 start</i>
+				</blockquote>
+			</div>
+			<div>
+				Start red5sip
+				<blockquote>
+					<i>service red5sip start</i>
+				</blockquote>
+			</div>
+		</section>
+	</body>
+</document>
diff --git a/xdocs/red5sip-integration_3.0.xml b/xdocs/red5sip-integration_3.0.xml
new file mode 100644
index 0000000..dda4da2
--- /dev/null
+++ b/xdocs/red5sip-integration_3.0.xml
@@ -0,0 +1,314 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+ -->
+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">
+	<properties>
+		<title>SIP-Transport Integration</title>
+		<author email="solomax@apache.org">OpenMeetings Team</author>
+	</properties>
+	<body>
+		<section name="SIP-Transport Integration">
+			<p>You need Apache OpenMeetings <strong>version 3.0</strong> to apply this guide!</p>
+			<p>You need Asterisk <strong>version 11</strong> to apply this guide!</p>
+			<p>Here is instruction how-to set up red5sip transport integration with OpenMeetings on Ubuntu 12.10.</p>
+		</section>
+		<section name="Prerequisites">
+			<div>
+				Run the commands
+				<blockquote>
+					<i>
+						sudo apt-get update &amp;&amp; sudo apt-get upgrade<br />
+						sudo apt-get install build-essential linux-headers-`uname -r` libxml2-dev libncurses5-dev libsqlite3-dev sqlite3 openssl libssl-dev<br />
+					</i>
+				</blockquote>
+			</div>
+		</section>
+		<section name="ODBC Setup">
+			<div>
+				Run the commands
+				<blockquote>
+					<i>
+						sudo apt-get update<br />
+						sudo apt-get install unixODBC unixODBC-dev libmyodbc
+					</i>
+				</blockquote>
+			</div>
+			<div>
+				Set up Asterisk connector:<br /><br />
+				Modify file <tt>/etc/odbc.ini</tt> as follows: (replace USER, PASSWORD and Socket with values relative to your system)
+				<blockquote>
+					<i>
+						[asterisk-connector]<br />
+						Description = MySQL connection to 'openmeetings' database<br />
+						Driver = MySQL<br />
+						Database = openmeetings<br />
+						Server = localhost<br />
+						USER = root<br />
+						PASSWORD =<br />
+						Port = 3306<br />
+						Socket = /var/run/mysqld/mysqld.sock<br />
+					</i>
+				</blockquote><br /><br />
+				Modify file <tt>/etc/odbcinst.ini</tt> as follows: (replace the path to the *.so files below with the real paths on your system)
+				<blockquote>
+					(The path below is for x32 server, x64 version is most probably located at <tt>/usr/lib/x86_64-linux-gnu/odbc</tt>)<br/>
+					<i>
+						[MySQL]<br />
+						Description = ODBC for MySQL<br />
+						Driver = /usr/lib/i386-linux-gnu/odbc/libmyodbc.so<br />
+						Setup = /usr/lib/i386-linux-gnu/odbc/libodbcmyS.so<br />
+						FileUsage = 1<br />
+					</i>
+				</blockquote><br /><br />
+				Run the following command to ensure everything works as expected:
+				<blockquote>
+					<i>echo "select 1" | isql -v asterisk-connector</i>
+				</blockquote>
+			</div>
+		</section>
+		<section name="Building and setting up Asterisk">
+			<div>
+				Run the commands
+				<blockquote>
+					<i>
+						sudo mkdir /usr/src/asterisk &amp;&amp; cd /usr/src/asterisk<br />
+						sudo wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-11.2.1.tar.gz<br />
+						sudo tar -xvzf asterisk-11.2.1.tar.gz<br />
+						cd ./asterisk-11.2.1<br />
+						sudo make clean<br />
+						sudo ./configure<br />
+						sudo make<br />
+						sudo make install<br />
+						sudo make samples<br />
+						sudo make config<br />
+						sudo service asterisk start<br />
+					</i>
+				</blockquote>
+			</div>
+		</section>
+		<section name="Configure Asterisk">
+			<div>
+				Enable asterisk ODBC module:<br /><br />
+				Modify "[modules]" section of <tt>/etc/asterisk/modules.conf</tt> as follows:<br />
+				<strong>Add/uncomment the following lines</strong>
+				<blockquote>
+					<i>
+						preload => res_odbc.so<br />
+						preload => res_config_odbc.so<br />
+					</i>
+				</blockquote>
+			</div><br />
+			<div>
+				Create/update "[asterisk]" section in <tt>/etc/asterisk/res_odbc.conf</tt>:
+				<blockquote>
+					<i>
+						[asterisk]<br />
+						enabled => yes<br />
+						dsn => asterisk-connector<br />
+						pre-connect => yes
+					</i>
+				</blockquote>
+			</div><br />
+			<div>
+				Modify <tt>/etc/asterisk/sip.conf</tt><br />
+				<strong>Add/uncomment the following line</strong>:<br />
+				<blockquote>
+					<i>
+						videosupport=yes<br />
+						rtcachefriends=yes<br />
+					</i>
+				</blockquote>
+				<strong>Increase maxexpiry value to 43200</strong>:<br />
+				<blockquote>
+					<i>
+						maxexpiry=43200<br />
+				        </i>
+				</blockquote>
+				<strong>Add user for the "SIP Transport"</strong>:<br />
+				<blockquote>
+					<i>
+						[red5sip_user]<br />
+						type=friend<br />
+						secret=12345<br />
+						disallow=all<br />
+						allow=ulaw<br />
+						allow=h264<br />
+						host=dynamic<br />
+						nat=force_rport,comedia<br />
+						context=rooms-red5sip<br />
+					</i>
+				</blockquote>
+			</div><br />
+			<div>
+				Add next lines into the <tt>/etc/asterisk/extconfig.conf</tt>:
+				<blockquote>
+					<i>
+						[settings]<br />
+						sippeers => odbc,asterisk,sipusers<br />
+					</i>
+				</blockquote>
+			</div><br />
+			<div>
+				Modify <tt>/etc/asterisk/extensions.conf</tt><br />
+				<strong>Add the following section</strong>:<br />
+				<blockquote>
+					<i>
+						[rooms]<br />
+						exten => _400X!,1,GotoIf($[${DB_EXISTS(openmeetings/rooms/${EXTEN})}]?ok:notavail)<br />
+						exten => _400X!,n(ok),SET(PIN=${DB(openmeetings/rooms/${EXTEN})})<br />
+						exten => _400X!,n,Set(CONFBRIDGE(user,template)=sip_user)<br />
+						exten => _400X!,n,Set(CONFBRIDGE(user,pin)=${PIN})<br />
+						exten => _400X!,n(ok),Confbridge(${EXTEN},default_bridge,)<br />
+						exten => _400X!,n,Hangup<br />
+						exten => _400X!,n(notavail),Answer()<br />
+						exten => _400X!,n,Playback(invalid)<br />
+						exten => _400X!,n,Hangup<br />
+						<br />
+						[rooms-originate]<br />
+						exten => _400X!,1,Confbridge(${EXTEN},default_bridge,sip_user)<br />
+						exten => _400X!,n,Hangup<br />
+						<br />
+						[rooms-out]<br />
+						; *****************************************************<br />
+						; Extensions for outgoing calls from Openmeetings room.<br />
+						; *****************************************************<br />
+						<br />
+						[rooms-red5sip]<br />
+						exten => _400X!,1,GotoIf($[${DB_EXISTS(openmeetings/rooms/${EXTEN})}]?ok:notavil)<br />
+						exten => _400X!,n(ok),Confbridge(${EXTEN},default_bridge,red5sip_user)<br />
+						exten => _400X!,n(notavail),Hangup <br />
+					</i>
+				</blockquote>
+			</div><br />
+			<div>
+				Modify <tt>/etc/asterisk/confbridge.conf</tt><br />
+				<strong>Add/Modify the following secions</strong>:<br />
+				<blockquote>
+					<i>
+						[general]<br />
+						<br />
+						[red5sip_user]<br />
+						type=user<br />
+						marked=yes<br />
+						dsp_drop_silence=yes<br />
+						denoise=true<br />
+						<br />
+						[sip_user]<br />
+						type=user<br />
+						end_marked=yes<br />
+						wait_marked=yes<br />
+						music_on_hold_when_empty=yes<br />
+						dsp_drop_silence=yes<br />
+						denoise=true<br />
+						<br />
+						[default_bridge]<br />
+						type=bridge<br />
+						video_mode=follow_talker<br /> 
+					</i>
+				</blockquote>
+			</div><br />
+			<div>
+				To enable Asterisk Manager API modify <tt>/etc/asterisk/manager.conf</tt><br />
+				<strong>Add/Modify the following sections</strong>:<br />
+				<blockquote>
+					<i>
+						[general]<br />
+						enabled = yes<br />
+						webenabled = no<br />
+						port = 5038<br />
+						bindaddr = 127.0.0.1<br />
+						<br />
+						[openmeetings]<br />
+						secret = 12345<br />
+						deny=0.0.0.0/0.0.0.0<br />
+						permit=127.0.0.1/255.255.255.0<br />
+						read = all<br />
+						write = all<br />
+					</i>
+				</blockquote>
+			</div><br />
+			<div>
+				Update Openmeetings with creadentials for Asterisk manager. 
+				Modify <tt>/opt/red5/webapps/openmeetings/WEB-INF/classes/openmeetings-applicationContext.xml</tt><br />
+				find <strong>&lt;bean id="sipDao" class="org.apache.openmeetings.db.dao.room.SipDao"&gt;</strong>
+				uncomment its parameters and set it to your custom values.
+				<p style="font-size: larger; color: blue;">
+					IMPORTANT: this step should be done <strong>BEFORE</strong> system install/restore
+					otherwise all SIP related room information will be lost
+				</p>   
+			</div><br />
+			<div>
+				Restart asterisk:
+				<blockquote>
+					<i>service asterisk restart</i>
+				</blockquote>
+			</div><br />
+		</section>
+
+		<section name="Setup red5sip transport">
+			<div>
+				Download red5sip from
+				<blockquote>http://red5phone.googlecode.com/svn/branches/red5sip_2.1</blockquote>
+			</div>
+			<div>
+				Build with Apache Ant
+				<blockquote>
+					<i>ant</i>
+				</blockquote>
+			</div>
+			<div>
+				Insert proper values to the <tt>/opt/red5sip/settings.properties</tt>
+
+				<blockquote>
+					<i>
+						red5.host=127.0.0.1 # red5 server address<br />
+						om.context=openmeetings # Openmeetings context<br /> 
+						red5.codec=asao<br />
+						red5.codec.rate=22 # should correlate with mic settings in public/config.xml<br />
+						sip.obproxy=127.0.0.1 # asterisk adderss<br />
+						sip.phone=red5sip_user # sip phone number<br />
+						sip.authid=red5sip_user # sip auth id<br />
+						sip.secret=12345 # sip password<br />
+						sip.realm=asterisk # sip realm<br />
+						sip.proxy=127.0.0.1 # address of sip proxy <br />
+						rooms.forceStart=no # TBD <br />
+						rooms=1 # TBD (not in use) <br />
+					</i>
+				</blockquote>
+			</div>
+			<div>
+				Add red5sip to autostart:
+				<blockquote>
+					<i>
+						sudo cp /opt/red5sip/red5sip /etc/init.d/<br />
+						sudo chmod a+x /etc/init.d/red5sip<br />
+						sudo update-rc.d red5sip defaults
+					</i>
+				</blockquote>
+			</div>
+			<div>
+				Start openmeetings
+				<blockquote>
+					<i>service red5 start</i>
+				</blockquote>
+			</div>
+			<div>
+				Start red5sip
+				<blockquote>
+					<i>service red5sip start</i>
+				</blockquote>
+			</div>
+		</section>
+	</body>
+</document>
diff --git a/xdocs/stylesheets/errortable.xsl b/xdocs/stylesheets/errortable.xsl
new file mode 100644
index 0000000..55b77fd
--- /dev/null
+++ b/xdocs/stylesheets/errortable.xsl
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

+	<xsl:output method="xml"/>

+	

+	<xsl:template match="ROOT">

+<document>

+<xsl:comment>

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ </xsl:comment>

+	<properties>

+		<title>Openmeetings Errors table</title>

+		<author email="solomax@apache.org">Apache OpenMeetings Documentation Robot</author>

+	</properties>

+	<body>

+		<section name="Openmeetings Errors table">

+		<table>

+			<tr>

+				<th>Code</th>

+				<th>Type</th>

+				<th>Description</th>

+			</tr>

+			<xsl:apply-templates/>

+		</table>

+		</section>

+	</body>

+</document>

+	</xsl:template>

+	

+	<xsl:template match="row">

+			<tr>

+				<td>-<xsl:value-of select="field[@name='errorvalues_id']"/></td>

+				<td>

+					<xsl:variable name="typeId" select="field[@name='errortype_id']"/>

+					<xsl:variable name="x">

+						<xsl:choose>

+							<xsl:when test="$typeId='1'">322</xsl:when>

+							<xsl:otherwise>323</xsl:otherwise>

+						</xsl:choose>

+					</xsl:variable>

+					<xsl:value-of select="document('../../src/main/webapp/languages/english.xml')/language/string[@id=$x]/value" />

+				</td>

+				<td>

+					<xsl:variable name="descId" select="field[@name='fieldvalues_id']"/>

+					<xsl:value-of select="document('../../src/main/webapp/languages/english.xml')/language/string[@id=$descId]/value" />

+				</td>

+			</tr>

+	</xsl:template>

+</xsl:stylesheet>
\ No newline at end of file
diff --git a/xdocs/stylesheets/project.xml b/xdocs/stylesheets/project.xml
new file mode 100644
index 0000000..05f27d4
--- /dev/null
+++ b/xdocs/stylesheets/project.xml
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

+    xsi:noNamespaceSchemaLocation="project.xsd"

+	name="Apache OpenMeetings Project"

+    href="http://openmeetings.apache.org/">

+

+    <title>Apache OpenMeetings</title>

+    <!--  -->

+    <logo href="/images/logo-2.jpg">Apache OpenMeetings</logo>

+	

+    <body>

+

+    <menu name="General">

+        <item name="Home"                   href="/index.html"/>

+        <item name="License"                href="/license.html"/>

+        <item name="ASF"                    href="http://www.apache.org/"/>

+        <item name="Downloads"              href="/downloads.html"/>

+        <item name="Commercial Support"     href="/commercial-support.html"/>

+    </menu>

+    

+    <menu name="Installation and Upgrade">

+    	<item name="Installation"           href="/installation.html"/>

+    	<item name="Upgrade"           		href="/Upgrade.html"/>

+    	<item name="Tutorials"				href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools" />

+    	<item name="Command Line Admin"		href="/CommandLineAdmin.html" />

+    </menu>

+

+    <menu name="Community">

+        <item name="Get Involved"           href="/get-involved.html"/>

+        <item name="Committers"             href="/team-list.html"/>

+        <item name="Mailing Lists"          href="/mail-lists.html"/>

+    	<item name="Wiki"                   href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/" />

+    </menu>

+

+    <menu name="Development">

+        <item name="Source Code"            href="/svn.html"/>

+        <item name="Bugs / Issues (JIRA)"   href="http://issues.apache.org/jira/browse/OPENMEETINGS"/>

+        <item name="Dependencies"           href="/dependencies.html"/>

+        <item name="Build Instructions"     href="/BuildInstructions.html"/>

+        <item name="JUnit Testing"          href="/JUnitTesting.html"/>

+        <item name="Manual Testing"         href="/ManualTesting.html"/>

+        <item name="Release Guide"          href="/ReleaseGuide.html"/>

+        <item name="Website Guide"          href="/WebsiteGuide.html"/>

+    </menu>

+    

+    <menu name="Integration">

+        <item name="SOAP/REST API"          href="/SoapRestAPI.html" />

+        <item name="REST API Sample"        href="/RestAPISample.html" />

+        <item name="Ldap and ADS"           href="/LdapAndADS.html" />

+	<item name="OAuth2"		    href="/oauth2.html" />

+        <item name="VoIP and SIP"           href="/voip-sip-integration.html" />

+        <item name="Errors table"           href="/ErrorsTable.html" />

+    </menu>

+    

+    <menu name="Plugins">

+        <item name="Moodle Plugin"          href="/MoodlePlugin.html" />

+        <item name="Sakai Plugin"          	href="/SakaiPlugin.html" />

+        <item name="Jira Plugin"          	href="/JiraPlugin.html" />

+        <item name="Joomla Plugin"          href="/JoomlaPlugin.html" />

+        <item name="Drupal Plugin"          href="/DrupalPlugin.html" />

+		<item name="Bitrix Plugin"			href="/BitrixPlugin.html" />

+        <item name="Confluence Plugin"      href="/ConfluencePlugin.html" />

+        <item name="SugarCRM Plugin"        href="/SugarCRMPlugin.html" />

+        <item name="Redmine Plugin"         href="/RedminePlugin.html" />

+    </menu>

+    

+    <menu name="Configuration">

+    	<item name="DB Sample Configurations" >

+    		<subitem name="Apache Derby" href="/ApacheDerbyConfig.html" />

+    		<subitem name="IBM DB2" href="/IBMDB2Config.html" />

+    		<subitem name="Oracle" href="/OracleConfig.html" />

+    		<subitem name="MySQL" href="/MySQLConfig.html" />

+    		<subitem name="Postgres" href="/PostgresConfig.html" />

+    		<subitem name="MSSQL" href="/MSSQLConfig.html" />
+    	</item>

+    	<item name="Localization and languages" >

+    		<subitem name="Internationalisation" href="/Internationalisation.html" />

+    		<subitem name="LanguageEditor" href="/LanguageEditor.html" />

+    		<subitem name="TimeZoneHandling" href="/TimeZoneHandling.html" />

+    		<subitem name="EditTemplates" href="/EditTemplates.html" />

+    	</item>

+    	<item name="NAT Port Settings" >

+    		<subitem name="Port settings" href="/PortSettings.html" />

+    	</item>

+    	<item name="Performance" >

+    		<subitem name="JVM performance tuning" href="/JVMPerformanceTuning.html" />

+    	</item>

+    	<item name="User Interface">

+    		<subitem name="Themes" href="/themes-and-branding.html" />

+    		<subitem name="Dashboard" href="/Dashboard.html" />

+    		<subitem name="Webcam resolutions" href="/WebcamResolutions.html" />

+    		<subitem name="Room layout options" href="/ConferenceRoomLayoutOptions.html" />

+    		<subitem name="Hot Keys" href="/HotKeys.html" />

+    	</item>

+    	<item name="Customization" >

+    		<subitem name="Webapp name/path" href="/WebappNamePath.html" />

+    		<subitem name="Navigation" href="/Navigation.html" />

+    		<subitem name="Calendar and timezone" href="/CalendarAndTimezone.html" />

+    		<subitem name="Custom room type" href="/CustomRoomTypeHowTo.html" />

+    		<subitem name="Custom ctypt mechanism" href="/CustomCryptMechanism.html" />

+    		<subitem name="General Configuration" href="/GeneralConfiguration.html" />

+    	</item>

+    	<item name="Security" >

+    		<subitem name="Restricted Access" href="/RestrictedAccess.html" />

+    		<subitem name="RTMPS and HTTPS" href="/RTMPSAndHTTPS.html" />

+    	</item>

+    	<item name="Converters" >

+    		<subitem name="OpenOffice Converter" href="/OpenOfficeConverter.html" />

+            <subitem name="FFMPEG Version Switch" href="/FFMPEGVersionSwitch.html" />

+        </item>

+    	<item name="Clustering" >

+    		<subitem name="Clustering" href="/Clustering.html" />

+    	</item>

+    	<item name="Misc" >

+    		<subitem name="Get version info" href="/GetVersionInfo.html" />

+    	</item>

+    </menu>

+    

+    <!-- 

+    <menu name="Integration">

+        <item name="SOAP/REST API"          href="/integration_api.html"/>

+        <item name="LDAP and ADS"           href="/integration_ldap.html"/>

+        <item name="VoIP and SIP"           href="/integration_voip.html"/>

+        <item name="Moodle Plugin"          href="/moodle_plugin.html"/>

+        <item name="SugarCRM Plugin"        href="/sugarcrm_plugin.html"/>

+    </menu>

+     -->

+     

+    

+

+    </body>

+</project>

diff --git a/xdocs/stylesheets/project.xsd b/xdocs/stylesheets/project.xsd
new file mode 100644
index 0000000..138bfa7
--- /dev/null
+++ b/xdocs/stylesheets/project.xsd
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

+  <xs:element name="project">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element ref="title"/>

+        <xs:element ref="logo"/>

+        <xs:element ref="body"/>

+      </xs:sequence>

+      <xs:attribute name="href" use="required" type="xs:anyURI"/>

+      <xs:attribute name="name" use="required"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="title" type="xs:string"/>

+  <xs:element name="logo">

+    <xs:complexType mixed="true">

+      <xs:attribute name="href" use="required"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="body">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element maxOccurs="unbounded" ref="menu"/>

+      </xs:sequence>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="menu">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element maxOccurs="unbounded" ref="item"/>

+      </xs:sequence>

+      <xs:attribute name="name" use="required"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="item">

+    <xs:complexType>

+      <xs:sequence>

+        <xs:element minOccurs="0" maxOccurs="unbounded" ref="subitem"/>

+      </xs:sequence>

+      <xs:attribute name="href" type="xs:anyURI"/>

+      <xs:attribute name="name" use="required"/>

+    </xs:complexType>

+  </xs:element>

+  <xs:element name="subitem">

+    <xs:complexType>

+      <xs:attribute name="href" use="required"/>

+      <xs:attribute name="name" use="required"/>

+    </xs:complexType>

+  </xs:element>

+</xs:schema>

diff --git a/xdocs/stylesheets/site.vsl b/xdocs/stylesheets/site.vsl
new file mode 100644
index 0000000..4449ba9
--- /dev/null
+++ b/xdocs/stylesheets/site.vsl
@@ -0,0 +1,426 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+          
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+<!-- Content Stylesheet for Site -->
+
+    ## Defined variables
+    #set ($menutablebg = "#FFFFFF")
+    #set ($menutablefg = "#000000")
+    #set ($bodybg = "#ffffff")
+    #set ($bodyfg = "#000000")
+    #set ($bodylink = "#123465")
+    #set ($pagebannerbg = "#669AE6")
+    #set ($pagebannerfg = "#000000")
+    #set ($bannerbg = "#EEEEEE")
+    #set ($bannerfg = "#000000")
+    #set ($subbannerbg = "#EFEFEF")
+    #set ($subbannerfg = "#000000")
+    #set ($tablethbg = "#039acc")
+    #set ($tabletdbg = "#a0ddf0")
+    #set ($colorhrline = "#999999")
+    
+<!-- start the processing -->
+#document()
+<!-- end the processing -->
+
+## This is where the macro's live
+
+#macro ( feature $feature)
+	<h3>$feature.getAttributeValue("title")</h3>
+	<table border="0">
+		<tbody>
+			<tr>
+				<td style="text-align: center;" width="300">
+					#foreach ( $items in $feature.getChildren() )
+						#if ($items.getName().equals("image"))
+							<p>
+							<a class="group1 fancybox-buttons" href="$items.getAttributeValue("fullhref")">
+								<img src="$items.getAttributeValue("href")" alt="" width="$items.getAttributeValue("width")"
+									#if ($items.getAttributeValue("height")) height="$items.getAttributeValue("height")" #end />
+							</a>
+						#end
+					#end
+				</td>
+				<td>
+					#foreach ( $items in $feature.getChildren() )
+						#if ($items.getName().equals("text"))
+							$items.getChildren()
+						#end
+					#end
+				</td>
+			</tr>
+	    </tbody>
+	</table>
+#end
+
+#macro ( table $table)
+<table>
+    #foreach ( $items in $table.getChildren() )
+        #if ($items.getName().equals("tr"))
+            #tr ($items)
+        #end
+    #end
+</table>
+#end
+
+#macro ( tr $tr)
+<tr>
+    #foreach ( $items in $tr.getChildren() )
+        #if ($items.getName().equals("td"))
+            #td ($items)
+        #elseif ($items.getName().equals("th"))
+            #th ($items)
+        #end
+    #end
+</tr>
+#end
+
+#macro ( td $value)
+#if ($value.getAttributeValue("colspan"))
+#set ($colspan = $value.getAttributeValue("colspan"))
+#end
+#if ($value.getAttributeValue("rowspan"))
+#set ($rowspan = $value.getAttributeValue("rowspan"))
+#end
+#if ($value.getAttributeValue("class"))
+#set ($class = $value.getAttributeValue("class"))
+#end
+<td bgcolor="$tabletdbg" class="$class" colspan="$!colspan" rowspan="$!rowspan" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+    #if ($value.getText().length() != 0 || $value.hasChildren())
+    $value.getContent()
+    #else
+    &nbsp;
+    #end
+</td>
+#end
+
+#macro ( th $value)
+#if ($value.getAttributeValue("colspan"))
+#set ($colspan = $value.getAttributeValue("colspan"))
+#end
+#if ($value.getAttributeValue("rowspan"))
+#set ($rowspan = $value.getAttributeValue("rowspan"))
+#end
+#if ($value.getAttributeValue("class"))
+#set ($class = $value.getAttributeValue("class"))
+#end
+<th bgcolor="$tablethbg" class="$class" colspan="$!colspan" rowspan="$!rowspan" valign="top" align="left" style="color: black; font-size: small; font-family: arial, helvetica, sanserif;">
+    #if ($value.getText().length() != 0 || $value.hasChildren())
+    $value.getContent()
+    #else
+    &nbsp;
+    #end
+</th>
+#end
+
+#macro ( projectanchor $name $value )
+#if ($value.startsWith("http://") || $value.startsWith("https://"))
+    <a href="$value">$name</a>
+#elseif ($value.startsWith("/site"))
+    <a href="http://jakarta.apache.org$value">$name</a>
+#else
+    <a href="$relativePath$value">$name</a>
+#end
+#end
+
+#macro ( metaauthor $author $email )
+            <meta name="author" content="$author">
+            <meta name="email" content="$email">
+#end
+
+#macro ( image $value )
+#if ($value.getAttributeValue("width"))
+#set ($width=$value.getAttributeValue("width"))
+#end
+#if ($value.getAttributeValue("height"))
+#set ($height=$value.getAttributeValue("height"))
+#end
+#if ($value.getAttributeValue("align"))
+#set ($align=$value.getAttributeValue("align"))
+#else
+#set ($align="middle")
+#end
+<img src="$relativePath/$value.getAttributeValue("src")" width="$!width" height="$!height" align="$!align">
+#end
+
+#macro ( source $value)
+    <div align="left">
+    <table style="border: solid 1px #023264; padding: 5px;">
+    <tr>
+      <td bgcolor="#ffffff"><pre>$escape.getText($value.getText())</pre></td>
+    </tr>
+    </table>
+    </div>
+#end
+
+#macro ( subsection $subsection)
+    <table border="0" cellspacing="0" cellpadding="0" width="100%">
+      <tr><td bgcolor="$subbannerbg">
+        <font color="$subbannerfg" face="arial,helvetica,sanserif">
+          <a name="$subsection.getAttributeValue("name")"><strong>$subsection.getAttributeValue("name")</strong></a>
+        </font>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+        #foreach ( $items in $subsection.getChildren() )
+            #if ($items.getName().equals("img"))
+                #image ($items)
+            #elseif ($items.getName().equals("source"))
+                #source ($items)
+            #elseif ($items.getName().equals("table"))
+                #table ($items)
+            #else
+                $items
+            #end
+        #end
+        </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+#end
+
+#macro ( section $section)
+    <table border="0" cellspacing="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr><td ><!-- bgcolor="$bannerbg" -->
+        <font color="$bannerfg" face="verdana,arial,helvetica,sanserif">
+          <a name="$section.getAttributeValue("name")"><strong>$section.getAttributeValue("name")</strong></a>
+        </font>
+        <hr style="width:100%; color:$colorhrline; background-color:$colorhrline; height:1px; border:0px;"/>
+      </td></tr>
+      <tr><td>
+        <blockquote>
+        #foreach ( $items in $section.getChildren() )
+            #if ($items.getName().equals("img"))
+                #image ($items)
+            #elseif ($items.getName().equals("source"))
+                #source ($items)
+            #elseif ($items.getName().equals("table"))
+                #table ($items)
+            #elseif ($items.getName().equals("feature"))
+                #feature ($items)
+            #elseif ($items.getName().equals("subsection"))
+                #subsection ($items)
+            #else
+                $items
+            #end
+        #end
+        </blockquote>
+      </td></tr>
+      <tr><td><br/></td></tr>
+    </table>
+#end
+
+#macro ( makeProject )
+
+    <!-- ============================================================ -->
+    <div id="accordion" style="width: 100%">
+    
+    #set ($menus = $project.getChild("body").getChildren("menu"))
+    #foreach ( $menu in $menus )
+    	<h3><a href="#$menu.getAttributeValue("name").replaceAll(" ","")">$menu.getAttributeValue("name")</a></h3>
+    	<div>
+	        #foreach ( $item in $menu.getChildren() )
+	            #set ($name = $item.getAttributeValue("name"))
+	            #if ( $item.getAttributeValue("href").length() > 0 )
+	            	#projectanchor($name $item.getAttributeValue("href"))<br/>
+	        	#else
+	            	<b>$name</b><br/>
+	            		#foreach ( $subitem in $item.getChildren() )
+	            			#set ($name = $subitem.getAttributeValue("name"))
+	            			#projectanchor($name $subitem.getAttributeValue("href"))<br/>
+	            		#end
+	        	#end
+	        #end
+    	</div>
+    #end
+    
+    </div>
+     
+    <br/>
+    
+#end
+
+#macro (getProjectImage)
+#if ($project.getChild("logo"))
+#set ( $logoString = $project.getChild("logo").getAttributeValue("href") )
+<td align="left">
+#if ( $logoString.startsWith("/") )
+<a href="$project.getAttributeValue("href")"><img src="$relativePath$logoString" alt="$project.getChild("logo").getText()" border="0"/></a>
+#else
+<a href="$project.getAttributeValue("href")"><img src="$relativePath/$logoString" alt="$project.getChild("logo").getText()" border="0"/></a>
+#end
+</td>
+#end
+#end
+
+#macro (getBannerTitle)
+#if ( $root.getChild("properties").getChild("bannertitle") )
+    #set ( $pageBanner = $root.getChild("properties").getChild("bannertitle") )
+#else
+    #set ( $pageBanner = $root.getChild("properties").getChild("title").getText() )
+#end
+<td width="80%" align="right" valign="top" >
+	<a href="demo.html">Demo</a>
+	<span>|</span> 
+	<a href="downloads.html" target="_PARENT">Download</a>
+	<span>|</span> 
+	<a href="installation.html" target="_PARENT">Installation</a>
+	<span>|</span> 
+	<a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" target="_BLANK">Wiki</a>
+	<span>&nbsp;</span>
+</td>
+#end
+
+#macro (printMeta $metaElement)
+<meta #set ($attribs = $metaElement.getAttributes())
+#foreach ($a in $attribs) $a.getName()="$a.getValue()" #end />
+#end
+
+#macro (document)
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    <html>
+        <head>
+            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+
+            #set ($authors = $root.getChild("properties").getChildren("author"))
+            #foreach ( $au in $authors )
+                #metaauthor ( $au.getText() $au.getAttributeValue("email") )
+            #end
+
+           #set ($metas = $root.getChildren("meta"))
+
+            ##    Parse meta directives such as
+            ##    <meta name="keyword" content="jakarta, java"/>
+            #foreach ($meta in $metas) #printMeta($meta) #end
+
+            ##    Support for <base> tags.
+            #if ($root.getChild("properties").getChild("base"))
+              #set ($url = $root.getChild("properties").getChild("base").getAttributeValue("href"))
+              <base href="$url"/>
+            #end
+
+            <title>$project.getChild("title").getText() - $root.getChild("properties").getChild("title").getText()</title>
+            <link rel="stylesheet" type="text/css" href="css/openmeetings.css">
+            <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.10.4.custom.css">
+            <link rel="stylesheet" type="text/css" href="css/coin-slider-styles.css">
+            <link rel="stylesheet" type="text/css" href="css/colorbox.css" />
+            
+			<!-- Add jQuery library -->
+			<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
+		
+			<!-- Add coinslider plugins -->
+			<script type="text/javascript" src="js/coin-slider.min.js"></script>
+			
+			<!-- Add colorbox plugin -->
+			<script type="text/javascript" src="js/jquery.colorbox.js"></script>
+		
+			<script src="js/jquery-ui-1.10.4.custom.min.js"></script>
+			
+			<script type="text/javascript">
+				$(function() {
+					$("#accordion").accordion({
+						heightStyle: 'content',
+						icons: false
+					});
+					var idx = location.href.lastIndexOf('/');
+					if (idx > -1) {
+						var url = '.' + location.href.substring(idx);
+						var a = $('#accordion a[href="' + url + '"]');
+						a.addClass('active');
+						var id = a.parent()[0].id;
+						var idx1 = id.lastIndexOf('-');
+						if (idx1 > -1) {
+							$("#accordion").accordion("option", "active", parseInt(id.substring(idx1 + 1)));
+						} 
+					}
+					$('.fancybox-buttons').colorbox({rel:'fancybox-buttons',width:"75%", height:"75%"});
+					$('#coin-slider').coinslider({ width: 640,height: 500, delay: 4000  });					
+				});
+			</script>
+			
+			<style type="text/css">
+				.fancybox-custom .fancybox-outer {
+					box-shadow: 0 0 50px #222;
+				}
+			</style>
+        </head>
+
+        <body bgcolor="$bodybg" text="$bodyfg" link="$bodylink" vlink="$bodylink" alink="#000000">  
+        	<div class="mainbody" style="min-width: 960px; width: 94%;">
+        	<div class="superbody" style="width: 100%;">
+            <table border="0" width="100%" cellspacing="0">
+                <!-- TOP IMAGE -->
+                <tr>
+                    #getProjectImage()
+                    #getBannerTitle()
+                </tr>
+            </table>
+            <table border="0" width="100%" cellspacing="4">
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+
+                <tr>
+                    <!-- LEFT SIDE NAVIGATION -->
+                    <td width="20%" valign="top" nowrap="nowrap">
+
+                    <!-- special ACon Logo - leave here for next time
+                    <a href="http://apachecon.com/2005/US/">
+                        <img src="http://apache.org/images/ac2005us_blue_125x125.jpg" height="125"
+                             width="125" border="0" alt="ApacheCon US 2005" />
+                    </a>  -->
+
+                   <!-- regular menu -->
+
+                    #makeProject()
+                    </td>
+                    <td width="80%" align="left" valign="top">
+                    #set ($allSections = $root.getChild("body").getChildren("section"))
+                    #foreach ( $section in $allSections )
+                        #section ($section)
+                    #end
+                    </td>
+                </tr>
+
+                <!-- FOOTER -->
+                <tr><td colspan="2">
+                    <hr noshade="noshade" size="1"/>
+                </td></tr>
+                <tr><td colspan="2">
+                    <div align="center"><font color="$bodylink" size="-1"><em>
+                    Copyright &#169; 2003-2014, The Apache Software Foundation
+                    </em></font></div>
+                </td></tr>
+            </table>
+            </div>
+            </div>
+        </body>
+    </html>
+#end
+
+
+
+
+
diff --git a/xdocs/svn.xml b/xdocs/svn.xml
new file mode 100644
index 0000000..ea53b2d
--- /dev/null
+++ b/xdocs/svn.xml
@@ -0,0 +1,345 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+ -->
+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">
+
+	<properties>
+		<title>Source Code</title>
+		<author email="sebawagner@apache.org">
+			Sebastian Wagner
+		</author>
+	</properties>
+
+	<body>
+
+		<section name="OpenMeetings Source Code">
+
+			<p>
+				OpenMeetings uses
+				<a class="external" rel="nofollow" href="http://subversion.tigris.org">
+					Subversion
+				</a>
+				to manage its source code.
+				If you're new to Subversion, you can check out the
+				<a href="http://svnbook.red-bean.com/">online book</a>
+				about Subversion.
+				Note that we are currently using Subversion 1.1.x (there are separate
+				versions of the book covering 1.0 and 1.1).
+			</p>
+			<p>
+				To receive notice of commits to the repository subscribe to
+				<a href="mailto:commits@openmeetings.apache.org">
+					commits@openmeetings.apache.org
+				</a>
+				by sending email to
+				<a href="mailto:commits-subscribe@openmeetings.apache.org">
+					commits-subscribe@openmeetings.apache.org
+				</a>
+				.
+			</p>
+
+		</section>
+
+		<section name="Web Access to Subversion">
+
+			<p>
+				If you just want to browse the source code, you can use the
+				<a class="external" rel="nofollow"
+					href="http://svn.apache.org/viewcvs/openmeetings">
+					ViewCVS web interface
+				</a>
+				to Subversion. This is current at all times.
+			</p>
+
+		</section>
+
+		<section name="Checking Out Code Using Subversion">
+
+			<p>Anyone can check code out of Subversion. You only need to specify
+				a
+				username and password to update the Subversion repository, and only
+				OpenMeetings committers can do that.
+				If you are a committer, are working from behind a firewall, or are
+				connected to the internet through a proxy server, please see the
+				sections
+				below for more information.
+			</p>
+
+			<subsection name="Anonymous check out from Subversion">
+				<p>Use a command like:</p>
+				<pre>% svn checkout
+					http://svn.apache.org/repos/asf/openmeetings </pre>
+				<p>Once you have OpenMeetings checked out you can update the source
+					by executing the following command from within the openmeetings
+					directory.
+				</p>
+				<pre>
+					% svn update
+				</pre>
+			</subsection>
+			<subsection name="Access from behind a firewall">
+
+				<p>For those users who are stuck behind a corporate firewall which
+					is
+					blocking http access to the Subversion repository, you can try to access it
+					via HTTPS:
+				</p>
+				<pre>
+					% svn checkout
+					https://svn.apache.org/repos/asf/openmeetings
+				</pre>
+
+			</subsection>
+			<subsection name="Access through a proxy">
+
+				<p>The Subversion client can go through a proxy, if you configure it
+					to do so. First, edit your "servers" configuration file to indicate
+					which
+					proxy to use. The files location depends on your operating system.
+					On Linux or Unix it is located in the directory "~/.subversion".
+					On Windows it is in "%APPDATA%\Subversion". (Try "echo %APPDATA%",
+					note this is a hidden directory.)
+				</p>
+				<p>There are comments in the file explaining what to do. If you
+					don't have
+					that file, get the latest Subversion client and run any command; this
+					will
+					cause the configuration directory and template files to be created.
+				</p>
+				<p>Example : Edit the 'servers' file and add something like :
+				</p>
+				<pre>
+					[global]
+					http-proxy-host = your.proxy.name
+					http-proxy-port = 3128
+				</pre>
+
+			</subsection>
+
+			<subsection name="Committer access">
+
+				<p>Everyone can access the Apache Podling Subversion repository via
+					HTTPS,
+					but OpenMeetings Committers must checkout the Subversion repository
+					via HTTPS.
+				</p>
+				<pre>
+					% svn checkout
+					https://svn.apache.org/repos/asf/openmeetings
+				</pre>
+			</subsection>
+		</section>
+
+		<section name="Submitting Code Changes">
+			<subsection name="Submitting a patch">
+
+				<p>If you make changes to OpenMeetings, and would like to contribute
+					it to the project, you should open a JIRA issue and discuss the
+					merits
+					of the proposal with the developer community. If there is agreement,
+					create a patch and attach it to the JIRA issue.
+				</p>
+				<p>
+					To create a patch, execute the svn diff command. This creates a patch
+					that
+					can easily be uploaded to a JIRA issue. A good name for the patch
+					includes
+					the JIRA issue name, e.g. OPENMEETINGS-104.patch. If there are several
+					patches
+					for the same JIRA issue, you might include your initials, e.g.
+					OPENMEETINGS-104.clr.patch
+				</p>
+				<pre>
+					% svn diff &gt; OPENMEETINGS-104.clr.patch
+				</pre>
+			</subsection>
+
+			<subsection name="Committing changes to subversion">
+				<p>
+					To commit changes to the subversion repository, you must be an
+					OpenMeetings committer. See
+					<a href="get-involved.html">get involved</a>
+					for information on how to become a committer and how to set up your
+					password once you become a committer.
+				</p>
+
+				<p>
+					Once your password is set, you can use a command like this to commit:
+				</p>
+				<pre>
+					$&gt; svn commit --username your-username
+					Authentication realm: &lt;https://svn.apache.org:443&gt; ASF Committers
+					Password for 'your-username': your-password
+				</pre>
+				<p>You can also pass your password on the command line directly, but
+					this is a security problem on multiuser unix computers (the command
+					line
+					arguments are available via the ps command). Here is the command if you
+					are Windows or a single user unix computer:
+				</p>
+				<pre>
+					$&gt; svn commit --username your-username --password your-password
+				</pre>
+				<p>Remember to replace 'your-username' and 'your-password' with
+					your actual username and password on svn.apache.org.
+				</p>
+
+			</subsection>
+		</section>
+
+		<section name="Building Podling from Source">
+			<p>
+				<!-- ***************** TBD ************************** -->
+				<!-- ***************** TBD ************************** -->
+				<!-- ***************** TBD ************************** -->
+				<!-- ***************** TBD ************************** -->
+				<!-- ***************** TBD ************************** -->
+				<!-- ***************** TBD ************************** -->
+				<!-- ***************** TBD ************************** -->
+			</p>
+
+		</section>
+
+		<section name="Using Subversion on Windows with cygwin">
+
+			<p>
+				If you use Subversion on Windows under cygwin, you may find that the
+				Subversion client automatically assigns the executable property to
+				non-executable files. In that case, you would see this at the bottom
+				of
+				an
+				<em>svn diff</em>
+				of the file:
+			</p>
+			<pre>
+				Property changes on: test/sql/derby/datastoreidentity/schema1.sql
+				___________________________________________________________________
+				Name: svn:executable
+				+ *
+			</pre>
+			<p>This section explains the source of the problem and suggests some
+				actions to avoid it.
+			</p>
+
+			<subsection name="Background">
+
+				<p>Subversion carries executable information in the built-in
+					property
+					called svn:executable. This property, unlike others, may be present
+					or absent, but it has no value. You can add it or delete it, but you
+					cannot change its value.
+				</p>
+				<p>In theory, Subversion ignores Windows file permissions and by
+					default
+					does not set svn:executable. However, cygwin svn acts like Unix svn and
+					determines the svn:executable property based on file permissions.
+				</p>
+				<p>
+					If you create a file from the cygwin command line, by default it is
+					executable only if the filename ends with .bat, .com or .exe, or if
+					its
+					content starts with #!. [This is what the doc says, but you may see -x
+					for all files.] If you create a file using a Windows tool, by default
+					its Windows permissions are executable by all. Cygwin interprets
+					the
+					Unix-style permissions this way as well. If the file is executable by all,
+					cygwin svn sets the svn:executable property on the file when you
+					invoke
+					<em>svn add</em>
+					.
+				</p>
+			</subsection>
+			<subsection
+				name="Removing existing executable properties from the repository">
+
+				<p>You can use svn propdel to remove the svn:executable property
+					from your
+					working copy.
+				</p>
+				<pre>
+					svn propdel -R svn:executable .
+				</pre>
+				<p>will recursively remove the svn:executable property from all of
+					the
+					files below the current directory. You can use this and commit the
+					files to clean the repository if necessary.
+				</p>
+
+			</subsection>
+			<subsection
+				name="Preventing Subversion from adding unwanted executable 
+properties">
+
+				<p>
+					Windows/cygwin users who don't want to have to think about using
+					<em>svn
+						propdel
+					</em>
+					or
+					<em>chmod</em>
+					on each added file can use a non-cygwin
+					version of svn. The Subversion 1.2.3 Win32 binaries, downloadable from the
+					link at the bottom of
+					<a rel="nofollow" href="http://subversion.tigris.org/project_packages.html">
+						http://subversion.tigris.org/project_packages.html
+					</a>
+					, appear to work
+					well. After installation add the svn.exe location to your Windows PATH
+					variable. If you are switching from cygwin svn to Win32 svn
+				</p>
+				<ol type="1">
+					<li>
+						<p>Remove the subversion component from your cygwin installation
+							because when svn is invoked from a cygwin window, the cygwin
+							version is
+							found even if your cygwin/bin directory is later on the path. (In the
+							Select Packages window of the setup wizard, navigate to the
+							subversion
+							package in the Devel. category. Click on the status icon until Uninstall
+							is displayed. Click next and continue through the wizard until
+							installation
+							is complete.)
+						</p>
+					</li>
+					<li>
+						<p>Copy the servers file and the auth folder from the sygwin
+							~/.subversion
+							directory to C:\Documents and
+							Settings\&lt;user&gt;\Application Data\Subversion used by Win32
+							subversion.
+						</p>
+					</li>
+				</ol>
+				<p>Note that windows svn uses backslash as the path separator when
+					displaying file names. You cannot just copy and paste this file
+					name
+					to another svn command when running from within a cygwin shell.
+					You need to enclose the file name into double quotes.
+				</p>
+				<p>Alternatively, Windows users can set file permissions in Windows
+					Explorer. (Right-click on the top-level folder &amp; select
+					Properties.
+					Select the Security tab. Click Advanced. Remove all instances of
+					Read &amp; Execute from the Permission Entries. Click "Reset
+					permissions
+					on all child objects and enable propogations of inheritable
+					permissions".
+					Click Apply. OK. OK.) You will have to do this again when you do a clean
+					checkout to a new directory.
+				</p>
+
+			</subsection>
+		</section>
+	</body>
+</document>
diff --git a/xdocs/team-list-ru.xml b/xdocs/team-list-ru.xml
new file mode 100644
index 0000000..0a1d366
--- /dev/null
+++ b/xdocs/team-list-ru.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0"?>
+<!--
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+ -->
+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">
+
+	<properties>
+		<title>Команда проекта</title>
+		<author email="sebawagner@apache.org">
+			Sebastian Wagner
+		</author>
+	</properties>
+
+	<body>
+
+		<section name="OpenMeetings Committers">
+
+			<p>
+				Люди, отмеченные на этой странице, имеют доступ к репозиторию исходного кода Apache Openmeetings. 
+				Данная страница предназначена для того, чтобы служить основой квалификационного отбора
+				по проектам, требующим модификации исходного кода Openmeetings.
+			</p>
+
+			
+			<table>
+				<tr>
+					<th>Имя</th>
+				</tr>
+				<tr>
+					<td>Себастьян Вагнер</td>
+				</tr>
+				<tr>
+					<td>Алексей Федотов</td>
+				</tr>
+				<tr>
+					<td>Евгений Ровинский</td>
+				</tr>
+				<tr>
+					<td>Максим Солодовник</td>
+				</tr>
+				<tr>
+					<td>Oliver Becherer</td>
+				</tr>
+				<tr>
+					<td>Eugen Schwert</td>
+				</tr>
+				<tr>
+					<td>Sascha Xander</td>
+				</tr>
+				<tr>
+					<td>Johnny Strom</td>
+				</tr>
+				<tr>
+					<td>Герман Грехов</td>
+				</tr>
+				<tr>
+					<td>Тимур Тлеукенов</td>
+				</tr>
+				<tr>
+					<td>Alvaro Bustos</td>
+				</tr>
+				<tr>
+					<td>George Kirkham</td>
+				</tr>
+				<tr>
+					<td>Stephen Cottham</td>
+				</tr>
+				<tr>
+					<td>Ирина Архипец</td>
+				</tr>
+				<tr>
+					<td>Василий Дегтярев</td>
+				</tr>
+				<tr>
+					<td>Денис Кандров</td>
+				</tr>
+				<tr>
+					<td>Юлия Альгаер</td>
+				</tr>
+				<tr>
+					<td>Артём Хоруженко</td>
+				</tr>
+			</table>
+			
+		</section>
+
+	</body>
+</document>
diff --git a/xdocs/team-list.xml b/xdocs/team-list.xml
new file mode 100644
index 0000000..64f4b88
--- /dev/null
+++ b/xdocs/team-list.xml
@@ -0,0 +1,159 @@
+<?xml version="1.0"?>
+<!--
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+ -->
+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">
+
+	<properties>
+		<title>Project Team</title>
+		<author email="sebawagner@apache.org">
+			Sebastian Wagner
+		</author>
+	</properties>
+
+	<body>
+
+		<section name="OpenMeetings Committers">
+
+			<p>
+				The people listed below have made significant contributions to
+				Podling
+				by
+				working long and hard to make quality software for the rest
+				of the world to
+				use.
+			</p>
+
+			<p>
+				If you would like to contribute to Podling, please see the
+				<a
+					href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/New+committers+and+developers+task+idea+list"
+					target="_BLANK">https://cwiki.apache.org/confluence/display/OPENMEETINGS/New+committers+and+developers+task+idea+list
+				</a>
+				to find areas where you can contribute.
+				If there is nothing in there
+				that suits your interest, but you still
+				have
+				ideas, please feel free
+				to suggest them on the mailing list.
+			</p>
+			<p>
+				If you would like to become a committer, please see
+				<a href="get-involved.html">Get Involved</a>
+				.
+			</p>
+
+			<table>
+				<tr>
+					<th>Name</th>
+					<th>Organization</th>
+					<th>Contact/Website</th>
+				</tr>
+				<tr>
+					<td>Sebastian Wagner</td>
+					<td>Independent</td>
+					<td>
+						<a href="https://twitter.com/#!/dead_lock" target="_BLANK" rel="nofollow">https://twitter.com/#!/dead_lock
+						</a>
+					</td>
+				</tr>
+				<tr>
+					<td>Alexei Fedotov</td>
+					<td>Independent</td>
+					<td></td>
+				</tr>
+				<tr>
+					<td>Evgeny Rovinsky</td>
+					<td>Independent</td>
+					<td></td>
+				</tr>
+				<tr>
+					<td>Maxim Solodovnik</td>
+					<td>Independent</td>
+					<td></td>
+				</tr>
+				<tr>
+					<td>Oliver Becherer</td>
+					<td>Independent</td>
+					<td></td>
+				</tr>
+				<tr>
+					<td>Eugen Schwert</td>
+					<td>Independent</td>
+					<td></td>
+				</tr>
+				<tr>
+					<td>Sascha Xander</td>
+					<td>Independent</td>
+					<td></td>
+				</tr>
+				<tr>
+					<td>Johnny Strom</td>
+					<td>Independent</td>
+					<td></td>
+				</tr>
+				<tr>
+					<td>Timur Tleukenov</td>
+					<td>Independent</td>
+					<td></td>
+				</tr>
+                                <tr>
+					<td>Alvaro Bustos</td>
+					<td>Independent</td>
+					<td></td>
+				</tr>
+				<tr>
+					<td>George Kirkham</td>
+					<td>Independent</td>
+					<td></td>
+				</tr>
+				<tr>
+					<td>Stephen Cottham</td>
+					<td>Independent</td>
+					<td></td>
+				</tr>
+				<tr>
+					<td>Irina Arkhipets</td>
+					<td>Independent</td>
+					<td></td>
+				</tr>
+				<tr>
+					<td>Vasiliy Degtyarev</td>
+					<td>Independent</td>
+					<td></td>
+				</tr>
+				<tr>
+					<td>Denis Kandrov</td>
+					<td>Independent</td>
+					<td></td>
+				</tr>
+				<tr>
+					<td>Yulia Algaer</td>
+					<td>Independent</td>
+					<td></td>
+				</tr>
+				<tr>
+					<td>Artyom Horuzhenko</td>
+					<td>Independent</td>
+					<td></td>
+				</tr>
+								
+			</table>
+			
+			<p>
+			<a href="team-list-ru.html">Here</a> is the Russian version of this page.
+			</p>
+		</section>
+
+	</body>
+</document>
diff --git a/xdocs/themes-and-branding.xml b/xdocs/themes-and-branding.xml
new file mode 100644
index 0000000..2d71ea6
--- /dev/null
+++ b/xdocs/themes-and-branding.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>Theme and color</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="Available with Apache OpenMeetings 2.0">

+

+			<p>

+				Themes are only available starting with Openmeetings 2.x.

+				<br />

+				There are also more general client side configuration like port

+				configuration. Those configs are stored in the public/config.xml

+			</p>

+

+		</section>

+

+		<section name="Editing the theme">

+

+			<p>You can find the default theme in the SVN: </p>

+			<p>

+				<a

+					href="https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/src/main/webapp/openmeetings/public/theme.xml"

+					target="_BLANK" rel="nofollow">https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/src/main/webapp/openmeetings/public/theme.xml

+				</a>

+			</p>

+			<p>

+				Or if you already installed OpenMeetings on your machine at:

+				<br />

+				<tt>/webapps/openmeetings/public/theme.xml</tt>

+				<br />

+				The file contains border, background and font color definitions as

+				well as paths to icons that are loaded at runtime.

+				<br />

+				You can change the theme at runtime and just reload the browser

+				(eventually clear the browser cache) to see updates based on

+				modification in your theme.

+			</p>

+

+

+		</section>

+

+	</body>

+

+</document>

diff --git a/xdocs/voip-sip-integration.xml b/xdocs/voip-sip-integration.xml
new file mode 100644
index 0000000..977d8d4
--- /dev/null
+++ b/xdocs/voip-sip-integration.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+   Licensed under the Apache License, Version 2.0 (the "License");

+   you may not use this file except in compliance with the License.

+   You may obtain a copy of the License at

+

+       http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing, software

+   distributed under the License is distributed on an "AS IS" BASIS,

+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+   See the License for the specific language governing permissions and

+   limitations under the License.

+ -->

+<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

+

+	<properties>

+		<title>VoIP and SIP Integration</title>

+		<author email="sebawagner@apache.org">

+			OpenMeetings Team

+		</author>

+	</properties>

+

+	<body>

+

+		<section name="VoIP and SIP Integration">

+

+			<p>

+				There are multiple ways to integrate with VoIP and or SIP.

+				OpenMeetings does not provide out of the box a ready to run VoIP

+				integration / integration to cell phone or usual land lane.

+				The

+				nature of such integrations is that it depends heavily on the

+				infrastructure that you are using and where you would like to

+				integrate OpenMeetings into.

+				<br />

+				<br />

+				It also depends on a number of factors of which OpenMeetings is

+				impossible to set up for you, for example setting up your VoIP

+				server or provide you with a range of telephone numbers reserved for

+				conference calls in your national phone network.

+				Such an integration

+				project is likely to become a consulting job for a

+				telecommunications consultant.

+				<br />

+				<br />

+				To get help on the integration you can contact the

+				<a href="mail-lists.html">mailing lists</a>

+				or for example somebody from the list of

+				<a href="commercial-support.html">commercial support</a>

+				.

+                <br/><br/>

+                <a href="red5sip-integration_2.0.html">

+                Instruction how-to set up OpenMeetings SIP-Transport integration for Openmeetings 2.0

+                </a>.<br/>

+                <a href="red5sip-integration_2.1.html">

+                Instruction how-to set up OpenMeetings SIP-Transport integration for Openmeetings 2.1

+                </a>.<br/>

+                <a href="red5sip-integration_3.0.html">

+                Instruction how-to set up OpenMeetings SIP-Transport integration for Openmeetings 3.0

+                </a>.<br/>

+			</p>

+		</section>

+

+	</body>

+

+</document>
\ No newline at end of file
diff --git a/xdocs/website.xsd b/xdocs/website.xsd
new file mode 100644
index 0000000..311d016
--- /dev/null
+++ b/xdocs/website.xsd
@@ -0,0 +1,331 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+  <xs:element name="document">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="properties"/>
+        <xs:element ref="body"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="properties">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="title"/>
+        <xs:element ref="author"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="title" type="xs:string"/>
+  <xs:element name="author">
+    <xs:complexType mixed="true">
+      <xs:attribute name="email" use="required"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="body">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element maxOccurs="unbounded" ref="section"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="section">
+    <xs:complexType mixed="true">
+      <xs:choice minOccurs="0" maxOccurs="unbounded">
+        <xs:element ref="a"/>
+        <xs:element ref="b"/>
+        <xs:element ref="br"/>
+        <xs:element ref="div"/>
+        <xs:element ref="img"/>
+        <xs:element ref="object"/>
+        <xs:element ref="ol"/>
+        <xs:element ref="p"/>
+        <xs:element ref="pre"/>
+        <xs:element ref="tt"/>
+        <xs:element ref="ul"/>
+        <xs:element ref="feature"/>
+        <xs:element ref="source"/>
+        <xs:element ref="style"/>
+        <xs:element ref="subsection"/>
+        <xs:element ref="table"/>
+      </xs:choice>
+      <xs:attribute name="name" use="required"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="feature">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element maxOccurs="unbounded" ref="image"/>
+        <xs:element ref="text"/>
+      </xs:sequence>
+      <xs:attribute name="title" use="required"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="image">
+    <xs:complexType>
+      <xs:attribute name="fullhref" use="required"/>
+      <xs:attribute name="height" type="xs:integer"/>
+      <xs:attribute name="href" use="required"/>
+      <xs:attribute name="title" use="required"/>
+      <xs:attribute name="width" type="xs:integer"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="text">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="div"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="source">
+    <xs:complexType mixed="true">
+      <xs:attribute name="test" use="required"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="style">
+  </xs:element>
+  <xs:element name="subsection">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:choice>
+          <xs:element ref="i"/>
+          <xs:choice minOccurs="0" maxOccurs="unbounded">
+            <xs:element ref="div"/>
+            <xs:element ref="ol"/>
+            <xs:element ref="p"/>
+            <xs:element ref="pre"/>
+          </xs:choice>
+        </xs:choice>
+        <xs:element minOccurs="0" ref="ul"/>
+      </xs:sequence>
+      <xs:attribute name="name" use="required"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="table">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element maxOccurs="unbounded" ref="tr"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="tr">
+    <xs:complexType>
+      <xs:choice>
+        <xs:element maxOccurs="unbounded" ref="th"/>
+        <xs:element maxOccurs="unbounded" ref="td"/>
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="th">
+    <xs:complexType mixed="true">
+      <xs:attribute name="style"/>
+      <xs:attribute name="class"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="td">
+    <xs:complexType mixed="true">
+      <xs:choice minOccurs="0" maxOccurs="unbounded">
+        <xs:element ref="a"/>
+        <xs:element ref="p"/>
+        <xs:element ref="b"/>
+      </xs:choice>
+      <xs:attribute name="style"/>
+      <xs:attribute name="class"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ul">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element minOccurs="0" maxOccurs="unbounded" ref="li"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="b">
+    <xs:complexType mixed="true">
+      <xs:sequence>
+        <xs:element minOccurs="0" maxOccurs="unbounded" ref="br"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="i">
+    <xs:complexType mixed="true">
+      <xs:choice minOccurs="0" maxOccurs="unbounded">
+        <xs:element ref="a"/>
+        <xs:element ref="b"/>
+        <xs:element ref="br"/>
+        <xs:element ref="tt"/>
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="p">
+    <xs:complexType mixed="true">
+      <xs:choice minOccurs="0" maxOccurs="unbounded">
+        <xs:element ref="a"/>
+        <xs:element ref="b"/>
+        <xs:element ref="br"/>
+        <xs:element ref="div"/>
+        <xs:element ref="i"/>
+        <xs:element ref="strong"/>
+        <xs:element ref="tt"/>
+        <xs:element ref="em"/>
+      </xs:choice>
+      <xs:attribute name="style"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="em" type="xs:string"/>
+  <xs:element name="pre" type="xs:string"/>
+  <xs:element name="ol">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element minOccurs="0" maxOccurs="unbounded" ref="li"/>
+      </xs:sequence>
+      <xs:attribute name="type" type="xs:integer"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="div">
+    <xs:complexType mixed="true">
+      <xs:choice minOccurs="0" maxOccurs="unbounded">
+        <xs:element ref="a"/>
+        <xs:element ref="b"/>
+        <xs:element ref="blockquote"/>
+        <xs:element ref="br"/>
+        <xs:element ref="div"/>
+        <xs:element ref="i"/>
+        <xs:element ref="object"/>
+        <xs:element ref="ol"/>
+        <xs:element ref="p"/>
+        <xs:element ref="pre"/>
+        <xs:element ref="span"/>
+        <xs:element ref="strong"/>
+        <xs:element ref="tt"/>
+        <xs:element ref="ul"/>
+      </xs:choice>
+      <xs:attribute name="class" type="xs:NCName"/>
+      <xs:attribute name="id" type="xs:NCName"/>
+      <xs:attribute name="style" type="xs:anyURI"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="a">
+    <xs:complexType mixed="true">
+      <xs:choice minOccurs="0" maxOccurs="unbounded">
+        <xs:element ref="b"/>
+        <xs:element ref="img"/>
+        <xs:element ref="span"/>
+      </xs:choice>
+      <xs:attribute name="class" type="xs:NCName"/>
+      <xs:attribute name="href" use="required" type="xs:anyURI"/>
+      <xs:attribute name="rel" type="xs:NCName"/>
+      <xs:attribute name="target" type="xs:NCName"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="img">
+    <xs:complexType>
+      <xs:attribute name="alt" use="required"/>
+      <xs:attribute name="class" type="xs:NCName"/>
+      <xs:attribute name="height" type="xs:integer"/>
+      <xs:attribute name="src" use="required"/>
+      <xs:attribute name="title"/>
+      <xs:attribute name="width" type="xs:integer"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="object">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element maxOccurs="unbounded" ref="param"/>
+        <xs:element ref="embed"/>
+      </xs:sequence>
+      <xs:attribute name="style" use="required"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="param">
+    <xs:complexType>
+      <xs:attribute name="name" use="required" type="xs:NCName"/>
+      <xs:attribute name="value" use="required" type="xs:anyURI"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="embed">
+    <xs:complexType>
+      <xs:attribute name="allowScriptAccess" use="required" type="xs:NCName"/>
+      <xs:attribute name="allowfullscreen" use="required" type="xs:boolean"/>
+      <xs:attribute name="height" use="required" type="xs:integer"/>
+      <xs:attribute name="src" use="required" type="xs:anyURI"/>
+      <xs:attribute name="type" use="required"/>
+      <xs:attribute name="width" use="required" type="xs:integer"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="br">
+    <xs:complexType/>
+  </xs:element>
+  <xs:element name="tt">
+    <xs:complexType mixed="true">
+      <xs:sequence>
+        <xs:element minOccurs="0" maxOccurs="unbounded" ref="b"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="li">
+    <xs:complexType mixed="true">
+      <xs:choice minOccurs="0" maxOccurs="unbounded">
+        <xs:element ref="a"/>
+        <xs:element ref="b"/>
+        <xs:element ref="blockquote"/>
+        <xs:element ref="br"/>
+        <xs:element ref="div"/>
+        <xs:element ref="i"/>
+        <xs:element ref="img"/>
+        <xs:element ref="ol"/>
+        <xs:element ref="p"/>
+        <xs:element ref="span"/>
+        <xs:element ref="strong"/>
+        <xs:element ref="tt"/>
+        <xs:element ref="ul"/>
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="strong">
+    <xs:complexType mixed="true">
+      <xs:choice minOccurs="0" maxOccurs="unbounded">
+        <xs:element ref="a"/>
+        <xs:element ref="tt"/>
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="blockquote">
+    <xs:complexType mixed="true">
+      <xs:choice minOccurs="0" maxOccurs="unbounded">
+        <xs:element ref="a"/>
+        <xs:element ref="br"/>
+        <xs:element ref="i"/>
+        <xs:element ref="tt"/>
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="span">
+    <xs:complexType mixed="true">
+      <xs:choice minOccurs="0" maxOccurs="unbounded">
+        <xs:element ref="b"/>
+        <xs:element ref="br"/>
+      </xs:choice>
+      <xs:attribute name="style"/>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>